Built motion from commit 5e31ea4.|0.0.32 0.0.32
authorMotion Team <team@xcally.com>
Mon, 25 Jan 2016 20:22:44 +0000 (21:22 +0100)
committerMotion Team <team@xcally.com>
Mon, 25 Jan 2016 20:22:44 +0000 (21:22 +0100)
592 files changed:
package.json
public/app/24463f40.app.js [moved from public/app/3aec22c1.app.js with 52% similarity]
public/assets/css/profile.css
public/assets/images/media/service.png [new file with mode: 0644]
public/assets/languages/locale-en_EN.json
public/assets/languages/locale-it.json
public/assets/plugins/jscripty/js/Actions.js
public/assets/plugins/jscripty/js/Dialogs.js
public/assets/plugins/jscripty/js/Editor.js
public/assets/plugins/jscripty/js/EditorUi.js
public/assets/plugins/jscripty/js/Graph.js
public/assets/plugins/jscripty/js/Menus.js
public/assets/plugins/jscripty/js/Shapes.js
public/assets/plugins/jscripty/js/Sidebar.js
public/assets/plugins/jscripty/js/Toolbar.js
public/assets/plugins/jscripty/js/custom.js
public/assets/plugins/mxgraph/js/mxClient.js
public/assets/plugins/square/js/Actions.js
public/assets/plugins/square/js/Dialogs.js
public/assets/plugins/square/js/Editor.js
public/assets/plugins/square/js/EditorUi.js
public/assets/plugins/square/js/Graph.js
public/assets/plugins/square/js/Menus.js
public/assets/plugins/square/js/Shapes.js
public/assets/plugins/square/js/Sidebar.js
public/assets/plugins/square/js/Toolbar.js
public/assets/plugins/square/js/custom.js
public/assets/scripts/global/layout.js
public/index.html
release-notes/changelog_0.0.32.txt [moved from release-notes/changelog_0.0.31.txt with 53% similarity]
server/api/agent/agent.controller.js
server/api/agent/agent.socket.js
server/api/agent/agent.spec.js
server/api/agent/index.js
server/api/ami/ami.ami.js
server/api/ami/ami.controller.js
server/api/ami/ami.socket.js
server/api/ami/ami.spec.js
server/api/ami/index.js
server/api/automation/automation.controller.js
server/api/automation/automation.socket.js
server/api/automation/automation.spec.js
server/api/automation/index.js
server/api/business_action/business_action.controller.js
server/api/business_action/business_action.socket.js
server/api/business_action/business_action.spec.js
server/api/business_action/index.js
server/api/business_condition/business_condition.controller.js
server/api/business_condition/business_condition.socket.js
server/api/business_condition/business_condition.spec.js
server/api/business_condition/index.js
server/api/chat_application/chat_application.controller.js
server/api/chat_application/chat_application.socket.js
server/api/chat_application/chat_application.spec.js
server/api/chat_application/index.js
server/api/chat_enquiry/enquiry.controller.js
server/api/chat_enquiry/enquiry.socket.js
server/api/chat_enquiry/index.js
server/api/chat_message/chat_message.controller.js
server/api/chat_message/chat_message.socket.js
server/api/chat_message/chat_message.spec.js
server/api/chat_message/index.js
server/api/chat_queue/chat_queue.controller.js
server/api/chat_queue/chat_queue.socket.js
server/api/chat_queue/chat_queue.spec.js
server/api/chat_queue/index.js
server/api/chat_room/chat_room.controller.js
server/api/chat_room/chat_room.socket.js
server/api/chat_room/chat_room.spec.js
server/api/chat_room/index.js
server/api/chat_visitor/chat_visitor.controller.js
server/api/chat_visitor/chat_visitor.socket.js
server/api/chat_visitor/chat_visitor.spec.js
server/api/chat_visitor/index.js
server/api/chat_website/chat_website.controller.js
server/api/chat_website/chat_website.socket.js
server/api/chat_website/chat_website.spec.js
server/api/chat_website/index.js
server/api/company/company.controller.js
server/api/company/company.socket.js
server/api/company/company.spec.js
server/api/company/index.js
server/api/contact/contact.controller.js
server/api/contact/contact.model.js
server/api/contact/contact.socket.js
server/api/contact/contact.spec.js
server/api/contact/index.js
server/api/contact_manager/contact_manager.controller.js
server/api/contact_manager/contact_manager.socket.js
server/api/contact_manager/contact_manager.spec.js
server/api/contact_manager/index.js
server/api/custom_field/custom_field.controller.js [deleted file]
server/api/custom_field/custom_field.socket.js [deleted file]
server/api/custom_field/custom_field.spec.js [deleted file]
server/api/custom_field/index.js [deleted file]
server/api/custom_report/custom_report.controller.js
server/api/custom_report/custom_report.socket.js
server/api/custom_report/custom_report.spec.js
server/api/custom_report/index.js
server/api/dashboard/dashboard.controller.js
server/api/dashboard/dashboard.socket.js
server/api/dashboard/dashboard.spec.js
server/api/dashboard/index.js
server/api/default_report/default_report.controller.js
server/api/default_report/default_report.socket.js
server/api/default_report/default_report.spec.js
server/api/default_report/index.js
server/api/desk_account/desk_account.controller.js
server/api/desk_account/desk_account.socket.js
server/api/desk_account/desk_account.spec.js
server/api/desk_account/index.js
server/api/desk_configuration/desk_configuration.controller.js
server/api/desk_configuration/desk_configuration.socket.js
server/api/desk_configuration/index.js
server/api/desk_configuration/index.spec.js
server/api/desk_field/desk_field.controller.js
server/api/desk_field/desk_field.socket.js
server/api/desk_field/index.js
server/api/desk_field/index.spec.js
server/api/event/event.controller.js
server/api/event/event.socket.js
server/api/event/event.spec.js
server/api/event/index.js
server/api/extracted_report/extracted_report.controller.js
server/api/extracted_report/extracted_report.socket.js
server/api/extracted_report/extracted_report.spec.js
server/api/extracted_report/index.js
server/api/fax_account/fax_account.controller.js
server/api/fax_account/fax_account.socket.js
server/api/fax_account/fax_account.spec.js
server/api/fax_account/index.js
server/api/fax_application/fax_application.controller.js
server/api/fax_application/fax_application.socket.js
server/api/fax_application/fax_application.spec.js
server/api/fax_application/index.js
server/api/fax_business_automation/fax_business_automation.controller.js
server/api/fax_business_automation/fax_business_automation.socket.js
server/api/fax_business_automation/fax_business_automation.spec.js
server/api/fax_business_automation/index.js
server/api/fax_message/fax_message.ami.js
server/api/fax_message/fax_message.controller.js
server/api/fax_message/fax_message.socket.js
server/api/fax_message/fax_message.spec.js
server/api/fax_message/index.js
server/api/fax_queue/fax_queue.controller.js
server/api/fax_queue/fax_queue.socket.js
server/api/fax_queue/fax_queue.spec.js
server/api/fax_queue/index.js
server/api/fax_room/fax_room.controller.js
server/api/fax_room/fax_room.kue.js
server/api/fax_room/fax_room.socket.js
server/api/fax_room/fax_room.spec.js
server/api/fax_room/index.js
server/api/freshdesk_account/freshdesk_account.controller.js
server/api/freshdesk_account/freshdesk_account.socket.js
server/api/freshdesk_account/index.js
server/api/freshdesk_account/index.spec.js
server/api/freshdesk_configuration/freshdesk_configuration.controller.js
server/api/freshdesk_configuration/freshdesk_configuration.socket.js
server/api/freshdesk_configuration/index.js
server/api/freshdesk_configuration/index.spec.js
server/api/freshdesk_field/freshdesk_field.controller.js
server/api/freshdesk_field/freshdesk_field.socket.js
server/api/freshdesk_field/index.js
server/api/freshdesk_field/index.spec.js
server/api/integration/index.js
server/api/integration/integration.controller.js
server/api/integration/integration.socket.js
server/api/integration/integration.spec.js
server/api/interval/index.js
server/api/interval/interval.controller.js
server/api/interval/interval.socket.js
server/api/interval/interval.spec.js
server/api/jscripty_log/index.js [new file with mode: 0644]
server/api/jscripty_log/index.spec.js [new file with mode: 0644]
server/api/jscripty_log/jscripty_log.controller.js [new file with mode: 0644]
server/api/jscripty_log/jscripty_log.js [new file with mode: 0644]
server/api/jscripty_log/jscripty_log.socket.js [new file with mode: 0644]
server/api/jscripty_project/index.js
server/api/jscripty_project/index.spec.js
server/api/jscripty_project/jscripty_project.controller.js
server/api/jscripty_project/jscripty_project.js
server/api/jscripty_project/jscripty_project.socket.js
server/api/jscripty_report/index.js [new file with mode: 0644]
server/api/jscripty_report/index.spec.js [new file with mode: 0644]
server/api/jscripty_report/jscripty_report.controller.js [new file with mode: 0644]
server/api/jscripty_report/jscripty_report.js [new file with mode: 0644]
server/api/jscripty_report/jscripty_report.socket.js [new file with mode: 0644]
server/api/license/index.js
server/api/license/license.controller.js
server/api/license/license.socket.js
server/api/mail_account/index.js
server/api/mail_account/mail_account.controller.js
server/api/mail_account/mail_account.socket.js
server/api/mail_account/mail_account.spec.js
server/api/mail_application/index.js
server/api/mail_application/mail_application.controller.js
server/api/mail_application/mail_application.socket.js
server/api/mail_application/mail_application.spec.js
server/api/mail_attachment/index.js
server/api/mail_attachment/mail_attachment.controller.js
server/api/mail_attachment/mail_attachment.socket.js
server/api/mail_business_automation/index.js
server/api/mail_business_automation/mail_business_automation.controller.js
server/api/mail_business_automation/mail_business_automation.socket.js
server/api/mail_business_automation/mail_business_automation.spec.js
server/api/mail_message/index.js
server/api/mail_message/mail_message.controller.js
server/api/mail_message/mail_message.socket.js
server/api/mail_queue/index.js
server/api/mail_queue/mail_queue.controller.js
server/api/mail_queue/mail_queue.socket.js
server/api/mail_queue/mail_queue.spec.js
server/api/mail_room/index.js
server/api/mail_room/mail_room.controller.js
server/api/mail_room/mail_room.socket.js
server/api/mail_server_in/index.js
server/api/mail_server_in/mail_server_in.controller.js
server/api/mail_server_in/mail_server_in.socket.js
server/api/mail_server_out/index.js
server/api/mail_server_out/mail_server_out.controller.js
server/api/mail_server_out/mail_server_out.socket.js
server/api/mail_template/index.js
server/api/mail_template/mail_template.controller.js
server/api/mail_template/mail_template.socket.js
server/api/metric/index.js
server/api/metric/metric.controller.js
server/api/metric/metric.socket.js
server/api/metric/metric.spec.js
server/api/module/index.js
server/api/module/module.controller.js
server/api/module/module.socket.js
server/api/module/module.spec.js
server/api/module/setting/index.js
server/api/module/setting/setting.controller.js
server/api/module/setting/setting.socket.js
server/api/module/setting/setting.spec.js
server/api/motionbar/index.js
server/api/motionbar/motionbar.controller.js
server/api/motionbar/motionbar.socket.js
server/api/motionbar/motionbar.spec.js
server/api/report_agent/index.js
server/api/report_agent/report_agent.controller.js
server/api/report_agent/report_agent.socket.js
server/api/report_chat/index.js
server/api/report_chat/report_chat.controller.js
server/api/report_chat/report_chat.socket.js
server/api/report_chat/report_chat.spec.js
server/api/report_chat_session/index.js
server/api/report_chat_session/report_chat_session.controller.js
server/api/report_chat_session/report_chat_session.socket.js
server/api/report_chat_session/report_chat_session.spec.js
server/api/report_integration/index.js
server/api/report_integration/report_integration.controller.js
server/api/report_integration/report_integration.socket.js
server/api/report_mail/index.js
server/api/report_mail/report_mail.controller.js
server/api/report_mail/report_mail.socket.js
server/api/report_mail/report_mail.spec.js
server/api/report_mail_session/index.js
server/api/report_mail_session/report_mail_session.controller.js
server/api/report_mail_session/report_mail_session.socket.js
server/api/report_mail_session/report_mail_session.spec.js
server/api/report_queue/index.js
server/api/report_queue/report_queue.controller.js
server/api/report_queue/report_queue.socket.js
server/api/report_tree/index.js
server/api/report_tree/report_tree.controller.js
server/api/report_tree/report_tree.socket.js
server/api/report_tree/report_tree.spec.js
server/api/salesforce_account/index.js
server/api/salesforce_account/index.spec.js
server/api/salesforce_account/salesforce_account.controller.js
server/api/salesforce_account/salesforce_account.socket.js
server/api/salesforce_configuration/index.js
server/api/salesforce_configuration/index.spec.js
server/api/salesforce_configuration/salesforce_configuration.controller.js
server/api/salesforce_configuration/salesforce_configuration.socket.js
server/api/salesforce_field/index.js
server/api/salesforce_field/index.spec.js
server/api/salesforce_field/salesforce_field.controller.js
server/api/salesforce_field/salesforce_field.socket.js
server/api/service/index.js [new file with mode: 0644]
server/api/service/service.controller.js [new file with mode: 0644]
server/api/service/service.socket.js [new file with mode: 0644]
server/api/service/service.spec.js [new file with mode: 0644]
server/api/setting/index.js
server/api/setting/setting.controller.js
server/api/setting/setting.socket.js
server/api/setting/setting.spec.js
server/api/square_odbc/index.js
server/api/square_odbc/square_odbc.controller.js
server/api/square_odbc/square_odbc.socket.js
server/api/square_odbc/square_odbc.spec.js
server/api/square_project/index.js
server/api/square_project/square_project.controller.js
server/api/square_project/square_project.socket.js
server/api/square_project/square_project.spec.js
server/api/sugarcrm_account/index.js
server/api/sugarcrm_account/index.spec.js
server/api/sugarcrm_account/sugarcrm_account.controller.js
server/api/sugarcrm_account/sugarcrm_account.socket.js
server/api/sugarcrm_configuration/index.js
server/api/sugarcrm_configuration/index.spec.js
server/api/sugarcrm_configuration/sugarcrm_configuration.controller.js
server/api/sugarcrm_configuration/sugarcrm_configuration.socket.js
server/api/sugarcrm_field/index.js
server/api/sugarcrm_field/index.spec.js
server/api/sugarcrm_field/sugarcrm_field.controller.js
server/api/sugarcrm_field/sugarcrm_field.socket.js
server/api/tag/index.js
server/api/tag/tag.controller.js
server/api/tag/tag.socket.js
server/api/tag/tag.spec.js
server/api/team/index.js
server/api/team/team.controller.js
server/api/team/team.socket.js
server/api/team/team.spec.js
server/api/telephone/index.js
server/api/telephone/telephone.controller.js
server/api/telephone/telephone.socket.js
server/api/thing/index.js
server/api/thing/thing.controller.js
server/api/thing/thing.socket.js
server/api/thing/thing.spec.js
server/api/trigger/index.js
server/api/trigger/trigger.controller.js
server/api/trigger/trigger.socket.js
server/api/trigger/trigger.spec.js
server/api/trunk/index.js
server/api/trunk/trunk.ami.js
server/api/trunk/trunk.controller.js
server/api/trunk/trunk.socket.js
server/api/trunk/trunk.spec.js
server/api/update/index.js
server/api/update/update.controller.js
server/api/update/update.js
server/api/update/update.socket.js
server/api/update/update.spec.js
server/api/upload/index.js
server/api/upload/upload.controller.js
server/api/upload/upload.socket.js
server/api/upload/upload.spec.js
server/api/user/index.js
server/api/user/user.ami.js
server/api/user/user.controller.js
server/api/user/user.socket.js
server/api/user_has_chat_queue/index.js
server/api/user_has_chat_queue/user_has_chat_queue.controller.js
server/api/user_has_chat_queue/user_has_chat_queue.socket.js
server/api/user_has_chat_queue/user_has_chat_queue.spec.js
server/api/user_has_chat_room/index.js
server/api/user_has_chat_room/user_has_chat_room.controller.js
server/api/user_has_chat_room/user_has_chat_room.socket.js
server/api/user_has_chat_room/user_has_chat_room.spec.js
server/api/user_has_fax_queue/index.js
server/api/user_has_fax_queue/user_has_fax_queue.controller.js
server/api/user_has_fax_queue/user_has_fax_queue.socket.js
server/api/user_has_fax_queue/user_has_fax_queue.spec.js
server/api/user_has_mail_queue/index.js
server/api/user_has_mail_queue/user_has_mail_queue.controller.js
server/api/user_has_mail_queue/user_has_mail_queue.socket.js
server/api/user_has_mail_queue/user_has_mail_queue.spec.js
server/api/user_has_service/index.js [new file with mode: 0644]
server/api/user_has_service/user_has_service.controller.js [new file with mode: 0644]
server/api/user_has_service/user_has_service.socket.js [new file with mode: 0644]
server/api/user_has_service/user_has_service.spec.js [new file with mode: 0644]
server/api/user_has_team/index.js
server/api/user_has_team/user_has_team.controller.js
server/api/user_has_team/user_has_team.model.js
server/api/user_has_team/user_has_team.socket.js
server/api/user_has_team/user_has_team.spec.js
server/api/user_has_voice_queue/index.js
server/api/user_has_voice_queue/user_has_voice_queue.controller.js
server/api/user_has_voice_queue/user_has_voice_queue.socket.js
server/api/user_has_voice_queue/user_has_voice_queue.spec.js
server/api/variable/index.js
server/api/variable/variable.controller.js
server/api/variable/variable.socket.js
server/api/variable/variable.spec.js
server/api/voice_context/index.js
server/api/voice_context/voice_context.ami.js
server/api/voice_context/voice_context.controller.js
server/api/voice_context/voice_context.socket.js
server/api/voice_context/voice_context.spec.js
server/api/voice_extension/index.js
server/api/voice_extension/voice_extension.controller.js
server/api/voice_extension/voice_extension.socket.js
server/api/voice_extension/voice_extension.spec.js
server/api/voice_musiconhold/index.js
server/api/voice_musiconhold/voice_musiconhold.controller.js
server/api/voice_musiconhold/voice_musiconhold.socket.js
server/api/voice_musiconhold/voice_musiconhold.spec.js
server/api/voice_queue/index.js
server/api/voice_queue/voice_queue.controller.js
server/api/voice_queue/voice_queue.socket.js
server/api/voice_queue/voice_queue.spec.js
server/api/voice_voicemail/index.js
server/api/voice_voicemail/voice_voicemail.controller.js
server/api/voice_voicemail/voice_voicemail.socket.js
server/api/voice_voicemail/voice_voicemail.spec.js
server/api/widget/index.js
server/api/widget/widget.controller.js
server/api/widget/widget.spec.js
server/api/xchatty/index.js
server/api/xchatty/xchatty.controller.js
server/api/xchatty/xchatty.socket.js
server/api/zendesk_account/index.js
server/api/zendesk_account/zendesk_account.controller.js
server/api/zendesk_account/zendesk_account.socket.js
server/api/zendesk_account/zendesk_account.spec.js
server/api/zendesk_configuration/index.js
server/api/zendesk_configuration/zendesk_configuration.controller.js
server/api/zendesk_configuration/zendesk_configuration.socket.js
server/api/zendesk_configuration/zendesk_configuration.spec.js
server/api/zendesk_field/index.js
server/api/zendesk_field/zendesk_field.controller.js
server/api/zendesk_field/zendesk_field.socket.js
server/api/zendesk_field/zendesk_field.spec.js
server/app.js
server/auth/auth.service.js
server/auth/facebook/index.js
server/auth/facebook/passport.js
server/auth/google/index.js
server/auth/google/passport.js
server/auth/index.js
server/auth/local/index.js
server/auth/local/local.ami.js
server/auth/local/passport.js
server/auth/twitter/index.js
server/auth/twitter/passport.js
server/config/agi.js
server/config/ami/acw.js
server/config/ami/agent.js
server/config/ami/call.js
server/config/ami/dial.js
server/config/ami/index.js
server/config/ami/member.js
server/config/ami/queue_caller.js
server/config/ami/queue_member.js
server/config/analytics.js
server/config/autodialer/index.js
server/config/autodialer/process.js
server/config/automations/fax.js
server/config/automations/mail.js
server/config/environment/development.js
server/config/express.js
server/config/fax.js
server/config/history.js
server/config/imap/imap.js
server/config/imap/index.js
server/config/integration.js
server/config/integrations/index.js
server/config/integrations/zendesk.js
server/config/kue.chat.js
server/config/kue.fax.js
server/config/kue.mail.js
server/config/license/index.js
server/config/license/license.service.js
server/config/local.env.sample.js
server/config/logger.js
server/config/seed.js
server/config/seedp.js
server/config/smtp/index.js
server/config/smtp/smtp.js
server/config/socketio.js
server/config/triggers/chat.js
server/config/triggers/cm.js
server/config/triggers/index.js
server/config/triggers/mail.js
server/config/triggers/util.js
server/config/triggers/voice.js
server/files/integrations/zendesk/app.js
server/migrations/20151202190300-test.js
server/models/asterisk_manager.js
server/models/asterisk_manager_interface.js
server/models/autodialer_contact.js
server/models/autodialer_process.js
server/models/automation.js
server/models/business_action.js
server/models/business_condition.js
server/models/channel.js
server/models/chat_application.js
server/models/chat_enquiry.js
server/models/chat_message.js
server/models/chat_queue.js
server/models/chat_room.js
server/models/chat_visitor.js
server/models/chat_website.js
server/models/company.js
server/models/contact.js
server/models/contact_email.js
server/models/contact_has_custom_field.js
server/models/contact_phone.js
server/models/custom_field.js
server/models/custom_report.js
server/models/dashboard.js
server/models/default_report.js
server/models/desk_account.js
server/models/desk_configuration.js
server/models/desk_field.js
server/models/event.js
server/models/extracted_report.js
server/models/fax_account.js
server/models/fax_application.js
server/models/fax_business_automation.js
server/models/fax_message.js
server/models/fax_queue.js
server/models/fax_room.js
server/models/freshdesk_account.js
server/models/freshdesk_configuration.js
server/models/freshdesk_field.js
server/models/history/report_agent_history.js
server/models/history/report_call_history.js
server/models/history/report_dial_history.js
server/models/history/report_integration_history.js
server/models/history/report_mail_session_history.js
server/models/history/report_member_history.js
server/models/history/report_queue_history.js
server/models/index.js
server/models/integration.js
server/models/interval.js
server/models/jscripty_log.js
server/models/jscripty_project.js
server/models/jscripty_report.js
server/models/mail_account.js
server/models/mail_application.js
server/models/mail_attachment.js
server/models/mail_automation.js
server/models/mail_business_automation.js
server/models/mail_message.js
server/models/mail_queue.js
server/models/mail_room.js
server/models/mail_room_status.js
server/models/mail_server_in.js
server/models/mail_server_out.js
server/models/mail_template.js
server/models/mail_trigger.js
server/models/metric.js
server/models/module.js
server/models/motionbar.js
server/models/report_agent.js
server/models/report_call.js
server/models/report_chat.js
server/models/report_chat_session.js
server/models/report_dial.js
server/models/report_field.js
server/models/report_integration.js
server/models/report_mail.js
server/models/report_mail_session.js
server/models/report_member.js
server/models/report_queue.js
server/models/report_square.js
server/models/report_square_detail.js
server/models/report_tree.js
server/models/salesforce_account.js
server/models/salesforce_configuration.js
server/models/salesforce_field.js
server/models/service.js [new file with mode: 0644]
server/models/settings.js
server/models/square_odbc.js
server/models/square_project.js
server/models/sugarcrm_account.js
server/models/sugarcrm_configuration.js
server/models/sugarcrm_field.js
server/models/tag.js
server/models/team.js
server/models/telephone.js
server/models/trigger.js
server/models/trunk.js
server/models/update.js
server/models/upload.js
server/models/user.js
server/models/user_has_chat_queue.js
server/models/user_has_chat_room.js
server/models/user_has_fax_queue.js
server/models/user_has_mail_queue.js
server/models/user_has_service.js [new file with mode: 0644]
server/models/user_has_team.js
server/models/user_has_voice_queue.js
server/models/variable.js
server/models/voice_context.js
server/models/voice_extension.js
server/models/voice_musiconhold.js
server/models/voice_queue.js
server/models/voice_voicemail.js
server/models/voice_voicemail_messages.js
server/models/zendesk_account.js
server/models/zendesk_configuration.js
server/models/zendesk_field.js
server/routes.js
server/utils/report_extraction.js

index 3c9e13c..a22585b 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "motion",
-  "version": "0.0.32",
+  "version": "0.0.33",
   "main": "server/app.js",
   "dependencies": {
     "accept-language-parser": "^1.0.2",
     "grunt-newer": "~1.1.1",
     "grunt-ng-annotate": "^1.0.1",
     "grunt-node-inspector": ">=0.2.0",
+    "grunt-nodemailer": "^0.3.0",
     "grunt-nodemon": "~0.4.0",
     "grunt-open": "~0.2.3",
     "grunt-protractor-runner": "^2.0.0",
similarity index 52%
rename from public/app/3aec22c1.app.js
rename to public/app/24463f40.app.js
index 7d06847..6a818f3 100644 (file)
@@ -1,42 +1,43 @@
-"use strict";angular.module("xCallyShuttleApp",["adf","adf.structures.base","adf.widget.clock","adf.widget.iframe","adf.widget.counter","adf.widget.table","adf.widget.pie-chart","angular-md5","angular.filter","angularFileUpload","btford.socket-io","chart.js","checklist-model","colorpicker.module","frapontillo.bootstrap-switch","infinite-scroll","LocalStorageModule","mgo-angular-wizard","ng-slide-down","ngAnimate","ngBootstrap","ngCookies","ngCsv","ngFileSaver","ngJsTree","ngMap","ngPapaParse","ngResource","ngSanitize","notification","oc.lazyLoad","pascalprecht.translate","pdf","remoteValidation","smart-table","sprintf","textAngular","toastr","ui-notification","ui.bootstrap.modal","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.timepicker","ui.bootstrap.tooltip","ui.bootstrap.tpls","ui.bootstrap.accordion","ui.bootstrap.progressbar","ui.grid","ui.grid.exporter","ui.grid.grouping","ui.grid.moveColumns","ui.grid.pagination","ui.grid.treeView","ui.grid.selection","ui.grid.exporter","ui.router","ui.navbar","ui.select","ui.sortable","xeditable","ngAudio","truncate","ngScrollbars","ngEmoticons"]).config(["$stateProvider","$urlRouterProvider","$locationProvider","$httpProvider","$translateProvider","localStorageServiceProvider","dashboardProvider","ScrollBarsProvider",function(a,b,c,d,e,f,g,h){b.otherwise("/dashboard/voice"),e.useStaticFilesLoader({prefix:"assets/languages/locale-",suffix:".json"}),e.preferredLanguage("en_EN"),e.useLocalStorage(),e.useSanitizeValueStrategy("sanitize"),c.html5Mode(!0),d.interceptors.push("authInterceptor"),g.structure("4-4-4",{rows:[{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("3-3-3-3",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"}]}]}),f.setPrefix("xcally"),h.defaults={scrollButtons:{scrollAmount:"auto",enable:!0},axis:"y"}}]).factory("settings",["$rootScope","$interval","License",function(a,b,c){var d={layout:{pageSidebarClosed:!1,pageQuickSidebarOpened:!1,pageBodySolid:!1,pageAutoScrollOnLoad:1e3}};return a.settings=d,c.get(function(b){b.license&&(a.license=b.license)}),d}]).factory("authInterceptor",["$rootScope","$q","$cookieStore",function(a,b,c){return{request:function(a){return a.headers=a.headers||{},c.get("token")&&(a.headers.Authorization="Bearer "+c.get("token")),a}}}]).run(["$rootScope","$location","$state","$stateParams","$window","$http","Auth","editableThemes","editableOptions",function(a,b,c,d,e,f,g,h,i){a.$state=c,a.$stateParams=d,h.bs3.inputClass="input-sm",h.bs3.buttonsClass="btn-xs",i.theme="bs3",a.online=navigator.onLine,e.addEventListener("offline",function(){a.$apply(function(){a.online=!1})},!1),e.addEventListener("online",function(){a.$apply(function(){a.online=!0})},!1),a.$on("$stateChangeStart",function(a,c){g.isLoggedInAsync(function(a){c.authenticate&&!a&&b.path("/login")})}),a.updateTableConfig=function(a,b){var c=_.find(a,{name:"All"});c&&(c.value=b)}}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.agents={checked:[]},a.check=function(b,c){c?a.agents.checked=angular.copy(_.pluck(a.displayedAgents,"id")):a.agents.checked=[]},a.getAgents=function(b){return _.map(a.displayedAgents,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("agent"),b.url="/api/agents",h.getPage(b).then(function(d){a.displayedAgents=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.agentsByPage,a.displayedAgents.length),c.updateTableConfig(a.conf.agentsByPage,a.displayedAgents.length)}),f.socket.on("agent:save",function(){a.initList(b)}),f.socket.on("agent:remove",function(c){a.agents.checked=_.without(a.agents.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/agents/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/agents",{params:{id:a.agents.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.list",{url:"/list",templateUrl:"app/agent/list/list.html",controller:"AgentListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","socket","FileUploader","Auth",function(a,b,c,d,e,f,g,h,i){a.Auth=i,a.updatePassword=function(){var f,g;i.isAdmin()?(f="/api/agents/password/"+e.id+"/reset",g={newPassword:a.agent.newPwd}):(f="/api/agents/password/",g={oldPassword:a.agent.currentPwd,newPassword:a.agent.newPwd}),b.put(f,g).success(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var j=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});j.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),j.onSuccessItem=function(b,e,f,g){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},j.onErrorItem=function(a,b,e,f){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},j.onCompleteAll=function(){j.clearQueue()},a.initView=function(){b.get("/api/agents/"+e.id).success(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[]}).error(function(a){c.show(a.message,"danger")})},a.updateItem=function(){var f=angular.copy(a.agent),g=angular.copy(a.agent);delete f.password,delete f.md5secret,f.transport=f.transport.join(","),f.allow=f.allow.join(";"),b.put("/api/agents/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.agent=g,b.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.view",{url:"/view/:id",templateUrl:"app/agent/view/view.html",controller:"AgentViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.agents.view.account",{url:"/account",templateUrl:"app/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$http","xAlert","$location","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){b.post("/api/agents/validate/",a.item).success(function(a){console.log(a),a.length?c.show(f.instant("MESSAGE_EXIST_INTERNAL"),"danger"):e.wizard().next()}).error(function(a){c.show(f.instant(a.message),"danger")})},a.getFirstFreeInternal=function(){b.get("/api/settings/internal").success(function(b){a.item.internal=b.value}).error(function(a){c.show(f.instant(a.message),"danger")})},a.exitValidation=function(a){return a},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/agents/",a.item).success(function(){d.path("/agents/list")}).error(function(a){a.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.wizard",{url:"/wizard",templateUrl:"app/agent/wizard/wizard.html",controller:"AgentWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics",{url:"/analytics",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted",{url:"/extracted",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticExtractedListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log","FileSaver","Blob",function(a,b,c,d,e,f,g,h,i,j,k,l){a.conf={extractsByPage:{name:"10",value:10}},a.moment=moment,a.extractsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Extracts={checked:[]},a.check=function(b,c){c?a.Extracts.checked=angular.copy(_.pluck(a.displayedExtracts,"id")):a.Extracts.checked=[]},a.getExtracts=function(b){return _.map(a.displayedExtracts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("extracted_report"),b.url="/api/analytics/extracted",h.getPage(b).then(function(c){a.displayedExtracts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.extractsByPage,a.displayedExtracts.length),d.updateTableConfig(a.conf.extractsByPage,a.displayedExtracts.length)}),c.socket.on("extracted_report:save",function(){a.initList(b)}),c.socket.on("extracted_report:remove",function(c){a.Extracts.checked=_.without(a.Extracts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/analytics/extracted/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/analytics/extracted",{params:{id:a.Extracts.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.download=function(a){b.get("/api/analytics/extracted/download/"+a.id).success(function(b){var c=a.output.toLowerCase(),d=new l([b],{type:"application/"+c}),e=a.name+"_"+moment(a.startDate).format("MM-DD-YYYY").toString()+"_"+moment(a.startDate).format("MM-DD-YYYY").toString()+"."+c;k.saveAs(d,e)}).error(function(a){f.show(e.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted.list",{url:"/list",templateUrl:"app/analytic/extracted/list/list.html",controller:"AnalyticExtractedListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.tables=[{name:"Agent Report",value:"report_agent_history"},{name:"Mail Report",value:"report_mail_session_history"},{name:"Queue Report",value:"report_queue_history"},{name:"Integration Report",value:"report_integration_history"},{name:"Chat Report",value:"report_chat_session_history"}],a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={metricsByPage:{name:"10",value:10}},a.metricsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Metrics={checked:[]},a.check=function(b,c){c?a.Metrics.checked=angular.copy(_.pluck(a.displayedMetrics,"id")):a.Metrics.checked=[]},a.getMetrics=function(b){return _.map(a.displayedMetrics,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("metric"),b.url="/api/analytics/metrics",h.getPage(b).then(function(c){a.displayedMetrics=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.metricsByPage,a.displayedMetrics.length),d.updateTableConfig(a.conf.metricsByPage,a.displayedMetrics.length)}),c.socket.on("metric:save",function(){a.initList(b)}),c.socket.on("metric:remove",function(c){a.Metrics.checked=_.without(a.Metrics.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/analytics/metrics/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/analytics/metrics",{params:{id:a.Metrics.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/analytic/metric/list/create.modal.html",controller:"AnalyticMetricListCreateModalCtrl"});a.result.then(function(a){b.post("/api/analytics/metrics",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.list",{url:"/list",templateUrl:"app/analytic/metric/list/list.html",controller:"AnalyticMetricListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics",{url:"/metrics",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.tables=[{name:"Agent Report",value:"report_agent"},{name:"Mail Report",value:"report_mail_session"},{name:"Queue Report",value:"report_queue"},{name:"Integration Report",value:"report_integration"},{name:"Chat Report",value:"report_chat_session"}],a.getMetric=function(){b.get("/api/analytics/metrics/"+e.id).success(function(b){a.metric=b}).error(function(a){console.error(a),f.path("/analytics/metrics/list")})},a.updateMetric=function(){var f=angular.copy(a.metric);b.put("/api/analytics/metrics/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.metric=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.view",{url:"/view/:id",templateUrl:"app/analytic/metric/view/view.html",controller:"AnalyticMetricViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.metrics.view.settings",{url:"/settings",templateUrl:"app/analytic/metric/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("ReportListCopyModalCtrl",["$scope","$uibModalInstance","$log","customTreeData",function(a,b,c,d){a.customTreeData=d,a.forms={dashboard:void 0},a.item={},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){c.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0}},a.ac=function(){return!0},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.open_all()},a.ok=function(){b.close({parent:a.customTree.get_selected(!0).pop().id})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListCreateModalCtrl",["$scope","$uibModalInstance","path",function(a,b,c){a.path=c,a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListExtractModalCtrl",["$scope","$uibModalInstance","$http","report","xAlert","$translate","$timeout","uiGridExporterConstants",function(a,b,c,d,e,f,g,h){a.dates={startDate:moment().startOf("day"),endDate:moment().endOf("day")},a.ranges={Today:[moment(),moment()],Yesterday:[moment().subtract(1,"days"),moment().subtract(1,"days")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]},a.extract=function(c){var d={startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString(),output:c};b.close(d)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticReportListCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","$log","Modal","$rootScope","stResource","$uibModal","FileSaver","Blob",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.searchField="",a.ac=function(){return!0},a.initDefaultScopeTree=function(){a.defaultTree=a.defaultTreeInstance.jstree(!0),a.defaultTree.deselect_all(),a.defaultTree.close_all(),a.defaultTree.open_node({id:1}),a.defaultTreeReady=!0,a.defaultTreeActive=!0,a.previousDefaultNode=""},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.close_all(),a.customTree.open_node({id:1}),a.customTreeReady=!0,a.previousCustomNode=""},a.$watchGroup(["defaultTreeReady","customTreeReady"],function(b,c,d){b[0]&&b[1]&&a.defaultTree.select_node({id:"1"})}),a.updateCustomTree=function(){var e={tree:angular.toJson(a.customTree.get_json("#",{flat:!0}))};b.put("/api/analytics/reports/trees/2",e).success(function(a){console.log("Custom Tree Updated")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.configTrees=function(){a.defaultTreeConfig={multiple:!1,animation:!0,core:{error:function(a){h.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["search"]},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){h.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["contextmenu","dnd","search"],contextmenu:{items:function(b,c){var e={create:{label:d.instant("APPLICATION_CREATE"),action:function(c){a.customTree.create_node(b),a.customTree.open_node(b)}},rename:{label:d.instant("APPLICATION_RENAME"),action:function(c){a.customTree.edit(b)}},remove:{label:d.instant("APPLICATION_REMOVE"),action:function(c){console.log(b),a.deleteNode(b.text,b)}}};return"#"===b.parent&&(delete e.rename,delete e.remove),c(e),e}}}},a.deleteNode=i.confirm["delete"](function(b){a.customTree.delete_node(b),a.previousCustomNode==b.id&&a.customTree.select_node({id:b.parent})}),a.searchTrees=function(){a.defaultTree.search(a.searchField),a.customTree.search(a.searchField)},a.selectDefaultNode=function(){if(a.customTreeReady){a.previousCustomNode="";var b=a.defaultTree.get_selected(!0),c=b.pop();if(a.defaultTree.deselect_node(b[0],!0),a.customTree.deselect_all(),a.defaultTree.select_node(c,!0),c.id===a.previousDefaultNode)return void console.log("def");a.previousDefaultNode=c.id,a.defaultTreeActive=!0,a.initList(a.tableState)}},a.selectCustomNode=function(){if(a.defaultTreeReady){a.previousDefaultNode="";var b=a.customTree.get_selected(!0),c=b.pop();if(a.customTree.deselect_node(b[0],!0),a.defaultTree.deselect_all(),a.customTree.select_node(c,!0),c.id===a.previousCustomNode)return void console.log("cus");a.previousCustomNode=c.id,a.defaultTreeActive=!1,a.initList(a.tableState)}},a.getTrees=function(){b.get("/api/analytics/reports/trees").success(function(b){a.defaultTreeData=JSON.parse(b[0].tree),a.customTreeData=JSON.parse(b[1].tree),a.configTrees()}).error(function(a){c.show(d.instant(a.message),"danger")})},a.conf={reportsByPage:{name:"10",value:10}},a.reportsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Reports={checked:[]},a.check=function(b,c){c?a.Reports.checked=angular.copy(_.pluck(a.displayedReports,"id")):a.Reports.checked=[]},a.getReports=function(b){return _.map(a.displayedReports,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){if(b){f.unsyncUpdates("custom_report"),a.Reports.checked=[];var c=a.defaultTree.get_selected(),d=a.customTree.get_selected();if(c.length){var e=c.pop();a.selectedNode=a.defaultTree.get_path(e," / "),b.url="/api/analytics/reports/default",b.search.params={parent:e}}else{if(!d.length)return;var e=d.pop();a.selectedNode=a.customTree.get_path(e," / "),b.url="/api/analytics/reports/custom",b.search.params={parent:e}}a.tableState=b,k.getPage(b).then(function(c){a.displayedReports=c.rows,b.pagination.numberOfPages=c.total_pages,j.updateTableConfig(a.reportsByPage,a.displayedReports.length),j.updateTableConfig(a.conf.reportsByPage,a.displayedReports.length)}),f.socket.on("custom_report:save",function(){a.defaultTreeActive||(console.log("save"),a.initList(b))}),f.socket.on("custom_report:remove",function(c){a.defaultTreeActive||(a.Reports.checked=_.without(a.Reports.checked,c.id),a.initList(b))})}},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("/api/analytics/reports/custom/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.deleteItems=i.confirm["delete"](function(){b["delete"]("/api/analytics/reports/custom",{params:{id:a.Reports.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.create=function(){var d=l.open({animation:!0,templateUrl:"app/analytic/report/list/create.modal.html",controller:"ReportListCreateModalCtrl",resolve:{path:function(){return a.selectedNode}}});d.result.then(function(d){d.parent=a.previousCustomNode,b.post("/api/analytics/reports/custom",d).then(function(a){g.path("/analytics/reports/view/"+a.data.id+"/settings")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})},a.copy=function(e){var f=a.defaultTreeActive?"/api/analytics/reports/default/copy/"+e:"/api/analytics/reports/custom/copy/"+e,g=l.open({animation:!0,templateUrl:"app/analytic/report/list/copy.modal.html",controller:"ReportListCopyModalCtrl",resolve:{customTreeData:function(){return a.customTreeData}}});g.result.then(function(a){b.post(f,a).then(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})},a["export"]=function(d){var e=a.defaultTreeActive?"/api/analytics/reports/default/"+d:"/api/analytics/reports/custom/"+d;b.get(e).success(function(a){delete a.id,_.forEach(a.Fields,function(a){delete a.id,delete a.CustomReportId});var b=new n([angular.toJson(a)],{type:"application/json;charset=utf-8"});m.saveAs(b,a.name+".json")}).error(function(a){console.error(a),c.show(a.message,"danger")})},a["import"]=function(e){var f=JSON.parse(e);f.parent=a.previousCustomNode;var g=f.name&&f.parent?!0:!1,h=!0;_.forEach(f.Fields,function(a){a.field&&a.alias||(h=!1)}),g&&h?b.post("/api/analytics/reports/custom/import",f).then(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")}):c.show(d.instant("MESSAGE_INVALID_JSON"),"danger")},a.preview=function(b){l.open({animation:!0,templateUrl:"app/analytic/report/list/preview.modal.html",controller:"ReportListPreviewModalCtrl",size:"full",resolve:{report:function(){return{id:b,tree:a.defaultTreeActive?"default":"custom"}}}})},a.extract=function(e){var f=l.open({animation:!0,templateUrl:"app/analytic/report/list/extract.modal.html",controller:"ReportListExtractModalCtrl",size:"md",resolve:{report:function(){return{id:e,tree:a.defaultTreeActive?"default":"custom"}}}});f.result.then(function(f){var g=a.defaultTreeActive?"/api/analytics/reports/default/extract/"+f.output+"/"+e:"/api/analytics/reports/custom/extract/"+f.output+"/"+e;b.post(g,f).then(function(a){c.show(d.instant("MESSAGE_REPORT_EXTRACTING"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.list",{url:"/list",templateUrl:"app/analytic/report/list/list.html",controller:"AnalyticReportListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ReportListPreviewModalCtrl",["$scope","$uibModalInstance","$http","report","xAlert","$translate","$timeout","uiGridExporterConstants",function(a,b,c,d,e,f,g,h){a.forms={dashboard:void 0},a.dates={startDate:moment().startOf("day"),endDate:moment().endOf("day")},a.ranges={Today:[moment(),moment()],Yesterday:[moment().subtract(1,"days"),moment().subtract(1,"days")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]};var i={pageNumber:1,pageSize:25,sort:null,where:{},order:{}};a.gridOptions={paginationPageSizes:[10,25,50],paginationPageSize:25,useExternalPagination:!0,enableSorting:!1,enableFiltering:!0,useExternalFiltering:!0,enableGrouping:!1,enableColumnMenus:!1,treeRowHeaderAlwaysVisible:!1,gridMenuShowHideColumns:!1,enableGridMenu:!1,onRegisterApi:function(b){a.gridApi=b,b.pagination.on.paginationChanged(a,function(b,c){i.pageNumber=b,i.pageSize=c,a.getPage()}),b.core.on.filterChanged(a,function(){var b=this.grid,c={};b.columns.forEach(function(a){console.log(a),a.filters[0].term&&(c[a.field]=a.filters[0].term)}),i.where=c,a.getPage()})}},a.getPage=function(){var b={params:{page:i.pageNumber-1,perPage:i.pageSize,uiPagination:!0,startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString()}};_.forOwn(i.where,function(a,c){b.params[c]=a}),console.log(b),c.get("/api/analytics/reports/"+d.tree+"/preview/"+d.id,b).success(function(b){console.log(b),a.gridOptions.totalItems=b.count["COUNT(*)"],a.gridOptions.paginationPageSizes[3]=b.count["COUNT(*)"],a.gridOptions.data=b.rows,delete b.count["COUNT(*)"],a.gridOptions.columnDefs=[],_.forOwn(b.count,function(b,c){a.gridOptions.columnDefs.push({name:c})}),a.showResult=!0}).error(function(a){e.show(f.instant(a.message),"danger")})},a.cancel=function(){b.dismiss("cancel")},g(function(){a.getPage()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports",{url:"/reports",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticReportViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","$timeout",function(a,b,c,d,e,f,g){function h(e){var f=_.find(a.tables,{table:e}).url;b.get(f).success(function(b){delete b.createdAt,delete b.updatedAt,delete b.id,a.tableFields=_.map(b,function(a,b){return{name:b,value:b}})}).error(function(a){c.show(d.instant(a.message),"danger")})}function i(e){console.log(e),b.get("/api/analytics/metrics/table",{params:{table:e}}).success(function(b){_.forEach(b,function(b){a.tableFields.push({name:"<strong>Metric.</strong>"+b.name,value:b.metric})})}).error(function(a){c.show(d.instant(a.message),"danger")})}function j(a){return String(a).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function k(a){if(!a)return"";for(var b="(",c=0;c<a.rules.length;c++)c>0&&(b+=" <strong>"+a.operator+"</strong> "),b+=a.rules[c].group?k(a.rules[c].group):a.rules[c].field+" "+j(a.rules[c].condition)+" '"+("like"===a.rules[c].condition?"%"+a.rules[c].value+"%":a.rules[c].value)+"'";return b+")"}a.$translate=d,a.tempReport={},a.tables=[{name:"Agent Report",table:"report_agent_history",url:"/api/report/agents/describe"},{name:"Mail Report",table:"report_mail_session_history",url:"/api/report/mail/sessions/describe"},{name:"Queue Report",table:"report_queue_history",url:"/api/report/queues/describe"},{name:"Integration Report",table:"report_integration_history",url:"/api/report/integrations/describe"},{name:"Chat Report",table:"report_chat_session_history",url:"/api/report/chat/sessions/describe"}];var l={group:{operator:"AND",rules:[]}};a.getReport=function(){a.firstLoad=!0,b.get("/api/analytics/reports/custom/"+e.id).success(function(b){a.report=b,_.forEach(a.report.Fields,function(a){delete a.id}),a.report.conditions=a.report.conditions?JSON.parse(a.report.conditions):_.clone(l,!0),a.getPreview()}).error(function(a){console.error(a),f.path("/analytics/reports/list")})},a.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},a.$watch("report.table",function(b,c){console.log(b),b&&(console.log("is newvalue"),h(b),i(b),c&&(console.log("is oldvalue"),a.tempReport[c]={conditions:a.report.conditions,fields:a.report.Fields}),a.firstLoad?a.firstLoad=!1:a.tempReport[b]?(a.report.Fields=a.tempReport[b].fields,a.report.conditions=a.tempReport[b].conditions):(a.report.Fields=[],a.report.conditions=_.clone(l,!0)))},!0),a.groupByField=[{name:"APPLICATION_YES",value:!0},{name:"APPLICATION_NO",value:!1}],a.functions=[{name:"Sum",value:"SUM"},{name:"Count",value:"COUNT"},{name:"Count Distinct",value:"COUNT DISTINCT"},{name:"Maximum",value:"MAX"},{name:"Minimum",value:"MIN"},{name:"Average",value:"AVG"},{name:"Group Concat",value:"GROUP_CONCAT"},{name:"Group Concat(asc)",value:"GROUP_CONCAT ASC"},{name:"Group Concat(desc)",value:"GROUP_CONCAT DESC"}],a.addField=function(){a.report.Fields.push({groupBy:!1,CustomReportId:a.report.id})},a.removeField=function(b){a.report.Fields.splice(b,1)},a.sortableOptions={"ui-floating":!0,cancel:".unsortable",handle:".report-field-handle",axis:"y"},a.updateReport=function(){if(a.report.Fields.length){var f=angular.copy(a.report);f.conditions=angular.toJson(f.conditions),b.put("/api/analytics/reports/custom/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.getPreview()}).error(function(b){c.show(d.instant(b.message),"danger"),f.conditions=JSON.parse(f.conditions),a.report=f})}else c.show(d.instant("MESSAGE_SELECT_A_FIELD"),"danger")},a.$watch("report.conditions",function(b){a.output=b?k(b.group):"()"},!0),a.gridOptions={enableFiltering:!0,treeRowHeaderAlwaysVisible:!1,enableGridMenu:!0},a.getPreview=function(){b.get("/api/analytics/reports/custom/preview/"+e.id,{params:{perPage:20}}).success(function(b){a.gridOptions.data=b.rows,a.gridOptions.columnDefs=_.map(a.report.Fields,function(a){return{name:a.alias}})}).error(function(a){c.show(d.instant(a.message||"MESSAGE_QUERY_NOT_VALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.view",{url:"/view/:id",templateUrl:"app/analytic/report/view/view.html",
-controller:"AnalyticReportViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.reports.view.settings",{url:"/settings",templateUrl:"app/analytic/report/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={AutomationsByPage:{name:"10",value:10}},a.AutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Automations={checked:[]},a.check=function(b,c){c?a.Automations.checked=angular.copy(_.pluck(a.displayedAutomations,"id")):a.Automations.checked=[]},a.getAutomations=function(b){return _.map(a.displayedAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("automation"),b.url="/api/automations",e.getPage(b).then(function(c){a.displayedAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.AutomationsByPage,a.displayedAutomations.length),d.updateTableConfig(a.conf.AutomationsByPage,a.displayedAutomations.length)}),g.socket.on("automation:save",function(){a.initList(b)}),g.socket.on("automation:remove",function(c){a.Automations.checked=_.without(a.Automations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/automations",{params:{id:a.Automations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/automations/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.list",{url:"/list",templateUrl:"app/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations",function(a,b,c,d,e,f){a.$automations=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/automations/"+b.id).success(function(b){a.automation=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$automations.automations[b.channel].conditions,a.fields.actions=a.$automations.automations[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.updateAutomation=function(){c.put("/api/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.view",{url:"/view/:id",templateUrl:"app/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.automations.view.settings",{url:"/settings",templateUrl:"app/automation/view/view.settings.html"}).state("main.automations.view.routes",{url:"/routes",templateUrl:"app/automation/view/view.routes.html"}).state("main.automations.view.application",{url:"/application",templateUrl:"app/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler",function(a,b,c,d,e,f){a.$automations=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$automations.automations[b].conditions,a.fields.actions=a.$automations.automations[b].actions},!0),a.item.channel="mail",a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/automations",a.item).success(function(){c.path("/automations/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.wizard",{url:"/wizard",templateUrl:"app/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat",{url:"/chat",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatMessage",["$resource",function(a){return a("/api/chat/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatRoom",["$resource",function(a){return a("/api/chat/rooms/:id/:controller",{id:"@id"},{me:{method:"GET",isArray:!0,params:{id:"me"}},users:{method:"GET",params:{id:"users"}},externals:{method:"GET",isArray:!0,params:{id:"type",controller:"external"}},groups:{method:"GET",isArray:!0,params:{id:"groups"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("preview",function(){return{templateUrl:"app/chat/preview/preview.html",restrict:"EA",link:function(a,b,c){}}}),angular.module("xCallyShuttleApp").controller("ChatQueueListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatQueuesByPage:{name:"10",value:10}},a.chatQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatQueues={checked:[]},a.check=function(b,c){c?a.chatQueues.checked=angular.copy(_.pluck(a.displayedChatQueues,"id")):a.chatQueues.checked=[]},a.initList=function(b){e.unsyncUpdates("chat_queue"),b.url="/api/chat/queues/",h.getPage(b).then(function(c){a.displayedChatQueues=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(c.queuesByPage,a.displayedChatQueues.length),g.updateTableConfig(a.conf.queuesByPage,a.displayedChatQueues.length)}),e.socket.on("chat_queue:save",function(){a.initList(b)}),e.socket.on("chat_queue:remove",function(c){a.chatQueues.checked=_.without(a.chatQueues.checked,c.id),a.initList(b)})},a.getChatQueues=function(b){return _.map(a.displayedChatQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/queues/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/queues/",{params:{id:a.chatQueues.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_queue")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.list",{url:"/list",templateUrl:"app/chat/queue/list/list.html",controller:"ChatQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("ChatQueue",["$resource",function(a){return a("/api/chat/queues/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/chat/user_has_queues",method:"GET",params:{ChatQueueId:a.queue.id}}).success(function(a){ComponentsDropdowns.bindChatQueue(c.rows,_.pluck(a,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.view",{url:"/view/:id",templateUrl:"app/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.chat.queues.view.settings",{url:"/settings",templateUrl:"app/chat/queue/view/view.settings.html"}).state("main.chat.queues.view.agents",{url:"/agents",templateUrl:"app/chat/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueWizardCtrl",["$scope","$http","$location","xAlert","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/chat/queues",a.item).success(function(){d.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/chat/queues/list")}).error(function(a){d.show(f.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.wizard",{url:"/wizard",templateUrl:"app/chat/queue/wizard/wizard.html",controller:"ChatQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view.agent",{url:"/agent",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentQueueCtrl",["$scope","$http","socket","Agent","ChatQueue",function(a,b,c,d,e){a.gridOptions={enableSorting:!1,enableFiltering:!0,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"agentName",displayName:"Agent",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.agentName">{{row.entity.fullname}} [{{row.entity.agentName}}]</span>'},{name:"online",cellClass:"text-center",cellTemplate:'<span class="badge badge-empty" data-ng-if="row.entity.online != null" data-ng-class="row.entity.online ? \'badge-success\' : \'badge-danger\'"></span>'},{name:"lastLoginAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.lastLoginAt" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},e.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("chat_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("chat_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_chat_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId});d.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_chat_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initAgents=function(){b.get("/api/report/chats").success(function(b){a.agents=b,c.socket.on("report_chat:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_chat:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view.agent.queues",{url:"/queues",controller:"ChatRealtimeViewAgentQueueCtrl",templateUrl:"app/chat/realtime/view/agent/queue/queue.html"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentTimelineCtrl",["$scope","$http","socket","Agent","ChatQueue","uiGridConstants",function(a,b,c,d,e,f){a.gridOptions={enableFiltering:!0,columnDefs:[{name:"lastevent",cellClass:"text-center",enableFiltering:!1,enableSorting:!1,displayName:"",cellTemplate:"<span><i data-ng-class=\"{'icon-user font-yellow': row.entity.lastevent === 'called', 'icon-user-following font-green': row.entity.lastevent === 'agent', 'icon-user-unfollow font-red': row.entity.lastevent === 'timeout', 'icon-user-unfollow font-blue': row.entity.lastevent === 'answered_elsewhere'}\"></i></span>"},{name:"chatqueuename",displayName:"Queue Name",cellClass:"text-center"},{name:"fullname",cellClass:"text-center"},{name:"visitoremail",displayName:"Visitor",cellClass:"text-center"},{name:"websitename",displayName:"Website",cellClass:"text-center"},{name:"agentcalledAt",displayName:"Called At",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentcalledAt" is="relative-time" datetime="{{row.entity.agentcalledAt}}">April 1, 2014</time>',sort:{direction:f.DESC,priority:0}},{name:"agentconnectAt",displayName:"Connected At",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentconnectedAt" is="relative-time" datetime="{{row.entity.agentconnectedAt}}">April 1, 2014</time>'},{name:"agentringnoanswerAt",displayName:"No Answer At",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentringnoanswerAt" is="relative-time" datetime="{{row.entity.agentringnoanswerAt}}">April 1, 2014</time>'}],data:[]},a.initAgents=function(){b.get("/api/report/chats").success(function(b){a.gridOptions.data=b,c.socket.on("report_chat:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c||a.gridOptions.data.unshift(b)}),c.socket.on("report_chat:update",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c&&_.merge(a.gridOptions.data[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view.agent.timeline",{url:"/timeline",controller:"ChatRealtimeViewAgentTimelineCtrl",templateUrl:"app/chat/realtime/view/agent/timeline/timeline.html"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initChats=function(){b.get("/api/report/chat/sessions").success(function(b){a.sessions=b,c.socket.on("report_chat_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.push(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.chat.realtime.view.agent.queues"},{name:"Timeline",link:"main.chat.realtime.view.agent.timeline"}],a.sessions=[{name:"Sessions",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view",{url:"/view",templateUrl:"app/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"}).state("main.chat.realtime.view.sessions",{url:"/sessions",controller:"ChatRealtimeViewSessionCtrl",templateUrl:"app/chat/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("ChatStatisticCtrl",["$scope","$http","$stateParams","xAlert","socket","$location","$translate","$filter",function(a,b,c,d,e,f,g,h){a.conf={chatVisitorsByPage:10,chatRoomsByPage:10,chatEnquiriesByPage:10},a.$location=f,a.$translate=g,a.$filter=h,a.initList=function(){b.get("api/chat/visitors").success(function(b){a.chatVisitors=b,e.syncUpdates("chat_visitor",a.chatVisitors)}),b.get("api/chat/rooms").success(function(b){a.chatRooms=b,e.syncUpdates("chat_room",a.chatRooms)}),b.get("api/chat/enquiries").success(function(b){a.chatEnquiries=b,e.syncUpdates("chat_enquery",a.chatEnquiries)})},a.initVisitorView=function(){b.get("api/chat/visitors/"+c.id).success(function(b){a.chatVisitor=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initEnquiryView=function(){b.get("api/chat/enquiries/"+c.id).success(function(b){a.chatEnquiry=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initRoomView=function(){console.log(c),b.get("api/chat/rooms/"+c.id).success(function(b){a.chatRoom=b}).error(function(a){d.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.statistics",{url:"/statistics",templateUrl:"app/chat/statistic/statistic.html",controller:"ChatStatisticCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]},{name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]}])}]}}).state("main.chat.statistics.summary",{url:"/summary",templateUrl:"app/chat/statistic/statistic.summary.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}}).state("main.chat.statistics.enquiries",{url:"/enquiries",templateUrl:"app/chat/statistic/statistic.enquiry.html"}).state("main.chat.statistics.enquiry",{url:"/enquiry/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.enquiry.view.html"}).state("main.chat.statistics.conversations",{url:"/conversations",templateUrl:"app/chat/statistic/statistic.conversation.html"}).state("main.chat.statistics.conversation",{url:"/conversation/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.conversation.view.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]})}]}}).state("main.chat.statistics.visitors",{url:"/visitors",templateUrl:"app/chat/statistic/statistic.visitor.html"}).state("main.chat.statistics.visitor",{url:"/visitor/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.visitor.view.html"})}]),angular.module("xCallyShuttleApp").controller("ChatTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/chat").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline.list",{url:"/list",templateUrl:"app/chat/timeline/list/list.html",controller:"ChatTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatWebsitesByPage:{name:"10",value:10}},a.chatWebsitesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatWebsites={checked:[]},a.check=function(b,c){c?a.chatWebsites.checked=angular.copy(_.pluck(a.displayedChatWebsites,"id")):a.chatWebsites.checked=[]},a.getChatWebsites=function(b){return _.map(a.displayedChatWebsites,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("chat_website"),b.url="/api/chat/websites",h.getPage(b).then(function(c){a.displayedChatWebsites=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.chatWebsitesByPage,a.displayedChatWebsites.length),g.updateTableConfig(a.conf.chatWebsitesByPage,a.displayedChatWebsites.length)}),e.socket.on("chat_website:save",function(){a.initList(b)}),e.socket.on("chat_website:remove",function(c){a.chatWebsites.checked=_.without(a.chatWebsites.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/websites/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/websites",{params:{id:a.chatWebsites.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_website")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.list",{url:"/list",templateUrl:"app/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.chatApplications,"id")),b.post("api/chat/websites/"+d.websiteId+"/applications",{applications:_.pluck(a.chatApplications,"id")}).success(function(b){angular.copy(b,a.chatApplications)}).error(function(a){console.error(a)})}},b.get("/api/chat/applications",{params:{ChatWebsiteId:d.websiteId}}).success(function(b){a.chatApplications=b,e.socket.on("chat_application:remove",function(b){_.remove(a.chatApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/chat/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/chat/website/view/action/list/list.html",controller:"chatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/chat/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.chatQueueId=a.application.chatQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/chat/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/chat/website/view/action/view/view.html",controller:"chatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:1e3}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:1e3}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:c.websiteId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;case"list":f.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",f).success(function(){
-e.path("/chat/websites/view/"+c.websiteId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/chat/website/view/action/wizard/wizard.html",controller:"chatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet",{url:"/snippet",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewSnippetViewCtrl",["$scope","$http","$stateParams","$translate","Template",function(a,b,c,d,e){a.$translate=d,a.statePreview={state:"online"},a.lang={HeaderCurrentlyChatting:"Live Chat",HeaderOffline:"Contact us",OperatorOfflineMessage:"It appears as if all operators are currently offline.",OfflineMessage:"<strong>We're not online.</strong><br/>It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.",EnquiryMessagePlaceholder:"Your message...",EnquiryButtonText:"Leave message",EnquirySubmitSuccess:"Your message was sucessfully submitted - we will contact you as soon as possible.",OperatorComposing:"{fullname} is typing...",FirstMessageText:"",ExitChatButtonText:"Exit Chat",ExitChatQuestionText:"Are you sure?",ExitChatButtonConfirmText:"Yes",ExitChatButtonCancelText:"No",MessagePlaceholderText:"Your message...",MessageSendButtonText:"Send",ValidationEmailRequired:"Please enter your email address",ValidationEmailInvalid:"Please enter a valid email address",ValidationEmailMaxLength:"The email address may not exceed 85 characters",ValidationUsernameRequired:"Please enter your name",ValidationUsernameMaxLength:"The name may not exceed 45 characters",ValidationEnquiryRequired:"Please enter your enquiry",ValidationEnquiryMaxLength:"The enquiry may not exceed 1500 characters",ValidationMessageRequired:"Please enter your message",ValidationMessageMaxLength:"The message may not exceed 750 characters"},a.initView=function(){e.get().$promise.then(function(b){console.log(b),a.mailTemplates=b.rows}),b.get("api/chat/websites/"+c.websiteId+"/snippet").success(function(b){a.snippetCode=b})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet.view",{url:"/view",templateUrl:"app/chat/website/view/snippet/view/view.html",controller:"ChatWebsiteViewSnippetViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewCtrl",["$scope","xAlert","$http","$location","$stateParams","$translate","WizardHandler",function(a,b,c,d,e,f,g){a.initApplication=function(){a.forms={},a.application={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.deleteItem=function(a){c["delete"]("api/chat/applications/"+a).error(function(){b.show(f.instant("Something went wrong!"),"danger")})},a.initView=function(){c.get("/api/chat/websites/"+e.websiteId).success(function(b){a.chatWebsite=b}).error(function(a){b.show(a.message,"danger")})},a.updateItem=function(){c.put("/api/chat/websites/"+a.chatWebsite.id,a.chatWebsite).success(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_SUCCESS")+"!","success")}).error(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view",{url:"/view/:websiteId",templateUrl:"app/chat/website/view/view.html",controller:"ChatWebsiteViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites",{url:"/websites",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.$translate=d,a.forms={formSetting:void 0,formAppearance:void 0,formLabel:void 0,formFunctionality:void 0},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.item={},a.createItem=function(){b.post("api/chat/websites",a.item).success(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_SUCCESS"),"success"),c.path("/chat/websites/list")}).error(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.wizard",{url:"/wizard",templateUrl:"app/chat/website/wizard/wizard.html",controller:"ChatWebsiteWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies",{url:"/companies",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("CompanyListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={companiesByPage:{name:"10",value:10}},a.companiesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Companies={checked:[]},a.check=function(b,c){c?a.Companies.checked=angular.copy(_.pluck(a.displayedCompanies,"id")):a.Companies.checked=[]},a.getCompanies=function(b){return _.map(a.displayedCompanies,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("company"),b.url="/api/contactmanager/companies",h.getPage(b).then(function(c){a.displayedCompanies=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.companiesByPage,a.displayedCompanies.length),d.updateTableConfig(a.conf.companiesByPage,a.displayedCompanies.length)}),c.socket.on("company:save",function(){console.log("save"),a.initList(b)}),c.socket.on("company:remove",function(c){a.Companies.checked=_.without(a.Companies.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/contactmanager/companies/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/contactmanager/companies",{params:{id:a.Companies.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/contactmanager/company/list/create.modal.html",controller:"CompanyListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/companies",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.list",{url:"/list",templateUrl:"app/contactmanager/company/list/list.html",controller:"ContactManagerCompanyListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCompany=function(){b.get("/api/contactmanager/companies/"+e.id).success(function(b){a.company=b}).error(function(a){f.path("/contactmanager/companies/list")})},a.updateCompany=function(){var f=angular.copy(a.company);b.put("/api/contactmanager/companies/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.company=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.view",{url:"/view/:id",templateUrl:"app/contactmanager/company/view/view.html",controller:"ContactManagerCompanyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.companies.view.settings",{url:"/settings",templateUrl:"app/contactmanager/company/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts",{url:"/contacts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListImportModalCtrl",["$scope","$uibModalInstance","indexes","csv","xAlert","socket","$http",function(a,b,c,d,e,f,g){function h(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);var c={Phones:[],Emails:[],customFields:{}};_.forOwn(a.item,function(e,f){switch(f){case"Phones":a.item.Phones.forEach(function(a){""!==d[b][a]&&c.Phones.push({phone:d[b][a]})});break;case"Emails":a.item.Emails.forEach(function(a){""!==d[b][a]&&c.Emails.push({email:d[b][a]})});break;case"customFields":_.forOwn(a.item.customFields,function(a,e){c.customFields[e]=d[b][a]});break;case"tags":c.tags=[],a.item.tags.forEach(function(a){""!==d[b][a]&&c.tags.push(d[b][a])});break;default:c[f]=d[b][e]}}),c.tags=c.tags?c.tags.join(","):void 0,_.forOwn(c.customFields,function(a,b){""===a&&delete c.customFields[b]}),g.post("/api/contactmanager",c).success(function(c){a["import"].success+=i,a["import"].succeeded+=1,h(b+1)}).error(function(c){a["import"].fail+=i,a["import"].failed+=1,h(b+1)})}a.indexes=c,a.importing=!1,a.submitted=!1,a.stopped=!1,a["import"]={success:0,fail:0,succeeded:0,failed:0},a.csvLength=d.length;var i=100/a.csvLength;a.forms={dashboard:void 0},a.item={},a.start=function(){console.log(d),a.importing=!0,a.submitted=!0,h(0)},a.getCustomFields=function(){g.get("/api/contactmanager/customfields").success(function(b){a.customFields=b.rows,f.syncUpdates("custom_field",a.customFields)}).error(function(a){console.error(a),e.show(a.message,"danger")})},a.close=function(){b.close()},a.stop=function(){a.stopped=!0}}]),angular.module("xCallyShuttleApp").controller("ContactManagerContactListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource","FileUploader","Papa","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j,k,l){var m;i.FileSelect.prototype.isEmptyAfterSelection=function(){return!0};var n=a.uploader=new i({queueLimit:1,clearInputAfterAddedToQueue:!0});n.onAfterAddingFile=function(b){console.log("fileadded"),j.parse(b._file,{header:!0,complete:function(b){a.uploader.clearQueue(),a["import"](b.data)},error:function(a){console.log(a)}})},a["import"]=function(b){f.unsyncUpdates("contact_manager");var c=k.open({animation:!0,size:"lg",backdrop:"static",keyboard:!1,templateUrl:"app/contactmanager/contact/list/import.modal.html",controller:"ContactManagerListImportModalCtrl",resolve:{indexes:function(){return _.keys(b[0])},csv:function(){return b}}});c.result.then(function(b){console.log("dismiss and synch"),f.socket.on("contact_manager:save",function(){a.initList(m)}),f.socket.on("contact_manager:remove",function(b){a.contacts.checked=_.without(a.contacts.checked,b.id),a.initList(m)})},function(){l.info("Modal dismissed at: "+new Date)})},a.conf={contactsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.contactsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.contacts={checked:[]},a.newContact=function(b){a.workspaces.push({name:"New Contact",type:"newContact",active:!0,data:b?b:null})},a.openContactTab=function(b){var c=_.find(a.workspaces,{contactID:b.id});c?c.active=!0:a.workspaces.push({name:b.fullname,type:"contact",contactID:b.id,active:!0})},a.check=function(b,c){c?a.contacts.checked=angular.copy(_.pluck(a.displayedContacts,"id")):a.contacts.checked=[]},a.getContacts=function(b){return _.map(a.displayedContacts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("contact_manager"),b.url="/api/contactmanager",m=b,h.getPage(b).then(function(c){console.log(c),a.displayedContacts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.contactsByPage,a.displayedContacts.length),d.updateTableConfig(a.conf.contactsByPage,a.displayedContacts.length)}),f.socket.on("contact_manager:save",function(){a.initList(b)}),f.socket.on("contact_manager:remove",function(c){a.contacts.checked=_.without(a.contacts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/contactmanager/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/contactmanager",{params:{id:a.contacts.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts.list",{url:"/list",templateUrl:"app/contactmanager/contact/list/list.html",controller:"ContactManagerContactListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager",{url:"/contactmanager",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.customfields",{url:"/customfields",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCustomFieldListCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerCustomFieldListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={cutomFieldsByPage:{name:"10",value:10}},a.customFieldsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.customFields={checked:[]},a.check=function(b,c){c?a.customFields.checked=angular.copy(_.pluck(a.displayedCustomFields,"id")):a.customFields.checked=[]},a.getCustomFields=function(b){return _.map(a.displayedCustomFields,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("custom_field"),b.url="/api/contactmanager/customfields",h.getPage(b).then(function(c){a.displayedCustomFields=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.customFieldsByPage,a.displayedCustomFields.length),d.updateTableConfig(a.conf.customFieldsByPage,a.displayedCustomFields.length)}),c.socket.on("custom_field:save",function(){console.log("save"),a.initList(b)}),c.socket.on("custom_field:remove",function(c){a.customFields.checked=_.without(a.customFields.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/contactmanager/customfields/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/contactmanager/customfields/",{params:{id:a.customFields.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/contactmanager/customfield/list/create.modal.html",controller:"ContactManagerCustomFieldListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/customfields/",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.customfields.list",{url:"/list",templateUrl:"app/contactmanager/customfield/list/list.html",controller:"ContactManagerCustomFieldListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCustomFieldViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCustomField=function(){b.get("/api/contactmanager/customfields/"+e.id).success(function(b){a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))}).error(function(a){console.error(a),f.path("/contactmanager/customfields/list")})},a.updateCustomField=function(){"select"===a.customField.type&&(a.customField.values=angular.toJson(a.choices));var f=angular.copy(a.customField);b.put("/api/contactmanager/customfields/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.customField=f})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.customfields.view",{url:"/view/:id",templateUrl:"app/contactmanager/customfield/view/view.html",controller:"ContactManagerCustomFieldViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.customfields.view.settings",{url:"/settings",templateUrl:"app/contactmanager/customfield/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","$http","xAlert","socket",function(a,b,c,d){function e(b,c){var d;return!b.queuecallerjoinAt||b.queuecallerleaveAt||b.queuecallercompleteAt||b.queuecallerabandonAt?b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="activeCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="completedCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&b.queuecallerabandonAt&&(d="abandonedCalls"):d="waitCalls",c?d:void(d&&a.queueStats[d]++)}a.queueStats={abandonedCalls:0,completedCalls:0,waitCalls:0,activeCalls:0},a.getQueueStats=function(){b.get("/api/report/queues").then(function(b){a.queueReports=b.data,a.queueReports.forEach(function(a){e(a,!1)}),d.socket.on("report_queue:save",function(b){console.log("report save or update");var c=_.find(a.queueReports,{id:b.id}),d=a.queueReports.indexOf(c);if(c){console.log("found item, is an update");var f=e(c,!0);console.log("old item value is "+f+", decrementing..."),f&&a.queueStats[f]--,_.merge(a.queueReports[d],b)}else console.log("item not found in collection, is a create"),a.queueReports.unshift(b);console.log("checking new item type and increasing..."),e(b,!1)})})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk",{url:"/desk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("DeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedDeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedDeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("desk_account"),b.url="/api/desk/accounts",h.getPage(b).then(function(d){a.displayedDeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedDeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedDeskAccounts.length)}),f.socket.on("desk_account:save",function(){a.initList(b)}),f.socket.on("desk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/desk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/desk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/desk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.list",{url:"/list",templateUrl:"app/desk/list/list.html",controller:"DeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("DeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","desk_com",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("desk_configuration"),g.unsyncUpdates("desk_field")}),a.initView=function(){b.get("/api/desk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/desk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/desk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("desk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/desk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/desk/configurations",a.configuration).success(function(a){e.path("desk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/desk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=j.fields.concat(b)}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/desk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("desk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/desk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/desk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/desk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(b.customField=_.result(c,"custom",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.data.choices?c.data.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.view",{url:"/view/:id",templateUrl:"app/desk/view/view.html",controller:"DeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.desk.view.account",{url:"/account",templateUrl:"app/desk/view/view.account.html"}).state("main.desk.view.configurations",{url:"/configurations",templateUrl:"app/desk/view/view.configurations.html"}).state("main.desk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/desk/view/view.configurationSettings.html",controller:"DeskViewCtrl"}).state("main.desk.view.configuration",{url:"/configuration",templateUrl:"app/desk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("DeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/desk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/desk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.wizard",{url:"/wizard",templateUrl:"app/desk/wizard/wizard.html",controller:"DeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","$log","stResource",function(a,b,c,d,e,f,g,h,i){a.conf={faxAccountsByPage:{name:"10",value:10}},a.faxAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.fax_accounts={checked:[]},a.check=function(b,c){c?a.fax_accounts.checked=angular.copy(_.pluck(a.displayedFaxAccounts,"id")):a.fax_accounts.checked=[]},a.initList=function(b){e.unsyncUpdates("fax_account"),b.url="/api/fax/accounts",i.getPage(b).then(function(c){a.displayedFaxAccounts=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.faxAccountsByPage,a.displayedFaxAccounts.length),g.updateTableConfig(a.conf.faxAccountsByPage,a.displayedFaxAccounts.length)}),e.socket.on("fax_account:save",function(){a.initList(b)}),e.socket.on("fax_account:remove",function(c){a.fax_accounts.checked=_.without(a.fax_accounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/fax/accounts/"+a).success(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_SUCCESS"),"success")}).error(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/accounts",{params:{id:a.fax_accounts.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.getFaxAccounts=function(b){return _.map(a.faxAccountsByPage,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.$on("$destroy",function(){e.unsyncUpdates("fax_account")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.list",{url:"/list",templateUrl:"app/fax/account/list/list.html",controller:"FaxAccountListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.forms={},a.sortableOptions={stop:function(){b.post("api/fax/accounts/"+c.id+"/applications",{applications:_.pluck(a.faxApplications,"id")}).success(function(b){a.faxApplications=b}).error(function(a){console.error(a)})},"ui-floating":!0},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.initApplication=function(){a.forms={},a.application={};
-},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("api/fax/applications/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.getAppdata=function(b,c){switch(b){case"agent":return a.agents?_.find(a.agents,{id:c}).name:c;case"queue":return a.faxQueues?_.find(a.faxQueues,{id:c}).name:c}return"UNKNOWN"},a.createItem=function(){switch(a.application.appdata=a.application.appdata.id,a.application.app){case"agent":a.application.UserId=parseInt(a.application.appdata,10);break;case"queue":a.application.FaxQueueId=parseInt(a.application.appdata,10)}a.application.FaxAccountId=c.id,b.post("api/fax/applications",a.application).success(function(){e.path("fax/accounts/view/"+c.id+"/routes")}).error(function(){h.show("Something went wrong!","danger")})},a.$watch("application.app",function(c){if(c){var d;switch(c){case"agent":d="api/agents";break;case"queue":d="api/fax/queues"}b.get(d).success(function(b){a.items=b.rows})}},!0),a.initView=function(){b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.log(a)}),b.get("/api/fax/accounts/"+c.id).success(function(b){a.account=b}).error(function(){})},a.getAgents=function(){b.get("api/fax/agents").success(function(b){a.agents=b})},a.getFaxApplications=function(){b.get("/api/fax/applications",{params:{FaxAccountId:c.id}}).success(function(b){a.faxApplications=b,g.socket.on("fax_application:remove",function(b){_.remove(a.faxApplications,{id:b.id})})}),b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/fax/queues").success(function(b){a.faxQueues=b.rows})},a.updateItemFaxAccount=function(){b.put("/api/fax/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_SUCCESS")+".","success")}).error(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.view",{url:"/view/:id",templateUrl:"app/fax/account/view/view.html",controller:"FaxAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.accounts.view.settings",{url:"/settings",templateUrl:"app/fax/account/view/view.settings.html",authenticate:!0}).state("main.fax.accounts.view.routes",{url:"/routes",templateUrl:"app/fax/account/view/view.routes.html",authenticate:!0}).state("main.fax.accounts.view.applications",{url:"/applications",templateUrl:"app/fax/account/view/view.applications.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.ecm=!1,a.item.minrate="9600",a.item.maxrate="33600",b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.error(a)})},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/fax/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_SUCCESS")+".","success"),c.path("/fax/accounts/list")}).error(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.wizard",{url:"/wizard",templateUrl:"app/fax/account/wizard/wizard.html",controller:"FaxAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={faxAutomationsByPage:{name:"10",value:10}},a.faxAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.faxAutomations={checked:[]},a.check=function(b,c){c?a.faxAutomations.checked=angular.copy(_.pluck(a.displayedFaxAutomations,"id")):a.faxAutomations.checked=[]},a.getFaxAutomations=function(b){return _.map(a.displayedFaxAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("fax_business_automation"),b.url="/api/fax/business/automations",e.getPage(b).then(function(c){a.displayedFaxAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.faxAutomationsByPage,a.displayedFaxAutomations.length),d.updateTableConfig(a.conf.faxAutomationsByPage,a.displayedFaxAutomations.length)}),g.socket.on("fax_business_automation:save",function(){a.initList(b)}),g.socket.on("fax_business_automation:remove",function(c){a.faxAutomations.checked=_.without(a.faxAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/fax/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/business/automations",{params:{id:a.faxAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/fax/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.$on("$destroy",function(){g.unsyncUpdates("fax_business_automation")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.list",{url:"/list",templateUrl:"app/fax/automation/list/list.html",controller:"FaxAutomationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationViewCtrl",["$scope","$stateParams","$http","automation","socket","xAlert","$translate","$log",function(a,b,c,d,e,f,g,h){a.initView=function(){a.forms={info:{}},a.automations=d.automations,c.get("/api/fax/business/automations/"+b.id).success(function(c){h.debug(c),a.test=c,a.automation=c,e.syncUpdatesByAttributes("business_condition",{FaxBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAutomation=function(){c.put("/api/fax/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){h.debug(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),h.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){console.log(b),a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.view",{url:"/view/:id",templateUrl:"app/fax/automation/view/view.html",controller:"FaxAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.automations.view.settings",{url:"/settings",templateUrl:"app/fax/automation/view/view.settings.html",authenticate:!0}).state("main.fax.automations.view.routes",{url:"/routes",templateUrl:"app/fax/automation/view/view.routes.html",authenticate:!0}).state("main.fax.automations.view.application",{url:"/application",templateUrl:"app/fax/automation/view/view.application.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationWizardCtrl",["$scope","$http","$location","automation","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(d.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){e.wizard().next()},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/fax/business/automations",a.automations).success(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success"),c.path("/fax/automations/list")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.wizard",{url:"/wizard",templateUrl:"app/fax/automation/wizard/wizard.html",controller:"FaxAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax",{url:"/fax",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxInboxComposeCtrl",["$scope","$http","FileUploader","$location","Auth","xAlert","$cookieStore","$translate",function(a,b,c,d,e,f,g,h){a.forms={},a.form={to:[],sto:[]},b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),a.isNewMessageFromEmpty=!0;var i=a.uploader=new c({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+g.get("token")}});i.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),i.onBeforeUploadItem=function(b){b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html?a.form.html:""})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},i.onCompleteAll=function(){i.clearQueue(),f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")},i.onWhenAddingFileFailed=function(){f.show(h.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.sendFax=function(){return a.form.sto.length?void(i.queue.length?i.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")}).error(function(a){f.show(h.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.cancel=function(){a.form.sto=[],delete a.form.from}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.compose",{url:"/compose",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxCtrl",["$scope","$http","$location","$translate","$timeout","$notification","Auth","socket","$interval",function(a,b,c,d,e,f,g,h,i){a.go=function(a,d,e){e?b.put("/api/fax/rooms/"+d,{status:e}).success(function(){c.path(a)}).error(function(a){console.error(a)}):c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox",{url:"/inbox",templateUrl:"app/fax/inbox/inbox.html",controller:"FaxInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxIncomingCtrl",["$scope","$http","$location","socket","Auth","xAlert",function(a,b,c,d,e,f){a.$location=c,a.getRooms=function(){e.isAdmin()?b.get("api/fax/rooms").success(function(b){a.faxRooms=b,d.syncUpdates("fax_room",a.faxRooms)}).error(function(a){console.error(a),f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")}):b.get("api/fax/rooms/agent/"+e.getCurrentUser().id).success(function(b){a.faxRooms=b,d.socket.on("fax_room:update",function(b){b.UserId===e.getCurrentUser().id&&a.faxRooms.push(b)})}).error(function(a){f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.incoming",{url:"/incoming",templateUrl:"app/fax/inbox/incoming/incoming.html",controller:"FaxInboxIncomingCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxRoomCtrl",["$scope","$http","$stateParams","$location","FileUploader","socket","Auth","xAlert","$translate","$cookieStore",function(a,b,c,d,e,f,g,h,i,j){function k(){a.lastMessage=_.reject(a.faxRoom.FaxMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(console.log(a.faxRoom),a.form.from=a.faxRoom.FaxAccount,a.form.to=[a.lastMessage.From.phone],a.form.sto=[a.lastMessage.From.phone])}var l=a.uploader=new e({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+j.get("token")}});l.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),l.onBeforeUploadItem=function(b){console.log(a.form.from.id,a.form.sto[0],a.isNewMessageFromEmpty,c.id,g.getCurrentUser().id),b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,roomId:c.id,userId:g.getCurrentUser().id,html:a.form.html}),console.log(b)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",b,c,d)},l.onCompleteAll=function(){l.clearQueue(),h.show(i.instant("MESSAGE_WELL_DONE"),"success")},l.onWhenAddingFileFailed=function(){h.show(i.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.initRoomView=function(){a.isNewMessageFromEmpty=!0,a.Auth=g,a.forms={},a.form={to:[],sto:[]},b.get("api/agents").success(function(b){a.agents=b}),b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),c.id&&b.get("/api/fax/rooms/"+c.id).success(function(b){a.faxRoom=b,a.isNewMessageFromEmpty=!1,f.syncUpdates("fax_message",[],function(b,c){"created"===b&&c.FaxRoomId===a.faxRoom.id&&(a.faxRoom.FaxMessages.push(c),k())}),k()}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.sendFax=function(){return a.form.sto.length?void(l.queue.length?l.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:g.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"success"),console.log("Fax Message sent")}).error(function(a){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.assignAgent=function(a){b.put("/api/fax/rooms/"+c.id,{UserId:a}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateStatus=function(d){b.put("/api/fax/rooms/"+c.id,{status:d}).success(function(b){a.faxRoom.status=b.status,h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],delete a.form.from,l.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.room",{url:"/room/:id",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxRoomCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCtrl",["$scope","$rootScope","$http","$translate","socket","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("fax_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.faxQueues={checked:[]},a.check=function(b,c){c?a.faxQueues.checked=angular.copy(_.pluck(a.displayedFaxQueues,"id")):a.faxQueues.checked=[]},a.getFaxQueues=function(b){return _.map(a.displayedFaxQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(c){e.unsyncUpdates("fax_queue"),c.url="/api/fax/queues",h.getPage(c).then(function(d){a.displayedFaxQueues=d.rows,c.pagination.numberOfPages=d.total_pages,b.updateTableConfig(d.queuesByPage,a.displayedFaxQueues.length),b.updateTableConfig(a.conf.queuesByPage,a.displayedFaxQueues.length)}),e.socket.on("fax_queue:save",function(){a.initList(c)}),e.socket.on("fax_queue:remove",function(b){a.faxQueues.checked=_.without(a.faxQueues.checked,b.id),a.initList(c)})},a.deleteItem=f.confirm["delete"](function(a){c["delete"]("/api/fax/queues/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.list",{url:"/list",templateUrl:"app/fax/queue/list/list.html",controller:"FaxQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/fax/queues/"+d.id).success(function(b){a.queue=b}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateFaxQueue=function(){var f=angular.copy(a.queue);b.put("/api/fax/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/fax/user_has_queues",method:"GET",params:{FaxQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindFaxQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.view",{url:"/view/:id",templateUrl:"app/fax/queue/view/view.html",controller:"FaxQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.fax.queues.view.settings",{url:"/settings",templateUrl:"app/fax/queue/view/view.settings.html"}).state("main.fax.queues.view.agents",{url:"/agents",templateUrl:"app/fax/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueWizardCtrl",["$scope","$http","WizardHandler","xAlert","$translate","$location",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/fax/queues",a.item).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success"),f.path("/fax/queues/list")}).error(function(a){d.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.wizard",{url:"/wizard",templateUrl:"app/fax/queue/wizard/wizard.html",controller:"FaxQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxTimelineListCtrl",["$scope","$http","socket","xAlert","$translate",function(a,b,c,d,e){function f(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/fax").success(function(a){a.forEach(f),c.socket.on("event:fax:save",f)}).error(function(a){console.error(a),d.show(e.instant("MESSAGE_FAX_ACCOUNT_GET_FAILURE"),"danger")})},a.$on("$destroy",function(){c.socket.removeAllListeners("event:fax:save")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline.list",{url:"/list",templateUrl:"app/fax/timeline/list/list.html",controller:"FaxTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk",{url:"/freshdesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FreshdeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedFreshdeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedFreshdeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("freshdesk_account"),b.url="/api/freshdesk/accounts",h.getPage(b).then(function(d){a.displayedFreshdeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedFreshdeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedFreshdeskAccounts.length)}),f.socket.on("freshdesk_account:save",function(){a.initList(b)}),f.socket.on("freshdesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/freshdesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/freshdesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/freshdesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.list",{url:"/list",templateUrl:"app/freshdesk/list/list.html",controller:"FreshdeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("freshdesk_configuration"),h.unsyncUpdates("freshdesk_field")}),a.initView=function(){b.get("/api/freshdesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/freshdesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/freshdesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("freshdesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/freshdesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/freshdesk/configurations",a.configuration).success(function(a){e.path("freshdesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/freshdesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=[],b=f("freshdesk")(b),_.forEach(b,function(b){a.accountFields.push(b.ticket_field)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/freshdesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("freshdesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/freshdesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/freshdesk/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"name",b.idField);c&&(b.customField=!_.result(c,"default",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.choices.length>0?c.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.view",{url:"/view/:id",templateUrl:"app/freshdesk/view/view.html",controller:"FreshdeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.freshdesk.view.account",{url:"/account",templateUrl:"app/freshdesk/view/view.account.html"}).state("main.freshdesk.view.configurations",{url:"/configurations",templateUrl:"app/freshdesk/view/view.configurations.html"}).state("main.freshdesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/freshdesk/view/view.configurationSettings.html",controller:"FreshdeskViewCtrl"
-}).state("main.freshdesk.view.configuration",{url:"/configuration",templateUrl:"app/freshdesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("FreshdeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/freshdesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/freshdesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.wizard",{url:"/wizard",templateUrl:"app/freshdesk/wizard/wizard.html",controller:"FreshdeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={intervalsByPage:{name:"10",value:10},labels:["name"]},a.intervalsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.intervals={checked:[]},a.check=function(b,c){c?a.intervals.checked=angular.copy(_.pluck(a.displayedIntervals,"id")):a.intervals.checked=[]},a.getIntervals=function(b){return _.map(a.displayedIntervals,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("interval"),b.url="/api/intervals",h.getPage(b).then(function(c){a.displayedIntervals=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.intervalsByPage,a.displayedIntervals.length),e.updateTableConfig(a.conf.intervalsByPage,a.displayedIntervals.length)}),c.socket.on("interval:save",function(){a.initList(b)}),c.socket.on("interval:remove",function(c){a.intervals.checked=_.without(a.intervals.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(d.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/intervals",{params:{id:a.intervals.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.list",{url:"/list",templateUrl:"app/interval/list/list.html",controller:"IntervalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){a.$translate=d,a.$interval=j.interval,a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(){a.subinterval={IntervalId:e.id},a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0}},a.next=function(){b.post("/api/intervals/validate/",a.subinterval).success(function(a){console.log(a),a.length?c.show(d.instant("MESSAGE_EXIST_SUBINTERVAL"),"danger"):h.wizard().next()}).error(function(a){c.show(d.instant(a.message),"danger")})},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from,a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to)):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from,a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to)):e="*",b+","+c+","+d+","+e},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.subIntervals=b.SubIntervals,f.unsyncUpdates("interval"),f.socket.on("interval:remove",function(b){b.id&&_.remove(a.subIntervals,function(a){return b.id===a.id})}),f.socket.on("interval:update",function(b){var c=_.find(a.subIntervals,{id:b.id});c.interval=b.interval}),f.socket.on("interval:save",function(b){if(b.IntervalId===e.id){var c=_.find(a.subIntervals,{id:b.id});c||a.subIntervals.push(b)}})}).error(function(a){console.error(a),g.path("/intervals/list")})},a.updateInterval=function(){var f=angular.copy(a.interval);b.put("/api/intervals/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.interval=f})},a.getSubInterval=function(){b.get("/api/intervals/"+e.appId).success(function(b){a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)},a.subinterval=b;var c,d=b.interval?b.interval.split(","):["*","*","*","*"];d.forEach(function(b,d){switch(d){case 0:"*"!==b?(c=b.split("-"),a.splittedInterval.t_from=moment(c[0],"HH:mm"),a.splittedInterval.t_to=moment(c[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==b?(c=b.split("-"),a.splittedInterval.wd_from=_.capitalize(c[0]),a.splittedInterval.wd_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==b?(c=b.split("-"),a.splittedInterval.md_from=c[0],a.splittedInterval.md_to=c[1]?c[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==b?(c=b.split("-"),a.splittedInterval.m_from=_.capitalize(c[0]),a.splittedInterval.m_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})}).error(function(a){console.error(a),g.path("/intervals/view/"+e.id+"/subintervals")})},a.createItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.post("/api/intervals/",a.subinterval).success(function(){g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.put("/api/intervals/"+e.appId,a.subinterval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.view",{url:"/view/:id",templateUrl:"app/interval/view/view.html",controller:"IntervalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.intervals.view.settings",{url:"/settings",templateUrl:"app/interval/view/view.settings.html"}).state("main.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/interval/view/view.subintervals.html",cache:!1}).state("main.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/interval/view/view.subinterval.html",authenticate:!0}).state("main.intervals.view.subintervals.settings",{url:"/settings/:appId",templateUrl:"app/interval/view/view.subintervalSettings.html",authenticate:!0,controller:"IntervalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={interval:void 0},a.item={},a.next=function(){b.post("/api/intervals/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_INTERVAL"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/intervals/",a.item).success(function(a){d.path("/intervals/view/"+a.id+"/subintervals")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.wizard",{url:"/wizard",templateUrl:"app/interval/wizard/wizard.html",controller:"IntervalWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty",{url:"/jscripty",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.message="Hello",a.conf={projectsByPage:{name:"10",value:10}},a.projectsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Projects={checked:[]},a.check=function(b,c){c?a.Projects.checked=angular.copy(_.pluck(a.displayedProjects,"id")):a.Projects.checked=[]},a.getProjects=function(b){return _.map(a.displayedProjects,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("jscripty_project"),b.url="/api/jscripty/projects",h.getPage(b).then(function(c){a.displayedProjects=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.projectsByPage,a.displayedProjects.length),d.updateTableConfig(a.conf.projectsByPage,a.displayedProjects.length)}),c.socket.on("jscripty_project:save",function(){a.initList(b)}),c.socket.on("jscripty_project:remove",function(c){a.Projects.checked=_.without(a.Projects.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/jscripty/projects/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/jscripty/projects",{params:{id:a.Projects.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.list",{url:"/list",templateUrl:"app/jscripty/project/list/list.html",controller:"JscriptyProjectListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectViewCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i,j){a.jscriptyProject={},a.getProject=function(){b.get("/api/jscripty/projects/"+d.id).success(function(b){a.jscriptyProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=f.getToken();var a=new EditorUi(new Editor);a.openString(b.draft,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),e.syncUpdates("jscripty_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.view",{url:"/view/:id",templateUrl:"app/jscripty/project/view/view.html",controller:"JscriptyProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/jscripty/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/jscripty/js/Editor.js","assets/plugins/jscripty/js/Graph.js","assets/plugins/jscripty/js/EditorUi.js","assets/plugins/jscripty/js/Actions.js","assets/plugins/jscripty/js/Menus.js","assets/plugins/jscripty/js/Sidebar.js","assets/plugins/jscripty/js/Toolbar.js","assets/plugins/jscripty/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={project:void 0},a.item={},a.next=function(){b.post("/api/jscripty/projects/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_PROJECT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/jscripty/projects/",a.item).success(function(a){console.log(a),d.path("/jscripty/projects/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.wizard",{url:"/wizard",templateUrl:"app/jscripty/project/wizard/wizard.html",controller:"JscriptyProjectWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAccountsByPage:{name:"10",value:10}},a.mailAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailAccounts={checked:[]},a.check=function(b,c){c?a.mailAccounts.checked=angular.copy(_.pluck(a.displayedMailAccounts,"id")):a.mailAccounts.checked=[]},a.getMailAccounts=function(b){return _.map(a.displayedMailAccounts,function(a){var c={};return b.forEach(function(b){_.isObject(b)?_.forIn(b,function(b,d){c[b]=a[d][b]}):c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("mail_server_in"),c.unsyncUpdates("mail_account"),b.url="/api/mail/accounts",g.getPage(b).then(function(c){a.displayedMailAccounts=c.rows,b.pagination.numberOfPages=c.total_pages}),c.socket.on("mail_server_in:save",function(){a.initList(b)}),c.socket.on("mail_account:save",function(){a.initList(b)}),c.socket.on("mail_account:remove",function(c){a.mailAccounts.checked=_.without(a.mailAccounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/accounts/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/accounts",{params:{id:a.mailAccounts.checked}}).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant(a.message),"danger")})}),a.restart=function(a){c.socket.emit("IMAP:"+a+":RESTART",{msg:"IMAP:"+a+":RESTART"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.list",{url:"/list",templateUrl:"app/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailAccount",["$resource",function(a){return a("/api/mail/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerIn",["$resource",function(a){return a("/api/mail/servers/in/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerOut",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"},{update:{method:"PUT"},test:{method:"GET"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.mailApplications,"id")),b.post("api/mail/accounts/"+d.accountId+"/applications",{applications:_.pluck(a.mailApplications,"id")}).success(function(b){angular.copy(b,a.mailApplications)}).error(function(a){console.error(a)})}},b.get("/api/mail/applications",{params:{MailAccountId:d.accountId}}).success(function(b){a.mailApplications=b,e.socket.on("mail_application:remove",function(b){_.remove(a.mailApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/mail/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.accountId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;case"list":f.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",f).success(function(){e.path("/mail/accounts/view/"+c.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","MailAccount","MailMessage","MailServerIn","MailServerOut",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){a.account=g.get({id:c.accountId})},a.updateItemMailAccount=function(){g.update({id:c.accountId},{name:a.account.name,description:a.account.description,address:a.account.address}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerIn=function(){i.update({id:a.account.MailServerIn.id},a.account.MailServerIn).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerOut=function(){j.update({id:a.account.MailServerOut.id},a.account.MailServerOut).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.test=function(){j.test({id:a.account.MailServerOut.id,controller:"test"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view",{url:"/view/:accountId",templateUrl:"app/mail/account/view/view.html",controller:"MailAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.accounts.view.settings",{url:"/settings",templateUrl:"app/mail/account/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.info={},a["in"]={"delete":!1,ssl:!0,protocol:"IMAP",port:993,mailbox:"INBOX",filter:"UNSEEN"},a.out={ssl:!0,port:465},a.$translate=d},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){var e={name:a.info.name,address:a.info.address,description:a.info.description,incoming:a["in"],outgoing:a.out};b.post("api/mail/accounts",e).success(function(){c.path("/mail/accounts/list")}).error(function(a){console.log(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAutomationsByPage:{name:"10",value:10}},a.mailAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.mailAutomations={checked:[]},a.check=function(b,c){c?a.mailAutomations.checked=angular.copy(_.pluck(a.displayedMailAutomations,"id")):a.mailAutomations.checked=[]},a.getMailAutomations=function(b){return _.map(a.displayedMailAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("mail_business_automation"),b.url="/api/mail/business/automations",e.getPage(b).then(function(c){a.displayedMailAutomations=c.mailAutomations,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mailAutomationsByPage,a.displayedMailAutomations.length),d.updateTableConfig(a.conf.mailAutomationsByPage,a.displayedMailAutomations.length)}),g.socket.on("mail_business_automation:save",function(){a.initList(b)}),g.socket.on("mail_business_automation:remove",function(c){a.mailAutomations.checked=_.without(a.mailAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/business/automations",{params:{id:a.mailAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),
-a.updateItem=function(a,d){b.put("api/mail/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.list",{url:"/list",templateUrl:"app/mail/automation/list/list.html",controller:"MailAutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationViewCtrl",["$scope","$stateParams","$http","$translate","automation","socket","xAlert",function(a,b,c,d,e,f,g){a.initView=function(){a.forms={info:{}},a.automations=e.automations,c.get("/api/mail/business/automations/"+b.id).success(function(c){a.test=c,a.automation=c,f.syncUpdatesByAttributes("business_condition",{MailBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){})},a.updateAutomation=function(){c.put("/api/mail/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){g.show(d.instant("MESSAGE_WELL_DONE"),"success"),console.log(a)}).error(function(a){console.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a)}).error(function(a){console.error(a)})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a)})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).error(function(a){console.error(a)})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.view",{url:"/view/:id",templateUrl:"app/mail/automation/view/view.html",controller:"MailAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.automations.view.settings",{url:"/settings",templateUrl:"app/mail/automation/view/view.settings.html"}).state("main.mail.automations.view.routes",{url:"/routes",templateUrl:"app/mail/automation/view/view.routes.html"}).state("main.mail.automations.view.application",{url:"/application",templateUrl:"app/mail/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationWizardCtrl",["$scope","$http","$location","$translate","automation","WizardHandler","xAlert",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(e.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){return a.automations.actions.length?a.automations.or.length||a.automations.and.length?void f.wizard().next():(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_CONDITION"),"danger"),!1):(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_ACTION"),"danger"),!1)},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/mail/business/automations",a.automations).success(function(){c.path("/mail/automations/list")}).error(function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG","danger"))})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.wizard",{url:"/wizard",templateUrl:"app/mail/automation/wizard/wizard.html",controller:"MailAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailComposeCtrl",["$scope","$http","$location","$cookieStore","$translate","xAlert","FileUploader","Auth",function(a,b,c,d,e,f,g,h){var i=a.uploader=new g({url:"api/mail/messages",withCredentials:!0,headers:{Authorization:"Bearer "+d.get("token")},queueLimit:1});i.onBeforeUploadItem=function(b){b.formData.push({mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,attachment:!0,UserId:h.getCurrentUser().id})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success")},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")},i.onCompleteAll=function(){console.log("onCompleteAll"),c.path("/mail/inbox/incoming")},a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),a.sendMail=function(){if(i.queue.length)console.log("file"),i.uploadAll();else{console.log("no file");var d={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,UserId:h.getCurrentUser().id};b.post("/api/mail/messages",d).success(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),c.path("/mail/inbox/incoming")}).error(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")})}},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.from,delete a.form.text,delete a.form.html}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.compose",{url:"/compose",templateUrl:"app/mail/inbox/room/room.html",controller:"MailRoomCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailInboxCtrl",["$scope","$http","$location",function(a,b,c){a.go=function(a){c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox",{url:"/inbox",template:"<div ui-view></div>",controller:"MailInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailIncomingCtrl",["$scope","$http","$location","$translate","$timeout","socket","xAlert","Auth","stResource","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$location=c,a.conf={mailRoomsByPage:{name:"10",value:10},labels:["fullname","name","email"],test:"OPEN"},a.mailRoomsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailRooms={checked:[]},a.check=function(b,c){c?a.mailRooms.checked=angular.copy(_.pluck(a.displayedMailRooms,"id")):a.mailRooms.checked=[]},a.initList=function(b){f.unsyncUpdates("mail_room"),b.search.predicateObject||(b.search.predicateObject={}),b.sort.predicate="createdAt",b.sort.reverse=!0,h.isAdmin()?(f.socket.on("mail_room:save",function(){e(function(){g.show(d.instant("MESSAGE_MAIL_NEW_INCOMING_MAIL"),"success"),a.initList(b)},2e3)}),f.socket.on("mail_room:remove",function(c){a.mailRooms.checked=_.without(a.mailRooms.mailRooms,c.id),a.initList(b)})):(f.socket.on("mail_room:save",function(c){c.UserId===h.getCurrentUser().id&&a.initList(b)}),f.socket.on("mail_room:remove",function(c){c.UserId===h.getCurrentUser().id&&(a.mailRooms.checked=_.without(a.mailRooms.checked,c.id),a.initList(b))})),b.url="/api/mail/rooms/",i.getPage(b).then(function(c){console.log("result",c),a.displayedMailRooms=c.mailRooms,b.pagination.numberOfPages=c.total_pages})},a.deleteItems=j.confirm["delete"](function(){b["delete"]("/api/mail/rooms",{params:{id:a.mailRooms.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){f.unsyncUpdates("mail_room")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.incoming",{url:"/incoming",templateUrl:"app/mail/inbox/incoming/incoming.html",controller:"MailIncomingCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailRoomCtrl",["$scope","$http","$stateParams","$timeout","$cookieStore","$location","$translate","$log","$uibModal","xAlert","Auth","socket","FileUploader","MailMessage","MailAttachment",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p=a.uploader=new m({url:"api/mail/attachments",autoUpload:!0,withCredentials:!0,headers:{Authorization:"Bearer "+e.get("token")}}),q={MailAttachments:[]};p.removeFromQueue=function(a){var b=this;o["delete"]({id:a.basename}).$promise.then(function(){var c=b.getIndexOfItem(a),d=b.queue[c];d.isUploading&&d.cancel(),b.queue.splice(c,1),d._destroy(),b.progress=b._getTotalProgress(),q.MailAttachments=_.reject(q.MailAttachments,{basename:a.basename})})["catch"](function(){j.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},p.onErrorItem=function(){j.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},p.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d);var e={size:b.size,path:b.path,name:b.name,basename:b.basename,type:b.type};a=_.merge(a,e),q.MailAttachments.push(e)},a.retry=function(a){var b=i.open({animation:!0,templateUrl:"app/mail/inbox/room/room.retry.modal.html",controller:function(a,c){a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(a){b.close(a)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]},a.ok=function(){c.close()},a.cancel=function(){c.dismiss("cancel")}}});b.result.then(function(){n.update({id:a,status:"SENDING"},function(a){console.log(a)})},function(){h.info("Modal dismissed at: "+new Date)})},a.initRoomView=function(){a.Auth=k,a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),b.get("/api/mail/rooms/"+c.id).success(function(c){console.log("mailRoom",c),a.mailRoom=c,l.syncUpdatesByAttributes("mail_message",{MailRoomId:a.mailRoom.id},a.mailRoom.MailMessages);var d=_.last(a.mailRoom.MailMessages);d&&a.mailRoom.MailAccount&&(a.form.from={name:a.mailRoom.MailAccount.name,address:a.mailRoom.MailAccount.address,id:a.mailRoom.MailAccount.id},a.form.to=_.remove(_.union(d.to?d.from.split(";"):[],d.cc?d.cc.split(";"):[],d.bcc?d.bcc.split(";"):[]),function(b){return b!==a.mailRoom.MailAccount.address}),a.form.cc=_.remove(_.union(d.to?d.from.split(";"):[],d.cc?d.to.split(";"):[],d.bcc?d.bcc.split(";"):[]),function(b){return b!==a.mailRoom.MailAccount.address}),a.form.bcc=_.remove(_.union(d.to?d.from.split(";"):[],d.cc?d.cc.split(";"):[],d.bcc?d.to.split(";"):[]),function(b){return b!==a.mailRoom.MailAccount.address})),"NEW"===a.mailRoom.status&&b.put("/api/mail/rooms/"+a.mailRoom.id,{status:"OPEN"})}).error(function(){})},a.sendMail=function(){var b;a.mailRoom&&(b=angular.copy(a.mailRoom.MailMessages),b=_.reject(b,function(a){return"RECEIVED"!==a.status}),b=_.sortBy(b,"id")),q=_.merge(q,{mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";")?a.form.sto.join(";"):null,cc:a.form.scc.join(";")?a.form.scc.join(";"):null,subject:a.form.subject||a.mailRoom.subject||null,html:a.form.html||null,text:a.form.text||null,MailRoomId:a.mailRoom?a.mailRoom.id:null}),b&&_.last(b)&&(q.inReplyTo=_.last(b).messageId),n.save(q,function(){j.show(g.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success")},function(){j.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.text},a.updateStatus=function(d){b.put("/api/mail/rooms/"+c.id,{status:d}).success(function(b){a.mailRoom.status=b.status,j.show(g.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success"),f.path("/mail/inbox/incoming")}).error(function(){j.show(g.instant("MESSAGE_STATUS_UPDATE_FAILURE"),"danger")})},a.assignAgents=function(){var a=i.open({animation:!0,templateUrl:"app/mail/inbox/room/room.agents.modal.html",controller:function(b,d,e,f){b.initModal=function(){e.get().$promise.then(function(a){console.log(a),b.agents=a.rows})["catch"](function(a){console.error(a)}),f.query({id:c.id,controller:"agents"}).$promise.then(function(a){console.log(a),b.item={agents:_.pluck(a,"id")}})["catch"](function(a){console.error(a)}),b.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(b){a.close(b)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(b){a.dismiss(b)}}]}},b.ok=function(){return f.update({id:c.id,controller:"agents",agents:b.item.agents}).$promise.then(function(){d.close()})["catch"](function(a){console.error(a)})},b.cancel=function(){d.dismiss("cancel")}}});a.result.then(function(){},function(){h.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").factory("MailRoom",["$resource",function(a){return a("/api/mail/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.room",{url:"/room/:id",templateUrl:"app/mail/inbox/room/room.html",controller:"MailRoomCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail",{url:"/mail",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("MailAttachment",["$resource",function(a){return a("/api/mail/attachments/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("MailMessage",["$resource",function(a){return a("/api/mail/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailQueues={checked:[]},a.check=function(b,c){c?a.mailQueues.checked=angular.copy(_.pluck(a.displayedMailQueues,"id")):a.mailQueues.checked=[]},a.getMailQueues=function(b){return _.map(a.displayedMailQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_queue"),b.url="/api/mail/queues/",g.getPage(b).then(function(c){a.displayedMailQueues=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.queuesByPage,a.displayedMailQueues.length),d.updateTableConfig(a.conf.queuesByPage,a.displayedMailQueues.length)}),e.socket.on("mail_queue:save",function(){a.initList(b)}),e.socket.on("mail_queue:remove",function(c){a.mailQueues.checked=_.without(a.mailQueues.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/queues/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/queues/",{params:{id:a.mailQueues.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.list",{url:"/list",templateUrl:"app/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailQueue",["$resource",function(a){return a("/api/mail/queues/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/mail/queues/"+d.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateMailQueue=function(){var f=angular.copy(a.queue);b.put("/api/mail/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){e.show(b.message,"success"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b.get("/api/mail/user_has_queues",{params:{MailQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.view",{url:"/view/:id",templateUrl:"app/mail/queue/view/view.html",controller:"MailQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.queues.view.settings",{url:"/settings",templateUrl:"app/mail/queue/view/view.settings.html"}).state("main.mail.queues.view.agents",{url:"/agents",templateUrl:"app/mail/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert",function(a,b,c,d,e){a.forms={},a.item={},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/mail/queues",a.item).success(function(){c.path("/mail/queues/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.wizard",{url:"/wizard",templateUrl:"app/mail/queue/wizard/wizard.html",controller:"MailQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$http","socket","MailQueue","Agent",function(a,b,c,d,e){a.gridOptions={enableSorting:!1,enableFiltering:!0,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"agentName",displayName:"Agent",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.agentName">{{row.entity.fullname}} [{{row.entity.agentName}}]</span>'},{name:"online",cellClass:"text-center",cellTemplate:'<span class="badge badge-empty" data-ng-if="row.entity.online != null" data-ng-class="row.entity.online ? \'badge-success\' : \'badge-danger\'"></span>'},{name:"lastLoginAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentName" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("mail_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("mail_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_mail_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_mail_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime.view.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0}).state("main.mail.realtime.view.agents.queues",{url:"/queues",controller:"MailRealtimeViewAgentCtrl",templateUrl:"app/mail/realtime/view/agent/agent.queues.html"}).state("main.mail.realtime.view.agents.timeline",{url:"/attempts",controller:"MailRealtimeViewAgentCtrl",templateUrl:"app/mail/realtime/view/agent/agent.timeline.html"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initMails=function(){b.get("/api/report/mail/sessions").success(function(b){a.sessions=b,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.unshift(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.mail.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.mail.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime.view",{url:"/view",templateUrl:"app/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"}).state("main.mail.realtime.view.sessions",{url:"/sessions",controller:"MailRealtimeViewSessionCtrl",templateUrl:"app/mail/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("MailStatisticsCtrl",["$scope","$http","$translate","socket",function(a,b,c,d){a.message="Hello",a.$translate=c,b.get("api/mail/rooms").success(function(b){a.mailRooms=b,d.syncUpdates("mail_room",a.mailRooms)}),b.get("api/mail/messages").success(function(b){a.mailMessages=b,d.syncUpdates("mail_message",a.mailMessages)})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.statistics",{url:"/statistics",templateUrl:"app/mail/statistics/statistics.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.statistics.summary",{url:"/summary",templateUrl:"app/mail/statistics/statistics.summary.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/mail").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline.list",{url:"/list",templateUrl:"app/mail/timeline/list/list.html",controller:"MailTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChooseContactModalCtrl",["$scope","$uibModalInstance","params",function(a,b,c){a.forms={choose:void 0},a.contacts=c.contacts,a.item={},a.ok=function(){a.item.contactName=_.find(a.contacts,{id:a.item.contactId}).name,b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$http","$rootScope","$cookies","$translate","$interval","socket","Auth","xAlert","$uibModal","$log","$state",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(b){a.workspaces.push({name:b.contactName,type:"contact",contactID:b.contactId,active:!0})}function n(b){a.workspaces.push({name:"New Contact",type:"newContact",active:!0,data:b})}a.awesomeThings=[],a.isLoggedIn=h.isLoggedIn,a.isAdmin=h.isAdmin,a.getCurrentUser=h.getCurrentUser,a.workspaces=[],a.mainTab={active:!0},a.closeTab=function(b){a.workspaces.splice(b,1)},a.createContact=function(c,d){d.tags=d.tags?d.tags.join(","):void 0,_.forOwn(d.customFields,function(a,b){""===a&&delete d.customFields[b]}),d.id?b.put("/api/contactmanager/join/"+d.id,d).success(function(b){a.workspaces.splice(c,1),m(b),i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(a.message,"danger")}):b.post("/api/contactmanager",d).success(function(b){a.workspaces.splice(c,1),m({contactName:b.fullname,contactId:b.id}),i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(a.message,"danger")})},a.chooseContact=function(a){var b=j.open({animation:!0,templateUrl:"app/main/chooseContact.modal.html",controller:"ChooseContactModalCtrl",resolve:{params:function(){return{contacts:JSON.parse(a.contacts)}}}});b.result.then(function(a){m(a)},function(){k.info("Modal dismissed at: "+new Date)})},a.updateContact=function(a,c){c.tags=c.tags?c.tags.join(","):void 0,c.CompanyId||(c.CompanyId=null),b.put("/api/contactmanager/"+c.id,c).success(function(){i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(e.instant(a.message)+"!","danger")})},g.socket.on("report_integration:contactmanager",function(b){switch(b.event){case"openContactTab":a.chooseContact(b);break;case"newContactTab":n(b)}}),a.$on("$viewContentLoaded",function(){Metronic.init()}),c.language=e.use(),a.changeLanguage=function(a){e.use(a).then(function(a){c.language=a,("main.jscripty.projects.view"===l.current.name||"main.square.projects.view"===l.current.name)&&l.go(l.current,{},{reload:!0})})["catch"](function(a){console.error(a)})},a.$on("$destroy",function(){})}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("queryBuilder",["$compile","xAlert","$http",function(a,b,c){return{restrict:"E",scope:{
-group:"=",fields:"=",operators:"=",properties:"="},templateUrl:"app/main/template.queryBuilderView.html",compile:function(d,e){var f,g;return f=d.contents().remove(),function(d,e,h){d.booleans=[{name:"AND"},{name:"OR"}],d.addCondition=function(a){"CONDITION"==a?d.group.rules.push({operator:"=",field:"",data:""}):d.group.rules.push({field:"",data:""})},d.removeCondition=function(a){d.group.rules.splice(a,1)},d.addGroup=function(a){d.group.rules.push({group:{"boolean":"AND",rules:[],type:a,main:!1}})},d.choices=[],d.removeGroup=function(){d.$parent.group.rules.splice(d.$parent.$index,1)},d.initChoices=function(a,b,c,e,f,g,h){a[g]&&d.getResults(b,c,e,f)},d.clearData=function(a,b){for(var c in b)a[b[c]]&&delete a[b[c]]},d.getResults=function(a,e,f,g,h){if(a){var i="",j={};i=a.parseUrl?a.parseUrl.replace("%s",e):a.url,a.query&&h&&(j[a.query.field]=h),c.get(i,{params:j}).success(function(a){var b=[];a.rows&&(a=a.rows),a.forEach(function(a){b.push({name:a.name,value:a.id})}),d.choices[f]||(d.choices[f]=[]),d.choices[f][g]=b}).error(function(a){b.show(a.message,"danger")})}},g||(g=a(f)),e.append(g(d,function(a){return a}))}}}}]).directive("newContact",["$compile","xAlert","$http","socket",function(a,b,c,d){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template.newContactTab.html",compile:function(a,e){return function(a,e,f){a.forms={general:{}},a.item={Phones:[],Emails:[],customFields:{}},a.joinPrompt=!1,a.checkboxes={},a.workspace.data&&(a.item.fullname=a.workspace.data.calleridname?a.workspace.data.calleridname:a.workspace.data.messageId?a.workspace.data.messageId:a.workspace.data.uniqueid?a.workspace.data.uniqueid:"",a.workspace.data.calleridnum&&a.item.Phones.push({phone:a.workspace.data.calleridnum}),a.workspace.data.from&&a.item.Emails.push({email:a.workspace.data.from})),a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.pluck(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(){c.get("/api/contactmanager/customfields").success(function(b){a.customFields=b.rows,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.syncUpdates("custom_field",a.customFields,function(a,b){"string"==typeof b.values&&(b.values=JSON.parse(b.values))})}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.addField=function(b){a.item[b].push({}),a.joinPrompt=!1},a.removeField=function(b,c){a.item[b].splice(c,1),a.joinPrompt=!1},a.getTags(),a.getCompanies(),a.getCustomFields()}}}}]).directive("contact",["$compile","xAlert","$http","socket",function(a,b,c,d){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template.contactTab.html",compile:function(a,e){return function(a,e,f){a.moment=moment,a.forms={general:{}},a.detail={tab:"main"},a.log={journal:{show:"Phones",type:"Inbounds",detail:"general"},history:{show:"Phones",type:"HistoryInbounds",detail:"general"}},a.columns={Phones:{general:{header:["APPLICATION_SOURCE","APPLICATION_DESTINATION","APPLICATION_DATE"],indexes:["source","destination","createdAt"]},QueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},ReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","agentcalledAt"]},HistoryQueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},HistoryReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","createdAt"]}},Emails:{general:{header:["APPLICATION_FROM","APPLICATION_TO","APPLICATION_DATE"],indexes:["from","to","createdAt"]}}},a.rows={journal:[],history:[]},a.itemsByPage=15,a.rowCollection=[],a._=_,a.getRows=function(b){a.rows[b]=[],_.forEach(a.contact[a.log[b].show],function(c){console.log(c),"general"===a.log[b].detail?a.rows[b]=a.rows[b].concat(c[a.log[b].type]):_.forEach(c[a.log[b].type],function(c){a.rows[b]=a.rows[b].concat(c[a.log[b].detail])})}),console.log(a.rows[b])},a.addField=function(b){a.contact[b].push({})},a.removeField=function(b,c){a.contact[b].splice(c,1)},a.getContact=function(d){console.log("get contact in tab"),c.get("/api/contactmanager/"+d).success(function(b){b.tags=b.tags?b.tags.split(","):[],a.contact=b,a.getRows("journal"),a.getRows("history"),a.contact.customFields={},a.contact.CustomFields.forEach(function(b){a.contact.customFields[b.id]=b.ContactHasCustomField.value})}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.pluck(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(){c.get("/api/contactmanager/customfields/all").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.syncUpdates("custom_field",a.customFields,function(a,b){"string"==typeof b.values&&(b.values=JSON.parse(b.values))})}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags(),a.getCompanies(),a.getCustomFields(),a.getContact(a.workspace.contactID)}}}}]).directive("reportBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",forms:"=",firstCall:"="},templateUrl:"app/main/template.reportBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.operators=[{name:"AND"},{name:"OR"}],b.conditions=[{name:"="},{name:"!="},{name:"<"},{name:"<="},{name:">"},{name:">="},{name:"LIKE"}],b.addCondition=function(){b.group.rules.push({condition:"=",field:"",value:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(){b.group.rules.push({group:{operator:"AND",rules:[{condition:"=",field:"",value:""}]}})},b.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},b.removeGroup=function(){b.$parent.group&&b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]).directive("dynamicName",["$compile",function(a){return{restrict:"A",terminal:!0,priority:1e3,link:function(b,c,d){c.attr("name",b.$eval(d.dynamicName)),c.removeAttr("dynamic-name"),a(c)(b)}}}]).directive("onReadFile",["$parse",function(a){return{restrict:"A",scope:!1,link:function(b,c,d){var e=a(d.onReadFile);c.on("change",function(a){var c=new FileReader;c.onload=function(a){b.$apply(function(){e(b,{$fileContent:a.target.result})})},c.readAsText((a.srcElement||a.target).files[0])})}}}]).directive("motionFileDownload",["xAlert","$http","$translate","$timeout","$location",function(a,b,c,d,e){return{restrict:"E",templateUrl:"app/main/template.motionFileDownload.html",scope:{mimetype:"=",filename:"=",url:"="},link:function(d,e,f){var g=e.children()[0];d.$on("download-start",function(){$(g).attr("disabled","disabled")}),d.$on("downloaded",function(a,b){var f=angular.element("<a/>").addClass("btn default btn-xs blue-stripe").attr({href:"data:"+d.mimetype+";base64,"+b,download:d.filename}).text(c.instant("APPLICATION_DOWNLOAD"));$(g).remove(),e.append(f),f.get(0).click()}),d.download=function(){d.$emit("download-start"),b.get(d.url).success(function(a){d.$emit("downloaded",a)}).error(function(b){a.show(c.instant(b.message),"danger")})}}}}]),angular.module("xCallyShuttleApp").filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}).filter("salesforce",function(){var a=["CallDisposition","CallDurationInSeconds","CallObject","CallType","IsArchived","Priority","Status","Type"];return function(b){return _.remove(b,function(b){return b.custom===!1&&a.indexOf(b.name)<0}),b}}).filter("sugarcrm",function(){var a=["account_id","account_name","account_name1","assigned_user_name","assigned_user_id","case_number","created_by","created_by_name","date_entered","date_modified","deleted","description","id","modified_by_name","modified_user_id","name"];return function(b){return _.remove(b,function(b){return a.indexOf(b.name)>=0}),b}}).filter("freshdesk",function(){var a=["requester","subject","agent","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.ticket_field.name)>=0}),b}}).filter("zendesk",function(){var a=["subject","assignee","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.type)>=0}),b}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}],deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"info":b.info({message:c,title:'<i class="glyphicon glyphicon-info-sign"></i> <strong>'+a.instant("MESSAGE_INFO")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-exclamation-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;case"warning":b.warning({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_WARNING")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),b.search.params&&(c.clientQuery={},_.forIn(b.search.params,function(a,b){c.clientQuery[b]=a})),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope","$http","$translate","socket","xAlert","Modal","$timeout",function(a,b,c,d,e,f,g){function h(a,b){return Math.floor(Math.random()*(b-a+1))+a}a.initView=function(){b.get("/api/integrations").success(function(b){a.integrations=b,a.groupedIntegration=_.chunk(a.integrations,4),d.syncUpdates("integration",a.integrations,function(){a.groupedIntegration=_.chunk(a.integrations,4)})}).error(function(a){e.show(a.message,"danger")})},a.isProgressing=!1,a.$on("$destroy",function(){d.unsyncUpdates("integration")}),a.installIntegration=function(d){a.status="Downloading",a.percentage=h(1,50),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!0}).success(function(){g(function(){a.percentage=h(51,99),a.status="Installing"},2500),g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.uninstallIntegration=function(d){a.status="Uninstalling",a.percentage=h(1,99),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!1}).success(function(){g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl"})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedSalesforceAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSalesforceAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("salesforce_account"),b.url="/api/salesforce/accounts",h.getPage(b).then(function(d){a.displayedSalesforceAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSalesforceAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSalesforceAccounts.length)}),f.socket.on("salesforce_account:save",function(){a.initList(b)}),f.socket.on("salesforce_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/salesforce/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/salesforce/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/salesforce/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.list",{url:"/list",templateUrl:"app/salesforce/list/list.html",controller:"SalesforceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce",{url:"/salesforce",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","$filter",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("salesforce_configuration"),g.unsyncUpdates("salesforce_field")}),a.initView=function(){b.get("/api/salesforce/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/salesforce/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/salesforce/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("salesforce_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/salesforce/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/salesforce/configurations",a.configuration).success(function(a){e.path("salesforce/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/salesforce/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(j("salesforce")(b),"name","asc")}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/salesforce/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("salesforce_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/salesforce/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/salesforce/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);if(c)switch(c.type){case"picklist":return c.picklistValues;default:return}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view",{url:"/view/:id",templateUrl:"app/salesforce/view/view.html",controller:"SalesforceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.salesforce.view.account",{url:"/account",templateUrl:"app/salesforce/view/view.account.html"}).state("main.salesforce.view.configurations",{url:"/configurations",templateUrl:"app/salesforce/view/view.configurations.html"}).state("main.salesforce.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/salesforce/view/view.configurationSettings.html",controller:"SalesforceViewCtrl"}).state("main.salesforce.view.configuration",{url:"/configuration",templateUrl:"app/salesforce/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SalesforceWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/salesforce/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/salesforce/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.wizard",{url:"/wizard",templateUrl:"app/salesforce/wizard/wizard.html",controller:"SalesforceWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("License",["$resource",function(a){return a("/api/licenses/:id/:controller",{id:"@id"},{request:{method:"POST",params:{id:"request"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license",{url:"/license",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("LicenseViewCtrl",["$scope","$rootScope","$translate","License","xAlert",function(a,b,c,d,e){a.initView=function(){d.get(function(b){a.item=b.license})},a.submitRequest=function(){d.request(a.item,function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")},function(a){switch(a.status){case 304:e.show(a.statusText,"info");break;default:e.show(a.statusText,"danger")}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license.view",{url:"/view",templateUrl:"app/setting/license/view/view.html",controller:"LicenseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/pricing-tables.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting",{url:"/setting",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("Smtp",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp",{url:"/smtp",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmtpViewCtrl",["$scope","$stateParams","$translate","MailServerOut","xAlert",function(a,b,c,d,e){a.initView=function(){a.item={},d.get({id:"service"}).$promise.then(function(b){a.item=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateItem=function(){a.item.id?d.update({id:a.item.id},a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}):(a.item.service=!0,d.save(a.item).$promise.then(function(b){a.item=b,e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}))},a.test=function(){d.test({id:a.item.id,controller:"test"}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log("err",a),e.show(a.data?a.data.response:a.statusText,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp.view",{url:"/view",templateUrl:"app/setting/smtp/view/view.html",controller:"SmtpViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("TemplateListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_template")}),a.conf={templatesByPage:{name:"10",value:10}},a.templatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Templates={checked:[]},a.check=function(b,c){c?a.Templates.checked=angular.copy(_.pluck(a.displayedTemplates,"id")):a.Templates.checked=[]},a.getTemplates=function(b){return _.map(a.displayedTemplates,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_template"),b.url="/api/mail/templates/",g.getPage(b).then(function(c){a.displayedTemplates=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.templatesByPage,a.displayedTemplates.length),d.updateTableConfig(a.conf.templatesByPage,a.displayedTemplates.length)}),e.socket.on("mail_template:save",function(){a.initList(b)}),e.socket.on("mail_template:remove",function(c){a.Templates.checked=_.without(a.Templates.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/templates/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/templates/",{params:{id:a.Templates.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates.list",{url:"/list",templateUrl:"app/setting/template/list/list.html",controller:"TemplateListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Template",["$resource",function(a){return a("/api/mail/templates/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Template",function(a,b,c,d,e,f){a.initItem=function(){a.form={},a.item={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.item=f.get({id:d.id})},a.updateItem=function(){f.update(a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates.view",{url:"/view/:id",templateUrl:"app/setting/template/view/view.html",controller:"TemplateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.setting.templates.view.settings",{url:"/settings",templateUrl:"app/setting/template/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateWizardCtrl",["$scope","$location","$http","WizardHandler","xAlert","MailServerOut","Template",function(a,b,c,d,e,f,g){a.initWizard=function(){a.item={},a.form={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.mailAccounts=f.query()},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){var c={name:a.item.name,description:a.item.description,subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null};g.save(c).$promise.then(function(){b.path("/templates/list")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates.wizard",{url:"/wizard",templateUrl:"app/setting/template/wizard/wizard.html",controller:"TemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","$uibModal","$log","$translate","Update","xAlert",function(a,b,c,d,e,f){a.conf={updatesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.updatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initList=function(){e.query(function(b){a.updates=b})},a.pull=function(){var a=b.open({animation:!0,templateUrl:"app/setting/update/list/list.pull.html",controller:function(a,b){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){b.close()}},{classes:"btn default",text:"Cancel",click:function(){b.dismiss("cancel")}}]}}});a.result.then(function(){e.pull(function(a){a.summary.changes?f.show(d.instant("APPLICATION_UPDATED_TO_LATEST_VERSION"),"success"):f.show(d.instant("APPLICATION_ALREADY_UP_TO_DATE"),"info")},function(a){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},function(){c.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates.list",{url:"/list",templateUrl:"app/setting/update/list/list.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"},{pull:{method:"GET",params:{id:"pull"}},checkout:{method:"GET",params:{id:"checkout"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce",function(a,b,c,d,e,f,g,h,i,j){a.isCollapsed=!0,a.audioSources={},a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/uploads/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.getAudioSrc=function(a){return"/api/uploads/"+a},a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/uploads/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("upload")}),a.initList=function(){b.get("/api/uploads").success(function(b){a.sounds=b,a.sounds.forEach(function(a){k(a)}),c.syncUpdates("upload",a.sounds)}).error(function(a){})};var k=function(c){b.get("/api/uploads/stream/"+c.id).success(function(b){a.audioSources[c.id]=b}).error(function(a){console.error(a)})};a.getSecureSrc=function(a){return j.trustAsResourceUrl("data:audio/ogg;base64,"+a)},a.getSecureDownloadSrc=function(a){return j.trustAsResourceUrl("data:application/octet-stream;charset=utf-16le;base64,"+a)};var l=a.uploader=new f({url:"/api/uploads",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10;
-}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds.list",{url:"/list",templateUrl:"app/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds",{url:"/sounds",templateUrl:"app/sound/sound.html","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={odbcsByPage:{name:"10",value:10}},a.odbcsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Odbcs={checked:[]},a.check=function(b,c){c?a.Odbcs.checked=angular.copy(_.pluck(a.displayedOdbcs,"id")):a.Odbcs.checked=[]},a.getOdbcs=function(b){return _.map(a.displayedOdbcs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_odbc"),b.url="/api/square/odbc",h.getPage(b).then(function(c){a.displayedOdbcs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.odbcsByPage,a.displayedOdbcs.length),d.updateTableConfig(a.conf.odbcsByPage,a.displayedOdbcs.length)}),c.socket.on("square_odbc:save",function(){a.initList(b)}),c.socket.on("square_odbc:remove",function(c){a.Odbcs.checked=_.without(a.Odbcs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/odbc/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/odbc",{params:{id:a.Odbcs.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs",{url:"/odbcs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getOdbc=function(){b.get("/api/square/odbc/"+e.id).success(function(b){delete b.pwd,a.odbc=b}).error(function(a){console.error(a),f.path("/square/odbcs/list")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);b.put("/api/square/odbc/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.odbc=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.square.odbcs.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={odbc:void 0},a.item={},a.next=function(){b.post("/api/square/odbc/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_ODBC"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/odbc/",a.item).success(function(){d.path("/square/odbcs/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.wizard",{url:"/wizard",templateUrl:"app/square/odbc/wizard/wizard.html",controller:"SquareOdbcWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={projectsByPage:{name:"10",value:10}},a.projectsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Projects={checked:[]},a.check=function(b,c){c?a.Projects.checked=angular.copy(_.pluck(a.displayedProjects,"id")):a.Projects.checked=[]},a.getProjects=function(b){return _.map(a.displayedProjects,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_project"),b.url="/api/square/projects",h.getPage(b).then(function(c){a.displayedProjects=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.projectsByPage,a.displayedProjects.length),d.updateTableConfig(a.conf.projectsByPage,a.displayedProjects.length)}),c.socket.on("square_project:save",function(){a.initList(b)}),c.socket.on("square_project:remove",function(c){a.Projects.checked=_.without(a.Projects.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/projects/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/projects",{params:{id:a.Projects.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$http","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i){a.squareProject={},a.getProject=function(){b.get("/api/square/projects/"+c.id).success(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=e.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),d.syncUpdates("square_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/square/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/square/js/Editor.js","assets/plugins/square/js/Graph.js","assets/plugins/square/js/EditorUi.js","assets/plugins/square/js/Actions.js","assets/plugins/square/js/Menus.js","assets/plugins/square/js/Sidebar.js","assets/plugins/square/js/Toolbar.js","assets/plugins/square/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={project:void 0},a.item={},a.next=function(){b.post("/api/square/projects/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_PROJECT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/projects/",a.item).success(function(){d.path("/square/projects/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.wizard",{url:"/wizard",templateUrl:"app/square/project/wizard/wizard.html",controller:"SquareProjectWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SugarcrmListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedSugarcrmAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSugarcrmAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("sugarcrm_account"),b.url="/api/sugarcrm/accounts",h.getPage(b).then(function(d){a.displayedSugarcrmAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSugarcrmAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSugarcrmAccounts.length)}),f.socket.on("sugarcrm_account:save",function(){a.initList(b)}),f.socket.on("sugarcrm_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/sugarcrm/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/sugarcrm/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/sugarcrm/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.list",{url:"/list",templateUrl:"app/sugarcrm/list/list.html",controller:"SugarcrmListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm",{url:"/sugarcrm",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SugarcrmViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("sugarcrm_configuration"),h.unsyncUpdates("sugarcrm_field")}),a.initView=function(){b.get("/api/sugarcrm/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/sugarcrm/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/sugarcrm/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("sugarcrm_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/sugarcrm/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/sugarcrm/configurations",a.configuration).success(function(a){e.path("sugarcrm/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/sugarcrm/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(f("sugarcrm")(_.toArray(b)),"name","asc"),_.forEach(b,function(a){a.options=_.toArray(a.options)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/sugarcrm/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("sugarcrm_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/sugarcrm/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/sugarcrm/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.options.length>0?c.options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.view",{url:"/view/:id",templateUrl:"app/sugarcrm/view/view.html",controller:"SugarcrmViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.sugarcrm.view.account",{url:"/account",templateUrl:"app/sugarcrm/view/view.account.html"}).state("main.sugarcrm.view.configurations",{url:"/configurations",templateUrl:"app/sugarcrm/view/view.configurations.html"}).state("main.sugarcrm.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/sugarcrm/view/view.configurationSettings.html",controller:"SugarcrmViewCtrl"}).state("main.sugarcrm.view.configuration",{url:"/configuration",templateUrl:"app/sugarcrm/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmkWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/sugarcrm/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/sugarcrm/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.wizard",{url:"/wizard",templateUrl:"app/sugarcrm/wizard/wizard.html",controller:"SugarcrmkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TagListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={tagsByPage:{name:"10",value:10}},a.tagsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Tags={checked:[]},a.check=function(b,c){c?a.Tags.checked=angular.copy(_.pluck(a.displayedTags,"id")):a.Tags.checked=[]},a.getTags=function(b){return _.map(a.displayedTags,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("tag"),b.url="/api/tags",h.getPage(b).then(function(c){console.log(c),a.displayedTags=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.tagsByPage,a.displayedTags.length),d.updateTableConfig(a.conf.tagsByPage,a.displayedTags.length)}),c.socket.on("tag:save",function(){console.log("save"),a.initList(b)}),c.socket.on("tag:remove",function(c){a.Tags.checked=_.without(a.Tags.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/tags/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/tags",{params:{id:a.Tags.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/tag/list/create.modal.html",controller:"TagListCreateModalCtrl"});a.result.then(function(a){b.post("/api/tags",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags.list",{url:"/list",templateUrl:"app/tag/list/list.html",controller:"TagListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags",{url:"/tags",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getTag=function(){b.get("/api/tags/"+e.id).success(function(b){a.tag=b}).error(function(a){console.error(a),f.path("/tags/list")})},a.updateTag=function(){var f=angular.copy(a.tag);b.put("/api/tags/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.tag=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags.view",{url:"/view/:id",templateUrl:"app/tag/view/view.html",controller:"TagViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tags.view.settings",{url:"/settings",templateUrl:"app/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={teamsByPage:{name:"10",value:10}},a.teamsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.teams={checked:[]},a.check=function(b,c){c?a.teams.checked=angular.copy(_.pluck(a.displayedTeams,"id")):a.teams.checked=[]},a.getTeams=function(b){return _.map(a.displayedTeams,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("team"),b.url="/api/teams/",h.getPage(b).then(function(c){a.displayedTeams=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.teamsByPage,a.displayedTeams.length),d.updateTableConfig(a.conf.teamsByPage,a.displayedTeams.length)}),f.socket.on("team:save",function(){a.initList(b)}),f.socket.on("team:remove",function(c){a.teams.checked=_.without(a.teams.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/teams/"+a).success(function(){e.show(c.instant("MESSAGE_TEAM_DELETE_SUCCESS"),"success")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/teams",{params:{id:a.teams.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.list",{url:"/list",templateUrl:"app/team/list/list.html",controller:"TeamListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","xAlert",function(a,b,c,d,e){a.message="Hello";var f=function(){return{select:function(c){b.post("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})}}};a.initView=function(){b.get("/api/teams/"+c.id).success(function(b){a.team=b}).error(function(a){e.show(a.message,"danger")})},a.initAgents=function(){b.get("/api/agents").success(function(d){a.agents=d.rows,b.get("/api/user_has_teams",{params:{TeamId:c.id}}).success(function(b){ComponentsDropdowns.bindTeam(_.pluck(b,"UserId"),_.map(a.agents,function(a){return{id:a.id,name:a.name}}),f)}).error(function(a){console.error(a)})})},a.updateItem=function(){var f=angular.copy(a.team),g=angular.copy(a.team);b.put("/api/teams/"+c.id,f).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.team=g,b.errors.forEach(function(a){e.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.view",{url:"/view/:id",templateUrl:"app/team/view/view.html",controller:"TeamViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.teams.view.agents",{url:"/agents",templateUrl:"app/team/view/view.agents.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.teams.view.settings",{url:"/settings",templateUrl:"app/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TeamWizardCtrl",["$scope","$http","$translate","$location","WizardHandler","xAlert",function(a,b,c,d,e,f){a.forms={info:void 0},a.item={},a.createItem=function(){b.post("api/teams",a.item).success(function(){f.show(c.instant("MESSAGE_TEAM_CREATE_SUCCESS"),"success"),d.path("/teams/list")}).error(function(a){a.errors.forEach(function(a){f.show(a.message,"danger")})})},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.wizard",{url:"/wizard",templateUrl:"app/team/wizard/wizard.html",controller:"TeamWizardCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneListCtrl",["$scope","$http","xAlert","$rootScope","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={usersByPage:{name:"10",value:10}},a.usersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.telephones={checked:[]},a.check=function(b,c){c?a.telephones.checked=angular.copy(_.pluck(a.displayedTelephones,"id")):a.telephones.checked=[]},a.getTelephones=function(b){return _.map(a.displayedTelephones,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/telephones/"+a).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/telephones",{params:{id:a.telephones.checked}}).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.initList=function(b){f.unsyncUpdates("telephone"),b.url="/api/telephones/",h.getPage(b).then(function(c){console.log(c),a.displayedTelephones=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.usersByPage,a.displayedTelephones.length),d.updateTableConfig(a.conf.usersByPage,a.displayedTelephones.length)}),f.socket.on("telephone:save",function(){a.initList(b)}),f.socket.on("telephone:remove",function(c){a.telephones.checked=_.without(a.telephones.checked,c.id),a.initList(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones.list",{url:"/list",templateUrl:"app/telephone/list/list.html",controller:"TelephoneListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Telephone",["$resource",function(a){return a("/api/telephones/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones",{url:"/telephones",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TelephoneViewCtrl",["$scope","$http","$stateParams","$translate","$cookieStore","Auth","xAlert","Telephone",function(a,b,c,d,e,f,g,h){a.initView=function(){a.Auth=f,a.forms={},h.get({id:c.id}).$promise.then(function(b){delete b.password,a.item=b,a.item.transport=a.item.transport?a.item.transport.split(","):[],a.item.allow=a.item.allow?a.item.allow.split(";"):[]})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.item);b.transport=b.transport.join(","),b.allow=b.allow.join(";"),h.update(b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones.view",{url:"/view/:id",templateUrl:"app/telephone/view/view.html",controller:"TelephoneViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.telephones.view.account",{url:"/account",templateUrl:"app/telephone/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate","Telephone",function(a,b,c,d,e,f,g){a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.initWizard=function(){a.forms={},a.item={allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},g.get({id:"internal"}).$promise.then(function(b){a.item.internal=b.internal})["catch"](function(a){console.error(a)})},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/telephones/",a.item).success(function(){e.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/telephones/list")}).error(function(a){console.log(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones.wizard",{url:"/wizard",templateUrl:"app/telephone/wizard/wizard.html",controller:"TelephoneWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){
-a.conf={TriggersByPage:{name:"10",value:10}},a.TriggersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Triggers={checked:[]},a.check=function(b,c){c?a.Triggers.checked=angular.copy(_.pluck(a.displayedTriggers,"id")):a.Triggers.checked=[]},a.getTriggers=function(b){return _.map(a.displayedTriggers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("trigger"),b.url="/api/triggers",e.getPage(b).then(function(c){a.displayedTriggers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.TriggersByPage,a.displayedTriggers.length),d.updateTableConfig(a.conf.TriggersByPage,a.displayedTriggers.length)}),g.socket.on("trigger:save",function(){a.initList(b)}),g.socket.on("trigger:remove",function(c){a.Triggers.checked=_.without(a.Triggers.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/triggers/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/triggers",{params:{id:a.Triggers.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/triggers/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.list",{url:"/list",templateUrl:"app/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","triggers",function(a,b,c,d,e,f){a.$triggers=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/triggers/"+b.id).success(function(b){a.trigger=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$triggers.triggers[b.channel].conditions,a.fields.actions=a.$triggers.triggers[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.getProperties=function(){h(),j(),i(),g()};var g=function(){c.get("/api/integrations",{params:{active:1}}).success(function(b){a.integrations=b;var c=[];b.forEach(function(a){c.push({name:a.name,value:a.state})}),a.properties.voice.integration=c}).error(function(a){e.show(a.message,"danger")})},h=function(){c.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){e.show(a.message,"danger")})},i=function(){c.get("/api/voice/queues/").success(function(b){a.voiceQueues=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.name})}),a.properties.voice.queue=c}).error(function(a){e.show(a.message,"danger")})},j=function(){c.get("/api/mail/servers/out/").success(function(b){a.stmpAccounts=b;var c=[];b.forEach(function(a){c.push({name:a.username,value:a.username})}),a.properties.mail.smtp=c}).error(function(a){e.show(a.message,"danger")})};a.updateTrigger=function(){c.put("/api/triggers/"+a.trigger.id,{name:a.trigger.name,description:a.trigger.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.view",{url:"/view/:id",templateUrl:"app/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.triggers.view.settings",{url:"/settings",templateUrl:"app/trigger/view/view.settings.html"}).state("main.triggers.view.routes",{url:"/routes",templateUrl:"app/trigger/view/view.routes.html"}).state("main.triggers.view.application",{url:"/application",templateUrl:"app/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler",function(a,b,c,d,e,f){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$triggers.triggers[b].conditions,a.fields.actions=a.$triggers.triggers[b].actions},!0),a.item.channel="voice",a.getProperties=function(){j(),l(),k(),i()};var i=function(){b.get("/api/integrations",{params:{active:1}}).success(function(b){a.integrations=b;var c=[];b.forEach(function(a){c.push({name:a.name,value:a.state})}),a.properties.voice.integration=c}).error(function(a){d.show(a.message,"danger")})},j=function(){b.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){d.show(a.message,"danger")})},k=function(){b.get("/api/mail/servers/out/").success(function(b){a.stmpAccounts=b;var c=[];b.forEach(function(a){c.push({name:a.username,value:a.username})}),a.properties.mail.smtp=c}).error(function(a){d.show(a.message,"danger")})},l=function(){b.get("/api/voice/queues/").success(function(b){a.voiceQueues=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.name})}),a.properties.voice.queue=c}).error(function(a){d.show(a.message,"danger")})};a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/triggers",a.item).success(function(){c.path("/triggers/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.wizard",{url:"/wizard",templateUrl:"app/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={trunksByPage:{name:"10",value:10},labels:["name","host","context","description"]},a.trunksByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.trunks={checked:[]},a.check=function(b,c){c?a.trunks.checked=angular.copy(_.pluck(a.displayedTrunks,"id")):a.trunks.checked=[]},a.getTrunks=function(b){return _.map(a.displayedTrunks,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("trunk"),b.url="/api/trunks",console.log(b),h.getPage(b).then(function(c){a.displayedTrunks=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.trunksByPage,a.displayedTrunks.length),d.updateTableConfig(a.conf.trunksByPage,a.displayedTrunks.length)}),f.socket.on("trunk:save",function(){a.initList(b)}),f.socket.on("trunk:remove",function(c){a.trunks.checked=_.without(a.trunks.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/trunks/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/trunks",{params:{id:a.trunks.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.$on("$destroy",function(){console.log("trunks destroy")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.list",{url:"/list",templateUrl:"app/trunk/list/list.html",controller:"TrunkListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.getTrunk=function(){b.get("/api/trunks/"+e.id).success(function(b){b.nat=""===b.nat?[]:b.nat.split(","),b.allow=""===b.allow?[]:b.allow.split(";"),b.insecure=""===b.insecure?[]:b.insecure.split(","),b.transport=""===b.transport?[]:b.transport.split(","),delete b.secret,a.trunk=b}).error(function(a){console.error(a),g.path("/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var f=angular.copy(a.trunk);f.nat=f.nat.join(","),f.allow=f.allow.join(";"),f.insecure=f.insecure.join(","),f.transport=f.transport.join(","),b.put("/api/trunks/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.nat=f.nat.split(","),f.naallowt=f.allow.split(";"),f.insecure=f.insecure.split(","),f.transport=f.transport.split(","),a.trunk=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.view",{url:"/view/:id",templateUrl:"app/trunk/view/view.html",controller:"TrunkViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.trunks.view.settings",{url:"/settings",templateUrl:"app/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.wizard",{url:"/wizard",templateUrl:"app/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","$http","xAlert","$rootScope","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={usersByPage:{name:"10",value:10}},a.usersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.users={checked:[]},a.check=function(b,c){c?a.users.checked=angular.copy(_.pluck(a.displayedUsers,"id")):a.users.checked=[]},a.getUsers=function(b){return _.map(a.displayedUsers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/users/"+a).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/users",{params:{id:a.users.checked}}).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.initList=function(b){f.unsyncUpdates("user"),b.url="/api/users/",h.getPage(b).then(function(c){a.displayedUsers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.usersByPage,a.displayedUsers.length),d.updateTableConfig(a.conf.usersByPage,a.displayedUsers.length)}),f.socket.on("user:save",function(){a.initList(b)}),f.socket.on("user:remove",function(c){a.users.checked=_.without(a.users.checked,c.id),a.initList(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.list",{url:"/list",templateUrl:"app/user/list/list.html",controller:"UserListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users",{url:"/users",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$http","$stateParams","$translate","FileUploader","$cookieStore","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.updatePassword=function(){var e,f;g.isAdmin()?(e="/api/users/password/"+c.id+"/reset",f={newPassword:a.user.newPwd}):(e="/api/users/password/",f={oldPassword:a.user.currentPwd,newPassword:a.user.newPwd}),b.put(e,f).success(function(a){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var i=a.uploader=new e({url:"api/users/"+c.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c,e,f){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(a,b,c,e){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()},a.initView=function(){b.get("/api/users/"+c.id).success(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]}).error(function(a){a.errors.forEach(function(b){h.show(a.message+": "+b.message,"danger")})})},a.updateItem=function(){var e=angular.copy(a.user),f=angular.copy(a.user);delete e.password,delete e.md5secret,e.transport=e.transport.join(","),e.allow=e.allow.join(";"),b.put("/api/users/"+c.id,e).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.user=f,b.errors.forEach(function(a){h.show(b.message+": "+a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.view",{url:"/view/:id",templateUrl:"app/user/view/view.html",controller:"UserViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.users.view.account",{url:"/account",templateUrl:"app/user/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/users/",a.item).success(function(){e.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/users/list")}).error(function(a){console.log(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.wizard",{url:"/wizard",templateUrl:"app/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={variablesByPage:{name:"10",value:10}},a.variablesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Variables={checked:[]},a.check=function(b,c){c?a.Variables.checked=angular.copy(_.pluck(a.displayedVariables,"id")):a.Variables.checked=[]},a.getVariables=function(b){return _.map(a.displayedVariables,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("variable"),b.url="/api/variables",h.getPage(b).then(function(c){a.displayedVariables=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.variablesByPage,a.displayedVariables.length),d.updateTableConfig(a.conf.variablesByPage,a.displayedVariables.length)}),c.socket.on("variable:save",function(){a.initList(b)}),c.socket.on("variable:remove",function(c){a.Variables.checked=_.without(a.Variables.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/variables/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/variables",{params:{id:a.Variables.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/variable/list/create.modal.html",controller:"VariableListCreateModalCtrl"});a.result.then(function(a){b.post("/api/variables",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.list",{url:"/list",templateUrl:"app/variable/list/list.html",controller:"VariableListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getVariable=function(){b.get("/api/variables/"+e.id).success(function(b){a.variable=b}).error(function(a){console.error(a),f.path("/variables/list")})},a.updateVariable=function(){var f=angular.copy(a.variable);b.put("/api/variables/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.variable=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.view",{url:"/view/:id",templateUrl:"app/variable/view/view.html",controller:"VariableViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.variables.view.settings",{url:"/settings",templateUrl:"app/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={contextsByPage:{name:"10",value:10}},a.contextsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voiceContexts={checked:[]},a.check=function(b,c){c?a.voiceContexts.checked=angular.copy(_.pluck(a.displayedVoiceContexts,"id")):a.voiceContexts.checked=[]},a.getVoiceContexts=function(b){return _.map(a.displayedVoiceContexts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_context"),b.url="/api/voice/contexts",h.getPage(b).then(function(c){a.displayedVoiceContexts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.contextsByPage,a.displayedVoiceContexts.length),d.updateTableConfig(a.conf.contextsByPage,a.displayedVoiceContexts.length)}),c.socket.on("voice_context:save",function(){a.initList(b)}),c.socket.on("voice_context:remove",function(c){a.voiceContexts.checked=_.without(a.voiceContexts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/contexts/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/contexts",{params:{id:a.voiceContexts.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.list",{url:"/list",templateUrl:"app/voice/context/list/list.html",controller:"VoiceContextListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.view",{url:"/view/:id",templateUrl:"app/voice/context/view/view.html",controller:"VoiceContextViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={context:void 0},a.item={},a.next=function(){b.post("/api/voice/contexts/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_CONTEXT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/contexts/",a.item).success(function(){d.path("/voice/contexts/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.wizard",{url:"/wizard",templateUrl:"app/voice/context/wizard/wizard.html",controller:"VoiceContextWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={mohsByPage:{name:"10",value:10},labels:["name","directory","sort","description"]},a.mohsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mohs={checked:[]},a.check=function(b,c){c?a.mohs.checked=angular.copy(_.pluck(a.displayedMohs,"id")):a.mohs.checked=[]},a.getMohs=function(b){return _.map(a.displayedMohs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_musiconhold"),b.url="/api/voice/musiconholds",h.getPage(b).then(function(c){a.displayedMohs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mohsByPage,a.displayedMohs.length),d.updateTableConfig(a.conf.mohsByPage,a.displayedMohs.length)}),f.socket.on("voice_musiconhold:save",function(){a.initList(b)}),f.socket.on("voice_musiconhold:remove",function(c){a.mohs.checked=_.without(a.mohs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/musiconholds/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/musiconholds",{params:{id:a.mohs.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.list",{url:"/list",templateUrl:"app/voice/moh/list/list.html",controller:"VoiceMohListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","Modal","$sce","$location",function(a,b,c,d,e,f,g,h,i){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){b.get("/api/voice/musiconholds/"+e.id).success(function(b){delete b.stamp,a.moh=b}).error(function(a){console.error(a),i.path("/voice/mohs/list")})},a.updateVoiceMoh=function(){console.log("update");var f=angular.copy(a.moh);b.put("/api/voice/musiconholds/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voiceMoh=f})},a.addMohs=function(){b.post("/api/voice/musiconholds/"+e.id+"/files",a.item).success(function(){i.path("voice/mohs/view/"+e.id+"/audios")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getAudioFiles=function(){b.get("/api/voice/musiconholds/"+e.id+"/files").success(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){j(a)})}).error(function(a){console.error(a)})},a.getSecureSrc=function(a){return h.trustAsResourceUrl(a)};var j=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.getSounds=function(){a.item={sounds:[]},b.get("/api/uploads").success(function(b){a.soundList=b}).error(function(a){console.error(a)})},a.deleteItem=g.confirm["delete"](function(f){b["delete"]("/api/voice/musiconholds/"+e.id+"/files",{params:{filename:f}}).success(function(){_.remove(a.audioFiles,function(a){return a===f}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.view",{url:"/view/:id",templateUrl:"app/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/voice/moh/view/view.settings.html"}).state("main.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/voice/moh/view/view.audios.html",cache:!1}).state("main.voice.mohs.view.add",{url:"/add",templateUrl:"app/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceMohWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.$translate=g,a.initWizard=function(){a.forms={},a.item={sort:"alpha"}},a.next=function(){b.post("/api/voice/musiconholds/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_MOH"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/musiconholds/",a.item).success(function(a){d.path("/voice/mohs/view/"+a.id+"/audios")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.wizard",{url:"/wizard",templateUrl:"app/voice/moh/wizard/wizard.html",controller:"VoiceMohWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.conf={voiceQueuesByPage:{name:"10",value:10},labels:["name","description","strategy","context"]},a.voiceQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.queues={checked:[]},a.check=function(b,c){c?a.queues.checked=angular.copy(_.pluck(a.displayedQueues,"name")):a.queues.checked=[]},a.getQueues=function(b){return _.map(a.displayedQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_queue"),b.url="/api/voice/queues",h.getPage(b).then(function(c){a.displayedQueues=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.voiceQueuesByPage,a.displayedQueues.length),e.updateTableConfig(a.conf.voiceQueuesByPage,a.displayedQueues.length)}),c.socket.on("voice_queue:save",function(){a.initList(b)}),c.socket.on("voice_queue:remove",function(c){console.log("remove"),a.queues.checked=_.without(a.queues.checked,c.name),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/voice/queues/"+a).success(function(){
-g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/voice/queues",{params:{name:a.queues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.list",{url:"/list",templateUrl:"app/voice/queue/list/list.html",controller:"VoiceQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var h=function(){return{select:function(c){b.post("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/voice/queues/"+e.id).success(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),a.queue=b}).error(function(a){g.path("/voice/queues/list")})},a.updateVoiceQueue=function(){var f=angular.copy(a.queue);f.joinempty=f.joinempty.join(","),f.leavewhenempty=f.leavewhenempty.join(","),f.periodic_announce=f.periodic_announce.join(","),f.context||(f.context=null),b.put("/api/voice/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.joinempty=f.joinempty.split(","),f.leavewhenempty=f.leavewhenempty.split(","),f.periodic_announce=f.periodic_announce.split(","),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/voice/user_has_queues",method:"GET",params:{queue:a.queue.name}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.pluck(b,"UserId"),h)})}).error(function(a){console.error(a)})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/uploads").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b),b.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b,f.syncUpdates("upload",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return console.log("func"),a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.view",{url:"/view/:id",templateUrl:"app/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.queues.view.settings",{url:"/settings",templateUrl:"app/voice/queue/view/view.settings.html"}).state("main.voice.queues.view.agents",{url:"/agents",templateUrl:"app/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={queue:void 0},a.item={},a.next=function(){b.post("/api/voice/queues/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_QUEUE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/queues/",a.item).success(function(){d.path("/voice/queues/list")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.wizard",{url:"/wizard",templateUrl:"app/voice/queue/wizard/wizard.html",controller:"VoiceQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/pause.modal.html",controller:"VoiceRealtimeViewAgentPauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log(a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/agent/queue.modal.remove.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initAgents=function(){b.get("/api/voice/user_has_queues").success(function(b){a.agents=b,a.groups=_.map(_.groupBy(a.agents,"membername"),function(a,b){return{membername:b,queues:a}}),f.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{membername:b.membername});_.remove(c.queues,{queue:b.queue}),c.queues.length||_.remove(a.groups,{membername:b.membername})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentPauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c){var e={action:"QueuePause","interface":a.selected["interface"],paused:c,reason:a.selected.item};_.isArray(d)||(e.queue=a.selected.queue),b.close(e)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],penalty:0,paused:!1,reason:a.pauses[0],UserId:a.data[0].UserId},c.get("/api/voice/queues",{params:{page:0,per_page:100}}).success(function(b){a.queues=_.reject(b.rows,function(b){return _.find(a.data,{queue:b.name})?!0:!1}),a.selected.queue=a.queues[0]?a.queues[0].name:null,console.log(a.queues)}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,_.isArray(e)?a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],logout:!1,UserId:a.data[0].UserId}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){console.log(a.selected);var c={action:"QueueAdd",logged:a.data[0].logged,loggedAt:a.data[0].loggedAt,queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_agent")}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.agents=[],b.get("/api/report/agents").success(function(b){a.agents=b,c.syncUpdates("report_agent",a.agents)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewAgentReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_queue")}),a.conf={queuesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.queues=[],b.get("/api/report/queues").success(function(b){console.log(b),a.queues=b,c.syncUpdates("report_queue",a.queues)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewQueueReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueuePauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,console.log(d),a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c,e){var f;_.isArray(d)?(f=[],d.forEach(function(b){f.push({action:"QueuePause",queue:b.queue,membername:b.membername,"interface":b["interface"],paused:c,reason:a.selected.item})})):f={action:"QueuePause",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],paused:c,reason:a.selected.item},b.close(f)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/pause.modal.html",controller:"VoiceRealtimeViewQueuePauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/queue.modal.add.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log("action",a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}),console.log(a)},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/queue/queue.modal.remove.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initQueues=function(){b.get("/api/voice/user_has_queues").success(function(b){a.queues=b,a.groups=_.map(_.groupBy(a.queues,"queue"),function(a,b){return{queue:b,agents:a}}),console.log("ok"),f.socket.on("user_has_voice_queue:save",function(b){console.log("item",b);var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{queue:b.queue});_.remove(c.agents,{membername:b.membername}),c.agents.length||_.remove(a.groups,{queue:b.queue})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={penalty:0,paused:!1,reason:a.pauses[0]},a.$watch("selected.agent",function(b){b&&(a.selected.membername=b.name,a.selected["interface"]="SIP/"+b.name,a.selected.UserId=b.id)}),c.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=_.reject(b.rows,function(b){return _.find(a.data,{membername:b.name})?!0:!1}),a.selected.queue=a.data[0]?a.data[0].queue:null}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,console.log(e),_.isArray(e)?a.selected={queue:a.data[0].queue,logout:!1}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){var c={action:"QueueAdd",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.voice.realtime.view.agents"},{name:"View2",link:"main.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.voice.realtime.view.queues"},{name:"View2",link:"main.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime.view",{url:"/view",templateUrl:"app/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.realtime.view.queues",{url:"/queues",controller:"VoiceRealtimeViewQueueCtrl",templateUrl:"app/voice/realtime/view/queue/queue.html"}).state("main.voice.realtime.view.qreports",{url:"/qreport/:search",controller:"VoiceRealtimeViewQueueReportCtrl",templateUrl:"app/voice/realtime/view/qreport/report.html"}).state("main.voice.realtime.view.agents",{url:"/agents",controller:"VoiceRealtimeViewAgentCtrl",templateUrl:"app/voice/realtime/view/agent/agent.html"}).state("main.voice.realtime.view.areports",{url:"/areport",controller:"VoiceRealtimeViewAgentReportCtrl",templateUrl:"app/voice/realtime/view/areport/report.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/inbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"inbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"inbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.list",{url:"/list",templateUrl:"app/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"inbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"inbound",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0,axis:"y"},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){f.path("/voice/routes/inbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.$application.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"*,*,*,*"===b.interval?"always":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/inbound/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/inbound/view/view.settings.html"}).state("main.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/voice/route/inbound/view/view.applications.html",cache:!1}).state("main.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/voice/route/inbound/view/view.application.html",authenticate:!0}).state("main.voice.routes.inbound.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/inbound/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/inbound/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/inbound/wizard/wizard.html",controller:"VoiceRouteInboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){
-b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/internal",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"internal"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"internal"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.list",{url:"/list",templateUrl:"app/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"internal"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"internal",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0,axis:"y"},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){console.error(a),f.path("/voice/routes/internal/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/internal/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(b){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/voice/route/internal/view/view.settings.html"}).state("main.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/voice/route/internal/view/view.applications.html",cache:!1}).state("main.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/voice/route/internal/view/view.application.html",authenticate:!0}).state("main.voice.routes.internal.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/internal/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInternalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"internal",appdata:"Iternal Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/internal/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.wizard",{url:"/wizard",templateUrl:"app/voice/route/internal/wizard/wizard.html",controller:"VoiceRouteInternalWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/outbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.routesByPage,a.displayedRoutes.length),d.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"outbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"outbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.list",{url:"/list",templateUrl:"app/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={info:void 0,interval:void 0},a.application={VoiceExtensionId:e.id,type:"outbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Dial",value:"Dial"},{name:"Custom",value:"custom"}]},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var d,f;switch(e.appId||(a.application={VoiceExtensionId:e.id,type:"outbound",interval:a.application.interval}),c){case"Dial":d="api/trunks",f="/api/voice/contexts";break;default:d=null,f=null}d&&b.get(d).success(function(b){a.items="Dial"===c?b.rows:b}),f&&b.get(f).success(function(b){a.items2="Dial"===c?b.rows:b})}},!0),a.$watch("application.TrunkId",function(b){b&&(a.application.trunk=_.result(_.find(a.items,{id:b}),"name"))},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,f.syncUpdates("interval",a.Intervals)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+e.id+"/applications").success(function(b){a.routeApplications=b,f.unsyncUpdates("voice_extension"),f.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),f.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===e.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+e.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0,axis:"y"},a.getRoute=function(){b.get("/api/voice/extensions/"+e.id).success(function(b){a.route=b,f.socket.on("voice_extension:update",function(b){b.id==e.id&&(a.route=b)})}).error(function(a){g.path("/voice/routes/outbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+e.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){console.error(a),g.path("/voice/routes/outbound/view/"+e.id+"/routes")})},a.updateRoute=function(){var f=angular.copy(a.route);b.put("/api/voice/extensions/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.route=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){switch(a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+e.appId,a.application).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(e){b["delete"]("/api/voice/extensions/"+e).success(function(b){a.getRouteApplications(),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.goNext=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){f.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/outbound/view/view.settings.html"}).state("main.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/voice/route/outbound/view/view.routes.html",cache:!1}).state("main.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/voice/route/outbound/view/view.route.html",authenticate:!0}).state("main.voice.routes.outbound.view.routes.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/outbound/view/view.routeSettings.html",authenticate:!0,controller:"VoiceRouteOutboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/outbound/view/"+a.id+"/routes")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/outbound/wizard/wizard.html",controller:"VoiceRouteOutboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={voicemailsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.voicemailsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voicemails={checked:[]},a.check=function(b,c){c?a.voicemails.checked=angular.copy(_.pluck(a.displayedVoicemails,"uniqueid")):a.voicemails.checked=[]},a.getVoicemails=function(b){return _.map(a.displayedVoicemails,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_voicemail"),b.url="/api/voice/voicemails",h.getPage(b).then(function(c){a.displayedVoicemails=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.voicemailsByPage,a.displayedVoicemails.length),d.updateTableConfig(a.conf.voicemailsByPage,a.displayedVoicemails.length)}),f.socket.on("voice_voicemail:save",function(){a.initList(b)}),f.socket.on("voice_voicemail:remove",function(c){a.voicemails.checked=_.without(a.voicemails.checked,c.uniqueid),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/voicemails",{params:{uniqueid:a.voicemails.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.list",{url:"/list",templateUrl:"app/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location",function(a,b,c,d,e,f,g,h,i){a.getVoicemail=function(){b.get("/api/voice/voicemails/"+e.uniqueid).success(function(b){delete b.password,delete b.stamp,a.voicemail=b}).error(function(a){console.error(a),i.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){var f=angular.copy(a.voicemail);b.put("/api/voice/voicemails/"+e.uniqueid,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voicemail=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(a.message,"danger")})},a.getMessages=function(){b.get("/api/voice/voicemails/"+e.uniqueid+"/messages/").success(function(b){a.voicemailMessages=b,f.syncUpdates("voice_voicemail_messages",a.voicemailMessages)}).error(function(a){c.show(a.message,"danger")})},a.encodeRecording=function(a){return g.trustAsResourceUrl("data:audio/ogg;base64,"+j(a.data))},a.returnMessageDate=function(a){return a.split("T")[0]},a.returnDuration=function(a){return 1e3*a},a.deleteItem=h.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/messages/"+a+"/delete").success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(a.message,"danger")})});var j=function(a){for(var b=new Uint8Array(a),c=b.byteLength,d="",e=0;c>e;e++)d+=String.fromCharCode(b[e]);return window.btoa(d)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/voice/voicemail/view/view.settings.html"}).state("main.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={}},a.next=function(){b.post("/api/voice/voicemails/validate/",a.item).success(function(a){a.length?e.show(g.instant("MESSAGE_EXIST_MAILBOX"),"danger"):c.wizard().next()}).error(function(a){e.show(a.message,"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){a.item.customer_id=a.item.mailbox,b.post("/api/voice/voicemails/",a.item).success(function(){d.path("/voice/voicemails/list")}).error(function(a){e.show(a.message,"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={dashboardsByPage:{name:"10",value:10}},a.dashboardsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.dashboards={checked:[]},a.check=function(b,c){c?a.dashboards.checked=angular.copy(_.pluck(a.displayedDashboards,"id")):a.dashboards.checked=[]},a.getDashboards=function(b){return _.map(a.displayedDashboards,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){b.url="/api/dashboards",h.getPage(b).then(function(c){a.displayedDashboards=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.dashboardsByPage,a.displayedDashboards.length),d.updateTableConfig(a.conf.dashboardsByPage,a.displayedDashboards.length)}),c.socket.on("dashboard:save",function(){a.initList(b)}),c.socket.on("dashboard:remove",function(c){a.dashboards.checked=_.without(a.dashboards.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/dashboards/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/dashboards",{params:{id:a.dashboards.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});a.result.then(function(a){b.post("/api/dashboards",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.list",{url:"/list",templateUrl:"app/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","localStorageService","$http","xAlert","$translate","Auth","$stateParams","$location",function(a,b,c,d,e,f,g,h){a.Auth=f,a.dashboard={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,editable:f.isAdmin()?!0:!1,maximizable:!0,collapsible:!0},a.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){b.model=JSON.parse(b.model),a.dashboard=_.merge(a.dashboard,b)}).error(function(a){h.path("/yourdashboards/list")})};var i=function(b,f,h){var i=angular.copy(a.dashboard);i.name=a.dashboard.model.title,i.model=JSON.stringify(i.model),c.put("/api/dashboards/"+g.id,i).success(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success")}).error(function(b){d.show(b.message,"danger"),i.model=JSON.parse(i.model),i.name="dashboard",a.dashboard=i})};a.$on("adfDashboardChanged",i),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.show",{url:"/show/:id",templateUrl:"app/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/yourdashboards/list")})},a.updateDashboard=function(){var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.view",{url:"/view/:id",templateUrl:"app/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.yourdashboards.view.settings",{
-url:"/settings",templateUrl:"app/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedZdAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedZdAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("zendesk_account"),b.url="/api/zendesk/accounts",h.getPage(b).then(function(d){a.displayedZdAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedZdAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedZdAccounts.length)}),f.socket.on("zendesk_account:save",function(){a.initList(b)}),f.socket.on("zendesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/zendesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/zendesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/zendesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("zendesk_configuration"),h.unsyncUpdates("zendesk_field")}),a.initView=function(){b.get("/api/zendesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/zendesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/zendesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("zendesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/zendesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/zendesk/configurations",a.configuration).success(function(a){e.path("zendesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/zendesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=f("zendesk")(b)}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/zendesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/zendesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/zendesk/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&c.system_field_options&&(b.customField=!1,b.nameField=c.title.toLowerCase())}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.system_field_options?c.system_field_options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"}).state("main.zendesk.view.configurations",{url:"/configurations",templateUrl:"app/zendesk/view/view.configurations.html"}).state("main.zendesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/zendesk/view/view.configurationSettings.html",controller:"ZendeskViewCtrl"}).state("main.zendesk.view.configuration",{url:"/configuration",templateUrl:"app/zendesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/zendesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{name:"Queue",value:"Queue"},{name:"Playback",value:"Playback"},{name:"Dial",value:"Dial"},{name:"Cally-Square IVR",value:"AGI"},{name:"GoTo",value:"Goto"},{name:"Hangup",value:"Hangup"},{name:"Set",value:"Set"},{name:"Custom",value:"custom"},{name:"VoiceMail",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}]};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,b,c){e.put("token",a),e.put("userId",b),e.put("name",c),g=d.me()},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===g.role},getRole:function(){return g.role},getToken:function(){return e.get("token")},getUserId:function(){return console.log(e.get("userId")),e.get("userId")},getName:function(){return e.get("name")}}}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]},chat:{conditions:[],actions:[]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]}},b=["voice","mail","chat","fax"],c={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},d={voice:{},mail:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]},chat:{},fax:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]}};return{automations:a,properties:d,channels:b,operators:c}}),angular.module("xCallyShuttleApp").service("desk_com",function(){var a=[{id:"priority",label:"Priority",custom:!1,data:{choices:[1,2,3,4,5,6,7,8,9,10]}},{id:"status",label:"Status",custom:!1,data:{choices:["new","open","pending","resolved","closed"]}},{id:"type",label:"Type",custom:!1,data:{choices:["chat","twitter","email","qna","facebook","phone"]}}];return{fields:a}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.$on("$includeContentLoaded",function(){Layout.initFooter()}),a.initFooter=function(){b.get("/api/settings/info").success(function(b){a.info=b}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3"),d={};"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var b=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});b.$on("click",function(){e.put("/api/report/mails/"+a.id,{connect:!0}).success(function(){b.close(),h.show("Mail properly assigned","success")}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("report_chat:save",function(a){d[a.uniqueid]&&(d[a.uniqueid].close(),delete d[a.uniqueid]),c.play(),d[a.uniqueid]=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot}),d[a.uniqueid].$on("click",function(){e.put("/api/report/chats/"+a.id,{connect:!0}).success(function(){d[a.uniqueid].close(),h.show("Chat properly assigned","success"),b.$broadcast("chatMessageEvent",{type:"external",chatRoomId:a.chatroomid})}).error(function(a){"SequelizeUniqueConstraintError"===a.name?h.show("Chat has been already assigned!","danger"):h.show(a.message,"danger")})})}),i.socket.on("chat_message:save",function(a){var d=m.get("chatRoomId");if(!d||d!==a.ChatRoomId){c.play();var e=f(a.User.fullname,{icon:"assets/images/media/channels/chat64.png",body:a.body.length>35?a.body.substring(0,35)+"...":a.body,delay:1e4});e.$on("click",function(){b.$broadcast("chatMessageEvent",{chatRoomId:a.ChatRoomId})})}}),i.socket.on("user_has_chat_room:save",function(a){c.play();var d=f("Chat Group ",{icon:"assets/images/media/channels/chat64.png",body:"New Chat Group",delay:1e4});d.$on("click",function(){b.$broadcast("chatGroupEvent",a)})})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.pluck(b,"FaxQueueId"),a.faxQueues.forEach(function(a){i.socket.on("FAX:QUEUE:"+a,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}),i.socket.on("FAX:AGENT:"+g.getCurrentUser().id,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}).error(function(a){console.error(a)}),i.socket.on("user_has_fax_queue:save",function(b){b=_.map(b,function(a){return a.UserId=parseInt(a.UserId,10),a}),b=_.find(b,{UserId:g.getCurrentUser().id}),b&&-1===_.indexOf(a.faxQueues,b.FaxQueueId)&&(a.faxQueues.push(b.FaxQueueId),i.socket.on("FAX:QUEUE:"+b.FaxQueueId,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})}))}),i.socket.on("user_has_fax_queue:remove",function(b){_.indexOf(b.where.UserId,g.getCurrentUser().id.toString())>=0&&_.indexOf(a.faxQueues,b.where.FaxQueueId)>=0&&(a.faxQueues=_.remove(a.faxQueues,b.where.FaxQueueId),i.socket.removeAllListeners("FAX:QUEUE:"+b.where.FaxQueueId))})},a.logout=function(){e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",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{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){console.log("openModal",d);var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){console.log(Array.prototype.slice.call(arguments));var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerAddModal",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.modal={title:"APPLICATION_AGENTS_SELECTION"},a.ok=function(){b.close(_.union(_.pluck(a.selected.items,"id"),_.pluck(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerCloseModal",["$scope","$uibModalInstance",function(a,b){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.ok=function(){b.close()},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarController",["$scope","$rootScope","$window","$http","$uibModal","$log","$timeout","$interval","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate","QuickSidebarFactory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a.emojiMessage={},a.options=s.options,a.message={body:"",user:""};var t=a.currentUser=i.getCurrentUser();a.$on("$includeContentLoaded",function(){p.get("chatRoomId")&&l.get({id:p.get("chatRoomId")},u,v),p.get("currentTab")&&(a.currentTab=p.get("currentTab"))}),a.agents=j.get({page:0,per_page:1e3},function(){n.syncUpdates("agent",a.agents.rows)}),a.users=k.get({page:0,per_page:1e3},function(){n.syncUpdates("user",a.users.rows)}),a.currentTab=0,a.messagesTab=!1,a.chatRooms=l.me(function(b){a.chatRooms=b},function(a){console.error(a)}),n.socket.on("report_chat:assignment",function(a){a.agentid&&l.get({id:a.chatroomid},u,v)}),n.socket.on("chat_room:save",function(b){if(a.chatRoom&&a.chatRoom.id===b.id){_.merge(a.chatRoom,b);var c=_.find(a.chatRooms,{id:b.id});c&&_.merge(c,b)}}),n.socket.on("chat_message:save",function(b){a.chatRoom&&a.chatRoom.id===b.ChatRoomId&&(a.chatRoom.ChatMessages.push(b),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),n.socket.on("user_has_chat_room:save",function(b){var c=_.findIndex(a.chatRooms,{id:b.id});c>=0?a.chatRooms[c]=b:a.chatRooms.push(b)}),b.$on("chatMessageEvent",function(a,b){l.get({id:b.chatRoomId},u,v)}),b.$on("chatGroupEvent",function(b,c){a.currentTab=3,a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,a.chatRoom=c}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,p.set("currentTab",a.currentTab),p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.goToMessage=function(a,b){a?l.users({users:[t.id,a]},u,v):l.get({id:b},u,v)},a.sendMessage=function(){a.message.body.trim().length&&m.save({ChatRoomId:a.chatRoom.id,body:a.message.body},function(){a.message.body=""},function(a){console.error(a)})},a.goBack=function(){a.messagesTab=!1,a.chatRoom=null,p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.closeChatRoom=function(a,b){var c=e.open({animation:!0,size:b,templateUrl:"components/quickSidebar/modal/close.html",controller:"QuickSidebarControllerCloseModal"});c.result.then(function(){l.update({id:a,status:"close"}).$promise.then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})},a.addAgent=function(b,c){var g=e.open({animation:!0,size:c,templateUrl:"components/quickSidebar/modal/add.html",controller:"QuickSidebarControllerAddModal",resolve:{items:function(){return _.map(a.chatRoom.Users?a.chatRoom.Users:[],function(a){return{id:a.id,fullname:a.fullname}})}}});g.result.then(function(a){d.put("/api/chat/rooms/"+b+"/users",{users:a}).then(function(a){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})};var u=function(b){switch(a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,p.set("chatRoomId",b.id),p.set("messagesTab",a.messagesTab),a.chatRoom=b,b.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2,_.find(a.chatRooms,{id:b.id})||a.chatRooms.push(b)}b.Users.length>2&&(a.currentTab=3),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1500)},v=function(a){console.error(a)},w=function(){var b=angular.element(c),d=function(){return{h:b.height(),w:b.width()}};a.$watch(d,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),b.bind("resize",function(){a.$apply()})};w(),a.$on("$destroy",function(){n.unsyncUpdates("agent"),n.unsyncUpdates("user")})}]),angular.module("xCallyShuttleApp").directive("resizeQuickSidebar",["$window",function(a){return function(b){var c=angular.element(a);b.getWindowDimensions=function(){return{h:c.height(),w:c.width()}},b.$watch(b.getWindowDimensions,function(a){b.style={height:a.h-46-46-46+"px"}},!0),c.bind("resize",function(){b.$apply()})}}]),angular.module("xCallyShuttleApp").factory("QuickSidebarFactory",function(){return{options:{link:!0,linkTarget:"_blank",pdf:{embed:!1},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,ytAuthKey:"_nkO9h1A7HlVyiUICO17oA"}}}}),angular.module("xCallyShuttleApp").filter("QuickSidebarFilterUsersGreaterThan",function(){return function(a,b){var c=[];return a.forEach(function(a){var d=0;a.ChatVisitor&&d++,d+=a.Users.length,d>b&&c.push(a)}),c}}).filter("QuickSidebarFilterUsersLowerThan",function(){return function(a,b){var c=[];return a.forEach(function(a){a.Users.length<b&&c.push(a)}),c}}),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","$http","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i){a.Auth=e,a.$stateParams=h,a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.isAssociated=function(a){if(e.isAdmin())return!0;if(e.getCurrentUser().Modules)for(var b=0;b<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.getSidebarIntegrations=function(){f.get("/api/integrations").success(function(b){a.integrations=b,i.syncUpdates("integration",a.integrations)}).error(function(a){g.show(a.message,"danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard"),i.unsyncUpdates("integration")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","$window","socketFactory","Auth",function(a,b,c,d){var e=d.getCurrentUser(),f=io("",{query:"token="+d.getToken()+"&userId="+(e.id||d.getUserId())+"&name="+(e.name||d.getName())+"&role="+(e.role||"agent")+"&source=browser",path:"/socket.io-client"}),g=c({ioSocket:f});return a.$on("logout",function(){g&&(g.disconnect(!0),b.location.reload())}),{socket:g,syncUpdates:function(a,b,c){c=c||angular.noop,g.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),g.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){g.removeAllListeners(a+":save"),g.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,g.on(a+":save",function(a){var e=!0;if(_.forIn(b,function(b,c){return a[c]&&a[c]===b?!0:e=!1}),e){var f=_.find(c,{id:a.id}),g=c.indexOf(f),h="created";f?(_.merge(c[g],a),h="updated"):c.unshift(a),d(h,a,c)}}),g.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",function(){var a={voice:{conditions:[{name:"APPLICATION_QUEUE",value:"queue",propertyField:"select",operators:"equals"},{name:"APPLICATION_CALL_STATUS",value:"lastevent",propertyField:"select",operators:"equals"}],actions:[{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"},{name:"APPLICATION_INTEGRATIONS",value:"integration",propertyField:"select",subField:{propertyField:"select",value:"account",api:{url:void 0,parseUrl:"/api/%s/accounts",query:void 0},subField:{propertyField:"select",value:"configuration",api:{url:void 0,parseUrl:"/api/%s/configurations",query:{field:"AccountId"}}}}}]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",propertyField:"input",operators:"equals"},{name:"APPLICATION_CC",value:"cc",propertyField:"input",operators:"equals"},{name:"APPLICATION_SUBJECT",value:"subject",propertyField:"input",operators:"equals"}],actions:[{name:"APPLICATION_TEMPLATE",value:"template",propertyField:"select",subField:{propertyField:"select",value:"smtp"}},{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},b={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{
-value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},c={voice:{lastevent:[{name:"APPLICATION_LASTEVENT_RINGING",value:"called"},{name:"APPLICATION_LASTEVENT_UP",value:"connect"},{name:"APPLICATION_LASTEVENT_COMPLETE",value:"complete"},{name:"APPLICATION_LASTEVENT_REJECTED",value:"rejected"},{name:"APPLICATION_LASTEVENT_ABANDONED",value:"abandoned"}]},mail:{},chat:{},fax:{}},d=["voice","mail","chat","fax"];return{triggers:a,properties:c,operators:b,channels:d}}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).value("apiServiceUrlCounter","/api/widgets/counter").config(["dashboardProvider",function(a){a.widget("counter",{title:"Counter",description:"Counter for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["$q","$http","apiServiceUrlCounter",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.colors=[{name:"Blue",value:"blue-madison"},{name:"Red",value:"red-intense"},{name:"Green",value:"green-haze"},{name:"Purple",value:"purple-plum"},{name:"Orange",value:"yellow-casablanca"},{name:"Yellow",value:"yellow-crusta"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.condition&&a.config.report&&c.get(a.config).then(function(b){a.count=parseInt(b[0].count)})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","<form role=form><div class=form-group><label class=control-label>{{'APPLICATION_REPORT' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_REPORT' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_CONDITION' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=\"{{'APPLICATION_CONDITION' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if="count || count === 0"><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{count}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!count && count != 0"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).value("apiServiceUrlPieChart","/api/widgets/piechart").config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["$q","$http","apiServiceUrlPieChart",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&1===b.length){a.labels=[],a.data=[];for(var c in b[0])a.labels.push(c),a.data.push(b[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}();var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'<div class="icheck_line-icon"></div>'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){(""===a.val()||a.val()==a.attr("placeholder"))&&a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible")?!0:!1,railVisible:"1"==$(this).attr("data-rail-visible")?!0:!1,disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"==typeof angular?!1:!0},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){
-return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){var a=$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0"),$("body").on("click",".sidebar-toggler",function(b){var c=$(".page-sidebar"),d=$(".page-sidebar-menu");$(".sidebar-search",c).removeClass("open"),a.hasClass("page-sidebar-closed")?(a.removeClass("page-sidebar-closed"),d.removeClass("page-sidebar-menu-closed"),$.cookie&&$.cookie("sidebar_closed","0")):(a.addClass("page-sidebar-closed"),d.addClass("page-sidebar-menu-closed"),a.hasClass("page-sidebar-fixed")&&d.trigger("mouseleave"),$.cookie&&$.cookie("sidebar_closed","1")),$(window).trigger("resize")})},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('<span class="selected"></span>')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/agent/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-people"></i>\n                                   <a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-people font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_AGENTS\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="agents.checked.length">\n                                          <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AGENT\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/agents/wizard">\n                                                             <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAgents([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="agents.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedAgents" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                  <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n                                                <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n                                                    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="agent in displayedAgents" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="agents.checked" checklist-value="agent.id"></td>\n                                                               <td>{{agent.fullname}}</td>\n                                         <td>{{agent.name}}</td>\n                                       <td><a data-ng-href="mailto:{{agent.email}}">{{agent.email}}</a></td>\n                                         <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/agents/view/{{agent.id}}/account">\n                                                                           {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(agent.fullname,agent.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedAgents.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>No agents available</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/view/view.account.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n                               </div>\n                                <ul class="nav nav-tabs">\n                                     <li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n                                               <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n                                       </li>\n                                 <li data-ng-show="Auth.isAdmin()">\n                                            <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n                                       </li>\n                                 <li data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}">\n                                            <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- PERSONAL INFO TAB -->\n                                    <div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n                                                <form name="forms.info" data-ng-submit="updateItem()" novalidate>\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="agent.fullname" required/>\n                                                          <span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="agent.name" required/>\n                                                              <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START EMAIL -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="agent.email" required/>\n                                                              <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n                                                           </span>\n                                                       </div>\n                                                        <!-- END EMAIL -->\n\n                                                  <!-- START INTERNAL -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="agent.internal" required disabled/>\n                                                              <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERNAL -->\n\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END PERSONAL INFO TAB -->\n                                        <!-- CHANGE AVATAR TAB -->\n                                    <div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n                                             <form action="#" role="form">\n                                                 <div class="form-group">\n                                                              <div class="fileinput fileinput-new" data-provides="fileinput">\n                                                                       <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n                                                                            <img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n                                                                   </div>\n                                                                        <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n                                                                       </div>\n                                                                        <div>\n                                                                         <span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n                                                                                 <span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n                                                                                 <input type="file" nv-file-select="" uploader="uploader" /><br/>\n                                                                              </span>\n                                                                               <button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n                                                                                    {{ \'APPLICATION_REMOVE\' | translate }}\n                                                                              </button>\n                                                                             <button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n                                                                                     {{ \'APPLICATION_CONFIRM\' | translate }}\n                                                                             </button>\n                                                                     </div>\n                                                                        <p>\n                                                                           </br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n                                                                  </p>\n                                                          </div>\n                                                        </div>\n                                                </form>\n                                               <div class="row">\n                                                     <div class="col-md-2">\n                                                                <table class="table" border="0">\n                                                                      <tbody>\n                                                                       <tr data-ng-repeat="item in uploader.queue">\n                                                                                  <td style="border-top-style:none">\n                                                                                            <strong>\n                                                                                                      {{ item.file.name }}\n                                                                                          </strong>\n                                                                                     </td>\n                                                                                 <td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n                                                                                             {{ item.file.size/1024/1024|number:2 }} MB\n                                                                                    </td>\n                                                                                 <td nowrap style="border-top-style:none">\n                                                                                             <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                            <span class="glyphicon glyphicon-trash"></span> Remove\n                                                                                                </button>\n                                                                                     </td>\n                                                                         </tr>\n                                                                 </tbody>\n                                                              </table>\n                                                      </div>\n                                                </div>\n                                        </div>\n                                        <!-- END CHANGE AVATAR TAB -->\n                                        <!-- CHANGE PASSWORD TAB -->\n                                  <div class="tab-pane" data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}" id="tab_1_3">\n                                             <form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n                                                  <!-- START CURRENT PWD -->\n                                                    <div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.currentPwd" required/>\n                                                             <span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CURRENT PWD -->\n                                                      <!-- START NEW PWD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.newPwd" required/>\n                                                         <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NEW PWD -->\n                                                  <!-- START RE-NEW PWD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.reNewPwd" nx-equal="agent.newPwd" required/>\n                                                            <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RE-NEW PWD -->\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END CHANGE PASSWORD TAB -->\n                              </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/agent/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-people"></i>\n                                   <a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{agent.fullname}}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-userpic">\n                                 <img ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- START SIDEBAR USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{agent.fullname}}\n                                    </div>\n                                        <div class="profile-usertitle-job">\n                                           {{agent.role}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.agents.view.account\')}">\n                                                        <a data-ng-href="/agents/view/{{agent.id}}/account">\n                                                  <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n\n          <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n       <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-people"></i>\n                           <a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/agents/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                 </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n        <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-user font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }} WIZARD</a> </span>\n              </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n                     <form name="forms.info" novalidate>\n\n                           <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n                                                   <span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                           <!-- START USERNAME -->\n                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/agents/validate/name"/>\n                                                        <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                                                       <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END USERNAME -->\n\n                       <!-- START EMAIL -->\n                          <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n                             <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/agents/validate/email"/>\n                               <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                               <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n                         </span>\n                                                       <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n                          </span>\n                             </div>\n                        <!-- END EMAIL -->\n\n                          <!-- START PASSWORD -->\n                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                           <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END PASSWORD -->\n\n                       <!-- START RE PASSWORD -->\n                            <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n                             <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n                                <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                               <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END RE PASSWORD -->\n\n                                              <!-- START INTERNAL -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                      <div class="input-group">\n                                                     <input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/agents/validate/internal"/>\n                                                   <span class="input-group-addon">\n                                                              <input type="checkbox" data-ng-model="item.internalEnabled">\n                                                  </span>\n                                                       </div>\n                                                        <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                                       <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERNAL -->\n\n                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                            </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n                                  <form name="forms.voice" novalidate>\n\n                                                <!-- START ACCOUNTCODE -->\n                                            <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                  <input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n                                                    <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div> -->\n                                            <!-- END ACCOUNTCODE -->\n\n                                            <!-- START TRANSPORT -->\n                                              <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n                                                       <ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n                                                  <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n                                                <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n                                                    {{transport}}\n                                             </ui-select-choices>\n                                                </ui-select>\n                                                        <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n                                                     </span>\n                                               </div>\n                                                <!-- END TRANSPORT -->\n\n                                              <!-- START HOST -->\n                                           <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n                                                   <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div> -->\n                                            <!-- END HOST -->\n\n                                           <!-- START NAT -->\n                                            <!-- <div class="form-group">\n                                                 <label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n                                                     <ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n                                                          <ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n                                                            <ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n                                                                    {{nat}}\n                                                               </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n                                                   </span>\n                                               </div> -->\n\n                                          <!-- END NAT -->\n\n                                            <!-- START TYPE -->\n                                           <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n                                                          <ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n                                                         <ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n                                                                        <div ng-bind-html="type | highlight: $select.search"></div>\n                                                           </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div> -->\n                                            <!-- END TYPE -->\n\n                                           <!-- START CODEC -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n                                                  <ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n                                                  <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n                                                    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n                                                  {{allow}}\n                                                 </ui-select-choices>\n                                                </ui-select>\n                                                        <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n                                                 </span>\n                                               </div>\n                                                <!-- END CODEC -->\n\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              <input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n                                   </form>\n                               </wz-step>\n\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/analytic/extracted/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-file-pdf-o"></i>\n                                      <a href="/analytics/extracted/list">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-file-pdf-o font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Extracts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getExtracts([\'name\',\'startDate\',\'endDate\'])" csv-header="[\'Name\', \'Start Date\', \'End Date\']" field-separator=";" filename="extracted_reports.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedExtracts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="8">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.extractsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="extractByPage in extractsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="extractByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(extract, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="startDate">{{ \'APPLICATION_START_DATE\' | translate }}</th>\n                                                 <th st-sort="endDate">{{ \'APPLICATION_END_DATE\' | translate }}</th>\n                                                             <th st-sort="createdAt">{{ \'APPLICATION_RUN_DATE\' | translate }}</th>\n                                                               <th st-sort="output">{{ \'APPLICATION_OUTPUT\' | translate }}</th>\n                                                            <th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="extract in displayedExtracts" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input data-ng-hide="extract.defaultEntry" type="checkbox" checklist-model="Extracts.checked" checklist-value="extract.id"></td>\n                                                               <td>{{extract.name}}</td>\n                                           <td>{{extract.startDate}}</td>\n                                                          <td>{{extract.endDate}}</td>\n                                                          <td>{{extract.createdAt}}</td>\n                                                                <td>{{extract.output}}</td>\n                                                           <td>{{extract.status}}</td>\n                                         <td>\n                                                                    <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(extract.name,extract.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                          <motion-file-download data-ng-show="extract.status == \'completed\'" url="\'/api/analytics/extracted/download/\'+extract.id" mimetype="\'application/\'+extract.output.toLowerCase()" filename="extract.name+\'_\'+moment(extract.startDate).format(\'MM-DD-YYYY\').toString()+\'_\'+moment(extract.endDate).format(\'MM-DD-YYYY\').toString()+\'.\'+extract.output.toLowerCase()"></motion-file-download>\n                                          </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedExtracts.length">\n                                                          <td colspan="8" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_EXTRACTED_REPORTS_AVAILABLE\' | translate }}</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="startDate" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_START_DATE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                     </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="endDate" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_END_DATE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                                </td>\n                                                         <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="createdAt" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_RUN_DATE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                       </div>\n                                                                </td>\n                                                         <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="output" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_OUTPUT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                                </td>\n                                                         <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="status" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STATUS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                                </td>\n                                             <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="8" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.extractsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<motion-file-download url="\'/api/analytics/extracted/download/39\'" mimetype="\'application/pdf\'" filename="\'asdasd.pdf\'"></motion-file-download>\n\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_METRIC\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.metric" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TABLE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.table" name="table" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n          <div ng-bind-html="table.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TABLE-->\n\n    <!-- START METRIC -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$invalid}">\n      <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="item.metric" required/></textarea>\n      <span data-ng-show="(forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END METRIC -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.metric.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/metric/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-calculator"></i>\n                                       <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-calculator font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_METRICS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Metrics.checked.length">\n                                         <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_METRIC\' | translate }}\n                                                </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getMetrics([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="metrics.csv">\n                                       <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedMetrics" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                 <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.metricsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="metricByPage in metricsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="metricByPage.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(metric, checked)" checklist-model checklist-value="id"></th>\n                                                   <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="metric in displayedMetrics" class="animate-repeat">\n                                                           <td style="text-align: center; vertical-align: middle"><input data-ng-hide="metric.defaultEntry" type="checkbox" checklist-model="Metrics.checked" checklist-value="metric.id"></td>\n                                                          <td>{{metric.name}}</td>\n                                            <td>{{metric.description}}</td>\n                                       <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/analytics/metrics/view/{{metric.id}}/settings" data-ng-class="{\'disabled\': metric.defaultEntry}">\n                                                                          {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(metric.name,metric.id)" data-ng-class="{\'disabled\': metric.defaultEntry}">\n                                                                               {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedMetrics.length">\n                                                           <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_METRICS_AVAILABLE\' | translate }}</i>\n                                                             </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.metricsByPage.value" st-displayed-pages="7"></div>\n                                             </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMetric()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                                       <i data-ng-show="metric" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="metric">\n                                    <a href="#">{{metric.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/metric.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{metric.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.metrics.view.settings\')}">\n                                                    <a data-ng-href="/analytics/metrics/view/{{metric.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMetric()" novalidate>\n\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="metric.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START TABLE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="metric.table" name="table" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n                                                                          <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TABLE-->\n\n                                                   <!-- START METRIC -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="metric.metric" required/></textarea>\n                                                             <span data-ng-show="(forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END METRIC -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/analytic/report/list/copy.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_COPY_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="portlet light bordered">\n    <div class="portlet-title">\n      <div class="caption font-green-sharp" style="padding-left:10px;">\n        <i class="icon-folder font-green-sharp"></i>\n        <span class="caption-subject">{{ \'APPLICATION_COPY_TO\' | translate }} </span>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;"></div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-disabled="!customTree.get_selected(true).pop().id" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.report" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PATH\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_PATH\' | translate}}" class="form-control" data-ng-model="path" disabled/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/extract.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_EXTRACT_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn default green-jungle" type="button" data-ng-click="extract(\'csv\')"><i class="fa fa-file-excel-o"></i> {{ \'APPLICATION_SAVE_AS_CSV\' | translate }}</button>\n  <button class="btn default red-intense" type="button" data-ng-click="extract(\'pdf\')"><i class="fa fa-file-pdf-o"></i> {{ \'APPLICATION_SAVE_AS_PDF\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrees()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n                <div class="col-fixed">\n                       <!-- BEGIN Portlet PORTLET-->\n                 <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp" style="padding-left:10px;">\n                                             <i class="icon-folder font-green-sharp"></i>\n                                          <span class="caption-subject">{{ \'APPLICATION_FOLDERS\' | translate }} </span>\n                                       </div>\n                                        <div class="inputs">\n                                          <div class="portlet-input input-inline input-small">\n                                                  <div class="input-icon right">\n                                                                <i class="icon-magnifier"></i>\n                                                                <input type="text" data-ng-model="searchField" data-ng-change="searchTrees()" class="form-control input-circle" placeholder="search...">\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <div js-tree="defaultTreeConfig" ng-model="defaultTreeData" should-apply="ac()" tree="defaultTreeInstance" tree-events="ready:initDefaultScopeTree;select_node:selectDefaultNode;"></div>\n                                     <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;select_node:selectCustomNode;rename_node:updateCustomTree;delete_node:updateCustomTree;move_node:updateCustomTree;create_node:updateCustomTree;"></div>\n                                </div>\n                        </div>\n                        <!-- END Portlet PORTLET-->\n           </div>\n                <div class="row tree-row">\n                    <div class="col-md-12">\n                               <!-- BEGIN Portlet PORTLET-->\n                         <div class="portlet light bordered">\n                                  <div class="portlet-title">\n                                           <div class="caption font-green-sharp">\n                                                        <i class="icon-book-open font-green-sharp"></i>\n                                                       <span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}<span data-ng-if="selectedNode"> - {{selectedNode}}</span></span>\n                                              </div>\n                                                <div data-ng-if="!defaultTreeActive" class="actions">\n                                                 <div class="btn-group" data-ng-show="Reports.checked.length">\n                                                         <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                                           </a>\n                                                  </div>\n                                                        <div class="btn-group">\n                                                               <span class="btn default btn-file">\n                                                           <span class="fileinput-new">\n                                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_JSON\' | translate}}</span>\n                                                             <input type="file" on-read-file="import($fileContent)"/>\n                                                              </span>\n                                                       </div>\n                                                        <div class="btn-group">\n                                                               <button class="btn green-jungle " ng-click="create()">\n                                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n                                                                </button>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                        <div class="portlet-body">\n                                            <!-- START TABLE -->\n                                          <table data-ng-if="defaultTreeReady && customTreeReady" st-table="displayedReports" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                                        <div class="table-responsive" data-ng-init="firstSelect()">\n                                                           <thead>\n                                                                       <tr>\n                                                                          <th colspan="5">\n                                                                                      <div class="row">\n                                                                                             <div class="col-md-6">\n                                                                                                        <ui-select class="input-xsmall" ng-model="conf.reportsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                                             <ui-select-choices repeat="reportByPage in reportsByPage | filter: $select.search">\n                                                                                                                   <div ng-bind-html="reportByPage.name | highlight: $select.search"></div>\n                                                                                                              </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                                <div class="col-md-6">\n                                                                                                        <div class="input-group input-medium pull-right">\n                                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                                         <span class="input-group-addon">\n                                                                                                                      <i class="fa fa-search"></i>\n                                                                                                          </span>\n                                                                                                       </div>\n                                                                                                </div>\n                                                                                        </div>\n                                                                                </th>\n                                                                 </tr>\n                                                                 <tr>\n                                                                          <th class="small-cells" style="text-align: center; vertical-align: middle"><input data-ng-checked="Reports.checked.length" data-ng-hide="defaultTreeActive" type="checkbox" ng-change="check(report, checked)" checklist-model checklist-value="id"></th>\n                                                                             <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                          <th>{{ \'APPLICATION_MANAGE\' | translate }}</th>\n                                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                                    </tr>\n                                                         </thead>\n                                                              <tbody>\n                                                                       <tr data-ng-repeat="report in displayedReports" class="animate-repeat">\n                                                                               <td style="text-align: center; vertical-align: middle"><input data-ng-hide="defaultTreeActive" type="checkbox" checklist-model="Reports.checked" checklist-value="report.id"></td>\n                                                                            <td>{{report.name}}</td>\n                                                                              <td>{{report.description}}</td>\n                                                                               <td>\n                                                                                  <a data-ng-if="!defaultTreeActive" class="btn default btn-xs blue-stripe" data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                                                     </a>\n                                                                                  <a data-ng-if="!defaultTreeActive" class="btn default btn-xs red-stripe" data-ng-click="deleteItem(report.name,report.id)">\n                                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                                                                      </a>\n                                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="copy(report.id)">\n                                                                                           {{ \'APPLICATION_COPY\' | translate }}\n                                                                                        </a>\n                                                                                  <a class="btn default btn-xs purple-stripe" data-ng-click="export(report.id)">\n                                                                                                {{ \'APPLICATION_EXPORT\' | translate }}\n                                                                                      </a>\n                                                                          </td>\n                                                                         <td>\n                                                                                  <a class="btn default btn-xs yellow-stripe" data-ng-click="preview(report.id)">\n                                                                                               {{ \'APPLICATION_PREVIEW\' | translate }}\n                                                                                     </a>\n                                                                                  <button type="button" data-ng-click="extract(report.id)" class="btn default btn-xs green-seagreen-stripe">\n                                                                                            {{ \'APPLICATION_RUN \' | translate }}\n                                                                                        </button>\n                                                                             </td>\n                                                                 </tr>\n                                                                 <tr data-ng-hide="displayedReports.length">\n                                                                           <td colspan="5" style="text-align:center;">\n                                                                                   <i>{{ \'MESSAGE_NO_REPORTS_AVAILABLE\' | translate }}</i>\n                                                                             </td>\n                                                                 </tr>\n                                                         </tbody>\n                                                              <tfoot>\n                                                                       <tr>\n                                                                          <td/>\n                                                                         <td>\n                                                                                  <div class="input-icon right">\n                                                                                                <i class="fa fa-search"></i>\n                                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                                        </div>\n                                                                                </td>\n                                                                         <td>\n                                                                                  <div class="input-icon right">\n                                                                                                <i class="fa fa-search"></i>\n                                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                                  </div>\n                                                                                </td>\n                                                                         <td/>\n                                                                         <td/>\n                                                                 </tr>\n                                                                 <tr>\n                                                                          <td colspan="5" class="text-center">\n                                                                                  <div st-pagination class="pagination" st-items-by-page="conf.reportsByPage.value" st-displayed-pages="7"></div>\n                                                                               </td>\n                                                                 </tr>\n                                                         </tfoot>\n                                              </div>\n                                                </table>\n                                              <!-- END TABLE -->\n                                    </div>\n                                </div>\n                                <!-- END Portlet PORTLET-->\n                   </div>\n                </div>\n        </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/analytic/report/list/preview.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_REPORT_PREVIEW\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n  <div ng-slide-down="showResult" lazy-render duration="1">\n    <div ui-grid="gridOptions" ui-grid-pagination ui-grid-exporter class="grid extract-grid"></div>\n  </div>\n</div>\n<div class="modal-footer">\n<button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getReport()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                                       <i data-ng-show="report" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="report">\n                                    <a href="#">{{report.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/report.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{report.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.reports.view.settings\')}">\n                                                    <a data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_REPORT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li>\n                                          <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li class="active">\n                                           <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_BUILD\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab" data-ng-click="showResult = true">{{ \'APPLICATION_TEST_PREVIEW\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n\n                          <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane" id="tab_1_1">\n                                           <form name="forms.general" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="report.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="report.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TABLE INPUT -->\n\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                                     </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane active" id="tab_1_2">\n                                            <form name="forms.report" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="report.table" name="table" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="table.table as table in tables | filter: $select.search">\n                                                                  <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                     </span>\n                                                       <span data-ng-show="(forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TABLE INPUT-->\n                                               <div data-ng-if="report.table" class="mbottom20 pbottom20">\n                                           <div class="portlet-title tabbable-line">\n                                                     <div class="caption caption-md">\n                                                              <i class="icon-globe theme-font hide"></i>\n                                                            <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_FIELDS\' | translate}} </span>\n                                                        </div>\n                                                </div>\n                                                                <!-- START TABLE -->\n                                                          <table class="table table-striped table-bordered table-hover">\n                                                                        <thead>\n                                                                               <tr>\n                                                                                  <th>{{ \'APPLICATION_FIELD\' | translate }} / {{ \'APPLICATION_METRIC\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ALIAS\' | translate }}</th>\n                                                                                      <th>{{ \'APPLICATION_FUNCTION\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_GROUP_BY\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ORDER_BY\' | translate }}</th>\n                                                                                   <th></th>\n                                                                                     <th></th>\n                                                                             </tr>\n                                                                 </thead>\n                                                                              <tbody ui-sortable="sortableOptions" data-ng-model="report.Fields">\n                                                                                   <tr data-ng-repeat="field in report.Fields">\n                                                                                          <td>\n                                                                                                  <!-- START FIELD -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.field}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.field" dynamic-name="randomName()" theme="bootstrap" required>\n                                                                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}"><span ng-bind-html="$select.selected.name"></span></ui-select-match>\n                                                                                                                     <ui-select-choices repeat="tableField.value as tableField in tableFields | filter: $select.search">\n                                                                                                                           <div ng-bind-html="tableField.name | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                          <span data-ng-show="forms.report.$submitted && !field.field" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END FIELD-->\n                                                                                             </td>\n                                                                                         <td>\n                                                                                                  <!-- START ALIAS -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.alias}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_ALIAS\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <input type="text" dynamic-name="randomName()" placeholder="{{\'APPLICATION_ALIAS\' | translate}}" class="form-control" data-ng-model="field.alias" required/>\n                                                                                                                <span data-ng-show="forms.report.$submitted && !field.alias" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END ALIAS -->\n                                                                                            </td>\n                                                                                         <td>\n                                                                                                  <!-- START FUNCTION -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.function" name="function" theme="bootstrap">\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_FUNCTION\' | translate}}" allow-clear>{{$select.selected.name}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="function.value as function in functions | filter: $select.search">\n                                                                                                                         <div ng-bind-html="function.name | highlight: $select.search"></div>\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END FUNCTION-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START GROUP_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.groupBy" name="groupBy" theme="bootstrap" required>\n                                                                                                                   <ui-select-match placeholder="{{\'APPLICATION_GROUP_BY\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="groupBy.value as groupBy in groupByField | filter: $select.search">\n                                                                                                                                {{$translate.instant(groupBy.name)}}\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END GROUP_BY-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START ORDER_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.orderBy" name="orderBy" theme="bootstrap">\n                                                                                                                    <ui-select-match placeholder="{{\'APPLICATION_ORDER_BY\' | translate}}" allow-clear>{{$select.selected}}</ui-select-match>\n                                                                                                                    <ui-select-choices repeat="orderBy in [\'ASC\',\'DESC\'] | filter: $select.search">\n                                                                                                                           <div ng-bind-html="orderBy | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END TABLE INPUT-->\n                                                                                               </td>\n                                                                                         <td class="report-field-remove">\n                                                                                                      <button class="btn red" type="button" data-ng-click="removeField($index)"><i class="fa fa-times"></i></button>\n                                                                                                </td>\n                                                                                         <td class="report-field-handle">\n                                                                                                      <!-- <img data-ng-src="assets/images/move.png" class="img-responsive"> -->\n                                                                                            </td>\n                                                                                 </tr>\n                                                                                 <tr data-ng-hide="report.Fields.length" class="unsortable">\n                                                                                           <td colspan="7" style="text-align:center;">\n                                                                                                   <i>{{ \'MESSAGE_ADD_A_FIELD\' | translate }}</i>\n                                                                                              </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                              </table>\n                                                              <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}\n                                                          </button>\n                                                             <!-- END TABLE -->\n                                                    </div>\n                                                                <div data-ng-if="report.Fields.length" class="mbottom20 pbottom20">\n                                                                   <div class="portlet-title tabbable-line">\n                                                                             <div class="caption caption-md">\n                                                                                      <i class="icon-globe theme-font hide"></i>\n                                                                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONDITIONS\' | translate}} </span>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="alert alert-info">\n                                                                                        <strong>Output</strong><br>\n                                                                                   <span ng-bind-html="output"></span>\n                                                                   </div>\n\n                                                                      <report-builder group="report.conditions.group" fields="report.Fields" forms="forms" firstCall=\'true\'></report-builder>\n                                                             </div>\n                                                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                          </form>\n                                                               <!-- <pre>\n                                                                    {{report | json}}\n                                                             </pre> -->\n\n                                  </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <div ng-slide-down="showResult" lazy-render duration="0.5">\n                                                   <div ui-grid="gridOptions" ui-grid-move-columns class="grid"></div>\n                                           </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/automation/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bulb"></i>\n                                             <a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-bulb font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Automations.checked.length">\n                                             <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n                                           </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/automations/wizard">\n                                                                <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="automations.csv">\n                                       <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                     <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.AutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="AutomationByPage in AutomationsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="AutomationByPage.name | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                              <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Automation, checked)" checklist-model checklist-value="id"></th>\n                                               <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="Automation in displayedAutomations">\n                                                          <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Automations.checked" checklist-value="Automation.id"></td>\n                                           <td>{{Automation.name}}</td>\n                                                            <td>{{Automation.description}}</td>\n                                                           <td>{{Automation.channel | capitalize}}</td>\n                                                          <td>\n                                                                  <input\n                                                                                data-ng-change="updateItem(Automation.id, Automation.status)",\n                                                                    bs-switch\n                                                             ng-model="Automation.status"\n                                                                  type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ onText }}"\n                                                                 switch-off-text="{{ offText }}"\n                                                               switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                          </td>\n                                       <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/automations/view/{{Automation.id}}/settings">\n                                                                                {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Automation.name, Automation.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedAutomations.length">\n                                                               <td colspan="6" class="text-center">\n                                                                  <i>No available automations</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                                </td>\n                                                         <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.AutomationsByPage.value" st-displayed-pages="7"></div>\n                                         </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                 <i class="fa fa-angle-right" data-ng-show="automation"></i>\n                           </li>\n                         <li data-ng-show="automation">\n                                        <a href="#">{{ automation.description || automation.name }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ automation.name }}\n                                 </div>\n                                        <div class="profile-usertitle-job">\n                                           {{ automation.description }}\n                                  </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.automations.view.settings\')}">\n                                                  <a href="/automations/view/{{automation.id}}/settings">\n                                                       <i class="icon-bulb"></i>\n                                                     {{ \'APPLICATION_SETTINGS\' | translate }} </a>\n                                               </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <!-- <pre>\n                                    {{conditionsData.query | json}}\n                               </pre>\n                                <pre>\n                                 {{actionsData.query | json}}\n                          </pre> -->\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateAutomation()" novalidate>\n                                                    <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n                                                             <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane" id="tab_1_2">\n                                   <div class="portlet light bordered">\n                                          <div class="portlet-title">\n                                                   <div class="caption font-blue-hoki">\n                                                          <i class="icon-tag font-blue-hoki"></i>\n                                                               <span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n                                                        </div>\n                                                </div>\n                                                <div class="portlet-body">\n                                                    <query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[automation.channel]"></query-builder>\n                                              </div>\n                                        </div>\n                                        <div class="portlet light bordered">\n                                          <div class="portlet-title">\n                                                   <div class="caption font-blue-hoki">\n                                                          <i class="icon-tag font-blue-hoki"></i>\n                                                               <span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n                                                   </div>\n                                                </div>\n                                                <div class="portlet-body">\n                                                    <query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[automation.channel]"></query-builder>\n                                               </div>\n                                        </div>\n\n                                              <input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateAutomation()"/>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/automation/wizard/wizard.html",'<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-bulb font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <!-- <pre>\n                                            {{item | json}}\n                                       </pre>\n                                        <pre>\n                                         {{conditionsData.query | json}}\n                                       </pre>\n                                        <pre>\n                                         {{actionsData.query | json}}\n                                  </pre> -->\n                                    <wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                                              <form name="forms.general" data-ng-submit="submit()" novalidate>\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.general.name.$touched && forms.general.name.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.general.name.$touched && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                            </form>\n                                       </wz-step>\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(conditionsData.query.length && actionsData.query.length)">\n                                          <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n                                                           </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <div class="form-group"  >\n                                                                    <label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n                                                                            <ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                          <ui-select-choices repeat="channel in $automations.channels | filter: $select.search">\n                                                                                        <div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n                                                                           </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                        </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n                                                                </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[item.channel]"></query-builder>\n                                                    </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n                                                           </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n                                                     </div>\n                                                </div>\n                                                <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                    </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/preview/preview.html",'<style>\n  .xc_footer\n  {\n    text-align: center;\n   padding-bottom: 5px;\n  }\n\n  .xc_powered\n  {\n       color: grey;\n    font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n     padding-bottom: 5px;\n  }\n\n  .xc_chat_container\n  {\n        //width:379px;\n        //position:fixed;\n     //bottom:0;\n   //right:50px;\n         z-index:9999;\n         background-color:transparent;\n  }\n\n  .xc_chat_container *\n  {\n     font-family:Arial,Helvetica,sans-serif;\n       font-size:13px;\n       margin:0;\n     padding:0;\n  }\n\n  .xc_chat_container p\n  {\n        margin:5px 0;\n  }\n\n  .xc_signup_wrapper\n  {\n       max-height:375px;\n  }\n\n  .xc_conversation_container\n  {\n   max-height:375px;\n     list-style:none;\n      overflow:auto;\n        margin:0;\n     padding:20px 10px;\n  }\n\n  .xc_conversation_container a\n  {\n        color:#036;\n  }\n\n  .xc_conversation_container a.xc_btn_style\n  {\n          color:#fff;\n  }\n\n  div.xc_chat_head\n  {\n   color:#fff;\n   background:{{chatWebsite.color}};\n     //border-radius: 20px 20px 0px 0px !important;\n        height:52px;\n          line-height:55px;\n     cursor:pointer;\n  }\n\n  div.xc_chat_head.rounded\n  {\n       border-radius: 20px 20px 0px 0px !important;\n  }\n\n  div.xc_chat_head.squared\n  {\n          //border-radius: 20px 20px 0px 0px !important;\n  }\n\n  .xc_chat_head-title\n  {\n     margin:5px 0 0 15px;\n          color: #fff;\n  }\n\n  .xc_header_icon\n  {\n   display:block;\n        background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n         width:21px;\n   height:16px;\n          float:right;\n          margin:20px 20px 0 0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n          display:block;\n        height:16px;\n          width:15px;\n   text-align:center;\n    font-size:9px;\n        color:#555;\n   position:relative;\n    top:-20px;\n    left:4px;\n     margin:0;\n     padding:0;\n  }\n\n  .xc_sub-head-spacer\n  {\n         padding:1px;\n  }\n\n  .xc_conversation\n  {\n          display:none;\n         margin:0 12px 0 11px;\n  }\n\n  .xc_chat_toggle_container\n  {\n        /*background:mediumslateblue center -52px;*/\n          background: white;\n    border-style: solid;\n    border-width: 1px;\n          border-color: {{chatWebsite.color}};\n          //display:none;\n  }\n\n  .xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper\n  {\n       //display:none;\n    display:block;\n   overflow:auto;\n        line-height:1;\n        padding:25px;\n  }\n\n  .xc_exit_chat_container\n  {\n          text-align:right;\n     width:95%;\n    margin:0 auto;\n        padding:5px 1px 0 0;\n  }\n\n  .xc_exit_chat_container span,.xc_exit_chat_container a\n  {\n    font-size:80%;\n        color:#666;\n   text-decoration:none;\n  }\n\n  .xc_exit_chat_container a:hover\n  {\n          color:#333;\n  }\n\n  a.xc_btn_exit_chat_confirm:hover\n  {\n   color:red;\n  }\n\n  a.xc_btn_exit_chat_cancel:hover\n  {\n     color:#0c0;\n  }\n\n  form.xc_form_reply\n  {\n         position:relative;\n  }\n\n  .xc_form_reply\n  {\n      /*background-color:#e3e3e3;*/\n         text-align:center;\n    /*border-top:1px solid #d3d3d3;*/\n  }\n\n  .xc_input_message\n  {\n    height:100px;\n         margin:10px auto 5px;\n  }\n\n  .xc_input_enquiry_message\n  {\n        height:100px;\n  }\n\n  .xc_form_signup,.xc_form_enquiry\n  {\n         text-align:center;\n  }\n\n  .xc_chat_container textarea,.xc_chat_container input[type=text]\n  {\n     width:95%;\n    min-width:95%;\n        max-width:95%;\n        -webkit-box-sizing:border-box;\n        -moz-box-sizing:border-box;\n   box-sizing:border-box;\n        background-color:#fff;\n        border:1px solid #ccc;\n        -webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n         -moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n    box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n         -webkit-transition:border linear .2s, box-shadow linear .2s;\n          -moz-transition:border linear .2s, box-shadow linear .2s;\n     -o-transition:border linear .2s, box-shadow linear .2s;\n       transition:border linear .2s, box-shadow linear .2s;\n          display:inline-block;\n         font-size:14px;\n       line-height:20px;\n     color:#555;\n   -webkit-border-radius:4px;\n    -moz-border-radius:4px;\n       border-radius:4px;\n    vertical-align:middle;\n        margin:3px 0;\n         padding:4px 6px;\n      resize: none;\n  }\n\n  .xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n  {\n      outline: {{chatWebsite.color_focus}} auto 5px;\n  }\n\n  .xc_chat_container input[type=text]\n  {\n     height: 30px;\n  }\n\n  .xc_message_sending textarea, .xc_enquiry_sending textarea\n  {\n       background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n  }\n\n  .xc_chatrow\n  {\n     display:block;\n        border-top:1px dashed #e3e3e3;\n        margin:5px 0;\n         clear: both;\n  }\n\n  .xc_chatrow p\n  {\n     color:#444;\n   word-wrap:break-word;\n  }\n\n  .xc_time\n  {\n         float:right;\n          font-size:80%;\n        color:#ccc;\n   padding-left:12px;\n    margin:3px;\n  }\n\n  .xc_submission_pending\n  {\n     background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center no-repeat;\n  }\n\n  .xc_submission_confirmed\n  {\n         background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center no-repeat;\n  }\n\n  .xc_fullname\n  {\n      font-weight:700;\n  }\n\n  .xc_fullname:after\n  {\n    content:":";\n  }\n\n  .xc_avatar\n  {\n        float: left;\n          margin: 0 5px 5px 0;\n          display: inline-block;\n        width: 40px;\n          height: 40px;\n         border-radius: 5px;\n           -moz-border-radius: 5px;\n      -webkit-border-radius: 5px;\n  }\n\n  .xc_smilie\n  {\n         background-repeat:no-repeat;\n          display:inline-block;\n         width:18px;\n   height:18px;\n          text-indent:-9999px;\n          white-space:nowrap;\n  }\n\n  .xc_btn_load_more\n  {\n          width:100%!important;\n  }\n\n  .xc_notifications_wrapper\n  {\n        text-shadow:0 1px 0 rgba(255,255,255,0.5);\n  }\n\n  .xc_notification_success\n  {\n    color:#468847;\n  }\n\n  .xc_notification_error\n  {\n          color:#b94a48;\n  }\n\n  .xc_errorlist\n  {\n   margin:0 0 0 25px;\n    padding:0;\n  }\n\n  i.xc_btn_notifications_close\n  {\n        float:right;\n          font-weight:700;\n      font-size:20px;\n       color:#ccc;\n   cursor:pointer;\n       margin:-15px 0 0;\n     padding:0;\n  }\n\n  .xc_btn_style\n  {\n       width:95%;\n    text-align:center;\n    line-height:1.2;\n      font-size:90%;\n        -moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n         -webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n      box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n      background:0;\n         background-color:{{chatWebsite.color_button}};\n        -moz-border-radius:4px;\n       -webkit-border-radius:4px;\n    border-radius:4px;\n    border:1px solid {{chatWebsite.color_button}};\n        display:inline-block;\n         color:#fff;\n   font-weight:700;\n      text-decoration:none;\n         text-shadow:1px 1px 0 #000c17;\n        margin:0 auto 5px;\n    padding:2px 0;\n  }\n\n  .xc_btn_style:hover\n  {\n     background:0;\n         background-color:{{chatWebsite.color_button}};\n      color: #fff;\n            text-decoration: none;\n  }\n\n  .xc_btn_style:active\n  {\n    position:relative;\n    top:1px;\n  }\n\n  .xc_composing_container\n  {\n       display: none;\n    width: 95%;\n    margin: 0 auto;\n    background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n    padding-left: 19px;\n    font-style: italic;\n  }\n\n  @media only screen and (max-height: 620px) {\n     .xc_conversation_container\n    {\n             max-height:300px!important;\n   }\n  }\n\n  @media only screen and (max-height: 545px) {\n      .xc_conversation_container\n    {\n             max-height:200px!important;\n   }\n  }\n\n  @media only screen and (max-height: 445px) {\n      .xc_conversation_container\n    {\n             max-height:150px!important;\n   }\n  }\n\n  @media only screen and (max-width: 480px) {\n       .xc_chat_container\n    {\n             width:95%!important;\n                  right:auto!important;\n                 -webkit-border-top-left-radius:15px;\n                  -webkit-border-top-right-radius:15px;\n                 -moz-border-radius-topleft:15px;\n              -moz-border-radius-topright:15px;\n             border-top-left-radius:15px;\n                  border-top-right-radius:15px;\n                 box-shadow:0 0 5px rgba(0,0,0,.5);\n            -webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n            -moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n       }\n\n   div.xc_chat_head\n      {\n             background-color:#036;\n                background-image:none;\n                line-height:25px;\n             height:auto;\n                  -webkit-border-top-left-radius:15px;\n                  -webkit-border-top-right-radius:15px;\n                 -moz-border-radius-topleft:15px;\n              -moz-border-radius-topright:15px;\n             border-top-left-radius:15px;\n                  border-top-right-radius:15px;\n                 padding:10px;\n         }\n\n   .xc_chat_toggle_container\n     {\n             background-color:#fff;\n                background-image:none;\n                border-color:#036;\n            border-style:solid;\n           border-width:0 1px;\n   }\n\n   .xc_header_icon\n       {\n             background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n                 margin:0;\n     }\n\n   .xc_header_icon span.xc_notification_badge span\n       {\n             top:-5px;\n             left:5px;\n     }\n\n   .xc_notification_success\n      {\n             background-color:#dff0d8;\n             border:1px solid #d6e9c6;\n     }\n\n   .xc_conversation_container\n    {\n             max-height:375px;\n             border-color:#036;\n    }\n\n   .xc_notification_error\n        {\n             background-color:#f2dede;\n             border:1px solid #eed3d7;\n     }\n\n   .xc_sub-head-spacer\n   {\n             display:none;\n                 padding:0;\n    }\n\n   .xc_chat_head-title,.xc_conversation\n          {\n             margin:0;\n     }\n  }\n</style>\n<div class="xc_chat_container">\n    <div class="xc_chat_head {{chatWebsite.header_shape}}">\n      <i class="xc_header_icon">\n        <span class="xc_notification_badge">\n          <span class="xc_notification_badge_number"></span>\n        </span>\n      </i>\n      <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n    </div>\n    <div class="xc_chat_toggle_container">\n        <div class="xc_sub-head-spacer"></div>\n        <div class="xc_notifications_wrapper">\n            <!--<i class="xc_btn_notifications_close">&times;</i>-->\n            <ul class="xc_errorlist"></ul>\n        </div>\n        <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n            <form class="xc_form_enquiry" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.offline_message\'></p>\n                <input maxlength="45" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" />\n                <input maxlength="85" type="text" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" />\n                <textarea maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message"></textarea>\n                <a href="#" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</a></form>\n        </div>\n        <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n            <form class="xc_form_signup" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.online_message\'></p>\n                <input maxlength="45" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" />\n                <input maxlength="85" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" />\n                <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" /><a href="#" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</a></form>\n        </div>\n        <!-- <div class="xc_conversation">\n            <div class="xc_conversation_container">\n                <p class="xc_message_intro" data-id="-10">{FirstMessageText}</p>\n            </div>\n            <div class="xc_composing_container"></div>\n            <form class="xc_form_reply" accept-charset="UTF-8">\n                <div class="xc_exit_chat_container"><a href="#" class="xc_btn_exit_chat">{ExitChatButtonText}</a>\n                    <div class="xc_exit_chat_confirmation_wrapper" style="display: none;"><span>{ExitChatQuestionText} </span><a href="#" class="xc_btn_exit_chat_confirm">{ExitChatButtonConfirmText}</a><span> | </span><a href="#" class="xc_btn_exit_chat_cancel">{ExitChatButtonCancelText}</a></div>\n                </div>\n                <textarea maxlength="750" placeholder="{MessagePlaceholderText}" name="data[Message][message]" class="xc_input_message"></textarea><a href="#" class="xc_btn_send xc_btn_style">{MessageSendButtonText}</a></form>\n        </div> -->\n        <div class="xc_footer">\n            <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n        </div>\n    </div>\n</div>\n'),a.put("app/chat/queue/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-layers"></i>\n                                           <a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="chatQueues.checked.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <!-- <li>\n                                                             <a href="#" data-ng-click="open()">\n                                                           <i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n                                                        </li> -->\n                                                     <li>\n                                                          <a href="/chat/queues/wizard">\n                                                                <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n                                                        </li> -->\n                                             </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Username\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="chat_queues.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedChatQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.chatQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="chatQueueByPage in chatQueuesByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="chatQueueByPage.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n                                                                <th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="chatQueue in displayedChatQueues" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatQueues.checked" checklist-value="chatQueue.id"></td>\n                                             <td>{{chatQueue.name}}</td>\n                                                             <td>{{chatQueue.description}}</td>\n                                                            <td>{{chatQueue.strategy | uppercase}}</td>\n                                                           <td>{{chatQueue.timeout}}</td>\n                                              <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/queues/view/{{chatQueue.id}}/settings">\n                                                                         {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatQueue.name,chatQueue.id)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedChatQueues.length">\n                                                                <td colspan="6" style="text-align:center;">\n                                                                   <i>No chat queues available</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.chatQueuesByPage.value" st-displayed-pages="7"></div>\n                                          </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body" style="width: 50%; margin: 0 auto;">\n                                <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body text-center">\n                                           <div class="form-group last">\n                                                 <div class="col-md-9" id="multi-select-team">\n                                                 </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-layers"></i>\n                                   <a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.chat.queues.view.settings\')}">\n                                                  <a data-ng-href="/chat/queues/view/{{queue.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.queues.view.agents\')}">\n                                                    <a data-ng-href="/chat/queues/view/{{queue.id}}/agents">\n                                                      <i class="icon-users"></i>\n                                                    {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                            <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/chat/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n    <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-envelope"></i>\n                         <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n                     </li>\n      <li>\n                             <i class="icon-layers"></i>\n                           <a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-layers font-green-sharp"></i>\n                          <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n             </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n                                        <form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n                                          <!-- START NAME -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END NAME -->\n\n                                           <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                               </div>\n                                                <!-- END DESCRIPTION -->\n\n                                            <!-- START TIMEOUT -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n              <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n            </div>\n                                           <!-- END TIMEOUT -->\n\n                                                <!-- START HEADER SHAPE -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                             <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                                  <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n              <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n                                                </div>\n                                                <!-- END HEADER SHAPE -->\n                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n                                  </form>\n                         </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/chat/realtime/view/agent/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n  <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n           <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/agent/timeline/timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n   <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions" class="grid"></div>\n             <!-- START TABLE -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initChats()">\n    <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedChats" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n                       <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="12">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n                                                                                 <div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                 <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                <th st-sort="visitorname" class="input-medium">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n                                         <th st-sort="websitename" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n                                         <th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n                                                <th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n                                                <th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n                                 </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="session in displayedChats">\n                                           <td>\n                                                  <span>\n                                                                <i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n                                                             \'icon-user-following font-green\': session.fullname,\n                                                         \'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n                                                       </span>\n                                               </td>\n                                         <td>{{session.uniqueid}}</td>\n                                         <td>{{session.chatqueuename}}</td>\n                                            <td>{{session.fullname}}</td>\n                                         <td>{{session.visitorname + \' [\' + session.visitoremail + \']\'}}</td>\n                                              <td>{{session.websitename}}</td>\n                                              <td>\n                                                  <time is="relative-time" datetime="{{session.chatjoinAt}}">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.chatleaveAt}}" data-ng-show="session.chatleaveAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.chatunmanagedAt}}" data-ng-show="session.chatunmanagedAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedChats.length">\n                                             <td colspan="11" style="text-align:center;">\n                                                  <i>No sessions available</i>\n                                          </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                   </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="visitorname" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="websitename" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="12" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n                            </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="/chat/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                     <div class="navbar-header">\n                       <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n                                <span class="sr-only">Toggle navigation</span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                            </button>\n                     <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n                 </div>\n\n                      <!-- Collect the nav links, forms, and other content for toggling -->\n                 <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                         <ul class="nav navbar-nav">\n                               <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_AGENTS\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'agents\'></tree>\n                             </li>\n                                                                         <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_SESSIONS\' | translate }}\n                                    <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'sessions\'></tree>\n                           </li>\n                     </ul>\n                         <!-- <ul class="nav navbar-nav">\n                          <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_QUEUES\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'queues\'></tree>\n                             </li>\n                     </ul> -->\n                 </div>\n                        <!-- /.navbar-collapse -->\n                </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n      <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-notebook font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n                     </div>\n                        <div class="actions">\n                         <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatRooms" filename="rooms.csv">\n                           <i class="icon-cloud-download"></i></a>\n                               <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <!-- START TABLE -->\n                  <table st-table="displayedChatRooms" st-safe-src="chatRooms" class="table table-bordered table-hover">\n                                <div class="table-responsive">\n                                        <thead>\n                                               <tr>\n                                                  <th colspan="9">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <select class="form-control input-small select2me" data-ng-model="conf.chatRoomsByPage">\n                                                                                      <option value="10">10</option>\n                                                                                        <option value="25">25</option>\n                                                                                        <option value="50">50</option>\n                                                                                        <option value="{{chatRooms.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                           </select>\n                                                                     </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n                                                                                  <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n                                                        <th st-sort="users">{{ \'APPLICATION_USERS\' | translate }}</th>\n                                                      <th st-sort="visitor">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n                                                  <th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                    <th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n                                           </tr>\n                                 </thead>\n                                      <tbody>\n                                               <tr data-ng-repeat="chatRoom in displayedChatRooms" data-ng-click="$location.path(\'/chat/statistics/conversation/\' + chatRoom.id)">\n                                                 <td style="text-align: center;">{{chatRoom.type | uppercase}}</td>\n                                                    <td style="text-align: center;">{{getUsersFullname(chatRoom.Users)}}</td>\n                                                     <td style="text-align: center;">{{chatRoom.ChatVisitor.email}}</td>\n                                                   <td style="text-align: center;">\n                                                              <span class="label label-sm label-success" data-ng-class="{\'label-success\': chatRoom.status == \'close\', \'label-warning\': chatRoom.status == \'open\'}">\n                                                                 {{chatRoom.status | capitalize}}\n                                                              </span>\n                                                       </td>\n                                                 <td style="text-align: center;">\n                                                              <time is="relative-time" datetime="{{chatRoom.createdAt}}">\n                                                                   April 1, 2014\n                                                         </time>\n                                                       </td>\n                                         </tr>\n                                 </tbody>\n                                      <tfoot>\n                                               <tr>\n                                                  <td colspan="9" class="text-center">\n                                                          <div st-pagination class="pagination" st-items-by-page="conf.chatRoomsByPage" st-displayed-pages="7"></div>\n                                                   </td>\n                                         </tr>\n                                 </tfoot>\n                      </div>\n                        </table>\n                      <!-- END TABLE -->\n            </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initRoomView()">\n        <div class="col-md-6">\n                <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-book-open font-green-sharp"></i>\n                                       <span class="caption-subject">{{ \'APPLICATION_TRANSCRIPT\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default" href="#" ng-csv="chatRoom.ChatMessages" filename="chatMessages.csv">\n                                 <i class="icon-cloud-download"></i></a>\n                                       <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="scroller" style="height: 352px;" data-always-visible="1" data-rail-visible1="1">\n                                  <ul class="chats">\n                                            <li data-ng-class="{\'out\': chatMessage.visitorId, \'in\': chatMessage.userId}" data-ng-repeat="chatMessage in chatRoom.ChatMessages | orderBy:\'-createdAt\'">\n                                                      <img class="avatar" data-ng-src="api/users/{{chatMessage.userId ? chatMessage.userId : \'avatar\'}}/avatar"/>\n                                                 <div class="message">\n                                                         <span class="arrow">\n                                                          </span>\n                                                               <a href="#" class="name">\n                                                             {{chatMessage.fullname}} </a>\n                                                         <span class="datetime">\n                                                                       <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                                                                                April 1, 2014\n                                                                 </time>\n                                                               </span>\n                                                               <span class="body">\n                                                                   {{chatMessage.body}}\n                                                          </span>\n                                                       </div>\n                                                </li>\n                                 </ul>\n                         </div>\n                        </div>\n                <!-- END PORTLET-->\n           </div>\n        </div>\n        <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-user font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n                                  <span class="caption-helper">{{chatRoom.ChatVisitor.fullname}}</span>\n                         </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.fullname">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-8 value">\n                                          {{chatRoom.ChatVisitor.fullname}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.email">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_EMAIL\' | translate}}\n                                 </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.email}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.remote_address">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.remote_address}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.referer">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_REFERER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.referer}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.browser">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_BROWSER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.browser}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.engine">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_ENGINE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.engine}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.os">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_OS\' | translate}}\n                                    </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.os}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.device">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_DEVICE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.device}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.country">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_COUNTRY\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.country}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.region">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_REGION\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.region}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.city">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_CITY\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.city}}\n                                 </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.latitude">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_LATITUDE\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.latitude}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.longitude">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_LONGITUDE\' | translate}}\n                                     </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.longitude}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.createdAt">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          <time is="relative-time" datetime="{{chatRoom.ChatVisitor.createdAt}}">\n                                                       April 1, 2014\n                                         </time>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n           <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-repeat="user in chatRoom.Users">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-earphones-alt font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }}:</a> </span>\n                                    <span class="caption-helper">{{user.fullname}}</span>\n                         </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{user.fullname}}\n                                     </div>\n                                </div>\n                                <div class="row static-info">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_USERNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{user.name}}\n                                 </div>\n                                </div>\n                                <div class="row static-info">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_ROLE\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{user.role | uppercase}}\n                                     </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n   <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-question font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n                 </div>\n                        <div class="actions">\n                         <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatEnquiries" filename="enquiries.csv">\n                           <i class="icon-cloud-download"></i></a>\n                               <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <!-- START TABLE -->\n                  <table st-table="displayedChatEnquiries" st-safe-src="chatEnquiries" class="table table-bordered table-hover">\n                                <div class="table-responsive">\n                                        <thead>\n                                               <tr>\n                                                  <th colspan="9">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <select class="form-control input-small select2me" data-ng-model="conf.chatEnquiriesByPage">\n                                                                                  <option value="10">10</option>\n                                                                                        <option value="25">25</option>\n                                                                                        <option value="50">50</option>\n                                                                                        <option value="{{chatEnquiries.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                               </select>\n                                                                     </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n                                                                                  <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="type">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n                                                    <th st-sort="users">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                      <th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n                                           </tr>\n                                 </thead>\n                                      <tbody>\n                                               <tr data-ng-repeat="chatEnquiry in displayedChatEnquiries" data-ng-click="$location.path(\'/chat/statistics/enquiry/\' + chatEnquiry.id)">\n                                                    <td style="text-align: center;">{{chatEnquiry.username}}</td>\n                                                 <td style="text-align: center;">{{chatEnquiry.email}}</td>\n                                                    <td style="text-align: center;">\n                                                              <time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n                                                                        April 1, 2014\n                                                         </time>\n                                                       </td>\n                                         </tr>\n                                 </tbody>\n                                      <tfoot>\n                                               <tr>\n                                                  <td colspan="9" class="text-center">\n                                                          <div st-pagination class="pagination" st-items-by-page="conf.chatEnquiriesByPage" st-displayed-pages="7"></div>\n                                                       </td>\n                                         </tr>\n                                 </tfoot>\n                      </div>\n                        </table>\n                      <!-- END TABLE -->\n            </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initEnquiryView()">\n  <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-book-open font-green-sharp"></i>\n                                       <span class="caption-subject">{{ \'APPLICATION_TEXT\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default" href="#" ng-csv="chatEnquiry" filename="chatEnquery.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN PAGE CONTENT-->\n                            <div class="note note-warning">\n                                       <h4 class="block">{{chatEnquiry.ChatVisitor.fullname}} -\n                                              <time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n                                                        April 1, 2014\n                                         </time>\n                                       </h4>\n                                 <p>\n                                            {{chatEnquiry.text}}\n                                 </p>\n                          </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n        <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-user font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n                                  <span class="caption-helper">{{chatEnquiry.ChatVisitor.fullname}}</span>\n                              </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.fullname">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-8 value">\n                                          {{chatEnquiry.ChatVisitor.fullname}}\n                                  </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.email">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_EMAIL\' | translate}}\n                                 </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.email}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.remote_address">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.remote_address}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.referer">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_REFERER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.referer}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.browser">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_BROWSER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.browser}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.engine">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_ENGINE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.engine}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.os">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_OS\' | translate}}\n                                    </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.os}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.device">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_DEVICE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.device}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.country">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_COUNTRY\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.country}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.region">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_REGION\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.region}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.city">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_CITY\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.city}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.latitude">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_LATITUDE\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.latitude}}\n                                  </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.longitude">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_LONGITUDE\' | translate}}\n                                     </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.longitude}}\n                                 </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.createdAt">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          <time is="relative-time" datetime="{{chatEnquiry.ChatVisitor.createdAt}}">\n                                                    April 1, 2014\n                                         </time>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eyeglass"></i>\n                                 <a href="/chat/statistics">{{ \'APPLICATION_STATISTICS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/statistics.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <!-- <div class="profile-usertitle">\n                                  <div class="profile-usertitle-name">\n                                          {{chatWebsite.name}}\n                                  </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatWebsite.address}}\n                                       </div>\n                                </div> -->\n                            <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR BUTTONS -->\n                              <!-- <div class="profile-userbuttons">\n                                        <button type="button" class="btn btn-circle green-haze btn-sm">Follow</button>\n                                        <button type="button" class="btn btn-circle btn-danger btn-sm">Message</button>\n                               </div> -->\n                            <!-- END SIDEBAR BUTTONS -->\n                          <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.chat.statistics.summary\')}">\n                                                    <a ng-href="/chat/statistics/summary">\n                                                        <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_SUMMARY\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.statistics.enquiry\') || $state.is(\'main.chat.statistics.enquiries\')}">\n                                                   <a ng-href="/chat/statistics/enquiries">\n                                                      <i class="icon-question"></i>\n                                                 {{ \'APPLICATION_ENQUIRIES\' | translate }} </a>\n                                              </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.statistics.conversation\') || $state.is(\'main.chat.statistics.conversations\')}">\n                                                  <a ng-href="/chat/statistics/conversations">\n                                                  <i class="icon-notebook"></i>\n                                                 {{ \'APPLICATION_CONVERSATIONS\' | translate }} </a>\n                                          </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.statistics.visitor\') || $state.is(\'main.chat.statistics.visitors\')}">\n                                                    <a ng-href="/chat/statistics/visitors">\n                                                       <i class="icon-users"></i>\n                                                    {{ \'APPLICATION_VISITORS\' | translate }} </a>\n                                               </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.summary.html",'<div class="col-md-12">\n       <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered" data-ng-show="online">\n            <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-notebook font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_LOCATIONS\' | translate }}</a> </span>\n                 </div>\n                </div>\n                <div class="portlet-body">\n                    <map center="0, 0" zoom="2">\n                          <marker data-ng-show="chatVisitor.latitude && chatVisitor.longitude" data-ng-repeat="chatVisitor in chatVisitors" position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n                   </map>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n\n\n       <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-notebook font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div class="col-md-6">\n                                        <div class="portlet sale-summary">\n                                            <div class="portlet-body">\n                                                    <ul class="list-unstyled">\n                                                            <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_OPENED\' | translate }} <i class="fa fa-img-up"></i>\n                                                                 </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatRooms | filter:{ status:\'open\' }).length }} </span>\n                                                         </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_CLOSED\' | translate }} <i class="fa fa-img-down"></i>\n                                                                       </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatRooms | filter:{ status:\'close\' }).length }} </span>\n                                                                </li>\n                                                 </ul>\n                                         </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <canvas class="chart chart-pie" data="[(chatRooms | filter:{ status:\'open\' }).length, (chatRooms | filter:{ status:\'close\' }).length]" labels="[$translate.instant(\'APPLICATION_OPENED\'), $translate.instant(\'APPLICATION_CLOSED\')]" legend="true"></canvas>\n                          </div>\n                        </div>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n\n <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-users font-green-sharp"></i>\n                           <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                  </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div class="col-md-6">\n                                        <div class="portlet sale-summary">\n                                            <div class="portlet-body">\n                                                    <ul class="list-unstyled">\n                                                            <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_PENDING\' | translate }} <i class="fa fa-img-up"></i>\n                                                                        </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatVisitors | filter:{ status:\'pending\' }).length }} </span>\n                                                           </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_SERVED\' | translate }} <i class="fa fa-img-down"></i>\n                                                                       </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatVisitors | filter:{ status:\'served\' }:true).length }} </span>\n                                                               </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_UNSERVED\' | translate }} </span>\n                                                                    <span class="sale-num">\n                                                                       {{ (chatVisitors | filter:{ status:\'unserved\' }).length }} </span>\n                                                          </li>\n                                                 </ul>\n                                         </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <canvas class="chart chart-pie" data="[(chatVisitors | filter:{ status:\'pending\' }).length, (chatVisitors | filter:{ status:\'served\' }:true).length, (chatVisitors | filter:{ status:\'unserved\' }).length]" labels="[$translate.instant(\'APPLICATION_PENDING\'), $translate.instant(\'APPLICATION_SERVED\'), $translate.instant(\'APPLICATION_UNSERVED\')]" legend="true"></canvas>\n                            </div>\n                        </div>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n\n <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-question font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n                 </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div class="col-md-6">\n                                        <div class="portlet sale-summary">\n                                            <div class="portlet-body">\n                                                    <ul class="list-unstyled">\n                                                            <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_READ\' | translate }}<i class="fa fa-img-up"></i>\n                                                                    </span>\n                                                                       <span class="sale-num">\n                                                                       {{(chatEnquiries | filter:{ read:true }).length}} </span>\n                                                             </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_UNREAD\' | translate }}<i class="fa fa-img-down"></i>\n                                                                        </span>\n                                                                       <span class="sale-num">\n                                                                       {{(chatEnquiries | filter:{ read:false }).length}} </span>\n                                                            </li>\n                                                 </ul>\n                                         </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <canvas class="chart chart-pie" data="[(chatEnquiries | filter:{ read:true }).length, (chatEnquiries | filter:{ read:false }).length]" labels="[$translate.instant(\'APPLICATION_READ\'), $translate.instant(\'APPLICATION_UNREAD\')]" legend="true" ng-show="true"></canvas>\n                         </div>\n                        </div>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n'),a.put("app/chat/statistic/statistic.visitor.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n        <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-users font-green-sharp"></i>\n                           <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                  </div>\n                        <div class="actions">\n                         <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatVisitors" filename="visitors.csv">\n                             <i class="icon-cloud-download"></i></a>\n                               <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <!-- START TABLE -->\n                  <table st-table="displayedChatVisitors" st-safe-src="chatVisitors" class="table table-bordered table-hover">\n                          <div class="table-responsive">\n                                        <thead>\n                                               <tr>\n                                                  <th colspan="9">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <select class="form-control input-small select2me" data-ng-model="conf.chatVisitorsByPage">\n                                                                                   <option value="10">10</option>\n                                                                                        <option value="25">25</option>\n                                                                                        <option value="50">50</option>\n                                                                                        <option value="{{chatVisitors.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                                </select>\n                                                                     </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                 <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                        <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                      <th st-sort="remote_address">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                    <th st-sort="referer">{{ \'APPLICATION_ORIGIN\' | translate }}</th>\n                                                   <th st-sort="device">{{ \'APPLICATION_DEVICE\' | translate }}</th>\n                                                    <th st-sort="browser">{{ \'APPLICATION_BROWSER\' | translate }}</th>\n                                                  <th st-sort="visitor_language">{{ \'APPLICATION_LANGUAGES\' | translate }}</th>\n                                                       <th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                    <th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n                                           </tr>\n                                 </thead>\n                                      <tbody>\n                                               <tr data-ng-repeat="chatVisitor in displayedChatVisitors" data-ng-click="$location.path(\'/chat/statistics/visitor/\' + chatVisitor.id)">\n                                                     <td>{{chatVisitor.fullname}}</td>\n                                                     <td>{{chatVisitor.email}}</td>\n                                                        <td>{{chatVisitor.remote_address}}</td>\n                                                       <td>{{chatVisitor.referer}}</td>\n                                                      <td class="centered-td">{{chatVisitor.device ? chatVisitor.device : \'--\'}}</td>\n                                                     <td class="centered-td">\n                                                              <img data-ng-show="chatVisitor.browser.includes(\'Chrome\')" data-ng-src="assets/images/browsers/chrome/chrome_16x16.png" data-title="{{chatVisitor.browser}}" bs-tooltip>\n                                                            <img data-ng-show="chatVisitor.browser.includes(\'Safari\')" data-ng-src="assets/images/browsers/safari/safari_16x16.png">\n                                                            <img data-ng-show="chatVisitor.browser.includes(\'Firefox\')" data-ng-src="assets/images/browsers/firefox/firefox_16x16.png">\n                                                         <img data-ng-show="chatVisitor.browser.includes(\'Explorer\')" data-ng-src="assets/images/browsers/internet-explorer/internet-explorer_16x16.png">\n                                                    </td>\n                                                 <td class="centered-td">\n                                                              <img data-ng-show="chatVisitor.visitor_language.includes(\'IT\') || chatVisitor.visitor_language.includes(\'it\')" data-ng-src="assets/images/flags/it.png">\n                                                          <img data-ng-show="chatVisitor.visitor_language.includes(\'US\') || chatVisitor.visitor_language.includes(\'us\')" data-ng-src="assets/images/flags/us.png">\n                                                          <img data-ng-show="chatVisitor.visitor_language.includes(\'EN\') || chatVisitor.visitor_language.includes(\'en\')" data-ng-src="assets/images/flags/en_EN.png">\n                                                       </td>\n                                                 <td class="centered-td">\n                                                              <span class="label label-sm label-success" data-ng-class="{\'label-warning\': chatVisitor.status == \'pending\', \'label-danger\': chatVisitor.status == \'unserved\'}">\n                                                                      {{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n                                                               </span>\n                                                       </td>\n                                                 <td style="text-align: center;">\n                                                              <time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n                                                                        April 1, 2014\n                                                         </time>\n                                                       </td>\n                                         </tr>\n                                 </tbody>\n                                      <tfoot>\n                                               <tr>\n                                                  <td colspan="9" class="text-center">\n                                                          <div st-pagination class="pagination" st-items-by-page="conf.chatVisitorsByPage" st-displayed-pages="7"></div>\n                                                        </td>\n                                         </tr>\n                                 </tfoot>\n                      </div>\n                        </table>\n                      <!-- END TABLE -->\n            </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/statistic/statistic.visitor.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initVisitorView()">\n   <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-pin font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_LOCATION\' | translate }}</a> </span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN PAGE CONTENT-->\n                            <map center="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" zoom="8">\n                                   <marker position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n                             </map>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n        <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-user font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n                                  <span class="caption-helper">{{chatVisitor.fullname}}</span>\n                          </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info" data-ng-show="chatVisitor.longitude && chatVisitor.latitude">\n                            </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.fullname">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-8 value">\n                                          {{chatVisitor.fullname}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.email">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_EMAIL\' | translate}}\n                                 </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.email}}\n                                 </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.remote_address">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.remote_address}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.referer">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_REFERER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.referer}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.browser">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_BROWSER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.browser}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.engine">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_ENGINE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.engine}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.os">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_OS\' | translate}}\n                                    </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.os}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.device">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_DEVICE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.device}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.country">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_COUNTRY\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.country}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.region">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_REGION\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.region}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.city">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_CITY\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.city}}\n                                  </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.latitude">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_LATITUDE\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.latitude}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.longitude">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_LONGITUDE\' | translate}}\n                                     </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.longitude}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.createdAt">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          <time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n                                                        April 1, 2014\n                                         </time>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/timeline/list/list.html",'<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-list"></i>\n                                             <a href="/mail/timeline/list"> Timeline</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n     <div class="col-md-12">\n    <h3 class="page-title">\n                          Timeline\n                      </h3>\n                 <!-- END PAGE HEADER-->\n                       <!-- BEGIN PAGE CONTENT-->\n                    <div class="timeline">\n                                <!-- TIMELINE ITEM -->\n                                <div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'"  ng-animate=" \'animate\' ">\n                                    <div class="timeline-badge">\n                                          <div class="timeline-icon">\n                                                   <i class="icon-envelope font-green-haze"></i>\n                                         </div>\n                                        </div>\n                                        <div class="timeline-body">\n                                           <div class="timeline-body-arrow"></div>\n                                               <div class="timeline-body-head">\n                                                      <div class="timeline-body-head-caption">\n                                                              <span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n                                                                <span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n                                                       </div>\n                                                        <div class="timeline-body-head-actions">\n                                                              <div class="btn-group">\n                                                                       <a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n                                                              </div>\n                                                        </div>\n                                                </div>\n                                                <div class="timeline-body-content">\n                                                   <span class="font-grey-cascade" data-ng-show="event.User">\n                                                    {{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n                                                       </span>\n                                               </div>\n                                        </div>\n                                </div>\n                                <!-- END TIMELINE ITEM -->\n                    </div>\n                        <!-- END PAGE CONTENT-->\n      </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-globe"></i>\n                                            <a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="chatWebsites.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }} <i class="fa fa-angle-down"></i>\n                                             </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <!-- <li>\n                                                             <a href="#" data-ng-click="open()">\n                                                           <i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n                                                        </li> -->\n                                                     <li>\n                                                          <a href="/chat/websites/wizard">\n                                                              <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n                                                        </li> -->\n                                             </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatWebsites([\'name\', \'address\', \'description\', \'remote\'])" csv-header="[\'Name\', \'Address\', \'Description\', \'Remote\']" field-separator=";" filename="chat_websites.csv">\n                                  <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedChatWebsites" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.chatWebsitesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="chatWebsiteByPage in chatWebsitesByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="chatWebsiteByPage.name | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                              <th st-sort="address">{{ \'APPLICATION_WEB_ADDRESS\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="chatWebsite in displayedChatWebsites" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatWebsites.checked" checklist-value="chatWebsite.id"></td>\n                                         <td>{{chatWebsite.name}}</td>\n                                                           <td>{{chatWebsite.description}}</td>\n                                        <td><a ng-href="{{chatWebsite.address}}">{{chatWebsite.address}}</a></td>\n                                             <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n                                                                         {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatWebsite.name,chatWebsite.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedChatWebsites.length">\n                                                              <td colspan="5" style="text-align:center;">\n                                                                   <i>{{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_WEB_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.chatWebsitesByPage.value" st-displayed-pages="7"></div>\n                                        </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                           <th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n                                                   <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n                                                                <th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody ui-sortable="sortableOptions" data-ng-model="chatApplications">\n                                          <tr data-ng-repeat="application in chatApplications">\n                                                             <td align="center">\n                                                                   {{application.User ? \'agent\' : \'queue\' | uppercase}} [{{application.User ? application.User.fullname : application.ChatQueue.name}}]\n                                                              </td>\n                                                         <td align="center">{{application.timeout}}</td>\n                                                               <td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n                                                           <td>\n                                                                  <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/view/{{application.id}}">\n                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="chatApplications.length">\n                                                           <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n       <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select class="input-medium" data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group inpu" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_EMBEDDING\' | translate}}</a>\n                                    </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_6" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                             <div class="col-md-8">\n                                                        <div class="tab-content">\n                                                             <!-- EMBEDDING TAB -->\n                                                                <div class="tab-pane active" id="tab_1_1">\n                                                                    <h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n                                                                        <p>\n                                                                           {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n                                                                     </p>\n                                                                  <div class="form-body">\n                                                                               <div class="form-group">\n                                                                                      <div class="col-md-12">\n                                                                                               <textarea name="snippet" rows="13" style="resize:none;cursor:text;" class="form-control" readonly data-ng-model="snippetCode"></textarea>\n                                                                                     </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </div>\n                                                                <!-- END EMBEDDING TAB -->\n\n                                                          <!-- APPEARANCE TAB -->\n                                                               <div class="tab-pane" id="tab_1_2">\n                                                                   <form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n                                                                          <!-- START MAIN COLOR -->\n                                                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                  <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n                                                                                        <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END MAIN COLOR -->\n\n                                                                             <!-- START FOCUS COLOR -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n                                                                                  <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END FOCUS COLOR -->\n\n                                                                            <!-- START BUTTON COLOR -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n                                                                                      <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END BUTTON COLOR -->\n\n                                                                           <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                                        <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <!-- START ANIMATION TOGGLE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n                                                                                                        <div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END ANIMATION TOGGLE -->\n\n\n                                                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END APPEARANCE TAB -->\n\n                                                         <!-- FORMS TAB -->\n                                                            <div class="tab-pane" id="tab_1_3">\n                                                                   <form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n                                                                            <!-- START DOWNLOAD TRANSCRIPT -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                                                      <ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                                                     <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END FORMS TAB -->\n\n                                                              <!-- STRINGS TAB -->\n                                                          <div class="tab-pane" id="tab_1_4">\n                                                                   <form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n                                                                            <h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n                                                                         <!-- START HEADER ONLINE -->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                      <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                                                    <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n                                                                           </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START ONLINE MESSAGE-->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n                                                                                </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START USERNAME PLACEHOLDER -->\n                                                                           <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                                                     <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n                                                                              </div>\n                                                                                <!-- END USERNAME PLACEHOLDER -->\n\n                                                                           <!-- START EMAIL PLACEHOLDER -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                                        <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n                                                                               </div>\n                                                                                <!-- END EMAIL PLACEHOLDER -->\n\n                                                                              <!-- START START CHAT BUTTON -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                                        <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n                                                                                </div>\n                                                                                <!-- END START CHAT BUTTON -->\n\n                                                                              <h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n                                                                               <!-- START HEADER OFFLINE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                                                   <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n                                                                                </div>\n                                                                                <!-- END HEADER OFFLINE -->\n\n                                                                         <!-- START OFFLINE MESSAGE-->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                                                  <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n                                                                             </div>\n                                                                                <!-- END OFFLINE MESSAGE -->\n\n                                                                                <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                                                      <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                                            <!-- START ENQUIRY BUTTON -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                                                   <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n                                                                                </div>\n                                                                                <!-- END ENQUIRY BUTTON -->\n\n                                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END STRINGS TAB -->\n\n                                                            <!-- SETTINGS TAB -->\n                                                         <div class="tab-pane" id="tab_1_5">\n                                                                   <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START NAME -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n                                                                                    <span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END NAME -->\n\n                                                                           <!-- START ADDRESS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n                                                                                        <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END ADDRESS -->\n\n                                                                                <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                      <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n                                                                                       <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START DESCRIPTION -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n                                                                                </div>\n                                                                                <!-- END DESCRIPTION -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END SETTINGS TAB -->\n\n                                                           <!-- OFFLINE TAB -->\n                                                          <div class="tab-pane" id="tab_1_6">\n                                                                   <form name="forms.formOffline" data-ng-submit="forms.formOffline.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START ENQUIRY FORWARDING -->\n                                                                             <div class="form-group">\n                                                                                      <div class="row">\n                                                                                             <label class="col-md-4">\n                                                                                                      {{\'APPLICATION_ENQUIRY_FORWARDING\' | translate}}\n                                                                                            </label>\n                                                                                              <label class="col-md-8">\n                                                                                                      <input type="checkbox" ng-model="chatWebsite.enquiry_forwarding">\n                                                                                             </label>\n                                                                                      </div>\n                                                                                        <div class="row">\n                                                                                             <span class="help-block col-md-12">\n                                                                                                           {{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.\n                                                                                            </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <!-- END ENQUIRY FORWARDING -->\n\n                                                                             <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-if="chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formSetting.forwardingAddress.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" name="forwardingAddress" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_forwarding_address" required/>\n                                                                                      <span data-ng-show="(forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formOffline.forwardingAddress.$invalid && forms.formOffline.forwardingAddress.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-if="chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_TEMPLATE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                     <ui-select data-ng-model="chatWebsite.OfflineTemplateId" name="OfflineTemplateId" theme="bootstrap" required>\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="mailTemplate.id as mailTemplate in mailTemplates | filter: $select.search">\n                                                                                                        <div ng-bind-html="mailTemplate.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid && forms.formOffline.OfflineTemplateId.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END OFFLINE TAB -->\n                                                      </div>\n                                                </div>\n                                                <div class="col-md-4">\n                                                        <!-- START STATE -->\n                                                  <div class="form-group">\n                                                              <!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n                                                               <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                               <ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="statePreview in [\'online\',\'offline\'] | filter: $select.search">\n                                                                                <div ng-bind-html="statePreview | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END STATE -->\n                                                    <preview></preview>\n                                           </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{chatWebsite.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/website.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatWebsite.name}}\n                                  </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatWebsite.address}}\n                                       </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.includes(\'main.chat.websites.view.snippet\')}">\n                                                   <a ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SNIPPET\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.chat.websites.view.actions\')}">\n                                                   <a ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/list">\n                                                     <i class="icon-directions"></i>\n                                                       {{ \'APPLICATION_ACTIONS\' | translate }} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-globe"></i>\n                                            <a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                               <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n                                                               <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ADDRESS -->\n\n                                                        <!-- START REMOTE IP -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n                                                              <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END REMOTE IP -->\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                           <form name="forms.formAppearance" novalidate>\n\n                                                       <!-- START MAIN COLOR -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                          <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n                                                              <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAIN COLOR -->\n\n                                                     <!-- START FOCUS COLOR -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n                                                                <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FOCUS COLOR -->\n\n                                                    <!-- START BUTTON COLOR -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n                                                            <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END BUTTON COLOR -->\n\n                                                   <!-- START HEADER SHAPE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n                                                             <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n                                                              <ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                      <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END HEADER SHAPE -->\n\n                                                   <!-- START ANIMATION TOGGLE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                <ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                       <ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n                                                                          <div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END ANIMATION TOGGLE -->\n\n\n                                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n                                             <form name="forms.formLabel" novalidate>\n\n                                                    <!-- START HEADER ONLINE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                            <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n                                                  </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START ONLINE MESSAGE-->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                           <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n                                                       </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START USERNAME PLACEHOLDER -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                             <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n                                                     </div>\n                                                        <!-- END USERNAME PLACEHOLDER -->\n\n                                                   <!-- START EMAIL PLACEHOLDER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n                                                      </div>\n                                                        <!-- END EMAIL PLACEHOLDER -->\n\n                                                      <!-- START START CHAT BUTTON -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n                                                       </div>\n                                                        <!-- END START CHAT BUTTON -->\n\n                                                      <!-- START HEADER OFFLINE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                           <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n                                                       </div>\n                                                        <!-- END HEADER OFFLINE -->\n\n                                                 <!-- START OFFLINE MESSAGE-->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                          <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n                                                    </div>\n                                                        <!-- END OFFLINE MESSAGE -->\n\n                                                        <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                              <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n                                                 </div>\n                                                        <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                    <!-- START ENQUIRY BUTTON -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                           <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n                                                       </div>\n                                                        <!-- END ENQUIRY BUTTON -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                         <form name="forms.formFunctionality" novalidate>\n\n                                                    <!-- START DOWNLOAD TRANSCRIPT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                        <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                             <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/contactmanager/company/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_COMPANY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.company" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.company.name.$touched || forms.company.$submitted) && forms.company.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.cmopany.name.$touched || forms.company.$submitted) && forms.company.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.company.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/company/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-briefcase"></i>\n                                        <a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-briefcase font-green-sharp"></i>\n                                       <span class="caption-subject">{{ \'APPLICATION_COMPANIES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Companies.checked.length">\n                                               <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_COMPANY\' | translate }}\n                                               </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getCompanies([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="companies.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedCompanies" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.companiesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="companyByPage in companiesByPage | filter: $select.search">\n                                                                                                        <div ng-bind-html="companyByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(company, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="company in displayedCompanies" class="animate-repeat">\n                                                                <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Companies.checked" checklist-value="company.id"></td>\n                                                          <td>{{company.name}}</td>\n                                           <td>{{company.description}}</td>\n                                              <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(company.name,company.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedCompanies.length">\n                                                         <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.companiesByPage.value" st-displayed-pages="7"></div>\n                                           </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCompany()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-briefcase"></i>\n                                        <a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n                                      <i data-ng-show="company" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="company">\n                                   <a href="#">{{company.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/company.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{company.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.companies.view.settings\')}">\n                                                     <a data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_COMPANY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADDRESS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_SHIPMENT_ADDRESS\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateCompany()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="company.name" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="company.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <!-- START STREET -->\n                                         <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                                                   <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.street"/>\n                                                   <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STREET -->\n\n                                         <!-- START POSTALCODE -->\n                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                                                       <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.postalCode"/>\n                                                       <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END POSTALCODE -->\n\n                                             <!-- START CITY -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                                                     <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.city"/>\n                                                 <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CITY -->\n                                             <!-- START COUNTRY -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                                                  <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.country"/>\n                                                        <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END COUNTRY -->\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <!-- START STREET -->\n                                         <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                                                   <input type="text" name="sStreet" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.sStreet"/>\n                                                 <span data-ng-show="(forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STREET -->\n\n                                         <!-- START POSTALCODE -->\n                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                                                       <input type="text" name="sPostalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.sPostalCode"/>\n                                                     <span data-ng-show="(forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END POSTALCODE -->\n\n                                             <!-- START CITY -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$invalid}">\n                                                  <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                                                     <input type="text" name="sCity" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.sCity"/>\n                                                       <span data-ng-show="(forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$error.required" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CITY -->\n                                             <!-- START COUNTRY -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                                                  <input type="text" name="sCountry" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.sCountry"/>\n                                                      <span data-ng-show="(forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END COUNTRY -->\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/contactmanager/contact/list/import.modal.html",'<div class="modal-header" data-ng-init="getCustomFields();">\n  <h3 class="modal-title">{{ \'APPLICATION_IMPORT_FROM_CSV\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.csv" novalidate>\n    <div class="row">\n      <div class="col-md-6">\n    <!-- START FULLNAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.fullname.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}</label>\n      <ui-select data-ng-model="item.fullname" theme="bootstrap" name="fullname" data-ng-disabled="disabled" required>\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_FULLNAME\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.fullname.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END FULLNAME -->\n\n    <!-- START STREET -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.street.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n      <ui-select data-ng-model="item.street" theme="bootstrap" name="street" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_STREET\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.street.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STREET -->\n\n    <!-- START POSTALCODE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.postalCode.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n      <ui-select data-ng-model="item.postalCode" theme="bootstrap" name="postalCode" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_POSTALCODE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.postalCode.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END POSTALCODE -->\n\n    <!-- START CITY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.city.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n      <ui-select data-ng-model="item.city" theme="bootstrap" name="city" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CITY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.city.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END CITY -->\n\n    <!-- START PHONES -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.Phones.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.Phones" theme="bootstrap" name="Phones" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_PHONES\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.Phones.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PHONES -->\n\n  </div>\n  <div class="col-md-6">\n\n    <!-- START COUNTRY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.country.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n      <ui-select data-ng-model="item.country" theme="bootstrap" name="country" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COUNTRY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.country.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END COUNTRY -->\n\n    <!-- START DATEOFBIRTH -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.dateOfBirth.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n      <ui-select data-ng-model="item.dateOfBirth" theme="bootstrap" name="dateOfBirth" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DATEOFBIRTH\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.dateOfBirth.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DATEOFBIRTH -->\n\n    <!-- START TAGS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.tags.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.tags.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TAGS -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.description.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <ui-select data-ng-model="item.description" theme="bootstrap" name="description" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DESCRIPTION\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.description.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START EMAILS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.Emails.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.Emails" theme="bootstrap" name="Emails" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_EMAILS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.Emails.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EMAILS -->\n\n  </div>\n  </div>\n\n  <!-- START CUSTOMFIELDS -->\n  <div data-ng-repeat="customField in customFields">\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv[customField.name].$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{customField.name}}</label>\n      <ui-select data-ng-if="!joinPrompt" data-ng-model="item.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv[customField.name].$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </div>\n  <!-- END CUSTOMFIELDS -->\n\n  <div>\n    <p>{{\'APPLICATION_IMPORT_SUCCEEDED\' | translate}}: {{import.succeeded}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.success + \'%\' }"></div>\n    </div>\n  </div>\n  <div>\n    <p>{{\'APPLICATION_IMPORT_FAILED\' | translate}}: {{import.failed}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.fail + \'%\' }"></div>\n    </div>\n  </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="start()" ng-disabled="forms.csv.$invalid || !forms.csv.fullname || submitted">{{ \'APPLICATION_SUBMIT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="close()" data-ng-if="!importing">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="stop()" data-ng-if="importing">{{ \'APPLICATION_STOP\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/contact/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-users"></i>\n                                   <a href="/contactmanager/contacts/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-users font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_CONTACTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="contacts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle" data-ng-click="newContact();">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}\n                                               </button>\n                                             <span class="btn default btn-file">\n                                           <span class="fileinput-new">\n                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}</span>\n                                              <input type="file" nv-file-select="" uploader="uploader"/>\n                                            </span>\n                                       </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getContacts([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'name\', \'surname\', \'description\']" field-separator=";" filename="contacts.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedContacts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.contactsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="contactByPage in contactsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="contactByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(contact, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="contact in displayedContacts" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="contacts.checked" checklist-value="contact.id"></td>\n                                                           <td>{{contact.fullname}} {{}}</td>\n                                          <td>{{contact.description}}</td>\n                                              <td>\n                                            <button class="btn default btn-xs blue-stripe" data-ng-click="openContactTab(contact)">\n                                                                               {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </button>\n                                             <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(contact.fullname,contact.id)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedContacts.length">\n                                                          <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.contactsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/contactmanager/customfield/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.customField" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TYPE\' | translate }}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n        <ui-select-choices repeat="type.value as type in types| filter: $select.search">\n          {{$translate.instant(type.name)}}\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid && forms.customField.type.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TYPE -->\n\n    <div ng-slide-down="item.type == \'select\'" lazy-render duration="1">\n      <div>\n        <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n      </div>\n      <div class="padding-bottom" ng-repeat="choice in choices">\n        <div class="form-group">\n          <div class="input-group">\n            <input type="text" class="form-control" ng-model="choice.value" required>\n            <span class="input-group-btn">\n            <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n            </span>\n          </div>\n        </div>\n      </div>\n      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n      </button>\n\n    </div>\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.customField.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/customfield/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-pencil"></i>\n                                   <a href="/contactmanager/customfields/list">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-pencil font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="CustomFields.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}\n                                          </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getCs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="customFields.csv">\n                                       <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedCustomFields" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.customFieldsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="customFieldByPage in customFieldsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="customFieldByPage.name | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(customField, checked)" checklist-model checklist-value="id"></th>\n                                              <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n                                                    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="customField in displayedCustomFields" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="customFields.checked" checklist-value="customField.id"></td>\n                                                           <td>{{customField.name}}</td>\n                                                         <td>{{customField.type}}</td>\n                                       <td>{{customField.description}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/customfields/view/{{customField.id}}/settings">\n                                                                               {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(customField.name,customField.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedCustomFields.length">\n                                                              <td colspan="5" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_CUSTOM_FIELDS_AVAILABLE\' | translate }}</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TYPE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                                </td>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.customFieldsByPage.value" st-displayed-pages="7"></div>\n                                        </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCustomField()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-pencil"></i>\n                                   <a href="/contactmanager/customfields/list">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a>\n                                       <i data-ng-show="customField" class="fa fa-angle-right"></i>\n                          </li>\n                         <li data-ng-show="customField">\n                                       <a href="#">{{customField.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/customfield.png" class="img-responsive">\n                                </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{customField.name}}\n                                  </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.customfields.view.settings\')}">\n                                                  <a data-ng-href="/contactmanager/customfields/view/{{customField.id}}/settings">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateCustomField()" novalidate>\n\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="customField.name" required/>\n                                                            <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <div ng-slide-down="customField.type == \'select\'" lazy-render duration="1" class="mbottom20">\n                                                               <div>\n                                                                 <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n                                                          </div>\n                                                                <div class="padding-bottom" ng-repeat="choice in choices">\n                                                                    <div class="form-group">\n                                                                              <div class="input-group">\n                                                                                     <input type="text" class="form-control" ng-model="choice.value" required>\n                                                                                     <span class="input-group-btn">\n                                                                                        <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n                                                                                    </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n                                                         </button>\n\n                                                   </div>\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="customField.description"></textarea>\n                                                   </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/dashboard/voice">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                     <div class="navbar-header">\n                       <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n                                <span class="sr-only">Toggle navigation</span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                            </button>\n                     <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n                 </div>\n\n                      <!-- Collect the nav links, forms, and other content for toggling -->\n                 <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                         <ul class="nav navbar-nav">\n                                                                       <!-- <li dropdown>\n                                                                                    <a href="#" dropdown-toggle>\n                                                                                                  {{ \'APPLICATION_VOICE\' | translate }}\n                                                                                                       <b class=\'caret\'></b>\n                                                                                       </a>\n                                                                                  <tree tree=\'voice\'></tree>\n                                                                  </li>\n                                                                 <li dropdown>\n                                                                                 <a href="#" dropdown-toggle>\n                                                                                                  {{ \'APPLICATION_MAIL\' | translate }}\n                                                                                                        <b class=\'caret\'></b>\n                                                                                       </a>\n                                                                                  <tree tree=\'mail\'></tree>\n                                                                   </li> -->\n                             <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n                                <a href="/dashboard/voice">\n                                                                                                       <b class=\'icon-earphones-alt\'></b>\n                                  {{ \'APPLICATION_VOICE\' | translate }}\n                                   </a>\n                                  <!-- <tree tree=\'voice\'></tree> -->\n                             </li>\n                                                                         <li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n                                 <a href="/dashboard/mail">\n                                                                                                        <b class=\'icon-envelope\'></b>\n                                       {{ \'APPLICATION_MAIL\' | translate }}\n                                    </a>\n                                  <!-- <tree tree=\'mail\'></tree> -->\n                              </li>\n                     </ul>\n                         <!-- <ul class="nav navbar-nav">\n                          <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_QUEUES\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'queues\'></tree>\n                             </li>\n                     </ul> -->\n                 </div>\n                        <!-- /.navbar-collapse -->\n                </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div class="row" ng-init=\'getQueueStats()\'>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat red-intense">\n      <div class="visual">\n        <i class="fa fa-comments"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.abandonedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat green-haze">\n      <div class="visual">\n        <i class="fa fa-bar-chart-o"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.completedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat purple-plum">\n      <div class="visual">\n        <i class="fa fa-shopping-cart"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.waitCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat blue-madison">\n      <div class="visual">\n        <i class="fa fa-globe"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.activeCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n</div>\n'),a.put("app/desk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_DESK_COM\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/desk/wizard">\n                                                               <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'consumerKey\',\'consumerSecret\',\'token\',\'tokenSecret\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Consumer Key\', \'Consumer Secret\', \'Token\', \'Token Secret\', \'Password\']" field-separator=";" filename="desk_accounts.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedDeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedDeskAccounts" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/account">\n                                                                           {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedDeskAccounts.length">\n                                                              <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.account.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n                                                                          <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'basic\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START CONSUMER KEY -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="account.consumerKey" required/>\n                                                          <span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                            <label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="account.consumerSecret" required/>\n                                                         <span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n                                                             <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="account.tokenSecret" required/>\n                                                          <span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN SECRET-->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/desk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n  <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n                          <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n                                  <ui-select-choices repeat="item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                  <div ng-bind-html="item | highlight: $select.search"></div>\n                                 </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.configurations.html",'<div ui-view class="profile-content">\n      <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/desk/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                           <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                      {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/desk.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.desk.view.account\')}">\n                                                  <a ng-href="/desk/view/{{account.id}}/account">\n                                                       <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.desk.view.configurations\') || $state.is(\'main.desk.view.configuration\')}">\n                                                      <a ng-href="/desk/view/{{account.id}}/configurations">\n                                                        <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/desk/accounts/validate/username"/>\n                                                         <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/desk/accounts/validate/remoteUri"/>\n                                                             <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n                                                                          <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'basic\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                               <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CONSUMER KEY -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="item.consumerKey" required/>\n                                                             <span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="item.consumerSecret" required/>\n                                                            <span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                                <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n                                                                <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="item.tokenSecret" required/>\n                                                             <span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN SECRET-->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="fax_accounts.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/fax/accounts/wizard">\n                                                               <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                     <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n                                               <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n                                                           <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n                                          <td>{{faxAccount.name}}</td>\n                                                            <td>{{faxAccount.description}}</td>\n                                                           <td>{{faxAccount.phone}}</td>\n                                       <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/accounts/view/{{faxAccount.id}}/settings">\n                                                                               {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFaxAccounts.length">\n                                                               <td colspan="5" style="text-align:center;">\n                                                                   <i>No fax account available</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td></td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n                                         </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n      <div class="col-md-12">\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                        <form name="forms.info" novalidate>\n                                                           <!-- START APP -->\n                                                            <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n                                                                      <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n                                         <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n                                          <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n                                           </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APP -->\n\n                                                            <!-- START APPADATA -->\n                                                               <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n                                                                        <ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                          <ui-select-choices repeat="item in items | filter: $select.search">\n                                             <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n                                       </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APPADATA -->\n\n                                                               <!-- START TIMEOUT -->\n                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                                                  <input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n                                                                    <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TIMEOUT -->\n\n                                                                <!-- START INTERVAL -->\n                                                               <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n                                                                 <input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n                                                                   <span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div> -->\n                                                            <!-- END INTERVAL -->\n\n                                                               <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-paper-plane"></i>\n                                      <a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.name || account.description }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/account.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.name || account.description }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{ account.phone }}\n                                   </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.fax.accounts.view.settings\')}">\n                                                 <a href="/fax/accounts/view/{{account.id}}/settings">\n                                                 <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li data-ng-class="{active: $state.is(\'main.fax.accounts.view.routes\') || $state.is(\'main.fax.accounts.view.applications\')}">\n                                                     <a href="/fax/accounts/view/{{account.id}}/routes">\n                                                   <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ROUTES\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                                <!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                 <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                  <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n                                                                <th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n                                                  <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n                                                                <th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                           </tr>\n                                         </thead>\n                                            <tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n                                     <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n                                                               <td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n                                                            <td>{{getAppdata(application.app, application.appdata)}}</td>\n                                                         <td>{{application.timeout}}</td>\n                                                              <!-- <td>{{application.interval}}</td> -->\n                                          <td>\n                                            <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="faxApplications.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/account/view/view.settings.html",'<div class="row">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n                                                             <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                          <input\n                                                                        bs-switch\n                                                                     ng-model="account.ecm"\n                                                                        type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n                                                         <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n                                                               <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n                                                                <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                                <input\n                                                                        bs-switch\n                                                                     ng-model="item.ecm"\n                                                                   type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n                                                            <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n                                                          <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/list/list.html",'<div class="row">\n     <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-settings"></i>\n                                         <a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="faxAutomations.checked.length">\n                                          <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n                                           </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/fax/automations/wizard">\n                                                            <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="fax_automations.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFaxAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                  <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.faxAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="faxAutomationByPage in faxAutomationsByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="faxAutomationByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                              <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAutomation, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="faxAutomation in displayedFaxAutomations">\n                                                            <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxAutomations.checked" checklist-value="faxAutomation.id"></td>\n                                             <td>{{faxAutomation.name}}</td>\n                                                         <td>{{faxAutomation.description}}</td>\n                                                                <td>\n                                                                  <input\n                                                                                data-ng-change="updateItem(faxAutomation.id, faxAutomation.status)",\n                                                              bs-switch\n                                                             ng-model="faxAutomation.status"\n                                                               type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ onText }}"\n                                                                 switch-off-text="{{ offText }}"\n                                                               switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                          </td>\n                                       <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/automations/view/{{faxAutomation.id}}/settings">\n                                                                         {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAutomation.name, faxAutomation.id)">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFaxAutomations.length">\n                                                            <td colspan="6" class="text-center">\n                                                                  <i>{{\'MESSAGE_NO_AVAILABLE_AUTOMATIONS\' | translate}}</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxAutomationsByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/fax/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                     <i class="fa fa-angle-right" data-ng-show="automation"></i>\n                           </li>\n                         <li data-ng-show="automation">\n                                        <a href="#">{{ automation.description || automation.name }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ automation.name }}\n                                 </div>\n                                        <div class="profile-usertitle-job">\n                                           {{automation.description}}\n                                    </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.fax.automations.view.settings\')}">\n                                                      <a href="/fax/automations/view/{{automation.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n                                                             <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                                    <!-- IMAP TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewCondition(\'or\')">\n                                                                  <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n                                                        <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n                                                                                                <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n                                                                                                    <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n                                                                                          <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-4" data-ng-switch="condition.condition">\n                                                                           <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n                                                                                                <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n                                                                                                     <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeCondition(condition.id)">\n                                                                                    <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessConditions.length">\n                                                 <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n                                        </div>\n                                        <!-- END IMAP TAB -->\n\n                                       <div class="tab-pane" id="tab_1_3">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewCondition(\'and\')">\n                                                                 <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n                                                       <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n                                                                                          <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n                                                                                                    <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n                                                                                             <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-4" data-ng-switch="condition.condition">\n                                                                           <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n                                                                                          <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n                                                                                                     <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                                       <span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeCondition(condition.id)">\n                                                                                    <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessConditions.length">\n                                                 <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n                                        </div>\n\n                                      <!-- SMTP TAB -->\n                                     <div class="tab-pane" id="tab_1_4">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewAction()">\n                                                                   <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="action in automation.BusinessActions">\n                                                       <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n                                                                                         <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n                                                                                                     <div data-ng-bind="action.value | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3" data-ng-switch="action.condition">\n                                                                              <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n                                                                                         <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                         </div>\n                                                                        </div>\n                                                                        <div class="col-md-4">\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeAction(action.id)">\n                                                                                  <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessActions.length">\n                                                    <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n\n                                      </div>\n                                        <!-- END SMTP TAB -->\n                         </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n     <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                             </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid && forms.automation.$valid)">\n                                         <form name="forms.automation" novalidate>\n                                                     <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n                                                                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                         <input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n                                                                               <span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n\n                                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n                                                                                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                              <input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n                                                                          <span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <hr>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'or\')">\n                                                                             <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-user"></i>\n                                                                     <span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.or">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n                                                                                               <ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n                                                                                                          <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                               <ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n                                                                                                    <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n                                                                                                          <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                                 </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n                                                                                        <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n                                                                                            <ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n                                                                                                               <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number">\n                                                                                         <input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n                                                                                              <span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'or\', $index)">\n                                                                                             <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.or.length">\n                                                                <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add condition</i>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'and\')">\n                                                                            <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-people"></i>\n                                                                   <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.and">\n                                                              <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n                                                                                                        <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n                                                                                                         <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                              <ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n                                                                                                         <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                                 </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n                                                                                       <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n                                                                                                        <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n                                                                                                              <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number">\n                                                                                         <input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n                                                                                          <span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'and\', $index)">\n                                                                                            <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.and.length">\n                                                               <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add condition</i>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'actions\')">\n                                                                                <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-magic-wand"></i>\n                                                                       <span class="caption-subject">Perform these actions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.actions">\n                                                          <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n                                                                                                 <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n                                                                                                           <div data-ng-bind="action.value | highlight: $select.search"></div>\n                                                                                                   </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n                                                                                   <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n                                                                                                 <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n                                                                                                          <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n                                                                                               <input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n                                                                                             <span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4">\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n                                                                                                <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.actions.length">\n                                                           <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add action</i>\n                                                             </div>\n                                                        </div>\n                                                        <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                               </div>\n                                                        </div>\n                                                </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+"use strict";angular.module("xCallyShuttleApp",["adf","adf.structures.base","adf.widget.clock","adf.widget.iframe","adf.widget.counter","adf.widget.table","adf.widget.pie-chart","angular-md5","angular.filter","angularFileUpload","btford.socket-io","chart.js","checklist-model","colorpicker.module","frapontillo.bootstrap-switch","infinite-scroll","LocalStorageModule","mgo-angular-wizard","ng-slide-down","ngAnimate","ngBootstrap","ngCookies","ngCsv","ngFileSaver","ngJsTree","ngMap","ngPapaParse","ngResource","ngSanitize","notification","oc.lazyLoad","pascalprecht.translate","pdf","remoteValidation","smart-table","sprintf","textAngular","toastr","ui-notification","ui.bootstrap.modal","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.timepicker","ui.bootstrap.tooltip","ui.bootstrap.tpls","ui.bootstrap.accordion","ui.bootstrap.progressbar","ui.grid","ui.grid.exporter","ui.grid.grouping","ui.grid.moveColumns","ui.grid.pagination","ui.grid.treeView","ui.grid.selection","ui.grid.exporter","ui.router","ui.navbar","ui.select","ui.sortable","xeditable","ngAudio","truncate","ngScrollbars","ngEmoticons"]).config(["$stateProvider","$urlRouterProvider","$locationProvider","$httpProvider","$translateProvider","localStorageServiceProvider","dashboardProvider","ScrollBarsProvider",function(a,b,c,d,e,f,g,h){b.otherwise("/dashboard/voice"),e.useStaticFilesLoader({prefix:"assets/languages/locale-",suffix:".json"}),e.preferredLanguage("en_EN"),e.useLocalStorage(),e.useSanitizeValueStrategy("sanitize"),c.html5Mode(!0),d.interceptors.push("authInterceptor"),g.structure("4-4-4",{rows:[{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("3-3-3-3",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"}]}]}),f.setPrefix("xcally"),h.defaults={scrollButtons:{scrollAmount:"auto",enable:!0},axis:"y"}}]).factory("settings",["$rootScope","$interval","License","localStorageService",function(a,b,c,d){var e={layout:{pageSidebarClosed:d.get("sidebarClosed")||!1,pageQuickSidebarOpened:!1,pageBodySolid:!1,pageAutoScrollOnLoad:1e3}};return a.settings=e,c.get(function(b){b.license&&(a.license=b.license)}),e}]).factory("authInterceptor",["$rootScope","$q","$cookieStore",function(a,b,c){return{request:function(a){return a.headers=a.headers||{},c.get("token")&&(a.headers.Authorization="Bearer "+c.get("token")),a}}}]).run(["$rootScope","$location","$state","$stateParams","$window","$http","Auth","editableThemes","editableOptions",function(a,b,c,d,e,f,g,h,i){a.$state=c,a.$stateParams=d,h.bs3.inputClass="input-sm",h.bs3.buttonsClass="btn-xs",i.theme="bs3",a.online=navigator.onLine,e.addEventListener("offline",function(){a.$apply(function(){a.online=!1})},!1),e.addEventListener("online",function(){a.$apply(function(){a.online=!0})},!1),a.$on("$stateChangeStart",function(a,c){g.isLoggedInAsync(function(a){c.authenticate&&!a&&b.path("/login")})}),a.updateTableConfig=function(a,b){var c=_.find(a,{name:"All"});c&&(c.value=b)}}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.agents={checked:[]},a.check=function(b,c){c?a.agents.checked=angular.copy(_.pluck(a.displayedAgents,"id")):a.agents.checked=[]},a.getAgents=function(b){return _.map(a.displayedAgents,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("agent"),b.url="/api/agents",h.getPage(b).then(function(d){a.displayedAgents=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.agentsByPage,a.displayedAgents.length),c.updateTableConfig(a.conf.agentsByPage,a.displayedAgents.length)}),f.socket.on("agent:save",function(){a.initList(b)}),f.socket.on("agent:remove",function(c){a.agents.checked=_.without(a.agents.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/agents/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/agents",{params:{id:a.agents.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.list",{url:"/list",templateUrl:"app/agent/list/list.html",controller:"AgentListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","socket","FileUploader","Auth",function(a,b,c,d,e,f,g,h,i){a.Auth=i,a.updatePassword=function(){var f,g;i.isAdmin()?(f="/api/agents/password/"+e.id+"/reset",g={newPassword:a.agent.newPwd}):(f="/api/agents/password/",g={oldPassword:a.agent.currentPwd,newPassword:a.agent.newPwd}),b.put(f,g).success(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var j=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});j.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),j.onSuccessItem=function(b,e,f,g){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},j.onErrorItem=function(a,b,e,f){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},j.onCompleteAll=function(){j.clearQueue()},a.initView=function(){b.get("/api/agents/"+e.id).success(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[]}).error(function(a){c.show(a.message,"danger")})},a.updateItem=function(){var f=angular.copy(a.agent),g=angular.copy(a.agent);delete f.password,delete f.md5secret,f.transport=f.transport.join(","),f.allow=f.allow.join(";"),b.put("/api/agents/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.agent=g,b.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.view",{url:"/view/:id",templateUrl:"app/agent/view/view.html",controller:"AgentViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.agents.view.account",{url:"/account",templateUrl:"app/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$http","xAlert","$location","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){b.post("/api/agents/validate/",a.item).success(function(a){console.log(a),a.length?c.show(f.instant("MESSAGE_EXIST_INTERNAL"),"danger"):e.wizard().next()}).error(function(a){c.show(f.instant(a.message),"danger")})},a.getFirstFreeInternal=function(){b.get("/api/settings/internal").success(function(b){a.item.internal=b.value}).error(function(a){c.show(f.instant(a.message),"danger")})},a.exitValidation=function(a){return a},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/agents/",a.item).success(function(){d.path("/agents/list")}).error(function(a){a.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.wizard",{url:"/wizard",templateUrl:"app/agent/wizard/wizard.html",controller:"AgentWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics",{url:"/analytics",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted",{url:"/extracted",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticExtractedListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log","FileSaver","Blob",function(a,b,c,d,e,f,g,h,i,j,k,l){a.conf={extractsByPage:{name:"10",value:10}},a.moment=moment,a.extractsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Extracts={checked:[]},a.check=function(b,c){c?a.Extracts.checked=angular.copy(_.pluck(a.displayedExtracts,"id")):a.Extracts.checked=[]},a.getExtracts=function(b){return _.map(a.displayedExtracts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("extracted_report"),b.url="/api/analytics/extracted",h.getPage(b).then(function(c){a.displayedExtracts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.extractsByPage,a.displayedExtracts.length),d.updateTableConfig(a.conf.extractsByPage,a.displayedExtracts.length)}),c.socket.on("extracted_report:save",function(){a.initList(b)}),c.socket.on("extracted_report:remove",function(c){a.Extracts.checked=_.without(a.Extracts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/analytics/extracted/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/analytics/extracted",{params:{id:a.Extracts.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.download=function(a){b.get("/api/analytics/extracted/download/"+a.id).success(function(b){var c=a.output.toLowerCase(),d=new l([b],{type:"application/"+c}),e=a.name+"_"+moment(a.startDate).format("MM-DD-YYYY").toString()+"_"+moment(a.startDate).format("MM-DD-YYYY").toString()+"."+c;k.saveAs(d,e)}).error(function(a){f.show(e.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted.list",{url:"/list",templateUrl:"app/analytic/extracted/list/list.html",controller:"AnalyticExtractedListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.tables=[{name:"Agent Report",value:"report_agent_history"},{name:"Mail Report",value:"report_mail_session_history"},{name:"Queue Report",value:"report_queue_history"},{name:"Integration Report",value:"report_integration_history"},{name:"Chat Report",value:"report_chat_session_history"}],a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={metricsByPage:{name:"10",value:10}},a.metricsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Metrics={checked:[]},a.check=function(b,c){c?a.Metrics.checked=angular.copy(_.pluck(a.displayedMetrics,"id")):a.Metrics.checked=[]},a.getMetrics=function(b){return _.map(a.displayedMetrics,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("metric"),b.url="/api/analytics/metrics",h.getPage(b).then(function(c){a.displayedMetrics=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.metricsByPage,a.displayedMetrics.length),d.updateTableConfig(a.conf.metricsByPage,a.displayedMetrics.length)}),c.socket.on("metric:save",function(){a.initList(b)}),c.socket.on("metric:remove",function(c){a.Metrics.checked=_.without(a.Metrics.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/analytics/metrics/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/analytics/metrics",{params:{id:a.Metrics.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/analytic/metric/list/create.modal.html",controller:"AnalyticMetricListCreateModalCtrl"});a.result.then(function(a){b.post("/api/analytics/metrics",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.list",{url:"/list",templateUrl:"app/analytic/metric/list/list.html",controller:"AnalyticMetricListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics",{url:"/metrics",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.tables=[{name:"Agent Report",value:"report_agent"},{name:"Mail Report",value:"report_mail_session"},{name:"Queue Report",value:"report_queue"},{name:"Integration Report",value:"report_integration"},{name:"Chat Report",value:"report_chat_session"}],a.getMetric=function(){b.get("/api/analytics/metrics/"+e.id).success(function(b){a.metric=b}).error(function(a){console.error(a),f.path("/analytics/metrics/list")})},a.updateMetric=function(){var f=angular.copy(a.metric);b.put("/api/analytics/metrics/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.metric=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.view",{url:"/view/:id",templateUrl:"app/analytic/metric/view/view.html",controller:"AnalyticMetricViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.metrics.view.settings",{url:"/settings",templateUrl:"app/analytic/metric/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("ReportListCopyModalCtrl",["$scope","$uibModalInstance","$log","customTreeData",function(a,b,c,d){a.customTreeData=d,a.forms={dashboard:void 0},a.item={},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){c.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0}},a.ac=function(){return!0},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.open_all()},a.ok=function(){b.close({parent:a.customTree.get_selected(!0).pop().id})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListCreateModalCtrl",["$scope","$uibModalInstance","path",function(a,b,c){a.path=c,a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListExtractModalCtrl",["$scope","$uibModalInstance","$http","report","xAlert","$translate","$timeout","uiGridExporterConstants",function(a,b,c,d,e,f,g,h){a.dates={startDate:moment().startOf("day"),endDate:moment().endOf("day")},a.ranges={Today:[moment(),moment()],Yesterday:[moment().subtract(1,"days"),moment().subtract(1,"days")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]},a.extract=function(c){var d={startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString(),output:c};b.close(d)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticReportListCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","$log","Modal","$rootScope","stResource","$uibModal","FileSaver","Blob",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.searchField="",a.ac=function(){return!0},a.initDefaultScopeTree=function(){a.defaultTree=a.defaultTreeInstance.jstree(!0),a.defaultTree.deselect_all(),a.defaultTree.close_all(),a.defaultTree.open_node({id:1}),a.defaultTreeReady=!0,a.defaultTreeActive=!0,a.previousDefaultNode=""},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.close_all(),a.customTree.open_node({id:1}),a.customTreeReady=!0,a.previousCustomNode=""},a.$watchGroup(["defaultTreeReady","customTreeReady"],function(b,c,d){b[0]&&b[1]&&a.defaultTree.select_node({id:"1"})}),a.updateCustomTree=function(){var e={tree:angular.toJson(a.customTree.get_json("#",{flat:!0}))};b.put("/api/analytics/reports/trees/2",e).success(function(a){console.log("Custom Tree Updated")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.configTrees=function(){a.defaultTreeConfig={multiple:!1,animation:!0,core:{error:function(a){h.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["search"]},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){h.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["contextmenu","dnd","search"],contextmenu:{items:function(b,c){var e={create:{label:d.instant("APPLICATION_CREATE"),action:function(c){a.customTree.create_node(b),a.customTree.open_node(b)}},rename:{label:d.instant("APPLICATION_RENAME"),action:function(c){a.customTree.edit(b)}},remove:{label:d.instant("APPLICATION_REMOVE"),action:function(c){console.log(b),a.deleteNode(b.text,b)}}};return"#"===b.parent&&(delete e.rename,delete e.remove),c(e),e}}}},a.deleteNode=i.confirm["delete"](function(b){a.customTree.delete_node(b),a.previousCustomNode==b.id&&a.customTree.select_node({id:b.parent})}),a.searchTrees=function(){a.defaultTree.search(a.searchField),a.customTree.search(a.searchField)},a.selectDefaultNode=function(){if(a.customTreeReady){a.previousCustomNode="";var b=a.defaultTree.get_selected(!0),c=b.pop();if(a.defaultTree.deselect_node(b[0],!0),a.customTree.deselect_all(),a.defaultTree.select_node(c,!0),c.id===a.previousDefaultNode)return void console.log("def");a.previousDefaultNode=c.id,a.defaultTreeActive=!0,a.initList(a.tableState)}},a.selectCustomNode=function(){if(a.defaultTreeReady){a.previousDefaultNode="";var b=a.customTree.get_selected(!0),c=b.pop();if(a.customTree.deselect_node(b[0],!0),a.defaultTree.deselect_all(),a.customTree.select_node(c,!0),c.id===a.previousCustomNode)return void console.log("cus");a.previousCustomNode=c.id,a.defaultTreeActive=!1,a.initList(a.tableState)}},a.getTrees=function(){b.get("/api/analytics/reports/trees").success(function(b){a.defaultTreeData=JSON.parse(b[0].tree),a.customTreeData=JSON.parse(b[1].tree),a.configTrees()}).error(function(a){c.show(d.instant(a.message),"danger")})},a.conf={reportsByPage:{name:"10",value:10}},a.reportsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Reports={checked:[]},a.check=function(b,c){c?a.Reports.checked=angular.copy(_.pluck(a.displayedReports,"id")):a.Reports.checked=[]},a.getReports=function(b){return _.map(a.displayedReports,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){if(b){f.unsyncUpdates("custom_report"),a.Reports.checked=[];var c=a.defaultTree.get_selected(),d=a.customTree.get_selected();if(c.length){var e=c.pop();a.selectedNode=a.defaultTree.get_path(e," / "),b.url="/api/analytics/reports/default",b.search.params={parent:e}}else{if(!d.length)return;var e=d.pop();a.selectedNode=a.customTree.get_path(e," / "),b.url="/api/analytics/reports/custom",b.search.params={parent:e}}a.tableState=b,k.getPage(b).then(function(c){a.displayedReports=c.rows,b.pagination.numberOfPages=c.total_pages,j.updateTableConfig(a.reportsByPage,a.displayedReports.length),j.updateTableConfig(a.conf.reportsByPage,a.displayedReports.length)}),f.socket.on("custom_report:save",function(){a.defaultTreeActive||(console.log("save"),a.initList(b))}),f.socket.on("custom_report:remove",function(c){a.defaultTreeActive||(a.Reports.checked=_.without(a.Reports.checked,c.id),a.initList(b))})}},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("/api/analytics/reports/custom/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.deleteItems=i.confirm["delete"](function(){b["delete"]("/api/analytics/reports/custom",{params:{id:a.Reports.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.create=function(){var d=l.open({animation:!0,templateUrl:"app/analytic/report/list/create.modal.html",controller:"ReportListCreateModalCtrl",resolve:{path:function(){return a.selectedNode}}});d.result.then(function(d){d.parent=a.previousCustomNode,b.post("/api/analytics/reports/custom",d).then(function(a){g.path("/analytics/reports/view/"+a.data.id+"/settings")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})},a.copy=function(e){var f=a.defaultTreeActive?"/api/analytics/reports/default/copy/"+e:"/api/analytics/reports/custom/copy/"+e,g=l.open({animation:!0,templateUrl:"app/analytic/report/list/copy.modal.html",controller:"ReportListCopyModalCtrl",resolve:{customTreeData:function(){return a.customTreeData}}});g.result.then(function(a){b.post(f,a).then(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})},a["export"]=function(d){var e=a.defaultTreeActive?"/api/analytics/reports/default/"+d:"/api/analytics/reports/custom/"+d;b.get(e).success(function(a){delete a.id,_.forEach(a.Fields,function(a){delete a.id,delete a.CustomReportId});var b=new n([angular.toJson(a)],{type:"application/json;charset=utf-8"});m.saveAs(b,a.name+".json")}).error(function(a){console.error(a),c.show(a.message,"danger")})},a["import"]=function(e){var f=JSON.parse(e);f.parent=a.previousCustomNode;var g=f.name&&f.parent?!0:!1,h=!0;_.forEach(f.Fields,function(a){a.field&&a.alias||(h=!1)}),g&&h?b.post("/api/analytics/reports/custom/import",f).then(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")}):c.show(d.instant("MESSAGE_INVALID_JSON"),"danger")},a.preview=function(b){l.open({animation:!0,templateUrl:"app/analytic/report/list/preview.modal.html",controller:"ReportListPreviewModalCtrl",size:"full",resolve:{report:function(){return{id:b,tree:a.defaultTreeActive?"default":"custom"}}}})},a.extract=function(e){var f=l.open({animation:!0,templateUrl:"app/analytic/report/list/extract.modal.html",controller:"ReportListExtractModalCtrl",size:"md",resolve:{report:function(){return{id:e,tree:a.defaultTreeActive?"default":"custom"}}}});f.result.then(function(f){var g=a.defaultTreeActive?"/api/analytics/reports/default/extract/"+f.output+"/"+e:"/api/analytics/reports/custom/extract/"+f.output+"/"+e;b.post(g,f).then(function(a){c.show(d.instant("MESSAGE_REPORT_EXTRACTING"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.list",{url:"/list",templateUrl:"app/analytic/report/list/list.html",controller:"AnalyticReportListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ReportListPreviewModalCtrl",["$scope","$uibModalInstance","$http","report","xAlert","$translate","$timeout","uiGridExporterConstants",function(a,b,c,d,e,f,g,h){a.forms={dashboard:void 0},a.dates={startDate:moment().startOf("day"),endDate:moment().endOf("day")},a.ranges={Today:[moment(),moment()],Yesterday:[moment().subtract(1,"days"),moment().subtract(1,"days")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]};var i={pageNumber:1,pageSize:25,sort:null,where:{},order:{}};a.gridOptions={paginationPageSizes:[10,25,50],paginationPageSize:25,useExternalPagination:!0,enableSorting:!1,enableFiltering:!0,useExternalFiltering:!0,enableGrouping:!1,enableColumnMenus:!1,treeRowHeaderAlwaysVisible:!1,gridMenuShowHideColumns:!1,enableGridMenu:!1,onRegisterApi:function(b){a.gridApi=b,b.pagination.on.paginationChanged(a,function(b,c){i.pageNumber=b,i.pageSize=c,a.getPage()}),b.core.on.filterChanged(a,function(){var b=this.grid,c={};b.columns.forEach(function(a){console.log(a),a.filters[0].term&&(c[a.field]=a.filters[0].term)}),i.where=c,a.getPage()})}},a.getPage=function(){var b={params:{page:i.pageNumber-1,perPage:i.pageSize,uiPagination:!0,startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString()}};_.forOwn(i.where,function(a,c){b.params[c]=a}),console.log(b),c.get("/api/analytics/reports/"+d.tree+"/preview/"+d.id,b).success(function(b){console.log(b),a.gridOptions.totalItems=b.count["COUNT(*)"],a.gridOptions.paginationPageSizes[3]=b.count["COUNT(*)"],a.gridOptions.data=b.rows,delete b.count["COUNT(*)"],a.gridOptions.columnDefs=[],_.forOwn(b.count,function(b,c){a.gridOptions.columnDefs.push({name:c})}),a.showResult=!0}).error(function(a){e.show(f.instant(a.message),"danger")})},a.cancel=function(){b.dismiss("cancel")},g(function(){a.getPage()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports",{url:"/reports",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticReportViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","$timeout",function(a,b,c,d,e,f,g){function h(e){var f=_.find(a.tables,{table:e}).url;b.get(f).success(function(b){delete b.createdAt,delete b.updatedAt,delete b.id,a.tableFields=_.map(b,function(a,b){return{name:b,value:b}})}).error(function(a){c.show(d.instant(a.message),"danger")})}function i(e){console.log(e),b.get("/api/analytics/metrics/table",{params:{table:e}}).success(function(b){_.forEach(b,function(b){a.tableFields.push({name:"<strong>Metric.</strong>"+b.name,value:b.metric})})}).error(function(a){c.show(d.instant(a.message),"danger")})}function j(a){return String(a).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function k(a){if(!a)return"";for(var b="(",c=0;c<a.rules.length;c++)c>0&&(b+=" <strong>"+a.operator+"</strong> "),b+=a.rules[c].group?k(a.rules[c].group):a.rules[c].field+" "+j(a.rules[c].condition)+" '"+("like"===a.rules[c].condition?"%"+a.rules[c].value+"%":a.rules[c].value)+"'";return b+")"}a.$translate=d,a.tempReport={},a.tables=[{name:"Agent Report",table:"report_agent_history",url:"/api/report/agents/describe"},{name:"Mail Report",table:"report_mail_session_history",url:"/api/report/mail/sessions/describe"},{name:"Queue Report",table:"report_queue_history",url:"/api/report/queues/describe"},{name:"Integration Report",table:"report_integration_history",url:"/api/report/integrations/describe"},{name:"Chat Report",table:"report_chat_session_history",url:"/api/report/chat/sessions/describe"}];var l={group:{operator:"AND",rules:[]}};a.getReport=function(){a.firstLoad=!0,b.get("/api/analytics/reports/custom/"+e.id).success(function(b){a.report=b,_.forEach(a.report.Fields,function(a){delete a.id}),a.report.conditions=a.report.conditions?JSON.parse(a.report.conditions):_.clone(l,!0),a.getPreview()}).error(function(a){console.error(a),f.path("/analytics/reports/list")})},a.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},a.$watch("report.table",function(b,c){console.log(b),b&&(console.log("is newvalue"),h(b),i(b),c&&(console.log("is oldvalue"),a.tempReport[c]={conditions:a.report.conditions,fields:a.report.Fields}),a.firstLoad?a.firstLoad=!1:a.tempReport[b]?(a.report.Fields=a.tempReport[b].fields,a.report.conditions=a.tempReport[b].conditions):(a.report.Fields=[],a.report.conditions=_.clone(l,!0)))},!0),a.groupByField=[{name:"APPLICATION_YES",value:!0},{name:"APPLICATION_NO",value:!1}],a.functions=[{name:"Sum",value:"SUM"},{name:"Count",value:"COUNT"},{name:"Count Distinct",value:"COUNT DISTINCT"},{name:"Maximum",value:"MAX"},{name:"Minimum",value:"MIN"},{name:"Average",value:"AVG"},{name:"Group Concat",value:"GROUP_CONCAT"},{name:"Group Concat(asc)",value:"GROUP_CONCAT ASC"},{name:"Group Concat(desc)",value:"GROUP_CONCAT DESC"}],a.addField=function(){a.report.Fields.push({groupBy:!1,CustomReportId:a.report.id})},a.removeField=function(b){a.report.Fields.splice(b,1)},a.sortableOptions={"ui-floating":!0,cancel:".unsortable",handle:".report-field-handle",axis:"y"},a.updateReport=function(){if(a.report.Fields.length){var f=angular.copy(a.report);f.conditions=angular.toJson(f.conditions),b.put("/api/analytics/reports/custom/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.getPreview()}).error(function(b){c.show(d.instant(b.message),"danger"),f.conditions=JSON.parse(f.conditions),a.report=f})}else c.show(d.instant("MESSAGE_SELECT_A_FIELD"),"danger")},a.$watch("report.conditions",function(b){a.output=b?k(b.group):"()"},!0),a.gridOptions={enableFiltering:!0,treeRowHeaderAlwaysVisible:!1,enableGridMenu:!0},a.getPreview=function(){b.get("/api/analytics/reports/custom/preview/"+e.id,{params:{perPage:20}}).success(function(b){a.gridOptions.data=b.rows,a.gridOptions.columnDefs=_.map(a.report.Fields,function(a){return{name:a.alias}})}).error(function(a){c.show(d.instant(a.message||"MESSAGE_QUERY_NOT_VALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.view",{
+url:"/view/:id",templateUrl:"app/analytic/report/view/view.html",controller:"AnalyticReportViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.reports.view.settings",{url:"/settings",templateUrl:"app/analytic/report/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={AutomationsByPage:{name:"10",value:10}},a.AutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Automations={checked:[]},a.check=function(b,c){c?a.Automations.checked=angular.copy(_.pluck(a.displayedAutomations,"id")):a.Automations.checked=[]},a.getAutomations=function(b){return _.map(a.displayedAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("automation"),b.url="/api/automations",e.getPage(b).then(function(c){a.displayedAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.AutomationsByPage,a.displayedAutomations.length),d.updateTableConfig(a.conf.AutomationsByPage,a.displayedAutomations.length)}),g.socket.on("automation:save",function(){a.initList(b)}),g.socket.on("automation:remove",function(c){a.Automations.checked=_.without(a.Automations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/automations",{params:{id:a.Automations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/automations/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.list",{url:"/list",templateUrl:"app/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations",function(a,b,c,d,e,f){a.$automations=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/automations/"+b.id).success(function(b){a.automation=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$automations.automations[b.channel].conditions,a.fields.actions=a.$automations.automations[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.updateAutomation=function(){c.put("/api/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.view",{url:"/view/:id",templateUrl:"app/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.automations.view.settings",{url:"/settings",templateUrl:"app/automation/view/view.settings.html"}).state("main.automations.view.routes",{url:"/routes",templateUrl:"app/automation/view/view.routes.html"}).state("main.automations.view.application",{url:"/application",templateUrl:"app/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler",function(a,b,c,d,e,f){a.$automations=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$automations.automations[b].conditions,a.fields.actions=a.$automations.automations[b].actions},!0),a.item.channel="mail",a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/automations",a.item).success(function(){c.path("/automations/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.wizard",{url:"/wizard",templateUrl:"app/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat",{url:"/chat",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatMessage",["$resource",function(a){return a("/api/chat/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatRoom",["$resource",function(a){return a("/api/chat/rooms/:id/:controller",{id:"@id"},{me:{method:"GET",isArray:!0,params:{id:"me"}},users:{method:"GET",params:{id:"users"}},externals:{method:"GET",isArray:!0,params:{id:"type",controller:"external"}},groups:{method:"GET",isArray:!0,params:{id:"groups"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("preview",function(){return{templateUrl:"app/chat/preview/preview.html",restrict:"EA",link:function(a,b,c){}}}),angular.module("xCallyShuttleApp").controller("ChatQueueListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatQueuesByPage:{name:"10",value:10}},a.chatQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatQueues={checked:[]},a.check=function(b,c){c?a.chatQueues.checked=angular.copy(_.pluck(a.displayedChatQueues,"id")):a.chatQueues.checked=[]},a.initList=function(b){e.unsyncUpdates("chat_queue"),b.url="/api/chat/queues/",h.getPage(b).then(function(c){a.displayedChatQueues=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(c.queuesByPage,a.displayedChatQueues.length),g.updateTableConfig(a.conf.queuesByPage,a.displayedChatQueues.length)}),e.socket.on("chat_queue:save",function(){a.initList(b)}),e.socket.on("chat_queue:remove",function(c){a.chatQueues.checked=_.without(a.chatQueues.checked,c.id),a.initList(b)})},a.getChatQueues=function(b){return _.map(a.displayedChatQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/queues/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/queues/",{params:{id:a.chatQueues.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_queue")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.list",{url:"/list",templateUrl:"app/chat/queue/list/list.html",controller:"ChatQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("ChatQueue",["$resource",function(a){return a("/api/chat/queues/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/chat/user_has_queues",method:"GET",params:{ChatQueueId:a.queue.id}}).success(function(a){ComponentsDropdowns.bindChatQueue(c.rows,_.pluck(a,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.view",{url:"/view/:id",templateUrl:"app/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.chat.queues.view.settings",{url:"/settings",templateUrl:"app/chat/queue/view/view.settings.html"}).state("main.chat.queues.view.agents",{url:"/agents",templateUrl:"app/chat/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueWizardCtrl",["$scope","$http","$location","xAlert","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/chat/queues",a.item).success(function(){d.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/chat/queues/list")}).error(function(a){d.show(f.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.wizard",{url:"/wizard",templateUrl:"app/chat/queue/wizard/wizard.html",controller:"ChatQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view.agent",{url:"/agent",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentQueueCtrl",["$scope","$http","socket","Agent","ChatQueue",function(a,b,c,d,e){a.gridOptions={enableSorting:!1,enableFiltering:!0,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"agentName",displayName:"Agent",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.agentName">{{row.entity.fullname}} [{{row.entity.agentName}}]</span>'},{name:"online",cellClass:"text-center",cellTemplate:'<span class="badge badge-empty" data-ng-if="row.entity.online != null" data-ng-class="row.entity.online ? \'badge-success\' : \'badge-danger\'"></span>'},{name:"lastLoginAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.lastLoginAt" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},e.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("chat_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("chat_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_chat_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId});d.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_chat_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initAgents=function(){b.get("/api/report/chats").success(function(b){a.agents=b,c.socket.on("report_chat:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_chat:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view.agent.queues",{url:"/queues",controller:"ChatRealtimeViewAgentQueueCtrl",templateUrl:"app/chat/realtime/view/agent/queue/queue.html"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentTimelineCtrl",["$scope","$http","socket","Agent","ChatQueue","uiGridConstants",function(a,b,c,d,e,f){a.gridOptions={enableFiltering:!0,columnDefs:[{name:"lastevent",cellClass:"text-center",enableFiltering:!1,enableSorting:!1,displayName:"",cellTemplate:"<span><i data-ng-class=\"{'icon-user font-yellow': row.entity.lastevent === 'called', 'icon-user-following font-green': row.entity.lastevent === 'agent', 'icon-user-unfollow font-red': row.entity.lastevent === 'timeout', 'icon-user-unfollow font-blue': row.entity.lastevent === 'answered_elsewhere'}\"></i></span>"},{name:"chatqueuename",displayName:"Queue Name",cellClass:"text-center"},{name:"fullname",cellClass:"text-center"},{name:"visitoremail",displayName:"Visitor",cellClass:"text-center"},{name:"websitename",displayName:"Website",cellClass:"text-center"},{name:"agentcalledAt",displayName:"Called At",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentcalledAt" is="relative-time" datetime="{{row.entity.agentcalledAt}}">April 1, 2014</time>',sort:{direction:f.DESC,priority:0}},{name:"agentconnectAt",displayName:"Connected At",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentconnectedAt" is="relative-time" datetime="{{row.entity.agentconnectedAt}}">April 1, 2014</time>'},{name:"agentringnoanswerAt",displayName:"No Answer At",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentringnoanswerAt" is="relative-time" datetime="{{row.entity.agentringnoanswerAt}}">April 1, 2014</time>'}],data:[]},a.initAgents=function(){b.get("/api/report/chats").success(function(b){a.gridOptions.data=b,c.socket.on("report_chat:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c||a.gridOptions.data.unshift(b)}),c.socket.on("report_chat:update",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c&&_.merge(a.gridOptions.data[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view.agent.timeline",{url:"/timeline",controller:"ChatRealtimeViewAgentTimelineCtrl",templateUrl:"app/chat/realtime/view/agent/timeline/timeline.html"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initChats=function(){b.get("/api/report/chat/sessions").success(function(b){a.sessions=b,c.socket.on("report_chat_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.push(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.chat.realtime.view.agent.queues"},{name:"Timeline",link:"main.chat.realtime.view.agent.timeline"}],a.sessions=[{name:"Sessions",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view",{url:"/view",templateUrl:"app/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"}).state("main.chat.realtime.view.sessions",{url:"/sessions",controller:"ChatRealtimeViewSessionCtrl",templateUrl:"app/chat/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("ChatStatisticCtrl",["$scope","$http","$stateParams","xAlert","socket","$location","$translate","$filter",function(a,b,c,d,e,f,g,h){a.conf={chatVisitorsByPage:10,chatRoomsByPage:10,chatEnquiriesByPage:10},a.$location=f,a.$translate=g,a.$filter=h,a.initList=function(){b.get("api/chat/visitors").success(function(b){a.chatVisitors=b,e.syncUpdates("chat_visitor",a.chatVisitors)}),b.get("api/chat/rooms").success(function(b){a.chatRooms=b,e.syncUpdates("chat_room",a.chatRooms)}),b.get("api/chat/enquiries").success(function(b){a.chatEnquiries=b,e.syncUpdates("chat_enquery",a.chatEnquiries)})},a.initVisitorView=function(){b.get("api/chat/visitors/"+c.id).success(function(b){a.chatVisitor=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initEnquiryView=function(){b.get("api/chat/enquiries/"+c.id).success(function(b){a.chatEnquiry=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initRoomView=function(){console.log(c),b.get("api/chat/rooms/"+c.id).success(function(b){a.chatRoom=b}).error(function(a){d.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.statistics",{url:"/statistics",templateUrl:"app/chat/statistic/statistic.html",controller:"ChatStatisticCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]},{name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]}])}]}}).state("main.chat.statistics.summary",{url:"/summary",templateUrl:"app/chat/statistic/statistic.summary.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}}).state("main.chat.statistics.enquiries",{url:"/enquiries",templateUrl:"app/chat/statistic/statistic.enquiry.html"}).state("main.chat.statistics.enquiry",{url:"/enquiry/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.enquiry.view.html"}).state("main.chat.statistics.conversations",{url:"/conversations",templateUrl:"app/chat/statistic/statistic.conversation.html"}).state("main.chat.statistics.conversation",{url:"/conversation/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.conversation.view.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]})}]}}).state("main.chat.statistics.visitors",{url:"/visitors",templateUrl:"app/chat/statistic/statistic.visitor.html"}).state("main.chat.statistics.visitor",{url:"/visitor/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.visitor.view.html"})}]),angular.module("xCallyShuttleApp").controller("ChatTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/chat").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline.list",{url:"/list",templateUrl:"app/chat/timeline/list/list.html",controller:"ChatTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatWebsitesByPage:{name:"10",value:10}},a.chatWebsitesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatWebsites={checked:[]},a.check=function(b,c){c?a.chatWebsites.checked=angular.copy(_.pluck(a.displayedChatWebsites,"id")):a.chatWebsites.checked=[]},a.getChatWebsites=function(b){return _.map(a.displayedChatWebsites,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("chat_website"),b.url="/api/chat/websites",h.getPage(b).then(function(c){a.displayedChatWebsites=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.chatWebsitesByPage,a.displayedChatWebsites.length),g.updateTableConfig(a.conf.chatWebsitesByPage,a.displayedChatWebsites.length)}),e.socket.on("chat_website:save",function(){a.initList(b)}),e.socket.on("chat_website:remove",function(c){a.chatWebsites.checked=_.without(a.chatWebsites.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/websites/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/websites",{params:{id:a.chatWebsites.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_website")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.list",{url:"/list",templateUrl:"app/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.chatApplications,"id")),b.post("api/chat/websites/"+d.websiteId+"/applications",{applications:_.pluck(a.chatApplications,"id")}).success(function(b){angular.copy(b,a.chatApplications)}).error(function(a){console.error(a)})}},b.get("/api/chat/applications",{params:{ChatWebsiteId:d.websiteId}}).success(function(b){a.chatApplications=b,e.socket.on("chat_application:remove",function(b){_.remove(a.chatApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/chat/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/chat/website/view/action/list/list.html",controller:"chatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/chat/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.chatQueueId=a.application.chatQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/chat/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/chat/website/view/action/view/view.html",controller:"chatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:1e3}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:1e3}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:c.websiteId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;
+case"list":f.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",f).success(function(){e.path("/chat/websites/view/"+c.websiteId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/chat/website/view/action/wizard/wizard.html",controller:"chatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet",{url:"/snippet",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewSnippetViewCtrl",["$scope","$http","$stateParams","$translate","Template",function(a,b,c,d,e){a.$translate=d,a.statePreview={state:"online"},a.lang={HeaderCurrentlyChatting:"Live Chat",HeaderOffline:"Contact us",OperatorOfflineMessage:"It appears as if all operators are currently offline.",OfflineMessage:"<strong>We're not online.</strong><br/>It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.",EnquiryMessagePlaceholder:"Your message...",EnquiryButtonText:"Leave message",EnquirySubmitSuccess:"Your message was sucessfully submitted - we will contact you as soon as possible.",OperatorComposing:"{fullname} is typing...",FirstMessageText:"",ExitChatButtonText:"Exit Chat",ExitChatQuestionText:"Are you sure?",ExitChatButtonConfirmText:"Yes",ExitChatButtonCancelText:"No",MessagePlaceholderText:"Your message...",MessageSendButtonText:"Send",ValidationEmailRequired:"Please enter your email address",ValidationEmailInvalid:"Please enter a valid email address",ValidationEmailMaxLength:"The email address may not exceed 85 characters",ValidationUsernameRequired:"Please enter your name",ValidationUsernameMaxLength:"The name may not exceed 45 characters",ValidationEnquiryRequired:"Please enter your enquiry",ValidationEnquiryMaxLength:"The enquiry may not exceed 1500 characters",ValidationMessageRequired:"Please enter your message",ValidationMessageMaxLength:"The message may not exceed 750 characters"},a.initView=function(){e.get().$promise.then(function(b){console.log(b),a.mailTemplates=b.rows}),b.get("api/chat/websites/"+c.websiteId+"/snippet").success(function(b){a.snippetCode=b})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet.view",{url:"/view",templateUrl:"app/chat/website/view/snippet/view/view.html",controller:"ChatWebsiteViewSnippetViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewCtrl",["$scope","xAlert","$http","$location","$stateParams","$translate","WizardHandler",function(a,b,c,d,e,f,g){a.initApplication=function(){a.forms={},a.application={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.deleteItem=function(a){c["delete"]("api/chat/applications/"+a).error(function(){b.show(f.instant("Something went wrong!"),"danger")})},a.initView=function(){c.get("/api/chat/websites/"+e.websiteId).success(function(b){a.chatWebsite=b}).error(function(a){b.show(a.message,"danger")})},a.updateItem=function(){c.put("/api/chat/websites/"+a.chatWebsite.id,a.chatWebsite).success(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_SUCCESS")+"!","success")}).error(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view",{url:"/view/:websiteId",templateUrl:"app/chat/website/view/view.html",controller:"ChatWebsiteViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites",{url:"/websites",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.$translate=d,a.forms={formSetting:void 0,formAppearance:void 0,formLabel:void 0,formFunctionality:void 0},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.item={},a.createItem=function(){b.post("api/chat/websites",a.item).success(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_SUCCESS"),"success"),c.path("/chat/websites/list")}).error(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.wizard",{url:"/wizard",templateUrl:"app/chat/website/wizard/wizard.html",controller:"ChatWebsiteWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies",{url:"/companies",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("CompanyListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={companiesByPage:{name:"10",value:10}},a.companiesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Companies={checked:[]},a.check=function(b,c){c?a.Companies.checked=angular.copy(_.pluck(a.displayedCompanies,"id")):a.Companies.checked=[]},a.getCompanies=function(b){return _.map(a.displayedCompanies,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("company"),b.url="/api/contactmanager/companies",h.getPage(b).then(function(c){a.displayedCompanies=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.companiesByPage,a.displayedCompanies.length),d.updateTableConfig(a.conf.companiesByPage,a.displayedCompanies.length)}),c.socket.on("company:save",function(){console.log("save"),a.initList(b)}),c.socket.on("company:remove",function(c){a.Companies.checked=_.without(a.Companies.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/contactmanager/companies/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/contactmanager/companies",{params:{id:a.Companies.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/contactmanager/company/list/create.modal.html",controller:"CompanyListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/companies",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.list",{url:"/list",templateUrl:"app/contactmanager/company/list/list.html",controller:"ContactManagerCompanyListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCompany=function(){b.get("/api/contactmanager/companies/"+e.id).success(function(b){a.company=b}).error(function(a){f.path("/contactmanager/companies/list")})},a.updateCompany=function(){var f=angular.copy(a.company);b.put("/api/contactmanager/companies/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.company=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.view",{url:"/view/:id",templateUrl:"app/contactmanager/company/view/view.html",controller:"ContactManagerCompanyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.companies.view.settings",{url:"/settings",templateUrl:"app/contactmanager/company/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts",{url:"/contacts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListImportModalCtrl",["$scope","$uibModalInstance","indexes","csv","xAlert","socket","$http",function(a,b,c,d,e,f,g){function h(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);var c={Phones:[],Emails:[],customFields:{}};_.forOwn(a.item,function(e,f){switch(f){case"Phones":a.item.Phones.forEach(function(a){""!==d[b][a]&&c.Phones.push({phone:d[b][a]})});break;case"Emails":a.item.Emails.forEach(function(a){""!==d[b][a]&&c.Emails.push({email:d[b][a]})});break;case"customFields":_.forOwn(a.item.customFields,function(a,e){c.customFields[e]=d[b][a]});break;case"tags":c.tags=[],a.item.tags.forEach(function(a){""!==d[b][a]&&c.tags.push(d[b][a])});break;default:c[f]=d[b][e]}}),c.tags=c.tags?c.tags.join(","):void 0,_.forOwn(c.customFields,function(a,b){""===a&&delete c.customFields[b]}),g.post("/api/contactmanager",c).success(function(c){a["import"].success+=i,a["import"].succeeded+=1,h(b+1)}).error(function(c){a["import"].fail+=i,a["import"].failed+=1,h(b+1)})}a.indexes=c,a.importing=!1,a.submitted=!1,a.stopped=!1,a["import"]={success:0,fail:0,succeeded:0,failed:0},a.csvLength=d.length;var i=100/a.csvLength;a.forms={dashboard:void 0},a.item={},a.start=function(){console.log(d),a.importing=!0,a.submitted=!0,h(0)},a.getCustomFields=function(){g.get("/api/contactmanager/customfields").success(function(b){a.customFields=b.rows,f.syncUpdates("custom_field",a.customFields)}).error(function(a){console.error(a),e.show(a.message,"danger")})},a.close=function(){b.close()},a.stop=function(){a.stopped=!0}}]),angular.module("xCallyShuttleApp").controller("ContactManagerContactListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource","FileUploader","Papa","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j,k,l){var m;i.FileSelect.prototype.isEmptyAfterSelection=function(){return!0};var n=a.uploader=new i({queueLimit:1,clearInputAfterAddedToQueue:!0});n.onAfterAddingFile=function(b){console.log("fileadded"),j.parse(b._file,{header:!0,complete:function(b){a.uploader.clearQueue(),a["import"](b.data)},error:function(a){console.log(a)}})},a["import"]=function(b){f.unsyncUpdates("contact_manager");var c=k.open({animation:!0,size:"lg",backdrop:"static",keyboard:!1,templateUrl:"app/contactmanager/contact/list/import.modal.html",controller:"ContactManagerListImportModalCtrl",resolve:{indexes:function(){return _.keys(b[0])},csv:function(){return b}}});c.result.then(function(b){console.log("dismiss and synch"),f.socket.on("contact_manager:save",function(){a.initList(m)}),f.socket.on("contact_manager:remove",function(b){a.contacts.checked=_.without(a.contacts.checked,b.id),a.initList(m)})},function(){l.info("Modal dismissed at: "+new Date)})},a.conf={contactsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.contactsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.contacts={checked:[]},a.check=function(b,c){c?a.contacts.checked=angular.copy(_.pluck(a.displayedContacts,"id")):a.contacts.checked=[]},a.getContacts=function(b){return _.map(a.displayedContacts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("contact_manager"),b.url="/api/contactmanager",m=b,h.getPage(b).then(function(c){console.log(c),a.displayedContacts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.contactsByPage,a.displayedContacts.length),d.updateTableConfig(a.conf.contactsByPage,a.displayedContacts.length)}),f.socket.on("contact_manager:save",function(){a.initList(b)}),f.socket.on("contact_manager:remove",function(c){a.contacts.checked=_.without(a.contacts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/contactmanager/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/contactmanager",{params:{id:a.contacts.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts.list",{url:"/list",templateUrl:"app/contactmanager/contact/list/list.html",controller:"ContactManagerContactListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager",{url:"/contactmanager",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.customfields",{url:"/customfields",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCustomFieldListCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerCustomFieldListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={cutomFieldsByPage:{name:"10",value:10}},a.customFieldsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.customFields={checked:[]},a.check=function(b,c){c?a.customFields.checked=angular.copy(_.pluck(a.displayedCustomFields,"id")):a.customFields.checked=[]},a.getCustomFields=function(b){return _.map(a.displayedCustomFields,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("custom_field"),b.url="/api/contactmanager/customfields",h.getPage(b).then(function(c){a.displayedCustomFields=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.customFieldsByPage,a.displayedCustomFields.length),d.updateTableConfig(a.conf.customFieldsByPage,a.displayedCustomFields.length)}),c.socket.on("custom_field:save",function(){console.log("save"),a.initList(b)}),c.socket.on("custom_field:remove",function(c){a.customFields.checked=_.without(a.customFields.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/contactmanager/customfields/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/contactmanager/customfields/",{params:{id:a.customFields.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/contactmanager/customfield/list/create.modal.html",controller:"ContactManagerCustomFieldListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/customfields/",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.customfields.list",{url:"/list",templateUrl:"app/contactmanager/customfield/list/list.html",controller:"ContactManagerCustomFieldListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCustomFieldViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCustomField=function(){b.get("/api/contactmanager/customfields/"+e.id).success(function(b){a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))}).error(function(a){console.error(a),f.path("/contactmanager/customfields/list")})},a.updateCustomField=function(){"select"===a.customField.type&&(a.customField.values=angular.toJson(a.choices));var f=angular.copy(a.customField);b.put("/api/contactmanager/customfields/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.customField=f})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.customfields.view",{url:"/view/:id",templateUrl:"app/contactmanager/customfield/view/view.html",controller:"ContactManagerCustomFieldViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.customfields.view.settings",{url:"/settings",templateUrl:"app/contactmanager/customfield/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","xAlert","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={servicesByPage:{name:"10",value:10},labels:["name","description"]},a.servicesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.services={checked:[]},a.check=function(b,c){c?a.services.checked=angular.copy(_.pluck(_.filter(a.displayedServices,function(a){return!a.defaultEntry}),"id")):a.services.checked=[]},a.getServices=function(b){return _.map(a.displayedServices,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("service"),b.url="/api/contactmanager/services",h.getPage(b).then(function(c){a.displayedServices=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.servicesByPage,a.displayedServices.length),e.updateTableConfig(a.conf.servicesByPage,a.displayedServices.length)}),c.socket.on("service:save",function(){a.initList(b)}),c.socket.on("service:remove",function(c){console.log("remove"),a.services.checked=_.without(a.services.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/contactmanager/services/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/contactmanager/services",{params:{id:a.services.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/contactmanager/service/list/create.modal.html",controller:"ContactManagerServiceListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/services/",a).then(function(a){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.list",{url:"/list",templateUrl:"app/contactmanager/service/list/list.html",controller:"ContactManagerServiceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services",{url:"/services",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceCustomFieldViewCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","$uibModal","$log","Modal",function(a,b,c,d,e,f,g,h,i,j){var k=function(){return{select:function(c){b.post("/api/contactmanager/services/"+a.service.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/contactmanager/services/"+a.service.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getService=function(){b.get("/api/contactmanager/services/"+e.id).success(function(b){a.service=b}).error(function(a){console.error(a),g.path("/contactmanager/services/list")})},a.updateService=function(){var f=angular.copy(a.service);b.put("/api/contactmanager/services/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.service=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/contactmanager/user_has_services",method:"GET",params:{service:a.service.id}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.pluck(b,"UserId"),k)})}).error(function(a){console.error(a)})},a.getServiceCustomFields=function(){b.get("/api/contactmanager/services/"+e.id+"/customfields").success(function(b){a.customFields=b,f.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),f.socket.on("custom_field:save",function(b){if(b.ServiceId===e.id){var c=_.find(a.customFields,{id:b.id});c||a.customFields.push(b)}})}).error(function(a){console.error(a),g.path("/contactmanager/services/view/"+e.id+"/settings")})},a.create=function(){var a=h.open({animation:!0,templateUrl:"app/contactmanager/service/view/create.modal.html",controller:"ContactManagerServiceCustomFieldViewCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/services/"+e.id+"/customfields/",a).then(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){i.info("Modal dismissed at: "+new Date)})},a.deleteItem=j.confirm["delete"](function(a){b["delete"]("/api/contactmanager/services/customfields/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.getCustomField=function(){b.get("/api/contactmanager/services/customfields/"+e.cfId).success(function(b){a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))}).error(function(a){console.error(a),g.path("/contactmanager/customfields/list")})},a.updateCustomField=function(){"select"===a.customField.type&&(a.customField.values=angular.toJson(a.choices));var f=angular.copy(a.customField);b.put("/api/contactmanager/services/customfields/"+e.cfId,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.customField=f})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.view",{url:"/view/:id",templateUrl:"app/contactmanager/service/view/view.html",controller:"ContactManagerServiceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.services.view.settings",{url:"/settings",templateUrl:"app/contactmanager/service/view/view.settings.html"}).state("main.contactmanager.services.view.agents",{url:"/agents",templateUrl:"app/contactmanager/service/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}}).state("main.contactmanager.services.view.customfields",{url:"/customfields",templateUrl:"app/contactmanager/service/view/view.customFields.html"}).state("main.contactmanager.services.view.customfields.settings",{url:"/settings/:cfId",templateUrl:"app/contactmanager/service/view/view.customFieldSettings.html",controller:"ContactManagerServiceViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","$http","xAlert","socket",function(a,b,c,d){function e(b,c){var d;return!b.queuecallerjoinAt||b.queuecallerleaveAt||b.queuecallercompleteAt||b.queuecallerabandonAt?b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="activeCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="completedCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&b.queuecallerabandonAt&&(d="abandonedCalls"):d="waitCalls",c?d:void(d&&a.queueStats[d]++)}a.queueStats={abandonedCalls:0,completedCalls:0,waitCalls:0,activeCalls:0},a.getQueueStats=function(){b.get("/api/report/queues").then(function(b){a.queueReports=b.data,a.queueReports.forEach(function(a){e(a,!1)}),d.socket.on("report_queue:save",function(b){console.log("report save or update");var c=_.find(a.queueReports,{id:b.id}),d=a.queueReports.indexOf(c);if(c){console.log("found item, is an update");var f=e(c,!0);console.log("old item value is "+f+", decrementing..."),f&&a.queueStats[f]--,_.merge(a.queueReports[d],b)}else console.log("item not found in collection, is a create"),a.queueReports.unshift(b);console.log("checking new item type and increasing..."),e(b,!1)})})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk",{url:"/desk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("DeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedDeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedDeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("desk_account"),b.url="/api/desk/accounts",h.getPage(b).then(function(d){a.displayedDeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedDeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedDeskAccounts.length)}),f.socket.on("desk_account:save",function(){a.initList(b)}),f.socket.on("desk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/desk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/desk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/desk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.list",{url:"/list",templateUrl:"app/desk/list/list.html",controller:"DeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("DeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","desk_com",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("desk_configuration"),g.unsyncUpdates("desk_field")}),a.initView=function(){b.get("/api/desk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/desk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger");
+})},a.getConfigurations=function(){b.get("/api/desk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("desk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/desk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/desk/configurations",a.configuration).success(function(a){e.path("desk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/desk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=j.fields.concat(b)}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/desk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("desk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/desk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/desk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/desk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(b.customField=_.result(c,"custom",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.data.choices?c.data.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.view",{url:"/view/:id",templateUrl:"app/desk/view/view.html",controller:"DeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.desk.view.account",{url:"/account",templateUrl:"app/desk/view/view.account.html"}).state("main.desk.view.configurations",{url:"/configurations",templateUrl:"app/desk/view/view.configurations.html"}).state("main.desk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/desk/view/view.configurationSettings.html",controller:"DeskViewCtrl"}).state("main.desk.view.configuration",{url:"/configuration",templateUrl:"app/desk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("DeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/desk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/desk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.wizard",{url:"/wizard",templateUrl:"app/desk/wizard/wizard.html",controller:"DeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","$log","stResource",function(a,b,c,d,e,f,g,h,i){a.conf={faxAccountsByPage:{name:"10",value:10}},a.faxAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.fax_accounts={checked:[]},a.check=function(b,c){c?a.fax_accounts.checked=angular.copy(_.pluck(a.displayedFaxAccounts,"id")):a.fax_accounts.checked=[]},a.initList=function(b){e.unsyncUpdates("fax_account"),b.url="/api/fax/accounts",i.getPage(b).then(function(c){a.displayedFaxAccounts=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.faxAccountsByPage,a.displayedFaxAccounts.length),g.updateTableConfig(a.conf.faxAccountsByPage,a.displayedFaxAccounts.length)}),e.socket.on("fax_account:save",function(){a.initList(b)}),e.socket.on("fax_account:remove",function(c){a.fax_accounts.checked=_.without(a.fax_accounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/fax/accounts/"+a).success(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_SUCCESS"),"success")}).error(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/accounts",{params:{id:a.fax_accounts.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.getFaxAccounts=function(b){return _.map(a.faxAccountsByPage,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.$on("$destroy",function(){e.unsyncUpdates("fax_account")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.list",{url:"/list",templateUrl:"app/fax/account/list/list.html",controller:"FaxAccountListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.forms={},a.sortableOptions={stop:function(){b.post("api/fax/accounts/"+c.id+"/applications",{applications:_.pluck(a.faxApplications,"id")}).success(function(b){a.faxApplications=b}).error(function(a){console.error(a)})},"ui-floating":!0},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.initApplication=function(){a.forms={},a.application={}},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("api/fax/applications/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.getAppdata=function(b,c){switch(b){case"agent":return a.agents?_.find(a.agents,{id:c}).name:c;case"queue":return a.faxQueues?_.find(a.faxQueues,{id:c}).name:c}return"UNKNOWN"},a.createItem=function(){switch(a.application.appdata=a.application.appdata.id,a.application.app){case"agent":a.application.UserId=parseInt(a.application.appdata,10);break;case"queue":a.application.FaxQueueId=parseInt(a.application.appdata,10)}a.application.FaxAccountId=c.id,b.post("api/fax/applications",a.application).success(function(){e.path("fax/accounts/view/"+c.id+"/routes")}).error(function(){h.show("Something went wrong!","danger")})},a.$watch("application.app",function(c){if(c){var d;switch(c){case"agent":d="api/agents";break;case"queue":d="api/fax/queues"}b.get(d).success(function(b){a.items=b.rows})}},!0),a.initView=function(){b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.log(a)}),b.get("/api/fax/accounts/"+c.id).success(function(b){a.account=b}).error(function(){})},a.getAgents=function(){b.get("api/fax/agents").success(function(b){a.agents=b})},a.getFaxApplications=function(){b.get("/api/fax/applications",{params:{FaxAccountId:c.id}}).success(function(b){a.faxApplications=b,g.socket.on("fax_application:remove",function(b){_.remove(a.faxApplications,{id:b.id})})}),b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/fax/queues").success(function(b){a.faxQueues=b.rows})},a.updateItemFaxAccount=function(){b.put("/api/fax/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_SUCCESS")+".","success")}).error(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.view",{url:"/view/:id",templateUrl:"app/fax/account/view/view.html",controller:"FaxAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.accounts.view.settings",{url:"/settings",templateUrl:"app/fax/account/view/view.settings.html",authenticate:!0}).state("main.fax.accounts.view.routes",{url:"/routes",templateUrl:"app/fax/account/view/view.routes.html",authenticate:!0}).state("main.fax.accounts.view.applications",{url:"/applications",templateUrl:"app/fax/account/view/view.applications.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.ecm=!1,a.item.minrate="9600",a.item.maxrate="33600",b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.error(a)})},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/fax/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_SUCCESS")+".","success"),c.path("/fax/accounts/list")}).error(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.wizard",{url:"/wizard",templateUrl:"app/fax/account/wizard/wizard.html",controller:"FaxAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={faxAutomationsByPage:{name:"10",value:10}},a.faxAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.faxAutomations={checked:[]},a.check=function(b,c){c?a.faxAutomations.checked=angular.copy(_.pluck(a.displayedFaxAutomations,"id")):a.faxAutomations.checked=[]},a.getFaxAutomations=function(b){return _.map(a.displayedFaxAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("fax_business_automation"),b.url="/api/fax/business/automations",e.getPage(b).then(function(c){a.displayedFaxAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.faxAutomationsByPage,a.displayedFaxAutomations.length),d.updateTableConfig(a.conf.faxAutomationsByPage,a.displayedFaxAutomations.length)}),g.socket.on("fax_business_automation:save",function(){a.initList(b)}),g.socket.on("fax_business_automation:remove",function(c){a.faxAutomations.checked=_.without(a.faxAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/fax/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/business/automations",{params:{id:a.faxAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/fax/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.$on("$destroy",function(){g.unsyncUpdates("fax_business_automation")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.list",{url:"/list",templateUrl:"app/fax/automation/list/list.html",controller:"FaxAutomationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationViewCtrl",["$scope","$stateParams","$http","automation","socket","xAlert","$translate","$log",function(a,b,c,d,e,f,g,h){a.initView=function(){a.forms={info:{}},a.automations=d.automations,c.get("/api/fax/business/automations/"+b.id).success(function(c){h.debug(c),a.test=c,a.automation=c,e.syncUpdatesByAttributes("business_condition",{FaxBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAutomation=function(){c.put("/api/fax/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){h.debug(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),h.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){console.log(b),a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.view",{url:"/view/:id",templateUrl:"app/fax/automation/view/view.html",controller:"FaxAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.automations.view.settings",{url:"/settings",templateUrl:"app/fax/automation/view/view.settings.html",authenticate:!0}).state("main.fax.automations.view.routes",{url:"/routes",templateUrl:"app/fax/automation/view/view.routes.html",authenticate:!0}).state("main.fax.automations.view.application",{url:"/application",templateUrl:"app/fax/automation/view/view.application.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationWizardCtrl",["$scope","$http","$location","automation","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(d.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){e.wizard().next()},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/fax/business/automations",a.automations).success(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success"),c.path("/fax/automations/list")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.wizard",{url:"/wizard",templateUrl:"app/fax/automation/wizard/wizard.html",controller:"FaxAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax",{url:"/fax",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxInboxComposeCtrl",["$scope","$http","FileUploader","$location","Auth","xAlert","$cookieStore","$translate",function(a,b,c,d,e,f,g,h){a.forms={},a.form={to:[],sto:[]},b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),a.isNewMessageFromEmpty=!0;var i=a.uploader=new c({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+g.get("token")}});i.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),i.onBeforeUploadItem=function(b){b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html?a.form.html:""})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},i.onCompleteAll=function(){i.clearQueue(),f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")},i.onWhenAddingFileFailed=function(){f.show(h.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.sendFax=function(){return a.form.sto.length?void(i.queue.length?i.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")}).error(function(a){f.show(h.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.cancel=function(){a.form.sto=[],delete a.form.from}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.compose",{url:"/compose",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxCtrl",["$scope","$http","$location","$translate","$timeout","$notification","Auth","socket","$interval",function(a,b,c,d,e,f,g,h,i){a.go=function(a,d,e){e?b.put("/api/fax/rooms/"+d,{status:e}).success(function(){c.path(a)}).error(function(a){console.error(a)}):c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox",{url:"/inbox",templateUrl:"app/fax/inbox/inbox.html",controller:"FaxInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxIncomingCtrl",["$scope","$http","$location","socket","Auth","xAlert",function(a,b,c,d,e,f){a.$location=c,a.getRooms=function(){e.isAdmin()?b.get("api/fax/rooms").success(function(b){a.faxRooms=b,d.syncUpdates("fax_room",a.faxRooms)}).error(function(a){console.error(a),f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")}):b.get("api/fax/rooms/agent/"+e.getCurrentUser().id).success(function(b){a.faxRooms=b,d.socket.on("fax_room:update",function(b){b.UserId===e.getCurrentUser().id&&a.faxRooms.push(b)})}).error(function(a){f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.incoming",{url:"/incoming",templateUrl:"app/fax/inbox/incoming/incoming.html",controller:"FaxInboxIncomingCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxRoomCtrl",["$scope","$http","$stateParams","$location","FileUploader","socket","Auth","xAlert","$translate","$cookieStore",function(a,b,c,d,e,f,g,h,i,j){function k(){a.lastMessage=_.reject(a.faxRoom.FaxMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(console.log(a.faxRoom),a.form.from=a.faxRoom.FaxAccount,a.form.to=[a.lastMessage.From.phone],a.form.sto=[a.lastMessage.From.phone])}var l=a.uploader=new e({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+j.get("token")}});l.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),l.onBeforeUploadItem=function(b){console.log(a.form.from.id,a.form.sto[0],a.isNewMessageFromEmpty,c.id,g.getCurrentUser().id),b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,roomId:c.id,userId:g.getCurrentUser().id,html:a.form.html}),console.log(b)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",b,c,d)},l.onCompleteAll=function(){l.clearQueue(),h.show(i.instant("MESSAGE_WELL_DONE"),"success")},l.onWhenAddingFileFailed=function(){h.show(i.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.initRoomView=function(){a.isNewMessageFromEmpty=!0,a.Auth=g,a.forms={},a.form={to:[],sto:[]},b.get("api/agents").success(function(b){a.agents=b}),b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),c.id&&b.get("/api/fax/rooms/"+c.id).success(function(b){a.faxRoom=b,a.isNewMessageFromEmpty=!1,f.syncUpdates("fax_message",[],function(b,c){"created"===b&&c.FaxRoomId===a.faxRoom.id&&(a.faxRoom.FaxMessages.push(c),k())}),k()}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.sendFax=function(){return a.form.sto.length?void(l.queue.length?l.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:g.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"success"),console.log("Fax Message sent")}).error(function(a){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.assignAgent=function(a){b.put("/api/fax/rooms/"+c.id,{UserId:a}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateStatus=function(d){b.put("/api/fax/rooms/"+c.id,{status:d}).success(function(b){a.faxRoom.status=b.status,h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],delete a.form.from,l.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.room",{url:"/room/:id",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxRoomCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCtrl",["$scope","$rootScope","$http","$translate","socket","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("fax_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.faxQueues={checked:[]},a.check=function(b,c){c?a.faxQueues.checked=angular.copy(_.pluck(a.displayedFaxQueues,"id")):a.faxQueues.checked=[]},a.getFaxQueues=function(b){return _.map(a.displayedFaxQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(c){e.unsyncUpdates("fax_queue"),c.url="/api/fax/queues",h.getPage(c).then(function(d){a.displayedFaxQueues=d.rows,c.pagination.numberOfPages=d.total_pages,b.updateTableConfig(d.queuesByPage,a.displayedFaxQueues.length),b.updateTableConfig(a.conf.queuesByPage,a.displayedFaxQueues.length)}),e.socket.on("fax_queue:save",function(){a.initList(c)}),e.socket.on("fax_queue:remove",function(b){a.faxQueues.checked=_.without(a.faxQueues.checked,b.id),a.initList(c)})},a.deleteItem=f.confirm["delete"](function(a){c["delete"]("/api/fax/queues/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.list",{url:"/list",templateUrl:"app/fax/queue/list/list.html",controller:"FaxQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/fax/queues/"+d.id).success(function(b){a.queue=b}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateFaxQueue=function(){var f=angular.copy(a.queue);b.put("/api/fax/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/fax/user_has_queues",method:"GET",params:{FaxQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindFaxQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.view",{url:"/view/:id",templateUrl:"app/fax/queue/view/view.html",controller:"FaxQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.fax.queues.view.settings",{url:"/settings",templateUrl:"app/fax/queue/view/view.settings.html"}).state("main.fax.queues.view.agents",{url:"/agents",templateUrl:"app/fax/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueWizardCtrl",["$scope","$http","WizardHandler","xAlert","$translate","$location",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/fax/queues",a.item).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success"),f.path("/fax/queues/list")}).error(function(a){d.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.wizard",{url:"/wizard",templateUrl:"app/fax/queue/wizard/wizard.html",controller:"FaxQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxTimelineListCtrl",["$scope","$http","socket","xAlert","$translate",function(a,b,c,d,e){function f(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/fax").success(function(a){a.forEach(f),c.socket.on("event:fax:save",f)}).error(function(a){console.error(a),d.show(e.instant("MESSAGE_FAX_ACCOUNT_GET_FAILURE"),"danger")})},a.$on("$destroy",function(){c.socket.removeAllListeners("event:fax:save")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline.list",{url:"/list",templateUrl:"app/fax/timeline/list/list.html",controller:"FaxTimelineListCtrl",resolve:{
+deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk",{url:"/freshdesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FreshdeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedFreshdeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedFreshdeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("freshdesk_account"),b.url="/api/freshdesk/accounts",h.getPage(b).then(function(d){a.displayedFreshdeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedFreshdeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedFreshdeskAccounts.length)}),f.socket.on("freshdesk_account:save",function(){a.initList(b)}),f.socket.on("freshdesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/freshdesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/freshdesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/freshdesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.list",{url:"/list",templateUrl:"app/freshdesk/list/list.html",controller:"FreshdeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("freshdesk_configuration"),h.unsyncUpdates("freshdesk_field")}),a.initView=function(){b.get("/api/freshdesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/freshdesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/freshdesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("freshdesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/freshdesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/freshdesk/configurations",a.configuration).success(function(a){e.path("freshdesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/freshdesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=[],b=f("freshdesk")(b),_.forEach(b,function(b){a.accountFields.push(b.ticket_field)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/freshdesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("freshdesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/freshdesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/freshdesk/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"name",b.idField);c&&(b.customField=!_.result(c,"default",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.choices.length>0?c.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.view",{url:"/view/:id",templateUrl:"app/freshdesk/view/view.html",controller:"FreshdeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.freshdesk.view.account",{url:"/account",templateUrl:"app/freshdesk/view/view.account.html"}).state("main.freshdesk.view.configurations",{url:"/configurations",templateUrl:"app/freshdesk/view/view.configurations.html"}).state("main.freshdesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/freshdesk/view/view.configurationSettings.html",controller:"FreshdeskViewCtrl"}).state("main.freshdesk.view.configuration",{url:"/configuration",templateUrl:"app/freshdesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("FreshdeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/freshdesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/freshdesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.wizard",{url:"/wizard",templateUrl:"app/freshdesk/wizard/wizard.html",controller:"FreshdeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={intervalsByPage:{name:"10",value:10},labels:["name"]},a.intervalsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.intervals={checked:[]},a.check=function(b,c){c?a.intervals.checked=angular.copy(_.pluck(a.displayedIntervals,"id")):a.intervals.checked=[]},a.getIntervals=function(b){return _.map(a.displayedIntervals,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("interval"),b.url="/api/intervals",h.getPage(b).then(function(c){a.displayedIntervals=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.intervalsByPage,a.displayedIntervals.length),e.updateTableConfig(a.conf.intervalsByPage,a.displayedIntervals.length)}),c.socket.on("interval:save",function(){a.initList(b)}),c.socket.on("interval:remove",function(c){a.intervals.checked=_.without(a.intervals.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(d.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/intervals",{params:{id:a.intervals.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.list",{url:"/list",templateUrl:"app/interval/list/list.html",controller:"IntervalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){a.$translate=d,a.$interval=j.interval,a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(){a.subinterval={IntervalId:e.id},a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0}},a.next=function(){b.post("/api/intervals/validate/",a.subinterval).success(function(a){console.log(a),a.length?c.show(d.instant("MESSAGE_EXIST_SUBINTERVAL"),"danger"):h.wizard().next()}).error(function(a){c.show(d.instant(a.message),"danger")})},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from,a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to)):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from,a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to)):e="*",b+","+c+","+d+","+e},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.subIntervals=b.SubIntervals,f.unsyncUpdates("interval"),f.socket.on("interval:remove",function(b){b.id&&_.remove(a.subIntervals,function(a){return b.id===a.id})}),f.socket.on("interval:update",function(b){var c=_.find(a.subIntervals,{id:b.id});c.interval=b.interval}),f.socket.on("interval:save",function(b){if(b.IntervalId===e.id){var c=_.find(a.subIntervals,{id:b.id});c||a.subIntervals.push(b)}})}).error(function(a){console.error(a),g.path("/intervals/list")})},a.updateInterval=function(){var f=angular.copy(a.interval);b.put("/api/intervals/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.interval=f})},a.getSubInterval=function(){b.get("/api/intervals/"+e.appId).success(function(b){a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)},a.subinterval=b;var c,d=b.interval?b.interval.split(","):["*","*","*","*"];d.forEach(function(b,d){switch(d){case 0:"*"!==b?(c=b.split("-"),a.splittedInterval.t_from=moment(c[0],"HH:mm"),a.splittedInterval.t_to=moment(c[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==b?(c=b.split("-"),a.splittedInterval.wd_from=_.capitalize(c[0]),a.splittedInterval.wd_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==b?(c=b.split("-"),a.splittedInterval.md_from=c[0],a.splittedInterval.md_to=c[1]?c[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==b?(c=b.split("-"),a.splittedInterval.m_from=_.capitalize(c[0]),a.splittedInterval.m_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})}).error(function(a){console.error(a),g.path("/intervals/view/"+e.id+"/subintervals")})},a.createItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.post("/api/intervals/",a.subinterval).success(function(){g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.put("/api/intervals/"+e.appId,a.subinterval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.view",{url:"/view/:id",templateUrl:"app/interval/view/view.html",controller:"IntervalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.intervals.view.settings",{url:"/settings",templateUrl:"app/interval/view/view.settings.html"}).state("main.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/interval/view/view.subintervals.html",cache:!1}).state("main.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/interval/view/view.subinterval.html",authenticate:!0}).state("main.intervals.view.subintervals.settings",{url:"/settings/:appId",templateUrl:"app/interval/view/view.subintervalSettings.html",authenticate:!0,controller:"IntervalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={interval:void 0},a.item={},a.next=function(){b.post("/api/intervals/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_INTERVAL"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/intervals/",a.item).success(function(a){d.path("/intervals/view/"+a.id+"/subintervals")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.wizard",{url:"/wizard",templateUrl:"app/interval/wizard/wizard.html",controller:"IntervalWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty",{url:"/jscripty",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.message="Hello",a.conf={projectsByPage:{name:"10",value:10}},a.projectsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Projects={checked:[]},a.check=function(b,c){c?a.Projects.checked=angular.copy(_.pluck(a.displayedProjects,"id")):a.Projects.checked=[]},a.getProjects=function(b){return _.map(a.displayedProjects,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("jscripty_project"),b.url="/api/jscripty/projects",h.getPage(b).then(function(c){a.displayedProjects=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.projectsByPage,a.displayedProjects.length),d.updateTableConfig(a.conf.projectsByPage,a.displayedProjects.length)}),c.socket.on("jscripty_project:save",function(){a.initList(b)}),c.socket.on("jscripty_project:remove",function(c){a.Projects.checked=_.without(a.Projects.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/jscripty/projects/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/jscripty/projects",{params:{id:a.Projects.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.list",{url:"/list",templateUrl:"app/jscripty/project/list/list.html",controller:"JscriptyProjectListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectViewCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i,j){a.jscriptyProject={},a.getProject=function(){b.get("/api/jscripty/projects/"+d.id).success(function(b){a.jscriptyProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=f.getToken();var a=new EditorUi(new Editor);a.openString(b.draft,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),e.syncUpdates("jscripty_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.view",{url:"/view/:id",templateUrl:"app/jscripty/project/view/view.html",controller:"JscriptyProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/jscripty/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/jscripty/js/Editor.js","assets/plugins/jscripty/js/Graph.js","assets/plugins/jscripty/js/EditorUi.js","assets/plugins/jscripty/js/Actions.js","assets/plugins/jscripty/js/Menus.js","assets/plugins/jscripty/js/Sidebar.js","assets/plugins/jscripty/js/Toolbar.js","assets/plugins/jscripty/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={project:void 0},a.item={},a.next=function(){b.post("/api/jscripty/projects/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_PROJECT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/jscripty/projects/",a.item).success(function(a){console.log(a),d.path("/jscripty/projects/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.wizard",{url:"/wizard",templateUrl:"app/jscripty/project/wizard/wizard.html",controller:"JscriptyProjectWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAccountsByPage:{name:"10",value:10}},a.mailAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailAccounts={checked:[]},a.check=function(b,c){c?a.mailAccounts.checked=angular.copy(_.pluck(a.displayedMailAccounts,"id")):a.mailAccounts.checked=[]},a.getMailAccounts=function(b){return _.map(a.displayedMailAccounts,function(a){var c={};return b.forEach(function(b){_.isObject(b)?_.forIn(b,function(b,d){c[b]=a[d][b]}):c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("mail_server_in"),c.unsyncUpdates("mail_account"),b.url="/api/mail/accounts",g.getPage(b).then(function(c){a.displayedMailAccounts=c.rows,b.pagination.numberOfPages=c.total_pages}),c.socket.on("mail_server_in:save",function(){a.initList(b)}),c.socket.on("mail_account:save",function(){a.initList(b)}),c.socket.on("mail_account:remove",function(c){a.mailAccounts.checked=_.without(a.mailAccounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/accounts/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/accounts",{params:{id:a.mailAccounts.checked}}).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant(a.message),"danger")})}),a.restart=function(a){c.socket.emit("IMAP:"+a+":RESTART",{msg:"IMAP:"+a+":RESTART"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.list",{url:"/list",templateUrl:"app/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailAccount",["$resource",function(a){return a("/api/mail/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerIn",["$resource",function(a){return a("/api/mail/servers/in/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerOut",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"},{update:{method:"PUT"},test:{method:"GET"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.mailApplications,"id")),b.post("api/mail/accounts/"+d.accountId+"/applications",{applications:_.pluck(a.mailApplications,"id")}).success(function(b){angular.copy(b,a.mailApplications)}).error(function(a){console.error(a)})}},b.get("/api/mail/applications",{params:{MailAccountId:d.accountId}}).success(function(b){a.mailApplications=b,e.socket.on("mail_application:remove",function(b){_.remove(a.mailApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/mail/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){
+f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.accountId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;case"list":f.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",f).success(function(){e.path("/mail/accounts/view/"+c.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","MailAccount","MailMessage","MailServerIn","MailServerOut",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){a.account=g.get({id:c.accountId})},a.updateItemMailAccount=function(){g.update({id:c.accountId},{name:a.account.name,description:a.account.description,address:a.account.address}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerIn=function(){i.update({id:a.account.MailServerIn.id},a.account.MailServerIn).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerOut=function(){j.update({id:a.account.MailServerOut.id},a.account.MailServerOut).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.test=function(){j.test({id:a.account.MailServerOut.id,controller:"test"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view",{url:"/view/:accountId",templateUrl:"app/mail/account/view/view.html",controller:"MailAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.accounts.view.settings",{url:"/settings",templateUrl:"app/mail/account/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.info={},a["in"]={"delete":!1,ssl:!0,protocol:"IMAP",port:993,mailbox:"INBOX",filter:"UNSEEN"},a.out={ssl:!0,port:465},a.$translate=d},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){var e={name:a.info.name,address:a.info.address,description:a.info.description,incoming:a["in"],outgoing:a.out};b.post("api/mail/accounts",e).success(function(){c.path("/mail/accounts/list")}).error(function(a){console.log(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAutomationsByPage:{name:"10",value:10}},a.mailAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.mailAutomations={checked:[]},a.check=function(b,c){c?a.mailAutomations.checked=angular.copy(_.pluck(a.displayedMailAutomations,"id")):a.mailAutomations.checked=[]},a.getMailAutomations=function(b){return _.map(a.displayedMailAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("mail_business_automation"),b.url="/api/mail/business/automations",e.getPage(b).then(function(c){a.displayedMailAutomations=c.mailAutomations,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mailAutomationsByPage,a.displayedMailAutomations.length),d.updateTableConfig(a.conf.mailAutomationsByPage,a.displayedMailAutomations.length)}),g.socket.on("mail_business_automation:save",function(){a.initList(b)}),g.socket.on("mail_business_automation:remove",function(c){a.mailAutomations.checked=_.without(a.mailAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/business/automations",{params:{id:a.mailAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/mail/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.list",{url:"/list",templateUrl:"app/mail/automation/list/list.html",controller:"MailAutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationViewCtrl",["$scope","$stateParams","$http","$translate","automation","socket","xAlert",function(a,b,c,d,e,f,g){a.initView=function(){a.forms={info:{}},a.automations=e.automations,c.get("/api/mail/business/automations/"+b.id).success(function(c){a.test=c,a.automation=c,f.syncUpdatesByAttributes("business_condition",{MailBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){})},a.updateAutomation=function(){c.put("/api/mail/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){g.show(d.instant("MESSAGE_WELL_DONE"),"success"),console.log(a)}).error(function(a){console.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a)}).error(function(a){console.error(a)})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a)})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).error(function(a){console.error(a)})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.view",{url:"/view/:id",templateUrl:"app/mail/automation/view/view.html",controller:"MailAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.automations.view.settings",{url:"/settings",templateUrl:"app/mail/automation/view/view.settings.html"}).state("main.mail.automations.view.routes",{url:"/routes",templateUrl:"app/mail/automation/view/view.routes.html"}).state("main.mail.automations.view.application",{url:"/application",templateUrl:"app/mail/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationWizardCtrl",["$scope","$http","$location","$translate","automation","WizardHandler","xAlert",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(e.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){return a.automations.actions.length?a.automations.or.length||a.automations.and.length?void f.wizard().next():(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_CONDITION"),"danger"),!1):(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_ACTION"),"danger"),!1)},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/mail/business/automations",a.automations).success(function(){c.path("/mail/automations/list")}).error(function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG","danger"))})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.wizard",{url:"/wizard",templateUrl:"app/mail/automation/wizard/wizard.html",controller:"MailAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailComposeCtrl",["$scope","$http","$location","$cookieStore","$translate","xAlert","FileUploader","Auth",function(a,b,c,d,e,f,g,h){var i=a.uploader=new g({url:"api/mail/messages",withCredentials:!0,headers:{Authorization:"Bearer "+d.get("token")},queueLimit:1});i.onBeforeUploadItem=function(b){b.formData.push({mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,attachment:!0,UserId:h.getCurrentUser().id})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success")},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")},i.onCompleteAll=function(){console.log("onCompleteAll"),c.path("/mail/inbox/incoming")},a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),a.sendMail=function(){if(i.queue.length)console.log("file"),i.uploadAll();else{console.log("no file");var d={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,UserId:h.getCurrentUser().id};b.post("/api/mail/messages",d).success(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),c.path("/mail/inbox/incoming")}).error(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")})}},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.from,delete a.form.text,delete a.form.html}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.compose",{url:"/compose",templateUrl:"app/mail/inbox/room/room.html",controller:"MailRoomCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailInboxCtrl",["$scope","$http","$location",function(a,b,c){a.go=function(a){c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox",{url:"/inbox",template:"<div ui-view></div>",controller:"MailInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailIncomingCtrl",["$scope","$http","$location","$translate","$timeout","socket","xAlert","Auth","stResource","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$location=c,a.conf={mailRoomsByPage:{name:"10",value:10},labels:["fullname","name","email"],test:"OPEN"},a.mailRoomsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailRooms={checked:[]},a.check=function(b,c){c?a.mailRooms.checked=angular.copy(_.pluck(a.displayedMailRooms,"id")):a.mailRooms.checked=[]},a.initList=function(b){f.unsyncUpdates("mail_room"),b.search.predicateObject||(b.search.predicateObject={}),b.sort.predicate="createdAt",b.sort.reverse=!0,h.isAdmin()?(f.socket.on("mail_room:save",function(){e(function(){g.show(d.instant("MESSAGE_MAIL_NEW_INCOMING_MAIL"),"success"),a.initList(b)},2e3)}),f.socket.on("mail_room:remove",function(c){a.mailRooms.checked=_.without(a.mailRooms.mailRooms,c.id),a.initList(b)})):(f.socket.on("mail_room:save",function(c){c.UserId===h.getCurrentUser().id&&a.initList(b)}),f.socket.on("mail_room:remove",function(c){c.UserId===h.getCurrentUser().id&&(a.mailRooms.checked=_.without(a.mailRooms.checked,c.id),a.initList(b))})),b.url="/api/mail/rooms/",i.getPage(b).then(function(c){console.log("result",c),a.displayedMailRooms=c.mailRooms,b.pagination.numberOfPages=c.total_pages})},a.deleteItems=j.confirm["delete"](function(){b["delete"]("/api/mail/rooms",{params:{id:a.mailRooms.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){f.unsyncUpdates("mail_room")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.incoming",{url:"/incoming",templateUrl:"app/mail/inbox/incoming/incoming.html",controller:"MailIncomingCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailRoomCtrl",["$scope","$http","$stateParams","$timeout","$cookieStore","$location","$translate","$log","$uibModal","xAlert","Auth","socket","FileUploader","MailMessage","MailAttachment",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p=a.uploader=new m({url:"api/mail/attachments",autoUpload:!0,withCredentials:!0,headers:{Authorization:"Bearer "+e.get("token")}}),q={MailAttachments:[]};p.removeFromQueue=function(a){var b=this;o["delete"]({id:a.basename}).$promise.then(function(){var c=b.getIndexOfItem(a),d=b.queue[c];d.isUploading&&d.cancel(),b.queue.splice(c,1),d._destroy(),b.progress=b._getTotalProgress(),q.MailAttachments=_.reject(q.MailAttachments,{basename:a.basename})})["catch"](function(){j.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},p.onErrorItem=function(){j.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},p.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d);var e={size:b.size,path:b.path,name:b.name,basename:b.basename,type:b.type};a=_.merge(a,e),q.MailAttachments.push(e)},a.retry=function(a){var b=i.open({animation:!0,templateUrl:"app/mail/inbox/room/room.retry.modal.html",controller:function(a,c){a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(a){b.close(a)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]},a.ok=function(){c.close()},a.cancel=function(){c.dismiss("cancel")}}});b.result.then(function(){n.update({id:a,status:"SENDING"},function(a){console.log(a)})},function(){h.info("Modal dismissed at: "+new Date)})},a.initRoomView=function(){a.Auth=k,a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),b.get("/api/mail/rooms/"+c.id).success(function(c){console.log("mailRoom",c),a.mailRoom=c,l.syncUpdatesByAttributes("mail_message",{MailRoomId:a.mailRoom.id},a.mailRoom.MailMessages);var d=_.last(a.mailRoom.MailMessages);d&&a.mailRoom.MailAccount&&(a.form.from={name:a.mailRoom.MailAccount.name,address:a.mailRoom.MailAccount.address,id:a.mailRoom.MailAccount.id},a.form.to=_.remove(_.union(d.to?d.from.split(";"):[],d.cc?d.cc.split(";"):[],d.bcc?d.bcc.split(";"):[]),function(b){return b!==a.mailRoom.MailAccount.address}),a.form.cc=_.remove(_.union(d.to?d.from.split(";"):[],d.cc?d.to.split(";"):[],d.bcc?d.bcc.split(";"):[]),function(b){return b!==a.mailRoom.MailAccount.address}),a.form.bcc=_.remove(_.union(d.to?d.from.split(";"):[],d.cc?d.cc.split(";"):[],d.bcc?d.to.split(";"):[]),function(b){return b!==a.mailRoom.MailAccount.address})),"NEW"===a.mailRoom.status&&b.put("/api/mail/rooms/"+a.mailRoom.id,{status:"OPEN"})}).error(function(){})},a.sendMail=function(){var b;a.mailRoom&&(b=angular.copy(a.mailRoom.MailMessages),b=_.reject(b,function(a){return"RECEIVED"!==a.status}),b=_.sortBy(b,"id")),q=_.merge(q,{mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";")?a.form.sto.join(";"):null,cc:a.form.scc.join(";")?a.form.scc.join(";"):null,subject:a.form.subject||a.mailRoom.subject||null,html:a.form.html||null,text:a.form.text||null,MailRoomId:a.mailRoom?a.mailRoom.id:null}),b&&_.last(b)&&(q.inReplyTo=_.last(b).messageId),n.save(q,function(){j.show(g.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success")},function(){j.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.text},a.updateStatus=function(d){b.put("/api/mail/rooms/"+c.id,{status:d}).success(function(b){a.mailRoom.status=b.status,j.show(g.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success"),f.path("/mail/inbox/incoming")}).error(function(){j.show(g.instant("MESSAGE_STATUS_UPDATE_FAILURE"),"danger")})},a.assignAgents=function(){var a=i.open({animation:!0,templateUrl:"app/mail/inbox/room/room.agents.modal.html",controller:function(b,d,e,f){b.initModal=function(){e.get().$promise.then(function(a){console.log(a),b.agents=a.rows})["catch"](function(a){console.error(a)}),f.query({id:c.id,controller:"agents"}).$promise.then(function(a){console.log(a),b.item={agents:_.pluck(a,"id")}})["catch"](function(a){console.error(a)}),b.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(b){a.close(b)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(b){a.dismiss(b)}}]}},b.ok=function(){return f.update({id:c.id,controller:"agents",agents:b.item.agents}).$promise.then(function(){d.close()})["catch"](function(a){console.error(a)})},b.cancel=function(){d.dismiss("cancel")}}});a.result.then(function(){},function(){h.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").factory("MailRoom",["$resource",function(a){return a("/api/mail/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.room",{url:"/room/:id",templateUrl:"app/mail/inbox/room/room.html",controller:"MailRoomCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail",{url:"/mail",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("MailAttachment",["$resource",function(a){return a("/api/mail/attachments/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("MailMessage",["$resource",function(a){return a("/api/mail/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailQueues={checked:[]},a.check=function(b,c){c?a.mailQueues.checked=angular.copy(_.pluck(a.displayedMailQueues,"id")):a.mailQueues.checked=[]},a.getMailQueues=function(b){return _.map(a.displayedMailQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_queue"),b.url="/api/mail/queues/",g.getPage(b).then(function(c){a.displayedMailQueues=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.queuesByPage,a.displayedMailQueues.length),d.updateTableConfig(a.conf.queuesByPage,a.displayedMailQueues.length)}),e.socket.on("mail_queue:save",function(){a.initList(b)}),e.socket.on("mail_queue:remove",function(c){a.mailQueues.checked=_.without(a.mailQueues.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/queues/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/queues/",{params:{id:a.mailQueues.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.list",{url:"/list",templateUrl:"app/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailQueue",["$resource",function(a){return a("/api/mail/queues/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/mail/queues/"+d.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateMailQueue=function(){var f=angular.copy(a.queue);b.put("/api/mail/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){e.show(b.message,"success"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b.get("/api/mail/user_has_queues",{params:{MailQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.view",{url:"/view/:id",templateUrl:"app/mail/queue/view/view.html",controller:"MailQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.queues.view.settings",{url:"/settings",templateUrl:"app/mail/queue/view/view.settings.html"}).state("main.mail.queues.view.agents",{url:"/agents",templateUrl:"app/mail/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert",function(a,b,c,d,e){a.forms={},a.item={},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/mail/queues",a.item).success(function(){c.path("/mail/queues/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.wizard",{url:"/wizard",templateUrl:"app/mail/queue/wizard/wizard.html",controller:"MailQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$http","socket","MailQueue","Agent",function(a,b,c,d,e){a.gridOptions={enableSorting:!1,enableFiltering:!0,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"agentName",displayName:"Agent",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.agentName">{{row.entity.fullname}} [{{row.entity.agentName}}]</span>'},{name:"online",cellClass:"text-center",cellTemplate:'<span class="badge badge-empty" data-ng-if="row.entity.online != null" data-ng-class="row.entity.online ? \'badge-success\' : \'badge-danger\'"></span>'},{name:"lastLoginAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.agentName" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("mail_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("mail_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_mail_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_mail_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime.view.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0}).state("main.mail.realtime.view.agents.queues",{url:"/queues",controller:"MailRealtimeViewAgentCtrl",templateUrl:"app/mail/realtime/view/agent/agent.queues.html"}).state("main.mail.realtime.view.agents.timeline",{url:"/attempts",controller:"MailRealtimeViewAgentCtrl",templateUrl:"app/mail/realtime/view/agent/agent.timeline.html"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update");
+}),a.initMails=function(){b.get("/api/report/mail/sessions").success(function(b){a.sessions=b,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.unshift(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.mail.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.mail.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime.view",{url:"/view",templateUrl:"app/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"}).state("main.mail.realtime.view.sessions",{url:"/sessions",controller:"MailRealtimeViewSessionCtrl",templateUrl:"app/mail/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("MailStatisticsCtrl",["$scope","$http","$translate","socket",function(a,b,c,d){a.message="Hello",a.$translate=c,b.get("api/mail/rooms").success(function(b){a.mailRooms=b,d.syncUpdates("mail_room",a.mailRooms)}),b.get("api/mail/messages").success(function(b){a.mailMessages=b,d.syncUpdates("mail_message",a.mailMessages)})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.statistics",{url:"/statistics",templateUrl:"app/mail/statistics/statistics.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.statistics.summary",{url:"/summary",templateUrl:"app/mail/statistics/statistics.summary.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/mail").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline.list",{url:"/list",templateUrl:"app/mail/timeline/list/list.html",controller:"MailTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChooseContactModalCtrl",["$scope","$uibModalInstance","eventId","$http","xAlert","$translate",function(a,b,c,d,e,f){a.open=function(a){b.close(a)},a.getContacts=function(){d.get("/api/contactmanager/checkevent/"+c).success(function(b){a.contacts=b}).error(function(a){e.show(f.instant(a.message)+"!","danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$http","$rootScope","$cookies","$translate","$interval","socket","Auth","xAlert","$uibModal","$log","$state",function(a,b,c,d,e,f,g,h,i,j,k,l){a.awesomeThings=[],a.isLoggedIn=h.isLoggedIn,a.isAdmin=h.isAdmin,a.getCurrentUser=h.getCurrentUser,a.workspaces=[],a.mainTab={active:!0},a.closeTab=function(b){a.workspaces.splice(b,1)},a.createContact=function(c,d){d.tags=d.tags?d.tags.join(","):void 0,_.forOwn(d.customFields,function(a,b){""===a&&delete d.customFields[b]}),b.post("/api/contactmanager",d).success(function(b){a.workspaces.splice(c,1),a.openContactTab({fullname:b.fullname,id:b.id}),i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(a.message,"danger")})};var m=function(b){var c=j.open({animation:!0,templateUrl:"app/main/chooseContact.modal.html",controller:"ChooseContactModalCtrl",resolve:{eventId:function(){return b.id}}});c.result.then(function(c){c?a.openContactTab(c):a.newContact(b)},function(){k.info("Modal dismissed at: "+new Date)})};a.updateContact=function(a,c){c.tags=c.tags?c.tags.join(","):void 0,c.CompanyId||(c.CompanyId=null),b.put("/api/contactmanager/"+c.id,c).success(function(){i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(e.instant(a.message)+"!","danger")})},g.socket.on("report_integration:contactmanager",function(a){console.log("choosecontact"),m(a)}),a.openContactTab=function(b){var c=_.find(a.workspaces,{contactID:b.id});c?c.active=!0:a.workspaces.push({name:b.fullname,type:"contact",contactID:b.id,active:!0})},a.openJscriptyTab=function(b){a.workspaces.push({name:b.name,type:"jscripty",active:!0,data:b})},a.newContact=function(b){a.workspaces.push({name:"New Contact",type:"newContact",active:!0,data:b||null})},a.$on("$viewContentLoaded",function(){Metronic.init()}),c.language=e.use(),a.changeLanguage=function(a){e.use(a).then(function(a){c.language=a,("main.jscripty.projects.view"===l.current.name||"main.square.projects.view"===l.current.name)&&l.go(l.current,{},{reload:!0})})["catch"](function(a){console.error(a)})},a.$on("$destroy",function(){})}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("queryBuilder",["$compile","xAlert","$http",function(a,b,c){return{restrict:"E",scope:{group:"=",fields:"=",operators:"=",properties:"="},templateUrl:"app/main/template.queryBuilderView.html",compile:function(d,e){var f,g;return f=d.contents().remove(),function(d,e,h){d.booleans=[{name:"AND"},{name:"OR"}],d.addCondition=function(a){"CONDITION"==a?d.group.rules.push({operator:"=",field:"",data:""}):d.group.rules.push({field:"",data:""})},d.removeCondition=function(a){d.group.rules.splice(a,1)},d.addGroup=function(a){d.group.rules.push({group:{"boolean":"AND",rules:[],type:a,main:!1}})},d.choices=[],d.removeGroup=function(){d.$parent.group.rules.splice(d.$parent.$index,1)},d.initChoices=function(a,b,c,e,f,g,h){a[g]&&d.getResults(b,c,e,f)},d.clearData=function(a,b){for(var c in b)a[b[c]]&&delete a[b[c]]},d.getResults=function(a,e,f,g,h){if(a){var i="",j={};i=a.parseUrl?a.parseUrl.replace("%s",e):a.url,a.query&&h&&(j[a.query.field]=h),c.get(i,{params:j}).success(function(a){var b=[];a.rows&&(a=a.rows),a.forEach(function(a){b.push({name:a.name,value:a.id})}),d.choices[f]||(d.choices[f]=[]),d.choices[f][g]=b}).error(function(a){b.show(a.message,"danger")})}},g||(g=a(f)),e.append(g(d,function(a){return a}))}}}}]).directive("newContact",["$compile","xAlert","$http","socket","$translate","$timeout",function(a,b,c,d,e,f){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template.newContactTab.html",compile:function(a,g){return function(a,g,h){a.forms={general:{}},a.item={Phones:[],Emails:[],customFields:{}},a.checkboxes={},a.init=function(){a.workspace.data&&(a.item.fullname=a.workspace.data.calleridname?a.workspace.data.calleridname:a.workspace.data.messageId?a.workspace.data.messageId:a.workspace.data.uniqueid?a.workspace.data.uniqueid:"",a.workspace.data.calleridnum&&a.item.Phones.push({phone:a.workspace.data.calleridnum}),a.workspace.data.from&&a.item.Emails.push({email:a.workspace.data.from})),a.getTags(),a.getCompanies(),a.getServices()},a.getServices=function(){c.get("/api/contactmanager/services/").success(function(b){a.services=b.rows,a.item.ServiceId=1,a.getCustomFields(1)}).error(function(a){b.show(e.instant(a.message)+"!","danger")})},a.getCustomFields=function(e){c.get("/api/contactmanager/services/"+e+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),d.socket.on("custom_field:save",function(b){if(b.ServiceId===$stateParams.id){var c=_.find($scope.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.pluck(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.addField=function(b){a.item[b].push({})},a.removeField=function(b,c){a.item[b].splice(c,1)},f(function(){a.init()})}}}}]).directive("contact",["$compile","xAlert","$http","socket","$timeout",function(a,b,c,d,e){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template.contactTab.html",compile:function(a,f){return function(a,f,g){a.moment=moment,a.forms={general:{}},a.detail={tab:"main"},a.log={journal:{show:"Phones",type:"Inbounds",detail:"general"},history:{show:"Phones",type:"HistoryInbounds",detail:"general"}},a.columns={Phones:{general:{header:["APPLICATION_SOURCE","APPLICATION_DESTINATION","APPLICATION_DATE"],indexes:["source","destination","createdAt"]},QueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},ReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","agentcalledAt"]},HistoryQueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},HistoryReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","createdAt"]}},Emails:{general:{header:["APPLICATION_FROM","APPLICATION_TO","APPLICATION_DATE"],indexes:["from","to","createdAt"]}}},a.rows={journal:[],history:[]},a.itemsByPage=15,a.rowCollection=[],a._=_,a.getRows=function(b){a.rows[b]=[],_.forEach(a.contact[a.log[b].show],function(c){console.log(c),"general"===a.log[b].detail?a.rows[b]=a.rows[b].concat(c[a.log[b].type]):_.forEach(c[a.log[b].type],function(c){a.rows[b]=a.rows[b].concat(c[a.log[b].detail])})}),console.log(a.rows[b])},a.addField=function(b){a.contact[b].push({})},a.removeField=function(b,c){a.contact[b].splice(c,1)},a.getContact=function(){console.log("get contact in tab"),c.get("/api/contactmanager/"+a.workspace.contactID).success(function(b){b.tags=b.tags?b.tags.split(","):[],a.contact=b,a.getRows("journal"),a.getRows("history"),a.getCustomFields(b.ServiceId),a.contact.customFields={},a.contact.CustomFields.forEach(function(b){a.contact.customFields[b.id]=b.ContactHasCustomField.value})}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.pluck(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(e){c.get("/api/contactmanager/services/"+e+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),d.socket.on("custom_field:save",function(b){if(b.ServiceId===$stateParams.id){var c=_.find($scope.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})}).error(function(a){console.error(a),b.show(a.message,"danger")})},e(function(){a.getTags(),a.getCompanies(),a.getContact()})}}}}]).directive("jscripty",["$compile","xAlert","$http","socket",function(a,b,c,d){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template.jscriptyTab.html",compile:function(a,b){return function(a,b,d){a.graph={},a.steps=[],a.currentStepNumber=0,a.workspace.data&&c.get("/api/jscripty/projects/"+a.workspace.data.id+"/project").success(function(b){if(b){var c=b.mxgraphmodel.root;if(c){if(a.graph.root=c,a.graph.vertices=h(c),a.graph.mxcell=[],_.isArray(c.mxcell)&&_.forIn(c.mxcell,function(b,c){a.graph.mxcell[c]=b.$}),console.log("graph",a.graph),c.start){var d=Object.create(a.graph.vertices[c.start.$.id]);d.outgoingEdges=e(d),a.steps[a.currentStepNumber]=d}}else console.log("No root in project!")}else console.log("No project published!")}),a.previousBlock=function(){a.currentStepNumber=a.currentStepNumber-1},a.setCurrentStep=function(b){var c=a.steps[a.currentStepNumber];c.previousAnswer&&c.previousAnswer.target!==c.answer.target?a.nextBlock():(c.previousAnswer=c.answer,a.currentStepNumber=a.steps.indexOf(b))},a.nextBlock=function(b){var c=a.steps[a.currentStepNumber];if(!c.previousAnswer||"start"!=c.tag&&"input"!=c.tag)if(c.previousAnswer&&c.previousAnswer.target===c.answer.target)a.currentStepNumber++;else{var d=f(c),g=Object.create(a.graph.vertices[d]);g.outgoingEdges=e(g),console.log(g),a.currentStepNumber++,a.steps[a.currentStepNumber]=g,console.log(a.steps)}else c.previousAnswer=c.answer,a.currentStepNumber++};var e=function(b){var c=_.filter(a.graph.mxcell,{source:b.id}),d=[];return _.forEach(c,function(a,b){if(a.value){var c=a.value.split(",");_.forEach(c,function(b,c){d.push({id:a.id,target:a.target,value:b})})}else d.push({id:a.id,target:a.target})}),d},f=function(a){return console.log(a.tag),"question"==a.tag?g(a):("start"==a.tag&&(a.previousAnswer="defaultAnswer",a.answer="defaultAnswer"),"input"==a.tag&&(a.previousAnswer=a.answer),a.outgoingEdges[0].target)},g=function(b){var c=_.result(_.find(b.outgoingEdges,function(c){b.previousAnswer&&b.previousAnswer.target!==b.answer.target&&a.steps.splice(a.currentStepNumber+1,a.steps.length-a.currentStepNumber-1);var d=c.value.split(","),e=[];_.forEach(d,function(a,b){e[b]={},e[b].id=c.id,e[b].value=a});var f=!1;return _.forIn(e,function(a,c){a.value===b.answer.value&&a.id===b.answer.id&&(b.previousAnswer=b.answer,f=!0)}),f}),"target");return c},h=function(a){return _.reduce(a,function(a,b,c){return"mxcell"===c?a:_.isArray(b)?(_.forIn(b,function(b,d){a[b.$.id]=b.$,a[b.$.id].tag=c}),a):(a[b.$.id]=b.$,a[b.$.id].tag=c,a)},{})}}}}}]).directive("reportBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",forms:"=",firstCall:"="},templateUrl:"app/main/template.reportBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.operators=[{name:"AND"},{name:"OR"}],b.conditions=[{name:"="},{name:"!="},{name:"<"},{name:"<="},{name:">"},{name:">="},{name:"LIKE"}],b.addCondition=function(){b.group.rules.push({condition:"=",field:"",value:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(){b.group.rules.push({group:{operator:"AND",rules:[{condition:"=",field:"",value:""}]}})},b.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},b.removeGroup=function(){b.$parent.group&&b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]).directive("dynamicName",["$compile",function(a){return{restrict:"A",terminal:!0,priority:1e3,link:function(b,c,d){c.attr("name",b.$eval(d.dynamicName)),c.removeAttr("dynamic-name"),a(c)(b)}}}]).directive("onReadFile",["$parse",function(a){return{restrict:"A",scope:!1,link:function(b,c,d){var e=a(d.onReadFile);c.on("change",function(a){var c=new FileReader;c.onload=function(a){b.$apply(function(){e(b,{$fileContent:a.target.result})})},c.readAsText((a.srcElement||a.target).files[0])})}}}]).directive("motionFileDownload",["xAlert","$http","$translate","$timeout","$location",function(a,b,c,d,e){return{restrict:"E",templateUrl:"app/main/template.motionFileDownload.html",scope:{mimetype:"=",filename:"=",url:"="},link:function(d,e,f){var g=e.children()[0];d.$on("download-start",function(){$(g).attr("disabled","disabled")}),d.$on("downloaded",function(a,b){var f=angular.element("<a/>").addClass("btn default btn-xs blue-stripe").attr({href:"data:"+d.mimetype+";base64,"+b,download:d.filename}).text(c.instant("APPLICATION_DOWNLOAD"));$(g).remove(),e.append(f),f.get(0).click()}),d.download=function(){d.$emit("download-start"),b.get(d.url).success(function(a){d.$emit("downloaded",a)}).error(function(b){a.show(c.instant(b.message),"danger")})}}}}]),angular.module("xCallyShuttleApp").filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}).filter("salesforce",function(){var a=["CallDisposition","CallDurationInSeconds","CallObject","CallType","IsArchived","Priority","Status","Type"];return function(b){return _.remove(b,function(b){return b.custom===!1&&a.indexOf(b.name)<0}),b}}).filter("sugarcrm",function(){var a=["account_id","account_name","account_name1","assigned_user_name","assigned_user_id","case_number","created_by","created_by_name","date_entered","date_modified","deleted","description","id","modified_by_name","modified_user_id","name"];return function(b){return _.remove(b,function(b){return a.indexOf(b.name)>=0}),b}}).filter("freshdesk",function(){var a=["requester","subject","agent","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.ticket_field.name)>=0}),b}}).filter("zendesk",function(){var a=["subject","assignee","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.type)>=0}),b}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}],deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"info":b.info({message:c,title:'<i class="glyphicon glyphicon-info-sign"></i> <strong>'+a.instant("MESSAGE_INFO")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-exclamation-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;case"warning":b.warning({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_WARNING")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),b.search.params&&(c.clientQuery={},_.forIn(b.search.params,function(a,b){c.clientQuery[b]=a})),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope","$http","$translate","socket","xAlert","Modal","$timeout",function(a,b,c,d,e,f,g){function h(a,b){return Math.floor(Math.random()*(b-a+1))+a}a.initView=function(){b.get("/api/integrations").success(function(b){a.integrations=b,a.groupedIntegration=_.chunk(a.integrations,4),d.syncUpdates("integration",a.integrations,function(){a.groupedIntegration=_.chunk(a.integrations,4)})}).error(function(a){e.show(a.message,"danger")})},a.isProgressing=!1,a.$on("$destroy",function(){d.unsyncUpdates("integration")}),a.installIntegration=function(d){a.status="Downloading",a.percentage=h(1,50),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!0}).success(function(){g(function(){a.percentage=h(51,99),a.status="Installing"},2500),g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.uninstallIntegration=function(d){a.status="Uninstalling",a.percentage=h(1,99),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!1}).success(function(){g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl"})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedSalesforceAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSalesforceAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("salesforce_account"),b.url="/api/salesforce/accounts",h.getPage(b).then(function(d){a.displayedSalesforceAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSalesforceAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSalesforceAccounts.length)}),f.socket.on("salesforce_account:save",function(){a.initList(b)}),f.socket.on("salesforce_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/salesforce/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/salesforce/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/salesforce/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.list",{url:"/list",templateUrl:"app/salesforce/list/list.html",controller:"SalesforceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce",{url:"/salesforce",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","$filter",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("salesforce_configuration"),g.unsyncUpdates("salesforce_field")}),a.initView=function(){b.get("/api/salesforce/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/salesforce/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/salesforce/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("salesforce_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/salesforce/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/salesforce/configurations",a.configuration).success(function(a){e.path("salesforce/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/salesforce/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(j("salesforce")(b),"name","asc")}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/salesforce/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("salesforce_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/salesforce/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/salesforce/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);if(c)switch(c.type){case"picklist":return c.picklistValues;default:return}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view",{url:"/view/:id",templateUrl:"app/salesforce/view/view.html",controller:"SalesforceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.salesforce.view.account",{url:"/account",templateUrl:"app/salesforce/view/view.account.html"}).state("main.salesforce.view.configurations",{url:"/configurations",templateUrl:"app/salesforce/view/view.configurations.html"}).state("main.salesforce.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/salesforce/view/view.configurationSettings.html",controller:"SalesforceViewCtrl"}).state("main.salesforce.view.configuration",{url:"/configuration",templateUrl:"app/salesforce/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SalesforceWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){
+a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/salesforce/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/salesforce/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.wizard",{url:"/wizard",templateUrl:"app/salesforce/wizard/wizard.html",controller:"SalesforceWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("License",["$resource",function(a){return a("/api/licenses/:id/:controller",{id:"@id"},{request:{method:"POST",params:{id:"request"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license",{url:"/license",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("LicenseViewCtrl",["$scope","$rootScope","$translate","License","xAlert",function(a,b,c,d,e){a.initView=function(){d.get(function(b){a.item=b.license})},a.submitRequest=function(){d.request(a.item,function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")},function(a){switch(a.status){case 304:e.show(a.statusText,"info");break;default:e.show(a.statusText,"danger")}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license.view",{url:"/view",templateUrl:"app/setting/license/view/view.html",controller:"LicenseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/pricing-tables.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting",{url:"/setting",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("Smtp",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp",{url:"/smtp",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmtpViewCtrl",["$scope","$stateParams","$translate","MailServerOut","xAlert",function(a,b,c,d,e){a.initView=function(){a.item={},d.get({id:"service"}).$promise.then(function(b){a.item=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateItem=function(){a.item.id?d.update({id:a.item.id},a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}):(a.item.service=!0,d.save(a.item).$promise.then(function(b){a.item=b,e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}))},a.test=function(){d.test({id:a.item.id,controller:"test"}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log("err",a),e.show(a.data?a.data.response:a.statusText,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp.view",{url:"/view",templateUrl:"app/setting/smtp/view/view.html",controller:"SmtpViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("TemplateListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_template")}),a.conf={templatesByPage:{name:"10",value:10}},a.templatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Templates={checked:[]},a.check=function(b,c){c?a.Templates.checked=angular.copy(_.pluck(a.displayedTemplates,"id")):a.Templates.checked=[]},a.getTemplates=function(b){return _.map(a.displayedTemplates,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_template"),b.url="/api/mail/templates/",g.getPage(b).then(function(c){a.displayedTemplates=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.templatesByPage,a.displayedTemplates.length),d.updateTableConfig(a.conf.templatesByPage,a.displayedTemplates.length)}),e.socket.on("mail_template:save",function(){a.initList(b)}),e.socket.on("mail_template:remove",function(c){a.Templates.checked=_.without(a.Templates.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/templates/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/templates/",{params:{id:a.Templates.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates.list",{url:"/list",templateUrl:"app/setting/template/list/list.html",controller:"TemplateListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Template",["$resource",function(a){return a("/api/mail/templates/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Template",function(a,b,c,d,e,f){a.initItem=function(){a.form={},a.item={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.item=f.get({id:d.id})},a.updateItem=function(){f.update(a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates.view",{url:"/view/:id",templateUrl:"app/setting/template/view/view.html",controller:"TemplateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.setting.templates.view.settings",{url:"/settings",templateUrl:"app/setting/template/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateWizardCtrl",["$scope","$location","$http","WizardHandler","xAlert","MailServerOut","Template",function(a,b,c,d,e,f,g){a.initWizard=function(){a.item={},a.form={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.mailAccounts=f.query()},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){var c={name:a.item.name,description:a.item.description,subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null};g.save(c).$promise.then(function(){b.path("/templates/list")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.templates.wizard",{url:"/wizard",templateUrl:"app/setting/template/wizard/wizard.html",controller:"TemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","$uibModal","$log","$translate","Update","xAlert",function(a,b,c,d,e,f){a.conf={updatesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.updatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initList=function(){e.query(function(b){a.updates=b})},a.pull=function(){var a=b.open({animation:!0,templateUrl:"app/setting/update/list/list.pull.html",controller:function(a,b){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){b.close()}},{classes:"btn default",text:"Cancel",click:function(){b.dismiss("cancel")}}]}}});a.result.then(function(){e.pull(function(a){a.summary.changes?f.show(d.instant("APPLICATION_UPDATED_TO_LATEST_VERSION"),"success"):f.show(d.instant("APPLICATION_ALREADY_UP_TO_DATE"),"info")},function(a){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},function(){c.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates.list",{url:"/list",templateUrl:"app/setting/update/list/list.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"},{pull:{method:"GET",params:{id:"pull"}},checkout:{method:"GET",params:{id:"checkout"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce",function(a,b,c,d,e,f,g,h,i,j){a.isCollapsed=!0,a.audioSources={},a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/uploads/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.getAudioSrc=function(a){return"/api/uploads/"+a},a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/uploads/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("upload")}),a.initList=function(){b.get("/api/uploads").success(function(b){a.sounds=b,a.sounds.forEach(function(a){k(a)}),c.syncUpdates("upload",a.sounds)}).error(function(a){})};var k=function(c){b.get("/api/uploads/stream/"+c.id).success(function(b){a.audioSources[c.id]=b}).error(function(a){console.error(a)})};a.getSecureSrc=function(a){return j.trustAsResourceUrl("data:audio/ogg;base64,"+a)},a.getSecureDownloadSrc=function(a){return j.trustAsResourceUrl("data:application/octet-stream;charset=utf-16le;base64,"+a)};var l=a.uploader=new f({url:"/api/uploads",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds.list",{url:"/list",templateUrl:"app/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds",{url:"/sounds",templateUrl:"app/sound/sound.html","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={odbcsByPage:{name:"10",value:10}},a.odbcsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Odbcs={checked:[]},a.check=function(b,c){c?a.Odbcs.checked=angular.copy(_.pluck(a.displayedOdbcs,"id")):a.Odbcs.checked=[]},a.getOdbcs=function(b){return _.map(a.displayedOdbcs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_odbc"),b.url="/api/square/odbc",h.getPage(b).then(function(c){a.displayedOdbcs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.odbcsByPage,a.displayedOdbcs.length),d.updateTableConfig(a.conf.odbcsByPage,a.displayedOdbcs.length)}),c.socket.on("square_odbc:save",function(){a.initList(b)}),c.socket.on("square_odbc:remove",function(c){a.Odbcs.checked=_.without(a.Odbcs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/odbc/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/odbc",{params:{id:a.Odbcs.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs",{url:"/odbcs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getOdbc=function(){b.get("/api/square/odbc/"+e.id).success(function(b){delete b.pwd,a.odbc=b}).error(function(a){console.error(a),f.path("/square/odbcs/list")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);b.put("/api/square/odbc/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.odbc=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.square.odbcs.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={odbc:void 0},a.item={},a.next=function(){b.post("/api/square/odbc/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_ODBC"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/odbc/",a.item).success(function(){d.path("/square/odbcs/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.wizard",{url:"/wizard",templateUrl:"app/square/odbc/wizard/wizard.html",controller:"SquareOdbcWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={projectsByPage:{name:"10",value:10}},a.projectsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Projects={checked:[]},a.check=function(b,c){c?a.Projects.checked=angular.copy(_.pluck(a.displayedProjects,"id")):a.Projects.checked=[]},a.getProjects=function(b){return _.map(a.displayedProjects,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_project"),b.url="/api/square/projects",h.getPage(b).then(function(c){a.displayedProjects=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.projectsByPage,a.displayedProjects.length),d.updateTableConfig(a.conf.projectsByPage,a.displayedProjects.length)}),c.socket.on("square_project:save",function(){a.initList(b)}),c.socket.on("square_project:remove",function(c){a.Projects.checked=_.without(a.Projects.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/projects/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/projects",{params:{id:a.Projects.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$http","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i){a.squareProject={},a.getProject=function(){b.get("/api/square/projects/"+c.id).success(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=e.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),d.syncUpdates("square_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/square/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/square/js/Editor.js","assets/plugins/square/js/Graph.js","assets/plugins/square/js/EditorUi.js","assets/plugins/square/js/Actions.js","assets/plugins/square/js/Menus.js","assets/plugins/square/js/Sidebar.js","assets/plugins/square/js/Toolbar.js","assets/plugins/square/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={project:void 0},a.item={},a.next=function(){b.post("/api/square/projects/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_PROJECT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/projects/",a.item).success(function(){d.path("/square/projects/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.wizard",{url:"/wizard",templateUrl:"app/square/project/wizard/wizard.html",controller:"SquareProjectWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SugarcrmListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedSugarcrmAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSugarcrmAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("sugarcrm_account"),b.url="/api/sugarcrm/accounts",h.getPage(b).then(function(d){a.displayedSugarcrmAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSugarcrmAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSugarcrmAccounts.length)}),f.socket.on("sugarcrm_account:save",function(){a.initList(b)}),f.socket.on("sugarcrm_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/sugarcrm/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/sugarcrm/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/sugarcrm/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.list",{url:"/list",templateUrl:"app/sugarcrm/list/list.html",controller:"SugarcrmListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm",{url:"/sugarcrm",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SugarcrmViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("sugarcrm_configuration"),h.unsyncUpdates("sugarcrm_field")}),a.initView=function(){b.get("/api/sugarcrm/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/sugarcrm/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/sugarcrm/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("sugarcrm_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/sugarcrm/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/sugarcrm/configurations",a.configuration).success(function(a){e.path("sugarcrm/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/sugarcrm/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(f("sugarcrm")(_.toArray(b)),"name","asc"),_.forEach(b,function(a){a.options=_.toArray(a.options)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/sugarcrm/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("sugarcrm_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/sugarcrm/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/sugarcrm/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.options.length>0?c.options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.view",{url:"/view/:id",templateUrl:"app/sugarcrm/view/view.html",controller:"SugarcrmViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.sugarcrm.view.account",{url:"/account",templateUrl:"app/sugarcrm/view/view.account.html"}).state("main.sugarcrm.view.configurations",{url:"/configurations",templateUrl:"app/sugarcrm/view/view.configurations.html"}).state("main.sugarcrm.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/sugarcrm/view/view.configurationSettings.html",controller:"SugarcrmViewCtrl"}).state("main.sugarcrm.view.configuration",{url:"/configuration",templateUrl:"app/sugarcrm/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmkWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/sugarcrm/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/sugarcrm/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.wizard",{url:"/wizard",templateUrl:"app/sugarcrm/wizard/wizard.html",controller:"SugarcrmkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TagListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={tagsByPage:{name:"10",value:10}},a.tagsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Tags={checked:[]},a.check=function(b,c){c?a.Tags.checked=angular.copy(_.pluck(a.displayedTags,"id")):a.Tags.checked=[]},a.getTags=function(b){return _.map(a.displayedTags,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("tag"),b.url="/api/tags",h.getPage(b).then(function(c){console.log(c),a.displayedTags=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.tagsByPage,a.displayedTags.length),d.updateTableConfig(a.conf.tagsByPage,a.displayedTags.length)}),c.socket.on("tag:save",function(){console.log("save"),a.initList(b)}),c.socket.on("tag:remove",function(c){a.Tags.checked=_.without(a.Tags.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/tags/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/tags",{params:{id:a.Tags.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/tag/list/create.modal.html",controller:"TagListCreateModalCtrl"});a.result.then(function(a){b.post("/api/tags",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags.list",{url:"/list",templateUrl:"app/tag/list/list.html",controller:"TagListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){
+a.state("main.tags",{url:"/tags",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getTag=function(){b.get("/api/tags/"+e.id).success(function(b){a.tag=b}).error(function(a){console.error(a),f.path("/tags/list")})},a.updateTag=function(){var f=angular.copy(a.tag);b.put("/api/tags/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.tag=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags.view",{url:"/view/:id",templateUrl:"app/tag/view/view.html",controller:"TagViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tags.view.settings",{url:"/settings",templateUrl:"app/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={teamsByPage:{name:"10",value:10}},a.teamsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.teams={checked:[]},a.check=function(b,c){c?a.teams.checked=angular.copy(_.pluck(a.displayedTeams,"id")):a.teams.checked=[]},a.getTeams=function(b){return _.map(a.displayedTeams,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("team"),b.url="/api/teams/",h.getPage(b).then(function(c){a.displayedTeams=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.teamsByPage,a.displayedTeams.length),d.updateTableConfig(a.conf.teamsByPage,a.displayedTeams.length)}),f.socket.on("team:save",function(){a.initList(b)}),f.socket.on("team:remove",function(c){a.teams.checked=_.without(a.teams.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/teams/"+a).success(function(){e.show(c.instant("MESSAGE_TEAM_DELETE_SUCCESS"),"success")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/teams",{params:{id:a.teams.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.list",{url:"/list",templateUrl:"app/team/list/list.html",controller:"TeamListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","xAlert",function(a,b,c,d,e){a.message="Hello";var f=function(){return{select:function(c){b.post("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})}}};a.initView=function(){b.get("/api/teams/"+c.id).success(function(b){a.team=b}).error(function(a){e.show(a.message,"danger")})},a.initAgents=function(){b.get("/api/agents").success(function(d){a.agents=d.rows,b.get("/api/user_has_teams",{params:{TeamId:c.id}}).success(function(b){ComponentsDropdowns.bindTeam(_.pluck(b,"UserId"),_.map(a.agents,function(a){return{id:a.id,name:a.name}}),f)}).error(function(a){console.error(a)})})},a.updateItem=function(){var f=angular.copy(a.team),g=angular.copy(a.team);b.put("/api/teams/"+c.id,f).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.team=g,b.errors.forEach(function(a){e.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.view",{url:"/view/:id",templateUrl:"app/team/view/view.html",controller:"TeamViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.teams.view.agents",{url:"/agents",templateUrl:"app/team/view/view.agents.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.teams.view.settings",{url:"/settings",templateUrl:"app/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TeamWizardCtrl",["$scope","$http","$translate","$location","WizardHandler","xAlert",function(a,b,c,d,e,f){a.forms={info:void 0},a.item={},a.createItem=function(){b.post("api/teams",a.item).success(function(){f.show(c.instant("MESSAGE_TEAM_CREATE_SUCCESS"),"success"),d.path("/teams/list")}).error(function(a){a.errors.forEach(function(a){f.show(a.message,"danger")})})},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.wizard",{url:"/wizard",templateUrl:"app/team/wizard/wizard.html",controller:"TeamWizardCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneListCtrl",["$scope","$http","xAlert","$rootScope","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={usersByPage:{name:"10",value:10}},a.usersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.telephones={checked:[]},a.check=function(b,c){c?a.telephones.checked=angular.copy(_.pluck(a.displayedTelephones,"id")):a.telephones.checked=[]},a.getTelephones=function(b){return _.map(a.displayedTelephones,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/telephones/"+a).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/telephones",{params:{id:a.telephones.checked}}).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.initList=function(b){f.unsyncUpdates("telephone"),b.url="/api/telephones/",h.getPage(b).then(function(c){console.log(c),a.displayedTelephones=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.usersByPage,a.displayedTelephones.length),d.updateTableConfig(a.conf.usersByPage,a.displayedTelephones.length)}),f.socket.on("telephone:save",function(){a.initList(b)}),f.socket.on("telephone:remove",function(c){a.telephones.checked=_.without(a.telephones.checked,c.id),a.initList(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones.list",{url:"/list",templateUrl:"app/telephone/list/list.html",controller:"TelephoneListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Telephone",["$resource",function(a){return a("/api/telephones/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones",{url:"/telephones",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TelephoneViewCtrl",["$scope","$http","$stateParams","$translate","$cookieStore","Auth","xAlert","Telephone",function(a,b,c,d,e,f,g,h){a.initView=function(){a.Auth=f,a.forms={},h.get({id:c.id}).$promise.then(function(b){delete b.password,a.item=b,a.item.transport=a.item.transport?a.item.transport.split(","):[],a.item.allow=a.item.allow?a.item.allow.split(";"):[]})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.item);b.transport=b.transport.join(","),b.allow=b.allow.join(";"),h.update(b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones.view",{url:"/view/:id",templateUrl:"app/telephone/view/view.html",controller:"TelephoneViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.telephones.view.account",{url:"/account",templateUrl:"app/telephone/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate","Telephone",function(a,b,c,d,e,f,g){a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.initWizard=function(){a.forms={},a.item={allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},g.get({id:"internal"}).$promise.then(function(b){a.item.internal=b.internal})["catch"](function(a){console.error(a)})},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/telephones/",a.item).success(function(){e.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/telephones/list")}).error(function(a){console.log(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.telephones.wizard",{url:"/wizard",templateUrl:"app/telephone/wizard/wizard.html",controller:"TelephoneWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={TriggersByPage:{name:"10",value:10}},a.TriggersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Triggers={checked:[]},a.check=function(b,c){c?a.Triggers.checked=angular.copy(_.pluck(a.displayedTriggers,"id")):a.Triggers.checked=[]},a.getTriggers=function(b){return _.map(a.displayedTriggers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("trigger"),b.url="/api/triggers",e.getPage(b).then(function(c){a.displayedTriggers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.TriggersByPage,a.displayedTriggers.length),d.updateTableConfig(a.conf.TriggersByPage,a.displayedTriggers.length)}),g.socket.on("trigger:save",function(){a.initList(b)}),g.socket.on("trigger:remove",function(c){a.Triggers.checked=_.without(a.Triggers.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/triggers/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/triggers",{params:{id:a.Triggers.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/triggers/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.list",{url:"/list",templateUrl:"app/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","triggers",function(a,b,c,d,e,f){a.$triggers=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/triggers/"+b.id).success(function(b){a.trigger=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$triggers.triggers[b.channel].conditions,a.fields.actions=a.$triggers.triggers[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.getProperties=function(){h(),j(),i(),g()};var g=function(){c.get("/api/integrations",{params:{active:1}}).success(function(b){a.integrations=b;var c=[];b.forEach(function(a){c.push({name:a.name,value:a.state})}),a.properties.voice.integration=c}).error(function(a){e.show(a.message,"danger")})},h=function(){c.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){e.show(a.message,"danger")})},i=function(){c.get("/api/voice/queues/").success(function(b){a.voiceQueues=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.name})}),a.properties.voice.queue=c}).error(function(a){e.show(a.message,"danger")})},j=function(){c.get("/api/mail/servers/out/").success(function(b){a.stmpAccounts=b;var c=[];b.forEach(function(a){c.push({name:a.username,value:a.username})}),a.properties.mail.smtp=c}).error(function(a){e.show(a.message,"danger")})};a.updateTrigger=function(){c.put("/api/triggers/"+a.trigger.id,{name:a.trigger.name,description:a.trigger.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.view",{url:"/view/:id",templateUrl:"app/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.triggers.view.settings",{url:"/settings",templateUrl:"app/trigger/view/view.settings.html"}).state("main.triggers.view.routes",{url:"/routes",templateUrl:"app/trigger/view/view.routes.html"}).state("main.triggers.view.application",{url:"/application",templateUrl:"app/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler",function(a,b,c,d,e,f){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$triggers.triggers[b].conditions,a.fields.actions=a.$triggers.triggers[b].actions},!0),a.item.channel="voice",a.getProperties=function(){j(),l(),k(),i()};var i=function(){b.get("/api/integrations",{params:{active:1}}).success(function(b){a.integrations=b;var c=[];b.forEach(function(a){c.push({name:a.name,value:a.state})}),a.properties.voice.integration=c}).error(function(a){d.show(a.message,"danger")})},j=function(){b.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){d.show(a.message,"danger")})},k=function(){b.get("/api/mail/servers/out/").success(function(b){a.stmpAccounts=b;var c=[];b.forEach(function(a){c.push({name:a.username,value:a.username})}),a.properties.mail.smtp=c}).error(function(a){d.show(a.message,"danger")})},l=function(){b.get("/api/voice/queues/").success(function(b){a.voiceQueues=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.name})}),a.properties.voice.queue=c}).error(function(a){d.show(a.message,"danger")})};a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/triggers",a.item).success(function(){c.path("/triggers/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.wizard",{url:"/wizard",templateUrl:"app/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={trunksByPage:{name:"10",value:10},labels:["name","host","context","description"]},a.trunksByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.trunks={checked:[]},a.check=function(b,c){c?a.trunks.checked=angular.copy(_.pluck(a.displayedTrunks,"id")):a.trunks.checked=[]},a.getTrunks=function(b){return _.map(a.displayedTrunks,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("trunk"),b.url="/api/trunks",console.log(b),h.getPage(b).then(function(c){a.displayedTrunks=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.trunksByPage,a.displayedTrunks.length),d.updateTableConfig(a.conf.trunksByPage,a.displayedTrunks.length)}),f.socket.on("trunk:save",function(){a.initList(b)}),f.socket.on("trunk:remove",function(c){a.trunks.checked=_.without(a.trunks.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/trunks/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/trunks",{params:{id:a.trunks.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.$on("$destroy",function(){console.log("trunks destroy")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.list",{url:"/list",templateUrl:"app/trunk/list/list.html",controller:"TrunkListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.getTrunk=function(){b.get("/api/trunks/"+e.id).success(function(b){b.nat=""===b.nat?[]:b.nat.split(","),b.allow=""===b.allow?[]:b.allow.split(";"),b.insecure=""===b.insecure?[]:b.insecure.split(","),b.transport=""===b.transport?[]:b.transport.split(","),delete b.secret,a.trunk=b}).error(function(a){console.error(a),g.path("/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var f=angular.copy(a.trunk);f.nat=f.nat.join(","),f.allow=f.allow.join(";"),f.insecure=f.insecure.join(","),f.transport=f.transport.join(","),b.put("/api/trunks/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.nat=f.nat.split(","),f.naallowt=f.allow.split(";"),f.insecure=f.insecure.split(","),f.transport=f.transport.split(","),a.trunk=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.view",{url:"/view/:id",templateUrl:"app/trunk/view/view.html",controller:"TrunkViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.trunks.view.settings",{url:"/settings",templateUrl:"app/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.wizard",{url:"/wizard",templateUrl:"app/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","$http","xAlert","$rootScope","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={usersByPage:{name:"10",value:10}},a.usersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.users={checked:[]},a.check=function(b,c){c?a.users.checked=angular.copy(_.pluck(a.displayedUsers,"id")):a.users.checked=[]},a.getUsers=function(b){return _.map(a.displayedUsers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/users/"+a).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/users",{params:{id:a.users.checked}}).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.initList=function(b){f.unsyncUpdates("user"),b.url="/api/users/",h.getPage(b).then(function(c){a.displayedUsers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.usersByPage,a.displayedUsers.length),d.updateTableConfig(a.conf.usersByPage,a.displayedUsers.length)}),f.socket.on("user:save",function(){a.initList(b)}),f.socket.on("user:remove",function(c){a.users.checked=_.without(a.users.checked,c.id),a.initList(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.list",{url:"/list",templateUrl:"app/user/list/list.html",controller:"UserListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users",{url:"/users",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$http","$stateParams","$translate","FileUploader","$cookieStore","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.updatePassword=function(){var e,f;g.isAdmin()?(e="/api/users/password/"+c.id+"/reset",f={newPassword:a.user.newPwd}):(e="/api/users/password/",f={oldPassword:a.user.currentPwd,newPassword:a.user.newPwd}),b.put(e,f).success(function(a){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var i=a.uploader=new e({url:"api/users/"+c.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c,e,f){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(a,b,c,e){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()},a.initView=function(){b.get("/api/users/"+c.id).success(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]}).error(function(a){a.errors.forEach(function(b){h.show(a.message+": "+b.message,"danger")})})},a.updateItem=function(){var e=angular.copy(a.user),f=angular.copy(a.user);delete e.password,delete e.md5secret,e.transport=e.transport.join(","),e.allow=e.allow.join(";"),b.put("/api/users/"+c.id,e).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.user=f,b.errors.forEach(function(a){h.show(b.message+": "+a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.view",{url:"/view/:id",templateUrl:"app/user/view/view.html",controller:"UserViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.users.view.account",{url:"/account",templateUrl:"app/user/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/users/",a.item).success(function(){e.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/users/list")}).error(function(a){console.log(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.wizard",{url:"/wizard",templateUrl:"app/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={variablesByPage:{name:"10",value:10}},a.variablesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Variables={checked:[]},a.check=function(b,c){c?a.Variables.checked=angular.copy(_.pluck(a.displayedVariables,"id")):a.Variables.checked=[]},a.getVariables=function(b){return _.map(a.displayedVariables,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("variable"),b.url="/api/variables",h.getPage(b).then(function(c){a.displayedVariables=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.variablesByPage,a.displayedVariables.length),d.updateTableConfig(a.conf.variablesByPage,a.displayedVariables.length)}),c.socket.on("variable:save",function(){a.initList(b)}),c.socket.on("variable:remove",function(c){a.Variables.checked=_.without(a.Variables.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/variables/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/variables",{params:{id:a.Variables.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/variable/list/create.modal.html",controller:"VariableListCreateModalCtrl"});a.result.then(function(a){b.post("/api/variables",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.list",{url:"/list",templateUrl:"app/variable/list/list.html",controller:"VariableListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getVariable=function(){b.get("/api/variables/"+e.id).success(function(b){a.variable=b}).error(function(a){console.error(a),f.path("/variables/list")})},a.updateVariable=function(){var f=angular.copy(a.variable);b.put("/api/variables/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.variable=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.view",{url:"/view/:id",templateUrl:"app/variable/view/view.html",controller:"VariableViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.variables.view.settings",{url:"/settings",templateUrl:"app/variable/view/view.settings.html"
+})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={contextsByPage:{name:"10",value:10}},a.contextsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voiceContexts={checked:[]},a.check=function(b,c){c?a.voiceContexts.checked=angular.copy(_.pluck(a.displayedVoiceContexts,"id")):a.voiceContexts.checked=[]},a.getVoiceContexts=function(b){return _.map(a.displayedVoiceContexts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_context"),b.url="/api/voice/contexts",h.getPage(b).then(function(c){a.displayedVoiceContexts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.contextsByPage,a.displayedVoiceContexts.length),d.updateTableConfig(a.conf.contextsByPage,a.displayedVoiceContexts.length)}),c.socket.on("voice_context:save",function(){a.initList(b)}),c.socket.on("voice_context:remove",function(c){a.voiceContexts.checked=_.without(a.voiceContexts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/contexts/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/contexts",{params:{id:a.voiceContexts.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.list",{url:"/list",templateUrl:"app/voice/context/list/list.html",controller:"VoiceContextListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.view",{url:"/view/:id",templateUrl:"app/voice/context/view/view.html",controller:"VoiceContextViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={context:void 0},a.item={},a.next=function(){b.post("/api/voice/contexts/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_CONTEXT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/contexts/",a.item).success(function(){d.path("/voice/contexts/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.wizard",{url:"/wizard",templateUrl:"app/voice/context/wizard/wizard.html",controller:"VoiceContextWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={mohsByPage:{name:"10",value:10},labels:["name","directory","sort","description"]},a.mohsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mohs={checked:[]},a.check=function(b,c){c?a.mohs.checked=angular.copy(_.pluck(a.displayedMohs,"id")):a.mohs.checked=[]},a.getMohs=function(b){return _.map(a.displayedMohs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_musiconhold"),b.url="/api/voice/musiconholds",h.getPage(b).then(function(c){a.displayedMohs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mohsByPage,a.displayedMohs.length),d.updateTableConfig(a.conf.mohsByPage,a.displayedMohs.length)}),f.socket.on("voice_musiconhold:save",function(){a.initList(b)}),f.socket.on("voice_musiconhold:remove",function(c){a.mohs.checked=_.without(a.mohs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/musiconholds/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/musiconholds",{params:{id:a.mohs.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.list",{url:"/list",templateUrl:"app/voice/moh/list/list.html",controller:"VoiceMohListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","Modal","$sce","$location",function(a,b,c,d,e,f,g,h,i){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){b.get("/api/voice/musiconholds/"+e.id).success(function(b){delete b.stamp,a.moh=b}).error(function(a){console.error(a),i.path("/voice/mohs/list")})},a.updateVoiceMoh=function(){console.log("update");var f=angular.copy(a.moh);b.put("/api/voice/musiconholds/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voiceMoh=f})},a.addMohs=function(){b.post("/api/voice/musiconholds/"+e.id+"/files",a.item).success(function(){i.path("voice/mohs/view/"+e.id+"/audios")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getAudioFiles=function(){b.get("/api/voice/musiconholds/"+e.id+"/files").success(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){j(a)})}).error(function(a){console.error(a)})},a.getSecureSrc=function(a){return h.trustAsResourceUrl(a)};var j=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.getSounds=function(){a.item={sounds:[]},b.get("/api/uploads").success(function(b){a.soundList=b}).error(function(a){console.error(a)})},a.deleteItem=g.confirm["delete"](function(f){b["delete"]("/api/voice/musiconholds/"+e.id+"/files",{params:{filename:f}}).success(function(){_.remove(a.audioFiles,function(a){return a===f}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.view",{url:"/view/:id",templateUrl:"app/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/voice/moh/view/view.settings.html"}).state("main.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/voice/moh/view/view.audios.html",cache:!1}).state("main.voice.mohs.view.add",{url:"/add",templateUrl:"app/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceMohWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.$translate=g,a.initWizard=function(){a.forms={},a.item={sort:"alpha"}},a.next=function(){b.post("/api/voice/musiconholds/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_MOH"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/musiconholds/",a.item).success(function(a){d.path("/voice/mohs/view/"+a.id+"/audios")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.wizard",{url:"/wizard",templateUrl:"app/voice/moh/wizard/wizard.html",controller:"VoiceMohWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.conf={voiceQueuesByPage:{name:"10",value:10},labels:["name","description","strategy","context"]},a.voiceQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.queues={checked:[]},a.check=function(b,c){c?a.queues.checked=angular.copy(_.pluck(a.displayedQueues,"name")):a.queues.checked=[]},a.getQueues=function(b){return _.map(a.displayedQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_queue"),b.url="/api/voice/queues",h.getPage(b).then(function(c){a.displayedQueues=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.voiceQueuesByPage,a.displayedQueues.length),e.updateTableConfig(a.conf.voiceQueuesByPage,a.displayedQueues.length)}),c.socket.on("voice_queue:save",function(){a.initList(b)}),c.socket.on("voice_queue:remove",function(c){console.log("remove"),a.queues.checked=_.without(a.queues.checked,c.name),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/voice/queues/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/voice/queues",{params:{name:a.queues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.list",{url:"/list",templateUrl:"app/voice/queue/list/list.html",controller:"VoiceQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var h=function(){return{select:function(c){b.post("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/voice/queues/"+e.id).success(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),a.queue=b}).error(function(a){g.path("/voice/queues/list")})},a.updateVoiceQueue=function(){var f=angular.copy(a.queue);f.joinempty=f.joinempty.join(","),f.leavewhenempty=f.leavewhenempty.join(","),f.periodic_announce=f.periodic_announce.join(","),f.context||(f.context=null),b.put("/api/voice/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.joinempty=f.joinempty.split(","),f.leavewhenempty=f.leavewhenempty.split(","),f.periodic_announce=f.periodic_announce.split(","),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/voice/user_has_queues",method:"GET",params:{queue:a.queue.name}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.pluck(b,"UserId"),h)})}).error(function(a){console.error(a)})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/uploads").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b),b.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b,f.syncUpdates("upload",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return console.log("func"),a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.view",{url:"/view/:id",templateUrl:"app/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.queues.view.settings",{url:"/settings",templateUrl:"app/voice/queue/view/view.settings.html"}).state("main.voice.queues.view.agents",{url:"/agents",templateUrl:"app/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={queue:void 0},a.item={},a.next=function(){b.post("/api/voice/queues/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_QUEUE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/queues/",a.item).success(function(){d.path("/voice/queues/list")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.wizard",{url:"/wizard",templateUrl:"app/voice/queue/wizard/wizard.html",controller:"VoiceQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/pause.modal.html",controller:"VoiceRealtimeViewAgentPauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log(a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/agent/queue.modal.remove.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initAgents=function(){b.get("/api/voice/user_has_queues").success(function(b){a.agents=b,a.groups=_.map(_.groupBy(a.agents,"membername"),function(a,b){return{membername:b,queues:a}}),f.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{membername:b.membername});_.remove(c.queues,{queue:b.queue}),c.queues.length||_.remove(a.groups,{membername:b.membername})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentPauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c){var e={action:"QueuePause","interface":a.selected["interface"],paused:c,reason:a.selected.item};_.isArray(d)||(e.queue=a.selected.queue),b.close(e)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],penalty:0,paused:!1,reason:a.pauses[0],UserId:a.data[0].UserId},c.get("/api/voice/queues",{params:{page:0,per_page:100}}).success(function(b){a.queues=_.reject(b.rows,function(b){return _.find(a.data,{queue:b.name})?!0:!1}),a.selected.queue=a.queues[0]?a.queues[0].name:null,console.log(a.queues)}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,_.isArray(e)?a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],logout:!1,UserId:a.data[0].UserId}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){console.log(a.selected);var c={action:"QueueAdd",logged:a.data[0].logged,loggedAt:a.data[0].loggedAt,queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_agent")}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.agents=[],b.get("/api/report/agents").success(function(b){a.agents=b,c.syncUpdates("report_agent",a.agents)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewAgentReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_queue")}),a.conf={queuesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.queues=[],b.get("/api/report/queues").success(function(b){console.log(b),a.queues=b,c.syncUpdates("report_queue",a.queues)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewQueueReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueuePauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,console.log(d),a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c,e){var f;_.isArray(d)?(f=[],d.forEach(function(b){f.push({action:"QueuePause",queue:b.queue,membername:b.membername,"interface":b["interface"],paused:c,reason:a.selected.item})})):f={action:"QueuePause",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],paused:c,reason:a.selected.item},b.close(f)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/pause.modal.html",controller:"VoiceRealtimeViewQueuePauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/queue.modal.add.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log("action",a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}),console.log(a)},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/queue/queue.modal.remove.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initQueues=function(){b.get("/api/voice/user_has_queues").success(function(b){a.queues=b,a.groups=_.map(_.groupBy(a.queues,"queue"),function(a,b){return{queue:b,agents:a}}),console.log("ok"),f.socket.on("user_has_voice_queue:save",function(b){console.log("item",b);var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{queue:b.queue});_.remove(c.agents,{membername:b.membername}),c.agents.length||_.remove(a.groups,{queue:b.queue})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={penalty:0,paused:!1,reason:a.pauses[0]},a.$watch("selected.agent",function(b){b&&(a.selected.membername=b.name,a.selected["interface"]="SIP/"+b.name,a.selected.UserId=b.id)}),c.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=_.reject(b.rows,function(b){return _.find(a.data,{membername:b.name})?!0:!1}),a.selected.queue=a.data[0]?a.data[0].queue:null}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,console.log(e),_.isArray(e)?a.selected={queue:a.data[0].queue,logout:!1}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){var c={action:"QueueAdd",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.voice.realtime.view.agents"},{name:"View2",link:"main.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.voice.realtime.view.queues"},{name:"View2",link:"main.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime.view",{url:"/view",templateUrl:"app/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.realtime.view.queues",{url:"/queues",controller:"VoiceRealtimeViewQueueCtrl",templateUrl:"app/voice/realtime/view/queue/queue.html"}).state("main.voice.realtime.view.qreports",{url:"/qreport/:search",controller:"VoiceRealtimeViewQueueReportCtrl",templateUrl:"app/voice/realtime/view/qreport/report.html"}).state("main.voice.realtime.view.agents",{url:"/agents",controller:"VoiceRealtimeViewAgentCtrl",templateUrl:"app/voice/realtime/view/agent/agent.html"}).state("main.voice.realtime.view.areports",{url:"/areport",controller:"VoiceRealtimeViewAgentReportCtrl",templateUrl:"app/voice/realtime/view/areport/report.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[];
+},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/inbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"inbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"inbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.list",{url:"/list",templateUrl:"app/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"inbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"inbound",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0,axis:"y"},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){f.path("/voice/routes/inbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.$application.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"*,*,*,*"===b.interval?"always":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/inbound/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/inbound/view/view.settings.html"}).state("main.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/voice/route/inbound/view/view.applications.html",cache:!1}).state("main.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/voice/route/inbound/view/view.application.html",authenticate:!0}).state("main.voice.routes.inbound.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/inbound/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/inbound/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/inbound/wizard/wizard.html",controller:"VoiceRouteInboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/internal",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"internal"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"internal"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.list",{url:"/list",templateUrl:"app/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"internal"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"internal",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0,axis:"y"},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){console.error(a),f.path("/voice/routes/internal/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/internal/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(b){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/voice/route/internal/view/view.settings.html"}).state("main.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/voice/route/internal/view/view.applications.html",cache:!1}).state("main.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/voice/route/internal/view/view.application.html",authenticate:!0}).state("main.voice.routes.internal.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/internal/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInternalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"internal",appdata:"Iternal Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/internal/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.wizard",{url:"/wizard",templateUrl:"app/voice/route/internal/wizard/wizard.html",controller:"VoiceRouteInternalWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/outbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.routesByPage,a.displayedRoutes.length),d.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"outbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"outbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.list",{url:"/list",templateUrl:"app/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={info:void 0,interval:void 0},a.application={VoiceExtensionId:e.id,type:"outbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Dial",value:"Dial"},{name:"Custom",value:"custom"}]},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var d,f;switch(e.appId||(a.application={VoiceExtensionId:e.id,type:"outbound",interval:a.application.interval}),c){case"Dial":d="api/trunks",f="/api/voice/contexts";break;default:d=null,f=null}d&&b.get(d).success(function(b){a.items="Dial"===c?b.rows:b}),f&&b.get(f).success(function(b){a.items2="Dial"===c?b.rows:b})}},!0),a.$watch("application.TrunkId",function(b){b&&(a.application.trunk=_.result(_.find(a.items,{id:b}),"name"))},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,f.syncUpdates("interval",a.Intervals)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+e.id+"/applications").success(function(b){a.routeApplications=b,f.unsyncUpdates("voice_extension"),f.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),f.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===e.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+e.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0,axis:"y"},a.getRoute=function(){b.get("/api/voice/extensions/"+e.id).success(function(b){a.route=b,f.socket.on("voice_extension:update",function(b){b.id==e.id&&(a.route=b)})}).error(function(a){g.path("/voice/routes/outbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+e.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){console.error(a),g.path("/voice/routes/outbound/view/"+e.id+"/routes")})},a.updateRoute=function(){var f=angular.copy(a.route);b.put("/api/voice/extensions/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.route=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){switch(a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+e.appId,a.application).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(e){b["delete"]("/api/voice/extensions/"+e).success(function(b){a.getRouteApplications(),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.goNext=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){f.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/outbound/view/view.settings.html"}).state("main.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/voice/route/outbound/view/view.routes.html",cache:!1}).state("main.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/voice/route/outbound/view/view.route.html",authenticate:!0}).state("main.voice.routes.outbound.view.routes.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/outbound/view/view.routeSettings.html",authenticate:!0,controller:"VoiceRouteOutboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/outbound/view/"+a.id+"/routes")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts);
+}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/outbound/wizard/wizard.html",controller:"VoiceRouteOutboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={voicemailsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.voicemailsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voicemails={checked:[]},a.check=function(b,c){c?a.voicemails.checked=angular.copy(_.pluck(a.displayedVoicemails,"uniqueid")):a.voicemails.checked=[]},a.getVoicemails=function(b){return _.map(a.displayedVoicemails,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_voicemail"),b.url="/api/voice/voicemails",h.getPage(b).then(function(c){a.displayedVoicemails=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.voicemailsByPage,a.displayedVoicemails.length),d.updateTableConfig(a.conf.voicemailsByPage,a.displayedVoicemails.length)}),f.socket.on("voice_voicemail:save",function(){a.initList(b)}),f.socket.on("voice_voicemail:remove",function(c){a.voicemails.checked=_.without(a.voicemails.checked,c.uniqueid),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/voicemails",{params:{uniqueid:a.voicemails.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.list",{url:"/list",templateUrl:"app/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location",function(a,b,c,d,e,f,g,h,i){a.getVoicemail=function(){b.get("/api/voice/voicemails/"+e.uniqueid).success(function(b){delete b.password,delete b.stamp,a.voicemail=b}).error(function(a){console.error(a),i.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){var f=angular.copy(a.voicemail);b.put("/api/voice/voicemails/"+e.uniqueid,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voicemail=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(a.message,"danger")})},a.getMessages=function(){b.get("/api/voice/voicemails/"+e.uniqueid+"/messages/").success(function(b){a.voicemailMessages=b,f.syncUpdates("voice_voicemail_messages",a.voicemailMessages)}).error(function(a){c.show(a.message,"danger")})},a.encodeRecording=function(a){return g.trustAsResourceUrl("data:audio/ogg;base64,"+j(a.data))},a.returnMessageDate=function(a){return a.split("T")[0]},a.returnDuration=function(a){return 1e3*a},a.deleteItem=h.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/messages/"+a+"/delete").success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(a.message,"danger")})});var j=function(a){for(var b=new Uint8Array(a),c=b.byteLength,d="",e=0;c>e;e++)d+=String.fromCharCode(b[e]);return window.btoa(d)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/voice/voicemail/view/view.settings.html"}).state("main.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={}},a.next=function(){b.post("/api/voice/voicemails/validate/",a.item).success(function(a){a.length?e.show(g.instant("MESSAGE_EXIST_MAILBOX"),"danger"):c.wizard().next()}).error(function(a){e.show(a.message,"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){a.item.customer_id=a.item.mailbox,b.post("/api/voice/voicemails/",a.item).success(function(){d.path("/voice/voicemails/list")}).error(function(a){e.show(a.message,"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={dashboardsByPage:{name:"10",value:10}},a.dashboardsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.dashboards={checked:[]},a.check=function(b,c){c?a.dashboards.checked=angular.copy(_.pluck(a.displayedDashboards,"id")):a.dashboards.checked=[]},a.getDashboards=function(b){return _.map(a.displayedDashboards,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){b.url="/api/dashboards",h.getPage(b).then(function(c){a.displayedDashboards=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.dashboardsByPage,a.displayedDashboards.length),d.updateTableConfig(a.conf.dashboardsByPage,a.displayedDashboards.length)}),c.socket.on("dashboard:save",function(){a.initList(b)}),c.socket.on("dashboard:remove",function(c){a.dashboards.checked=_.without(a.dashboards.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/dashboards/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/dashboards",{params:{id:a.dashboards.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});a.result.then(function(a){b.post("/api/dashboards",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.list",{url:"/list",templateUrl:"app/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","localStorageService","$http","xAlert","$translate","Auth","$stateParams","$location",function(a,b,c,d,e,f,g,h){a.Auth=f,a.dashboard={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,editable:f.isAdmin()?!0:!1,maximizable:!0,collapsible:!0},a.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){b.model=JSON.parse(b.model),a.dashboard=_.merge(a.dashboard,b)}).error(function(a){h.path("/yourdashboards/list")})};var i=function(b,f,h){var i=angular.copy(a.dashboard);i.name=a.dashboard.model.title,i.model=JSON.stringify(i.model),c.put("/api/dashboards/"+g.id,i).success(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success")}).error(function(b){d.show(b.message,"danger"),i.model=JSON.parse(i.model),i.name="dashboard",a.dashboard=i})};a.$on("adfDashboardChanged",i),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.show",{url:"/show/:id",templateUrl:"app/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/yourdashboards/list")})},a.updateDashboard=function(){var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.view",{url:"/view/:id",templateUrl:"app/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedZdAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedZdAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("zendesk_account"),b.url="/api/zendesk/accounts",h.getPage(b).then(function(d){a.displayedZdAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedZdAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedZdAccounts.length)}),f.socket.on("zendesk_account:save",function(){a.initList(b)}),f.socket.on("zendesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/zendesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/zendesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/zendesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal","variable",function(a,b,c,d,e,f,g,h,i,j,k){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.variables=k,a.groupVariableByGroup=function(a){var b="";switch(a.group){case"voice_queue":b="Voice: Queue";break;default:b=""}return b},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("zendesk_configuration"),h.unsyncUpdates("zendesk_field")}),a.initView=function(){b.get("/api/zendesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/zendesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/zendesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("zendesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/zendesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/zendesk/configurations",a.configuration).success(function(a){e.path("zendesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=[{type:"string",title:"String"},{type:"variable",title:"Variable"},{type:"customVariable",title:"Custom Variable"}],a.descFieldType=[{type:"string",title:"String"},{type:"keyValue",title:"Key Value"}],a.getFields=function(){b.get("/api/zendesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=f("zendesk")(b)}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/zendesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getCustomVariables=function(){b.get("/api/variables").success(function(b){a.customVariables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/zendesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){console.log(a),b.put("/api/zendesk/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?(b.content="",b.variableName=""):"string"===b.type?(b.VariableId=null,b.variableName=""):"customVariable"===b.type&&(b.VariableId=null,b.content=""),a.updateField(b)},a.changeDescType=function(b){"keyValue"===b.type?(b.content="","string"===b.keyType?(b.VariableId=null,b.variableName=""):"variable"===b.keyType?(b.keyContent="",b.VariableId=null):"customVariable"===b.keyType&&(b.keyContent="",b.variableName="")):"string"===b.type&&(b.VariableId=null,b.variableName="",b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.variableName="",b.nameField="",b.VariableId=null,b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(c.system_field_options?(b.customField=!1,b.nameField=c.title.toLowerCase()):b.customField=!0)}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.system_field_options?c.system_field_options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"}).state("main.zendesk.view.configurations",{url:"/configurations",templateUrl:"app/zendesk/view/view.configurations.html"}).state("main.zendesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/zendesk/view/view.configurationSettings.html",controller:"ZendeskViewCtrl"}).state("main.zendesk.view.configuration",{url:"/configuration",templateUrl:"app/zendesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/zendesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{name:"Queue",value:"Queue"},{name:"Playback",value:"Playback"},{name:"Dial",value:"Dial"},{name:"Cally-Square IVR",value:"AGI"},{name:"GoTo",value:"Goto"},{name:"Hangup",value:"Hangup"},{name:"Set",value:"Set"},{name:"Custom",value:"custom"},{name:"VoiceMail",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}]};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,b,c){e.put("token",a),e.put("userId",b),e.put("name",c),g=d.me()},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===g.role},getRole:function(){return g.role},getToken:function(){return e.get("token")},getUserId:function(){return console.log(e.get("userId")),e.get("userId")},getName:function(){return e.get("name")}}}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]},chat:{conditions:[],actions:[]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]}},b=["voice","mail","chat","fax"],c={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},d={voice:{},mail:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]},chat:{},fax:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]}};return{automations:a,properties:d,channels:b,operators:c}}),angular.module("xCallyShuttleApp").service("desk_com",function(){var a=[{id:"priority",label:"Priority",custom:!1,data:{choices:[1,2,3,4,5,6,7,8,9,10]}},{id:"status",label:"Status",custom:!1,data:{choices:["new","open","pending","resolved","closed"]}},{id:"type",label:"Type",custom:!1,data:{choices:["chat","twitter","email","qna","facebook","phone"]}}];return{fields:a}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.$on("$includeContentLoaded",function(){Layout.initFooter()}),a.initFooter=function(){b.get("/api/settings/info").success(function(b){a.info=b}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.toogleSidebar=function(){k.layout.pageSidebarClosed=!k.layout.pageSidebarClosed,m.set("sidebarClosed",k.layout.pageSidebarClosed)},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3"),d={};"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var b=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});b.$on("click",function(){e.put("/api/report/mails/"+a.id,{connect:!0}).success(function(){b.close(),h.show("Mail properly assigned","success")}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("report_chat:save",function(a){d[a.uniqueid]&&(d[a.uniqueid].close(),delete d[a.uniqueid]),c.play(),d[a.uniqueid]=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot}),d[a.uniqueid].$on("click",function(){e.put("/api/report/chats/"+a.id,{connect:!0}).success(function(){d[a.uniqueid].close(),h.show("Chat properly assigned","success"),b.$broadcast("chatMessageEvent",{type:"external",chatRoomId:a.chatroomid})}).error(function(a){"SequelizeUniqueConstraintError"===a.name?h.show("Chat has been already assigned!","danger"):h.show(a.message,"danger")})})}),i.socket.on("chat_message:save",function(a){var d=m.get("chatRoomId");if(!d||d!==a.ChatRoomId){c.play();var e=f(a.User.fullname,{icon:"assets/images/media/channels/chat64.png",body:a.body.length>35?a.body.substring(0,35)+"...":a.body,delay:1e4});e.$on("click",function(){b.$broadcast("chatMessageEvent",{chatRoomId:a.ChatRoomId})})}}),i.socket.on("user_has_chat_room:save",function(a){c.play();var d=f("Chat Group ",{icon:"assets/images/media/channels/chat64.png",body:"New Chat Group",delay:1e4});d.$on("click",function(){b.$broadcast("chatGroupEvent",a)})})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.pluck(b,"FaxQueueId"),a.faxQueues.forEach(function(a){i.socket.on("FAX:QUEUE:"+a,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}),i.socket.on("FAX:AGENT:"+g.getCurrentUser().id,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}).error(function(a){console.error(a)}),i.socket.on("user_has_fax_queue:save",function(b){b=_.map(b,function(a){return a.UserId=parseInt(a.UserId,10),a}),b=_.find(b,{UserId:g.getCurrentUser().id}),b&&-1===_.indexOf(a.faxQueues,b.FaxQueueId)&&(a.faxQueues.push(b.FaxQueueId),i.socket.on("FAX:QUEUE:"+b.FaxQueueId,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})}))}),i.socket.on("user_has_fax_queue:remove",function(b){_.indexOf(b.where.UserId,g.getCurrentUser().id.toString())>=0&&_.indexOf(a.faxQueues,b.where.FaxQueueId)>=0&&(a.faxQueues=_.remove(a.faxQueues,b.where.FaxQueueId),i.socket.removeAllListeners("FAX:QUEUE:"+b.where.FaxQueueId))})},a.logout=function(){e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{
+value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",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{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){console.log("openModal",d);var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){console.log(Array.prototype.slice.call(arguments));var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerAddModal",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.modal={title:"APPLICATION_AGENTS_SELECTION"},a.ok=function(){b.close(_.union(_.pluck(a.selected.items,"id"),_.pluck(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerCloseModal",["$scope","$uibModalInstance",function(a,b){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.ok=function(){b.close()},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarController",["$scope","$rootScope","$window","$http","$uibModal","$log","$timeout","$interval","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate","QuickSidebarFactory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a.emojiMessage={},a.options=s.options,a.message={body:"",user:""};var t=a.currentUser=i.getCurrentUser();a.$on("$includeContentLoaded",function(){p.get("chatRoomId")&&l.get({id:p.get("chatRoomId")},u,v),p.get("currentTab")&&(a.currentTab=p.get("currentTab"))}),a.agents=j.get({page:0,per_page:1e3},function(){n.syncUpdates("agent",a.agents.rows)}),a.users=k.get({page:0,per_page:1e3},function(){n.syncUpdates("user",a.users.rows)}),a.currentTab=0,a.messagesTab=!1,a.chatRooms=l.me(function(b){a.chatRooms=b},function(a){console.error(a)}),n.socket.on("report_chat:assignment",function(a){a.agentid&&l.get({id:a.chatroomid},u,v)}),n.socket.on("chat_room:save",function(b){if(a.chatRoom&&a.chatRoom.id===b.id){_.merge(a.chatRoom,b);var c=_.find(a.chatRooms,{id:b.id});c&&_.merge(c,b)}}),n.socket.on("chat_message:save",function(b){a.chatRoom&&a.chatRoom.id===b.ChatRoomId&&(a.chatRoom.ChatMessages.push(b),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),n.socket.on("user_has_chat_room:save",function(b){var c=_.findIndex(a.chatRooms,{id:b.id});c>=0?a.chatRooms[c]=b:a.chatRooms.push(b)}),b.$on("chatMessageEvent",function(a,b){l.get({id:b.chatRoomId},u,v)}),b.$on("chatGroupEvent",function(b,c){a.currentTab=3,a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,a.chatRoom=c}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,p.set("currentTab",a.currentTab),p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.goToMessage=function(a,b){a?l.users({users:[t.id,a]},u,v):l.get({id:b},u,v)},a.sendMessage=function(){a.message.body.trim().length&&m.save({ChatRoomId:a.chatRoom.id,body:a.message.body},function(){a.message.body=""},function(a){console.error(a)})},a.goBack=function(){a.messagesTab=!1,a.chatRoom=null,p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.closeChatRoom=function(a,b){var c=e.open({animation:!0,size:b,templateUrl:"components/quickSidebar/modal/close.html",controller:"QuickSidebarControllerCloseModal"});c.result.then(function(){l.update({id:a,status:"close"}).$promise.then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})},a.addAgent=function(b,c){var g=e.open({animation:!0,size:c,templateUrl:"components/quickSidebar/modal/add.html",controller:"QuickSidebarControllerAddModal",resolve:{items:function(){return _.map(a.chatRoom.Users?a.chatRoom.Users:[],function(a){return{id:a.id,fullname:a.fullname}})}}});g.result.then(function(a){d.put("/api/chat/rooms/"+b+"/users",{users:a}).then(function(a){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})};var u=function(b){switch(a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,p.set("chatRoomId",b.id),p.set("messagesTab",a.messagesTab),a.chatRoom=b,b.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2,_.find(a.chatRooms,{id:b.id})||a.chatRooms.push(b)}b.Users.length>2&&(a.currentTab=3),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1500)},v=function(a){console.error(a)},w=function(){var b=angular.element(c),d=function(){return{h:b.height(),w:b.width()}};a.$watch(d,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),b.bind("resize",function(){a.$apply()})};w(),a.$on("$destroy",function(){n.unsyncUpdates("agent"),n.unsyncUpdates("user")})}]),angular.module("xCallyShuttleApp").directive("resizeQuickSidebar",["$window",function(a){return function(b){var c=angular.element(a);b.getWindowDimensions=function(){return{h:c.height(),w:c.width()}},b.$watch(b.getWindowDimensions,function(a){b.style={height:a.h-46-46-46+"px"}},!0),c.bind("resize",function(){b.$apply()})}}]),angular.module("xCallyShuttleApp").factory("QuickSidebarFactory",function(){return{options:{link:!0,linkTarget:"_blank",pdf:{embed:!1},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,ytAuthKey:"_nkO9h1A7HlVyiUICO17oA"}}}}),angular.module("xCallyShuttleApp").filter("QuickSidebarFilterUsersGreaterThan",function(){return function(a,b){var c=[];return a.forEach(function(a){var d=0;a.ChatVisitor&&d++,d+=a.Users.length,d>b&&c.push(a)}),c}}).filter("QuickSidebarFilterUsersLowerThan",function(){return function(a,b){var c=[];return a.forEach(function(a){a.Users.length<b&&c.push(a)}),c}}),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","$http","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i){a.Auth=e,a.$stateParams=h,a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.isAssociated=function(a){if(e.isAdmin())return!0;if(e.getCurrentUser().Modules)for(var b=0;b<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.getSidebarIntegrations=function(){f.get("/api/integrations").success(function(b){a.integrations=b,i.syncUpdates("integration",a.integrations)}).error(function(a){g.show(a.message,"danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard"),i.unsyncUpdates("integration")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","$window","socketFactory","Auth",function(a,b,c,d){var e=d.getCurrentUser(),f=io("",{query:"token="+d.getToken()+"&userId="+(e.id||d.getUserId())+"&name="+(e.name||d.getName())+"&role="+(e.role||"agent")+"&source=browser",path:"/socket.io-client"}),g=c({ioSocket:f});return a.$on("logout",function(){g&&(g.disconnect(!0),b.location.reload())}),{socket:g,syncUpdates:function(a,b,c){c=c||angular.noop,g.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),g.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){g.removeAllListeners(a+":save"),g.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,g.on(a+":save",function(a){var e=!0;if(_.forIn(b,function(b,c){return a[c]&&a[c]===b?!0:e=!1}),e){var f=_.find(c,{id:a.id}),g=c.indexOf(f),h="created";f?(_.merge(c[g],a),h="updated"):c.unshift(a),d(h,a,c)}}),g.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",function(){var a={voice:{conditions:[{name:"APPLICATION_QUEUE",value:"queue",propertyField:"select",operators:"equals"},{name:"APPLICATION_CALL_STATUS",value:"lastevent",propertyField:"select",operators:"equals"}],actions:[{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"},{name:"APPLICATION_INTEGRATIONS",value:"integration",propertyField:"select",subField:{propertyField:"select",value:"account",api:{url:void 0,parseUrl:"/api/%s/accounts",query:void 0},subField:{propertyField:"select",value:"configuration",api:{url:void 0,parseUrl:"/api/%s/configurations",query:{field:"AccountId"}}}}}]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",propertyField:"input",operators:"equals"},{name:"APPLICATION_CC",value:"cc",propertyField:"input",operators:"equals"},{name:"APPLICATION_SUBJECT",value:"subject",propertyField:"input",operators:"equals"}],actions:[{name:"APPLICATION_TEMPLATE",value:"template",propertyField:"select",subField:{propertyField:"select",value:"smtp"}},{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},b={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},c={voice:{lastevent:[{name:"APPLICATION_LASTEVENT_RINGING",value:"called"},{name:"APPLICATION_LASTEVENT_UP",value:"connect"},{name:"APPLICATION_LASTEVENT_COMPLETE",value:"complete"},{name:"APPLICATION_LASTEVENT_REJECTED",value:"rejected"},{name:"APPLICATION_LASTEVENT_ABANDONED",value:"abandoned"}]},mail:{},chat:{},fax:{}},d=["voice","mail","chat","fax"];return{triggers:a,properties:c,operators:b,channels:d}}),angular.module("xCallyShuttleApp").service("variable",function(){var a=[{title:"Unique ID",name:"uniqueid",group:"voice_queue"},{title:"Caller Number",name:"calleridnum",group:"voice_queue"},{title:"Caller Name",name:"calleridname",group:"voice_queue"},{title:"Queue",name:"queue",group:"voice_queue"},{title:"Called Number",name:"destcalleridnum",group:"voice_queue"},{title:"Called Name",name:"destcalleridname",group:"voice_queue"},{title:"Hold Time",name:"holdtime",group:"voice_queue"},{title:"Talk Time",name:"talktime",group:"voice_queue"},{title:"Connected Time",name:"agentconnectAt",group:"voice_queue"},{title:"Called Time",name:"agentcalledAt",group:"voice_queue"},{title:"DNID",name:"destexten",group:"voice_queue"},{title:"Complete Time",name:"agentcompleteAt",group:"voice_queue"},{title:"No Answer Time",name:"agentringnoanswerAt",group:"voice_queue"}];return a}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).value("apiServiceUrlCounter","/api/widgets/counter").config(["dashboardProvider",function(a){a.widget("counter",{title:"Counter",description:"Counter for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["$q","$http","apiServiceUrlCounter",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.colors=[{name:"Blue",value:"blue-madison"},{name:"Red",value:"red-intense"},{name:"Green",value:"green-haze"},{name:"Purple",value:"purple-plum"},{name:"Orange",value:"yellow-casablanca"},{name:"Yellow",value:"yellow-crusta"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.condition&&a.config.report&&c.get(a.config).then(function(b){a.count=parseInt(b[0].count)})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","<form role=form><div class=form-group><label class=control-label>{{'APPLICATION_REPORT' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_REPORT' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_CONDITION' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=\"{{'APPLICATION_CONDITION' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if="count || count === 0"><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{count}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!count && count != 0"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).value("apiServiceUrlPieChart","/api/widgets/piechart").config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["$q","$http","apiServiceUrlPieChart",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&1===b.length){a.labels=[],a.data=[];for(var c in b[0])a.labels.push(c),a.data.push(b[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}();var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),
+(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'<div class="icheck_line-icon"></div>'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){(""===a.val()||a.val()==a.attr("placeholder"))&&a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible")?!0:!1,railVisible:"1"==$(this).attr("data-rail-visible")?!0:!1,disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"==typeof angular?!1:!0},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0")},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('<span class="selected"></span>')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/agent/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-people"></i>\n                                   <a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-people font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_AGENTS\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="agents.checked.length">\n                                          <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AGENT\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/agents/wizard">\n                                                             <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAgents([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="agents.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedAgents" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                  <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n                                                <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n                                                    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="agent in displayedAgents" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="agents.checked" checklist-value="agent.id"></td>\n                                                               <td>{{agent.fullname}}</td>\n                                         <td>{{agent.name}}</td>\n                                       <td><a data-ng-href="mailto:{{agent.email}}">{{agent.email}}</a></td>\n                                         <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/agents/view/{{agent.id}}/account">\n                                                                           {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(agent.fullname,agent.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedAgents.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>No agents available</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/view/view.account.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n                               </div>\n                                <ul class="nav nav-tabs">\n                                     <li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n                                               <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n                                       </li>\n                                 <li data-ng-show="Auth.isAdmin()">\n                                            <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n                                       </li>\n                                 <li data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}">\n                                            <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- PERSONAL INFO TAB -->\n                                    <div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n                                                <form name="forms.info" data-ng-submit="updateItem()" novalidate>\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="agent.fullname" required/>\n                                                          <span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="agent.name" required/>\n                                                              <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START EMAIL -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="agent.email" required/>\n                                                              <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n                                                           </span>\n                                                       </div>\n                                                        <!-- END EMAIL -->\n\n                                                  <!-- START INTERNAL -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="agent.internal" required disabled/>\n                                                              <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERNAL -->\n\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END PERSONAL INFO TAB -->\n                                        <!-- CHANGE AVATAR TAB -->\n                                    <div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n                                             <form action="#" role="form">\n                                                 <div class="form-group">\n                                                              <div class="fileinput fileinput-new" data-provides="fileinput">\n                                                                       <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n                                                                            <img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n                                                                   </div>\n                                                                        <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n                                                                       </div>\n                                                                        <div>\n                                                                         <span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n                                                                                 <span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n                                                                                 <input type="file" nv-file-select="" uploader="uploader" /><br/>\n                                                                              </span>\n                                                                               <button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n                                                                                    {{ \'APPLICATION_REMOVE\' | translate }}\n                                                                              </button>\n                                                                             <button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n                                                                                     {{ \'APPLICATION_CONFIRM\' | translate }}\n                                                                             </button>\n                                                                     </div>\n                                                                        <p>\n                                                                           </br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n                                                                  </p>\n                                                          </div>\n                                                        </div>\n                                                </form>\n                                               <div class="row">\n                                                     <div class="col-md-2">\n                                                                <table class="table" border="0">\n                                                                      <tbody>\n                                                                       <tr data-ng-repeat="item in uploader.queue">\n                                                                                  <td style="border-top-style:none">\n                                                                                            <strong>\n                                                                                                      {{ item.file.name }}\n                                                                                          </strong>\n                                                                                     </td>\n                                                                                 <td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n                                                                                             {{ item.file.size/1024/1024|number:2 }} MB\n                                                                                    </td>\n                                                                                 <td nowrap style="border-top-style:none">\n                                                                                             <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                            <span class="glyphicon glyphicon-trash"></span> Remove\n                                                                                                </button>\n                                                                                     </td>\n                                                                         </tr>\n                                                                 </tbody>\n                                                              </table>\n                                                      </div>\n                                                </div>\n                                        </div>\n                                        <!-- END CHANGE AVATAR TAB -->\n                                        <!-- CHANGE PASSWORD TAB -->\n                                  <div class="tab-pane" data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}" id="tab_1_3">\n                                             <form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n                                                  <!-- START CURRENT PWD -->\n                                                    <div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.currentPwd" required/>\n                                                             <span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CURRENT PWD -->\n                                                      <!-- START NEW PWD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.newPwd" required/>\n                                                         <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NEW PWD -->\n                                                  <!-- START RE-NEW PWD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.reNewPwd" nx-equal="agent.newPwd" required/>\n                                                            <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RE-NEW PWD -->\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END CHANGE PASSWORD TAB -->\n                              </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/agent/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-people"></i>\n                                   <a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{agent.fullname}}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-userpic">\n                                 <img ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- START SIDEBAR USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{agent.fullname}}\n                                    </div>\n                                        <div class="profile-usertitle-job">\n                                           {{agent.role}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.agents.view.account\')}">\n                                                        <a data-ng-href="/agents/view/{{agent.id}}/account">\n                                                  <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n\n          <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n       <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-people"></i>\n                           <a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/agents/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                 </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n        <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-user font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }} WIZARD</a> </span>\n              </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n                     <form name="forms.info" novalidate>\n\n                           <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n                                                   <span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                           <!-- START USERNAME -->\n                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/agents/validate/name"/>\n                                                        <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                                                       <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END USERNAME -->\n\n                       <!-- START EMAIL -->\n                          <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n                             <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/agents/validate/email"/>\n                               <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                               <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n                         </span>\n                                                       <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n                          </span>\n                             </div>\n                        <!-- END EMAIL -->\n\n                          <!-- START PASSWORD -->\n                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                           <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END PASSWORD -->\n\n                       <!-- START RE PASSWORD -->\n                            <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n                             <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n                                <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                               <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END RE PASSWORD -->\n\n                                              <!-- START INTERNAL -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                      <div class="input-group">\n                                                     <input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/agents/validate/internal"/>\n                                                   <span class="input-group-addon">\n                                                              <input type="checkbox" data-ng-model="item.internalEnabled">\n                                                  </span>\n                                                       </div>\n                                                        <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                                       <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERNAL -->\n\n                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                            </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n                                  <form name="forms.voice" novalidate>\n\n                                                <!-- START ACCOUNTCODE -->\n                                            <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                  <input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n                                                    <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div> -->\n                                            <!-- END ACCOUNTCODE -->\n\n                                            <!-- START TRANSPORT -->\n                                              <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n                                                       <ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n                                                  <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n                                                <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n                                                    {{transport}}\n                                             </ui-select-choices>\n                                                </ui-select>\n                                                        <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n                                                     </span>\n                                               </div>\n                                                <!-- END TRANSPORT -->\n\n                                              <!-- START HOST -->\n                                           <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n                                                   <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div> -->\n                                            <!-- END HOST -->\n\n                                           <!-- START NAT -->\n                                            <!-- <div class="form-group">\n                                                 <label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n                                                     <ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n                                                          <ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n                                                            <ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n                                                                    {{nat}}\n                                                               </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n                                                   </span>\n                                               </div> -->\n\n                                          <!-- END NAT -->\n\n                                            <!-- START TYPE -->\n                                           <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n                                                          <ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n                                                         <ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n                                                                        <div ng-bind-html="type | highlight: $select.search"></div>\n                                                           </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div> -->\n                                            <!-- END TYPE -->\n\n                                           <!-- START CODEC -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n                                                  <ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n                                                  <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n                                                    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n                                                  {{allow}}\n                                                 </ui-select-choices>\n                                                </ui-select>\n                                                        <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n                                                 </span>\n                                               </div>\n                                                <!-- END CODEC -->\n\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              <input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n                                   </form>\n                               </wz-step>\n\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/analytic/extracted/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-file-pdf-o"></i>\n                                      <a href="/analytics/extracted/list">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-file-pdf-o font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Extracts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getExtracts([\'name\',\'startDate\',\'endDate\'])" csv-header="[\'Name\', \'Start Date\', \'End Date\']" field-separator=";" filename="extracted_reports.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedExtracts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="8">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.extractsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="extractByPage in extractsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="extractByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(extract, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="startDate">{{ \'APPLICATION_START_DATE\' | translate }}</th>\n                                                 <th st-sort="endDate">{{ \'APPLICATION_END_DATE\' | translate }}</th>\n                                                             <th st-sort="createdAt">{{ \'APPLICATION_RUN_DATE\' | translate }}</th>\n                                                               <th st-sort="output">{{ \'APPLICATION_OUTPUT\' | translate }}</th>\n                                                            <th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="extract in displayedExtracts" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input data-ng-hide="extract.defaultEntry" type="checkbox" checklist-model="Extracts.checked" checklist-value="extract.id"></td>\n                                                               <td>{{extract.name}}</td>\n                                           <td>{{extract.startDate}}</td>\n                                                          <td>{{extract.endDate}}</td>\n                                                          <td>{{extract.createdAt}}</td>\n                                                                <td>{{extract.output}}</td>\n                                                           <td>{{extract.status}}</td>\n                                         <td>\n                                                                    <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(extract.name,extract.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                          <motion-file-download data-ng-show="extract.status == \'completed\'" url="\'/api/analytics/extracted/download/\'+extract.id" mimetype="\'application/\'+extract.output.toLowerCase()" filename="extract.name+\'_\'+moment(extract.startDate).format(\'MM-DD-YYYY\').toString()+\'_\'+moment(extract.endDate).format(\'MM-DD-YYYY\').toString()+\'.\'+extract.output.toLowerCase()"></motion-file-download>\n                                          </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedExtracts.length">\n                                                          <td colspan="8" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_EXTRACTED_REPORTS_AVAILABLE\' | translate }}</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="startDate" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_START_DATE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                     </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="endDate" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_END_DATE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                                </td>\n                                                         <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="createdAt" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_RUN_DATE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                       </div>\n                                                                </td>\n                                                         <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="output" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_OUTPUT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                                </td>\n                                                         <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="status" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STATUS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                                </td>\n                                             <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="8" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.extractsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<motion-file-download url="\'/api/analytics/extracted/download/39\'" mimetype="\'application/pdf\'" filename="\'asdasd.pdf\'"></motion-file-download>\n\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_METRIC\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.metric" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TABLE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.table" name="table" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n          <div ng-bind-html="table.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TABLE-->\n\n    <!-- START METRIC -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$invalid}">\n      <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="item.metric" required/></textarea>\n      <span data-ng-show="(forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END METRIC -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.metric.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/metric/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-calculator"></i>\n                                       <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-calculator font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_METRICS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Metrics.checked.length">\n                                         <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_METRIC\' | translate }}\n                                                </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getMetrics([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="metrics.csv">\n                                       <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedMetrics" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                 <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.metricsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="metricByPage in metricsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="metricByPage.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(metric, checked)" checklist-model checklist-value="id"></th>\n                                                   <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="metric in displayedMetrics" class="animate-repeat">\n                                                           <td style="text-align: center; vertical-align: middle"><input data-ng-hide="metric.defaultEntry" type="checkbox" checklist-model="Metrics.checked" checklist-value="metric.id"></td>\n                                                          <td>{{metric.name}}</td>\n                                            <td>{{metric.description}}</td>\n                                       <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/analytics/metrics/view/{{metric.id}}/settings" data-ng-class="{\'disabled\': metric.defaultEntry}">\n                                                                          {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(metric.name,metric.id)" data-ng-class="{\'disabled\': metric.defaultEntry}">\n                                                                               {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedMetrics.length">\n                                                           <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_METRICS_AVAILABLE\' | translate }}</i>\n                                                             </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.metricsByPage.value" st-displayed-pages="7"></div>\n                                             </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/analytic/metric/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMetric()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                                       <i data-ng-show="metric" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="metric">\n                                    <a href="#">{{metric.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/metric.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{metric.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.metrics.view.settings\')}">\n                                                    <a data-ng-href="/analytics/metrics/view/{{metric.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMetric()" novalidate>\n\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="metric.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START TABLE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="metric.table" name="table" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n                                                                          <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TABLE-->\n\n                                                   <!-- START METRIC -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="metric.metric" required/></textarea>\n                                                             <span data-ng-show="(forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END METRIC -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/analytic/report/list/copy.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_COPY_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="portlet light bordered">\n    <div class="portlet-title">\n      <div class="caption font-green-sharp" style="padding-left:10px;">\n        <i class="icon-folder font-green-sharp"></i>\n        <span class="caption-subject">{{ \'APPLICATION_COPY_TO\' | translate }} </span>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;"></div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-disabled="!customTree.get_selected(true).pop().id" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.report" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PATH\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_PATH\' | translate}}" class="form-control" data-ng-model="path" disabled/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/extract.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_EXTRACT_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn default green-jungle" type="button" data-ng-click="extract(\'csv\')"><i class="fa fa-file-excel-o"></i> {{ \'APPLICATION_SAVE_AS_CSV\' | translate }}</button>\n  <button class="btn default red-intense" type="button" data-ng-click="extract(\'pdf\')"><i class="fa fa-file-pdf-o"></i> {{ \'APPLICATION_SAVE_AS_PDF\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrees()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n                <div class="col-fixed">\n                       <!-- BEGIN Portlet PORTLET-->\n                 <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp" style="padding-left:10px;">\n                                             <i class="icon-folder font-green-sharp"></i>\n                                          <span class="caption-subject">{{ \'APPLICATION_FOLDERS\' | translate }} </span>\n                                       </div>\n                                        <div class="inputs">\n                                          <div class="portlet-input input-inline input-small">\n                                                  <div class="input-icon right">\n                                                                <i class="icon-magnifier"></i>\n                                                                <input type="text" data-ng-model="searchField" data-ng-change="searchTrees()" class="form-control input-circle" placeholder="search...">\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <div js-tree="defaultTreeConfig" ng-model="defaultTreeData" should-apply="ac()" tree="defaultTreeInstance" tree-events="ready:initDefaultScopeTree;select_node:selectDefaultNode;"></div>\n                                     <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;select_node:selectCustomNode;rename_node:updateCustomTree;delete_node:updateCustomTree;move_node:updateCustomTree;create_node:updateCustomTree;"></div>\n                                </div>\n                        </div>\n                        <!-- END Portlet PORTLET-->\n           </div>\n                <div class="row tree-row">\n                    <div class="col-md-12">\n                               <!-- BEGIN Portlet PORTLET-->\n                         <div class="portlet light bordered">\n                                  <div class="portlet-title">\n                                           <div class="caption font-green-sharp">\n                                                        <i class="icon-book-open font-green-sharp"></i>\n                                                       <span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}<span data-ng-if="selectedNode"> - {{selectedNode}}</span></span>\n                                              </div>\n                                                <div data-ng-if="!defaultTreeActive" class="actions">\n                                                 <div class="btn-group" data-ng-show="Reports.checked.length">\n                                                         <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                                           </a>\n                                                  </div>\n                                                        <div class="btn-group">\n                                                               <span class="btn default btn-file">\n                                                           <span class="fileinput-new">\n                                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_JSON\' | translate}}</span>\n                                                             <input type="file" on-read-file="import($fileContent)"/>\n                                                              </span>\n                                                       </div>\n                                                        <div class="btn-group">\n                                                               <button class="btn green-jungle " ng-click="create()">\n                                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n                                                                </button>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                        <div class="portlet-body">\n                                            <!-- START TABLE -->\n                                          <table data-ng-if="defaultTreeReady && customTreeReady" st-table="displayedReports" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                                        <div class="table-responsive" data-ng-init="firstSelect()">\n                                                           <thead>\n                                                                       <tr>\n                                                                          <th colspan="5">\n                                                                                      <div class="row">\n                                                                                             <div class="col-md-6">\n                                                                                                        <ui-select class="input-xsmall" ng-model="conf.reportsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                                             <ui-select-choices repeat="reportByPage in reportsByPage | filter: $select.search">\n                                                                                                                   <div ng-bind-html="reportByPage.name | highlight: $select.search"></div>\n                                                                                                              </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                                <div class="col-md-6">\n                                                                                                        <div class="input-group input-medium pull-right">\n                                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                                         <span class="input-group-addon">\n                                                                                                                      <i class="fa fa-search"></i>\n                                                                                                          </span>\n                                                                                                       </div>\n                                                                                                </div>\n                                                                                        </div>\n                                                                                </th>\n                                                                 </tr>\n                                                                 <tr>\n                                                                          <th class="small-cells" style="text-align: center; vertical-align: middle"><input data-ng-checked="Reports.checked.length" data-ng-hide="defaultTreeActive" type="checkbox" ng-change="check(report, checked)" checklist-model checklist-value="id"></th>\n                                                                             <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                          <th>{{ \'APPLICATION_MANAGE\' | translate }}</th>\n                                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                                    </tr>\n                                                         </thead>\n                                                              <tbody>\n                                                                       <tr data-ng-repeat="report in displayedReports" class="animate-repeat">\n                                                                               <td style="text-align: center; vertical-align: middle"><input data-ng-hide="defaultTreeActive" type="checkbox" checklist-model="Reports.checked" checklist-value="report.id"></td>\n                                                                            <td>{{report.name}}</td>\n                                                                              <td>{{report.description}}</td>\n                                                                               <td>\n                                                                                  <a data-ng-if="!defaultTreeActive" class="btn default btn-xs blue-stripe" data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                                                     </a>\n                                                                                  <a data-ng-if="!defaultTreeActive" class="btn default btn-xs red-stripe" data-ng-click="deleteItem(report.name,report.id)">\n                                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                                                                      </a>\n                                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="copy(report.id)">\n                                                                                           {{ \'APPLICATION_COPY\' | translate }}\n                                                                                        </a>\n                                                                                  <a class="btn default btn-xs purple-stripe" data-ng-click="export(report.id)">\n                                                                                                {{ \'APPLICATION_EXPORT\' | translate }}\n                                                                                      </a>\n                                                                          </td>\n                                                                         <td>\n                                                                                  <a class="btn default btn-xs yellow-stripe" data-ng-click="preview(report.id)">\n                                                                                               {{ \'APPLICATION_PREVIEW\' | translate }}\n                                                                                     </a>\n                                                                                  <button type="button" data-ng-click="extract(report.id)" class="btn default btn-xs green-seagreen-stripe">\n                                                                                            {{ \'APPLICATION_RUN \' | translate }}\n                                                                                        </button>\n                                                                             </td>\n                                                                 </tr>\n                                                                 <tr data-ng-hide="displayedReports.length">\n                                                                           <td colspan="5" style="text-align:center;">\n                                                                                   <i>{{ \'MESSAGE_NO_REPORTS_AVAILABLE\' | translate }}</i>\n                                                                             </td>\n                                                                 </tr>\n                                                         </tbody>\n                                                              <tfoot>\n                                                                       <tr>\n                                                                          <td/>\n                                                                         <td>\n                                                                                  <div class="input-icon right">\n                                                                                                <i class="fa fa-search"></i>\n                                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                                        </div>\n                                                                                </td>\n                                                                         <td>\n                                                                                  <div class="input-icon right">\n                                                                                                <i class="fa fa-search"></i>\n                                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                                  </div>\n                                                                                </td>\n                                                                         <td/>\n                                                                         <td/>\n                                                                 </tr>\n                                                                 <tr>\n                                                                          <td colspan="5" class="text-center">\n                                                                                  <div st-pagination class="pagination" st-items-by-page="conf.reportsByPage.value" st-displayed-pages="7"></div>\n                                                                               </td>\n                                                                 </tr>\n                                                         </tfoot>\n                                              </div>\n                                                </table>\n                                              <!-- END TABLE -->\n                                    </div>\n                                </div>\n                                <!-- END Portlet PORTLET-->\n                   </div>\n                </div>\n        </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/list/preview.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_REPORT_PREVIEW\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n  <div ng-slide-down="showResult" lazy-render duration="1">\n    <div ui-grid="gridOptions" ui-grid-pagination ui-grid-exporter class="grid extract-grid"></div>\n  </div>\n</div>\n<div class="modal-footer">\n<button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getReport()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                                       <i data-ng-show="report" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="report">\n                                    <a href="#">{{report.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/report.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{report.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.reports.view.settings\')}">\n                                                    <a data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_REPORT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li>\n                                          <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li class="active">\n                                           <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_BUILD\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab" data-ng-click="showResult = true">{{ \'APPLICATION_TEST_PREVIEW\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n\n                          <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane" id="tab_1_1">\n                                           <form name="forms.general" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="report.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="report.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TABLE INPUT -->\n\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                                     </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane active" id="tab_1_2">\n                                            <form name="forms.report" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="report.table" name="table" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="table.table as table in tables | filter: $select.search">\n                                                                  <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                     </span>\n                                                       <span data-ng-show="(forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TABLE INPUT-->\n                                               <div data-ng-if="report.table" class="mbottom20 pbottom20">\n                                           <div class="portlet-title tabbable-line">\n                                                     <div class="caption caption-md">\n                                                              <i class="icon-globe theme-font hide"></i>\n                                                            <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_FIELDS\' | translate}} </span>\n                                                        </div>\n                                                </div>\n                                                                <!-- START TABLE -->\n                                                          <table class="table table-striped table-bordered table-hover">\n                                                                        <thead>\n                                                                               <tr>\n                                                                                  <th>{{ \'APPLICATION_FIELD\' | translate }} / {{ \'APPLICATION_METRIC\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ALIAS\' | translate }}</th>\n                                                                                      <th>{{ \'APPLICATION_FUNCTION\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_GROUP_BY\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ORDER_BY\' | translate }}</th>\n                                                                                   <th></th>\n                                                                                     <th></th>\n                                                                             </tr>\n                                                                 </thead>\n                                                                              <tbody ui-sortable="sortableOptions" data-ng-model="report.Fields">\n                                                                                   <tr data-ng-repeat="field in report.Fields">\n                                                                                          <td>\n                                                                                                  <!-- START FIELD -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.field}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.field" dynamic-name="randomName()" theme="bootstrap" required>\n                                                                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}"><span ng-bind-html="$select.selected.name"></span></ui-select-match>\n                                                                                                                     <ui-select-choices repeat="tableField.value as tableField in tableFields | filter: $select.search">\n                                                                                                                           <div ng-bind-html="tableField.name | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                          <span data-ng-show="forms.report.$submitted && !field.field" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END FIELD-->\n                                                                                             </td>\n                                                                                         <td>\n                                                                                                  <!-- START ALIAS -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.alias}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_ALIAS\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <input type="text" dynamic-name="randomName()" placeholder="{{\'APPLICATION_ALIAS\' | translate}}" class="form-control" data-ng-model="field.alias" required/>\n                                                                                                                <span data-ng-show="forms.report.$submitted && !field.alias" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END ALIAS -->\n                                                                                            </td>\n                                                                                         <td>\n                                                                                                  <!-- START FUNCTION -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.function" name="function" theme="bootstrap">\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_FUNCTION\' | translate}}" allow-clear>{{$select.selected.name}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="function.value as function in functions | filter: $select.search">\n                                                                                                                         <div ng-bind-html="function.name | highlight: $select.search"></div>\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END FUNCTION-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START GROUP_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.groupBy" name="groupBy" theme="bootstrap" required>\n                                                                                                                   <ui-select-match placeholder="{{\'APPLICATION_GROUP_BY\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="groupBy.value as groupBy in groupByField | filter: $select.search">\n                                                                                                                                {{$translate.instant(groupBy.name)}}\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END GROUP_BY-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START ORDER_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.orderBy" name="orderBy" theme="bootstrap">\n                                                                                                                    <ui-select-match placeholder="{{\'APPLICATION_ORDER_BY\' | translate}}" allow-clear>{{$select.selected}}</ui-select-match>\n                                                                                                                    <ui-select-choices repeat="orderBy in [\'ASC\',\'DESC\'] | filter: $select.search">\n                                                                                                                           <div ng-bind-html="orderBy | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END TABLE INPUT-->\n                                                                                               </td>\n                                                                                         <td class="report-field-remove">\n                                                                                                      <button class="btn red" type="button" data-ng-click="removeField($index)"><i class="fa fa-times"></i></button>\n                                                                                                </td>\n                                                                                         <td class="report-field-handle">\n                                                                                                      <!-- <img data-ng-src="assets/images/move.png" class="img-responsive"> -->\n                                                                                            </td>\n                                                                                 </tr>\n                                                                                 <tr data-ng-hide="report.Fields.length" class="unsortable">\n                                                                                           <td colspan="7" style="text-align:center;">\n                                                                                                   <i>{{ \'MESSAGE_ADD_A_FIELD\' | translate }}</i>\n                                                                                              </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                              </table>\n                                                              <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}\n                                                          </button>\n                                                             <!-- END TABLE -->\n                                                    </div>\n                                                                <div data-ng-if="report.Fields.length" class="mbottom20 pbottom20">\n                                                                   <div class="portlet-title tabbable-line">\n                                                                             <div class="caption caption-md">\n                                                                                      <i class="icon-globe theme-font hide"></i>\n                                                                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONDITIONS\' | translate}} </span>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="alert alert-info">\n                                                                                        <strong>Output</strong><br>\n                                                                                   <span ng-bind-html="output"></span>\n                                                                   </div>\n\n                                                                      <report-builder group="report.conditions.group" fields="report.Fields" forms="forms" firstCall=\'true\'></report-builder>\n                                                             </div>\n                                                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                          </form>\n                                                               <!-- <pre>\n                                                                    {{report | json}}\n                                                             </pre> -->\n\n                                  </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <div ng-slide-down="showResult" lazy-render duration="0.5">\n                                                   <div ui-grid="gridOptions" ui-grid-move-columns class="grid"></div>\n                                           </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/automation/list/list.html",'<div class="row">\n     <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bulb"></i>\n                                             <a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-bulb font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Automations.checked.length">\n                                             <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n                                           </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/automations/wizard">\n                                                                <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="automations.csv">\n                                       <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                     <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.AutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="AutomationByPage in AutomationsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="AutomationByPage.name | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                              <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Automation, checked)" checklist-model checklist-value="id"></th>\n                                               <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="Automation in displayedAutomations">\n                                                          <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Automations.checked" checklist-value="Automation.id"></td>\n                                           <td>{{Automation.name}}</td>\n                                                            <td>{{Automation.description}}</td>\n                                                           <td>{{Automation.channel | capitalize}}</td>\n                                                          <td>\n                                                                  <input\n                                                                                data-ng-change="updateItem(Automation.id, Automation.status)",\n                                                                    bs-switch\n                                                             ng-model="Automation.status"\n                                                                  type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ onText }}"\n                                                                 switch-off-text="{{ offText }}"\n                                                               switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                          </td>\n                                       <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/automations/view/{{Automation.id}}/settings">\n                                                                                {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Automation.name, Automation.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedAutomations.length">\n                                                               <td colspan="6" class="text-center">\n                                                                  <i>No available automations</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                                </td>\n                                                         <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.AutomationsByPage.value" st-displayed-pages="7"></div>\n                                         </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                 <i class="fa fa-angle-right" data-ng-show="automation"></i>\n                           </li>\n                         <li data-ng-show="automation">\n                                        <a href="#">{{ automation.description || automation.name }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ automation.name }}\n                                 </div>\n                                        <div class="profile-usertitle-job">\n                                           {{ automation.description }}\n                                  </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.automations.view.settings\')}">\n                                                  <a href="/automations/view/{{automation.id}}/settings">\n                                                       <i class="icon-bulb"></i>\n                                                     {{ \'APPLICATION_SETTINGS\' | translate }} </a>\n                                               </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <!-- <pre>\n                                    {{conditionsData.query | json}}\n                               </pre>\n                                <pre>\n                                 {{actionsData.query | json}}\n                          </pre> -->\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateAutomation()" novalidate>\n                                                    <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n                                                             <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane" id="tab_1_2">\n                                   <div class="portlet light bordered">\n                                          <div class="portlet-title">\n                                                   <div class="caption font-blue-hoki">\n                                                          <i class="icon-tag font-blue-hoki"></i>\n                                                               <span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n                                                        </div>\n                                                </div>\n                                                <div class="portlet-body">\n                                                    <query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[automation.channel]"></query-builder>\n                                              </div>\n                                        </div>\n                                        <div class="portlet light bordered">\n                                          <div class="portlet-title">\n                                                   <div class="caption font-blue-hoki">\n                                                          <i class="icon-tag font-blue-hoki"></i>\n                                                               <span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n                                                   </div>\n                                                </div>\n                                                <div class="portlet-body">\n                                                    <query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[automation.channel]"></query-builder>\n                                               </div>\n                                        </div>\n\n                                              <input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateAutomation()"/>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/automation/wizard/wizard.html",'<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-bulb font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <!-- <pre>\n                                            {{item | json}}\n                                       </pre>\n                                        <pre>\n                                         {{conditionsData.query | json}}\n                                       </pre>\n                                        <pre>\n                                         {{actionsData.query | json}}\n                                  </pre> -->\n                                    <wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                                              <form name="forms.general" data-ng-submit="submit()" novalidate>\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.general.name.$touched && forms.general.name.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.general.name.$touched && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                            </form>\n                                       </wz-step>\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(conditionsData.query.length && actionsData.query.length)">\n                                          <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n                                                           </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <div class="form-group"  >\n                                                                    <label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n                                                                            <ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                          <ui-select-choices repeat="channel in $automations.channels | filter: $select.search">\n                                                                                        <div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n                                                                           </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                        </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n                                                                </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[item.channel]"></query-builder>\n                                                    </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n                                                           </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n                                                     </div>\n                                                </div>\n                                                <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                    </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/preview/preview.html",'<style>\n  .xc_footer\n  {\n        text-align: center;\n   padding-bottom: 5px;\n  }\n\n  .xc_powered\n  {\n       color: grey;\n    font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n     padding-bottom: 5px;\n  }\n\n  .xc_chat_container\n  {\n        //width:379px;\n        //position:fixed;\n     //bottom:0;\n   //right:50px;\n         z-index:9999;\n         background-color:transparent;\n  }\n\n  .xc_chat_container *\n  {\n     font-family:Arial,Helvetica,sans-serif;\n       font-size:13px;\n       margin:0;\n     padding:0;\n  }\n\n  .xc_chat_container p\n  {\n        margin:5px 0;\n  }\n\n  .xc_signup_wrapper\n  {\n       max-height:375px;\n  }\n\n  .xc_conversation_container\n  {\n   max-height:375px;\n     list-style:none;\n      overflow:auto;\n        margin:0;\n     padding:20px 10px;\n  }\n\n  .xc_conversation_container a\n  {\n        color:#036;\n  }\n\n  .xc_conversation_container a.xc_btn_style\n  {\n          color:#fff;\n  }\n\n  div.xc_chat_head\n  {\n   color:#fff;\n   background:{{chatWebsite.color}};\n     //border-radius: 20px 20px 0px 0px !important;\n        height:52px;\n          line-height:55px;\n     cursor:pointer;\n  }\n\n  div.xc_chat_head.rounded\n  {\n       border-radius: 20px 20px 0px 0px !important;\n  }\n\n  div.xc_chat_head.squared\n  {\n          //border-radius: 20px 20px 0px 0px !important;\n  }\n\n  .xc_chat_head-title\n  {\n     margin:5px 0 0 15px;\n          color: #fff;\n  }\n\n  .xc_header_icon\n  {\n   display:block;\n        background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n         width:21px;\n   height:16px;\n          float:right;\n          margin:20px 20px 0 0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n          display:block;\n        height:16px;\n          width:15px;\n   text-align:center;\n    font-size:9px;\n        color:#555;\n   position:relative;\n    top:-20px;\n    left:4px;\n     margin:0;\n     padding:0;\n  }\n\n  .xc_sub-head-spacer\n  {\n         padding:1px;\n  }\n\n  .xc_conversation\n  {\n          display:none;\n         margin:0 12px 0 11px;\n  }\n\n  .xc_chat_toggle_container\n  {\n        /*background:mediumslateblue center -52px;*/\n          background: white;\n    border-style: solid;\n    border-width: 1px;\n          border-color: {{chatWebsite.color}};\n          //display:none;\n  }\n\n  .xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper\n  {\n       //display:none;\n    display:block;\n   overflow:auto;\n        line-height:1;\n        padding:25px;\n  }\n\n  .xc_exit_chat_container\n  {\n          text-align:right;\n     width:95%;\n    margin:0 auto;\n        padding:5px 1px 0 0;\n  }\n\n  .xc_exit_chat_container span,.xc_exit_chat_container a\n  {\n    font-size:80%;\n        color:#666;\n   text-decoration:none;\n  }\n\n  .xc_exit_chat_container a:hover\n  {\n          color:#333;\n  }\n\n  a.xc_btn_exit_chat_confirm:hover\n  {\n   color:red;\n  }\n\n  a.xc_btn_exit_chat_cancel:hover\n  {\n     color:#0c0;\n  }\n\n  form.xc_form_reply\n  {\n         position:relative;\n  }\n\n  .xc_form_reply\n  {\n      /*background-color:#e3e3e3;*/\n         text-align:center;\n    /*border-top:1px solid #d3d3d3;*/\n  }\n\n  .xc_input_message\n  {\n    height:100px;\n         margin:10px auto 5px;\n  }\n\n  .xc_input_enquiry_message\n  {\n        height:100px;\n  }\n\n  .xc_form_signup,.xc_form_enquiry\n  {\n         text-align:center;\n  }\n\n  .xc_chat_container textarea,.xc_chat_container input[type=text]\n  {\n     width:95%;\n    min-width:95%;\n        max-width:95%;\n        -webkit-box-sizing:border-box;\n        -moz-box-sizing:border-box;\n   box-sizing:border-box;\n        background-color:#fff;\n        border:1px solid #ccc;\n        -webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n         -moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n    box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n         -webkit-transition:border linear .2s, box-shadow linear .2s;\n          -moz-transition:border linear .2s, box-shadow linear .2s;\n     -o-transition:border linear .2s, box-shadow linear .2s;\n       transition:border linear .2s, box-shadow linear .2s;\n          display:inline-block;\n         font-size:14px;\n       line-height:20px;\n     color:#555;\n   -webkit-border-radius:4px;\n    -moz-border-radius:4px;\n       border-radius:4px;\n    vertical-align:middle;\n        margin:3px 0;\n         padding:4px 6px;\n      resize: none;\n  }\n\n  .xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n  {\n      outline: {{chatWebsite.color_focus}} auto 5px;\n  }\n\n  .xc_chat_container input[type=text]\n  {\n     height: 30px;\n  }\n\n  .xc_message_sending textarea, .xc_enquiry_sending textarea\n  {\n       background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n  }\n\n  .xc_chatrow\n  {\n     display:block;\n        border-top:1px dashed #e3e3e3;\n        margin:5px 0;\n         clear: both;\n  }\n\n  .xc_chatrow p\n  {\n     color:#444;\n   word-wrap:break-word;\n  }\n\n  .xc_time\n  {\n         float:right;\n          font-size:80%;\n        color:#ccc;\n   padding-left:12px;\n    margin:3px;\n  }\n\n  .xc_submission_pending\n  {\n     background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center no-repeat;\n  }\n\n  .xc_submission_confirmed\n  {\n         background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center no-repeat;\n  }\n\n  .xc_fullname\n  {\n      font-weight:700;\n  }\n\n  .xc_fullname:after\n  {\n    content:":";\n  }\n\n  .xc_avatar\n  {\n        float: left;\n          margin: 0 5px 5px 0;\n          display: inline-block;\n        width: 40px;\n          height: 40px;\n         border-radius: 5px;\n           -moz-border-radius: 5px;\n      -webkit-border-radius: 5px;\n  }\n\n  .xc_smilie\n  {\n         background-repeat:no-repeat;\n          display:inline-block;\n         width:18px;\n   height:18px;\n          text-indent:-9999px;\n          white-space:nowrap;\n  }\n\n  .xc_btn_load_more\n  {\n          width:100%!important;\n  }\n\n  .xc_notifications_wrapper\n  {\n        text-shadow:0 1px 0 rgba(255,255,255,0.5);\n  }\n\n  .xc_notification_success\n  {\n    color:#468847;\n  }\n\n  .xc_notification_error\n  {\n          color:#b94a48;\n  }\n\n  .xc_errorlist\n  {\n   margin:0 0 0 25px;\n    padding:0;\n  }\n\n  i.xc_btn_notifications_close\n  {\n        float:right;\n          font-weight:700;\n      font-size:20px;\n       color:#ccc;\n   cursor:pointer;\n       margin:-15px 0 0;\n     padding:0;\n  }\n\n  .xc_btn_style\n  {\n       width:95%;\n    text-align:center;\n    line-height:1.2;\n      font-size:90%;\n        -moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n         -webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n      box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n      background:0;\n         background-color:{{chatWebsite.color_button}};\n        -moz-border-radius:4px;\n       -webkit-border-radius:4px;\n    border-radius:4px;\n    border:1px solid {{chatWebsite.color_button}};\n        display:inline-block;\n         color:#fff;\n   font-weight:700;\n      text-decoration:none;\n         text-shadow:1px 1px 0 #000c17;\n        margin:0 auto 5px;\n    padding:2px 0;\n  }\n\n  .xc_btn_style:hover\n  {\n     background:0;\n         background-color:{{chatWebsite.color_button}};\n      color: #fff;\n            text-decoration: none;\n  }\n\n  .xc_btn_style:active\n  {\n    position:relative;\n    top:1px;\n  }\n\n  .xc_composing_container\n  {\n       display: none;\n    width: 95%;\n    margin: 0 auto;\n    background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n    padding-left: 19px;\n    font-style: italic;\n  }\n\n  @media only screen and (max-height: 620px) {\n     .xc_conversation_container\n    {\n             max-height:300px!important;\n   }\n  }\n\n  @media only screen and (max-height: 545px) {\n      .xc_conversation_container\n    {\n             max-height:200px!important;\n   }\n  }\n\n  @media only screen and (max-height: 445px) {\n      .xc_conversation_container\n    {\n             max-height:150px!important;\n   }\n  }\n\n  @media only screen and (max-width: 480px) {\n       .xc_chat_container\n    {\n             width:95%!important;\n                  right:auto!important;\n                 -webkit-border-top-left-radius:15px;\n                  -webkit-border-top-right-radius:15px;\n                 -moz-border-radius-topleft:15px;\n              -moz-border-radius-topright:15px;\n             border-top-left-radius:15px;\n                  border-top-right-radius:15px;\n                 box-shadow:0 0 5px rgba(0,0,0,.5);\n            -webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n            -moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n       }\n\n   div.xc_chat_head\n      {\n             background-color:#036;\n                background-image:none;\n                line-height:25px;\n             height:auto;\n                  -webkit-border-top-left-radius:15px;\n                  -webkit-border-top-right-radius:15px;\n                 -moz-border-radius-topleft:15px;\n              -moz-border-radius-topright:15px;\n             border-top-left-radius:15px;\n                  border-top-right-radius:15px;\n                 padding:10px;\n         }\n\n   .xc_chat_toggle_container\n     {\n             background-color:#fff;\n                background-image:none;\n                border-color:#036;\n            border-style:solid;\n           border-width:0 1px;\n   }\n\n   .xc_header_icon\n       {\n             background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n                 margin:0;\n     }\n\n   .xc_header_icon span.xc_notification_badge span\n       {\n             top:-5px;\n             left:5px;\n     }\n\n   .xc_notification_success\n      {\n             background-color:#dff0d8;\n             border:1px solid #d6e9c6;\n     }\n\n   .xc_conversation_container\n    {\n             max-height:375px;\n             border-color:#036;\n    }\n\n   .xc_notification_error\n        {\n             background-color:#f2dede;\n             border:1px solid #eed3d7;\n     }\n\n   .xc_sub-head-spacer\n   {\n             display:none;\n                 padding:0;\n    }\n\n   .xc_chat_head-title,.xc_conversation\n          {\n             margin:0;\n     }\n  }\n</style>\n<div class="xc_chat_container">\n    <div class="xc_chat_head {{chatWebsite.header_shape}}">\n      <i class="xc_header_icon">\n        <span class="xc_notification_badge">\n          <span class="xc_notification_badge_number"></span>\n        </span>\n      </i>\n      <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n    </div>\n    <div class="xc_chat_toggle_container">\n        <div class="xc_sub-head-spacer"></div>\n        <div class="xc_notifications_wrapper">\n            <!--<i class="xc_btn_notifications_close">&times;</i>-->\n            <ul class="xc_errorlist"></ul>\n        </div>\n        <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n            <form class="xc_form_enquiry" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.offline_message\'></p>\n                <input maxlength="45" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" />\n                <input maxlength="85" type="text" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" />\n                <textarea maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message"></textarea>\n                <a href="#" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</a></form>\n        </div>\n        <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n            <form class="xc_form_signup" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.online_message\'></p>\n                <input maxlength="45" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" />\n                <input maxlength="85" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" />\n                <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" /><a href="#" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</a></form>\n        </div>\n        <!-- <div class="xc_conversation">\n            <div class="xc_conversation_container">\n                <p class="xc_message_intro" data-id="-10">{FirstMessageText}</p>\n            </div>\n            <div class="xc_composing_container"></div>\n            <form class="xc_form_reply" accept-charset="UTF-8">\n                <div class="xc_exit_chat_container"><a href="#" class="xc_btn_exit_chat">{ExitChatButtonText}</a>\n                    <div class="xc_exit_chat_confirmation_wrapper" style="display: none;"><span>{ExitChatQuestionText} </span><a href="#" class="xc_btn_exit_chat_confirm">{ExitChatButtonConfirmText}</a><span> | </span><a href="#" class="xc_btn_exit_chat_cancel">{ExitChatButtonCancelText}</a></div>\n                </div>\n                <textarea maxlength="750" placeholder="{MessagePlaceholderText}" name="data[Message][message]" class="xc_input_message"></textarea><a href="#" class="xc_btn_send xc_btn_style">{MessageSendButtonText}</a></form>\n        </div> -->\n        <div class="xc_footer">\n            <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n        </div>\n    </div>\n</div>\n'),a.put("app/chat/queue/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-layers"></i>\n                                           <a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="chatQueues.checked.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <!-- <li>\n                                                             <a href="#" data-ng-click="open()">\n                                                           <i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n                                                        </li> -->\n                                                     <li>\n                                                          <a href="/chat/queues/wizard">\n                                                                <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n                                                        </li> -->\n                                             </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Username\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="chat_queues.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedChatQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.chatQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="chatQueueByPage in chatQueuesByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="chatQueueByPage.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n                                                                <th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="chatQueue in displayedChatQueues" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatQueues.checked" checklist-value="chatQueue.id"></td>\n                                             <td>{{chatQueue.name}}</td>\n                                                             <td>{{chatQueue.description}}</td>\n                                                            <td>{{chatQueue.strategy | uppercase}}</td>\n                                                           <td>{{chatQueue.timeout}}</td>\n                                              <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/queues/view/{{chatQueue.id}}/settings">\n                                                                         {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatQueue.name,chatQueue.id)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedChatQueues.length">\n                                                                <td colspan="6" style="text-align:center;">\n                                                                   <i>No chat queues available</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.chatQueuesByPage.value" st-displayed-pages="7"></div>\n                                          </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body" style="width: 50%; margin: 0 auto;">\n                                <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body text-center">\n                                           <div class="form-group last">\n                                                 <div class="col-md-9" id="multi-select-team">\n                                                 </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-layers"></i>\n                                   <a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.chat.queues.view.settings\')}">\n                                                  <a data-ng-href="/chat/queues/view/{{queue.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.queues.view.agents\')}">\n                                                    <a data-ng-href="/chat/queues/view/{{queue.id}}/agents">\n                                                      <i class="icon-users"></i>\n                                                    {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                            <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/chat/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n    <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-envelope"></i>\n                         <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n                     </li>\n      <li>\n                             <i class="icon-layers"></i>\n                           <a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-layers font-green-sharp"></i>\n                          <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n             </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n                                        <form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n                                          <!-- START NAME -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END NAME -->\n\n                                           <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                               </div>\n                                                <!-- END DESCRIPTION -->\n\n                                            <!-- START TIMEOUT -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n              <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n            </div>\n                                           <!-- END TIMEOUT -->\n\n                                                <!-- START HEADER SHAPE -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                             <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                                  <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n              <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n                                                </div>\n                                                <!-- END HEADER SHAPE -->\n                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n                                  </form>\n                         </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/chat/realtime/view/agent/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n  <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n           <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/agent/timeline/timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n   <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions" class="grid"></div>\n             <!-- START TABLE -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initChats()">\n    <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedChats" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n                       <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="12">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n                                                                                 <div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                 <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                <th st-sort="visitorname" class="input-medium">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n                                         <th st-sort="websitename" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n                                         <th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n                                                <th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n                                                <th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n                                 </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="session in displayedChats">\n                                           <td>\n                                                  <span>\n                                                                <i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n                                                             \'icon-user-following font-green\': session.fullname,\n                                                         \'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n                                                       </span>\n                                               </td>\n                                         <td>{{session.uniqueid}}</td>\n                                         <td>{{session.chatqueuename}}</td>\n                                            <td>{{session.fullname}}</td>\n                                         <td>{{session.visitorname + \' [\' + session.visitoremail + \']\'}}</td>\n                                              <td>{{session.websitename}}</td>\n                                              <td>\n                                                  <time is="relative-time" datetime="{{session.chatjoinAt}}">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.chatleaveAt}}" data-ng-show="session.chatleaveAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.chatunmanagedAt}}" data-ng-show="session.chatunmanagedAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedChats.length">\n                                             <td colspan="11" style="text-align:center;">\n                                                  <i>No sessions available</i>\n                                          </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                   </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="visitorname" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="websitename" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="12" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n                            </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="/chat/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                     <div class="navbar-header">\n                       <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n                                <span class="sr-only">Toggle navigation</span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                            </button>\n                     <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n                 </div>\n\n                      <!-- Collect the nav links, forms, and other content for toggling -->\n                 <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                         <ul class="nav navbar-nav">\n                               <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_AGENTS\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'agents\'></tree>\n                             </li>\n                                                                         <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_SESSIONS\' | translate }}\n                                    <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'sessions\'></tree>\n                           </li>\n                     </ul>\n                         <!-- <ul class="nav navbar-nav">\n                          <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_QUEUES\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'queues\'></tree>\n                             </li>\n                     </ul> -->\n                 </div>\n                        <!-- /.navbar-collapse -->\n                </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n      <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-notebook font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n                     </div>\n                        <div class="actions">\n                         <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatRooms" filename="rooms.csv">\n                           <i class="icon-cloud-download"></i></a>\n                               <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <!-- START TABLE -->\n                  <table st-table="displayedChatRooms" st-safe-src="chatRooms" class="table table-bordered table-hover">\n                                <div class="table-responsive">\n                                        <thead>\n                                               <tr>\n                                                  <th colspan="9">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <select class="form-control input-small select2me" data-ng-model="conf.chatRoomsByPage">\n                                                                                      <option value="10">10</option>\n                                                                                        <option value="25">25</option>\n                                                                                        <option value="50">50</option>\n                                                                                        <option value="{{chatRooms.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                           </select>\n                                                                     </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n                                                                                  <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n                                                        <th st-sort="users">{{ \'APPLICATION_USERS\' | translate }}</th>\n                                                      <th st-sort="visitor">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n                                                  <th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                    <th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n                                           </tr>\n                                 </thead>\n                                      <tbody>\n                                               <tr data-ng-repeat="chatRoom in displayedChatRooms" data-ng-click="$location.path(\'/chat/statistics/conversation/\' + chatRoom.id)">\n                                                 <td style="text-align: center;">{{chatRoom.type | uppercase}}</td>\n                                                    <td style="text-align: center;">{{getUsersFullname(chatRoom.Users)}}</td>\n                                                     <td style="text-align: center;">{{chatRoom.ChatVisitor.email}}</td>\n                                                   <td style="text-align: center;">\n                                                              <span class="label label-sm label-success" data-ng-class="{\'label-success\': chatRoom.status == \'close\', \'label-warning\': chatRoom.status == \'open\'}">\n                                                                 {{chatRoom.status | capitalize}}\n                                                              </span>\n                                                       </td>\n                                                 <td style="text-align: center;">\n                                                              <time is="relative-time" datetime="{{chatRoom.createdAt}}">\n                                                                   April 1, 2014\n                                                         </time>\n                                                       </td>\n                                         </tr>\n                                 </tbody>\n                                      <tfoot>\n                                               <tr>\n                                                  <td colspan="9" class="text-center">\n                                                          <div st-pagination class="pagination" st-items-by-page="conf.chatRoomsByPage" st-displayed-pages="7"></div>\n                                                   </td>\n                                         </tr>\n                                 </tfoot>\n                      </div>\n                        </table>\n                      <!-- END TABLE -->\n            </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initRoomView()">\n        <div class="col-md-6">\n                <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-book-open font-green-sharp"></i>\n                                       <span class="caption-subject">{{ \'APPLICATION_TRANSCRIPT\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default" href="#" ng-csv="chatRoom.ChatMessages" filename="chatMessages.csv">\n                                 <i class="icon-cloud-download"></i></a>\n                                       <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="scroller" style="height: 352px;" data-always-visible="1" data-rail-visible1="1">\n                                  <ul class="chats">\n                                            <li data-ng-class="{\'out\': chatMessage.visitorId, \'in\': chatMessage.userId}" data-ng-repeat="chatMessage in chatRoom.ChatMessages | orderBy:\'-createdAt\'">\n                                                      <img class="avatar" data-ng-src="api/users/{{chatMessage.userId ? chatMessage.userId : \'avatar\'}}/avatar"/>\n                                                 <div class="message">\n                                                         <span class="arrow">\n                                                          </span>\n                                                               <a href="#" class="name">\n                                                             {{chatMessage.fullname}} </a>\n                                                         <span class="datetime">\n                                                                       <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                                                                                April 1, 2014\n                                                                 </time>\n                                                               </span>\n                                                               <span class="body">\n                                                                   {{chatMessage.body}}\n                                                          </span>\n                                                       </div>\n                                                </li>\n                                 </ul>\n                         </div>\n                        </div>\n                <!-- END PORTLET-->\n           </div>\n        </div>\n        <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-user font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n                                  <span class="caption-helper">{{chatRoom.ChatVisitor.fullname}}</span>\n                         </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.fullname">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-8 value">\n                                          {{chatRoom.ChatVisitor.fullname}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.email">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_EMAIL\' | translate}}\n                                 </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.email}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.remote_address">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.remote_address}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.referer">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_REFERER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.referer}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.browser">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_BROWSER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.browser}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.engine">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_ENGINE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.engine}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.os">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_OS\' | translate}}\n                                    </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.os}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.device">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_DEVICE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.device}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.country">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_COUNTRY\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.country}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.region">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_REGION\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.region}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.city">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_CITY\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.city}}\n                                 </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.latitude">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_LATITUDE\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.latitude}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.longitude">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_LONGITUDE\' | translate}}\n                                     </div>\n                                        <div class="col-md-4 value">\n                                          {{chatRoom.ChatVisitor.longitude}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatRoom.ChatVisitor.createdAt">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          <time is="relative-time" datetime="{{chatRoom.ChatVisitor.createdAt}}">\n                                                       April 1, 2014\n                                         </time>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n           <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-repeat="user in chatRoom.Users">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-earphones-alt font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }}:</a> </span>\n                                    <span class="caption-helper">{{user.fullname}}</span>\n                         </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{user.fullname}}\n                                     </div>\n                                </div>\n                                <div class="row static-info">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_USERNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{user.name}}\n                                 </div>\n                                </div>\n                                <div class="row static-info">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_ROLE\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{user.role | uppercase}}\n                                     </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n   <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-question font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n                 </div>\n                        <div class="actions">\n                         <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatEnquiries" filename="enquiries.csv">\n                           <i class="icon-cloud-download"></i></a>\n                               <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <!-- START TABLE -->\n                  <table st-table="displayedChatEnquiries" st-safe-src="chatEnquiries" class="table table-bordered table-hover">\n                                <div class="table-responsive">\n                                        <thead>\n                                               <tr>\n                                                  <th colspan="9">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <select class="form-control input-small select2me" data-ng-model="conf.chatEnquiriesByPage">\n                                                                                  <option value="10">10</option>\n                                                                                        <option value="25">25</option>\n                                                                                        <option value="50">50</option>\n                                                                                        <option value="{{chatEnquiries.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                               </select>\n                                                                     </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n                                                                                  <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="type">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n                                                    <th st-sort="users">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                      <th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n                                           </tr>\n                                 </thead>\n                                      <tbody>\n                                               <tr data-ng-repeat="chatEnquiry in displayedChatEnquiries" data-ng-click="$location.path(\'/chat/statistics/enquiry/\' + chatEnquiry.id)">\n                                                    <td style="text-align: center;">{{chatEnquiry.username}}</td>\n                                                 <td style="text-align: center;">{{chatEnquiry.email}}</td>\n                                                    <td style="text-align: center;">\n                                                              <time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n                                                                        April 1, 2014\n                                                         </time>\n                                                       </td>\n                                         </tr>\n                                 </tbody>\n                                      <tfoot>\n                                               <tr>\n                                                  <td colspan="9" class="text-center">\n                                                          <div st-pagination class="pagination" st-items-by-page="conf.chatEnquiriesByPage" st-displayed-pages="7"></div>\n                                                       </td>\n                                         </tr>\n                                 </tfoot>\n                      </div>\n                        </table>\n                      <!-- END TABLE -->\n            </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/statistic/statistic.enquiry.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initEnquiryView()">\n   <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-book-open font-green-sharp"></i>\n                                       <span class="caption-subject">{{ \'APPLICATION_TEXT\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default" href="#" ng-csv="chatEnquiry" filename="chatEnquery.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN PAGE CONTENT-->\n                            <div class="note note-warning">\n                                       <h4 class="block">{{chatEnquiry.ChatVisitor.fullname}} -\n                                              <time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n                                                        April 1, 2014\n                                         </time>\n                                       </h4>\n                                 <p>\n                                            {{chatEnquiry.text}}\n                                 </p>\n                          </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n        <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-user font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n                                  <span class="caption-helper">{{chatEnquiry.ChatVisitor.fullname}}</span>\n                              </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.fullname">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-8 value">\n                                          {{chatEnquiry.ChatVisitor.fullname}}\n                                  </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.email">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_EMAIL\' | translate}}\n                                 </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.email}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.remote_address">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.remote_address}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.referer">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_REFERER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.referer}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.browser">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_BROWSER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.browser}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.engine">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_ENGINE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.engine}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.os">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_OS\' | translate}}\n                                    </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.os}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.device">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_DEVICE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.device}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.country">\n                                  <div class="col-md-4 name">\n                                           {{\'APPLICATION_COUNTRY\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.country}}\n                                   </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.region">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_REGION\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.region}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.city">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_CITY\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.city}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.latitude">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_LATITUDE\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.latitude}}\n                                  </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.longitude">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_LONGITUDE\' | translate}}\n                                     </div>\n                                        <div class="col-md-4 value">\n                                          {{chatEnquiry.ChatVisitor.longitude}}\n                                 </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.createdAt">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          <time is="relative-time" datetime="{{chatEnquiry.ChatVisitor.createdAt}}">\n                                                    April 1, 2014\n                                         </time>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eyeglass"></i>\n                                 <a href="/chat/statistics">{{ \'APPLICATION_STATISTICS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/statistics.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <!-- <div class="profile-usertitle">\n                                  <div class="profile-usertitle-name">\n                                          {{chatWebsite.name}}\n                                  </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatWebsite.address}}\n                                       </div>\n                                </div> -->\n                            <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR BUTTONS -->\n                              <!-- <div class="profile-userbuttons">\n                                        <button type="button" class="btn btn-circle green-haze btn-sm">Follow</button>\n                                        <button type="button" class="btn btn-circle btn-danger btn-sm">Message</button>\n                               </div> -->\n                            <!-- END SIDEBAR BUTTONS -->\n                          <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.chat.statistics.summary\')}">\n                                                    <a ng-href="/chat/statistics/summary">\n                                                        <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_SUMMARY\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.statistics.enquiry\') || $state.is(\'main.chat.statistics.enquiries\')}">\n                                                   <a ng-href="/chat/statistics/enquiries">\n                                                      <i class="icon-question"></i>\n                                                 {{ \'APPLICATION_ENQUIRIES\' | translate }} </a>\n                                              </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.statistics.conversation\') || $state.is(\'main.chat.statistics.conversations\')}">\n                                                  <a ng-href="/chat/statistics/conversations">\n                                                  <i class="icon-notebook"></i>\n                                                 {{ \'APPLICATION_CONVERSATIONS\' | translate }} </a>\n                                          </li>\n                                         <li data-ng-class="{active: $state.is(\'main.chat.statistics.visitor\') || $state.is(\'main.chat.statistics.visitors\')}">\n                                                    <a ng-href="/chat/statistics/visitors">\n                                                       <i class="icon-users"></i>\n                                                    {{ \'APPLICATION_VISITORS\' | translate }} </a>\n                                               </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.summary.html",'<div class="col-md-12">\n       <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered" data-ng-show="online">\n            <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-notebook font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_LOCATIONS\' | translate }}</a> </span>\n                 </div>\n                </div>\n                <div class="portlet-body">\n                    <map center="0, 0" zoom="2">\n                          <marker data-ng-show="chatVisitor.latitude && chatVisitor.longitude" data-ng-repeat="chatVisitor in chatVisitors" position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n                   </map>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n\n\n       <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-notebook font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div class="col-md-6">\n                                        <div class="portlet sale-summary">\n                                            <div class="portlet-body">\n                                                    <ul class="list-unstyled">\n                                                            <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_OPENED\' | translate }} <i class="fa fa-img-up"></i>\n                                                                 </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatRooms | filter:{ status:\'open\' }).length }} </span>\n                                                         </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_CLOSED\' | translate }} <i class="fa fa-img-down"></i>\n                                                                       </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatRooms | filter:{ status:\'close\' }).length }} </span>\n                                                                </li>\n                                                 </ul>\n                                         </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <canvas class="chart chart-pie" data="[(chatRooms | filter:{ status:\'open\' }).length, (chatRooms | filter:{ status:\'close\' }).length]" labels="[$translate.instant(\'APPLICATION_OPENED\'), $translate.instant(\'APPLICATION_CLOSED\')]" legend="true"></canvas>\n                          </div>\n                        </div>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n\n <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-users font-green-sharp"></i>\n                           <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                  </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div class="col-md-6">\n                                        <div class="portlet sale-summary">\n                                            <div class="portlet-body">\n                                                    <ul class="list-unstyled">\n                                                            <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_PENDING\' | translate }} <i class="fa fa-img-up"></i>\n                                                                        </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatVisitors | filter:{ status:\'pending\' }).length }} </span>\n                                                           </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_SERVED\' | translate }} <i class="fa fa-img-down"></i>\n                                                                       </span>\n                                                                       <span class="sale-num">\n                                                                       {{ (chatVisitors | filter:{ status:\'served\' }:true).length }} </span>\n                                                               </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_UNSERVED\' | translate }} </span>\n                                                                    <span class="sale-num">\n                                                                       {{ (chatVisitors | filter:{ status:\'unserved\' }).length }} </span>\n                                                          </li>\n                                                 </ul>\n                                         </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <canvas class="chart chart-pie" data="[(chatVisitors | filter:{ status:\'pending\' }).length, (chatVisitors | filter:{ status:\'served\' }:true).length, (chatVisitors | filter:{ status:\'unserved\' }).length]" labels="[$translate.instant(\'APPLICATION_PENDING\'), $translate.instant(\'APPLICATION_SERVED\'), $translate.instant(\'APPLICATION_UNSERVED\')]" legend="true"></canvas>\n                            </div>\n                        </div>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n\n <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-question font-green-sharp"></i>\n                                <span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n                 </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div class="col-md-6">\n                                        <div class="portlet sale-summary">\n                                            <div class="portlet-body">\n                                                    <ul class="list-unstyled">\n                                                            <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_READ\' | translate }}<i class="fa fa-img-up"></i>\n                                                                    </span>\n                                                                       <span class="sale-num">\n                                                                       {{(chatEnquiries | filter:{ read:true }).length}} </span>\n                                                             </li>\n                                                         <li>\n                                                                  <span class="sale-info">\n                                                                      {{ \'APPLICATION_UNREAD\' | translate }}<i class="fa fa-img-down"></i>\n                                                                        </span>\n                                                                       <span class="sale-num">\n                                                                       {{(chatEnquiries | filter:{ read:false }).length}} </span>\n                                                            </li>\n                                                 </ul>\n                                         </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <canvas class="chart chart-pie" data="[(chatEnquiries | filter:{ read:true }).length, (chatEnquiries | filter:{ read:false }).length]" labels="[$translate.instant(\'APPLICATION_READ\'), $translate.instant(\'APPLICATION_UNREAD\')]" legend="true" ng-show="true"></canvas>\n                         </div>\n                        </div>\n                </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n'),a.put("app/chat/statistic/statistic.visitor.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n        <!-- BEGIN Portlet PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-users font-green-sharp"></i>\n                           <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                  </div>\n                        <div class="actions">\n                         <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatVisitors" filename="visitors.csv">\n                             <i class="icon-cloud-download"></i></a>\n                               <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                     </div>\n                </div>\n                <div class="portlet-body">\n                    <!-- START TABLE -->\n                  <table st-table="displayedChatVisitors" st-safe-src="chatVisitors" class="table table-bordered table-hover">\n                          <div class="table-responsive">\n                                        <thead>\n                                               <tr>\n                                                  <th colspan="9">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <select class="form-control input-small select2me" data-ng-model="conf.chatVisitorsByPage">\n                                                                                   <option value="10">10</option>\n                                                                                        <option value="25">25</option>\n                                                                                        <option value="50">50</option>\n                                                                                        <option value="{{chatVisitors.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                                </select>\n                                                                     </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                 <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                        <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                      <th st-sort="remote_address">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                    <th st-sort="referer">{{ \'APPLICATION_ORIGIN\' | translate }}</th>\n                                                   <th st-sort="device">{{ \'APPLICATION_DEVICE\' | translate }}</th>\n                                                    <th st-sort="browser">{{ \'APPLICATION_BROWSER\' | translate }}</th>\n                                                  <th st-sort="visitor_language">{{ \'APPLICATION_LANGUAGES\' | translate }}</th>\n                                                       <th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                    <th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n                                           </tr>\n                                 </thead>\n                                      <tbody>\n                                               <tr data-ng-repeat="chatVisitor in displayedChatVisitors" data-ng-click="$location.path(\'/chat/statistics/visitor/\' + chatVisitor.id)">\n                                                     <td>{{chatVisitor.fullname}}</td>\n                                                     <td>{{chatVisitor.email}}</td>\n                                                        <td>{{chatVisitor.remote_address}}</td>\n                                                       <td>{{chatVisitor.referer}}</td>\n                                                      <td class="centered-td">{{chatVisitor.device ? chatVisitor.device : \'--\'}}</td>\n                                                     <td class="centered-td">\n                                                              <img data-ng-show="chatVisitor.browser.includes(\'Chrome\')" data-ng-src="assets/images/browsers/chrome/chrome_16x16.png" data-title="{{chatVisitor.browser}}" bs-tooltip>\n                                                            <img data-ng-show="chatVisitor.browser.includes(\'Safari\')" data-ng-src="assets/images/browsers/safari/safari_16x16.png">\n                                                            <img data-ng-show="chatVisitor.browser.includes(\'Firefox\')" data-ng-src="assets/images/browsers/firefox/firefox_16x16.png">\n                                                         <img data-ng-show="chatVisitor.browser.includes(\'Explorer\')" data-ng-src="assets/images/browsers/internet-explorer/internet-explorer_16x16.png">\n                                                    </td>\n                                                 <td class="centered-td">\n                                                              <img data-ng-show="chatVisitor.visitor_language.includes(\'IT\') || chatVisitor.visitor_language.includes(\'it\')" data-ng-src="assets/images/flags/it.png">\n                                                          <img data-ng-show="chatVisitor.visitor_language.includes(\'US\') || chatVisitor.visitor_language.includes(\'us\')" data-ng-src="assets/images/flags/us.png">\n                                                          <img data-ng-show="chatVisitor.visitor_language.includes(\'EN\') || chatVisitor.visitor_language.includes(\'en\')" data-ng-src="assets/images/flags/en_EN.png">\n                                                       </td>\n                                                 <td class="centered-td">\n                                                              <span class="label label-sm label-success" data-ng-class="{\'label-warning\': chatVisitor.status == \'pending\', \'label-danger\': chatVisitor.status == \'unserved\'}">\n                                                                      {{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n                                                               </span>\n                                                       </td>\n                                                 <td style="text-align: center;">\n                                                              <time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n                                                                        April 1, 2014\n                                                         </time>\n                                                       </td>\n                                         </tr>\n                                 </tbody>\n                                      <tfoot>\n                                               <tr>\n                                                  <td colspan="9" class="text-center">\n                                                          <div st-pagination class="pagination" st-items-by-page="conf.chatVisitorsByPage" st-displayed-pages="7"></div>\n                                                        </td>\n                                         </tr>\n                                 </tfoot>\n                      </div>\n                        </table>\n                      <!-- END TABLE -->\n            </div>\n        </div>\n        <!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.visitor.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initVisitorView()">\n  <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-pin font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_LOCATION\' | translate }}</a> </span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN PAGE CONTENT-->\n                            <map center="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" zoom="8">\n                                   <marker position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n                             </map>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n        <div class="col-md-6">\n                <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-user font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n                                  <span class="caption-helper">{{chatVisitor.fullname}}</span>\n                          </div>\n                                <div class="actions">\n                                 <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row static-info" data-ng-show="chatVisitor.longitude && chatVisitor.latitude">\n                            </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.fullname">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_FULLNAME\' | translate}}\n                                      </div>\n                                        <div class="col-md-8 value">\n                                          {{chatVisitor.fullname}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.email">\n                                        <div class="col-md-4 name">\n                                           {{\'APPLICATION_EMAIL\' | translate}}\n                                 </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.email}}\n                                 </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.remote_address">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.remote_address}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.referer">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_REFERER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.referer}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.browser">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_BROWSER\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.browser}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.engine">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_ENGINE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.engine}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.os">\n                                   <div class="col-md-4 name">\n                                           {{\'APPLICATION_OS\' | translate}}\n                                    </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.os}}\n                                    </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.device">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_DEVICE\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.device}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.country">\n                                      <div class="col-md-4 name">\n                                           {{\'APPLICATION_COUNTRY\' | translate}}\n                                       </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.country}}\n                                       </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.region">\n                                       <div class="col-md-4 name">\n                                           {{\'APPLICATION_REGION\' | translate}}\n                                        </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.region}}\n                                        </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.city">\n                                 <div class="col-md-4 name">\n                                           {{\'APPLICATION_CITY\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.city}}\n                                  </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.latitude">\n                                     <div class="col-md-4 name">\n                                           {{\'APPLICATION_LATITUDE\' | translate}}\n                                      </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.latitude}}\n                                      </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.longitude">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_LONGITUDE\' | translate}}\n                                     </div>\n                                        <div class="col-md-4 value">\n                                          {{chatVisitor.longitude}}\n                                     </div>\n                                </div>\n                                <div class="row static-info" data-ng-show="chatVisitor.createdAt">\n                                    <div class="col-md-4 name">\n                                           {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n                                  </div>\n                                        <div class="col-md-4 value">\n                                          <time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n                                                        April 1, 2014\n                                         </time>\n                                       </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/timeline/list/list.html",'<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-list"></i>\n                                             <a href="/mail/timeline/list"> Timeline</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n     <div class="col-md-12">\n    <h3 class="page-title">\n                          Timeline\n                      </h3>\n                 <!-- END PAGE HEADER-->\n                       <!-- BEGIN PAGE CONTENT-->\n                    <div class="timeline">\n                                <!-- TIMELINE ITEM -->\n                                <div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'"  ng-animate=" \'animate\' ">\n                                    <div class="timeline-badge">\n                                          <div class="timeline-icon">\n                                                   <i class="icon-envelope font-green-haze"></i>\n                                         </div>\n                                        </div>\n                                        <div class="timeline-body">\n                                           <div class="timeline-body-arrow"></div>\n                                               <div class="timeline-body-head">\n                                                      <div class="timeline-body-head-caption">\n                                                              <span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n                                                                <span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n                                                       </div>\n                                                        <div class="timeline-body-head-actions">\n                                                              <div class="btn-group">\n                                                                       <a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n                                                              </div>\n                                                        </div>\n                                                </div>\n                                                <div class="timeline-body-content">\n                                                   <span class="font-grey-cascade" data-ng-show="event.User">\n                                                    {{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n                                                       </span>\n                                               </div>\n                                        </div>\n                                </div>\n                                <!-- END TIMELINE ITEM -->\n                    </div>\n                        <!-- END PAGE CONTENT-->\n      </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-globe"></i>\n                                            <a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="chatWebsites.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }} <i class="fa fa-angle-down"></i>\n                                             </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <!-- <li>\n                                                             <a href="#" data-ng-click="open()">\n                                                           <i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n                                                        </li> -->\n                                                     <li>\n                                                          <a href="/chat/websites/wizard">\n                                                              <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n                                                        </li> -->\n                                             </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatWebsites([\'name\', \'address\', \'description\', \'remote\'])" csv-header="[\'Name\', \'Address\', \'Description\', \'Remote\']" field-separator=";" filename="chat_websites.csv">\n                                  <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedChatWebsites" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.chatWebsitesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="chatWebsiteByPage in chatWebsitesByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="chatWebsiteByPage.name | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                              <th st-sort="address">{{ \'APPLICATION_WEB_ADDRESS\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="chatWebsite in displayedChatWebsites" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatWebsites.checked" checklist-value="chatWebsite.id"></td>\n                                         <td>{{chatWebsite.name}}</td>\n                                                           <td>{{chatWebsite.description}}</td>\n                                        <td><a ng-href="{{chatWebsite.address}}">{{chatWebsite.address}}</a></td>\n                                             <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n                                                                         {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatWebsite.name,chatWebsite.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedChatWebsites.length">\n                                                              <td colspan="5" style="text-align:center;">\n                                                                   <i>{{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_WEB_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.chatWebsitesByPage.value" st-displayed-pages="7"></div>\n                                        </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                           <th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n                                                   <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n                                                                <th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody ui-sortable="sortableOptions" data-ng-model="chatApplications">\n                                          <tr data-ng-repeat="application in chatApplications">\n                                                             <td align="center">\n                                                                   {{application.User ? \'agent\' : \'queue\' | uppercase}} [{{application.User ? application.User.fullname : application.ChatQueue.name}}]\n                                                              </td>\n                                                         <td align="center">{{application.timeout}}</td>\n                                                               <td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n                                                           <td>\n                                                                  <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/view/{{application.id}}">\n                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="chatApplications.length">\n                                                           <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n       <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select class="input-medium" data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group inpu" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="initView()">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_EMBEDDING\' | translate}}</a>\n                                    </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_6" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                             <div class="col-md-8">\n                                                        <div class="tab-content">\n                                                             <!-- EMBEDDING TAB -->\n                                                                <div class="tab-pane active" id="tab_1_1">\n                                                                    <h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n                                                                        <p>\n                                                                           {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n                                                                     </p>\n                                                                  <div class="form-body">\n                                                                               <div class="form-group">\n                                                                                      <div class="col-md-12">\n                                                                                               <textarea name="snippet" rows="13" style="resize:none;cursor:text;" class="form-control" readonly data-ng-model="snippetCode"></textarea>\n                                                                                     </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </div>\n                                                                <!-- END EMBEDDING TAB -->\n\n                                                          <!-- APPEARANCE TAB -->\n                                                               <div class="tab-pane" id="tab_1_2">\n                                                                   <form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n                                                                          <!-- START MAIN COLOR -->\n                                                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                  <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n                                                                                        <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END MAIN COLOR -->\n\n                                                                             <!-- START FOCUS COLOR -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n                                                                                  <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END FOCUS COLOR -->\n\n                                                                            <!-- START BUTTON COLOR -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n                                                                                      <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END BUTTON COLOR -->\n\n                                                                           <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                                        <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <!-- START ANIMATION TOGGLE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n                                                                                                        <div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END ANIMATION TOGGLE -->\n\n\n                                                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END APPEARANCE TAB -->\n\n                                                         <!-- FORMS TAB -->\n                                                            <div class="tab-pane" id="tab_1_3">\n                                                                   <form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n                                                                            <!-- START DOWNLOAD TRANSCRIPT -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                                                      <ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                                                     <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END FORMS TAB -->\n\n                                                              <!-- STRINGS TAB -->\n                                                          <div class="tab-pane" id="tab_1_4">\n                                                                   <form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n                                                                            <h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n                                                                         <!-- START HEADER ONLINE -->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                      <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                                                    <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n                                                                           </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START ONLINE MESSAGE-->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n                                                                                </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START USERNAME PLACEHOLDER -->\n                                                                           <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                                                     <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n                                                                              </div>\n                                                                                <!-- END USERNAME PLACEHOLDER -->\n\n                                                                           <!-- START EMAIL PLACEHOLDER -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                                        <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n                                                                               </div>\n                                                                                <!-- END EMAIL PLACEHOLDER -->\n\n                                                                              <!-- START START CHAT BUTTON -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                                        <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n                                                                                </div>\n                                                                                <!-- END START CHAT BUTTON -->\n\n                                                                              <h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n                                                                               <!-- START HEADER OFFLINE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                                                   <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n                                                                                </div>\n                                                                                <!-- END HEADER OFFLINE -->\n\n                                                                         <!-- START OFFLINE MESSAGE-->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                                                  <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n                                                                             </div>\n                                                                                <!-- END OFFLINE MESSAGE -->\n\n                                                                                <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                                                      <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                                            <!-- START ENQUIRY BUTTON -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                                                   <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n                                                                                </div>\n                                                                                <!-- END ENQUIRY BUTTON -->\n\n                                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END STRINGS TAB -->\n\n                                                            <!-- SETTINGS TAB -->\n                                                         <div class="tab-pane" id="tab_1_5">\n                                                                   <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START NAME -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n                                                                                    <span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END NAME -->\n\n                                                                           <!-- START ADDRESS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n                                                                                        <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END ADDRESS -->\n\n                                                                                <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                      <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n                                                                                       <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START DESCRIPTION -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n                                                                                </div>\n                                                                                <!-- END DESCRIPTION -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END SETTINGS TAB -->\n\n                                                           <!-- OFFLINE TAB -->\n                                                          <div class="tab-pane" id="tab_1_6">\n                                                                   <form name="forms.formOffline" data-ng-submit="forms.formOffline.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START ENQUIRY FORWARDING -->\n                                                                             <div class="form-group">\n                                                                                      <div class="row">\n                                                                                             <label class="col-md-4">\n                                                                                                      {{\'APPLICATION_ENQUIRY_FORWARDING\' | translate}}\n                                                                                            </label>\n                                                                                              <label class="col-md-8">\n                                                                                                      <input type="checkbox" ng-model="chatWebsite.enquiry_forwarding">\n                                                                                             </label>\n                                                                                      </div>\n                                                                                        <div class="row">\n                                                                                             <span class="help-block col-md-12">\n                                                                                                           {{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.\n                                                                                            </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <!-- END ENQUIRY FORWARDING -->\n\n                                                                             <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-if="chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formSetting.forwardingAddress.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" name="forwardingAddress" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_forwarding_address" required/>\n                                                                                      <span data-ng-show="(forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formOffline.forwardingAddress.$invalid && forms.formOffline.forwardingAddress.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-if="chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_TEMPLATE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                     <ui-select data-ng-model="chatWebsite.OfflineTemplateId" name="OfflineTemplateId" theme="bootstrap" required>\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="mailTemplate.id as mailTemplate in mailTemplates | filter: $select.search">\n                                                                                                        <div ng-bind-html="mailTemplate.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid && forms.formOffline.OfflineTemplateId.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END OFFLINE TAB -->\n                                                      </div>\n                                                </div>\n                                                <div class="col-md-4">\n                                                        <!-- START STATE -->\n                                                  <div class="form-group">\n                                                              <!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n                                                               <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                               <ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="statePreview in [\'online\',\'offline\'] | filter: $select.search">\n                                                                                <div ng-bind-html="statePreview | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END STATE -->\n                                                    <preview></preview>\n                                           </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{chatWebsite.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/website.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatWebsite.name}}\n                                  </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatWebsite.address}}\n                                       </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.includes(\'main.chat.websites.view.snippet\')}">\n                                                   <a ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SNIPPET\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.chat.websites.view.actions\')}">\n                                                   <a ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/list">\n                                                     <i class="icon-directions"></i>\n                                                       {{ \'APPLICATION_ACTIONS\' | translate }} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-globe"></i>\n                                            <a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                               <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n                                                               <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ADDRESS -->\n\n                                                        <!-- START REMOTE IP -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n                                                              <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END REMOTE IP -->\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                           <form name="forms.formAppearance" novalidate>\n\n                                                       <!-- START MAIN COLOR -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                          <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n                                                              <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAIN COLOR -->\n\n                                                     <!-- START FOCUS COLOR -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n                                                                <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FOCUS COLOR -->\n\n                                                    <!-- START BUTTON COLOR -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n                                                            <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END BUTTON COLOR -->\n\n                                                   <!-- START HEADER SHAPE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n                                                             <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n                                                              <ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                      <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END HEADER SHAPE -->\n\n                                                   <!-- START ANIMATION TOGGLE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                <ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                       <ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n                                                                          <div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END ANIMATION TOGGLE -->\n\n\n                                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n                                             <form name="forms.formLabel" novalidate>\n\n                                                    <!-- START HEADER ONLINE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                            <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n                                                  </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START ONLINE MESSAGE-->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                           <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n                                                       </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START USERNAME PLACEHOLDER -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                             <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n                                                     </div>\n                                                        <!-- END USERNAME PLACEHOLDER -->\n\n                                                   <!-- START EMAIL PLACEHOLDER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n                                                      </div>\n                                                        <!-- END EMAIL PLACEHOLDER -->\n\n                                                      <!-- START START CHAT BUTTON -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n                                                       </div>\n                                                        <!-- END START CHAT BUTTON -->\n\n                                                      <!-- START HEADER OFFLINE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                           <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n                                                       </div>\n                                                        <!-- END HEADER OFFLINE -->\n\n                                                 <!-- START OFFLINE MESSAGE-->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                          <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n                                                    </div>\n                                                        <!-- END OFFLINE MESSAGE -->\n\n                                                        <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                              <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n                                                 </div>\n                                                        <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                    <!-- START ENQUIRY BUTTON -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                           <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n                                                       </div>\n                                                        <!-- END ENQUIRY BUTTON -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                         <form name="forms.formFunctionality" novalidate>\n\n                                                    <!-- START DOWNLOAD TRANSCRIPT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                        <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                             <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_COMPANY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.company" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.company.name.$touched || forms.company.$submitted) && forms.company.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.cmopany.name.$touched || forms.company.$submitted) && forms.company.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.company.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/company/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-briefcase"></i>\n                                        <a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-briefcase font-green-sharp"></i>\n                                       <span class="caption-subject">{{ \'APPLICATION_COMPANIES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Companies.checked.length">\n                                               <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_COMPANY\' | translate }}\n                                               </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getCompanies([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="companies.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedCompanies" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.companiesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="companyByPage in companiesByPage | filter: $select.search">\n                                                                                                        <div ng-bind-html="companyByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(company, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="company in displayedCompanies" class="animate-repeat">\n                                                                <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Companies.checked" checklist-value="company.id"></td>\n                                                          <td>{{company.name}}</td>\n                                           <td>{{company.description}}</td>\n                                              <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(company.name,company.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedCompanies.length">\n                                                         <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.companiesByPage.value" st-displayed-pages="7"></div>\n                                           </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCompany()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-briefcase"></i>\n                                        <a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n                                      <i data-ng-show="company" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="company">\n                                   <a href="#">{{company.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/company.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{company.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.companies.view.settings\')}">\n                                                     <a data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_COMPANY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADDRESS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_SHIPMENT_ADDRESS\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateCompany()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="company.name" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="company.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <!-- START STREET -->\n                                         <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                                                   <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.street"/>\n                                                   <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STREET -->\n\n                                         <!-- START POSTALCODE -->\n                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                                                       <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.postalCode"/>\n                                                       <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END POSTALCODE -->\n\n                                             <!-- START CITY -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                                                     <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.city"/>\n                                                 <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CITY -->\n                                             <!-- START COUNTRY -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                                                  <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.country"/>\n                                                        <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END COUNTRY -->\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <!-- START STREET -->\n                                         <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                                                   <input type="text" name="sStreet" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.sStreet"/>\n                                                 <span data-ng-show="(forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STREET -->\n\n                                         <!-- START POSTALCODE -->\n                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                                                       <input type="text" name="sPostalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.sPostalCode"/>\n                                                     <span data-ng-show="(forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END POSTALCODE -->\n\n                                             <!-- START CITY -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$invalid}">\n                                                  <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                                                     <input type="text" name="sCity" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.sCity"/>\n                                                       <span data-ng-show="(forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$error.required" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CITY -->\n                                             <!-- START COUNTRY -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                                                  <input type="text" name="sCountry" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.sCountry"/>\n                                                      <span data-ng-show="(forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END COUNTRY -->\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/contactmanager/contact/list/import.modal.html",'<div class="modal-header" data-ng-init="getCustomFields();">\n  <h3 class="modal-title">{{ \'APPLICATION_IMPORT_FROM_CSV\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.csv" novalidate>\n    <div class="row">\n      <div class="col-md-6">\n    <!-- START FULLNAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.fullname.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}</label>\n      <ui-select data-ng-model="item.fullname" theme="bootstrap" name="fullname" data-ng-disabled="disabled" required>\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_FULLNAME\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.fullname.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END FULLNAME -->\n\n    <!-- START STREET -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.street.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n      <ui-select data-ng-model="item.street" theme="bootstrap" name="street" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_STREET\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.street.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STREET -->\n\n    <!-- START POSTALCODE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.postalCode.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n      <ui-select data-ng-model="item.postalCode" theme="bootstrap" name="postalCode" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_POSTALCODE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.postalCode.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END POSTALCODE -->\n\n    <!-- START CITY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.city.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n      <ui-select data-ng-model="item.city" theme="bootstrap" name="city" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CITY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.city.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END CITY -->\n\n    <!-- START PHONES -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.Phones.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.Phones" theme="bootstrap" name="Phones" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_PHONES\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.Phones.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PHONES -->\n\n  </div>\n  <div class="col-md-6">\n\n    <!-- START COUNTRY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.country.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n      <ui-select data-ng-model="item.country" theme="bootstrap" name="country" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COUNTRY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.country.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END COUNTRY -->\n\n    <!-- START DATEOFBIRTH -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.dateOfBirth.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n      <ui-select data-ng-model="item.dateOfBirth" theme="bootstrap" name="dateOfBirth" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DATEOFBIRTH\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.dateOfBirth.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DATEOFBIRTH -->\n\n    <!-- START TAGS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.tags.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.tags.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TAGS -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.description.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <ui-select data-ng-model="item.description" theme="bootstrap" name="description" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DESCRIPTION\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.description.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START EMAILS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.Emails.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.Emails" theme="bootstrap" name="Emails" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_EMAILS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.Emails.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EMAILS -->\n\n  </div>\n  </div>\n\n  <!-- START CUSTOMFIELDS -->\n  <div data-ng-repeat="customField in customFields">\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv[customField.name].$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{customField.name}}</label>\n      <ui-select data-ng-if="!joinPrompt" data-ng-model="item.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv[customField.name].$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </div>\n  <!-- END CUSTOMFIELDS -->\n\n  <div>\n    <p>{{\'APPLICATION_IMPORT_SUCCEEDED\' | translate}}: {{import.succeeded}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.success + \'%\' }"></div>\n    </div>\n  </div>\n  <div>\n    <p>{{\'APPLICATION_IMPORT_FAILED\' | translate}}: {{import.failed}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.fail + \'%\' }"></div>\n    </div>\n  </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="start()" ng-disabled="forms.csv.$invalid || !forms.csv.fullname || submitted">{{ \'APPLICATION_SUBMIT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="close()" data-ng-if="!importing">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="stop()" data-ng-if="importing">{{ \'APPLICATION_STOP\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/contact/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-users"></i>\n                                   <a href="/contactmanager/contacts/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-users font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_CONTACTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="contacts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle" data-ng-click="newContact();">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}\n                                               </button>\n                                             <span class="btn default btn-file">\n                                           <span class="fileinput-new">\n                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}</span>\n                                              <input type="file" nv-file-select="" uploader="uploader"/>\n                                            </span>\n                                       </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getContacts([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'name\', \'surname\', \'description\']" field-separator=";" filename="contacts.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedContacts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.contactsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="contactByPage in contactsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="contactByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(contact, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n                                                            <th st-sort="service">{{ \'APPLICATION_SERVICE\' | translate }}</th>\n                                              <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="contact in displayedContacts" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="contacts.checked" checklist-value="contact.id"></td>\n                                                           <td>{{contact.fullname}}</td>\n                                                         <td>{{contact.Service.name}}</td>\n                                           <td>{{contact.description}}</td>\n                                              <td>\n                                            <button class="btn default btn-xs blue-stripe" data-ng-click="openContactTab(contact)">\n                                                                               {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </button>\n                                             <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(contact.fullname,contact.id)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedContacts.length">\n                                                          <td colspan="5" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="service" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SERVICE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.contactsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.customField" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TYPE\' | translate }}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n        <ui-select-choices repeat="type.value as type in types| filter: $select.search">\n          {{$translate.instant(type.name)}}\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid && forms.customField.type.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TYPE -->\n\n    <div ng-slide-down="item.type == \'select\'" lazy-render duration="1">\n      <div>\n        <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n      </div>\n      <div class="padding-bottom" ng-repeat="choice in choices">\n        <div class="form-group">\n          <div class="input-group">\n            <input type="text" class="form-control" ng-model="choice.value" required>\n            <span class="input-group-btn">\n            <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n            </span>\n          </div>\n        </div>\n      </div>\n      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n      </button>\n\n    </div>\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.customField.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/customfield/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-pencil"></i>\n                                   <a href="/contactmanager/customfields/list">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-pencil font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="CustomFields.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}\n                                          </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getCs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="customFields.csv">\n                                       <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedCustomFields" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.customFieldsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="customFieldByPage in customFieldsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="customFieldByPage.name | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(customField, checked)" checklist-model checklist-value="id"></th>\n                                              <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n                                                    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="customField in displayedCustomFields" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="customFields.checked" checklist-value="customField.id"></td>\n                                                           <td>{{customField.name}}</td>\n                                                         <td>{{customField.type}}</td>\n                                       <td>{{customField.description}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/customfields/view/{{customField.id}}/settings">\n                                                                               {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(customField.name,customField.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedCustomFields.length">\n                                                              <td colspan="5" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_CUSTOM_FIELDS_AVAILABLE\' | translate }}</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TYPE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                                </td>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.customFieldsByPage.value" st-displayed-pages="7"></div>\n                                        </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCustomField()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-pencil"></i>\n                                   <a href="/contactmanager/customfields/list">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a>\n                                       <i data-ng-show="customField" class="fa fa-angle-right"></i>\n                          </li>\n                         <li data-ng-show="customField">\n                                       <a href="#">{{customField.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/customfield.png" class="img-responsive">\n                                </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{customField.name}}\n                                  </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.customfields.view.settings\')}">\n                                                  <a data-ng-href="/contactmanager/customfields/view/{{customField.id}}/settings">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateCustomField()" novalidate>\n\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="customField.name" required/>\n                                                            <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <div ng-slide-down="customField.type == \'select\'" lazy-render duration="1" class="mbottom20">\n                                                               <div>\n                                                                 <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n                                                          </div>\n                                                                <div class="padding-bottom" ng-repeat="choice in choices">\n                                                                    <div class="form-group">\n                                                                              <div class="input-group">\n                                                                                     <input type="text" class="form-control" ng-model="choice.value" required>\n                                                                                     <span class="input-group-btn">\n                                                                                        <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n                                                                                    </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n                                                         </button>\n\n                                                   </div>\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="customField.description"></textarea>\n                                                   </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/contactmanager/service/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_SERVICE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.service" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.service.name.$touched || forms.service.$submitted) && forms.service.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.cmopany.name.$touched || forms.service.$submitted) && forms.service.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.service.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/service/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-tty"></i>\n                                     <a href="/contactmanager/services/list">{{ \'APPLICATION_SERVICES\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-tty font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_SERVICES\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="services.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_SERVICE\' | translate }}\n                                               </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getServices([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="services.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedServices" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.servicesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="serviceByPage in servicesByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="serviceByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(service, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="service in displayedServices" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="services.checked" checklist-value="service.id" data-ng-if="!service.defaultEntry"></td>\n                                                                <td>{{service.name}}</td>\n                                           <td>{{service.description}}</td>\n                                              <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/services/view/{{service.id}}/settings">\n                                                                               {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(service.name,service.id)" data-ng-hide="service.defaultEntry">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedServices.length">\n                                                          <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_SERVICES_AVAILABLE\' | translate }}</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div class="pagination" st-pagination st-items-by-page="conf.servicesByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/service/view/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.customField" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TYPE\' | translate }}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n        <ui-select-choices repeat="type.value as type in types| filter: $select.search">\n          {{$translate.instant(type.name)}}\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid && forms.customField.type.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TYPE -->\n\n    <div ng-slide-down="item.type == \'select\'" lazy-render duration="1">\n      <div>\n        <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n      </div>\n      <div class="padding-bottom" ng-repeat="choice in choices">\n        <div class="form-group">\n          <div class="input-group">\n            <input type="text" class="form-control" ng-model="choice.value" required>\n            <span class="input-group-btn">\n            <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n            </span>\n          </div>\n        </div>\n      </div>\n      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n      </button>\n\n    </div>\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.customField.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/service/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4>\n                               <p>\n                                    {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n                             </p>\n                  </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body text-center">\n                                           <div class="form-group last">\n                                                 <div class="col-md-9" id="multi-select-team">\n                                                 </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/contactmanager/service/view/view.customFieldSettings.html",'<div class="row" data-ng-init="getCustomField()">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                        </div>\n\n                      <div class="portlet-body">\n                                    <!-- GENERAL TAB -->\n                                          <form name="forms.general" data-ng-submit="forms.general.$valid && updateCustomField()" novalidate>\n\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="customField.name" required/>\n                                                            <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <div ng-slide-down="customField.type == \'select\'" lazy-render duration="1" class="mbottom20">\n                                                               <div>\n                                                                 <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n                                                          </div>\n                                                                <div class="padding-bottom" ng-repeat="choice in choices">\n                                                                    <div class="form-group">\n                                                                              <div class="input-group">\n                                                                                     <input type="text" class="form-control" ng-model="choice.value" required>\n                                                                                     <span class="input-group-btn">\n                                                                                        <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n                                                                                    </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n                                                         </button>\n\n                                                   </div>\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="customField.description"></textarea>\n                                                   </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                     </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/contactmanager/service/view/view.customFields.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getServiceCustomFields()">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n                           </div>\n                                <div class="actions">\n          <div class="btn-group">\n            <button class="btn green-jungle " ng-click="create()">\n              <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}\n            </button>\n          </div>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                               <th>{{ \'APPLICATION_TYPE\' | translate }}</th>\n                                                   <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="customField in customFields" class="animate-repeat">\n                                                          <td>{{customField.name}}</td>\n                                                         <td>{{customField.type}}</td>\n                                                         <td>{{customField.description}}</td>\n                                        <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/services/view/{{service.id}}/customfields/settings/{{customField.id}}">\n                                                                               {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(customField.name,customField.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="customFields.length">\n                                                               <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_AVAILABLE_CUSTOM_FIELDS\' | translate }}</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/contactmanager/service/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getService()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-tty"></i>\n                                     <a href="/contactmanager/services/list">{{ \'APPLICATION_SERVICES\' | translate }}</a>\n                                        <i data-ng-show="service" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="service">\n                                   <a href="#">{{service.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/service.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{service.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.services.view.settings\')}">\n                                                      <a data-ng-href="/contactmanager/services/view/{{service.id}}/settings">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.contactmanager.services.view.agents\')}">\n                                                        <a data-ng-href="/contactmanager/services/view/{{service.id}}/agents">\n                                                        <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.contactmanager.services.view.customfields\')}">\n                                                    <a data-ng-href="/contactmanager/services/view/{{service.id}}/customfields">\n                                                  <i class="icon-pencil"></i>\n                                                   {{ \'APPLICATION_CUSTOM_FIELDS\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/service/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_SERVICE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateService()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="service.name" data-ng-disabled="service.defaultEntry" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="service.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/dashboard/voice">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                     <div class="navbar-header">\n                       <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n                                <span class="sr-only">Toggle navigation</span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                            </button>\n                     <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n                 </div>\n\n                      <!-- Collect the nav links, forms, and other content for toggling -->\n                 <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                         <ul class="nav navbar-nav">\n                                                                       <!-- <li dropdown>\n                                                                                    <a href="#" dropdown-toggle>\n                                                                                                  {{ \'APPLICATION_VOICE\' | translate }}\n                                                                                                       <b class=\'caret\'></b>\n                                                                                       </a>\n                                                                                  <tree tree=\'voice\'></tree>\n                                                                  </li>\n                                                                 <li dropdown>\n                                                                                 <a href="#" dropdown-toggle>\n                                                                                                  {{ \'APPLICATION_MAIL\' | translate }}\n                                                                                                        <b class=\'caret\'></b>\n                                                                                       </a>\n                                                                                  <tree tree=\'mail\'></tree>\n                                                                   </li> -->\n                             <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n                                <a href="/dashboard/voice">\n                                                                                                       <b class=\'icon-earphones-alt\'></b>\n                                  {{ \'APPLICATION_VOICE\' | translate }}\n                                   </a>\n                                  <!-- <tree tree=\'voice\'></tree> -->\n                             </li>\n                                                                         <li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n                                 <a href="/dashboard/mail">\n                                                                                                        <b class=\'icon-envelope\'></b>\n                                       {{ \'APPLICATION_MAIL\' | translate }}\n                                    </a>\n                                  <!-- <tree tree=\'mail\'></tree> -->\n                              </li>\n                     </ul>\n                         <!-- <ul class="nav navbar-nav">\n                          <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_QUEUES\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'queues\'></tree>\n                             </li>\n                     </ul> -->\n                 </div>\n                        <!-- /.navbar-collapse -->\n                </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div class="row" ng-init=\'getQueueStats()\'>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat red-intense">\n      <div class="visual">\n        <i class="fa fa-comments"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.abandonedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat green-haze">\n      <div class="visual">\n        <i class="fa fa-bar-chart-o"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.completedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat purple-plum">\n      <div class="visual">\n        <i class="fa fa-shopping-cart"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.waitCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat blue-madison">\n      <div class="visual">\n        <i class="fa fa-globe"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.activeCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n</div>\n'),a.put("app/desk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_DESK_COM\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/desk/wizard">\n                                                               <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'consumerKey\',\'consumerSecret\',\'token\',\'tokenSecret\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Consumer Key\', \'Consumer Secret\', \'Token\', \'Token Secret\', \'Password\']" field-separator=";" filename="desk_accounts.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedDeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedDeskAccounts" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/account">\n                                                                           {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedDeskAccounts.length">\n                                                              <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/desk/view/view.account.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n                                                                          <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'basic\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START CONSUMER KEY -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="account.consumerKey" required/>\n                                                          <span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                            <label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="account.consumerSecret" required/>\n                                                         <span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n                                                             <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="account.tokenSecret" required/>\n                                                          <span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN SECRET-->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n                          <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n                                  <ui-select-choices repeat="item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                  <div ng-bind-html="item | highlight: $select.search"></div>\n                                 </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.configurations.html",'<div ui-view class="profile-content">\n      <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/desk/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                           <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                      {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/desk.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.desk.view.account\')}">\n                                                  <a ng-href="/desk/view/{{account.id}}/account">\n                                                       <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.desk.view.configurations\') || $state.is(\'main.desk.view.configuration\')}">\n                                                      <a ng-href="/desk/view/{{account.id}}/configurations">\n                                                        <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/desk/accounts/validate/username"/>\n                                                         <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/desk/accounts/validate/remoteUri"/>\n                                                             <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n                                                                          <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'basic\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                               <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CONSUMER KEY -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="item.consumerKey" required/>\n                                                             <span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="item.consumerSecret" required/>\n                                                            <span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                                <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n                                                                <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="item.tokenSecret" required/>\n                                                             <span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN SECRET-->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/fax/account/list/list.html",'<div class="row">\n    <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="fax_accounts.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/fax/accounts/wizard">\n                                                               <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                     <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n                                               <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n                                                           <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n                                          <td>{{faxAccount.name}}</td>\n                                                            <td>{{faxAccount.description}}</td>\n                                                           <td>{{faxAccount.phone}}</td>\n                                       <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/accounts/view/{{faxAccount.id}}/settings">\n                                                                               {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFaxAccounts.length">\n                                                               <td colspan="5" style="text-align:center;">\n                                                                   <i>No fax account available</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td></td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n                                         </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n  <div class="col-md-12">\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                        <form name="forms.info" novalidate>\n                                                           <!-- START APP -->\n                                                            <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n                                                                      <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n                                         <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n                                          <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n                                           </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APP -->\n\n                                                            <!-- START APPADATA -->\n                                                               <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n                                                                        <ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                          <ui-select-choices repeat="item in items | filter: $select.search">\n                                             <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n                                       </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APPADATA -->\n\n                                                               <!-- START TIMEOUT -->\n                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                                                  <input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n                                                                    <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TIMEOUT -->\n\n                                                                <!-- START INTERVAL -->\n                                                               <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n                                                                 <input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n                                                                   <span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div> -->\n                                                            <!-- END INTERVAL -->\n\n                                                               <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-paper-plane"></i>\n                                      <a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.name || account.description }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/account.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.name || account.description }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{ account.phone }}\n                                   </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.fax.accounts.view.settings\')}">\n                                                 <a href="/fax/accounts/view/{{account.id}}/settings">\n                                                 <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li data-ng-class="{active: $state.is(\'main.fax.accounts.view.routes\') || $state.is(\'main.fax.accounts.view.applications\')}">\n                                                     <a href="/fax/accounts/view/{{account.id}}/routes">\n                                                   <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ROUTES\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                                <!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                 <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                  <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n                                                                <th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n                                                  <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n                                                                <th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                           </tr>\n                                         </thead>\n                                            <tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n                                     <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n                                                               <td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n                                                            <td>{{getAppdata(application.app, application.appdata)}}</td>\n                                                         <td>{{application.timeout}}</td>\n                                                              <!-- <td>{{application.interval}}</td> -->\n                                          <td>\n                                            <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="faxApplications.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/account/view/view.settings.html",'<div class="row">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n                                                             <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                          <input\n                                                                        bs-switch\n                                                                     ng-model="account.ecm"\n                                                                        type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n                                                         <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n                                                               <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n                                                                <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                                <input\n                                                                        bs-switch\n                                                                     ng-model="item.ecm"\n                                                                   type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n                                                            <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n                                                          <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/fax/automation/list/list.html",'<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-settings"></i>\n                                         <a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="faxAutomations.checked.length">\n                                          <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n                                           </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/fax/automations/wizard">\n                                                            <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="fax_automations.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFaxAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                  <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.faxAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="faxAutomationByPage in faxAutomationsByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="faxAutomationByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                              <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAutomation, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="faxAutomation in displayedFaxAutomations">\n                                                            <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxAutomations.checked" checklist-value="faxAutomation.id"></td>\n                                             <td>{{faxAutomation.name}}</td>\n                                                         <td>{{faxAutomation.description}}</td>\n                                                                <td>\n                                                                  <input\n                                                                                data-ng-change="updateItem(faxAutomation.id, faxAutomation.status)",\n                                                              bs-switch\n                                                             ng-model="faxAutomation.status"\n                                                               type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ onText }}"\n                                                                 switch-off-text="{{ offText }}"\n                                                               switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                          </td>\n                                       <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/automations/view/{{faxAutomation.id}}/settings">\n                                                                         {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAutomation.name, faxAutomation.id)">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFaxAutomations.length">\n                                                            <td colspan="6" class="text-center">\n                                                                  <i>{{\'MESSAGE_NO_AVAILABLE_AUTOMATIONS\' | translate}}</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxAutomationsByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                     <i class="fa fa-angle-right" data-ng-show="automation"></i>\n                           </li>\n                         <li data-ng-show="automation">\n                                        <a href="#">{{ automation.description || automation.name }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ automation.name }}\n                                 </div>\n                                        <div class="profile-usertitle-job">\n                                           {{automation.description}}\n                                    </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.fax.automations.view.settings\')}">\n                                                      <a href="/fax/automations/view/{{automation.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n                                                             <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                                    <!-- IMAP TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewCondition(\'or\')">\n                                                                  <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n                                                        <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n                                                                                                <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n                                                                                                    <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n                                                                                          <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-4" data-ng-switch="condition.condition">\n                                                                           <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n                                                                                                <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n                                                                                                     <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeCondition(condition.id)">\n                                                                                    <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessConditions.length">\n                                                 <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n                                        </div>\n                                        <!-- END IMAP TAB -->\n\n                                       <div class="tab-pane" id="tab_1_3">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewCondition(\'and\')">\n                                                                 <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n                                                       <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n                                                                                          <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n                                                                                                    <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n                                                                                             <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-4" data-ng-switch="condition.condition">\n                                                                           <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n                                                                                          <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n                                                                                                     <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                                       <span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeCondition(condition.id)">\n                                                                                    <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessConditions.length">\n                                                 <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n                                        </div>\n\n                                      <!-- SMTP TAB -->\n                                     <div class="tab-pane" id="tab_1_4">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewAction()">\n                                                                   <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="action in automation.BusinessActions">\n                                                       <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n                                                                                         <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n                                                                                                     <div data-ng-bind="action.value | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3" data-ng-switch="action.condition">\n                                                                              <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n                                                                                         <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                         </div>\n                                                                        </div>\n                                                                        <div class="col-md-4">\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeAction(action.id)">\n                                                                                  <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessActions.length">\n                                                    <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n\n                                      </div>\n                                        <!-- END SMTP TAB -->\n                         </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n     <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                             </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid && forms.automation.$valid)">\n                                         <form name="forms.automation" novalidate>\n                                                     <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n                                                                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                         <input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n                                                                               <span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n\n                                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n                                                                                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                              <input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n                                                                          <span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <hr>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'or\')">\n                                                                             <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-user"></i>\n                                                                     <span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.or">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n                                                                                               <ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n                                                                                                          <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                               <ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n                                                                                                    <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n                                                                                                          <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                                 </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n                                                                                        <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n                                                                                            <ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n                                                                                                               <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number">\n                                                                                         <input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n                                                                                              <span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'or\', $index)">\n                                                                                             <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.or.length">\n                                                                <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add condition</i>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'and\')">\n                                                                            <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-people"></i>\n                                                                   <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.and">\n                                                              <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n                                                                                                        <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n                                                                                                         <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                              <ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n                                                                                                         <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                                 </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n                                                                                       <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n                                                                                                        <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n                                                                                                              <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number">\n                                                                                         <input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n                                                                                          <span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'and\', $index)">\n                                                                                            <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.and.length">\n                                                               <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add condition</i>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'actions\')">\n                                                                                <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-magic-wand"></i>\n                                                                       <span class="caption-subject">Perform these actions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.actions">\n                                                          <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n                                                                                                 <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n                                                                                                           <div data-ng-bind="action.value | highlight: $select.search"></div>\n                                                                                                   </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n                                                                                   <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n                                                                                                 <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n                                                                                                          <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n                                                                                               <input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n                                                                                             <span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4">\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n                                                                                                <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.actions.length">\n                                                           <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add action</i>\n                                                             </div>\n                                                        </div>\n                                                        <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                               </div>\n                                                        </div>\n                                                </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/fax/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-note"></i>\n                                             <a href="/fax/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n     <div class="col-md-12" ui-view>\n       </div>\n</div>\n'),a.put("app/fax/inbox/incoming/incoming.html",'<!-- END PAGE HEADER-->\n<div data-ng-init="getRooms()">\n     <!-- <pre>\n            {{faxRooms | json}}\n   </pre> -->\n    <div class="inbox-header">\n            <h1 class="pull-left">Inbox</h1>\n      </div>\n        <div class="inbox-content">\n           <table class="table table-advance" st-table="displayedFaxRooms" st-safe-src="faxRooms">\n                       <thead>\n                               <tr>\n                                  <th colspan="8" style="background: #eef4f7; border: none; border-bottom: solid 5px #fff;">\n                                            <div class="row">\n                                                     <div class="col-md-6">\n                                                                <input type="checkbox" class="mail-checkbox mail-group-checkbox checker" data-ng-model="checked" data-ng-change="switchCheckbox(displayedFaxRooms, checked)">\n                                                         <div class="btn-group">\n                                                                       <a data-ng-href="/fax/inbox/compose" class="btn btn-sm blue">{{\'APPLICATION_NEW_MESSAGE\' | translate}} <i class="fa fa-plus"></i></a>\n                                                                       <!-- <a class="btn btn-sm blue dropdown-toggle" href="#" data-toggle="dropdown">\n                                                                              {{\'APPLICATION_MORE\' | translate}} <i class="fa fa-angle-down"></i>\n                                                                 </a> -->\n                                                                      <ul class="dropdown-menu">\n                                                                            <li>\n                                                                                  <a href="#" data-ng-click="markAsRead(true)">\n                                                                                 <i class="icon-paper-plane-open"></i> {{\'APPLICATION_MARK_AS_READ\' | translate}} </a>\n                                                                               </li>\n                                                                         <li>\n                                                                                  <a href="#" data-ng-click="markAsRead(false)">\n                                                                                        <i class="icon-paper-plane"></i> {{\'APPLICATION_MARK_AS_UNREAD\' | translate}} </a>\n                                                                          </li>\n                                                                         <li class="divider">\n                                                                          </li>\n                                                                         <li>\n                                                                                  <a href="#" data-ng-click="deleteMessage()">\n                                                                                  <i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}} </a>\n                                                                                </li>\n                                                                 </ul>\n                                                         </div>\n                                                        </div>\n                                                        <div class="col-md-6">\n                                                                <div class="input-group input-medium pull-right">\n                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                 <span class="input-group-addon btn green" style="cursor: default;">\n                                                                           <i class="icon-magnifier" style="color: white;"></i>\n                                                                  </span>\n                                                               </div>\n                                                                <ui-select data-ng-model="conf.faxRoomsByPage" theme="bootstrap" style="width: 100px;" class="pull-right margin-right-10">\n                                                                    <ui-select-match placeholder="{{ \'APPLICATION_SEARCH\' | translate }}">{{$select.selected}}</ui-select-match>\n                                                                        <ui-select-choices repeat="p in [10, 20, 35, 50] | filter: $select.search">\n                                                                           <span ng-bind-html="p | highlight: $select.search"></span>\n                                                                    </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                        </th>\n                         </tr>\n                 </thead>\n                      <tbody>\n                               <tr data-ng-repeat="faxRoom in displayedFaxRooms | orderBy:\'-updatedAt\'" data-ng-class="{unread: !faxRoom.read}" data-ng-click="go(\'/fax/inbox/room/\' + faxRoom.id, faxRoom.id, \'OPEN\')" class="animate-repeat">\n                                        <td class="inbox-small-cells" style="border: none;">\n                                          <input type="checkbox" class="checker" checklist-model="checkedMailMessages.id" checklist-value="faxRoom.id">\n                                 </td>\n                                 <!-- <td class="inbox-small-cells" style="border: none;">\n                                             <i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n                                 </td> -->\n                                     <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n                                              #{{faxRoom.id}}\n                                       </td>\n                                 <!-- <td class="inbox-small-cells" style="border: none;">\n                                             <i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n                                 </td> -->\n                                     <!-- <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n                                         {{faxRoom.subject}}\n                                   </td> -->\n                                     <td class="view-message" style="cursor:pointer; border:none;">\n                                                {{faxRoom.from}}\n                                      </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;">\n                                                {{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n                                      </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;" data-ng-switch="faxRoom.status">\n                                                <span class="badge badge-default" data-ng-class="{\n                                            \'badge-danger\': faxRoom.status == \'NEW\',\n                                          \'badge-warning\': faxRoom.status == \'OPEN\',\n                                                \'badge-info\': faxRoom.status == \'PENDING\',\n                                                \'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n                                     </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;">\n                                                <span class="badge badge-success badge-roundless" data-ng-show="faxRoom.User.fullname"> {{faxRoom.User.fullname}} </span>\n                                             <span class="badge badge-default badge-roundless" data-ng-hide="faxRoom.User.fullname"> {{\'APPLICATION_UNASSIGNED\' | translate}} </span>\n                                    </td>\n                                 <td class="view-message text-right" context-menu="menuOptions" style="border: none;">\n                                         <time is="relative-time" datetime="{{faxRoom.updatedAt}}">\n                                                    April 1, 2014\n                                         </time>\n                                       </td>\n                         </tr>\n                         <tr data-ng-hide="faxRooms.length">\n                                   <td colspan="6" class="text-center">\n                                          <i>{{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}</i>\n                                      </td>\n                         </tr>\n                         <tr>\n                                  <td colspan="8" class="text-center" style="border: none;">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxRoomsByPage" st-displayed-pages="7"></div>\n                                    </td>\n                         </tr>\n                 </tbody>\n              </table>\n      </div>\n</div>\n'),a.put("app/fax/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n        <div class="portlet light">\n           <!-- PROJECT HEAD -->\n         <div class="portlet-title">\n                   <div class="caption" data-ng-show="faxRoom">\n                          <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="badge badge-default" data-ng-class="{\'badge-error\': faxRoom.status == \'NEW\',\n                         \'badge-warning\': faxRoom.status == \'OPEN\',\n                                \'badge-info\': faxRoom.status == \'PENDING\',\n                                \'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n                     </div>\n                        <div class="actions" data-ng-show="faxRoom">\n                          <div class="btn-group" data-ng-show="Auth.isAdmin()">\n                                 <a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                                   {{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n                                     </a>\n                                  <ul class="dropdown-menu pull-right">\n                                         <li data-ng-repeat="agent in agents">\n                                                 <a href="#" data-ng-click="assignAgent(agent.id)">\n                                                    {{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n                                                    </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <div class="btn-group">\n                                       <a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                                   {{ \'APPLICATION_STATUS\' | translate }} <i class="fa fa-angle-down"></i>\n                                     </a>\n                                  <ul class="dropdown-menu pull-right">\n                                         <li>\n                                                  <a href="#" data-ng-click="updateStatus(\'PENDING\')">\n                                                        {{\'STATUS_PENING\' | translate}} <span class="badge badge-danger">\n                                                   P </span>\n                                                     </a>\n                                          </li>\n                                         <li>\n                                                  <a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n                                                 {{\'STATUS_CLOSED\' | translate}} <span class="badge badge-success">\n                                                  C </span>\n                                                     </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </div>\n                </div>\n                <!-- end PROJECT HEAD -->\n             <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="faxRoom" data-ng-class="{\'col-md-7 col-sm-7\': faxRoom}">\n                                 <div class="scroller" id="faxMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n                                           <ul class="chats">\n                                                    <li data-ng-class="{\'in\': faxMessage.status == \'RECEIVED\', \'out\': (faxMessage.status == \'SENT\' || faxMessage.status == \'SENDING\' || faxMessage.status == \'FAILED\' || faxMessage.status == \'NOT SENT\')}" data-ng-repeat="faxMessage in faxRoom.FaxMessages | orderBy:\'createdAt\'">\n                                                     <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && faxMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                     <div class="message">\n                                                         <span class="arrow">\n                                                          </span>\n                                                               <span class="bold">{{\'APPLICATION_FROM\' | translate}}: </span>\n                                                              <span>{{faxMessage.From.fullname}} </span>\n                                                            <span> &#60;{{faxMessage.From.phone}}&#62; </span>\n                                                            <br>\n                                                          <span class="bold">{{\'APPLICATION_TO\' | translate}}: </span>\n                                                                <span>{{faxMessage.To.fullname}} </span>\n                                                              <span> &#60;{{faxMessage.To.phone}}&#62; </span>\n                                                              <br>\n                                                          <span class="todo-tasklist-date">\n                                                                     <i class="fa fa-calendar"></i>\n                                                                        <time is="relative-time" datetime="{{faxMessage.createdAt}}">\n                                                                         April 1, 2014\n                                                                 </time>\n                                                               </span>\n                                                               <span data-ng-show="faxMessage.status == \'FAILED\' || faxMessage.status == \'SENDING\'" class="badge badge-default" data-ng-class="{\'badge-error\': faxMessage.status == \'FAILED\', \'badge-warning\': faxMessage.status == \'SENDING\'}"> {{faxMessage.status | uppercase}} </span>\n                                                               <br>\n                                                          <br>\n                                                          <span class="body">\n                                                                   <div class="wrapper" ng-controller="FaxInboxRoomCtrl" style="max-height:600px; overflow:auto;">\n                                                 <ng-pdf pdf-url="/api/fax/messages/{{faxMessage.id}}/content" template-url="/assets/plugins/angular-pdf/example/partials/viewer.html" scale="0.5" page=1></ng-pdf>\n                                          </div>\n                                                                </span>\n                                                               <br>\n                                                  </div>\n                                                </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-5 col-sm-5\': faxRoom, \'col-md-12 col-sm-12\': !faxRoom}">\n                                     <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendFax()" class="form-horizontal" novalidate>\n                                             <!-- TASK HEAD -->\n                                            <div class="form">\n                                                    <div class="form-group">\n                                                              <div class="col-md-12 col-sm-12">\n                                                                     <div class="todo-taskbody-user">\n                                                                              <img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n                                                                           <span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TASK HEAD -->\n\n                                                      <!-- FAX FROM -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">{{\'APPLICATION_FROM\' | translate}}:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_FROM\' | translate}}...">{{$select.selected.name}} - {{$select.selected.phone}}</ui-select-match>\n                                                                                               <ui-select-choices repeat="faxAccount in faxAccounts | filter: $select.search">\n                                                                                                       <div ng-bind-html="faxAccount.name | highlight: $select.search"></div>\n                                                                                                        <small ng-bind-html="faxAccount.phone | highlight: $select.search"></small>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <!-- FAX TO -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">{{\'APPLICATION_TO\' | translate}}:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_TO\' | translate}}...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <!-- TASK DESC -->\n                                                    <div class="form-group">\n                                                              <div class="col-md-12">\n                                                                       <!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n                                                                       <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n                                                           </div>\n                                                        </div>\n                                                        <!-- END TASK DESC -->\n\n                                                      <!-- START ATTACH -->\n                                                 <div class="form-group">\n                                                              <div class="col-md-6">\n                                                                        <input type="file" nv-file-select uploader="uploader" name="file">\n                                                                    <table class="table" border="0">\n                                                                              <tbody>\n                                                                               <tr data-ng-repeat="item in uploader.queue">\n                                                                                          <td style="border-top-style:none">\n                                                                                                    <strong>\n                                                                                                              {{ item.file.name }}\n                                                                                                  </strong>\n                                                                                             </td>\n                                                                                         <td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n                                                                                                     {{ item.file.size/1024/1024|number:2 }} MB\n                                                                                            </td>\n                                                                                         <td nowrap style="border-top-style:none">\n                                                                                                     <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                                    <span class="glyphicon glyphicon-trash"></span> Remove\n                                                                                                        </button>\n                                                                                             </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                                      </table>\n                                                              </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="form-actions right todo-form-actions">\n                                                                            <button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n                                                                              <input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END ATTACH -->\n\n                                         </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/fax/queue/list/list.html",'<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-layers"></i>\n                                           <a href="/fax/queues/lis">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                        </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-layers font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="faxQueues.checked.length">\n                                               <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/fax/queues/wizard">\n                                                         <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="fax_queues.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFaxQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n                                                                <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate}}</th>\n                                                         <th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="queue in displayedFaxQueues" class="animate-repeat">\n                                                          <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxQueues.checked" checklist-value="queue.id"></td>\n                                          <td>{{queue.name}}</td>\n                                                         <td>{{queue.description}}</td>\n                                                                <td>{{queue.strategy | uppercase}}</td>\n                                                               <td>{{queue.timeout}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n                                                                              {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFaxQueues.length">\n                                                         <td colspan="6" class="text-center">\n                                                                  <i>No available queues</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="67" class="text-center">\n                                           <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body" style="width: 50%; margin: 0 auto;">\n                                <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body text-center">\n                                           <div class="form-group last">\n                                                 <div class="col-md-9" id="multi-select-team">\n                                                 </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-paper-plane"></i>\n                                      <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-layers"></i>\n                                   <a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                       <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.fax.queues.view.settings\')}">\n                                                   <a data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.fax.queues.view.agents\')}">\n                                                     <a data-ng-href="/fax/queues/view/{{queue.id}}/agents">\n                                                       <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.settings.html",'<div class="row">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateFaxQueue()" novalidate>\n                                      <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                          <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/fax/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n     <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-paper-plane"></i>\n                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n                      </li>\n      <li>\n                             <i class="icon-layers"></i>\n                           <a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                       </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-layers font-green-sharp"></i>\n                          <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n             </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n                                        <form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n                                          <!-- START NAME -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END NAME -->\n\n                                           <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                               </div>\n                                                <!-- END DESCRIPTION -->\n\n                                            <!-- START TIMEOUT -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n                                                        <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TIMEOUT -->\n\n                                                <!-- START STRATEGY -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                             <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                                  <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STRATEGY -->\n                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </form>\n                         </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
 a.put("app/fax/timeline/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-list"></i>\n                                             <a href="/fax/timeline/list"> {{\'APPLICATION_TIMELINE\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n     <div class="col-md-12">\n    <h3 class="page-title">\n                          {{\'APPLICATION_TIMELINE\' | translate}}\n                      </h3>\n                 <!-- END PAGE HEADER-->\n                       <!-- BEGIN PAGE CONTENT-->\n                    <div class="timeline">\n                                <!-- TIMELINE ITEM -->\n                                <div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n                                        <div class="timeline-badge">\n                                          <div class="timeline-icon">\n                                                   <i class="icon-paper-plane font-green-haze"></i>\n                                              </div>\n                                        </div>\n                                        <div class="timeline-body">\n                                           <div class="timeline-body-arrow"></div>\n                                               <div class="timeline-body-head">\n                                                      <div class="timeline-body-head-caption">\n                                                              <span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n                                                                <span class="timeline-body-time font-grey-cascade">{{\'APPLICATION_AT\' | translate}} {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n                                                       </div>\n                                                        <div class="timeline-body-head-actions">\n                                                              <div class="btn-group">\n                                                                       <a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/fax/inbox/room/{{event.FaxRoomId}}">{{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_FAX\' | translate}}</a>\n                                                         </div>\n                                                        </div>\n                                                </div>\n                                                <div class="timeline-body-content">\n                                                   <span class="font-grey-cascade" data-ng-show="event.User">\n                                                    {{event.FaxRoom.subject ? event.FaxRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n                                                 </span>\n                                               </div>\n                                        </div>\n                                </div>\n                                <!-- END TIMELINE ITEM -->\n                    </div>\n                        <!-- END PAGE CONTENT-->\n      </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_FRESHDESK\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/freshdesk/wizard">\n                                                          <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'apiKey\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Api Key\']" field-separator=";" filename="freshdesk_accounts.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFreshdeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedFreshdeskAccounts" class="animate-repeat">\n                                                                <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/freshdesk/view/{{account.id}}/account">\n                                                                              {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFreshdeskAccounts.length">\n                                                         <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/view/view.account.html",'<div class="row">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START API KEY -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.apiKey.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_API_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="apiKey" placeholder="{{\'APPLICATION_API_KEY\' | translate}}" class="form-control" data-ng-model="account.apiKey" required/>\n                                                         <span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END API KEY -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/freshdesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n   <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n                        <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected[0]}}</ui-select-match>\n                               <ui-select-choices repeat="item[0] as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                               <div ng-bind-html="item[0] | highlight: $select.search"></div>\n                              </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/freshdesk/view/view.configurations.html",'<div ui-view class="profile-content">\n <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/freshdesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                              <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/freshdesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                 {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/freshdesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n                                     <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/freshdesk.png" class="img-responsive">\n                          </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.freshdesk.view.account\')}">\n                                                     <a ng-href="/freshdesk/view/{{account.id}}/account">\n                                                  <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.freshdesk.view.configurations\') || $state.is(\'main.freshdesk.view.configuration\')}">\n                                                    <a ng-href="/freshdesk/view/{{account.id}}/configurations">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/freshdesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/freshdesk/accounts/validate/username"/>\n                                                                <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/freshdesk/accounts/validate/remoteUri"/>\n                                                                <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START API KEY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.apiKey.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_API_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="apiKey" placeholder="{{\'APPLICATION_API_KEY\' | translate}}" class="form-control" data-ng-model="item.apiKey" required/>\n                                                            <span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END API KEY -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/integration/list/list.html",'\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-game-controller"></i>\n                                  <a href="/integrations/list">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initList()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-eye font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                           <span class="btn green-jungle btn-file">\n            <span> <i class="icon-plus"></i> New App </span>\n            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n          </span>\n          <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedIntegrations" filename="integrations.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedIntegrations" st-safe-src="integrations" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <select class="form-control input-small select2me" data-ng-model="integrationsByPage">\n                                                                                                <option value="10">10</option>\n                                                                                                <option value="25">25</option>\n                                                                                                <option value="50">50</option>\n                                                                                                <option value="{{integrations.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                                        </select>\n                                                                             </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th>\n                                                   <th st-sort="fullname">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                                <th st-sort="name">{{ \'APPLICATION_FILENAME\' | translate }}</th>\n                                                            <th st-sort="name">{{ \'APPLICATION_VERSION\' | translate }}</th>\n                                                 <th st-sort="name">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="integration in displayedIntegrations">\n                                                                <td>{{integration.id}}</td>\n                                                           <td>{{integration.name}}</td>\n                                                         <td>{{integration.filename}}</td>\n                                                             <td>{{integration.version}}</td>\n                                            <td>{{integration.description}}</td>\n                                                            <td>\n                                                                  <span class="btn default btn-xs blue-stripe btn-file">\n                                            <span> {{ \'APPLICATION_UPDATE\' | translate }} </span>\n                                       <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n                                    </span>\n                                             <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(integration.name, integration.id)">\n                                                                                {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="integrations.length">\n                                                               <td colspan="6" style="text-align:center;">\n                                                                   <i>No integrations available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="id" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="filename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FILENAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                              </td>\n                                                             <td>\n                                              </td>\n                                                             <td>\n                                              </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="integrationsByPage" st-displayed-pages="7"></div>\n                                           </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-clock"></i>\n                                    <a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-clock font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_INTERVALS\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="intervals.checked.length">\n                                               <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_INTERVAL\' | translate }} <i class="fa fa-angle-down"></i>\n                                             </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/intervals/wizard">\n                                                          <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getIntervals([\'name\'])" csv-header="[\'Name\']" field-separator=";" filename="intervals.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedIntervals" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="3">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.intervalsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="intervalByPage in intervalsByPage | filter: $select.search">\n                                                                                                       <div ng-bind-html="intervalByPage.name | highlight: $select.search"></div>\n                                                                                            </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(interval, checked)" checklist-model checklist-value="id"></th>\n                                                 <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="interval in displayedIntervals">\n                                                              <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="intervals.checked" checklist-value="interval.id"></td>\n                                                         <td>{{interval.name}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/settings">\n                                                                            {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(interval.name,interval.id)">\n                                                                               {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedIntervals.length">\n                                                         <td colspan="3" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="3" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.intervalsByPage.value" st-displayed-pages="7"></div>\n                                           </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getInterval()">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-clock"></i>\n                                    <a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n                                     <i data-ng-show="interval" class="fa fa-angle-right"></i>\n                             </li>\n                         <li data-ng-show="interval">\n                                  <a href="#">{{interval.name}}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/interval.png" class="img-responsive">\n                           </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{interval.name}}\n                                     </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.intervals.view.settings\')}">\n                                                    <a data-ng-href="/intervals/view/{{interval.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.intervals.view.subintervals\') || $state.is(\'main.intervals.view.subinterval\') || $state.is(\'main.intervals.view.subintervals.settings\')}">\n                                                  <a data-ng-href="/intervals/view/{{interval.id}}/subintervals">\n                                                       <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_SUBINTERVALS\' | translate}} </a>\n                                            </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.settings.html",'<div class="row">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateInterval()" novalidate>\n\n                                                    <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="interval.name" required/>\n                                                               <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/interval/view/view.subinterval.html",'\n<div class="row" data-ng-init="initSubInterval()">\n      <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n                                                       <!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n                                                                       <fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                        <fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                       <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n                                                       <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n                                             <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervalSettings.html",'\n<div class="row" data-ng-init="getSubInterval()">\n     <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD</a> </span>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="updateItem()">\n                                     <div class="profile-usertitle-name">\n                                          {{subinterval.name}}\n                                  </div>\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n              <!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n                                                                   <fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                        <fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                       <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n                                                       <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n                                             <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/interval/view/view.subintervals.html",'<div ui-view class="profile-content">\n<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SUBINTERVALS\' | translate}}</span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/intervals/view/{{interval.id}}/subinterval" data-toggle="dropdown">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n                                               <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n                                                           <th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody data-ng-model="subIntervals">\n                                            <tr data-ng-repeat="subinterval in subIntervals">\n                                                         <td>{{subinterval.name}}</td>\n                                                         <td>{{subinterval.interval}}</td>\n                                           <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/subintervals/settings/{{subinterval.id}}">\n                                                                            {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(subinterval.name+\' interval\',subinterval.id)">\n                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="subIntervals.length">\n                                                               <td colspan="3" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_SUBINTERVALS_AVAILABLE\' | translate }}</i>\n                                                                </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/interval/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n      <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-clock"></i>\n                            <a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n                             <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/intervals/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n     <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-clock font-green-sharp"></i>\n                   <span class="caption-subject">{{ \'APPLICATION_INTERVAL\' | translate }} WIZARD</a> </span>\n           </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.interval.$valid)">\n                        <form name="forms.interval" novalidate>\n\n            <!-- START NAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$invalid}">\n              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n              <span data-ng-show="(forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END NAME -->\n\n                                              <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                        </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/jscripty/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Projects.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/jscripty/projects/wizard">\n                                                          <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="jscripty_projects.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n                                                               <td>{{project.name}}</td>\n                                           <td>{{project.description}}</td>\n                                              <td>\n                                                                    <!-- data-ng-show="Auth.isAdmin()" -->\n                                                <a  class="btn default btn-xs blue-stripe" data-ng-href="/jscripty/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                                {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                                                  <!-- <a  class="btn default btn-xs blue-stripe" data-ng-click="newTab()" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                                {{ \'APPLICATION_START\' | translate}} {{Auth.isAdmin()}}\n                                                                     </a> -->\n                                              <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedProjects.length">\n                                                          <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/jscripty/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-edits"></i>\n                                           <a href="/jscripty/projects/list">{{ \'APPLICATION_JSCRIPTY\' | translate }}</a>\n                                              <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-slack"></i>\n                                           <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                       </li>\n          <li>\n                                         <a ng-href="/jscripty/projects/view/{{jscriptyProject.id}}">{{jscriptyProject.name}}</a>\n          </li>\n                             </ul>\n                 </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n              <div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/jscripty/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n     <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-docs"></i>\n                             <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n                              <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/jscripty/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n            </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n                         <form name="forms.project" novalidate>\n\n                        <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n                              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                                             <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n                                          </div>\n                                                <!-- END DESCRIPTION -->\n                            <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                          </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n     <a href="index.html">\n <img src="assets/images/logo-big.png" alt=""/>\n        </a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n  <!-- BEGIN LOGIN FORM -->\n     <form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n            <h3 class="form-title">Sign In</h3>\n           <div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n                   <button class="close" data-close="alert"></button>\n                    <span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n          </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n                   <label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n           </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n                       <label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n           </div>\n                <div class="form-actions">\n                    <button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n                   <!-- <label class="rememberme check">\n                 <input type="checkbox" name="remember" value="1"/>Remember </label> -->\n                       <!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n             </div>\n                <div class="login-options">\n                   <h4>Follow Us on</h4>\n                 <ul class="social-icons">\n                             <li>\n                                  <a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n                            </li>\n                         <li>\n                                  <a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n                           </li>\n                         <li>\n                                  <a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n                                </li>\n                         <li>\n                                  <a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n                            </li>\n                 </ul>\n         </div>\n        </form>\n</div>\n<div class="copyright">\n       2016 Â© xCALLY MOTION.\n</div>\n<!-- END LOGIN -->\n'),a.put("app/mail/account/list/list.html",'<div class="row">\n    <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                    </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="mailAccounts.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/mail/accounts/wizard">\n                                                              <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAccounts([\'name\', \'description\', {MailServerIn:\'username\'}])" csv-header="[\'Name\', \'Description\', \'Email Address\']" field-separator=";" filename="mail_accounts.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedMailAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                              <thead>\n                                             <tr>\n                                                  <th colspan="7">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <ui-select class="input-xsmall" ng-model="conf.mailAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                     <ui-select-choices repeat="mailAccountByPage in mailAccountsByPage | filter: $select.search">\n                                                                                         <div ng-bind-html="mailAccountByPage.name | highlight: $select.search"></div>\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                 <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                   <tr>\n                                                        <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAccount, checked)" checklist-model checklist-value="id"></th>\n                                      <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                  <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                      <th>IMAP</th>\n                                                 <th>SMTP</th>\n                                                 <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                      </tr>\n                                 </thead>\n                              <tbody>\n                                 <tr data-ng-repeat="mailAccount in displayedMailAccounts">\n                                                        <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAccounts.checked" checklist-value="mailAccount.id"></td>\n                                 <td>{{mailAccount.name}}</td>\n                                                   <td>{{mailAccount.description}}</td>\n                                                  <td><a ng-href="mailto:{{mailAccount.MailServerIn.username}}">{{mailAccount.MailServerIn.username}}</a></td>\n                                                  <td data-ng-switch="mailAccount.MailServerIn.state">\n                                                          <span class="label label-sm label-success" ng-switch-when="CONNECTED">\n                                                                        {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                               <span class="label label-sm label-warning" ng-switch-when="DISCONNECTED">\n                                                                     {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                               <span class="label label-sm label-danger" ng-switch-when="ERROR">\n                                                                     {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                               <span class="label label-sm label-default" ng-switch-default>\n                                                                 {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                       </td>\n                                                 <td data-ng-switch="mailAccount.MailServerOut.state">\n                                                         <span class="label label-sm label-success" ng-switch-when="CONNECTED">\n                                                                        {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                               <span class="label label-sm label-warning" ng-switch-when="DISCONNECTED">\n                                                                     {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                               <span class="label label-sm label-danger" ng-switch-when="ERROR">\n                                                                     {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                               <span class="label label-sm label-default" ng-switch-default>\n                                                                 {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                       </td>\n                               <td>\n                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{mailAccount.id}}/settings">\n                                                                     {{ \'APPLICATION_PROFILE\' | translate }}\n                                     </a>\n                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAccount.name, mailAccount.id)">\n                                                                        {{ \'APPLICATION_DELETE\' | translate }}\n                                      </a>\n                                </td>\n                               </tr>\n                                             <tr data-ng-hide="displayedMailAccounts.length">\n                                                      <td colspan="7" class="text-center">\n                                                  <i>{{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}</i>\n                                                    </td>\n                                         </tr>\n                           </tbody>\n                              <tfoot>\n                                             <tr>\n                                                  <td/>\n                                     <td>\n                                                              <div class="input-icon right">\n                                                                        <i class="fa fa-search"></i>\n                                                                  <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                            </div>\n                                            </td>\n                                                     <td>\n                                                          <div class="input-icon right">\n                                                                        <i class="fa fa-search"></i>\n                                                                  <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                          </div>\n                                            </td>\n                                         <td colspan="4"/>\n                                   </tr>\n                                               <tr>\n                                                  <td colspan="7" class="text-center">\n                                                          <div class="pagination" st-pagination st-items-by-page="conf.mailAccountsByPage.value" st-displayed-pages="7"></div>\n                                                  </td>\n                                         </tr>\n                           </tfoot>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                           <th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n                                                   <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n                                                                <th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody ui-sortable="sortableOptions" data-ng-model="mailApplications">\n                                          <tr data-ng-repeat="application in mailApplications">\n                                                             <td align="center">\n                                                                   {{application.User ? \'agent\' : \'queue\' | uppercase}} [{{application.User ? application.User.fullname : application.MailQueue.name}}]\n                                                              </td>\n                                                         <td align="center">{{application.timeout}}</td>\n                                                               <td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n                                                           <td>\n                                                                  <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{account.id}}/actions/view/{{application.id}}">\n                                                                          {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="mailApplications.length">\n                                                           <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n       <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/interval/view/view.subintervals.html",'<div ui-view class="profile-content">\n<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SUBINTERVALS\' | translate}}</span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/intervals/view/{{interval.id}}/subinterval" data-toggle="dropdown">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n                                               <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n                                                           <th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody data-ng-model="subIntervals">\n                                            <tr data-ng-repeat="subinterval in subIntervals">\n                                                         <td>{{subinterval.name}}</td>\n                                                         <td>{{subinterval.interval}}</td>\n                                           <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/subintervals/settings/{{subinterval.id}}">\n                                                                            {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(subinterval.name+\' interval\',subinterval.id)">\n                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="subIntervals.length">\n                                                               <td colspan="3" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_SUBINTERVALS_AVAILABLE\' | translate }}</i>\n                                                                </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/interval/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n      <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-clock"></i>\n                            <a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n                             <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/intervals/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n     <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-clock font-green-sharp"></i>\n                   <span class="caption-subject">{{ \'APPLICATION_INTERVAL\' | translate }} WIZARD</a> </span>\n           </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.interval.$valid)">\n                        <form name="forms.interval" novalidate>\n\n            <!-- START NAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$invalid}">\n              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n              <span data-ng-show="(forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END NAME -->\n\n                                              <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                        </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/jscripty/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Projects.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/jscripty/projects/wizard">\n                                                          <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="jscripty_projects.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n                                                               <td>{{project.name}}</td>\n                                           <td>{{project.description}}</td>\n                                              <td>\n                                                                    <!-- data-ng-show="Auth.isAdmin()" -->\n                                                <a  class="btn default btn-xs blue-stripe" data-ng-href="/jscripty/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                                {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                                                  <a  class="btn default btn-xs blue-stripe" data-ng-click="openJscriptyTab(project)" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                             {{ \'APPLICATION_START\' | translate}} \n                                                                       </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedProjects.length">\n                                                          <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/jscripty/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-edit"></i>\n                                            <a href="/jscripty/projects/list">{{ \'APPLICATION_JSCRIPTY\' | translate }}</a>\n                                              <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-slack"></i>\n                                           <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                       </li>\n          <li>\n                                         <a ng-href="/jscripty/projects/view/{{jscriptyProject.id}}">{{jscriptyProject.name}}</a>\n          </li>\n                             </ul>\n                 </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n              <div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/jscripty/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n     <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-docs"></i>\n                             <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n                              <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/jscripty/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n            </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n                         <form name="forms.project" novalidate>\n\n                        <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n                              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                                             <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n                                          </div>\n                                                <!-- END DESCRIPTION -->\n                            <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                          </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n     <a href="index.html">\n <img src="assets/images/logo-big.png" alt=""/>\n        </a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n  <!-- BEGIN LOGIN FORM -->\n     <form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n            <h3 class="form-title">Sign In</h3>\n           <div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n                   <button class="close" data-close="alert"></button>\n                    <span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n          </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n                   <label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n           </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n                       <label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n           </div>\n                <div class="form-actions">\n                    <button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n                   <!-- <label class="rememberme check">\n                 <input type="checkbox" name="remember" value="1"/>Remember </label> -->\n                       <!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n             </div>\n                <div class="login-options">\n                   <h4>Follow Us on</h4>\n                 <ul class="social-icons">\n                             <li>\n                                  <a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n                            </li>\n                         <li>\n                                  <a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n                           </li>\n                         <li>\n                                  <a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n                                </li>\n                         <li>\n                                  <a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n                            </li>\n                 </ul>\n         </div>\n        </form>\n</div>\n<div class="copyright">\n       2016 Â© xCALLY MOTION.\n</div>\n<!-- END LOGIN -->\n'),a.put("app/mail/account/list/list.html",'<div class="row">\n    <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                    </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="mailAccounts.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/mail/accounts/wizard">\n                                                              <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAccounts([\'name\', \'description\', {MailServerIn:\'username\'}])" csv-header="[\'Name\', \'Description\', \'Email Address\']" field-separator=";" filename="mail_accounts.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedMailAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                              <thead>\n                                             <tr>\n                                                  <th colspan="7">\n                                                              <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <ui-select class="input-xsmall" ng-model="conf.mailAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                     <ui-select-choices repeat="mailAccountByPage in mailAccountsByPage | filter: $select.search">\n                                                                                         <div ng-bind-html="mailAccountByPage.name | highlight: $select.search"></div>\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                        <div class="col-md-6">\n                                                                                <div class="input-group input-medium pull-right">\n                                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                 <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                   <tr>\n                                                        <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAccount, checked)" checklist-model checklist-value="id"></th>\n                                      <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                  <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                      <th>IMAP</th>\n                                                 <th>SMTP</th>\n                                                 <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                      </tr>\n                                 </thead>\n                              <tbody>\n                                 <tr data-ng-repeat="mailAccount in displayedMailAccounts">\n                                                        <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAccounts.checked" checklist-value="mailAccount.id"></td>\n                                 <td>{{mailAccount.name}}</td>\n                                                   <td>{{mailAccount.description}}</td>\n                                                  <td><a ng-href="mailto:{{mailAccount.MailServerIn.username}}">{{mailAccount.MailServerIn.username}}</a></td>\n                                                  <td data-ng-switch="mailAccount.MailServerIn.state">\n                                                          <span class="label label-sm label-success" ng-switch-when="CONNECTED">\n                                                                        {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                               <span class="label label-sm label-warning" ng-switch-when="DISCONNECTED">\n                                                                     {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                               <span class="label label-sm label-danger" ng-switch-when="ERROR">\n                                                                     {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                               <span class="label label-sm label-default" ng-switch-default>\n                                                                 {{ mailAccount.MailServerIn.state}}\n                                                           </span>\n                                                       </td>\n                                                 <td data-ng-switch="mailAccount.MailServerOut.state">\n                                                         <span class="label label-sm label-success" ng-switch-when="CONNECTED">\n                                                                        {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                               <span class="label label-sm label-warning" ng-switch-when="DISCONNECTED">\n                                                                     {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                               <span class="label label-sm label-danger" ng-switch-when="ERROR">\n                                                                     {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                               <span class="label label-sm label-default" ng-switch-default>\n                                                                 {{ mailAccount.MailServerOut.state}}\n                                                          </span>\n                                                       </td>\n                               <td>\n                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{mailAccount.id}}/settings">\n                                                                     {{ \'APPLICATION_PROFILE\' | translate }}\n                                     </a>\n                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAccount.name, mailAccount.id)">\n                                                                        {{ \'APPLICATION_DELETE\' | translate }}\n                                      </a>\n                                </td>\n                               </tr>\n                                             <tr data-ng-hide="displayedMailAccounts.length">\n                                                      <td colspan="7" class="text-center">\n                                                  <i>{{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}</i>\n                                                    </td>\n                                         </tr>\n                           </tbody>\n                              <tfoot>\n                                             <tr>\n                                                  <td/>\n                                     <td>\n                                                              <div class="input-icon right">\n                                                                        <i class="fa fa-search"></i>\n                                                                  <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                            </div>\n                                            </td>\n                                                     <td>\n                                                          <div class="input-icon right">\n                                                                        <i class="fa fa-search"></i>\n                                                                  <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                          </div>\n                                            </td>\n                                         <td colspan="4"/>\n                                   </tr>\n                                               <tr>\n                                                  <td colspan="7" class="text-center">\n                                                          <div class="pagination" st-pagination st-items-by-page="conf.mailAccountsByPage.value" st-displayed-pages="7"></div>\n                                                  </td>\n                                         </tr>\n                           </tfoot>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                           <th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n                                                   <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n                                                                <th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody ui-sortable="sortableOptions" data-ng-model="mailApplications">\n                                          <tr data-ng-repeat="application in mailApplications">\n                                                             <td align="center">\n                                                                   {{application.User ? \'agent\' : \'queue\' | uppercase}} [{{application.User ? application.User.fullname : application.MailQueue.name}}]\n                                                              </td>\n                                                         <td align="center">{{application.timeout}}</td>\n                                                               <td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n                                                           <td>\n                                                                  <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{account.id}}/actions/view/{{application.id}}">\n                                                                          {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="mailApplications.length">\n                                                           <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n       <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/mail/account/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n     <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                  <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.description || account.name }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img ng-src="assets/images/media/account.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.description || account.name }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.email}}\n                                     </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li ng-class="{active: $state.is(\'main.mail.accounts.view.settings\')}">\n                                                     <a href="/mail/accounts/view/{{account.id}}/settings">\n                                                        <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li ng-class="{active: $state.includes(\'main.mail.accounts.view.actions\')}">\n                                                        <a href="/mail/accounts/view/{{account.id}}/actions/list">\n                                                    <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ACTIONS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <div ui-view class="profile-content"></div>\n           <!-- END PROFILE CONTENT -->\n  </div>\n<!-- END PAGE CONTENT-->\n</div>\n'),a.put("app/mail/account/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n                                 </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n                                 </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formInfo" data-ng-submit="forms.formInfo.$valid && updateItemMailAccount()" novalidate>\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="(forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid && forms.formInfo.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                                    <!-- IMAP TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.formIn" data-ng-submit="forms.formIn.$valid && updateItemMailServerIn()" novalidate>\n                                                        <!-- START PROTOCOL -->\n                                                       <!-- <div class="form-group">\n                                                         <label class="control-label">IMAP/POP3</label>\n                                                                <button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="account.MailServerIn.protocol" bs-checkbox>{{account.MailServerIn.protocol ? \'IMAP\' : \'POP3\'}}</button>\n                                                 </div> -->\n                                                    <!-- END PROTOCOL -->\n\n                                                       <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.host" required/>\n                                                           <span data-ng-show="(forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid && forms.formIn.host.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.username" required/>\n                                                               <span data-ng-show="(forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid && forms.formIn.username.$error.required"  class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.password" required/>\n                                                           <span data-ng-show="(forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid && forms.formIn.password.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.port" required/>\n                                                         <span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.number" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START MAILBOX -->\n                                                        <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n                                                          <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.mailbox"/>\n                                                   </div>\n                                                        <!-- END MAILBOX -->\n\n                                                        <!-- START SEARCH FILTER -->\n                                                  <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n                                                            <ui-select data-ng-model="account.MailServerIn.filter" name="filter" theme="bootstrap">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n                                                                          <div ng-bind-html="filter | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- START SEARCH FILTER -->\n\n                                                        <!-- START DELETE -->\n                                                 <div class="form-group row">\n                                                          <label class="col-md-3">\n                                                                      {{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}\n                                                               </label>\n                                                              <label class="col-md-9">\n                                                                      <input type="checkbox" ng-model="account.MailServerIn.delete">\n                                                                </label>\n                                                      </div>\n                                                        <!-- END DELETE -->\n\n                                                 <!-- START SSL -->\n                                                    <div class="form-group row">\n                                                          <label class="col-md-3">\n                                                                      SSL\n                                                           </label>\n                                                              <label class="col-md-9">\n                                                                              <input type="checkbox" data-ng-model="account.MailServerIn.ssl">\n                                                              </label>\n                                                      </div>\n                                                        <!-- END SSL -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END IMAP TAB -->\n\n                                       <!-- SMTP TAB -->\n                                     <div class="tab-pane" id="tab_1_3">\n                                           <form name="forms.formOut" data-ng-submit="forms.formOut.$valid && updateItemMailServerOut()" novalidate>\n\n                                                   <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.host" required/>\n                                                          <span data-ng-show="(forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid && forms.formOut.host.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.username" required/>\n                                                              <span data-ng-show="(forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid && forms.formOut.username.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.password" required/>\n                                                          <span data-ng-show="(forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid && forms.formOut.password.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.port.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.port" required/>\n                                                                <span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.number" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START SSL -->\n                                                    <div class="form-group row">\n                                                          <label class="col-md-3">\n                                                                      SSL\n                                                           </label>\n                                                              <label class="col-md-9">\n                                                                              <input type="checkbox" data-ng-model="account.MailServerOut.ssl">\n                                                             </label>\n                                                      </div>\n                                                        <!-- END SSL -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                  <input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n                                           </form>\n                                       </div>\n                                        <!-- END SMTP TAB -->\n                         </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n       <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                    <form name="forms.info" novalidate>\n                                                           <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="info.name" required/>\n                                                                   <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n\n                                                           <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="info.description"/>\n                                                               </div>\n                                                                <!-- END DESCRIPTION -->\n                                                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n                                                      <form name="forms.in" novalidate>\n                                                             <!-- START PROTOCOL -->\n                                                               <!-- <div class="form-group">\n                                                                 <label class="control-label">IMAP/POP3</label>\n                                                                        <button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="in.protocol" bs-checkbox>{{in.protocol ? \'IMAP\' : \'POP3\'}}</button>\n                                                             </div> -->\n                                                            <!-- END PROTOCOL -->\n\n                                                               <!-- START HOST -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="in.host" required/>\n                                                                     <span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END HOST -->\n\n                                                           <!-- START USERNAME -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="in.username" name="username" required/>\n                                                                 <span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERNAME -->\n\n                                                               <!-- START PASSWORD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="in.password" required/>\n                                                                     <span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END PASSWORD -->\n\n                                                               <!-- START PORT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="in.port" required/>\n                                                                   <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                                       <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                                  </span>\n                                                               </div>\n                                                                <!-- END PORT -->\n\n                                                           <!-- START MAILBOX -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n                                                                  <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="in.mailbox"/>\n                                                             </div>\n                                                                <!-- END MAILBOX -->\n\n                                                                <!-- START SEARCH FILTER -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n                                                                    <ui-select data-ng-model="in.filter" name="filter" theme="bootstrap">\n                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                           <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n                                            <div data-ng-bind="filter | highlight: $select.search"></div>\n                                       </ui-select-choices>\n                                        </ui-select>\n                                                                        <!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="in.filter"/> -->\n                                                                </div>\n                                                                <!-- START SEARCH FILTER -->\n\n                                                                <!-- START DELETE -->\n                                                         <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              {{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}\n                                                                       </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="in.delete">\n                                                                     </label>\n                                                              </div>\n                                                                <!-- END DELETE -->\n\n                                                         <!-- START SSL -->\n                                                            <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              SSL\n                                                                   </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="in.ssl">\n                                                                        </label>\n                                                              </div>\n                                                                <!-- END SSL -->\n                                                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                                    </form>\n                                               </wz-step>\n                                            <wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n                                                     <form name="forms.out" novalidate>\n\n                                                          <!-- START HOST -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="out.host" required/>\n                                                                    <span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END HOST -->\n\n                                                           <!-- START USERNAME -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="out.username" required/>\n                                                                        <span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERNAME -->\n\n                                                               <!-- START PASSWORD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="out.password" required/>\n                                                                    <span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END PASSWORD -->\n\n                                                               <!-- START PORT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="out.port" required/>\n                                                                  <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                                       <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                                  </span>\n                                                               </div>\n                                                                <!-- END PORT -->\n\n                                                           <!-- START SSL -->\n                                                            <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              SSL\n                                                                   </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="out.ssl">\n                                                                       </label>\n                                                              </div>\n                                                                <!-- END DELETE -->\n\n                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                                            <input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n                                                   </form>\n                                               </wz-step>\n                                            <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/mail/automation/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-settings"></i>\n                                         <a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="mailAutomations.checked.length">\n                                         <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n                                           </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/mail/automations/wizard">\n                                                           <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="mail_automations.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedMailAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                 <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.mailAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="mailAutomationByPage in mailAutomationsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="mailAutomationByPage.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                              <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAutomation, checked)" checklist-model checklist-value="id"></th>\n                                                   <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="mailAutomation in displayedMailAutomations">\n                                                          <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAutomations.checked" checklist-value="mailAutomation.id"></td>\n                                           <td>{{mailAutomation.name}}</td>\n                                                                <td>{{mailAutomation.description}}</td>\n                                                               <td>\n                                                                  <input\n                                                                                data-ng-change="updateItem(mailAutomation.id, mailAutomation.status)",\n                                                                    bs-switch\n                                                             ng-model="mailAutomation.status"\n                                                              type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ onText }}"\n                                                                 switch-off-text="{{ offText }}"\n                                                               switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                          </td>\n                                       <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/automations/view/{{mailAutomation.id}}/settings">\n                                                                               {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAutomation.name, mailAutomation.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedMailAutomations.length">\n                                                           <td colspan="6" class="text-center">\n                                                                  <i>No available automations</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.mailAutomationsByPage.value" st-displayed-pages="7"></div>\n                                             </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                                    <i class="fa fa-angle-right" data-ng-show="automation"></i>\n                           </li>\n                         <li data-ng-show="automation">\n                                        <a href="#">{{ automation.description || automation.name }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ automation.name }}\n                                 </div>\n                                        <div class="profile-usertitle-job">\n                                           {{automation.description}}\n                                    </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.mail.automations.view.settings\')}">\n                                                     <a href="/mail/automations/view/{{automation.id}}/settings">\n                                                  <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n                                                             <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                                    <!-- IMAP TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewCondition(\'or\')">\n                                                                  <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n                                                        <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n                                                                                                <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n                                                                                                    <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n                                                                                          <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-4" data-ng-switch="condition.condition">\n                                                                           <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n                                                                                                <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n                                                                                                     <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeCondition(condition.id)">\n                                                                                    <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessConditions.length">\n                                                 <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n                                        </div>\n                                        <!-- END IMAP TAB -->\n\n                                       <div class="tab-pane" id="tab_1_3">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewCondition(\'and\')">\n                                                                 <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n                                                       <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n                                                                                          <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n                                                                                                    <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n                                                                                             <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-4" data-ng-switch="condition.condition">\n                                                                           <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n                                                                                          <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n                                                                                                     <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                                       <span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeCondition(condition.id)">\n                                                                                    <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessConditions.length">\n                                                 <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n                                        </div>\n\n                                      <!-- SMTP TAB -->\n                                     <div class="tab-pane" id="tab_1_4">\n                                           <div class="row">\n                                                     <div class="col-md-12">\n                                                               <a href="#" data-ng-click="addNewAction()">\n                                                                   <i class="icon-plus"></i>\n                                                             </a>\n                                                          <i class="icon-people"></i>\n                                                           <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="row" data-ng-repeat="action in automation.BusinessActions">\n                                                       <div class="col-md-12">\n                                                               <div class="row">\n                                                                     <div class="col-md-12">\n                                                                               <hr>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="row">\n                                                                     <div class="col-md-4">\n                                                                                <div class="form-group">\n                                                                                      <ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n                                                                                         <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n                                                                                                     <div data-ng-bind="action.value | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="col-md-3" data-ng-switch="action.condition">\n                                                                              <div class="form-group" data-ng-switch-when="status">\n                                                                                 <ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n                                                                                         <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                         <ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n                                                                                                        <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="form-group" data-ng-switch-when="createdAt">\n                                                                                      <input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n                                                                         </div>\n                                                                        </div>\n                                                                        <div class="col-md-4">\n                                                                        </div>\n                                                                        <div class="col-md-1">\n                                                                                <a href="#" data-ng-click="removeAction(action.id)">\n                                                                                  <i class="icon-close"></i>\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                                <div class="row" data-ng-hide="automation.BusinessActions.length">\n                                                    <div class="col-md-12 text-center">\n                                                           <hr>\n                                                          <i>Add condition</i>\n                                                  </div>\n                                                </div>\n\n                                      </div>\n                                        <!-- END SMTP TAB -->\n                         </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/mail/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n    <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid)">\n                                            <form name="forms.automation" novalidate>\n                                                     <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n                                                                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                         <input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n                                                                               <span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n\n                                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n                                                                                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                              <input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n                                                                          <span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <hr>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'or\')">\n                                                                             <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-user"></i>\n                                                                     <span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.or">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n                                                                                               <ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n                                                                                                          <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                               <ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n                                                                                                    <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n                                                                                                          <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                                 </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n                                                                                        <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n                                                                                            <ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n                                                                                                               <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number">\n                                                                                         <input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n                                                                                              <span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'or\', $index)">\n                                                                                             <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.or.length">\n                                                                <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add condition</i>\n                                                          </div>\n                                                        </div>\n                                                        <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'and\')">\n                                                                            <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-people"></i>\n                                                                   <span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.and">\n                                                              <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n                                                                                                        <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n                                                                                                         <div data-ng-bind="condition.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                              <ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n                                                                                                  <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n                                                                                                         <div data-ng-bind="operator.value | highlight: $select.search"></div>\n                                                                                                 </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n                                                                                       <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n                                                                                                        <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n                                                                                                              <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number">\n                                                                                         <input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n                                                                                          <span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'and\', $index)">\n                                                                                            <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.and.length">\n                                                               <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add condition</i>\n                                                          </div>\n                                                        </div>\n\n                                                      <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <a href="#" data-ng-click="addNewChoice(\'actions\')">\n                                                                                <i class="icon-plus"></i>\n                                                                     </a>\n                                                                  <i class="icon-magic-wand"></i>\n                                                                       <span class="caption-subject">Perform these actions:</a> </span>\n                                                              </div>\n                                                        </div>\n                                                        <div class="row" data-ng-repeat="automation in automations.actions">\n                                                          <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                       <hr>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="row">\n                                                                             <div class="col-md-4">\n                                                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n                                                                                                 <ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n                                                                                                  <ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n                                                                                                           <div data-ng-bind="action.value | highlight: $select.search"></div>\n                                                                                                   </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n                                                                                   <div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n                                                                                             <ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n                                                                                                 <ui-select-match>{{$select.selected.value}}</ui-select-match>\n                                                                                                 <ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n                                                                                                          <div data-ng-bind="attribute.value | highlight: $select.search"></div>\n                                                                                                        </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                        <div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n                                                                                               <input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n                                                                                             <span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                         </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                                <div class="col-md-4">\n                                                                                </div>\n                                                                                <div class="col-md-1">\n                                                                                        <a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n                                                                                                <i class="icon-close"></i>\n                                                                                    </a>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <div class="row" data-ng-hide="automations.actions.length">\n                                                           <div class="col-md-12 text-center">\n                                                                   <hr>\n                                                                  <i>Add action</i>\n                                                             </div>\n                                                        </div>\n                                                        <div class="row">\n                                                             <div class="col-md-12">\n                                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                               </div>\n                                                        </div>\n                                                </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/mail/inbox/compose/compose.html",'<form class="inbox-compose form-horizontal" id="fileupload" enctype="multipart/form-data" data-ng-init="getMessage()">\n  <pre>\n         {{mailAccounts | json}}\n       </pre>\n        <div class="inbox-compose-btn">\n               <button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n           <button class="btn inbox-discard-btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n              <button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_SAVE_AS_DRAFT\' | translate}}</button>\n               <span class="message-info"><i>{{form.message}}</i></span>\n     </div>\n        <div class="inbox-form-group">\n                <label class="control-label">{{\'APPLICATION_FROM\' | translate}}: </label>\n           <div class="controls">\n                        <ui-select data-ng-model="form.body.from" theme="bootstrap">\n        <ui-select-match placeholder="Select an account">{{$select.selected.name}} <{{$select.selected.address}}></ui-select-match>\n        <ui-select-choices repeat="account in mailAccounts | filter: $select.search">\n          <div ng-bind-html="account.name | highlight: $select.search"></div>\n          <small ng-bind-html="account.address | highlight: $select.search"></small>\n        </ui-select-choices>\n      </ui-select>\n               </div>\n        </div>\n        <div class="inbox-form-group mail-to">\n                <label class="control-label">{{\'APPLICATION_TO\' | translate}}: </label>\n             <div class="controls controls-to">\n                    <input type="text" class="form-control" name="to" data-ng-model="form.body.to.address">\n                       <span class="inbox-cc-bcc">\n                   <span class="inbox-cc" data-ng-show="!flagCC" data-ng-click="switchFlagCC()">\n                 Cc </span>\n                    <span class="inbox-bcc" data-ng-show="!flagBCC" data-ng-click="switchFlagBCC()">\n                      {{\'APPLICATION_BCC\' | translate}} </span>\n                   </span>\n               </div>\n        </div>\n        <div class="inbox-form-group input-cc" data-ng-class="{\'display-hide\': !flagCC}">\n           <a href="javascript:;" class="close" data-ng-click="switchFlagCC()">\n          </a>\n          <label class="control-label">Cc:</label>\n              <div class="controls controls-cc">\n                    <input type="text" name="cc" class="form-control" data-ng-model="form.body.cc.address">\n               </div>\n        </div>\n        <div class="inbox-form-group input-bcc" data-ng-class="{\'display-hide\': !flagBCC}">\n         <a href="javascript:;" class="close" data-ng-click="switchFlagBCC()">\n         </a>\n          <label class="control-label">{{\'APPLICATION_BCC\' | translate}}:</label>\n             <div class="controls controls-bcc">\n                   <input type="text" name="bcc" class="form-control" data-ng-model="form.body.bcc.address">\n             </div>\n        </div>\n        <div class="inbox-form-group">\n                <label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}: </label>\n                <div class="controls">\n                        <input type="text" class="form-control" name="subject" data-ng-model="form.subject">\n          </div>\n        </div>\n        <div class="inbox-form-group">\n                <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html"></div>\n       </div>\n        <div class="inbox-compose-btn">\n               <button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n           <button class="btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n                <button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_DRAFT\' | translate}}</button>\n       </div>\n</form>\n'),a.put("app/mail/inbox/incoming/incoming.html",'<div class="row inbox">\n    <div class="col-md-12">\n               <div class="inbox-header">\n                    <h1 class="pull-left">Inbox</h1>\n                      <form class="form-inline pull-right" action="#">\n                              <!-- <div class="input-group input-medium">\n                                   <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search">\n                                   <span class="input-group-btn">\n                                        <button type="submit" class="btn green"><i class="fa fa-search"></i></button>\n                                 </span>\n                               </div> -->\n                    </form>\n               </div>\n                <div class="inbox-content">\n                   <table class="table table-striped table-advance table-hover" st-table="displayedMailRooms" st-pipe="initList">\n                                <thead>\n                                       <tr>\n                                          <th colspan="9">\n                                                      <input type="checkbox" ng-change="check(null, checked)" checklist-model checklist-value="id">\n                                                 <div class="btn-group">\n                                                               <a data-ng-href="/mail/inbox/compose" class="btn btn-sm blue">\n                                                                        <i class="icon-plus"></i> {{\'APPLICATION_NEW_MESSAGE\' | translate}}\n                                                         </a>\n                                                  </div>\n                                                        <div class="btn-group" data-ng-show="mailRooms.checked.length">\n                                                               <a href="#" class="btn btn-sm red" data-ng-click="deleteItems()">\n                                                                     <i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}}\n                                                             </a>\n                                                  </div>\n                                                        <div class="input-group input-medium pull-right">\n                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                         <span class="input-group-addon">\n                                                                      <i class="fa fa-search"></i>\n                                                          </span>\n                                                       </div>\n                                                </th>\n                                         <!-- <th class="pagination-control" colspan="7"> -->\n                                                  <!-- <span class="pagination-info">\n                                                   1-30 of 789 </span>\n                                                   <a class="btn btn-sm blue">\n                                                   <i class="fa fa-angle-left"></i>\n                                                      </a>\n                                                  <a class="btn btn-sm blue">\n                                                   <i class="fa fa-angle-right"></i>\n                                                     </a> -->\n                                              <!-- </th> -->\n                                        </tr>\n                         </thead>\n                              <tbody>\n                                       <tr data-messageid="1" data-ng-repeat="mailRoom in displayedMailRooms" class="animate-repeat">\n                                                <td class="inbox-small-cells">\n                                                        <input type="checkbox" checklist-model="mailRooms.checked" checklist-value="mailRoom.id">\n                                             </td>\n                                         <td class="inbox-small-cells" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n                                                 #{{mailRoom.id}}\n                                              </td>\n                                         <td class="view-message hidden-xs" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n                                             {{mailRoom.subject}}\n                                         </td>\n                                         <td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n                                                      {{mailRoom.from}}\n                                             </td>\n                                         <td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n                                                      {{mailRoom.MailAccount.description ? mailRoom.MailAccount.description : mailRoom.MailAccount.name || \'APPLICATION_UNKNOWN\' | translate | uppercase}}\n                                                </td>\n                                         <td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n                                                      <span data-ng-repeat="user in mailRoom.Users"> {{user.fullname}} {{!$last ? \', \' : \'\'}} </span>\n                                           </td>\n                                         <td class="view-message" data-ng-switch="mailRoom.status" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n                                                     <span class="badge badge-default" data-ng-class="{\n                                                    \'badge-danger\': mailRoom.status == \'NEW\',\n                                                 \'badge-warning\': mailRoom.status == \'OPEN\',\n                                                       \'badge-info\': mailRoom.status == \'PENDING\',\n                                                       \'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span>\n                                           </td>\n                                         <td class="view-message inbox-small-cells">\n                                                   <i data-ng-show="mailRoom.attachment" class="fa fa-paperclip"></i>\n                                            </td>\n                                         <td class="view-message pull-right">\n                                                  <time is="relative-time" datetime="{{mailRoom.updatedAt}}">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                 </tr>\n                                 <tr data-ng-hide="displayedMailRooms.length">\n                                         <td colspan="9" style="text-align:center;">\n                                                   <i>{{ \'MESSAGE_NO_AVAILABLE_CONVERSATIONS\' | translate }}</i>\n                                               </td>\n                                 </tr>\n                         </tbody>\n                              <tfoot>\n                                       <tr>\n                                          <td colspan="9" class="text-center">\n                                                  <div class="pagination" st-pagination st-items-by-page="conf.mailRoomsByPage.value" st-displayed-pages="7"></div>\n                                             </td>\n                                 </tr>\n                         </tfoot>\n                      </table>\n              </div>\n        </div>\n</div>\n'),a.put("app/mail/inbox/room/room.agents.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_AGENTS\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <!-- START TRANSPORT -->\n  <div class="form-group">\n    <form name="form" novalidate>\n      <!-- START TRANSPORT -->\n      <div class="form-group">\n        <ui-select multiple name="agents" data-ng-model="item.agents" theme="bootstrap">\n          <ui-select-match placeholder="Select transport...">{{$item.fullname}}</ui-select-match>\n          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n            {{agent.fullname}}\n          </ui-select-choices>\n        </ui-select>\n      </div>\n      <!-- END TRANSPORT -->\n    </form>\n  </div>\n  <!-- END TRANSPORT -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/mail/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n   <div class="portlet light">\n           <div class="portlet-title">\n                   <div class="caption" data-ng-show="mailRoom">\n                         <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="badge badge-default" data-ng-class="{\'badge-error\': mailRoom.status == \'NEW\',\n                                \'badge-warning\': mailRoom.status == \'OPEN\',\n                               \'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span> -\n                         <span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n                     </div>\n                        <div class="actions" data-ng-show="mailRoom" data-ng-show="Auth.isAdmin()">\n                           <a href="#" class="btn default blue-stripe" data-ng-click="assignAgents()">\n                                   {{ \'APPLICATION_ASSIGN\' | translate }}\n                              </a>\n                          <a href="#" class="btn default green-stripe">\n                                 {{ \'APPLICATION_STORE\' | translate }}\n                               </a>\n                          <!-- <div class="btn-group" data-ng-show="Auth.isAdmin()">\n                                    <a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                                   {{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n                                     </a>\n                                  <ul class="dropdown-menu pull-right">\n                                         <li data-ng-repeat="agent in agents">\n                                                 <a href="#" data-ng-click="assignAgents()">\n                                                   {{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n                                                    </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <div class="btn-group">\n                                       <a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" data-ng-click="updateStatus(\'CLOSED\')">\n                                  {{ \'APPLICATION_STORE\' | translate }}\n                                       </a>\n                          </div> -->\n                    </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="mailRoom" data-ng-class="{\'col-md-7 col-sm-7\': mailRoom}">\n                                       <div class="scroller" id="mailMessages" style="height: 725px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n                                          <ul class="chats">\n                                                    <li data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'-createdAt\'">\n                                                            <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                            <div class="message ">\n                                                                        <span class="bold">From: </span>\n                                                                      <span>{{mailMessage.from}}</span>\n                                                                     <br>\n                                                                  <span class="bold">To: </span>\n                                                                        <span>{{mailMessage.to}} </span>\n                                                                      <br>\n                                                                  <span data-ng-if="mailMessage.cc" class="bold">Cc: </span>\n                                                                    <span data-ng-if="mailMessage.cc">{{mailMessage.cc}} </span>\n                                                                  <br>\n                                                                  <span class="todo-tasklist-date">\n                                                                             <span class="pull-right">\n                                                                                     <a data-ng-click="(mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\') && retry(mailMessage.id)" href="#" class="btn default btn-xs" data-ng-class="{\'green-stripe\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'blue-stripe\': mailMessage.status == \'SENDING\', \'red-stripe\': mailMessage.status == \'FAILED\'}"> {{mailMessage.status | uppercase}}\n                                                                                            <i data-ng-class="{\'fa fa-check\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'fa fa-warning\': mailMessage.status == \'SENDING\', \'fa fa-times\': mailMessage.status == \'FAILED\'}"></i>\n                                                                                      </a>\n                                                                          </span>\n                                                                               <i class="fa fa-calendar"></i><time is="relative-time" datetime="{{mailMessage.updatedAt}}">April 1, 2014</time>\n                                                                      </span>\n                                                                       <hr>\n                                                                  <span class="body text-left" data-ng-bind-html="mailMessage.html || mailMessage.text" style="white-space: pre-wrap;"></span>\n                                                                  <!-- <br> -->\n                                                                 <hr data-ng-if="mailMessage.MailAttachments.length">\n                                                                  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n                                                                          <strong>{{mailAttachment.name}}</strong>\n                                                                              <span>\n                                                                                {{mailAttachment.size}}B </span>\n                                                                              <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\n                                                                                       {{ \'APPLICATION_DOWNLOAD\' | translate }}\n                                                                            </a>\n                                                                  </div>\n                                                                </div>\n                                                        </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-5 col-sm-5\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n                                   <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n                                            <!-- START HEAD -->\n                                           <div class="form">\n                                                    <!-- START FROM -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">From:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select data-ng-model="form.from" theme="bootstrap" name="from" required>\n                                                                                          <ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n                                                                                            <ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n                                                                                                        <div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n                                                                                                  <small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n                                                                                            </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END FROM -->\n\n                                                   <!-- MAIL TO -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">To:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label multiple data-ng-model="form.sto" theme="bootstrap" name="to">\n                                                                                               <ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TO -->\n\n                                                     <!-- START CC -->\n                                                     <div class="form-group">\n                                                              <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Cc:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="cc in form.cc">\n                                                                                                    {{cc}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END CC -->\n\n                                                     <!-- START SUBJECT -->\n                                                        <div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                          <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Subject:</label>\n                                                                         </div>\n                                                                                <div class="col-md-11">\n                                                                                       <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n                                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END SUJBECT -->\n\n                                                        <!-- START HTML -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n                                                                   <!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n                                                                               <span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END HTML -->\n\n                                                   <!-- START ATTACH -->\n                                                 <div class="form-group">\n                                                              <div class="col-md-6">\n                                                                        <input type="file" nv-file-select="" uploader="uploader" multiple="">\n                    <table class="table">\n                      <tbody>\n                        <tr ng-repeat="item in uploader.queue">\n                          <td style="border-top-style:none"><strong>{{ item.file.name }}</strong></td>\n                          <td style="border-top-style:none" ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n                          <td style="border-top-style:none" ng-show="uploader.isHTML5">\n                            <div class="progress" style="margin-bottom: 0;">\n                                <div class="progress-bar" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n                            </div>\n                          </td>\n                          <td style="border-top-style:none" class="text-center">\n                            <span ng-show="item.isSuccess"><i class="glyphicon glyphicon-ok"></i></span>\n                            <span ng-show="item.isCancel"><i class="glyphicon glyphicon-ban-circle"></i></span>\n                            <span ng-show="item.isError"><i class="glyphicon glyphicon-remove"></i></span>\n                          </td>\n                          <td style="border-top-style:none" nowrap>\n                            <button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()">\n                                <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n                            </button>\n                          </td>\n                        </tr>\n                      </tbody>\n                    </table>\n                    <div>\n                                                                    </div>\n                                                                </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="form-actions right todo-form-actions">\n                                                                            <button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n                                                                              <input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END ATTACH -->\n                                           </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/mail/inbox/room/room.retry.modal.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" class="modal-title">{{modal.title | translate}}</h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text">{{modal.text | translate}}</p>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" class="btn">{{button.text | translate}}</button>\n</div>\n'),a.put("app/mail/queue/list/list.html",'<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-layers"></i>\n                                           <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-layers font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="mailQueues.checked.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/mail/queues/wizard">\n                                                                <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_queues.csv">\n                                  <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedMailQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n                                                                <th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="queue in displayedMailQueues">\n                                                                <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailQueues.checked" checklist-value="queue.id"></td>\n                                         <td>{{queue.name}}</td>\n                                                         <td>{{queue.description}}</td>\n                                                                <td>{{queue.strategy | uppercase}}</td>\n                                                               <td>{{queue.timeout}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n                                                                             {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedMailQueues.length">\n                                                                <td colspan="6" class="text-center">\n                                                                  <i>No available queues</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="67" class="text-center">\n                                           <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="note note-warning" data-ng-hide="teams.length">\n                                   <h4 class="block">Warning!</h4>\n                                       <p>\n                                            {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n                                     </p>\n                          </div>\n                                <div  style="width: 50%; margin: 0 auto;">\n                                    <div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-layers"></i>\n                                   <a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.mail.queues.view.settings\')}">\n                                                  <a data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.mail.queues.view.agents\')}">\n                                                    <a data-ng-href="/mail/queues/view/{{queue.id}}/agents">\n                                                      <i class="icon-users"></i>\n                                                    {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">Agent Timeout</label>\n                                            <input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/mail/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n      <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-envelope"></i>\n                         <a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n                    </li>\n      <li>\n                             <i class="icon-layers"></i>\n                           <a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-layers font-green-sharp"></i>\n                          <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n             </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                                     <form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n                                          <!-- START NAME -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END NAME -->\n\n                                           <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                               </div>\n                                                <!-- END DESCRIPTION -->\n\n                                            <!-- START TIMEOUT -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n                                                        <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TIMEOUT -->\n\n                                                <!-- START STRATEGY -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                             <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                                  <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STRATEGY -->\n                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n                                  </form>\n                         </wz-step>\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n                               </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/realtime/view/agent/agent.queues.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n           <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/agent/agent.timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n      <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n                        <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="12">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                     <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                 <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                <th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n                                              <th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n                                            <th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n                                               <th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n                                                <th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n                                              <th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n                                           <th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n                              </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="agent in displayedAgents">\n                                            <td>\n                                                  <span>\n                                                                <i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n                                                         \'icon-user-following font-green\': agent.lastevent === \'agent\',\n                                                            \'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n                                                             \'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n                                                   </span>\n                                               </td>\n                                         <td>{{agent.uniqueid}}</td>\n                                           <td>{{agent.mailqueuename}}</td>\n                                              <td>{{agent.fullname}}</td>\n                                           <td>{{agent.subject}}</td>\n                                            <td>{{agent.from}}</td>\n                                               <td>{{agent.accountname}}</td>\n                                                <td>\n                                                  <time is="relative-time" datetime="{{agent.agentcalledAt}}">\n                                                          April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n                                                         April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  {{agent.reason | uppercase}}\n                                          </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedAgents.length">\n                                            <td colspan="11" style="text-align:center;">\n                                                  <i>No agents available</i>\n                                            </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                     </div>\n                                                </td>\n                             <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                   </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="12" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                              </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initMails()">\n    <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedMails" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n                       <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="12">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n                                                                                 <div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                 <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                <th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n                                              <th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n                                            <th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n                                               <th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n                                                <th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n                                                <th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n                                 </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="session in displayedMails">\n                                           <td>\n                                                  <span>\n                                                                <i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n                                                             \'icon-user-following font-green\': session.fullname,\n                                                         \'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n                                                       </span>\n                                               </td>\n                                         <td>{{session.uniqueid}}</td>\n                                         <td>{{session.mailqueuename}}</td>\n                                            <td>{{session.fullname}}</td>\n                                         <td>{{session.subject}}</td>\n                                          <td>{{session.from}}</td>\n                                             <td>{{session.accountname}}</td>\n                                              <td>\n                                                  <time is="relative-time" datetime="{{session.mailjoinAt}}">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.mailleaveAt}}" data-ng-show="session.mailleaveAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.mailunmanagedAt}}" data-ng-show="session.mailunmanagedAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedMails.length">\n                                             <td colspan="11" style="text-align:center;">\n                                                  <i>No sessions available</i>\n                                          </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                     </div>\n                                                </td>\n                             <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                   </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="12" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n                            </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="/mail/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                     <div class="navbar-header">\n                       <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n                                <span class="sr-only">Toggle navigation</span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                            </button>\n                     <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n                 </div>\n\n                      <!-- Collect the nav links, forms, and other content for toggling -->\n                 <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                         <ul class="nav navbar-nav">\n                               <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_AGENTS\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'agents\'></tree>\n                             </li>\n                                                                         <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_SESSIONS\' | translate }}\n                                    <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'sessions\'></tree>\n                           </li>\n                     </ul>\n                         <!-- <ul class="nav navbar-nav">\n                          <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_QUEUES\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'queues\'></tree>\n                             </li>\n                     </ul> -->\n                 </div>\n                        <!-- /.navbar-collapse -->\n                </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="/agent">{{ \'APPLICATION_MAILS\' | translate }}</a>\n                          </li>\n                         <li>\n                                  <a href="#">{{agent.fullname}}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img ng-src="assets/images/media/statistics.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{agent.fullname}}\n                                    </div>\n                                        <div class="profile-usertitle-job">\n                                           {{agent.role}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.mail.statistics.summary\')}">\n                                                    <a data-ng-href="/mail/statistics/summary">\n                                                   <i class="icon-bar-chart"></i>\n                                                        {{ \'APPLICATION_SUMMARY\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.summary.html",'<div class="row">\n   <div class="col-md-12">\n               <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                     <div class="col-md-6">\n                                                <div class="portlet sale-summary">\n                                                    <div class="portlet-body">\n                                                            <ul class="list-unstyled">\n                                                                    <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_INBOX\' | translate }} <i class="fa fa-img-up"></i>\n                                                                          </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'INBOX\' }).length }} </span>\n                                                                  </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_SENT\' | translate }} <i class="fa fa-img-down"></i>\n                                                                         </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'SENT\' }).length }} </span>\n                                                                   </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_OUTGOING\' | translate }} <i class="fa fa-img-down"></i>\n                                                                             </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'NOT SENT\' }).length }} </span>\n                                                                       </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_DRAFT\' | translate }} <i class="fa fa-img-down"></i>\n                                                                                </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'DRAFT\' }).length }} </span>\n                                                                  </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_TRASH\' | translate }} <i class="fa fa-img-down"></i>\n                                                                                </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'TRASH\' }).length }} </span>\n                                                                  </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <canvas class="chart chart-pie" data="[\n                                               (mailMessages | filter:{ directory:\'INBOX\' }).length,\n                                               (mailMessages | filter:{ directory:\'SENT\' }).length,\n                                                (mailMessages | filter:{ directory:\'NOT SENT\' }).length,\n                                            (mailMessages | filter:{ directory:\'DRAFT\' }).length,\n                                               (mailMessages | filter:{ directory:\'TRASH\' }).length]" labels="[\n                                            $translate.instant(\'APPLICATION_INBOX\'),\n                                            $translate.instant(\'APPLICATION_SENT\'),\n                                             $translate.instant(\'APPLICATION_OUTGOING\'),\n                                         $translate.instant(\'APPLICATION_DRAFT\'),\n                                            $translate.instant(\'APPLICATION_TRASH\')]" legend="true"></canvas>\n                                   </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END PORTLET-->\n\n         <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-pencil font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_OTHER_INFO\' | translate }}</a> </span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                     <div class="col-md-6">\n                                                <div class="portlet sale-summary">\n                                                    <div class="portlet-body">\n                                                            <ul class="list-unstyled">\n                                                                    <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_READ\' | translate }} <i class="fa fa-img-up"></i>\n                                                                           </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ read:\'true\' }).length }} </span>\n                                                                        </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_UNREAD\' | translate }} <i class="fa fa-img-down"></i>\n                                                                               </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ read:\'false\' }).length }} </span>\n                                                                       </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_FAVORITE\' | translate }} <i class="fa fa-img-down"></i>\n                                                                             </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ favorite:\'true\' }).length }} </span>\n                                                                    </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <canvas class="chart chart-pie" data="[\n                                               (mailMessages | filter:{ read:\'true\' }).length,\n                                             (mailMessages | filter:{ read:\'false\' }).length]" labels="[\n                                         $translate.instant(\'APPLICATION_READ\'),\n                                             $translate.instant(\'APPLICATION_UNREAD\')]" legend="true"></canvas>\n                                  </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n'),a.put("app/mail/timeline/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-list"></i>\n                                             <a href="/mail/timeline/list"> Timeline</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n     <div class="col-md-12">\n    <h3 class="page-title">\n                          Timeline\n                      </h3>\n                 <!-- END PAGE HEADER-->\n                       <!-- BEGIN PAGE CONTENT-->\n                    <div class="timeline">\n                                <!-- TIMELINE ITEM -->\n                                <div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n                                        <div class="timeline-badge">\n                                          <div class="timeline-icon">\n                                                   <i class="icon-envelope font-green-haze"></i>\n                                         </div>\n                                        </div>\n                                        <div class="timeline-body">\n                                           <div class="timeline-body-arrow"></div>\n                                               <div class="timeline-body-head">\n                                                      <div class="timeline-body-head-caption">\n                                                              <span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n                                                                <span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n                                                       </div>\n                                                        <div class="timeline-body-head-actions">\n                                                              <div class="btn-group">\n                                                                       <a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n                                                              </div>\n                                                        </div>\n                                                </div>\n                                                <div class="timeline-body-content">\n                                                   <span class="font-grey-cascade" data-ng-show="event.User">\n                                                    {{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n                                                       </span>\n                                               </div>\n                                        </div>\n                                </div>\n                                <!-- END TIMELINE ITEM -->\n                    </div>\n                        <!-- END PAGE CONTENT-->\n      </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/main/chooseContact.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_CHOOSE_CONTACT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.choose" novalidate>\n    <div class="form-group" data-ng-class="{\'has-error\': forms.choose.contactId.$invalid && forms.choose.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CONTACT\' | translate}}</label>\n      <ui-select data-ng-model="item.contactId" theme="bootstrap" name="contactId" ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CONTACT\' | translate }}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="contact.id as contact in contacts | filter: $select.search">\n          <div ng-bind-html="contact.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.choose.CompanyId.$invalid && forms.choose.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content" data-ng-class="{\'demo\': !license.expiration}">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <uib-tabset>\n        <uib-tab select="addWorkspace()" active="mainTab.active">\n          <uib-tab-heading>\n            Motion <i class="icon-rocket"></i>\n          </uib-tab-heading>\n          <div ui-view class=""></div>\n        </uib-tab>\n        <uib-tab data-ng-repeat="workspace in workspaces" active="workspace.active" data-ng-switch="workspace.type">\n          <uib-tab-heading>\n            {{workspace.name}} <i class="icon-close pointer-cursor" data-ng-click="closeTab($index)"></i>\n          </uib-tab-heading>\n          <div class="" data-ng-switch="workspace.type">\n            <new-contact data-ng-switch-when="newContact" workspace="workspace" index="$index" on-submit="createContact(index,item)"></new-contact>\n            <contact data-ng-switch-when="contact" workspace="workspace" index="$index" on-submit="updateContact(index,item)"></contact>\n          </div>\n        </uib-tab>\n\n      </uib-tabset>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),
-a.put("app/main/template.contactTab.html",'<div class="row margin-top-20 contact-tab-container" >\n  <!-- <pre>\n    {{workspaces}}\n  </pre> -->\n  <!-- <pre>\n    {{contact | json}}\n  </pre> -->\n  <div class="col-md-12 contact-tab">\n    <form name="forms.general" data-ng-submit="submit({index:index,item:contact})" novalidate>\n    <!-- BEGIN PROFILE SIDEBAR -->\n    <div class="profile-sidebar">\n      <!-- PORTLET MAIN -->\n      <div class="portlet light pbottom20">\n        <!-- SIDEBAR USERPIC -->\n        <div class="profile-userpic">\n          <img src="assets/images/media/contact.png" class="img-responsive" alt="">\n        </div>\n        <!-- END SIDEBAR USERPIC -->\n        <!-- SIDEBAR USER TITLE -->\n        <div class="profile-usertitle">\n          <div class="profile-usertitle-name">\n            {{contact.fullname}}\n          </div>\n          <div class="profile-usertitle-job">\n          </div>\n        </div>\n        <!-- END SIDEBAR USER TITLE -->\n        <!-- SIDEBAR BUTTONS -->\n        <div class="profile-userbuttons">\n          <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.fullname">{{\'APPLICATION_UPDATE\' | translate}}</button>\n          <!-- <button type="button" class="btn btn-circle btn-danger btn-sm">Message</button> -->\n        </div>\n        <!-- END SIDEBAR BUTTONS -->\n        <!-- SIDEBAR MENU -->\n        <!-- <div class="profile-usermenu">\n          <ul class="nav">\n            <li class="active">\n              <a href="extra_profile.html">\n              <i class="icon-home"></i>\n              Overview </a>\n            </li>\n            <li>\n              <a href="extra_profile_account.html">\n              <i class="icon-settings"></i>\n              Account Settings </a>\n            </li>\n            <li>\n              <a href="page_todo.html" target="_blank">\n              <i class="icon-check"></i>\n              Tasks </a>\n            </li>\n            <li>\n              <a href="extra_profile_help.html">\n              <i class="icon-info"></i>\n              Help </a>\n            </li>\n          </ul>\n        </div> -->\n        <!-- END MENU -->\n      </div>\n      <!-- END PORTLET MAIN -->\n      <!-- PORTLET MAIN -->\n      <div class="portlet light">\n        <!-- STAT -->\n        <div class="row list-separated profile-stat">\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               37\n            </div>\n            <div class="uppercase profile-stat-text">\n               Projects\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               51\n            </div>\n            <div class="uppercase profile-stat-text">\n               Tasks\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               61\n            </div>\n            <div class="uppercase profile-stat-text">\n               Uploads\n            </div>\n          </div>\n        </div>\n        <!-- END STAT -->\n        <div>\n          <h4 class="profile-desc-title">{{\'APPLICATION_ABOUT\' | translate}} {{contact.fullname}}</h4>\n          <span class="profile-desc-text break-overflow">{{contact.description}}</span>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-globe"></i>\n            <a href="http://www.keenthemes.com">www.keenthemes.com</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-twitter"></i>\n            <a href="http://www.twitter.com/keenthemes/">@keenthemes</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-facebook"></i>\n            <a href="http://www.facebook.com/keenthemes/">keenthemes</a>\n          </div>\n        </div>\n      </div>\n      <!-- END PORTLET MAIN -->\n    </div>\n    <!-- END BEGIN PROFILE SIDEBAR -->\n    <!-- BEGIN PROFILE CONTENT -->\n    <div class="profile-content">\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light ">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n              </div>\n              <div class="actions">\n                <div class="btn-group btn-group-devided" data-toggle="buttons">\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="detail.tab=\'main\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_MAIN\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'address\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_ADDRESS\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'other\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_OTHER\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'customFields\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</label>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-class="{\'hidden\':detail.tab != \'main\'}" class="portlet-body contact-portlet">\n              <!-- START FULLNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="contact.fullname" required/>\n                <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FULLNAME -->\n\n              <!-- START COMPANY -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n                <ui-select data-ng-model="contact.CompanyId" theme="bootstrap" name="CompanyId" ng-disabled="disabled">\n                  <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                    <div ng-bind-html="company.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COMPANY -->\n\n              <!-- START TAGS -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n                <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="contact.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n                  <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                  <ui-select-choices repeat="tag in tags | filter: $select.search">\n                    {{tag}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END TAGS -->\n\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'address\'}" class="portlet-body contact-portlet">\n              <!-- START STREET -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="contact.street"/>\n                <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END STREET -->\n\n              <!-- START POSTALCODE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="contact.postalCode"/>\n                <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END POSTALCODE -->\n\n              <!-- START CITY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="contact.city"/>\n                <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END CITY -->\n\n              <!-- START COUNTRY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="contact.country"/>\n                <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COUNTRY -->\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'other\'}" class="portlet-body contact-portlet">\n              <!-- START DATEOFBIRTH -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n                <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n                <input name="dateOfBirth" type="date" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control date-picker" data-ng-model="contact.dateOfBirth"/>\n                <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END DATEOFBIRTH -->\n\n              <!-- START DESCRIPTION -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                <textarea style="resize: vertical;" type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="contact.description"></textarea>\n              </div>\n              <!-- END DESCRIPTION -->\n              <!-- START CREATED_BY -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_CREATED_BY\' | translate}}</label>\n                <input type="text" name="createdBy" placeholder="{{\'APPLICATION_CREATED_BY\' | translate}}" class="form-control" data-ng-model="contact.User.name" disabled/>\n              </div>\n              <!-- END CREATED_BY -->\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'customFields\'}" class="portlet-body contact-portlet">\n              <div data-ng-repeat="customField in customFields">\n                <div data-ng-if="customField.active || _.find(contact.CustomFields,{id:customField.id})">\n                <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n                  <label class="control-label">{{customField.name}}</label>\n                  <input data-ng-if="!joinPrompt" type="text" name="{{customField.name}}" placeholder="{{customField.name}}" class="form-control" data-ng-model="contact.customFields[customField.id]"/>\n                  <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n                  <label class="control-label">{{customField.name}}</label>\n                  <ui-select data-ng-if="!joinPrompt" data-ng-model="contact.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n                    <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected.value}}</ui-select-match>\n                    <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n                      <div ng-bind-html="choice.value | highlight: $select.search"></div>\n                    </ui-select-choices>\n                  </ui-select>\n                  <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n              </div>\n              </div>\n            </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONTACTS\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PHONES\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_EMAILS\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_1_1">\n                  <div class="contact-portlet">\n                    <!-- START PHONES -->\n                    <div class="padding-bottom mbottom20">\n                    <div data-ng-if="contact.Phones.length>0">\n                      <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label>\n                    </div>\n                    <div class="padding-bottom" ng-repeat="phone in contact.Phones">\n                      <div class="form-group">\n                        <div class="input-group">\n                          <input type="text" class="form-control" ng-model="phone.phone" required>\n                          <span class="input-group-btn">\n                          <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                          </span>\n                        </div>\n                      </div>\n                    </div>\n                    <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n                      <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n                    </button>\n                  </div>\n                  <!-- END PHONES -->\n                </div>\n              </div>\n                <div class="tab-pane" id="tab_1_2">\n                  <div class="contact-portlet">\n                    <!-- START EMAILS -->\n                      <div class="padding-bottom mbottom20">\n                      <div data-ng-if="contact.Emails.length>0">\n                        <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div>\n                      <div class="padding-bottom" ng-repeat="email in contact.Emails">\n                        <div class="form-group">\n                          <div class="input-group">\n                            <input type="email" class="form-control" ng-model="email.email" required>\n                            <span class="input-group-btn">\n                            <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                            </span>\n                          </div>\n                        </div>\n                      </div>\n                      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n                        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n                      </button>\n                    </div>\n                    <!-- END EMAILS -->\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_LOG\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_2_1" data-toggle="tab">{{ \'APPLICATION_JOURNAL\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_2_2" data-toggle="tab">{{ \'APPLICATION_HISTORY\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_2_1">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.show=\'Phones\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.show=\'Emails\';log.journal.detail=\'general\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.type=\'Inbounds\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.type=\'Outbounds\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.journal.show==\'Phones\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.detail=\'general\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.detail=\'QueueCalls\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.detail=\'ReportAgents\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_AGENTS\' | translate}}</label>\n                      </div>\n                    </div>\n                    <table st-table="journal" class="table table-striped">\n                            <thead>\n                               <tr>\n                                          <th data-ng-repeat="column in columns[log.journal.show][log.journal.detail].header">{{column | translate}}</th>\n                               </tr>\n                                 </thead>\n                              <tbody>\n                               <tr data-ng-repeat="row in rows[\'journal\']">\n                                        <td data-ng-repeat="col in columns[log.journal.show][log.journal.detail].indexes">{{col == \'createdAt\' ? moment(row[col]).format(\'DD/MM/YYYY HH:mm:ss\') : row[col]}}</td>\n                                 </tr>\n                      <tr data-ng-hide="rows[\'journal\'].length">\n                        <td colspan="{{columns[log.journal.show][log.journal.detail].header.length}}" class="text-center">\n                          {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}\n                        </td>\n                      </tr>\n                                 </tbody>\n                              <tfoot>\n                                       <tr>\n                                                  <td colspan="{{columns[log.journal.show][log.journal.detail].header.length}}" class="text-center">\n                                                    <div st-pagination="" st-items-by-page="itemsByPage" st-displayed-pages="7"></div>\n                                            </td>\n                                         </tr>\n                                 </tfoot>\n                      </table>\n\n                  </div>\n              </div>\n                <div class="tab-pane" id="tab_2_2">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.show=\'Phones\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.show=\'Emails\';log.history.detail=\'general\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.type=\'HistoryInbounds\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.type=\'HistoryOutbounds\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.history.show==\'Phones\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.detail=\'general\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.detail=\'HistoryQueueCalls\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.detail=\'HistoryReportAgents\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_AGENTS\' | translate}}</label>\n                      </div>\n                    </div>\n                    <table st-table="history" class="table table-striped">\n                      <thead>\n                      <tr>\n                        <th data-ng-repeat="column in columns[log.history.show][log.history.detail].header">{{column | translate}}</th>\n                      </tr>\n                      </thead>\n                      <tbody>\n                      <tr data-ng-repeat="row in rows[\'history\']">\n                        <td data-ng-repeat="col in columns[log.history.show][log.history.detail].indexes">{{col == \'createdAt\' ? moment(row[col]).format(\'DD/MM/YYYY HH:mm:ss\') : row[col]}}</td>\n                      </tr>\n                      <tr data-ng-hide="rows[\'history\'].length">\n                        <td colspan="{{columns[log.history.show][log.history.detail].header.length}}" class="text-center">\n                          {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}\n                        </td>\n                      </tr>\n                      </tbody>\n                      <tfoot>\n                        <tr>\n                          <td colspan="{{columns[log.history.show][log.history.detail].header.length}}" class="text-center">\n                            <div st-pagination="" st-items-by-page="itemsByPage" st-displayed-pages="7"></div>\n                          </td>\n                        </tr>\n                      </tfoot>\n                    </table>\n\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light tasks-widget">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">Tasks</span>\n                <span class="caption-helper">16 pending</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-small input-inline">\n                  <div class="input-icon right">\n                    <i class="icon-magnifier"></i>\n                    <input type="text" class="form-control form-control-solid" placeholder="search...">\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div class="task-content">\n                <div class="contact-portlet">\n                  <!-- START TASK LIST -->\n                  <ul class="task-list">\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="hidden" value="1" name="test"/>\n                        <input type="checkbox" class="liChild" value="2" name="test"/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Present 2013 Year IPO Statistics at Board Meeting </span>\n                        <span class="label label-sm label-success">Company</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Hold An Interview for Marketing Manager Position </span>\n                        <span class="label label-sm label-danger">Marketing</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        AirAsia Intranet System Project Internal Meeting </span>\n                        <span class="label label-sm label-success">AirAsia</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Technical Management Meeting </span>\n                        <span class="label label-sm label-warning">Company</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Kick-off Company CRM Mobile App Development </span>\n                        <span class="label label-sm label-info">Internal Products</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Prepare Commercial Offer For SmartVision Website Rewamp </span>\n                        <span class="label label-sm label-danger">SmartVision</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Sign-Off The Comercial Agreement With AutoSmart </span>\n                        <span class="label label-sm label-default">AutoSmart</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Company Staff Meeting </span>\n                        <span class="label label-sm label-success">Cruise</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li class="last-line">\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        KeenThemes Investment Discussion </span>\n                        <span class="label label-sm label-warning">KeenThemes </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                  </ul>\n                  <!-- END START TASK LIST -->\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n    </div>\n    <!-- END PROFILE CONTENT -->\n  </form>\n  </div>\n</div>\n'),
-a.put("app/main/template.motionfileDownload.html",'<a class="btn default btn-xs blue-stripe" href="" data-ng-click="download()">\n  {{ \'APPLICATION_DOWNLOAD\' | translate}}\n</a>\n'),a.put("app/main/template.newContactTab.html",'<div class="portlet light bordered">\n  <div class="portlet-title">\n    <div class="caption font-green-sharp">\n      <i class="icon-envelope-letter font-green-sharp"></i>\n      <span class="caption-subject">{{ \'APPLICATION_NEW_CONTACT\' | translate }}</a> </span>\n    </div>\n  </div>\n  <div class="portlet-body">\n    <!-- <pre>\n      {{forms.general | json}}\n    </pre> -->\n    <!-- <pre>\n      {{item | json}}\n    </pre>\n    <pre>\n      {{index}}\n    </pre> -->\n        <form name="forms.general" data-ng-submit="submit({index: index,item: item})" novalidate>\n          <!-- <pre>\n            {{checkboxes | json}}\n          </pre>\n          <pre>\n            {{item | json}}\n          </pre> -->\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAILS\' | translate}}</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-inline input-small ">\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n          <div class="row">\n            <div class="col-md-6">\n          <!-- START FULLNAME -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n            <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" data-ng-disabled="checkboxes.fullname ? !checkboxes.fullname : true" required/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.fullname">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n            <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END FULLNAME -->\n\n          <!-- START COMPANY -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <ui-select data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="checkboxes.CompanyId ? !checkboxes.CompanyId : true">\n                <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                  <div ng-bind-html="company.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.CompanyId">\n              </span>\n            </div> -->\n            <ui-select data-ng-if="!joinPrompt" data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="disabled">\n              <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                <div ng-bind-html="company.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COMPANY -->\n\n          <!-- START STREET -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n            <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="item.street" data-ng-disabled="checkboxes.street ? !checkboxes.street : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.street">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="item.street"/>\n            <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END STREET -->\n\n          <!-- START POSTALCODE -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n            <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="item.postalCode" data-ng-disabled="checkboxes.postalCode ? !checkboxes.postalCode : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.postalCode">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="item.postalCode"/>\n            <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END POSTALCODE -->\n\n          <!-- START CITY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n            <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="item.city" data-ng-disabled="checkboxes.city ? !checkboxes.city : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.city">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="item.city"/>\n            <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END CITY -->\n        </div>\n        <div class="col-md-6">\n          <!-- START COUNTRY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n            <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="item.country" data-ng-disabled="checkboxes.country ? !checkboxes.country : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.country">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="item.country"/>\n            <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COUNTRY -->\n\n          <!-- START DATEOFBIRTH -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n            <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="date" name="dateOfBirth" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control" data-ng-model="item.dateOfBirth" data-ng-disabled="checkboxes.dateOfBirth ? !checkboxes.dateOfBirth : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.dateOfBirth">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="date" name="dateOfBirth" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control" data-ng-model="item.dateOfBirth"/>\n            <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END DATEOFBIRTH -->\n\n          <!-- START TAGS -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-readonly="checkboxes.tags ? !checkboxes.tags : true">\n                <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                <ui-select-choices repeat="tag in tags | filter: $select.search">\n                  {{tag}}\n                </ui-select-choices>\n              </ui-select>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.tags">\n              </span>\n            </div> -->\n            <ui-select data-ng-if="!joinPrompt" tagging tagging-label="" multiple=\'true\' data-ng-model="item.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n              <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n              <ui-select-choices repeat="tag in tags | filter: $select.search">\n                {{tag}}\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END TAGS -->\n\n          <!-- START DESCRIPTION -->\n          <div class="form-group">\n            <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <textarea style="resize: vertical;" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description" data-ng-disabled="checkboxes.description ? !checkboxes.description : true"></textarea>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.description">\n              </span>\n            </div> -->\n            <textarea data-ng-if="!joinPrompt" style="resize: vertical;" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n          </div>\n          <!-- END DESCRIPTION -->\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- END PORTLET -->\n  <!-- START PORTLET -->\n  <div class="portlet light">\n    <div class="portlet-title">\n      <div class="caption caption-md">\n        <i class="icon-bar-chart theme-font hide"></i>\n        <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n      </div>\n      <div class="inputs">\n        <div class="portlet-input input-inline input-small ">\n        </div>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div data-ng-repeat="customField in customFields">\n        <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n          <label class="control-label">{{customField.name}}</label>\n          <input data-ng-if="!joinPrompt" type="text" name="{{customField.name}}" placeholder="{{customField.name}}" class="form-control" data-ng-model="item.customFields[customField.id]"/>\n          <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n          <label class="control-label">{{customField.name}}</label>\n          <ui-select data-ng-if="!joinPrompt" data-ng-model="item.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n            <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected.value}}</ui-select-match>\n            <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n              <div ng-bind-html="choice.value | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- END PORTLET -->\n  <div class="row">\n    <div class="col-md-6">\n  <!-- START PORTLET -->\n  <div class="portlet light">\n    <div class="portlet-title">\n      <div class="caption caption-md">\n        <i class="icon-bar-chart theme-font hide"></i>\n        <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span>\n      </div>\n      <div class="inputs">\n        <div class="portlet-input input-inline input-small ">\n        </div>\n      </div>\n    </div>\n    <div class="portlet-body">\n          <!-- START PHONES -->\n          <div class="">\n          <div data-ng-if="item.Phones.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="phone in item.Phones">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="text" class="form-control" ng-model="phone.phone" required>\n                <span class="input-group-btn">\n                <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n          </button>\n        </div>\n        <!-- END PHONES -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n  <div class="col-md-6">\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_EMAILS\' | translate}}</span>\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n        <!-- START EMAILS -->\n          <div class="">\n          <div data-ng-if="item.Emails.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="email in item.Emails">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="email" class="form-control" ng-model="email.email" required>\n                <span class="input-group-btn">\n                <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n          </button>\n        </div>\n        <!-- END EMAILS -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n</div>\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <!-- <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span> -->\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n          <div class="mbottom20">\n          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONFIRM\' | translate}}" data-ng-disabled="!item.fullname"/>\n        </div>\n        <!-- <div data-ng-if="joinPrompt">\n          <p>{{\'APPLICATION_OR\' | translate}}</p>\n          <input class="btn green-haze mbottom20" type="button" value="{{\'APPLICATION_JOIN_WITH\' | translate}}" data-ng-disabled="!item.id" data-ng-click="joinContact(index)"/>\n\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.id.$invalid && forms.general.$submitted}">\n            <ui-select  data-ng-model="item.id" theme="bootstrap" name="id" data-ng-disabled="disabled">\n              <ui-select-match placeholder="{{ \'APPLICATION_EXISTING_CONTACT\' | translate }}">{{$select.selected.fullname}}</ui-select-match>\n              <ui-select-choices repeat="contact.id as contact in contacts | filter: $select.search">\n                <div ng-bind-html="contact.fullname | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.id.$invalid && forms.general.$submitted" class="help-block help-block-error">\n'+"              <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n            </span>\n          </div>\n\n        </div> -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n\n        </form>\n  </div>\n</div>\n<pre>\n  {{item | json}}\n</pre>\n"),a.put("app/main/template.queryBuilderView.html",'\n         <div class="alert alert-warning alert-group">\n                         <div class="row">\n                                             <ui-select data-ng-model="group.boolean" theme="bootstrap" class="col-md-2" data-ng-if="group.type == \'CONDITION\'">\n                                                 <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                       <ui-select-choices repeat="bool.name as bool in booleans| filter: $select.search">\n                                                            <div ng-bind-html="bool.name | highlight: $select.search"></div>\n                                                      </ui-select-choices>\n                                          </ui-select>\n                                          <button ng-click="addCondition(group.type)" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_\'+group.type | translate}}</button>\n                                               <button ng-click="addGroup(group.type)" data-ng-if="group.type == \'CONDITION\' && group.main" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n                                          <button ng-click="removeGroup()" data-ng-if="group.type == \'CONDITION\' && !group.main" class="btn btn-danger col-md-2 left-margin" ><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n                              </div>\n                                <div class="group-conditions">\n                                        <!-- <pre>\n                                            {{group | json}}\n                                      </pre> -->\n                                            <div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition" data-ng-init="initChoices(rule,rule.field.subField.api,rule.data,$index,0,\'data2\');initChoices(rule,rule.field.subField.subField.api,rule.data,$index,1,\'data3\',rule.data2);">\n                                                         <div ng-switch="rule.hasOwnProperty(\'group\')">\n                                                                              <div ng-switch-when="true">\n                                                                                           <query-builder group="rule.group" fields="fields" operators="operators" properties="properties"></query-builder>\n                                                                              </div>\n                                                                                <div ng-switch-default="ng-switch-default">\n                                                                                           <div class="row">\n\n                                                                                                                   <ui-select data-ng-model="rule.field" theme="bootstrap" class="col-md-2" data-ng-change="clearData(rule,[\'operator\',\'data\',\'data2\',\'data3\']);">\n                                                                                                                               <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="field in fields | filter: $select.search">\n                                                                                                                                 <div ng-bind-html="field.name | translate | highlight: $select.search"></div>\n                                                                                                                         </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <ui-select data-ng-model="rule.operator" theme="bootstrap" class="col-md-2 left-margin" data-ng-if="group.type == \'CONDITION\' && rule.field">\n                                                                                                                               <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="operator.value as operator in operators[rule.field.operators]| filter: $select.search">\n                                                                                                                                    <div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'input\'">\n                                                                                                                          <input type="text" ng-model="rule.data" class="form-control"/>\n                                                                                                                        </div>\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'number\'">\n                                                                                                                         <input type="number" ng-model="rule.data" class="form-control"/>\n                                                                                                                      </div>\n                                                                                                                        <ui-select ng-if="rule.field && rule.field.propertyField==\'select\'" data-ng-model="rule.data" class="col-md-2 left-margin" theme="bootstrap" data-ng-change="clearData(rule,[\'data2\',\'data3\']);getResults(rule.field.subField.api,rule.data,$index,0)">\n                                                                                                                         <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="property.value as property in properties[rule.field.value]| filter: $select.search">\n                                                                                                                                       <div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'input\'">\n                                                                                                                             <input type="text" ng-model="rule.data2" class="form-control"/>\n                                                                                                                       </div>\n                                                                                                                        <div class="col-md-2 left-margin" ng-if=" rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'number\'">\n                                                                                                                           <input type="number" ng-model="rule.data2" class="form-control"/>\n                                                                                                                     </div>\n                                                                                                                        <ui-select ng-if="rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'select\'" data-ng-model="rule.data2" class="col-md-2 left-margin" theme="bootstrap" data-ng-change="clearData(rule,[\'data3\']);getResults(rule.field.subField.subField.api,rule.data,$index,1,rule.data2)">\n                                                                                                                         <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="property.value as property in (rule.field.subField.api ? choices[$index][0] : properties[rule.field.subField.value])| filter: $select.search">\n                                                                                                                                     <div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'input\'">\n                                                                                                                              <input type="text" ng-model="rule.data3" class="form-control"/>\n                                                                                                                       </div>\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'number\'">\n                                                                                                                             <input type="number" ng-model="rule.data3" class="form-control"/>\n                                                                                                                     </div>\n                                                                                                                        <ui-select ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'select\'" data-ng-model="rule.data3" class="col-md-2 left-margin" theme="bootstrap">\n                                                                                                                          <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="property.value as property in (rule.field.subField.subField.api ? choices[$index][1] : properties[rule.field.subField.subField.value])| filter: $select.search">\n                                                                                                                                   <div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <button ng-click="removeCondition($index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                                                                                         </div>\n                                                                                </div>\n                                                                </div>\n                                                </div>\n                                </div>\n                </div>\n'),a.put("app/main/template.reportBuilderView.html",'<div class="alert alert-warning alert-group">\n        <div class="form-inline" data-ng-class="{\'has-error\': forms.report.$submitted && !group.rules.length}">\n            <select ng-options="o.name as o.name for o in operators" ng-model="group.operator" class="form-control input-sm"></select>\n            <button style="margin-left: 5px" type="button" ng-click="addCondition()" class="btn btn-sm btn-success"><span class="glyphicon glyphicon-plus-sign"></span> {{\'APPLICATION_ADD_CONDITION\' | translate}}</button>\n            <button style="margin-left: 5px" type="button" ng-click="addGroup()" class="btn btn-sm btn-success"><span class="glyphicon glyphicon-plus-sign"></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n            <button style="margin-left: 5px" type="button" ng-click="removeGroup()" class="btn btn-sm btn-danger"><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n        </div>\n        <div class="group-conditions">\n            <div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition">\n                <div ng-switch="rule.hasOwnProperty(\'group\')">\n                    <div ng-switch-when="true">\n                        <report-builder group="rule.group" fields="fields" forms="forms"></report-builder>\n                    </div>\n                    <div ng-switch-default="ng-switch-default">\n                        <div class="row">\n                          <div class="col-md-2" data-ng-class="{\'has-error\': forms.report.$submitted && !rule.field}">\n                          <ui-select data-ng-model="rule.field" theme="bootstrap" dynamic-name="randomName()" required>\n                            <ui-select-match placeholder="">{{$select.selected.field | translate}}</ui-select-match>\n                            <ui-select-choices repeat="field.field as field in fields | filter: $select.search">\n                              <div ng-bind-html="field.field | highlight: $select.search"></div>\n                            </ui-select-choices>\n                          </ui-select>\n                          <span data-ng-show="forms.report.$submitted && !rule.field" class="help-block help-block-error">\n                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                          </span>\n                        </div>\n                          <ui-select data-ng-model="rule.condition" theme="bootstrap" class="col-md-1" dynamic-name="randomName()">\n                            <ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>\n                            <ui-select-choices repeat="condition.name as condition in conditions | filter: $select.search">\n                              <div ng-bind-html="condition.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                          </ui-select>\n                          <div class="col-md-2 left-margin" data-ng-class="{\'has-error\': forms.report.$submitted && !rule.value}">\n                            <input type="text" ng-model="rule.value" class="form-control" dynamic-name="randomName()" required/>\n                            <span data-ng-show="forms.report.$submitted && !rule.value" class="help-block help-block-error">\n                                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                          </div>\n                            <button style="margin-left: 5px" ng-click="removeCondition($index)" class="btn btn-sm btn-danger" type="button"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n'),
-a.put("app/market/market.html",'<div class="row">\n    <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/market">Market Place</a>\n          </li>\n        </ul>\n                    </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n    <!-- Our Integration -->\n    <div class="headline">\n      <h3>Our Integrations</h3>\n    </div>\n    <div class="row thumbnails" data-ng-repeat="group in groupedIntegration">\n      <div class="col-md-3" data-ng-repeat="integration in group">\n        <div class="our-integrations">\n          <h3> {{integration.name}} <small> {{integration.author}}</small></h3>\n          <img data-ng-src="{{integration.logo}}" alt="{{integration.name}}" class="img-responsive"/>\n          <div class="integration-info" data-ng-if="!integration.downloading">\n            <p>\n              {{integration.description}}\n            </p>\n            <div class="pull-right">\n                  <a data-ng-disabled="isProgressing" data-ng-if="!integration.active" data-ng-click="installIntegration(integration)" href="#" class="btn btn-xs green-meadow">Install <i class="fa fa-download"></i></a>\n                                                  <a data-ng-disabled="isProgressing" data-ng-if="integration.active" data-ng-click="uninstallIntegration(integration)" href="#" class="btn btn-xs red-sunglo">Uninstall <i class="fa fa-trash"></i></a>\n                    <a href="https://wiki.xcallymotion.com/" class="btn btn-xs grey-cascade" target="_blank">More <i class="fa fa-link"></i></a>\n            </div>\n          </div>\n                                        <div class="integration-info" data-ng-if="integration.downloading">\n                                           <div>\n                                                 <uib-progressbar class="progress-striped active" value="percentage" type="success"><i style="color:black;">{{status}}</i></uib-progressbar>\n                                           </div>\n          </div>\n        </div>\n      </div>\n                </div>\n    <!--/thumbnails-->\n    <!-- //End Meer Our Team -->\n  </div>\n</div>\n'),a.put("app/motionbar/motionbar.chat.html",'<div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper" style="margin-top: -92px;"></div>\n'),a.put("app/salesforce/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_SALESFORCE\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/salesforce/wizard">\n                                                         <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\',\'clientId\',\'clientSecret\',\'securityToken\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\', \'Client Id\', \'Client Secret\', \'Security token\']" field-separator=";" filename="salesforce_accounts.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedSalesforceAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedSalesforceAccounts" class="animate-repeat">\n                                                               <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/account">\n                                                                             {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedSalesforceAccounts.length">\n                                                                <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.account.html",'<div class="row">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="account.clientId" required/>\n                                                           <span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="account.clientSecret" required/>\n                                                               <span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="account.securityToken" required/>\n                                                            <span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECURITY TOKEN -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/salesforce/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n  <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n                        <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                            <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.value | highlight: $select.search"></div>\n                           </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/salesforce/view/view.configurations.html",'<div ui-view class="profile-content">\n        <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/salesforce/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                             <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                        {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/salesforce/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/salesforce.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.salesforce.view.account\')}">\n                                                    <a ng-href="/salesforce/view/{{account.id}}/account">\n                                                 <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.salesforce.view.configurations\') || $state.is(\'main.salesforce.view.configuration\')}">\n                                                  <a ng-href="/salesforce/view/{{account.id}}/configurations">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n  <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/salesforce/accounts/validate/username"/>\n                                                               <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required/>\n                                                                <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START PASSWORD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                           <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="item.clientId" required/>\n                                                              <span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="item.clientSecret" required/>\n                                                          <span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="item.securityToken" required/>\n                                                               <span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECURITY TOKEN -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/license/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div\n class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE CONTENT -->\n                <div class="profile-content">\n                 <div class="row">\n                             <div class="col-md-6">\n                                        <div class="pricing hover-effect">\n                                            <div class="pricing-head" data-ng-switch="license.months">\n                                                    <h3 ng-switch-when="1">{{\'APPLICATION_MONTH_TO_MONTH\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                      <h3 ng-switch-when="12">{{\'APPLICATION_YEARLY\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                     <h3 ng-switch-when="36">{{\'APPLICATION_PERPETUAL\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                  <h3 ng-switch-default>{{\'APPLICATION_UNKNOWN\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                      <h4><i>{{license.expiration ? (license.expiration | date:\'medium\') : \'DEMO\'}}</i>\n                                                 <span data-ng-show="license.expiration">Expiration Date </span>\n                                                       </h4>\n                                         </div>\n                                                <ul class="pricing-content list-unstyled">\n                                                    <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-eye"></i> {{\'APPLICATION_USERS\' | translate}}:\n                                                               </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.users || license.users >= 0) ? license.users : \'unknown\'}}\n                                                               </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-people"></i> {{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}}):\n                                                             </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.agents || license.agents >= 0)  ? license.agents : \'unknown\'}}\n                                                           </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-phone"></i> {{\'APPLICATION_TELEPHONES\' | translate}}:\n                                                                </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.telephones || license.telephones >= 0) ? license.telephones : \'unknown\'}}\n                                                                </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-bubble"></i> {{\'APPLICATION_CHAT\' | translate}}:\n                                                             </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    <span class="label label-sm" data-ng-class="license.chat ? \'label-success\' : \'label-danger\'">{{license.chat ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                             </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-envelope"></i> {{\'APPLICATION_MAIL\' | translate}}:\n                                                           </div>\n                                                                <div class="col-md-3 text-center">\n                                                             <span class="label label-sm" data-ng-class="license.mail ? \'label-success\' : \'label-danger\'">{{license.mail ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                            </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-paper-plane"></i> {{\'APPLICATION_FAX\' | translate}}:\n                                                         </div>\n                                                                <div class="col-md-3 text-center">\n                                                                     <span class="label label-sm" data-ng-class="license.fax ? \'label-success\' : \'label-danger\'">{{license.fax ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                              </div>\n                                                        </li>\n                                         </ul>\n                                         <div class="pricing-footer">\n                                                  <p>\n                                                            {{license.description}}\n                                                      </p>\n                                                  <a href="#" class="btn yellow-crusta">\n                                                        {{\'APPLICATION_PRICES\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n                                                  </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <div class="portlet light bordered">\n                                          <div class="portlet-title">\n                                                   <div class="caption font-green-sharp">\n                                                                <i class="icon-info font-green-sharp"></i>\n                                                            <span class="caption-subject">FORM {{ \'APPLICATION_LICENSE\' | translate }}</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="portlet-body">\n                                                    <form name="form" novalidate data-ng-submit="submitRequest()">\n\n                                                              <!-- START USERS -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (form.users.$touched || form.$submitted) && form.users.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_USERS\' | translate}}</label>\n                                                                    <div class="input-icon">\n                                                                              <i class="icon-eye"></i>\n                                                                              <input type="number" name="users" placeholder="{{\'APPLICATION_USERS\' | translate}}" class="form-control" data-ng-model="item.users" min="0" required>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.users.$touched || forms.$submitted) && form.users.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERS -->\n\n                                                          <!-- START AGENTS -->\n                                                         <div class="form-group" data-ng-class="{\'has-error\': (form.agents.$touched || form.$submitted) && form.agents.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}})</label>\n                                                                     <div class="input-icon">\n                                                                              <i class="icon-people"></i>\n                                                                           <input type="number" name="agents" placeholder="{{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}})" class="form-control" data-ng-model="item.agents" min="0" required>\n                                                                      </div>\n                                                                        <span data-ng-show="(form.users.$touched || forms.$submitted) && form.users.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENTS -->\n\n                                                         <!-- START TELEPHONES -->\n                                                             <div class="form-group" data-ng-class="{\'has-error\': (form.telephones.$touched || form.$submitted) && form.telephones.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_TELEPHONES\' | translate}}</label>\n                                                                       <div class="input-icon">\n                                                                              <i class="icon-phone"></i>\n                                                                            <input type="number" name="telephones" placeholder="{{\'APPLICATION_TELEPHONES\' | translate}}" class="form-control" data-ng-model="item.telephones" min="0" required>\n                                                                        </div>\n                                                                        <span data-ng-show="(form.telephones.$touched || forms.$submitted) && form.telephones.$error.required" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TELEPHONES -->\n\n                                                             <!-- START CHAT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (form.chat.$touched || form.$submitted) && form.chat.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_CHAT\' | translate}}</label>\n                                                                     <div class="input-group input-icon">\n                                                                          <i class="icon-bubble"></i>\n                                                                           <input type="text" placeholder="{{\'APPLICATION_CHAT\' | translate}}" class="form-control" readonly>\n                                                                          <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="chat" data-ng-model="item.chat" required>\n                                                                                </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.chat.$touched || forms.$submitted) && form.chat.$error.required" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CHAT -->\n\n                                                           <!-- START MAIL -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (form.mail.$touched || form.$submitted) && form.mail.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_MAIL\' | translate}}</label>\n                                                                     <div class="input-group input-icon">\n                                                                          <i class="icon-envelope"></i>\n                                                                         <input type="text" placeholder="{{\'APPLICATION_MAIL\' | translate}}" class="form-control" readonly>\n                                                                          <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="mail" data-ng-model="item.mail" required>\n                                                                                </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.mail.$touched || forms.$submitted) && form.mail.$error.required" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END MAIL -->\n\n                                                           <!-- START FAX -->\n                                                            <div class="form-group" data-ng-class="{\'has-error\': (form.fax.$touched || form.$submitted) && form.fax.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_FAX\' | translate}}</label>\n                                                                      <div class="input-group input-icon">\n                                                                          <i class="icon-paper-plane"></i>\n                                                                              <input type="text" placeholder="{{\'APPLICATION_FAX\' | translate}}" class="form-control" readonly>\n                                                                           <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="fax" data-ng-model="item.fax" required>\n                                                                          </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.fax.$touched || forms.$submitted) && form.fax.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END FAX -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_SUBMIT\' | translate}} {{\'APPLICATION_REQUEST\' | translate}}"/>\n                                                  </form>\n                                               </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/smtp/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE CONTENT -->\n                <div class="profile-content">\n                 <!-- START SMTP TAB -->\n                       <form name="form" data-ng-submit="form.$valid && updateItem()" novalidate>\n\n                          <!-- START HOST -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (form.host.$touched || form.$submitted) && form.host.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n                                   <span data-ng-show="(form.host.$touched || form.$submitted) && form.host.$invalid && form.host.$error.required" class="help-block help-block-error">\n                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END HOST -->\n\n                           <!-- START USERNAME -->\n                               <div class="form-group" data-ng-class="{\'has-error\': (form.username.$touched || form.$submitted) && form.username.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required/>\n                                       <span data-ng-show="(form.username.$touched || form.$submitted) && form.username.$invalid && form.username.$error.required" class="help-block help-block-error">\n                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END USERNAME -->\n\n                               <!-- START PASSWORD -->\n                               <div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                   <span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$invalid && form.password.$error.required" class="help-block help-block-error">\n                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END PASSWORD -->\n\n                               <!-- START PORT -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (form.port.$touched || form.$submitted) && form.port.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.port" required/>\n                                 <span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.required" class="help-block help-block-error">\n                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                                       <span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.number" class="help-block help-block-error">\n                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                  </span>\n                               </div>\n                                <!-- END PORT -->\n\n                           <!-- START SSL -->\n                            <div class="form-group row">\n                                  <label class="col-md-3">\n                                              SSL\n                                   </label>\n                                      <label class="col-md-9">\n                                                      <input type="checkbox" data-ng-model="item.ssl">\n                                      </label>\n                              </div>\n                                <!-- END SSL -->\n                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          <input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n                   </form>\n                       <!-- END SMTP TAB -->\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/template/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Templates.checked.length">\n                                               <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEMPLATE\' | translate }} <i class="fa fa-angle-down"></i>\n                                             </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/setting/templates/wizard">\n                                                          <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTemplates([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_templates.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedTemplates" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.templatesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="queueByPage in templatesByPage | filter: $select.search">\n                                                                                                  <div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(template, checked)" checklist-model checklist-value="id"></th>\n                                                 <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="template in displayedTemplates">\n                                                              <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Templates.checked" checklist-value="template.id"></td>\n                                       <td>{{template.name}}</td>\n                                                              <td>{{template.description}}</td>\n                                           <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/setting/templates/view/{{template.id}}/settings">\n                                                                            {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(template.name, template.id)">\n                                                                              {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedTemplates.length">\n                                                         <td colspan="6" class="text-center">\n                                                                  <i>No available templates</i>\n                                                         </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="67" class="text-center">\n                                           <div st-pagination class="pagination" st-items-by-page="conf.templatesByPage.value" st-displayed-pages="7"></div>\n                                           </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/template/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initItem()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n                                        <i data-ng-show="item" class="fa fa-angle-right"></i>\n                         </li>\n                         <li data-ng-show="item">\n                                      <a href="#">{{item.name}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n\n                       <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/template.png" class="img-responsive">\n                           </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{item.name}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.setting.templates.view.settings\')}">\n                                                    <a data-ng-href="/mail/templates/view/{{item.id}}/settings">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/setting/template/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n\n                          <form name="form" data-ng-submit="form.$valid && updateItem()" class="form-horizontal" novalidate>\n                                    <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': form.name.$invalid && form.$submitted}">\n                                               <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n                                                                </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." data-ng-model="item.name" required>\n                                                                  <span data-ng-show="form.name.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group" data-ng-class="{\'has-error\': form.description.$invalid && form.$submitted}">\n                                                <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n                                                             </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="description" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n                                                                     <span data-ng-show="form.description.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <hr>\n\n                                        <!-- START SUBJECT -->\n                                        <div class="form-group row" data-ng-class="{\'has-error\': form.subject.$invalid && form.$submitted}">\n                                                <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-4">\n                                                                        <label class="control-label pull-right">{{\'APPLICATION_SUBJECT\' | translate}}:</label>\n                                                              </div>\n                                                                <div class="col-md-8">\n                                                                        <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n                                                                 <span data-ng-show="form.subject.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END SUJBECT -->\n\n                                        <!-- START HTML -->\n                                   <div class="form-group row" data-ng-class="{\'has-error\': form.text.$invalid && form.$submitted}">\n\n                                         <div class="col-md-4">\n                                                        <div class="portlet light bordered">\n                                                          <div class="portlet-title">\n                                                                   <div class="caption font-green-sharp">\n                                                                                <i class="icon-pencil"></i>{{\'APPLICATION_VARIABLES\' | translate}}\n                                                                  </div>\n                                                                </div>\n                                                                <div class="portlet-body">\n                                                                    <uib-accordion>\n                                                                   <uib-accordion-group heading="{{group.title | translate}}" data-ng-repeat="group in groups">\n                                                                    {{group.content | translate}}\n                                                                                   <ol>\n                                                                                          <li data-ng-repeat="variable in group.variables">\n                                                                                                      {{variable}}\n                                                                                         </li>\n                                                                                 </ol>\n                                                             </uib-accordion-group>\n                                                              </uib-accordion>\n                                                            </div>\n                                                        </div>\n                                                </div>\n                                                <div class="col-md-8">\n                                                        <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n                                                           <span data-ng-show="form.text.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                               </div>\n                                        </div>\n                                        <!-- END HTML -->\n\n                                   <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/setting/template/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n      <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n\n      <li>\n                           <i class="icon-settings"></i>\n                         <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                    </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="initWizard()">\n      <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }} FORM</a> </span>\n            </div>\n        </div>\n        <div class="portlet-body">\n                    <form name="form" data-ng-submit="form.$valid && createItem()" class="form-horizontal" novalidate>\n                            <!-- START HEAD -->\n                           <div class="form">\n                                    <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': form.name.$invalid && form.$submitted}">\n                                               <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n                                                                </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." data-ng-model="item.name" required>\n                                                                  <span data-ng-show="form.name.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group" data-ng-class="{\'has-error\': form.description.$invalid && form.$submitted}">\n                                                <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n                                                             </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="description" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n                                                                     <span data-ng-show="form.description.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START SUBJECT -->\n                                        <div class="form-group" data-ng-class="{\'has-error\': form.subject.$invalid && form.$submitted}">\n                                            <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:</label>\n                                                         </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n                                                                 <span data-ng-show="form.subject.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END SUJBECT -->\n\n                                        <!-- START HTML -->\n                                   <div class="form-group row" data-ng-class="{\'has-error\': form.text.$invalid && form.$submitted}">\n                                           <div class="col-md-4">\n                                                        <div class="portlet light bordered">\n                                                          <div class="portlet-title">\n                                                                   <div class="caption font-green-sharp">\n                                                                                <i class="icon-pencil"></i>{{\'APPLICATION_VARIABLES\' | translate}}\n                                                                  </div>\n                                                                </div>\n                                                                <div class="portlet-body">\n                                                                    <uib-accordion>\n                                                                   <uib-accordion-group heading="{{group.title | translate}}" data-ng-repeat="group in groups">\n                                                                    {{group.content | translate}}\n                                                                                   <ol>\n                                                                                          <li data-ng-repeat="variable in group.variables">\n                                                                                                      {{variable}}\n                                                                                         </li>\n                                                                                 </ol>\n                                                             </uib-accordion-group>\n                                                              </uib-accordion>\n                                                            </div>\n                                                        </div>\n                                                </div>\n                                                <div class="col-md-8">\n                                                        <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n                                                           <span data-ng-show="form.text.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                               </div>\n                                        </div>\n                                        <!-- END HTML -->\n\n                           </div>\n                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                       </form>\n       </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/setting/update/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-cloud-download font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_UPDATES\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <a class="btn btn-default" href="#" data-ng-click="pull()">\n                                           <i class="icon-cloud-download"></i> {{ \'APPLICATION_UPDATE\' | translate }}\n                                  </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body" data-ng-init="initList()">\n                          <!-- BEGIN TABLE -->\n                                  <table st-table="displayedUpdates" st-safe-src="updates" class="table table-striped table-bordered table-hover">\n                                              <div class="table-responsive">\n                                                  <thead>\n                                                             <tr>\n                                                                  <th colspan="3">\n                                                                              <div class="row">\n                                                                                     <div class="col-md-12">\n                                                                                               <ui-select class="input-xsmall" ng-model="conf.updatesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                                     <ui-select-choices repeat="updateByPage in updatesByPage | filter: $select.search">\n                                                                                                           <div ng-bind-html="updateByPage.name | highlight: $select.search"></div>\n                                                                                                      </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                        </th>\n                                                         </tr>\n                                                         <tr>\n                                                                  <th st-sort="message">{{ \'APPLICATION_MESSAGE\' | translate }}</th>\n                                                                  <th st-sort="version">{{ \'APPLICATION_VERSION\' | translate }}</th>\n                                                                  <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n                                                                       <!-- <th class="small-cells"></th> -->\n                                                          </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="update in displayedUpdates">\n                                                                  <td>\n                                                                          {{update.message}}\n                                                                    </td>\n                                                                 <td>\n                                                                          {{update.version}}\n                                                                    </td>\n                                                                 <td>\n                                                                          {{update.date}}\n                                                                       </td>\n                                             </tr>\n                                                             <tr data-ng-hide="displayedUpdates.length">\n                                                                   <td colspan="9" style="text-align:center;">\n                                                                           <i>{{\'MESSAGE_NO_AVAILABLE_UPDATES\' | translate}}</i>\n                                                                       </td>\n                                                         </tr>\n                                           </tbody>\n                                              <tfoot>\n                                                             <tr>\n                                                                  <td colspan="1">\n                                                                              <div class="input-icon right">\n                                                                                        <i class="fa fa-search"></i>\n                                                                                  <input st-search="message" placeholder="{{ \'APPLICATION_MESSAGE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                            </div>\n                                                                        <td colspan="9"></td>\n                                                   </tr>\n                                                   <tr>\n                                                    <td colspan="10" class="text-center">\n                                                                           <div class="pagination" st-pagination st-items-by-page="conf.updatesByPage.value" st-displayed-pages="7"></div>\n                                                     </td>\n                                               </tr>\n                                               </tfoot>\n                                            </div>\n                                        </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/update/list/list.pull.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("app/sound/list/list.html",'<div class="page-bar">\n  <ul class="page-breadcrumb">\n    <li>\n      <i class="icon-rocket"></i>\n      <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n      <i class="fa fa-angle-right"></i>\n    </li>\n    <li>\n      <i class="icon-music-tone-alt"></i>\n      <a href="#">{{ \'APPLICATION_SOUNDS\' | translate }}</a>\n    </li>\n  </ul>\n  <div class="page-toolbar">\n  </div>\n</div>\n<!-- END PAGE HEADER-->\n<!-- BEGIN PAGE CONTENT-->\n<!-- Audio Portlets -->\n<div class="headline">\n  <h3><i class="icon-music-tone-alt sounds-title-icon"></i> {{ \'APPLICATION_SOUNDS\' | translate }}</h3>\n</div>\n<div class="portlet light bg-inverse">\n  <div class="portlet-title collapsible" ng-click="isCollapsed = !isCollapsed">\n    <div class="caption">\n      <i class="icon-puzzle font-red-flamingo"></i>\n      <span class="caption-subject bold font-red-flamingo uppercase">\n      {{\'APPLICATION_FILE_UPLOAD\' | translate}} </span>\n    </div>\n    <div class="tools">\n      <a href="" ng-class="{\'collapse\': !isCollapsed, \'expand\' : isCollapsed}">\n      </a>\n      <a href="" class="fullscreen">\n      </a>\n    </div>\n  </div>\n  <div class="portlet-body" ng-slide-down="!isCollapsed">\n    <div class="row" nv-file-drop="" uploader="uploader" filters="queueLimit, customFilter">\n     <div class="col-md-4">\n                <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject bold uppercase">{{\'APPLICATION_SELECT_FILES\' | translate}}</span>\n                                      <span class="caption-helper hide"></span>\n                             </div>\n                                <div class="actions">\n                                 </div>\n                        </div>\n                        <div class="portlet-body">\n                                    <div ng-show="uploader.isHTML5">\n                                      <div class="file-drop-zone margin-bottom-20" nv-file-over="" uploader="uploader" over-class="file-drop-zone-over">\n                                                    Base drop zone\n                                        </div>\n                                </div>\n                                <span class="btn default btn-file">\n                                   <span class="fileinput-new">\n                                  {{\'APPLICATION_FILE_UPLOAD\' | translate}}</span>\n                                    <input type="file" nv-file-select="" uploader="uploader" />\n                                   </span>\n                               <span class="btn default btn-file">\n                                   <span class="fileinput-new">\n                                  {{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}</span>\n                              <input type="file" nv-file-select="" uploader="uploader" multiple  /><br/>\n          </span>\n          <p>\n            </br>\n            {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>wav, mp3, gsm, ogg</b>.\n          </p>\n          <p>\n            {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} <b>15 Mb</b>.\n          </p>\n                     </div>\n                </div>\n        </div>\n        <div class="col-md-8">\n                <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject bold uppercase">{{\'APPLICATION_UPLOAD_QUEUE\' | translate}}</span>\n                                      <span class="caption-helper">{{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}</span>\n                                 </div>\n                                <div class="actions">\n                                 </div>\n                        </div>\n                        <div class="portlet-body">\n                                    <div class="table-scrollable table-scrollable-borderless">\n                                            <table class="table table-hover table-light">\n                                                 <thead>\n                                                       <tr class="uppercase">\n                                                                <th width="50%">{{\'APPLICATION_NAME\' | translate}}</th>\n                                                             <th ng-show="uploader.isHTML5">{{\'APPLICATION_SIZE\' | translate}}</th>\n                                                              <th ng-show="uploader.isHTML5">{{\'APPLICATION_PROGRESS\' | translate}}</th>\n                                                                  <th>{{\'APPLICATION_STATUS\' | translate}}</th>\n                                                               <th>{{\'APPLICATION_MESSAGE\' | translate}}</th>\n                                                              <th>{{\'APPLICATION_ACTIONS\' | translate}}</th>\n                                                      </tr>\n                                                 </thead>\n                                              <tbody>\n                                                       <tr ng-repeat="item in uploader.queue">\n                                                               <td><strong>{{ item.file.name }}</strong></td>\n                                                                <td ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n                                                                 <td ng-show="uploader.isHTML5">\n                                                                       <div class="progress progress-sm" style="margin-bottom: 0;">\n                                                                                  <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n                                                                         </div>\n                                                                </td>\n                                                                 <td class="text-center">\n                                                                      <span ng-show="item.isSuccess" class="text-success"><i class="glyphicon glyphicon-ok"></i></span>\n                                                                     <span ng-show="item.isCancel" class="text-info"><i class="glyphicon glyphicon-ban-circle"></i></span>\n                                                                         <span ng-show="item.isError" class="text-danger"><i class="glyphicon glyphicon-remove"></i></span>\n                                                                            <span ng-show="item.isUploading" class="text-info"><i class="glyphicon glyphicon-upload"></i></span>\n                                                                  </td>\n                                                                 <td class="text-center">\n                                                                      <span ng-show="item.responseMessage" class="text-danger">{{item.responseMessage}}</span>\n                                                              </td>\n                                                                 <td nowrap>\n                                                                           <button type="button" class="btn btn-success btn-xs" ng-click="item.upload()" ng-disabled="item.isReady || item.isUploading || item.isSuccess">\n                                                                       <span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD\' | translate}}\n                                                                       </button>\n                                                                     <button type="button" class="btn btn-warning btn-xs" ng-click="item.cancel()" ng-disabled="!item.isUploading">\n                                                                        <span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL\' | translate}}\n                                                                           </button>\n                                                                     <button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()">\n                                                                         <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n                                                                        </button>\n                                                             </td>\n                                                         </tr>\n                                                 </tbody>\n                                      </table>\n                              </div>\n                                <div>\n                                         <p>{{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:</p>\n                                         <div class="progress progress-sm" style="">\n                                                   <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': uploader.progress + \'%\' }"></div>\n                                     </div>\n                                </div>\n                                <button type="button" class="btn btn-success btn-s" ng-click="uploader.uploadAll()" ng-disabled="!uploader.getNotUploadedItems().length">\n                             <span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD_ALL\' | translate}}\n                                   </button>\n                             <button type="button" class="btn btn-warning btn-s" ng-click="uploader.cancelAll()" ng-disabled="!uploader.isUploading">\n                              <span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL_ALL\' | translate}}\n                               </button>\n                             <button type="button" class="btn btn-danger btn-s" ng-click="uploader.clearQueue()" ng-disabled="!uploader.queue.length">\n                             <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE_ALL\' | translate}}\n                                    </button>\n                     </div>\n                </div>\n        </div>\n    </div>\n  </div>\n</div>\n<div class="row thumbnails" data-ng-init="initList()">\n  <div class="row" ng-show="sounds.length == 0">\n    <div class="col-md-12 page-404">\n      <div class="details">\n        <h3>{{ \'MESSAGE_NO_SOUNDS\' | translate }}</h3>\n        <p>\n          <a href="/">\n          {{ \'MESSAGE_RETURN_HOME\' | translate }} </a>\n          {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n        </p>\n      </div>\n    </div>\n  </div>\n  <div class="audio-portlet-wrapper animate-repeat" ng-repeat="sound in sounds">\n    <div class="audio-portlet">\n      <div class="audio-portlet-title"><a href="#" editable-text="sound.display_name" onbeforesave="updateAudio(sound.id,{display_name : $data})">{{ sound.display_name || "Empty" }}</a></div>\n      <img src="../assets/images/note_placeholder.png" alt="" class="img-responsive"/>\n      <div class="file-info">\n        <div class="audio-tag-wrapper">\n          <audio controls ng-src="{{getSecureSrc(audioSources[sound.id])}}" preload="none">\n            {{ \'MESSAGE_AUDIO_NOT_SUPPORTED\' | translate }}\n          </audio>\n        </div>\n        <p id="description_div">\n          <a href="#" editable-text="sound.description" onbeforesave="updateAudio(sound.id,{description : $data})">{{ sound.description || "Empty" }}</a>\n        </p>\n        <p class="float-right">\n            <button class="btn btn-xs green-meadow" tooltip-html-unsafe="<ul class=\'list-unstyled\'><li><b>Format : </b>{{sound.original_format}}</li><li><b>Duration : </b>{{sound.original_duration | date: \'mm:ss\'}}</li><li><b>Channels : </b>{{sound.original_channelCount}}</li><li><b>Bitrate : </b>{{sound.original_bitRate/1024}} kbs</li><li><b>Sample Rate : </b>{{sound.original_sampleRate/1000}} KHz</li></ul>"><i class="icon-list"></i></button>\n            <a class="btn btn-xs blue-hoki" href="{{getSecureDownloadSrc(audioSources[sound.id])}}" download="{{sound.name+\'.\'+sound.original_format}}" target="_self" tooltip="Download"><i class="icon-cloud-download"></i></a>\n            <button class="btn btn-xs red-sunglo" ng-click="delete(sound.display_name, sound.id)" tooltip="Delete"><i class="icon-close" ></i></button>\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- End Audio Portlets -->\n'),a.put("app/sound/sound.html","<!-- BEGIN PAGE CONTENT-->\n<div ui-view></div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/square/odbc/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_ODBCS\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Odbcs.checked.length">\n                                           <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ODBC\' | translate }} <i class="fa fa-angle-down"></i>\n                                         </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/square/odbcs/wizard">\n                                                               <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getOdbcs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_odbcs.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedOdbcs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                   <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.odbcsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="odbcByPage in odbcsByPage | filter: $select.search">\n                                                                                                       <div ng-bind-html="odbcByPage.name | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(odbc, checked)" checklist-model checklist-value="id"></th>\n                                             <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="odbc in displayedOdbcs" class="animate-repeat">\n                                                               <td style="text-align: center; vertical-align: middle"><input data-ng-hide="odbc.defaultEntry" type="checkbox" checklist-model="Odbcs.checked" checklist-value="odbc.id"></td>\n                                                                <td>{{odbc.name}}</td>\n                                              <td>{{odbc.description}}</td>\n                                         <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/square/odbcs/view/{{odbc.id}}/settings" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n                                                                           {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(odbc.name,odbc.id)" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedOdbcs.length">\n                                                             <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_ODBCS_AVAILABLE\' | translate }}</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.odbcsByPage.value" st-displayed-pages="7"></div>\n                                       </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getOdbc()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                                      <i data-ng-show="odbc" class="fa fa-angle-right"></i>\n                         </li>\n                         <li data-ng-show="odbc">\n                                      <a href="#">{{odbc.name}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/odbc.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{odbc.name}}\n                                 </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.square.odbcs.view.settings\')}">\n                                                 <a data-ng-href="/square/odbcs/view/{{odbc.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateOdbc()" novalidate>\n\n                                                        <!-- START NAME -->\n                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="odbc.name" required/>\n                                                           <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END NAME -->\n\n                                                     <!-- START DSN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="odbc.dsn" required/>\n                                                              <span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DSN -->\n\n                                                    <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="odbc.description"></textarea>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/square/odbc/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n     <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-docs"></i>\n                             <a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                              <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/square/odbcs/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                   </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_ODBC\' | translate }} WIZARD</a> </span>\n               </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.odbc.$valid)">\n                            <form name="forms.odbc" novalidate>\n\n                           <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                                             <!-- START DSN -->\n                          <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n                         <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                          <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="item.dsn" required/>\n                                                      <span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END DSN -->\n\n                                              <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n                                          </div>\n                                                <!-- END DESCRIPTION -->\n                            <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                          </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/square/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n                   </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Projects.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/square/projects/wizard">\n                                                            <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_projects.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n                                                               <td>{{project.name}}</td>\n                                           <td>{{project.description}}</td>\n                                              <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/square/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                           {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedProjects.length">\n                                                          <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-superscript"></i>\n                                             <a href="/square/projects">{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n                                          <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-slack"></i>\n                                           <a href="/square/projects">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                      </li>\n          <li>\n                                         <a ng-href="/square/projects/view/{{squareProject.id}}">{{squareProject.name}}</a>\n          </li>\n                           </ul>\n                 </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n              <div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/square/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n       <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-docs"></i>\n                             <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n                                <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/square/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                        </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n            </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n                         <form name="forms.project" novalidate>\n\n                        <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n                              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                                             <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n                                          </div>\n                                                <!-- END DESCRIPTION -->\n                            <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                          </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/sugarcrm/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/sugarcrm/list">{{ \'APPLICATION_SUGARCRM\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_SUGARCRM\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/sugarcrm/wizard">\n                                                           <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\']" field-separator=";" filename="sugarcrm_accounts.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedSugarcrmAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedSugarcrmAccounts" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/sugarcrm/view/{{account.id}}/account">\n                                                                               {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedSugarcrmAccounts.length">\n                                                          <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/view/view.account.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END API KEY -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/sugarcrm/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n    <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n                        <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                             <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/mail/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n      <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-envelope"></i>\n                         <a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n                    </li>\n      <li>\n                             <i class="icon-layers"></i>\n                           <a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-layers font-green-sharp"></i>\n                          <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n             </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                                     <form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n                                          <!-- START NAME -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END NAME -->\n\n                                           <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                               </div>\n                                                <!-- END DESCRIPTION -->\n\n                                            <!-- START TIMEOUT -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n                                                        <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TIMEOUT -->\n\n                                                <!-- START STRATEGY -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                             <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                                  <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STRATEGY -->\n                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n                                  </form>\n                         </wz-step>\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n                               </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/realtime/view/agent/agent.queues.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n           <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/agent/agent.timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n      <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n                        <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="12">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                     <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                 <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                <th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n                                              <th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n                                            <th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n                                               <th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n                                                <th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n                                              <th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n                                           <th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n                              </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="agent in displayedAgents">\n                                            <td>\n                                                  <span>\n                                                                <i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n                                                         \'icon-user-following font-green\': agent.lastevent === \'agent\',\n                                                            \'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n                                                             \'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n                                                   </span>\n                                               </td>\n                                         <td>{{agent.uniqueid}}</td>\n                                           <td>{{agent.mailqueuename}}</td>\n                                              <td>{{agent.fullname}}</td>\n                                           <td>{{agent.subject}}</td>\n                                            <td>{{agent.from}}</td>\n                                               <td>{{agent.accountname}}</td>\n                                                <td>\n                                                  <time is="relative-time" datetime="{{agent.agentcalledAt}}">\n                                                          April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n                                                         April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  {{agent.reason | uppercase}}\n                                          </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedAgents.length">\n                                            <td colspan="11" style="text-align:center;">\n                                                  <i>No agents available</i>\n                                            </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                     </div>\n                                                </td>\n                             <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                   </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="12" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                              </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initMails()">\n    <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedMails" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n                       <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="12">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n                                                                                 <div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                 <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                <th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n                                              <th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n                                            <th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n                                               <th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n                                                <th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n                                                <th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n                                 </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="session in displayedMails">\n                                           <td>\n                                                  <span>\n                                                                <i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n                                                             \'icon-user-following font-green\': session.fullname,\n                                                         \'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n                                                       </span>\n                                               </td>\n                                         <td>{{session.uniqueid}}</td>\n                                         <td>{{session.mailqueuename}}</td>\n                                            <td>{{session.fullname}}</td>\n                                         <td>{{session.subject}}</td>\n                                          <td>{{session.from}}</td>\n                                             <td>{{session.accountname}}</td>\n                                              <td>\n                                                  <time is="relative-time" datetime="{{session.mailjoinAt}}">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.mailleaveAt}}" data-ng-show="session.mailleaveAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{session.mailunmanagedAt}}" data-ng-show="session.mailunmanagedAt">\n                                                               April 1, 2014\n                                                 </time>\n                                               </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedMails.length">\n                                             <td colspan="11" style="text-align:center;">\n                                                  <i>No sessions available</i>\n                                          </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                     </div>\n                                                </td>\n                             <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                   </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="12" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n                            </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="/mail/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                     <div class="navbar-header">\n                       <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n                                <span class="sr-only">Toggle navigation</span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                                <span class="icon-bar"></span>\n                            </button>\n                     <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n                 </div>\n\n                      <!-- Collect the nav links, forms, and other content for toggling -->\n                 <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                         <ul class="nav navbar-nav">\n                               <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_AGENTS\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'agents\'></tree>\n                             </li>\n                                                                         <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_SESSIONS\' | translate }}\n                                    <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'sessions\'></tree>\n                           </li>\n                     </ul>\n                         <!-- <ul class="nav navbar-nav">\n                          <li dropdown>\n                             <a href="#" dropdown-toggle>\n                                      {{ \'APPLICATION_QUEUES\' | translate }}\n                                      <b class=\'caret\'></b>\n                                   </a>\n                                  <tree tree=\'queues\'></tree>\n                             </li>\n                     </ul> -->\n                 </div>\n                        <!-- /.navbar-collapse -->\n                </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="/agent">{{ \'APPLICATION_MAILS\' | translate }}</a>\n                          </li>\n                         <li>\n                                  <a href="#">{{agent.fullname}}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img ng-src="assets/images/media/statistics.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{agent.fullname}}\n                                    </div>\n                                        <div class="profile-usertitle-job">\n                                           {{agent.role}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.mail.statistics.summary\')}">\n                                                    <a data-ng-href="/mail/statistics/summary">\n                                                   <i class="icon-bar-chart"></i>\n                                                        {{ \'APPLICATION_SUMMARY\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.summary.html",'<div class="row">\n   <div class="col-md-12">\n               <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                     <div class="col-md-6">\n                                                <div class="portlet sale-summary">\n                                                    <div class="portlet-body">\n                                                            <ul class="list-unstyled">\n                                                                    <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_INBOX\' | translate }} <i class="fa fa-img-up"></i>\n                                                                          </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'INBOX\' }).length }} </span>\n                                                                  </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_SENT\' | translate }} <i class="fa fa-img-down"></i>\n                                                                         </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'SENT\' }).length }} </span>\n                                                                   </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_OUTGOING\' | translate }} <i class="fa fa-img-down"></i>\n                                                                             </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'NOT SENT\' }).length }} </span>\n                                                                       </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_DRAFT\' | translate }} <i class="fa fa-img-down"></i>\n                                                                                </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'DRAFT\' }).length }} </span>\n                                                                  </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_TRASH\' | translate }} <i class="fa fa-img-down"></i>\n                                                                                </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ directory:\'TRASH\' }).length }} </span>\n                                                                  </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <canvas class="chart chart-pie" data="[\n                                               (mailMessages | filter:{ directory:\'INBOX\' }).length,\n                                               (mailMessages | filter:{ directory:\'SENT\' }).length,\n                                                (mailMessages | filter:{ directory:\'NOT SENT\' }).length,\n                                            (mailMessages | filter:{ directory:\'DRAFT\' }).length,\n                                               (mailMessages | filter:{ directory:\'TRASH\' }).length]" labels="[\n                                            $translate.instant(\'APPLICATION_INBOX\'),\n                                            $translate.instant(\'APPLICATION_SENT\'),\n                                             $translate.instant(\'APPLICATION_OUTGOING\'),\n                                         $translate.instant(\'APPLICATION_DRAFT\'),\n                                            $translate.instant(\'APPLICATION_TRASH\')]" legend="true"></canvas>\n                                   </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END PORTLET-->\n\n         <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-pencil font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_OTHER_INFO\' | translate }}</a> </span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                     <div class="col-md-6">\n                                                <div class="portlet sale-summary">\n                                                    <div class="portlet-body">\n                                                            <ul class="list-unstyled">\n                                                                    <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_READ\' | translate }} <i class="fa fa-img-up"></i>\n                                                                           </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ read:\'true\' }).length }} </span>\n                                                                        </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_UNREAD\' | translate }} <i class="fa fa-img-down"></i>\n                                                                               </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ read:\'false\' }).length }} </span>\n                                                                       </li>\n                                                                 <li>\n                                                                          <span class="sale-info">\n                                                                              {{ \'APPLICATION_FAVORITE\' | translate }} <i class="fa fa-img-down"></i>\n                                                                             </span>\n                                                                               <span class="sale-num">\n                                                                               {{ (mailMessages | filter:{ favorite:\'true\' }).length }} </span>\n                                                                    </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <canvas class="chart chart-pie" data="[\n                                               (mailMessages | filter:{ read:\'true\' }).length,\n                                             (mailMessages | filter:{ read:\'false\' }).length]" labels="[\n                                         $translate.instant(\'APPLICATION_READ\'),\n                                             $translate.instant(\'APPLICATION_UNREAD\')]" legend="true"></canvas>\n                                  </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n'),a.put("app/mail/timeline/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-list"></i>\n                                             <a href="/mail/timeline/list"> Timeline</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n     <div class="col-md-12">\n    <h3 class="page-title">\n                          Timeline\n                      </h3>\n                 <!-- END PAGE HEADER-->\n                       <!-- BEGIN PAGE CONTENT-->\n                    <div class="timeline">\n                                <!-- TIMELINE ITEM -->\n                                <div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n                                        <div class="timeline-badge">\n                                          <div class="timeline-icon">\n                                                   <i class="icon-envelope font-green-haze"></i>\n                                         </div>\n                                        </div>\n                                        <div class="timeline-body">\n                                           <div class="timeline-body-arrow"></div>\n                                               <div class="timeline-body-head">\n                                                      <div class="timeline-body-head-caption">\n                                                              <span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n                                                                <span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n                                                       </div>\n                                                        <div class="timeline-body-head-actions">\n                                                              <div class="btn-group">\n                                                                       <a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n                                                              </div>\n                                                        </div>\n                                                </div>\n                                                <div class="timeline-body-content">\n                                                   <span class="font-grey-cascade" data-ng-show="event.User">\n                                                    {{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n                                                       </span>\n                                               </div>\n                                        </div>\n                                </div>\n                                <!-- END TIMELINE ITEM -->\n                    </div>\n                        <!-- END PAGE CONTENT-->\n      </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/main/chooseContact.modal.html",'<div class="modal-header" data-ng-init="getContacts()">\n  <h3 class="modal-title">{{ \'APPLICATION_CHOOSE_CONTACT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <table st-table="rowCollection" class="table table-striped">\n    <tbody>\n       <tr ng-repeat="contact in contacts">\n                  <td>{{contact.fullname}}</td>\n                 <td>{{contact.Service.name}}</td>\n             <td>\n        <button class="btn default btn-xs green-stripe" data-ng-click="open(contact)">\n          {{ \'APPLICATION_OPEN\' | translate}}\n        </button>\n      </td>\n         </tr>\n    <tr data-ng-hide="contacts.length">\n      <td colspan="3" style="text-align:center;">\n        <i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n      </td>\n    </tr>\n         </tbody>\n  </table>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="open()" ng-disabled="forms.tag.$invalid"><i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content" data-ng-class="{\'demo\': !license.expiration}">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <uib-tabset>\n        <uib-tab select="addWorkspace()" active="mainTab.active">\n          <uib-tab-heading>\n            Motion <i class="icon-rocket"></i>\n          </uib-tab-heading>\n          <div ui-view class=""></div>\n        </uib-tab>\n        <uib-tab data-ng-repeat="workspace in workspaces" active="workspace.active" data-ng-switch="workspace.type">\n          <uib-tab-heading>\n            {{workspace.name}} <i class="icon-close pointer-cursor" data-ng-click="closeTab($index)"></i>\n          </uib-tab-heading>\n          <div class="" data-ng-switch="workspace.type">\n            <new-contact data-ng-switch-when="newContact" workspace="workspace" index="$index" on-submit="createContact(index,item)"></new-contact>\n            <contact data-ng-switch-when="contact" workspace="workspace" index="$index" on-submit="updateContact(index,item)"></contact>\n          </div>\n        </uib-tab>\n\n      </uib-tabset>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),
+a.put("app/main/template.contactTab.html",'<div class="row margin-top-20 contact-tab-container">\n  <div class="col-md-12 contact-tab">\n    <form name="forms.general" data-ng-submit="submit({index:index,item:contact})" novalidate>\n    <!-- BEGIN PROFILE SIDEBAR -->\n    <div class="profile-sidebar">\n      <!-- PORTLET MAIN -->\n      <div class="portlet light pbottom20">\n        <!-- SIDEBAR USERPIC -->\n        <div class="profile-userpic">\n          <img src="assets/images/media/contact.png" class="img-responsive" alt="">\n        </div>\n        <!-- END SIDEBAR USERPIC -->\n        <!-- SIDEBAR USER TITLE -->\n        <div class="profile-usertitle">\n          <div class="profile-usertitle-name">\n            {{contact.fullname}}\n          </div>\n          <div class="profile-usertitle-job">\n          </div>\n        </div>\n        <!-- END SIDEBAR USER TITLE -->\n        <!-- SIDEBAR BUTTONS -->\n        <div class="profile-userbuttons">\n          <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.fullname">{{\'APPLICATION_UPDATE\' | translate}}</button>\n          <!-- <button type="button" class="btn btn-circle btn-danger btn-sm">Message</button> -->\n        </div>\n      </div>\n      <!-- END PORTLET MAIN -->\n      <!-- PORTLET MAIN -->\n      <div class="portlet light">\n        <!-- STAT -->\n        <div class="row list-separated profile-stat">\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               37\n            </div>\n            <div class="uppercase profile-stat-text">\n               Projects\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               51\n            </div>\n            <div class="uppercase profile-stat-text">\n               Tasks\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               61\n            </div>\n            <div class="uppercase profile-stat-text">\n               Uploads\n            </div>\n          </div>\n        </div>\n        <!-- END STAT -->\n        <div>\n          <h4 class="profile-desc-title">{{\'APPLICATION_ABOUT\' | translate}} {{contact.fullname}}</h4>\n          <span class="profile-desc-text break-overflow">{{contact.description}}</span>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-globe"></i>\n            <a href="http://www.keenthemes.com">www.keenthemes.com</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-twitter"></i>\n            <a href="http://www.twitter.com/keenthemes/">@keenthemes</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-facebook"></i>\n            <a href="http://www.facebook.com/keenthemes/">keenthemes</a>\n          </div>\n        </div>\n      </div>\n      <!-- END PORTLET MAIN -->\n    </div>\n    <!-- END BEGIN PROFILE SIDEBAR -->\n    <!-- BEGIN PROFILE CONTENT -->\n    <div class="profile-content">\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light ">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n              </div>\n              <div class="actions">\n                <div class="btn-group btn-group-devided" data-toggle="buttons">\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="detail.tab=\'main\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_MAIN\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'address\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_ADDRESS\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'other\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_OTHER\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'customFields\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</label>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-class="{\'hidden\':detail.tab != \'main\'}" class="portlet-body contact-portlet">\n              <!-- START FULLNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="contact.fullname" required/>\n                <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FULLNAME -->\n\n              <!-- START COMPANY -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n                <ui-select data-ng-model="contact.CompanyId" theme="bootstrap" name="CompanyId" ng-disabled="disabled">\n                  <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                    <div ng-bind-html="company.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COMPANY -->\n\n              <!-- START TAGS -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n                <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="contact.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n                  <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                  <ui-select-choices repeat="tag in tags | filter: $select.search">\n                    {{tag}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END TAGS -->\n              <!-- START SERVICE -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_SERVICE\' | translate}}</label>\n                <input type="text" name="service" placeholder="{{\'APPLICATION_SERVICE\' | translate}}" class="form-control" data-ng-model="contact.Service.name" disabled/>\n              </div>\n              <!-- END SERVICE -->\n\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'address\'}" class="portlet-body contact-portlet">\n              <!-- START STREET -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="contact.street"/>\n                <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END STREET -->\n\n              <!-- START POSTALCODE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="contact.postalCode"/>\n                <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END POSTALCODE -->\n\n              <!-- START CITY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="contact.city"/>\n                <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END CITY -->\n\n              <!-- START COUNTRY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="contact.country"/>\n                <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COUNTRY -->\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'other\'}" class="portlet-body contact-portlet">\n              <!-- START DATEOFBIRTH -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n                <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n                <input name="dateOfBirth" type="date" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control date-picker" data-ng-model="contact.dateOfBirth"/>\n                <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END DATEOFBIRTH -->\n\n              <!-- START DESCRIPTION -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                <textarea style="resize: vertical;" type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="contact.description"></textarea>\n              </div>\n              <!-- END DESCRIPTION -->\n              <!-- START CREATED_BY -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_CREATED_BY\' | translate}}</label>\n                <input type="text" name="createdBy" placeholder="{{\'APPLICATION_CREATED_BY\' | translate}}" class="form-control" data-ng-model="contact.User.name" disabled/>\n              </div>\n              <!-- END CREATED_BY -->\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'customFields\'}" class="portlet-body contact-portlet">\n              <div data-ng-repeat="customField in customFields">\n                <div data-ng-if="customField.active || _.find(contact.CustomFields,{id:customField.id})">\n                <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n                  <label class="control-label">{{customField.name}}</label>\n                  <input data-ng-if="!joinPrompt" type="text" name="{{customField.name}}" placeholder="{{customField.name}}" class="form-control" data-ng-model="contact.customFields[customField.id]"/>\n                  <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n                  <label class="control-label">{{customField.name}}</label>\n                  <ui-select data-ng-if="!joinPrompt" data-ng-model="contact.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n                    <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected.value}}</ui-select-match>\n                    <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n                      <div ng-bind-html="choice.value | highlight: $select.search"></div>\n                    </ui-select-choices>\n                  </ui-select>\n                  <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n              </div>\n              </div>\n            </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONTACTS\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PHONES\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_EMAILS\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_1_1">\n                  <div class="contact-portlet">\n                    <!-- START PHONES -->\n                    <div class="padding-bottom mbottom20">\n                    <div data-ng-if="contact.Phones.length>0">\n                      <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label>\n                    </div>\n                    <div class="padding-bottom" ng-repeat="phone in contact.Phones">\n                      <div class="form-group">\n                        <div class="input-group">\n                          <input type="text" class="form-control" ng-model="phone.phone" required>\n                          <span class="input-group-btn">\n                          <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                          </span>\n                        </div>\n                      </div>\n                    </div>\n                    <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n                      <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n                    </button>\n                  </div>\n                  <!-- END PHONES -->\n                </div>\n              </div>\n                <div class="tab-pane" id="tab_1_2">\n                  <div class="contact-portlet">\n                    <!-- START EMAILS -->\n                      <div class="padding-bottom mbottom20">\n                      <div data-ng-if="contact.Emails.length>0">\n                        <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div>\n                      <div class="padding-bottom" ng-repeat="email in contact.Emails">\n                        <div class="form-group">\n                          <div class="input-group">\n                            <input type="email" class="form-control" ng-model="email.email" required>\n                            <span class="input-group-btn">\n                            <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                            </span>\n                          </div>\n                        </div>\n                      </div>\n                      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n                        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n                      </button>\n                    </div>\n                    <!-- END EMAILS -->\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_LOG\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_2_1" data-toggle="tab">{{ \'APPLICATION_JOURNAL\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_2_2" data-toggle="tab">{{ \'APPLICATION_HISTORY\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_2_1">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.show=\'Phones\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.show=\'Emails\';log.journal.detail=\'general\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.type=\'Inbounds\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.type=\'Outbounds\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.journal.show==\'Phones\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.detail=\'general\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.detail=\'QueueCalls\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.detail=\'ReportAgents\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_AGENTS\' | translate}}</label>\n                      </div>\n                    </div>\n                    <table st-table="journal" class="table table-striped">\n                                 <thead>\n                               <tr>\n                                          <th data-ng-repeat="column in columns[log.journal.show][log.journal.detail].header">{{column | translate}}</th>\n                               </tr>\n                                 </thead>\n                              <tbody>\n                               <tr data-ng-repeat="row in rows[\'journal\']">\n                                        <td data-ng-repeat="col in columns[log.journal.show][log.journal.detail].indexes">{{col == \'createdAt\' ? moment(row[col]).format(\'DD/MM/YYYY HH:mm:ss\') : row[col]}}</td>\n                                 </tr>\n                      <tr data-ng-hide="rows[\'journal\'].length">\n                        <td colspan="{{columns[log.journal.show][log.journal.detail].header.length}}" class="text-center">\n                          {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}\n                        </td>\n                      </tr>\n                                 </tbody>\n                              <tfoot>\n                                       <tr>\n                                                  <td colspan="{{columns[log.journal.show][log.journal.detail].header.length}}" class="text-center">\n                                                    <div st-pagination="" st-items-by-page="itemsByPage" st-displayed-pages="7"></div>\n                                            </td>\n                                         </tr>\n                                 </tfoot>\n                      </table>\n\n                  </div>\n              </div>\n                <div class="tab-pane" id="tab_2_2">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.show=\'Phones\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.show=\'Emails\';log.history.detail=\'general\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.type=\'HistoryInbounds\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.type=\'HistoryOutbounds\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.history.show==\'Phones\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.detail=\'general\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.detail=\'HistoryQueueCalls\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.detail=\'HistoryReportAgents\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_AGENTS\' | translate}}</label>\n                      </div>\n                    </div>\n                    <table st-table="history" class="table table-striped">\n                      <thead>\n                      <tr>\n                        <th data-ng-repeat="column in columns[log.history.show][log.history.detail].header">{{column | translate}}</th>\n                      </tr>\n                      </thead>\n                      <tbody>\n                      <tr data-ng-repeat="row in rows[\'history\']">\n                        <td data-ng-repeat="col in columns[log.history.show][log.history.detail].indexes">{{col == \'createdAt\' ? moment(row[col]).format(\'DD/MM/YYYY HH:mm:ss\') : row[col]}}</td>\n                      </tr>\n                      <tr data-ng-hide="rows[\'history\'].length">\n                        <td colspan="{{columns[log.history.show][log.history.detail].header.length}}" class="text-center">\n                          {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}\n                        </td>\n                      </tr>\n                      </tbody>\n                      <tfoot>\n                        <tr>\n                          <td colspan="{{columns[log.history.show][log.history.detail].header.length}}" class="text-center">\n                            <div st-pagination="" st-items-by-page="itemsByPage" st-displayed-pages="7"></div>\n                          </td>\n                        </tr>\n                      </tfoot>\n                    </table>\n\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light tasks-widget">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">Tasks</span>\n                <span class="caption-helper">16 pending</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-small input-inline">\n                  <div class="input-icon right">\n                    <i class="icon-magnifier"></i>\n                    <input type="text" class="form-control form-control-solid" placeholder="search...">\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div class="task-content">\n                <div class="contact-portlet">\n                  <!-- START TASK LIST -->\n                  <ul class="task-list">\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="hidden" value="1" name="test"/>\n                        <input type="checkbox" class="liChild" value="2" name="test"/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Present 2013 Year IPO Statistics at Board Meeting </span>\n                        <span class="label label-sm label-success">Company</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Hold An Interview for Marketing Manager Position </span>\n                        <span class="label label-sm label-danger">Marketing</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        AirAsia Intranet System Project Internal Meeting </span>\n                        <span class="label label-sm label-success">AirAsia</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Technical Management Meeting </span>\n                        <span class="label label-sm label-warning">Company</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Kick-off Company CRM Mobile App Development </span>\n                        <span class="label label-sm label-info">Internal Products</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Prepare Commercial Offer For SmartVision Website Rewamp </span>\n                        <span class="label label-sm label-danger">SmartVision</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Sign-Off The Comercial Agreement With AutoSmart </span>\n                        <span class="label label-sm label-default">AutoSmart</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Company Staff Meeting </span>\n                        <span class="label label-sm label-success">Cruise</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li class="last-line">\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        KeenThemes Investment Discussion </span>\n                        <span class="label label-sm label-warning">KeenThemes </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                  </ul>\n                  <!-- END START TASK LIST -->\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n    </div>\n    <!-- END PROFILE CONTENT -->\n  </form>\n  </div>\n</div>\n'),
+a.put("app/main/template.jscriptyTab.html",'<div class="portlet light bordered">\n    <div class="portlet-title">\n      <div class="caption font-green-sharp">\n        <i class="fa fa-edit font-green-sharp"></i>\n        <span class="caption-subject">{{steps[currentStepNumber].label}}</a> </span>\n      </div>\n    </div>\n    <div class="portlet-body">\n          <div class="row">\n              <!-- BEGIN SIDEBAR -->\n                <div class="profile-sidebar" style="width: 250px;">\n                  <!-- PORTLET MAIN -->\n                                <div class="portlet light profile-sidebar-portlet">\n                                           <!-- SIDEBAR MENU -->\n                                         <div class="profile-usermenu">\n                                                <ul class="nav">\n                                                              <li  ng-repeat= \'step in steps\' ng-class="{active: steps[currentStepNumber].id == step.id}">\n                                                                <a  ng-click="setCurrentStep(step)" >\n                                                                 {{step.label}}</a>\n                                                            </li>\n                                                 </ul>\n                                         </div>\n                                        <!-- END SIDEBAR MENU -->\n                                     </div>\n                    <!-- END PORTLET MAIN -->\n                </div>\n                  <!-- END SIDEBAR -->\n              <div  class="profile-content">\n                      <form  name="forms.question" role="form">\n                            <!-- START QUESTION  -->\n                            <div class="form-group">\n                                  <label class="control-label">{{steps[currentStepNumber].question}}<span class="required" aria-required="true"></span></label>\n                            </div>\n                              <!-- END QUESTION -->\n                            <!-- START RADIO BUTTON  -->\n                            <div  class="form-group" data-ng-class="{\'has-error\': ( forms.radioGroup.$submitted) && forms.radioGroup.fullname.$invalid}" ng-show="steps[currentStepNumber].tag == \'question\'" ng-repeat="edge in steps[currentStepNumber].outgoingEdges" button-toggle="button">\n                                 <input  checked="checked " type="radio"  ng-model="steps[currentStepNumber].answer" ng-value="edge" name="radioGroup" />\n                                 <label ng-disabled="resume">{{edge.value}}</label>\n                           </div>\n                           <!-- END RADIO BUTTON -->\n                            <!-- START INPUT TEXT -->\n                            <div  class="form-group" ng-show="steps[currentStepNumber].tag == \'input\'" ng-repeat="edge in steps[currentStepNumber].outgoingEdges">\n                                  <label class="control-label">{{edge.value}}</label>\n                                   <input  class="form-control"  type="text"  ng-model="steps[currentStepNumber].answer[edge.value]"  name="radioGroup">\n                            </div>\n                                       <!-- END INPUT TEXT  -->\n                          <button ng-if="steps[currentStepNumber].tag != \'start\'" class="btn default"    ng-click="previousBlock()">{{\'APPLICATION_BACK\' | translate}} <i class="fa fa-angle-left"></i></button>\n                          <button  ng-disabled="!((currentStepNumber == 0) || (steps[currentStepNumber].answer))" ng-if="steps[currentStepNumber].tag != \'end\'" class="btn green-haze" type="submit"  ng-click="nextBlock()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                      </form>\n              </div>\n              <!-- END CONTENT -->\n\n            </div>\n\n  </div>\n\n</div>\n'),a.put("app/main/template.motionfileDownload.html",'<a class="btn default btn-xs blue-stripe" href="" data-ng-click="download()">\n  {{ \'APPLICATION_DOWNLOAD\' | translate}}\n</a>\n'),a.put("app/main/template.newContactTab.html",'<div class="portlet light bordered">\n  <div class="portlet-title">\n    <div class="caption font-green-sharp">\n      <i class="icon-envelope-letter font-green-sharp"></i>\n      <span class="caption-subject">{{ \'APPLICATION_NEW_CONTACT\' | translate }}</a> </span>\n    </div>\n  </div>\n  <div class="portlet-body">\n        <form name="forms.general" data-ng-submit="submit({index: index,item: item})" novalidate>\n          <div class="portlet light">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAILS\' | translate}}</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-inline input-small ">\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n          <div class="row">\n            <div class="col-md-6">\n          <!-- START FULLNAME -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n            <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n            <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n            <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END FULLNAME -->\n\n          <!-- START COMPANY -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n            <ui-select data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="disabled">\n              <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                <div ng-bind-html="company.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COMPANY -->\n\n          <!-- START STREET -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n            <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n            <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="item.street"/>\n            <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END STREET -->\n\n          <!-- START POSTALCODE -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n            <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n            <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="item.postalCode"/>\n            <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END POSTALCODE -->\n\n          <!-- START CITY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n            <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n            <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="item.city"/>\n            <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END CITY -->\n\n          <!-- START SERVICE -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.ServiceId.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_SERVICE\' | translate}}</label>\n            <ui-select data-ng-model="item.ServiceId" theme="bootstrap" name="ServiceId" data-ng-disabled="disabled" data-ng-change="getCustomFields()">\n              <ui-select-match placeholder="{{ \'APPLICATION_SERVICE\' | translate }}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="service.id as service in services | filter: $select.search">\n                <div ng-bind-html="service.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.ServiceId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END SERVICE -->\n\n        </div>\n        <div class="col-md-6">\n          <!-- START COUNTRY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n            <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n            <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="item.country"/>\n            <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COUNTRY -->\n\n          <!-- START DATEOFBIRTH -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n            <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n            <input type="date" name="dateOfBirth" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control" data-ng-model="item.dateOfBirth"/>\n            <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END DATEOFBIRTH -->\n\n          <!-- START TAGS -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n            <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="item.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n              <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n              <ui-select-choices repeat="tag in tags | filter: $select.search">\n                {{tag}}\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END TAGS -->\n\n          <!-- START DESCRIPTION -->\n          <div class="form-group">\n            <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n            <textarea style="resize: vertical;" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n          </div>\n          <!-- END DESCRIPTION -->\n\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- END PORTLET -->\n  <!-- START PORTLET -->\n  <div class="portlet light">\n    <div class="portlet-title">\n      <div class="caption caption-md">\n        <i class="icon-bar-chart theme-font hide"></i>\n        <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n      </div>\n      <div class="inputs">\n        <div class="portlet-input input-inline input-small ">\n        </div>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div data-ng-repeat="customField in customFields">\n        <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n          <label class="control-label">{{customField.name}}</label>\n          <input type="text" name="{{customField.name}}" placeholder="{{customField.name}}" class="form-control" data-ng-model="item.customFields[customField.id]"/>\n          <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n          <label class="control-label">{{customField.name}}</label>\n          <ui-select data-ng-model="item.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n            <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected.value}}</ui-select-match>\n            <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n              <div ng-bind-html="choice.value | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- END PORTLET -->\n  <div class="row">\n    <div class="col-md-6">\n  <!-- START PORTLET -->\n  <div class="portlet light">\n    <div class="portlet-title">\n      <div class="caption caption-md">\n        <i class="icon-bar-chart theme-font hide"></i>\n        <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span>\n      </div>\n      <div class="inputs">\n        <div class="portlet-input input-inline input-small ">\n        </div>\n      </div>\n    </div>\n    <div class="portlet-body">\n          <!-- START PHONES -->\n          <div class="">\n          <div data-ng-if="item.Phones.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="phone in item.Phones">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="text" class="form-control" ng-model="phone.phone" required>\n                <span class="input-group-btn">\n                <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n          </button>\n        </div>\n        <!-- END PHONES -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n  <div class="col-md-6">\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_EMAILS\' | translate}}</span>\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n        <!-- START EMAILS -->\n          <div class="">\n          <div data-ng-if="item.Emails.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="email in item.Emails">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="email" class="form-control" ng-model="email.email" required>\n                <span class="input-group-btn">\n                <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n          </button>\n        </div>\n        <!-- END EMAILS -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n</div>\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <!-- <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span> -->\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n          <div class="mbottom20">\n          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONFIRM\' | translate}}" data-ng-disabled="!item.fullname || !item.ServiceId"/>\n        </div>\n      </div>\n    </div>\n    <!-- END PORTLET -->\n\n        </form>\n  </div>\n</div>\n'),a.put("app/main/template.queryBuilderView.html",'\n                <div class="alert alert-warning alert-group">\n                         <div class="row">\n                                             <ui-select data-ng-model="group.boolean" theme="bootstrap" class="col-md-2" data-ng-if="group.type == \'CONDITION\'">\n                                                 <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                       <ui-select-choices repeat="bool.name as bool in booleans| filter: $select.search">\n                                                            <div ng-bind-html="bool.name | highlight: $select.search"></div>\n                                                      </ui-select-choices>\n                                          </ui-select>\n                                          <button ng-click="addCondition(group.type)" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_\'+group.type | translate}}</button>\n                                               <button ng-click="addGroup(group.type)" data-ng-if="group.type == \'CONDITION\' && group.main" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n                                          <button ng-click="removeGroup()" data-ng-if="group.type == \'CONDITION\' && !group.main" class="btn btn-danger col-md-2 left-margin" ><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n                              </div>\n                                <div class="group-conditions">\n                                        <!-- <pre>\n                                            {{group | json}}\n                                      </pre> -->\n                                            <div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition" data-ng-init="initChoices(rule,rule.field.subField.api,rule.data,$index,0,\'data2\');initChoices(rule,rule.field.subField.subField.api,rule.data,$index,1,\'data3\',rule.data2);">\n                                                         <div ng-switch="rule.hasOwnProperty(\'group\')">\n                                                                              <div ng-switch-when="true">\n                                                                                           <query-builder group="rule.group" fields="fields" operators="operators" properties="properties"></query-builder>\n                                                                              </div>\n                                                                                <div ng-switch-default="ng-switch-default">\n                                                                                           <div class="row">\n\n                                                                                                                   <ui-select data-ng-model="rule.field" theme="bootstrap" class="col-md-2" data-ng-change="clearData(rule,[\'operator\',\'data\',\'data2\',\'data3\']);">\n                                                                                                                               <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="field in fields | filter: $select.search">\n                                                                                                                                 <div ng-bind-html="field.name | translate | highlight: $select.search"></div>\n                                                                                                                         </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <ui-select data-ng-model="rule.operator" theme="bootstrap" class="col-md-2 left-margin" data-ng-if="group.type == \'CONDITION\' && rule.field">\n                                                                                                                               <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="operator.value as operator in operators[rule.field.operators]| filter: $select.search">\n                                                                                                                                    <div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'input\'">\n                                                                                                                          <input type="text" ng-model="rule.data" class="form-control"/>\n                                                                                                                        </div>\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'number\'">\n                                                                                                                         <input type="number" ng-model="rule.data" class="form-control"/>\n                                                                                                                      </div>\n                                                                                                                        <ui-select ng-if="rule.field && rule.field.propertyField==\'select\'" data-ng-model="rule.data" class="col-md-2 left-margin" theme="bootstrap" data-ng-change="clearData(rule,[\'data2\',\'data3\']);getResults(rule.field.subField.api,rule.data,$index,0)">\n                                                                                                                         <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="property.value as property in properties[rule.field.value]| filter: $select.search">\n                                                                                                                                       <div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'input\'">\n                                                                                                                             <input type="text" ng-model="rule.data2" class="form-control"/>\n                                                                                                                       </div>\n                                                                                                                        <div class="col-md-2 left-margin" ng-if=" rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'number\'">\n                                                                                                                           <input type="number" ng-model="rule.data2" class="form-control"/>\n                                                                                                                     </div>\n                                                                                                                        <ui-select ng-if="rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'select\'" data-ng-model="rule.data2" class="col-md-2 left-margin" theme="bootstrap" data-ng-change="clearData(rule,[\'data3\']);getResults(rule.field.subField.subField.api,rule.data,$index,1,rule.data2)">\n                                                                                                                         <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="property.value as property in (rule.field.subField.api ? choices[$index][0] : properties[rule.field.subField.value])| filter: $select.search">\n                                                                                                                                     <div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'input\'">\n                                                                                                                              <input type="text" ng-model="rule.data3" class="form-control"/>\n                                                                                                                       </div>\n                                                                                                                        <div class="col-md-2 left-margin" ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'number\'">\n                                                                                                                             <input type="number" ng-model="rule.data3" class="form-control"/>\n                                                                                                                     </div>\n                                                                                                                        <ui-select ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'select\'" data-ng-model="rule.data3" class="col-md-2 left-margin" theme="bootstrap">\n                                                                                                                          <ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                               <ui-select-choices repeat="property.value as property in (rule.field.subField.subField.api ? choices[$index][1] : properties[rule.field.subField.subField.value])| filter: $select.search">\n                                                                                                                                   <div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n                                                                                                                              </ui-select-choices>\n                                                                                                                  </ui-select>\n\n                                                                                                                        <button ng-click="removeCondition($index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                                                                                         </div>\n                                                                                </div>\n                                                                </div>\n                                                </div>\n                                </div>\n                </div>\n'),a.put("app/main/template.reportBuilderView.html",'<div class="alert alert-warning alert-group">\n        <div class="form-inline" data-ng-class="{\'has-error\': forms.report.$submitted && !group.rules.length}">\n            <select ng-options="o.name as o.name for o in operators" ng-model="group.operator" class="form-control input-sm"></select>\n            <button style="margin-left: 5px" type="button" ng-click="addCondition()" class="btn btn-sm btn-success"><span class="glyphicon glyphicon-plus-sign"></span> {{\'APPLICATION_ADD_CONDITION\' | translate}}</button>\n            <button style="margin-left: 5px" type="button" ng-click="addGroup()" class="btn btn-sm btn-success"><span class="glyphicon glyphicon-plus-sign"></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n            <button style="margin-left: 5px" type="button" ng-click="removeGroup()" class="btn btn-sm btn-danger"><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n        </div>\n        <div class="group-conditions">\n            <div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition">\n                <div ng-switch="rule.hasOwnProperty(\'group\')">\n                    <div ng-switch-when="true">\n                        <report-builder group="rule.group" fields="fields" forms="forms"></report-builder>\n                    </div>\n                    <div ng-switch-default="ng-switch-default">\n                        <div class="row">\n                          <div class="col-md-2" data-ng-class="{\'has-error\': forms.report.$submitted && !rule.field}">\n                          <ui-select data-ng-model="rule.field" theme="bootstrap" dynamic-name="randomName()" required>\n                            <ui-select-match placeholder="">{{$select.selected.field | translate}}</ui-select-match>\n                            <ui-select-choices repeat="field.field as field in fields | filter: $select.search">\n                              <div ng-bind-html="field.field | highlight: $select.search"></div>\n                            </ui-select-choices>\n                          </ui-select>\n                          <span data-ng-show="forms.report.$submitted && !rule.field" class="help-block help-block-error">\n                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                          </span>\n                        </div>\n                          <ui-select data-ng-model="rule.condition" theme="bootstrap" class="col-md-1" dynamic-name="randomName()">\n                            <ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>\n                            <ui-select-choices repeat="condition.name as condition in conditions | filter: $select.search">\n                              <div ng-bind-html="condition.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                          </ui-select>\n                          <div class="col-md-2 left-margin" data-ng-class="{\'has-error\': forms.report.$submitted && !rule.value}">\n                            <input type="text" ng-model="rule.value" class="form-control" dynamic-name="randomName()" required/>\n                            <span data-ng-show="forms.report.$submitted && !rule.value" class="help-block help-block-error">\n                                                                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                          </div>\n                            <button style="margin-left: 5px" ng-click="removeCondition($index)" class="btn btn-sm btn-danger" type="button"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n'),a.put("app/market/market.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/market">Market Place</a>\n          </li>\n        </ul>\n                    </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n    <!-- Our Integration -->\n    <div class="headline">\n      <h3>Our Integrations</h3>\n    </div>\n    <div class="row thumbnails" data-ng-repeat="group in groupedIntegration">\n      <div class="col-md-3" data-ng-repeat="integration in group">\n        <div class="our-integrations">\n          <h3> {{integration.name}} <small> {{integration.author}}</small></h3>\n          <img data-ng-src="{{integration.logo}}" alt="{{integration.name}}" class="img-responsive"/>\n          <div class="integration-info" data-ng-if="!integration.downloading">\n            <p>\n              {{integration.description}}\n            </p>\n            <div class="pull-right">\n                  <a data-ng-disabled="isProgressing" data-ng-if="!integration.active" data-ng-click="installIntegration(integration)" href="#" class="btn btn-xs green-meadow">Install <i class="fa fa-download"></i></a>\n                                                  <a data-ng-disabled="isProgressing" data-ng-if="integration.active" data-ng-click="uninstallIntegration(integration)" href="#" class="btn btn-xs red-sunglo">Uninstall <i class="fa fa-trash"></i></a>\n                    <a href="https://wiki.xcallymotion.com/" class="btn btn-xs grey-cascade" target="_blank">More <i class="fa fa-link"></i></a>\n            </div>\n          </div>\n                                        <div class="integration-info" data-ng-if="integration.downloading">\n                                           <div>\n                                                 <uib-progressbar class="progress-striped active" value="percentage" type="success"><i style="color:black;">{{status}}</i></uib-progressbar>\n                                           </div>\n          </div>\n        </div>\n      </div>\n                </div>\n    <!--/thumbnails-->\n    <!-- //End Meer Our Team -->\n  </div>\n</div>\n'),
+a.put("app/motionbar/motionbar.chat.html",'<div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper" style="margin-top: -92px;"></div>\n'),a.put("app/salesforce/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_SALESFORCE\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/salesforce/wizard">\n                                                         <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\',\'clientId\',\'clientSecret\',\'securityToken\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\', \'Client Id\', \'Client Secret\', \'Security token\']" field-separator=";" filename="salesforce_accounts.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedSalesforceAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedSalesforceAccounts" class="animate-repeat">\n                                                               <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/account">\n                                                                             {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedSalesforceAccounts.length">\n                                                                <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.account.html",'<div class="row">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="account.clientId" required/>\n                                                           <span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="account.clientSecret" required/>\n                                                               <span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="account.securityToken" required/>\n                                                            <span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECURITY TOKEN -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/salesforce/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n  <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n                        <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                            <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.value | highlight: $select.search"></div>\n                           </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/salesforce/view/view.configurations.html",'<div ui-view class="profile-content">\n        <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/salesforce/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                             <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                        {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/salesforce/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/salesforce.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.salesforce.view.account\')}">\n                                                    <a ng-href="/salesforce/view/{{account.id}}/account">\n                                                 <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.salesforce.view.configurations\') || $state.is(\'main.salesforce.view.configuration\')}">\n                                                  <a ng-href="/salesforce/view/{{account.id}}/configurations">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/salesforce/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/salesforce/accounts/validate/username"/>\n                                                               <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required/>\n                                                                <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START PASSWORD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                           <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="item.clientId" required/>\n                                                              <span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="item.clientSecret" required/>\n                                                          <span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="item.securityToken" required/>\n                                                               <span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECURITY TOKEN -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/license/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div\n class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE CONTENT -->\n                <div class="profile-content">\n                 <div class="row">\n                             <div class="col-md-6">\n                                        <div class="pricing hover-effect">\n                                            <div class="pricing-head" data-ng-switch="license.months">\n                                                    <h3 ng-switch-when="1">{{\'APPLICATION_MONTH_TO_MONTH\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                      <h3 ng-switch-when="12">{{\'APPLICATION_YEARLY\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                     <h3 ng-switch-when="36">{{\'APPLICATION_PERPETUAL\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                  <h3 ng-switch-default>{{\'APPLICATION_UNKNOWN\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                      <h4><i>{{license.expiration ? (license.expiration | date:\'medium\') : \'DEMO\'}}</i>\n                                                 <span data-ng-show="license.expiration">Expiration Date </span>\n                                                       </h4>\n                                         </div>\n                                                <ul class="pricing-content list-unstyled">\n                                                    <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-eye"></i> {{\'APPLICATION_USERS\' | translate}}:\n                                                               </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.users || license.users >= 0) ? license.users : \'unknown\'}}\n                                                               </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-people"></i> {{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}}):\n                                                             </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.agents || license.agents >= 0)  ? license.agents : \'unknown\'}}\n                                                           </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-phone"></i> {{\'APPLICATION_TELEPHONES\' | translate}}:\n                                                                </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.telephones || license.telephones >= 0) ? license.telephones : \'unknown\'}}\n                                                                </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-bubble"></i> {{\'APPLICATION_CHAT\' | translate}}:\n                                                             </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    <span class="label label-sm" data-ng-class="license.chat ? \'label-success\' : \'label-danger\'">{{license.chat ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                             </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-envelope"></i> {{\'APPLICATION_MAIL\' | translate}}:\n                                                           </div>\n                                                                <div class="col-md-3 text-center">\n                                                             <span class="label label-sm" data-ng-class="license.mail ? \'label-success\' : \'label-danger\'">{{license.mail ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                            </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-paper-plane"></i> {{\'APPLICATION_FAX\' | translate}}:\n                                                         </div>\n                                                                <div class="col-md-3 text-center">\n                                                                     <span class="label label-sm" data-ng-class="license.fax ? \'label-success\' : \'label-danger\'">{{license.fax ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                              </div>\n                                                        </li>\n                                         </ul>\n                                         <div class="pricing-footer">\n                                                  <p>\n                                                            {{license.description}}\n                                                      </p>\n                                                  <a href="#" class="btn yellow-crusta">\n                                                        {{\'APPLICATION_PRICES\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n                                                  </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <div class="portlet light bordered">\n                                          <div class="portlet-title">\n                                                   <div class="caption font-green-sharp">\n                                                                <i class="icon-info font-green-sharp"></i>\n                                                            <span class="caption-subject">FORM {{ \'APPLICATION_LICENSE\' | translate }}</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="portlet-body">\n                                                    <form name="form" novalidate data-ng-submit="submitRequest()">\n\n                                                              <!-- START USERS -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (form.users.$touched || form.$submitted) && form.users.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_USERS\' | translate}}</label>\n                                                                    <div class="input-icon">\n                                                                              <i class="icon-eye"></i>\n                                                                              <input type="number" name="users" placeholder="{{\'APPLICATION_USERS\' | translate}}" class="form-control" data-ng-model="item.users" min="0" required>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.users.$touched || forms.$submitted) && form.users.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERS -->\n\n                                                          <!-- START AGENTS -->\n                                                         <div class="form-group" data-ng-class="{\'has-error\': (form.agents.$touched || form.$submitted) && form.agents.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}})</label>\n                                                                     <div class="input-icon">\n                                                                              <i class="icon-people"></i>\n                                                                           <input type="number" name="agents" placeholder="{{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}})" class="form-control" data-ng-model="item.agents" min="0" required>\n                                                                      </div>\n                                                                        <span data-ng-show="(form.users.$touched || forms.$submitted) && form.users.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENTS -->\n\n                                                         <!-- START TELEPHONES -->\n                                                             <div class="form-group" data-ng-class="{\'has-error\': (form.telephones.$touched || form.$submitted) && form.telephones.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_TELEPHONES\' | translate}}</label>\n                                                                       <div class="input-icon">\n                                                                              <i class="icon-phone"></i>\n                                                                            <input type="number" name="telephones" placeholder="{{\'APPLICATION_TELEPHONES\' | translate}}" class="form-control" data-ng-model="item.telephones" min="0" required>\n                                                                        </div>\n                                                                        <span data-ng-show="(form.telephones.$touched || forms.$submitted) && form.telephones.$error.required" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TELEPHONES -->\n\n                                                             <!-- START CHAT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (form.chat.$touched || form.$submitted) && form.chat.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_CHAT\' | translate}}</label>\n                                                                     <div class="input-group input-icon">\n                                                                          <i class="icon-bubble"></i>\n                                                                           <input type="text" placeholder="{{\'APPLICATION_CHAT\' | translate}}" class="form-control" readonly>\n                                                                          <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="chat" data-ng-model="item.chat" required>\n                                                                                </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.chat.$touched || forms.$submitted) && form.chat.$error.required" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CHAT -->\n\n                                                           <!-- START MAIL -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (form.mail.$touched || form.$submitted) && form.mail.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_MAIL\' | translate}}</label>\n                                                                     <div class="input-group input-icon">\n                                                                          <i class="icon-envelope"></i>\n                                                                         <input type="text" placeholder="{{\'APPLICATION_MAIL\' | translate}}" class="form-control" readonly>\n                                                                          <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="mail" data-ng-model="item.mail" required>\n                                                                                </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.mail.$touched || forms.$submitted) && form.mail.$error.required" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END MAIL -->\n\n                                                           <!-- START FAX -->\n                                                            <div class="form-group" data-ng-class="{\'has-error\': (form.fax.$touched || form.$submitted) && form.fax.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_FAX\' | translate}}</label>\n                                                                      <div class="input-group input-icon">\n                                                                          <i class="icon-paper-plane"></i>\n                                                                              <input type="text" placeholder="{{\'APPLICATION_FAX\' | translate}}" class="form-control" readonly>\n                                                                           <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="fax" data-ng-model="item.fax" required>\n                                                                          </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.fax.$touched || forms.$submitted) && form.fax.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END FAX -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_SUBMIT\' | translate}} {{\'APPLICATION_REQUEST\' | translate}}"/>\n                                                  </form>\n                                               </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/smtp/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE CONTENT -->\n                <div class="profile-content">\n                 <!-- START SMTP TAB -->\n                       <form name="form" data-ng-submit="form.$valid && updateItem()" novalidate>\n\n                          <!-- START HOST -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (form.host.$touched || form.$submitted) && form.host.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n                                   <span data-ng-show="(form.host.$touched || form.$submitted) && form.host.$invalid && form.host.$error.required" class="help-block help-block-error">\n                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END HOST -->\n\n                           <!-- START USERNAME -->\n                               <div class="form-group" data-ng-class="{\'has-error\': (form.username.$touched || form.$submitted) && form.username.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required/>\n                                       <span data-ng-show="(form.username.$touched || form.$submitted) && form.username.$invalid && form.username.$error.required" class="help-block help-block-error">\n                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END USERNAME -->\n\n                               <!-- START PASSWORD -->\n                               <div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                   <span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$invalid && form.password.$error.required" class="help-block help-block-error">\n                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END PASSWORD -->\n\n                               <!-- START PORT -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (form.port.$touched || form.$submitted) && form.port.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.port" required/>\n                                 <span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.required" class="help-block help-block-error">\n                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                                       <span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.number" class="help-block help-block-error">\n                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                  </span>\n                               </div>\n                                <!-- END PORT -->\n\n                           <!-- START SSL -->\n                            <div class="form-group row">\n                                  <label class="col-md-3">\n                                              SSL\n                                   </label>\n                                      <label class="col-md-9">\n                                                      <input type="checkbox" data-ng-model="item.ssl">\n                                      </label>\n                              </div>\n                                <!-- END SSL -->\n                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          <input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n                   </form>\n                       <!-- END SMTP TAB -->\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/template/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Templates.checked.length">\n                                               <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEMPLATE\' | translate }} <i class="fa fa-angle-down"></i>\n                                             </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/setting/templates/wizard">\n                                                          <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTemplates([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_templates.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedTemplates" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.templatesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="queueByPage in templatesByPage | filter: $select.search">\n                                                                                                  <div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(template, checked)" checklist-model checklist-value="id"></th>\n                                                 <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="template in displayedTemplates">\n                                                              <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Templates.checked" checklist-value="template.id"></td>\n                                       <td>{{template.name}}</td>\n                                                              <td>{{template.description}}</td>\n                                           <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/setting/templates/view/{{template.id}}/settings">\n                                                                            {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(template.name, template.id)">\n                                                                              {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedTemplates.length">\n                                                         <td colspan="6" class="text-center">\n                                                                  <i>No available templates</i>\n                                                         </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="67" class="text-center">\n                                           <div st-pagination class="pagination" st-items-by-page="conf.templatesByPage.value" st-displayed-pages="7"></div>\n                                           </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/template/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initItem()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n                                        <i data-ng-show="item" class="fa fa-angle-right"></i>\n                         </li>\n                         <li data-ng-show="item">\n                                      <a href="#">{{item.name}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n\n                       <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/template.png" class="img-responsive">\n                           </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{item.name}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.setting.templates.view.settings\')}">\n                                                    <a data-ng-href="/mail/templates/view/{{item.id}}/settings">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/template/view/view.settings.html",'<div class="row">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n\n                          <form name="form" data-ng-submit="form.$valid && updateItem()" class="form-horizontal" novalidate>\n                                    <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': form.name.$invalid && form.$submitted}">\n                                               <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n                                                                </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." data-ng-model="item.name" required>\n                                                                  <span data-ng-show="form.name.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group" data-ng-class="{\'has-error\': form.description.$invalid && form.$submitted}">\n                                                <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n                                                             </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="description" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n                                                                     <span data-ng-show="form.description.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <hr>\n\n                                        <!-- START SUBJECT -->\n                                        <div class="form-group row" data-ng-class="{\'has-error\': form.subject.$invalid && form.$submitted}">\n                                                <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-4">\n                                                                        <label class="control-label pull-right">{{\'APPLICATION_SUBJECT\' | translate}}:</label>\n                                                              </div>\n                                                                <div class="col-md-8">\n                                                                        <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n                                                                 <span data-ng-show="form.subject.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END SUJBECT -->\n\n                                        <!-- START HTML -->\n                                   <div class="form-group row" data-ng-class="{\'has-error\': form.text.$invalid && form.$submitted}">\n\n                                         <div class="col-md-4">\n                                                        <div class="portlet light bordered">\n                                                          <div class="portlet-title">\n                                                                   <div class="caption font-green-sharp">\n                                                                                <i class="icon-pencil"></i>{{\'APPLICATION_VARIABLES\' | translate}}\n                                                                  </div>\n                                                                </div>\n                                                                <div class="portlet-body">\n                                                                    <uib-accordion>\n                                                                   <uib-accordion-group heading="{{group.title | translate}}" data-ng-repeat="group in groups">\n                                                                    {{group.content | translate}}\n                                                                                   <ol>\n                                                                                          <li data-ng-repeat="variable in group.variables">\n                                                                                                      {{variable}}\n                                                                                         </li>\n                                                                                 </ol>\n                                                             </uib-accordion-group>\n                                                              </uib-accordion>\n                                                            </div>\n                                                        </div>\n                                                </div>\n                                                <div class="col-md-8">\n                                                        <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n                                                           <span data-ng-show="form.text.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                               </div>\n                                        </div>\n                                        <!-- END HTML -->\n\n                                   <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/setting/template/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n        <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n\n      <li>\n                           <i class="icon-settings"></i>\n                         <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                    </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="initWizard()">\n      <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }} FORM</a> </span>\n            </div>\n        </div>\n        <div class="portlet-body">\n                    <form name="form" data-ng-submit="form.$valid && createItem()" class="form-horizontal" novalidate>\n                            <!-- START HEAD -->\n                           <div class="form">\n                                    <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': form.name.$invalid && form.$submitted}">\n                                               <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n                                                                </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." data-ng-model="item.name" required>\n                                                                  <span data-ng-show="form.name.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group" data-ng-class="{\'has-error\': form.description.$invalid && form.$submitted}">\n                                                <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n                                                             </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="description" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n                                                                     <span data-ng-show="form.description.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START SUBJECT -->\n                                        <div class="form-group" data-ng-class="{\'has-error\': form.subject.$invalid && form.$submitted}">\n                                            <div class="col-md-12">\n                                                       <div class="row">\n                                                             <div class="col-md-1">\n                                                                        <label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:</label>\n                                                         </div>\n                                                                <div class="col-md-11">\n                                                                       <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n                                                                 <span data-ng-show="form.subject.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END SUJBECT -->\n\n                                        <!-- START HTML -->\n                                   <div class="form-group row" data-ng-class="{\'has-error\': form.text.$invalid && form.$submitted}">\n                                           <div class="col-md-4">\n                                                        <div class="portlet light bordered">\n                                                          <div class="portlet-title">\n                                                                   <div class="caption font-green-sharp">\n                                                                                <i class="icon-pencil"></i>{{\'APPLICATION_VARIABLES\' | translate}}\n                                                                  </div>\n                                                                </div>\n                                                                <div class="portlet-body">\n                                                                    <uib-accordion>\n                                                                   <uib-accordion-group heading="{{group.title | translate}}" data-ng-repeat="group in groups">\n                                                                    {{group.content | translate}}\n                                                                                   <ol>\n                                                                                          <li data-ng-repeat="variable in group.variables">\n                                                                                                      {{variable}}\n                                                                                         </li>\n                                                                                 </ol>\n                                                             </uib-accordion-group>\n                                                              </uib-accordion>\n                                                            </div>\n                                                        </div>\n                                                </div>\n                                                <div class="col-md-8">\n                                                        <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n                                                           <span data-ng-show="form.text.$invalid && form.$submitted" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                               </div>\n                                        </div>\n                                        <!-- END HTML -->\n\n                           </div>\n                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                       </form>\n       </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/setting/update/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-cloud-download font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_UPDATES\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <a class="btn btn-default" href="#" data-ng-click="pull()">\n                                           <i class="icon-cloud-download"></i> {{ \'APPLICATION_UPDATE\' | translate }}\n                                  </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body" data-ng-init="initList()">\n                          <!-- BEGIN TABLE -->\n                                  <table st-table="displayedUpdates" st-safe-src="updates" class="table table-striped table-bordered table-hover">\n                                              <div class="table-responsive">\n                                                  <thead>\n                                                             <tr>\n                                                                  <th colspan="3">\n                                                                              <div class="row">\n                                                                                     <div class="col-md-12">\n                                                                                               <ui-select class="input-xsmall" ng-model="conf.updatesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                                     <ui-select-choices repeat="updateByPage in updatesByPage | filter: $select.search">\n                                                                                                           <div ng-bind-html="updateByPage.name | highlight: $select.search"></div>\n                                                                                                      </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                        </th>\n                                                         </tr>\n                                                         <tr>\n                                                                  <th st-sort="message">{{ \'APPLICATION_MESSAGE\' | translate }}</th>\n                                                                  <th st-sort="version">{{ \'APPLICATION_VERSION\' | translate }}</th>\n                                                                  <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n                                                                       <!-- <th class="small-cells"></th> -->\n                                                          </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="update in displayedUpdates">\n                                                                  <td>\n                                                                          {{update.message}}\n                                                                    </td>\n                                                                 <td>\n                                                                          {{update.version}}\n                                                                    </td>\n                                                                 <td>\n                                                                          {{update.date}}\n                                                                       </td>\n                                             </tr>\n                                                             <tr data-ng-hide="displayedUpdates.length">\n                                                                   <td colspan="9" style="text-align:center;">\n                                                                           <i>{{\'MESSAGE_NO_AVAILABLE_UPDATES\' | translate}}</i>\n                                                                       </td>\n                                                         </tr>\n                                           </tbody>\n                                              <tfoot>\n                                                             <tr>\n                                                                  <td colspan="1">\n                                                                              <div class="input-icon right">\n                                                                                        <i class="fa fa-search"></i>\n                                                                                  <input st-search="message" placeholder="{{ \'APPLICATION_MESSAGE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                            </div>\n                                                                        <td colspan="9"></td>\n                                                   </tr>\n                                                   <tr>\n                                                    <td colspan="10" class="text-center">\n                                                                           <div class="pagination" st-pagination st-items-by-page="conf.updatesByPage.value" st-displayed-pages="7"></div>\n                                                     </td>\n                                               </tr>\n                                               </tfoot>\n                                            </div>\n                                        </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/update/list/list.pull.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("app/sound/list/list.html",'<div class="page-bar">\n  <ul class="page-breadcrumb">\n    <li>\n      <i class="icon-rocket"></i>\n      <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n      <i class="fa fa-angle-right"></i>\n    </li>\n    <li>\n      <i class="icon-music-tone-alt"></i>\n      <a href="#">{{ \'APPLICATION_SOUNDS\' | translate }}</a>\n    </li>\n  </ul>\n  <div class="page-toolbar">\n  </div>\n</div>\n<!-- END PAGE HEADER-->\n<!-- BEGIN PAGE CONTENT-->\n<!-- Audio Portlets -->\n<div class="headline">\n  <h3><i class="icon-music-tone-alt sounds-title-icon"></i> {{ \'APPLICATION_SOUNDS\' | translate }}</h3>\n</div>\n<div class="portlet light bg-inverse">\n  <div class="portlet-title collapsible" ng-click="isCollapsed = !isCollapsed">\n    <div class="caption">\n      <i class="icon-puzzle font-red-flamingo"></i>\n      <span class="caption-subject bold font-red-flamingo uppercase">\n      {{\'APPLICATION_FILE_UPLOAD\' | translate}} </span>\n    </div>\n    <div class="tools">\n      <a href="" ng-class="{\'collapse\': !isCollapsed, \'expand\' : isCollapsed}">\n      </a>\n      <a href="" class="fullscreen">\n      </a>\n    </div>\n  </div>\n  <div class="portlet-body" ng-slide-down="!isCollapsed">\n    <div class="row" nv-file-drop="" uploader="uploader" filters="queueLimit, customFilter">\n     <div class="col-md-4">\n                <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject bold uppercase">{{\'APPLICATION_SELECT_FILES\' | translate}}</span>\n                                      <span class="caption-helper hide"></span>\n                             </div>\n                                <div class="actions">\n                                 </div>\n                        </div>\n                        <div class="portlet-body">\n                                    <div ng-show="uploader.isHTML5">\n                                      <div class="file-drop-zone margin-bottom-20" nv-file-over="" uploader="uploader" over-class="file-drop-zone-over">\n                                                    Base drop zone\n                                        </div>\n                                </div>\n                                <span class="btn default btn-file">\n                                   <span class="fileinput-new">\n                                  {{\'APPLICATION_FILE_UPLOAD\' | translate}}</span>\n                                    <input type="file" nv-file-select="" uploader="uploader" />\n                                   </span>\n                               <span class="btn default btn-file">\n                                   <span class="fileinput-new">\n                                  {{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}</span>\n                              <input type="file" nv-file-select="" uploader="uploader" multiple  /><br/>\n          </span>\n          <p>\n            </br>\n            {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>wav, mp3, gsm, ogg</b>.\n          </p>\n          <p>\n            {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} <b>15 Mb</b>.\n          </p>\n                     </div>\n                </div>\n        </div>\n        <div class="col-md-8">\n                <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp">\n                                        <i class="icon-settings font-green-sharp"></i>\n                                        <span class="caption-subject bold uppercase">{{\'APPLICATION_UPLOAD_QUEUE\' | translate}}</span>\n                                      <span class="caption-helper">{{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}</span>\n                                 </div>\n                                <div class="actions">\n                                 </div>\n                        </div>\n                        <div class="portlet-body">\n                                    <div class="table-scrollable table-scrollable-borderless">\n                                            <table class="table table-hover table-light">\n                                                 <thead>\n                                                       <tr class="uppercase">\n                                                                <th width="50%">{{\'APPLICATION_NAME\' | translate}}</th>\n                                                             <th ng-show="uploader.isHTML5">{{\'APPLICATION_SIZE\' | translate}}</th>\n                                                              <th ng-show="uploader.isHTML5">{{\'APPLICATION_PROGRESS\' | translate}}</th>\n                                                                  <th>{{\'APPLICATION_STATUS\' | translate}}</th>\n                                                               <th>{{\'APPLICATION_MESSAGE\' | translate}}</th>\n                                                              <th>{{\'APPLICATION_ACTIONS\' | translate}}</th>\n                                                      </tr>\n                                                 </thead>\n                                              <tbody>\n                                                       <tr ng-repeat="item in uploader.queue">\n                                                               <td><strong>{{ item.file.name }}</strong></td>\n                                                                <td ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n                                                                 <td ng-show="uploader.isHTML5">\n                                                                       <div class="progress progress-sm" style="margin-bottom: 0;">\n                                                                                  <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n                                                                         </div>\n                                                                </td>\n                                                                 <td class="text-center">\n                                                                      <span ng-show="item.isSuccess" class="text-success"><i class="glyphicon glyphicon-ok"></i></span>\n                                                                     <span ng-show="item.isCancel" class="text-info"><i class="glyphicon glyphicon-ban-circle"></i></span>\n                                                                         <span ng-show="item.isError" class="text-danger"><i class="glyphicon glyphicon-remove"></i></span>\n                                                                            <span ng-show="item.isUploading" class="text-info"><i class="glyphicon glyphicon-upload"></i></span>\n                                                                  </td>\n                                                                 <td class="text-center">\n                                                                      <span ng-show="item.responseMessage" class="text-danger">{{item.responseMessage}}</span>\n                                                              </td>\n                                                                 <td nowrap>\n                                                                           <button type="button" class="btn btn-success btn-xs" ng-click="item.upload()" ng-disabled="item.isReady || item.isUploading || item.isSuccess">\n                                                                       <span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD\' | translate}}\n                                                                       </button>\n                                                                     <button type="button" class="btn btn-warning btn-xs" ng-click="item.cancel()" ng-disabled="!item.isUploading">\n                                                                        <span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL\' | translate}}\n                                                                           </button>\n                                                                     <button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()">\n                                                                         <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n                                                                        </button>\n                                                             </td>\n                                                         </tr>\n                                                 </tbody>\n                                      </table>\n                              </div>\n                                <div>\n                                         <p>{{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:</p>\n                                         <div class="progress progress-sm" style="">\n                                                   <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': uploader.progress + \'%\' }"></div>\n                                     </div>\n                                </div>\n                                <button type="button" class="btn btn-success btn-s" ng-click="uploader.uploadAll()" ng-disabled="!uploader.getNotUploadedItems().length">\n                             <span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD_ALL\' | translate}}\n                                   </button>\n                             <button type="button" class="btn btn-warning btn-s" ng-click="uploader.cancelAll()" ng-disabled="!uploader.isUploading">\n                              <span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL_ALL\' | translate}}\n                               </button>\n                             <button type="button" class="btn btn-danger btn-s" ng-click="uploader.clearQueue()" ng-disabled="!uploader.queue.length">\n                             <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE_ALL\' | translate}}\n                                    </button>\n                     </div>\n                </div>\n        </div>\n    </div>\n  </div>\n</div>\n<div class="row thumbnails" data-ng-init="initList()">\n  <div class="row" ng-show="sounds.length == 0">\n    <div class="col-md-12 page-404">\n      <div class="details">\n        <h3>{{ \'MESSAGE_NO_SOUNDS\' | translate }}</h3>\n        <p>\n          <a href="/">\n          {{ \'MESSAGE_RETURN_HOME\' | translate }} </a>\n          {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n        </p>\n      </div>\n    </div>\n  </div>\n  <div class="audio-portlet-wrapper animate-repeat" ng-repeat="sound in sounds">\n    <div class="audio-portlet">\n      <div class="audio-portlet-title"><a href="#" editable-text="sound.display_name" onbeforesave="updateAudio(sound.id,{display_name : $data})">{{ sound.display_name || "Empty" }}</a></div>\n      <img src="../assets/images/note_placeholder.png" alt="" class="img-responsive"/>\n      <div class="file-info">\n        <div class="audio-tag-wrapper">\n          <audio controls ng-src="{{getSecureSrc(audioSources[sound.id])}}" preload="none">\n            {{ \'MESSAGE_AUDIO_NOT_SUPPORTED\' | translate }}\n          </audio>\n        </div>\n        <p id="description_div">\n          <a href="#" editable-text="sound.description" onbeforesave="updateAudio(sound.id,{description : $data})">{{ sound.description || "Empty" }}</a>\n        </p>\n        <p class="float-right">\n            <button class="btn btn-xs green-meadow" tooltip-html-unsafe="<ul class=\'list-unstyled\'><li><b>Format : </b>{{sound.original_format}}</li><li><b>Duration : </b>{{sound.original_duration | date: \'mm:ss\'}}</li><li><b>Channels : </b>{{sound.original_channelCount}}</li><li><b>Bitrate : </b>{{sound.original_bitRate/1024}} kbs</li><li><b>Sample Rate : </b>{{sound.original_sampleRate/1000}} KHz</li></ul>"><i class="icon-list"></i></button>\n            <a class="btn btn-xs blue-hoki" href="{{getSecureDownloadSrc(audioSources[sound.id])}}" download="{{sound.name+\'.\'+sound.original_format}}" target="_self" tooltip="Download"><i class="icon-cloud-download"></i></a>\n            <button class="btn btn-xs red-sunglo" ng-click="delete(sound.display_name, sound.id)" tooltip="Delete"><i class="icon-close" ></i></button>\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- End Audio Portlets -->\n'),a.put("app/sound/sound.html","<!-- BEGIN PAGE CONTENT-->\n<div ui-view></div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/square/odbc/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_ODBCS\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Odbcs.checked.length">\n                                           <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ODBC\' | translate }} <i class="fa fa-angle-down"></i>\n                                         </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/square/odbcs/wizard">\n                                                               <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getOdbcs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_odbcs.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedOdbcs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                   <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.odbcsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="odbcByPage in odbcsByPage | filter: $select.search">\n                                                                                                       <div ng-bind-html="odbcByPage.name | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(odbc, checked)" checklist-model checklist-value="id"></th>\n                                             <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="odbc in displayedOdbcs" class="animate-repeat">\n                                                               <td style="text-align: center; vertical-align: middle"><input data-ng-hide="odbc.defaultEntry" type="checkbox" checklist-model="Odbcs.checked" checklist-value="odbc.id"></td>\n                                                                <td>{{odbc.name}}</td>\n                                              <td>{{odbc.description}}</td>\n                                         <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/square/odbcs/view/{{odbc.id}}/settings" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n                                                                           {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(odbc.name,odbc.id)" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedOdbcs.length">\n                                                             <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_ODBCS_AVAILABLE\' | translate }}</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.odbcsByPage.value" st-displayed-pages="7"></div>\n                                       </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getOdbc()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                                      <i data-ng-show="odbc" class="fa fa-angle-right"></i>\n                         </li>\n                         <li data-ng-show="odbc">\n                                      <a href="#">{{odbc.name}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/odbc.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{odbc.name}}\n                                 </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.square.odbcs.view.settings\')}">\n                                                 <a data-ng-href="/square/odbcs/view/{{odbc.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateOdbc()" novalidate>\n\n                                                        <!-- START NAME -->\n                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="odbc.name" required/>\n                                                           <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END NAME -->\n\n                                                     <!-- START DSN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="odbc.dsn" required/>\n                                                              <span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DSN -->\n\n                                                    <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="odbc.description"></textarea>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/square/odbc/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n   <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-docs"></i>\n                             <a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                              <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/square/odbcs/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                   </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_ODBC\' | translate }} WIZARD</a> </span>\n               </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.odbc.$valid)">\n                            <form name="forms.odbc" novalidate>\n\n                           <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                                             <!-- START DSN -->\n                          <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n                         <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                          <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="item.dsn" required/>\n                                                      <span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END DSN -->\n\n                                              <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n                                          </div>\n                                                <!-- END DESCRIPTION -->\n                            <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                          </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
+a.put("app/square/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n                   </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Projects.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/square/projects/wizard">\n                                                            <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_projects.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n                                                               <td>{{project.name}}</td>\n                                           <td>{{project.description}}</td>\n                                              <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/square/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                           {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedProjects.length">\n                                                          <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n                                                            </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-superscript"></i>\n                                             <a href="/square/projects">{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n                                          <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-slack"></i>\n                                           <a href="/square/projects">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                      </li>\n          <li>\n                                         <a ng-href="/square/projects/view/{{squareProject.id}}">{{squareProject.name}}</a>\n          </li>\n                           </ul>\n                 </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n              <div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/square/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n       <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-docs"></i>\n                             <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n                                <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/square/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                        </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-docs font-green-sharp"></i>\n                    <span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n            </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n                         <form name="forms.project" novalidate>\n\n                        <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n                              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                                             <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n                                          </div>\n                                                <!-- END DESCRIPTION -->\n                            <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                          </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/sugarcrm/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/sugarcrm/list">{{ \'APPLICATION_SUGARCRM\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_SUGARCRM\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/sugarcrm/wizard">\n                                                           <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\']" field-separator=";" filename="sugarcrm_accounts.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedSugarcrmAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedSugarcrmAccounts" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/sugarcrm/view/{{account.id}}/account">\n                                                                               {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedSugarcrmAccounts.length">\n                                                          <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/view/view.account.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END API KEY -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/sugarcrm/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n    <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n                        <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                             <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/sugarcrm/view/view.configurations.html",'<div ui-view class="profile-content">\n    <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/sugarcrm/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                               <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/sugarcrm/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                  {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/sugarcrm/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/sugarcrm/list">{{ \'APPLICATION_SUGARCRM\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/sugarcrm.png" class="img-responsive">\n                           </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.sugarcrm.view.account\')}">\n                                                      <a ng-href="/sugarcrm/view/{{account.id}}/account">\n                                                   <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.sugarcrm.view.configurations\') || $state.is(\'main.sugarcrm.view.configuration\')}">\n                                                      <a ng-href="/sugarcrm/view/{{account.id}}/configurations">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n    <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/sugarcrm/list">{{ \'APPLICATION_SUGARCRM\' | translate }}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required/>\n                                                               <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/sugarcrm/accounts/validate/remoteUri"/>\n                                                         <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START PASSWORD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                           <span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_TAG\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.tag" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/tag/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-tag"></i>\n                                      <a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TAGS\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Tags.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TAG\' | translate }}\n                                           </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTags([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="tags.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedTags" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.tagsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="tagByPage in tagsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="tagByPage.name | highlight: $select.search"></div>\n                                                                                         </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(tag, checked)" checklist-model checklist-value="id"></th>\n                                              <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="tag in displayedTags" class="animate-repeat">\n                                                         <td style="text-align: center; vertical-align: middle"><input data-ng-hide="tag.defaultEntry" type="checkbox" checklist-model="Tags.checked" checklist-value="tag.id"></td>\n                                                           <td>{{tag.name}}</td>\n                                       <td>{{tag.description}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/tags/view/{{tag.id}}/settings" data-ng-class="{\'disabled\': tag.defaultEntry}">\n                                                                             {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(tag.name,tag.id)" data-ng-class="{\'disabled\': tag.defaultEntry}">\n                                                                                {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedTags.length">\n                                                              <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_TAGS_AVAILABLE\' | translate }}</i>\n                                                                </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.tagsByPage.value" st-displayed-pages="7"></div>\n                                        </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTag()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-tag"></i>\n                                      <a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n                                       <i data-ng-show="tag" class="fa fa-angle-right"></i>\n                          </li>\n                         <li data-ng-show="tag">\n                                       <a href="#">{{tag.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/tag.png" class="img-responsive">\n                                </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{tag.name}}\n                                  </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.tags.view.settings\')}">\n                                                 <a data-ng-href="/tags/view/{{tag.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TAG\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateTag()" novalidate>\n\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="tag.name" required/>\n                                                            <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="tag.description"></textarea>\n                                                   </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/team/list/list.html",'<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-shield"></i>\n                                           <a href="#">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-shield font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_TEAMS\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="teams.checked.length">\n                                           <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEAM\' | translate }} <i class="fa fa-angle-down"></i>\n                                         </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n                                                        </li> -->\n                                                     <li>\n                                                          <a href="/teams/wizard">\n                                                              <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n                                                        </li> -->\n                                             </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTeams([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="teams.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedTeams" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                   <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.teamsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="teamByPage in teamsByPage | filter: $select.search">\n                                                                                                       <div ng-bind-html="teamByPage.name | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="team in displayedTeams" class="animate-repeat">\n                                                               <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="teams.checked" checklist-value="team.id"></td>\n                                       <td>{{team.name}}</td>\n                                                          <td>{{team.description}}</td>\n                                       <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/teams/view/{{team.id}}/settings" data-ng-class="{\'disabled\': team.defaultEntry}">\n                                                                          {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(team.name, team.id)" data-ng-class="{\'disabled\': team.defaultEntry}">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n              <tr data-ng-hide="displayedTeams.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>No teams available</i>\n                                                             </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.teamsByPage.value" st-displayed-pages="7"></div>\n                                       </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.agents.html",'<div class="row" data-ng-init="initAgents()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                    <!-- GENERAL TAB -->\n                          <!-- BEGIN PORTLET-->\n                                 <!-- BEGIN FORM-->\n                                    <form action="index.html" class="form-horizontal form-row-seperated">\n                                         <div class="form-body">\n                                                       <div class="form-group last">\n                                                         <div class="col-md-9" id="multi-select-team">\n                                                         </div>\n                                                        </div>\n                                                </div>\n                                        </form>\n                                       <!-- END FORM-->\n                              <!-- END PORTLET-->\n                   <!-- END GENERAL TAB -->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/team/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-shield"></i>\n                                   <a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n                                     <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{team.name}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img ng-src="assets/images/media/team.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{team.name}}\n                                 </div>\n\n                              </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.teams.view.settings\')}">\n                                                        <a data-ng-href="/teams/view/{{team.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.teams.view.agents\')}">\n                                                  <a data-ng-href="/teams/view/{{team.id}}/agents">\n                                                     <i class="icon-users"></i>\n                                                    {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n                               </div>\n                        </div>\n\n                      <div class="portlet-body">\n                            <!-- PERSONAL INFO TAB -->\n                            <div>\n\n                                       <form name="forms.info" data-ng-submit="updateItem()" novalidate>\n                                             <!-- START NAME -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="team.name" required/>\n                                                   <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END NAME -->\n\n                                           <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="team.description"/>\n                                               </div>\n                                                <!-- END DESCRIPTION -->\n\n                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </form>\n                               </div>\n                                <!-- END PERSONAL INFO TAB -->\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/team/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n    <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                    </li>\n                                 <li>\n                                          <i class="icon-shield"></i>\n                                           <a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                      </li>\n          <li>\n                                         <i class="icon-user-following"></i>\n                                           <a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div id="team" class="row" data-ng-init="getAgents()">\n <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_TEAM\' | translate }} WIZARD</a> </span>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_TEAM_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                          <form name="forms.info" novalidate>\n\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                            </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/telephone/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-phone"></i>\n                                    <a href="/telephones/list">{{ \'APPLICATION_TELEPHONES\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-phone font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_TELEPHONES\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="telephones.checked.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TELEPHONE\' | translate }} <i class="fa fa-angle-down"></i>\n                                            </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/telephones/wizard">\n                                                         <i class="icon-telephone-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                        </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTelephones([\'name\', \'fullname\', \'email\'])" csv-header="[\'Telephonename\', \'Fullname\', \'Email\']" field-separator=";" filename="telephones.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table id="table" st-table="displayedTelephones" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                   <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.usersByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="userByPage in usersByPage | filter: $select.search">\n                                                                                                       <div ng-bind-html="userByPage.name | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(telephone, checked)" checklist-model checklist-value="id"></th>\n                                                <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n                                                <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="accountcode">{{ \'APPLICATION_ACCOUNTCODE\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="telephone in displayedTelephones" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="telephones.checked" checklist-value="telephone.id"></td>\n                                                               <td>{{telephone.fullname}}</td>\n                                             <td>{{telephone.name}}</td>\n                                                             <td>{{telephone.accountcode}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/telephones/view/{{telephone.id}}/account">\n                                                                           {{ \'APPLICATION_PROFILE\' | translate }}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(telephone.fullname, telephone.id)">\n                                                                                {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedTelephones.length">\n                                                                <td colspan="6" style="text-align:center;">\n                                                                   <i>No telephones available</i>\n                                                                </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TELEPHONENAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                       </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="role" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_ROLE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                                </td>\n                                             <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.usersByPage.value" st-displayed-pages="7"></div>\n                                       </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/telephone/view/view.account.html",'<div class="row">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_ACCOUNT\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_VOICE\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-ng-show="Auth.isAdmin() || item.id === getCurrentTelephone().id" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- PERSONAL INFO TAB -->\n                                    <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.info" data-ng-submit="updateItem() && forms.info.$valid" novalidate>\n\n                                    <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                 <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n                                                           <span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END NAME -->\n\n                                   <!-- START USERNAME -->\n                               <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                     <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/agents/validate/name"/>\n                                                                <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                                               <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END USERNAME -->\n\n                                                 <!-- START INTERNAL -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" required ng-remote-validate="/api/agents/validate/internal"/>\n                                                           <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERNAL -->\n\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                    </form>\n                                   </div>\n                                        <!-- END PERSONAL INFO TAB -->\n\n                                      <!-- CHANGE AVATAR TAB -->\n                                    <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.voice" data-ng-submit="updateItem() && forms.voice.$valid" novalidate>\n\n                                                    <!-- START TRANSPORT -->\n                                                      <div class="form-group">\n                                                              <label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n                                                               <ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n                                                          <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n                                                        <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n                                                            {{transport}}\n                                                     </ui-select-choices>\n                                                        </ui-select>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n                                                             </span>\n                                                       </div>\n                                                        <!-- END TRANSPORT -->\n\n                                                      <!-- START CODEC -->\n                                                  <div class="form-group">\n                                                              <label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n                                                          <ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n                                                          <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n                                                            <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n                                                          {{allow}}\n                                                         </ui-select-choices>\n                                                        </ui-select>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CODEC -->\n\n                                                  <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                                </form>\n                                       </div>\n                                        <!-- END CHANGE AVATAR TAB -->\n\n                                      <!-- CHANGE PASSWORD TAB -->\n                                  <div class="tab-pane" id="tab_1_3" data-ng-show="Auth.isAdmin() || item.id === getCurrentTelephone().id">\n                                             <form name="forms.changePwd" data-ng-submit="updateItem() && forms.changePwd.$valid" novalidate>\n                                                      <!-- START CURRENT PWD -->\n                                                    <!-- <div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.currentPwd" required/>\n                                                              <span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div> -->\n                                                    <!-- END CURRENT PWD -->\n                                                      <!-- START NEW PWD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                                <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NEW PWD -->\n                                                  <!-- START RE-NEW PWD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.reNewPwd" nx-equal="item.password" required/>\n                                                            <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RE-NEW PWD -->\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END CHANGE PASSWORD TAB -->\n                              </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/telephone/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-phone"></i>\n                                    <a href="/telephones/list">{{ \'APPLICATION_TELEPHONES\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{item.fullname}}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR TELEPHONEPIC -->\n                         <div class="profile-userpic">\n                                 <!-- <img ng-src="api/telephones/avatar/{{item.userpic ? item.userpic : \'unknown_avatar\'}}" class="img-responsive"> -->\n                             </div>\n                                <!-- END SIDEBAR TELEPHONEPIC -->\n                             <!-- SIDEBAR TELEPHONE TITLE -->\n                              <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{item.fullname}}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{item.role}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR TELEPHONE TITLE -->\n\n                                <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.telephones.view.account\')}">\n                                                    <a data-ng-href="/telephones/view/{{item.id}}/account">\n                                                       <i class="icon-item"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/telephone/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n   <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-phone"></i>\n                            <a href="/agents/list">{{ \'APPLICATION_TELEPHONES\' | translate }}</a>\n                               <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="/agents/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                 </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="initWizard()">\n      <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-phone font-green-sharp"></i>\n                   <span class="caption-subject">{{ \'APPLICATION_TELEPHONE\' | translate }} WIZARD</a> </span>\n                  </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n                     <form name="forms.info" novalidate>\n\n                           <!-- START NAME -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                         <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n                                                   <span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END NAME -->\n\n                           <!-- START USERNAME -->\n                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/agents/validate/name"/>\n                                                        <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                                                       <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END USERNAME -->\n\n\n                             <!-- START PASSWORD -->\n                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                           <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END PASSWORD -->\n\n                       <!-- START RE PASSWORD -->\n                            <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n                             <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                             <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n                                <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                               <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END RE PASSWORD -->\n\n                                              <!-- START INTERNAL -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                      <div class="input-group">\n                                                     <input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/agents/validate/internal"/>\n                                                   <span class="input-group-addon">\n                                                              <input type="checkbox" data-ng-model="item.internalEnabled">\n                                                  </span>\n                                                       </div>\n                                                        <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                                       <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERNAL -->\n\n                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                            </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n                                  <form name="forms.voice" novalidate>\n\n                                                <!-- START TRANSPORT -->\n                                              <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n                                                       <ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n                                                  <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n                                                <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n                                                    {{transport}}\n                                             </ui-select-choices>\n                                                </ui-select>\n                                                        <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n                                                     </span>\n                                               </div>\n                                                <!-- END TRANSPORT -->\n\n                                              <!-- START CODEC -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n                                                  <ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n                                                  <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n                                                    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n                                                  {{allow}}\n                                                 </ui-select-choices>\n                                                </ui-select>\n                                                        <span class="help-block">\n                                                             {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n                                                 </span>\n                                               </div>\n                                                <!-- END CODEC -->\n\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              <input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n                                   </form>\n                               </wz-step>\n\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/trigger/list/list.html",'<div class="row">\n     <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bulb"></i>\n                                             <a href="#">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n                                    </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-bulb font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="Triggers.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRIGGER\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/triggers/wizard">\n                                                           <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTriggers([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="triggers.csv">\n                                     <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedTriggers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                        <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.TriggersByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="TriggerByPage in TriggersByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="TriggerByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                              <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Trigger, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n                                                             <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="Trigger in displayedTriggers">\n                                                                <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Triggers.checked" checklist-value="Trigger.id"></td>\n                                         <td>{{Trigger.name}}</td>\n                                                               <td>{{Trigger.description}}</td>\n                                                              <td>{{Trigger.channel | capitalize}}</td>\n                                                             <td>\n                                                                  <input\n                                                                                data-ng-change="updateItem(Trigger.id, Trigger.status)",\n                                                                  bs-switch\n                                                             ng-model="Trigger.status"\n                                                             type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ onText }}"\n                                                                 switch-off-text="{{ offText }}"\n                                                               switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                          </td>\n                                       <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/triggers/view/{{Trigger.id}}/settings">\n                                                                              {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Trigger.name, Trigger.id)">\n                                                                                {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedTriggers.length">\n                                                          <td colspan="6" class="text-center">\n                                                                  <i>No available triggers</i>\n                                                          </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                                </td>\n                                                         <td/>\n                                                         <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.TriggersByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/trigger/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView();getProperties();">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bulb"></i>\n                                     <a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n                                       <i class="fa fa-angle-right" data-ng-show="trigger"></i>\n                              </li>\n                         <li data-ng-show="trigger">\n                                   <a href="#">{{ trigger.description || trigger.name }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/trigger.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ trigger.name }}\n                                    </div>\n                                        <div class="profile-usertitle-job">\n                                           {{ trigger.description }}\n                                     </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.triggers.view.settings\')}">\n                                                     <a href="/triggers/view/{{trigger.id}}/settings">\n                                                     <i class="icon-bulb"></i>\n                                                     {{ \'APPLICATION_SETTINGS\' | translate }} </a>\n                                               </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <!-- <pre>\n                                    {{conditionsData.query | json}}\n                               </pre>\n                                <pre>\n                                 {{actionsData.query | json}}\n                          </pre> -->\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateTrigger()" novalidate>\n                                                       <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trigger.name" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trigger.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- <pre>\n                                            {{conditionsFilter | json}}\n                                   </pre> -->\n                                    <div class="tab-pane" id="tab_1_2">\n                                           <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n                                                                </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators" properties="properties[trigger.channel]"></query-builder>\n                                                    </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n                                                           </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[trigger.channel]"></query-builder>\n                                                  </div>\n                                                </div>\n\n                                              <input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateTrigger()"/>\n                                  </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/trigger/wizard/wizard.html",'\n<div class="row" data-ng-init="getProperties()">\n <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bulb"></i>\n                                     <a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-bulb font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                                              <form name="forms.general" novalidate>\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name"/ required>\n                                                           <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                            </form>\n                                       </wz-step>\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}">\n                                            <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n                                                           </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <div class="form-group"  >\n                                                                    <label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n                                                                            <ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                          <ui-select-choices repeat="channel in $triggers.channels | filter: $select.search">\n                                                                                   <div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n                                                                           </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                        </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n                                                                </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators" properties="properties[item.channel]"></query-builder>\n                                                       </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n                                                           </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n                                                     </div>\n                                                </div>\n                                                <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                    </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-link"></i>\n                                     <a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-link font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TRUNKS\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="trunks.checked.length">\n                                          <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRUNK\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/trunks/wizard">\n                                                             <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTrunks([\'name\', \'host\', \'context\', \'description\'])" csv-header="[\'Name\', \'Host\', \'Context\', \'Description\']" field-separator=";" filename="trunks.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedTrunks" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                  <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.trunksByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="trunkByPage in trunksByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="trunkByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(trunk, checked)" checklist-model checklist-value="id"></th>\n                                                    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="host">{{ \'APPLICATION_HOST\' | translate }}</th>\n                                                            <th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n                                              <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="trunk in displayedTrunks" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="trunks.checked" checklist-value="trunk.id"></td>\n                                                               <td>{{trunk.name}}</td>\n                <td>{{trunk.host}}</td>\n                                                              <td>{{trunk.context}}</td>\n                                          <td>{{trunk.description}}</td>\n                                        <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/trunks/view/{{trunk.id}}/settings">\n                                                                          {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(trunk.name,trunk.id)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedTrunks.length">\n                                                            <td colspan="6" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="host" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_HOST\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                                </td>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.trunksByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrunk()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-link"></i>\n                                     <a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n                                   <i data-ng-show="trunk" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="trunk">\n                                     <a href="#">{{trunk.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/trunk.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{trunk.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.trunks.view.settings\')}">\n                                                       <a data-ng-href="/trunks/view/{{trunk.id}}/settings">\n                                                 <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.settings.html",'<div class="row">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                               </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();">\n                              <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateTrunk()" novalidate>\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trunk.name" required/>\n                                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n\n                                                      <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="trunk.host" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START SECRET -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NEW_SECRET\' | translate}}</label>\n                                                               <input type="password" name="secret" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.secret">\n                                                            <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECRET -->\n\n                                                 <!-- START CONFIRM SECRET -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rsecret.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}</label>\n                                                           <input type="password" name="rsecret" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.rsecret" nx-equal="trunk.secret"/>\n                                                             <span data-ng-show="forms.general.$submitted && (forms.general.rsecret.$invalid || forms.general.rsecret.$invalid)" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONFIRM SECRET -->\n\n                                                 <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="trunk.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START CALLERID -->\n                                                       <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_CALLERID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="callerid" placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid" required/>\n                                                              <span data-ng-show="(forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div> -->\n                                                    <!-- END CALLERID -->\n\n                                                       <!-- START TYPE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <ui-select data-ng-model="trunk.type" name="type" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'user\',\'peer\',\'friend\'] | filter: $select.search">\n                                                                          <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TYPE -->\n\n                                                   <!-- START DTMFMODE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_DTMFMODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="trunk.dtmfmode" name="dtmfmode" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="item in [\'rfc2833\', \'info\', \'shortinfo\', \'inband\',\'auto\'] | filter: $select.search">\n                                                                             <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DTMFMODE -->\n\n                                               </div>\n                                                <div class="col-md-6">\n\n                                                      <!-- START DEFAULT USER -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT_USER\' | translate}}" class="form-control" data-ng-model="trunk.defaultuser" required/>\n                                                            <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DEFAULT USER -->\n\n                                                   <!-- START NAT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_NAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select multiple data-ng-model="trunk.nat" name="nat" theme="bootstrap" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAT -->\n\n                                                    <!-- START QUALIFY -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_QUALIFY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="trunk.qualify" name="qualify" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUALIFY -->\n\n                                                        <!-- START ALLOW -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_ALLOW_CODEC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select multiple data-ng-model="trunk.allow" name="allow" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'g723\',\'gsm\',\'ulaw\',\'alaw\',\'g726\',\'g722\',\'g729\',\'ilbc\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ALLOW -->\n\n                                                  <!-- START INSECURE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_INSECURE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select multiple data-ng-model="trunk.insecure" name="insecure" theme="bootstrap" required>\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'port\',\'invite\',\'very\'] | filter: $select.search">\n                                                                          <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INSECURE -->\n\n                                                       <!-- START CALLLIMIT -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_CALLLIMIT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <input type="number" min="0" name="call-limit" placeholder="{{\'APPLICATION_CALLLIMIT\' | translate}}" class="form-control" data-ng-model="trunk[\'call-limit\']"/>\n                                                           <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLLIMIT -->\n\n                                              </div>\n                                        </div>\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trunk.description"></textarea>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- ADVANCED TAB -->\n                                 <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateTrunk()" novalidate>\n                                                       <div class="row">\n                                                             <div class="col-md-6">\n                                                        <!-- START LIMITONPEERS -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_LIMITONPEERS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <ui-select data-ng-model="trunk.limitonpeers" name="limitonpeers" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_LIMITONPEERS\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LIMITONPEERS -->\n\n                                                   <!-- START REGISTRY -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n                                                         <input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="trunk.registry"/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n                                                              </span>\n                                                       </div>\n                                                        <!-- END REGISTRY -->\n\n                                                       <!-- START DIRECTMEDIA -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_DIRECTMEDIA\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="trunk.directmedia" name="directmedia" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\', \'no\', \'nonat\', \'update\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DIRECTMEDIA -->\n\n                                                    <!-- START CALLCOUNTER -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CALLCOUNTER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="trunk.callcounter" name="callcounter" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLCOUNTER -->\n\n                                                    <!-- START FROMDOMAIN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromdomain.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_FROMDOMAIN\' | translate}}</label>\n                                                               <input type="text" name="fromdomain" placeholder="{{\'APPLICATION_FROMDOMAIN\' | translate}}" class="form-control" data-ng-model="trunk.fromdomain" />\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromdomain.$invalid)" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FROMDOMAIN -->\n\n                                                     <!-- START FROMUSER -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromuser.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_FROMUSER\' | translate}}</label>\n                                                         <input type="text" name="fromuser" placeholder="{{\'APPLICATION_FROMUSER\' | translate}}" class="form-control" data-ng-model="trunk.fromuser" />\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromuser.$invalid)" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FROMUSER -->\n\n                                               </div>\n                                                <div class="col-md-6">\n\n                                                      <!-- START OUTBOUNDPROXY -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.outboundproxy.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}</label>\n                                                            <input type="text" name="outboundproxy" placeholder="{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}" class="form-control" data-ng-model="trunk.outboundproxy" />\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="forms.advanced.$submitted && (forms.advanced.outboundproxy.$invalid)" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END OUTBOUNDPROXY -->\n\n                                                  <!-- START USEREQPHONE -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_USEREQPHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="trunk.usereqphone" name="usereqphone" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USEREQPHONE -->\n\n                                                    <!-- START TRUSTRPID -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_TRUSTRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select data-ng-model="trunk.trustrpid" name="trustrpid" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TRUSTRPID -->\n\n                                                      <!-- START SENDRPID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_SENDRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="trunk.sendrpid" name="sendrpid" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SENDRPID -->\n\n                                                       <!-- START ENCRYPTION -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ENCRYPTION\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                           <ui-select data-ng-model="trunk.encryption" name="encryption" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ENCRYPTION -->\n\n                                                     <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PORT\' | translate}}</label>\n                                                             <input type="number" min="0" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="trunk.port"/>\n                                                         <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START TRANSPORT -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_TRANSPORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select multiple data-ng-model="trunk.transport" name="transport" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'udp\',\'wss\',\'ws\',\'tcp\',\'tls\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TRANSPORT -->\n\n                                              </div>\n                                        </div>\n                                        <!-- START OTHER FIELDS-->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_OTHER_FIELDS\' | translate}}</label>\n                                             <textarea type="text" name="otherFields" placeholder="{{\'APPLICATION_OTHER_FIELDS\' | translate}}" class="form-control" data-ng-model="trunk.otherFields"></textarea>\n                                                <span class="help-block">\n                                                     {{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n                                          </span>\n                                       </div>\n                                        <!-- END OTHER FIELDS -->\n\n                                                   <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
@@ -52,6 +53,6 @@ a.put("app/voice/route/internal/view/view.applicationSettings.html",'\n<div clas
 a.put("app/voice/route/internal/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/voice/routes/internal/view/{{route.id}}/application" data-toggle="dropdown">\n                                                      <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n                                              <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n                                                           <th></th>\n                                               </tr>\n                                         </thead>\n                                      <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n                                         <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n                                                             <td>{{application.app}}</td>\n                                                          <td>{{application.appdata}}</td>\n                                                              <td>{{application.interval}}</td>\n                                           <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n                                                                            {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="routeApplications.length">\n                                                          <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n                                                                </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/voice/route/internal/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-reload"></i>\n                                   <a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                 <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/internalroute.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.settings\')}">\n                                                        <a data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.applications\') || $state.is(\'main.voice.routes.internal.view.application\') || $state.is(\'main.voice.routes.internal.view.applications.settings\')}">\n                                                      <a data-ng-href="/voice/routes/internal/view/{{route.id}}/applications">\n                                                      <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_ACTIONS\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts()">\n                               <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                         <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/voice/route/internal/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n  <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-reload"></i>\n                           <a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                         <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n     <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-reload font-green-sharp"></i>\n                          <span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n           </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n                           <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n                                             <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n                                         </div>\n                                                <!-- END DESCRIPTION -->\n\n\n                                          <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                        </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/outbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-out"></i>\n                                 <a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-users font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="routes.checked.length">\n                                          <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n                                                </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n                                                        </li> -->\n                                                     <li>\n                                                          <a href="/voice/routes/outbound/wizard">\n                                                              <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                                 <!-- <li>\n                                                             <a href="#">\n                                                          <i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n                                                        </li> -->\n                                             </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_outobund.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                  <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_PATTERN\' | translate }}</th>\n                                                           <th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n                                              <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n                                                            <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n                                                               <td>{{route.exten}}</td>\n                                                              <td>{{route.context}}</td>\n                                          <td>{{route.description}}</td>\n                                        <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n                                                                           {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.name,route.id)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedRoutes.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="id" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATTERN\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n                                                          <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                                </td>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n                                              </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-out"></i>\n                                 <a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                 <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/outboundroute.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.settings\')}">\n                                                        <a data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.routes\') || $state.is(\'main.voice.routes.outbound.view.route\') || $state.is(\'main.voice.routes.outbound.view.routes.settings\')}">\n                                                        <a data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes">\n                                                    <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_ACTIONS\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.route.html",'<div class="row" data-ng-init="initApplication();getIntervals();">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD</a> </span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="profile-usertitle-name">\n                                  {{(main.app | capitalize) || \'Application\'}}\n                                </div>\n                                <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                        <form name="forms.info" novalidate>\n                                                           <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                          <!-- START APP -->\n                                                            <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n                                                                      <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n                                                                            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="app.value as app in applications | filter: $select.search">\n                                                                                        <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APP -->\n                                                              <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                            <!-- START TRUNK -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n                                                                                      <div ng-bind-html="trunk.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                                       </span>\n                                                                       <span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TRUNK -->\n\n                                                          <!-- START CONTEXT -->\n                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                      <ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n                                                                                       <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                           </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                                       </span>\n                                                                       <span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CONTEXT -->\n\n                                                                <!-- START CALLERID -->\n                                                               <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n                                                                    <label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n                                                                       <input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n                                                                        <span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CALLERID -->\n\n                                                                       <!-- START CUTDIGITS -->\n                                                              <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n                                                                        <input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n                                                                     <span class="help-block">\n                                                                             {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                                       </span>\n                                                               </div>\n                                                                <!-- END CUTDIGITS -->\n                                                        </div>\n                                                        <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                              <!-- START CUSTOMAPP -->\n                                                              <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n                                                                  <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n                                                                   <span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CUSTOMAPP -->\n\n                                                              <!-- START APPDATA -->\n                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                                      <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                                      <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n                                                                 <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APPDATA -->\n                                                  </div>\n                                                        <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                                       </wz-step>\n                                                            <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                                       <form name="forms.interval" novalidate>\n                                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                                  <!-- START INTERVAL_TYPE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                                       {{$translate.instant(intType.name)}}\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVAL_TYPE -->\n                                                            <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                                <!-- START TIME -->\n                                                                           <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                                   <div class="input-group input-large">\n                                                                                         <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                          <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                                <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                               <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                                 </div>\n                                                                                </div>\n                                                                                <!-- END TIME -->\n\n                                                                           <!-- START WEEKDAY -->\n                                                                                <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                                        <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                                 <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                                     <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END WEEKDAY -->\n\n                                                                                <!-- START MONTHDAY -->\n                                                                               <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                                       <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                                 <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                                     <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTHDAY -->\n\n                                                                               <!-- START MONTH -->\n                                                                          <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                                  <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                                   <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                                       <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTH -->\n                                            </div>\n\n                                              <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                        <!-- START INTERVALS -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                  <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                            {{$translate.instant(interval.name)}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVALS -->\n\n                                              </div>\n\n                                              <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/voice/route/outbound/view/view.routeSettings.html",'\n<div class="row" data-ng-init="initApplication();getApplication();getIntervals();">\n <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="updateItem()">\n                                     <div class="profile-usertitle-name">\n                                          {{(main.app | capitalize) || \'Application\'}}\n                                        </div>\n                <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                             <form name="forms.info" novalidate>\n                                                   <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                    <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n\n                                                        <!-- START TRUNK -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n                                                                              <div ng-bind-html="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TRUNK -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n                                                                               <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START CALLERID -->\n                                                       <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n                                                            <label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n                                                               <input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n                                                                <span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLERID -->\n\n                                                               <!-- START CUTDIGITS -->\n                                                      <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n                                                                <input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                       </div>\n                                                        <!-- END CUTDIGITS -->\n                                                </div>\n                                                <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                      <!-- START CUSTOMAPP -->\n                                                      <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n                                                          <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n                                                           <span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CUSTOMAPP -->\n\n                                                      <!-- START APPDATA -->\n                                                        <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                              <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                              <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n                                                         <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APPDATA -->\n                                          </div>\n                                                <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                  </form>\n                                       </wz-step>\n                                            <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                       <form name="forms.interval" novalidate>\n                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                          <!-- START INTERVAL_TYPE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                   <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                          <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                       {{$translate.instant(intType.name)}}\n                                                          </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVAL_TYPE -->\n                                            <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                          <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                               <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                 </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                 <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                     <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                 <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                     <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                   <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{$translate.instant(month.name)}}\n                                                                                    </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                       <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{$translate.instant(month.name)}}\n                                                                                    </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                                <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                                    {{$translate.instant(interval.name)}}\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n                                                        <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.routes.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/voice/routes/outbound/view/{{route.id}}/route" data-toggle="dropdown">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                                <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n                                                            <th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n                                              <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n                                                           <th></th>\n                                               </tr>\n                                         </thead>\n                                      <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n                                         <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n                                                             <td>{{application.app}}</td>\n                                                          <td>{{application.context}}</td>\n                                                              <td>{{application.appdata}}</td>\n                                                              <td>{{application.interval}}</td>\n                                           <td>\n                                                                    <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes/settings/{{application.id}}">\n                                                                         {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'Route\',application.id)">\n                                                                                {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="routeApplications.length">\n                                                          <td colspan="5" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/voice/route/outbound/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts()">\n                               <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                             <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/voice/route/outbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n  <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-call-out"></i>\n                         <a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                         <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n     <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-call-out font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n           </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n                           <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n                                             <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n                                         </div>\n                                                <!-- END DESCRIPTION -->\n\n\n                                          <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                        </form>\n                     </wz-step>\n\n                                <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/voicemail/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope-letter"></i>\n                                  <a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-envelope-letter font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="voicemails.checked.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_VOICEMAIL\' | translate }} <i class="fa fa-angle-down"></i>\n                                            </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/voice/voicemails/wizard">\n                                                           <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoicemails([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'Mailbox\', \'Fullname\', \'Email\']" field-separator=";" filename="voicemails.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedVoicemails" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.voicemailsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="voicemailByPage in voicemailsByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="voicemailByPage.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(voicemail, checked)" checklist-model checklist-value="uniqueid"></th>\n                                                  <th st-sort="mailbox">{{ \'APPLICATION_MAILBOX\' | translate }}</th>\n                                                  <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n                                                <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                          <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="voicemail in displayedVoicemails" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="voicemails.checked" checklist-value="voicemail.uniqueid"></td>\n                                                         <td>{{voicemail.mailbox}}</td>\n                <td>{{voicemail.fullname}}</td>\n                                             <td>{{voicemail.email}}</td>\n                                          <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(voicemail.mailbox,voicemail.uniqueid)">\n                                                                            {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedVoicemails.length">\n                                                                <td colspan="5" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}</i>\n                                                          </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="mailbox" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_MAILBOX\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.voicemailsByPage.value" st-displayed-pages="7"></div>\n                                          </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/voicemail/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVoicemail()">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope-letter"></i>\n                                  <a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n                                     <i data-ng-show="voicemail" class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="voicemail">\n                                 <a href="#">{{voicemail.mailbox}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/voicemail.png" class="img-responsive">\n                          </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{voicemail.mailbox}}\n                                 </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.settings\')}">\n                                                     <a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n            <li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.messages\')}">\n              <a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/messages">\n              <i class="icon-speech"></i>\n              {{ \'APPLICATION_MESSAGES\' | translate}} </a>\n            </li>\n                                     </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/voice/voicemail/view/view.messages.html",'<div class="row" data-ng-init="getMessages()">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_MESSAGES\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                    <th>{{ \'APPLICATION_CALLERID\' | translate }}</th>\n                                                   <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n                                                           <th>{{ \'APPLICATION_DURATION\' | translate }}</th>\n                                                           <th>{{ \'APPLICATION_RECORDING\' | translate }}</th>\n                                                          <th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody data-ng-model="voicemailMessages">\n                                       <tr data-ng-repeat="message in voicemailMessages">\n                                                                <td>{{message.callerid}}</td>\n                                                         <td>{{returnMessageDate(message.stamp)}}</td>\n                                                         <td>{{returnDuration(message.duration) | date: \'mm:ss\'}}</td>\n                                                               <td>\n                                                                  <audio controls ng-src="{{encodeRecording(message.recording)}}" preload="none">\n                                   Your browser does not support the audio tag.\n                                </audio>\n                                                    </td>\n                                       <td>\n                                                                    <a class="btn default btn-xs green-stripe" href="/api/voice/voicemails/messages/{{message.id}}/download" target="_self">\n                                                                              {{ \'APPLICATION_DOWNLOAD\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'message\',message.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="voicemailMessages.length">\n                                                          <td colspan="5" style="text-align:center;">\n                                                                   <i>No messages available</i>\n                                                          </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/voice/voicemail/view/view.settings.html",'<div class="row" data-ng-init="getContexts()">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                           </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <!-- <li>\n                                             <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n                                    </li> -->\n                             </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceVoicemail()" novalidate>\n\n                                                      <!-- START MAILBOX -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="voicemail.mailbox" required/>\n                                                             <span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAILBOX -->\n\n                                                        <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}</label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.password" />\n                                                          <span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START CONFIRM PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}</label>\n                                                         <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.rpassword" nx-equal="voicemail.password"/>\n                                                               <span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONFIRM PASSWORD -->\n\n                                                       <!-- START FULLNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="voicemail.fullname" required/>\n                                                          <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FULLNAME -->\n\n                                                       <!-- START EMAIL -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="voicemail.email" required/>\n                                                          <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EMAIL -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="voicemail.context" name="context" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- ADVANCED TAB -->\n                                 <!-- <div class="tab-pane" id="tab_1_2">\n                                              <form name="forms.advanced" data-ng-submit="updateVoiceVoicemail()" novalidate>\n\n\n                                                   <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div> -->\n                                    <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/voice/voicemail/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n    <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-envelope-letter"></i>\n                          <a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n                             <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n          <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-envelope-letter font-green-sharp"></i>\n                         <span class="caption-subject">{{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD</a> </span>\n                  </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                          <form name="forms.general" novalidate>\n\n                        <!-- START MAILBOX -->\n                        <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n                            <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n                              <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.mailbox" required/>\n                                                  <span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                               </span>\n                             </div>\n                        <!-- END MAILBOX -->\n\n                                          <!-- START PASSWORD -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n                                                 <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                   <span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END PASSWORD -->\n\n                                               <!-- START CONFIRM PASSWORD -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n                                                        <span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CONFIRM PASSWORD -->\n\n            <!-- START FULLNAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n              <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END FULLNAME -->\n\n            <!-- START EMAIL -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n              <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EMAIL -->\n\n            <!-- START CONTEXT -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.context" name="context" theme="bootstrap" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                  <div ng-bind-html="context.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="help-block">\n                {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n              </span>\n              <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END CONTEXT -->\n\n                                          <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                    </form>\n                               </wz-step>\n\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/yourdashboard/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_DASHBOARD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.dashboard" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.dashboard.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/yourdashboard/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-screen-desktop"></i>\n                                   <a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="dashboards.checked.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_DASHBOARD\' | translate }}\n                                             </button>\n                                     </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getDashboards([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="dashboards.csv">\n                                 <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedDashboards" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="4">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.dashboardsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="dashboardByPage in dashboardsByPage | filter: $select.search">\n                                                                                                     <div ng-bind-html="dashboardByPage.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(dashboard, checked)" checklist-model checklist-value="id"></th>\n                                                <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="dashboard in displayedDashboards" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input data-ng-hide="dashboard.defaultEntry" type="checkbox" checklist-model="dashboards.checked" checklist-value="dashboard.id"></td>\n                                                         <td>{{dashboard.name}}</td>\n                                         <td>{{dashboard.description}}</td>\n                                            <td>\n                                                                    <a class="btn default btn-xs green-stripe" data-ng-href="/yourdashboards/show/{{dashboard.id}}">\n                                                                              {{ \'APPLICATION_VIEW\' | translate}}\n                                         </a>\n                                          <a class="btn default btn-xs blue-stripe" data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n                                                                              {{ \'APPLICATION_SETTINGS\' | translate}}\n                                             </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(dashboard.name,dashboard.id)" data-ng-class="{\'disabled\': dashboard.defaultEntry}">\n                                                                              {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedDashboards.length">\n                                                                <td colspan="4" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_DASHBOARDS_AVAILABLE\' | translate }}</i>\n                                                          </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                 <td/>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="4" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.dashboardsByPage.value" st-displayed-pages="7"></div>\n                                          </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/show/show.html",'<div class="col-md-12" ng-init="getDashboard()">\n  <adf-dashboard\n          name="{{dashboard.name}}"\n          collapsible="{{dashboard.collapsible}}"\n          maximizable="{{dashboard.maximizable}}"\n          enableconfirmdelete="{{dashboard.enableconfirmdelete}}"\n          structure="{{dashboard.structure}}"\n          editable="{{dashboard.editable}}"\n          adf-model="dashboard.model"/>\n</div>\n'),a.put("app/yourdashboard/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getDashboard()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-screen-desktop"></i>\n                                   <a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n                                  <i data-ng-show="dashboard" class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="dashboard">\n                                 <a href="#">{{dashboard.name}}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/dashboard.png" class="img-responsive">\n                          </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{dashboard.name}}\n                                    </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.yourdashboards.view.settings\')}">\n                                                       <a data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/view/view.settings.html",'<div class="row">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                           </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateDashboard()" novalidate>\n\n                                                   <!-- START VISIBLE TO ADMIN -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_VISIBLE_TO_ADMIN\' | translate}}</label><br>\n                                                             <input\n                                                                        bs-switch\n                                                                     ng-model="dashboard.admin"\n                                                                    type="checkbox"\n                                                                       switch-active="{{ radioSwitch.isActive }}"\n                                                                    switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                        switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                        switch-on-color="{{ radioSwitch.onColor }}"\n                                                                   switch-off-color="{{ radioSwitch.offColor }}"\n                                                                 switch-animate="{{ radioSwitch.animate }}"\n                                                                    switch-size="{{ radioSwitch.size }}"\n                                                                  switch-label="{{ radioSwitch.label }}"\n                                                                        switch-icon="{{ radioSwitch.icon }}"\n                                                                  switch-radio-off="{{ radioSwitch.radioOff }}"\n                                                                 switch-label-width="{{ radioSwitch.labelWidth }}"\n                                                                     switch-handle-width="{{ radioSwitch.handleWidth }}">\n                                                  </div>\n                                                        <!-- END VISIBLE TO ADMIN -->\n\n                                                       <!-- START VISIBLE TO USER -->\n                                                        <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_VISIBLE_TO_USER\' | translate}}</label><br>\n                                                              <input\n                                                                        bs-switch\n                                                                     ng-model="dashboard.user"\n                                                                     type="checkbox"\n                                                                       switch-active="{{ radioSwitch.isActive }}"\n                                                                    switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                        switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                        switch-on-color="{{ radioSwitch.onColor }}"\n                                                                   switch-off-color="{{ radioSwitch.offColor }}"\n                                                                 switch-animate="{{ radioSwitch.animate }}"\n                                                                    switch-size="{{ radioSwitch.size }}"\n                                                                  switch-label="{{ radioSwitch.label }}"\n                                                                        switch-icon="{{ radioSwitch.icon }}"\n                                                                  switch-radio-off="{{ radioSwitch.radioOff }}"\n                                                                 switch-label-width="{{ radioSwitch.labelWidth }}"\n                                                                     switch-handle-width="{{ radioSwitch.handleWidth }}">\n                                                  </div>\n                                                        <!-- END VISIBLE TO USER -->\n\n                                                        <!-- START VISIBLE TO AGENT -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_VISIBLE_TO_AGENT\' | translate}}</label><br>\n                                                             <input\n                                                                        bs-switch\n                                                                     ng-model="dashboard.agent"\n                                                                    type="checkbox"\n                                                                       switch-active="{{ radioSwitch.isActive }}"\n                                                                    switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                        switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                        switch-on-color="{{ radioSwitch.onColor }}"\n                                                                   switch-off-color="{{ radioSwitch.offColor }}"\n                                                                 switch-animate="{{ radioSwitch.animate }}"\n                                                                    switch-size="{{ radioSwitch.size }}"\n                                                                  switch-label="{{ radioSwitch.label }}"\n                                                                        switch-icon="{{ radioSwitch.icon }}"\n                                                                  switch-radio-off="{{ radioSwitch.radioOff }}"\n                                                                 switch-label-width="{{ radioSwitch.labelWidth }}"\n                                                                     switch-handle-width="{{ radioSwitch.handleWidth }}">\n                                                  </div>\n                                                        <!-- END VISIBLE TO AGENT -->\n\n                                                       <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="dashboard.description"></textarea>\n                                                     </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_ZENDESK\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n                                              </a>\n                                          <ul class="dropdown-menu pull-right">\n                                                 <li>\n                                                          <a href="/zendesk/wizard">\n                                                            <i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n                                                     </li>\n                                         </ul>\n                                 </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'token\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Token\', \'Password\']" field-separator=";" filename="zendesk_accounts.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedZdAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedZdAccounts" class="animate-repeat">\n                                                               <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/account">\n                                                                                {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedZdAccounts.length">\n                                                                <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/zendesk/view/view.account.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                                <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n                                                                               <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'password\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                            <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'token\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n                                                              <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n                                                  <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n     <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n                          <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                             <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.configurations.html",'<div ui-view class="profile-content">\n   <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/zendesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                                <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                   {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/zendesk.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.zendesk.view.account\')}">\n                                                       <a ng-href="/zendesk/view/{{account.id}}/account">\n                                                    <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.zendesk.view.configurations\') || $state.is(\'main.zendesk.view.configuration\')}">\n                                                        <a ng-href="/zendesk/view/{{account.id}}/configurations">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n     <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/zendesk/accounts/validate/username"/>\n                                                              <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/zendesk/accounts/validate/remoteUri"/>\n                                                          <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n                                                                               <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'password\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                               <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'token\'" lazy-render duration="1">\n                                                                <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n                                                         <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n                                                  <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer" data-ng-init="initFooter()">\n  <div class="page-footer-inner">\n     {{info.name}} v. {{info.version}} | 2015-2016 &copy; Powered by Xenialab\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n    <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n      <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n        <img ng-src="assets/images/flags/{{ language }}.png">\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n            <img alt="" src="assets/images/flags/it.png"> Italian </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n            <img alt="" src="assets/images/flags/en_EN.png"> English </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n        <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n        <span class="username username-hide-on-mobile">\n          {{ getCurrentUser().fullname }} </span>\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/users/view/\'+getCurrentUser().id+\'/account\' : \'/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n            <i class="icon-key"></i>Change password</a>\n          </li>\n          <!-- <li>\n            <a href="#">\n            <i class="icon-calendar"></i> My Calendar </a>\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-envelope-open"></i> My Inbox <span class="badge badge-danger">\n            3 </span>\n            </a>\n          </li> -->\n          <!-- <li>\n            <a href="#/todo">\n            <i class="icon-rocket"></i> My Tasks <span class="badge badge-success">\n            7 </span>\n            </a>\n          </li> -->\n          <!-- <li class="divider">\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-lock"></i> Lock Screen </a>\n          </li> -->\n          <li data-ng-click="logout()">\n            <a href="#">\n            <i class="icon-logout"></i> Log Out </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n        <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n            <div class="portlet-title">\n                   <div class="caption">\n                         <i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n                    </div>\n                </div>\n                <div class="portlet-body">\n                    <ul>\n                          <li data-ng-repeat="item in items">\n                                    {{item.fullname}}\n                            </li>\n\n        <li data-ng-repeat="item in selected.items">\n                                  {{item.fullname}}\n                            </li>\n                 </ul>\n         </div>\n        </div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n                                                       <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n                                                       <span class="input-group-btn">\n                                                        <i class="icon-magnifier"></i>\n                                                        </span>\n                                               </div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." data-ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersLowerThan:2 | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <i class="icon icon-close" data-ng-show="chatRoom.status === \'close\'"></i>\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." data-ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersGreaterThan:2 | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_MESSAGE\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repeat" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'close\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'close\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul data-ng-click="mainTab.active=true" class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}" data-ng-init="getSidebarIntegrations()">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n        <i class="icon-close"></i>\n        </a>\n        <!-- <div class="input-group">\n          <input type="text" class="form-control" placeholder="Search...">\n          <span class="input-group-btn">\n          <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n          </span>\n        </div> -->\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-show="isAssociated(\'dashboard\')" data-ng-class="{active: $state.includes(\'main.dashboard\')}">\n      <a href="/dashboard/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/yourdashboards/show/{{dashboard.id}}" >\n          <i class="icon-screen-tablet"></i>\n          <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_STAFF\' | translate}}  </span> </h3>\n    </li>\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START USERS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.users\')}">\n      <a href="/users/list">\n        <i class="icon-eye"></i>\n        <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.users\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END USERS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.agents\')}">\n      <a href="/agents/list">\n        <i class="icon-people"></i>\n        <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.agents\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.telephones\')}">\n      <a href="/telephones/list">\n        <i class="icon-phone"></i>\n        <span class="title" >{{\'APPLICATION_TELEPHONES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.telephones\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START TEAMS CASE -->\n    <li data-ng-show="isAssociated(\'teams\')" data-ng-class="{active: $state.includes(\'main.teams\')}">\n      <a href="/teams/list">\n        <i class="icon-shield"></i>\n        <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.teams\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END TEAMS CASE -->\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START CONTACT_MANAGER SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}  </span> </h3>\n    </li>\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CONTACTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')}">\n      <a href="/contactmanager/contacts/list">\n        <i class=" fa fa-users"></i>\n        <span class="title" >{{\'APPLICATION_CONTACTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.contacts\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END CONTACTS CASE -->\n    <!-- START COMPANIES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.companies\')}">\n      <a href="/contactmanager/companies/list">\n        <i class="icon-briefcase"></i>\n        <span class="title" >{{\'APPLICATION_COMPANIES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.companies\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END COMPANIES CASE -->\n    <!-- START CUSTOMFIELDS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.customfields\')}">\n      <a href="/contactmanager/customfields/list">\n        <i class="icon-pencil"></i>\n        <span class="title" >{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.customfields\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END CUSTOMFIELDS CASE -->\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CHANNELS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CHANNELS\' | translate}}  </span> </h3>\n    </li>\n\n    <!-- START icon-link CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.voice\') }">\n      <a href="javascript:;">\n        <i class="icon-earphones-alt"></i>\n        <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.voice.queues\')}">\n          <a href="/voice/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n          </a>\n        </li>\n        <li>\n          <a href="javascript:;">\n          <i class="icon-directions"></i>\n          <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice.routes\') }"></span>\n          <ul class="sub-menu">\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.inbound\')}">\n              <a href="/voice/routes/inbound/list">\n              <i class="icon-call-in"></i>\n              <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.outbound\')}">\n              <a href="/voice/routes/outbound/list">\n              <i class="icon-call-out"></i>\n              <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.internal\')}">\n              <a href="/voice/routes/internal/list">\n              <i class="icon-reload"></i>\n              <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n              </a>\n            </li>\n          </ul>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.contexts\')}">\n          <a href="/voice/contexts/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.voicemails\')}">\n          <a href="/voice/voicemails/list">\n          <i class="icon-envelope-letter"></i>\n          <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.mohs\')}">\n          <a href="/voice/mohs/list">\n          <i class="icon-music-tone"></i>\n          <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.voice.realtime\')}">\n          <a href="/voice/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END icon-link CASE -->\n\n    <!-- START CHAT CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.chat\')}" data-ng-if="license.chat">\n      <a href="javascript:;">\n        <i class="icon-bubble"></i>\n        <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n        <span class="arrow" data-ng-class="{open: $state.includes(\'main.chat\')}"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.chat.websites\')}">\n          <a href="/chat/websites/list">\n          <i class="icon-globe"></i>\n          <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.chat.queues\')}">\n          <a href="/chat/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.chat.realtime\')}">\n          <a href="/chat/realtime/view/agent/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END CHAT CASE -->\n\n    <!-- START MAIL CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.mail\')}" data-ng-if="license.mail">\n      <a href="javascript:;">\n        <i class="icon-envelope"></i>\n        <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.mail\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.accounts\') || $state.includes(\'main.mail.account\')}">\n          <a href="/mail/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.queues\') || $state.includes(\'main.mail.queue\')}">\n          <a href="/mail/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.mail.inbox\')}">\n          <a href="/mail/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.realtime\')}">\n          <a href="/mail/realtime/view/agents/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END MAIL CASE -->\n\n    <!-- START FAX CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.fax\')}" data-ng-if="license.fax">\n    <!-- <li data-ng-show="license.fax" data-ng-class="{active: $state.includes(\'main.fax\')}"> -->\n      <a href="javascript:;">\n        <i class="icon-paper-plane"></i>\n        <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.fax\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.accounts\')}">\n          <a href="/fax/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.queues\')}">\n          <a href="/fax/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.fax.inbox\')}">\n          <a href="/fax/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.statistics\')}">\n          <a href="/fax/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{ \'APPLICATION_STATISTICS\' | translate }} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.automations\')}">\n          <a href="/fax/automations/list">\n          <i class="icon-settings"></i>\n          <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.timeline\')}">\n          <a href="/fax/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END FAX CASE -->\n    <!-- END CHANNELS SEPARATOR -->\n\n    <!-- START ANALYTICS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_ANALYTICS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.reports\')}">\n      <a href="/analytics/reports/list">\n        <i class="icon-book-open"></i>\n        <span class="title" >{{\'APPLICATION_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.extracted\')}">\n      <a href="/analytics/extracted/list">\n        <i class="fa fa-file-pdf-o"></i>\n        <span class="title" >{{\'APPLICATION_EXTRACTED_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.extracted\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.metrics\')}">\n      <a href="/analytics/metrics/list">\n        <i class="icon-calculator"></i>\n        <span class="title" >{{\'APPLICATION_METRICS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.metrics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END ANALYTICS SEPARATOR -->\n\n    <!-- START INTEGRATIONS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span translate> APPLICATION_INTEGRATIONS </span> </h3>\n    </li>\n\n    <!-- START INTEGRATION CASE -->\n    <li data-ng-repeat="integration in integrations" data-ng-if="integration.active" data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.{{integration.state}}\')}">\n      <a href="/{{integration.state}}/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{integration.name}}</span>\n        <span data-ng-show="$state.includes(\'main.{{integration.state}}\')" class="selected"></span>\n      </a>\n    </li>\n\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n      <a href="/market">\n        <i class="icon-handbag"></i>\n        <span class="title" translate>Market Place</span>\n        <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.integrations.list\')}">\n      <a href="/integrations/list">\n        <i class="icon-game-controller"></i>\n        <span class="title" translate>Test Your App</span>\n        <span data-ng-show="$state.includes(\'main.integrations.list\')" class="selected"></span>\n      </a>\n    </li> -->\n    <!-- END INTEGRATIONS SEPARATOR -->\n\n    <!-- START TOOLS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_TOOLS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.triggers\')}">\n      <a href="/triggers/list">\n      <i class="icon-bulb"></i>\n      <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.automations\')}">\n      <a href="/automations/list">\n      <i class="icon-settings"></i>\n      <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.trunks\')}">\n      <a href="/trunks/list">\n      <i class="icon-link"></i>\n      <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.intervals\')}">\n      <a href="/intervals/list">\n      <i class="icon-clock"></i>\n      <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.variables\')}">\n      <a href="/variables/list">\n      <i class="fa fa-eye"></i>\n      <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tags\')}">\n      <a href="/tags/list">\n      <i class="icon-tag"></i>\n      <span class="title" >{{\'APPLICATION_TAGS\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START CALLYSQUARE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n      <a href="javascript:;">\n        <i class="fa fa-superscript"></i>\n        <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n          <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n          <a href="/square/odbcs/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END CALLYSQUARE CASE -->\n\n    <!-- START JSCRIPTY CASE -->\n\n    <li  data-ng-class="{active: $state.includes(\'main.jscripty\')}">\n      <a href="javascript:;">\n        <i class="fa fa-edit"></i>\n        <span class="title" >{{\'APPLICATION_JSCRIPTY\' | translate}}    <span  class="badge">Beta</span>\n        </span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.jscripty.projects\')}">\n          <a href="/jscripty/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.yourdashboards.list\') || $state.includes(\'main.yourdashboards.settings\')}">\n      <a href="/yourdashboards/list">\n      <i class="icon-grid"></i>\n      <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END JSCRIPTY CASE -->\n\n    <!-- START AUTODIALER CASE -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-call-out"></i>\n        <span class="title">AutoDialer</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n      </ul>\n    </li> -->\n    <!-- END AUTODIALER CASE -->\n\n    <!-- START ANALYTICS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'analytics\')"> -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="#/analytics">\n        <i class="icon-graph"></i>\n        <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n      </a>\n    </li> -->\n    <!-- END ANALYTICS CASE -->\n\n    <!-- END TOOLS SEPARATOR -->\n\n    <!-- START AUDIO SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_AUDIO\' | translate}}  </span> </h3>\n    </li>\n    <!-- END AUDIO SEPARATOR -->\n\n    <!-- START AUDIO CASE -->\n    <!-- <li data-ng-show="isAssociated(\'audio\')" data-ng-class="{active: $state.is(\'main.sound\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.sounds\')}">\n      <a href="/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AUDIO CASE -->\n\n\n    <!-- START SETTINGS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_SETTINGS\' | translate}}  </span> </h3>\n    </li>\n    <!-- END SETTINGS SEPARATOR -->\n\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting\')}">\n      <a href="javascript:;">\n        <i class="icon-settings"></i>\n        <span class="title" >{{\'APPLICATION_SETTINGS\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <!-- START UPDATES CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.updates\')}">\n          <a href="/setting/updates/list">\n            <i class="icon-cloud-download"></i>\n            <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n            <!-- <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span> -->\n          </a>\n        </li>\n        <!-- END UPDATES CASE -->\n\n        <!-- START SMTP CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.smtp\')}">\n          <a href="/setting/smtp/view">\n            <i class="icon-envelope"></i>\n            <span class="title">SMTP</span>\n            <!-- <span data-ng-show="$state.includes(\'main.smtp\')" class="selected"></span> -->\n          </a>\n        </li>\n        <!-- END SMTP CASE -->\n\n        <!-- START TEMPLATE CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.templates\')}">\n          <a href="/setting/templates/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- END TEMPLATE CASE -->\n\n        <!-- START LICENSE CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.license\')}">\n          <a href="/setting/license/view">\n          <i class="icon-info"></i>\n          <span class="title"> {{\'APPLICATION_LICENSE\' | translate}} </span>\n          </a>\n        </li>\n        <!-- END LICENSE CASE -->\n       </ul>\n    </li>\n\n  </ul>\n  <!-- END SIDEBAR MENU -->\n</div>\n');
+a.put("app/zendesk/view/view.account.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                                <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n                                                                               <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'password\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                            <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'token\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n                                                              <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n                                                  <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n     <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getCustomVariables();getFields();">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.type as item in fieldType | filter: $select.search">\n                            <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                    <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.variableName" data-ng-change="updateField(subjectItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices group-by="groupVariableByGroup" repeat="variable.name as variable in variables | filter: $select.search">\n                            <div ng-bind-html="variable.title | highlight: $select.search"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'customVariable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in customVariables | filter: $select.search">\n                        <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.type as item in descFieldType | filter: $select.search">\n                        <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\'">\n                                                                        <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\'">\n                                                                        <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.type as item in fieldType | filter: $select.search">\n                            <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\' && descriptionItem.keyType==\'string\'">\n                                                                 <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\' && descriptionItem.keyType==\'variable\'">\n                       <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.variableName" data-ng-change="updateField(descriptionItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices group-by="groupVariableByGroup" repeat="variable.name as variable in variables | filter: $select.search">\n                            <div ng-bind-html="variable.title | highlight: $select.search"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\' && descriptionItem.keyType==\'customVariable\'">\n                   <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in customVariables | filter: $select.search">\n                        <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n                          <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                             <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices repeat="item.type as item in fieldType | filter: $select.search">\n                                    <div ng-bind-html="item.title | highlight: $select.search | ucfirst"></div>\n                                 </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.variableName" data-ng-change="updateField(fieldItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices group-by="groupVariableByGroup" repeat="variable.name as variable in variables | filter: $select.search">\n                            <div ng-bind-html="variable.title | highlight: $select.search"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'customVariable\'">\n                        <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in customVariables | filter: $select.search">\n                        <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.configurations.html",'<div ui-view class="profile-content">\n   <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/zendesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                                <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                   {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/zendesk.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.zendesk.view.account\')}">\n                                                       <a ng-href="/zendesk/view/{{account.id}}/account">\n                                                    <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.zendesk.view.configurations\') || $state.is(\'main.zendesk.view.configuration\')}">\n                                                        <a ng-href="/zendesk/view/{{account.id}}/configurations">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n     <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/zendesk/accounts/validate/username"/>\n                                                              <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/zendesk/accounts/validate/remoteUri"/>\n                                                          <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n                                                                               <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'password\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                               <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'token\'" lazy-render duration="1">\n                                                                <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n                                                         <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n                                                  <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer" data-ng-init="initFooter()">\n  <div class="page-footer-inner">\n     {{info.name}} v. {{info.version}} | 2015-2016 &copy; Powered by Xenialab\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n    <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler" data-ng-click="toogleSidebar()">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n      <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n        <img ng-src="assets/images/flags/{{ language }}.png">\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n            <img alt="" src="assets/images/flags/it.png"> Italian </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n            <img alt="" src="assets/images/flags/en_EN.png"> English </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n        <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n        <span class="username username-hide-on-mobile">\n          {{ getCurrentUser().fullname }} </span>\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/users/view/\'+getCurrentUser().id+\'/account\' : \'/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n            <i class="icon-key"></i>Change password</a>\n          </li>\n          <!-- <li>\n            <a href="#">\n            <i class="icon-calendar"></i> My Calendar </a>\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-envelope-open"></i> My Inbox <span class="badge badge-danger">\n            3 </span>\n            </a>\n          </li> -->\n          <!-- <li>\n            <a href="#/todo">\n            <i class="icon-rocket"></i> My Tasks <span class="badge badge-success">\n            7 </span>\n            </a>\n          </li> -->\n          <!-- <li class="divider">\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-lock"></i> Lock Screen </a>\n          </li> -->\n          <li data-ng-click="logout()">\n            <a href="#">\n            <i class="icon-logout"></i> Log Out </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n        <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n            <div class="portlet-title">\n                   <div class="caption">\n                         <i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n                    </div>\n                </div>\n                <div class="portlet-body">\n                    <ul>\n                          <li data-ng-repeat="item in items">\n                                    {{item.fullname}}\n                            </li>\n\n        <li data-ng-repeat="item in selected.items">\n                                  {{item.fullname}}\n                            </li>\n                 </ul>\n         </div>\n        </div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n                                                       <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n                                                       <span class="input-group-btn">\n                                                        <i class="icon-magnifier"></i>\n                                                        </span>\n                                               </div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." data-ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersLowerThan:2 | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <i class="icon icon-close" data-ng-show="chatRoom.status === \'close\'"></i>\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." data-ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersGreaterThan:2 | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_MESSAGE\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repeat" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'close\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'close\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul data-ng-click="mainTab.active=true" class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}" data-ng-init="getSidebarIntegrations()">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n        <i class="icon-close"></i>\n        </a>\n        <!-- <div class="input-group">\n          <input type="text" class="form-control" placeholder="Search...">\n          <span class="input-group-btn">\n          <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n          </span>\n        </div> -->\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-show="isAssociated(\'dashboard\')" data-ng-class="{active: $state.includes(\'main.dashboard\')}">\n      <a href="/dashboard/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/yourdashboards/show/{{dashboard.id}}" >\n          <i class="icon-screen-tablet"></i>\n          <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_STAFF\' | translate}}  </span> </h3>\n    </li>\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START USERS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.users\')}">\n      <a href="/users/list">\n        <i class="icon-eye"></i>\n        <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.users\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END USERS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.agents\')}">\n      <a href="/agents/list">\n        <i class="icon-people"></i>\n        <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.agents\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.telephones\')}">\n      <a href="/telephones/list">\n        <i class="icon-phone"></i>\n        <span class="title" >{{\'APPLICATION_TELEPHONES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.telephones\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START TEAMS CASE -->\n    <li data-ng-show="isAssociated(\'teams\')" data-ng-class="{active: $state.includes(\'main.teams\')}">\n      <a href="/teams/list">\n        <i class="icon-shield"></i>\n        <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.teams\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END TEAMS CASE -->\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START CONTACT_MANAGER SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}  </span> </h3>\n    </li>\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CONTACTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')}">\n      <a href="/contactmanager/contacts/list">\n        <i class=" fa fa-users"></i>\n        <span class="title" >{{\'APPLICATION_CONTACTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.contacts\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END CONTACTS CASE -->\n    <!-- START COMPANIES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.companies\')}">\n      <a href="/contactmanager/companies/list">\n        <i class="icon-briefcase"></i>\n        <span class="title" >{{\'APPLICATION_COMPANIES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.companies\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END COMPANIES CASE -->\n    <!-- START SERVICES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.services\')}">\n      <a href="/contactmanager/services/list">\n        <i class="fa fa-tty"></i>\n        <span class="title" >{{\'APPLICATION_SERVICES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.services\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END SERVICES CASE -->\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CHANNELS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CHANNELS\' | translate}}  </span> </h3>\n    </li>\n\n    <!-- START icon-link CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.voice\') }">\n      <a href="javascript:;">\n        <i class="icon-earphones-alt"></i>\n        <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.voice.queues\')}">\n          <a href="/voice/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n          </a>\n        </li>\n        <li>\n          <a href="javascript:;">\n          <i class="icon-directions"></i>\n          <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice.routes\') }"></span>\n          <ul class="sub-menu">\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.inbound\')}">\n              <a href="/voice/routes/inbound/list">\n              <i class="icon-call-in"></i>\n              <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.outbound\')}">\n              <a href="/voice/routes/outbound/list">\n              <i class="icon-call-out"></i>\n              <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.internal\')}">\n              <a href="/voice/routes/internal/list">\n              <i class="icon-reload"></i>\n              <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n              </a>\n            </li>\n          </ul>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.contexts\')}">\n          <a href="/voice/contexts/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.voicemails\')}">\n          <a href="/voice/voicemails/list">\n          <i class="icon-envelope-letter"></i>\n          <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.mohs\')}">\n          <a href="/voice/mohs/list">\n          <i class="icon-music-tone"></i>\n          <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.voice.realtime\')}">\n          <a href="/voice/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END icon-link CASE -->\n\n    <!-- START CHAT CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.chat\')}" data-ng-if="license.chat">\n      <a href="javascript:;">\n        <i class="icon-bubble"></i>\n        <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n        <span class="arrow" data-ng-class="{open: $state.includes(\'main.chat\')}"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.chat.websites\')}">\n          <a href="/chat/websites/list">\n          <i class="icon-globe"></i>\n          <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.chat.queues\')}">\n          <a href="/chat/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.chat.realtime\')}">\n          <a href="/chat/realtime/view/agent/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END CHAT CASE -->\n\n    <!-- START MAIL CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.mail\')}" data-ng-if="license.mail">\n      <a href="javascript:;">\n        <i class="icon-envelope"></i>\n        <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.mail\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.accounts\') || $state.includes(\'main.mail.account\')}">\n          <a href="/mail/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.queues\') || $state.includes(\'main.mail.queue\')}">\n          <a href="/mail/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.mail.inbox\')}">\n          <a href="/mail/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.realtime\')}">\n          <a href="/mail/realtime/view/agents/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END MAIL CASE -->\n\n    <!-- START FAX CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.fax\')}" data-ng-if="license.fax">\n    <!-- <li data-ng-show="license.fax" data-ng-class="{active: $state.includes(\'main.fax\')}"> -->\n      <a href="javascript:;">\n        <i class="icon-paper-plane"></i>\n        <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.fax\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.accounts\')}">\n          <a href="/fax/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.queues\')}">\n          <a href="/fax/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.fax.inbox\')}">\n          <a href="/fax/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.statistics\')}">\n          <a href="/fax/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{ \'APPLICATION_STATISTICS\' | translate }} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.automations\')}">\n          <a href="/fax/automations/list">\n          <i class="icon-settings"></i>\n          <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.timeline\')}">\n          <a href="/fax/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END FAX CASE -->\n    <!-- END CHANNELS SEPARATOR -->\n\n    <!-- START ANALYTICS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_ANALYTICS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.reports\')}">\n      <a href="/analytics/reports/list">\n        <i class="icon-book-open"></i>\n        <span class="title" >{{\'APPLICATION_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.extracted\')}">\n      <a href="/analytics/extracted/list">\n        <i class="fa fa-file-pdf-o"></i>\n        <span class="title" >{{\'APPLICATION_EXTRACTED_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.extracted\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.metrics\')}">\n      <a href="/analytics/metrics/list">\n        <i class="icon-calculator"></i>\n        <span class="title" >{{\'APPLICATION_METRICS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.metrics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END ANALYTICS SEPARATOR -->\n\n    <!-- START INTEGRATIONS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span translate> APPLICATION_INTEGRATIONS </span> </h3>\n    </li>\n\n    <!-- START INTEGRATION CASE -->\n    <li data-ng-repeat="integration in integrations" data-ng-if="integration.active" data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.{{integration.state}}\')}">\n      <a href="/{{integration.state}}/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{integration.name}}</span>\n        <span data-ng-show="$state.includes(\'main.{{integration.state}}\')" class="selected"></span>\n      </a>\n    </li>\n\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n      <a href="/market">\n        <i class="icon-handbag"></i>\n        <span class="title" translate>Market Place</span>\n        <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.integrations.list\')}">\n      <a href="/integrations/list">\n        <i class="icon-game-controller"></i>\n        <span class="title" translate>Test Your App</span>\n        <span data-ng-show="$state.includes(\'main.integrations.list\')" class="selected"></span>\n      </a>\n    </li> -->\n    <!-- END INTEGRATIONS SEPARATOR -->\n\n    <!-- START TOOLS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_TOOLS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.triggers\')}">\n      <a href="/triggers/list">\n      <i class="icon-bulb"></i>\n      <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.automations\')}">\n      <a href="/automations/list">\n      <i class="icon-settings"></i>\n      <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.trunks\')}">\n      <a href="/trunks/list">\n      <i class="icon-link"></i>\n      <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.intervals\')}">\n      <a href="/intervals/list">\n      <i class="icon-clock"></i>\n      <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.variables\')}">\n      <a href="/variables/list">\n      <i class="fa fa-eye"></i>\n      <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tags\')}">\n      <a href="/tags/list">\n      <i class="icon-tag"></i>\n      <span class="title" >{{\'APPLICATION_TAGS\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START CALLYSQUARE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n      <a href="javascript:;">\n        <i class="fa fa-superscript"></i>\n        <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n          <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n          <a href="/square/odbcs/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END CALLYSQUARE CASE -->\n\n    <!-- START JSCRIPTY CASE -->\n\n    <li  data-ng-class="{active: $state.includes(\'main.jscripty\')}">\n      <a href="javascript:;">\n        <i class="fa fa-edit"></i>\n        <span class="title" >{{\'APPLICATION_JSCRIPTY\' | translate}}    <span  class="badge">Beta</span>\n        </span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.jscripty.projects\')}">\n          <a href="/jscripty/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.yourdashboards.list\') || $state.includes(\'main.yourdashboards.settings\')}">\n      <a href="/yourdashboards/list">\n      <i class="icon-grid"></i>\n      <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END JSCRIPTY CASE -->\n\n    <!-- START AUTODIALER CASE -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-call-out"></i>\n        <span class="title">AutoDialer</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n      </ul>\n    </li> -->\n    <!-- END AUTODIALER CASE -->\n\n    <!-- START ANALYTICS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'analytics\')"> -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="#/analytics">\n        <i class="icon-graph"></i>\n        <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n      </a>\n    </li> -->\n    <!-- END ANALYTICS CASE -->\n\n    <!-- END TOOLS SEPARATOR -->\n\n    <!-- START AUDIO SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_AUDIO\' | translate}}  </span> </h3>\n    </li>\n    <!-- END AUDIO SEPARATOR -->\n\n    <!-- START AUDIO CASE -->\n    <!-- <li data-ng-show="isAssociated(\'audio\')" data-ng-class="{active: $state.is(\'main.sound\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.sounds\')}">\n      <a href="/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AUDIO CASE -->\n\n\n    <!-- START SETTINGS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_SETTINGS\' | translate}}  </span> </h3>\n    </li>\n    <!-- END SETTINGS SEPARATOR -->\n\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting\')}">\n      <a href="javascript:;">\n        <i class="icon-settings"></i>\n        <span class="title" >{{\'APPLICATION_SETTINGS\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <!-- START UPDATES CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.updates\')}">\n          <a href="/setting/updates/list">\n            <i class="icon-cloud-download"></i>\n            <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n            <!-- <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span> -->\n          </a>\n        </li>\n        <!-- END UPDATES CASE -->\n\n        <!-- START SMTP CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.smtp\')}">\n          <a href="/setting/smtp/view">\n            <i class="icon-envelope"></i>\n            <span class="title">SMTP</span>\n            <!-- <span data-ng-show="$state.includes(\'main.smtp\')" class="selected"></span> -->\n          </a>\n        </li>\n        <!-- END SMTP CASE -->\n\n        <!-- START TEMPLATE CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.templates\')}">\n          <a href="/setting/templates/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- END TEMPLATE CASE -->\n\n        <!-- START LICENSE CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.license\')}">\n          <a href="/setting/license/view">\n          <i class="icon-info"></i>\n          <span class="title"> {{\'APPLICATION_LICENSE\' | translate}} </span>\n          </a>\n        </li>\n        <!-- END LICENSE CASE -->\n       </ul>\n    </li>\n\n  </ul>\n  <!-- END SIDEBAR MENU -->\n</div>\n');
 }]);
\ No newline at end of file
index 4cf667c..7cca249 100644 (file)
@@ -3,7 +3,7 @@ New Profile Page
 ***/
 .profile-sidebar {
   float: left;
-  width: 300px;
+  width: 200px;
   margin-right: 20px;
 }
 
@@ -44,17 +44,21 @@ New Profile Page
 
 .profile-usertitle-name {
   color: #5a7391;
-  font-size: 20px;
+  font-size: 15px;
   font-weight: 600;
   margin-bottom: 7px;
+  overflow: hidden;
+  text-overflow: ellipsis;
 }
 
 .profile-usertitle-job {
   text-transform: uppercase;
   color: #5b9bd1;
-  font-size: 13px;
+  font-size: 11px;
   font-weight: 800;
   margin-bottom: 7px;
+  overflow: hidden;
+  text-overflow: ellipsis;
 }
 
 .profile-userbuttons {
@@ -91,7 +95,7 @@ New Profile Page
 
 .profile-usermenu ul li a {
   color: #93a3b5;
-  font-size: 16px;
+  font-size: 14px;
   font-weight: 400;
 }
 
diff --git a/public/assets/images/media/service.png b/public/assets/images/media/service.png
new file mode 100644 (file)
index 0000000..694c2ea
Binary files /dev/null and b/public/assets/images/media/service.png differ
index 66c5fb9..310854b 100644 (file)
@@ -9,9 +9,12 @@
   "MESSAGE_REPORT_EXTRACTING": "Your report is being elaborated, you will find it under the 'Extracted reports' section..",
   "APPLICATION_EXTRACTED_REPORTS": "Extracted Reports",
   "APPLICATION_COPY_TO": "Copy To",
+  "MESSAGE_NO_SERVICES_AVAILABLE": "No services available",
+  "APPLICATION_NEW_SERVICE": "New Service",
   "APPLICATION_RUN_DATE": "Run Date",
   "APPLICATION_OUTPUT": "Output",
   "MESSAGE_START_OR_END_DATE_MISSING": "Start or End Date missing!",
+  "MESSAGE_NO_AVAILABLE_CUSTOM_FIELDS": "No available Custom Fields",
   "APPLICATION_DATE_RANGE": "Date Range",
   "APPLICATION_COPY": "Copy",
   "APPLICATION_START_DATE": "Start Date",
   "APPLICATION_NOVEMBER": "November",
   "APPLICATION_DECEMBER": "December",
   "APPLICATION_OPENED": "Opened",
+  "APPLICATION_OPEN": "Open",
   "APPLICATION_CODEC": "Codec",
   "APPLICATION_CLOSED": "Closed",
   "APPLICATION_CLOSE": "Close",
index b0f3e26..b81cb44 100644 (file)
   "MESSAGE_REPORT_EXTRACTING": "Il tuo report Ã¨ in elaborazione, lo troverai nella sezione 'Report Estratti'",
   "APPLICATION_DATE_RANGE": "Intervallo Date",
   "APPLICATION_COPY": "Copia",
+  "MESSAGE_NO_SERVICES_AVAILABLE": "Nessun servizio disponibile",
+  "APPLICATION_NEW_SERVICE": "Nuovo Servizio",
   "APPLICATION_RUN_DATE": "Data Esecuzione",
   "APPLICATION_OUTPUT": "Output",
+  "APPLICATION_OPEN": "Apri",
+  "MESSAGE_NO_AVAILABLE_CUSTOM_FIELDS": "Nessun Custom Field disponibile ",
   "MESSAGE_START_OR_END_DATE_MISSING": "Data di inizio o di fine mancante!",
   "APPLICATION_EXTRACTED_REPORTS": "Report Estratti",
   "APPLICATION_NEW_TELEPHONE": "Nuovo Telefono",
-  "MESSAGE_NO_EXTRACTED_REPORTS_AVAILABLE": "Nessun report estrattp disponibile",
+  "MESSAGE_NO_EXTRACTED_REPORTS_AVAILABLE": "Nessun report estratto disponibile",
   "APPLICATION_SAVE_AS_CSV": "Salve come CSV",
   "APPLICATION_SAVE_AS_PDF": "Salva come PDF",
   "APPLICATION_START_DATE": "Data Di Inizio",
index 6d37471..1529c84 100644 (file)
@@ -1 +1 @@
-var _0x329c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x61\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x64\x69\x74\x6F\x72","\x67\x72\x61\x70\x68","\x6E\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53","\x73\x61\x76\x65\x41\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2D\x53","\x70\x75\x62\x6C\x69\x73\x68","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x50","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x43\x74\x72\x6C\x2B\x45","\x65\x64\x69\x74\x46\x69\x6C\x65","\x65\x64\x69\x74","\x67\x65\x74","\x62\x69\x6E\x64","\x70\x75\x74","\x70\x72\x69\x6E\x74","\x70\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E","\x73\x70\x72\x69\x74\x65\x2D\x70\x72\x69\x6E\x74","\x43\x74\x72\x6C\x2B\x50","\x70\x72\x65\x76\x69\x65\x77","\x73\x68\x6F\x77","\x75\x6E\x64\x6F","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x70\x72\x69\x74\x65\x2D\x75\x6E\x64\x6F","\x43\x74\x72\x6C\x2B\x5A","\x72\x65\x64\x6F","\x73\x70\x72\x69\x74\x65\x2D\x72\x65\x64\x6F","\x43\x74\x72\x6C\x2B\x59","\x63\x75\x74","\x73\x70\x72\x69\x74\x65\x2D\x63\x75\x74","\x43\x74\x72\x6C\x2B\x58","\x63\x6F\x70\x79","\x73\x70\x72\x69\x74\x65\x2D\x63\x6F\x70\x79","\x43\x74\x72\x6C\x2B\x43","\x70\x61\x73\x74\x65","\x73\x70\x72\x69\x74\x65\x2D\x70\x61\x73\x74\x65","\x43\x74\x72\x6C\x2B\x56","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x44\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x44","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x56","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x45","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x43\x74\x72\x6C\x2B\x41","\x68\x6F\x6D\x65","\x48\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x55\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x44\x6F\x77\x6E","\x65\x78\x70\x61\x6E\x64","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x45\x6E\x74\x65\x72","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x42\x61\x63\x6B\x73\x70\x61\x63\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x46","\x74\x6F\x42\x61\x63\x6B","\x43\x74\x72\x6C\x2B\x42","\x67\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x43\x74\x72\x6C\x2B\x47","\x75\x6E\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x55","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x70\x72\x6F\x6D\x70\x74","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6C\x65\x6E\x67\x74\x68","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x77\x72\x61\x70","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x73\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x30","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x20\x28","\x20\x30\x2D\x33\x36\x30\x29","\x74\x69\x6C\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x63\x6C\x6F\x6E\x65","\x78","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x79","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x76\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x65\x61\x73\x74","\x73\x6F\x75\x74\x68","\x77\x65\x73\x74","\x6E\x6F\x72\x74\x68","\x43\x74\x72\x6C\x2B\x52","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x41\x64\x64","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x53\x75\x62\x74\x72\x61\x63\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x66\x69\x74\x50\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x66\x75\x6E\x63\x74","\x70\x61\x67\x65\x56\x69\x65\x77","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x6D\x61\x78","\x72\x6F\x75\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x63\x75\x73\x74\x6F\x6D","\x20\x28\x25\x29","\x67\x65\x74\x53\x63\x61\x6C\x65","\x67\x72\x69\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x47","\x73\x65\x74\x54\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x75\x69\x64\x65\x73","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x73\x63\x61\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x43\x74\x72\x6C\x2B\x51","\x63\x6F\x70\x79\x43\x6F\x6E\x6E\x65\x63\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x68\x65\x6C\x70","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x5F","\x2F\x68\x65\x6C\x70","\x2E\x68\x74\x6D\x6C","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x46\x31","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x73\x68\x61\x64\x6F\x77","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x29","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x73\x74\x61\x74\x65","\x74\x72\x69\x67\x67\x65\x72\x58","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x74\x72\x69\x67\x67\x65\x72\x59","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x6D\x61\x67\x65","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x75\x72\x6C","\x6F\x6E\x6C\x6F\x61\x64","\x6F\x6E\x65\x72\x72\x6F\x72","\x66\x69\x6C\x65\x4E\x6F\x74\x46\x6F\x75\x6E\x64","\x61\x6C\x65\x72\x74","\x73\x72\x63","\x63\x61\x6C\x6C","\x6C\x61\x62\x65\x6C","\x65\x6E\x61\x62\x6C\x65\x64","\x69\x63\x6F\x6E\x43\x6C\x73","\x73\x68\x6F\x72\x74\x63\x75\x74","\x65\x78\x74\x65\x6E\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64"];_0x329c[0];function Actions(_0xfff5x2){this[_0x329c[1]]=_0xfff5x2;this[_0x329c[2]]= new Object();this[_0x329c[3]]();}Actions[_0x329c[4]][_0x329c[3]]=function(){var _0xfff5x3=this[_0x329c[1]];var _0xfff5x4=_0xfff5x3[_0x329c[5]];var _0xfff5x5=_0xfff5x4[_0x329c[6]];this[_0x329c[10]](_0x329c[7],function(){_0xfff5x3[_0x329c[9]]( new NewDialog(_0xfff5x3)[_0x329c[8]],300,180,true,true)});this[_0x329c[10]](_0x329c[11],function(){_0xfff5x3[_0x329c[9]]( new OpenDialog(_0xfff5x3)[_0x329c[8]],300,180,true,true)});this[_0x329c[10]](_0x329c[12],function(){_0xfff5x3[_0x329c[13]](false)},null,null,_0x329c[14]);this[_0x329c[10]](_0x329c[15],function(){_0xfff5x3[_0x329c[13]](true)},null,null,_0x329c[16]);this[_0x329c[10]](_0x329c[17],function(){_0xfff5x3[_0x329c[18]](false)},null,null,_0x329c[19]);this[_0x329c[10]](_0x329c[20],function(){_0xfff5x3[_0x329c[9]]( new VariableDialog(_0xfff5x3)[_0x329c[8]],300,180,true,true)});this[_0x329c[10]](_0x329c[21],function(){_0xfff5x3[_0x329c[9]]( new ImportDialog(_0xfff5x3)[_0x329c[8]],300,200,true,true)});this[_0x329c[10]](_0x329c[22],function(){_0xfff5x3[_0x329c[9]]( new ExportDialog(_0xfff5x3)[_0x329c[8]],300,200,true,true)},null,null,_0x329c[23]);this[_0x329c[28]](_0x329c[24], new Action(mxResources[_0x329c[26]](_0x329c[25]),mxUtils[_0x329c[27]](this,function(){this[_0x329c[1]][_0x329c[9]]( new EditFileDialog(_0xfff5x3)[_0x329c[8]],620,420,true,true)})));this[_0x329c[10]](_0x329c[29],function(){mxUtils[_0x329c[30]](_0xfff5x5)},null,_0x329c[31],_0x329c[32]);this[_0x329c[10]](_0x329c[33],function(){mxUtils[_0x329c[34]](_0xfff5x5,null,10,10)});this[_0x329c[10]](_0x329c[35],function(){_0xfff5x4[_0x329c[36]][_0x329c[35]]()},null,_0x329c[37],_0x329c[38]);this[_0x329c[10]](_0x329c[39],function(){_0xfff5x4[_0x329c[36]][_0x329c[39]]()},null,_0x329c[40],_0x329c[41]);this[_0x329c[10]](_0x329c[42],function(){mxClipboard[_0x329c[42]](_0xfff5x5)},null,_0x329c[43],_0x329c[44]);this[_0x329c[10]](_0x329c[45],function(){mxClipboard[_0x329c[45]](_0xfff5x5)},null,_0x329c[46],_0x329c[47]);this[_0x329c[10]](_0x329c[48],function(){mxClipboard[_0x329c[48]](_0xfff5x5)},false,_0x329c[49],_0x329c[50]);this[_0x329c[10]](_0x329c[51],function(){_0xfff5x5[_0x329c[52]]()},null,null,_0x329c[53]);this[_0x329c[10]](_0x329c[54],function(){var _0xfff5x6=_0xfff5x5[_0x329c[55]];_0xfff5x5[_0x329c[58]](_0xfff5x5[_0x329c[57]](_0xfff5x5[_0x329c[56]](),_0xfff5x6,_0xfff5x6,true));},null,null,_0x329c[59]);this[_0x329c[10]](_0x329c[60],function(){_0xfff5x5[_0x329c[60]]()},null,null,_0x329c[61]);this[_0x329c[10]](_0x329c[62],function(){_0xfff5x5[_0x329c[62]]()},null,null,_0x329c[63]);this[_0x329c[10]](_0x329c[64],function(){_0xfff5x5[_0x329c[64]]()},null,null,_0x329c[65]);this[_0x329c[10]](_0x329c[66],function(){_0xfff5x5[_0x329c[66]]()},null,null,_0x329c[67]);this[_0x329c[10]](_0x329c[68],function(){_0xfff5x5[_0x329c[68]]()},null,null,_0x329c[69]);this[_0x329c[10]](_0x329c[70],function(){_0xfff5x5[_0x329c[70]]()},null,null,_0x329c[71]);this[_0x329c[10]](_0x329c[72],function(){_0xfff5x5[_0x329c[73]](false)},null,null,_0x329c[74]);this[_0x329c[10]](_0x329c[75],function(){_0xfff5x5[_0x329c[73]](true)},null,null,_0x329c[76]);this[_0x329c[10]](_0x329c[77],function(){_0xfff5x5[_0x329c[78]](false)},null,null,_0x329c[79]);this[_0x329c[10]](_0x329c[80],function(){_0xfff5x5[_0x329c[78]](true)},null,null,_0x329c[81]);this[_0x329c[10]](_0x329c[82],function(){_0xfff5x5[_0x329c[84]](_0xfff5x5[_0x329c[83]](null,0))},null,null,_0x329c[85]);this[_0x329c[10]](_0x329c[86],function(){_0xfff5x5[_0x329c[58]](_0xfff5x5[_0x329c[87]]())},null,null,_0x329c[88]);this[_0x329c[10]](_0x329c[89],function(){_0xfff5x5[_0x329c[90]]()});this[_0x329c[10]](_0x329c[91],function(){var _0xfff5x7=_0xfff5x5[_0x329c[92]]();var _0xfff5x8=_0xfff5x5[_0x329c[93]](_0xfff5x7);if(_0xfff5x8==null){_0xfff5x8=_0x329c[94]};_0xfff5x8=mxUtils[_0x329c[96]](mxResources[_0x329c[26]](_0x329c[95]),_0xfff5x8);if(_0xfff5x8!=null){_0xfff5x5[_0x329c[97]](_0xfff5x7,_0xfff5x8)};});this[_0x329c[10]](_0x329c[98],function(){var _0xfff5x7=_0xfff5x5[_0x329c[92]]();var _0xfff5x8=_0xfff5x5[_0x329c[93]](_0xfff5x7);if(_0xfff5x8!=null){window[_0x329c[11]](_0xfff5x8)};});this[_0x329c[10]](_0x329c[99],function(){var _0xfff5x9=_0xfff5x5[_0x329c[56]]();if(_0xfff5x9!=null){_0xfff5x5[_0x329c[101]]()[_0x329c[100]]();try{for(var _0xfff5xa=0;_0xfff5xa<_0xfff5x9[_0x329c[102]];_0xfff5xa++){var _0xfff5x7=_0xfff5x9[_0xfff5xa];if(_0xfff5x5[_0x329c[101]]()[_0x329c[103]](_0xfff5x7)){_0xfff5x5[_0x329c[104]]([_0xfff5x7],20)}else {_0xfff5x5[_0x329c[105]](_0xfff5x7)};}}finally{_0xfff5x5[_0x329c[101]]()[_0x329c[106]]()};};});this[_0x329c[10]](_0x329c[107],function(){var _0xfff5xb=_0xfff5x5[_0x329c[109]]()[_0x329c[108]](_0xfff5x5[_0x329c[92]]());var _0xfff5xc=_0x329c[110];if(_0xfff5xb!=null&&_0xfff5xb[_0x329c[112]][mxConstants[_0x329c[111]]]==_0x329c[110]){_0xfff5xc=null};_0xfff5x5[_0x329c[113]](mxConstants.STYLE_WHITE_SPACE,_0xfff5xc);});this[_0x329c[10]](_0x329c[114],function(){var _0xfff5xc=_0x329c[115];var _0xfff5xb=_0xfff5x5[_0x329c[109]]()[_0x329c[108]](_0xfff5x5[_0x329c[92]]());if(_0xfff5xb!=null){_0xfff5xc=_0xfff5xb[_0x329c[112]][mxConstants[_0x329c[116]]]||_0xfff5xc};_0xfff5xc=mxUtils[_0x329c[96]](mxResources[_0x329c[26]](_0x329c[95])+_0x329c[117]+mxResources[_0x329c[26]](_0x329c[114])+_0x329c[118],_0xfff5xc);if(_0xfff5xc!=null){_0xfff5x5[_0x329c[113]](mxConstants.STYLE_ROTATION,_0xfff5xc)};});this[_0x329c[10]](_0x329c[119],function(){var _0xfff5x9=_0xfff5x5[_0x329c[56]]();if(_0xfff5x9!=null){_0xfff5x5[_0x329c[101]]()[_0x329c[100]]();try{for(var _0xfff5xa=0;_0xfff5xa<_0xfff5x9[_0x329c[102]];_0xfff5xa++){var _0xfff5x7=_0xfff5x9[_0xfff5xa];if(_0xfff5x5[_0x329c[101]]()[_0x329c[120]](_0xfff5x7)&&_0xfff5x5[_0x329c[101]]()[_0x329c[103]](_0xfff5x7)==0){var _0xfff5xd=_0xfff5x5[_0x329c[121]](_0xfff5x7);if(_0xfff5xd!=null){_0xfff5xd=_0xfff5xd[_0x329c[122]]();_0xfff5xd[_0x329c[123]]+=_0xfff5xd[_0x329c[124]]/2-_0xfff5xd[_0x329c[125]]/2;_0xfff5xd[_0x329c[126]]+=_0xfff5xd[_0x329c[125]]/2-_0xfff5xd[_0x329c[124]]/2;var _0xfff5xe=_0xfff5xd[_0x329c[124]];_0xfff5xd[_0x329c[124]]=_0xfff5xd[_0x329c[125]];_0xfff5xd[_0x329c[125]]=_0xfff5xe;_0xfff5x5[_0x329c[101]]()[_0x329c[127]](_0xfff5x7,_0xfff5xd);var _0xfff5xb=_0xfff5x5[_0x329c[128]][_0x329c[108]](_0xfff5x7);if(_0xfff5xb!=null){var _0xfff5xf=_0xfff5xb[_0x329c[112]][mxConstants[_0x329c[129]]]||_0x329c[130];if(_0xfff5xf==_0x329c[130]){_0xfff5xf=_0x329c[131]}else {if(_0xfff5xf==_0x329c[131]){_0xfff5xf=_0x329c[132]}else {if(_0xfff5xf==_0x329c[132]){_0xfff5xf=_0x329c[133]}else {if(_0xfff5xf==_0x329c[133]){_0xfff5xf=_0x329c[130]}}}};_0xfff5x5[_0x329c[113]](mxConstants.STYLE_DIRECTION,_0xfff5xf,[_0xfff5x7]);};};};}}finally{_0xfff5x5[_0x329c[101]]()[_0x329c[106]]()};};},null,null,_0x329c[134]);this[_0x329c[10]](_0x329c[135],function(){_0xfff5x5[_0x329c[136]](1)});this[_0x329c[10]](_0x329c[137],function(){_0xfff5x5[_0x329c[137]]()},null,null,_0x329c[138]);this[_0x329c[10]](_0x329c[139],function(){_0xfff5x5[_0x329c[139]]()},null,null,_0x329c[140]);this[_0x329c[10]](_0x329c[141],function(){_0xfff5x5[_0x329c[142]]()});this[_0x329c[10]](_0x329c[143],mxUtils[_0x329c[27]](this,function(){if(!_0xfff5x5[_0x329c[144]]){this[_0x329c[26]](_0x329c[146])[_0x329c[145]]()};var _0xfff5x10=_0xfff5x5[_0x329c[147]];var _0xfff5x11=_0xfff5x5[_0x329c[148]];var _0xfff5x12=_0xfff5x5[_0x329c[8]][_0x329c[149]]-20;var _0xfff5x13=_0xfff5x5[_0x329c[8]][_0x329c[150]]-20;var _0xfff5x14=Math[_0x329c[152]](100*Math[_0x329c[151]](_0xfff5x12/_0xfff5x10[_0x329c[124]]/_0xfff5x11,_0xfff5x13/_0xfff5x10[_0x329c[125]]/_0xfff5x11))/100;_0xfff5x5[_0x329c[136]](_0xfff5x14);_0xfff5x5[_0x329c[8]][_0x329c[153]]=Math[_0x329c[156]](_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[123]]*_0xfff5x14-Math[_0x329c[155]](10,(_0xfff5x5[_0x329c[8]][_0x329c[149]]-_0xfff5x10[_0x329c[124]]*_0xfff5x11*_0xfff5x14)/2));_0xfff5x5[_0x329c[8]][_0x329c[157]]=Math[_0x329c[156]](_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[126]]*_0xfff5x14-Math[_0x329c[155]](10,(_0xfff5x5[_0x329c[8]][_0x329c[150]]-_0xfff5x10[_0x329c[125]]*_0xfff5x11*_0xfff5x14)/2));}));this[_0x329c[10]](_0x329c[158],mxUtils[_0x329c[27]](this,function(){if(!_0xfff5x5[_0x329c[144]]){this[_0x329c[26]](_0x329c[146])[_0x329c[145]]()};var _0xfff5x10=_0xfff5x5[_0x329c[147]];var _0xfff5x11=_0xfff5x5[_0x329c[148]];var _0xfff5x12=_0xfff5x5[_0x329c[8]][_0x329c[149]]-20;var _0xfff5x14=Math[_0x329c[152]](100*_0xfff5x12/_0xfff5x10[_0x329c[124]]/_0xfff5x11)/100;_0xfff5x5[_0x329c[136]](_0xfff5x14);_0xfff5x5[_0x329c[8]][_0x329c[153]]=Math[_0x329c[156]](_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[123]]*_0xfff5x14-Math[_0x329c[155]](10,(_0xfff5x5[_0x329c[8]][_0x329c[149]]-_0xfff5x10[_0x329c[124]]*_0xfff5x11*_0xfff5x14)/2));_0xfff5x5[_0x329c[8]][_0x329c[157]]=Math[_0x329c[156]](_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[126]]*_0xfff5x14-Math[_0x329c[155]](10,(_0xfff5x5[_0x329c[8]][_0x329c[150]]-_0xfff5x10[_0x329c[125]]*_0xfff5x11*_0xfff5x14)/2));}));this[_0x329c[28]](_0x329c[159], new Action(mxResources[_0x329c[26]](_0x329c[160]),function(){var _0xfff5xc=mxUtils[_0x329c[96]](mxResources[_0x329c[26]](_0x329c[95])+_0x329c[161],parseInt(_0xfff5x5[_0x329c[109]]()[_0x329c[162]]()*100));if(_0xfff5xc!=null&&_0xfff5xc[_0x329c[102]]>0&&!isNaN(parseInt(_0xfff5xc))){_0xfff5x5[_0x329c[136]](parseInt(_0xfff5xc)/100)};}));var _0xfff5x15=null;_0xfff5x15=this[_0x329c[10]](_0x329c[163],function(){_0xfff5x5[_0x329c[165]](!_0xfff5x5[_0x329c[164]]());_0xfff5x4[_0x329c[166]]();},null,null,_0x329c[167]);_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[164]]()});_0xfff5x15=this[_0x329c[10]](_0x329c[170],function(){_0xfff5x5[_0x329c[172]][_0x329c[171]]=!_0xfff5x5[_0x329c[172]][_0x329c[171]]});_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[172]][_0x329c[171]]});_0xfff5x15=this[_0x329c[10]](_0x329c[173],function(){_0xfff5x5[_0x329c[175]][_0x329c[176]](!_0xfff5x5[_0x329c[175]][_0x329c[174]]())});_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[175]][_0x329c[174]]()});_0xfff5x15=this[_0x329c[10]](_0x329c[177],function(){_0xfff5x5[_0x329c[178]]=!_0xfff5x5[_0x329c[178]];_0xfff5x5[_0x329c[128]][_0x329c[179]]();});_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[178]]});_0xfff5x15=this[_0x329c[10]](_0x329c[180],function(){_0xfff5x5[_0x329c[180]]=!_0xfff5x5[_0x329c[180]];_0xfff5x4[_0x329c[166]]();if(!_0xfff5x5[_0x329c[180]]){var _0xfff5x16=_0xfff5x5[_0x329c[128]][_0x329c[154]];_0xfff5x5[_0x329c[128]][_0x329c[182]](_0xfff5x16[_0x329c[123]]-_0xfff5x5[_0x329c[8]][_0x329c[153]]/_0xfff5x5[_0x329c[128]][_0x329c[181]],_0xfff5x16[_0x329c[126]]-_0xfff5x5[_0x329c[8]][_0x329c[157]]/_0xfff5x5[_0x329c[128]][_0x329c[181]]);_0xfff5x5[_0x329c[8]][_0x329c[153]]=0;_0xfff5x5[_0x329c[8]][_0x329c[157]]=0;_0xfff5x5[_0x329c[183]]();}else {var _0xfff5x17=_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[123]];var _0xfff5x18=_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[126]];_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[123]]=0;_0xfff5x5[_0x329c[128]][_0x329c[154]][_0x329c[126]]=0;_0xfff5x5[_0x329c[183]]();_0xfff5x5[_0x329c[8]][_0x329c[153]]-=Math[_0x329c[156]](_0xfff5x17*_0xfff5x5[_0x329c[128]][_0x329c[181]]);_0xfff5x5[_0x329c[8]][_0x329c[157]]-=Math[_0x329c[156]](_0xfff5x18*_0xfff5x5[_0x329c[128]][_0x329c[181]]);};},!mxClient.IS_TOUCH);_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[8]][_0x329c[112]][_0x329c[184]]==_0x329c[185]});_0xfff5x15=this[_0x329c[10]](_0x329c[146],mxUtils[_0x329c[27]](this,function(){_0xfff5x5[_0x329c[144]]=!_0xfff5x5[_0x329c[144]];_0xfff5x5[_0x329c[186]]=_0xfff5x5[_0x329c[144]];_0xfff5x5[_0x329c[187]]=_0xfff5x5[_0x329c[186]];_0xfff5x5[_0x329c[128]][_0x329c[188]]();_0xfff5x5[_0x329c[183]]();_0xfff5x4[_0x329c[166]]();_0xfff5x4[_0x329c[190]][_0x329c[189]]();if(mxUtils[_0x329c[191]](_0xfff5x5[_0x329c[8]])){if(_0xfff5x5[_0x329c[144]]){_0xfff5x5[_0x329c[8]][_0x329c[153]]-=20;_0xfff5x5[_0x329c[8]][_0x329c[157]]-=20;}else {_0xfff5x5[_0x329c[8]][_0x329c[153]]+=20;_0xfff5x5[_0x329c[8]][_0x329c[157]]+=20;}};}));_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[144]]});_0xfff5x15=this[_0x329c[10]](_0x329c[192],function(){_0xfff5x5[_0x329c[194]](!_0xfff5x5[_0x329c[193]][_0x329c[174]]())},null,null,_0x329c[195]);_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[193]][_0x329c[174]]()});_0xfff5x15=this[_0x329c[10]](_0x329c[196],function(){_0xfff5x5[_0x329c[193]][_0x329c[198]](!_0xfff5x5[_0x329c[193]][_0x329c[197]]())});_0xfff5x15[_0x329c[168]](true);_0xfff5x15[_0x329c[169]](function(){return _0xfff5x5[_0x329c[193]][_0x329c[197]]()});this[_0x329c[10]](_0x329c[199],function(){var _0xfff5x19=_0x329c[94];if(mxResources[_0x329c[201]](mxClient[_0x329c[200]])){_0xfff5x19=_0x329c[202]+mxClient[_0x329c[200]]};window[_0x329c[11]](RESOURCES_PATH+_0x329c[203]+_0xfff5x19+_0x329c[204]);});this[_0x329c[28]](_0x329c[205], new Action(mxResources[_0x329c[26]](_0x329c[205])+_0x329c[206],function(){_0xfff5x3[_0x329c[9]]( new AboutDialog(_0xfff5x3)[_0x329c[8]],320,280,true,true)},null,null,_0x329c[207]));var _0xfff5x1a=mxUtils[_0x329c[27]](this,function(_0xfff5x1b,_0xfff5x1c){this[_0x329c[10]](_0xfff5x1b,function(){_0xfff5x5[_0x329c[208]](mxConstants.STYLE_FONTSTYLE,_0xfff5x1c)})});_0xfff5x1a(_0x329c[209],mxConstants.FONT_BOLD);_0xfff5x1a(_0x329c[210],mxConstants.FONT_ITALIC);_0xfff5x1a(_0x329c[211],mxConstants.FONT_UNDERLINE);this[_0x329c[10]](_0x329c[212],function(){_0xfff5x5[_0x329c[213]](mxConstants.STYLE_SHADOW)});this[_0x329c[10]](_0x329c[214],function(){_0xfff5x5[_0x329c[213]](mxConstants.STYLE_DASHED)});this[_0x329c[10]](_0x329c[215],function(){_0xfff5x5[_0x329c[213]](mxConstants.STYLE_ROUNDED)});this[_0x329c[10]](_0x329c[216],function(){_0xfff5x5[_0x329c[213]](mxConstants.STYLE_CURVED)});this[_0x329c[10]](_0x329c[112],function(){var _0xfff5x9=_0xfff5x5[_0x329c[56]]();if(_0xfff5x9!=null&&_0xfff5x9[_0x329c[102]]>0){var _0xfff5x1d=_0xfff5x5[_0x329c[101]]();var _0xfff5x1c=mxUtils[_0x329c[96]](mxResources[_0x329c[26]](_0x329c[95])+_0x329c[117]+mxResources[_0x329c[26]](_0x329c[112])+_0x329c[217],_0xfff5x1d[_0x329c[218]](_0xfff5x9[0])||_0x329c[94]);if(_0xfff5x1c!=null){_0xfff5x5[_0x329c[219]](_0xfff5x1c,_0xfff5x9)};};});this[_0x329c[10]](_0x329c[220],function(){_0xfff5x5[_0x329c[221]](_0xfff5x5[_0x329c[92]]())});this[_0x329c[10]](_0x329c[222],function(){var _0xfff5x7=_0xfff5x5[_0x329c[92]]();if(_0xfff5x7!=null&&_0xfff5x5[_0x329c[101]]()[_0x329c[223]](_0xfff5x7)){var _0xfff5x1e=_0xfff5x4[_0x329c[6]][_0x329c[225]][_0x329c[224]](_0xfff5x7);if(_0xfff5x1e instanceof mxEdgeHandler){var _0xfff5x16=_0xfff5x5[_0x329c[128]][_0x329c[154]];var _0xfff5x6=_0xfff5x5[_0x329c[128]][_0x329c[181]];var _0xfff5x17=_0xfff5x16[_0x329c[123]];var _0xfff5x18=_0xfff5x16[_0x329c[126]];var _0xfff5x1f=_0xfff5x5[_0x329c[101]]()[_0x329c[226]](_0xfff5x7);var _0xfff5x20=_0xfff5x5[_0x329c[121]](_0xfff5x1f);if(_0xfff5x5[_0x329c[101]]()[_0x329c[120]](_0xfff5x1f)&&_0xfff5x20!=null){_0xfff5x17+=_0xfff5x20[_0x329c[123]];_0xfff5x18+=_0xfff5x20[_0x329c[126]];};_0xfff5x1e[_0x329c[231]](_0xfff5x1e[_0x329c[227]],_0xfff5x5[_0x329c[229]][_0x329c[228]]/_0xfff5x6-_0xfff5x17,_0xfff5x5[_0x329c[229]][_0x329c[230]]/_0xfff5x6-_0xfff5x18);};};});this[_0x329c[10]](_0x329c[232],function(){var _0xfff5x21=_0xfff5x3[_0x329c[2]][_0x329c[26]](_0x329c[232]);if(_0xfff5x21[_0x329c[233]]!=null){_0xfff5x21[_0x329c[233]][_0x329c[235]](_0xfff5x21[_0x329c[233]][_0x329c[227]],_0xfff5x21[_0x329c[234]])};});this[_0x329c[10]](_0x329c[236],function(){function _0xfff5x22(_0xfff5xc,_0xfff5x23,_0xfff5x24){var _0xfff5x25=null;var _0xfff5x9=_0xfff5x5[_0x329c[56]]();_0xfff5x5[_0x329c[101]]()[_0x329c[100]]();try{if(_0xfff5x9[_0x329c[102]]==0){var _0xfff5x26=_0xfff5x5[_0x329c[237]]();_0xfff5x9=[_0xfff5x5[_0x329c[239]](_0xfff5x5[_0x329c[238]](),null,_0x329c[94],_0xfff5x26,_0xfff5x26,_0xfff5x23,_0xfff5x24)];_0xfff5x25=_0xfff5x9;};_0xfff5x5[_0x329c[113]](mxConstants.STYLE_IMAGE,_0xfff5xc,_0xfff5x9);_0xfff5x5[_0x329c[113]](mxConstants.STYLE_SHAPE,_0x329c[236],_0xfff5x9);if(_0xfff5x5[_0x329c[240]]()==1){if(_0xfff5x23!=null&&_0xfff5x24!=null){var _0xfff5x7=_0xfff5x9[0];var _0xfff5xd=_0xfff5x5[_0x329c[101]]()[_0x329c[241]](_0xfff5x7);if(_0xfff5xd!=null){_0xfff5xd=_0xfff5xd[_0x329c[122]]();_0xfff5xd[_0x329c[124]]=_0xfff5x23;_0xfff5xd[_0x329c[125]]=_0xfff5x24;_0xfff5x5[_0x329c[101]]()[_0x329c[127]](_0xfff5x7,_0xfff5xd);};}};}finally{_0xfff5x5[_0x329c[101]]()[_0x329c[106]]()};if(_0xfff5x25!=null){_0xfff5x5[_0x329c[58]](_0xfff5x25);_0xfff5x5[_0x329c[242]](_0xfff5x25[0]);};}var _0xfff5xc=_0x329c[94];var _0xfff5xb=_0xfff5x5[_0x329c[109]]()[_0x329c[108]](_0xfff5x5[_0x329c[92]]());if(_0xfff5xb!=null){_0xfff5xc=_0xfff5xb[_0x329c[112]][mxConstants[_0x329c[243]]]||_0xfff5xc};_0xfff5xc=mxUtils[_0x329c[96]](mxResources[_0x329c[26]](_0x329c[95])+_0x329c[117]+mxResources[_0x329c[26]](_0x329c[244])+_0x329c[217],_0xfff5xc);if(_0xfff5xc!=null){if(_0xfff5xc[_0x329c[102]]>0){var _0xfff5x27= new Image();_0xfff5x27[_0x329c[245]]=function(){_0xfff5x22(_0xfff5xc,_0xfff5x27[_0x329c[124]],_0xfff5x27[_0x329c[125]])};_0xfff5x27[_0x329c[246]]=function(){mxUtils[_0x329c[248]](mxResources[_0x329c[26]](_0x329c[247]))};_0xfff5x27[_0x329c[249]]=_0xfff5xc;}};});};Actions[_0x329c[4]][_0x329c[10]]=function(_0xfff5x1b,_0xfff5x28,_0xfff5x29,_0xfff5x2a,_0xfff5x2b){return this[_0x329c[28]](_0xfff5x1b, new Action(mxResources[_0x329c[26]](_0xfff5x1b),_0xfff5x28,_0xfff5x29,_0xfff5x2a,_0xfff5x2b))};Actions[_0x329c[4]][_0x329c[28]]=function(_0xfff5x2c,_0xfff5x15){this[_0x329c[2]][_0xfff5x2c]=_0xfff5x15;return _0xfff5x15;};Actions[_0x329c[4]][_0x329c[26]]=function(_0xfff5x2c){return this[_0x329c[2]][_0xfff5x2c]};function Action(_0xfff5x2e,_0xfff5x28,_0xfff5x29,_0xfff5x2a,_0xfff5x2b){mxEventSource[_0x329c[250]](this);this[_0x329c[251]]=_0xfff5x2e;this[_0x329c[145]]=_0xfff5x28;this[_0x329c[252]]=(_0xfff5x29!=null)?_0xfff5x29:true;this[_0x329c[253]]=_0xfff5x2a;this[_0x329c[254]]=_0xfff5x2b;}mxUtils[_0x329c[255]](Action,mxEventSource);Action[_0x329c[4]][_0x329c[176]]=function(_0xfff5xc){if(this[_0x329c[252]]!=_0xfff5xc){this[_0x329c[252]]=_0xfff5xc;this[_0x329c[257]]( new mxEventObject(_0x329c[256]));}};Action[_0x329c[4]][_0x329c[168]]=function(_0xfff5xc){this[_0x329c[258]]=_0xfff5xc};Action[_0x329c[4]][_0x329c[169]]=function(_0xfff5x28){this[_0x329c[259]]=_0xfff5x28};Action[_0x329c[4]][_0x329c[260]]=function(){return this[_0x329c[259]]()};
\ No newline at end of file
+var _0x5523=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x61\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x64\x69\x74\x6F\x72","\x67\x72\x61\x70\x68","\x6E\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53","\x73\x61\x76\x65\x41\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2D\x53","\x70\x75\x62\x6C\x69\x73\x68","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x50","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x43\x74\x72\x6C\x2B\x45","\x65\x64\x69\x74\x46\x69\x6C\x65","\x65\x64\x69\x74","\x67\x65\x74","\x62\x69\x6E\x64","\x70\x75\x74","\x70\x72\x69\x6E\x74","\x70\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E","\x73\x70\x72\x69\x74\x65\x2D\x70\x72\x69\x6E\x74","\x43\x74\x72\x6C\x2B\x50","\x70\x72\x65\x76\x69\x65\x77","\x73\x68\x6F\x77","\x75\x6E\x64\x6F","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x70\x72\x69\x74\x65\x2D\x75\x6E\x64\x6F","\x43\x74\x72\x6C\x2B\x5A","\x72\x65\x64\x6F","\x73\x70\x72\x69\x74\x65\x2D\x72\x65\x64\x6F","\x43\x74\x72\x6C\x2B\x59","\x63\x75\x74","\x73\x70\x72\x69\x74\x65\x2D\x63\x75\x74","\x43\x74\x72\x6C\x2B\x58","\x63\x6F\x70\x79","\x73\x70\x72\x69\x74\x65\x2D\x63\x6F\x70\x79","\x43\x74\x72\x6C\x2B\x43","\x70\x61\x73\x74\x65","\x73\x70\x72\x69\x74\x65\x2D\x70\x61\x73\x74\x65","\x43\x74\x72\x6C\x2B\x56","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x44\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x44","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x56","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x45","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x43\x74\x72\x6C\x2B\x41","\x68\x6F\x6D\x65","\x48\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x55\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x44\x6F\x77\x6E","\x65\x78\x70\x61\x6E\x64","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x45\x6E\x74\x65\x72","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x42\x61\x63\x6B\x73\x70\x61\x63\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x46","\x74\x6F\x42\x61\x63\x6B","\x43\x74\x72\x6C\x2B\x42","\x67\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x43\x74\x72\x6C\x2B\x47","\x75\x6E\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x55","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x70\x72\x6F\x6D\x70\x74","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6C\x65\x6E\x67\x74\x68","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x77\x72\x61\x70","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x73\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x30","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x20\x28","\x20\x30\x2D\x33\x36\x30\x29","\x74\x69\x6C\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x63\x6C\x6F\x6E\x65","\x78","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x79","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x76\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x65\x61\x73\x74","\x73\x6F\x75\x74\x68","\x77\x65\x73\x74","\x6E\x6F\x72\x74\x68","\x43\x74\x72\x6C\x2B\x52","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x41\x64\x64","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x53\x75\x62\x74\x72\x61\x63\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x66\x69\x74\x50\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x66\x75\x6E\x63\x74","\x70\x61\x67\x65\x56\x69\x65\x77","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x6D\x61\x78","\x72\x6F\x75\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x63\x75\x73\x74\x6F\x6D","\x20\x28\x25\x29","\x67\x65\x74\x53\x63\x61\x6C\x65","\x67\x72\x69\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x47","\x73\x65\x74\x54\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x75\x69\x64\x65\x73","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x73\x63\x61\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x43\x74\x72\x6C\x2B\x51","\x63\x6F\x70\x79\x43\x6F\x6E\x6E\x65\x63\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x68\x65\x6C\x70","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x5F","\x2F\x68\x65\x6C\x70","\x2E\x68\x74\x6D\x6C","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x46\x31","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x73\x68\x61\x64\x6F\x77","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x29","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x73\x74\x61\x74\x65","\x74\x72\x69\x67\x67\x65\x72\x58","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x74\x72\x69\x67\x67\x65\x72\x59","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x6D\x61\x67\x65","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x75\x72\x6C","\x6F\x6E\x6C\x6F\x61\x64","\x6F\x6E\x65\x72\x72\x6F\x72","\x66\x69\x6C\x65\x4E\x6F\x74\x46\x6F\x75\x6E\x64","\x61\x6C\x65\x72\x74","\x73\x72\x63","\x63\x61\x6C\x6C","\x6C\x61\x62\x65\x6C","\x65\x6E\x61\x62\x6C\x65\x64","\x69\x63\x6F\x6E\x43\x6C\x73","\x73\x68\x6F\x72\x74\x63\x75\x74","\x65\x78\x74\x65\x6E\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64"];_0x5523[0];function Actions(_0x6cd8x2){this[_0x5523[1]]=_0x6cd8x2;this[_0x5523[2]]= new Object();this[_0x5523[3]]();}Actions[_0x5523[4]][_0x5523[3]]=function(){var _0x6cd8x3=this[_0x5523[1]];var _0x6cd8x4=_0x6cd8x3[_0x5523[5]];var _0x6cd8x5=_0x6cd8x4[_0x5523[6]];this[_0x5523[10]](_0x5523[7],function(){_0x6cd8x3[_0x5523[9]]( new NewDialog(_0x6cd8x3)[_0x5523[8]],300,180,true,true)});this[_0x5523[10]](_0x5523[11],function(){_0x6cd8x3[_0x5523[9]]( new OpenDialog(_0x6cd8x3)[_0x5523[8]],300,180,true,true)});this[_0x5523[10]](_0x5523[12],function(){_0x6cd8x3[_0x5523[13]](false)},null,null,_0x5523[14]);this[_0x5523[10]](_0x5523[15],function(){_0x6cd8x3[_0x5523[13]](true)},null,null,_0x5523[16]);this[_0x5523[10]](_0x5523[17],function(){_0x6cd8x3[_0x5523[18]](false)},null,null,_0x5523[19]);this[_0x5523[10]](_0x5523[20],function(){_0x6cd8x3[_0x5523[9]]( new VariableDialog(_0x6cd8x3)[_0x5523[8]],300,180,true,true)});this[_0x5523[10]](_0x5523[21],function(){_0x6cd8x3[_0x5523[9]]( new ImportDialog(_0x6cd8x3)[_0x5523[8]],300,200,true,true)});this[_0x5523[10]](_0x5523[22],function(){_0x6cd8x3[_0x5523[9]]( new ExportDialog(_0x6cd8x3)[_0x5523[8]],300,200,true,true)},null,null,_0x5523[23]);this[_0x5523[28]](_0x5523[24], new Action(mxResources[_0x5523[26]](_0x5523[25]),mxUtils[_0x5523[27]](this,function(){this[_0x5523[1]][_0x5523[9]]( new EditFileDialog(_0x6cd8x3)[_0x5523[8]],620,420,true,true)})));this[_0x5523[10]](_0x5523[29],function(){mxUtils[_0x5523[30]](_0x6cd8x5)},null,_0x5523[31],_0x5523[32]);this[_0x5523[10]](_0x5523[33],function(){mxUtils[_0x5523[34]](_0x6cd8x5,null,10,10)});this[_0x5523[10]](_0x5523[35],function(){_0x6cd8x4[_0x5523[36]][_0x5523[35]]()},null,_0x5523[37],_0x5523[38]);this[_0x5523[10]](_0x5523[39],function(){_0x6cd8x4[_0x5523[36]][_0x5523[39]]()},null,_0x5523[40],_0x5523[41]);this[_0x5523[10]](_0x5523[42],function(){mxClipboard[_0x5523[42]](_0x6cd8x5)},null,_0x5523[43],_0x5523[44]);this[_0x5523[10]](_0x5523[45],function(){mxClipboard[_0x5523[45]](_0x6cd8x5)},null,_0x5523[46],_0x5523[47]);this[_0x5523[10]](_0x5523[48],function(){mxClipboard[_0x5523[48]](_0x6cd8x5)},false,_0x5523[49],_0x5523[50]);this[_0x5523[10]](_0x5523[51],function(){_0x6cd8x5[_0x5523[52]]()},null,null,_0x5523[53]);this[_0x5523[10]](_0x5523[54],function(){var _0x6cd8x6=_0x6cd8x5[_0x5523[55]];_0x6cd8x5[_0x5523[58]](_0x6cd8x5[_0x5523[57]](_0x6cd8x5[_0x5523[56]](),_0x6cd8x6,_0x6cd8x6,true));},null,null,_0x5523[59]);this[_0x5523[10]](_0x5523[60],function(){_0x6cd8x5[_0x5523[60]]()},null,null,_0x5523[61]);this[_0x5523[10]](_0x5523[62],function(){_0x6cd8x5[_0x5523[62]]()},null,null,_0x5523[63]);this[_0x5523[10]](_0x5523[64],function(){_0x6cd8x5[_0x5523[64]]()},null,null,_0x5523[65]);this[_0x5523[10]](_0x5523[66],function(){_0x6cd8x5[_0x5523[66]]()},null,null,_0x5523[67]);this[_0x5523[10]](_0x5523[68],function(){_0x6cd8x5[_0x5523[68]]()},null,null,_0x5523[69]);this[_0x5523[10]](_0x5523[70],function(){_0x6cd8x5[_0x5523[70]]()},null,null,_0x5523[71]);this[_0x5523[10]](_0x5523[72],function(){_0x6cd8x5[_0x5523[73]](false)},null,null,_0x5523[74]);this[_0x5523[10]](_0x5523[75],function(){_0x6cd8x5[_0x5523[73]](true)},null,null,_0x5523[76]);this[_0x5523[10]](_0x5523[77],function(){_0x6cd8x5[_0x5523[78]](false)},null,null,_0x5523[79]);this[_0x5523[10]](_0x5523[80],function(){_0x6cd8x5[_0x5523[78]](true)},null,null,_0x5523[81]);this[_0x5523[10]](_0x5523[82],function(){_0x6cd8x5[_0x5523[84]](_0x6cd8x5[_0x5523[83]](null,0))},null,null,_0x5523[85]);this[_0x5523[10]](_0x5523[86],function(){_0x6cd8x5[_0x5523[58]](_0x6cd8x5[_0x5523[87]]())},null,null,_0x5523[88]);this[_0x5523[10]](_0x5523[89],function(){_0x6cd8x5[_0x5523[90]]()});this[_0x5523[10]](_0x5523[91],function(){var _0x6cd8x7=_0x6cd8x5[_0x5523[92]]();var _0x6cd8x8=_0x6cd8x5[_0x5523[93]](_0x6cd8x7);if(_0x6cd8x8==null){_0x6cd8x8=_0x5523[94]};_0x6cd8x8=mxUtils[_0x5523[96]](mxResources[_0x5523[26]](_0x5523[95]),_0x6cd8x8);if(_0x6cd8x8!=null){_0x6cd8x5[_0x5523[97]](_0x6cd8x7,_0x6cd8x8)};});this[_0x5523[10]](_0x5523[98],function(){var _0x6cd8x7=_0x6cd8x5[_0x5523[92]]();var _0x6cd8x8=_0x6cd8x5[_0x5523[93]](_0x6cd8x7);if(_0x6cd8x8!=null){window[_0x5523[11]](_0x6cd8x8)};});this[_0x5523[10]](_0x5523[99],function(){var _0x6cd8x9=_0x6cd8x5[_0x5523[56]]();if(_0x6cd8x9!=null){_0x6cd8x5[_0x5523[101]]()[_0x5523[100]]();try{for(var _0x6cd8xa=0;_0x6cd8xa<_0x6cd8x9[_0x5523[102]];_0x6cd8xa++){var _0x6cd8x7=_0x6cd8x9[_0x6cd8xa];if(_0x6cd8x5[_0x5523[101]]()[_0x5523[103]](_0x6cd8x7)){_0x6cd8x5[_0x5523[104]]([_0x6cd8x7],20)}else {_0x6cd8x5[_0x5523[105]](_0x6cd8x7)};}}finally{_0x6cd8x5[_0x5523[101]]()[_0x5523[106]]()};};});this[_0x5523[10]](_0x5523[107],function(){var _0x6cd8xb=_0x6cd8x5[_0x5523[109]]()[_0x5523[108]](_0x6cd8x5[_0x5523[92]]());var _0x6cd8xc=_0x5523[110];if(_0x6cd8xb!=null&&_0x6cd8xb[_0x5523[112]][mxConstants[_0x5523[111]]]==_0x5523[110]){_0x6cd8xc=null};_0x6cd8x5[_0x5523[113]](mxConstants.STYLE_WHITE_SPACE,_0x6cd8xc);});this[_0x5523[10]](_0x5523[114],function(){var _0x6cd8xc=_0x5523[115];var _0x6cd8xb=_0x6cd8x5[_0x5523[109]]()[_0x5523[108]](_0x6cd8x5[_0x5523[92]]());if(_0x6cd8xb!=null){_0x6cd8xc=_0x6cd8xb[_0x5523[112]][mxConstants[_0x5523[116]]]||_0x6cd8xc};_0x6cd8xc=mxUtils[_0x5523[96]](mxResources[_0x5523[26]](_0x5523[95])+_0x5523[117]+mxResources[_0x5523[26]](_0x5523[114])+_0x5523[118],_0x6cd8xc);if(_0x6cd8xc!=null){_0x6cd8x5[_0x5523[113]](mxConstants.STYLE_ROTATION,_0x6cd8xc)};});this[_0x5523[10]](_0x5523[119],function(){var _0x6cd8x9=_0x6cd8x5[_0x5523[56]]();if(_0x6cd8x9!=null){_0x6cd8x5[_0x5523[101]]()[_0x5523[100]]();try{for(var _0x6cd8xa=0;_0x6cd8xa<_0x6cd8x9[_0x5523[102]];_0x6cd8xa++){var _0x6cd8x7=_0x6cd8x9[_0x6cd8xa];if(_0x6cd8x5[_0x5523[101]]()[_0x5523[120]](_0x6cd8x7)&&_0x6cd8x5[_0x5523[101]]()[_0x5523[103]](_0x6cd8x7)==0){var _0x6cd8xd=_0x6cd8x5[_0x5523[121]](_0x6cd8x7);if(_0x6cd8xd!=null){_0x6cd8xd=_0x6cd8xd[_0x5523[122]]();_0x6cd8xd[_0x5523[123]]+=_0x6cd8xd[_0x5523[124]]/2-_0x6cd8xd[_0x5523[125]]/2;_0x6cd8xd[_0x5523[126]]+=_0x6cd8xd[_0x5523[125]]/2-_0x6cd8xd[_0x5523[124]]/2;var _0x6cd8xe=_0x6cd8xd[_0x5523[124]];_0x6cd8xd[_0x5523[124]]=_0x6cd8xd[_0x5523[125]];_0x6cd8xd[_0x5523[125]]=_0x6cd8xe;_0x6cd8x5[_0x5523[101]]()[_0x5523[127]](_0x6cd8x7,_0x6cd8xd);var _0x6cd8xb=_0x6cd8x5[_0x5523[128]][_0x5523[108]](_0x6cd8x7);if(_0x6cd8xb!=null){var _0x6cd8xf=_0x6cd8xb[_0x5523[112]][mxConstants[_0x5523[129]]]||_0x5523[130];if(_0x6cd8xf==_0x5523[130]){_0x6cd8xf=_0x5523[131]}else {if(_0x6cd8xf==_0x5523[131]){_0x6cd8xf=_0x5523[132]}else {if(_0x6cd8xf==_0x5523[132]){_0x6cd8xf=_0x5523[133]}else {if(_0x6cd8xf==_0x5523[133]){_0x6cd8xf=_0x5523[130]}}}};_0x6cd8x5[_0x5523[113]](mxConstants.STYLE_DIRECTION,_0x6cd8xf,[_0x6cd8x7]);};};};}}finally{_0x6cd8x5[_0x5523[101]]()[_0x5523[106]]()};};},null,null,_0x5523[134]);this[_0x5523[10]](_0x5523[135],function(){_0x6cd8x5[_0x5523[136]](1)});this[_0x5523[10]](_0x5523[137],function(){_0x6cd8x5[_0x5523[137]]()},null,null,_0x5523[138]);this[_0x5523[10]](_0x5523[139],function(){_0x6cd8x5[_0x5523[139]]()},null,null,_0x5523[140]);this[_0x5523[10]](_0x5523[141],function(){_0x6cd8x5[_0x5523[142]]()});this[_0x5523[10]](_0x5523[143],mxUtils[_0x5523[27]](this,function(){if(!_0x6cd8x5[_0x5523[144]]){this[_0x5523[26]](_0x5523[146])[_0x5523[145]]()};var _0x6cd8x10=_0x6cd8x5[_0x5523[147]];var _0x6cd8x11=_0x6cd8x5[_0x5523[148]];var _0x6cd8x12=_0x6cd8x5[_0x5523[8]][_0x5523[149]]-20;var _0x6cd8x13=_0x6cd8x5[_0x5523[8]][_0x5523[150]]-20;var _0x6cd8x14=Math[_0x5523[152]](100*Math[_0x5523[151]](_0x6cd8x12/_0x6cd8x10[_0x5523[124]]/_0x6cd8x11,_0x6cd8x13/_0x6cd8x10[_0x5523[125]]/_0x6cd8x11))/100;_0x6cd8x5[_0x5523[136]](_0x6cd8x14);_0x6cd8x5[_0x5523[8]][_0x5523[153]]=Math[_0x5523[156]](_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[123]]*_0x6cd8x14-Math[_0x5523[155]](10,(_0x6cd8x5[_0x5523[8]][_0x5523[149]]-_0x6cd8x10[_0x5523[124]]*_0x6cd8x11*_0x6cd8x14)/2));_0x6cd8x5[_0x5523[8]][_0x5523[157]]=Math[_0x5523[156]](_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[126]]*_0x6cd8x14-Math[_0x5523[155]](10,(_0x6cd8x5[_0x5523[8]][_0x5523[150]]-_0x6cd8x10[_0x5523[125]]*_0x6cd8x11*_0x6cd8x14)/2));}));this[_0x5523[10]](_0x5523[158],mxUtils[_0x5523[27]](this,function(){if(!_0x6cd8x5[_0x5523[144]]){this[_0x5523[26]](_0x5523[146])[_0x5523[145]]()};var _0x6cd8x10=_0x6cd8x5[_0x5523[147]];var _0x6cd8x11=_0x6cd8x5[_0x5523[148]];var _0x6cd8x12=_0x6cd8x5[_0x5523[8]][_0x5523[149]]-20;var _0x6cd8x14=Math[_0x5523[152]](100*_0x6cd8x12/_0x6cd8x10[_0x5523[124]]/_0x6cd8x11)/100;_0x6cd8x5[_0x5523[136]](_0x6cd8x14);_0x6cd8x5[_0x5523[8]][_0x5523[153]]=Math[_0x5523[156]](_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[123]]*_0x6cd8x14-Math[_0x5523[155]](10,(_0x6cd8x5[_0x5523[8]][_0x5523[149]]-_0x6cd8x10[_0x5523[124]]*_0x6cd8x11*_0x6cd8x14)/2));_0x6cd8x5[_0x5523[8]][_0x5523[157]]=Math[_0x5523[156]](_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[126]]*_0x6cd8x14-Math[_0x5523[155]](10,(_0x6cd8x5[_0x5523[8]][_0x5523[150]]-_0x6cd8x10[_0x5523[125]]*_0x6cd8x11*_0x6cd8x14)/2));}));this[_0x5523[28]](_0x5523[159], new Action(mxResources[_0x5523[26]](_0x5523[160]),function(){var _0x6cd8xc=mxUtils[_0x5523[96]](mxResources[_0x5523[26]](_0x5523[95])+_0x5523[161],parseInt(_0x6cd8x5[_0x5523[109]]()[_0x5523[162]]()*100));if(_0x6cd8xc!=null&&_0x6cd8xc[_0x5523[102]]>0&&!isNaN(parseInt(_0x6cd8xc))){_0x6cd8x5[_0x5523[136]](parseInt(_0x6cd8xc)/100)};}));var _0x6cd8x15=null;_0x6cd8x15=this[_0x5523[10]](_0x5523[163],function(){_0x6cd8x5[_0x5523[165]](!_0x6cd8x5[_0x5523[164]]());_0x6cd8x4[_0x5523[166]]();},null,null,_0x5523[167]);_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[164]]()});_0x6cd8x15=this[_0x5523[10]](_0x5523[170],function(){_0x6cd8x5[_0x5523[172]][_0x5523[171]]=!_0x6cd8x5[_0x5523[172]][_0x5523[171]]});_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[172]][_0x5523[171]]});_0x6cd8x15=this[_0x5523[10]](_0x5523[173],function(){_0x6cd8x5[_0x5523[175]][_0x5523[176]](!_0x6cd8x5[_0x5523[175]][_0x5523[174]]())});_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[175]][_0x5523[174]]()});_0x6cd8x15=this[_0x5523[10]](_0x5523[177],function(){_0x6cd8x5[_0x5523[178]]=!_0x6cd8x5[_0x5523[178]];_0x6cd8x5[_0x5523[128]][_0x5523[179]]();});_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[178]]});_0x6cd8x15=this[_0x5523[10]](_0x5523[180],function(){_0x6cd8x5[_0x5523[180]]=!_0x6cd8x5[_0x5523[180]];_0x6cd8x4[_0x5523[166]]();if(!_0x6cd8x5[_0x5523[180]]){var _0x6cd8x16=_0x6cd8x5[_0x5523[128]][_0x5523[154]];_0x6cd8x5[_0x5523[128]][_0x5523[182]](_0x6cd8x16[_0x5523[123]]-_0x6cd8x5[_0x5523[8]][_0x5523[153]]/_0x6cd8x5[_0x5523[128]][_0x5523[181]],_0x6cd8x16[_0x5523[126]]-_0x6cd8x5[_0x5523[8]][_0x5523[157]]/_0x6cd8x5[_0x5523[128]][_0x5523[181]]);_0x6cd8x5[_0x5523[8]][_0x5523[153]]=0;_0x6cd8x5[_0x5523[8]][_0x5523[157]]=0;_0x6cd8x5[_0x5523[183]]();}else {var _0x6cd8x17=_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[123]];var _0x6cd8x18=_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[126]];_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[123]]=0;_0x6cd8x5[_0x5523[128]][_0x5523[154]][_0x5523[126]]=0;_0x6cd8x5[_0x5523[183]]();_0x6cd8x5[_0x5523[8]][_0x5523[153]]-=Math[_0x5523[156]](_0x6cd8x17*_0x6cd8x5[_0x5523[128]][_0x5523[181]]);_0x6cd8x5[_0x5523[8]][_0x5523[157]]-=Math[_0x5523[156]](_0x6cd8x18*_0x6cd8x5[_0x5523[128]][_0x5523[181]]);};},!mxClient.IS_TOUCH);_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[8]][_0x5523[112]][_0x5523[184]]==_0x5523[185]});_0x6cd8x15=this[_0x5523[10]](_0x5523[146],mxUtils[_0x5523[27]](this,function(){_0x6cd8x5[_0x5523[144]]=!_0x6cd8x5[_0x5523[144]];_0x6cd8x5[_0x5523[186]]=_0x6cd8x5[_0x5523[144]];_0x6cd8x5[_0x5523[187]]=_0x6cd8x5[_0x5523[186]];_0x6cd8x5[_0x5523[128]][_0x5523[188]]();_0x6cd8x5[_0x5523[183]]();_0x6cd8x4[_0x5523[166]]();_0x6cd8x4[_0x5523[190]][_0x5523[189]]();if(mxUtils[_0x5523[191]](_0x6cd8x5[_0x5523[8]])){if(_0x6cd8x5[_0x5523[144]]){_0x6cd8x5[_0x5523[8]][_0x5523[153]]-=20;_0x6cd8x5[_0x5523[8]][_0x5523[157]]-=20;}else {_0x6cd8x5[_0x5523[8]][_0x5523[153]]+=20;_0x6cd8x5[_0x5523[8]][_0x5523[157]]+=20;}};}));_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[144]]});_0x6cd8x15=this[_0x5523[10]](_0x5523[192],function(){_0x6cd8x5[_0x5523[194]](!_0x6cd8x5[_0x5523[193]][_0x5523[174]]())},null,null,_0x5523[195]);_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[193]][_0x5523[174]]()});_0x6cd8x15=this[_0x5523[10]](_0x5523[196],function(){_0x6cd8x5[_0x5523[193]][_0x5523[198]](!_0x6cd8x5[_0x5523[193]][_0x5523[197]]())});_0x6cd8x15[_0x5523[168]](true);_0x6cd8x15[_0x5523[169]](function(){return _0x6cd8x5[_0x5523[193]][_0x5523[197]]()});this[_0x5523[10]](_0x5523[199],function(){var _0x6cd8x19=_0x5523[94];if(mxResources[_0x5523[201]](mxClient[_0x5523[200]])){_0x6cd8x19=_0x5523[202]+mxClient[_0x5523[200]]};window[_0x5523[11]](RESOURCES_PATH+_0x5523[203]+_0x6cd8x19+_0x5523[204]);});this[_0x5523[28]](_0x5523[205], new Action(mxResources[_0x5523[26]](_0x5523[205])+_0x5523[206],function(){_0x6cd8x3[_0x5523[9]]( new AboutDialog(_0x6cd8x3)[_0x5523[8]],320,280,true,true)},null,null,_0x5523[207]));var _0x6cd8x1a=mxUtils[_0x5523[27]](this,function(_0x6cd8x1b,_0x6cd8x1c){this[_0x5523[10]](_0x6cd8x1b,function(){_0x6cd8x5[_0x5523[208]](mxConstants.STYLE_FONTSTYLE,_0x6cd8x1c)})});_0x6cd8x1a(_0x5523[209],mxConstants.FONT_BOLD);_0x6cd8x1a(_0x5523[210],mxConstants.FONT_ITALIC);_0x6cd8x1a(_0x5523[211],mxConstants.FONT_UNDERLINE);this[_0x5523[10]](_0x5523[212],function(){_0x6cd8x5[_0x5523[213]](mxConstants.STYLE_SHADOW)});this[_0x5523[10]](_0x5523[214],function(){_0x6cd8x5[_0x5523[213]](mxConstants.STYLE_DASHED)});this[_0x5523[10]](_0x5523[215],function(){_0x6cd8x5[_0x5523[213]](mxConstants.STYLE_ROUNDED)});this[_0x5523[10]](_0x5523[216],function(){_0x6cd8x5[_0x5523[213]](mxConstants.STYLE_CURVED)});this[_0x5523[10]](_0x5523[112],function(){var _0x6cd8x9=_0x6cd8x5[_0x5523[56]]();if(_0x6cd8x9!=null&&_0x6cd8x9[_0x5523[102]]>0){var _0x6cd8x1d=_0x6cd8x5[_0x5523[101]]();var _0x6cd8x1c=mxUtils[_0x5523[96]](mxResources[_0x5523[26]](_0x5523[95])+_0x5523[117]+mxResources[_0x5523[26]](_0x5523[112])+_0x5523[217],_0x6cd8x1d[_0x5523[218]](_0x6cd8x9[0])||_0x5523[94]);if(_0x6cd8x1c!=null){_0x6cd8x5[_0x5523[219]](_0x6cd8x1c,_0x6cd8x9)};};});this[_0x5523[10]](_0x5523[220],function(){_0x6cd8x5[_0x5523[221]](_0x6cd8x5[_0x5523[92]]())});this[_0x5523[10]](_0x5523[222],function(){var _0x6cd8x7=_0x6cd8x5[_0x5523[92]]();if(_0x6cd8x7!=null&&_0x6cd8x5[_0x5523[101]]()[_0x5523[223]](_0x6cd8x7)){var _0x6cd8x1e=_0x6cd8x4[_0x5523[6]][_0x5523[225]][_0x5523[224]](_0x6cd8x7);if(_0x6cd8x1e instanceof mxEdgeHandler){var _0x6cd8x16=_0x6cd8x5[_0x5523[128]][_0x5523[154]];var _0x6cd8x6=_0x6cd8x5[_0x5523[128]][_0x5523[181]];var _0x6cd8x17=_0x6cd8x16[_0x5523[123]];var _0x6cd8x18=_0x6cd8x16[_0x5523[126]];var _0x6cd8x1f=_0x6cd8x5[_0x5523[101]]()[_0x5523[226]](_0x6cd8x7);var _0x6cd8x20=_0x6cd8x5[_0x5523[121]](_0x6cd8x1f);if(_0x6cd8x5[_0x5523[101]]()[_0x5523[120]](_0x6cd8x1f)&&_0x6cd8x20!=null){_0x6cd8x17+=_0x6cd8x20[_0x5523[123]];_0x6cd8x18+=_0x6cd8x20[_0x5523[126]];};_0x6cd8x1e[_0x5523[231]](_0x6cd8x1e[_0x5523[227]],_0x6cd8x5[_0x5523[229]][_0x5523[228]]/_0x6cd8x6-_0x6cd8x17,_0x6cd8x5[_0x5523[229]][_0x5523[230]]/_0x6cd8x6-_0x6cd8x18);};};});this[_0x5523[10]](_0x5523[232],function(){var _0x6cd8x21=_0x6cd8x3[_0x5523[2]][_0x5523[26]](_0x5523[232]);if(_0x6cd8x21[_0x5523[233]]!=null){_0x6cd8x21[_0x5523[233]][_0x5523[235]](_0x6cd8x21[_0x5523[233]][_0x5523[227]],_0x6cd8x21[_0x5523[234]])};});this[_0x5523[10]](_0x5523[236],function(){function _0x6cd8x22(_0x6cd8xc,_0x6cd8x23,_0x6cd8x24){var _0x6cd8x25=null;var _0x6cd8x9=_0x6cd8x5[_0x5523[56]]();_0x6cd8x5[_0x5523[101]]()[_0x5523[100]]();try{if(_0x6cd8x9[_0x5523[102]]==0){var _0x6cd8x26=_0x6cd8x5[_0x5523[237]]();_0x6cd8x9=[_0x6cd8x5[_0x5523[239]](_0x6cd8x5[_0x5523[238]](),null,_0x5523[94],_0x6cd8x26,_0x6cd8x26,_0x6cd8x23,_0x6cd8x24)];_0x6cd8x25=_0x6cd8x9;};_0x6cd8x5[_0x5523[113]](mxConstants.STYLE_IMAGE,_0x6cd8xc,_0x6cd8x9);_0x6cd8x5[_0x5523[113]](mxConstants.STYLE_SHAPE,_0x5523[236],_0x6cd8x9);if(_0x6cd8x5[_0x5523[240]]()==1){if(_0x6cd8x23!=null&&_0x6cd8x24!=null){var _0x6cd8x7=_0x6cd8x9[0];var _0x6cd8xd=_0x6cd8x5[_0x5523[101]]()[_0x5523[241]](_0x6cd8x7);if(_0x6cd8xd!=null){_0x6cd8xd=_0x6cd8xd[_0x5523[122]]();_0x6cd8xd[_0x5523[124]]=_0x6cd8x23;_0x6cd8xd[_0x5523[125]]=_0x6cd8x24;_0x6cd8x5[_0x5523[101]]()[_0x5523[127]](_0x6cd8x7,_0x6cd8xd);};}};}finally{_0x6cd8x5[_0x5523[101]]()[_0x5523[106]]()};if(_0x6cd8x25!=null){_0x6cd8x5[_0x5523[58]](_0x6cd8x25);_0x6cd8x5[_0x5523[242]](_0x6cd8x25[0]);};}var _0x6cd8xc=_0x5523[94];var _0x6cd8xb=_0x6cd8x5[_0x5523[109]]()[_0x5523[108]](_0x6cd8x5[_0x5523[92]]());if(_0x6cd8xb!=null){_0x6cd8xc=_0x6cd8xb[_0x5523[112]][mxConstants[_0x5523[243]]]||_0x6cd8xc};_0x6cd8xc=mxUtils[_0x5523[96]](mxResources[_0x5523[26]](_0x5523[95])+_0x5523[117]+mxResources[_0x5523[26]](_0x5523[244])+_0x5523[217],_0x6cd8xc);if(_0x6cd8xc!=null){if(_0x6cd8xc[_0x5523[102]]>0){var _0x6cd8x27= new Image();_0x6cd8x27[_0x5523[245]]=function(){_0x6cd8x22(_0x6cd8xc,_0x6cd8x27[_0x5523[124]],_0x6cd8x27[_0x5523[125]])};_0x6cd8x27[_0x5523[246]]=function(){mxUtils[_0x5523[248]](mxResources[_0x5523[26]](_0x5523[247]))};_0x6cd8x27[_0x5523[249]]=_0x6cd8xc;}};});};Actions[_0x5523[4]][_0x5523[10]]=function(_0x6cd8x1b,_0x6cd8x28,_0x6cd8x29,_0x6cd8x2a,_0x6cd8x2b){return this[_0x5523[28]](_0x6cd8x1b, new Action(mxResources[_0x5523[26]](_0x6cd8x1b),_0x6cd8x28,_0x6cd8x29,_0x6cd8x2a,_0x6cd8x2b))};Actions[_0x5523[4]][_0x5523[28]]=function(_0x6cd8x2c,_0x6cd8x15){this[_0x5523[2]][_0x6cd8x2c]=_0x6cd8x15;return _0x6cd8x15;};Actions[_0x5523[4]][_0x5523[26]]=function(_0x6cd8x2c){return this[_0x5523[2]][_0x6cd8x2c]};function Action(_0x6cd8x2e,_0x6cd8x28,_0x6cd8x29,_0x6cd8x2a,_0x6cd8x2b){mxEventSource[_0x5523[250]](this);this[_0x5523[251]]=_0x6cd8x2e;this[_0x5523[145]]=_0x6cd8x28;this[_0x5523[252]]=(_0x6cd8x29!=null)?_0x6cd8x29:true;this[_0x5523[253]]=_0x6cd8x2a;this[_0x5523[254]]=_0x6cd8x2b;}mxUtils[_0x5523[255]](Action,mxEventSource);Action[_0x5523[4]][_0x5523[176]]=function(_0x6cd8xc){if(this[_0x5523[252]]!=_0x6cd8xc){this[_0x5523[252]]=_0x6cd8xc;this[_0x5523[257]]( new mxEventObject(_0x5523[256]));}};Action[_0x5523[4]][_0x5523[168]]=function(_0x6cd8xc){this[_0x5523[258]]=_0x6cd8xc};Action[_0x5523[4]][_0x5523[169]]=function(_0x6cd8x28){this[_0x5523[259]]=_0x6cd8x28};Action[_0x5523[4]][_0x5523[260]]=function(){return this[_0x5523[259]]()};
\ No newline at end of file
index 46228d9..713b049 100644 (file)
@@ -1 +1 @@
-var _0xca4b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x6E\x70\x75\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x65\x63\x6B\x65\x64","\x47\x45\x54","\x6F\x70\x65\x6E","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x61","\x65\x64\x69\x74\x6F\x72","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x73\x65\x6C\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x2D\x2D\x20\x4E\x6F\x6E\x65\x20\x2D\x2D","\x76\x61\x6C\x75\x65","\x30","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x6F\x77\x73","\x73\x65\x6C\x65\x63\x74\x65\x64","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x73\x65\x6C\x65\x63\x74\x32","\x66\x69\x6C\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x66\x61\x74\x68\x65\x72","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x73\x6F\x6E","\x2D","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x62\x6F\x64\x79","\x72\x6F\x75\x6E\x64","\x6D\x61\x78","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x44\x69\x61\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x6D\x6F\x64\x61\x6C\x20\x66\x61\x64\x65\x20\x69\x6E\x20\x63\x65\x6E\x74\x65\x72","\x64\x69\x73\x70\x6C\x61\x79","\x73\x74\x79\x6C\x65","\x62\x6C\x6F\x63\x6B","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x31\x32\x70\x78","\x67\x65\x4D\x6F\x64\x61\x6C\x44\x69\x61\x6C\x6F\x67","\x6D\x6F\x64\x61\x6C\x2D\x64\x69\x61\x6C\x6F\x67","\x62\x67","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x6D\x6F\x64\x61\x6C\x2D\x62\x61\x63\x6B\x64\x72\x6F\x70\x20\x66\x61\x64\x65\x20\x69\x6E","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x6E\x44\x69\x61\x6C\x6F\x67\x43\x6C\x6F\x73\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x6C\x6F\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x64\x61\x6C\x2D\x63\x6F\x6E\x74\x65\x6E\x74","\x6D\x6F\x64\x61\x6C\x2D\x68\x65\x61\x64\x65\x72","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79","\x6D\x6F\x64\x61\x6C\x2D\x66\x6F\x6F\x74\x65\x72","\x68\x34","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x69\x6D\x70\x6F\x72\x74","\x67\x65\x74","\x20\x58\x4D\x4C","\x77\x72\x69\x74\x65","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x62\x75\x74\x74\x6F\x6E","\x72\x6F\x77","\x63\x6F\x6C\x2D\x6D\x64\x2D\x31\x32","\x74\x65\x78\x74\x61\x72\x65\x61","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x33\x37\x34\x70\x78","\x66\x69\x6C\x65","\x61\x63\x63\x65\x70\x74","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x63\x68\x61\x6E\x67\x65","\x66\x69\x6C\x65\x73","\x74\x61\x72\x67\x65\x74","\x6C\x6F\x67","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x73\x75\x6C\x74","\x72\x65\x61\x64\x41\x73\x54\x65\x78\x74","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x6F\x72\x6D\x61\x74\x20\x66\x69\x6C\x65","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x62\x69\x6E\x64","\x62\x74\x6E\x20\x62\x6C\x75\x65","\x63\x61\x6E\x63\x65\x6C","\x62\x74\x6E\x20\x64\x65\x66\x61\x75\x6C\x74","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30\x70\x78","\x31\x37\x36","\x31\x35\x31","\x73\x72\x63","\x2F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x62\x72","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x6C\x61\x62\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x61","\x68\x72\x65\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D\x2F","\x5F\x62\x6C\x61\x6E\x6B","\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D","\x73\x61\x76\x65\x41\x73","\x6E\x61\x6D\x65","\x5F","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x6C\x61\x62\x65\x6C","\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C\x20\x70\x75\x6C\x6C\x2D\x72\x69\x67\x68\x74","\x5F\x63\x6F\x70\x79","\x69\x64","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C","\x73\x61\x76\x65","\x6E\x65\x77","\x5F\x6E\x65\x77","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x61\x6D\x65","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x65\x64\x69\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x64\x61\x74\x61\x54\x72\x61\x6E\x73\x66\x65\x72","\x64\x72\x61\x67\x6F\x76\x65\x72","\x64\x72\x6F\x70","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D","\x65\x78\x70\x6F\x72\x74","\x66\x6F\x72\x6D\x2D\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x20\x66\x6F\x72\x6D\x2D\x72\x6F\x77\x2D\x73\x65\x70\x65\x72\x61\x74\x65\x64","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70\x20\x6C\x61\x73\x74","\x63\x6F\x6C\x2D\x73\x6D\x2D\x34\x20\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x73\x6D\x2D\x38","\x67\x65\x74\x58\x6D\x6C","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x67\x72\x61\x70\x68","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x20\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x2D\x73\x63\x72\x6F\x6C\x6C","\x20","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x73\x69\x70\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x71\x75\x65\x75\x65\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x6F\x64\x65\x6C","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2F\x61\x6C\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x6F\x64\x62\x63\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x5F\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x69\x67\x69\x74","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6E\x75\x6D\x62\x65\x72","\x6D\x69\x6E","\x72\x65\x74\x72\x79","\x59\x65\x73","\x4E\x6F","\x5A\x65\x6E\x64\x65\x73\x6B","\x53\x75\x6D\x6D\x61\x72\x79","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x54\x65\x78\x74","\x42\x6F\x64\x79","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x61\x74\x74\x72\x20\x76\x61\x6C\x75\x65","\x74\x72\x75\x65","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6F\x74\x68\x65\x72","\x68\x65\x6C\x70\x5F","\x70","\x68\x65\x6C\x70\x2D\x62\x6C\x6F\x63\x6B","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x72\x65\x66\x72\x65\x73\x68"];_0xca4b[0];function createCheckbox(_0x42c3x2){var _0x42c3x3=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x3[_0xca4b[5]](_0xca4b[3],_0xca4b[4]);if(_0x42c3x2){_0x42c3x3[_0xca4b[5]](_0xca4b[6],true)};return _0x42c3x3;}function createDropdownFromApi(_0x42c3x5,_0x42c3x2,_0x42c3x6,_0x42c3x7,_0x42c3x8,_0x42c3x9){var _0x42c3xa= new XMLHttpRequest();_0x42c3xa[_0xca4b[8]](_0xca4b[7],_0x42c3x5,false);_0x42c3xa[_0xca4b[14]](_0xca4b[9],_0xca4b[10]+_0x42c3x8[_0xca4b[13]][_0xca4b[12]][_0xca4b[11]]);_0x42c3xa[_0xca4b[15]](null);var _0x42c3xb=[];if(_0x42c3xa[_0xca4b[16]]===200){_0x42c3xb=JSON[_0xca4b[18]](_0x42c3xa[_0xca4b[17]])};var _0x42c3x3=document[_0xca4b[2]](_0xca4b[19]);var _0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[21]]=_0xca4b[22];_0x42c3xc[_0xca4b[23]]=_0xca4b[24];_0x42c3x3[_0xca4b[25]](_0x42c3xc);var _0x42c3xd=_0x42c3x9?_0x42c3xb[_0xca4b[26]]:_0x42c3xb;_0x42c3xd[_0xca4b[28]](function(_0x42c3xe){_0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[21]]=_0x42c3xe[_0x42c3x6];_0x42c3xc[_0xca4b[23]]=_0x42c3xe[_0x42c3x7];_0x42c3xc[_0xca4b[27]]=(_0x42c3xe[_0x42c3x7]==_0x42c3x2);_0x42c3x3[_0xca4b[25]](_0x42c3xc);});_0x42c3x3[_0xca4b[29]]=_0xca4b[30];return _0x42c3x3;}function createGroupedDropdownFromApi(_0x42c3x5,_0x42c3x2,_0x42c3x6,_0x42c3x7,_0x42c3x8,_0x42c3x9,_0x42c3x10){var _0x42c3xa= new XMLHttpRequest();_0x42c3xa[_0xca4b[8]](_0xca4b[7],_0x42c3x5,false);_0x42c3xa[_0xca4b[14]](_0xca4b[9],_0xca4b[10]+_0x42c3x8[_0xca4b[13]][_0xca4b[12]][_0xca4b[11]]);_0x42c3xa[_0xca4b[15]](null);var _0x42c3xb=[];if(_0x42c3xa[_0xca4b[16]]===200){_0x42c3xb=JSON[_0xca4b[18]](_0x42c3xa[_0xca4b[17]])};var _0x42c3x3=document[_0xca4b[2]](_0xca4b[19]);var _0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[21]]=_0xca4b[22];_0x42c3xc[_0xca4b[23]]=_0xca4b[24];_0x42c3x3[_0xca4b[25]](_0x42c3xc);var _0x42c3xd=_0x42c3x9?_0x42c3xb[_0xca4b[26]]:_0x42c3xb;var _0x42c3x11={};var _0x42c3x12={};_0x42c3x11[_0x42c3x10]=null;var _0x42c3x13=_[_0xca4b[31]](_0x42c3xd,_0x42c3x11);var _0x42c3x14={};_0x42c3x13[_0xca4b[28]](function(_0x42c3xe){_0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[29]]=_0xca4b[32];_0x42c3xc[_0xca4b[21]]=_0x42c3xe[_0x42c3x6][_0xca4b[33]]();_0x42c3xc[_0xca4b[23]]=_0x42c3xe[_0x42c3x7];_0x42c3xc[_0xca4b[27]]=(_0x42c3xe[_0x42c3x7]==_0x42c3x2);_0x42c3x3[_0xca4b[25]](_0x42c3xc);_0x42c3x12[_0x42c3x10]=_0x42c3xe[_0x42c3x7];_0x42c3x14=_[_0xca4b[31]](_0x42c3xd,_0x42c3x12);_0x42c3x14[_0xca4b[28]](function(_0x42c3xe){_0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[29]]=_0xca4b[34];_0x42c3xc[_0xca4b[21]]=_0xca4b[35]+_[_0xca4b[36]](_0x42c3xe[_0x42c3x6]);_0x42c3xc[_0xca4b[23]]=_0x42c3xe[_0x42c3x7];_0x42c3xc[_0xca4b[27]]=(_0x42c3xe[_0x42c3x7]==_0x42c3x2);_0x42c3x3[_0xca4b[25]](_0x42c3xc);});});_0x42c3x3[_0xca4b[29]]=_0xca4b[30];return _0x42c3x3;}function createDropdownFromArray(_0x42c3x16,_0x42c3x2){var _0x42c3x3=document[_0xca4b[2]](_0xca4b[19]);for(var _0x42c3x17 in _0x42c3x16){var _0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[21]]=_0x42c3x16[_0x42c3x17];_0x42c3xc[_0xca4b[23]]=_0x42c3x17;if(_0x42c3x2>0||_0x42c3x2!=_0xca4b[37]){_0x42c3xc[_0xca4b[27]]=(_0x42c3x2===_0x42c3x17)?true:false};_0x42c3x3[_0xca4b[25]](_0x42c3xc);};_0x42c3x3[_0xca4b[29]]=_0xca4b[30];return _0x42c3x3;}function Dialog(_0x42c3x8,_0x42c3x19,_0x42c3x1a,_0x42c3x1b,_0x42c3x1c,_0x42c3x1d,_0x42c3x1e){var _0x42c3x1f=0;if(mxClient[_0xca4b[38]]&&document[_0xca4b[39]]!=9){_0x42c3x1f=60};_0x42c3x1a+=_0x42c3x1f;_0x42c3x1b+=_0x42c3x1f;var _0x42c3x20=Math[_0xca4b[43]](0,Math[_0xca4b[42]]((document[_0xca4b[41]][_0xca4b[40]]-_0x42c3x1a)/2));var _0x42c3x21=Math[_0xca4b[43]](0,Math[_0xca4b[42]]((Math[_0xca4b[43]](document[_0xca4b[41]][_0xca4b[44]],document[_0xca4b[45]][_0xca4b[44]])-_0x42c3x1b)/3));var _0x42c3x22=_0x42c3x8[_0xca4b[47]](_0xca4b[46]);_0x42c3x22[_0xca4b[29]]=_0xca4b[48];_0x42c3x22[_0xca4b[50]][_0xca4b[49]]=_0xca4b[51];_0x42c3x22[_0xca4b[50]][_0xca4b[52]]=_0xca4b[53];var _0x42c3x23=_0x42c3x8[_0xca4b[47]](_0xca4b[54]);_0x42c3x23[_0xca4b[29]]=_0xca4b[55];_0x42c3x23[_0xca4b[25]](_0x42c3x19);_0x42c3x22[_0xca4b[25]](_0x42c3x23);if(this[_0xca4b[56]]==null){this[_0xca4b[56]]=_0x42c3x8[_0xca4b[47]](_0xca4b[57]);this[_0xca4b[56]][_0xca4b[29]]=_0xca4b[58];if(mxClient[_0xca4b[59]]){ new mxDivResizer(this[_0xca4b[56]])};};if(_0x42c3x1c){document[_0xca4b[41]][_0xca4b[25]](this[_0xca4b[56]])};document[_0xca4b[41]][_0xca4b[25]](_0x42c3x22);this[_0xca4b[60]]=_0x42c3x1e;this[_0xca4b[61]]=_0x42c3x22;}Dialog[_0xca4b[63]][_0xca4b[62]]=function(){if(this[_0xca4b[60]]!=null){this[_0xca4b[60]]();this[_0xca4b[60]]=null;};this[_0xca4b[61]][_0xca4b[65]][_0xca4b[64]](this[_0xca4b[61]]);this[_0xca4b[56]][_0xca4b[65]][_0xca4b[64]](this[_0xca4b[56]]);};function ImportDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[68]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[72])+_0xca4b[74]);var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x2b=_0x42c3x8[_0xca4b[47]](_0xca4b[78]);var _0x42c3x2c=_0x42c3x8[_0xca4b[47]](_0xca4b[79]);var _0x42c3x2d=document[_0xca4b[2]](_0xca4b[80]);_0x42c3x2d[_0xca4b[50]][_0xca4b[81]]=_0xca4b[82];_0x42c3x2d[_0xca4b[50]][_0xca4b[83]]=_0xca4b[84];var _0x42c3x3=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x3[_0xca4b[3]]=_0xca4b[85];_0x42c3x3[_0xca4b[5]](_0xca4b[86],_0xca4b[87]);_0x42c3x3[_0xca4b[97]](_0xca4b[88],function _0x42c3x2e(_0x42c3x2f){var _0x42c3x30=_0x42c3x2f[_0xca4b[90]][_0xca4b[89]][0];console[_0xca4b[91]](_0x42c3x30);if(_0x42c3x30){if(_0x42c3x30[_0xca4b[3]]===_0xca4b[87]){var _0x42c3x31= new FileReader();_0x42c3x31[_0xca4b[92]]=function(_0x42c3x32){var _0x42c3x33=_0x42c3x32[_0xca4b[90]][_0xca4b[93]];mxUtils[_0xca4b[75]](_0x42c3x2d,_0x42c3x33);};_0x42c3x31[_0xca4b[94]](_0x42c3x30);}else {alert(_0xca4b[95])}}else {alert(_0xca4b[96])};},false);_0x42c3x2c[_0xca4b[25]](_0x42c3x3);_0x42c3x2c[_0xca4b[25]](_0x42c3x2d);_0x42c3x2b[_0xca4b[25]](_0x42c3x2c);_0x42c3x27[_0xca4b[25]](_0x42c3x2b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[72]),mxUtils[_0xca4b[100]](this,function(_0x42c3x35){var _0x42c3x36=mxUtils[_0xca4b[98]](_0x42c3x2d[_0xca4b[23]]);_0x42c3x8[_0xca4b[13]][_0xca4b[99]](_0x42c3x36[_0xca4b[45]]);_0x42c3x8[_0xca4b[76]]();}));_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function AboutDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[68]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[104])+_0xca4b[105]);var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x39=document[_0xca4b[2]](_0xca4b[106]);_0x42c3x39[_0xca4b[50]][_0xca4b[107]]=_0xca4b[108];_0x42c3x39[_0xca4b[5]](_0xca4b[81],_0xca4b[109]);_0x42c3x39[_0xca4b[5]](_0xca4b[81],_0xca4b[110]);_0x42c3x39[_0xca4b[5]](_0xca4b[111],IMAGE_PATH+_0xca4b[112]);_0x42c3x27[_0xca4b[25]](_0x42c3x39);mxUtils[_0xca4b[113]](_0x42c3x27);mxUtils[_0xca4b[75]](_0x42c3x27,_0xca4b[114]+mxClient[_0xca4b[115]]);mxUtils[_0xca4b[113]](_0x42c3x27);var _0x42c3x3a=document[_0xca4b[2]](_0xca4b[116]);_0x42c3x3a[_0xca4b[5]](_0xca4b[117],_0xca4b[118]);_0x42c3x3a[_0xca4b[5]](_0xca4b[90],_0xca4b[119]);mxUtils[_0xca4b[75]](_0x42c3x3a,_0xca4b[120]);_0x42c3x27[_0xca4b[25]](_0x42c3x3a);mxUtils[_0xca4b[113]](_0x42c3x27);mxUtils[_0xca4b[113]](_0x42c3x27);var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[62]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function SaveDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[68]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[121]));var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x3c=_0xca4b[122];var _0x42c3x3d=_0xca4b[123]+_0x42c3x3c;var _0x42c3x2=_0x42c3x8[_0xca4b[13]][_0xca4b[124]]();var _0x42c3x2b=_0x42c3x8[_0xca4b[47]](_0xca4b[78]);var _0x42c3x2c=_0x42c3x8[_0xca4b[47]](_0xca4b[125]);var _0x42c3x3e=_0x42c3x8[_0xca4b[47]](_0xca4b[126]);var _0x42c3x3f=document[_0xca4b[2]](_0xca4b[127]);_0x42c3x3f[_0xca4b[29]]=_0xca4b[128];mxUtils[_0xca4b[75]](_0x42c3x3f,mxResources[_0xca4b[73]](_0x42c3x3c));_0x42c3x2c[_0xca4b[25]](_0x42c3x3f);var _0x42c3x40=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x40[_0xca4b[5]](_0xca4b[23],_0x42c3x2+_0xca4b[129]);_0x42c3x40[_0xca4b[5]](_0xca4b[130],_0x42c3x3d);_0x42c3x40[_0xca4b[29]]=_0xca4b[131];_0x42c3x3e[_0xca4b[25]](_0x42c3x40);_0x42c3x2b[_0xca4b[25]](_0x42c3x2c);_0x42c3x2b[_0xca4b[25]](_0x42c3x3e);_0x42c3x27[_0xca4b[25]](_0x42c3x2b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[132]),function(){_0x42c3x8[_0xca4b[121]](_0x42c3x40[_0xca4b[23]]);_0x42c3x8[_0xca4b[76]]();});_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function NewDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[68]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[133]));var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x3c=_0xca4b[122];var _0x42c3x3d=_0xca4b[123]+_0x42c3x3c;var _0x42c3x2=_0x42c3x8[_0xca4b[13]][_0xca4b[124]]();var _0x42c3x2b=_0x42c3x8[_0xca4b[47]](_0xca4b[78]);var _0x42c3x2c=_0x42c3x8[_0xca4b[47]](_0xca4b[125]);var _0x42c3x3e=_0x42c3x8[_0xca4b[47]](_0xca4b[126]);var _0x42c3x3f=document[_0xca4b[2]](_0xca4b[127]);_0x42c3x3f[_0xca4b[29]]=_0xca4b[128];mxUtils[_0xca4b[75]](_0x42c3x3f,mxResources[_0xca4b[73]](_0x42c3x3c));_0x42c3x2c[_0xca4b[25]](_0x42c3x3f);var _0x42c3x40=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x40[_0xca4b[5]](_0xca4b[23],_0x42c3x2+_0xca4b[134]);_0x42c3x40[_0xca4b[5]](_0xca4b[130],_0x42c3x3d);_0x42c3x40[_0xca4b[29]]=_0xca4b[131];_0x42c3x3e[_0xca4b[25]](_0x42c3x40);_0x42c3x2b[_0xca4b[25]](_0x42c3x2c);_0x42c3x2b[_0xca4b[25]](_0x42c3x3e);_0x42c3x27[_0xca4b[25]](_0x42c3x2b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[133]),function(){_0x42c3x8[_0xca4b[133]](_0x42c3x40[_0xca4b[23]]);_0x42c3x8[_0xca4b[76]]();});_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function VariableDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[68]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[135]));var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x3c=_0xca4b[122];var _0x42c3x3d=_0xca4b[123]+_0x42c3x3c;var _0x42c3x2=_0x42c3x8[_0xca4b[13]][_0xca4b[124]]();var _0x42c3x2b=_0x42c3x8[_0xca4b[47]](_0xca4b[78]);var _0x42c3x2c=_0x42c3x8[_0xca4b[47]](_0xca4b[125]);var _0x42c3x3e=_0x42c3x8[_0xca4b[47]](_0xca4b[126]);var _0x42c3x3f=document[_0xca4b[2]](_0xca4b[127]);_0x42c3x3f[_0xca4b[29]]=_0xca4b[128];mxUtils[_0xca4b[75]](_0x42c3x3f,mxResources[_0xca4b[73]](_0x42c3x3c));_0x42c3x2c[_0xca4b[25]](_0x42c3x3f);var _0x42c3x40=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x40[_0xca4b[5]](_0xca4b[23],_0xca4b[136]);_0x42c3x40[_0xca4b[5]](_0xca4b[130],_0x42c3x3d);_0x42c3x40[_0xca4b[29]]=_0xca4b[131];_0x42c3x3e[_0xca4b[25]](_0x42c3x40);_0x42c3x2b[_0xca4b[25]](_0x42c3x2c);_0x42c3x2b[_0xca4b[25]](_0x42c3x3e);_0x42c3x27[_0xca4b[25]](_0x42c3x2b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[133]),function(){_0x42c3x8[_0xca4b[135]](_0x42c3x40[_0xca4b[23]]);_0x42c3x8[_0xca4b[76]]();});_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function OpenDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[68]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[8]));var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x2b=_0x42c3x8[_0xca4b[47]](_0xca4b[78]);var _0x42c3x2c=_0x42c3x8[_0xca4b[47]](_0xca4b[125]);var _0x42c3x3e=_0x42c3x8[_0xca4b[47]](_0xca4b[126]);var _0x42c3x3f=document[_0xca4b[2]](_0xca4b[127]);_0x42c3x3f[_0xca4b[29]]=_0xca4b[128];mxUtils[_0xca4b[75]](_0x42c3x3f,mxResources[_0xca4b[73]](_0xca4b[122]));_0x42c3x2c[_0xca4b[25]](_0x42c3x3f);var _0x42c3xa= new XMLHttpRequest();_0x42c3xa[_0xca4b[8]](_0xca4b[7],_0xca4b[137],false);_0x42c3xa[_0xca4b[14]](_0xca4b[9],_0xca4b[10]+_0x42c3x8[_0xca4b[13]][_0xca4b[12]][_0xca4b[11]]);_0x42c3xa[_0xca4b[15]](null);var _0x42c3xb=[];if(_0x42c3xa[_0xca4b[16]]===200){_0x42c3xb=JSON[_0xca4b[18]](_0x42c3xa[_0xca4b[17]])};var _0x42c3x40=document[_0xca4b[2]](_0xca4b[19]);for(var _0x42c3x44=0;_0x42c3x44<_0x42c3xb[_0xca4b[138]];_0x42c3x44++){var _0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[21]]=_0x42c3xb[_0x42c3x44][_0xca4b[122]];_0x42c3xc[_0xca4b[23]]=_0x42c3xb[_0x42c3x44][_0xca4b[130]];_0x42c3x40[_0xca4b[25]](_0x42c3xc);};_0x42c3x40[_0xca4b[29]]=_0xca4b[131];_0x42c3x3e[_0xca4b[25]](_0x42c3x40);_0x42c3x2b[_0xca4b[25]](_0x42c3x2c);_0x42c3x2b[_0xca4b[25]](_0x42c3x3e);_0x42c3x27[_0xca4b[25]](_0x42c3x2b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[8]),function(){console[_0xca4b[91]](_0x42c3x40);console[_0xca4b[91]](_0x42c3x40[_0xca4b[23]]);window[_0xca4b[8]](_0xca4b[139]+_0x42c3x40[_0xca4b[23]],_0xca4b[119]);_0x42c3x8[_0xca4b[76]]();});_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function EditFileDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[68]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[140]));var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x2b=_0x42c3x8[_0xca4b[47]](_0xca4b[78]);var _0x42c3x2c=_0x42c3x8[_0xca4b[47]](_0xca4b[79]);var _0x42c3x2d=document[_0xca4b[2]](_0xca4b[80]);_0x42c3x2d[_0xca4b[50]][_0xca4b[81]]=_0xca4b[82];_0x42c3x2d[_0xca4b[50]][_0xca4b[83]]=_0xca4b[84];_0x42c3x2d[_0xca4b[23]]=mxUtils[_0xca4b[142]](_0x42c3x8[_0xca4b[13]][_0xca4b[141]]());if(fileSupport){function _0x42c3x46(_0x42c3x2f){_0x42c3x2f[_0xca4b[143]]();_0x42c3x2f[_0xca4b[144]]();if(_0x42c3x2f[_0xca4b[145]][_0xca4b[89]][_0xca4b[138]]>0){var _0x42c3x47=_0x42c3x2f[_0xca4b[145]][_0xca4b[89]][0];var _0x42c3x48= new FileReader();_0x42c3x48[_0xca4b[92]]=function(_0x42c3x32){_0x42c3x2d[_0xca4b[23]]=_0x42c3x32[_0xca4b[90]][_0xca4b[93]]};_0x42c3x48[_0xca4b[94]](_0x42c3x47);};}function _0x42c3x49(_0x42c3x2f){_0x42c3x2f[_0xca4b[143]]();_0x42c3x2f[_0xca4b[144]]();}_0x42c3x2d[_0xca4b[97]](_0xca4b[146],_0x42c3x49,false);_0x42c3x2d[_0xca4b[97]](_0xca4b[147],_0x42c3x46,false);};_0x42c3x2c[_0xca4b[25]](_0x42c3x2d);_0x42c3x2b[_0xca4b[25]](_0x42c3x2c);_0x42c3x27[_0xca4b[25]](_0x42c3x2b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[132]),function(){var _0x42c3x36=mxUtils[_0xca4b[98]](_0x42c3x2d[_0xca4b[23]]);_0x42c3x8[_0xca4b[13]][_0xca4b[99]](_0x42c3x36[_0xca4b[45]]);_0x42c3x8[_0xca4b[76]]();});_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function ExportDialog(_0x42c3x8){var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[148]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[149])+_0xca4b[74]);var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x4b=_0x42c3x8[_0xca4b[47]](_0xca4b[150]);var _0x42c3x4c=_0x42c3x8[_0xca4b[47]](_0xca4b[151]);var _0x42c3x3f=document[_0xca4b[2]](_0xca4b[127]);_0x42c3x3f[_0xca4b[29]]=_0xca4b[152];mxUtils[_0xca4b[75]](_0x42c3x3f,mxResources[_0xca4b[73]](_0xca4b[153]));var _0x42c3x3=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x3[_0xca4b[5]](_0xca4b[23],_0x42c3x8[_0xca4b[13]][_0xca4b[124]]());_0x42c3x3[_0xca4b[29]]=_0xca4b[131];var _0x42c3x22=_0x42c3x8[_0xca4b[47]](_0xca4b[154]);_0x42c3x22[_0xca4b[25]](_0x42c3x3);_0x42c3x4c[_0xca4b[25]](_0x42c3x3f);_0x42c3x4c[_0xca4b[25]](_0x42c3x22);_0x42c3x4b[_0xca4b[25]](_0x42c3x4c);_0x42c3x27[_0xca4b[25]](_0x42c3x4b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[149]),mxUtils[_0xca4b[100]](this,function(_0x42c3x35){_0x42c3x8[_0xca4b[132]](false);var _0x42c3x4d=encodeURIComponent(mxUtils[_0xca4b[155]](_0x42c3x8[_0xca4b[13]][_0xca4b[141]]())); new mxXmlRequest(SAVE_URL+_0x42c3x8[_0xca4b[13]][_0xca4b[12]][_0xca4b[130]]+_0xca4b[157],_0xca4b[158]+_0x42c3x3[_0xca4b[23]],_0xca4b[7])[_0xca4b[156]](document,_0xca4b[119]);_0x42c3x8[_0xca4b[76]]();}));_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}function GeneralDialog(_0x42c3x8,_0x42c3x4f){var _0x42c3x50=_0x42c3x8[_0xca4b[13]][_0xca4b[159]];var _0x42c3x25=_0x42c3x8[_0xca4b[47]](_0xca4b[66]);var _0x42c3x26=_0x42c3x8[_0xca4b[47]](_0xca4b[67]);var _0x42c3x27=_0x42c3x8[_0xca4b[47]](_0xca4b[160]);var _0x42c3x28=_0x42c3x8[_0xca4b[47]](_0xca4b[69]);var _0x42c3x29=_0x42c3x8[_0xca4b[71]](_0xca4b[70]);mxUtils[_0xca4b[75]](_0x42c3x29,mxResources[_0xca4b[73]](_0xca4b[140])+_0xca4b[161]+mxResources[_0xca4b[73]](_0x42c3x4f[_0xca4b[23]][_0xca4b[162]]));var _0x42c3x2a=mxUtils[_0xca4b[77]](_0xca4b[37],function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x2a[_0xca4b[29]]=_0xca4b[62];_0x42c3x26[_0xca4b[25]](_0x42c3x2a);_0x42c3x26[_0xca4b[25]](_0x42c3x29);var _0x42c3x51=_0x42c3x4f[_0xca4b[23]][_0xca4b[163]][_0xca4b[138]];var _0x42c3x4b=_0x42c3x8[_0xca4b[47]](_0xca4b[150]);for(var _0x42c3x52=0;_0x42c3x52<_0x42c3x51;_0x42c3x52++){var _0x42c3x3c=_0x42c3x4f[_0xca4b[23]][_0xca4b[163]][_0x42c3x52][_0xca4b[122]];var _0x42c3x3d=_0xca4b[123]+_0x42c3x3c;var _0x42c3x2=_0x42c3x4f[_0xca4b[23]][_0xca4b[163]][_0x42c3x52][_0xca4b[23]];var _0x42c3x4c=_0x42c3x8[_0xca4b[47]]((_0x42c3x52==_0x42c3x51-1)?_0xca4b[151]:_0xca4b[164]);var _0x42c3x3f=document[_0xca4b[2]](_0xca4b[127]);_0x42c3x3f[_0xca4b[29]]=_0xca4b[152];mxUtils[_0xca4b[75]](_0x42c3x3f,mxResources[_0xca4b[73]](_0x42c3x3c));_0x42c3x4c[_0xca4b[25]](_0x42c3x3f);var _0x42c3x3;switch(_0x42c3x3c){case _0xca4b[166]:_0x42c3x3=createDropdownFromApi(_0xca4b[165],_0x42c3x2,_0xca4b[122],_0xca4b[130],_0x42c3x8,true);break ;;case _0xca4b[168]:_0x42c3x3=createDropdownFromApi(_0xca4b[167],_0x42c3x2,_0xca4b[122],_0xca4b[122],_0x42c3x8,true);break ;;case _0xca4b[170]:_0x42c3x3=createDropdownFromApi(_0xca4b[169],_0x42c3x2,_0xca4b[122],_0xca4b[130],_0x42c3x8,true);break ;;case _0xca4b[172]:_0x42c3x3=createDropdownFromApi(_0xca4b[171],_0x42c3x2,_0xca4b[122],_0xca4b[130],_0x42c3x8,true);break ;;case _0xca4b[173]:_0x42c3x3=createDropdownFromArray(ISPEECHASRMODEL,_0x42c3x2);break ;;case _0xca4b[174]:_0x42c3x3=createDropdownFromArray(ISPEECHASRLANG,_0x42c3x2);break ;;case _0xca4b[175]:_0x42c3x3=createDropdownFromArray(ISPEECHLANG,_0x42c3x2);break ;;case _0xca4b[176]:_0x42c3x3=createDropdownFromArray(GOOGLETTSLANG,_0x42c3x2);break ;;case _0xca4b[179]:_0x42c3x3=createGroupedDropdownFromApi(_0xca4b[177],_0x42c3x2,_0xca4b[122],_0xca4b[130],_0x42c3x8,false,_0xca4b[178]);break ;;case _0xca4b[181]:_0x42c3x3=createDropdownFromApi(_0xca4b[180],_0x42c3x2,_0xca4b[122],_0xca4b[130],_0x42c3x8,true);break ;;case _0xca4b[183]:_0x42c3x3=createDropdownFromApi(_0xca4b[182],_0x42c3x2,_0xca4b[122],_0xca4b[130],_0x42c3x8,true);break ;;case _0xca4b[186]:_0x42c3x3=createDropdownFromApi(_0xca4b[184],_0x42c3x2,_0xca4b[185],_0xca4b[130],_0x42c3x8,false);break ;;case _0xca4b[187]:;case _0xca4b[188]:;case _0xca4b[189]:;case _0xca4b[190]:;case _0xca4b[17]:;case _0xca4b[193]:_0x42c3x3=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x3[_0xca4b[5]](_0xca4b[3],_0xca4b[191]);_0x42c3x3[_0xca4b[5]](_0xca4b[192],0);_0x42c3x3[_0xca4b[5]](_0xca4b[43],1000);_0x42c3x3[_0xca4b[5]](_0xca4b[23],_0x42c3x2);_0x42c3x3[_0xca4b[29]]=_0xca4b[131];break ;;case _0xca4b[21]:;case _0xca4b[196]:var _0x42c3x3=document[_0xca4b[2]](_0xca4b[19]);var _0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[21]]=_0xca4b[22];_0x42c3xc[_0xca4b[23]]=_0xca4b[37];_0x42c3x3[_0xca4b[25]](_0x42c3xc);var _0x42c3xd=[_0xca4b[194],_0xca4b[195]];_0x42c3xd[_0xca4b[28]](function(_0x42c3xe){_0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);console[_0xca4b[91]](_0x42c3xe);_0x42c3xc[_0xca4b[21]]=_0x42c3xe;_0x42c3xc[_0xca4b[23]]=_0x42c3xe;_0x42c3xc[_0xca4b[27]]=(_0x42c3xe==_0x42c3x2);_0x42c3x3[_0xca4b[25]](_0x42c3xc);});_0x42c3x3[_0xca4b[29]]=_0xca4b[131];break ;;case _0xca4b[197]:var _0x42c3x3=document[_0xca4b[2]](_0xca4b[19]);var _0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);_0x42c3xc[_0xca4b[21]]=_0xca4b[22];_0x42c3xc[_0xca4b[23]]=_0xca4b[37];_0x42c3x3[_0xca4b[25]](_0x42c3xc);var _0x42c3xd=[_0xca4b[194],_0xca4b[195]];_0x42c3xd[_0xca4b[28]](function(_0x42c3xe){_0x42c3xc=document[_0xca4b[2]](_0xca4b[20]);console[_0xca4b[91]](_0x42c3xe);_0x42c3xc[_0xca4b[21]]=_0x42c3xe;_0x42c3xc[_0xca4b[23]]=_0x42c3xe;_0x42c3xc[_0xca4b[27]]=(_0x42c3xe==_0x42c3x2);_0x42c3x3[_0xca4b[25]](_0x42c3xc);});_0x42c3x3[_0xca4b[29]]=_0xca4b[131];break ;;case _0xca4b[199]:_0x42c3x3=document[_0xca4b[2]](_0xca4b[80]);_0x42c3x3[_0xca4b[198]]=_0x42c3x2;_0x42c3x3[_0xca4b[29]]=_0xca4b[131];break ;;case _0xca4b[200]:_0x42c3x3=document[_0xca4b[2]](_0xca4b[80]);_0x42c3x3[_0xca4b[198]]=_0x42c3x2;_0x42c3x3[_0xca4b[29]]=_0xca4b[131];break ;;case _0xca4b[201]:_0x42c3x3=document[_0xca4b[2]](_0xca4b[80]);_0x42c3x3[_0xca4b[198]]=_0x42c3x2;_0x42c3x3[_0xca4b[29]]=_0xca4b[131];break ;;case _0xca4b[205]:var _0x42c3x3=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x3[_0xca4b[5]](_0xca4b[3],_0xca4b[4]);console[_0xca4b[91]](_0xca4b[202],_0x42c3x2);if(_0x42c3x2==_0xca4b[203]){_0x42c3x3[_0xca4b[5]](_0xca4b[6],true)}else {_0x42c3x3[_0xca4b[204]](_0xca4b[6])};break ;;default:_0x42c3x3=document[_0xca4b[2]](_0xca4b[1]);_0x42c3x3[_0xca4b[5]](_0xca4b[23],_0x42c3x2);_0x42c3x3[_0xca4b[29]]=_0xca4b[131];break ;;};_0x42c3x3[_0xca4b[5]](_0xca4b[130],_0x42c3x3d);var _0x42c3x22=_0x42c3x8[_0xca4b[47]](_0xca4b[154]);_0x42c3x22[_0xca4b[25]](_0x42c3x3);if(mxResources[_0xca4b[73]](_0xca4b[206]+_0x42c3x3c)){var _0x42c3x53=_0x42c3x8[_0xca4b[47]](_0xca4b[207]);_0x42c3x53[_0xca4b[29]]=_0xca4b[208];mxUtils[_0xca4b[75]](_0x42c3x53,mxResources[_0xca4b[73]](_0xca4b[206]+_0x42c3x3c));_0x42c3x22[_0xca4b[25]](_0x42c3x53);};_0x42c3x4c[_0xca4b[25]](_0x42c3x22);_0x42c3x4b[_0xca4b[25]](_0x42c3x4c);};_0x42c3x27[_0xca4b[25]](_0x42c3x4b);var _0x42c3x34=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[132]),mxUtils[_0xca4b[100]](this,function(_0x42c3x35){for(var _0x42c3x52=0;_0x42c3x52<_0x42c3x4f[_0xca4b[23]][_0xca4b[163]][_0xca4b[138]];_0x42c3x52++){var _0x42c3x3d=_0xca4b[123]+_0x42c3x4f[_0xca4b[23]][_0xca4b[163]][_0x42c3x52][_0xca4b[122]];var _0x42c3x3c=_0x42c3x4f[_0xca4b[23]][_0xca4b[163]][_0x42c3x52][_0xca4b[122]];if(_0x42c3x3c==_0xca4b[205]){_0x42c3x4f[_0xca4b[5]](_0x42c3x3c,document[_0xca4b[209]](_0x42c3x3d)[_0xca4b[6]]);console[_0xca4b[91]](_0x42c3x3c,document[_0xca4b[209]](_0x42c3x3d)[_0xca4b[6]]);}else {console[_0xca4b[91]](_0x42c3x3c,document[_0xca4b[209]](_0x42c3x3d)[_0xca4b[23]]);_0x42c3x4f[_0xca4b[5]](_0x42c3x3c,document[_0xca4b[209]](_0x42c3x3d)[_0xca4b[23]]);};};_0x42c3x50[_0xca4b[210]](_0x42c3x4f);_0x42c3x8[_0xca4b[76]]();}));_0x42c3x34[_0xca4b[29]]=_0xca4b[101];var _0x42c3x37=mxUtils[_0xca4b[77]](mxResources[_0xca4b[73]](_0xca4b[102]),function(){_0x42c3x8[_0xca4b[76]]()});_0x42c3x37[_0xca4b[29]]=_0xca4b[103];_0x42c3x28[_0xca4b[25]](_0x42c3x34);_0x42c3x28[_0xca4b[25]](_0x42c3x37);_0x42c3x25[_0xca4b[25]](_0x42c3x26);_0x42c3x25[_0xca4b[25]](_0x42c3x27);_0x42c3x25[_0xca4b[25]](_0x42c3x28);this[_0xca4b[61]]=_0x42c3x25;}
\ No newline at end of file
+var _0x7df6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x6E\x70\x75\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x65\x63\x6B\x65\x64","\x47\x45\x54","\x6F\x70\x65\x6E","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x61","\x65\x64\x69\x74\x6F\x72","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x73\x65\x6C\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x2D\x2D\x20\x4E\x6F\x6E\x65\x20\x2D\x2D","\x76\x61\x6C\x75\x65","\x30","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x6F\x77\x73","\x73\x65\x6C\x65\x63\x74\x65\x64","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x73\x65\x6C\x65\x63\x74\x32","\x66\x69\x6C\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x66\x61\x74\x68\x65\x72","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x73\x6F\x6E","\x2D","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x62\x6F\x64\x79","\x72\x6F\x75\x6E\x64","\x6D\x61\x78","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x44\x69\x61\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x6D\x6F\x64\x61\x6C\x20\x66\x61\x64\x65\x20\x69\x6E\x20\x63\x65\x6E\x74\x65\x72","\x64\x69\x73\x70\x6C\x61\x79","\x73\x74\x79\x6C\x65","\x62\x6C\x6F\x63\x6B","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x31\x32\x70\x78","\x67\x65\x4D\x6F\x64\x61\x6C\x44\x69\x61\x6C\x6F\x67","\x6D\x6F\x64\x61\x6C\x2D\x64\x69\x61\x6C\x6F\x67","\x62\x67","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x6D\x6F\x64\x61\x6C\x2D\x62\x61\x63\x6B\x64\x72\x6F\x70\x20\x66\x61\x64\x65\x20\x69\x6E","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x6E\x44\x69\x61\x6C\x6F\x67\x43\x6C\x6F\x73\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x6C\x6F\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x64\x61\x6C\x2D\x63\x6F\x6E\x74\x65\x6E\x74","\x6D\x6F\x64\x61\x6C\x2D\x68\x65\x61\x64\x65\x72","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79","\x6D\x6F\x64\x61\x6C\x2D\x66\x6F\x6F\x74\x65\x72","\x68\x34","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x69\x6D\x70\x6F\x72\x74","\x67\x65\x74","\x20\x58\x4D\x4C","\x77\x72\x69\x74\x65","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x62\x75\x74\x74\x6F\x6E","\x72\x6F\x77","\x63\x6F\x6C\x2D\x6D\x64\x2D\x31\x32","\x74\x65\x78\x74\x61\x72\x65\x61","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x33\x37\x34\x70\x78","\x66\x69\x6C\x65","\x61\x63\x63\x65\x70\x74","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x63\x68\x61\x6E\x67\x65","\x66\x69\x6C\x65\x73","\x74\x61\x72\x67\x65\x74","\x6C\x6F\x67","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x73\x75\x6C\x74","\x72\x65\x61\x64\x41\x73\x54\x65\x78\x74","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x6F\x72\x6D\x61\x74\x20\x66\x69\x6C\x65","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x62\x69\x6E\x64","\x62\x74\x6E\x20\x62\x6C\x75\x65","\x63\x61\x6E\x63\x65\x6C","\x62\x74\x6E\x20\x64\x65\x66\x61\x75\x6C\x74","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30\x70\x78","\x31\x37\x36","\x31\x35\x31","\x73\x72\x63","\x2F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x62\x72","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x6C\x61\x62\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x61","\x68\x72\x65\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D\x2F","\x5F\x62\x6C\x61\x6E\x6B","\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D","\x73\x61\x76\x65\x41\x73","\x6E\x61\x6D\x65","\x5F","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x6C\x61\x62\x65\x6C","\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C\x20\x70\x75\x6C\x6C\x2D\x72\x69\x67\x68\x74","\x5F\x63\x6F\x70\x79","\x69\x64","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C","\x73\x61\x76\x65","\x6E\x65\x77","\x5F\x6E\x65\x77","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x61\x6D\x65","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x65\x64\x69\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x64\x61\x74\x61\x54\x72\x61\x6E\x73\x66\x65\x72","\x64\x72\x61\x67\x6F\x76\x65\x72","\x64\x72\x6F\x70","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D","\x65\x78\x70\x6F\x72\x74","\x66\x6F\x72\x6D\x2D\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x20\x66\x6F\x72\x6D\x2D\x72\x6F\x77\x2D\x73\x65\x70\x65\x72\x61\x74\x65\x64","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70\x20\x6C\x61\x73\x74","\x63\x6F\x6C\x2D\x73\x6D\x2D\x34\x20\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x73\x6D\x2D\x38","\x67\x65\x74\x58\x6D\x6C","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x67\x72\x61\x70\x68","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x20\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x2D\x73\x63\x72\x6F\x6C\x6C","\x20","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x73\x69\x70\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x71\x75\x65\x75\x65\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x6F\x64\x65\x6C","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2F\x61\x6C\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x6F\x64\x62\x63\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x5F\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x69\x67\x69\x74","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6E\x75\x6D\x62\x65\x72","\x6D\x69\x6E","\x72\x65\x74\x72\x79","\x59\x65\x73","\x4E\x6F","\x5A\x65\x6E\x64\x65\x73\x6B","\x53\x75\x6D\x6D\x61\x72\x79","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x54\x65\x78\x74","\x42\x6F\x64\x79","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x61\x74\x74\x72\x20\x76\x61\x6C\x75\x65","\x74\x72\x75\x65","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6F\x74\x68\x65\x72","\x68\x65\x6C\x70\x5F","\x70","\x68\x65\x6C\x70\x2D\x62\x6C\x6F\x63\x6B","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x72\x65\x66\x72\x65\x73\x68"];_0x7df6[0];function createCheckbox(_0x52f0x2){var _0x52f0x3=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x3[_0x7df6[5]](_0x7df6[3],_0x7df6[4]);if(_0x52f0x2){_0x52f0x3[_0x7df6[5]](_0x7df6[6],true)};return _0x52f0x3;}function createDropdownFromApi(_0x52f0x5,_0x52f0x2,_0x52f0x6,_0x52f0x7,_0x52f0x8,_0x52f0x9){var _0x52f0xa= new XMLHttpRequest();_0x52f0xa[_0x7df6[8]](_0x7df6[7],_0x52f0x5,false);_0x52f0xa[_0x7df6[14]](_0x7df6[9],_0x7df6[10]+_0x52f0x8[_0x7df6[13]][_0x7df6[12]][_0x7df6[11]]);_0x52f0xa[_0x7df6[15]](null);var _0x52f0xb=[];if(_0x52f0xa[_0x7df6[16]]===200){_0x52f0xb=JSON[_0x7df6[18]](_0x52f0xa[_0x7df6[17]])};var _0x52f0x3=document[_0x7df6[2]](_0x7df6[19]);var _0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[21]]=_0x7df6[22];_0x52f0xc[_0x7df6[23]]=_0x7df6[24];_0x52f0x3[_0x7df6[25]](_0x52f0xc);var _0x52f0xd=_0x52f0x9?_0x52f0xb[_0x7df6[26]]:_0x52f0xb;_0x52f0xd[_0x7df6[28]](function(_0x52f0xe){_0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[21]]=_0x52f0xe[_0x52f0x6];_0x52f0xc[_0x7df6[23]]=_0x52f0xe[_0x52f0x7];_0x52f0xc[_0x7df6[27]]=(_0x52f0xe[_0x52f0x7]==_0x52f0x2);_0x52f0x3[_0x7df6[25]](_0x52f0xc);});_0x52f0x3[_0x7df6[29]]=_0x7df6[30];return _0x52f0x3;}function createGroupedDropdownFromApi(_0x52f0x5,_0x52f0x2,_0x52f0x6,_0x52f0x7,_0x52f0x8,_0x52f0x9,_0x52f0x10){var _0x52f0xa= new XMLHttpRequest();_0x52f0xa[_0x7df6[8]](_0x7df6[7],_0x52f0x5,false);_0x52f0xa[_0x7df6[14]](_0x7df6[9],_0x7df6[10]+_0x52f0x8[_0x7df6[13]][_0x7df6[12]][_0x7df6[11]]);_0x52f0xa[_0x7df6[15]](null);var _0x52f0xb=[];if(_0x52f0xa[_0x7df6[16]]===200){_0x52f0xb=JSON[_0x7df6[18]](_0x52f0xa[_0x7df6[17]])};var _0x52f0x3=document[_0x7df6[2]](_0x7df6[19]);var _0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[21]]=_0x7df6[22];_0x52f0xc[_0x7df6[23]]=_0x7df6[24];_0x52f0x3[_0x7df6[25]](_0x52f0xc);var _0x52f0xd=_0x52f0x9?_0x52f0xb[_0x7df6[26]]:_0x52f0xb;var _0x52f0x11={};var _0x52f0x12={};_0x52f0x11[_0x52f0x10]=null;var _0x52f0x13=_[_0x7df6[31]](_0x52f0xd,_0x52f0x11);var _0x52f0x14={};_0x52f0x13[_0x7df6[28]](function(_0x52f0xe){_0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[29]]=_0x7df6[32];_0x52f0xc[_0x7df6[21]]=_0x52f0xe[_0x52f0x6][_0x7df6[33]]();_0x52f0xc[_0x7df6[23]]=_0x52f0xe[_0x52f0x7];_0x52f0xc[_0x7df6[27]]=(_0x52f0xe[_0x52f0x7]==_0x52f0x2);_0x52f0x3[_0x7df6[25]](_0x52f0xc);_0x52f0x12[_0x52f0x10]=_0x52f0xe[_0x52f0x7];_0x52f0x14=_[_0x7df6[31]](_0x52f0xd,_0x52f0x12);_0x52f0x14[_0x7df6[28]](function(_0x52f0xe){_0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[29]]=_0x7df6[34];_0x52f0xc[_0x7df6[21]]=_0x7df6[35]+_[_0x7df6[36]](_0x52f0xe[_0x52f0x6]);_0x52f0xc[_0x7df6[23]]=_0x52f0xe[_0x52f0x7];_0x52f0xc[_0x7df6[27]]=(_0x52f0xe[_0x52f0x7]==_0x52f0x2);_0x52f0x3[_0x7df6[25]](_0x52f0xc);});});_0x52f0x3[_0x7df6[29]]=_0x7df6[30];return _0x52f0x3;}function createDropdownFromArray(_0x52f0x16,_0x52f0x2){var _0x52f0x3=document[_0x7df6[2]](_0x7df6[19]);for(var _0x52f0x17 in _0x52f0x16){var _0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[21]]=_0x52f0x16[_0x52f0x17];_0x52f0xc[_0x7df6[23]]=_0x52f0x17;if(_0x52f0x2>0||_0x52f0x2!=_0x7df6[37]){_0x52f0xc[_0x7df6[27]]=(_0x52f0x2===_0x52f0x17)?true:false};_0x52f0x3[_0x7df6[25]](_0x52f0xc);};_0x52f0x3[_0x7df6[29]]=_0x7df6[30];return _0x52f0x3;}function Dialog(_0x52f0x8,_0x52f0x19,_0x52f0x1a,_0x52f0x1b,_0x52f0x1c,_0x52f0x1d,_0x52f0x1e){var _0x52f0x1f=0;if(mxClient[_0x7df6[38]]&&document[_0x7df6[39]]!=9){_0x52f0x1f=60};_0x52f0x1a+=_0x52f0x1f;_0x52f0x1b+=_0x52f0x1f;var _0x52f0x20=Math[_0x7df6[43]](0,Math[_0x7df6[42]]((document[_0x7df6[41]][_0x7df6[40]]-_0x52f0x1a)/2));var _0x52f0x21=Math[_0x7df6[43]](0,Math[_0x7df6[42]]((Math[_0x7df6[43]](document[_0x7df6[41]][_0x7df6[44]],document[_0x7df6[45]][_0x7df6[44]])-_0x52f0x1b)/3));var _0x52f0x22=_0x52f0x8[_0x7df6[47]](_0x7df6[46]);_0x52f0x22[_0x7df6[29]]=_0x7df6[48];_0x52f0x22[_0x7df6[50]][_0x7df6[49]]=_0x7df6[51];_0x52f0x22[_0x7df6[50]][_0x7df6[52]]=_0x7df6[53];var _0x52f0x23=_0x52f0x8[_0x7df6[47]](_0x7df6[54]);_0x52f0x23[_0x7df6[29]]=_0x7df6[55];_0x52f0x23[_0x7df6[25]](_0x52f0x19);_0x52f0x22[_0x7df6[25]](_0x52f0x23);if(this[_0x7df6[56]]==null){this[_0x7df6[56]]=_0x52f0x8[_0x7df6[47]](_0x7df6[57]);this[_0x7df6[56]][_0x7df6[29]]=_0x7df6[58];if(mxClient[_0x7df6[59]]){ new mxDivResizer(this[_0x7df6[56]])};};if(_0x52f0x1c){document[_0x7df6[41]][_0x7df6[25]](this[_0x7df6[56]])};document[_0x7df6[41]][_0x7df6[25]](_0x52f0x22);this[_0x7df6[60]]=_0x52f0x1e;this[_0x7df6[61]]=_0x52f0x22;}Dialog[_0x7df6[63]][_0x7df6[62]]=function(){if(this[_0x7df6[60]]!=null){this[_0x7df6[60]]();this[_0x7df6[60]]=null;};this[_0x7df6[61]][_0x7df6[65]][_0x7df6[64]](this[_0x7df6[61]]);this[_0x7df6[56]][_0x7df6[65]][_0x7df6[64]](this[_0x7df6[56]]);};function ImportDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[68]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[72])+_0x7df6[74]);var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x2b=_0x52f0x8[_0x7df6[47]](_0x7df6[78]);var _0x52f0x2c=_0x52f0x8[_0x7df6[47]](_0x7df6[79]);var _0x52f0x2d=document[_0x7df6[2]](_0x7df6[80]);_0x52f0x2d[_0x7df6[50]][_0x7df6[81]]=_0x7df6[82];_0x52f0x2d[_0x7df6[50]][_0x7df6[83]]=_0x7df6[84];var _0x52f0x3=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x3[_0x7df6[3]]=_0x7df6[85];_0x52f0x3[_0x7df6[5]](_0x7df6[86],_0x7df6[87]);_0x52f0x3[_0x7df6[97]](_0x7df6[88],function _0x52f0x2e(_0x52f0x2f){var _0x52f0x30=_0x52f0x2f[_0x7df6[90]][_0x7df6[89]][0];console[_0x7df6[91]](_0x52f0x30);if(_0x52f0x30){if(_0x52f0x30[_0x7df6[3]]===_0x7df6[87]){var _0x52f0x31= new FileReader();_0x52f0x31[_0x7df6[92]]=function(_0x52f0x32){var _0x52f0x33=_0x52f0x32[_0x7df6[90]][_0x7df6[93]];mxUtils[_0x7df6[75]](_0x52f0x2d,_0x52f0x33);};_0x52f0x31[_0x7df6[94]](_0x52f0x30);}else {alert(_0x7df6[95])}}else {alert(_0x7df6[96])};},false);_0x52f0x2c[_0x7df6[25]](_0x52f0x3);_0x52f0x2c[_0x7df6[25]](_0x52f0x2d);_0x52f0x2b[_0x7df6[25]](_0x52f0x2c);_0x52f0x27[_0x7df6[25]](_0x52f0x2b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[72]),mxUtils[_0x7df6[100]](this,function(_0x52f0x35){var _0x52f0x36=mxUtils[_0x7df6[98]](_0x52f0x2d[_0x7df6[23]]);_0x52f0x8[_0x7df6[13]][_0x7df6[99]](_0x52f0x36[_0x7df6[45]]);_0x52f0x8[_0x7df6[76]]();}));_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function AboutDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[68]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[104])+_0x7df6[105]);var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x39=document[_0x7df6[2]](_0x7df6[106]);_0x52f0x39[_0x7df6[50]][_0x7df6[107]]=_0x7df6[108];_0x52f0x39[_0x7df6[5]](_0x7df6[81],_0x7df6[109]);_0x52f0x39[_0x7df6[5]](_0x7df6[81],_0x7df6[110]);_0x52f0x39[_0x7df6[5]](_0x7df6[111],IMAGE_PATH+_0x7df6[112]);_0x52f0x27[_0x7df6[25]](_0x52f0x39);mxUtils[_0x7df6[113]](_0x52f0x27);mxUtils[_0x7df6[75]](_0x52f0x27,_0x7df6[114]+mxClient[_0x7df6[115]]);mxUtils[_0x7df6[113]](_0x52f0x27);var _0x52f0x3a=document[_0x7df6[2]](_0x7df6[116]);_0x52f0x3a[_0x7df6[5]](_0x7df6[117],_0x7df6[118]);_0x52f0x3a[_0x7df6[5]](_0x7df6[90],_0x7df6[119]);mxUtils[_0x7df6[75]](_0x52f0x3a,_0x7df6[120]);_0x52f0x27[_0x7df6[25]](_0x52f0x3a);mxUtils[_0x7df6[113]](_0x52f0x27);mxUtils[_0x7df6[113]](_0x52f0x27);var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[62]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function SaveDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[68]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[121]));var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x3c=_0x7df6[122];var _0x52f0x3d=_0x7df6[123]+_0x52f0x3c;var _0x52f0x2=_0x52f0x8[_0x7df6[13]][_0x7df6[124]]();var _0x52f0x2b=_0x52f0x8[_0x7df6[47]](_0x7df6[78]);var _0x52f0x2c=_0x52f0x8[_0x7df6[47]](_0x7df6[125]);var _0x52f0x3e=_0x52f0x8[_0x7df6[47]](_0x7df6[126]);var _0x52f0x3f=document[_0x7df6[2]](_0x7df6[127]);_0x52f0x3f[_0x7df6[29]]=_0x7df6[128];mxUtils[_0x7df6[75]](_0x52f0x3f,mxResources[_0x7df6[73]](_0x52f0x3c));_0x52f0x2c[_0x7df6[25]](_0x52f0x3f);var _0x52f0x40=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x40[_0x7df6[5]](_0x7df6[23],_0x52f0x2+_0x7df6[129]);_0x52f0x40[_0x7df6[5]](_0x7df6[130],_0x52f0x3d);_0x52f0x40[_0x7df6[29]]=_0x7df6[131];_0x52f0x3e[_0x7df6[25]](_0x52f0x40);_0x52f0x2b[_0x7df6[25]](_0x52f0x2c);_0x52f0x2b[_0x7df6[25]](_0x52f0x3e);_0x52f0x27[_0x7df6[25]](_0x52f0x2b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[132]),function(){_0x52f0x8[_0x7df6[121]](_0x52f0x40[_0x7df6[23]]);_0x52f0x8[_0x7df6[76]]();});_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function NewDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[68]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[133]));var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x3c=_0x7df6[122];var _0x52f0x3d=_0x7df6[123]+_0x52f0x3c;var _0x52f0x2=_0x52f0x8[_0x7df6[13]][_0x7df6[124]]();var _0x52f0x2b=_0x52f0x8[_0x7df6[47]](_0x7df6[78]);var _0x52f0x2c=_0x52f0x8[_0x7df6[47]](_0x7df6[125]);var _0x52f0x3e=_0x52f0x8[_0x7df6[47]](_0x7df6[126]);var _0x52f0x3f=document[_0x7df6[2]](_0x7df6[127]);_0x52f0x3f[_0x7df6[29]]=_0x7df6[128];mxUtils[_0x7df6[75]](_0x52f0x3f,mxResources[_0x7df6[73]](_0x52f0x3c));_0x52f0x2c[_0x7df6[25]](_0x52f0x3f);var _0x52f0x40=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x40[_0x7df6[5]](_0x7df6[23],_0x52f0x2+_0x7df6[134]);_0x52f0x40[_0x7df6[5]](_0x7df6[130],_0x52f0x3d);_0x52f0x40[_0x7df6[29]]=_0x7df6[131];_0x52f0x3e[_0x7df6[25]](_0x52f0x40);_0x52f0x2b[_0x7df6[25]](_0x52f0x2c);_0x52f0x2b[_0x7df6[25]](_0x52f0x3e);_0x52f0x27[_0x7df6[25]](_0x52f0x2b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[133]),function(){_0x52f0x8[_0x7df6[133]](_0x52f0x40[_0x7df6[23]]);_0x52f0x8[_0x7df6[76]]();});_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function VariableDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[68]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[135]));var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x3c=_0x7df6[122];var _0x52f0x3d=_0x7df6[123]+_0x52f0x3c;var _0x52f0x2=_0x52f0x8[_0x7df6[13]][_0x7df6[124]]();var _0x52f0x2b=_0x52f0x8[_0x7df6[47]](_0x7df6[78]);var _0x52f0x2c=_0x52f0x8[_0x7df6[47]](_0x7df6[125]);var _0x52f0x3e=_0x52f0x8[_0x7df6[47]](_0x7df6[126]);var _0x52f0x3f=document[_0x7df6[2]](_0x7df6[127]);_0x52f0x3f[_0x7df6[29]]=_0x7df6[128];mxUtils[_0x7df6[75]](_0x52f0x3f,mxResources[_0x7df6[73]](_0x52f0x3c));_0x52f0x2c[_0x7df6[25]](_0x52f0x3f);var _0x52f0x40=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x40[_0x7df6[5]](_0x7df6[23],_0x7df6[136]);_0x52f0x40[_0x7df6[5]](_0x7df6[130],_0x52f0x3d);_0x52f0x40[_0x7df6[29]]=_0x7df6[131];_0x52f0x3e[_0x7df6[25]](_0x52f0x40);_0x52f0x2b[_0x7df6[25]](_0x52f0x2c);_0x52f0x2b[_0x7df6[25]](_0x52f0x3e);_0x52f0x27[_0x7df6[25]](_0x52f0x2b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[133]),function(){_0x52f0x8[_0x7df6[135]](_0x52f0x40[_0x7df6[23]]);_0x52f0x8[_0x7df6[76]]();});_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function OpenDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[68]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[8]));var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x2b=_0x52f0x8[_0x7df6[47]](_0x7df6[78]);var _0x52f0x2c=_0x52f0x8[_0x7df6[47]](_0x7df6[125]);var _0x52f0x3e=_0x52f0x8[_0x7df6[47]](_0x7df6[126]);var _0x52f0x3f=document[_0x7df6[2]](_0x7df6[127]);_0x52f0x3f[_0x7df6[29]]=_0x7df6[128];mxUtils[_0x7df6[75]](_0x52f0x3f,mxResources[_0x7df6[73]](_0x7df6[122]));_0x52f0x2c[_0x7df6[25]](_0x52f0x3f);var _0x52f0xa= new XMLHttpRequest();_0x52f0xa[_0x7df6[8]](_0x7df6[7],_0x7df6[137],false);_0x52f0xa[_0x7df6[14]](_0x7df6[9],_0x7df6[10]+_0x52f0x8[_0x7df6[13]][_0x7df6[12]][_0x7df6[11]]);_0x52f0xa[_0x7df6[15]](null);var _0x52f0xb=[];if(_0x52f0xa[_0x7df6[16]]===200){_0x52f0xb=JSON[_0x7df6[18]](_0x52f0xa[_0x7df6[17]])};var _0x52f0x40=document[_0x7df6[2]](_0x7df6[19]);for(var _0x52f0x44=0;_0x52f0x44<_0x52f0xb[_0x7df6[138]];_0x52f0x44++){var _0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[21]]=_0x52f0xb[_0x52f0x44][_0x7df6[122]];_0x52f0xc[_0x7df6[23]]=_0x52f0xb[_0x52f0x44][_0x7df6[130]];_0x52f0x40[_0x7df6[25]](_0x52f0xc);};_0x52f0x40[_0x7df6[29]]=_0x7df6[131];_0x52f0x3e[_0x7df6[25]](_0x52f0x40);_0x52f0x2b[_0x7df6[25]](_0x52f0x2c);_0x52f0x2b[_0x7df6[25]](_0x52f0x3e);_0x52f0x27[_0x7df6[25]](_0x52f0x2b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[8]),function(){console[_0x7df6[91]](_0x52f0x40);console[_0x7df6[91]](_0x52f0x40[_0x7df6[23]]);window[_0x7df6[8]](_0x7df6[139]+_0x52f0x40[_0x7df6[23]],_0x7df6[119]);_0x52f0x8[_0x7df6[76]]();});_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function EditFileDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[68]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[140]));var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x2b=_0x52f0x8[_0x7df6[47]](_0x7df6[78]);var _0x52f0x2c=_0x52f0x8[_0x7df6[47]](_0x7df6[79]);var _0x52f0x2d=document[_0x7df6[2]](_0x7df6[80]);_0x52f0x2d[_0x7df6[50]][_0x7df6[81]]=_0x7df6[82];_0x52f0x2d[_0x7df6[50]][_0x7df6[83]]=_0x7df6[84];_0x52f0x2d[_0x7df6[23]]=mxUtils[_0x7df6[142]](_0x52f0x8[_0x7df6[13]][_0x7df6[141]]());if(fileSupport){function _0x52f0x46(_0x52f0x2f){_0x52f0x2f[_0x7df6[143]]();_0x52f0x2f[_0x7df6[144]]();if(_0x52f0x2f[_0x7df6[145]][_0x7df6[89]][_0x7df6[138]]>0){var _0x52f0x47=_0x52f0x2f[_0x7df6[145]][_0x7df6[89]][0];var _0x52f0x48= new FileReader();_0x52f0x48[_0x7df6[92]]=function(_0x52f0x32){_0x52f0x2d[_0x7df6[23]]=_0x52f0x32[_0x7df6[90]][_0x7df6[93]]};_0x52f0x48[_0x7df6[94]](_0x52f0x47);};}function _0x52f0x49(_0x52f0x2f){_0x52f0x2f[_0x7df6[143]]();_0x52f0x2f[_0x7df6[144]]();}_0x52f0x2d[_0x7df6[97]](_0x7df6[146],_0x52f0x49,false);_0x52f0x2d[_0x7df6[97]](_0x7df6[147],_0x52f0x46,false);};_0x52f0x2c[_0x7df6[25]](_0x52f0x2d);_0x52f0x2b[_0x7df6[25]](_0x52f0x2c);_0x52f0x27[_0x7df6[25]](_0x52f0x2b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[132]),function(){var _0x52f0x36=mxUtils[_0x7df6[98]](_0x52f0x2d[_0x7df6[23]]);_0x52f0x8[_0x7df6[13]][_0x7df6[99]](_0x52f0x36[_0x7df6[45]]);_0x52f0x8[_0x7df6[76]]();});_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function ExportDialog(_0x52f0x8){var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[148]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[149])+_0x7df6[74]);var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x4b=_0x52f0x8[_0x7df6[47]](_0x7df6[150]);var _0x52f0x4c=_0x52f0x8[_0x7df6[47]](_0x7df6[151]);var _0x52f0x3f=document[_0x7df6[2]](_0x7df6[127]);_0x52f0x3f[_0x7df6[29]]=_0x7df6[152];mxUtils[_0x7df6[75]](_0x52f0x3f,mxResources[_0x7df6[73]](_0x7df6[153]));var _0x52f0x3=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x3[_0x7df6[5]](_0x7df6[23],_0x52f0x8[_0x7df6[13]][_0x7df6[124]]());_0x52f0x3[_0x7df6[29]]=_0x7df6[131];var _0x52f0x22=_0x52f0x8[_0x7df6[47]](_0x7df6[154]);_0x52f0x22[_0x7df6[25]](_0x52f0x3);_0x52f0x4c[_0x7df6[25]](_0x52f0x3f);_0x52f0x4c[_0x7df6[25]](_0x52f0x22);_0x52f0x4b[_0x7df6[25]](_0x52f0x4c);_0x52f0x27[_0x7df6[25]](_0x52f0x4b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[149]),mxUtils[_0x7df6[100]](this,function(_0x52f0x35){_0x52f0x8[_0x7df6[132]](false);var _0x52f0x4d=encodeURIComponent(mxUtils[_0x7df6[155]](_0x52f0x8[_0x7df6[13]][_0x7df6[141]]())); new mxXmlRequest(SAVE_URL+_0x52f0x8[_0x7df6[13]][_0x7df6[12]][_0x7df6[130]]+_0x7df6[157],_0x7df6[158]+_0x52f0x3[_0x7df6[23]],_0x7df6[7])[_0x7df6[156]](document,_0x7df6[119]);_0x52f0x8[_0x7df6[76]]();}));_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}function GeneralDialog(_0x52f0x8,_0x52f0x4f){var _0x52f0x50=_0x52f0x8[_0x7df6[13]][_0x7df6[159]];var _0x52f0x25=_0x52f0x8[_0x7df6[47]](_0x7df6[66]);var _0x52f0x26=_0x52f0x8[_0x7df6[47]](_0x7df6[67]);var _0x52f0x27=_0x52f0x8[_0x7df6[47]](_0x7df6[160]);var _0x52f0x28=_0x52f0x8[_0x7df6[47]](_0x7df6[69]);var _0x52f0x29=_0x52f0x8[_0x7df6[71]](_0x7df6[70]);mxUtils[_0x7df6[75]](_0x52f0x29,mxResources[_0x7df6[73]](_0x7df6[140])+_0x7df6[161]+mxResources[_0x7df6[73]](_0x52f0x4f[_0x7df6[23]][_0x7df6[162]]));var _0x52f0x2a=mxUtils[_0x7df6[77]](_0x7df6[37],function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x2a[_0x7df6[29]]=_0x7df6[62];_0x52f0x26[_0x7df6[25]](_0x52f0x2a);_0x52f0x26[_0x7df6[25]](_0x52f0x29);var _0x52f0x51=_0x52f0x4f[_0x7df6[23]][_0x7df6[163]][_0x7df6[138]];var _0x52f0x4b=_0x52f0x8[_0x7df6[47]](_0x7df6[150]);for(var _0x52f0x52=0;_0x52f0x52<_0x52f0x51;_0x52f0x52++){var _0x52f0x3c=_0x52f0x4f[_0x7df6[23]][_0x7df6[163]][_0x52f0x52][_0x7df6[122]];var _0x52f0x3d=_0x7df6[123]+_0x52f0x3c;var _0x52f0x2=_0x52f0x4f[_0x7df6[23]][_0x7df6[163]][_0x52f0x52][_0x7df6[23]];var _0x52f0x4c=_0x52f0x8[_0x7df6[47]]((_0x52f0x52==_0x52f0x51-1)?_0x7df6[151]:_0x7df6[164]);var _0x52f0x3f=document[_0x7df6[2]](_0x7df6[127]);_0x52f0x3f[_0x7df6[29]]=_0x7df6[152];mxUtils[_0x7df6[75]](_0x52f0x3f,mxResources[_0x7df6[73]](_0x52f0x3c));_0x52f0x4c[_0x7df6[25]](_0x52f0x3f);var _0x52f0x3;switch(_0x52f0x3c){case _0x7df6[166]:_0x52f0x3=createDropdownFromApi(_0x7df6[165],_0x52f0x2,_0x7df6[122],_0x7df6[130],_0x52f0x8,true);break ;;case _0x7df6[168]:_0x52f0x3=createDropdownFromApi(_0x7df6[167],_0x52f0x2,_0x7df6[122],_0x7df6[122],_0x52f0x8,true);break ;;case _0x7df6[170]:_0x52f0x3=createDropdownFromApi(_0x7df6[169],_0x52f0x2,_0x7df6[122],_0x7df6[130],_0x52f0x8,true);break ;;case _0x7df6[172]:_0x52f0x3=createDropdownFromApi(_0x7df6[171],_0x52f0x2,_0x7df6[122],_0x7df6[130],_0x52f0x8,true);break ;;case _0x7df6[173]:_0x52f0x3=createDropdownFromArray(ISPEECHASRMODEL,_0x52f0x2);break ;;case _0x7df6[174]:_0x52f0x3=createDropdownFromArray(ISPEECHASRLANG,_0x52f0x2);break ;;case _0x7df6[175]:_0x52f0x3=createDropdownFromArray(ISPEECHLANG,_0x52f0x2);break ;;case _0x7df6[176]:_0x52f0x3=createDropdownFromArray(GOOGLETTSLANG,_0x52f0x2);break ;;case _0x7df6[179]:_0x52f0x3=createGroupedDropdownFromApi(_0x7df6[177],_0x52f0x2,_0x7df6[122],_0x7df6[130],_0x52f0x8,false,_0x7df6[178]);break ;;case _0x7df6[181]:_0x52f0x3=createDropdownFromApi(_0x7df6[180],_0x52f0x2,_0x7df6[122],_0x7df6[130],_0x52f0x8,true);break ;;case _0x7df6[183]:_0x52f0x3=createDropdownFromApi(_0x7df6[182],_0x52f0x2,_0x7df6[122],_0x7df6[130],_0x52f0x8,true);break ;;case _0x7df6[186]:_0x52f0x3=createDropdownFromApi(_0x7df6[184],_0x52f0x2,_0x7df6[185],_0x7df6[130],_0x52f0x8,false);break ;;case _0x7df6[187]:;case _0x7df6[188]:;case _0x7df6[189]:;case _0x7df6[190]:;case _0x7df6[17]:;case _0x7df6[193]:_0x52f0x3=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x3[_0x7df6[5]](_0x7df6[3],_0x7df6[191]);_0x52f0x3[_0x7df6[5]](_0x7df6[192],0);_0x52f0x3[_0x7df6[5]](_0x7df6[43],1000);_0x52f0x3[_0x7df6[5]](_0x7df6[23],_0x52f0x2);_0x52f0x3[_0x7df6[29]]=_0x7df6[131];break ;;case _0x7df6[21]:;case _0x7df6[196]:var _0x52f0x3=document[_0x7df6[2]](_0x7df6[19]);var _0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[21]]=_0x7df6[22];_0x52f0xc[_0x7df6[23]]=_0x7df6[37];_0x52f0x3[_0x7df6[25]](_0x52f0xc);var _0x52f0xd=[_0x7df6[194],_0x7df6[195]];_0x52f0xd[_0x7df6[28]](function(_0x52f0xe){_0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);console[_0x7df6[91]](_0x52f0xe);_0x52f0xc[_0x7df6[21]]=_0x52f0xe;_0x52f0xc[_0x7df6[23]]=_0x52f0xe;_0x52f0xc[_0x7df6[27]]=(_0x52f0xe==_0x52f0x2);_0x52f0x3[_0x7df6[25]](_0x52f0xc);});_0x52f0x3[_0x7df6[29]]=_0x7df6[131];break ;;case _0x7df6[197]:var _0x52f0x3=document[_0x7df6[2]](_0x7df6[19]);var _0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);_0x52f0xc[_0x7df6[21]]=_0x7df6[22];_0x52f0xc[_0x7df6[23]]=_0x7df6[37];_0x52f0x3[_0x7df6[25]](_0x52f0xc);var _0x52f0xd=[_0x7df6[194],_0x7df6[195]];_0x52f0xd[_0x7df6[28]](function(_0x52f0xe){_0x52f0xc=document[_0x7df6[2]](_0x7df6[20]);console[_0x7df6[91]](_0x52f0xe);_0x52f0xc[_0x7df6[21]]=_0x52f0xe;_0x52f0xc[_0x7df6[23]]=_0x52f0xe;_0x52f0xc[_0x7df6[27]]=(_0x52f0xe==_0x52f0x2);_0x52f0x3[_0x7df6[25]](_0x52f0xc);});_0x52f0x3[_0x7df6[29]]=_0x7df6[131];break ;;case _0x7df6[199]:_0x52f0x3=document[_0x7df6[2]](_0x7df6[80]);_0x52f0x3[_0x7df6[198]]=_0x52f0x2;_0x52f0x3[_0x7df6[29]]=_0x7df6[131];break ;;case _0x7df6[200]:_0x52f0x3=document[_0x7df6[2]](_0x7df6[80]);_0x52f0x3[_0x7df6[198]]=_0x52f0x2;_0x52f0x3[_0x7df6[29]]=_0x7df6[131];break ;;case _0x7df6[201]:_0x52f0x3=document[_0x7df6[2]](_0x7df6[80]);_0x52f0x3[_0x7df6[198]]=_0x52f0x2;_0x52f0x3[_0x7df6[29]]=_0x7df6[131];break ;;case _0x7df6[205]:var _0x52f0x3=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x3[_0x7df6[5]](_0x7df6[3],_0x7df6[4]);console[_0x7df6[91]](_0x7df6[202],_0x52f0x2);if(_0x52f0x2==_0x7df6[203]){_0x52f0x3[_0x7df6[5]](_0x7df6[6],true)}else {_0x52f0x3[_0x7df6[204]](_0x7df6[6])};break ;;default:_0x52f0x3=document[_0x7df6[2]](_0x7df6[1]);_0x52f0x3[_0x7df6[5]](_0x7df6[23],_0x52f0x2);_0x52f0x3[_0x7df6[29]]=_0x7df6[131];break ;;};_0x52f0x3[_0x7df6[5]](_0x7df6[130],_0x52f0x3d);var _0x52f0x22=_0x52f0x8[_0x7df6[47]](_0x7df6[154]);_0x52f0x22[_0x7df6[25]](_0x52f0x3);if(mxResources[_0x7df6[73]](_0x7df6[206]+_0x52f0x3c)){var _0x52f0x53=_0x52f0x8[_0x7df6[47]](_0x7df6[207]);_0x52f0x53[_0x7df6[29]]=_0x7df6[208];mxUtils[_0x7df6[75]](_0x52f0x53,mxResources[_0x7df6[73]](_0x7df6[206]+_0x52f0x3c));_0x52f0x22[_0x7df6[25]](_0x52f0x53);};_0x52f0x4c[_0x7df6[25]](_0x52f0x22);_0x52f0x4b[_0x7df6[25]](_0x52f0x4c);};_0x52f0x27[_0x7df6[25]](_0x52f0x4b);var _0x52f0x34=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[132]),mxUtils[_0x7df6[100]](this,function(_0x52f0x35){for(var _0x52f0x52=0;_0x52f0x52<_0x52f0x4f[_0x7df6[23]][_0x7df6[163]][_0x7df6[138]];_0x52f0x52++){var _0x52f0x3d=_0x7df6[123]+_0x52f0x4f[_0x7df6[23]][_0x7df6[163]][_0x52f0x52][_0x7df6[122]];var _0x52f0x3c=_0x52f0x4f[_0x7df6[23]][_0x7df6[163]][_0x52f0x52][_0x7df6[122]];if(_0x52f0x3c==_0x7df6[205]){_0x52f0x4f[_0x7df6[5]](_0x52f0x3c,document[_0x7df6[209]](_0x52f0x3d)[_0x7df6[6]]);console[_0x7df6[91]](_0x52f0x3c,document[_0x7df6[209]](_0x52f0x3d)[_0x7df6[6]]);}else {console[_0x7df6[91]](_0x52f0x3c,document[_0x7df6[209]](_0x52f0x3d)[_0x7df6[23]]);_0x52f0x4f[_0x7df6[5]](_0x52f0x3c,document[_0x7df6[209]](_0x52f0x3d)[_0x7df6[23]]);};};_0x52f0x50[_0x7df6[210]](_0x52f0x4f);_0x52f0x8[_0x7df6[76]]();}));_0x52f0x34[_0x7df6[29]]=_0x7df6[101];var _0x52f0x37=mxUtils[_0x7df6[77]](mxResources[_0x7df6[73]](_0x7df6[102]),function(){_0x52f0x8[_0x7df6[76]]()});_0x52f0x37[_0x7df6[29]]=_0x7df6[103];_0x52f0x28[_0x7df6[25]](_0x52f0x34);_0x52f0x28[_0x7df6[25]](_0x52f0x37);_0x52f0x25[_0x7df6[25]](_0x52f0x26);_0x52f0x25[_0x7df6[25]](_0x52f0x27);_0x52f0x25[_0x7df6[25]](_0x52f0x28);this[_0x7df6[61]]=_0x52f0x25;}
\ No newline at end of file
index c507cd6..79467ac 100644 (file)
@@ -1 +1 @@
-var _0xe8b5=["\x49\x53\x5F\x54\x4F\x55\x43\x48","\x73\x74\x6F\x72\x61\x67\x65","\x6C\x6F\x63\x61\x6C","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x46\x69\x6C\x65","\x46\x69\x6C\x65\x52\x65\x61\x64\x65\x72","\x46\x69\x6C\x65\x4C\x69\x73\x74","\x74\x6F\x75\x63\x68","\x31","\x6F\x70\x65\x6E\x65\x72","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x61\x6C\x6C","\x69\x6E\x69\x74","\x69\x6E\x69\x74\x53\x74\x65\x6E\x63\x69\x6C\x52\x65\x67\x69\x73\x74\x72\x79","\x67\x72\x61\x70\x68","\x6F\x75\x74\x6C\x69\x6E\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x74\x61\x74\x75\x73","","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x64\x72\x61\x77\x69\x6E\x67","\x67\x65\x74","\x2E\x78\x6D\x6C","\x67\x65\x74\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x67\x72\x61\x70\x68\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x70\x70\x6C\x79","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x73\x4C\x6F\x73\x74","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E\x64","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x2F\x67\x72\x69\x64\x2E\x67\x69\x66","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x73\x63\x61\x6C\x65","\x76\x69\x65\x77","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x30","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x67\x75\x69\x64\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x66\x6F\x6C\x64","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x78","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x64\x78","\x79","\x64\x79","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x63\x6F\x64\x65","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x65\x6E\x63\x6F\x64\x65","\x72\x6F\x75\x6E\x64","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x6E\x6F\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x74\x79\x6C\x65","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x66\x69\x6C\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x23\x65\x62\x65\x62\x65\x62","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x73\x6F\x6C\x69\x64","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x23\x65\x35\x65\x35\x65\x35","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x31\x70\x78","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x30\x70\x78","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72","\x76\x61\x6C\x69\x64\x61\x74\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x61\x75\x74\x6F","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x6E\x6F\x64\x65","\x49\x53\x5F\x49\x45\x36","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x67\x72\x61\x70\x68\x65\x64\x69\x74\x6F\x72\x2D\x69\x65\x36\x2E\x63\x73\x73","\x6C\x69\x6E\x6B","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x61\x64\x64","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x23\x64\x30\x64\x30\x64\x30","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x39\x39\x63\x63\x66\x66","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x38\x38\x63\x66","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x61\x38\x66\x66","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x63\x65\x65\x37\x66\x66","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x47\x55\x49\x44\x45\x5F\x43\x4F\x4C\x4F\x52","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x23\x63\x30\x63\x30\x63\x30","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x77\x68\x69\x74\x65","\x23\x63\x61\x63\x61\x63\x61","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x6D\x61\x78","\x63\x65\x69\x6C","\x70\x61\x6E\x47\x72\x61\x70\x68","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65","\x73\x72\x63","\x64\x65\x73\x74\x72\x6F\x79","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x72\x65\x64\x72\x61\x77","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x68\x69\x64\x65","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x62\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x69\x6E\x74\x73","\x69\x73\x44\x61\x73\x68\x65\x64","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x61\x64\x64\x50\x69\x70\x65","\x73\x70\x6C\x69\x63\x65","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x72\x65\x6C\x61\x74\x69\x76\x65","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6F\x6E\x73\x75\x6D\x65","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C","\x67\x65\x74\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x65\x64\x69\x74","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x67\x65\x74\x56\x69\x65\x77","\x63\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x74\x61\x74\x65","\x70\x75\x73\x68","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x6C\x69\x62\x72\x61\x72\x69\x65\x73","\x70\x61\x63\x6B\x61\x67\x65\x73","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x67\x65\x74\x42\x61\x73\x65\x6E\x61\x6D\x65\x46\x6F\x72\x53\x74\x65\x6E\x63\x69\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x2E\x6A\x73","\x6C\x6F\x61\x64","\x67\x65\x74\x54\x65\x78\x74","\x2F","\x2E","\x73\x70\x6C\x69\x74","\x6D\x78\x67\x72\x61\x70\x68","\x67\x65\x74\x58\x6D\x6C","\x70\x61\x72\x73\x65\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x5F","\x72\x65\x70\x6C\x61\x63\x65","\x61\x64\x64\x53\x74\x65\x6E\x63\x69\x6C","\x77","\x68","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x70\x72\x6F\x64\x75\x63\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x72","\x64\x6F\x6E\x65","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x65\x78\x65\x63\x75\x74\x65","\x73\x65\x74\x44\x61\x74\x61","\x64\x61\x74\x61","\x65\x72\x72\x6F\x72","\x63\x61\x6E\x63\x65\x6C","\x61\x6C\x65\x72\x74"];var useLocalStorage=(mxClient[_0xe8b5[0]]||urlParams[_0xe8b5[1]]==_0xe8b5[2])&& typeof (localStorage)!=_0xe8b5[3];var fileSupport=window[_0xe8b5[4]]!=null&&window[_0xe8b5[5]]!=null&&window[_0xe8b5[6]]!=null;var touchStyle=mxClient[_0xe8b5[0]]||urlParams[_0xe8b5[7]]==_0xe8b5[8];var counter=0;try{var op=window;while(op[_0xe8b5[9]]!=null&&!isNaN(op[_0xe8b5[9]][_0xe8b5[10]])){op=op[_0xe8b5[9]]};if(op!=null){op[_0xe8b5[10]]++;counter=op[_0xe8b5[10]];};}catch(e){};Editor=function(){mxEventSource[_0xe8b5[11]](this);this[_0xe8b5[12]]();this[_0xe8b5[13]]();this[_0xe8b5[14]]= new Graph();this[_0xe8b5[15]]= new mxOutline(this[_0xe8b5[14]]);this[_0xe8b5[15]][_0xe8b5[16]]=true;this[_0xe8b5[17]]=this[_0xe8b5[18]]();this[_0xe8b5[19]]=_0xe8b5[20];this[_0xe8b5[21]]=null;this[_0xe8b5[22]]=function(){return this[_0xe8b5[21]]||mxResources[_0xe8b5[24]](_0xe8b5[23],[counter])+_0xe8b5[25]};this[_0xe8b5[26]]=function(){return this[_0xe8b5[21]]};this[_0xe8b5[27]]=function(_0x62f0x6){this[_0xe8b5[19]]=_0x62f0x6;this[_0xe8b5[29]]( new mxEventObject(_0xe8b5[28]));};this[_0xe8b5[30]]=function(){return this[_0xe8b5[19]]};this[_0xe8b5[31]]=false;this[_0xe8b5[32]]=function(){this[_0xe8b5[31]]=true};this[_0xe8b5[14]][_0xe8b5[36]]()[_0xe8b5[35]](mxEvent.CHANGE,mxUtils[_0xe8b5[34]](this,function(){this[_0xe8b5[32]][_0xe8b5[33]](this,arguments)}));window[_0xe8b5[37]]=mxUtils[_0xe8b5[34]](this,function(){if(this[_0xe8b5[31]]){return mxResources[_0xe8b5[24]](_0xe8b5[38])}});this[_0xe8b5[14]][_0xe8b5[39]]=false;this[_0xe8b5[14]][_0xe8b5[40]]=true;this[_0xe8b5[14]][_0xe8b5[41]]=null;};mxUtils[_0xe8b5[42]](Editor,mxEventSource);Editor[_0xe8b5[44]][_0xe8b5[43]]=IMAGE_PATH+_0xe8b5[45];Editor[_0xe8b5[44]][_0xe8b5[46]]=IMAGE_PATH+_0xe8b5[47];Editor[_0xe8b5[44]][_0xe8b5[48]]=function(_0x62f0x7){var _0x62f0x8= new mxCodec(_0x62f0x7[_0xe8b5[49]]);if(_0x62f0x7[_0xe8b5[50]]==_0xe8b5[51]){this[_0xe8b5[14]][_0xe8b5[53]][_0xe8b5[52]]=1;this[_0xe8b5[14]][_0xe8b5[54]]=_0x62f0x7[_0xe8b5[56]](_0xe8b5[55])!=_0xe8b5[57];this[_0xe8b5[14]][_0xe8b5[59]][_0xe8b5[58]]=_0x62f0x7[_0xe8b5[56]](_0xe8b5[60])!=_0xe8b5[57];this[_0xe8b5[14]][_0xe8b5[62]](_0x62f0x7[_0xe8b5[56]](_0xe8b5[61])!=_0xe8b5[57]);this[_0xe8b5[14]][_0xe8b5[64]](_0x62f0x7[_0xe8b5[56]](_0xe8b5[63])!=_0xe8b5[57]);this[_0xe8b5[14]][_0xe8b5[65]]=_0x62f0x7[_0xe8b5[56]](_0xe8b5[66])!=_0xe8b5[57];this[_0xe8b5[14]][_0xe8b5[40]]=_0x62f0x7[_0xe8b5[56]](_0xe8b5[40])!=_0xe8b5[57];if(!this[_0xe8b5[14]][_0xe8b5[40]]){this[_0xe8b5[14]][_0xe8b5[68]][_0xe8b5[67]]=0;this[_0xe8b5[14]][_0xe8b5[68]][_0xe8b5[69]]=0;this[_0xe8b5[14]][_0xe8b5[53]][_0xe8b5[71]][_0xe8b5[70]]=Number(_0x62f0x7[_0xe8b5[56]](_0xe8b5[72])||0);this[_0xe8b5[14]][_0xe8b5[53]][_0xe8b5[71]][_0xe8b5[73]]=Number(_0x62f0x7[_0xe8b5[56]](_0xe8b5[74])||0);};this[_0xe8b5[14]][_0xe8b5[75]]=_0x62f0x7[_0xe8b5[56]](_0xe8b5[76])==_0xe8b5[8];this[_0xe8b5[14]][_0xe8b5[77]]=this[_0xe8b5[14]][_0xe8b5[75]];this[_0xe8b5[14]][_0xe8b5[78]]=this[_0xe8b5[14]][_0xe8b5[77]];var _0x62f0x9=_0x62f0x7[_0xe8b5[56]](_0xe8b5[79]);if(_0x62f0x9!=null){this[_0xe8b5[14]][_0xe8b5[79]]=_0x62f0x9}else {this[_0xe8b5[14]][_0xe8b5[79]]=1.5};var _0x62f0xa=_0x62f0x7[_0xe8b5[56]](_0xe8b5[80]);var _0x62f0xb=_0x62f0x7[_0xe8b5[56]](_0xe8b5[81]);if(_0x62f0xa!=null&&_0x62f0xb!=null){this[_0xe8b5[14]][_0xe8b5[82]]= new mxRectangle(0,0,parseFloat(_0x62f0xa),parseFloat(_0x62f0xb));this[_0xe8b5[15]][_0xe8b5[15]][_0xe8b5[82]]=this[_0xe8b5[14]][_0xe8b5[82]];};var _0x62f0xc=_0x62f0x7[_0xe8b5[56]](_0xe8b5[41]);if(_0x62f0xc!=null&&_0x62f0xc[_0xe8b5[83]]>0){this[_0xe8b5[14]][_0xe8b5[41]]=_0x62f0xc};_0x62f0x8[_0xe8b5[84]](_0x62f0x7,this[_0xe8b5[14]][_0xe8b5[36]]());this[_0xe8b5[85]]();};};Editor[_0xe8b5[44]][_0xe8b5[86]]=function(){var _0x62f0xd= new mxCodec(mxUtils[_0xe8b5[87]]());var _0x62f0x7=_0x62f0xd[_0xe8b5[88]](this[_0xe8b5[14]][_0xe8b5[36]]());if(this[_0xe8b5[14]][_0xe8b5[53]][_0xe8b5[71]][_0xe8b5[70]]!=0||this[_0xe8b5[14]][_0xe8b5[53]][_0xe8b5[71]][_0xe8b5[73]]!=0){_0x62f0x7[_0xe8b5[90]](_0xe8b5[72],Math[_0xe8b5[89]](this[_0xe8b5[14]][_0xe8b5[53]][_0xe8b5[71]][_0xe8b5[70]]*100)/100);_0x62f0x7[_0xe8b5[90]](_0xe8b5[74],Math[_0xe8b5[89]](this[_0xe8b5[14]][_0xe8b5[53]][_0xe8b5[71]][_0xe8b5[73]]*100)/100);};_0x62f0x7[_0xe8b5[90]](_0xe8b5[55],(this[_0xe8b5[14]][_0xe8b5[91]]())?_0xe8b5[8]:_0xe8b5[57]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[60],(this[_0xe8b5[14]][_0xe8b5[59]][_0xe8b5[58]])?_0xe8b5[8]:_0xe8b5[57]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[60],(this[_0xe8b5[14]][_0xe8b5[59]][_0xe8b5[58]])?_0xe8b5[8]:_0xe8b5[57]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[61],(this[_0xe8b5[14]][_0xe8b5[93]][_0xe8b5[92]]())?_0xe8b5[8]:_0xe8b5[57]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[63],(this[_0xe8b5[14]][_0xe8b5[94]][_0xe8b5[92]]())?_0xe8b5[8]:_0xe8b5[57]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[66],(this[_0xe8b5[14]][_0xe8b5[65]])?_0xe8b5[8]:_0xe8b5[57]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[76],(this[_0xe8b5[14]][_0xe8b5[75]])?_0xe8b5[8]:_0xe8b5[57]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[79],this[_0xe8b5[14]][_0xe8b5[79]]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[80],this[_0xe8b5[14]][_0xe8b5[82]][_0xe8b5[95]]);_0x62f0x7[_0xe8b5[90]](_0xe8b5[81],this[_0xe8b5[14]][_0xe8b5[82]][_0xe8b5[96]]);if(!this[_0xe8b5[14]][_0xe8b5[40]]){_0x62f0x7[_0xe8b5[90]](_0xe8b5[40],_0xe8b5[57])};if(this[_0xe8b5[14]][_0xe8b5[41]]!=null){_0x62f0x7[_0xe8b5[90]](_0xe8b5[41],this[_0xe8b5[14]][_0xe8b5[41]])};return _0x62f0x7;};Editor[_0xe8b5[44]][_0xe8b5[85]]=function(){var _0x62f0xe=this[_0xe8b5[14]];var _0x62f0xf=this[_0xe8b5[15]];if(_0x62f0xe[_0xe8b5[68]]!=null&&_0x62f0xf[_0xe8b5[15]][_0xe8b5[68]]!=null){if(_0x62f0xe[_0xe8b5[41]]!=null){if(_0x62f0xe[_0xe8b5[41]]==_0xe8b5[97]){_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[98]]=_0xe8b5[100]}else {if(_0x62f0xe[_0xe8b5[53]][_0xe8b5[101]]!=null){_0x62f0xe[_0xe8b5[53]][_0xe8b5[101]][_0xe8b5[102]]=_0x62f0xe[_0xe8b5[41]];_0x62f0xe[_0xe8b5[53]][_0xe8b5[101]][_0xe8b5[103]]();};_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[98]]=_0x62f0xe[_0xe8b5[41]];}}else {_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[98]]=_0xe8b5[20]};if(_0x62f0xe[_0xe8b5[75]]){_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[98]]=_0xe8b5[104];_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[105]]=_0xe8b5[106];_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[107]]=_0xe8b5[108];_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[109]]=_0xe8b5[110];_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[111]]=_0xe8b5[110];_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[112]]=_0xe8b5[113];_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[114]]=_0xe8b5[113];}else {_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[115]]=_0xe8b5[20]};_0x62f0xf[_0xe8b5[15]][_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[98]]=_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[98]];if(_0x62f0xf[_0xe8b5[15]][_0xe8b5[75]]!=_0x62f0xe[_0xe8b5[75]]||_0x62f0xf[_0xe8b5[15]][_0xe8b5[79]]!=_0x62f0xe[_0xe8b5[79]]){_0x62f0xf[_0xe8b5[15]][_0xe8b5[79]]=_0x62f0xe[_0xe8b5[79]];_0x62f0xf[_0xe8b5[15]][_0xe8b5[75]]=_0x62f0xe[_0xe8b5[75]];_0x62f0xf[_0xe8b5[15]][_0xe8b5[53]][_0xe8b5[116]]();};if(_0x62f0xe[_0xe8b5[40]]&&_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[117]]==_0xe8b5[118]&& !touchStyle){_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[117]]=_0xe8b5[119]}else {if(!_0x62f0xe[_0xe8b5[40]]||touchStyle){_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[117]]=_0xe8b5[118]}};var _0x62f0x10=(mxClient[_0xe8b5[120]]&&document[_0xe8b5[121]]>=9)?_0xe8b5[122]+this[_0xe8b5[46]]+_0xe8b5[123]:_0xe8b5[97];_0x62f0xe[_0xe8b5[68]][_0xe8b5[99]][_0xe8b5[124]]=(!_0x62f0xe[_0xe8b5[75]]&&_0x62f0xe[_0xe8b5[91]]())?_0xe8b5[122]+this[_0xe8b5[43]]+_0xe8b5[123]:_0x62f0x10;if(_0x62f0xe[_0xe8b5[53]][_0xe8b5[101]]!=null){_0x62f0xe[_0xe8b5[53]][_0xe8b5[101]][_0xe8b5[125]][_0xe8b5[99]][_0xe8b5[124]]=(this[_0xe8b5[14]][_0xe8b5[91]]())?_0xe8b5[122]+this[_0xe8b5[43]]+_0xe8b5[123]:_0xe8b5[97]};};};Editor[_0xe8b5[44]][_0xe8b5[12]]=function(){if(mxClient[_0xe8b5[126]]){mxClient[_0xe8b5[129]](_0xe8b5[127],CSS_PATH+_0xe8b5[128])};mxResources[_0xe8b5[130]]=false;mxResources[_0xe8b5[131]](RESOURCE_BASE);mxConstants[_0xe8b5[132]]=0.3;var _0x62f0x11=mxConnectionHandler[_0xe8b5[44]][_0xe8b5[133]];mxConnectionHandler[_0xe8b5[44]][_0xe8b5[133]]=function(){var _0x62f0x12=_0x62f0x11[_0xe8b5[33]](this,arguments);_0x62f0x12[_0xe8b5[134]]=mxUtils[_0xe8b5[34]](this,function(_0x62f0x13,_0x62f0x14){if(this[_0xe8b5[135]]()){return true};return mxCellMarker[_0xe8b5[44]][_0xe8b5[134]][_0xe8b5[33]](_0x62f0x12,arguments);});return _0x62f0x12;};mxConstants[_0xe8b5[136]]=_0xe8b5[137];mxConstants[_0xe8b5[138]]=_0xe8b5[139];mxConstants[_0xe8b5[140]]=_0xe8b5[141];mxConstants[_0xe8b5[142]]=_0xe8b5[143];mxConstants[_0xe8b5[144]]=_0xe8b5[143];mxConstants[_0xe8b5[145]]=_0xe8b5[139];mxConstants[_0xe8b5[146]]=_0xe8b5[143];mxConstants[_0xe8b5[147]]=_0xe8b5[148];mxConstants[_0xe8b5[149]]=_0xe8b5[143];mxConstants[_0xe8b5[150]]=_0xe8b5[143];mxConstants[_0xe8b5[151]]=_0xe8b5[148];mxConstants[_0xe8b5[152]]=_0xe8b5[141];mxGraph[_0xe8b5[44]][_0xe8b5[153]]=_0xe8b5[154];mxGraph[_0xe8b5[44]][_0xe8b5[79]]=1;mxRubberband[_0xe8b5[44]][_0xe8b5[155]]=30;mxGraphView[_0xe8b5[44]][_0xe8b5[156]]=function(_0x62f0x15){return  new mxRectangleShape(_0x62f0x15,this[_0xe8b5[14]][_0xe8b5[41]]||_0xe8b5[157],_0xe8b5[158])};mxGraphView[_0xe8b5[44]][_0xe8b5[159]]=function(){var _0x62f0x16=this[_0xe8b5[160]]();var _0x62f0x17=(_0x62f0x16[_0xe8b5[95]]>0)?_0x62f0x16[_0xe8b5[70]]/this[_0xe8b5[52]]-this[_0xe8b5[71]][_0xe8b5[70]]:0;var _0x62f0x18=(_0x62f0x16[_0xe8b5[96]]>0)?_0x62f0x16[_0xe8b5[73]]/this[_0xe8b5[52]]-this[_0xe8b5[71]][_0xe8b5[73]]:0;var _0x62f0x19=_0x62f0x16[_0xe8b5[95]]/this[_0xe8b5[52]];var _0x62f0x1a=_0x62f0x16[_0xe8b5[96]]/this[_0xe8b5[52]];var _0x62f0x1b=this[_0xe8b5[14]][_0xe8b5[82]];var _0x62f0x9=this[_0xe8b5[14]][_0xe8b5[79]];var _0x62f0xa=_0x62f0x1b[_0xe8b5[95]]*_0x62f0x9;var _0x62f0xb=_0x62f0x1b[_0xe8b5[96]]*_0x62f0x9;var _0x62f0x1c=Math[_0xe8b5[162]](Math[_0xe8b5[161]](0,_0x62f0x17)/_0x62f0xa);var _0x62f0x1d=Math[_0xe8b5[162]](Math[_0xe8b5[161]](0,_0x62f0x18)/_0x62f0xb);var _0x62f0x1e=Math[_0xe8b5[164]](Math[_0xe8b5[163]](1,_0x62f0x17+_0x62f0x19)/_0x62f0xa);var _0x62f0x1f=Math[_0xe8b5[164]](Math[_0xe8b5[163]](1,_0x62f0x18+_0x62f0x1a)/_0x62f0xb);var _0x62f0x20=_0x62f0x1e-_0x62f0x1c;var _0x62f0x21=_0x62f0x1f-_0x62f0x1d;var _0x62f0x15= new mxRectangle(this[_0xe8b5[52]]*(this[_0xe8b5[71]][_0xe8b5[70]]+_0x62f0x1c*_0x62f0xa),this[_0xe8b5[52]]*(this[_0xe8b5[71]][_0xe8b5[73]]+_0x62f0x1d*_0x62f0xb),this[_0xe8b5[52]]*_0x62f0x20*_0x62f0xa,this[_0xe8b5[52]]*_0x62f0x21*_0x62f0xb);return _0x62f0x15;};var _0x62f0x22=mxGraph[_0xe8b5[44]][_0xe8b5[165]];mxGraph[_0xe8b5[44]][_0xe8b5[165]]=function(_0x62f0x23,_0x62f0x24){_0x62f0x22[_0xe8b5[33]](this,arguments);if((this[_0xe8b5[166]]!=mxConstants[_0xe8b5[167]]&&this[_0xe8b5[53]][_0xe8b5[101]]!=null)&&(!this[_0xe8b5[168]]||!mxUtils[_0xe8b5[169]](this[_0xe8b5[68]]))){this[_0xe8b5[53]][_0xe8b5[101]][_0xe8b5[125]][_0xe8b5[99]][_0xe8b5[170]]=_0x62f0x23+_0xe8b5[171];this[_0xe8b5[53]][_0xe8b5[101]][_0xe8b5[125]][_0xe8b5[99]][_0xe8b5[172]]=_0x62f0x24+_0xe8b5[171];};};var _0x62f0x25=this;mxGraphView[_0xe8b5[44]][_0xe8b5[173]]=function(){var _0x62f0xc=this[_0xe8b5[14]][_0xe8b5[174]]();if(_0x62f0xc!=null){if(this[_0xe8b5[124]]==null||this[_0xe8b5[124]][_0xe8b5[175]]!=_0x62f0xc[_0xe8b5[176]]){if(this[_0xe8b5[124]]!=null){this[_0xe8b5[124]][_0xe8b5[177]]()};var _0x62f0x15= new mxRectangle(0,0,1,1);this[_0xe8b5[124]]= new mxImageShape(_0x62f0x15,_0x62f0xc[_0xe8b5[176]]);this[_0xe8b5[124]][_0xe8b5[166]]=this[_0xe8b5[14]][_0xe8b5[166]];this[_0xe8b5[124]][_0xe8b5[12]](this[_0xe8b5[178]]);this[_0xe8b5[124]][_0xe8b5[179]]();};this[_0xe8b5[180]](this[_0xe8b5[124]],_0x62f0xc);}else {if(this[_0xe8b5[124]]!=null){this[_0xe8b5[124]][_0xe8b5[177]]();this[_0xe8b5[124]]=null;}};if(this[_0xe8b5[14]][_0xe8b5[75]]){var _0x62f0x15=this[_0xe8b5[159]]();if(this[_0xe8b5[101]]==null){this[_0xe8b5[101]]=this[_0xe8b5[156]](_0x62f0x15);this[_0xe8b5[101]][_0xe8b5[52]]=1;this[_0xe8b5[101]][_0xe8b5[181]]=true;this[_0xe8b5[101]][_0xe8b5[166]]=mxConstants[_0xe8b5[182]];this[_0xe8b5[101]][_0xe8b5[12]](this[_0xe8b5[14]][_0xe8b5[68]]);this[_0xe8b5[14]][_0xe8b5[68]][_0xe8b5[184]][_0xe8b5[99]][_0xe8b5[183]]=_0xe8b5[185];this[_0xe8b5[14]][_0xe8b5[68]][_0xe8b5[186]](this[_0xe8b5[101]][_0xe8b5[125]],this[_0xe8b5[14]][_0xe8b5[68]][_0xe8b5[184]]);this[_0xe8b5[101]][_0xe8b5[179]]();this[_0xe8b5[101]][_0xe8b5[125]][_0xe8b5[187]]=_0xe8b5[188];this[_0xe8b5[101]][_0xe8b5[125]][_0xe8b5[99]][_0xe8b5[189]]=_0xe8b5[190];mxEvent[_0xe8b5[35]](this[_0xe8b5[101]][_0xe8b5[125]],_0xe8b5[191],mxUtils[_0xe8b5[34]](this,function(_0x62f0x14){this[_0xe8b5[14]][_0xe8b5[192]](_0x62f0x14)}));mxEvent[_0xe8b5[198]](this[_0xe8b5[101]][_0xe8b5[125]],mxUtils[_0xe8b5[34]](this,function(_0x62f0x14){this[_0xe8b5[14]][_0xe8b5[193]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x62f0x14))}),mxUtils[_0xe8b5[34]](this,function(_0x62f0x14){if(this[_0xe8b5[14]][_0xe8b5[93]]!=null&&this[_0xe8b5[14]][_0xe8b5[93]][_0xe8b5[194]]()){this[_0xe8b5[14]][_0xe8b5[93]][_0xe8b5[195]]()};if(this[_0xe8b5[14]][_0xe8b5[196]]&&!mxEvent[_0xe8b5[197]](_0x62f0x14)){this[_0xe8b5[14]][_0xe8b5[193]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x62f0x14))};}),mxUtils[_0xe8b5[34]](this,function(_0x62f0x14){this[_0xe8b5[14]][_0xe8b5[193]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x62f0x14))}));}else {this[_0xe8b5[101]][_0xe8b5[52]]=1;this[_0xe8b5[101]][_0xe8b5[199]]=_0x62f0x15;this[_0xe8b5[101]][_0xe8b5[179]]();};this[_0xe8b5[101]][_0xe8b5[125]][_0xe8b5[99]][_0xe8b5[124]]=(this[_0xe8b5[14]][_0xe8b5[91]]())?_0xe8b5[122]+_0x62f0x25[_0xe8b5[43]]+_0xe8b5[123]:_0xe8b5[97];}else {if(this[_0xe8b5[101]]!=null){this[_0xe8b5[101]][_0xe8b5[177]]();this[_0xe8b5[101]]=null;}};};mxGraph[_0xe8b5[44]][_0xe8b5[200]]=function(_0x62f0x26,_0x62f0x27,_0x62f0x28){var _0x62f0x29=this[_0xe8b5[53]][_0xe8b5[52]];var _0x62f0x2a=this[_0xe8b5[53]][_0xe8b5[71]];var _0x62f0x1b=this[_0xe8b5[82]];var _0x62f0x9=_0x62f0x29*this[_0xe8b5[79]];var _0x62f0x2b=this[_0xe8b5[53]][_0xe8b5[159]]();_0x62f0x27=_0x62f0x2b[_0xe8b5[95]];_0x62f0x28=_0x62f0x2b[_0xe8b5[96]];var _0x62f0x15= new mxRectangle(_0x62f0x29*_0x62f0x2a[_0xe8b5[70]],_0x62f0x29*_0x62f0x2a[_0xe8b5[73]],_0x62f0x1b[_0xe8b5[95]]*_0x62f0x9,_0x62f0x1b[_0xe8b5[96]]*_0x62f0x9);_0x62f0x26=_0x62f0x26&&Math[_0xe8b5[161]](_0x62f0x15[_0xe8b5[95]],_0x62f0x15[_0xe8b5[96]])>this[_0xe8b5[201]];var _0x62f0x2c=(_0x62f0x26)?Math[_0xe8b5[164]](_0x62f0x27/_0x62f0x15[_0xe8b5[95]])-1:0;var _0x62f0x2d=(_0x62f0x26)?Math[_0xe8b5[164]](_0x62f0x28/_0x62f0x15[_0xe8b5[96]])-1:0;var _0x62f0x2e=_0x62f0x2b[_0xe8b5[70]]+_0x62f0x27;var _0x62f0x2f=_0x62f0x2b[_0xe8b5[73]]+_0x62f0x28;if(this[_0xe8b5[202]]==null&&_0x62f0x2c>0){this[_0xe8b5[202]]=[]};if(this[_0xe8b5[202]]!=null){for(var _0x62f0x30=0;_0x62f0x30<=_0x62f0x2c;_0x62f0x30++){var _0x62f0x31=[ new mxPoint(_0x62f0x2b[_0xe8b5[70]]+(_0x62f0x30+1)*_0x62f0x15[_0xe8b5[95]],_0x62f0x2b[_0xe8b5[73]]), new mxPoint(_0x62f0x2b[_0xe8b5[70]]+(_0x62f0x30+1)*_0x62f0x15[_0xe8b5[95]],_0x62f0x2f)];if(this[_0xe8b5[202]][_0x62f0x30]!=null){this[_0xe8b5[202]][_0x62f0x30][_0xe8b5[52]]=1;this[_0xe8b5[202]][_0x62f0x30][_0xe8b5[203]]=_0x62f0x31;this[_0xe8b5[202]][_0x62f0x30][_0xe8b5[179]]();}else {var _0x62f0x32= new mxPolyline(_0x62f0x31,this[_0xe8b5[153]],this[_0xe8b5[52]]);_0x62f0x32[_0xe8b5[166]]=this[_0xe8b5[166]];_0x62f0x32[_0xe8b5[204]]=this[_0xe8b5[205]];_0x62f0x32[_0xe8b5[206]]=false;_0x62f0x32[_0xe8b5[52]]=_0x62f0x29;_0x62f0x32[_0xe8b5[12]](this[_0xe8b5[53]][_0xe8b5[178]]);_0x62f0x32[_0xe8b5[179]]();this[_0xe8b5[202]][_0x62f0x30]=_0x62f0x32;};};for(var _0x62f0x30=_0x62f0x2c;_0x62f0x30<this[_0xe8b5[202]][_0xe8b5[83]];_0x62f0x30++){this[_0xe8b5[202]][_0x62f0x30][_0xe8b5[177]]()};this[_0xe8b5[202]][_0xe8b5[207]](_0x62f0x2c,this[_0xe8b5[202]][_0xe8b5[83]]-_0x62f0x2c);};if(this[_0xe8b5[208]]==null&&_0x62f0x2d>0){this[_0xe8b5[208]]=[]};if(this[_0xe8b5[208]]!=null){for(var _0x62f0x30=0;_0x62f0x30<=_0x62f0x2d;_0x62f0x30++){var _0x62f0x31=[ new mxPoint(_0x62f0x2b[_0xe8b5[70]],_0x62f0x2b[_0xe8b5[73]]+(_0x62f0x30+1)*_0x62f0x15[_0xe8b5[96]]), new mxPoint(_0x62f0x2e,_0x62f0x2b[_0xe8b5[73]]+(_0x62f0x30+1)*_0x62f0x15[_0xe8b5[96]])];if(this[_0xe8b5[208]][_0x62f0x30]!=null){this[_0xe8b5[208]][_0x62f0x30][_0xe8b5[52]]=1;this[_0xe8b5[208]][_0x62f0x30][_0xe8b5[203]]=_0x62f0x31;this[_0xe8b5[208]][_0x62f0x30][_0xe8b5[179]]();}else {var _0x62f0x32= new mxPolyline(_0x62f0x31,this[_0xe8b5[153]],_0x62f0x29);_0x62f0x32[_0xe8b5[166]]=this[_0xe8b5[166]];_0x62f0x32[_0xe8b5[204]]=this[_0xe8b5[205]];_0x62f0x32[_0xe8b5[206]]=false;_0x62f0x32[_0xe8b5[52]]=_0x62f0x29;_0x62f0x32[_0xe8b5[12]](this[_0xe8b5[53]][_0xe8b5[178]]);_0x62f0x32[_0xe8b5[179]]();this[_0xe8b5[208]][_0x62f0x30]=_0x62f0x32;};};for(var _0x62f0x30=_0x62f0x2d;_0x62f0x30<this[_0xe8b5[208]][_0xe8b5[83]];_0x62f0x30++){this[_0xe8b5[208]][_0x62f0x30][_0xe8b5[177]]()};this[_0xe8b5[208]][_0xe8b5[207]](_0x62f0x2d,this[_0xe8b5[208]][_0xe8b5[83]]-_0x62f0x2d);};};mxEdgeHandler[_0xe8b5[44]][_0xe8b5[209]]=true;mxGraphHandler[_0xe8b5[44]][_0xe8b5[58]]=true;var _0x62f0x33=mxGraphHandler[_0xe8b5[44]][_0xe8b5[210]];mxGraphHandler[_0xe8b5[44]][_0xe8b5[210]]=function(_0x62f0x34,_0x62f0x35,_0x62f0x14){for(var _0x62f0x30=0;_0x62f0x30<_0x62f0x35[_0xe8b5[83]];_0x62f0x30++){if(this[_0xe8b5[14]][_0xe8b5[36]]()[_0xe8b5[211]](_0x62f0x35[_0x62f0x30])){var _0x62f0x36=this[_0xe8b5[14]][_0xe8b5[212]](_0x62f0x35[_0x62f0x30]);if(_0x62f0x36!=null&&_0x62f0x36[_0xe8b5[213]]){return false};}};return _0x62f0x33[_0xe8b5[33]](this,arguments);};mxGuide[_0xe8b5[44]][_0xe8b5[214]]=function(_0x62f0x14){return !mxEvent[_0xe8b5[215]](_0x62f0x14)};mxPopupMenuAddItem=mxPopupMenu[_0xe8b5[44]][_0xe8b5[216]];mxPopupMenu[_0xe8b5[44]][_0xe8b5[216]]=function(_0x62f0x37,_0x62f0x38,_0x62f0x39,_0x62f0x34,_0x62f0x3a,_0x62f0x3b){var _0x62f0x3c=mxPopupMenuAddItem[_0xe8b5[33]](this,arguments);if(_0x62f0x3b!=null&& !_0x62f0x3b){mxEvent[_0xe8b5[35]](_0x62f0x3c,_0xe8b5[217],function(_0x62f0x14){mxEvent[_0xe8b5[218]](_0x62f0x14)})};return _0x62f0x3c;};var _0x62f0x3d=mxGraphHandler[_0xe8b5[44]][_0xe8b5[219]];mxGraphHandler[_0xe8b5[44]][_0xe8b5[219]]=function(_0x62f0x3e){var _0x62f0x3f=this[_0xe8b5[14]][_0xe8b5[36]]();var _0x62f0x40=_0x62f0x3f[_0xe8b5[221]](this[_0xe8b5[14]][_0xe8b5[220]]());var _0x62f0x41=_0x62f0x3d[_0xe8b5[33]](this,arguments);var _0x62f0x34=_0x62f0x3f[_0xe8b5[221]](_0x62f0x41);if(_0x62f0x40==null||(_0x62f0x40!=_0x62f0x41&&_0x62f0x40!=_0x62f0x34)){while(!this[_0xe8b5[14]][_0xe8b5[222]](_0x62f0x41)&&!this[_0xe8b5[14]][_0xe8b5[222]](_0x62f0x34)&&_0x62f0x3f[_0xe8b5[211]](_0x62f0x34)&&!this[_0xe8b5[14]][_0xe8b5[223]](_0x62f0x34)){_0x62f0x41=_0x62f0x34;_0x62f0x34=this[_0xe8b5[14]][_0xe8b5[36]]()[_0xe8b5[221]](_0x62f0x41);}};return _0x62f0x41;};var _0x62f0x42=mxGraphHandler[_0xe8b5[44]][_0xe8b5[224]];mxGraphHandler[_0xe8b5[44]][_0xe8b5[224]]=function(_0x62f0x41){var _0x62f0x3c=_0x62f0x42[_0xe8b5[33]](this,arguments);var _0x62f0x3f=this[_0xe8b5[14]][_0xe8b5[36]]();var _0x62f0x40=_0x62f0x3f[_0xe8b5[221]](this[_0xe8b5[14]][_0xe8b5[220]]());var _0x62f0x34=_0x62f0x3f[_0xe8b5[221]](_0x62f0x41);if(_0x62f0x40==null||(_0x62f0x40!=_0x62f0x41&&_0x62f0x40!=_0x62f0x34)){if(!this[_0xe8b5[14]][_0xe8b5[222]](_0x62f0x41)&&_0x62f0x3f[_0xe8b5[211]](_0x62f0x34)&&!this[_0xe8b5[14]][_0xe8b5[223]](_0x62f0x34)){_0x62f0x3c=true}};return _0x62f0x3c;};mxGraphHandler[_0xe8b5[44]][_0xe8b5[225]]=function(_0x62f0x3e){var _0x62f0x41=_0x62f0x3e[_0xe8b5[226]]();if(_0x62f0x41==null){_0x62f0x41=this[_0xe8b5[227]]};var _0x62f0x3f=this[_0xe8b5[14]][_0xe8b5[36]]();var _0x62f0x34=_0x62f0x3f[_0xe8b5[221]](_0x62f0x41);while(this[_0xe8b5[14]][_0xe8b5[222]](_0x62f0x41)&&_0x62f0x3f[_0xe8b5[211]](_0x62f0x34)&&!this[_0xe8b5[14]][_0xe8b5[223]](_0x62f0x34)){_0x62f0x41=_0x62f0x34;_0x62f0x34=_0x62f0x3f[_0xe8b5[221]](_0x62f0x41);};this[_0xe8b5[14]][_0xe8b5[229]](_0x62f0x41,_0x62f0x3e[_0xe8b5[228]]());};mxPanningHandler[_0xe8b5[44]][_0xe8b5[230]]=function(_0x62f0x3e){var _0x62f0x41=_0x62f0x3e[_0xe8b5[226]]();var _0x62f0x3f=this[_0xe8b5[14]][_0xe8b5[36]]();var _0x62f0x34=_0x62f0x3f[_0xe8b5[221]](_0x62f0x41);while(_0x62f0x3f[_0xe8b5[211]](_0x62f0x34)&&!this[_0xe8b5[14]][_0xe8b5[223]](_0x62f0x34)){if(this[_0xe8b5[14]][_0xe8b5[222]](_0x62f0x34)){_0x62f0x41=_0x62f0x34};_0x62f0x34=_0x62f0x3f[_0xe8b5[221]](_0x62f0x34);};return _0x62f0x41;};};Editor[_0xe8b5[44]][_0xe8b5[18]]=function(){var _0x62f0xe=this[_0xe8b5[14]];var _0x62f0x43= new mxUndoManager();var _0x62f0x44=function(_0x62f0x45,_0x62f0x14){_0x62f0x43[_0xe8b5[233]](_0x62f0x14[_0xe8b5[232]](_0xe8b5[231]))};_0x62f0xe[_0xe8b5[36]]()[_0xe8b5[35]](mxEvent.UNDO,_0x62f0x44);_0x62f0xe[_0xe8b5[234]]()[_0xe8b5[35]](mxEvent.UNDO,_0x62f0x44);var _0x62f0x46=function(_0x62f0x45,_0x62f0x14){var _0x62f0x47=_0x62f0xe[_0xe8b5[236]](_0x62f0x14[_0xe8b5[232]](_0xe8b5[231])[_0xe8b5[235]]);var _0x62f0x35=[];for(var _0x62f0x30=1;_0x62f0x30<_0x62f0x47[_0xe8b5[83]];_0x62f0x30++){if(_0x62f0xe[_0xe8b5[53]][_0xe8b5[237]](_0x62f0x47[_0x62f0x30])!=null){_0x62f0x35[_0xe8b5[238]](_0x62f0x47[_0x62f0x30])}};_0x62f0xe[_0xe8b5[239]](_0x62f0x35);};_0x62f0x43[_0xe8b5[35]](mxEvent.UNDO,_0x62f0x46);_0x62f0x43[_0xe8b5[35]](mxEvent.REDO,_0x62f0x46);return _0x62f0x43;};Editor[_0xe8b5[44]][_0xe8b5[13]]=function(){mxStencilRegistry[_0xe8b5[241]](STENCIL_PATH+_0xe8b5[240])};(function(){mxStencilRegistry[_0xe8b5[242]]={};mxStencilRegistry[_0xe8b5[243]]=[];mxStencilRegistry[_0xe8b5[244]]=function(_0x62f0x48){var _0x62f0x3c=mxStencilRegistry[_0xe8b5[245]][_0x62f0x48];if(_0x62f0x3c==null){var _0x62f0x49=mxStencilRegistry[_0xe8b5[246]](_0x62f0x48);if(_0x62f0x49!=null){var _0x62f0x4a=mxStencilRegistry[_0xe8b5[242]][_0x62f0x49];if(_0x62f0x4a!=null){if(mxStencilRegistry[_0xe8b5[243]][_0x62f0x49]==null){mxStencilRegistry[_0xe8b5[243]][_0x62f0x49]=1;for(var _0x62f0x30=0;_0x62f0x30<_0x62f0x4a[_0xe8b5[83]];_0x62f0x30++){var _0x62f0x4b=_0x62f0x4a[_0x62f0x30];if(_0x62f0x4b[_0xe8b5[248]]()[_0xe8b5[247]](_0x62f0x4b[_0xe8b5[83]]-4,_0x62f0x4b[_0xe8b5[83]])==_0xe8b5[25]){mxStencilRegistry[_0xe8b5[241]](_0x62f0x4b,null)}else {if(_0x62f0x4b[_0xe8b5[248]]()[_0xe8b5[247]](_0x62f0x4b[_0xe8b5[83]]-3,_0x62f0x4b[_0xe8b5[83]])==_0xe8b5[249]){var _0x62f0x4c=mxUtils[_0xe8b5[250]](_0x62f0x4b);if(_0x62f0x4c!=null){eval[_0xe8b5[11]](window,_0x62f0x4c[_0xe8b5[251]]())};}else {}};};}}else {mxStencilRegistry[_0xe8b5[241]](STENCIL_PATH+_0xe8b5[252]+_0x62f0x49+_0xe8b5[25],null)};_0x62f0x3c=mxStencilRegistry[_0xe8b5[245]][_0x62f0x48];};};return _0x62f0x3c;};mxStencilRegistry[_0xe8b5[246]]=function(_0x62f0x48){var _0x62f0x4d=_0x62f0x48[_0xe8b5[254]](_0xe8b5[253]);var _0x62f0x4e=null;if(_0x62f0x4d[_0xe8b5[83]]>0&&_0x62f0x4d[0]==_0xe8b5[255]){_0x62f0x4e=_0x62f0x4d[1];for(var _0x62f0x30=2;_0x62f0x30<_0x62f0x4d[_0xe8b5[83]]-1;_0x62f0x30++){_0x62f0x4e+=_0xe8b5[252]+_0x62f0x4d[_0x62f0x30]};};return _0x62f0x4e;};mxStencilRegistry[_0xe8b5[241]]=function(_0x62f0x4f,_0x62f0x50,_0x62f0x51){_0x62f0x51=(_0x62f0x51!=null)?_0x62f0x51:false;var _0x62f0x52=mxStencilRegistry[_0xe8b5[243]][_0x62f0x4f];if(_0x62f0x51||_0x62f0x52==null){var _0x62f0x53=false;if(_0x62f0x52==null){var _0x62f0x4c=mxUtils[_0xe8b5[250]](_0x62f0x4f);_0x62f0x52=_0x62f0x4c[_0xe8b5[256]]();mxStencilRegistry[_0xe8b5[243]][_0x62f0x4f]=_0x62f0x52;_0x62f0x53=true;};mxStencilRegistry[_0xe8b5[257]](_0x62f0x52,_0x62f0x50,_0x62f0x53);};};mxStencilRegistry[_0xe8b5[257]]=function(_0x62f0x54,_0x62f0x50,_0x62f0x53){_0x62f0x53=(_0x62f0x53!=null)?_0x62f0x53:true;var _0x62f0x55=_0x62f0x54[_0xe8b5[258]];var _0x62f0x56=_0x62f0x55[_0xe8b5[184]];var _0x62f0x57=_0xe8b5[20];var _0x62f0x48=_0x62f0x55[_0xe8b5[56]](_0xe8b5[259]);if(_0x62f0x48!=null){_0x62f0x57=_0x62f0x48+_0xe8b5[253]};while(_0x62f0x56!=null){if(_0x62f0x56[_0xe8b5[260]]==mxConstants[_0xe8b5[261]]){_0x62f0x48=_0x62f0x56[_0xe8b5[56]](_0xe8b5[259]);if(_0x62f0x48!=null){_0x62f0x57=_0x62f0x57[_0xe8b5[248]]();var _0x62f0x58=_0x62f0x48[_0xe8b5[263]](/ /g,_0xe8b5[262]);if(_0x62f0x53){mxStencilRegistry[_0xe8b5[264]](_0x62f0x57+_0x62f0x58[_0xe8b5[248]](), new mxStencil(_0x62f0x56))};if(_0x62f0x50!=null){var _0x62f0x19=_0x62f0x56[_0xe8b5[56]](_0xe8b5[265]);var _0x62f0x1a=_0x62f0x56[_0xe8b5[56]](_0xe8b5[266]);_0x62f0x19=(_0x62f0x19==null)?80:parseInt(_0x62f0x19,10);_0x62f0x1a=(_0x62f0x1a==null)?80:parseInt(_0x62f0x1a,10);_0x62f0x50(_0x62f0x57,_0x62f0x58,_0x62f0x48,_0x62f0x19,_0x62f0x1a);};};};_0x62f0x56=_0x62f0x56[_0xe8b5[267]];};};})();OpenFile=function(_0x62f0x59){this[_0xe8b5[268]]=null;this[_0xe8b5[269]]=null;this[_0xe8b5[270]]=_0x62f0x59;};OpenFile[_0xe8b5[44]][_0xe8b5[271]]=function(_0x62f0x6){this[_0xe8b5[269]]=_0x62f0x6;this[_0xe8b5[272]]();};OpenFile[_0xe8b5[44]][_0xe8b5[273]]=function(_0x62f0x6,_0x62f0x5a){this[_0xe8b5[274]]=_0x62f0x6;this[_0xe8b5[21]]=_0x62f0x5a;this[_0xe8b5[272]]();};OpenFile[_0xe8b5[44]][_0xe8b5[275]]=function(_0x62f0x5b){this[_0xe8b5[276]]();mxUtils[_0xe8b5[277]](_0x62f0x5b);};OpenFile[_0xe8b5[44]][_0xe8b5[272]]=function(){if(this[_0xe8b5[269]]!=null&&this[_0xe8b5[274]]!=null){this[_0xe8b5[269]](this[_0xe8b5[274]],this[_0xe8b5[21]]);this[_0xe8b5[276]]();}};OpenFile[_0xe8b5[44]][_0xe8b5[276]]=function(){if(this[_0xe8b5[270]]!=null){this[_0xe8b5[270]]()}};
\ No newline at end of file
+var _0x8f09=["\x49\x53\x5F\x54\x4F\x55\x43\x48","\x73\x74\x6F\x72\x61\x67\x65","\x6C\x6F\x63\x61\x6C","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x46\x69\x6C\x65","\x46\x69\x6C\x65\x52\x65\x61\x64\x65\x72","\x46\x69\x6C\x65\x4C\x69\x73\x74","\x74\x6F\x75\x63\x68","\x31","\x6F\x70\x65\x6E\x65\x72","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x61\x6C\x6C","\x69\x6E\x69\x74","\x69\x6E\x69\x74\x53\x74\x65\x6E\x63\x69\x6C\x52\x65\x67\x69\x73\x74\x72\x79","\x67\x72\x61\x70\x68","\x6F\x75\x74\x6C\x69\x6E\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x74\x61\x74\x75\x73","","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x64\x72\x61\x77\x69\x6E\x67","\x67\x65\x74","\x2E\x78\x6D\x6C","\x67\x65\x74\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x67\x72\x61\x70\x68\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x70\x70\x6C\x79","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x73\x4C\x6F\x73\x74","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E\x64","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x2F\x67\x72\x69\x64\x2E\x67\x69\x66","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x73\x63\x61\x6C\x65","\x76\x69\x65\x77","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x30","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x67\x75\x69\x64\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x66\x6F\x6C\x64","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x78","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x64\x78","\x79","\x64\x79","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x63\x6F\x64\x65","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x65\x6E\x63\x6F\x64\x65","\x72\x6F\x75\x6E\x64","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x6E\x6F\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x74\x79\x6C\x65","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x66\x69\x6C\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x23\x65\x62\x65\x62\x65\x62","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x73\x6F\x6C\x69\x64","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x23\x65\x35\x65\x35\x65\x35","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x31\x70\x78","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x30\x70\x78","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72","\x76\x61\x6C\x69\x64\x61\x74\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x61\x75\x74\x6F","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x6E\x6F\x64\x65","\x49\x53\x5F\x49\x45\x36","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x67\x72\x61\x70\x68\x65\x64\x69\x74\x6F\x72\x2D\x69\x65\x36\x2E\x63\x73\x73","\x6C\x69\x6E\x6B","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x61\x64\x64","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x23\x64\x30\x64\x30\x64\x30","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x39\x39\x63\x63\x66\x66","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x38\x38\x63\x66","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x61\x38\x66\x66","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x63\x65\x65\x37\x66\x66","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x47\x55\x49\x44\x45\x5F\x43\x4F\x4C\x4F\x52","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x23\x63\x30\x63\x30\x63\x30","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x77\x68\x69\x74\x65","\x23\x63\x61\x63\x61\x63\x61","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x6D\x61\x78","\x63\x65\x69\x6C","\x70\x61\x6E\x47\x72\x61\x70\x68","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65","\x73\x72\x63","\x64\x65\x73\x74\x72\x6F\x79","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x72\x65\x64\x72\x61\x77","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x68\x69\x64\x65","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x62\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x69\x6E\x74\x73","\x69\x73\x44\x61\x73\x68\x65\x64","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x61\x64\x64\x50\x69\x70\x65","\x73\x70\x6C\x69\x63\x65","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x72\x65\x6C\x61\x74\x69\x76\x65","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6F\x6E\x73\x75\x6D\x65","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C","\x67\x65\x74\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x65\x64\x69\x74","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x67\x65\x74\x56\x69\x65\x77","\x63\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x74\x61\x74\x65","\x70\x75\x73\x68","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x6C\x69\x62\x72\x61\x72\x69\x65\x73","\x70\x61\x63\x6B\x61\x67\x65\x73","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x67\x65\x74\x42\x61\x73\x65\x6E\x61\x6D\x65\x46\x6F\x72\x53\x74\x65\x6E\x63\x69\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x2E\x6A\x73","\x6C\x6F\x61\x64","\x67\x65\x74\x54\x65\x78\x74","\x2F","\x2E","\x73\x70\x6C\x69\x74","\x6D\x78\x67\x72\x61\x70\x68","\x67\x65\x74\x58\x6D\x6C","\x70\x61\x72\x73\x65\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x5F","\x72\x65\x70\x6C\x61\x63\x65","\x61\x64\x64\x53\x74\x65\x6E\x63\x69\x6C","\x77","\x68","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x70\x72\x6F\x64\x75\x63\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x72","\x64\x6F\x6E\x65","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x65\x78\x65\x63\x75\x74\x65","\x73\x65\x74\x44\x61\x74\x61","\x64\x61\x74\x61","\x65\x72\x72\x6F\x72","\x63\x61\x6E\x63\x65\x6C","\x61\x6C\x65\x72\x74"];var useLocalStorage=(mxClient[_0x8f09[0]]||urlParams[_0x8f09[1]]==_0x8f09[2])&& typeof (localStorage)!=_0x8f09[3];var fileSupport=window[_0x8f09[4]]!=null&&window[_0x8f09[5]]!=null&&window[_0x8f09[6]]!=null;var touchStyle=mxClient[_0x8f09[0]]||urlParams[_0x8f09[7]]==_0x8f09[8];var counter=0;try{var op=window;while(op[_0x8f09[9]]!=null&&!isNaN(op[_0x8f09[9]][_0x8f09[10]])){op=op[_0x8f09[9]]};if(op!=null){op[_0x8f09[10]]++;counter=op[_0x8f09[10]];};}catch(e){};Editor=function(){mxEventSource[_0x8f09[11]](this);this[_0x8f09[12]]();this[_0x8f09[13]]();this[_0x8f09[14]]= new Graph();this[_0x8f09[15]]= new mxOutline(this[_0x8f09[14]]);this[_0x8f09[15]][_0x8f09[16]]=true;this[_0x8f09[17]]=this[_0x8f09[18]]();this[_0x8f09[19]]=_0x8f09[20];this[_0x8f09[21]]=null;this[_0x8f09[22]]=function(){return this[_0x8f09[21]]||mxResources[_0x8f09[24]](_0x8f09[23],[counter])+_0x8f09[25]};this[_0x8f09[26]]=function(){return this[_0x8f09[21]]};this[_0x8f09[27]]=function(_0xc578x6){this[_0x8f09[19]]=_0xc578x6;this[_0x8f09[29]]( new mxEventObject(_0x8f09[28]));};this[_0x8f09[30]]=function(){return this[_0x8f09[19]]};this[_0x8f09[31]]=false;this[_0x8f09[32]]=function(){this[_0x8f09[31]]=true};this[_0x8f09[14]][_0x8f09[36]]()[_0x8f09[35]](mxEvent.CHANGE,mxUtils[_0x8f09[34]](this,function(){this[_0x8f09[32]][_0x8f09[33]](this,arguments)}));window[_0x8f09[37]]=mxUtils[_0x8f09[34]](this,function(){if(this[_0x8f09[31]]){return mxResources[_0x8f09[24]](_0x8f09[38])}});this[_0x8f09[14]][_0x8f09[39]]=false;this[_0x8f09[14]][_0x8f09[40]]=true;this[_0x8f09[14]][_0x8f09[41]]=null;};mxUtils[_0x8f09[42]](Editor,mxEventSource);Editor[_0x8f09[44]][_0x8f09[43]]=IMAGE_PATH+_0x8f09[45];Editor[_0x8f09[44]][_0x8f09[46]]=IMAGE_PATH+_0x8f09[47];Editor[_0x8f09[44]][_0x8f09[48]]=function(_0xc578x7){var _0xc578x8= new mxCodec(_0xc578x7[_0x8f09[49]]);if(_0xc578x7[_0x8f09[50]]==_0x8f09[51]){this[_0x8f09[14]][_0x8f09[53]][_0x8f09[52]]=1;this[_0x8f09[14]][_0x8f09[54]]=_0xc578x7[_0x8f09[56]](_0x8f09[55])!=_0x8f09[57];this[_0x8f09[14]][_0x8f09[59]][_0x8f09[58]]=_0xc578x7[_0x8f09[56]](_0x8f09[60])!=_0x8f09[57];this[_0x8f09[14]][_0x8f09[62]](_0xc578x7[_0x8f09[56]](_0x8f09[61])!=_0x8f09[57]);this[_0x8f09[14]][_0x8f09[64]](_0xc578x7[_0x8f09[56]](_0x8f09[63])!=_0x8f09[57]);this[_0x8f09[14]][_0x8f09[65]]=_0xc578x7[_0x8f09[56]](_0x8f09[66])!=_0x8f09[57];this[_0x8f09[14]][_0x8f09[40]]=_0xc578x7[_0x8f09[56]](_0x8f09[40])!=_0x8f09[57];if(!this[_0x8f09[14]][_0x8f09[40]]){this[_0x8f09[14]][_0x8f09[68]][_0x8f09[67]]=0;this[_0x8f09[14]][_0x8f09[68]][_0x8f09[69]]=0;this[_0x8f09[14]][_0x8f09[53]][_0x8f09[71]][_0x8f09[70]]=Number(_0xc578x7[_0x8f09[56]](_0x8f09[72])||0);this[_0x8f09[14]][_0x8f09[53]][_0x8f09[71]][_0x8f09[73]]=Number(_0xc578x7[_0x8f09[56]](_0x8f09[74])||0);};this[_0x8f09[14]][_0x8f09[75]]=_0xc578x7[_0x8f09[56]](_0x8f09[76])==_0x8f09[8];this[_0x8f09[14]][_0x8f09[77]]=this[_0x8f09[14]][_0x8f09[75]];this[_0x8f09[14]][_0x8f09[78]]=this[_0x8f09[14]][_0x8f09[77]];var _0xc578x9=_0xc578x7[_0x8f09[56]](_0x8f09[79]);if(_0xc578x9!=null){this[_0x8f09[14]][_0x8f09[79]]=_0xc578x9}else {this[_0x8f09[14]][_0x8f09[79]]=1.5};var _0xc578xa=_0xc578x7[_0x8f09[56]](_0x8f09[80]);var _0xc578xb=_0xc578x7[_0x8f09[56]](_0x8f09[81]);if(_0xc578xa!=null&&_0xc578xb!=null){this[_0x8f09[14]][_0x8f09[82]]= new mxRectangle(0,0,parseFloat(_0xc578xa),parseFloat(_0xc578xb));this[_0x8f09[15]][_0x8f09[15]][_0x8f09[82]]=this[_0x8f09[14]][_0x8f09[82]];};var _0xc578xc=_0xc578x7[_0x8f09[56]](_0x8f09[41]);if(_0xc578xc!=null&&_0xc578xc[_0x8f09[83]]>0){this[_0x8f09[14]][_0x8f09[41]]=_0xc578xc};_0xc578x8[_0x8f09[84]](_0xc578x7,this[_0x8f09[14]][_0x8f09[36]]());this[_0x8f09[85]]();};};Editor[_0x8f09[44]][_0x8f09[86]]=function(){var _0xc578xd= new mxCodec(mxUtils[_0x8f09[87]]());var _0xc578x7=_0xc578xd[_0x8f09[88]](this[_0x8f09[14]][_0x8f09[36]]());if(this[_0x8f09[14]][_0x8f09[53]][_0x8f09[71]][_0x8f09[70]]!=0||this[_0x8f09[14]][_0x8f09[53]][_0x8f09[71]][_0x8f09[73]]!=0){_0xc578x7[_0x8f09[90]](_0x8f09[72],Math[_0x8f09[89]](this[_0x8f09[14]][_0x8f09[53]][_0x8f09[71]][_0x8f09[70]]*100)/100);_0xc578x7[_0x8f09[90]](_0x8f09[74],Math[_0x8f09[89]](this[_0x8f09[14]][_0x8f09[53]][_0x8f09[71]][_0x8f09[73]]*100)/100);};_0xc578x7[_0x8f09[90]](_0x8f09[55],(this[_0x8f09[14]][_0x8f09[91]]())?_0x8f09[8]:_0x8f09[57]);_0xc578x7[_0x8f09[90]](_0x8f09[60],(this[_0x8f09[14]][_0x8f09[59]][_0x8f09[58]])?_0x8f09[8]:_0x8f09[57]);_0xc578x7[_0x8f09[90]](_0x8f09[60],(this[_0x8f09[14]][_0x8f09[59]][_0x8f09[58]])?_0x8f09[8]:_0x8f09[57]);_0xc578x7[_0x8f09[90]](_0x8f09[61],(this[_0x8f09[14]][_0x8f09[93]][_0x8f09[92]]())?_0x8f09[8]:_0x8f09[57]);_0xc578x7[_0x8f09[90]](_0x8f09[63],(this[_0x8f09[14]][_0x8f09[94]][_0x8f09[92]]())?_0x8f09[8]:_0x8f09[57]);_0xc578x7[_0x8f09[90]](_0x8f09[66],(this[_0x8f09[14]][_0x8f09[65]])?_0x8f09[8]:_0x8f09[57]);_0xc578x7[_0x8f09[90]](_0x8f09[76],(this[_0x8f09[14]][_0x8f09[75]])?_0x8f09[8]:_0x8f09[57]);_0xc578x7[_0x8f09[90]](_0x8f09[79],this[_0x8f09[14]][_0x8f09[79]]);_0xc578x7[_0x8f09[90]](_0x8f09[80],this[_0x8f09[14]][_0x8f09[82]][_0x8f09[95]]);_0xc578x7[_0x8f09[90]](_0x8f09[81],this[_0x8f09[14]][_0x8f09[82]][_0x8f09[96]]);if(!this[_0x8f09[14]][_0x8f09[40]]){_0xc578x7[_0x8f09[90]](_0x8f09[40],_0x8f09[57])};if(this[_0x8f09[14]][_0x8f09[41]]!=null){_0xc578x7[_0x8f09[90]](_0x8f09[41],this[_0x8f09[14]][_0x8f09[41]])};return _0xc578x7;};Editor[_0x8f09[44]][_0x8f09[85]]=function(){var _0xc578xe=this[_0x8f09[14]];var _0xc578xf=this[_0x8f09[15]];if(_0xc578xe[_0x8f09[68]]!=null&&_0xc578xf[_0x8f09[15]][_0x8f09[68]]!=null){if(_0xc578xe[_0x8f09[41]]!=null){if(_0xc578xe[_0x8f09[41]]==_0x8f09[97]){_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[98]]=_0x8f09[100]}else {if(_0xc578xe[_0x8f09[53]][_0x8f09[101]]!=null){_0xc578xe[_0x8f09[53]][_0x8f09[101]][_0x8f09[102]]=_0xc578xe[_0x8f09[41]];_0xc578xe[_0x8f09[53]][_0x8f09[101]][_0x8f09[103]]();};_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[98]]=_0xc578xe[_0x8f09[41]];}}else {_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[98]]=_0x8f09[20]};if(_0xc578xe[_0x8f09[75]]){_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[98]]=_0x8f09[104];_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[105]]=_0x8f09[106];_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[107]]=_0x8f09[108];_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[109]]=_0x8f09[110];_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[111]]=_0x8f09[110];_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[112]]=_0x8f09[113];_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[114]]=_0x8f09[113];}else {_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[115]]=_0x8f09[20]};_0xc578xf[_0x8f09[15]][_0x8f09[68]][_0x8f09[99]][_0x8f09[98]]=_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[98]];if(_0xc578xf[_0x8f09[15]][_0x8f09[75]]!=_0xc578xe[_0x8f09[75]]||_0xc578xf[_0x8f09[15]][_0x8f09[79]]!=_0xc578xe[_0x8f09[79]]){_0xc578xf[_0x8f09[15]][_0x8f09[79]]=_0xc578xe[_0x8f09[79]];_0xc578xf[_0x8f09[15]][_0x8f09[75]]=_0xc578xe[_0x8f09[75]];_0xc578xf[_0x8f09[15]][_0x8f09[53]][_0x8f09[116]]();};if(_0xc578xe[_0x8f09[40]]&&_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[117]]==_0x8f09[118]&& !touchStyle){_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[117]]=_0x8f09[119]}else {if(!_0xc578xe[_0x8f09[40]]||touchStyle){_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[117]]=_0x8f09[118]}};var _0xc578x10=(mxClient[_0x8f09[120]]&&document[_0x8f09[121]]>=9)?_0x8f09[122]+this[_0x8f09[46]]+_0x8f09[123]:_0x8f09[97];_0xc578xe[_0x8f09[68]][_0x8f09[99]][_0x8f09[124]]=(!_0xc578xe[_0x8f09[75]]&&_0xc578xe[_0x8f09[91]]())?_0x8f09[122]+this[_0x8f09[43]]+_0x8f09[123]:_0xc578x10;if(_0xc578xe[_0x8f09[53]][_0x8f09[101]]!=null){_0xc578xe[_0x8f09[53]][_0x8f09[101]][_0x8f09[125]][_0x8f09[99]][_0x8f09[124]]=(this[_0x8f09[14]][_0x8f09[91]]())?_0x8f09[122]+this[_0x8f09[43]]+_0x8f09[123]:_0x8f09[97]};};};Editor[_0x8f09[44]][_0x8f09[12]]=function(){if(mxClient[_0x8f09[126]]){mxClient[_0x8f09[129]](_0x8f09[127],CSS_PATH+_0x8f09[128])};mxResources[_0x8f09[130]]=false;mxResources[_0x8f09[131]](RESOURCE_BASE);mxConstants[_0x8f09[132]]=0.3;var _0xc578x11=mxConnectionHandler[_0x8f09[44]][_0x8f09[133]];mxConnectionHandler[_0x8f09[44]][_0x8f09[133]]=function(){var _0xc578x12=_0xc578x11[_0x8f09[33]](this,arguments);_0xc578x12[_0x8f09[134]]=mxUtils[_0x8f09[34]](this,function(_0xc578x13,_0xc578x14){if(this[_0x8f09[135]]()){return true};return mxCellMarker[_0x8f09[44]][_0x8f09[134]][_0x8f09[33]](_0xc578x12,arguments);});return _0xc578x12;};mxConstants[_0x8f09[136]]=_0x8f09[137];mxConstants[_0x8f09[138]]=_0x8f09[139];mxConstants[_0x8f09[140]]=_0x8f09[141];mxConstants[_0x8f09[142]]=_0x8f09[143];mxConstants[_0x8f09[144]]=_0x8f09[143];mxConstants[_0x8f09[145]]=_0x8f09[139];mxConstants[_0x8f09[146]]=_0x8f09[143];mxConstants[_0x8f09[147]]=_0x8f09[148];mxConstants[_0x8f09[149]]=_0x8f09[143];mxConstants[_0x8f09[150]]=_0x8f09[143];mxConstants[_0x8f09[151]]=_0x8f09[148];mxConstants[_0x8f09[152]]=_0x8f09[141];mxGraph[_0x8f09[44]][_0x8f09[153]]=_0x8f09[154];mxGraph[_0x8f09[44]][_0x8f09[79]]=1;mxRubberband[_0x8f09[44]][_0x8f09[155]]=30;mxGraphView[_0x8f09[44]][_0x8f09[156]]=function(_0xc578x15){return  new mxRectangleShape(_0xc578x15,this[_0x8f09[14]][_0x8f09[41]]||_0x8f09[157],_0x8f09[158])};mxGraphView[_0x8f09[44]][_0x8f09[159]]=function(){var _0xc578x16=this[_0x8f09[160]]();var _0xc578x17=(_0xc578x16[_0x8f09[95]]>0)?_0xc578x16[_0x8f09[70]]/this[_0x8f09[52]]-this[_0x8f09[71]][_0x8f09[70]]:0;var _0xc578x18=(_0xc578x16[_0x8f09[96]]>0)?_0xc578x16[_0x8f09[73]]/this[_0x8f09[52]]-this[_0x8f09[71]][_0x8f09[73]]:0;var _0xc578x19=_0xc578x16[_0x8f09[95]]/this[_0x8f09[52]];var _0xc578x1a=_0xc578x16[_0x8f09[96]]/this[_0x8f09[52]];var _0xc578x1b=this[_0x8f09[14]][_0x8f09[82]];var _0xc578x9=this[_0x8f09[14]][_0x8f09[79]];var _0xc578xa=_0xc578x1b[_0x8f09[95]]*_0xc578x9;var _0xc578xb=_0xc578x1b[_0x8f09[96]]*_0xc578x9;var _0xc578x1c=Math[_0x8f09[162]](Math[_0x8f09[161]](0,_0xc578x17)/_0xc578xa);var _0xc578x1d=Math[_0x8f09[162]](Math[_0x8f09[161]](0,_0xc578x18)/_0xc578xb);var _0xc578x1e=Math[_0x8f09[164]](Math[_0x8f09[163]](1,_0xc578x17+_0xc578x19)/_0xc578xa);var _0xc578x1f=Math[_0x8f09[164]](Math[_0x8f09[163]](1,_0xc578x18+_0xc578x1a)/_0xc578xb);var _0xc578x20=_0xc578x1e-_0xc578x1c;var _0xc578x21=_0xc578x1f-_0xc578x1d;var _0xc578x15= new mxRectangle(this[_0x8f09[52]]*(this[_0x8f09[71]][_0x8f09[70]]+_0xc578x1c*_0xc578xa),this[_0x8f09[52]]*(this[_0x8f09[71]][_0x8f09[73]]+_0xc578x1d*_0xc578xb),this[_0x8f09[52]]*_0xc578x20*_0xc578xa,this[_0x8f09[52]]*_0xc578x21*_0xc578xb);return _0xc578x15;};var _0xc578x22=mxGraph[_0x8f09[44]][_0x8f09[165]];mxGraph[_0x8f09[44]][_0x8f09[165]]=function(_0xc578x23,_0xc578x24){_0xc578x22[_0x8f09[33]](this,arguments);if((this[_0x8f09[166]]!=mxConstants[_0x8f09[167]]&&this[_0x8f09[53]][_0x8f09[101]]!=null)&&(!this[_0x8f09[168]]||!mxUtils[_0x8f09[169]](this[_0x8f09[68]]))){this[_0x8f09[53]][_0x8f09[101]][_0x8f09[125]][_0x8f09[99]][_0x8f09[170]]=_0xc578x23+_0x8f09[171];this[_0x8f09[53]][_0x8f09[101]][_0x8f09[125]][_0x8f09[99]][_0x8f09[172]]=_0xc578x24+_0x8f09[171];};};var _0xc578x25=this;mxGraphView[_0x8f09[44]][_0x8f09[173]]=function(){var _0xc578xc=this[_0x8f09[14]][_0x8f09[174]]();if(_0xc578xc!=null){if(this[_0x8f09[124]]==null||this[_0x8f09[124]][_0x8f09[175]]!=_0xc578xc[_0x8f09[176]]){if(this[_0x8f09[124]]!=null){this[_0x8f09[124]][_0x8f09[177]]()};var _0xc578x15= new mxRectangle(0,0,1,1);this[_0x8f09[124]]= new mxImageShape(_0xc578x15,_0xc578xc[_0x8f09[176]]);this[_0x8f09[124]][_0x8f09[166]]=this[_0x8f09[14]][_0x8f09[166]];this[_0x8f09[124]][_0x8f09[12]](this[_0x8f09[178]]);this[_0x8f09[124]][_0x8f09[179]]();};this[_0x8f09[180]](this[_0x8f09[124]],_0xc578xc);}else {if(this[_0x8f09[124]]!=null){this[_0x8f09[124]][_0x8f09[177]]();this[_0x8f09[124]]=null;}};if(this[_0x8f09[14]][_0x8f09[75]]){var _0xc578x15=this[_0x8f09[159]]();if(this[_0x8f09[101]]==null){this[_0x8f09[101]]=this[_0x8f09[156]](_0xc578x15);this[_0x8f09[101]][_0x8f09[52]]=1;this[_0x8f09[101]][_0x8f09[181]]=true;this[_0x8f09[101]][_0x8f09[166]]=mxConstants[_0x8f09[182]];this[_0x8f09[101]][_0x8f09[12]](this[_0x8f09[14]][_0x8f09[68]]);this[_0x8f09[14]][_0x8f09[68]][_0x8f09[184]][_0x8f09[99]][_0x8f09[183]]=_0x8f09[185];this[_0x8f09[14]][_0x8f09[68]][_0x8f09[186]](this[_0x8f09[101]][_0x8f09[125]],this[_0x8f09[14]][_0x8f09[68]][_0x8f09[184]]);this[_0x8f09[101]][_0x8f09[179]]();this[_0x8f09[101]][_0x8f09[125]][_0x8f09[187]]=_0x8f09[188];this[_0x8f09[101]][_0x8f09[125]][_0x8f09[99]][_0x8f09[189]]=_0x8f09[190];mxEvent[_0x8f09[35]](this[_0x8f09[101]][_0x8f09[125]],_0x8f09[191],mxUtils[_0x8f09[34]](this,function(_0xc578x14){this[_0x8f09[14]][_0x8f09[192]](_0xc578x14)}));mxEvent[_0x8f09[198]](this[_0x8f09[101]][_0x8f09[125]],mxUtils[_0x8f09[34]](this,function(_0xc578x14){this[_0x8f09[14]][_0x8f09[193]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc578x14))}),mxUtils[_0x8f09[34]](this,function(_0xc578x14){if(this[_0x8f09[14]][_0x8f09[93]]!=null&&this[_0x8f09[14]][_0x8f09[93]][_0x8f09[194]]()){this[_0x8f09[14]][_0x8f09[93]][_0x8f09[195]]()};if(this[_0x8f09[14]][_0x8f09[196]]&&!mxEvent[_0x8f09[197]](_0xc578x14)){this[_0x8f09[14]][_0x8f09[193]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc578x14))};}),mxUtils[_0x8f09[34]](this,function(_0xc578x14){this[_0x8f09[14]][_0x8f09[193]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc578x14))}));}else {this[_0x8f09[101]][_0x8f09[52]]=1;this[_0x8f09[101]][_0x8f09[199]]=_0xc578x15;this[_0x8f09[101]][_0x8f09[179]]();};this[_0x8f09[101]][_0x8f09[125]][_0x8f09[99]][_0x8f09[124]]=(this[_0x8f09[14]][_0x8f09[91]]())?_0x8f09[122]+_0xc578x25[_0x8f09[43]]+_0x8f09[123]:_0x8f09[97];}else {if(this[_0x8f09[101]]!=null){this[_0x8f09[101]][_0x8f09[177]]();this[_0x8f09[101]]=null;}};};mxGraph[_0x8f09[44]][_0x8f09[200]]=function(_0xc578x26,_0xc578x27,_0xc578x28){var _0xc578x29=this[_0x8f09[53]][_0x8f09[52]];var _0xc578x2a=this[_0x8f09[53]][_0x8f09[71]];var _0xc578x1b=this[_0x8f09[82]];var _0xc578x9=_0xc578x29*this[_0x8f09[79]];var _0xc578x2b=this[_0x8f09[53]][_0x8f09[159]]();_0xc578x27=_0xc578x2b[_0x8f09[95]];_0xc578x28=_0xc578x2b[_0x8f09[96]];var _0xc578x15= new mxRectangle(_0xc578x29*_0xc578x2a[_0x8f09[70]],_0xc578x29*_0xc578x2a[_0x8f09[73]],_0xc578x1b[_0x8f09[95]]*_0xc578x9,_0xc578x1b[_0x8f09[96]]*_0xc578x9);_0xc578x26=_0xc578x26&&Math[_0x8f09[161]](_0xc578x15[_0x8f09[95]],_0xc578x15[_0x8f09[96]])>this[_0x8f09[201]];var _0xc578x2c=(_0xc578x26)?Math[_0x8f09[164]](_0xc578x27/_0xc578x15[_0x8f09[95]])-1:0;var _0xc578x2d=(_0xc578x26)?Math[_0x8f09[164]](_0xc578x28/_0xc578x15[_0x8f09[96]])-1:0;var _0xc578x2e=_0xc578x2b[_0x8f09[70]]+_0xc578x27;var _0xc578x2f=_0xc578x2b[_0x8f09[73]]+_0xc578x28;if(this[_0x8f09[202]]==null&&_0xc578x2c>0){this[_0x8f09[202]]=[]};if(this[_0x8f09[202]]!=null){for(var _0xc578x30=0;_0xc578x30<=_0xc578x2c;_0xc578x30++){var _0xc578x31=[ new mxPoint(_0xc578x2b[_0x8f09[70]]+(_0xc578x30+1)*_0xc578x15[_0x8f09[95]],_0xc578x2b[_0x8f09[73]]), new mxPoint(_0xc578x2b[_0x8f09[70]]+(_0xc578x30+1)*_0xc578x15[_0x8f09[95]],_0xc578x2f)];if(this[_0x8f09[202]][_0xc578x30]!=null){this[_0x8f09[202]][_0xc578x30][_0x8f09[52]]=1;this[_0x8f09[202]][_0xc578x30][_0x8f09[203]]=_0xc578x31;this[_0x8f09[202]][_0xc578x30][_0x8f09[179]]();}else {var _0xc578x32= new mxPolyline(_0xc578x31,this[_0x8f09[153]],this[_0x8f09[52]]);_0xc578x32[_0x8f09[166]]=this[_0x8f09[166]];_0xc578x32[_0x8f09[204]]=this[_0x8f09[205]];_0xc578x32[_0x8f09[206]]=false;_0xc578x32[_0x8f09[52]]=_0xc578x29;_0xc578x32[_0x8f09[12]](this[_0x8f09[53]][_0x8f09[178]]);_0xc578x32[_0x8f09[179]]();this[_0x8f09[202]][_0xc578x30]=_0xc578x32;};};for(var _0xc578x30=_0xc578x2c;_0xc578x30<this[_0x8f09[202]][_0x8f09[83]];_0xc578x30++){this[_0x8f09[202]][_0xc578x30][_0x8f09[177]]()};this[_0x8f09[202]][_0x8f09[207]](_0xc578x2c,this[_0x8f09[202]][_0x8f09[83]]-_0xc578x2c);};if(this[_0x8f09[208]]==null&&_0xc578x2d>0){this[_0x8f09[208]]=[]};if(this[_0x8f09[208]]!=null){for(var _0xc578x30=0;_0xc578x30<=_0xc578x2d;_0xc578x30++){var _0xc578x31=[ new mxPoint(_0xc578x2b[_0x8f09[70]],_0xc578x2b[_0x8f09[73]]+(_0xc578x30+1)*_0xc578x15[_0x8f09[96]]), new mxPoint(_0xc578x2e,_0xc578x2b[_0x8f09[73]]+(_0xc578x30+1)*_0xc578x15[_0x8f09[96]])];if(this[_0x8f09[208]][_0xc578x30]!=null){this[_0x8f09[208]][_0xc578x30][_0x8f09[52]]=1;this[_0x8f09[208]][_0xc578x30][_0x8f09[203]]=_0xc578x31;this[_0x8f09[208]][_0xc578x30][_0x8f09[179]]();}else {var _0xc578x32= new mxPolyline(_0xc578x31,this[_0x8f09[153]],_0xc578x29);_0xc578x32[_0x8f09[166]]=this[_0x8f09[166]];_0xc578x32[_0x8f09[204]]=this[_0x8f09[205]];_0xc578x32[_0x8f09[206]]=false;_0xc578x32[_0x8f09[52]]=_0xc578x29;_0xc578x32[_0x8f09[12]](this[_0x8f09[53]][_0x8f09[178]]);_0xc578x32[_0x8f09[179]]();this[_0x8f09[208]][_0xc578x30]=_0xc578x32;};};for(var _0xc578x30=_0xc578x2d;_0xc578x30<this[_0x8f09[208]][_0x8f09[83]];_0xc578x30++){this[_0x8f09[208]][_0xc578x30][_0x8f09[177]]()};this[_0x8f09[208]][_0x8f09[207]](_0xc578x2d,this[_0x8f09[208]][_0x8f09[83]]-_0xc578x2d);};};mxEdgeHandler[_0x8f09[44]][_0x8f09[209]]=true;mxGraphHandler[_0x8f09[44]][_0x8f09[58]]=true;var _0xc578x33=mxGraphHandler[_0x8f09[44]][_0x8f09[210]];mxGraphHandler[_0x8f09[44]][_0x8f09[210]]=function(_0xc578x34,_0xc578x35,_0xc578x14){for(var _0xc578x30=0;_0xc578x30<_0xc578x35[_0x8f09[83]];_0xc578x30++){if(this[_0x8f09[14]][_0x8f09[36]]()[_0x8f09[211]](_0xc578x35[_0xc578x30])){var _0xc578x36=this[_0x8f09[14]][_0x8f09[212]](_0xc578x35[_0xc578x30]);if(_0xc578x36!=null&&_0xc578x36[_0x8f09[213]]){return false};}};return _0xc578x33[_0x8f09[33]](this,arguments);};mxGuide[_0x8f09[44]][_0x8f09[214]]=function(_0xc578x14){return !mxEvent[_0x8f09[215]](_0xc578x14)};mxPopupMenuAddItem=mxPopupMenu[_0x8f09[44]][_0x8f09[216]];mxPopupMenu[_0x8f09[44]][_0x8f09[216]]=function(_0xc578x37,_0xc578x38,_0xc578x39,_0xc578x34,_0xc578x3a,_0xc578x3b){var _0xc578x3c=mxPopupMenuAddItem[_0x8f09[33]](this,arguments);if(_0xc578x3b!=null&& !_0xc578x3b){mxEvent[_0x8f09[35]](_0xc578x3c,_0x8f09[217],function(_0xc578x14){mxEvent[_0x8f09[218]](_0xc578x14)})};return _0xc578x3c;};var _0xc578x3d=mxGraphHandler[_0x8f09[44]][_0x8f09[219]];mxGraphHandler[_0x8f09[44]][_0x8f09[219]]=function(_0xc578x3e){var _0xc578x3f=this[_0x8f09[14]][_0x8f09[36]]();var _0xc578x40=_0xc578x3f[_0x8f09[221]](this[_0x8f09[14]][_0x8f09[220]]());var _0xc578x41=_0xc578x3d[_0x8f09[33]](this,arguments);var _0xc578x34=_0xc578x3f[_0x8f09[221]](_0xc578x41);if(_0xc578x40==null||(_0xc578x40!=_0xc578x41&&_0xc578x40!=_0xc578x34)){while(!this[_0x8f09[14]][_0x8f09[222]](_0xc578x41)&&!this[_0x8f09[14]][_0x8f09[222]](_0xc578x34)&&_0xc578x3f[_0x8f09[211]](_0xc578x34)&&!this[_0x8f09[14]][_0x8f09[223]](_0xc578x34)){_0xc578x41=_0xc578x34;_0xc578x34=this[_0x8f09[14]][_0x8f09[36]]()[_0x8f09[221]](_0xc578x41);}};return _0xc578x41;};var _0xc578x42=mxGraphHandler[_0x8f09[44]][_0x8f09[224]];mxGraphHandler[_0x8f09[44]][_0x8f09[224]]=function(_0xc578x41){var _0xc578x3c=_0xc578x42[_0x8f09[33]](this,arguments);var _0xc578x3f=this[_0x8f09[14]][_0x8f09[36]]();var _0xc578x40=_0xc578x3f[_0x8f09[221]](this[_0x8f09[14]][_0x8f09[220]]());var _0xc578x34=_0xc578x3f[_0x8f09[221]](_0xc578x41);if(_0xc578x40==null||(_0xc578x40!=_0xc578x41&&_0xc578x40!=_0xc578x34)){if(!this[_0x8f09[14]][_0x8f09[222]](_0xc578x41)&&_0xc578x3f[_0x8f09[211]](_0xc578x34)&&!this[_0x8f09[14]][_0x8f09[223]](_0xc578x34)){_0xc578x3c=true}};return _0xc578x3c;};mxGraphHandler[_0x8f09[44]][_0x8f09[225]]=function(_0xc578x3e){var _0xc578x41=_0xc578x3e[_0x8f09[226]]();if(_0xc578x41==null){_0xc578x41=this[_0x8f09[227]]};var _0xc578x3f=this[_0x8f09[14]][_0x8f09[36]]();var _0xc578x34=_0xc578x3f[_0x8f09[221]](_0xc578x41);while(this[_0x8f09[14]][_0x8f09[222]](_0xc578x41)&&_0xc578x3f[_0x8f09[211]](_0xc578x34)&&!this[_0x8f09[14]][_0x8f09[223]](_0xc578x34)){_0xc578x41=_0xc578x34;_0xc578x34=_0xc578x3f[_0x8f09[221]](_0xc578x41);};this[_0x8f09[14]][_0x8f09[229]](_0xc578x41,_0xc578x3e[_0x8f09[228]]());};mxPanningHandler[_0x8f09[44]][_0x8f09[230]]=function(_0xc578x3e){var _0xc578x41=_0xc578x3e[_0x8f09[226]]();var _0xc578x3f=this[_0x8f09[14]][_0x8f09[36]]();var _0xc578x34=_0xc578x3f[_0x8f09[221]](_0xc578x41);while(_0xc578x3f[_0x8f09[211]](_0xc578x34)&&!this[_0x8f09[14]][_0x8f09[223]](_0xc578x34)){if(this[_0x8f09[14]][_0x8f09[222]](_0xc578x34)){_0xc578x41=_0xc578x34};_0xc578x34=_0xc578x3f[_0x8f09[221]](_0xc578x34);};return _0xc578x41;};};Editor[_0x8f09[44]][_0x8f09[18]]=function(){var _0xc578xe=this[_0x8f09[14]];var _0xc578x43= new mxUndoManager();var _0xc578x44=function(_0xc578x45,_0xc578x14){_0xc578x43[_0x8f09[233]](_0xc578x14[_0x8f09[232]](_0x8f09[231]))};_0xc578xe[_0x8f09[36]]()[_0x8f09[35]](mxEvent.UNDO,_0xc578x44);_0xc578xe[_0x8f09[234]]()[_0x8f09[35]](mxEvent.UNDO,_0xc578x44);var _0xc578x46=function(_0xc578x45,_0xc578x14){var _0xc578x47=_0xc578xe[_0x8f09[236]](_0xc578x14[_0x8f09[232]](_0x8f09[231])[_0x8f09[235]]);var _0xc578x35=[];for(var _0xc578x30=1;_0xc578x30<_0xc578x47[_0x8f09[83]];_0xc578x30++){if(_0xc578xe[_0x8f09[53]][_0x8f09[237]](_0xc578x47[_0xc578x30])!=null){_0xc578x35[_0x8f09[238]](_0xc578x47[_0xc578x30])}};_0xc578xe[_0x8f09[239]](_0xc578x35);};_0xc578x43[_0x8f09[35]](mxEvent.UNDO,_0xc578x46);_0xc578x43[_0x8f09[35]](mxEvent.REDO,_0xc578x46);return _0xc578x43;};Editor[_0x8f09[44]][_0x8f09[13]]=function(){mxStencilRegistry[_0x8f09[241]](STENCIL_PATH+_0x8f09[240])};(function(){mxStencilRegistry[_0x8f09[242]]={};mxStencilRegistry[_0x8f09[243]]=[];mxStencilRegistry[_0x8f09[244]]=function(_0xc578x48){var _0xc578x3c=mxStencilRegistry[_0x8f09[245]][_0xc578x48];if(_0xc578x3c==null){var _0xc578x49=mxStencilRegistry[_0x8f09[246]](_0xc578x48);if(_0xc578x49!=null){var _0xc578x4a=mxStencilRegistry[_0x8f09[242]][_0xc578x49];if(_0xc578x4a!=null){if(mxStencilRegistry[_0x8f09[243]][_0xc578x49]==null){mxStencilRegistry[_0x8f09[243]][_0xc578x49]=1;for(var _0xc578x30=0;_0xc578x30<_0xc578x4a[_0x8f09[83]];_0xc578x30++){var _0xc578x4b=_0xc578x4a[_0xc578x30];if(_0xc578x4b[_0x8f09[248]]()[_0x8f09[247]](_0xc578x4b[_0x8f09[83]]-4,_0xc578x4b[_0x8f09[83]])==_0x8f09[25]){mxStencilRegistry[_0x8f09[241]](_0xc578x4b,null)}else {if(_0xc578x4b[_0x8f09[248]]()[_0x8f09[247]](_0xc578x4b[_0x8f09[83]]-3,_0xc578x4b[_0x8f09[83]])==_0x8f09[249]){var _0xc578x4c=mxUtils[_0x8f09[250]](_0xc578x4b);if(_0xc578x4c!=null){eval[_0x8f09[11]](window,_0xc578x4c[_0x8f09[251]]())};}else {}};};}}else {mxStencilRegistry[_0x8f09[241]](STENCIL_PATH+_0x8f09[252]+_0xc578x49+_0x8f09[25],null)};_0xc578x3c=mxStencilRegistry[_0x8f09[245]][_0xc578x48];};};return _0xc578x3c;};mxStencilRegistry[_0x8f09[246]]=function(_0xc578x48){var _0xc578x4d=_0xc578x48[_0x8f09[254]](_0x8f09[253]);var _0xc578x4e=null;if(_0xc578x4d[_0x8f09[83]]>0&&_0xc578x4d[0]==_0x8f09[255]){_0xc578x4e=_0xc578x4d[1];for(var _0xc578x30=2;_0xc578x30<_0xc578x4d[_0x8f09[83]]-1;_0xc578x30++){_0xc578x4e+=_0x8f09[252]+_0xc578x4d[_0xc578x30]};};return _0xc578x4e;};mxStencilRegistry[_0x8f09[241]]=function(_0xc578x4f,_0xc578x50,_0xc578x51){_0xc578x51=(_0xc578x51!=null)?_0xc578x51:false;var _0xc578x52=mxStencilRegistry[_0x8f09[243]][_0xc578x4f];if(_0xc578x51||_0xc578x52==null){var _0xc578x53=false;if(_0xc578x52==null){var _0xc578x4c=mxUtils[_0x8f09[250]](_0xc578x4f);_0xc578x52=_0xc578x4c[_0x8f09[256]]();mxStencilRegistry[_0x8f09[243]][_0xc578x4f]=_0xc578x52;_0xc578x53=true;};mxStencilRegistry[_0x8f09[257]](_0xc578x52,_0xc578x50,_0xc578x53);};};mxStencilRegistry[_0x8f09[257]]=function(_0xc578x54,_0xc578x50,_0xc578x53){_0xc578x53=(_0xc578x53!=null)?_0xc578x53:true;var _0xc578x55=_0xc578x54[_0x8f09[258]];var _0xc578x56=_0xc578x55[_0x8f09[184]];var _0xc578x57=_0x8f09[20];var _0xc578x48=_0xc578x55[_0x8f09[56]](_0x8f09[259]);if(_0xc578x48!=null){_0xc578x57=_0xc578x48+_0x8f09[253]};while(_0xc578x56!=null){if(_0xc578x56[_0x8f09[260]]==mxConstants[_0x8f09[261]]){_0xc578x48=_0xc578x56[_0x8f09[56]](_0x8f09[259]);if(_0xc578x48!=null){_0xc578x57=_0xc578x57[_0x8f09[248]]();var _0xc578x58=_0xc578x48[_0x8f09[263]](/ /g,_0x8f09[262]);if(_0xc578x53){mxStencilRegistry[_0x8f09[264]](_0xc578x57+_0xc578x58[_0x8f09[248]](), new mxStencil(_0xc578x56))};if(_0xc578x50!=null){var _0xc578x19=_0xc578x56[_0x8f09[56]](_0x8f09[265]);var _0xc578x1a=_0xc578x56[_0x8f09[56]](_0x8f09[266]);_0xc578x19=(_0xc578x19==null)?80:parseInt(_0xc578x19,10);_0xc578x1a=(_0xc578x1a==null)?80:parseInt(_0xc578x1a,10);_0xc578x50(_0xc578x57,_0xc578x58,_0xc578x48,_0xc578x19,_0xc578x1a);};};};_0xc578x56=_0xc578x56[_0x8f09[267]];};};})();OpenFile=function(_0xc578x59){this[_0x8f09[268]]=null;this[_0x8f09[269]]=null;this[_0x8f09[270]]=_0xc578x59;};OpenFile[_0x8f09[44]][_0x8f09[271]]=function(_0xc578x6){this[_0x8f09[269]]=_0xc578x6;this[_0x8f09[272]]();};OpenFile[_0x8f09[44]][_0x8f09[273]]=function(_0xc578x6,_0xc578x5a){this[_0x8f09[274]]=_0xc578x6;this[_0x8f09[21]]=_0xc578x5a;this[_0x8f09[272]]();};OpenFile[_0x8f09[44]][_0x8f09[275]]=function(_0xc578x5b){this[_0x8f09[276]]();mxUtils[_0x8f09[277]](_0xc578x5b);};OpenFile[_0x8f09[44]][_0x8f09[272]]=function(){if(this[_0x8f09[269]]!=null&&this[_0x8f09[274]]!=null){this[_0x8f09[269]](this[_0x8f09[274]],this[_0x8f09[21]]);this[_0x8f09[276]]();}};OpenFile[_0x8f09[44]][_0x8f09[276]]=function(){if(this[_0x8f09[270]]!=null){this[_0x8f09[270]]()}};
\ No newline at end of file
index b9fda91..91cf080 100644 (file)
@@ -1 +1 @@
-var _0xd521=["\x65\x64\x69\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x45\x64\x69\x74\x6F\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x72\x61\x70\x68","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x73\x72\x63","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x6D\x65\x6E\x75\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x76\x73","\x72\x65\x66\x72\x65\x73\x68","\x63\x72\x65\x61\x74\x65\x55\x69","\x65\x76\x65\x6E\x74","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x41\x6C\x6C\x6F\x77\x65\x64","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x62\x69\x6E\x64","\x62\x6F\x64\x79","\x6F\x6E\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x6D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x64\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x69\x6E\x69\x74","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x75\x72\x73\x6F\x72","\x64\x65\x66\x61\x75\x6C\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x66\x6F\x63\x75\x73","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x61\x70\x70\x6C\x79","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x73\x74\x61\x72\x74","\x65\x6E\x64","\x69\x6E\x70\x75\x74","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x65\x6D\x61\x69\x6C","\x6E","\x63\x72\x65\x61\x74\x65\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x65\x6C\x6C","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x74\x61\x67\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x73\x6F\x75\x72\x63\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x69\x73\x56\x65\x72\x74\x65\x78","\x6C\x6F\x67","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x63\x6F\x6E\x73\x75\x6D\x65","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x6F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x67\x65\x73\x74\x75\x72\x65\x63\x68\x61\x6E\x67\x65","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x63\x61\x6C\x65\x28","\x73\x63\x61\x6C\x65","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x76\x69\x65\x77","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x7A\x6F\x6F\x6D\x54\x6F\x43\x65\x6E\x74\x65\x72","\x7A\x6F\x6F\x6D","\x76\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x73\x69\x7A\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x75\x70\x64\x61\x74\x65","\x6F\x70\x65\x6E","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6D\x65\x6E\x75\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x74\x6F\x6F\x6C\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x66\x6F\x6F\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x68\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x55\x6E\x64\x6F\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x73\x74\x65","\x67\x65\x74","\x69\x73\x45\x6D\x70\x74\x79","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x74","\x63\x6F\x70\x79","\x6F\x70\x65\x6E\x65\x72","\x6F\x70\x65\x6E\x46\x69\x6C\x65","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x63\x6C\x65\x61\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x4D\x69\x73\x73\x69\x6E\x67\x46\x69\x6C\x65","\x3A\x20","\x6D\x65\x73\x73\x61\x67\x65","\x61\x6C\x65\x72\x74","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x6F\x70\x65\x6E\x53\x74\x72\x69\x6E\x67","\x64\x61\x74\x61","\x6E\x65\x77","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x67\x65\x74\x49\x74\x65\x6D","\x72\x65\x70\x6C\x61\x63\x65","\x63\x6F\x6E\x66\x69\x72\x6D","\x73\x65\x74\x49\x74\x65\x6D","\x73\x61\x76\x65\x64","\x20","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6C\x65\x6E\x67\x74\x68","\x50\x4F\x53\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x50\x72\x6F\x6A\x65\x63\x74\x20","\x6E\x61\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x20\x69\x73\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x69\x6E\x20\x6E\x65\x77\x20\x77\x69\x6E\x64\x6F\x77\x21","\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x69\x64","\x5F\x62\x6C\x61\x6E\x6B","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x65\x77\x26\x6E\x61\x6D\x65\x3D","\x73\x65\x6E\x64","\x64\x72\x61\x77\x69\x6E\x67\x54\x6F\x6F\x4C\x61\x72\x67\x65","\x70\x6F\x70\x75\x70","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74","\x73\x61\x76\x65","\x50\x55\x54","\x55\x70\x64\x61\x74\x65\x64\x20\x61\x74\x20","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x20\x28","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x72\x61\x66\x74\x3D","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x66\x69\x6C\x65","\x73\x61\x76\x65\x41\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x6E\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x63\x6C\x6F\x6E\x65\x64\x26\x6E\x61\x6D\x65\x3D","\x26\x64\x72\x61\x66\x74\x3D","\x26\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x76\x61\x6C\x69\x64\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x74","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x3C\x62\x72\x3E","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x43\x6F\x6E\x74\x65\x6E\x74\x20\x69\x73\x20\x65\x6D\x70\x74\x79","\x0A","\x66\x6F\x72\x6D","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6C\x6F\x63\x6B","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x53\x74\x61\x72\x74\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x67\x65\x74\x49\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6E\x75\x6C\x6C","\x2C","\x73\x70\x6C\x69\x74","\x74\x72\x69\x6D","\x74\x65\x73\x74","\x43\x61\x6E\x20\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x70\x75\x62\x6C\x69\x73\x68","\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x61\x74\x20","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x66\x69\x6C\x65","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x76\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x74\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x6E\x61\x6D\x65\x3D","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x55\x72\x6C","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x26","\x3D","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x68\x61\x64\x6F\x77","\x74\x69\x6C\x74","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x63\x75\x72\x76\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x72\x6F\x75\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x72\x61\x6E\x67\x65","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x73\x70\x61\x63\x69\x6E\x67","\x6C\x69\x6E\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x6C\x69\x67\x6E","\x67\x65\x74\x53\x74\x61\x74\x65","\x69\x73\x4C\x6F\x6F\x70","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x6D\x61\x78","\x68\x65\x69\x67\x68\x74","\x70\x78","\x74\x6F\x70","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x77\x69\x64\x74\x68","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x64\x69\x73\x70\x6C\x61\x79","\x6E\x6F\x6E\x65","\x68\x73\x70\x6C\x69\x74","\x76\x73\x70\x6C\x69\x74","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x4F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x44\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x46\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x48\x73\x70\x6C\x69\x74","\x67\x65\x56\x73\x70\x6C\x69\x74","\x30\x70\x78","\x72\x69\x67\x68\x74","\x6D\x65\x6E\x75\x62\x61\x72","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x74\x6F\x6F\x6C\x62\x61\x72","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x73\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x6F\x74\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x64\x64\x53\x70\x6C\x69\x74\x48\x61\x6E\x64\x6C\x65\x72","\x61","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D\x20\x67\x65\x53\x74\x61\x74\x75\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x67\x65\x46\x6F\x6F\x74\x65\x72","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x72\x6D","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x78","\x79","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x64\x69\x61\x6C\x6F\x67","\x49\x53\x5F\x56\x4D\x4C","\x63\x6C\x6F\x73\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x61\x6E\x69\x6D\x61\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x65\x78\x65\x63\x75\x74\x65","\x43\x61\x6D\x69\x6E\x6F","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x49\x53\x5F\x4D\x41\x43","\x6D\x65\x74\x61\x4B\x65\x79","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x65\x6E\x61\x62\x6C\x65\x64","\x66\x75\x6E\x63\x74","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x4B\x65\x79","\x65\x73\x63\x61\x70\x65","\x65\x6E\x74\x65\x72","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x65\x78\x70\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x67\x72\x69\x64","\x61\x62\x6F\x75\x74","\x20\x6D\x75\x73\x74\x20\x68\x61\x76\x65\x20","\x20\x6F\x75\x74\x67\x6F\x69\x6E\x67\x20\x65\x64\x67\x65\x2E","\x70\x75\x73\x68","\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x64\x67\x65\x2E"];EditorUi=function(_0xe81ax1,_0xe81ax2){this[_0xd521[0]]=_0xe81ax1|| new Editor();this[_0xd521[1]]=_0xe81ax2||document[_0xd521[3]](_0xd521[2]);var _0xe81ax3=_0xe81ax1[_0xd521[4]];var _0xe81ax4=this;this[_0xd521[1]][_0xd521[6]][_0xd521[5]]=_0xd521[7]; new Image()[_0xd521[8]]=mxPopupMenu[_0xd521[10]][_0xd521[9]];if(mxConnectionHandler[_0xd521[10]][_0xd521[11]]!=null){ new Image()[_0xd521[8]]=mxConnectionHandler[_0xd521[10]][_0xd521[11]][_0xd521[8]]};this[_0xd521[12]]= new Actions(this);this[_0xd521[13]]= new Menus(this);this[_0xd521[14]]();this[_0xd521[15]]();this[_0xd521[16]]();var _0xe81ax5=mxUtils[_0xd521[20]](this,function(_0xe81ax6){if(_0xe81ax6==null){_0xe81ax6=window[_0xd521[17]]};if(this[_0xd521[18]](_0xe81ax6)){return true};return _0xe81ax3[_0xd521[19]]();});if(this[_0xd521[1]]==document[_0xd521[21]]){this[_0xd521[23]][_0xd521[22]]=_0xe81ax5;this[_0xd521[23]][_0xd521[24]]=_0xe81ax5;this[_0xd521[25]][_0xd521[22]]=_0xe81ax5;this[_0xd521[25]][_0xd521[24]]=_0xe81ax5;this[_0xd521[26]][_0xd521[22]]=_0xe81ax5;this[_0xd521[26]][_0xd521[24]]=_0xe81ax5;this[_0xd521[27]][_0xd521[22]]=_0xe81ax5;this[_0xd521[27]][_0xd521[24]]=_0xe81ax5;this[_0xd521[28]][_0xd521[22]]=_0xe81ax5;this[_0xd521[28]][_0xd521[24]]=_0xe81ax5;};if(mxClient[_0xd521[29]]&&( typeof (document[_0xd521[30]])===_0xd521[31]||document[_0xd521[30]]<9)){mxEvent[_0xd521[33]](this[_0xd521[26]],_0xd521[32],_0xe81ax5);mxEvent[_0xd521[33]](this[_0xd521[27]],_0xd521[32],_0xe81ax5);}else {this[_0xd521[26]][_0xd521[34]]=_0xe81ax5;this[_0xd521[27]][_0xd521[34]]=_0xe81ax5;};_0xe81ax3[_0xd521[35]](this[_0xd521[26]]);_0xe81ax3[_0xd521[15]]();_0xe81ax3[_0xd521[1]][_0xd521[38]](_0xd521[36],_0xd521[37]);_0xe81ax3[_0xd521[1]][_0xd521[6]][_0xd521[39]]=_0xd521[40];_0xe81ax3[_0xd521[1]][_0xd521[6]][_0xd521[41]]=_0xd521[42]+_0xe81ax1[_0xd521[43]]+_0xd521[44];_0xe81ax3[_0xd521[1]][_0xd521[6]][_0xd521[45]]=_0xd521[46];_0xe81ax3[_0xd521[1]][_0xd521[47]]();var _0xe81ax7=_0xe81ax3[_0xd521[48]];_0xe81ax3[_0xd521[48]]=function(_0xe81ax8,_0xe81ax9,_0xe81axa){if(_0xe81ax8==mxEvent[_0xd521[49]]){this[_0xd521[1]][_0xd521[47]]()};_0xe81ax7[_0xd521[50]](this,arguments);};this[_0xd521[58]](_0xe81ax3[_0xd521[51]],[_0xd521[52],_0xd521[53],_0xd521[54],_0xd521[55],_0xd521[56]],[[1,1],[0,0],[1,1],[1,_0xd521[57]],[1,_0xd521[57]]],[[0,0],[1,_0xd521[57]],[1,_0xd521[57]],[1,_0xd521[57]],[1,_0xd521[57]]]);_0xe81ax3[_0xd521[59]]=function(_0xe81ax6,_0xe81axb){var _0xe81axc=[_0xd521[54],_0xd521[55]];var _0xe81axd= new mxEventObject(mxEvent.DOUBLE_CLICK,_0xd521[17],_0xe81ax6,_0xd521[60],_0xe81axb);this[_0xd521[61]](_0xe81axd);if(this[_0xd521[62]]()&&!mxEvent[_0xd521[63]](_0xe81ax6)&&!_0xe81axd[_0xd521[63]]()){if(this[_0xd521[65]]()[_0xd521[64]](_0xe81axb)){if(_0xe81axc[_0xd521[69]](_0xe81axb[_0xd521[68]][_0xd521[67]][_0xd521[66]])>=0){this[_0xd521[70]](_0xe81axb)}}else {if(this[_0xd521[65]]()[_0xd521[71]](_0xe81axb)){console[_0xd521[72]](_0xe81ax4);console[_0xd521[72]](_0xe81axb);_0xe81ax4[_0xd521[73]]( new GeneralDialog(_0xe81ax4,_0xe81axb)[_0xd521[1]],320,280,true,true);}};_0xe81axd[_0xd521[74]]();};};_0xe81ax3[_0xd521[76]][_0xd521[75]]=true;_0xe81ax3[_0xd521[76]][_0xd521[77]]=mxUtils[_0xd521[20]](this,function(_0xe81axe,_0xe81axb,_0xe81ax6){this[_0xd521[13]][_0xd521[78]](_0xe81axe,_0xe81axb,_0xe81ax6)});_0xe81ax1[_0xd521[80]][_0xd521[35]](this[_0xd521[79]]);mxEvent[_0xd521[82]](document,mxUtils[_0xd521[20]](this,function(_0xe81ax6){_0xe81ax3[_0xd521[76]][_0xd521[81]]()}));if(mxClient[_0xd521[83]]){mxEvent[_0xd521[33]](_0xe81ax3[_0xd521[1]],_0xd521[84],mxUtils[_0xd521[20]](this,function(_0xe81ax6){_0xe81ax3[_0xd521[89]][_0xd521[88]]()[_0xd521[38]](_0xd521[85],_0xd521[86]+_0xe81ax6[_0xd521[87]]+_0xd521[44]);_0xe81ax3[_0xd521[89]][_0xd521[91]]()[_0xd521[6]][_0xd521[90]]=_0xd521[7];}));mxEvent[_0xd521[33]](_0xe81ax3[_0xd521[1]],_0xd521[92],mxUtils[_0xd521[20]](this,function(_0xe81ax6){_0xe81ax3[_0xd521[89]][_0xd521[88]]()[_0xd521[93]](_0xd521[85]);_0xe81ax3[_0xd521[94]]=true;_0xe81ax3[_0xd521[95]](_0xe81ax6[_0xd521[87]]);_0xe81ax3[_0xd521[89]][_0xd521[91]]()[_0xd521[6]][_0xd521[90]]=_0xd521[96];}));};var _0xe81axf=this[_0xd521[97]](_0xe81ax1);this[_0xd521[98]]=function(){return _0xe81axf};mxEvent[_0xd521[33]](window,_0xd521[99],mxUtils[_0xd521[20]](this,function(){this[_0xd521[15]]();_0xe81ax3[_0xd521[100]]();this[_0xd521[0]][_0xd521[80]][_0xd521[101]](false);this[_0xd521[0]][_0xd521[80]][_0xd521[80]][_0xd521[100]]();}));this[_0xd521[35]]();this[_0xd521[102]]();};EditorUi[_0xd521[10]][_0xd521[103]]=(mxClient[_0xd521[83]])?16:8;EditorUi[_0xd521[10]][_0xd521[104]]=33;EditorUi[_0xd521[10]][_0xd521[105]]=36;EditorUi[_0xd521[10]][_0xd521[106]]=28;EditorUi[_0xd521[10]][_0xd521[107]]=204;EditorUi[_0xd521[10]][_0xd521[108]]=190;EditorUi[_0xd521[10]][_0xd521[35]]=function(){this[_0xd521[109]]();this[_0xd521[110]]();var _0xe81ax10=this[_0xd521[12]][_0xd521[112]](_0xd521[111]);var _0xe81ax11=function(){_0xe81ax10[_0xd521[114]](!mxClipboard[_0xd521[113]]())};var _0xe81ax12=mxClipboard[_0xd521[115]];mxClipboard[_0xd521[115]]=function(){_0xe81ax12[_0xd521[50]](this,arguments);_0xe81ax11();};var _0xe81ax13=mxClipboard[_0xd521[116]];mxClipboard[_0xd521[116]]=function(){_0xe81ax13[_0xd521[50]](this,arguments);_0xe81ax11();};};EditorUi[_0xd521[10]][_0xd521[18]]=function(_0xe81ax6){return false};EditorUi[_0xd521[10]][_0xd521[102]]=function(){try{if(window[_0xd521[117]]!=null&&window[_0xd521[117]][_0xd521[118]]!=null){window[_0xd521[117]][_0xd521[118]][_0xd521[130]](mxUtils[_0xd521[20]](this,function(_0xe81ax14,_0xe81ax15){try{var _0xe81ax16=mxUtils[_0xd521[119]](_0xe81ax14);this[_0xd521[0]][_0xd521[121]](_0xe81ax16[_0xd521[120]]);this[_0xd521[0]][_0xd521[122]]=false;this[_0xd521[0]][_0xd521[124]][_0xd521[123]]();if(_0xe81ax15!=null){this[_0xd521[0]][_0xd521[125]]=_0xe81ax15};}catch(e){mxUtils[_0xd521[129]](mxResources[_0xd521[112]](_0xd521[126])+_0xd521[127]+e[_0xd521[128]])}}))}}catch(e){}};EditorUi[_0xd521[10]][_0xd521[131]]=function(_0xe81ax14,_0xe81ax15,_0xe81ax17){try{var _0xe81ax16=mxUtils[_0xd521[119]](_0xe81ax14);this[_0xd521[0]][_0xd521[121]](_0xe81ax16[_0xd521[120]]);this[_0xd521[0]][_0xd521[122]]=false;this[_0xd521[0]][_0xd521[124]][_0xd521[123]]();if(_0xe81ax15!=null){this[_0xd521[0]][_0xd521[125]]=_0xe81ax15};if(_0xe81ax17!=null){this[_0xd521[0]][_0xd521[132]]=_0xe81ax17};}catch(e){mxUtils[_0xd521[129]](mxResources[_0xd521[112]](_0xd521[126])+_0xd521[127]+e[_0xd521[128]])}};EditorUi[_0xd521[10]][_0xd521[133]]=function(_0xe81ax18){var _0xe81ax1=this[_0xd521[0]];if(_0xe81ax18!=null){var _0xe81ax14=mxUtils[_0xd521[135]](this[_0xd521[0]][_0xd521[134]]());try{if(useLocalStorage){if(localStorage[_0xd521[136]](_0xe81ax18)!=null&&!mxUtils[_0xd521[138]](mxResources[_0xd521[112]](_0xd521[137],[_0xe81ax18]))){return };localStorage[_0xd521[139]](_0xe81ax18,_0xe81ax14);this[_0xd521[0]][_0xd521[142]](mxResources[_0xd521[112]](_0xd521[140])+_0xd521[141]+ new Date());}else {console[_0xd521[72]](_0xe81ax14[_0xd521[143]]);console[_0xd521[72]](MAX_REQUEST_SIZE);if(_0xe81ax14[_0xd521[143]]<MAX_REQUEST_SIZE){_0xe81ax14=encodeURIComponent(_0xe81ax14);_0xe81ax18=encodeURIComponent(_0xe81ax18);var _0xe81ax19= new XMLHttpRequest();_0xe81ax19[_0xd521[102]](_0xd521[144],SAVE_URL,true);_0xe81ax19[_0xd521[147]](_0xd521[145],_0xd521[146]);_0xe81ax19[_0xd521[147]](_0xd521[148],_0xd521[149]+_0xe81ax1[_0xd521[132]][_0xd521[150]]);_0xe81ax19[_0xd521[151]]=function(_0xe81ax1a){if(_0xe81ax19[_0xd521[152]]===4){if(_0xe81ax19[_0xd521[153]]===201){_0xe81ax1[_0xd521[142]](_0xd521[154]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[155]]+_0xd521[158]);setTimeout(function(){window[_0xd521[102]](_0xd521[159]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[160]],_0xd521[161])},1500);}else {_0xe81ax1[_0xd521[142]](_0xd521[162]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[163]][0][_0xd521[128]])}}};_0xe81ax19[_0xd521[164]]=function(_0xe81ax1a){mxUtils[_0xd521[129]](_0xe81ax19[_0xd521[165]])};_0xe81ax19[_0xd521[167]](_0xd521[166]+_0xe81ax18);}else {mxUtils[_0xd521[129]](mxResources[_0xd521[112]](_0xd521[168]));mxUtils[_0xd521[169]](_0xe81ax14);return ;};};this[_0xd521[0]][_0xd521[125]]=_0xe81ax18;this[_0xd521[0]][_0xd521[122]]=false;}catch(e){this[_0xd521[0]][_0xd521[142]](_0xd521[170])};}else {this[_0xd521[0]][_0xd521[142]](_0xd521[170])};};EditorUi[_0xd521[10]][_0xd521[171]]=function(_0xe81ax18){var _0xe81ax1=this[_0xd521[0]];if(_0xe81ax18!=null){var _0xe81ax14=mxUtils[_0xd521[135]](this[_0xd521[0]][_0xd521[134]]());try{if(useLocalStorage){if(localStorage[_0xd521[136]](_0xe81ax18)!=null&&!mxUtils[_0xd521[138]](mxResources[_0xd521[112]](_0xd521[137],[_0xe81ax18]))){return };localStorage[_0xd521[139]](_0xe81ax18,_0xe81ax14);this[_0xd521[0]][_0xd521[142]](mxResources[_0xd521[112]](_0xd521[140])+_0xd521[141]+ new Date());}else {console[_0xd521[72]](_0xe81ax14[_0xd521[143]]);console[_0xd521[72]](MAX_REQUEST_SIZE);if(_0xe81ax14[_0xd521[143]]<MAX_REQUEST_SIZE){_0xe81ax14=encodeURIComponent(_0xe81ax14);var _0xe81ax19= new XMLHttpRequest();_0xe81ax19[_0xd521[102]](_0xd521[172],SAVE_URL+this[_0xd521[0]][_0xd521[132]][_0xd521[160]],true);_0xe81ax19[_0xd521[147]](_0xd521[145],_0xd521[146]);_0xe81ax19[_0xd521[147]](_0xd521[148],_0xd521[149]+_0xe81ax1[_0xd521[132]][_0xd521[150]]);_0xe81ax19[_0xd521[151]]=function(_0xe81ax1a){if(_0xe81ax19[_0xd521[152]]===4){if(_0xe81ax19[_0xd521[153]]===200){_0xe81ax1[_0xd521[142]](_0xd521[173]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[174]]+_0xd521[175]+_0xe81ax19[_0xd521[153]]+_0xd521[141]+_0xe81ax19[_0xd521[165]]+_0xd521[44])}else {_0xe81ax1[_0xd521[142]](_0xd521[176]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[163]][0][_0xd521[128]])}}};_0xe81ax19[_0xd521[164]]=function(_0xe81ax1a){mxUtils[_0xd521[129]](_0xe81ax19[_0xd521[165]])};_0xe81ax19[_0xd521[167]](_0xd521[177]+_0xe81ax14);}else {mxUtils[_0xd521[129]](mxResources[_0xd521[112]](_0xd521[168]));mxUtils[_0xd521[169]](_0xe81ax14);return ;};};this[_0xd521[0]][_0xd521[125]]=_0xe81ax18;this[_0xd521[0]][_0xd521[122]]=false;}catch(e){this[_0xd521[0]][_0xd521[142]](_0xd521[178])};}else {this[_0xd521[0]][_0xd521[142]](_0xd521[178])};};EditorUi[_0xd521[10]][_0xd521[179]]=function(_0xe81ax18){var _0xe81ax1=this[_0xd521[0]];console[_0xd521[72]](_0xe81ax18);if(_0xe81ax18!=null){var _0xe81ax14=mxUtils[_0xd521[135]](this[_0xd521[0]][_0xd521[134]]());try{if(useLocalStorage){if(localStorage[_0xd521[136]](_0xe81ax18)!=null&&!mxUtils[_0xd521[138]](mxResources[_0xd521[112]](_0xd521[137],[_0xe81ax18]))){return };localStorage[_0xd521[139]](_0xe81ax18,_0xe81ax14);this[_0xd521[0]][_0xd521[142]](mxResources[_0xd521[112]](_0xd521[140])+_0xd521[141]+ new Date());}else {console[_0xd521[72]](_0xe81ax14[_0xd521[143]]);console[_0xd521[72]](MAX_REQUEST_SIZE);if(_0xe81ax14[_0xd521[143]]<MAX_REQUEST_SIZE){_0xe81ax14=encodeURIComponent(_0xe81ax14);_0xe81ax18=encodeURIComponent(_0xe81ax18);var _0xe81ax19= new XMLHttpRequest();_0xe81ax19[_0xd521[102]](_0xd521[144],SAVE_URL,true);_0xe81ax19[_0xd521[147]](_0xd521[145],_0xd521[146]);_0xe81ax19[_0xd521[147]](_0xd521[148],_0xd521[149]+_0xe81ax1[_0xd521[132]][_0xd521[150]]);_0xe81ax19[_0xd521[151]]=function(_0xe81ax1a){if(_0xe81ax19[_0xd521[152]]===4){if(_0xe81ax19[_0xd521[153]]===201){_0xe81ax1[_0xd521[142]](_0xd521[154]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[155]]+_0xd521[158]);setTimeout(function(){window[_0xd521[102]](_0xd521[159]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[160]],_0xd521[161])},1500);}else {_0xe81ax1[_0xd521[142]](_0xd521[180]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[163]][0][_0xd521[128]])}}};_0xe81ax19[_0xd521[164]]=function(_0xe81ax1a){mxUtils[_0xd521[129]](_0xe81ax19[_0xd521[165]])};_0xe81ax19[_0xd521[167]](_0xd521[181]+_0xe81ax18+_0xd521[182]+_0xe81ax14+_0xd521[183]+_0xe81ax14);}else {mxUtils[_0xd521[129]](mxResources[_0xd521[112]](_0xd521[168]));mxUtils[_0xd521[169]](_0xe81ax14);return ;};};this[_0xd521[0]][_0xd521[125]]=_0xe81ax18;this[_0xd521[0]][_0xd521[122]]=false;}catch(e){this[_0xd521[0]][_0xd521[142]](_0xd521[178])};}else {this[_0xd521[0]][_0xd521[142]](_0xd521[178])};};EditorUi[_0xd521[10]][_0xd521[184]]=function(_0xe81ax1b,_0xe81ax1c){var _0xe81ax3=this[_0xd521[0]][_0xd521[4]];_0xe81ax1b=null!=_0xe81ax1b?_0xe81ax1b:_0xe81ax3[_0xd521[186]][_0xd521[185]]();_0xe81ax1c=null!=_0xe81ax1c?_0xe81ax1c:{};for(var _0xe81ax1d=!0,_0xe81ax1e=_0xe81ax3[_0xd521[186]][_0xd521[187]](_0xe81ax1b),_0xe81ax1a=0;_0xe81ax1a<_0xe81ax1e;_0xe81ax1a++){var _0xe81ax1f=_0xe81ax3[_0xd521[186]][_0xd521[188]](_0xe81ax1b,_0xe81ax1a),_0xe81ax20=_0xe81ax1c;_0xe81ax3[_0xd521[189]](_0xe81ax1f)&&(_0xe81ax20={});_0xe81ax20=this[_0xd521[184]](_0xe81ax1f,_0xe81ax20);null!=_0xe81ax20?_0xe81ax3[_0xd521[191]](_0xe81ax1f,_0xe81ax20[_0xd521[137]](/\n/g,_0xd521[190])):_0xe81ax3[_0xd521[191]](_0xe81ax1f,null);_0xe81ax1d=_0xe81ax1d&&null==_0xe81ax20;};_0xe81ax1e=_0xd521[192];if(_0xe81ax3[_0xd521[186]][_0xd521[71]](_0xe81ax1b)){switch(_0xe81ax1b[_0xd521[67]][_0xd521[199]]){case _0xd521[55]:_0xe81ax1e=(_0xe81ax1b[_0xd521[67]][_0xd521[193]](_0xd521[55])!==_0xd521[192])?_0xd521[192]:_0xd521[194]+_0xd521[195];break ;;case _0xd521[196]:_0xe81ax1e=(_0xe81ax1b[_0xd521[67]][_0xd521[193]](_0xd521[55])!==_0xd521[192])?_0xd521[192]:_0xd521[194]+_0xd521[195];break ;;case _0xd521[52]:_0xe81ax1e=this[_0xd521[197]](_0xd521[52])?_0xd521[192]:_0xd521[198]+_0xd521[195];break ;;}};if(_0xe81ax3[_0xd521[186]][_0xd521[64]](_0xe81ax1b)){var _0xe81ax21=_0xe81ax3[_0xd521[186]][_0xd521[201]](_0xe81ax1b[_0xd521[68]][_0xd521[200]]());switch(_0xe81ax21[_0xd521[67]][_0xd521[199]]){case _0xd521[55]:var _0xe81ax22=/^[a-zA-Z0-9][a-zA-Z0-9\s]*$/;var _0xe81ax23=String(_0xe81ax1b[_0xd521[202]]());if((_0xe81ax23==_0xd521[31])||(_0xe81ax23==_0xd521[203])){_0xe81ax23=_0xd521[141]};var _0xe81ax24=_0xe81ax23[_0xd521[205]](_0xd521[204]);_0xe81ax24[_0xd521[209]](function(_0xe81ax25){_0xe81ax1e=_0xe81ax1e+((_0xe81ax22[_0xd521[207]](_0xe81ax25[_0xd521[206]]()))?_0xd521[192]:_0xd521[208]+_0xd521[195])});break ;;};};_0xe81ax3[_0xd521[210]](_0xe81ax1b)&&!_0xe81ax1d&&(_0xe81ax1e+=(mxResources[_0xd521[112]](_0xe81ax3[_0xd521[211]])||_0xe81ax3[_0xd521[211]])+_0xd521[195]);_0xe81ax1e=_0xe81ax3[_0xd521[186]][_0xd521[64]](_0xe81ax1b)?_0xe81ax1e+(_0xe81ax3[_0xd521[213]](_0xe81ax1b,_0xe81ax3[_0xd521[186]][_0xd521[212]](_0xe81ax1b,!0),_0xe81ax3[_0xd521[186]][_0xd521[212]](_0xe81ax1b,!1))||_0xd521[192]):_0xe81ax1e+(_0xe81ax3[_0xd521[214]](_0xe81ax1b)||_0xd521[192]);_0xe81ax1a=_0xe81ax3[_0xd521[215]](_0xe81ax1b,_0xe81ax1c);null!=_0xe81ax1a&&(_0xe81ax1e+=_0xe81ax1a);null==_0xe81ax3[_0xd521[186]][_0xd521[216]](_0xe81ax1b)&&_0xe81ax3[_0xd521[89]][_0xd521[184]]();return 0<_0xe81ax1e[_0xd521[143]]||!_0xe81ax1d?_0xe81ax1e:null;};EditorUi[_0xd521[10]][_0xd521[197]]=function(_0xe81ax26){var _0xe81ax3=this[_0xd521[0]][_0xd521[4]];var _0xe81ax27=_0xe81ax3[_0xd521[217]]();var _0xe81ax28=0;_0xe81ax27[_0xd521[218]][_0xd521[209]](function(_0xe81ax29){if(_0xe81ax3[_0xd521[186]][_0xd521[71]](_0xe81ax29)&&_0xe81ax29[_0xd521[67]][_0xd521[199]]==_0xe81ax26){_0xe81ax28++}});return _0xe81ax28>1?false:true;};EditorUi[_0xd521[10]][_0xd521[219]]=function(_0xe81ax18){var _0xe81ax1=this[_0xd521[0]];if(_0xe81ax18!=null){var _0xe81ax2a=this[_0xd521[184]]();if(_0xe81ax2a===null){var _0xe81ax14=mxUtils[_0xd521[135]](this[_0xd521[0]][_0xd521[134]]());try{if(useLocalStorage){if(localStorage[_0xd521[136]](_0xe81ax18)!=null&&!mxUtils[_0xd521[138]](mxResources[_0xd521[112]](_0xd521[137],[_0xe81ax18]))){return };localStorage[_0xd521[139]](_0xe81ax18,_0xe81ax14);this[_0xd521[0]][_0xd521[142]](mxResources[_0xd521[112]](_0xd521[140])+_0xd521[141]+ new Date());}else {console[_0xd521[72]](_0xe81ax14[_0xd521[143]]);console[_0xd521[72]](MAX_REQUEST_SIZE);if(_0xe81ax14[_0xd521[143]]<MAX_REQUEST_SIZE){_0xe81ax14=encodeURIComponent(_0xe81ax14);var _0xe81ax19= new XMLHttpRequest();_0xe81ax19[_0xd521[102]](_0xd521[172],SAVE_URL+this[_0xd521[0]][_0xd521[132]][_0xd521[160]],true);_0xe81ax19[_0xd521[147]](_0xd521[145],_0xd521[146]);_0xe81ax19[_0xd521[147]](_0xd521[148],_0xd521[149]+_0xe81ax1[_0xd521[132]][_0xd521[150]]);_0xe81ax19[_0xd521[151]]=function(_0xe81ax1a){if(_0xe81ax19[_0xd521[152]]===4){if(_0xe81ax19[_0xd521[153]]===200){_0xe81ax1[_0xd521[142]](_0xd521[220]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[174]]+_0xd521[175]+_0xe81ax19[_0xd521[153]]+_0xd521[141]+_0xe81ax19[_0xd521[165]]+_0xd521[44])}else {_0xe81ax1[_0xd521[142]](_0xd521[176]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[163]][0][_0xd521[128]])}}};_0xe81ax19[_0xd521[164]]=function(_0xe81ax1a){mxUtils[_0xd521[129]](_0xe81ax19[_0xd521[165]])};_0xe81ax19[_0xd521[167]](_0xd521[177]+_0xe81ax14+_0xd521[183]+_0xe81ax14);}else {mxUtils[_0xd521[129]](mxResources[_0xd521[112]](_0xd521[168]));mxUtils[_0xd521[169]](_0xe81ax14);return ;};};this[_0xd521[0]][_0xd521[125]]=_0xe81ax18;this[_0xd521[0]][_0xd521[122]]=false;}catch(e){this[_0xd521[0]][_0xd521[142]](_0xd521[221])};}else {_0xe81ax1[_0xd521[142]](_0xd521[222])};}else {this[_0xd521[0]][_0xd521[142]](_0xd521[221])};};EditorUi[_0xd521[10]][_0xd521[223]]=function(_0xe81ax18){var _0xe81ax1=this[_0xd521[0]];if(_0xe81ax18!=null){try{var _0xe81ax19= new XMLHttpRequest();_0xe81ax19[_0xd521[102]](_0xd521[144],VARIABLE_URL,true);_0xe81ax19[_0xd521[147]](_0xd521[145],_0xd521[146]);_0xe81ax19[_0xd521[147]](_0xd521[148],_0xd521[149]+_0xe81ax1[_0xd521[132]][_0xd521[150]]);_0xe81ax19[_0xd521[151]]=function(_0xe81ax1a){if(_0xe81ax19[_0xd521[152]]===4){if(_0xe81ax19[_0xd521[153]]===201){_0xe81ax1[_0xd521[142]](_0xd521[224]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[225]]+_0xd521[175]+_0xe81ax19[_0xd521[153]]+_0xd521[141]+_0xe81ax19[_0xd521[165]]+_0xd521[44])}else {_0xe81ax1[_0xd521[142]](_0xd521[180]+JSON[_0xd521[157]](_0xe81ax19[_0xd521[156]])[_0xd521[163]][0][_0xd521[128]])}}};_0xe81ax19[_0xd521[164]]=function(_0xe81ax1a){mxUtils[_0xd521[129]](_0xe81ax19[_0xd521[165]])};_0xe81ax19[_0xd521[167]](_0xd521[226]+_0xe81ax18);}catch(e){this[_0xd521[0]][_0xd521[142]](_0xd521[227])}}else {this[_0xd521[0]][_0xd521[142]](_0xd521[227])};};EditorUi[_0xd521[10]][_0xd521[228]]=function(_0xe81ax2b){var _0xe81ax2c=(_0xe81ax2b!=null)?_0xe81ax2b:window[_0xd521[230]][_0xd521[229]];var _0xe81ax2d=(_0xe81ax2c[_0xd521[69]](_0xd521[231])>0)?1:0;for(var _0xe81ax2e in urlParams){if(_0xe81ax2d==0){_0xe81ax2c+=_0xd521[231]}else {_0xe81ax2c+=_0xd521[232]};_0xe81ax2c+=_0xe81ax2e+_0xd521[233]+urlParams[_0xe81ax2e];_0xe81ax2d++;};return _0xe81ax2c;};EditorUi[_0xd521[10]][_0xd521[109]]=function(){var _0xe81ax2f=this[_0xd521[12]][_0xd521[112]](_0xd521[234]);var _0xe81ax30=this[_0xd521[12]][_0xd521[112]](_0xd521[235]);var _0xe81ax31=this[_0xd521[0]][_0xd521[124]];var _0xe81ax32=function(){_0xe81ax2f[_0xd521[114]](_0xe81ax31[_0xd521[236]]());_0xe81ax30[_0xd521[114]](_0xe81ax31[_0xd521[237]]());};_0xe81ax31[_0xd521[33]](mxEvent.ADD,_0xe81ax32);_0xe81ax31[_0xd521[33]](mxEvent.UNDO,_0xe81ax32);_0xe81ax31[_0xd521[33]](mxEvent.REDO,_0xe81ax32);_0xe81ax31[_0xd521[33]](mxEvent.CLEAR,_0xe81ax32);_0xe81ax32();};EditorUi[_0xd521[10]][_0xd521[110]]=function(){var _0xe81ax33=mxUtils[_0xd521[20]](this,function(){var _0xe81ax3=this[_0xd521[0]][_0xd521[4]];var _0xe81ax34=!_0xe81ax3[_0xd521[238]]();var _0xe81ax35=false;var _0xe81ax36=false;var _0xe81ax37=_0xe81ax3[_0xd521[239]]();if(_0xe81ax37!=null){for(var _0xe81ax38=0;_0xe81ax38<_0xe81ax37[_0xd521[143]];_0xe81ax38++){var _0xe81axb=_0xe81ax37[_0xe81ax38];if(_0xe81ax3[_0xd521[65]]()[_0xd521[64]](_0xe81axb)){_0xe81ax36=true};if(_0xe81ax3[_0xd521[65]]()[_0xd521[71]](_0xe81axb)){_0xe81ax35=true};if(_0xe81ax36&&_0xe81ax35){break };}};var _0xe81ax39=[_0xd521[115],_0xd521[116],_0xd521[240],_0xd521[241],_0xd521[242],_0xd521[243],_0xd521[6],_0xd521[244],_0xd521[245],_0xd521[246],_0xd521[247],_0xd521[248],_0xd521[249],_0xd521[250],_0xd521[251]];for(var _0xe81ax38=0;_0xe81ax38<_0xe81ax39[_0xd521[143]];_0xe81ax38++){this[_0xd521[12]][_0xd521[112]](_0xe81ax39[_0xe81ax38])[_0xd521[114]](_0xe81ax34)};this[_0xd521[12]][_0xd521[112]](_0xd521[252])[_0xd521[114]](_0xe81ax36);this[_0xd521[12]][_0xd521[112]](_0xd521[253])[_0xd521[114]](_0xe81ax35);this[_0xd521[12]][_0xd521[112]](_0xd521[254])[_0xd521[114]](_0xe81ax35);this[_0xd521[12]][_0xd521[112]](_0xd521[256])[_0xd521[114]](_0xe81ax3[_0xd521[255]]()>1);this[_0xd521[12]][_0xd521[112]](_0xd521[258])[_0xd521[114]](_0xe81ax3[_0xd521[255]]()==1&&_0xe81ax3[_0xd521[65]]()[_0xd521[187]](_0xe81ax3[_0xd521[257]]())>0);var _0xe81ax3a=_0xe81ax35&&_0xe81ax3[_0xd521[255]]()==1;this[_0xd521[12]][_0xd521[112]](_0xd521[259])[_0xd521[114]](_0xe81ax3a&&_0xe81ax3[_0xd521[65]]()[_0xd521[71]](_0xe81ax3[_0xd521[65]]()[_0xd521[216]](_0xe81ax3[_0xd521[257]]())));var _0xe81ax3b=[_0xd521[260],_0xd521[261],_0xd521[262],_0xd521[263],_0xd521[264],_0xd521[265],_0xd521[266],_0xd521[267],_0xd521[268]];for(var _0xe81ax38=0;_0xe81ax38<_0xe81ax3b[_0xd521[143]];_0xe81ax38++){this[_0xd521[13]][_0xd521[112]](_0xe81ax3b[_0xe81ax38])[_0xd521[114]](_0xe81ax34)};_0xe81ax3b=[_0xd521[269],_0xd521[270],_0xd521[271]];for(var _0xe81ax38=0;_0xe81ax38<_0xe81ax3b[_0xd521[143]];_0xe81ax38++){this[_0xd521[13]][_0xd521[112]](_0xe81ax3b[_0xe81ax38])[_0xd521[114]](_0xe81ax36)};this[_0xd521[12]][_0xd521[112]](_0xd521[272])[_0xd521[114]](_0xe81ax36);this[_0xd521[13]][_0xd521[112]](_0xd521[273])[_0xd521[114]](_0xe81ax3[_0xd521[255]]()>1);this[_0xd521[13]][_0xd521[112]](_0xd521[276])[_0xd521[114]](_0xe81ax35||(_0xe81ax36&&_0xe81ax3[_0xd521[275]](_0xe81ax3[_0xd521[89]][_0xd521[274]](_0xe81ax3[_0xd521[257]]()))));this[_0xd521[13]][_0xd521[112]](_0xd521[279])[_0xd521[114]](_0xe81ax3[_0xd521[277]]&&((_0xe81ax3[_0xd521[89]][_0xd521[278]]!=null)||(_0xe81ax3[_0xd521[255]]()==1&&_0xe81ax3[_0xd521[189]](_0xe81ax3[_0xd521[257]]()))));this[_0xd521[12]][_0xd521[112]](_0xd521[280])[_0xd521[114]](_0xe81ax3[_0xd521[89]][_0xd521[278]]!=null);this[_0xd521[12]][_0xd521[112]](_0xd521[281])[_0xd521[114]](_0xe81ax3[_0xd521[89]][_0xd521[278]]!=null);var _0xe81ax3c=_0xe81ax3[_0xd521[255]]()==1&&_0xe81ax3[_0xd521[189]](_0xe81ax3[_0xd521[257]]());this[_0xd521[12]][_0xd521[112]](_0xd521[282])[_0xd521[114]](_0xe81ax3c);this[_0xd521[12]][_0xd521[112]](_0xd521[283])[_0xd521[114]](_0xe81ax3c);this[_0xd521[12]][_0xd521[112]](_0xd521[284])[_0xd521[114]](_0xe81ax3c);this[_0xd521[12]][_0xd521[112]](_0xd521[285])[_0xd521[114]](_0xe81ax3[_0xd521[255]]()==1);this[_0xd521[12]][_0xd521[112]](_0xd521[287])[_0xd521[114]](_0xe81ax3[_0xd521[255]]()==1&&_0xe81ax3[_0xd521[286]](_0xe81ax3[_0xd521[257]]())!=null);});this[_0xd521[0]][_0xd521[4]][_0xd521[288]]()[_0xd521[33]](mxEvent.CHANGE,_0xe81ax33);_0xe81ax33();};EditorUi[_0xd521[10]][_0xd521[15]]=function(){var _0xe81ax3d=mxClient[_0xd521[29]]&&(document[_0xd521[30]]==null||document[_0xd521[30]]==5);var _0xe81ax3e=this[_0xd521[1]][_0xd521[289]];var _0xe81ax3f=this[_0xd521[1]][_0xd521[290]];if(this[_0xd521[1]]==document[_0xd521[21]]){_0xe81ax3e=document[_0xd521[21]][_0xd521[289]]||document[_0xd521[120]][_0xd521[289]];_0xe81ax3f=(_0xe81ax3d)?document[_0xd521[21]][_0xd521[290]]||document[_0xd521[120]][_0xd521[290]]:document[_0xd521[120]][_0xd521[290]];};var _0xe81ax40=Math[_0xd521[292]](0,Math[_0xd521[291]](this[_0xd521[107]],_0xe81ax3e-this[_0xd521[103]]-20));var _0xe81ax41=Math[_0xd521[292]](0,Math[_0xd521[291]](this[_0xd521[108]],_0xe81ax3f-this[_0xd521[104]]-this[_0xd521[105]]-this[_0xd521[106]]-this[_0xd521[103]]-1));this[_0xd521[23]][_0xd521[6]][_0xd521[293]]=this[_0xd521[104]]+_0xd521[294];this[_0xd521[25]][_0xd521[6]][_0xd521[295]]=this[_0xd521[104]]+_0xd521[294];this[_0xd521[25]][_0xd521[6]][_0xd521[293]]=this[_0xd521[105]]+_0xd521[294];var _0xe81ax42=this[_0xd521[104]]+this[_0xd521[105]];if(!mxClient[_0xd521[296]]){_0xe81ax42+=1};this[_0xd521[27]][_0xd521[6]][_0xd521[295]]=_0xe81ax42+_0xd521[294];this[_0xd521[27]][_0xd521[6]][_0xd521[297]]=_0xe81ax40+_0xd521[294];this[_0xd521[79]][_0xd521[6]][_0xd521[297]]=_0xe81ax40+_0xd521[294];this[_0xd521[79]][_0xd521[6]][_0xd521[293]]=_0xe81ax41+_0xd521[294];this[_0xd521[79]][_0xd521[6]][_0xd521[298]]=this[_0xd521[106]]+_0xd521[294];this[_0xd521[26]][_0xd521[6]][_0xd521[299]]=(_0xe81ax40+this[_0xd521[103]])+_0xd521[294];this[_0xd521[26]][_0xd521[6]][_0xd521[295]]=this[_0xd521[27]][_0xd521[6]][_0xd521[295]];this[_0xd521[28]][_0xd521[6]][_0xd521[293]]=this[_0xd521[106]]+_0xd521[294];this[_0xd521[28]][_0xd521[6]][_0xd521[300]]=_0xd521[301];this[_0xd521[302]][_0xd521[6]][_0xd521[295]]=this[_0xd521[27]][_0xd521[6]][_0xd521[295]];this[_0xd521[302]][_0xd521[6]][_0xd521[298]]=this[_0xd521[79]][_0xd521[6]][_0xd521[298]];this[_0xd521[302]][_0xd521[6]][_0xd521[299]]=_0xe81ax40+_0xd521[294];this[_0xd521[303]][_0xd521[6]][_0xd521[297]]=this[_0xd521[27]][_0xd521[6]][_0xd521[297]];this[_0xd521[303]][_0xd521[6]][_0xd521[298]]=(_0xe81ax41+this[_0xd521[106]])+_0xd521[294];if(_0xe81ax3d){this[_0xd521[23]][_0xd521[6]][_0xd521[297]]=_0xe81ax3e+_0xd521[294];this[_0xd521[25]][_0xd521[6]][_0xd521[297]]=this[_0xd521[23]][_0xd521[6]][_0xd521[297]];var _0xe81ax43=(_0xe81ax3f-_0xe81ax41-this[_0xd521[103]]-this[_0xd521[106]]-this[_0xd521[104]]-this[_0xd521[105]]);this[_0xd521[27]][_0xd521[6]][_0xd521[293]]=_0xe81ax43+_0xd521[294];this[_0xd521[26]][_0xd521[6]][_0xd521[297]]=(_0xe81ax3e-_0xe81ax40-this[_0xd521[103]])+_0xd521[294];var _0xe81ax44=(_0xe81ax3f-this[_0xd521[106]]-this[_0xd521[104]]-this[_0xd521[105]]);this[_0xd521[26]][_0xd521[6]][_0xd521[293]]=_0xe81ax44+_0xd521[294];this[_0xd521[28]][_0xd521[6]][_0xd521[297]]=this[_0xd521[23]][_0xd521[6]][_0xd521[297]];this[_0xd521[302]][_0xd521[6]][_0xd521[293]]=_0xe81ax44+_0xd521[294];}else {this[_0xd521[27]][_0xd521[6]][_0xd521[298]]=(_0xe81ax41+this[_0xd521[103]]+this[_0xd521[106]])+_0xd521[294];this[_0xd521[26]][_0xd521[6]][_0xd521[298]]=this[_0xd521[79]][_0xd521[6]][_0xd521[298]];};};EditorUi[_0xd521[10]][_0xd521[14]]=function(){this[_0xd521[23]]=this[_0xd521[305]](_0xd521[304]);this[_0xd521[25]]=this[_0xd521[305]](_0xd521[306]);this[_0xd521[27]]=this[_0xd521[305]](_0xd521[307]);this[_0xd521[79]]=this[_0xd521[305]](_0xd521[308]);this[_0xd521[26]]=this[_0xd521[305]](_0xd521[309]);this[_0xd521[28]]=this[_0xd521[305]](_0xd521[310]);this[_0xd521[302]]=this[_0xd521[305]](_0xd521[311]);this[_0xd521[303]]=this[_0xd521[305]](_0xd521[312]);this[_0xd521[23]][_0xd521[6]][_0xd521[295]]=_0xd521[313];this[_0xd521[23]][_0xd521[6]][_0xd521[299]]=_0xd521[313];this[_0xd521[23]][_0xd521[6]][_0xd521[314]]=_0xd521[313];this[_0xd521[25]][_0xd521[6]][_0xd521[299]]=_0xd521[313];this[_0xd521[25]][_0xd521[6]][_0xd521[314]]=_0xd521[313];this[_0xd521[27]][_0xd521[6]][_0xd521[299]]=_0xd521[313];this[_0xd521[79]][_0xd521[6]][_0xd521[299]]=_0xd521[313];this[_0xd521[26]][_0xd521[6]][_0xd521[314]]=_0xd521[313];this[_0xd521[28]][_0xd521[6]][_0xd521[299]]=_0xd521[313];this[_0xd521[28]][_0xd521[6]][_0xd521[314]]=_0xd521[313];this[_0xd521[28]][_0xd521[6]][_0xd521[298]]=_0xd521[313];this[_0xd521[303]][_0xd521[6]][_0xd521[299]]=_0xd521[313];this[_0xd521[303]][_0xd521[6]][_0xd521[293]]=this[_0xd521[103]]+_0xd521[294];this[_0xd521[302]][_0xd521[6]][_0xd521[297]]=this[_0xd521[103]]+_0xd521[294];};EditorUi[_0xd521[10]][_0xd521[16]]=function(){this[_0xd521[315]]=this[_0xd521[13]][_0xd521[317]](this[_0xd521[305]](_0xd521[316]));this[_0xd521[23]][_0xd521[318]](this[_0xd521[315]][_0xd521[1]]);this[_0xd521[319]]=this[_0xd521[321]](this[_0xd521[305]](_0xd521[320]));this[_0xd521[25]][_0xd521[318]](this[_0xd521[319]][_0xd521[1]]);this[_0xd521[322]]=this[_0xd521[323]](this[_0xd521[27]]);this[_0xd521[28]][_0xd521[318]](this[_0xd521[324]]());this[_0xd521[325]]=this[_0xd521[326]]();this[_0xd521[0]][_0xd521[33]](_0xd521[327],mxUtils[_0xd521[20]](this,function(){this[_0xd521[329]](this[_0xd521[0]][_0xd521[328]]())}));this[_0xd521[329]](this[_0xd521[0]][_0xd521[328]]());this[_0xd521[315]][_0xd521[1]][_0xd521[318]](this[_0xd521[325]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[23]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[25]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[27]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[79]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[26]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[28]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[302]]);this[_0xd521[1]][_0xd521[318]](this[_0xd521[303]]);this[_0xd521[330]](this[_0xd521[302]],true,0,mxUtils[_0xd521[20]](this,function(_0xe81ax45){this[_0xd521[107]]=_0xe81ax45;this[_0xd521[15]]();this[_0xd521[0]][_0xd521[4]][_0xd521[100]]();this[_0xd521[0]][_0xd521[80]][_0xd521[101]](false);this[_0xd521[0]][_0xd521[80]][_0xd521[80]][_0xd521[100]]();}));this[_0xd521[330]](this[_0xd521[303]],false,this[_0xd521[106]],mxUtils[_0xd521[20]](this,function(_0xe81ax45){this[_0xd521[108]]=_0xe81ax45;this[_0xd521[15]]();this[_0xd521[0]][_0xd521[80]][_0xd521[101]](false);this[_0xd521[0]][_0xd521[80]][_0xd521[80]][_0xd521[100]]();}));};EditorUi[_0xd521[10]][_0xd521[326]]=function(){var _0xe81ax2=document[_0xd521[332]](_0xd521[331]);_0xe81ax2[_0xd521[333]]=_0xd521[334];return _0xe81ax2;};EditorUi[_0xd521[10]][_0xd521[326]]=function(){var _0xe81ax2=document[_0xd521[332]](_0xd521[331]);_0xe81ax2[_0xd521[333]]=_0xd521[334];return _0xe81ax2;};EditorUi[_0xd521[10]][_0xd521[329]]=function(_0xe81ax45){this[_0xd521[325]][_0xd521[335]]=_0xe81ax45};EditorUi[_0xd521[10]][_0xd521[321]]=function(_0xe81ax2){return  new Toolbar(this,_0xe81ax2)};EditorUi[_0xd521[10]][_0xd521[323]]=function(_0xe81ax2){return  new Sidebar(this,_0xe81ax2)};EditorUi[_0xd521[10]][_0xd521[324]]=function(){return this[_0xd521[305]](_0xd521[336])};EditorUi[_0xd521[10]][_0xd521[305]]=function(_0xe81ax46){var _0xe81ax47=document[_0xd521[332]](_0xd521[337]);_0xe81ax47[_0xd521[333]]=_0xe81ax46;return _0xe81ax47;};EditorUi[_0xd521[10]][_0xd521[338]]=function(_0xe81ax46){var _0xe81ax47=document[_0xd521[332]](_0xe81ax46);return _0xe81ax47;};EditorUi[_0xd521[10]][_0xd521[339]]=function(_0xe81ax46){var _0xe81ax47=document[_0xd521[332]](_0xd521[196]);_0xe81ax47[_0xd521[333]]=_0xe81ax46;return _0xe81ax47;};EditorUi[_0xd521[10]][_0xd521[330]]=function(_0xe81ax47,_0xe81ax48,_0xe81ax49,_0xe81ax4a){var _0xe81ax4b=null;var _0xe81ax4c=null;function _0xe81ax4d(){return parseInt(((_0xe81ax48)?_0xe81ax47[_0xd521[6]][_0xd521[299]]:_0xe81ax47[_0xd521[6]][_0xd521[298]]))}function _0xe81ax4e(_0xe81ax6){if(_0xe81ax4b!=null){var _0xe81ax4f= new mxPoint(mxEvent[_0xd521[340]](_0xe81ax6),mxEvent[_0xd521[341]](_0xe81ax6));_0xe81ax4a(Math[_0xd521[292]](0,_0xe81ax4c+((_0xe81ax48)?(_0xe81ax4f[_0xd521[342]]-_0xe81ax4b[_0xd521[342]]):(_0xe81ax4b[_0xd521[343]]-_0xe81ax4f[_0xd521[343]]))-_0xe81ax49));mxEvent[_0xd521[74]](_0xe81ax6);}}function _0xe81ax50(_0xe81ax6){_0xe81ax4e(_0xe81ax6);_0xe81ax4b=null;_0xe81ax4c=null;}mxEvent[_0xd521[82]](_0xe81ax47,function(_0xe81ax6){_0xe81ax4b= new mxPoint(mxEvent[_0xd521[340]](_0xe81ax6),mxEvent[_0xd521[341]](_0xe81ax6));_0xe81ax4c=_0xe81ax4d();mxEvent[_0xd521[74]](_0xe81ax6);});mxEvent[_0xd521[33]](document,_0xd521[344],_0xe81ax4e);mxEvent[_0xd521[33]](document,_0xd521[345],_0xe81ax4e);mxEvent[_0xd521[33]](document,_0xd521[346],_0xe81ax50);mxEvent[_0xd521[33]](document,_0xd521[347],_0xe81ax50);};EditorUi[_0xd521[10]][_0xd521[73]]=function(_0xe81ax47,_0xe81ax3e,_0xe81ax3f,_0xe81ax51,_0xe81ax52,_0xe81ax53){this[_0xd521[348]]();this[_0xd521[349]]= new Dialog(this,_0xe81ax47,_0xe81ax3e,(mxClient[_0xd521[350]])?_0xe81ax3f-12:_0xe81ax3f,_0xe81ax51,_0xe81ax52,_0xe81ax53);};EditorUi[_0xd521[10]][_0xd521[348]]=function(){if(this[_0xd521[349]]!=null){this[_0xd521[349]][_0xd521[351]]();this[_0xd521[349]]=null;this[_0xd521[0]][_0xd521[4]][_0xd521[1]][_0xd521[47]]();}};EditorUi[_0xd521[10]][_0xd521[352]]=function(_0xe81ax54){if(!_0xe81ax54&&this[_0xd521[0]][_0xd521[125]]!=null){this[_0xd521[171]](this[_0xd521[0]][_0xd521[353]]())}else {this[_0xd521[73]]( new SaveDialog(this)[_0xd521[1]],300,100,true,true)}};EditorUi[_0xd521[10]][_0xd521[354]]=function(_0xe81ax54){if(!_0xe81ax54&&this[_0xd521[0]][_0xd521[125]]!=null){this[_0xd521[219]](this[_0xd521[0]][_0xd521[353]]())}else {}};EditorUi[_0xd521[10]][_0xd521[355]]=function(_0xe81ax55,_0xe81ax56,_0xe81ax57){var _0xe81ax3=this[_0xd521[0]][_0xd521[4]];var _0xe81axb=_0xe81ax3[_0xd521[257]]();_0xe81ax56=this[_0xd521[356]]!=null?this[_0xd521[356]]:_0xe81ax56;_0xe81ax3[_0xd521[65]]()[_0xd521[357]]();try{_0xe81ax55[_0xd521[358]](_0xe81ax3[_0xd521[217]](),_0xe81axb)}catch(e){throw e}finally{if(_0xe81ax56&&navigator[_0xd521[360]][_0xd521[69]](_0xd521[359])<0){var _0xe81ax58= new mxMorphing(_0xe81ax3);_0xe81ax58[_0xd521[33]](mxEvent.DONE,mxUtils[_0xd521[20]](this,function(){_0xe81ax3[_0xd521[65]]()[_0xd521[361]]()}));_0xe81ax58[_0xd521[362]]();}else {_0xe81ax3[_0xd521[65]]()[_0xd521[361]]()}};};EditorUi[_0xd521[10]][_0xd521[97]]=function(_0xe81ax1){var _0xe81ax3=this[_0xd521[0]][_0xd521[4]];var _0xe81axf= new mxKeyHandler(_0xe81ax3);_0xe81axf[_0xd521[363]]=function(_0xe81ax6){return mxEvent[_0xd521[363]](_0xe81ax6)||(mxClient[_0xd521[364]]&&_0xe81ax6[_0xd521[365]])};function _0xe81ax59(_0xe81ax5a){if(!_0xe81ax3[_0xd521[238]]()){var _0xe81ax49=0;var _0xe81ax5b=0;if(_0xe81ax5a==37){_0xe81ax49= -1}else {if(_0xe81ax5a==38){_0xe81ax5b= -1}else {if(_0xe81ax5a==39){_0xe81ax49=1}else {if(_0xe81ax5a==40){_0xe81ax5b=1}}}};_0xe81ax3[_0xd521[366]](_0xe81ax3[_0xd521[239]](),_0xe81ax49,_0xe81ax5b);_0xe81ax3[_0xd521[367]](_0xe81ax3[_0xd521[257]]());}}var _0xe81ax5c=mxUtils[_0xd521[20]](this,function(_0xe81ax5d,_0xe81ax5e,_0xe81ax2e,_0xe81ax5f){var _0xe81ax60=this[_0xd521[12]][_0xd521[112]](_0xe81ax2e);if(_0xe81ax60!=null){var _0xe81ax1f=function(){if(_0xe81ax60[_0xd521[368]]){_0xe81ax60[_0xd521[369]]()}};if(_0xe81ax5e){if(_0xe81ax5f){_0xe81axf[_0xd521[370]](_0xe81ax5d,_0xe81ax1f)}else {_0xe81axf[_0xd521[371]](_0xe81ax5d,_0xe81ax1f)}}else {if(_0xe81ax5f){_0xe81axf[_0xd521[372]](_0xe81ax5d,_0xe81ax1f)}else {_0xe81axf[_0xd521[373]](_0xe81ax5d,_0xe81ax1f)}};};});var _0xe81ax61=this;var _0xe81ax62=_0xe81axf[_0xd521[374]];_0xe81axf[_0xd521[374]]=function(_0xe81ax6){_0xe81ax61[_0xd521[348]]();_0xe81ax62[_0xd521[50]](this,arguments);};_0xe81axf[_0xd521[375]]=function(){};_0xe81axf[_0xd521[373]](8,function(){_0xe81ax3[_0xd521[376]](true)});_0xe81axf[_0xd521[373]](13,function(){_0xe81ax3[_0xd521[376]](false)});_0xe81axf[_0xd521[373]](33,function(){_0xe81ax3[_0xd521[281]]()});_0xe81axf[_0xd521[373]](34,function(){_0xe81ax3[_0xd521[282]]()});_0xe81axf[_0xd521[373]](36,function(){_0xe81ax3[_0xd521[280]]()});_0xe81axf[_0xd521[373]](35,function(){_0xe81ax3[_0xd521[15]]()});_0xe81axf[_0xd521[373]](37,function(){_0xe81ax59(37)});_0xe81axf[_0xd521[373]](38,function(){_0xe81ax59(38)});_0xe81axf[_0xd521[373]](39,function(){_0xe81ax59(39)});_0xe81axf[_0xd521[373]](40,function(){_0xe81ax59(40)});_0xe81axf[_0xd521[373]](113,function(){_0xe81ax3[_0xd521[70]]()});_0xe81ax5c(46,false,_0xd521[240]);_0xe81ax5c(82,true,_0xd521[250]);_0xe81ax5c(83,true,_0xd521[171]);_0xe81ax5c(83,true,_0xd521[179],true);_0xe81ax5c(107,false,_0xd521[377]);_0xe81ax5c(109,false,_0xd521[378]);_0xe81ax5c(65,true,_0xd521[379]);_0xe81ax5c(86,true,_0xd521[380],true);_0xe81ax5c(69,true,_0xd521[381],true);_0xe81ax5c(69,true,_0xd521[382]);_0xe81ax5c(66,true,_0xd521[246]);_0xe81ax5c(70,true,_0xd521[245]);_0xe81ax5c(68,true,_0xd521[241]);_0xe81ax5c(90,true,_0xd521[234]);_0xe81ax5c(89,true,_0xd521[235]);_0xe81ax5c(88,true,_0xd521[115]);_0xe81ax5c(67,true,_0xd521[116]);_0xe81ax5c(81,true,_0xd521[383]);_0xe81ax5c(86,true,_0xd521[111]);_0xe81ax5c(71,true,_0xd521[256]);_0xe81ax5c(71,true,_0xd521[384],true);_0xe81ax5c(85,true,_0xd521[258]);_0xe81ax5c(112,false,_0xd521[385]);_0xe81ax5c(80,true,_0xd521[219],true);return _0xe81axf;};EditorUi[_0xd521[10]][_0xd521[58]]=function(_0xe81ax3,_0xe81ax37,_0xe81ax63,_0xe81ax64){for(var _0xe81ax38=0;_0xe81ax38<_0xe81ax37[_0xd521[143]];_0xe81ax38++){_0xe81ax3[_0xd521[388]]( new mxMultiplicity(true,_0xe81ax37[_0xe81ax38],null,null,_0xe81ax63[_0xe81ax38][0],_0xe81ax63[_0xe81ax38][1],null,mxResources[_0xd521[112]](_0xe81ax37[_0xe81ax38])+_0xd521[386]+_0xe81ax63[_0xe81ax38][0]+_0xd521[387],null));_0xe81ax3[_0xd521[388]]( new mxMultiplicity(false,_0xe81ax37[_0xe81ax38],null,null,_0xe81ax64[_0xe81ax38][0],_0xe81ax64[_0xe81ax38][1],null,mxResources[_0xd521[112]](_0xe81ax37[_0xe81ax38])+_0xd521[386]+_0xe81ax64[_0xe81ax38][0]+_0xd521[389],null));}};
\ No newline at end of file
+var _0x2909=["\x65\x64\x69\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x45\x64\x69\x74\x6F\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x72\x61\x70\x68","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x73\x72\x63","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x6D\x65\x6E\x75\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x76\x73","\x72\x65\x66\x72\x65\x73\x68","\x63\x72\x65\x61\x74\x65\x55\x69","\x65\x76\x65\x6E\x74","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x41\x6C\x6C\x6F\x77\x65\x64","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x62\x69\x6E\x64","\x62\x6F\x64\x79","\x6F\x6E\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x6D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x64\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x69\x6E\x69\x74","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x75\x72\x73\x6F\x72","\x64\x65\x66\x61\x75\x6C\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x66\x6F\x63\x75\x73","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x61\x70\x70\x6C\x79","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x73\x74\x61\x72\x74","\x65\x6E\x64","\x69\x6E\x70\x75\x74","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x65\x6D\x61\x69\x6C","\x6E","\x63\x72\x65\x61\x74\x65\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x65\x6C\x6C","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x74\x61\x67\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x73\x6F\x75\x72\x63\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x69\x73\x56\x65\x72\x74\x65\x78","\x6C\x6F\x67","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x63\x6F\x6E\x73\x75\x6D\x65","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x6F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x67\x65\x73\x74\x75\x72\x65\x63\x68\x61\x6E\x67\x65","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x63\x61\x6C\x65\x28","\x73\x63\x61\x6C\x65","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x76\x69\x65\x77","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x7A\x6F\x6F\x6D\x54\x6F\x43\x65\x6E\x74\x65\x72","\x7A\x6F\x6F\x6D","\x76\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x73\x69\x7A\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x75\x70\x64\x61\x74\x65","\x6F\x70\x65\x6E","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6D\x65\x6E\x75\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x74\x6F\x6F\x6C\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x66\x6F\x6F\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x68\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x55\x6E\x64\x6F\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x73\x74\x65","\x67\x65\x74","\x69\x73\x45\x6D\x70\x74\x79","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x74","\x63\x6F\x70\x79","\x6F\x70\x65\x6E\x65\x72","\x6F\x70\x65\x6E\x46\x69\x6C\x65","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x63\x6C\x65\x61\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x4D\x69\x73\x73\x69\x6E\x67\x46\x69\x6C\x65","\x3A\x20","\x6D\x65\x73\x73\x61\x67\x65","\x61\x6C\x65\x72\x74","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x6F\x70\x65\x6E\x53\x74\x72\x69\x6E\x67","\x64\x61\x74\x61","\x6E\x65\x77","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x67\x65\x74\x49\x74\x65\x6D","\x72\x65\x70\x6C\x61\x63\x65","\x63\x6F\x6E\x66\x69\x72\x6D","\x73\x65\x74\x49\x74\x65\x6D","\x73\x61\x76\x65\x64","\x20","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6C\x65\x6E\x67\x74\x68","\x50\x4F\x53\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x50\x72\x6F\x6A\x65\x63\x74\x20","\x6E\x61\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x20\x69\x73\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x69\x6E\x20\x6E\x65\x77\x20\x77\x69\x6E\x64\x6F\x77\x21","\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x69\x64","\x5F\x62\x6C\x61\x6E\x6B","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x65\x77\x26\x6E\x61\x6D\x65\x3D","\x73\x65\x6E\x64","\x64\x72\x61\x77\x69\x6E\x67\x54\x6F\x6F\x4C\x61\x72\x67\x65","\x70\x6F\x70\x75\x70","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74","\x73\x61\x76\x65","\x50\x55\x54","\x55\x70\x64\x61\x74\x65\x64\x20\x61\x74\x20","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x20\x28","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x72\x61\x66\x74\x3D","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x66\x69\x6C\x65","\x73\x61\x76\x65\x41\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x6E\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x63\x6C\x6F\x6E\x65\x64\x26\x6E\x61\x6D\x65\x3D","\x26\x64\x72\x61\x66\x74\x3D","\x26\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x76\x61\x6C\x69\x64\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x74","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x3C\x62\x72\x3E","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x43\x6F\x6E\x74\x65\x6E\x74\x20\x69\x73\x20\x65\x6D\x70\x74\x79","\x0A","\x66\x6F\x72\x6D","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6C\x6F\x63\x6B","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x53\x74\x61\x72\x74\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x67\x65\x74\x49\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6E\x75\x6C\x6C","\x2C","\x73\x70\x6C\x69\x74","\x74\x72\x69\x6D","\x74\x65\x73\x74","\x43\x61\x6E\x20\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x70\x75\x62\x6C\x69\x73\x68","\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x61\x74\x20","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x66\x69\x6C\x65","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x76\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x74\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x6E\x61\x6D\x65\x3D","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x55\x72\x6C","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x26","\x3D","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x68\x61\x64\x6F\x77","\x74\x69\x6C\x74","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x63\x75\x72\x76\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x72\x6F\x75\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x72\x61\x6E\x67\x65","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x73\x70\x61\x63\x69\x6E\x67","\x6C\x69\x6E\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x6C\x69\x67\x6E","\x67\x65\x74\x53\x74\x61\x74\x65","\x69\x73\x4C\x6F\x6F\x70","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x6D\x61\x78","\x68\x65\x69\x67\x68\x74","\x70\x78","\x74\x6F\x70","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x77\x69\x64\x74\x68","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x64\x69\x73\x70\x6C\x61\x79","\x6E\x6F\x6E\x65","\x68\x73\x70\x6C\x69\x74","\x76\x73\x70\x6C\x69\x74","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x4F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x44\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x46\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x48\x73\x70\x6C\x69\x74","\x67\x65\x56\x73\x70\x6C\x69\x74","\x30\x70\x78","\x72\x69\x67\x68\x74","\x6D\x65\x6E\x75\x62\x61\x72","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x74\x6F\x6F\x6C\x62\x61\x72","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x73\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x6F\x74\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x64\x64\x53\x70\x6C\x69\x74\x48\x61\x6E\x64\x6C\x65\x72","\x61","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D\x20\x67\x65\x53\x74\x61\x74\x75\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x67\x65\x46\x6F\x6F\x74\x65\x72","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x72\x6D","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x78","\x79","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x64\x69\x61\x6C\x6F\x67","\x49\x53\x5F\x56\x4D\x4C","\x63\x6C\x6F\x73\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x61\x6E\x69\x6D\x61\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x65\x78\x65\x63\x75\x74\x65","\x43\x61\x6D\x69\x6E\x6F","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x49\x53\x5F\x4D\x41\x43","\x6D\x65\x74\x61\x4B\x65\x79","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x65\x6E\x61\x62\x6C\x65\x64","\x66\x75\x6E\x63\x74","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x4B\x65\x79","\x65\x73\x63\x61\x70\x65","\x65\x6E\x74\x65\x72","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x65\x78\x70\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x67\x72\x69\x64","\x61\x62\x6F\x75\x74","\x20\x6D\x75\x73\x74\x20\x68\x61\x76\x65\x20","\x20\x6F\x75\x74\x67\x6F\x69\x6E\x67\x20\x65\x64\x67\x65\x2E","\x70\x75\x73\x68","\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x64\x67\x65\x2E"];EditorUi=function(_0xc5e9x1,_0xc5e9x2){this[_0x2909[0]]=_0xc5e9x1|| new Editor();this[_0x2909[1]]=_0xc5e9x2||document[_0x2909[3]](_0x2909[2]);var _0xc5e9x3=_0xc5e9x1[_0x2909[4]];var _0xc5e9x4=this;this[_0x2909[1]][_0x2909[6]][_0x2909[5]]=_0x2909[7]; new Image()[_0x2909[8]]=mxPopupMenu[_0x2909[10]][_0x2909[9]];if(mxConnectionHandler[_0x2909[10]][_0x2909[11]]!=null){ new Image()[_0x2909[8]]=mxConnectionHandler[_0x2909[10]][_0x2909[11]][_0x2909[8]]};this[_0x2909[12]]= new Actions(this);this[_0x2909[13]]= new Menus(this);this[_0x2909[14]]();this[_0x2909[15]]();this[_0x2909[16]]();var _0xc5e9x5=mxUtils[_0x2909[20]](this,function(_0xc5e9x6){if(_0xc5e9x6==null){_0xc5e9x6=window[_0x2909[17]]};if(this[_0x2909[18]](_0xc5e9x6)){return true};return _0xc5e9x3[_0x2909[19]]();});if(this[_0x2909[1]]==document[_0x2909[21]]){this[_0x2909[23]][_0x2909[22]]=_0xc5e9x5;this[_0x2909[23]][_0x2909[24]]=_0xc5e9x5;this[_0x2909[25]][_0x2909[22]]=_0xc5e9x5;this[_0x2909[25]][_0x2909[24]]=_0xc5e9x5;this[_0x2909[26]][_0x2909[22]]=_0xc5e9x5;this[_0x2909[26]][_0x2909[24]]=_0xc5e9x5;this[_0x2909[27]][_0x2909[22]]=_0xc5e9x5;this[_0x2909[27]][_0x2909[24]]=_0xc5e9x5;this[_0x2909[28]][_0x2909[22]]=_0xc5e9x5;this[_0x2909[28]][_0x2909[24]]=_0xc5e9x5;};if(mxClient[_0x2909[29]]&&( typeof (document[_0x2909[30]])===_0x2909[31]||document[_0x2909[30]]<9)){mxEvent[_0x2909[33]](this[_0x2909[26]],_0x2909[32],_0xc5e9x5);mxEvent[_0x2909[33]](this[_0x2909[27]],_0x2909[32],_0xc5e9x5);}else {this[_0x2909[26]][_0x2909[34]]=_0xc5e9x5;this[_0x2909[27]][_0x2909[34]]=_0xc5e9x5;};_0xc5e9x3[_0x2909[35]](this[_0x2909[26]]);_0xc5e9x3[_0x2909[15]]();_0xc5e9x3[_0x2909[1]][_0x2909[38]](_0x2909[36],_0x2909[37]);_0xc5e9x3[_0x2909[1]][_0x2909[6]][_0x2909[39]]=_0x2909[40];_0xc5e9x3[_0x2909[1]][_0x2909[6]][_0x2909[41]]=_0x2909[42]+_0xc5e9x1[_0x2909[43]]+_0x2909[44];_0xc5e9x3[_0x2909[1]][_0x2909[6]][_0x2909[45]]=_0x2909[46];_0xc5e9x3[_0x2909[1]][_0x2909[47]]();var _0xc5e9x7=_0xc5e9x3[_0x2909[48]];_0xc5e9x3[_0x2909[48]]=function(_0xc5e9x8,_0xc5e9x9,_0xc5e9xa){if(_0xc5e9x8==mxEvent[_0x2909[49]]){this[_0x2909[1]][_0x2909[47]]()};_0xc5e9x7[_0x2909[50]](this,arguments);};this[_0x2909[58]](_0xc5e9x3[_0x2909[51]],[_0x2909[52],_0x2909[53],_0x2909[54],_0x2909[55],_0x2909[56]],[[1,1],[0,0],[1,1],[1,_0x2909[57]],[1,_0x2909[57]]],[[0,0],[1,_0x2909[57]],[1,_0x2909[57]],[1,_0x2909[57]],[1,_0x2909[57]]]);_0xc5e9x3[_0x2909[59]]=function(_0xc5e9x6,_0xc5e9xb){var _0xc5e9xc=[_0x2909[54],_0x2909[55]];var _0xc5e9xd= new mxEventObject(mxEvent.DOUBLE_CLICK,_0x2909[17],_0xc5e9x6,_0x2909[60],_0xc5e9xb);this[_0x2909[61]](_0xc5e9xd);if(this[_0x2909[62]]()&&!mxEvent[_0x2909[63]](_0xc5e9x6)&&!_0xc5e9xd[_0x2909[63]]()){if(this[_0x2909[65]]()[_0x2909[64]](_0xc5e9xb)){if(_0xc5e9xc[_0x2909[69]](_0xc5e9xb[_0x2909[68]][_0x2909[67]][_0x2909[66]])>=0){this[_0x2909[70]](_0xc5e9xb)}}else {if(this[_0x2909[65]]()[_0x2909[71]](_0xc5e9xb)){console[_0x2909[72]](_0xc5e9x4);console[_0x2909[72]](_0xc5e9xb);_0xc5e9x4[_0x2909[73]]( new GeneralDialog(_0xc5e9x4,_0xc5e9xb)[_0x2909[1]],320,280,true,true);}};_0xc5e9xd[_0x2909[74]]();};};_0xc5e9x3[_0x2909[76]][_0x2909[75]]=true;_0xc5e9x3[_0x2909[76]][_0x2909[77]]=mxUtils[_0x2909[20]](this,function(_0xc5e9xe,_0xc5e9xb,_0xc5e9x6){this[_0x2909[13]][_0x2909[78]](_0xc5e9xe,_0xc5e9xb,_0xc5e9x6)});_0xc5e9x1[_0x2909[80]][_0x2909[35]](this[_0x2909[79]]);mxEvent[_0x2909[82]](document,mxUtils[_0x2909[20]](this,function(_0xc5e9x6){_0xc5e9x3[_0x2909[76]][_0x2909[81]]()}));if(mxClient[_0x2909[83]]){mxEvent[_0x2909[33]](_0xc5e9x3[_0x2909[1]],_0x2909[84],mxUtils[_0x2909[20]](this,function(_0xc5e9x6){_0xc5e9x3[_0x2909[89]][_0x2909[88]]()[_0x2909[38]](_0x2909[85],_0x2909[86]+_0xc5e9x6[_0x2909[87]]+_0x2909[44]);_0xc5e9x3[_0x2909[89]][_0x2909[91]]()[_0x2909[6]][_0x2909[90]]=_0x2909[7];}));mxEvent[_0x2909[33]](_0xc5e9x3[_0x2909[1]],_0x2909[92],mxUtils[_0x2909[20]](this,function(_0xc5e9x6){_0xc5e9x3[_0x2909[89]][_0x2909[88]]()[_0x2909[93]](_0x2909[85]);_0xc5e9x3[_0x2909[94]]=true;_0xc5e9x3[_0x2909[95]](_0xc5e9x6[_0x2909[87]]);_0xc5e9x3[_0x2909[89]][_0x2909[91]]()[_0x2909[6]][_0x2909[90]]=_0x2909[96];}));};var _0xc5e9xf=this[_0x2909[97]](_0xc5e9x1);this[_0x2909[98]]=function(){return _0xc5e9xf};mxEvent[_0x2909[33]](window,_0x2909[99],mxUtils[_0x2909[20]](this,function(){this[_0x2909[15]]();_0xc5e9x3[_0x2909[100]]();this[_0x2909[0]][_0x2909[80]][_0x2909[101]](false);this[_0x2909[0]][_0x2909[80]][_0x2909[80]][_0x2909[100]]();}));this[_0x2909[35]]();this[_0x2909[102]]();};EditorUi[_0x2909[10]][_0x2909[103]]=(mxClient[_0x2909[83]])?16:8;EditorUi[_0x2909[10]][_0x2909[104]]=33;EditorUi[_0x2909[10]][_0x2909[105]]=36;EditorUi[_0x2909[10]][_0x2909[106]]=28;EditorUi[_0x2909[10]][_0x2909[107]]=204;EditorUi[_0x2909[10]][_0x2909[108]]=190;EditorUi[_0x2909[10]][_0x2909[35]]=function(){this[_0x2909[109]]();this[_0x2909[110]]();var _0xc5e9x10=this[_0x2909[12]][_0x2909[112]](_0x2909[111]);var _0xc5e9x11=function(){_0xc5e9x10[_0x2909[114]](!mxClipboard[_0x2909[113]]())};var _0xc5e9x12=mxClipboard[_0x2909[115]];mxClipboard[_0x2909[115]]=function(){_0xc5e9x12[_0x2909[50]](this,arguments);_0xc5e9x11();};var _0xc5e9x13=mxClipboard[_0x2909[116]];mxClipboard[_0x2909[116]]=function(){_0xc5e9x13[_0x2909[50]](this,arguments);_0xc5e9x11();};};EditorUi[_0x2909[10]][_0x2909[18]]=function(_0xc5e9x6){return false};EditorUi[_0x2909[10]][_0x2909[102]]=function(){try{if(window[_0x2909[117]]!=null&&window[_0x2909[117]][_0x2909[118]]!=null){window[_0x2909[117]][_0x2909[118]][_0x2909[130]](mxUtils[_0x2909[20]](this,function(_0xc5e9x14,_0xc5e9x15){try{var _0xc5e9x16=mxUtils[_0x2909[119]](_0xc5e9x14);this[_0x2909[0]][_0x2909[121]](_0xc5e9x16[_0x2909[120]]);this[_0x2909[0]][_0x2909[122]]=false;this[_0x2909[0]][_0x2909[124]][_0x2909[123]]();if(_0xc5e9x15!=null){this[_0x2909[0]][_0x2909[125]]=_0xc5e9x15};}catch(e){mxUtils[_0x2909[129]](mxResources[_0x2909[112]](_0x2909[126])+_0x2909[127]+e[_0x2909[128]])}}))}}catch(e){}};EditorUi[_0x2909[10]][_0x2909[131]]=function(_0xc5e9x14,_0xc5e9x15,_0xc5e9x17){try{var _0xc5e9x16=mxUtils[_0x2909[119]](_0xc5e9x14);this[_0x2909[0]][_0x2909[121]](_0xc5e9x16[_0x2909[120]]);this[_0x2909[0]][_0x2909[122]]=false;this[_0x2909[0]][_0x2909[124]][_0x2909[123]]();if(_0xc5e9x15!=null){this[_0x2909[0]][_0x2909[125]]=_0xc5e9x15};if(_0xc5e9x17!=null){this[_0x2909[0]][_0x2909[132]]=_0xc5e9x17};}catch(e){mxUtils[_0x2909[129]](mxResources[_0x2909[112]](_0x2909[126])+_0x2909[127]+e[_0x2909[128]])}};EditorUi[_0x2909[10]][_0x2909[133]]=function(_0xc5e9x18){var _0xc5e9x1=this[_0x2909[0]];if(_0xc5e9x18!=null){var _0xc5e9x14=mxUtils[_0x2909[135]](this[_0x2909[0]][_0x2909[134]]());try{if(useLocalStorage){if(localStorage[_0x2909[136]](_0xc5e9x18)!=null&&!mxUtils[_0x2909[138]](mxResources[_0x2909[112]](_0x2909[137],[_0xc5e9x18]))){return };localStorage[_0x2909[139]](_0xc5e9x18,_0xc5e9x14);this[_0x2909[0]][_0x2909[142]](mxResources[_0x2909[112]](_0x2909[140])+_0x2909[141]+ new Date());}else {console[_0x2909[72]](_0xc5e9x14[_0x2909[143]]);console[_0x2909[72]](MAX_REQUEST_SIZE);if(_0xc5e9x14[_0x2909[143]]<MAX_REQUEST_SIZE){_0xc5e9x14=encodeURIComponent(_0xc5e9x14);_0xc5e9x18=encodeURIComponent(_0xc5e9x18);var _0xc5e9x19= new XMLHttpRequest();_0xc5e9x19[_0x2909[102]](_0x2909[144],SAVE_URL,true);_0xc5e9x19[_0x2909[147]](_0x2909[145],_0x2909[146]);_0xc5e9x19[_0x2909[147]](_0x2909[148],_0x2909[149]+_0xc5e9x1[_0x2909[132]][_0x2909[150]]);_0xc5e9x19[_0x2909[151]]=function(_0xc5e9x1a){if(_0xc5e9x19[_0x2909[152]]===4){if(_0xc5e9x19[_0x2909[153]]===201){_0xc5e9x1[_0x2909[142]](_0x2909[154]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[155]]+_0x2909[158]);setTimeout(function(){window[_0x2909[102]](_0x2909[159]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[160]],_0x2909[161])},1500);}else {_0xc5e9x1[_0x2909[142]](_0x2909[162]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[163]][0][_0x2909[128]])}}};_0xc5e9x19[_0x2909[164]]=function(_0xc5e9x1a){mxUtils[_0x2909[129]](_0xc5e9x19[_0x2909[165]])};_0xc5e9x19[_0x2909[167]](_0x2909[166]+_0xc5e9x18);}else {mxUtils[_0x2909[129]](mxResources[_0x2909[112]](_0x2909[168]));mxUtils[_0x2909[169]](_0xc5e9x14);return ;};};this[_0x2909[0]][_0x2909[125]]=_0xc5e9x18;this[_0x2909[0]][_0x2909[122]]=false;}catch(e){this[_0x2909[0]][_0x2909[142]](_0x2909[170])};}else {this[_0x2909[0]][_0x2909[142]](_0x2909[170])};};EditorUi[_0x2909[10]][_0x2909[171]]=function(_0xc5e9x18){var _0xc5e9x1=this[_0x2909[0]];if(_0xc5e9x18!=null){var _0xc5e9x14=mxUtils[_0x2909[135]](this[_0x2909[0]][_0x2909[134]]());try{if(useLocalStorage){if(localStorage[_0x2909[136]](_0xc5e9x18)!=null&&!mxUtils[_0x2909[138]](mxResources[_0x2909[112]](_0x2909[137],[_0xc5e9x18]))){return };localStorage[_0x2909[139]](_0xc5e9x18,_0xc5e9x14);this[_0x2909[0]][_0x2909[142]](mxResources[_0x2909[112]](_0x2909[140])+_0x2909[141]+ new Date());}else {console[_0x2909[72]](_0xc5e9x14[_0x2909[143]]);console[_0x2909[72]](MAX_REQUEST_SIZE);if(_0xc5e9x14[_0x2909[143]]<MAX_REQUEST_SIZE){_0xc5e9x14=encodeURIComponent(_0xc5e9x14);var _0xc5e9x19= new XMLHttpRequest();_0xc5e9x19[_0x2909[102]](_0x2909[172],SAVE_URL+this[_0x2909[0]][_0x2909[132]][_0x2909[160]],true);_0xc5e9x19[_0x2909[147]](_0x2909[145],_0x2909[146]);_0xc5e9x19[_0x2909[147]](_0x2909[148],_0x2909[149]+_0xc5e9x1[_0x2909[132]][_0x2909[150]]);_0xc5e9x19[_0x2909[151]]=function(_0xc5e9x1a){if(_0xc5e9x19[_0x2909[152]]===4){if(_0xc5e9x19[_0x2909[153]]===200){_0xc5e9x1[_0x2909[142]](_0x2909[173]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[174]]+_0x2909[175]+_0xc5e9x19[_0x2909[153]]+_0x2909[141]+_0xc5e9x19[_0x2909[165]]+_0x2909[44])}else {_0xc5e9x1[_0x2909[142]](_0x2909[176]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[163]][0][_0x2909[128]])}}};_0xc5e9x19[_0x2909[164]]=function(_0xc5e9x1a){mxUtils[_0x2909[129]](_0xc5e9x19[_0x2909[165]])};_0xc5e9x19[_0x2909[167]](_0x2909[177]+_0xc5e9x14);}else {mxUtils[_0x2909[129]](mxResources[_0x2909[112]](_0x2909[168]));mxUtils[_0x2909[169]](_0xc5e9x14);return ;};};this[_0x2909[0]][_0x2909[125]]=_0xc5e9x18;this[_0x2909[0]][_0x2909[122]]=false;}catch(e){this[_0x2909[0]][_0x2909[142]](_0x2909[178])};}else {this[_0x2909[0]][_0x2909[142]](_0x2909[178])};};EditorUi[_0x2909[10]][_0x2909[179]]=function(_0xc5e9x18){var _0xc5e9x1=this[_0x2909[0]];console[_0x2909[72]](_0xc5e9x18);if(_0xc5e9x18!=null){var _0xc5e9x14=mxUtils[_0x2909[135]](this[_0x2909[0]][_0x2909[134]]());try{if(useLocalStorage){if(localStorage[_0x2909[136]](_0xc5e9x18)!=null&&!mxUtils[_0x2909[138]](mxResources[_0x2909[112]](_0x2909[137],[_0xc5e9x18]))){return };localStorage[_0x2909[139]](_0xc5e9x18,_0xc5e9x14);this[_0x2909[0]][_0x2909[142]](mxResources[_0x2909[112]](_0x2909[140])+_0x2909[141]+ new Date());}else {console[_0x2909[72]](_0xc5e9x14[_0x2909[143]]);console[_0x2909[72]](MAX_REQUEST_SIZE);if(_0xc5e9x14[_0x2909[143]]<MAX_REQUEST_SIZE){_0xc5e9x14=encodeURIComponent(_0xc5e9x14);_0xc5e9x18=encodeURIComponent(_0xc5e9x18);var _0xc5e9x19= new XMLHttpRequest();_0xc5e9x19[_0x2909[102]](_0x2909[144],SAVE_URL,true);_0xc5e9x19[_0x2909[147]](_0x2909[145],_0x2909[146]);_0xc5e9x19[_0x2909[147]](_0x2909[148],_0x2909[149]+_0xc5e9x1[_0x2909[132]][_0x2909[150]]);_0xc5e9x19[_0x2909[151]]=function(_0xc5e9x1a){if(_0xc5e9x19[_0x2909[152]]===4){if(_0xc5e9x19[_0x2909[153]]===201){_0xc5e9x1[_0x2909[142]](_0x2909[154]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[155]]+_0x2909[158]);setTimeout(function(){window[_0x2909[102]](_0x2909[159]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[160]],_0x2909[161])},1500);}else {_0xc5e9x1[_0x2909[142]](_0x2909[180]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[163]][0][_0x2909[128]])}}};_0xc5e9x19[_0x2909[164]]=function(_0xc5e9x1a){mxUtils[_0x2909[129]](_0xc5e9x19[_0x2909[165]])};_0xc5e9x19[_0x2909[167]](_0x2909[181]+_0xc5e9x18+_0x2909[182]+_0xc5e9x14+_0x2909[183]+_0xc5e9x14);}else {mxUtils[_0x2909[129]](mxResources[_0x2909[112]](_0x2909[168]));mxUtils[_0x2909[169]](_0xc5e9x14);return ;};};this[_0x2909[0]][_0x2909[125]]=_0xc5e9x18;this[_0x2909[0]][_0x2909[122]]=false;}catch(e){this[_0x2909[0]][_0x2909[142]](_0x2909[178])};}else {this[_0x2909[0]][_0x2909[142]](_0x2909[178])};};EditorUi[_0x2909[10]][_0x2909[184]]=function(_0xc5e9x1b,_0xc5e9x1c){var _0xc5e9x3=this[_0x2909[0]][_0x2909[4]];_0xc5e9x1b=null!=_0xc5e9x1b?_0xc5e9x1b:_0xc5e9x3[_0x2909[186]][_0x2909[185]]();_0xc5e9x1c=null!=_0xc5e9x1c?_0xc5e9x1c:{};for(var _0xc5e9x1d=!0,_0xc5e9x1e=_0xc5e9x3[_0x2909[186]][_0x2909[187]](_0xc5e9x1b),_0xc5e9x1a=0;_0xc5e9x1a<_0xc5e9x1e;_0xc5e9x1a++){var _0xc5e9x1f=_0xc5e9x3[_0x2909[186]][_0x2909[188]](_0xc5e9x1b,_0xc5e9x1a),_0xc5e9x20=_0xc5e9x1c;_0xc5e9x3[_0x2909[189]](_0xc5e9x1f)&&(_0xc5e9x20={});_0xc5e9x20=this[_0x2909[184]](_0xc5e9x1f,_0xc5e9x20);null!=_0xc5e9x20?_0xc5e9x3[_0x2909[191]](_0xc5e9x1f,_0xc5e9x20[_0x2909[137]](/\n/g,_0x2909[190])):_0xc5e9x3[_0x2909[191]](_0xc5e9x1f,null);_0xc5e9x1d=_0xc5e9x1d&&null==_0xc5e9x20;};_0xc5e9x1e=_0x2909[192];if(_0xc5e9x3[_0x2909[186]][_0x2909[71]](_0xc5e9x1b)){switch(_0xc5e9x1b[_0x2909[67]][_0x2909[199]]){case _0x2909[55]:_0xc5e9x1e=(_0xc5e9x1b[_0x2909[67]][_0x2909[193]](_0x2909[55])!==_0x2909[192])?_0x2909[192]:_0x2909[194]+_0x2909[195];break ;;case _0x2909[196]:_0xc5e9x1e=(_0xc5e9x1b[_0x2909[67]][_0x2909[193]](_0x2909[55])!==_0x2909[192])?_0x2909[192]:_0x2909[194]+_0x2909[195];break ;;case _0x2909[52]:_0xc5e9x1e=this[_0x2909[197]](_0x2909[52])?_0x2909[192]:_0x2909[198]+_0x2909[195];break ;;}};if(_0xc5e9x3[_0x2909[186]][_0x2909[64]](_0xc5e9x1b)){var _0xc5e9x21=_0xc5e9x3[_0x2909[186]][_0x2909[201]](_0xc5e9x1b[_0x2909[68]][_0x2909[200]]());switch(_0xc5e9x21[_0x2909[67]][_0x2909[199]]){case _0x2909[55]:var _0xc5e9x22=/^[a-zA-Z0-9][a-zA-Z0-9\s]*$/;var _0xc5e9x23=String(_0xc5e9x1b[_0x2909[202]]());if((_0xc5e9x23==_0x2909[31])||(_0xc5e9x23==_0x2909[203])){_0xc5e9x23=_0x2909[141]};var _0xc5e9x24=_0xc5e9x23[_0x2909[205]](_0x2909[204]);_0xc5e9x24[_0x2909[209]](function(_0xc5e9x25){_0xc5e9x1e=_0xc5e9x1e+((_0xc5e9x22[_0x2909[207]](_0xc5e9x25[_0x2909[206]]()))?_0x2909[192]:_0x2909[208]+_0x2909[195])});break ;;};};_0xc5e9x3[_0x2909[210]](_0xc5e9x1b)&&!_0xc5e9x1d&&(_0xc5e9x1e+=(mxResources[_0x2909[112]](_0xc5e9x3[_0x2909[211]])||_0xc5e9x3[_0x2909[211]])+_0x2909[195]);_0xc5e9x1e=_0xc5e9x3[_0x2909[186]][_0x2909[64]](_0xc5e9x1b)?_0xc5e9x1e+(_0xc5e9x3[_0x2909[213]](_0xc5e9x1b,_0xc5e9x3[_0x2909[186]][_0x2909[212]](_0xc5e9x1b,!0),_0xc5e9x3[_0x2909[186]][_0x2909[212]](_0xc5e9x1b,!1))||_0x2909[192]):_0xc5e9x1e+(_0xc5e9x3[_0x2909[214]](_0xc5e9x1b)||_0x2909[192]);_0xc5e9x1a=_0xc5e9x3[_0x2909[215]](_0xc5e9x1b,_0xc5e9x1c);null!=_0xc5e9x1a&&(_0xc5e9x1e+=_0xc5e9x1a);null==_0xc5e9x3[_0x2909[186]][_0x2909[216]](_0xc5e9x1b)&&_0xc5e9x3[_0x2909[89]][_0x2909[184]]();return 0<_0xc5e9x1e[_0x2909[143]]||!_0xc5e9x1d?_0xc5e9x1e:null;};EditorUi[_0x2909[10]][_0x2909[197]]=function(_0xc5e9x26){var _0xc5e9x3=this[_0x2909[0]][_0x2909[4]];var _0xc5e9x27=_0xc5e9x3[_0x2909[217]]();var _0xc5e9x28=0;_0xc5e9x27[_0x2909[218]][_0x2909[209]](function(_0xc5e9x29){if(_0xc5e9x3[_0x2909[186]][_0x2909[71]](_0xc5e9x29)&&_0xc5e9x29[_0x2909[67]][_0x2909[199]]==_0xc5e9x26){_0xc5e9x28++}});return _0xc5e9x28>1?false:true;};EditorUi[_0x2909[10]][_0x2909[219]]=function(_0xc5e9x18){var _0xc5e9x1=this[_0x2909[0]];if(_0xc5e9x18!=null){var _0xc5e9x2a=this[_0x2909[184]]();if(_0xc5e9x2a===null){var _0xc5e9x14=mxUtils[_0x2909[135]](this[_0x2909[0]][_0x2909[134]]());try{if(useLocalStorage){if(localStorage[_0x2909[136]](_0xc5e9x18)!=null&&!mxUtils[_0x2909[138]](mxResources[_0x2909[112]](_0x2909[137],[_0xc5e9x18]))){return };localStorage[_0x2909[139]](_0xc5e9x18,_0xc5e9x14);this[_0x2909[0]][_0x2909[142]](mxResources[_0x2909[112]](_0x2909[140])+_0x2909[141]+ new Date());}else {console[_0x2909[72]](_0xc5e9x14[_0x2909[143]]);console[_0x2909[72]](MAX_REQUEST_SIZE);if(_0xc5e9x14[_0x2909[143]]<MAX_REQUEST_SIZE){_0xc5e9x14=encodeURIComponent(_0xc5e9x14);var _0xc5e9x19= new XMLHttpRequest();_0xc5e9x19[_0x2909[102]](_0x2909[172],SAVE_URL+this[_0x2909[0]][_0x2909[132]][_0x2909[160]],true);_0xc5e9x19[_0x2909[147]](_0x2909[145],_0x2909[146]);_0xc5e9x19[_0x2909[147]](_0x2909[148],_0x2909[149]+_0xc5e9x1[_0x2909[132]][_0x2909[150]]);_0xc5e9x19[_0x2909[151]]=function(_0xc5e9x1a){if(_0xc5e9x19[_0x2909[152]]===4){if(_0xc5e9x19[_0x2909[153]]===200){_0xc5e9x1[_0x2909[142]](_0x2909[220]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[174]]+_0x2909[175]+_0xc5e9x19[_0x2909[153]]+_0x2909[141]+_0xc5e9x19[_0x2909[165]]+_0x2909[44])}else {_0xc5e9x1[_0x2909[142]](_0x2909[176]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[163]][0][_0x2909[128]])}}};_0xc5e9x19[_0x2909[164]]=function(_0xc5e9x1a){mxUtils[_0x2909[129]](_0xc5e9x19[_0x2909[165]])};_0xc5e9x19[_0x2909[167]](_0x2909[177]+_0xc5e9x14+_0x2909[183]+_0xc5e9x14);}else {mxUtils[_0x2909[129]](mxResources[_0x2909[112]](_0x2909[168]));mxUtils[_0x2909[169]](_0xc5e9x14);return ;};};this[_0x2909[0]][_0x2909[125]]=_0xc5e9x18;this[_0x2909[0]][_0x2909[122]]=false;}catch(e){this[_0x2909[0]][_0x2909[142]](_0x2909[221])};}else {_0xc5e9x1[_0x2909[142]](_0x2909[222])};}else {this[_0x2909[0]][_0x2909[142]](_0x2909[221])};};EditorUi[_0x2909[10]][_0x2909[223]]=function(_0xc5e9x18){var _0xc5e9x1=this[_0x2909[0]];if(_0xc5e9x18!=null){try{var _0xc5e9x19= new XMLHttpRequest();_0xc5e9x19[_0x2909[102]](_0x2909[144],VARIABLE_URL,true);_0xc5e9x19[_0x2909[147]](_0x2909[145],_0x2909[146]);_0xc5e9x19[_0x2909[147]](_0x2909[148],_0x2909[149]+_0xc5e9x1[_0x2909[132]][_0x2909[150]]);_0xc5e9x19[_0x2909[151]]=function(_0xc5e9x1a){if(_0xc5e9x19[_0x2909[152]]===4){if(_0xc5e9x19[_0x2909[153]]===201){_0xc5e9x1[_0x2909[142]](_0x2909[224]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[225]]+_0x2909[175]+_0xc5e9x19[_0x2909[153]]+_0x2909[141]+_0xc5e9x19[_0x2909[165]]+_0x2909[44])}else {_0xc5e9x1[_0x2909[142]](_0x2909[180]+JSON[_0x2909[157]](_0xc5e9x19[_0x2909[156]])[_0x2909[163]][0][_0x2909[128]])}}};_0xc5e9x19[_0x2909[164]]=function(_0xc5e9x1a){mxUtils[_0x2909[129]](_0xc5e9x19[_0x2909[165]])};_0xc5e9x19[_0x2909[167]](_0x2909[226]+_0xc5e9x18);}catch(e){this[_0x2909[0]][_0x2909[142]](_0x2909[227])}}else {this[_0x2909[0]][_0x2909[142]](_0x2909[227])};};EditorUi[_0x2909[10]][_0x2909[228]]=function(_0xc5e9x2b){var _0xc5e9x2c=(_0xc5e9x2b!=null)?_0xc5e9x2b:window[_0x2909[230]][_0x2909[229]];var _0xc5e9x2d=(_0xc5e9x2c[_0x2909[69]](_0x2909[231])>0)?1:0;for(var _0xc5e9x2e in urlParams){if(_0xc5e9x2d==0){_0xc5e9x2c+=_0x2909[231]}else {_0xc5e9x2c+=_0x2909[232]};_0xc5e9x2c+=_0xc5e9x2e+_0x2909[233]+urlParams[_0xc5e9x2e];_0xc5e9x2d++;};return _0xc5e9x2c;};EditorUi[_0x2909[10]][_0x2909[109]]=function(){var _0xc5e9x2f=this[_0x2909[12]][_0x2909[112]](_0x2909[234]);var _0xc5e9x30=this[_0x2909[12]][_0x2909[112]](_0x2909[235]);var _0xc5e9x31=this[_0x2909[0]][_0x2909[124]];var _0xc5e9x32=function(){_0xc5e9x2f[_0x2909[114]](_0xc5e9x31[_0x2909[236]]());_0xc5e9x30[_0x2909[114]](_0xc5e9x31[_0x2909[237]]());};_0xc5e9x31[_0x2909[33]](mxEvent.ADD,_0xc5e9x32);_0xc5e9x31[_0x2909[33]](mxEvent.UNDO,_0xc5e9x32);_0xc5e9x31[_0x2909[33]](mxEvent.REDO,_0xc5e9x32);_0xc5e9x31[_0x2909[33]](mxEvent.CLEAR,_0xc5e9x32);_0xc5e9x32();};EditorUi[_0x2909[10]][_0x2909[110]]=function(){var _0xc5e9x33=mxUtils[_0x2909[20]](this,function(){var _0xc5e9x3=this[_0x2909[0]][_0x2909[4]];var _0xc5e9x34=!_0xc5e9x3[_0x2909[238]]();var _0xc5e9x35=false;var _0xc5e9x36=false;var _0xc5e9x37=_0xc5e9x3[_0x2909[239]]();if(_0xc5e9x37!=null){for(var _0xc5e9x38=0;_0xc5e9x38<_0xc5e9x37[_0x2909[143]];_0xc5e9x38++){var _0xc5e9xb=_0xc5e9x37[_0xc5e9x38];if(_0xc5e9x3[_0x2909[65]]()[_0x2909[64]](_0xc5e9xb)){_0xc5e9x36=true};if(_0xc5e9x3[_0x2909[65]]()[_0x2909[71]](_0xc5e9xb)){_0xc5e9x35=true};if(_0xc5e9x36&&_0xc5e9x35){break };}};var _0xc5e9x39=[_0x2909[115],_0x2909[116],_0x2909[240],_0x2909[241],_0x2909[242],_0x2909[243],_0x2909[6],_0x2909[244],_0x2909[245],_0x2909[246],_0x2909[247],_0x2909[248],_0x2909[249],_0x2909[250],_0x2909[251]];for(var _0xc5e9x38=0;_0xc5e9x38<_0xc5e9x39[_0x2909[143]];_0xc5e9x38++){this[_0x2909[12]][_0x2909[112]](_0xc5e9x39[_0xc5e9x38])[_0x2909[114]](_0xc5e9x34)};this[_0x2909[12]][_0x2909[112]](_0x2909[252])[_0x2909[114]](_0xc5e9x36);this[_0x2909[12]][_0x2909[112]](_0x2909[253])[_0x2909[114]](_0xc5e9x35);this[_0x2909[12]][_0x2909[112]](_0x2909[254])[_0x2909[114]](_0xc5e9x35);this[_0x2909[12]][_0x2909[112]](_0x2909[256])[_0x2909[114]](_0xc5e9x3[_0x2909[255]]()>1);this[_0x2909[12]][_0x2909[112]](_0x2909[258])[_0x2909[114]](_0xc5e9x3[_0x2909[255]]()==1&&_0xc5e9x3[_0x2909[65]]()[_0x2909[187]](_0xc5e9x3[_0x2909[257]]())>0);var _0xc5e9x3a=_0xc5e9x35&&_0xc5e9x3[_0x2909[255]]()==1;this[_0x2909[12]][_0x2909[112]](_0x2909[259])[_0x2909[114]](_0xc5e9x3a&&_0xc5e9x3[_0x2909[65]]()[_0x2909[71]](_0xc5e9x3[_0x2909[65]]()[_0x2909[216]](_0xc5e9x3[_0x2909[257]]())));var _0xc5e9x3b=[_0x2909[260],_0x2909[261],_0x2909[262],_0x2909[263],_0x2909[264],_0x2909[265],_0x2909[266],_0x2909[267],_0x2909[268]];for(var _0xc5e9x38=0;_0xc5e9x38<_0xc5e9x3b[_0x2909[143]];_0xc5e9x38++){this[_0x2909[13]][_0x2909[112]](_0xc5e9x3b[_0xc5e9x38])[_0x2909[114]](_0xc5e9x34)};_0xc5e9x3b=[_0x2909[269],_0x2909[270],_0x2909[271]];for(var _0xc5e9x38=0;_0xc5e9x38<_0xc5e9x3b[_0x2909[143]];_0xc5e9x38++){this[_0x2909[13]][_0x2909[112]](_0xc5e9x3b[_0xc5e9x38])[_0x2909[114]](_0xc5e9x36)};this[_0x2909[12]][_0x2909[112]](_0x2909[272])[_0x2909[114]](_0xc5e9x36);this[_0x2909[13]][_0x2909[112]](_0x2909[273])[_0x2909[114]](_0xc5e9x3[_0x2909[255]]()>1);this[_0x2909[13]][_0x2909[112]](_0x2909[276])[_0x2909[114]](_0xc5e9x35||(_0xc5e9x36&&_0xc5e9x3[_0x2909[275]](_0xc5e9x3[_0x2909[89]][_0x2909[274]](_0xc5e9x3[_0x2909[257]]()))));this[_0x2909[13]][_0x2909[112]](_0x2909[279])[_0x2909[114]](_0xc5e9x3[_0x2909[277]]&&((_0xc5e9x3[_0x2909[89]][_0x2909[278]]!=null)||(_0xc5e9x3[_0x2909[255]]()==1&&_0xc5e9x3[_0x2909[189]](_0xc5e9x3[_0x2909[257]]()))));this[_0x2909[12]][_0x2909[112]](_0x2909[280])[_0x2909[114]](_0xc5e9x3[_0x2909[89]][_0x2909[278]]!=null);this[_0x2909[12]][_0x2909[112]](_0x2909[281])[_0x2909[114]](_0xc5e9x3[_0x2909[89]][_0x2909[278]]!=null);var _0xc5e9x3c=_0xc5e9x3[_0x2909[255]]()==1&&_0xc5e9x3[_0x2909[189]](_0xc5e9x3[_0x2909[257]]());this[_0x2909[12]][_0x2909[112]](_0x2909[282])[_0x2909[114]](_0xc5e9x3c);this[_0x2909[12]][_0x2909[112]](_0x2909[283])[_0x2909[114]](_0xc5e9x3c);this[_0x2909[12]][_0x2909[112]](_0x2909[284])[_0x2909[114]](_0xc5e9x3c);this[_0x2909[12]][_0x2909[112]](_0x2909[285])[_0x2909[114]](_0xc5e9x3[_0x2909[255]]()==1);this[_0x2909[12]][_0x2909[112]](_0x2909[287])[_0x2909[114]](_0xc5e9x3[_0x2909[255]]()==1&&_0xc5e9x3[_0x2909[286]](_0xc5e9x3[_0x2909[257]]())!=null);});this[_0x2909[0]][_0x2909[4]][_0x2909[288]]()[_0x2909[33]](mxEvent.CHANGE,_0xc5e9x33);_0xc5e9x33();};EditorUi[_0x2909[10]][_0x2909[15]]=function(){var _0xc5e9x3d=mxClient[_0x2909[29]]&&(document[_0x2909[30]]==null||document[_0x2909[30]]==5);var _0xc5e9x3e=this[_0x2909[1]][_0x2909[289]];var _0xc5e9x3f=this[_0x2909[1]][_0x2909[290]];if(this[_0x2909[1]]==document[_0x2909[21]]){_0xc5e9x3e=document[_0x2909[21]][_0x2909[289]]||document[_0x2909[120]][_0x2909[289]];_0xc5e9x3f=(_0xc5e9x3d)?document[_0x2909[21]][_0x2909[290]]||document[_0x2909[120]][_0x2909[290]]:document[_0x2909[120]][_0x2909[290]];};var _0xc5e9x40=Math[_0x2909[292]](0,Math[_0x2909[291]](this[_0x2909[107]],_0xc5e9x3e-this[_0x2909[103]]-20));var _0xc5e9x41=Math[_0x2909[292]](0,Math[_0x2909[291]](this[_0x2909[108]],_0xc5e9x3f-this[_0x2909[104]]-this[_0x2909[105]]-this[_0x2909[106]]-this[_0x2909[103]]-1));this[_0x2909[23]][_0x2909[6]][_0x2909[293]]=this[_0x2909[104]]+_0x2909[294];this[_0x2909[25]][_0x2909[6]][_0x2909[295]]=this[_0x2909[104]]+_0x2909[294];this[_0x2909[25]][_0x2909[6]][_0x2909[293]]=this[_0x2909[105]]+_0x2909[294];var _0xc5e9x42=this[_0x2909[104]]+this[_0x2909[105]];if(!mxClient[_0x2909[296]]){_0xc5e9x42+=1};this[_0x2909[27]][_0x2909[6]][_0x2909[295]]=_0xc5e9x42+_0x2909[294];this[_0x2909[27]][_0x2909[6]][_0x2909[297]]=_0xc5e9x40+_0x2909[294];this[_0x2909[79]][_0x2909[6]][_0x2909[297]]=_0xc5e9x40+_0x2909[294];this[_0x2909[79]][_0x2909[6]][_0x2909[293]]=_0xc5e9x41+_0x2909[294];this[_0x2909[79]][_0x2909[6]][_0x2909[298]]=this[_0x2909[106]]+_0x2909[294];this[_0x2909[26]][_0x2909[6]][_0x2909[299]]=(_0xc5e9x40+this[_0x2909[103]])+_0x2909[294];this[_0x2909[26]][_0x2909[6]][_0x2909[295]]=this[_0x2909[27]][_0x2909[6]][_0x2909[295]];this[_0x2909[28]][_0x2909[6]][_0x2909[293]]=this[_0x2909[106]]+_0x2909[294];this[_0x2909[28]][_0x2909[6]][_0x2909[300]]=_0x2909[301];this[_0x2909[302]][_0x2909[6]][_0x2909[295]]=this[_0x2909[27]][_0x2909[6]][_0x2909[295]];this[_0x2909[302]][_0x2909[6]][_0x2909[298]]=this[_0x2909[79]][_0x2909[6]][_0x2909[298]];this[_0x2909[302]][_0x2909[6]][_0x2909[299]]=_0xc5e9x40+_0x2909[294];this[_0x2909[303]][_0x2909[6]][_0x2909[297]]=this[_0x2909[27]][_0x2909[6]][_0x2909[297]];this[_0x2909[303]][_0x2909[6]][_0x2909[298]]=(_0xc5e9x41+this[_0x2909[106]])+_0x2909[294];if(_0xc5e9x3d){this[_0x2909[23]][_0x2909[6]][_0x2909[297]]=_0xc5e9x3e+_0x2909[294];this[_0x2909[25]][_0x2909[6]][_0x2909[297]]=this[_0x2909[23]][_0x2909[6]][_0x2909[297]];var _0xc5e9x43=(_0xc5e9x3f-_0xc5e9x41-this[_0x2909[103]]-this[_0x2909[106]]-this[_0x2909[104]]-this[_0x2909[105]]);this[_0x2909[27]][_0x2909[6]][_0x2909[293]]=_0xc5e9x43+_0x2909[294];this[_0x2909[26]][_0x2909[6]][_0x2909[297]]=(_0xc5e9x3e-_0xc5e9x40-this[_0x2909[103]])+_0x2909[294];var _0xc5e9x44=(_0xc5e9x3f-this[_0x2909[106]]-this[_0x2909[104]]-this[_0x2909[105]]);this[_0x2909[26]][_0x2909[6]][_0x2909[293]]=_0xc5e9x44+_0x2909[294];this[_0x2909[28]][_0x2909[6]][_0x2909[297]]=this[_0x2909[23]][_0x2909[6]][_0x2909[297]];this[_0x2909[302]][_0x2909[6]][_0x2909[293]]=_0xc5e9x44+_0x2909[294];}else {this[_0x2909[27]][_0x2909[6]][_0x2909[298]]=(_0xc5e9x41+this[_0x2909[103]]+this[_0x2909[106]])+_0x2909[294];this[_0x2909[26]][_0x2909[6]][_0x2909[298]]=this[_0x2909[79]][_0x2909[6]][_0x2909[298]];};};EditorUi[_0x2909[10]][_0x2909[14]]=function(){this[_0x2909[23]]=this[_0x2909[305]](_0x2909[304]);this[_0x2909[25]]=this[_0x2909[305]](_0x2909[306]);this[_0x2909[27]]=this[_0x2909[305]](_0x2909[307]);this[_0x2909[79]]=this[_0x2909[305]](_0x2909[308]);this[_0x2909[26]]=this[_0x2909[305]](_0x2909[309]);this[_0x2909[28]]=this[_0x2909[305]](_0x2909[310]);this[_0x2909[302]]=this[_0x2909[305]](_0x2909[311]);this[_0x2909[303]]=this[_0x2909[305]](_0x2909[312]);this[_0x2909[23]][_0x2909[6]][_0x2909[295]]=_0x2909[313];this[_0x2909[23]][_0x2909[6]][_0x2909[299]]=_0x2909[313];this[_0x2909[23]][_0x2909[6]][_0x2909[314]]=_0x2909[313];this[_0x2909[25]][_0x2909[6]][_0x2909[299]]=_0x2909[313];this[_0x2909[25]][_0x2909[6]][_0x2909[314]]=_0x2909[313];this[_0x2909[27]][_0x2909[6]][_0x2909[299]]=_0x2909[313];this[_0x2909[79]][_0x2909[6]][_0x2909[299]]=_0x2909[313];this[_0x2909[26]][_0x2909[6]][_0x2909[314]]=_0x2909[313];this[_0x2909[28]][_0x2909[6]][_0x2909[299]]=_0x2909[313];this[_0x2909[28]][_0x2909[6]][_0x2909[314]]=_0x2909[313];this[_0x2909[28]][_0x2909[6]][_0x2909[298]]=_0x2909[313];this[_0x2909[303]][_0x2909[6]][_0x2909[299]]=_0x2909[313];this[_0x2909[303]][_0x2909[6]][_0x2909[293]]=this[_0x2909[103]]+_0x2909[294];this[_0x2909[302]][_0x2909[6]][_0x2909[297]]=this[_0x2909[103]]+_0x2909[294];};EditorUi[_0x2909[10]][_0x2909[16]]=function(){this[_0x2909[315]]=this[_0x2909[13]][_0x2909[317]](this[_0x2909[305]](_0x2909[316]));this[_0x2909[23]][_0x2909[318]](this[_0x2909[315]][_0x2909[1]]);this[_0x2909[319]]=this[_0x2909[321]](this[_0x2909[305]](_0x2909[320]));this[_0x2909[25]][_0x2909[318]](this[_0x2909[319]][_0x2909[1]]);this[_0x2909[322]]=this[_0x2909[323]](this[_0x2909[27]]);this[_0x2909[28]][_0x2909[318]](this[_0x2909[324]]());this[_0x2909[325]]=this[_0x2909[326]]();this[_0x2909[0]][_0x2909[33]](_0x2909[327],mxUtils[_0x2909[20]](this,function(){this[_0x2909[329]](this[_0x2909[0]][_0x2909[328]]())}));this[_0x2909[329]](this[_0x2909[0]][_0x2909[328]]());this[_0x2909[315]][_0x2909[1]][_0x2909[318]](this[_0x2909[325]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[23]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[25]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[27]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[79]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[26]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[28]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[302]]);this[_0x2909[1]][_0x2909[318]](this[_0x2909[303]]);this[_0x2909[330]](this[_0x2909[302]],true,0,mxUtils[_0x2909[20]](this,function(_0xc5e9x45){this[_0x2909[107]]=_0xc5e9x45;this[_0x2909[15]]();this[_0x2909[0]][_0x2909[4]][_0x2909[100]]();this[_0x2909[0]][_0x2909[80]][_0x2909[101]](false);this[_0x2909[0]][_0x2909[80]][_0x2909[80]][_0x2909[100]]();}));this[_0x2909[330]](this[_0x2909[303]],false,this[_0x2909[106]],mxUtils[_0x2909[20]](this,function(_0xc5e9x45){this[_0x2909[108]]=_0xc5e9x45;this[_0x2909[15]]();this[_0x2909[0]][_0x2909[80]][_0x2909[101]](false);this[_0x2909[0]][_0x2909[80]][_0x2909[80]][_0x2909[100]]();}));};EditorUi[_0x2909[10]][_0x2909[326]]=function(){var _0xc5e9x2=document[_0x2909[332]](_0x2909[331]);_0xc5e9x2[_0x2909[333]]=_0x2909[334];return _0xc5e9x2;};EditorUi[_0x2909[10]][_0x2909[326]]=function(){var _0xc5e9x2=document[_0x2909[332]](_0x2909[331]);_0xc5e9x2[_0x2909[333]]=_0x2909[334];return _0xc5e9x2;};EditorUi[_0x2909[10]][_0x2909[329]]=function(_0xc5e9x45){this[_0x2909[325]][_0x2909[335]]=_0xc5e9x45};EditorUi[_0x2909[10]][_0x2909[321]]=function(_0xc5e9x2){return  new Toolbar(this,_0xc5e9x2)};EditorUi[_0x2909[10]][_0x2909[323]]=function(_0xc5e9x2){return  new Sidebar(this,_0xc5e9x2)};EditorUi[_0x2909[10]][_0x2909[324]]=function(){return this[_0x2909[305]](_0x2909[336])};EditorUi[_0x2909[10]][_0x2909[305]]=function(_0xc5e9x46){var _0xc5e9x47=document[_0x2909[332]](_0x2909[337]);_0xc5e9x47[_0x2909[333]]=_0xc5e9x46;return _0xc5e9x47;};EditorUi[_0x2909[10]][_0x2909[338]]=function(_0xc5e9x46){var _0xc5e9x47=document[_0x2909[332]](_0xc5e9x46);return _0xc5e9x47;};EditorUi[_0x2909[10]][_0x2909[339]]=function(_0xc5e9x46){var _0xc5e9x47=document[_0x2909[332]](_0x2909[196]);_0xc5e9x47[_0x2909[333]]=_0xc5e9x46;return _0xc5e9x47;};EditorUi[_0x2909[10]][_0x2909[330]]=function(_0xc5e9x47,_0xc5e9x48,_0xc5e9x49,_0xc5e9x4a){var _0xc5e9x4b=null;var _0xc5e9x4c=null;function _0xc5e9x4d(){return parseInt(((_0xc5e9x48)?_0xc5e9x47[_0x2909[6]][_0x2909[299]]:_0xc5e9x47[_0x2909[6]][_0x2909[298]]))}function _0xc5e9x4e(_0xc5e9x6){if(_0xc5e9x4b!=null){var _0xc5e9x4f= new mxPoint(mxEvent[_0x2909[340]](_0xc5e9x6),mxEvent[_0x2909[341]](_0xc5e9x6));_0xc5e9x4a(Math[_0x2909[292]](0,_0xc5e9x4c+((_0xc5e9x48)?(_0xc5e9x4f[_0x2909[342]]-_0xc5e9x4b[_0x2909[342]]):(_0xc5e9x4b[_0x2909[343]]-_0xc5e9x4f[_0x2909[343]]))-_0xc5e9x49));mxEvent[_0x2909[74]](_0xc5e9x6);}}function _0xc5e9x50(_0xc5e9x6){_0xc5e9x4e(_0xc5e9x6);_0xc5e9x4b=null;_0xc5e9x4c=null;}mxEvent[_0x2909[82]](_0xc5e9x47,function(_0xc5e9x6){_0xc5e9x4b= new mxPoint(mxEvent[_0x2909[340]](_0xc5e9x6),mxEvent[_0x2909[341]](_0xc5e9x6));_0xc5e9x4c=_0xc5e9x4d();mxEvent[_0x2909[74]](_0xc5e9x6);});mxEvent[_0x2909[33]](document,_0x2909[344],_0xc5e9x4e);mxEvent[_0x2909[33]](document,_0x2909[345],_0xc5e9x4e);mxEvent[_0x2909[33]](document,_0x2909[346],_0xc5e9x50);mxEvent[_0x2909[33]](document,_0x2909[347],_0xc5e9x50);};EditorUi[_0x2909[10]][_0x2909[73]]=function(_0xc5e9x47,_0xc5e9x3e,_0xc5e9x3f,_0xc5e9x51,_0xc5e9x52,_0xc5e9x53){this[_0x2909[348]]();this[_0x2909[349]]= new Dialog(this,_0xc5e9x47,_0xc5e9x3e,(mxClient[_0x2909[350]])?_0xc5e9x3f-12:_0xc5e9x3f,_0xc5e9x51,_0xc5e9x52,_0xc5e9x53);};EditorUi[_0x2909[10]][_0x2909[348]]=function(){if(this[_0x2909[349]]!=null){this[_0x2909[349]][_0x2909[351]]();this[_0x2909[349]]=null;this[_0x2909[0]][_0x2909[4]][_0x2909[1]][_0x2909[47]]();}};EditorUi[_0x2909[10]][_0x2909[352]]=function(_0xc5e9x54){if(!_0xc5e9x54&&this[_0x2909[0]][_0x2909[125]]!=null){this[_0x2909[171]](this[_0x2909[0]][_0x2909[353]]())}else {this[_0x2909[73]]( new SaveDialog(this)[_0x2909[1]],300,100,true,true)}};EditorUi[_0x2909[10]][_0x2909[354]]=function(_0xc5e9x54){if(!_0xc5e9x54&&this[_0x2909[0]][_0x2909[125]]!=null){this[_0x2909[219]](this[_0x2909[0]][_0x2909[353]]())}else {}};EditorUi[_0x2909[10]][_0x2909[355]]=function(_0xc5e9x55,_0xc5e9x56,_0xc5e9x57){var _0xc5e9x3=this[_0x2909[0]][_0x2909[4]];var _0xc5e9xb=_0xc5e9x3[_0x2909[257]]();_0xc5e9x56=this[_0x2909[356]]!=null?this[_0x2909[356]]:_0xc5e9x56;_0xc5e9x3[_0x2909[65]]()[_0x2909[357]]();try{_0xc5e9x55[_0x2909[358]](_0xc5e9x3[_0x2909[217]](),_0xc5e9xb)}catch(e){throw e}finally{if(_0xc5e9x56&&navigator[_0x2909[360]][_0x2909[69]](_0x2909[359])<0){var _0xc5e9x58= new mxMorphing(_0xc5e9x3);_0xc5e9x58[_0x2909[33]](mxEvent.DONE,mxUtils[_0x2909[20]](this,function(){_0xc5e9x3[_0x2909[65]]()[_0x2909[361]]()}));_0xc5e9x58[_0x2909[362]]();}else {_0xc5e9x3[_0x2909[65]]()[_0x2909[361]]()}};};EditorUi[_0x2909[10]][_0x2909[97]]=function(_0xc5e9x1){var _0xc5e9x3=this[_0x2909[0]][_0x2909[4]];var _0xc5e9xf= new mxKeyHandler(_0xc5e9x3);_0xc5e9xf[_0x2909[363]]=function(_0xc5e9x6){return mxEvent[_0x2909[363]](_0xc5e9x6)||(mxClient[_0x2909[364]]&&_0xc5e9x6[_0x2909[365]])};function _0xc5e9x59(_0xc5e9x5a){if(!_0xc5e9x3[_0x2909[238]]()){var _0xc5e9x49=0;var _0xc5e9x5b=0;if(_0xc5e9x5a==37){_0xc5e9x49= -1}else {if(_0xc5e9x5a==38){_0xc5e9x5b= -1}else {if(_0xc5e9x5a==39){_0xc5e9x49=1}else {if(_0xc5e9x5a==40){_0xc5e9x5b=1}}}};_0xc5e9x3[_0x2909[366]](_0xc5e9x3[_0x2909[239]](),_0xc5e9x49,_0xc5e9x5b);_0xc5e9x3[_0x2909[367]](_0xc5e9x3[_0x2909[257]]());}}var _0xc5e9x5c=mxUtils[_0x2909[20]](this,function(_0xc5e9x5d,_0xc5e9x5e,_0xc5e9x2e,_0xc5e9x5f){var _0xc5e9x60=this[_0x2909[12]][_0x2909[112]](_0xc5e9x2e);if(_0xc5e9x60!=null){var _0xc5e9x1f=function(){if(_0xc5e9x60[_0x2909[368]]){_0xc5e9x60[_0x2909[369]]()}};if(_0xc5e9x5e){if(_0xc5e9x5f){_0xc5e9xf[_0x2909[370]](_0xc5e9x5d,_0xc5e9x1f)}else {_0xc5e9xf[_0x2909[371]](_0xc5e9x5d,_0xc5e9x1f)}}else {if(_0xc5e9x5f){_0xc5e9xf[_0x2909[372]](_0xc5e9x5d,_0xc5e9x1f)}else {_0xc5e9xf[_0x2909[373]](_0xc5e9x5d,_0xc5e9x1f)}};};});var _0xc5e9x61=this;var _0xc5e9x62=_0xc5e9xf[_0x2909[374]];_0xc5e9xf[_0x2909[374]]=function(_0xc5e9x6){_0xc5e9x61[_0x2909[348]]();_0xc5e9x62[_0x2909[50]](this,arguments);};_0xc5e9xf[_0x2909[375]]=function(){};_0xc5e9xf[_0x2909[373]](8,function(){_0xc5e9x3[_0x2909[376]](true)});_0xc5e9xf[_0x2909[373]](13,function(){_0xc5e9x3[_0x2909[376]](false)});_0xc5e9xf[_0x2909[373]](33,function(){_0xc5e9x3[_0x2909[281]]()});_0xc5e9xf[_0x2909[373]](34,function(){_0xc5e9x3[_0x2909[282]]()});_0xc5e9xf[_0x2909[373]](36,function(){_0xc5e9x3[_0x2909[280]]()});_0xc5e9xf[_0x2909[373]](35,function(){_0xc5e9x3[_0x2909[15]]()});_0xc5e9xf[_0x2909[373]](37,function(){_0xc5e9x59(37)});_0xc5e9xf[_0x2909[373]](38,function(){_0xc5e9x59(38)});_0xc5e9xf[_0x2909[373]](39,function(){_0xc5e9x59(39)});_0xc5e9xf[_0x2909[373]](40,function(){_0xc5e9x59(40)});_0xc5e9xf[_0x2909[373]](113,function(){_0xc5e9x3[_0x2909[70]]()});_0xc5e9x5c(46,false,_0x2909[240]);_0xc5e9x5c(82,true,_0x2909[250]);_0xc5e9x5c(83,true,_0x2909[171]);_0xc5e9x5c(83,true,_0x2909[179],true);_0xc5e9x5c(107,false,_0x2909[377]);_0xc5e9x5c(109,false,_0x2909[378]);_0xc5e9x5c(65,true,_0x2909[379]);_0xc5e9x5c(86,true,_0x2909[380],true);_0xc5e9x5c(69,true,_0x2909[381],true);_0xc5e9x5c(69,true,_0x2909[382]);_0xc5e9x5c(66,true,_0x2909[246]);_0xc5e9x5c(70,true,_0x2909[245]);_0xc5e9x5c(68,true,_0x2909[241]);_0xc5e9x5c(90,true,_0x2909[234]);_0xc5e9x5c(89,true,_0x2909[235]);_0xc5e9x5c(88,true,_0x2909[115]);_0xc5e9x5c(67,true,_0x2909[116]);_0xc5e9x5c(81,true,_0x2909[383]);_0xc5e9x5c(86,true,_0x2909[111]);_0xc5e9x5c(71,true,_0x2909[256]);_0xc5e9x5c(71,true,_0x2909[384],true);_0xc5e9x5c(85,true,_0x2909[258]);_0xc5e9x5c(112,false,_0x2909[385]);_0xc5e9x5c(80,true,_0x2909[219],true);return _0xc5e9xf;};EditorUi[_0x2909[10]][_0x2909[58]]=function(_0xc5e9x3,_0xc5e9x37,_0xc5e9x63,_0xc5e9x64){for(var _0xc5e9x38=0;_0xc5e9x38<_0xc5e9x37[_0x2909[143]];_0xc5e9x38++){_0xc5e9x3[_0x2909[388]]( new mxMultiplicity(true,_0xc5e9x37[_0xc5e9x38],null,null,_0xc5e9x63[_0xc5e9x38][0],_0xc5e9x63[_0xc5e9x38][1],null,mxResources[_0x2909[112]](_0xc5e9x37[_0xc5e9x38])+_0x2909[386]+_0xc5e9x63[_0xc5e9x38][0]+_0x2909[387],null));_0xc5e9x3[_0x2909[388]]( new mxMultiplicity(false,_0xc5e9x37[_0xc5e9x38],null,null,_0xc5e9x64[_0xc5e9x38][0],_0xc5e9x64[_0xc5e9x38][1],null,mxResources[_0x2909[112]](_0xc5e9x37[_0xc5e9x38])+_0x2909[386]+_0xc5e9x64[_0xc5e9x38][0]+_0x2909[389],null));}};
\ No newline at end of file
index 3b8924f..d28badd 100644 (file)
@@ -1 +1 @@
-var _0xfadf=["\x63\x61\x6C\x6C","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x61\x70\x70\x6C\x79","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x32","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6C\x6F\x61\x64\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x63\x75\x72\x73\x6F\x72","\x73\x74\x79\x6C\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x76\x69\x65\x77","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x68\x74\x6D\x6C","\x31","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x77\x72\x61\x70","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x61\x63\x74\x69\x76\x65","\x67\x72\x61\x70\x68","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x73\x74\x61\x72\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x6E\x69\x74\x54\x6F\x75\x63\x68","\x65\x78\x74\x65\x6E\x64","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x2F\x64\x65\x66\x61\x75\x6C\x74\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x64\x65\x63\x6F\x64\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x45\x4C\x42\x4F\x57\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x72\x6F\x75\x70","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","","\x69\x73\x56\x65\x72\x74\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x5F","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x67\x65\x74","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x6F\x62\x6A\x65\x63\x74","\x6C\x61\x62\x65\x6C","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x55\x73\x65\x72\x4F\x62\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6E\x6B","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x61\x72\x6B\x65\x72","\x66\x69\x72\x73\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x73\x74\x61\x74\x65","\x73\x68\x61\x70\x65","\x6E\x6F\x64\x65","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x78","\x79","\x2F\x74\x6F\x75\x63\x68\x2D\x68\x61\x6E\x64\x6C\x65\x2E\x70\x6E\x67","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x72\x63","\x2F\x74\x6F\x75\x63\x68\x2D\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x69\x6E\x69\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x49\x6D\x67","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x32\x39\x70\x78","\x68\x65\x69\x67\x68\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x74\x69\x74\x6C\x65","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x70\x61\x64\x64\x69\x6E\x67","\x32\x70\x78","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x65\x64\x72\x61\x77\x54\x6F\x6F\x6C\x73","\x72\x65\x64\x72\x61\x77","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x78","\x74\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x2F\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x49\x53\x5F\x49\x45","\x49\x53\x5F\x53\x56\x47","\x64\x69\x76","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x65\x6E\x74\x65\x72","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E"];Graph=function(_0xdd0dx1,_0xdd0dx2,_0xdd0dx3,_0xdd0dx4){mxGraph[_0xfadf[0]](this,_0xdd0dx1,_0xdd0dx2,_0xdd0dx3,_0xdd0dx4);this[_0xfadf[1]](true);this[_0xfadf[2]](false);this[_0xfadf[3]](true);this[_0xfadf[4]](!mxClient.IS_TOUCH);this[_0xfadf[5]](false);this[_0xfadf[6]](false);this[_0xfadf[7]]=true;this[_0xfadf[8]]=false;this[_0xfadf[9]]=false;this[_0xfadf[11]][_0xfadf[10]]=true;this[_0xfadf[12]](false);this[_0xfadf[11]][_0xfadf[13]](false);this[_0xfadf[11]][_0xfadf[14]]=function(){return mxConnectionHandler[_0xfadf[16]][_0xfadf[14]][_0xfadf[15]](this,arguments)&&urlParams[_0xfadf[17]]!=_0xfadf[18]};this[_0xfadf[19]]=_0xfadf[20];if(_0xdd0dx4==null){this[_0xfadf[21]]()};var _0xdd0dx5= new mxRubberband(this);this[_0xfadf[22]]=function(){return _0xdd0dx5};this[_0xfadf[29]][_0xfadf[28]](mxEvent.PAN_START,mxUtils[_0xfadf[27]](this,function(){this[_0xfadf[25]][_0xfadf[24]][_0xfadf[23]]=_0xfadf[26]}));this[_0xfadf[29]][_0xfadf[28]](mxEvent.PAN_END,mxUtils[_0xfadf[27]](this,function(){this[_0xfadf[25]][_0xfadf[24]][_0xfadf[23]]=_0xfadf[30]}));this[_0xfadf[31]]=function(_0xdd0dx6){var _0xdd0dx7=this[_0xfadf[33]][_0xfadf[32]](_0xdd0dx6);var _0xdd0dx8=(_0xdd0dx7!=null)?_0xdd0dx7[_0xfadf[24]]:this[_0xfadf[34]](_0xdd0dx6);return _0xdd0dx8[_0xfadf[35]]==_0xfadf[36]||_0xdd0dx8[_0xfadf[37]]==_0xfadf[38];};this[_0xfadf[40]][_0xfadf[39]]=function(_0xdd0dx7){var _0xdd0dx9=mxCellRenderer[_0xfadf[16]][_0xfadf[39]][_0xfadf[15]](this,arguments);if(_0xdd0dx7[_0xfadf[24]][_0xfadf[37]]==_0xfadf[38]&&_0xdd0dx7[_0xfadf[24]][_0xfadf[35]]!=1){_0xdd0dx9=mxUtils[_0xfadf[41]](_0xdd0dx9,false)};return _0xdd0dx9;};this[_0xfadf[42]]=function(_0xdd0dx6){return false};this[_0xfadf[11]][_0xfadf[43]]=16;var _0xdd0dxa=this[_0xfadf[11]][_0xfadf[44]];this[_0xfadf[11]][_0xfadf[44]]=function(_0xdd0dxb,_0xdd0dx7){if(_0xdd0dx7==null){if(!this[_0xfadf[46]][_0xfadf[29]][_0xfadf[45]]){_0xdd0dx5[_0xfadf[49]](_0xdd0dxb[_0xfadf[47]](),_0xdd0dxb[_0xfadf[48]]());this[_0xfadf[46]][_0xfadf[29]][_0xfadf[50]]=false;}}else {if(tapAndHoldStartsConnection){_0xdd0dxa[_0xfadf[15]](this,arguments)}else {if(this[_0xfadf[46]][_0xfadf[52]](_0xdd0dx7[_0xfadf[51]])&&this[_0xfadf[46]][_0xfadf[53]]()>1){this[_0xfadf[46]][_0xfadf[54]](_0xdd0dx7[_0xfadf[51]])}}}};if(touchStyle){this[_0xfadf[55]]()};};mxUtils[_0xfadf[56]](Graph,mxGraph);Graph[_0xfadf[16]][_0xfadf[57]]=null;Graph[_0xfadf[16]][_0xfadf[58]]=null;Graph[_0xfadf[16]][_0xfadf[21]]=function(){var _0xdd0dxc=mxUtils[_0xfadf[61]](STYLE_PATH+_0xfadf[60])[_0xfadf[59]]();var _0xdd0dxd= new mxCodec(_0xdd0dxc[_0xfadf[62]]);_0xdd0dxd[_0xfadf[64]](_0xdd0dxc,this[_0xfadf[63]]());};Graph[_0xfadf[16]][_0xfadf[65]]=function(_0xdd0dxe){if(_0xdd0dxe!=null){var _0xdd0dx7=this[_0xfadf[33]][_0xfadf[32]](_0xdd0dxe);var _0xdd0dx8=(_0xdd0dx7!=null)?_0xdd0dx7[_0xfadf[24]]:this[_0xfadf[34]](_0xdd0dxe);if(_0xdd0dx8!=null){var _0xdd0dxf=mxUtils[_0xfadf[66]](_0xdd0dx8,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL);var _0xdd0dx10=(_0xdd0dxf==mxConstants[_0xfadf[67]])?mxConstants[_0xfadf[68]]:mxConstants[_0xfadf[67]];this[_0xfadf[69]](mxConstants.STYLE_ELBOW,_0xdd0dx10,[_0xdd0dxe]);};}};Graph[_0xfadf[16]][_0xfadf[70]]=function(_0xdd0dx6){if(_0xdd0dx6!=null&&this[_0xfadf[72]]()[_0xfadf[71]](_0xdd0dx6)){var _0xdd0dx11=this[_0xfadf[72]]()[_0xfadf[73]]([_0xdd0dx6])[0];if(_0xdd0dx11[_0xfadf[74]]!=null){_0xdd0dx11[_0xfadf[74]][_0xfadf[75]]=null};var _0xdd0dx8=_0xdd0dx11[_0xfadf[76]]();_0xdd0dx8=mxUtils[_0xfadf[77]](_0xdd0dx8,mxConstants.STYLE_ENTRY_X,null);_0xdd0dx8=mxUtils[_0xfadf[77]](_0xdd0dx8,mxConstants.STYLE_ENTRY_Y,null);_0xdd0dx8=mxUtils[_0xfadf[77]](_0xdd0dx8,mxConstants.STYLE_EXIT_X,null);_0xdd0dx8=mxUtils[_0xfadf[77]](_0xdd0dx8,mxConstants.STYLE_EXIT_Y,null);_0xdd0dx11[_0xfadf[77]](_0xdd0dx8);this[_0xfadf[11]][_0xfadf[78]]=function(_0xdd0dxb){return this[_0xfadf[46]][_0xfadf[33]][_0xfadf[79]](_0xdd0dx11)};this[_0xfadf[11]][_0xfadf[80]]=function(){return this[_0xfadf[46]][_0xfadf[73]]([_0xdd0dx11])[0]};}};Graph[_0xfadf[16]][_0xfadf[81]]=function(_0xdd0dx6){return this[_0xfadf[82]]&&this[_0xfadf[83]](_0xdd0dx6)};Graph[_0xfadf[16]][_0xfadf[84]]=function(_0xdd0dx6){return this[_0xfadf[83]](_0xdd0dx6)};Graph[_0xfadf[16]][_0xfadf[85]]=function(){var _0xdd0dx12=mxGraph[_0xfadf[16]][_0xfadf[85]][_0xfadf[15]](this,arguments);_0xdd0dx12[_0xfadf[77]](_0xfadf[86]);return _0xdd0dx12;};Graph[_0xfadf[16]][_0xfadf[87]]=function(_0xdd0dx6){var _0xdd0dx13=_0xfadf[88];if(this[_0xfadf[72]]()[_0xfadf[89]](_0xdd0dx6)){_0xdd0dx13+=mxResources[_0xfadf[93]](_0xfadf[90]+_0xdd0dx6[_0xfadf[92]][_0xfadf[91]])}else {if(this[_0xfadf[72]]()[_0xfadf[71]](_0xdd0dx6)){_0xdd0dx13=mxGraph[_0xfadf[16]][_0xfadf[87]][_0xfadf[15]](this,arguments)}};return _0xdd0dx13;};Graph[_0xfadf[16]][_0xfadf[94]]=function(_0xdd0dx6){if(_0xdd0dx6[_0xfadf[92]]!=null&& typeof (_0xdd0dx6[_0xfadf[92]])==_0xfadf[95]){return _0xdd0dx6[_0xfadf[92]][_0xfadf[97]](_0xfadf[96])};return mxGraph[_0xfadf[16]][_0xfadf[94]][_0xfadf[15]](this,arguments);};Graph[_0xfadf[16]][_0xfadf[98]]=function(_0xdd0dx6,_0xdd0dx10,_0xdd0dx14){if(_0xdd0dx6[_0xfadf[92]]!=null&& typeof (_0xdd0dx6[_0xfadf[92]])==_0xfadf[95]){var _0xdd0dx15=_0xdd0dx6[_0xfadf[92]][_0xfadf[99]](true);_0xdd0dx15[_0xfadf[100]](_0xfadf[96],_0xdd0dx10);_0xdd0dx10=_0xdd0dx15;};mxGraph[_0xfadf[16]][_0xfadf[98]][_0xfadf[15]](this,arguments);};Graph[_0xfadf[16]][_0xfadf[101]]=function(_0xdd0dx6,_0xdd0dx16){var _0xdd0dx10=null;if(_0xdd0dx6[_0xfadf[92]]!=null&& typeof (_0xdd0dx6[_0xfadf[92]])==_0xfadf[95]){_0xdd0dx10=_0xdd0dx6[_0xfadf[92]][_0xfadf[99]](true)}else {var _0xdd0dx17=mxUtils[_0xfadf[102]]();_0xdd0dx10=_0xdd0dx17[_0xfadf[104]](_0xfadf[103]);_0xdd0dx10[_0xfadf[100]](_0xfadf[96],_0xdd0dx6[_0xfadf[92]]);};if(_0xdd0dx16!=null&&_0xdd0dx16[_0xfadf[105]]>0){_0xdd0dx10[_0xfadf[100]](_0xfadf[106],_0xdd0dx16)}else {_0xdd0dx10[_0xfadf[107]](_0xfadf[106])};this[_0xfadf[109]][_0xfadf[108]](_0xdd0dx6,_0xdd0dx10);};Graph[_0xfadf[16]][_0xfadf[110]]=function(_0xdd0dx6){if(_0xdd0dx6[_0xfadf[92]]!=null&& typeof (_0xdd0dx6[_0xfadf[92]])==_0xfadf[95]){return _0xdd0dx6[_0xfadf[92]][_0xfadf[97]](_0xfadf[106])};return null;};Graph[_0xfadf[16]][_0xfadf[55]]=function(){this[_0xfadf[11]][_0xfadf[112]][_0xfadf[111]]=function(){return this[_0xfadf[46]][_0xfadf[11]][_0xfadf[113]]!=null};this[_0xfadf[28]](mxEvent.START_EDITING,function(_0xdd0dx18,_0xdd0dx19){this[_0xfadf[29]][_0xfadf[114]]()});var _0xdd0dx1a=false;var _0xdd0dx1b=null;this[_0xfadf[115]]=function(_0xdd0dxb){mxGraph[_0xfadf[16]][_0xfadf[115]][_0xfadf[15]](this,arguments);if(_0xdd0dxb[_0xfadf[32]]()==null){var _0xdd0dx6=this[_0xfadf[118]](_0xdd0dxb[_0xfadf[116]],_0xdd0dxb[_0xfadf[117]]);if(this[_0xfadf[72]]()[_0xfadf[71]](_0xdd0dx6)){_0xdd0dxb[_0xfadf[119]]=this[_0xfadf[33]][_0xfadf[32]](_0xdd0dx6);if(_0xdd0dxb[_0xfadf[119]]!=null&&_0xdd0dxb[_0xfadf[119]][_0xfadf[120]]!=null){this[_0xfadf[25]][_0xfadf[24]][_0xfadf[23]]=_0xdd0dxb[_0xfadf[119]][_0xfadf[120]][_0xfadf[121]][_0xfadf[24]][_0xfadf[23]]};};};if(_0xdd0dxb[_0xfadf[32]]()==null){this[_0xfadf[25]][_0xfadf[24]][_0xfadf[23]]=_0xfadf[30]};};this[_0xfadf[122]]=function(_0xdd0dx1c,_0xdd0dxb,_0xdd0dx18){if(_0xdd0dx1c==mxEvent[_0xfadf[123]]){if(!this[_0xfadf[29]][_0xfadf[124]]()){_0xdd0dx1b=_0xdd0dxb[_0xfadf[125]]();_0xdd0dx1a=(_0xdd0dx1b!=null)?this[_0xfadf[52]](_0xdd0dx1b):this[_0xfadf[126]]();}else {_0xdd0dx1a=false;_0xdd0dx1b=null;}}else {if(_0xdd0dx1c==mxEvent[_0xfadf[127]]){if(_0xdd0dx1a&&!this[_0xfadf[128]]()){if(!this[_0xfadf[29]][_0xfadf[124]]()){var _0xdd0dx1d=mxEvent[_0xfadf[130]](_0xdd0dxb[_0xfadf[129]]());var _0xdd0dx1e=mxEvent[_0xfadf[131]](_0xdd0dxb[_0xfadf[129]]());this[_0xfadf[29]][_0xfadf[132]](_0xdd0dx1d+16,_0xdd0dx1e,_0xdd0dx1b,_0xdd0dxb[_0xfadf[129]]());};_0xdd0dx1a=false;_0xdd0dx1b=null;_0xdd0dxb[_0xfadf[133]]();return ;};_0xdd0dx1a=false;_0xdd0dx1b=null;}};mxGraph[_0xfadf[16]][_0xfadf[122]][_0xfadf[15]](this,arguments);if(_0xdd0dx1c==mxEvent[_0xfadf[134]]&&_0xdd0dxb[_0xfadf[135]]()){_0xdd0dx1a=false;_0xdd0dx1b=null;};};};(function(){mxVertexHandler[_0xfadf[16]][_0xfadf[136]]=true;mxText[_0xfadf[16]][_0xfadf[137]]=5;mxText[_0xfadf[16]][_0xfadf[138]]=1;if(touchStyle){mxConstants[_0xfadf[139]]=16;mxConstants[_0xfadf[140]]=7;if(mxClient[_0xfadf[141]]){mxVertexHandler[_0xfadf[16]][_0xfadf[142]]=4;mxEdgeHandler[_0xfadf[16]][_0xfadf[142]]=6;Graph[_0xfadf[16]][_0xfadf[142]]=14;Graph[_0xfadf[16]][_0xfadf[143]]=20;mxPanningHandler[_0xfadf[16]][_0xfadf[144]]=false;mxPanningHandler[_0xfadf[16]][_0xfadf[145]]=true;mxPanningHandler[_0xfadf[16]][_0xfadf[146]]=function(_0xdd0dxb){var _0xdd0dx19=_0xdd0dxb[_0xfadf[129]]();return (this[_0xfadf[145]]&&(this[_0xfadf[147]]||_0xdd0dxb[_0xfadf[32]]()==null))||(mxEvent[_0xfadf[148]](_0xdd0dx19)&&mxEvent[_0xfadf[149]](_0xdd0dx19))||(this[_0xfadf[150]]&&mxEvent[_0xfadf[151]](_0xdd0dx19));};};var _0xdd0dx1f=mxGraphHandler[_0xfadf[16]][_0xfadf[152]];mxGraphHandler[_0xfadf[16]][_0xfadf[152]]=function(_0xdd0dx18,_0xdd0dxb){_0xdd0dx1f[_0xfadf[15]](this,arguments);if(this[_0xfadf[46]][_0xfadf[52]](_0xdd0dxb[_0xfadf[125]]())&&this[_0xfadf[46]][_0xfadf[53]]()>1){this[_0xfadf[153]]=false};};Graph[_0xfadf[16]][_0xfadf[154]]=function(_0xdd0dx1){this[_0xfadf[155]]= new mxTooltipHandler(this);this[_0xfadf[155]][_0xfadf[156]](false);this[_0xfadf[157]]= new mxSelectionCellsHandler(this);this[_0xfadf[29]]= new mxPanningHandler(this);this[_0xfadf[29]][_0xfadf[158]]=false;this[_0xfadf[11]]= new mxConnectionHandler(this);this[_0xfadf[11]][_0xfadf[156]](false);this[_0xfadf[159]]= new mxGraphHandler(this);};mxConnectionHandler[_0xfadf[16]][_0xfadf[160]]=function(_0xdd0dxe,_0xdd0dx20){if(touchStyle&&_0xdd0dx20!=null){this[_0xfadf[46]][_0xfadf[161]](_0xdd0dx20)}else {this[_0xfadf[46]][_0xfadf[161]](_0xdd0dxe)}};var _0xdd0dx21=mxGraph[_0xfadf[16]][_0xfadf[162]];Graph[_0xfadf[16]][_0xfadf[162]]=function(_0xdd0dx19,_0xdd0dx6){if(_0xdd0dx6==null){var _0xdd0dx22=mxUtils[_0xfadf[163]](this[_0xfadf[25]],mxEvent[_0xfadf[130]](_0xdd0dx19),mxEvent[_0xfadf[131]](_0xdd0dx19));_0xdd0dx6=this[_0xfadf[118]](_0xdd0dx22[_0xfadf[164]],_0xdd0dx22[_0xfadf[165]]);};_0xdd0dx21[_0xfadf[0]](this,_0xdd0dx19,_0xdd0dx6);};var _0xdd0dx23= new mxImage(IMAGE_PATH+_0xfadf[166],16,16);mxVertexHandler[_0xfadf[16]][_0xfadf[167]]=_0xdd0dx23;mxEdgeHandler[_0xfadf[16]][_0xfadf[167]]=_0xdd0dx23;mxOutline[_0xfadf[16]][_0xfadf[168]]=_0xdd0dx23; new Image()[_0xfadf[169]]=_0xdd0dx23[_0xfadf[169]];var _0xdd0dx24=IMAGE_PATH+_0xfadf[170];var _0xdd0dx25=mxVertexHandler[_0xfadf[16]][_0xfadf[171]];mxVertexHandler[_0xfadf[16]][_0xfadf[171]]=function(){_0xdd0dx25[_0xfadf[15]](this,arguments);if(showConnectorImg&&this[_0xfadf[46]][_0xfadf[11]][_0xfadf[111]]()&&this[_0xfadf[46]][_0xfadf[172]](this[_0xfadf[119]][_0xfadf[51]])&&!this[_0xfadf[46]][_0xfadf[84]](this[_0xfadf[119]][_0xfadf[51]])&&this[_0xfadf[46]][_0xfadf[53]]()==1){this[_0xfadf[173]]=mxUtils[_0xfadf[174]](_0xdd0dx24);this[_0xfadf[173]][_0xfadf[24]][_0xfadf[23]]=_0xfadf[26];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[175]]=_0xfadf[176];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[177]]=_0xfadf[176];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[178]]=_0xfadf[179];if(!mxClient[_0xfadf[141]]){this[_0xfadf[173]][_0xfadf[100]](_0xfadf[180],mxResources[_0xfadf[93]](_0xfadf[17]));mxEvent[_0xfadf[181]](this[_0xfadf[173]],this[_0xfadf[46]],this[_0xfadf[119]]);};this[_0xfadf[173]][_0xfadf[24]][_0xfadf[182]]=_0xfadf[183];mxEvent[_0xfadf[185]](this[_0xfadf[173]],mxUtils[_0xfadf[27]](this,function(_0xdd0dx19){this[_0xfadf[46]][_0xfadf[29]][_0xfadf[114]]();var _0xdd0dx22=mxUtils[_0xfadf[163]](this[_0xfadf[46]][_0xfadf[25]],mxEvent[_0xfadf[130]](_0xdd0dx19),mxEvent[_0xfadf[131]](_0xdd0dx19));this[_0xfadf[46]][_0xfadf[11]][_0xfadf[49]](this[_0xfadf[119]],_0xdd0dx22[_0xfadf[164]],_0xdd0dx22[_0xfadf[165]]);this[_0xfadf[46]][_0xfadf[184]]=true;mxEvent[_0xfadf[133]](_0xdd0dx19);}));this[_0xfadf[46]][_0xfadf[25]][_0xfadf[186]](this[_0xfadf[173]]);};this[_0xfadf[187]]();};var _0xdd0dx26=mxVertexHandler[_0xfadf[16]][_0xfadf[188]];mxVertexHandler[_0xfadf[16]][_0xfadf[188]]=function(){_0xdd0dx26[_0xfadf[15]](this);this[_0xfadf[187]]();};mxVertexHandler[_0xfadf[16]][_0xfadf[187]]=function(){if(this[_0xfadf[119]]!=null&&this[_0xfadf[173]]!=null){if(mxVertexHandler[_0xfadf[16]][_0xfadf[189]]){this[_0xfadf[173]][_0xfadf[24]][_0xfadf[190]]=(this[_0xfadf[119]][_0xfadf[164]]+this[_0xfadf[119]][_0xfadf[175]]-this[_0xfadf[173]][_0xfadf[191]]/2)+_0xfadf[192];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[193]]=(this[_0xfadf[119]][_0xfadf[165]]-this[_0xfadf[173]][_0xfadf[194]]/2)+_0xfadf[192];}else {this[_0xfadf[173]][_0xfadf[24]][_0xfadf[190]]=(this[_0xfadf[119]][_0xfadf[164]]+this[_0xfadf[119]][_0xfadf[175]]+mxConstants[_0xfadf[139]]/2+4)+_0xfadf[192];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[193]]=(this[_0xfadf[119]][_0xfadf[165]]+(this[_0xfadf[119]][_0xfadf[177]]-this[_0xfadf[173]][_0xfadf[194]])/2)+_0xfadf[192];}}};var _0xdd0dx27=mxVertexHandler[_0xfadf[16]][_0xfadf[195]];mxVertexHandler[_0xfadf[16]][_0xfadf[195]]=function(_0xdd0dx18,_0xdd0dxb){_0xdd0dx27[_0xfadf[15]](this,arguments);if(this[_0xfadf[173]]!=null){this[_0xfadf[173]][_0xfadf[197]][_0xfadf[196]](this[_0xfadf[173]]);this[_0xfadf[173]]=null;};}; new Image()[_0xfadf[169]]=_0xdd0dx24;}else {var _0xdd0dx28= new mxImage(IMAGE_PATH+_0xfadf[198],15,15);mxConnectionHandler[_0xfadf[16]][_0xfadf[199]]=_0xdd0dx28; new Image()[_0xfadf[169]]=_0xdd0dx28[_0xfadf[169]];if(urlParams[_0xfadf[17]]==_0xfadf[18]){var _0xdd0dx28= new mxImage(IMAGE_PATH+_0xfadf[198],15,15);var _0xdd0dx25=mxVertexHandler[_0xfadf[16]][_0xfadf[171]];mxVertexHandler[_0xfadf[16]][_0xfadf[171]]=function(){_0xdd0dx25[_0xfadf[15]](this,arguments);if(showConnectorImg&&this[_0xfadf[46]][_0xfadf[11]][_0xfadf[111]]()&&this[_0xfadf[46]][_0xfadf[172]](this[_0xfadf[119]][_0xfadf[51]])&&!this[_0xfadf[46]][_0xfadf[84]](this[_0xfadf[119]][_0xfadf[51]])&&this[_0xfadf[46]][_0xfadf[53]]()==1){if(mxClient[_0xfadf[200]]&&!mxClient[_0xfadf[201]]){this[_0xfadf[173]]=document[_0xfadf[104]](_0xfadf[202]);this[_0xfadf[173]][_0xfadf[24]][_0xfadf[203]]=_0xfadf[204]+_0xdd0dx28[_0xfadf[169]]+_0xfadf[205];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[206]]=_0xfadf[207];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[208]]=_0xfadf[209];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[175]]=(_0xdd0dx28[_0xfadf[175]]+4)+_0xfadf[192];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[177]]=(_0xdd0dx28[_0xfadf[177]]+4)+_0xfadf[192];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[210]]=(mxClient[_0xfadf[211]])?_0xfadf[212]:_0xfadf[213];}else {this[_0xfadf[173]]=mxUtils[_0xfadf[174]](_0xdd0dx28[_0xfadf[169]]);this[_0xfadf[173]][_0xfadf[24]][_0xfadf[175]]=_0xdd0dx28[_0xfadf[175]]+_0xfadf[192];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[177]]=_0xdd0dx28[_0xfadf[177]]+_0xfadf[192];};this[_0xfadf[173]][_0xfadf[24]][_0xfadf[23]]=_0xfadf[26];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[178]]=_0xfadf[179];this[_0xfadf[173]][_0xfadf[100]](_0xfadf[180],mxResources[_0xfadf[93]](_0xfadf[17]));mxEvent[_0xfadf[181]](this[_0xfadf[173]],this[_0xfadf[46]],this[_0xfadf[119]]);this[_0xfadf[173]][_0xfadf[24]][_0xfadf[182]]=_0xfadf[183];mxEvent[_0xfadf[28]](this[_0xfadf[173]],_0xfadf[214],mxUtils[_0xfadf[27]](this,function(_0xdd0dx19){this[_0xfadf[46]][_0xfadf[29]][_0xfadf[114]]();var _0xdd0dx22=mxUtils[_0xfadf[163]](this[_0xfadf[46]][_0xfadf[25]],mxEvent[_0xfadf[130]](_0xdd0dx19),mxEvent[_0xfadf[131]](_0xdd0dx19));this[_0xfadf[46]][_0xfadf[11]][_0xfadf[49]](this[_0xfadf[119]],_0xdd0dx22[_0xfadf[164]],_0xdd0dx22[_0xfadf[165]]);this[_0xfadf[46]][_0xfadf[184]]=true;mxEvent[_0xfadf[133]](_0xdd0dx19);}));this[_0xfadf[46]][_0xfadf[25]][_0xfadf[186]](this[_0xfadf[173]]);};this[_0xfadf[187]]();};var _0xdd0dx26=mxVertexHandler[_0xfadf[16]][_0xfadf[188]];mxVertexHandler[_0xfadf[16]][_0xfadf[188]]=function(){_0xdd0dx26[_0xfadf[15]](this);this[_0xfadf[187]]();};mxVertexHandler[_0xfadf[16]][_0xfadf[187]]=function(){if(this[_0xfadf[119]]!=null&&this[_0xfadf[173]]!=null){if(mxVertexHandler[_0xfadf[16]][_0xfadf[189]]){this[_0xfadf[173]][_0xfadf[24]][_0xfadf[190]]=(this[_0xfadf[119]][_0xfadf[164]]+this[_0xfadf[119]][_0xfadf[175]]-this[_0xfadf[173]][_0xfadf[191]]/2)+_0xfadf[192];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[193]]=(this[_0xfadf[119]][_0xfadf[165]]-this[_0xfadf[173]][_0xfadf[194]]/2)+_0xfadf[192];}else {this[_0xfadf[173]][_0xfadf[24]][_0xfadf[190]]=(this[_0xfadf[119]][_0xfadf[164]]+this[_0xfadf[119]][_0xfadf[175]]+mxConstants[_0xfadf[139]]/2+2)+_0xfadf[192];this[_0xfadf[173]][_0xfadf[24]][_0xfadf[193]]=(this[_0xfadf[119]][_0xfadf[165]]+(this[_0xfadf[119]][_0xfadf[177]]-this[_0xfadf[173]][_0xfadf[194]])/2)+_0xfadf[192];}}};var _0xdd0dx27=mxVertexHandler[_0xfadf[16]][_0xfadf[195]];mxVertexHandler[_0xfadf[16]][_0xfadf[195]]=function(_0xdd0dx18,_0xdd0dxb){_0xdd0dx27[_0xfadf[15]](this,arguments);if(this[_0xfadf[173]]!=null){this[_0xfadf[173]][_0xfadf[197]][_0xfadf[196]](this[_0xfadf[173]]);this[_0xfadf[173]]=null;};};};};})();
\ No newline at end of file
+var _0x16bb=["\x63\x61\x6C\x6C","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x61\x70\x70\x6C\x79","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x32","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6C\x6F\x61\x64\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x63\x75\x72\x73\x6F\x72","\x73\x74\x79\x6C\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x76\x69\x65\x77","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x68\x74\x6D\x6C","\x31","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x77\x72\x61\x70","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x61\x63\x74\x69\x76\x65","\x67\x72\x61\x70\x68","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x73\x74\x61\x72\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x6E\x69\x74\x54\x6F\x75\x63\x68","\x65\x78\x74\x65\x6E\x64","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x2F\x64\x65\x66\x61\x75\x6C\x74\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x64\x65\x63\x6F\x64\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x45\x4C\x42\x4F\x57\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x72\x6F\x75\x70","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","","\x69\x73\x56\x65\x72\x74\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x5F","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x67\x65\x74","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x6F\x62\x6A\x65\x63\x74","\x6C\x61\x62\x65\x6C","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x55\x73\x65\x72\x4F\x62\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6E\x6B","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x61\x72\x6B\x65\x72","\x66\x69\x72\x73\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x73\x74\x61\x74\x65","\x73\x68\x61\x70\x65","\x6E\x6F\x64\x65","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x78","\x79","\x2F\x74\x6F\x75\x63\x68\x2D\x68\x61\x6E\x64\x6C\x65\x2E\x70\x6E\x67","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x72\x63","\x2F\x74\x6F\x75\x63\x68\x2D\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x69\x6E\x69\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x49\x6D\x67","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x32\x39\x70\x78","\x68\x65\x69\x67\x68\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x74\x69\x74\x6C\x65","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x70\x61\x64\x64\x69\x6E\x67","\x32\x70\x78","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x65\x64\x72\x61\x77\x54\x6F\x6F\x6C\x73","\x72\x65\x64\x72\x61\x77","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x78","\x74\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x2F\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x49\x53\x5F\x49\x45","\x49\x53\x5F\x53\x56\x47","\x64\x69\x76","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x65\x6E\x74\x65\x72","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E"];Graph=function(_0xf289x1,_0xf289x2,_0xf289x3,_0xf289x4){mxGraph[_0x16bb[0]](this,_0xf289x1,_0xf289x2,_0xf289x3,_0xf289x4);this[_0x16bb[1]](true);this[_0x16bb[2]](false);this[_0x16bb[3]](true);this[_0x16bb[4]](!mxClient.IS_TOUCH);this[_0x16bb[5]](false);this[_0x16bb[6]](false);this[_0x16bb[7]]=true;this[_0x16bb[8]]=false;this[_0x16bb[9]]=false;this[_0x16bb[11]][_0x16bb[10]]=true;this[_0x16bb[12]](false);this[_0x16bb[11]][_0x16bb[13]](false);this[_0x16bb[11]][_0x16bb[14]]=function(){return mxConnectionHandler[_0x16bb[16]][_0x16bb[14]][_0x16bb[15]](this,arguments)&&urlParams[_0x16bb[17]]!=_0x16bb[18]};this[_0x16bb[19]]=_0x16bb[20];if(_0xf289x4==null){this[_0x16bb[21]]()};var _0xf289x5= new mxRubberband(this);this[_0x16bb[22]]=function(){return _0xf289x5};this[_0x16bb[29]][_0x16bb[28]](mxEvent.PAN_START,mxUtils[_0x16bb[27]](this,function(){this[_0x16bb[25]][_0x16bb[24]][_0x16bb[23]]=_0x16bb[26]}));this[_0x16bb[29]][_0x16bb[28]](mxEvent.PAN_END,mxUtils[_0x16bb[27]](this,function(){this[_0x16bb[25]][_0x16bb[24]][_0x16bb[23]]=_0x16bb[30]}));this[_0x16bb[31]]=function(_0xf289x6){var _0xf289x7=this[_0x16bb[33]][_0x16bb[32]](_0xf289x6);var _0xf289x8=(_0xf289x7!=null)?_0xf289x7[_0x16bb[24]]:this[_0x16bb[34]](_0xf289x6);return _0xf289x8[_0x16bb[35]]==_0x16bb[36]||_0xf289x8[_0x16bb[37]]==_0x16bb[38];};this[_0x16bb[40]][_0x16bb[39]]=function(_0xf289x7){var _0xf289x9=mxCellRenderer[_0x16bb[16]][_0x16bb[39]][_0x16bb[15]](this,arguments);if(_0xf289x7[_0x16bb[24]][_0x16bb[37]]==_0x16bb[38]&&_0xf289x7[_0x16bb[24]][_0x16bb[35]]!=1){_0xf289x9=mxUtils[_0x16bb[41]](_0xf289x9,false)};return _0xf289x9;};this[_0x16bb[42]]=function(_0xf289x6){return false};this[_0x16bb[11]][_0x16bb[43]]=16;var _0xf289xa=this[_0x16bb[11]][_0x16bb[44]];this[_0x16bb[11]][_0x16bb[44]]=function(_0xf289xb,_0xf289x7){if(_0xf289x7==null){if(!this[_0x16bb[46]][_0x16bb[29]][_0x16bb[45]]){_0xf289x5[_0x16bb[49]](_0xf289xb[_0x16bb[47]](),_0xf289xb[_0x16bb[48]]());this[_0x16bb[46]][_0x16bb[29]][_0x16bb[50]]=false;}}else {if(tapAndHoldStartsConnection){_0xf289xa[_0x16bb[15]](this,arguments)}else {if(this[_0x16bb[46]][_0x16bb[52]](_0xf289x7[_0x16bb[51]])&&this[_0x16bb[46]][_0x16bb[53]]()>1){this[_0x16bb[46]][_0x16bb[54]](_0xf289x7[_0x16bb[51]])}}}};if(touchStyle){this[_0x16bb[55]]()};};mxUtils[_0x16bb[56]](Graph,mxGraph);Graph[_0x16bb[16]][_0x16bb[57]]=null;Graph[_0x16bb[16]][_0x16bb[58]]=null;Graph[_0x16bb[16]][_0x16bb[21]]=function(){var _0xf289xc=mxUtils[_0x16bb[61]](STYLE_PATH+_0x16bb[60])[_0x16bb[59]]();var _0xf289xd= new mxCodec(_0xf289xc[_0x16bb[62]]);_0xf289xd[_0x16bb[64]](_0xf289xc,this[_0x16bb[63]]());};Graph[_0x16bb[16]][_0x16bb[65]]=function(_0xf289xe){if(_0xf289xe!=null){var _0xf289x7=this[_0x16bb[33]][_0x16bb[32]](_0xf289xe);var _0xf289x8=(_0xf289x7!=null)?_0xf289x7[_0x16bb[24]]:this[_0x16bb[34]](_0xf289xe);if(_0xf289x8!=null){var _0xf289xf=mxUtils[_0x16bb[66]](_0xf289x8,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL);var _0xf289x10=(_0xf289xf==mxConstants[_0x16bb[67]])?mxConstants[_0x16bb[68]]:mxConstants[_0x16bb[67]];this[_0x16bb[69]](mxConstants.STYLE_ELBOW,_0xf289x10,[_0xf289xe]);};}};Graph[_0x16bb[16]][_0x16bb[70]]=function(_0xf289x6){if(_0xf289x6!=null&&this[_0x16bb[72]]()[_0x16bb[71]](_0xf289x6)){var _0xf289x11=this[_0x16bb[72]]()[_0x16bb[73]]([_0xf289x6])[0];if(_0xf289x11[_0x16bb[74]]!=null){_0xf289x11[_0x16bb[74]][_0x16bb[75]]=null};var _0xf289x8=_0xf289x11[_0x16bb[76]]();_0xf289x8=mxUtils[_0x16bb[77]](_0xf289x8,mxConstants.STYLE_ENTRY_X,null);_0xf289x8=mxUtils[_0x16bb[77]](_0xf289x8,mxConstants.STYLE_ENTRY_Y,null);_0xf289x8=mxUtils[_0x16bb[77]](_0xf289x8,mxConstants.STYLE_EXIT_X,null);_0xf289x8=mxUtils[_0x16bb[77]](_0xf289x8,mxConstants.STYLE_EXIT_Y,null);_0xf289x11[_0x16bb[77]](_0xf289x8);this[_0x16bb[11]][_0x16bb[78]]=function(_0xf289xb){return this[_0x16bb[46]][_0x16bb[33]][_0x16bb[79]](_0xf289x11)};this[_0x16bb[11]][_0x16bb[80]]=function(){return this[_0x16bb[46]][_0x16bb[73]]([_0xf289x11])[0]};}};Graph[_0x16bb[16]][_0x16bb[81]]=function(_0xf289x6){return this[_0x16bb[82]]&&this[_0x16bb[83]](_0xf289x6)};Graph[_0x16bb[16]][_0x16bb[84]]=function(_0xf289x6){return this[_0x16bb[83]](_0xf289x6)};Graph[_0x16bb[16]][_0x16bb[85]]=function(){var _0xf289x12=mxGraph[_0x16bb[16]][_0x16bb[85]][_0x16bb[15]](this,arguments);_0xf289x12[_0x16bb[77]](_0x16bb[86]);return _0xf289x12;};Graph[_0x16bb[16]][_0x16bb[87]]=function(_0xf289x6){var _0xf289x13=_0x16bb[88];if(this[_0x16bb[72]]()[_0x16bb[89]](_0xf289x6)){_0xf289x13+=mxResources[_0x16bb[93]](_0x16bb[90]+_0xf289x6[_0x16bb[92]][_0x16bb[91]])}else {if(this[_0x16bb[72]]()[_0x16bb[71]](_0xf289x6)){_0xf289x13=mxGraph[_0x16bb[16]][_0x16bb[87]][_0x16bb[15]](this,arguments)}};return _0xf289x13;};Graph[_0x16bb[16]][_0x16bb[94]]=function(_0xf289x6){if(_0xf289x6[_0x16bb[92]]!=null&& typeof (_0xf289x6[_0x16bb[92]])==_0x16bb[95]){return _0xf289x6[_0x16bb[92]][_0x16bb[97]](_0x16bb[96])};return mxGraph[_0x16bb[16]][_0x16bb[94]][_0x16bb[15]](this,arguments);};Graph[_0x16bb[16]][_0x16bb[98]]=function(_0xf289x6,_0xf289x10,_0xf289x14){if(_0xf289x6[_0x16bb[92]]!=null&& typeof (_0xf289x6[_0x16bb[92]])==_0x16bb[95]){var _0xf289x15=_0xf289x6[_0x16bb[92]][_0x16bb[99]](true);_0xf289x15[_0x16bb[100]](_0x16bb[96],_0xf289x10);_0xf289x10=_0xf289x15;};mxGraph[_0x16bb[16]][_0x16bb[98]][_0x16bb[15]](this,arguments);};Graph[_0x16bb[16]][_0x16bb[101]]=function(_0xf289x6,_0xf289x16){var _0xf289x10=null;if(_0xf289x6[_0x16bb[92]]!=null&& typeof (_0xf289x6[_0x16bb[92]])==_0x16bb[95]){_0xf289x10=_0xf289x6[_0x16bb[92]][_0x16bb[99]](true)}else {var _0xf289x17=mxUtils[_0x16bb[102]]();_0xf289x10=_0xf289x17[_0x16bb[104]](_0x16bb[103]);_0xf289x10[_0x16bb[100]](_0x16bb[96],_0xf289x6[_0x16bb[92]]);};if(_0xf289x16!=null&&_0xf289x16[_0x16bb[105]]>0){_0xf289x10[_0x16bb[100]](_0x16bb[106],_0xf289x16)}else {_0xf289x10[_0x16bb[107]](_0x16bb[106])};this[_0x16bb[109]][_0x16bb[108]](_0xf289x6,_0xf289x10);};Graph[_0x16bb[16]][_0x16bb[110]]=function(_0xf289x6){if(_0xf289x6[_0x16bb[92]]!=null&& typeof (_0xf289x6[_0x16bb[92]])==_0x16bb[95]){return _0xf289x6[_0x16bb[92]][_0x16bb[97]](_0x16bb[106])};return null;};Graph[_0x16bb[16]][_0x16bb[55]]=function(){this[_0x16bb[11]][_0x16bb[112]][_0x16bb[111]]=function(){return this[_0x16bb[46]][_0x16bb[11]][_0x16bb[113]]!=null};this[_0x16bb[28]](mxEvent.START_EDITING,function(_0xf289x18,_0xf289x19){this[_0x16bb[29]][_0x16bb[114]]()});var _0xf289x1a=false;var _0xf289x1b=null;this[_0x16bb[115]]=function(_0xf289xb){mxGraph[_0x16bb[16]][_0x16bb[115]][_0x16bb[15]](this,arguments);if(_0xf289xb[_0x16bb[32]]()==null){var _0xf289x6=this[_0x16bb[118]](_0xf289xb[_0x16bb[116]],_0xf289xb[_0x16bb[117]]);if(this[_0x16bb[72]]()[_0x16bb[71]](_0xf289x6)){_0xf289xb[_0x16bb[119]]=this[_0x16bb[33]][_0x16bb[32]](_0xf289x6);if(_0xf289xb[_0x16bb[119]]!=null&&_0xf289xb[_0x16bb[119]][_0x16bb[120]]!=null){this[_0x16bb[25]][_0x16bb[24]][_0x16bb[23]]=_0xf289xb[_0x16bb[119]][_0x16bb[120]][_0x16bb[121]][_0x16bb[24]][_0x16bb[23]]};};};if(_0xf289xb[_0x16bb[32]]()==null){this[_0x16bb[25]][_0x16bb[24]][_0x16bb[23]]=_0x16bb[30]};};this[_0x16bb[122]]=function(_0xf289x1c,_0xf289xb,_0xf289x18){if(_0xf289x1c==mxEvent[_0x16bb[123]]){if(!this[_0x16bb[29]][_0x16bb[124]]()){_0xf289x1b=_0xf289xb[_0x16bb[125]]();_0xf289x1a=(_0xf289x1b!=null)?this[_0x16bb[52]](_0xf289x1b):this[_0x16bb[126]]();}else {_0xf289x1a=false;_0xf289x1b=null;}}else {if(_0xf289x1c==mxEvent[_0x16bb[127]]){if(_0xf289x1a&&!this[_0x16bb[128]]()){if(!this[_0x16bb[29]][_0x16bb[124]]()){var _0xf289x1d=mxEvent[_0x16bb[130]](_0xf289xb[_0x16bb[129]]());var _0xf289x1e=mxEvent[_0x16bb[131]](_0xf289xb[_0x16bb[129]]());this[_0x16bb[29]][_0x16bb[132]](_0xf289x1d+16,_0xf289x1e,_0xf289x1b,_0xf289xb[_0x16bb[129]]());};_0xf289x1a=false;_0xf289x1b=null;_0xf289xb[_0x16bb[133]]();return ;};_0xf289x1a=false;_0xf289x1b=null;}};mxGraph[_0x16bb[16]][_0x16bb[122]][_0x16bb[15]](this,arguments);if(_0xf289x1c==mxEvent[_0x16bb[134]]&&_0xf289xb[_0x16bb[135]]()){_0xf289x1a=false;_0xf289x1b=null;};};};(function(){mxVertexHandler[_0x16bb[16]][_0x16bb[136]]=true;mxText[_0x16bb[16]][_0x16bb[137]]=5;mxText[_0x16bb[16]][_0x16bb[138]]=1;if(touchStyle){mxConstants[_0x16bb[139]]=16;mxConstants[_0x16bb[140]]=7;if(mxClient[_0x16bb[141]]){mxVertexHandler[_0x16bb[16]][_0x16bb[142]]=4;mxEdgeHandler[_0x16bb[16]][_0x16bb[142]]=6;Graph[_0x16bb[16]][_0x16bb[142]]=14;Graph[_0x16bb[16]][_0x16bb[143]]=20;mxPanningHandler[_0x16bb[16]][_0x16bb[144]]=false;mxPanningHandler[_0x16bb[16]][_0x16bb[145]]=true;mxPanningHandler[_0x16bb[16]][_0x16bb[146]]=function(_0xf289xb){var _0xf289x19=_0xf289xb[_0x16bb[129]]();return (this[_0x16bb[145]]&&(this[_0x16bb[147]]||_0xf289xb[_0x16bb[32]]()==null))||(mxEvent[_0x16bb[148]](_0xf289x19)&&mxEvent[_0x16bb[149]](_0xf289x19))||(this[_0x16bb[150]]&&mxEvent[_0x16bb[151]](_0xf289x19));};};var _0xf289x1f=mxGraphHandler[_0x16bb[16]][_0x16bb[152]];mxGraphHandler[_0x16bb[16]][_0x16bb[152]]=function(_0xf289x18,_0xf289xb){_0xf289x1f[_0x16bb[15]](this,arguments);if(this[_0x16bb[46]][_0x16bb[52]](_0xf289xb[_0x16bb[125]]())&&this[_0x16bb[46]][_0x16bb[53]]()>1){this[_0x16bb[153]]=false};};Graph[_0x16bb[16]][_0x16bb[154]]=function(_0xf289x1){this[_0x16bb[155]]= new mxTooltipHandler(this);this[_0x16bb[155]][_0x16bb[156]](false);this[_0x16bb[157]]= new mxSelectionCellsHandler(this);this[_0x16bb[29]]= new mxPanningHandler(this);this[_0x16bb[29]][_0x16bb[158]]=false;this[_0x16bb[11]]= new mxConnectionHandler(this);this[_0x16bb[11]][_0x16bb[156]](false);this[_0x16bb[159]]= new mxGraphHandler(this);};mxConnectionHandler[_0x16bb[16]][_0x16bb[160]]=function(_0xf289xe,_0xf289x20){if(touchStyle&&_0xf289x20!=null){this[_0x16bb[46]][_0x16bb[161]](_0xf289x20)}else {this[_0x16bb[46]][_0x16bb[161]](_0xf289xe)}};var _0xf289x21=mxGraph[_0x16bb[16]][_0x16bb[162]];Graph[_0x16bb[16]][_0x16bb[162]]=function(_0xf289x19,_0xf289x6){if(_0xf289x6==null){var _0xf289x22=mxUtils[_0x16bb[163]](this[_0x16bb[25]],mxEvent[_0x16bb[130]](_0xf289x19),mxEvent[_0x16bb[131]](_0xf289x19));_0xf289x6=this[_0x16bb[118]](_0xf289x22[_0x16bb[164]],_0xf289x22[_0x16bb[165]]);};_0xf289x21[_0x16bb[0]](this,_0xf289x19,_0xf289x6);};var _0xf289x23= new mxImage(IMAGE_PATH+_0x16bb[166],16,16);mxVertexHandler[_0x16bb[16]][_0x16bb[167]]=_0xf289x23;mxEdgeHandler[_0x16bb[16]][_0x16bb[167]]=_0xf289x23;mxOutline[_0x16bb[16]][_0x16bb[168]]=_0xf289x23; new Image()[_0x16bb[169]]=_0xf289x23[_0x16bb[169]];var _0xf289x24=IMAGE_PATH+_0x16bb[170];var _0xf289x25=mxVertexHandler[_0x16bb[16]][_0x16bb[171]];mxVertexHandler[_0x16bb[16]][_0x16bb[171]]=function(){_0xf289x25[_0x16bb[15]](this,arguments);if(showConnectorImg&&this[_0x16bb[46]][_0x16bb[11]][_0x16bb[111]]()&&this[_0x16bb[46]][_0x16bb[172]](this[_0x16bb[119]][_0x16bb[51]])&&!this[_0x16bb[46]][_0x16bb[84]](this[_0x16bb[119]][_0x16bb[51]])&&this[_0x16bb[46]][_0x16bb[53]]()==1){this[_0x16bb[173]]=mxUtils[_0x16bb[174]](_0xf289x24);this[_0x16bb[173]][_0x16bb[24]][_0x16bb[23]]=_0x16bb[26];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[175]]=_0x16bb[176];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[177]]=_0x16bb[176];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[178]]=_0x16bb[179];if(!mxClient[_0x16bb[141]]){this[_0x16bb[173]][_0x16bb[100]](_0x16bb[180],mxResources[_0x16bb[93]](_0x16bb[17]));mxEvent[_0x16bb[181]](this[_0x16bb[173]],this[_0x16bb[46]],this[_0x16bb[119]]);};this[_0x16bb[173]][_0x16bb[24]][_0x16bb[182]]=_0x16bb[183];mxEvent[_0x16bb[185]](this[_0x16bb[173]],mxUtils[_0x16bb[27]](this,function(_0xf289x19){this[_0x16bb[46]][_0x16bb[29]][_0x16bb[114]]();var _0xf289x22=mxUtils[_0x16bb[163]](this[_0x16bb[46]][_0x16bb[25]],mxEvent[_0x16bb[130]](_0xf289x19),mxEvent[_0x16bb[131]](_0xf289x19));this[_0x16bb[46]][_0x16bb[11]][_0x16bb[49]](this[_0x16bb[119]],_0xf289x22[_0x16bb[164]],_0xf289x22[_0x16bb[165]]);this[_0x16bb[46]][_0x16bb[184]]=true;mxEvent[_0x16bb[133]](_0xf289x19);}));this[_0x16bb[46]][_0x16bb[25]][_0x16bb[186]](this[_0x16bb[173]]);};this[_0x16bb[187]]();};var _0xf289x26=mxVertexHandler[_0x16bb[16]][_0x16bb[188]];mxVertexHandler[_0x16bb[16]][_0x16bb[188]]=function(){_0xf289x26[_0x16bb[15]](this);this[_0x16bb[187]]();};mxVertexHandler[_0x16bb[16]][_0x16bb[187]]=function(){if(this[_0x16bb[119]]!=null&&this[_0x16bb[173]]!=null){if(mxVertexHandler[_0x16bb[16]][_0x16bb[189]]){this[_0x16bb[173]][_0x16bb[24]][_0x16bb[190]]=(this[_0x16bb[119]][_0x16bb[164]]+this[_0x16bb[119]][_0x16bb[175]]-this[_0x16bb[173]][_0x16bb[191]]/2)+_0x16bb[192];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[193]]=(this[_0x16bb[119]][_0x16bb[165]]-this[_0x16bb[173]][_0x16bb[194]]/2)+_0x16bb[192];}else {this[_0x16bb[173]][_0x16bb[24]][_0x16bb[190]]=(this[_0x16bb[119]][_0x16bb[164]]+this[_0x16bb[119]][_0x16bb[175]]+mxConstants[_0x16bb[139]]/2+4)+_0x16bb[192];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[193]]=(this[_0x16bb[119]][_0x16bb[165]]+(this[_0x16bb[119]][_0x16bb[177]]-this[_0x16bb[173]][_0x16bb[194]])/2)+_0x16bb[192];}}};var _0xf289x27=mxVertexHandler[_0x16bb[16]][_0x16bb[195]];mxVertexHandler[_0x16bb[16]][_0x16bb[195]]=function(_0xf289x18,_0xf289xb){_0xf289x27[_0x16bb[15]](this,arguments);if(this[_0x16bb[173]]!=null){this[_0x16bb[173]][_0x16bb[197]][_0x16bb[196]](this[_0x16bb[173]]);this[_0x16bb[173]]=null;};}; new Image()[_0x16bb[169]]=_0xf289x24;}else {var _0xf289x28= new mxImage(IMAGE_PATH+_0x16bb[198],15,15);mxConnectionHandler[_0x16bb[16]][_0x16bb[199]]=_0xf289x28; new Image()[_0x16bb[169]]=_0xf289x28[_0x16bb[169]];if(urlParams[_0x16bb[17]]==_0x16bb[18]){var _0xf289x28= new mxImage(IMAGE_PATH+_0x16bb[198],15,15);var _0xf289x25=mxVertexHandler[_0x16bb[16]][_0x16bb[171]];mxVertexHandler[_0x16bb[16]][_0x16bb[171]]=function(){_0xf289x25[_0x16bb[15]](this,arguments);if(showConnectorImg&&this[_0x16bb[46]][_0x16bb[11]][_0x16bb[111]]()&&this[_0x16bb[46]][_0x16bb[172]](this[_0x16bb[119]][_0x16bb[51]])&&!this[_0x16bb[46]][_0x16bb[84]](this[_0x16bb[119]][_0x16bb[51]])&&this[_0x16bb[46]][_0x16bb[53]]()==1){if(mxClient[_0x16bb[200]]&&!mxClient[_0x16bb[201]]){this[_0x16bb[173]]=document[_0x16bb[104]](_0x16bb[202]);this[_0x16bb[173]][_0x16bb[24]][_0x16bb[203]]=_0x16bb[204]+_0xf289x28[_0x16bb[169]]+_0x16bb[205];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[206]]=_0x16bb[207];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[208]]=_0x16bb[209];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[175]]=(_0xf289x28[_0x16bb[175]]+4)+_0x16bb[192];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[177]]=(_0xf289x28[_0x16bb[177]]+4)+_0x16bb[192];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[210]]=(mxClient[_0x16bb[211]])?_0x16bb[212]:_0x16bb[213];}else {this[_0x16bb[173]]=mxUtils[_0x16bb[174]](_0xf289x28[_0x16bb[169]]);this[_0x16bb[173]][_0x16bb[24]][_0x16bb[175]]=_0xf289x28[_0x16bb[175]]+_0x16bb[192];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[177]]=_0xf289x28[_0x16bb[177]]+_0x16bb[192];};this[_0x16bb[173]][_0x16bb[24]][_0x16bb[23]]=_0x16bb[26];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[178]]=_0x16bb[179];this[_0x16bb[173]][_0x16bb[100]](_0x16bb[180],mxResources[_0x16bb[93]](_0x16bb[17]));mxEvent[_0x16bb[181]](this[_0x16bb[173]],this[_0x16bb[46]],this[_0x16bb[119]]);this[_0x16bb[173]][_0x16bb[24]][_0x16bb[182]]=_0x16bb[183];mxEvent[_0x16bb[28]](this[_0x16bb[173]],_0x16bb[214],mxUtils[_0x16bb[27]](this,function(_0xf289x19){this[_0x16bb[46]][_0x16bb[29]][_0x16bb[114]]();var _0xf289x22=mxUtils[_0x16bb[163]](this[_0x16bb[46]][_0x16bb[25]],mxEvent[_0x16bb[130]](_0xf289x19),mxEvent[_0x16bb[131]](_0xf289x19));this[_0x16bb[46]][_0x16bb[11]][_0x16bb[49]](this[_0x16bb[119]],_0xf289x22[_0x16bb[164]],_0xf289x22[_0x16bb[165]]);this[_0x16bb[46]][_0x16bb[184]]=true;mxEvent[_0x16bb[133]](_0xf289x19);}));this[_0x16bb[46]][_0x16bb[25]][_0x16bb[186]](this[_0x16bb[173]]);};this[_0x16bb[187]]();};var _0xf289x26=mxVertexHandler[_0x16bb[16]][_0x16bb[188]];mxVertexHandler[_0x16bb[16]][_0x16bb[188]]=function(){_0xf289x26[_0x16bb[15]](this);this[_0x16bb[187]]();};mxVertexHandler[_0x16bb[16]][_0x16bb[187]]=function(){if(this[_0x16bb[119]]!=null&&this[_0x16bb[173]]!=null){if(mxVertexHandler[_0x16bb[16]][_0x16bb[189]]){this[_0x16bb[173]][_0x16bb[24]][_0x16bb[190]]=(this[_0x16bb[119]][_0x16bb[164]]+this[_0x16bb[119]][_0x16bb[175]]-this[_0x16bb[173]][_0x16bb[191]]/2)+_0x16bb[192];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[193]]=(this[_0x16bb[119]][_0x16bb[165]]-this[_0x16bb[173]][_0x16bb[194]]/2)+_0x16bb[192];}else {this[_0x16bb[173]][_0x16bb[24]][_0x16bb[190]]=(this[_0x16bb[119]][_0x16bb[164]]+this[_0x16bb[119]][_0x16bb[175]]+mxConstants[_0x16bb[139]]/2+2)+_0x16bb[192];this[_0x16bb[173]][_0x16bb[24]][_0x16bb[193]]=(this[_0x16bb[119]][_0x16bb[165]]+(this[_0x16bb[119]][_0x16bb[177]]-this[_0x16bb[173]][_0x16bb[194]])/2)+_0x16bb[192];}}};var _0xf289x27=mxVertexHandler[_0x16bb[16]][_0x16bb[195]];mxVertexHandler[_0x16bb[16]][_0x16bb[195]]=function(_0xf289x18,_0xf289xb){_0xf289x27[_0x16bb[15]](this,arguments);if(this[_0x16bb[173]]!=null){this[_0x16bb[173]][_0x16bb[197]][_0x16bb[196]](this[_0x16bb[173]]);this[_0x16bb[173]]=null;};};};};})();
\ No newline at end of file
index 8ad4a86..86a7e56 100644 (file)
@@ -1 +1 @@
-var _0xdcd6=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x6D\x65\x6E\x75\x73","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x56\x65\x72\x64\x61\x6E\x61","\x54\x69\x6D\x65\x73\x20\x4E\x65\x77\x20\x52\x6F\x6D\x61\x6E","\x47\x61\x72\x61\x6D\x6F\x6E\x64","\x43\x6F\x6D\x69\x63\x20\x53\x61\x6E\x73\x20\x4D\x53","\x43\x6F\x75\x72\x69\x65\x72\x20\x4E\x65\x77","\x47\x65\x6F\x72\x67\x69\x61","\x4C\x75\x63\x69\x64\x61\x20\x43\x6F\x6E\x73\x6F\x6C\x65","\x54\x61\x68\x6F\x6D\x61","\x6C\x65\x6E\x67\x74\x68","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x73\x74\x79\x6C\x65\x43\x68\x61\x6E\x67\x65","\x73\x74\x79\x6C\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74","","\x70\x72\x6F\x6D\x70\x74\x43\x68\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x70\x75\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x28\x70\x74\x29","\x31\x32","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x70\x78","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x28\x70\x78\x29","\x31","\x6C\x69\x6E\x65","\x73\x74\x72\x61\x69\x67\x68\x74","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6D\x61\x6E\x75\x61\x6C","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x6D\x61\x74\x69\x63","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x63\x6C\x61\x73\x73\x69\x63","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x6F\x70\x65\x6E\x41\x72\x72\x6F\x77","\x41\x52\x52\x4F\x57\x5F\x4F\x50\x45\x4E","\x62\x6C\x6F\x63\x6B","\x41\x52\x52\x4F\x57\x5F\x42\x4C\x4F\x43\x4B","\x6F\x76\x61\x6C","\x41\x52\x52\x4F\x57\x5F\x4F\x56\x41\x4C","\x64\x69\x61\x6D\x6F\x6E\x64","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44\x5F\x54\x48\x49\x4E","\x6E\x6F\x6E\x65","\x4E\x4F\x4E\x45","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x65\x6E\x64\x46\x69\x6C\x6C","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x61\x64\x64\x49\x74\x65\x6D","\x73\x69\x7A\x65","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x73\x70\x61\x63\x69\x6E\x67","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x68\x61\x64\x6F\x77","\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x74\x6F\x70","\x30","\x72\x69\x67\x68\x74","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x67\x6C\x6F\x62\x61\x6C","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x74\x65\x78\x74","\x61\x64\x64\x53\x75\x62\x6D\x65\x6E\x75","\x2D","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D\x73","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x77\x6F\x72\x64\x57\x72\x61\x70","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x28\x25\x29","\x31\x30\x30","\x68\x69\x64\x65","\x6C\x65\x66\x74\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x63\x65\x6E\x74\x65\x72","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x72\x69\x67\x68\x74\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x74\x6F\x70\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x6D\x69\x64\x64\x6C\x65","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x62\x6F\x74\x74\x6F\x6D\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x74\x69\x6C\x74","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x6C\x69\x67\x6E","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x46\x6C\x6F\x77","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x61\x72\x72\x61\x6E\x67\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x76\x69\x65\x77","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x25","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x66\x69\x74\x50\x61\x67\x65","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x66\x69\x6C\x65","\x6E\x65\x77","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x41\x73","\x70\x75\x62\x6C\x69\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x65\x64\x69\x74\x46\x69\x6C\x65","\x70\x72\x69\x6E\x74","\x65\x64\x69\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x75\x74","\x63\x6F\x70\x79","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x68\x65\x6C\x70","\x61\x62\x6F\x75\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x65\x78\x65\x63\x75\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x20","\x70\x72\x6F\x6D\x70\x74","\x6C\x61\x62\x65\x6C","\x66\x75\x6E\x63\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x6D\x61\x72\x6B","\x61\x64\x64\x53\x68\x6F\x72\x74\x63\x75\x74","\x73\x68\x6F\x72\x74\x63\x75\x74","\x73\x70\x61\x6E","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x79","\x77\x72\x69\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x32\x70\x78\x20\x35\x30\x25","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x69\x73\x45\x64\x67\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x62\x65\x6E\x64\x73","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x69\x76","\x20\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x4D\x65\x6E\x75","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x61\x70\x70\x6C\x79","\x64\x65\x73\x74\x72\x6F\x79","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6C\x69\x63\x6B","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74"];Menus=function(_0x69eex1){this[_0xdcd6[0]]=_0x69eex1;this[_0xdcd6[1]]= new Object();this[_0xdcd6[2]](); new Image()[_0xdcd6[3]]=IMAGE_PATH+_0xdcd6[4];};Menus[_0xdcd6[5]][_0xdcd6[2]]=function(){var _0x69eex2=this[_0xdcd6[0]][_0xdcd6[7]][_0xdcd6[6]];this[_0xdcd6[30]](_0xdcd6[8], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){var _0x69eex5=[_0xdcd6[9],_0xdcd6[10],_0xdcd6[11],_0xdcd6[12],_0xdcd6[13],_0xdcd6[14],_0xdcd6[15],_0xdcd6[16],_0xdcd6[17]];for(var _0x69eex6=0;_0x69eex6<_0x69eex5[_0xdcd6[18]];_0x69eex6++){var _0x69eex7=this[_0xdcd6[20]](_0x69eex3,_0x69eex5[_0x69eex6],[mxConstants[_0xdcd6[19]]],[_0x69eex5[_0x69eex6]],null,_0x69eex4);_0x69eex7[_0xdcd6[23]][_0xdcd6[22]][_0xdcd6[21]][_0xdcd6[8]]=_0x69eex5[_0x69eex6];};_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[25]),_0xdcd6[27],mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[31], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){var _0x69eex8=[6,8,9,10,11,12,14,18,24,36,48,72];for(var _0x69eex6=0;_0x69eex6<_0x69eex8[_0xdcd6[18]];_0x69eex6++){this[_0xdcd6[20]](_0x69eex3,_0x69eex8[_0x69eex6],[mxConstants[_0xdcd6[32]]],[_0x69eex8[_0x69eex6]],null,_0x69eex4)};_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[25]),_0xdcd6[33],_0xdcd6[34],mxConstants.STYLE_FONTSIZE,_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[35], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){var _0x69eex8=[1,2,3,4,8,12,16,24];for(var _0x69eex6=0;_0x69eex6<_0x69eex8[_0xdcd6[18]];_0x69eex6++){this[_0xdcd6[20]](_0x69eex3,_0x69eex8[_0x69eex6]+_0xdcd6[36],[mxConstants[_0xdcd6[37]]],[_0x69eex8[_0x69eex6]],null,_0x69eex4)};_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[25]),_0xdcd6[38],_0xdcd6[39],mxConstants.STYLE_STROKEWIDTH,_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[40], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[41]),[mxConstants[_0xdcd6[42]]],[null],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[43]),[mxConstants[_0xdcd6[42]]],[_0xdcd6[44]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[45]),[mxConstants[_0xdcd6[42]],mxConstants[_0xdcd6[46]]],[_0xdcd6[47],_0xdcd6[45]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[48]),[mxConstants[_0xdcd6[42]],mxConstants[_0xdcd6[46]]],[_0xdcd6[47],_0xdcd6[48]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[49]),[mxConstants[_0xdcd6[42]]],[_0xdcd6[50]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[51]),[mxConstants[_0xdcd6[42]]],[_0xdcd6[52]],null,_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[53], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[54]),[mxConstants[_0xdcd6[55]]],[mxConstants[_0xdcd6[56]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[57]),[mxConstants[_0xdcd6[55]]],[mxConstants[_0xdcd6[58]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[59]),[mxConstants[_0xdcd6[55]]],[mxConstants[_0xdcd6[60]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[61]),[mxConstants[_0xdcd6[55]]],[mxConstants[_0xdcd6[62]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[63]),[mxConstants[_0xdcd6[55]]],[mxConstants[_0xdcd6[64]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[65]),[mxConstants[_0xdcd6[55]]],[mxConstants[_0xdcd6[66]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[67]),[mxConstants[_0xdcd6[55]]],[mxConstants[_0xdcd6[68]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[69]),null,function(){_0x69eex2[_0xdcd6[71]](_0xdcd6[70],true)},_0x69eex4,null,true);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[73]),_0xdcd6[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[74], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[54]),[mxConstants[_0xdcd6[75]]],[mxConstants[_0xdcd6[56]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[57]),[mxConstants[_0xdcd6[75]]],[mxConstants[_0xdcd6[58]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[59]),[mxConstants[_0xdcd6[75]]],[mxConstants[_0xdcd6[60]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[61]),[mxConstants[_0xdcd6[75]]],[mxConstants[_0xdcd6[62]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[63]),[mxConstants[_0xdcd6[75]]],[mxConstants[_0xdcd6[64]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[65]),[mxConstants[_0xdcd6[75]]],[mxConstants[_0xdcd6[66]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[67]),[mxConstants[_0xdcd6[75]]],[mxConstants[_0xdcd6[68]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[69]),null,function(){_0x69eex2[_0xdcd6[71]](_0xdcd6[76],true)},_0x69eex4,null,true);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[73]),_0xdcd6[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[77], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){var _0x69eex9=this[_0xdcd6[0]][_0xdcd6[80]][_0xdcd6[26]](_0xdcd6[79])[_0xdcd6[78]];var _0x69eexa=this[_0xdcd6[26]](_0xdcd6[40])[_0xdcd6[78]];if(_0x69eex9||_0x69eex3[_0xdcd6[81]]){this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[82]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_SPACING_TOP,_0x69eex4,_0x69eex9);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[84]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_SPACING_RIGHT,_0x69eex4,_0x69eex9);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[85]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_SPACING_BOTTOM,_0x69eex4,_0x69eex9);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[86]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_SPACING_LEFT,_0x69eex4,_0x69eex9);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[87]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_SPACING,_0x69eex4,_0x69eex9);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[88]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_PERIMETER_SPACING,_0x69eex4,_0x69eex9);};if(_0x69eexa||_0x69eex3[_0xdcd6[81]]){_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[89]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_SOURCE_PERIMETER_SPACING,_0x69eex4,_0x69eexa);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[90]),_0xdcd6[38],_0xdcd6[83],mxConstants.STYLE_TARGET_PERIMETER_SPACING,_0x69eex4,_0x69eexa);};})));this[_0xdcd6[30]](_0xdcd6[91], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[92]](_0x69eex3,_0xdcd6[21],_0x69eex4)})));this[_0xdcd6[30]](_0xdcd6[93], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){var _0x69eexb=this[_0xdcd6[26]](_0xdcd6[93])[_0xdcd6[78]];_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[94]](_0xdcd6[8],_0x69eex3,_0x69eex4);this[_0xdcd6[94]](_0xdcd6[31],_0x69eex3,_0x69eex4);this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[95],_0xdcd6[96],_0xdcd6[97],_0xdcd6[98],_0xdcd6[95]],_0x69eex4);this[_0xdcd6[94]](_0xdcd6[100],_0x69eex3,_0x69eex4);this[_0xdcd6[92]](_0x69eex3,_0xdcd6[101],_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[28]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[102]),_0xdcd6[103],_0xdcd6[104],mxConstants.STYLE_TEXT_OPACITY,_0x69eex4,_0x69eexb);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[105]),null,function(){_0x69eex2[_0xdcd6[71]](mxConstants.STYLE_NOLABEL,false)},_0x69eex4,null,_0x69eexb);})));this[_0xdcd6[30]](_0xdcd6[100], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[106]),[mxConstants[_0xdcd6[107]]],[mxConstants[_0xdcd6[108]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[109]),[mxConstants[_0xdcd6[107]]],[mxConstants[_0xdcd6[110]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[111]),[mxConstants[_0xdcd6[107]]],[mxConstants[_0xdcd6[112]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[113]),[mxConstants[_0xdcd6[114]]],[mxConstants[_0xdcd6[115]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[116]),[mxConstants[_0xdcd6[114]]],[mxConstants[_0xdcd6[117]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[118]),[mxConstants[_0xdcd6[114]]],[mxConstants[_0xdcd6[119]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[94]](_0xdcd6[120],_0x69eex3,_0x69eex4);this[_0xdcd6[94]](_0xdcd6[77],_0x69eex3,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);var _0x69eexb=this[_0xdcd6[26]](_0xdcd6[93])[_0xdcd6[78]];_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[48]),null,function(){_0x69eex2[_0xdcd6[71]](mxConstants.STYLE_HORIZONTAL,true)},_0x69eex4,null,_0x69eexb);})));this[_0xdcd6[30]](_0xdcd6[120], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[86]),[mxConstants[_0xdcd6[121]],mxConstants[_0xdcd6[107]]],[mxConstants[_0xdcd6[108]],mxConstants[_0xdcd6[112]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[109]),[mxConstants[_0xdcd6[121]],mxConstants[_0xdcd6[107]]],[mxConstants[_0xdcd6[110]],mxConstants[_0xdcd6[110]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[84]),[mxConstants[_0xdcd6[121]],mxConstants[_0xdcd6[107]]],[mxConstants[_0xdcd6[112]],mxConstants[_0xdcd6[108]]],null,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[82]),[mxConstants[_0xdcd6[122]],mxConstants[_0xdcd6[114]]],[mxConstants[_0xdcd6[115]],mxConstants[_0xdcd6[119]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[116]),[mxConstants[_0xdcd6[122]],mxConstants[_0xdcd6[114]]],[mxConstants[_0xdcd6[117]],mxConstants[_0xdcd6[117]]],null,_0x69eex4);this[_0xdcd6[20]](_0x69eex3,mxResources[_0xdcd6[26]](_0xdcd6[85]),[mxConstants[_0xdcd6[122]],mxConstants[_0xdcd6[114]]],[mxConstants[_0xdcd6[119]],mxConstants[_0xdcd6[115]]],null,_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[123], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[124]),null,function(){_0x69eex2[_0xdcd6[71]](mxConstants.STYLE_FLIPH,false)},_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[125]),null,function(){_0x69eex2[_0xdcd6[71]](mxConstants.STYLE_FLIPV,false)},_0x69eex4);this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[95],_0xdcd6[126],_0xdcd6[127]],_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[128], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[106]),null,function(){_0x69eex2[_0xdcd6[129]](mxConstants.ALIGN_LEFT)},_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[109]),null,function(){_0x69eex2[_0xdcd6[129]](mxConstants.ALIGN_CENTER)},_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[111]),null,function(){_0x69eex2[_0xdcd6[129]](mxConstants.ALIGN_RIGHT)},_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[113]),null,function(){_0x69eex2[_0xdcd6[129]](mxConstants.ALIGN_TOP)},_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[116]),null,function(){_0x69eex2[_0xdcd6[129]](mxConstants.ALIGN_MIDDLE)},_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[118]),null,function(){_0x69eex2[_0xdcd6[129]](mxConstants.ALIGN_BOTTOM)},_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[130], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[131]),null,mxUtils[_0xdcd6[29]](this,function(){var _0x69eexc= new mxHierarchicalLayout(_0x69eex2,mxConstants.DIRECTION_WEST);this[_0xdcd6[0]][_0xdcd6[132]](_0x69eexc,true,true);}),_0x69eex4);_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0xdcd6[133]),null,mxUtils[_0xdcd6[29]](this,function(){var _0x69eexc= new mxHierarchicalLayout(_0x69eex2,mxConstants.DIRECTION_NORTH);this[_0xdcd6[0]][_0xdcd6[132]](_0x69eexc,true,true);}),_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[134], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[135],_0xdcd6[95],_0xdcd6[136],_0xdcd6[137],_0xdcd6[95],_0xdcd6[138],_0xdcd6[139]],_0x69eex4)})));this[_0xdcd6[30]](_0xdcd6[140], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[141],_0xdcd6[142],_0xdcd6[95]],_0x69eex4);this[_0xdcd6[94]](_0xdcd6[130],_0x69eex3,_0x69eex4);_0x69eex3[_0xdcd6[24]](_0x69eex4);this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[95],_0xdcd6[143],_0xdcd6[144],_0xdcd6[145]],_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[146], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[147]],_0x69eex4);_0x69eex3[_0xdcd6[24]]();var _0x69eexd=[0.25,0.5,0.75,1,2,4];for(var _0x69eex6=0;_0x69eex6<_0x69eexd[_0xdcd6[18]];_0x69eex6++){(function(_0x69eexe){_0x69eex3[_0xdcd6[72]]((_0x69eexe*100)+_0xdcd6[148],null,function(){_0x69eex2[_0xdcd6[149]](_0x69eexe)},_0x69eex4)})(_0x69eexd[_0x69eex6])};this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[95],_0xdcd6[150],_0xdcd6[151],_0xdcd6[95],_0xdcd6[152],_0xdcd6[153],_0xdcd6[95],_0xdcd6[154],_0xdcd6[155]],_0x69eex4);})));this[_0xdcd6[30]](_0xdcd6[156], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[157],_0xdcd6[158],_0xdcd6[95],_0xdcd6[159],_0xdcd6[160],_0xdcd6[161],_0xdcd6[95],_0xdcd6[162],_0xdcd6[95],_0xdcd6[163],_0xdcd6[164],_0xdcd6[95],_0xdcd6[165],_0xdcd6[95],_0xdcd6[166]],_0x69eex4)})));this[_0xdcd6[30]](_0xdcd6[167], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[168],_0xdcd6[169],_0xdcd6[95],_0xdcd6[170],_0xdcd6[171],_0xdcd6[172],_0xdcd6[173],_0xdcd6[95],_0xdcd6[174],_0xdcd6[95],_0xdcd6[175],_0xdcd6[176],_0xdcd6[177]])})));this[_0xdcd6[30]](_0xdcd6[178], new Menu(mxUtils[_0xdcd6[29]](this,function(_0x69eex3,_0x69eex4){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[178],_0xdcd6[95],_0xdcd6[179]])})));};Menus[_0xdcd6[5]][_0xdcd6[30]]=function(_0x69eexf,_0x69eex3){this[_0xdcd6[1]][_0x69eexf]=_0x69eex3};Menus[_0xdcd6[5]][_0xdcd6[26]]=function(_0x69eexf){return this[_0xdcd6[1]][_0x69eexf]};Menus[_0xdcd6[5]][_0xdcd6[94]]=function(_0x69eexf,_0x69eex3,_0x69eex4){var _0x69eexb=this[_0xdcd6[26]](_0x69eexf)[_0xdcd6[78]];if(_0x69eex3[_0xdcd6[81]]||_0x69eexb){var _0x69eex10=_0x69eex3[_0xdcd6[72]](mxResources[_0xdcd6[26]](_0x69eexf),null,null,_0x69eex4,null,_0x69eexb);this[_0xdcd6[180]](_0x69eexf,_0x69eex3,_0x69eex10);};};Menus[_0xdcd6[5]][_0xdcd6[180]]=function(_0x69eexf,_0x69eex11,_0x69eex4){var _0x69eex3=this[_0xdcd6[26]](_0x69eexf);if(_0x69eex3!=null&&(_0x69eex11[_0xdcd6[81]]||_0x69eex3[_0xdcd6[78]])){this[_0xdcd6[26]](_0x69eexf)[_0xdcd6[181]](_0x69eex11,_0x69eex4)};};Menus[_0xdcd6[5]][_0xdcd6[20]]=function(_0x69eex3,_0x69eex12,_0x69eex13,_0x69eex14,_0x69eex15,_0x69eex4){return _0x69eex3[_0xdcd6[72]](_0x69eex12,null,mxUtils[_0xdcd6[29]](this,function(){var _0x69eex2=this[_0xdcd6[0]][_0xdcd6[7]][_0xdcd6[6]];_0x69eex2[_0xdcd6[183]]()[_0xdcd6[182]]();try{for(var _0x69eex6=0;_0x69eex6<_0x69eex13[_0xdcd6[18]];_0x69eex6++){_0x69eex2[_0xdcd6[184]](_0x69eex13[_0x69eex6],_0x69eex14[_0x69eex6])}}finally{_0x69eex2[_0xdcd6[183]]()[_0xdcd6[185]]()};}),_0x69eex4,_0x69eex15)};Menus[_0xdcd6[5]][_0xdcd6[28]]=function(_0x69eex3,_0x69eex12,_0x69eex16,_0x69eex17,_0x69eex18,_0x69eex4,_0x69eexb){return _0x69eex3[_0xdcd6[72]](_0x69eex12,null,mxUtils[_0xdcd6[29]](this,function(){var _0x69eex2=this[_0xdcd6[0]][_0xdcd6[7]][_0xdcd6[6]];var _0x69eex19=_0x69eex17;var _0x69eex1a=_0x69eex2[_0xdcd6[188]]()[_0xdcd6[187]](_0x69eex2[_0xdcd6[186]]());if(_0x69eex1a!=null){_0x69eex19=_0x69eex1a[_0xdcd6[21]][_0x69eex18]||_0x69eex19};_0x69eex19=mxUtils[_0xdcd6[191]](mxResources[_0xdcd6[26]](_0xdcd6[189])+((_0x69eex16[_0xdcd6[18]]>0)?(_0xdcd6[190]+_0x69eex16):_0xdcd6[27]),_0x69eex19);if(_0x69eex19!=null&&_0x69eex19[_0xdcd6[18]]>0){_0x69eex2[_0xdcd6[184]](_0x69eex18,_0x69eex19)};}),_0x69eex4,null,_0x69eexb)};Menus[_0xdcd6[5]][_0xdcd6[92]]=function(_0x69eex3,_0x69eex18,_0x69eex4){var _0x69eex1b=this[_0xdcd6[0]][_0xdcd6[80]][_0xdcd6[26]](_0x69eex18);if(_0x69eex1b!=null&&(_0x69eex3[_0xdcd6[81]]||_0x69eex1b[_0xdcd6[78]])){var _0x69eex1c=_0x69eex3[_0xdcd6[72]](_0x69eex1b[_0xdcd6[192]],null,_0x69eex1b[_0xdcd6[193]],_0x69eex4,null,_0x69eex1b[_0xdcd6[78]]);if(_0x69eex1b[_0xdcd6[194]]&&_0x69eex1b[_0xdcd6[195]]()){this[_0xdcd6[196]](_0x69eex1c)};this[_0xdcd6[197]](_0x69eex1c,_0x69eex1b);return _0x69eex1c;};return null;};Menus[_0xdcd6[5]][_0xdcd6[197]]=function(_0x69eex1c,_0x69eex1b){if(_0x69eex1b[_0xdcd6[198]]!=null){var _0x69eex1d=_0x69eex1c[_0xdcd6[23]][_0xdcd6[22]][_0xdcd6[22]];var _0x69eex1e=document[_0xdcd6[200]](_0xdcd6[199]);_0x69eex1e[_0xdcd6[21]][_0xdcd6[201]]=_0xdcd6[202];mxUtils[_0xdcd6[203]](_0x69eex1e,_0x69eex1b[_0xdcd6[198]]);_0x69eex1d[_0xdcd6[204]](_0x69eex1e);}};Menus[_0xdcd6[5]][_0xdcd6[196]]=function(_0x69eex1c){var _0x69eex1d=_0x69eex1c[_0xdcd6[23]][_0xdcd6[22]];_0x69eex1d[_0xdcd6[21]][_0xdcd6[205]]=_0xdcd6[206]+IMAGE_PATH+_0xdcd6[207];_0x69eex1d[_0xdcd6[21]][_0xdcd6[208]]=_0xdcd6[209];_0x69eex1d[_0xdcd6[21]][_0xdcd6[210]]=_0xdcd6[211];};Menus[_0xdcd6[5]][_0xdcd6[99]]=function(_0x69eex3,_0x69eex13,_0x69eex4){for(var _0x69eex6=0;_0x69eex6<_0x69eex13[_0xdcd6[18]];_0x69eex6++){if(_0x69eex13[_0x69eex6]==_0xdcd6[95]){_0x69eex3[_0xdcd6[24]](_0x69eex4)}else {this[_0xdcd6[92]](_0x69eex3,_0x69eex13[_0x69eex6],_0x69eex4)}}};Menus[_0xdcd6[5]][_0xdcd6[212]]=function(_0x69eex3,_0x69eex1f,_0x69eex20){var _0x69eex2=this[_0xdcd6[0]][_0xdcd6[7]][_0xdcd6[6]];_0x69eex3[_0xdcd6[213]]=true;if(_0x69eex2[_0xdcd6[214]]()){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[168],_0xdcd6[169],_0xdcd6[95],_0xdcd6[172],_0xdcd6[95]])}else {this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[173],_0xdcd6[95],_0xdcd6[170],_0xdcd6[171],_0xdcd6[95],_0xdcd6[174]]);if(_0x69eex2[_0xdcd6[215]]()==1&&_0x69eex2[_0xdcd6[183]]()[_0xdcd6[216]](_0x69eex2[_0xdcd6[186]]())){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[217]])};_0x69eex3[_0xdcd6[24]]();};if(_0x69eex2[_0xdcd6[215]]()>0){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[141],_0xdcd6[142],_0xdcd6[95]]);if(_0x69eex2[_0xdcd6[183]]()[_0xdcd6[216]](_0x69eex2[_0xdcd6[186]]())){var _0x69eex21=false;var _0x69eex1f=_0x69eex2[_0xdcd6[186]]();if(_0x69eex1f!=null&&_0x69eex2[_0xdcd6[183]]()[_0xdcd6[216]](_0x69eex1f)){var _0x69eex22=_0x69eex2[_0xdcd6[219]][_0xdcd6[218]](_0x69eex1f);if(_0x69eex22 instanceof mxEdgeHandler&&_0x69eex22[_0xdcd6[220]]!=null&&_0x69eex22[_0xdcd6[220]][_0xdcd6[18]]>2){var _0x69eex23=_0x69eex22[_0xdcd6[221]]( new mxMouseEvent(_0x69eex20));var _0x69eex24=this[_0xdcd6[0]][_0xdcd6[80]][_0xdcd6[26]](_0xdcd6[222]);_0x69eex24[_0xdcd6[223]]=_0x69eex22;_0x69eex24[_0xdcd6[224]]=_0x69eex23;_0x69eex21=_0x69eex23>0&&_0x69eex23<_0x69eex22[_0xdcd6[220]][_0xdcd6[18]];};};this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[95],(_0x69eex21)?_0xdcd6[222]:_0xdcd6[225]]);}else {if(_0x69eex2[_0xdcd6[215]]()>1){_0x69eex3[_0xdcd6[24]]();this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[143]]);}};_0x69eex3[_0xdcd6[24]]();if(_0x69eex2[_0xdcd6[215]]()==1){var _0x69eex25=_0x69eex2[_0xdcd6[226]](_0x69eex2[_0xdcd6[186]]());if(_0x69eex25!=null){this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[227]])};};}else {this[_0xdcd6[99]](_0x69eex3,[_0xdcd6[95],_0xdcd6[175],_0xdcd6[176],_0xdcd6[95],_0xdcd6[177]])};};Menus[_0xdcd6[5]][_0xdcd6[228]]=function(_0x69eex26){var _0x69eex27= new Menubar(this[_0xdcd6[0]],_0x69eex26);var _0x69eex28=[_0xdcd6[156],_0xdcd6[167],_0xdcd6[146],_0xdcd6[91],_0xdcd6[93],_0xdcd6[140],_0xdcd6[178]];for(var _0x69eex6=0;_0x69eex6<_0x69eex28[_0xdcd6[18]];_0x69eex6++){_0x69eex27[_0xdcd6[180]](mxResources[_0xdcd6[26]](_0x69eex28[_0x69eex6]),this[_0xdcd6[26]](_0x69eex28[_0x69eex6])[_0xdcd6[193]])};return _0x69eex27;};function Menubar(_0x69eex1,_0x69eex26){this[_0xdcd6[0]]=_0x69eex1;this[_0xdcd6[229]]=_0x69eex26;mxEvent[_0xdcd6[231]](document,mxUtils[_0xdcd6[29]](this,function(_0x69eex20){this[_0xdcd6[230]]()}));}Menubar[_0xdcd6[5]][_0xdcd6[230]]=function(){if(this[_0xdcd6[232]]!=null){this[_0xdcd6[232]][_0xdcd6[230]]()}};Menubar[_0xdcd6[5]][_0xdcd6[180]]=function(_0x69eex12,_0x69eex2a){var _0x69eex2b=document[_0xdcd6[200]](_0xdcd6[233]);_0x69eex2b[_0xdcd6[236]](_0xdcd6[234],_0xdcd6[235]);_0x69eex2b[_0xdcd6[237]]=_0xdcd6[238];mxUtils[_0xdcd6[203]](_0x69eex2b,_0x69eex12);this[_0xdcd6[239]](_0x69eex2b,_0x69eex2a);this[_0xdcd6[229]][_0xdcd6[204]](_0x69eex2b);return _0x69eex2b;};Menubar[_0xdcd6[5]][_0xdcd6[239]]=function(_0x69eex2b,_0x69eex2a){if(_0x69eex2a!=null){var _0x69eex2c=true;var _0x69eex2d=mxUtils[_0xdcd6[29]](this,function(_0x69eex20){if(_0x69eex2c&&_0x69eex2b[_0xdcd6[78]]==null||_0x69eex2b[_0xdcd6[78]]){this[_0xdcd6[0]][_0xdcd6[7]][_0xdcd6[6]][_0xdcd6[240]][_0xdcd6[230]]();var _0x69eex3= new mxPopupMenu(_0x69eex2a);_0x69eex3[_0xdcd6[241]][_0xdcd6[237]]+=_0xdcd6[242];_0x69eex3[_0xdcd6[213]]=true;_0x69eex3[_0xdcd6[81]]=true;_0x69eex3[_0xdcd6[243]]=true;_0x69eex3[_0xdcd6[230]]=mxUtils[_0xdcd6[29]](this,function(){mxPopupMenu[_0xdcd6[5]][_0xdcd6[230]][_0xdcd6[244]](_0x69eex3,arguments);_0x69eex3[_0xdcd6[245]]();this[_0xdcd6[232]]=null;this[_0xdcd6[246]]=null;});var _0x69eex2e=_0x69eex2b[_0xdcd6[247]]+document[_0xdcd6[250]](_0xdcd6[249])[_0xdcd6[248]]+22;var _0x69eex2f=_0x69eex2b[_0xdcd6[251]]+_0x69eex2b[_0xdcd6[252]]+140;_0x69eex3[_0xdcd6[253]](_0x69eex2e,_0x69eex2f,null,_0x69eex20);this[_0xdcd6[232]]=_0x69eex3;this[_0xdcd6[246]]=_0x69eex2b;};_0x69eex2c=true;mxEvent[_0xdcd6[254]](_0x69eex20);});mxEvent[_0xdcd6[256]](_0x69eex2b,_0xdcd6[255],mxUtils[_0xdcd6[29]](this,function(_0x69eex20){if(this[_0xdcd6[232]]!=null&&this[_0xdcd6[246]]!=_0x69eex2b){this[_0xdcd6[230]]();_0x69eex2d(_0x69eex20);}}));mxEvent[_0xdcd6[256]](_0x69eex2b,_0xdcd6[257],mxUtils[_0xdcd6[29]](this,function(){_0x69eex2c=this[_0xdcd6[246]]!=_0x69eex2b}));mxEvent[_0xdcd6[256]](_0x69eex2b,_0xdcd6[258],_0x69eex2d);}};function Menu(_0x69eex2a,_0x69eexb){mxEventSource[_0xdcd6[259]](this);this[_0xdcd6[193]]=_0x69eex2a;this[_0xdcd6[78]]=(_0x69eexb!=null)?_0x69eexb:true;}mxUtils[_0xdcd6[260]](Menu,mxEventSource);Menu[_0xdcd6[5]][_0xdcd6[261]]=function(_0x69eex19){if(this[_0xdcd6[78]]!=_0x69eex19){this[_0xdcd6[78]]=_0x69eex19;this[_0xdcd6[263]]( new mxEventObject(_0xdcd6[262]));}};Menu[_0xdcd6[5]][_0xdcd6[181]]=function(_0x69eex3,_0x69eex4){this[_0xdcd6[193]](_0x69eex3,_0x69eex4)};
\ No newline at end of file
+var _0x8929=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x6D\x65\x6E\x75\x73","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x56\x65\x72\x64\x61\x6E\x61","\x54\x69\x6D\x65\x73\x20\x4E\x65\x77\x20\x52\x6F\x6D\x61\x6E","\x47\x61\x72\x61\x6D\x6F\x6E\x64","\x43\x6F\x6D\x69\x63\x20\x53\x61\x6E\x73\x20\x4D\x53","\x43\x6F\x75\x72\x69\x65\x72\x20\x4E\x65\x77","\x47\x65\x6F\x72\x67\x69\x61","\x4C\x75\x63\x69\x64\x61\x20\x43\x6F\x6E\x73\x6F\x6C\x65","\x54\x61\x68\x6F\x6D\x61","\x6C\x65\x6E\x67\x74\x68","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x73\x74\x79\x6C\x65\x43\x68\x61\x6E\x67\x65","\x73\x74\x79\x6C\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74","","\x70\x72\x6F\x6D\x70\x74\x43\x68\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x70\x75\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x28\x70\x74\x29","\x31\x32","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x70\x78","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x28\x70\x78\x29","\x31","\x6C\x69\x6E\x65","\x73\x74\x72\x61\x69\x67\x68\x74","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6D\x61\x6E\x75\x61\x6C","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x6D\x61\x74\x69\x63","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x63\x6C\x61\x73\x73\x69\x63","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x6F\x70\x65\x6E\x41\x72\x72\x6F\x77","\x41\x52\x52\x4F\x57\x5F\x4F\x50\x45\x4E","\x62\x6C\x6F\x63\x6B","\x41\x52\x52\x4F\x57\x5F\x42\x4C\x4F\x43\x4B","\x6F\x76\x61\x6C","\x41\x52\x52\x4F\x57\x5F\x4F\x56\x41\x4C","\x64\x69\x61\x6D\x6F\x6E\x64","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44\x5F\x54\x48\x49\x4E","\x6E\x6F\x6E\x65","\x4E\x4F\x4E\x45","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x65\x6E\x64\x46\x69\x6C\x6C","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x61\x64\x64\x49\x74\x65\x6D","\x73\x69\x7A\x65","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x73\x70\x61\x63\x69\x6E\x67","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x68\x61\x64\x6F\x77","\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x74\x6F\x70","\x30","\x72\x69\x67\x68\x74","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x67\x6C\x6F\x62\x61\x6C","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x74\x65\x78\x74","\x61\x64\x64\x53\x75\x62\x6D\x65\x6E\x75","\x2D","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D\x73","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x77\x6F\x72\x64\x57\x72\x61\x70","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x28\x25\x29","\x31\x30\x30","\x68\x69\x64\x65","\x6C\x65\x66\x74\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x63\x65\x6E\x74\x65\x72","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x72\x69\x67\x68\x74\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x74\x6F\x70\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x6D\x69\x64\x64\x6C\x65","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x62\x6F\x74\x74\x6F\x6D\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x74\x69\x6C\x74","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x6C\x69\x67\x6E","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x46\x6C\x6F\x77","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x61\x72\x72\x61\x6E\x67\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x76\x69\x65\x77","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x25","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x66\x69\x74\x50\x61\x67\x65","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x66\x69\x6C\x65","\x6E\x65\x77","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x41\x73","\x70\x75\x62\x6C\x69\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x65\x64\x69\x74\x46\x69\x6C\x65","\x70\x72\x69\x6E\x74","\x65\x64\x69\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x75\x74","\x63\x6F\x70\x79","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x68\x65\x6C\x70","\x61\x62\x6F\x75\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x65\x78\x65\x63\x75\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x20","\x70\x72\x6F\x6D\x70\x74","\x6C\x61\x62\x65\x6C","\x66\x75\x6E\x63\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x6D\x61\x72\x6B","\x61\x64\x64\x53\x68\x6F\x72\x74\x63\x75\x74","\x73\x68\x6F\x72\x74\x63\x75\x74","\x73\x70\x61\x6E","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x79","\x77\x72\x69\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x32\x70\x78\x20\x35\x30\x25","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x69\x73\x45\x64\x67\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x62\x65\x6E\x64\x73","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x69\x76","\x20\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x4D\x65\x6E\x75","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x61\x70\x70\x6C\x79","\x64\x65\x73\x74\x72\x6F\x79","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6C\x69\x63\x6B","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74"];Menus=function(_0xb0d6x1){this[_0x8929[0]]=_0xb0d6x1;this[_0x8929[1]]= new Object();this[_0x8929[2]](); new Image()[_0x8929[3]]=IMAGE_PATH+_0x8929[4];};Menus[_0x8929[5]][_0x8929[2]]=function(){var _0xb0d6x2=this[_0x8929[0]][_0x8929[7]][_0x8929[6]];this[_0x8929[30]](_0x8929[8], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){var _0xb0d6x5=[_0x8929[9],_0x8929[10],_0x8929[11],_0x8929[12],_0x8929[13],_0x8929[14],_0x8929[15],_0x8929[16],_0x8929[17]];for(var _0xb0d6x6=0;_0xb0d6x6<_0xb0d6x5[_0x8929[18]];_0xb0d6x6++){var _0xb0d6x7=this[_0x8929[20]](_0xb0d6x3,_0xb0d6x5[_0xb0d6x6],[mxConstants[_0x8929[19]]],[_0xb0d6x5[_0xb0d6x6]],null,_0xb0d6x4);_0xb0d6x7[_0x8929[23]][_0x8929[22]][_0x8929[21]][_0x8929[8]]=_0xb0d6x5[_0xb0d6x6];};_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[25]),_0x8929[27],mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,_0xb0d6x4);})));this[_0x8929[30]](_0x8929[31], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){var _0xb0d6x8=[6,8,9,10,11,12,14,18,24,36,48,72];for(var _0xb0d6x6=0;_0xb0d6x6<_0xb0d6x8[_0x8929[18]];_0xb0d6x6++){this[_0x8929[20]](_0xb0d6x3,_0xb0d6x8[_0xb0d6x6],[mxConstants[_0x8929[32]]],[_0xb0d6x8[_0xb0d6x6]],null,_0xb0d6x4)};_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[25]),_0x8929[33],_0x8929[34],mxConstants.STYLE_FONTSIZE,_0xb0d6x4);})));this[_0x8929[30]](_0x8929[35], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){var _0xb0d6x8=[1,2,3,4,8,12,16,24];for(var _0xb0d6x6=0;_0xb0d6x6<_0xb0d6x8[_0x8929[18]];_0xb0d6x6++){this[_0x8929[20]](_0xb0d6x3,_0xb0d6x8[_0xb0d6x6]+_0x8929[36],[mxConstants[_0x8929[37]]],[_0xb0d6x8[_0xb0d6x6]],null,_0xb0d6x4)};_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[25]),_0x8929[38],_0x8929[39],mxConstants.STYLE_STROKEWIDTH,_0xb0d6x4);})));this[_0x8929[30]](_0x8929[40], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[41]),[mxConstants[_0x8929[42]]],[null],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[43]),[mxConstants[_0x8929[42]]],[_0x8929[44]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[45]),[mxConstants[_0x8929[42]],mxConstants[_0x8929[46]]],[_0x8929[47],_0x8929[45]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[48]),[mxConstants[_0x8929[42]],mxConstants[_0x8929[46]]],[_0x8929[47],_0x8929[48]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[49]),[mxConstants[_0x8929[42]]],[_0x8929[50]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[51]),[mxConstants[_0x8929[42]]],[_0x8929[52]],null,_0xb0d6x4);})));this[_0x8929[30]](_0x8929[53], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[54]),[mxConstants[_0x8929[55]]],[mxConstants[_0x8929[56]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[57]),[mxConstants[_0x8929[55]]],[mxConstants[_0x8929[58]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[59]),[mxConstants[_0x8929[55]]],[mxConstants[_0x8929[60]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[61]),[mxConstants[_0x8929[55]]],[mxConstants[_0x8929[62]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[63]),[mxConstants[_0x8929[55]]],[mxConstants[_0x8929[64]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[65]),[mxConstants[_0x8929[55]]],[mxConstants[_0x8929[66]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[67]),[mxConstants[_0x8929[55]]],[mxConstants[_0x8929[68]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[69]),null,function(){_0xb0d6x2[_0x8929[71]](_0x8929[70],true)},_0xb0d6x4,null,true);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[73]),_0x8929[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,_0xb0d6x4);})));this[_0x8929[30]](_0x8929[74], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[54]),[mxConstants[_0x8929[75]]],[mxConstants[_0x8929[56]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[57]),[mxConstants[_0x8929[75]]],[mxConstants[_0x8929[58]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[59]),[mxConstants[_0x8929[75]]],[mxConstants[_0x8929[60]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[61]),[mxConstants[_0x8929[75]]],[mxConstants[_0x8929[62]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[63]),[mxConstants[_0x8929[75]]],[mxConstants[_0x8929[64]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[65]),[mxConstants[_0x8929[75]]],[mxConstants[_0x8929[66]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[67]),[mxConstants[_0x8929[75]]],[mxConstants[_0x8929[68]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[69]),null,function(){_0xb0d6x2[_0x8929[71]](_0x8929[76],true)},_0xb0d6x4,null,true);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[73]),_0x8929[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,_0xb0d6x4);})));this[_0x8929[30]](_0x8929[77], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){var _0xb0d6x9=this[_0x8929[0]][_0x8929[80]][_0x8929[26]](_0x8929[79])[_0x8929[78]];var _0xb0d6xa=this[_0x8929[26]](_0x8929[40])[_0x8929[78]];if(_0xb0d6x9||_0xb0d6x3[_0x8929[81]]){this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[82]),_0x8929[38],_0x8929[83],mxConstants.STYLE_SPACING_TOP,_0xb0d6x4,_0xb0d6x9);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[84]),_0x8929[38],_0x8929[83],mxConstants.STYLE_SPACING_RIGHT,_0xb0d6x4,_0xb0d6x9);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[85]),_0x8929[38],_0x8929[83],mxConstants.STYLE_SPACING_BOTTOM,_0xb0d6x4,_0xb0d6x9);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[86]),_0x8929[38],_0x8929[83],mxConstants.STYLE_SPACING_LEFT,_0xb0d6x4,_0xb0d6x9);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[87]),_0x8929[38],_0x8929[83],mxConstants.STYLE_SPACING,_0xb0d6x4,_0xb0d6x9);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[88]),_0x8929[38],_0x8929[83],mxConstants.STYLE_PERIMETER_SPACING,_0xb0d6x4,_0xb0d6x9);};if(_0xb0d6xa||_0xb0d6x3[_0x8929[81]]){_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[89]),_0x8929[38],_0x8929[83],mxConstants.STYLE_SOURCE_PERIMETER_SPACING,_0xb0d6x4,_0xb0d6xa);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[90]),_0x8929[38],_0x8929[83],mxConstants.STYLE_TARGET_PERIMETER_SPACING,_0xb0d6x4,_0xb0d6xa);};})));this[_0x8929[30]](_0x8929[91], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[92]](_0xb0d6x3,_0x8929[21],_0xb0d6x4)})));this[_0x8929[30]](_0x8929[93], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){var _0xb0d6xb=this[_0x8929[26]](_0x8929[93])[_0x8929[78]];_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[94]](_0x8929[8],_0xb0d6x3,_0xb0d6x4);this[_0x8929[94]](_0x8929[31],_0xb0d6x3,_0xb0d6x4);this[_0x8929[99]](_0xb0d6x3,[_0x8929[95],_0x8929[96],_0x8929[97],_0x8929[98],_0x8929[95]],_0xb0d6x4);this[_0x8929[94]](_0x8929[100],_0xb0d6x3,_0xb0d6x4);this[_0x8929[92]](_0xb0d6x3,_0x8929[101],_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[28]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[102]),_0x8929[103],_0x8929[104],mxConstants.STYLE_TEXT_OPACITY,_0xb0d6x4,_0xb0d6xb);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[105]),null,function(){_0xb0d6x2[_0x8929[71]](mxConstants.STYLE_NOLABEL,false)},_0xb0d6x4,null,_0xb0d6xb);})));this[_0x8929[30]](_0x8929[100], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[106]),[mxConstants[_0x8929[107]]],[mxConstants[_0x8929[108]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[109]),[mxConstants[_0x8929[107]]],[mxConstants[_0x8929[110]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[111]),[mxConstants[_0x8929[107]]],[mxConstants[_0x8929[112]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[113]),[mxConstants[_0x8929[114]]],[mxConstants[_0x8929[115]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[116]),[mxConstants[_0x8929[114]]],[mxConstants[_0x8929[117]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[118]),[mxConstants[_0x8929[114]]],[mxConstants[_0x8929[119]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[94]](_0x8929[120],_0xb0d6x3,_0xb0d6x4);this[_0x8929[94]](_0x8929[77],_0xb0d6x3,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);var _0xb0d6xb=this[_0x8929[26]](_0x8929[93])[_0x8929[78]];_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[48]),null,function(){_0xb0d6x2[_0x8929[71]](mxConstants.STYLE_HORIZONTAL,true)},_0xb0d6x4,null,_0xb0d6xb);})));this[_0x8929[30]](_0x8929[120], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[86]),[mxConstants[_0x8929[121]],mxConstants[_0x8929[107]]],[mxConstants[_0x8929[108]],mxConstants[_0x8929[112]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[109]),[mxConstants[_0x8929[121]],mxConstants[_0x8929[107]]],[mxConstants[_0x8929[110]],mxConstants[_0x8929[110]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[84]),[mxConstants[_0x8929[121]],mxConstants[_0x8929[107]]],[mxConstants[_0x8929[112]],mxConstants[_0x8929[108]]],null,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[82]),[mxConstants[_0x8929[122]],mxConstants[_0x8929[114]]],[mxConstants[_0x8929[115]],mxConstants[_0x8929[119]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[116]),[mxConstants[_0x8929[122]],mxConstants[_0x8929[114]]],[mxConstants[_0x8929[117]],mxConstants[_0x8929[117]]],null,_0xb0d6x4);this[_0x8929[20]](_0xb0d6x3,mxResources[_0x8929[26]](_0x8929[85]),[mxConstants[_0x8929[122]],mxConstants[_0x8929[114]]],[mxConstants[_0x8929[119]],mxConstants[_0x8929[115]]],null,_0xb0d6x4);})));this[_0x8929[30]](_0x8929[123], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[124]),null,function(){_0xb0d6x2[_0x8929[71]](mxConstants.STYLE_FLIPH,false)},_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[125]),null,function(){_0xb0d6x2[_0x8929[71]](mxConstants.STYLE_FLIPV,false)},_0xb0d6x4);this[_0x8929[99]](_0xb0d6x3,[_0x8929[95],_0x8929[126],_0x8929[127]],_0xb0d6x4);})));this[_0x8929[30]](_0x8929[128], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[106]),null,function(){_0xb0d6x2[_0x8929[129]](mxConstants.ALIGN_LEFT)},_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[109]),null,function(){_0xb0d6x2[_0x8929[129]](mxConstants.ALIGN_CENTER)},_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[111]),null,function(){_0xb0d6x2[_0x8929[129]](mxConstants.ALIGN_RIGHT)},_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[113]),null,function(){_0xb0d6x2[_0x8929[129]](mxConstants.ALIGN_TOP)},_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[116]),null,function(){_0xb0d6x2[_0x8929[129]](mxConstants.ALIGN_MIDDLE)},_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[118]),null,function(){_0xb0d6x2[_0x8929[129]](mxConstants.ALIGN_BOTTOM)},_0xb0d6x4);})));this[_0x8929[30]](_0x8929[130], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[131]),null,mxUtils[_0x8929[29]](this,function(){var _0xb0d6xc= new mxHierarchicalLayout(_0xb0d6x2,mxConstants.DIRECTION_WEST);this[_0x8929[0]][_0x8929[132]](_0xb0d6xc,true,true);}),_0xb0d6x4);_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0x8929[133]),null,mxUtils[_0x8929[29]](this,function(){var _0xb0d6xc= new mxHierarchicalLayout(_0xb0d6x2,mxConstants.DIRECTION_NORTH);this[_0x8929[0]][_0x8929[132]](_0xb0d6xc,true,true);}),_0xb0d6x4);})));this[_0x8929[30]](_0x8929[134], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[99]](_0xb0d6x3,[_0x8929[135],_0x8929[95],_0x8929[136],_0x8929[137],_0x8929[95],_0x8929[138],_0x8929[139]],_0xb0d6x4)})));this[_0x8929[30]](_0x8929[140], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[99]](_0xb0d6x3,[_0x8929[141],_0x8929[142],_0x8929[95]],_0xb0d6x4);this[_0x8929[94]](_0x8929[130],_0xb0d6x3,_0xb0d6x4);_0xb0d6x3[_0x8929[24]](_0xb0d6x4);this[_0x8929[99]](_0xb0d6x3,[_0x8929[95],_0x8929[143],_0x8929[144],_0x8929[145]],_0xb0d6x4);})));this[_0x8929[30]](_0x8929[146], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[99]](_0xb0d6x3,[_0x8929[147]],_0xb0d6x4);_0xb0d6x3[_0x8929[24]]();var _0xb0d6xd=[0.25,0.5,0.75,1,2,4];for(var _0xb0d6x6=0;_0xb0d6x6<_0xb0d6xd[_0x8929[18]];_0xb0d6x6++){(function(_0xb0d6xe){_0xb0d6x3[_0x8929[72]]((_0xb0d6xe*100)+_0x8929[148],null,function(){_0xb0d6x2[_0x8929[149]](_0xb0d6xe)},_0xb0d6x4)})(_0xb0d6xd[_0xb0d6x6])};this[_0x8929[99]](_0xb0d6x3,[_0x8929[95],_0x8929[150],_0x8929[151],_0x8929[95],_0x8929[152],_0x8929[153],_0x8929[95],_0x8929[154],_0x8929[155]],_0xb0d6x4);})));this[_0x8929[30]](_0x8929[156], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[99]](_0xb0d6x3,[_0x8929[157],_0x8929[158],_0x8929[95],_0x8929[159],_0x8929[160],_0x8929[161],_0x8929[95],_0x8929[162],_0x8929[95],_0x8929[163],_0x8929[164],_0x8929[95],_0x8929[165],_0x8929[95],_0x8929[166]],_0xb0d6x4)})));this[_0x8929[30]](_0x8929[167], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[99]](_0xb0d6x3,[_0x8929[168],_0x8929[169],_0x8929[95],_0x8929[170],_0x8929[171],_0x8929[172],_0x8929[173],_0x8929[95],_0x8929[174],_0x8929[95],_0x8929[175],_0x8929[176],_0x8929[177]])})));this[_0x8929[30]](_0x8929[178], new Menu(mxUtils[_0x8929[29]](this,function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[99]](_0xb0d6x3,[_0x8929[178],_0x8929[95],_0x8929[179]])})));};Menus[_0x8929[5]][_0x8929[30]]=function(_0xb0d6xf,_0xb0d6x3){this[_0x8929[1]][_0xb0d6xf]=_0xb0d6x3};Menus[_0x8929[5]][_0x8929[26]]=function(_0xb0d6xf){return this[_0x8929[1]][_0xb0d6xf]};Menus[_0x8929[5]][_0x8929[94]]=function(_0xb0d6xf,_0xb0d6x3,_0xb0d6x4){var _0xb0d6xb=this[_0x8929[26]](_0xb0d6xf)[_0x8929[78]];if(_0xb0d6x3[_0x8929[81]]||_0xb0d6xb){var _0xb0d6x10=_0xb0d6x3[_0x8929[72]](mxResources[_0x8929[26]](_0xb0d6xf),null,null,_0xb0d6x4,null,_0xb0d6xb);this[_0x8929[180]](_0xb0d6xf,_0xb0d6x3,_0xb0d6x10);};};Menus[_0x8929[5]][_0x8929[180]]=function(_0xb0d6xf,_0xb0d6x11,_0xb0d6x4){var _0xb0d6x3=this[_0x8929[26]](_0xb0d6xf);if(_0xb0d6x3!=null&&(_0xb0d6x11[_0x8929[81]]||_0xb0d6x3[_0x8929[78]])){this[_0x8929[26]](_0xb0d6xf)[_0x8929[181]](_0xb0d6x11,_0xb0d6x4)};};Menus[_0x8929[5]][_0x8929[20]]=function(_0xb0d6x3,_0xb0d6x12,_0xb0d6x13,_0xb0d6x14,_0xb0d6x15,_0xb0d6x4){return _0xb0d6x3[_0x8929[72]](_0xb0d6x12,null,mxUtils[_0x8929[29]](this,function(){var _0xb0d6x2=this[_0x8929[0]][_0x8929[7]][_0x8929[6]];_0xb0d6x2[_0x8929[183]]()[_0x8929[182]]();try{for(var _0xb0d6x6=0;_0xb0d6x6<_0xb0d6x13[_0x8929[18]];_0xb0d6x6++){_0xb0d6x2[_0x8929[184]](_0xb0d6x13[_0xb0d6x6],_0xb0d6x14[_0xb0d6x6])}}finally{_0xb0d6x2[_0x8929[183]]()[_0x8929[185]]()};}),_0xb0d6x4,_0xb0d6x15)};Menus[_0x8929[5]][_0x8929[28]]=function(_0xb0d6x3,_0xb0d6x12,_0xb0d6x16,_0xb0d6x17,_0xb0d6x18,_0xb0d6x4,_0xb0d6xb){return _0xb0d6x3[_0x8929[72]](_0xb0d6x12,null,mxUtils[_0x8929[29]](this,function(){var _0xb0d6x2=this[_0x8929[0]][_0x8929[7]][_0x8929[6]];var _0xb0d6x19=_0xb0d6x17;var _0xb0d6x1a=_0xb0d6x2[_0x8929[188]]()[_0x8929[187]](_0xb0d6x2[_0x8929[186]]());if(_0xb0d6x1a!=null){_0xb0d6x19=_0xb0d6x1a[_0x8929[21]][_0xb0d6x18]||_0xb0d6x19};_0xb0d6x19=mxUtils[_0x8929[191]](mxResources[_0x8929[26]](_0x8929[189])+((_0xb0d6x16[_0x8929[18]]>0)?(_0x8929[190]+_0xb0d6x16):_0x8929[27]),_0xb0d6x19);if(_0xb0d6x19!=null&&_0xb0d6x19[_0x8929[18]]>0){_0xb0d6x2[_0x8929[184]](_0xb0d6x18,_0xb0d6x19)};}),_0xb0d6x4,null,_0xb0d6xb)};Menus[_0x8929[5]][_0x8929[92]]=function(_0xb0d6x3,_0xb0d6x18,_0xb0d6x4){var _0xb0d6x1b=this[_0x8929[0]][_0x8929[80]][_0x8929[26]](_0xb0d6x18);if(_0xb0d6x1b!=null&&(_0xb0d6x3[_0x8929[81]]||_0xb0d6x1b[_0x8929[78]])){var _0xb0d6x1c=_0xb0d6x3[_0x8929[72]](_0xb0d6x1b[_0x8929[192]],null,_0xb0d6x1b[_0x8929[193]],_0xb0d6x4,null,_0xb0d6x1b[_0x8929[78]]);if(_0xb0d6x1b[_0x8929[194]]&&_0xb0d6x1b[_0x8929[195]]()){this[_0x8929[196]](_0xb0d6x1c)};this[_0x8929[197]](_0xb0d6x1c,_0xb0d6x1b);return _0xb0d6x1c;};return null;};Menus[_0x8929[5]][_0x8929[197]]=function(_0xb0d6x1c,_0xb0d6x1b){if(_0xb0d6x1b[_0x8929[198]]!=null){var _0xb0d6x1d=_0xb0d6x1c[_0x8929[23]][_0x8929[22]][_0x8929[22]];var _0xb0d6x1e=document[_0x8929[200]](_0x8929[199]);_0xb0d6x1e[_0x8929[21]][_0x8929[201]]=_0x8929[202];mxUtils[_0x8929[203]](_0xb0d6x1e,_0xb0d6x1b[_0x8929[198]]);_0xb0d6x1d[_0x8929[204]](_0xb0d6x1e);}};Menus[_0x8929[5]][_0x8929[196]]=function(_0xb0d6x1c){var _0xb0d6x1d=_0xb0d6x1c[_0x8929[23]][_0x8929[22]];_0xb0d6x1d[_0x8929[21]][_0x8929[205]]=_0x8929[206]+IMAGE_PATH+_0x8929[207];_0xb0d6x1d[_0x8929[21]][_0x8929[208]]=_0x8929[209];_0xb0d6x1d[_0x8929[21]][_0x8929[210]]=_0x8929[211];};Menus[_0x8929[5]][_0x8929[99]]=function(_0xb0d6x3,_0xb0d6x13,_0xb0d6x4){for(var _0xb0d6x6=0;_0xb0d6x6<_0xb0d6x13[_0x8929[18]];_0xb0d6x6++){if(_0xb0d6x13[_0xb0d6x6]==_0x8929[95]){_0xb0d6x3[_0x8929[24]](_0xb0d6x4)}else {this[_0x8929[92]](_0xb0d6x3,_0xb0d6x13[_0xb0d6x6],_0xb0d6x4)}}};Menus[_0x8929[5]][_0x8929[212]]=function(_0xb0d6x3,_0xb0d6x1f,_0xb0d6x20){var _0xb0d6x2=this[_0x8929[0]][_0x8929[7]][_0x8929[6]];_0xb0d6x3[_0x8929[213]]=true;if(_0xb0d6x2[_0x8929[214]]()){this[_0x8929[99]](_0xb0d6x3,[_0x8929[168],_0x8929[169],_0x8929[95],_0x8929[172],_0x8929[95]])}else {this[_0x8929[99]](_0xb0d6x3,[_0x8929[173],_0x8929[95],_0x8929[170],_0x8929[171],_0x8929[95],_0x8929[174]]);if(_0xb0d6x2[_0x8929[215]]()==1&&_0xb0d6x2[_0x8929[183]]()[_0x8929[216]](_0xb0d6x2[_0x8929[186]]())){this[_0x8929[99]](_0xb0d6x3,[_0x8929[217]])};_0xb0d6x3[_0x8929[24]]();};if(_0xb0d6x2[_0x8929[215]]()>0){this[_0x8929[99]](_0xb0d6x3,[_0x8929[141],_0x8929[142],_0x8929[95]]);if(_0xb0d6x2[_0x8929[183]]()[_0x8929[216]](_0xb0d6x2[_0x8929[186]]())){var _0xb0d6x21=false;var _0xb0d6x1f=_0xb0d6x2[_0x8929[186]]();if(_0xb0d6x1f!=null&&_0xb0d6x2[_0x8929[183]]()[_0x8929[216]](_0xb0d6x1f)){var _0xb0d6x22=_0xb0d6x2[_0x8929[219]][_0x8929[218]](_0xb0d6x1f);if(_0xb0d6x22 instanceof mxEdgeHandler&&_0xb0d6x22[_0x8929[220]]!=null&&_0xb0d6x22[_0x8929[220]][_0x8929[18]]>2){var _0xb0d6x23=_0xb0d6x22[_0x8929[221]]( new mxMouseEvent(_0xb0d6x20));var _0xb0d6x24=this[_0x8929[0]][_0x8929[80]][_0x8929[26]](_0x8929[222]);_0xb0d6x24[_0x8929[223]]=_0xb0d6x22;_0xb0d6x24[_0x8929[224]]=_0xb0d6x23;_0xb0d6x21=_0xb0d6x23>0&&_0xb0d6x23<_0xb0d6x22[_0x8929[220]][_0x8929[18]];};};this[_0x8929[99]](_0xb0d6x3,[_0x8929[95],(_0xb0d6x21)?_0x8929[222]:_0x8929[225]]);}else {if(_0xb0d6x2[_0x8929[215]]()>1){_0xb0d6x3[_0x8929[24]]();this[_0x8929[99]](_0xb0d6x3,[_0x8929[143]]);}};_0xb0d6x3[_0x8929[24]]();if(_0xb0d6x2[_0x8929[215]]()==1){var _0xb0d6x25=_0xb0d6x2[_0x8929[226]](_0xb0d6x2[_0x8929[186]]());if(_0xb0d6x25!=null){this[_0x8929[99]](_0xb0d6x3,[_0x8929[227]])};};}else {this[_0x8929[99]](_0xb0d6x3,[_0x8929[95],_0x8929[175],_0x8929[176],_0x8929[95],_0x8929[177]])};};Menus[_0x8929[5]][_0x8929[228]]=function(_0xb0d6x26){var _0xb0d6x27= new Menubar(this[_0x8929[0]],_0xb0d6x26);var _0xb0d6x28=[_0x8929[156],_0x8929[167],_0x8929[146],_0x8929[91],_0x8929[93],_0x8929[140],_0x8929[178]];for(var _0xb0d6x6=0;_0xb0d6x6<_0xb0d6x28[_0x8929[18]];_0xb0d6x6++){_0xb0d6x27[_0x8929[180]](mxResources[_0x8929[26]](_0xb0d6x28[_0xb0d6x6]),this[_0x8929[26]](_0xb0d6x28[_0xb0d6x6])[_0x8929[193]])};return _0xb0d6x27;};function Menubar(_0xb0d6x1,_0xb0d6x26){this[_0x8929[0]]=_0xb0d6x1;this[_0x8929[229]]=_0xb0d6x26;mxEvent[_0x8929[231]](document,mxUtils[_0x8929[29]](this,function(_0xb0d6x20){this[_0x8929[230]]()}));}Menubar[_0x8929[5]][_0x8929[230]]=function(){if(this[_0x8929[232]]!=null){this[_0x8929[232]][_0x8929[230]]()}};Menubar[_0x8929[5]][_0x8929[180]]=function(_0xb0d6x12,_0xb0d6x2a){var _0xb0d6x2b=document[_0x8929[200]](_0x8929[233]);_0xb0d6x2b[_0x8929[236]](_0x8929[234],_0x8929[235]);_0xb0d6x2b[_0x8929[237]]=_0x8929[238];mxUtils[_0x8929[203]](_0xb0d6x2b,_0xb0d6x12);this[_0x8929[239]](_0xb0d6x2b,_0xb0d6x2a);this[_0x8929[229]][_0x8929[204]](_0xb0d6x2b);return _0xb0d6x2b;};Menubar[_0x8929[5]][_0x8929[239]]=function(_0xb0d6x2b,_0xb0d6x2a){if(_0xb0d6x2a!=null){var _0xb0d6x2c=true;var _0xb0d6x2d=mxUtils[_0x8929[29]](this,function(_0xb0d6x20){if(_0xb0d6x2c&&_0xb0d6x2b[_0x8929[78]]==null||_0xb0d6x2b[_0x8929[78]]){this[_0x8929[0]][_0x8929[7]][_0x8929[6]][_0x8929[240]][_0x8929[230]]();var _0xb0d6x3= new mxPopupMenu(_0xb0d6x2a);_0xb0d6x3[_0x8929[241]][_0x8929[237]]+=_0x8929[242];_0xb0d6x3[_0x8929[213]]=true;_0xb0d6x3[_0x8929[81]]=true;_0xb0d6x3[_0x8929[243]]=true;_0xb0d6x3[_0x8929[230]]=mxUtils[_0x8929[29]](this,function(){mxPopupMenu[_0x8929[5]][_0x8929[230]][_0x8929[244]](_0xb0d6x3,arguments);_0xb0d6x3[_0x8929[245]]();this[_0x8929[232]]=null;this[_0x8929[246]]=null;});var _0xb0d6x2e=_0xb0d6x2b[_0x8929[247]]+document[_0x8929[250]](_0x8929[249])[_0x8929[248]]+22;var _0xb0d6x2f=_0xb0d6x2b[_0x8929[251]]+_0xb0d6x2b[_0x8929[252]]+140;_0xb0d6x3[_0x8929[253]](_0xb0d6x2e,_0xb0d6x2f,null,_0xb0d6x20);this[_0x8929[232]]=_0xb0d6x3;this[_0x8929[246]]=_0xb0d6x2b;};_0xb0d6x2c=true;mxEvent[_0x8929[254]](_0xb0d6x20);});mxEvent[_0x8929[256]](_0xb0d6x2b,_0x8929[255],mxUtils[_0x8929[29]](this,function(_0xb0d6x20){if(this[_0x8929[232]]!=null&&this[_0x8929[246]]!=_0xb0d6x2b){this[_0x8929[230]]();_0xb0d6x2d(_0xb0d6x20);}}));mxEvent[_0x8929[256]](_0xb0d6x2b,_0x8929[257],mxUtils[_0x8929[29]](this,function(){_0xb0d6x2c=this[_0x8929[246]]!=_0xb0d6x2b}));mxEvent[_0x8929[256]](_0xb0d6x2b,_0x8929[258],_0xb0d6x2d);}};function Menu(_0xb0d6x2a,_0xb0d6xb){mxEventSource[_0x8929[259]](this);this[_0x8929[193]]=_0xb0d6x2a;this[_0x8929[78]]=(_0xb0d6xb!=null)?_0xb0d6xb:true;}mxUtils[_0x8929[260]](Menu,mxEventSource);Menu[_0x8929[5]][_0x8929[261]]=function(_0xb0d6x19){if(this[_0x8929[78]]!=_0xb0d6x19){this[_0x8929[78]]=_0xb0d6x19;this[_0x8929[263]]( new mxEventObject(_0x8929[262]));}};Menu[_0x8929[5]][_0x8929[181]]=function(_0xb0d6x3,_0xb0d6x4){this[_0x8929[193]](_0xb0d6x3,_0xb0d6x4)};
\ No newline at end of file
index ba8678f..f7df574 100644 (file)
@@ -1 +1 @@
-var _0x730d=["\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x73\x69\x7A\x65","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6D\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x65\x6E\x64","\x63\x6C\x6F\x73\x65","\x63\x75\x62\x65","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x6E\x6F\x74\x65","\x74\x61\x62\x57\x69\x64\x74\x68","\x74\x61\x62\x48\x65\x69\x67\x68\x74","\x74\x61\x62\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x69\x67\x68\x74","\x6C\x65\x66\x74","\x66\x6F\x6C\x64\x65\x72","\x63\x61\x72\x64","\x71\x75\x61\x64\x54\x6F","\x74\x61\x70\x65","\x73\x74\x65\x70","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x65\x67\x69\x6E","\x73\x74\x72\x6F\x6B\x65","\x61\x70\x70\x6C\x79","\x70\x6C\x75\x73","\x64\x6F\x75\x62\x6C\x65","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x6D\x61\x78","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x79\x6D\x62\x6F\x6C","\x41\x6C\x69\x67\x6E","\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x57\x69\x64\x74\x68","\x48\x65\x69\x67\x68\x74","\x53\x70\x61\x63\x69\x6E\x67","\x41\x72\x63\x53\x70\x61\x63\x69\x6E\x67","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x73\x61\x76\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x72\x65\x73\x74\x6F\x72\x65","\x65\x78\x74","\x6D\x65\x73\x73\x61\x67\x65","\x61\x64\x64\x50\x69\x70\x65","\x63\x75\x72\x76\x65\x54\x6F","\x75\x6D\x6C\x41\x63\x74\x6F\x72","\x6C\x6F\x6C\x6C\x69\x70\x6F\x70","\x6A\x65\x74\x74\x79\x57\x69\x64\x74\x68","\x6A\x65\x74\x74\x79\x48\x65\x69\x67\x68\x74","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74","\x6F\x75\x74\x65\x72\x53\x74\x72\x6F\x6B\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x65\x6E\x64\x53\x74\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x74\x61\x74\x65","\x69\x6E\x69\x74\x53\x68\x61\x70\x65\x73","\x78","\x79","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x73\x68\x61\x70\x65\x73","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x72\x74","\x6C\x69\x6E\x6B","\x64\x61\x73\x68","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x73\x65\x47\x72\x69\x64\x46\x6F\x72\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x69\x6E\x69\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68","\x76\x69\x65\x77","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x73\x72\x63","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x74\x56\x69\x65\x77","\x63\x75\x72\x73\x6F\x72","\x6E\x6F\x64\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x43\x75\x72\x73\x6F\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74","\x72\x65\x64\x72\x61\x77","\x62\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x72\x6F\x79","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x6F\x75\x72\x63\x65","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x76\x65\x6E\x74","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x73\x63\x61\x6C\x65","\x73\x6E\x61\x70","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x70\x70\x6C\x79\x53\x74\x79\x6C\x65","\x72\x65\x73\x65\x74","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x73\x68\x61\x70\x65","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x63\x6F\x73","\x73\x69\x6E","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x50\x6F\x69\x6E\x74","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65\x55\x6E\x72\x6F\x74\x61\x74\x65\x64","\x72\x6F\x75\x6E\x64","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x63\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x61\x6C\x75\x65","\x73\x63\x61\x6C\x65\x46\x61\x63\x74\x6F\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x73\x74\x65\x6E\x63\x69\x6C","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73"];(function(){function _0xb26ex1(){}_0xb26ex1[_0x730d[0]]= new mxCylinder();_0xb26ex1[_0x730d[0]][_0x730d[1]]=_0xb26ex1;_0xb26ex1[_0x730d[0]][_0x730d[2]]=20;_0xb26ex1[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26ex8=Math[_0x730d[6]](_0xb26ex5,Math[_0x730d[6]](_0xb26ex6,mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[2],this[_0x730d[2]])));if(_0xb26ex7){_0xb26ex2[_0x730d[7]](_0xb26ex8,_0xb26ex6);_0xb26ex2[_0x730d[8]](_0xb26ex8,_0xb26ex8);_0xb26ex2[_0x730d[8]](0,0);_0xb26ex2[_0x730d[7]](_0xb26ex8,_0xb26ex8);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex8);_0xb26ex2[_0x730d[9]]();}else {_0xb26ex2[_0x730d[7]](0,0);_0xb26ex2[_0x730d[8]](_0xb26ex5-_0xb26ex8,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex8);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6);_0xb26ex2[_0x730d[8]](_0xb26ex8,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26ex6-_0xb26ex8);_0xb26ex2[_0x730d[8]](0,0);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[11]]=_0xb26ex1;function _0xb26ex9(){}_0xb26ex9[_0x730d[0]]= new mxCylinder();_0xb26ex9[_0x730d[0]][_0x730d[1]]=_0xb26ex9;_0xb26ex9[_0x730d[0]][_0x730d[2]]=30;_0xb26ex9[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26ex8=Math[_0x730d[6]](_0xb26ex5,Math[_0x730d[6]](_0xb26ex6,mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[2],this[_0x730d[2]])));if(_0xb26ex7){_0xb26ex2[_0x730d[7]](_0xb26ex5-_0xb26ex8,0);_0xb26ex2[_0x730d[8]](_0xb26ex5-_0xb26ex8,_0xb26ex8);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex8);_0xb26ex2[_0x730d[9]]();}else {_0xb26ex2[_0x730d[7]](0,0);_0xb26ex2[_0x730d[8]](_0xb26ex5-_0xb26ex8,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex8);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,0);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[13]]=_0xb26ex9;function _0xb26exa(){}_0xb26exa[_0x730d[0]]= new mxCylinder();_0xb26exa[_0x730d[0]][_0x730d[1]]=_0xb26exa;_0xb26exa[_0x730d[0]][_0x730d[14]]=60;_0xb26exa[_0x730d[0]][_0x730d[15]]=20;_0xb26exa[_0x730d[0]][_0x730d[16]]=_0x730d[17];_0xb26exa[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26exb=mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[14],this[_0x730d[14]]);var _0xb26exc=mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[15],this[_0x730d[15]]);var _0xb26exd=mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[16],this[_0x730d[16]]);var _0xb26exe=Math[_0x730d[6]](_0xb26ex5,_0xb26exb);var _0xb26exf=Math[_0x730d[6]](_0xb26ex6,_0xb26exc);if(_0xb26ex7){if(_0xb26exd==_0x730d[18]){_0xb26ex2[_0x730d[7]](0,_0xb26exf);_0xb26ex2[_0x730d[8]](_0xb26exe,_0xb26exf);}else {_0xb26ex2[_0x730d[7]](_0xb26ex5-_0xb26exe,_0xb26exf);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26exf);};_0xb26ex2[_0x730d[9]]();}else {if(_0xb26exd==_0x730d[18]){_0xb26ex2[_0x730d[7]](0,0);_0xb26ex2[_0x730d[8]](_0xb26exe,0);_0xb26ex2[_0x730d[8]](_0xb26exe,_0xb26exf);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26exf);}else {_0xb26ex2[_0x730d[7]](0,_0xb26exf);_0xb26ex2[_0x730d[8]](_0xb26ex5-_0xb26exe,_0xb26exf);_0xb26ex2[_0x730d[8]](_0xb26ex5-_0xb26exe,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,0);};_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26exf);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[19]]=_0xb26exa;function _0xb26ex10(){}_0xb26ex10[_0x730d[0]]= new mxCylinder();_0xb26ex10[_0x730d[0]][_0x730d[1]]=_0xb26ex10;_0xb26ex10[_0x730d[0]][_0x730d[2]]=30;_0xb26ex10[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26ex8=Math[_0x730d[6]](_0xb26ex5,Math[_0x730d[6]](_0xb26ex6,mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[2],this[_0x730d[2]])));if(!_0xb26ex7){_0xb26ex2[_0x730d[7]](_0xb26ex8,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26ex8);_0xb26ex2[_0x730d[8]](_0xb26ex8,0);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[20]]=_0xb26ex10;function _0xb26ex11(){}_0xb26ex11[_0x730d[0]]= new mxCylinder();_0xb26ex11[_0x730d[0]][_0x730d[1]]=_0xb26ex11;_0xb26ex11[_0x730d[0]][_0x730d[2]]=0.4;_0xb26ex11[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26ex8=mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[2],this[_0x730d[2]]);var _0xb26exf=_0xb26ex6*_0xb26ex8;var _0xb26ex12=1.4;if(!_0xb26ex7){_0xb26ex2[_0x730d[7]](0,_0xb26exf/2);_0xb26ex2[_0x730d[21]](_0xb26ex5/4,_0xb26exf*_0xb26ex12,_0xb26ex5/2,_0xb26exf/2);_0xb26ex2[_0x730d[21]](_0xb26ex5*3/4,_0xb26exf*(1-_0xb26ex12),_0xb26ex5,_0xb26exf/2);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6-_0xb26exf/2);_0xb26ex2[_0x730d[21]](_0xb26ex5*3/4,_0xb26ex6-_0xb26exf*_0xb26ex12,_0xb26ex5/2,_0xb26ex6-_0xb26exf/2);_0xb26ex2[_0x730d[21]](_0xb26ex5/4,_0xb26ex6-_0xb26exf*(1-_0xb26ex12),0,_0xb26ex6-_0xb26exf/2);_0xb26ex2[_0x730d[8]](0,_0xb26exf/2);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[22]]=_0xb26ex11;function _0xb26ex13(){}_0xb26ex13[_0x730d[0]]= new mxCylinder();_0xb26ex13[_0x730d[0]][_0x730d[1]]=_0xb26ex13;_0xb26ex13[_0x730d[0]][_0x730d[2]]=0.2;_0xb26ex13[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26ex8=_0xb26ex5*mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[2],this[_0x730d[2]]);if(!_0xb26ex7){_0xb26ex2[_0x730d[7]](0,0);_0xb26ex2[_0x730d[8]](_0xb26ex5-_0xb26ex8,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6/2);_0xb26ex2[_0x730d[8]](_0xb26ex5-_0xb26ex8,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26ex6);_0xb26ex2[_0x730d[8]](_0xb26ex8,_0xb26ex6/2);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[23]]=_0xb26ex13;function _0xb26ex14(){mxRectangleShape[_0x730d[24]](this)}mxUtils[_0x730d[25]](_0xb26ex14,mxRectangleShape);_0xb26ex14[_0x730d[0]][_0x730d[26]]=function(){return false};_0xb26ex14[_0x730d[0]][_0x730d[27]]=function(_0xb26ex15,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6){var _0xb26ex16=Math[_0x730d[6]](_0xb26ex5/5,_0xb26ex6/5)+1;_0xb26ex15[_0x730d[28]]();_0xb26ex15[_0x730d[7]](_0xb26ex3+_0xb26ex5/2,_0xb26ex4+_0xb26ex16);_0xb26ex15[_0x730d[8]](_0xb26ex3+_0xb26ex5/2,_0xb26ex4+_0xb26ex6-_0xb26ex16);_0xb26ex15[_0x730d[7]](_0xb26ex3+_0xb26ex16,_0xb26ex4+_0xb26ex6/2);_0xb26ex15[_0x730d[8]](_0xb26ex3+_0xb26ex5-_0xb26ex16,_0xb26ex4+_0xb26ex6/2);_0xb26ex15[_0x730d[9]]();_0xb26ex15[_0x730d[29]]();mxRectangleShape[_0x730d[0]][_0x730d[27]][_0x730d[30]](this,arguments);};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[31]]=_0xb26ex14;function _0xb26ex17(){mxRectangleShape[_0x730d[24]](this)}mxUtils[_0x730d[25]](_0xb26ex17,mxRectangleShape);_0xb26ex17[_0x730d[0]][_0x730d[26]]=function(){return false};_0xb26ex17[_0x730d[0]][_0x730d[27]]=function(_0xb26ex15,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6){if(this[_0x730d[4]]!=null){if(this[_0x730d[4]][_0x730d[32]]==1){var _0xb26ex18=Math[_0x730d[34]](2,this[_0x730d[33]]+1);mxRectangleShape[_0x730d[0]][_0x730d[35]][_0x730d[24]](this,_0xb26ex15,_0xb26ex3+_0xb26ex18,_0xb26ex4+_0xb26ex18,_0xb26ex5-2*_0xb26ex18,_0xb26ex6-2*_0xb26ex18);mxRectangleShape[_0x730d[0]][_0x730d[27]][_0x730d[30]](this,arguments);_0xb26ex3+=_0xb26ex18;_0xb26ex4+=_0xb26ex18;_0xb26ex5-=2*_0xb26ex18;_0xb26ex6-=2*_0xb26ex18;};_0xb26ex15[_0x730d[36]](false);var _0xb26ex19=0;var _0xb26ex1a=null;do{_0xb26ex1a=mxCellRenderer[_0x730d[0]][_0x730d[12]][this[_0x730d[4]][_0x730d[37]+_0xb26ex19]];if(_0xb26ex1a!=null){var _0xb26ex1b=this[_0x730d[4]][_0x730d[37]+_0xb26ex19+_0x730d[38]];var _0xb26ex1c=this[_0x730d[4]][_0x730d[37]+_0xb26ex19+_0x730d[39]];var _0xb26ex1d=this[_0x730d[4]][_0x730d[37]+_0xb26ex19+_0x730d[40]];var _0xb26ex1e=this[_0x730d[4]][_0x730d[37]+_0xb26ex19+_0x730d[41]];var _0xb26ex1f=this[_0x730d[4]][_0x730d[37]+_0xb26ex19+_0x730d[42]]||0;var _0xb26ex20=this[_0x730d[4]][_0x730d[37]+_0xb26ex19+_0x730d[43]];if(_0xb26ex20!=null){_0xb26ex1f+=this[_0x730d[44]](_0xb26ex5+this[_0x730d[33]],_0xb26ex6+this[_0x730d[33]])*_0xb26ex20};var _0xb26ex21=_0xb26ex3;var _0xb26ex22=_0xb26ex4;if(_0xb26ex1b==mxConstants[_0x730d[45]]){_0xb26ex21+=(_0xb26ex5-_0xb26ex1d)/2}else {if(_0xb26ex1b==mxConstants[_0x730d[46]]){_0xb26ex21+=_0xb26ex5-_0xb26ex1d-_0xb26ex1f}else {_0xb26ex21+=_0xb26ex1f}};if(_0xb26ex1c==mxConstants[_0x730d[47]]){_0xb26ex22+=(_0xb26ex6-_0xb26ex1e)/2}else {if(_0xb26ex1c==mxConstants[_0x730d[48]]){_0xb26ex22+=_0xb26ex6-_0xb26ex1e-_0xb26ex1f}else {_0xb26ex22+=_0xb26ex1f}};_0xb26ex15[_0x730d[49]]();var _0xb26ex23= new _0xb26ex1a();_0xb26ex23[_0x730d[4]]=this[_0x730d[4]];_0xb26ex1a[_0x730d[0]][_0x730d[50]][_0x730d[24]](_0xb26ex23,_0xb26ex15,_0xb26ex21,_0xb26ex22,_0xb26ex1d,_0xb26ex1e);_0xb26ex15[_0x730d[51]]();};_0xb26ex19++;}while(_0xb26ex1a!=null);;}};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[52]]=_0xb26ex17;function _0xb26ex24(){}_0xb26ex24[_0x730d[0]]= new mxCylinder();_0xb26ex24[_0x730d[0]][_0x730d[1]]=_0xb26ex24;_0xb26ex24[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){if(_0xb26ex7){_0xb26ex2[_0x730d[7]](0,0);_0xb26ex2[_0x730d[8]](_0xb26ex5/2,_0xb26ex6/2);_0xb26ex2[_0x730d[8]](_0xb26ex5,0);_0xb26ex2[_0x730d[9]]();}else {_0xb26ex2[_0x730d[7]](0,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6);_0xb26ex2[_0x730d[8]](0,_0xb26ex6);_0xb26ex2[_0x730d[10]]();}};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[53]]=_0xb26ex24;function _0xb26ex25(){}_0xb26ex25[_0x730d[0]]= new mxCylinder();_0xb26ex25[_0x730d[0]][_0x730d[1]]=_0xb26ex25;_0xb26ex25[_0x730d[0]][_0x730d[54]]=true;_0xb26ex25[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26ex1d=_0xb26ex5/3;var _0xb26ex1e=_0xb26ex6/4;if(!_0xb26ex7){_0xb26ex2[_0x730d[7]](_0xb26ex5/2,_0xb26ex1e);_0xb26ex2[_0x730d[55]](_0xb26ex5/2-_0xb26ex1d,_0xb26ex1e,_0xb26ex5/2-_0xb26ex1d,0,_0xb26ex5/2,0);_0xb26ex2[_0x730d[55]](_0xb26ex5/2+_0xb26ex1d,0,_0xb26ex5/2+_0xb26ex1d,_0xb26ex1e,_0xb26ex5/2,_0xb26ex1e);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[7]](_0xb26ex5/2,_0xb26ex1e);_0xb26ex2[_0x730d[8]](_0xb26ex5/2,2*_0xb26ex6/3);_0xb26ex2[_0x730d[7]](_0xb26ex5/2,_0xb26ex6/3);_0xb26ex2[_0x730d[8]](0,_0xb26ex6/3);_0xb26ex2[_0x730d[7]](_0xb26ex5/2,_0xb26ex6/3);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6/3);_0xb26ex2[_0x730d[7]](_0xb26ex5/2,2*_0xb26ex6/3);_0xb26ex2[_0x730d[8]](0,_0xb26ex6);_0xb26ex2[_0x730d[7]](_0xb26ex5/2,2*_0xb26ex6/3);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6);_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[56]]=_0xb26ex25;function _0xb26ex26(){}_0xb26ex26[_0x730d[0]]= new mxCylinder();_0xb26ex26[_0x730d[0]][_0x730d[1]]=_0xb26ex26;_0xb26ex26[_0x730d[0]][_0x730d[2]]=10;_0xb26ex26[_0x730d[0]][_0x730d[54]]=true;_0xb26ex26[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26ex27=mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[2],this[_0x730d[2]]);var _0xb26ex1d=_0xb26ex27*2/3;var _0xb26ex1e=_0xb26ex27;if(!_0xb26ex7){_0xb26ex2[_0x730d[7]](_0xb26ex5/2,_0xb26ex1e);_0xb26ex2[_0x730d[55]](_0xb26ex5/2-_0xb26ex1d,_0xb26ex1e,_0xb26ex5/2-_0xb26ex1d,0,_0xb26ex5/2,0);_0xb26ex2[_0x730d[55]](_0xb26ex5/2+_0xb26ex1d,0,_0xb26ex5/2+_0xb26ex1d,_0xb26ex1e,_0xb26ex5/2,_0xb26ex1e);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[7]](_0xb26ex5/2,_0xb26ex1e);_0xb26ex2[_0x730d[8]](_0xb26ex5/2,_0xb26ex6);_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[57]]=_0xb26ex26;function _0xb26ex28(){}_0xb26ex28[_0x730d[0]]= new mxCylinder();_0xb26ex28[_0x730d[0]][_0x730d[1]]=_0xb26ex28;_0xb26ex28[_0x730d[0]][_0x730d[58]]=32;_0xb26ex28[_0x730d[0]][_0x730d[59]]=12;_0xb26ex28[_0x730d[0]][_0x730d[3]]=function(_0xb26ex2,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6,_0xb26ex7){var _0xb26exe=mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[58],this[_0x730d[58]]);var _0xb26exf=mxUtils[_0x730d[5]](this[_0x730d[4]],_0x730d[59],this[_0x730d[59]]);var _0xb26ex29=_0xb26exe/2;var _0xb26ex2a=_0xb26ex29+_0xb26exe/2;var _0xb26ex2b=0.3*_0xb26ex6-_0xb26exf/2;var _0xb26ex2c=0.7*_0xb26ex6-_0xb26exf/2;if(_0xb26ex7){_0xb26ex2[_0x730d[7]](_0xb26ex29,_0xb26ex2b);_0xb26ex2[_0x730d[8]](_0xb26ex2a,_0xb26ex2b);_0xb26ex2[_0x730d[8]](_0xb26ex2a,_0xb26ex2b+_0xb26exf);_0xb26ex2[_0x730d[8]](_0xb26ex29,_0xb26ex2b+_0xb26exf);_0xb26ex2[_0x730d[7]](_0xb26ex29,_0xb26ex2c);_0xb26ex2[_0x730d[8]](_0xb26ex2a,_0xb26ex2c);_0xb26ex2[_0x730d[8]](_0xb26ex2a,_0xb26ex2c+_0xb26exf);_0xb26ex2[_0x730d[8]](_0xb26ex29,_0xb26ex2c+_0xb26exf);_0xb26ex2[_0x730d[9]]();}else {_0xb26ex2[_0x730d[7]](_0xb26ex29,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,0);_0xb26ex2[_0x730d[8]](_0xb26ex5,_0xb26ex6);_0xb26ex2[_0x730d[8]](_0xb26ex29,_0xb26ex6);_0xb26ex2[_0x730d[8]](_0xb26ex29,_0xb26ex2c+_0xb26exf);_0xb26ex2[_0x730d[8]](0,_0xb26ex2c+_0xb26exf);_0xb26ex2[_0x730d[8]](0,_0xb26ex2c);_0xb26ex2[_0x730d[8]](_0xb26ex29,_0xb26ex2c);_0xb26ex2[_0x730d[8]](_0xb26ex29,_0xb26ex2b+_0xb26exf);_0xb26ex2[_0x730d[8]](0,_0xb26ex2b+_0xb26exf);_0xb26ex2[_0x730d[8]](0,_0xb26ex2b);_0xb26ex2[_0x730d[8]](_0xb26ex29,_0xb26ex2b);_0xb26ex2[_0x730d[10]]();_0xb26ex2[_0x730d[9]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[60]]=_0xb26ex28;function _0xb26ex2d(){}_0xb26ex2d[_0x730d[0]]= new mxDoubleEllipse();_0xb26ex2d[_0x730d[0]][_0x730d[1]]=_0xb26ex2d;_0xb26ex2d[_0x730d[0]][_0x730d[61]]=true;_0xb26ex2d[_0x730d[0]][_0x730d[50]]=function(_0xb26ex15,_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6){var _0xb26ex18=Math[_0x730d[6]](4,Math[_0x730d[6]](_0xb26ex5/5,_0xb26ex6/5));if(_0xb26ex5>0&&_0xb26ex6>0){_0xb26ex15[_0x730d[62]](_0xb26ex3+_0xb26ex18,_0xb26ex4+_0xb26ex18,_0xb26ex5-2*_0xb26ex18,_0xb26ex6-2*_0xb26ex18);_0xb26ex15[_0x730d[63]]();};_0xb26ex15[_0x730d[64]](false);if(this[_0x730d[61]]){_0xb26ex15[_0x730d[62]](_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6);_0xb26ex15[_0x730d[29]]();};};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[65]]=_0xb26ex2d;function _0xb26ex2e(){}_0xb26ex2e[_0x730d[0]]= new _0xb26ex2d();_0xb26ex2e[_0x730d[0]][_0x730d[1]]=_0xb26ex2e;_0xb26ex2e[_0x730d[0]][_0x730d[61]]=false;mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[66]]=_0xb26ex2e;var _0xb26ex2f=mxImageExport[_0x730d[0]][_0x730d[67]];mxImageExport[_0x730d[0]][_0x730d[67]]=function(){_0xb26ex2f[_0x730d[30]](this,arguments);function _0xb26ex30(_0xb26ex31){return {drawShape:function(_0xb26ex32,_0xb26ex33,_0xb26ex34,_0xb26ex35){var _0xb26ex3=_0xb26ex34[_0x730d[68]];var _0xb26ex4=_0xb26ex34[_0x730d[69]];var _0xb26ex5=_0xb26ex34[_0x730d[70]];var _0xb26ex6=_0xb26ex34[_0x730d[71]];if(_0xb26ex35){var _0xb26ex18=Math[_0x730d[6]](4,Math[_0x730d[6]](_0xb26ex5/5,_0xb26ex6/5));_0xb26ex3+=_0xb26ex18;_0xb26ex4+=_0xb26ex18;_0xb26ex5-=2*_0xb26ex18;_0xb26ex6-=2*_0xb26ex18;if(_0xb26ex5>0&&_0xb26ex6>0){_0xb26ex32[_0x730d[62]](_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6)};return true;}else {_0xb26ex32[_0x730d[63]]();if(_0xb26ex31){_0xb26ex32[_0x730d[62]](_0xb26ex3,_0xb26ex4,_0xb26ex5,_0xb26ex6);_0xb26ex32[_0x730d[29]]();};};}}}this[_0x730d[72]][_0x730d[65]]=_0xb26ex30(true);this[_0x730d[72]][_0x730d[66]]=_0xb26ex30(false);};function _0xb26ex36(){mxArrow[_0x730d[24]](this)}mxUtils[_0x730d[25]](_0xb26ex36,mxArrow);_0xb26ex36[_0x730d[0]][_0x730d[73]]=function(_0xb26ex15,_0xb26ex37){var _0xb26ex1d=10;var _0xb26ex38=_0xb26ex37[0];var _0xb26ex39=_0xb26ex37[_0xb26ex37[_0x730d[74]]-1];var _0xb26exe=_0xb26ex39[_0x730d[68]]-_0xb26ex38[_0x730d[68]];var _0xb26exf=_0xb26ex39[_0x730d[69]]-_0xb26ex38[_0x730d[69]];var _0xb26ex3a=Math[_0x730d[75]](_0xb26exe*_0xb26exe+_0xb26exf*_0xb26exf);var _0xb26ex3b=_0xb26ex3a;var _0xb26ex3c=_0xb26exe/_0xb26ex3a;var _0xb26ex3d=_0xb26exf/_0xb26ex3a;var _0xb26ex3e=_0xb26ex3b*_0xb26ex3c;var _0xb26ex3f=_0xb26ex3b*_0xb26ex3d;var _0xb26ex40=_0xb26ex1d*_0xb26ex3d/3;var _0xb26ex41=-_0xb26ex1d*_0xb26ex3c/3;var _0xb26ex42=_0xb26ex38[_0x730d[68]]-_0xb26ex40/2;var _0xb26ex43=_0xb26ex38[_0x730d[69]]-_0xb26ex41/2;var _0xb26ex44=_0xb26ex42+_0xb26ex40;var _0xb26ex45=_0xb26ex43+_0xb26ex41;var _0xb26ex46=_0xb26ex44+_0xb26ex3e;var _0xb26ex47=_0xb26ex45+_0xb26ex3f;var _0xb26ex48=_0xb26ex46+_0xb26ex40;var _0xb26ex49=_0xb26ex47+_0xb26ex41;var _0xb26ex4a=_0xb26ex48-3*_0xb26ex40;var _0xb26ex4b=_0xb26ex49-3*_0xb26ex41;_0xb26ex15[_0x730d[28]]();_0xb26ex15[_0x730d[7]](_0xb26ex44,_0xb26ex45);_0xb26ex15[_0x730d[8]](_0xb26ex46,_0xb26ex47);_0xb26ex15[_0x730d[7]](_0xb26ex4a+_0xb26ex40,_0xb26ex4b+_0xb26ex41);_0xb26ex15[_0x730d[8]](_0xb26ex42,_0xb26ex43);_0xb26ex15[_0x730d[29]]();};mxCellRenderer[_0x730d[0]][_0x730d[12]][_0x730d[76]]=_0xb26ex36;mxMarker[_0x730d[78]](_0x730d[77],function(_0xb26ex32,_0xb26ex1a,_0xb26ex4c,_0xb26ex39,_0xb26ex4d,_0xb26ex4e,_0xb26ex4f,_0xb26ex50,_0xb26ex51,_0xb26ex52){var _0xb26ex3c=_0xb26ex4d*(_0xb26ex4f+_0xb26ex51+1);var _0xb26ex3d=_0xb26ex4e*(_0xb26ex4f+_0xb26ex51+1);return function(){_0xb26ex32[_0x730d[28]]();_0xb26ex32[_0x730d[7]](_0xb26ex39[_0x730d[68]]-_0xb26ex3c/2-_0xb26ex3d/2,_0xb26ex39[_0x730d[69]]-_0xb26ex3d/2+_0xb26ex3c/2);_0xb26ex32[_0x730d[8]](_0xb26ex39[_0x730d[68]]+_0xb26ex3d/2-3*_0xb26ex3c/2,_0xb26ex39[_0x730d[69]]-3*_0xb26ex3d/2-_0xb26ex3c/2);_0xb26ex32[_0x730d[29]]();};});var _0xb26ex53=-99;if( typeof (mxVertexHandler)!=_0x730d[79]){function _0xb26ex54(_0xb26ex33){mxVertexHandler[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex54,mxVertexHandler);_0xb26ex54[_0x730d[0]][_0x730d[80]]=false;_0xb26ex54[_0x730d[0]][_0x730d[81]]=function(){this[_0x730d[82]]=mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],mxConstants.STYLE_HORIZONTAL,true);var _0xb26ex55=this[_0x730d[83]][_0x730d[85]][_0x730d[84]];if(this[_0x730d[86]]!=null){var _0xb26ex34= new mxRectangle(0,0,this[_0x730d[86]][_0x730d[70]],this[_0x730d[86]][_0x730d[71]]);this[_0x730d[87]]= new mxImageShape(_0xb26ex34,this[_0x730d[86]][_0x730d[88]]);}else {var _0xb26ex4f=10;var _0xb26ex34= new mxRectangle(0,0,_0xb26ex4f,_0xb26ex4f);this[_0x730d[87]]= new mxRhombus(_0xb26ex34,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);};this[_0x730d[87]][_0x730d[89]]=(_0xb26ex55[_0x730d[89]]!=mxConstants[_0x730d[90]])?mxConstants[_0x730d[91]]:mxConstants[_0x730d[90]];this[_0x730d[87]][_0x730d[81]](_0xb26ex55[_0x730d[93]]()[_0x730d[92]]());this[_0x730d[87]][_0x730d[95]][_0x730d[4]][_0x730d[94]]=this[_0x730d[96]]();mxEvent[_0x730d[97]](this[_0x730d[87]][_0x730d[95]],_0xb26ex55,this[_0x730d[83]]);mxVertexHandler[_0x730d[0]][_0x730d[81]][_0x730d[30]](this,arguments);};_0xb26ex54[_0x730d[0]][_0x730d[96]]=function(){return _0x730d[98]};_0xb26ex54[_0x730d[0]][_0x730d[99]]=function(){mxVertexHandler[_0x730d[0]][_0x730d[99]][_0x730d[30]](this,arguments);var _0xb26ex4f=this[_0x730d[87]][_0x730d[100]][_0x730d[70]];this[_0x730d[87]][_0x730d[100]]=this[_0x730d[101]](_0xb26ex4f);this[_0x730d[87]][_0x730d[99]]();};_0xb26ex54[_0x730d[0]][_0x730d[102]]=function(){mxVertexHandler[_0x730d[0]][_0x730d[102]][_0x730d[30]](this,arguments);if(this[_0x730d[87]]!=null){this[_0x730d[87]][_0x730d[102]]();this[_0x730d[87]]=null;};};_0xb26ex54[_0x730d[0]][_0x730d[103]]=function(_0xb26ex56){if(_0xb26ex56[_0x730d[104]](this[_0x730d[87]])){return _0xb26ex53};return mxVertexHandler[_0x730d[0]][_0x730d[103]][_0x730d[30]](this,arguments);};_0xb26ex54[_0x730d[0]][_0x730d[105]]=function(_0xb26ex57,_0xb26ex56){if(!_0xb26ex56[_0x730d[106]]()&&this[_0x730d[107]]==_0xb26ex53){var _0xb26ex58= new mxPoint(_0xb26ex56[_0x730d[108]](),_0xb26ex56[_0x730d[109]]());this[_0x730d[110]](_0xb26ex58);var _0xb26ex59=this[_0x730d[84]][_0x730d[112]](_0xb26ex56[_0x730d[111]]());var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];if(_0xb26ex59&&this[_0x730d[80]]){_0xb26ex58[_0x730d[68]]=this[_0x730d[84]][_0x730d[114]](_0xb26ex58[_0x730d[68]]/_0xb26ex5a)*_0xb26ex5a;_0xb26ex58[_0x730d[69]]=this[_0x730d[84]][_0x730d[114]](_0xb26ex58[_0x730d[69]]/_0xb26ex5a)*_0xb26ex5a;};this[_0x730d[115]](_0xb26ex58);this[_0x730d[116]](this[_0x730d[87]],_0xb26ex58[_0x730d[68]],_0xb26ex58[_0x730d[69]]);this[_0x730d[83]][_0x730d[85]][_0x730d[84]][_0x730d[117]][_0x730d[99]](this[_0x730d[83]],true);_0xb26ex56[_0x730d[118]]();}else {mxVertexHandler[_0x730d[0]][_0x730d[105]][_0x730d[30]](this,arguments)}};_0xb26ex54[_0x730d[0]][_0x730d[119]]=function(_0xb26ex57,_0xb26ex56){if(!_0xb26ex56[_0x730d[106]]()&&this[_0x730d[107]]==_0xb26ex53){this[_0x730d[120]]();this[_0x730d[121]]();_0xb26ex56[_0x730d[118]]();}else {mxVertexHandler[_0x730d[0]][_0x730d[119]][_0x730d[30]](this,arguments)}};_0xb26ex54[_0x730d[0]][_0x730d[101]]=function(_0xb26ex4f){var _0xb26ex5b=this[_0x730d[83]][_0x730d[123]][_0x730d[122]]();var _0xb26ex5c=mxUtils[_0x730d[124]](_0xb26ex5b);var _0xb26ex5d=Math[_0x730d[125]](_0xb26ex5c);var _0xb26ex5e=Math[_0x730d[126]](_0xb26ex5c);var _0xb26ex34= new mxRectangle(this[_0x730d[83]][_0x730d[68]],this[_0x730d[83]][_0x730d[69]],this[_0x730d[83]][_0x730d[70]],this[_0x730d[83]][_0x730d[71]]);if(this[_0x730d[83]][_0x730d[123]][_0x730d[127]]()){var _0xb26ex5f=(_0xb26ex34[_0x730d[70]]-_0xb26ex34[_0x730d[71]])/2;_0xb26ex34[_0x730d[68]]+=_0xb26ex5f;_0xb26ex34[_0x730d[69]]-=_0xb26ex5f;var _0xb26ex23=_0xb26ex34[_0x730d[70]];_0xb26ex34[_0x730d[70]]=_0xb26ex34[_0x730d[71]];_0xb26ex34[_0x730d[71]]=_0xb26ex23;};var _0xb26ex60=this[_0x730d[128]](_0xb26ex34);if(this[_0x730d[83]][_0x730d[123]][_0x730d[129]]){_0xb26ex60[_0x730d[68]]=2*_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]-_0xb26ex60[_0x730d[68]]};if(this[_0x730d[83]][_0x730d[123]][_0x730d[130]]){_0xb26ex60[_0x730d[69]]=2*_0xb26ex34[_0x730d[69]]+_0xb26ex34[_0x730d[71]]-_0xb26ex60[_0x730d[69]]};_0xb26ex60=mxUtils[_0x730d[133]](_0xb26ex60,_0xb26ex5d,_0xb26ex5e, new mxPoint(this[_0x730d[83]][_0x730d[131]](),this[_0x730d[83]][_0x730d[132]]()));return  new mxRectangle(_0xb26ex60[_0x730d[68]]-_0xb26ex4f/2,_0xb26ex60[_0x730d[69]]-_0xb26ex4f/2,_0xb26ex4f,_0xb26ex4f);};_0xb26ex54[_0x730d[0]][_0x730d[128]]=function(_0xb26ex34){return null};_0xb26ex54[_0x730d[0]][_0x730d[115]]=function(_0xb26ex58){};_0xb26ex54[_0x730d[0]][_0x730d[110]]=function(_0xb26ex58){_0xb26ex58[_0x730d[68]]=Math[_0x730d[34]](this[_0x730d[83]][_0x730d[68]],Math[_0x730d[6]](this[_0x730d[83]][_0x730d[68]]+this[_0x730d[83]][_0x730d[70]],_0xb26ex58[_0x730d[68]]));_0xb26ex58[_0x730d[69]]=Math[_0x730d[34]](this[_0x730d[83]][_0x730d[69]],Math[_0x730d[6]](this[_0x730d[83]][_0x730d[69]]+this[_0x730d[83]][_0x730d[71]],_0xb26ex58[_0x730d[69]]));};_0xb26ex54[_0x730d[0]][_0x730d[120]]=function(){};function _0xb26ex61(_0xb26ex33){_0xb26ex54[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex61,_0xb26ex54);_0xb26ex61[_0x730d[0]][_0x730d[128]]=function(_0xb26ex34){var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];var _0xb26exb=Math[_0x730d[6]](_0xb26ex34[_0x730d[70]],mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[14],60)*_0xb26ex5a);var _0xb26exc=Math[_0x730d[6]](_0xb26ex34[_0x730d[71]],mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[15],20)*_0xb26ex5a);var _0xb26exd=mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[16],_0x730d[17]);var _0xb26ex3=(_0xb26exd==_0x730d[18])?_0xb26ex34[_0x730d[68]]+_0xb26exb:_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]-_0xb26exb;return  new mxPoint(_0xb26ex3,_0xb26ex34[_0x730d[69]]+_0xb26exc);};_0xb26ex61[_0x730d[0]][_0x730d[115]]=function(_0xb26ex58){var _0xb26ex5b=this[_0x730d[83]][_0x730d[123]][_0x730d[122]]();var _0xb26ex5c=mxUtils[_0x730d[124]](_0xb26ex5b);var _0xb26ex5d=Math[_0x730d[125]](-_0xb26ex5c);var _0xb26ex5e=Math[_0x730d[126]](-_0xb26ex5c);var _0xb26ex34= new mxRectangle(this[_0x730d[83]][_0x730d[68]],this[_0x730d[83]][_0x730d[69]],this[_0x730d[83]][_0x730d[70]],this[_0x730d[83]][_0x730d[71]]);if(this[_0x730d[83]][_0x730d[123]][_0x730d[127]]()){var _0xb26ex5f=(_0xb26ex34[_0x730d[70]]-_0xb26ex34[_0x730d[71]])/2;_0xb26ex34[_0x730d[68]]+=_0xb26ex5f;_0xb26ex34[_0x730d[69]]-=_0xb26ex5f;var _0xb26ex23=_0xb26ex34[_0x730d[70]];_0xb26ex34[_0x730d[70]]=_0xb26ex34[_0x730d[71]];_0xb26ex34[_0x730d[71]]=_0xb26ex23;};var _0xb26ex60= new mxPoint(_0xb26ex58[_0x730d[68]],_0xb26ex58[_0x730d[69]]);_0xb26ex60=mxUtils[_0x730d[133]](_0xb26ex60,_0xb26ex5d,_0xb26ex5e, new mxPoint(this[_0x730d[83]][_0x730d[131]](),this[_0x730d[83]][_0x730d[132]]()));if(this[_0x730d[83]][_0x730d[123]][_0x730d[129]]){_0xb26ex60[_0x730d[68]]=2*_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]-_0xb26ex60[_0x730d[68]]};if(this[_0x730d[83]][_0x730d[123]][_0x730d[130]]){_0xb26ex60[_0x730d[69]]=2*_0xb26ex34[_0x730d[69]]+_0xb26ex34[_0x730d[71]]-_0xb26ex60[_0x730d[69]]};var _0xb26ex62=this[_0x730d[134]](_0xb26ex60,_0xb26ex34);if(_0xb26ex62!=null){if(this[_0x730d[83]][_0x730d[123]][_0x730d[129]]){_0xb26ex62[_0x730d[68]]=2*_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]-_0xb26ex62[_0x730d[68]]};if(this[_0x730d[83]][_0x730d[123]][_0x730d[130]]){_0xb26ex62[_0x730d[69]]=2*_0xb26ex34[_0x730d[69]]+_0xb26ex34[_0x730d[71]]-_0xb26ex62[_0x730d[69]]};_0xb26ex5d=Math[_0x730d[125]](_0xb26ex5c);_0xb26ex5e=Math[_0x730d[126]](_0xb26ex5c);_0xb26ex62=mxUtils[_0x730d[133]](_0xb26ex62,_0xb26ex5d,_0xb26ex5e, new mxPoint(this[_0x730d[83]][_0x730d[131]](),this[_0x730d[83]][_0x730d[132]]()));_0xb26ex58[_0x730d[68]]=_0xb26ex62[_0x730d[68]];_0xb26ex58[_0x730d[69]]=_0xb26ex62[_0x730d[69]];};};_0xb26ex61[_0x730d[0]][_0x730d[134]]=function(_0xb26ex60,_0xb26ex34){var _0xb26exd=mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[16],_0x730d[17]);var _0xb26exb=(_0xb26exd==_0x730d[18])?_0xb26ex60[_0x730d[68]]-_0xb26ex34[_0x730d[68]]:_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]-_0xb26ex60[_0x730d[68]];var _0xb26exc=_0xb26ex60[_0x730d[69]]-_0xb26ex34[_0x730d[69]];var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];this[_0x730d[83]][_0x730d[4]][_0x730d[14]]=Math[_0x730d[135]](Math[_0x730d[34]](1,_0xb26exb)/_0xb26ex5a);this[_0x730d[83]][_0x730d[4]][_0x730d[15]]=Math[_0x730d[135]](Math[_0x730d[34]](1,_0xb26exc)/_0xb26ex5a);};_0xb26ex61[_0x730d[0]][_0x730d[120]]=function(){var _0xb26ex63=this[_0x730d[84]][_0x730d[136]]();_0xb26ex63[_0x730d[137]]();try{this[_0x730d[83]][_0x730d[85]][_0x730d[84]][_0x730d[139]](_0x730d[14],this[_0x730d[83]][_0x730d[4]][_0x730d[14]],[this[_0x730d[83]][_0x730d[138]]]);this[_0x730d[83]][_0x730d[85]][_0x730d[84]][_0x730d[139]](_0x730d[15],this[_0x730d[83]][_0x730d[4]][_0x730d[15]],[this[_0x730d[83]][_0x730d[138]]]);}finally{_0xb26ex63[_0x730d[140]]()};};function _0xb26ex64(_0xb26ex33){_0xb26ex61[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex64,_0xb26ex61);_0xb26ex64[_0x730d[0]][_0x730d[128]]=function(_0xb26ex34){var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];var _0xb26ex65=mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]/2,_0xb26ex34[_0x730d[69]]+Math[_0x730d[6]](_0xb26ex34[_0x730d[71]],_0xb26ex65*_0xb26ex5a));};_0xb26ex64[_0x730d[0]][_0x730d[134]]=function(_0xb26ex58,_0xb26ex34){_0xb26ex58[_0x730d[68]]=_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]/2;startSize=_0xb26ex58[_0x730d[69]]-_0xb26ex34[_0x730d[69]];var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];this[_0x730d[83]][_0x730d[4]][_0x730d[141]]=Math[_0x730d[135]](Math[_0x730d[34]](1,startSize)/_0xb26ex5a);return _0xb26ex58;};_0xb26ex64[_0x730d[0]][_0x730d[120]]=function(){this[_0x730d[83]][_0x730d[85]][_0x730d[84]][_0x730d[139]](_0x730d[141],this[_0x730d[83]][_0x730d[4]][_0x730d[141]],[this[_0x730d[83]][_0x730d[138]]])};function _0xb26ex66(_0xb26ex33){_0xb26ex61[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex66,_0xb26ex61);_0xb26ex66[_0x730d[0]][_0x730d[142]]=20;_0xb26ex66[_0x730d[0]][_0x730d[143]]=1;_0xb26ex66[_0x730d[0]][_0x730d[128]]=function(_0xb26ex34){var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];var _0xb26ex67=Math[_0x730d[6]](_0xb26ex34[_0x730d[70]],Math[_0x730d[6]](_0xb26ex34[_0x730d[71]],mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[2],this[_0x730d[142]])*_0xb26ex5a/this[_0x730d[143]]));return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex67,_0xb26ex34[_0x730d[69]]+_0xb26ex67);};_0xb26ex66[_0x730d[0]][_0x730d[134]]=function(_0xb26ex60,_0xb26ex34){var _0xb26ex4f=Math[_0x730d[34]](0,Math[_0x730d[6]](Math[_0x730d[6]](_0xb26ex34[_0x730d[70]]/this[_0x730d[143]],_0xb26ex60[_0x730d[68]]-_0xb26ex34[_0x730d[68]]),Math[_0x730d[6]](_0xb26ex34[_0x730d[71]]/this[_0x730d[143]],_0xb26ex60[_0x730d[69]]-_0xb26ex34[_0x730d[69]])));var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];this[_0x730d[83]][_0x730d[4]][_0x730d[2]]=Math[_0x730d[135]](Math[_0x730d[34]](1,_0xb26ex4f)/_0xb26ex5a)*this[_0x730d[143]];return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex4f,_0xb26ex34[_0x730d[69]]+_0xb26ex4f);};_0xb26ex66[_0x730d[0]][_0x730d[120]]=function(){this[_0x730d[83]][_0x730d[85]][_0x730d[84]][_0x730d[139]](_0x730d[2],this[_0x730d[83]][_0x730d[4]][_0x730d[2]],[this[_0x730d[83]][_0x730d[138]]])};function _0xb26ex68(_0xb26ex33){_0xb26ex66[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex68,_0xb26ex66);_0xb26ex68[_0x730d[0]][_0x730d[142]]=30;_0xb26ex68[_0x730d[0]][_0x730d[143]]=2;function _0xb26ex69(_0xb26ex33){_0xb26ex66[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex69,_0xb26ex66);_0xb26ex69[_0x730d[0]][_0x730d[142]]=30;_0xb26ex69[_0x730d[0]][_0x730d[143]]=1;_0xb26ex69[_0x730d[0]][_0x730d[128]]=function(_0xb26ex34){var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];var _0xb26ex67=Math[_0x730d[6]](_0xb26ex34[_0x730d[70]],Math[_0x730d[6]](_0xb26ex34[_0x730d[71]],mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[2],this[_0x730d[142]])*_0xb26ex5a/this[_0x730d[143]]));return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]-_0xb26ex67,_0xb26ex34[_0x730d[69]]+_0xb26ex67);};_0xb26ex69[_0x730d[0]][_0x730d[134]]=function(_0xb26ex60,_0xb26ex34){var _0xb26ex4f=Math[_0x730d[34]](0,Math[_0x730d[6]](Math[_0x730d[6]](_0xb26ex34[_0x730d[70]]/this[_0x730d[143]],_0xb26ex60[_0x730d[68]]-_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]),Math[_0x730d[6]](_0xb26ex34[_0x730d[71]]/this[_0x730d[143]],_0xb26ex60[_0x730d[69]]-_0xb26ex34[_0x730d[69]])));var _0xb26ex5a=this[_0x730d[84]][_0x730d[93]]()[_0x730d[113]];this[_0x730d[83]][_0x730d[4]][_0x730d[2]]=Math[_0x730d[135]](Math[_0x730d[34]](1,_0xb26ex4f)/_0xb26ex5a)*this[_0x730d[143]];return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]-_0xb26ex4f,_0xb26ex34[_0x730d[69]]+_0xb26ex4f);};function _0xb26ex6a(_0xb26ex33){_0xb26ex66[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex6a,_0xb26ex66);_0xb26ex6a[_0x730d[0]][_0x730d[142]]=0.2;_0xb26ex6a[_0x730d[0]][_0x730d[143]]=1;_0xb26ex6a[_0x730d[0]][_0x730d[128]]=function(_0xb26ex34){var _0xb26ex67=mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[2],this[_0x730d[142]]);return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]*_0xb26ex67,_0xb26ex34[_0x730d[69]]+_0xb26ex34[_0x730d[71]]/2);};_0xb26ex6a[_0x730d[0]][_0x730d[134]]=function(_0xb26ex60,_0xb26ex34){var _0xb26ex4f=Math[_0x730d[6]](1,(_0xb26ex60[_0x730d[68]]-_0xb26ex34[_0x730d[68]])/_0xb26ex34[_0x730d[70]]);this[_0x730d[83]][_0x730d[4]][_0x730d[2]]=_0xb26ex4f;return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex4f*_0xb26ex34[_0x730d[70]],_0xb26ex34[_0x730d[69]]+_0xb26ex34[_0x730d[71]]/2);};function _0xb26ex6b(_0xb26ex33){_0xb26ex66[_0x730d[24]](this,_0xb26ex33)}mxUtils[_0x730d[25]](_0xb26ex6b,_0xb26ex66);_0xb26ex6b[_0x730d[0]][_0x730d[142]]=0.4;_0xb26ex6b[_0x730d[0]][_0x730d[143]]=1;_0xb26ex6b[_0x730d[0]][_0x730d[128]]=function(_0xb26ex34){var _0xb26ex67=mxUtils[_0x730d[5]](this[_0x730d[83]][_0x730d[4]],_0x730d[2],this[_0x730d[142]]);return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]/2,_0xb26ex34[_0x730d[69]]+_0xb26ex67*_0xb26ex34[_0x730d[71]]/2);};_0xb26ex6b[_0x730d[0]][_0x730d[134]]=function(_0xb26ex60,_0xb26ex34){var _0xb26ex4f=Math[_0x730d[34]](0,Math[_0x730d[6]](1,((_0xb26ex60[_0x730d[69]]-_0xb26ex34[_0x730d[69]])/_0xb26ex34[_0x730d[71]])*2));this[_0x730d[83]][_0x730d[4]][_0x730d[2]]=_0xb26ex4f;return  new mxPoint(_0xb26ex34[_0x730d[68]]+_0xb26ex34[_0x730d[70]]/2,_0xb26ex34[_0x730d[69]]+_0xb26ex4f*_0xb26ex34[_0x730d[71]]/2);};var _0xb26ex6c={"\x73\x77\x69\x6D\x6C\x61\x6E\x65":_0xb26ex64,"\x66\x6F\x6C\x64\x65\x72":_0xb26ex61,"\x63\x75\x62\x65":_0xb26ex66,"\x63\x61\x72\x64":_0xb26ex68,"\x6E\x6F\x74\x65":_0xb26ex69,"\x73\x74\x65\x70":_0xb26ex6a,"\x74\x61\x70\x65":_0xb26ex6b};var _0xb26ex6d=mxGraph[_0x730d[0]][_0x730d[144]];mxGraph[_0x730d[0]][_0x730d[144]]=function(_0xb26ex33){if(_0xb26ex33!=null){var _0xb26ex6e=_0xb26ex6c[_0xb26ex33[_0x730d[4]][_0x730d[123]]];if(_0xb26ex6e!=null){return  new _0xb26ex6e(_0xb26ex33)};};return _0xb26ex6d[_0x730d[30]](this,arguments);};};mxGraph[_0x730d[0]][_0x730d[145]]=function(_0xb26ex6f,_0xb26ex50){if(_0xb26ex6f!=null&&_0xb26ex6f[_0x730d[123]]!=null){if(_0xb26ex6f[_0x730d[123]][_0x730d[146]]!=null){if(_0xb26ex6f[_0x730d[123]][_0x730d[146]]!=null){return _0xb26ex6f[_0x730d[123]][_0x730d[146]][_0x730d[147]]}}else {if(_0xb26ex6f[_0x730d[123]][_0x730d[147]]!=null){return _0xb26ex6f[_0x730d[123]][_0x730d[147]]}}};return null;};mxRectangleShape[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxLabel[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];mxImageShape[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];mxSwimlane[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];_0xb26ex14[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];_0xb26ex9[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];_0xb26ex10[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];_0xb26ex1[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];_0xb26exa[_0x730d[0]][_0x730d[147]]=mxRectangleShape[_0x730d[0]][_0x730d[147]];mxCylinder[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.15,0.05),false), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.85,0.05),false), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.3),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.7),true), new mxConnectionConstraint( new mxPoint(0.15,0.95),false), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.85,0.95),false)];_0xb26ex25[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.1),false), new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.75,0.1),false), new mxConnectionConstraint( new mxPoint(0,1/3),false), new mxConnectionConstraint( new mxPoint(0,1),false), new mxConnectionConstraint( new mxPoint(1,1/3),false), new mxConnectionConstraint( new mxPoint(1,1),false), new mxConnectionConstraint( new mxPoint(0.5,0.5),false)];_0xb26ex28[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxActor[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.25,0.2),false), new mxConnectionConstraint( new mxPoint(0.1,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.75,0.25),false), new mxConnectionConstraint( new mxPoint(0.9,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];_0xb26ex11[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.35),false), new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.65),false), new mxConnectionConstraint( new mxPoint(1,0.35),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.65),false), new mxConnectionConstraint( new mxPoint(0.25,1),false), new mxConnectionConstraint( new mxPoint(0.75,0),false)];_0xb26ex13[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true), new mxConnectionConstraint( new mxPoint(0.1,0.25),false), new mxConnectionConstraint( new mxPoint(0.2,0.5),false), new mxConnectionConstraint( new mxPoint(0.1,0.75),false), new mxConnectionConstraint( new mxPoint(0.9,0.25),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(0.9,0.75),false)];mxLine[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0.25,0.5),false), new mxConnectionConstraint( new mxPoint(0.75,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.5),false)];_0xb26ex26[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.5,1),false)];mxEllipse[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0,0),true), new mxConnectionConstraint( new mxPoint(1,0),true), new mxConnectionConstraint( new mxPoint(0,1),true), new mxConnectionConstraint( new mxPoint(1,1),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5))];mxDoubleEllipse[_0x730d[0]][_0x730d[147]]=mxEllipse[_0x730d[0]][_0x730d[147]];mxRhombus[_0x730d[0]][_0x730d[147]]=mxEllipse[_0x730d[0]][_0x730d[147]];mxTriangle[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(1,0.5),true)];mxHexagon[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.375,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.625,0),true), new mxConnectionConstraint( new mxPoint(0.125,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0.125,0.75),false), new mxConnectionConstraint( new mxPoint(0.875,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(0.875,0.75),false), new mxConnectionConstraint( new mxPoint(0.375,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.625,1),true)];mxCloud[_0x730d[0]][_0x730d[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.25),false), new mxConnectionConstraint( new mxPoint(0.4,0.1),false), new mxConnectionConstraint( new mxPoint(0.16,0.55),false), new mxConnectionConstraint( new mxPoint(0.07,0.4),false), new mxConnectionConstraint( new mxPoint(0.31,0.8),false), new mxConnectionConstraint( new mxPoint(0.13,0.77),false), new mxConnectionConstraint( new mxPoint(0.8,0.8),false), new mxConnectionConstraint( new mxPoint(0.55,0.95),false), new mxConnectionConstraint( new mxPoint(0.875,0.5),false), new mxConnectionConstraint( new mxPoint(0.96,0.7),false), new mxConnectionConstraint( new mxPoint(0.625,0.2),false), new mxConnectionConstraint( new mxPoint(0.88,0.25),false)];mxArrow[_0x730d[0]][_0x730d[147]]=null;})();
\ No newline at end of file
+var _0xade1=["\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x73\x69\x7A\x65","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6D\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x65\x6E\x64","\x63\x6C\x6F\x73\x65","\x63\x75\x62\x65","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x6E\x6F\x74\x65","\x74\x61\x62\x57\x69\x64\x74\x68","\x74\x61\x62\x48\x65\x69\x67\x68\x74","\x74\x61\x62\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x69\x67\x68\x74","\x6C\x65\x66\x74","\x66\x6F\x6C\x64\x65\x72","\x63\x61\x72\x64","\x71\x75\x61\x64\x54\x6F","\x74\x61\x70\x65","\x73\x74\x65\x70","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x65\x67\x69\x6E","\x73\x74\x72\x6F\x6B\x65","\x61\x70\x70\x6C\x79","\x70\x6C\x75\x73","\x64\x6F\x75\x62\x6C\x65","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x6D\x61\x78","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x79\x6D\x62\x6F\x6C","\x41\x6C\x69\x67\x6E","\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x57\x69\x64\x74\x68","\x48\x65\x69\x67\x68\x74","\x53\x70\x61\x63\x69\x6E\x67","\x41\x72\x63\x53\x70\x61\x63\x69\x6E\x67","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x73\x61\x76\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x72\x65\x73\x74\x6F\x72\x65","\x65\x78\x74","\x6D\x65\x73\x73\x61\x67\x65","\x61\x64\x64\x50\x69\x70\x65","\x63\x75\x72\x76\x65\x54\x6F","\x75\x6D\x6C\x41\x63\x74\x6F\x72","\x6C\x6F\x6C\x6C\x69\x70\x6F\x70","\x6A\x65\x74\x74\x79\x57\x69\x64\x74\x68","\x6A\x65\x74\x74\x79\x48\x65\x69\x67\x68\x74","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74","\x6F\x75\x74\x65\x72\x53\x74\x72\x6F\x6B\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x65\x6E\x64\x53\x74\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x74\x61\x74\x65","\x69\x6E\x69\x74\x53\x68\x61\x70\x65\x73","\x78","\x79","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x73\x68\x61\x70\x65\x73","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x72\x74","\x6C\x69\x6E\x6B","\x64\x61\x73\x68","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x73\x65\x47\x72\x69\x64\x46\x6F\x72\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x69\x6E\x69\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68","\x76\x69\x65\x77","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x73\x72\x63","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x74\x56\x69\x65\x77","\x63\x75\x72\x73\x6F\x72","\x6E\x6F\x64\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x43\x75\x72\x73\x6F\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74","\x72\x65\x64\x72\x61\x77","\x62\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x72\x6F\x79","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x6F\x75\x72\x63\x65","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x76\x65\x6E\x74","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x73\x63\x61\x6C\x65","\x73\x6E\x61\x70","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x70\x70\x6C\x79\x53\x74\x79\x6C\x65","\x72\x65\x73\x65\x74","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x73\x68\x61\x70\x65","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x63\x6F\x73","\x73\x69\x6E","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x50\x6F\x69\x6E\x74","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65\x55\x6E\x72\x6F\x74\x61\x74\x65\x64","\x72\x6F\x75\x6E\x64","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x63\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x61\x6C\x75\x65","\x73\x63\x61\x6C\x65\x46\x61\x63\x74\x6F\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x73\x74\x65\x6E\x63\x69\x6C","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73"];(function(){function _0x750ax1(){}_0x750ax1[_0xade1[0]]= new mxCylinder();_0x750ax1[_0xade1[0]][_0xade1[1]]=_0x750ax1;_0x750ax1[_0xade1[0]][_0xade1[2]]=20;_0x750ax1[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750ax8=Math[_0xade1[6]](_0x750ax5,Math[_0xade1[6]](_0x750ax6,mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[2],this[_0xade1[2]])));if(_0x750ax7){_0x750ax2[_0xade1[7]](_0x750ax8,_0x750ax6);_0x750ax2[_0xade1[8]](_0x750ax8,_0x750ax8);_0x750ax2[_0xade1[8]](0,0);_0x750ax2[_0xade1[7]](_0x750ax8,_0x750ax8);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax8);_0x750ax2[_0xade1[9]]();}else {_0x750ax2[_0xade1[7]](0,0);_0x750ax2[_0xade1[8]](_0x750ax5-_0x750ax8,0);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax8);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6);_0x750ax2[_0xade1[8]](_0x750ax8,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750ax6-_0x750ax8);_0x750ax2[_0xade1[8]](0,0);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[11]]=_0x750ax1;function _0x750ax9(){}_0x750ax9[_0xade1[0]]= new mxCylinder();_0x750ax9[_0xade1[0]][_0xade1[1]]=_0x750ax9;_0x750ax9[_0xade1[0]][_0xade1[2]]=30;_0x750ax9[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750ax8=Math[_0xade1[6]](_0x750ax5,Math[_0xade1[6]](_0x750ax6,mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[2],this[_0xade1[2]])));if(_0x750ax7){_0x750ax2[_0xade1[7]](_0x750ax5-_0x750ax8,0);_0x750ax2[_0xade1[8]](_0x750ax5-_0x750ax8,_0x750ax8);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax8);_0x750ax2[_0xade1[9]]();}else {_0x750ax2[_0xade1[7]](0,0);_0x750ax2[_0xade1[8]](_0x750ax5-_0x750ax8,0);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax8);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750ax6);_0x750ax2[_0xade1[8]](0,0);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[13]]=_0x750ax9;function _0x750axa(){}_0x750axa[_0xade1[0]]= new mxCylinder();_0x750axa[_0xade1[0]][_0xade1[1]]=_0x750axa;_0x750axa[_0xade1[0]][_0xade1[14]]=60;_0x750axa[_0xade1[0]][_0xade1[15]]=20;_0x750axa[_0xade1[0]][_0xade1[16]]=_0xade1[17];_0x750axa[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750axb=mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[14],this[_0xade1[14]]);var _0x750axc=mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[15],this[_0xade1[15]]);var _0x750axd=mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[16],this[_0xade1[16]]);var _0x750axe=Math[_0xade1[6]](_0x750ax5,_0x750axb);var _0x750axf=Math[_0xade1[6]](_0x750ax6,_0x750axc);if(_0x750ax7){if(_0x750axd==_0xade1[18]){_0x750ax2[_0xade1[7]](0,_0x750axf);_0x750ax2[_0xade1[8]](_0x750axe,_0x750axf);}else {_0x750ax2[_0xade1[7]](_0x750ax5-_0x750axe,_0x750axf);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750axf);};_0x750ax2[_0xade1[9]]();}else {if(_0x750axd==_0xade1[18]){_0x750ax2[_0xade1[7]](0,0);_0x750ax2[_0xade1[8]](_0x750axe,0);_0x750ax2[_0xade1[8]](_0x750axe,_0x750axf);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750axf);}else {_0x750ax2[_0xade1[7]](0,_0x750axf);_0x750ax2[_0xade1[8]](_0x750ax5-_0x750axe,_0x750axf);_0x750ax2[_0xade1[8]](_0x750ax5-_0x750axe,0);_0x750ax2[_0xade1[8]](_0x750ax5,0);};_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750axf);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[19]]=_0x750axa;function _0x750ax10(){}_0x750ax10[_0xade1[0]]= new mxCylinder();_0x750ax10[_0xade1[0]][_0xade1[1]]=_0x750ax10;_0x750ax10[_0xade1[0]][_0xade1[2]]=30;_0x750ax10[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750ax8=Math[_0xade1[6]](_0x750ax5,Math[_0xade1[6]](_0x750ax6,mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[2],this[_0xade1[2]])));if(!_0x750ax7){_0x750ax2[_0xade1[7]](_0x750ax8,0);_0x750ax2[_0xade1[8]](_0x750ax5,0);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750ax8);_0x750ax2[_0xade1[8]](_0x750ax8,0);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[20]]=_0x750ax10;function _0x750ax11(){}_0x750ax11[_0xade1[0]]= new mxCylinder();_0x750ax11[_0xade1[0]][_0xade1[1]]=_0x750ax11;_0x750ax11[_0xade1[0]][_0xade1[2]]=0.4;_0x750ax11[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750ax8=mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[2],this[_0xade1[2]]);var _0x750axf=_0x750ax6*_0x750ax8;var _0x750ax12=1.4;if(!_0x750ax7){_0x750ax2[_0xade1[7]](0,_0x750axf/2);_0x750ax2[_0xade1[21]](_0x750ax5/4,_0x750axf*_0x750ax12,_0x750ax5/2,_0x750axf/2);_0x750ax2[_0xade1[21]](_0x750ax5*3/4,_0x750axf*(1-_0x750ax12),_0x750ax5,_0x750axf/2);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6-_0x750axf/2);_0x750ax2[_0xade1[21]](_0x750ax5*3/4,_0x750ax6-_0x750axf*_0x750ax12,_0x750ax5/2,_0x750ax6-_0x750axf/2);_0x750ax2[_0xade1[21]](_0x750ax5/4,_0x750ax6-_0x750axf*(1-_0x750ax12),0,_0x750ax6-_0x750axf/2);_0x750ax2[_0xade1[8]](0,_0x750axf/2);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[22]]=_0x750ax11;function _0x750ax13(){}_0x750ax13[_0xade1[0]]= new mxCylinder();_0x750ax13[_0xade1[0]][_0xade1[1]]=_0x750ax13;_0x750ax13[_0xade1[0]][_0xade1[2]]=0.2;_0x750ax13[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750ax8=_0x750ax5*mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[2],this[_0xade1[2]]);if(!_0x750ax7){_0x750ax2[_0xade1[7]](0,0);_0x750ax2[_0xade1[8]](_0x750ax5-_0x750ax8,0);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6/2);_0x750ax2[_0xade1[8]](_0x750ax5-_0x750ax8,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750ax6);_0x750ax2[_0xade1[8]](_0x750ax8,_0x750ax6/2);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[23]]=_0x750ax13;function _0x750ax14(){mxRectangleShape[_0xade1[24]](this)}mxUtils[_0xade1[25]](_0x750ax14,mxRectangleShape);_0x750ax14[_0xade1[0]][_0xade1[26]]=function(){return false};_0x750ax14[_0xade1[0]][_0xade1[27]]=function(_0x750ax15,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6){var _0x750ax16=Math[_0xade1[6]](_0x750ax5/5,_0x750ax6/5)+1;_0x750ax15[_0xade1[28]]();_0x750ax15[_0xade1[7]](_0x750ax3+_0x750ax5/2,_0x750ax4+_0x750ax16);_0x750ax15[_0xade1[8]](_0x750ax3+_0x750ax5/2,_0x750ax4+_0x750ax6-_0x750ax16);_0x750ax15[_0xade1[7]](_0x750ax3+_0x750ax16,_0x750ax4+_0x750ax6/2);_0x750ax15[_0xade1[8]](_0x750ax3+_0x750ax5-_0x750ax16,_0x750ax4+_0x750ax6/2);_0x750ax15[_0xade1[9]]();_0x750ax15[_0xade1[29]]();mxRectangleShape[_0xade1[0]][_0xade1[27]][_0xade1[30]](this,arguments);};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[31]]=_0x750ax14;function _0x750ax17(){mxRectangleShape[_0xade1[24]](this)}mxUtils[_0xade1[25]](_0x750ax17,mxRectangleShape);_0x750ax17[_0xade1[0]][_0xade1[26]]=function(){return false};_0x750ax17[_0xade1[0]][_0xade1[27]]=function(_0x750ax15,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6){if(this[_0xade1[4]]!=null){if(this[_0xade1[4]][_0xade1[32]]==1){var _0x750ax18=Math[_0xade1[34]](2,this[_0xade1[33]]+1);mxRectangleShape[_0xade1[0]][_0xade1[35]][_0xade1[24]](this,_0x750ax15,_0x750ax3+_0x750ax18,_0x750ax4+_0x750ax18,_0x750ax5-2*_0x750ax18,_0x750ax6-2*_0x750ax18);mxRectangleShape[_0xade1[0]][_0xade1[27]][_0xade1[30]](this,arguments);_0x750ax3+=_0x750ax18;_0x750ax4+=_0x750ax18;_0x750ax5-=2*_0x750ax18;_0x750ax6-=2*_0x750ax18;};_0x750ax15[_0xade1[36]](false);var _0x750ax19=0;var _0x750ax1a=null;do{_0x750ax1a=mxCellRenderer[_0xade1[0]][_0xade1[12]][this[_0xade1[4]][_0xade1[37]+_0x750ax19]];if(_0x750ax1a!=null){var _0x750ax1b=this[_0xade1[4]][_0xade1[37]+_0x750ax19+_0xade1[38]];var _0x750ax1c=this[_0xade1[4]][_0xade1[37]+_0x750ax19+_0xade1[39]];var _0x750ax1d=this[_0xade1[4]][_0xade1[37]+_0x750ax19+_0xade1[40]];var _0x750ax1e=this[_0xade1[4]][_0xade1[37]+_0x750ax19+_0xade1[41]];var _0x750ax1f=this[_0xade1[4]][_0xade1[37]+_0x750ax19+_0xade1[42]]||0;var _0x750ax20=this[_0xade1[4]][_0xade1[37]+_0x750ax19+_0xade1[43]];if(_0x750ax20!=null){_0x750ax1f+=this[_0xade1[44]](_0x750ax5+this[_0xade1[33]],_0x750ax6+this[_0xade1[33]])*_0x750ax20};var _0x750ax21=_0x750ax3;var _0x750ax22=_0x750ax4;if(_0x750ax1b==mxConstants[_0xade1[45]]){_0x750ax21+=(_0x750ax5-_0x750ax1d)/2}else {if(_0x750ax1b==mxConstants[_0xade1[46]]){_0x750ax21+=_0x750ax5-_0x750ax1d-_0x750ax1f}else {_0x750ax21+=_0x750ax1f}};if(_0x750ax1c==mxConstants[_0xade1[47]]){_0x750ax22+=(_0x750ax6-_0x750ax1e)/2}else {if(_0x750ax1c==mxConstants[_0xade1[48]]){_0x750ax22+=_0x750ax6-_0x750ax1e-_0x750ax1f}else {_0x750ax22+=_0x750ax1f}};_0x750ax15[_0xade1[49]]();var _0x750ax23= new _0x750ax1a();_0x750ax23[_0xade1[4]]=this[_0xade1[4]];_0x750ax1a[_0xade1[0]][_0xade1[50]][_0xade1[24]](_0x750ax23,_0x750ax15,_0x750ax21,_0x750ax22,_0x750ax1d,_0x750ax1e);_0x750ax15[_0xade1[51]]();};_0x750ax19++;}while(_0x750ax1a!=null);;}};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[52]]=_0x750ax17;function _0x750ax24(){}_0x750ax24[_0xade1[0]]= new mxCylinder();_0x750ax24[_0xade1[0]][_0xade1[1]]=_0x750ax24;_0x750ax24[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){if(_0x750ax7){_0x750ax2[_0xade1[7]](0,0);_0x750ax2[_0xade1[8]](_0x750ax5/2,_0x750ax6/2);_0x750ax2[_0xade1[8]](_0x750ax5,0);_0x750ax2[_0xade1[9]]();}else {_0x750ax2[_0xade1[7]](0,0);_0x750ax2[_0xade1[8]](_0x750ax5,0);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6);_0x750ax2[_0xade1[8]](0,_0x750ax6);_0x750ax2[_0xade1[10]]();}};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[53]]=_0x750ax24;function _0x750ax25(){}_0x750ax25[_0xade1[0]]= new mxCylinder();_0x750ax25[_0xade1[0]][_0xade1[1]]=_0x750ax25;_0x750ax25[_0xade1[0]][_0xade1[54]]=true;_0x750ax25[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750ax1d=_0x750ax5/3;var _0x750ax1e=_0x750ax6/4;if(!_0x750ax7){_0x750ax2[_0xade1[7]](_0x750ax5/2,_0x750ax1e);_0x750ax2[_0xade1[55]](_0x750ax5/2-_0x750ax1d,_0x750ax1e,_0x750ax5/2-_0x750ax1d,0,_0x750ax5/2,0);_0x750ax2[_0xade1[55]](_0x750ax5/2+_0x750ax1d,0,_0x750ax5/2+_0x750ax1d,_0x750ax1e,_0x750ax5/2,_0x750ax1e);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[7]](_0x750ax5/2,_0x750ax1e);_0x750ax2[_0xade1[8]](_0x750ax5/2,2*_0x750ax6/3);_0x750ax2[_0xade1[7]](_0x750ax5/2,_0x750ax6/3);_0x750ax2[_0xade1[8]](0,_0x750ax6/3);_0x750ax2[_0xade1[7]](_0x750ax5/2,_0x750ax6/3);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6/3);_0x750ax2[_0xade1[7]](_0x750ax5/2,2*_0x750ax6/3);_0x750ax2[_0xade1[8]](0,_0x750ax6);_0x750ax2[_0xade1[7]](_0x750ax5/2,2*_0x750ax6/3);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6);_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[56]]=_0x750ax25;function _0x750ax26(){}_0x750ax26[_0xade1[0]]= new mxCylinder();_0x750ax26[_0xade1[0]][_0xade1[1]]=_0x750ax26;_0x750ax26[_0xade1[0]][_0xade1[2]]=10;_0x750ax26[_0xade1[0]][_0xade1[54]]=true;_0x750ax26[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750ax27=mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[2],this[_0xade1[2]]);var _0x750ax1d=_0x750ax27*2/3;var _0x750ax1e=_0x750ax27;if(!_0x750ax7){_0x750ax2[_0xade1[7]](_0x750ax5/2,_0x750ax1e);_0x750ax2[_0xade1[55]](_0x750ax5/2-_0x750ax1d,_0x750ax1e,_0x750ax5/2-_0x750ax1d,0,_0x750ax5/2,0);_0x750ax2[_0xade1[55]](_0x750ax5/2+_0x750ax1d,0,_0x750ax5/2+_0x750ax1d,_0x750ax1e,_0x750ax5/2,_0x750ax1e);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[7]](_0x750ax5/2,_0x750ax1e);_0x750ax2[_0xade1[8]](_0x750ax5/2,_0x750ax6);_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[57]]=_0x750ax26;function _0x750ax28(){}_0x750ax28[_0xade1[0]]= new mxCylinder();_0x750ax28[_0xade1[0]][_0xade1[1]]=_0x750ax28;_0x750ax28[_0xade1[0]][_0xade1[58]]=32;_0x750ax28[_0xade1[0]][_0xade1[59]]=12;_0x750ax28[_0xade1[0]][_0xade1[3]]=function(_0x750ax2,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6,_0x750ax7){var _0x750axe=mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[58],this[_0xade1[58]]);var _0x750axf=mxUtils[_0xade1[5]](this[_0xade1[4]],_0xade1[59],this[_0xade1[59]]);var _0x750ax29=_0x750axe/2;var _0x750ax2a=_0x750ax29+_0x750axe/2;var _0x750ax2b=0.3*_0x750ax6-_0x750axf/2;var _0x750ax2c=0.7*_0x750ax6-_0x750axf/2;if(_0x750ax7){_0x750ax2[_0xade1[7]](_0x750ax29,_0x750ax2b);_0x750ax2[_0xade1[8]](_0x750ax2a,_0x750ax2b);_0x750ax2[_0xade1[8]](_0x750ax2a,_0x750ax2b+_0x750axf);_0x750ax2[_0xade1[8]](_0x750ax29,_0x750ax2b+_0x750axf);_0x750ax2[_0xade1[7]](_0x750ax29,_0x750ax2c);_0x750ax2[_0xade1[8]](_0x750ax2a,_0x750ax2c);_0x750ax2[_0xade1[8]](_0x750ax2a,_0x750ax2c+_0x750axf);_0x750ax2[_0xade1[8]](_0x750ax29,_0x750ax2c+_0x750axf);_0x750ax2[_0xade1[9]]();}else {_0x750ax2[_0xade1[7]](_0x750ax29,0);_0x750ax2[_0xade1[8]](_0x750ax5,0);_0x750ax2[_0xade1[8]](_0x750ax5,_0x750ax6);_0x750ax2[_0xade1[8]](_0x750ax29,_0x750ax6);_0x750ax2[_0xade1[8]](_0x750ax29,_0x750ax2c+_0x750axf);_0x750ax2[_0xade1[8]](0,_0x750ax2c+_0x750axf);_0x750ax2[_0xade1[8]](0,_0x750ax2c);_0x750ax2[_0xade1[8]](_0x750ax29,_0x750ax2c);_0x750ax2[_0xade1[8]](_0x750ax29,_0x750ax2b+_0x750axf);_0x750ax2[_0xade1[8]](0,_0x750ax2b+_0x750axf);_0x750ax2[_0xade1[8]](0,_0x750ax2b);_0x750ax2[_0xade1[8]](_0x750ax29,_0x750ax2b);_0x750ax2[_0xade1[10]]();_0x750ax2[_0xade1[9]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[60]]=_0x750ax28;function _0x750ax2d(){}_0x750ax2d[_0xade1[0]]= new mxDoubleEllipse();_0x750ax2d[_0xade1[0]][_0xade1[1]]=_0x750ax2d;_0x750ax2d[_0xade1[0]][_0xade1[61]]=true;_0x750ax2d[_0xade1[0]][_0xade1[50]]=function(_0x750ax15,_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6){var _0x750ax18=Math[_0xade1[6]](4,Math[_0xade1[6]](_0x750ax5/5,_0x750ax6/5));if(_0x750ax5>0&&_0x750ax6>0){_0x750ax15[_0xade1[62]](_0x750ax3+_0x750ax18,_0x750ax4+_0x750ax18,_0x750ax5-2*_0x750ax18,_0x750ax6-2*_0x750ax18);_0x750ax15[_0xade1[63]]();};_0x750ax15[_0xade1[64]](false);if(this[_0xade1[61]]){_0x750ax15[_0xade1[62]](_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6);_0x750ax15[_0xade1[29]]();};};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[65]]=_0x750ax2d;function _0x750ax2e(){}_0x750ax2e[_0xade1[0]]= new _0x750ax2d();_0x750ax2e[_0xade1[0]][_0xade1[1]]=_0x750ax2e;_0x750ax2e[_0xade1[0]][_0xade1[61]]=false;mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[66]]=_0x750ax2e;var _0x750ax2f=mxImageExport[_0xade1[0]][_0xade1[67]];mxImageExport[_0xade1[0]][_0xade1[67]]=function(){_0x750ax2f[_0xade1[30]](this,arguments);function _0x750ax30(_0x750ax31){return {drawShape:function(_0x750ax32,_0x750ax33,_0x750ax34,_0x750ax35){var _0x750ax3=_0x750ax34[_0xade1[68]];var _0x750ax4=_0x750ax34[_0xade1[69]];var _0x750ax5=_0x750ax34[_0xade1[70]];var _0x750ax6=_0x750ax34[_0xade1[71]];if(_0x750ax35){var _0x750ax18=Math[_0xade1[6]](4,Math[_0xade1[6]](_0x750ax5/5,_0x750ax6/5));_0x750ax3+=_0x750ax18;_0x750ax4+=_0x750ax18;_0x750ax5-=2*_0x750ax18;_0x750ax6-=2*_0x750ax18;if(_0x750ax5>0&&_0x750ax6>0){_0x750ax32[_0xade1[62]](_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6)};return true;}else {_0x750ax32[_0xade1[63]]();if(_0x750ax31){_0x750ax32[_0xade1[62]](_0x750ax3,_0x750ax4,_0x750ax5,_0x750ax6);_0x750ax32[_0xade1[29]]();};};}}}this[_0xade1[72]][_0xade1[65]]=_0x750ax30(true);this[_0xade1[72]][_0xade1[66]]=_0x750ax30(false);};function _0x750ax36(){mxArrow[_0xade1[24]](this)}mxUtils[_0xade1[25]](_0x750ax36,mxArrow);_0x750ax36[_0xade1[0]][_0xade1[73]]=function(_0x750ax15,_0x750ax37){var _0x750ax1d=10;var _0x750ax38=_0x750ax37[0];var _0x750ax39=_0x750ax37[_0x750ax37[_0xade1[74]]-1];var _0x750axe=_0x750ax39[_0xade1[68]]-_0x750ax38[_0xade1[68]];var _0x750axf=_0x750ax39[_0xade1[69]]-_0x750ax38[_0xade1[69]];var _0x750ax3a=Math[_0xade1[75]](_0x750axe*_0x750axe+_0x750axf*_0x750axf);var _0x750ax3b=_0x750ax3a;var _0x750ax3c=_0x750axe/_0x750ax3a;var _0x750ax3d=_0x750axf/_0x750ax3a;var _0x750ax3e=_0x750ax3b*_0x750ax3c;var _0x750ax3f=_0x750ax3b*_0x750ax3d;var _0x750ax40=_0x750ax1d*_0x750ax3d/3;var _0x750ax41=-_0x750ax1d*_0x750ax3c/3;var _0x750ax42=_0x750ax38[_0xade1[68]]-_0x750ax40/2;var _0x750ax43=_0x750ax38[_0xade1[69]]-_0x750ax41/2;var _0x750ax44=_0x750ax42+_0x750ax40;var _0x750ax45=_0x750ax43+_0x750ax41;var _0x750ax46=_0x750ax44+_0x750ax3e;var _0x750ax47=_0x750ax45+_0x750ax3f;var _0x750ax48=_0x750ax46+_0x750ax40;var _0x750ax49=_0x750ax47+_0x750ax41;var _0x750ax4a=_0x750ax48-3*_0x750ax40;var _0x750ax4b=_0x750ax49-3*_0x750ax41;_0x750ax15[_0xade1[28]]();_0x750ax15[_0xade1[7]](_0x750ax44,_0x750ax45);_0x750ax15[_0xade1[8]](_0x750ax46,_0x750ax47);_0x750ax15[_0xade1[7]](_0x750ax4a+_0x750ax40,_0x750ax4b+_0x750ax41);_0x750ax15[_0xade1[8]](_0x750ax42,_0x750ax43);_0x750ax15[_0xade1[29]]();};mxCellRenderer[_0xade1[0]][_0xade1[12]][_0xade1[76]]=_0x750ax36;mxMarker[_0xade1[78]](_0xade1[77],function(_0x750ax32,_0x750ax1a,_0x750ax4c,_0x750ax39,_0x750ax4d,_0x750ax4e,_0x750ax4f,_0x750ax50,_0x750ax51,_0x750ax52){var _0x750ax3c=_0x750ax4d*(_0x750ax4f+_0x750ax51+1);var _0x750ax3d=_0x750ax4e*(_0x750ax4f+_0x750ax51+1);return function(){_0x750ax32[_0xade1[28]]();_0x750ax32[_0xade1[7]](_0x750ax39[_0xade1[68]]-_0x750ax3c/2-_0x750ax3d/2,_0x750ax39[_0xade1[69]]-_0x750ax3d/2+_0x750ax3c/2);_0x750ax32[_0xade1[8]](_0x750ax39[_0xade1[68]]+_0x750ax3d/2-3*_0x750ax3c/2,_0x750ax39[_0xade1[69]]-3*_0x750ax3d/2-_0x750ax3c/2);_0x750ax32[_0xade1[29]]();};});var _0x750ax53=-99;if( typeof (mxVertexHandler)!=_0xade1[79]){function _0x750ax54(_0x750ax33){mxVertexHandler[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax54,mxVertexHandler);_0x750ax54[_0xade1[0]][_0xade1[80]]=false;_0x750ax54[_0xade1[0]][_0xade1[81]]=function(){this[_0xade1[82]]=mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],mxConstants.STYLE_HORIZONTAL,true);var _0x750ax55=this[_0xade1[83]][_0xade1[85]][_0xade1[84]];if(this[_0xade1[86]]!=null){var _0x750ax34= new mxRectangle(0,0,this[_0xade1[86]][_0xade1[70]],this[_0xade1[86]][_0xade1[71]]);this[_0xade1[87]]= new mxImageShape(_0x750ax34,this[_0xade1[86]][_0xade1[88]]);}else {var _0x750ax4f=10;var _0x750ax34= new mxRectangle(0,0,_0x750ax4f,_0x750ax4f);this[_0xade1[87]]= new mxRhombus(_0x750ax34,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);};this[_0xade1[87]][_0xade1[89]]=(_0x750ax55[_0xade1[89]]!=mxConstants[_0xade1[90]])?mxConstants[_0xade1[91]]:mxConstants[_0xade1[90]];this[_0xade1[87]][_0xade1[81]](_0x750ax55[_0xade1[93]]()[_0xade1[92]]());this[_0xade1[87]][_0xade1[95]][_0xade1[4]][_0xade1[94]]=this[_0xade1[96]]();mxEvent[_0xade1[97]](this[_0xade1[87]][_0xade1[95]],_0x750ax55,this[_0xade1[83]]);mxVertexHandler[_0xade1[0]][_0xade1[81]][_0xade1[30]](this,arguments);};_0x750ax54[_0xade1[0]][_0xade1[96]]=function(){return _0xade1[98]};_0x750ax54[_0xade1[0]][_0xade1[99]]=function(){mxVertexHandler[_0xade1[0]][_0xade1[99]][_0xade1[30]](this,arguments);var _0x750ax4f=this[_0xade1[87]][_0xade1[100]][_0xade1[70]];this[_0xade1[87]][_0xade1[100]]=this[_0xade1[101]](_0x750ax4f);this[_0xade1[87]][_0xade1[99]]();};_0x750ax54[_0xade1[0]][_0xade1[102]]=function(){mxVertexHandler[_0xade1[0]][_0xade1[102]][_0xade1[30]](this,arguments);if(this[_0xade1[87]]!=null){this[_0xade1[87]][_0xade1[102]]();this[_0xade1[87]]=null;};};_0x750ax54[_0xade1[0]][_0xade1[103]]=function(_0x750ax56){if(_0x750ax56[_0xade1[104]](this[_0xade1[87]])){return _0x750ax53};return mxVertexHandler[_0xade1[0]][_0xade1[103]][_0xade1[30]](this,arguments);};_0x750ax54[_0xade1[0]][_0xade1[105]]=function(_0x750ax57,_0x750ax56){if(!_0x750ax56[_0xade1[106]]()&&this[_0xade1[107]]==_0x750ax53){var _0x750ax58= new mxPoint(_0x750ax56[_0xade1[108]](),_0x750ax56[_0xade1[109]]());this[_0xade1[110]](_0x750ax58);var _0x750ax59=this[_0xade1[84]][_0xade1[112]](_0x750ax56[_0xade1[111]]());var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];if(_0x750ax59&&this[_0xade1[80]]){_0x750ax58[_0xade1[68]]=this[_0xade1[84]][_0xade1[114]](_0x750ax58[_0xade1[68]]/_0x750ax5a)*_0x750ax5a;_0x750ax58[_0xade1[69]]=this[_0xade1[84]][_0xade1[114]](_0x750ax58[_0xade1[69]]/_0x750ax5a)*_0x750ax5a;};this[_0xade1[115]](_0x750ax58);this[_0xade1[116]](this[_0xade1[87]],_0x750ax58[_0xade1[68]],_0x750ax58[_0xade1[69]]);this[_0xade1[83]][_0xade1[85]][_0xade1[84]][_0xade1[117]][_0xade1[99]](this[_0xade1[83]],true);_0x750ax56[_0xade1[118]]();}else {mxVertexHandler[_0xade1[0]][_0xade1[105]][_0xade1[30]](this,arguments)}};_0x750ax54[_0xade1[0]][_0xade1[119]]=function(_0x750ax57,_0x750ax56){if(!_0x750ax56[_0xade1[106]]()&&this[_0xade1[107]]==_0x750ax53){this[_0xade1[120]]();this[_0xade1[121]]();_0x750ax56[_0xade1[118]]();}else {mxVertexHandler[_0xade1[0]][_0xade1[119]][_0xade1[30]](this,arguments)}};_0x750ax54[_0xade1[0]][_0xade1[101]]=function(_0x750ax4f){var _0x750ax5b=this[_0xade1[83]][_0xade1[123]][_0xade1[122]]();var _0x750ax5c=mxUtils[_0xade1[124]](_0x750ax5b);var _0x750ax5d=Math[_0xade1[125]](_0x750ax5c);var _0x750ax5e=Math[_0xade1[126]](_0x750ax5c);var _0x750ax34= new mxRectangle(this[_0xade1[83]][_0xade1[68]],this[_0xade1[83]][_0xade1[69]],this[_0xade1[83]][_0xade1[70]],this[_0xade1[83]][_0xade1[71]]);if(this[_0xade1[83]][_0xade1[123]][_0xade1[127]]()){var _0x750ax5f=(_0x750ax34[_0xade1[70]]-_0x750ax34[_0xade1[71]])/2;_0x750ax34[_0xade1[68]]+=_0x750ax5f;_0x750ax34[_0xade1[69]]-=_0x750ax5f;var _0x750ax23=_0x750ax34[_0xade1[70]];_0x750ax34[_0xade1[70]]=_0x750ax34[_0xade1[71]];_0x750ax34[_0xade1[71]]=_0x750ax23;};var _0x750ax60=this[_0xade1[128]](_0x750ax34);if(this[_0xade1[83]][_0xade1[123]][_0xade1[129]]){_0x750ax60[_0xade1[68]]=2*_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]-_0x750ax60[_0xade1[68]]};if(this[_0xade1[83]][_0xade1[123]][_0xade1[130]]){_0x750ax60[_0xade1[69]]=2*_0x750ax34[_0xade1[69]]+_0x750ax34[_0xade1[71]]-_0x750ax60[_0xade1[69]]};_0x750ax60=mxUtils[_0xade1[133]](_0x750ax60,_0x750ax5d,_0x750ax5e, new mxPoint(this[_0xade1[83]][_0xade1[131]](),this[_0xade1[83]][_0xade1[132]]()));return  new mxRectangle(_0x750ax60[_0xade1[68]]-_0x750ax4f/2,_0x750ax60[_0xade1[69]]-_0x750ax4f/2,_0x750ax4f,_0x750ax4f);};_0x750ax54[_0xade1[0]][_0xade1[128]]=function(_0x750ax34){return null};_0x750ax54[_0xade1[0]][_0xade1[115]]=function(_0x750ax58){};_0x750ax54[_0xade1[0]][_0xade1[110]]=function(_0x750ax58){_0x750ax58[_0xade1[68]]=Math[_0xade1[34]](this[_0xade1[83]][_0xade1[68]],Math[_0xade1[6]](this[_0xade1[83]][_0xade1[68]]+this[_0xade1[83]][_0xade1[70]],_0x750ax58[_0xade1[68]]));_0x750ax58[_0xade1[69]]=Math[_0xade1[34]](this[_0xade1[83]][_0xade1[69]],Math[_0xade1[6]](this[_0xade1[83]][_0xade1[69]]+this[_0xade1[83]][_0xade1[71]],_0x750ax58[_0xade1[69]]));};_0x750ax54[_0xade1[0]][_0xade1[120]]=function(){};function _0x750ax61(_0x750ax33){_0x750ax54[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax61,_0x750ax54);_0x750ax61[_0xade1[0]][_0xade1[128]]=function(_0x750ax34){var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];var _0x750axb=Math[_0xade1[6]](_0x750ax34[_0xade1[70]],mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[14],60)*_0x750ax5a);var _0x750axc=Math[_0xade1[6]](_0x750ax34[_0xade1[71]],mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[15],20)*_0x750ax5a);var _0x750axd=mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[16],_0xade1[17]);var _0x750ax3=(_0x750axd==_0xade1[18])?_0x750ax34[_0xade1[68]]+_0x750axb:_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]-_0x750axb;return  new mxPoint(_0x750ax3,_0x750ax34[_0xade1[69]]+_0x750axc);};_0x750ax61[_0xade1[0]][_0xade1[115]]=function(_0x750ax58){var _0x750ax5b=this[_0xade1[83]][_0xade1[123]][_0xade1[122]]();var _0x750ax5c=mxUtils[_0xade1[124]](_0x750ax5b);var _0x750ax5d=Math[_0xade1[125]](-_0x750ax5c);var _0x750ax5e=Math[_0xade1[126]](-_0x750ax5c);var _0x750ax34= new mxRectangle(this[_0xade1[83]][_0xade1[68]],this[_0xade1[83]][_0xade1[69]],this[_0xade1[83]][_0xade1[70]],this[_0xade1[83]][_0xade1[71]]);if(this[_0xade1[83]][_0xade1[123]][_0xade1[127]]()){var _0x750ax5f=(_0x750ax34[_0xade1[70]]-_0x750ax34[_0xade1[71]])/2;_0x750ax34[_0xade1[68]]+=_0x750ax5f;_0x750ax34[_0xade1[69]]-=_0x750ax5f;var _0x750ax23=_0x750ax34[_0xade1[70]];_0x750ax34[_0xade1[70]]=_0x750ax34[_0xade1[71]];_0x750ax34[_0xade1[71]]=_0x750ax23;};var _0x750ax60= new mxPoint(_0x750ax58[_0xade1[68]],_0x750ax58[_0xade1[69]]);_0x750ax60=mxUtils[_0xade1[133]](_0x750ax60,_0x750ax5d,_0x750ax5e, new mxPoint(this[_0xade1[83]][_0xade1[131]](),this[_0xade1[83]][_0xade1[132]]()));if(this[_0xade1[83]][_0xade1[123]][_0xade1[129]]){_0x750ax60[_0xade1[68]]=2*_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]-_0x750ax60[_0xade1[68]]};if(this[_0xade1[83]][_0xade1[123]][_0xade1[130]]){_0x750ax60[_0xade1[69]]=2*_0x750ax34[_0xade1[69]]+_0x750ax34[_0xade1[71]]-_0x750ax60[_0xade1[69]]};var _0x750ax62=this[_0xade1[134]](_0x750ax60,_0x750ax34);if(_0x750ax62!=null){if(this[_0xade1[83]][_0xade1[123]][_0xade1[129]]){_0x750ax62[_0xade1[68]]=2*_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]-_0x750ax62[_0xade1[68]]};if(this[_0xade1[83]][_0xade1[123]][_0xade1[130]]){_0x750ax62[_0xade1[69]]=2*_0x750ax34[_0xade1[69]]+_0x750ax34[_0xade1[71]]-_0x750ax62[_0xade1[69]]};_0x750ax5d=Math[_0xade1[125]](_0x750ax5c);_0x750ax5e=Math[_0xade1[126]](_0x750ax5c);_0x750ax62=mxUtils[_0xade1[133]](_0x750ax62,_0x750ax5d,_0x750ax5e, new mxPoint(this[_0xade1[83]][_0xade1[131]](),this[_0xade1[83]][_0xade1[132]]()));_0x750ax58[_0xade1[68]]=_0x750ax62[_0xade1[68]];_0x750ax58[_0xade1[69]]=_0x750ax62[_0xade1[69]];};};_0x750ax61[_0xade1[0]][_0xade1[134]]=function(_0x750ax60,_0x750ax34){var _0x750axd=mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[16],_0xade1[17]);var _0x750axb=(_0x750axd==_0xade1[18])?_0x750ax60[_0xade1[68]]-_0x750ax34[_0xade1[68]]:_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]-_0x750ax60[_0xade1[68]];var _0x750axc=_0x750ax60[_0xade1[69]]-_0x750ax34[_0xade1[69]];var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];this[_0xade1[83]][_0xade1[4]][_0xade1[14]]=Math[_0xade1[135]](Math[_0xade1[34]](1,_0x750axb)/_0x750ax5a);this[_0xade1[83]][_0xade1[4]][_0xade1[15]]=Math[_0xade1[135]](Math[_0xade1[34]](1,_0x750axc)/_0x750ax5a);};_0x750ax61[_0xade1[0]][_0xade1[120]]=function(){var _0x750ax63=this[_0xade1[84]][_0xade1[136]]();_0x750ax63[_0xade1[137]]();try{this[_0xade1[83]][_0xade1[85]][_0xade1[84]][_0xade1[139]](_0xade1[14],this[_0xade1[83]][_0xade1[4]][_0xade1[14]],[this[_0xade1[83]][_0xade1[138]]]);this[_0xade1[83]][_0xade1[85]][_0xade1[84]][_0xade1[139]](_0xade1[15],this[_0xade1[83]][_0xade1[4]][_0xade1[15]],[this[_0xade1[83]][_0xade1[138]]]);}finally{_0x750ax63[_0xade1[140]]()};};function _0x750ax64(_0x750ax33){_0x750ax61[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax64,_0x750ax61);_0x750ax64[_0xade1[0]][_0xade1[128]]=function(_0x750ax34){var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];var _0x750ax65=mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]/2,_0x750ax34[_0xade1[69]]+Math[_0xade1[6]](_0x750ax34[_0xade1[71]],_0x750ax65*_0x750ax5a));};_0x750ax64[_0xade1[0]][_0xade1[134]]=function(_0x750ax58,_0x750ax34){_0x750ax58[_0xade1[68]]=_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]/2;startSize=_0x750ax58[_0xade1[69]]-_0x750ax34[_0xade1[69]];var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];this[_0xade1[83]][_0xade1[4]][_0xade1[141]]=Math[_0xade1[135]](Math[_0xade1[34]](1,startSize)/_0x750ax5a);return _0x750ax58;};_0x750ax64[_0xade1[0]][_0xade1[120]]=function(){this[_0xade1[83]][_0xade1[85]][_0xade1[84]][_0xade1[139]](_0xade1[141],this[_0xade1[83]][_0xade1[4]][_0xade1[141]],[this[_0xade1[83]][_0xade1[138]]])};function _0x750ax66(_0x750ax33){_0x750ax61[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax66,_0x750ax61);_0x750ax66[_0xade1[0]][_0xade1[142]]=20;_0x750ax66[_0xade1[0]][_0xade1[143]]=1;_0x750ax66[_0xade1[0]][_0xade1[128]]=function(_0x750ax34){var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];var _0x750ax67=Math[_0xade1[6]](_0x750ax34[_0xade1[70]],Math[_0xade1[6]](_0x750ax34[_0xade1[71]],mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[2],this[_0xade1[142]])*_0x750ax5a/this[_0xade1[143]]));return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax67,_0x750ax34[_0xade1[69]]+_0x750ax67);};_0x750ax66[_0xade1[0]][_0xade1[134]]=function(_0x750ax60,_0x750ax34){var _0x750ax4f=Math[_0xade1[34]](0,Math[_0xade1[6]](Math[_0xade1[6]](_0x750ax34[_0xade1[70]]/this[_0xade1[143]],_0x750ax60[_0xade1[68]]-_0x750ax34[_0xade1[68]]),Math[_0xade1[6]](_0x750ax34[_0xade1[71]]/this[_0xade1[143]],_0x750ax60[_0xade1[69]]-_0x750ax34[_0xade1[69]])));var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];this[_0xade1[83]][_0xade1[4]][_0xade1[2]]=Math[_0xade1[135]](Math[_0xade1[34]](1,_0x750ax4f)/_0x750ax5a)*this[_0xade1[143]];return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax4f,_0x750ax34[_0xade1[69]]+_0x750ax4f);};_0x750ax66[_0xade1[0]][_0xade1[120]]=function(){this[_0xade1[83]][_0xade1[85]][_0xade1[84]][_0xade1[139]](_0xade1[2],this[_0xade1[83]][_0xade1[4]][_0xade1[2]],[this[_0xade1[83]][_0xade1[138]]])};function _0x750ax68(_0x750ax33){_0x750ax66[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax68,_0x750ax66);_0x750ax68[_0xade1[0]][_0xade1[142]]=30;_0x750ax68[_0xade1[0]][_0xade1[143]]=2;function _0x750ax69(_0x750ax33){_0x750ax66[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax69,_0x750ax66);_0x750ax69[_0xade1[0]][_0xade1[142]]=30;_0x750ax69[_0xade1[0]][_0xade1[143]]=1;_0x750ax69[_0xade1[0]][_0xade1[128]]=function(_0x750ax34){var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];var _0x750ax67=Math[_0xade1[6]](_0x750ax34[_0xade1[70]],Math[_0xade1[6]](_0x750ax34[_0xade1[71]],mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[2],this[_0xade1[142]])*_0x750ax5a/this[_0xade1[143]]));return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]-_0x750ax67,_0x750ax34[_0xade1[69]]+_0x750ax67);};_0x750ax69[_0xade1[0]][_0xade1[134]]=function(_0x750ax60,_0x750ax34){var _0x750ax4f=Math[_0xade1[34]](0,Math[_0xade1[6]](Math[_0xade1[6]](_0x750ax34[_0xade1[70]]/this[_0xade1[143]],_0x750ax60[_0xade1[68]]-_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]),Math[_0xade1[6]](_0x750ax34[_0xade1[71]]/this[_0xade1[143]],_0x750ax60[_0xade1[69]]-_0x750ax34[_0xade1[69]])));var _0x750ax5a=this[_0xade1[84]][_0xade1[93]]()[_0xade1[113]];this[_0xade1[83]][_0xade1[4]][_0xade1[2]]=Math[_0xade1[135]](Math[_0xade1[34]](1,_0x750ax4f)/_0x750ax5a)*this[_0xade1[143]];return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]-_0x750ax4f,_0x750ax34[_0xade1[69]]+_0x750ax4f);};function _0x750ax6a(_0x750ax33){_0x750ax66[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax6a,_0x750ax66);_0x750ax6a[_0xade1[0]][_0xade1[142]]=0.2;_0x750ax6a[_0xade1[0]][_0xade1[143]]=1;_0x750ax6a[_0xade1[0]][_0xade1[128]]=function(_0x750ax34){var _0x750ax67=mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[2],this[_0xade1[142]]);return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]*_0x750ax67,_0x750ax34[_0xade1[69]]+_0x750ax34[_0xade1[71]]/2);};_0x750ax6a[_0xade1[0]][_0xade1[134]]=function(_0x750ax60,_0x750ax34){var _0x750ax4f=Math[_0xade1[6]](1,(_0x750ax60[_0xade1[68]]-_0x750ax34[_0xade1[68]])/_0x750ax34[_0xade1[70]]);this[_0xade1[83]][_0xade1[4]][_0xade1[2]]=_0x750ax4f;return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax4f*_0x750ax34[_0xade1[70]],_0x750ax34[_0xade1[69]]+_0x750ax34[_0xade1[71]]/2);};function _0x750ax6b(_0x750ax33){_0x750ax66[_0xade1[24]](this,_0x750ax33)}mxUtils[_0xade1[25]](_0x750ax6b,_0x750ax66);_0x750ax6b[_0xade1[0]][_0xade1[142]]=0.4;_0x750ax6b[_0xade1[0]][_0xade1[143]]=1;_0x750ax6b[_0xade1[0]][_0xade1[128]]=function(_0x750ax34){var _0x750ax67=mxUtils[_0xade1[5]](this[_0xade1[83]][_0xade1[4]],_0xade1[2],this[_0xade1[142]]);return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]/2,_0x750ax34[_0xade1[69]]+_0x750ax67*_0x750ax34[_0xade1[71]]/2);};_0x750ax6b[_0xade1[0]][_0xade1[134]]=function(_0x750ax60,_0x750ax34){var _0x750ax4f=Math[_0xade1[34]](0,Math[_0xade1[6]](1,((_0x750ax60[_0xade1[69]]-_0x750ax34[_0xade1[69]])/_0x750ax34[_0xade1[71]])*2));this[_0xade1[83]][_0xade1[4]][_0xade1[2]]=_0x750ax4f;return  new mxPoint(_0x750ax34[_0xade1[68]]+_0x750ax34[_0xade1[70]]/2,_0x750ax34[_0xade1[69]]+_0x750ax4f*_0x750ax34[_0xade1[71]]/2);};var _0x750ax6c={"\x73\x77\x69\x6D\x6C\x61\x6E\x65":_0x750ax64,"\x66\x6F\x6C\x64\x65\x72":_0x750ax61,"\x63\x75\x62\x65":_0x750ax66,"\x63\x61\x72\x64":_0x750ax68,"\x6E\x6F\x74\x65":_0x750ax69,"\x73\x74\x65\x70":_0x750ax6a,"\x74\x61\x70\x65":_0x750ax6b};var _0x750ax6d=mxGraph[_0xade1[0]][_0xade1[144]];mxGraph[_0xade1[0]][_0xade1[144]]=function(_0x750ax33){if(_0x750ax33!=null){var _0x750ax6e=_0x750ax6c[_0x750ax33[_0xade1[4]][_0xade1[123]]];if(_0x750ax6e!=null){return  new _0x750ax6e(_0x750ax33)};};return _0x750ax6d[_0xade1[30]](this,arguments);};};mxGraph[_0xade1[0]][_0xade1[145]]=function(_0x750ax6f,_0x750ax50){if(_0x750ax6f!=null&&_0x750ax6f[_0xade1[123]]!=null){if(_0x750ax6f[_0xade1[123]][_0xade1[146]]!=null){if(_0x750ax6f[_0xade1[123]][_0xade1[146]]!=null){return _0x750ax6f[_0xade1[123]][_0xade1[146]][_0xade1[147]]}}else {if(_0x750ax6f[_0xade1[123]][_0xade1[147]]!=null){return _0x750ax6f[_0xade1[123]][_0xade1[147]]}}};return null;};mxRectangleShape[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxLabel[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];mxImageShape[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];mxSwimlane[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];_0x750ax14[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];_0x750ax9[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];_0x750ax10[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];_0x750ax1[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];_0x750axa[_0xade1[0]][_0xade1[147]]=mxRectangleShape[_0xade1[0]][_0xade1[147]];mxCylinder[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.15,0.05),false), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.85,0.05),false), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.3),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.7),true), new mxConnectionConstraint( new mxPoint(0.15,0.95),false), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.85,0.95),false)];_0x750ax25[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.1),false), new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.75,0.1),false), new mxConnectionConstraint( new mxPoint(0,1/3),false), new mxConnectionConstraint( new mxPoint(0,1),false), new mxConnectionConstraint( new mxPoint(1,1/3),false), new mxConnectionConstraint( new mxPoint(1,1),false), new mxConnectionConstraint( new mxPoint(0.5,0.5),false)];_0x750ax28[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxActor[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.25,0.2),false), new mxConnectionConstraint( new mxPoint(0.1,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.75,0.25),false), new mxConnectionConstraint( new mxPoint(0.9,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];_0x750ax11[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.35),false), new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.65),false), new mxConnectionConstraint( new mxPoint(1,0.35),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.65),false), new mxConnectionConstraint( new mxPoint(0.25,1),false), new mxConnectionConstraint( new mxPoint(0.75,0),false)];_0x750ax13[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true), new mxConnectionConstraint( new mxPoint(0.1,0.25),false), new mxConnectionConstraint( new mxPoint(0.2,0.5),false), new mxConnectionConstraint( new mxPoint(0.1,0.75),false), new mxConnectionConstraint( new mxPoint(0.9,0.25),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(0.9,0.75),false)];mxLine[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0.25,0.5),false), new mxConnectionConstraint( new mxPoint(0.75,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.5),false)];_0x750ax26[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.5,1),false)];mxEllipse[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0),true), new mxConnectionConstraint( new mxPoint(1,0),true), new mxConnectionConstraint( new mxPoint(0,1),true), new mxConnectionConstraint( new mxPoint(1,1),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5))];mxDoubleEllipse[_0xade1[0]][_0xade1[147]]=mxEllipse[_0xade1[0]][_0xade1[147]];mxRhombus[_0xade1[0]][_0xade1[147]]=mxEllipse[_0xade1[0]][_0xade1[147]];mxTriangle[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(1,0.5),true)];mxHexagon[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.375,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.625,0),true), new mxConnectionConstraint( new mxPoint(0.125,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0.125,0.75),false), new mxConnectionConstraint( new mxPoint(0.875,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(0.875,0.75),false), new mxConnectionConstraint( new mxPoint(0.375,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.625,1),true)];mxCloud[_0xade1[0]][_0xade1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.25),false), new mxConnectionConstraint( new mxPoint(0.4,0.1),false), new mxConnectionConstraint( new mxPoint(0.16,0.55),false), new mxConnectionConstraint( new mxPoint(0.07,0.4),false), new mxConnectionConstraint( new mxPoint(0.31,0.8),false), new mxConnectionConstraint( new mxPoint(0.13,0.77),false), new mxConnectionConstraint( new mxPoint(0.8,0.8),false), new mxConnectionConstraint( new mxPoint(0.55,0.95),false), new mxConnectionConstraint( new mxPoint(0.875,0.5),false), new mxConnectionConstraint( new mxPoint(0.96,0.7),false), new mxConnectionConstraint( new mxPoint(0.625,0.2),false), new mxConnectionConstraint( new mxPoint(0.88,0.25),false)];mxArrow[_0xade1[0]][_0xade1[147]]=null;})();
\ No newline at end of file
index 883d97b..9ecdea2 100644 (file)
@@ -1 +1 @@
-var _0xc984=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x61\x6C\x65\x74\x74\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x67\x72\x61\x70\x68","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x65\x64\x69\x74\x6F\x72","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x6F\x64\x79","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x6D\x6F\x75\x73\x65\x75\x70","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x74\x6F\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x74\x6F\x6F\x6C\x74\x69\x70\x2E\x70\x6E\x67","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x65\x6E\x74\x72\x79","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74","\x2F","\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x73\x74\x61\x72\x74","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x69\x6E\x70\x75\x74","\x65\x6E\x64","\x65\x6D\x61\x69\x6C","\x61\x64\x64\x49\x6D\x61\x67\x65\x50\x61\x6C\x65\x74\x74\x65","\x65\x6E\x61\x62\x6C\x65\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x42\x6F\x72\x64\x65\x72","\x74\x68\x75\x6D\x62\x42\x6F\x72\x64\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x44\x65\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x61\x72\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x69\x70\x61\x72\x74\x2F\x47\x65\x61\x72\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x74\x68\x75\x6D\x62\x57\x69\x64\x74\x68","\x74\x68\x75\x6D\x62\x48\x65\x69\x67\x68\x74","\x74\x68\x75\x6D\x62\x50\x61\x64\x64\x69\x6E\x67","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x53\x69\x7A\x65","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70","\x74\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x6F\x6F\x6C\x74\x69\x70","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x72\x61\x70\x68\x32","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x76\x69\x65\x77","\x49\x53\x5F\x53\x56\x47","\x63\x61\x6E\x76\x61\x73","\x72\x65\x6C\x61\x74\x69\x76\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x31\x34\x70\x78","\x68\x65\x69\x67\x68\x74","\x32\x37\x70\x78","\x64\x69\x73\x70\x6C\x61\x79","\x62\x6C\x6F\x63\x6B","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x63\x6C\x65\x61\x72","\x6D\x6F\x64\x65\x6C","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x76\x69\x73\x69\x62\x6C\x65","\x70\x78","\x6C\x65\x6E\x67\x74\x68","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x67\x72\x61\x79","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x65\x6E\x74\x65\x72","\x31\x30\x30\x25","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x32\x70\x78","\x36\x70\x78","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","","\x77\x72\x69\x74\x65","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x74\x6F\x70","\x6E\x6F\x6E\x65","\x78","\x6D\x69\x6E","\x79","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x78","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x29","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x65\x66\x74","\x64\x72\x61\x77\x50\x61\x6E\x65","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x54\x69\x74\x6C\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x68\x75\x6D\x62","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x66\x6C\x6F\x6F\x72","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x4E\x4F\x5F\x46\x4F","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x49\x53\x5F\x49\x45\x36","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x63\x75\x72\x73\x6F\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x49\x53\x5F\x49\x45","\x34\x70\x78","\x63\x72\x65\x61\x74\x65\x49\x74\x65\x6D","\x67\x65\x49\x74\x65\x6D","\x70\x61\x64\x64\x69\x6E\x67","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x63\x72\x65\x61\x74\x65\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x50\x72\x65\x76\x69\x65\x77","\x62\x6F\x72\x64\x65\x72","\x31\x70\x78\x20\x64\x61\x73\x68\x65\x64\x20\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x53\x6F\x75\x72\x63\x65","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x61\x70\x70\x6C\x79","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x6D\x6F\x75\x73\x65\x55\x70","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x61\x62\x73","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x64\x72\x6F\x70","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6C\x61\x62\x65\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6F\x74\x68\x65\x72","\x66\x61\x6C\x73\x65","\x54\x79\x70\x65","\x48\x6F\x73\x74","\x55\x73\x65\x72\x6E\x61\x6D\x65","\x50\x61\x73\x73\x77\x6F\x72\x64","\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x42\x6F\x64\x79","\x76\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x65\x64\x67\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x23\x66\x66\x66\x66\x66\x66","\x61\x64\x64\x50\x61\x6C\x65\x74\x74\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72","\x61\x64\x64\x46\x6F\x6C\x64\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66\x29","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x31\x30\x30\x25\x20\x35\x30\x25","\x77\x61\x69\x74","\x72\x65\x6D\x6F\x76\x65\x50\x61\x6C\x65\x74\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x69\x6D\x61\x67\x65\x3B\x69\x6D\x61\x67\x65\x3D"];_0xc984[0];function Sidebar(_0x8859x2,_0x8859x3){this[_0xc984[1]]=_0x8859x2;this[_0xc984[2]]=_0x8859x3;this[_0xc984[3]]= new Object();this[_0xc984[4]]=true;this[_0xc984[5]]= new Graph(document[_0xc984[7]](_0xc984[6]),null,null,this[_0xc984[1]][_0xc984[9]][_0xc984[5]][_0xc984[8]]());this[_0xc984[5]][_0xc984[10]]=false;this[_0xc984[5]][_0xc984[11]]=false;this[_0xc984[5]][_0xc984[12]](false);this[_0xc984[5]][_0xc984[13]]=false;this[_0xc984[5]][_0xc984[14]](false);this[_0xc984[5]][_0xc984[15]](false);this[_0xc984[5]][_0xc984[2]][_0xc984[17]][_0xc984[16]]=_0xc984[18];this[_0xc984[5]][_0xc984[2]][_0xc984[17]][_0xc984[19]]=_0xc984[20];document[_0xc984[22]][_0xc984[21]](this[_0xc984[5]][_0xc984[2]]);if(!mxClient[_0xc984[23]]){mxEvent[_0xc984[26]](document,_0xc984[24],mxUtils[_0xc984[25]](this,function(){this[_0xc984[4]]=true}));mxEvent[_0xc984[26]](_0x8859x3,_0xc984[27],mxUtils[_0xc984[25]](this,function(){this[_0xc984[4]]=true}));mxEvent[_0xc984[26]](document,_0xc984[28],mxUtils[_0xc984[25]](this,function(){this[_0xc984[4]]=false;this[_0xc984[29]]();}));mxEvent[_0xc984[26]](document,_0xc984[30],mxUtils[_0xc984[25]](this,function(_0x8859x4){var _0x8859x5=mxEvent[_0xc984[31]](_0x8859x4);while(_0x8859x5!=null){if(_0x8859x5==this[_0xc984[32]]){return };_0x8859x5=_0x8859x5[_0xc984[33]];};this[_0xc984[29]]();}));mxEvent[_0xc984[26]](document,_0xc984[34],mxUtils[_0xc984[25]](this,function(_0x8859x4){if(_0x8859x4[_0xc984[35]]==null&&_0x8859x4[_0xc984[36]]==null){this[_0xc984[29]]()}}));};this[_0xc984[37]](); new Image()[_0xc984[38]]=IMAGE_PATH+_0xc984[39];}Sidebar[_0xc984[40]][_0xc984[37]]=function(){var _0x8859x6=STENCIL_PATH;console[_0xc984[41]](_0x8859x6);this[_0xc984[52]](_0xc984[42],mxResources[_0xc984[44]](_0xc984[43]),_0x8859x6+_0xc984[45],_0xc984[46],[_0xc984[47],_0xc984[48],_0xc984[49],_0xc984[50],_0xc984[51]],[mxResources[_0xc984[44]](_0xc984[47]),mxResources[_0xc984[44]](_0xc984[48]),mxResources[_0xc984[44]](_0xc984[49]),mxResources[_0xc984[44]](_0xc984[50]),mxResources[_0xc984[44]](_0xc984[51])]);};Sidebar[_0xc984[40]][_0xc984[53]]=!mxClient[_0xc984[23]];Sidebar[_0xc984[40]][_0xc984[54]]=16;Sidebar[_0xc984[40]][_0xc984[55]]=3;Sidebar[_0xc984[40]][_0xc984[56]]=300;Sidebar[_0xc984[40]][_0xc984[57]]=true;Sidebar[_0xc984[40]][_0xc984[58]]=STENCIL_PATH+_0xc984[59];Sidebar[_0xc984[40]][_0xc984[60]]=34;Sidebar[_0xc984[40]][_0xc984[61]]=34;Sidebar[_0xc984[40]][_0xc984[62]]=2;Sidebar[_0xc984[40]][_0xc984[63]]=9;Sidebar[_0xc984[40]][_0xc984[64]]=false;Sidebar[_0xc984[40]][_0xc984[65]]=false;Sidebar[_0xc984[40]][_0xc984[66]]=function(_0x8859x7,_0x8859x8,_0x8859x9,_0x8859xa){if(this[_0xc984[53]]&&this[_0xc984[4]]){if(this[_0xc984[32]]!=_0x8859x7){if(this[_0xc984[67]]!=null){window[_0xc984[68]](this[_0xc984[67]]);this[_0xc984[67]]=null;};var _0x8859xb=mxUtils[_0xc984[25]](this,function(){if(this[_0xc984[69]]==null){this[_0xc984[69]]=document[_0xc984[7]](_0xc984[6]);this[_0xc984[69]][_0xc984[70]]=_0xc984[71];document[_0xc984[22]][_0xc984[21]](this[_0xc984[69]]);this[_0xc984[72]]= new Graph(this[_0xc984[69]],null,null,this[_0xc984[1]][_0xc984[9]][_0xc984[5]][_0xc984[8]]());this[_0xc984[72]][_0xc984[74]][_0xc984[73]](this[_0xc984[54]],this[_0xc984[54]]);this[_0xc984[72]][_0xc984[10]]=false;this[_0xc984[72]][_0xc984[11]]=false;this[_0xc984[72]][_0xc984[13]]=false;this[_0xc984[72]][_0xc984[14]](false);this[_0xc984[72]][_0xc984[12]](false);this[_0xc984[72]][_0xc984[15]](false);if(!mxClient[_0xc984[75]]){this[_0xc984[72]][_0xc984[74]][_0xc984[76]][_0xc984[17]][_0xc984[19]]=_0xc984[77]};this[_0xc984[78]]=mxUtils[_0xc984[79]](IMAGE_PATH+_0xc984[39]);this[_0xc984[78]][_0xc984[17]][_0xc984[19]]=_0xc984[20];this[_0xc984[78]][_0xc984[17]][_0xc984[80]]=_0xc984[81];this[_0xc984[78]][_0xc984[17]][_0xc984[82]]=_0xc984[83];document[_0xc984[22]][_0xc984[21]](this[_0xc984[78]]);};this[_0xc984[69]][_0xc984[17]][_0xc984[84]]=_0xc984[85];this[_0xc984[72]][_0xc984[86]]=(_0x8859xa==null||_0x8859xa);this[_0xc984[72]][_0xc984[88]][_0xc984[87]]();this[_0xc984[72]][_0xc984[89]](_0x8859x8);var _0x8859xc=this[_0xc984[72]][_0xc984[90]]();var _0x8859xd=_0x8859xc[_0xc984[80]]+2*this[_0xc984[54]];var _0x8859xe=_0x8859xc[_0xc984[82]]+2*this[_0xc984[54]];if(mxClient[_0xc984[91]]){_0x8859xd+=4;_0x8859xe+=4;this[_0xc984[69]][_0xc984[17]][_0xc984[92]]=_0xc984[18];}else {this[_0xc984[69]][_0xc984[17]][_0xc984[92]]=_0xc984[93]};this[_0xc984[78]][_0xc984[17]][_0xc984[16]]=_0xc984[93];this[_0xc984[69]][_0xc984[17]][_0xc984[80]]=_0x8859xd+_0xc984[94];if(this[_0xc984[65]]&&_0x8859x9!=null&&_0x8859x9[_0xc984[95]]>0){if(this[_0xc984[96]]==null){this[_0xc984[96]]=document[_0xc984[7]](_0xc984[6]);this[_0xc984[96]][_0xc984[17]][_0xc984[97]]=_0xc984[98];this[_0xc984[96]][_0xc984[17]][_0xc984[99]]=_0xc984[100];this[_0xc984[96]][_0xc984[17]][_0xc984[80]]=_0xc984[101];this[_0xc984[96]][_0xc984[17]][_0xc984[92]]=_0xc984[18];if(mxClient[_0xc984[75]]){this[_0xc984[96]][_0xc984[17]][_0xc984[102]]=_0xc984[103]}else {this[_0xc984[96]][_0xc984[17]][_0xc984[19]]=_0xc984[20];this[_0xc984[96]][_0xc984[17]][_0xc984[102]]=_0xc984[104];};this[_0xc984[69]][_0xc984[21]](this[_0xc984[96]]);}else {this[_0xc984[96]][_0xc984[105]]=_0xc984[106]};this[_0xc984[96]][_0xc984[17]][_0xc984[84]]=_0xc984[106];mxUtils[_0xc984[107]](this[_0xc984[96]],_0x8859x9);var _0x8859xf=this[_0xc984[96]][_0xc984[108]]+10;_0x8859xe+=_0x8859xf;if(mxClient[_0xc984[75]]){this[_0xc984[96]][_0xc984[17]][_0xc984[109]]=(-_0x8859xf)+_0xc984[94]}else {_0x8859xe-=6;this[_0xc984[96]][_0xc984[17]][_0xc984[110]]=(_0x8859xe-_0x8859xf)+_0xc984[94];};}else {if(this[_0xc984[96]]!=null&&this[_0xc984[96]][_0xc984[33]]!=null){this[_0xc984[96]][_0xc984[17]][_0xc984[84]]=_0xc984[111]}};this[_0xc984[69]][_0xc984[17]][_0xc984[82]]=_0x8859xe+_0xc984[94];var _0x8859x10=-Math[_0xc984[113]](0,_0x8859xc[_0xc984[112]]-this[_0xc984[54]]);var _0x8859x11=-Math[_0xc984[113]](0,_0x8859xc[_0xc984[114]]-this[_0xc984[54]]);var _0x8859x12=this[_0xc984[2]][_0xc984[115]]+this[_0xc984[1]][_0xc984[116]]+3;var _0x8859x13=Math[_0xc984[119]](0,(this[_0xc984[2]][_0xc984[117]]+_0x8859x7[_0xc984[117]]-this[_0xc984[2]][_0xc984[118]]-_0x8859xe/2+16));if(mxClient[_0xc984[75]]){this[_0xc984[72]][_0xc984[74]][_0xc984[76]][_0xc984[124]](_0xc984[120],_0xc984[121]+_0x8859x10+_0xc984[122]+_0x8859x11+_0xc984[123])}else {this[_0xc984[72]][_0xc984[74]][_0xc984[126]][_0xc984[17]][_0xc984[125]]=_0x8859x10+_0xc984[94];this[_0xc984[72]][_0xc984[74]][_0xc984[126]][_0xc984[17]][_0xc984[110]]=_0x8859x11+_0xc984[94];};_0x8859x13+=90;this[_0xc984[69]][_0xc984[17]][_0xc984[19]]=_0xc984[20];this[_0xc984[69]][_0xc984[17]][_0xc984[125]]=_0x8859x12+_0xc984[94];this[_0xc984[69]][_0xc984[17]][_0xc984[110]]=_0x8859x13+_0xc984[94];this[_0xc984[78]][_0xc984[17]][_0xc984[125]]=(_0x8859x12-13)+_0xc984[94];this[_0xc984[78]][_0xc984[17]][_0xc984[110]]=(_0x8859x13+_0x8859xe/2-13)+_0xc984[94];});if(this[_0xc984[69]]!=null&&this[_0xc984[69]][_0xc984[17]][_0xc984[84]]!=_0xc984[111]){_0x8859xb()}else {this[_0xc984[67]]=window[_0xc984[127]](_0x8859xb,this[_0xc984[56]])};this[_0xc984[32]]=_0x8859x7;}}};Sidebar[_0xc984[40]][_0xc984[29]]=function(){if(this[_0xc984[67]]!=null){window[_0xc984[68]](this[_0xc984[67]]);this[_0xc984[67]]=null;};if(this[_0xc984[69]]!=null){this[_0xc984[69]][_0xc984[17]][_0xc984[84]]=_0xc984[111];this[_0xc984[78]][_0xc984[17]][_0xc984[16]]=_0xc984[18];this[_0xc984[32]]=null;};};Sidebar[_0xc984[40]][_0xc984[128]]=function(_0x8859x14){var _0x8859x7=document[_0xc984[7]](_0xc984[129]);_0x8859x7[_0xc984[124]](_0xc984[130],_0xc984[131]);_0x8859x7[_0xc984[70]]=_0xc984[132];mxUtils[_0xc984[107]](_0x8859x7,_0x8859x14);return _0x8859x7;};Sidebar[_0xc984[40]][_0xc984[133]]=function(_0x8859x8,_0x8859xd,_0x8859xe,_0x8859x15,_0x8859x9,_0x8859xa){this[_0xc984[5]][_0xc984[86]]=(_0x8859xa==null||_0x8859xa);this[_0xc984[5]][_0xc984[74]][_0xc984[134]](1,0,0);this[_0xc984[5]][_0xc984[89]](_0x8859x8);var _0x8859xc=this[_0xc984[5]][_0xc984[90]]();var _0x8859x16=this[_0xc984[55]];var _0x8859x17=Math[_0xc984[113]]((_0x8859xd-2)/(_0x8859xc[_0xc984[80]]-_0x8859xc[_0xc984[112]]+_0x8859x16),(_0x8859xe-2)/(_0x8859xc[_0xc984[82]]-_0x8859xc[_0xc984[114]]+_0x8859x16));var _0x8859x10=-Math[_0xc984[113]](_0x8859xc[_0xc984[112]],0);var _0x8859x11=-Math[_0xc984[113]](_0x8859xc[_0xc984[114]],0);this[_0xc984[5]][_0xc984[74]][_0xc984[134]](_0x8859x17,_0x8859x10,_0x8859x11);_0x8859xc=this[_0xc984[5]][_0xc984[90]]();var _0x8859x18=Math[_0xc984[119]](0,Math[_0xc984[135]]((_0x8859xd-_0x8859xc[_0xc984[80]]-_0x8859xc[_0xc984[112]])/2));var _0x8859xf=Math[_0xc984[119]](0,Math[_0xc984[135]]((_0x8859xe-_0x8859xc[_0xc984[82]]-_0x8859xc[_0xc984[114]])/2));var _0x8859x19=null;if(this[_0xc984[5]][_0xc984[136]]==mxConstants[_0xc984[137]]&&!mxClient[_0xc984[138]]){_0x8859x19=this[_0xc984[5]][_0xc984[74]][_0xc984[141]]()[_0xc984[140]][_0xc984[139]](true)}else {_0x8859x19=this[_0xc984[5]][_0xc984[2]][_0xc984[139]](false);_0x8859x19[_0xc984[105]]=this[_0xc984[5]][_0xc984[2]][_0xc984[105]];};this[_0xc984[5]][_0xc984[142]]()[_0xc984[87]]();if(mxClient[_0xc984[143]]){_0x8859x15[_0xc984[17]][_0xc984[144]]=_0xc984[145]+this[_0xc984[1]][_0xc984[9]][_0xc984[146]]+_0xc984[123]};var _0x8859x1a=3;_0x8859x19[_0xc984[17]][_0xc984[19]]=_0xc984[77];_0x8859x19[_0xc984[17]][_0xc984[92]]=_0xc984[18];_0x8859x19[_0xc984[17]][_0xc984[147]]=_0xc984[148];_0x8859x19[_0xc984[17]][_0xc984[125]]=(_0x8859x18+_0x8859x1a)+_0xc984[94];_0x8859x19[_0xc984[17]][_0xc984[110]]=(_0x8859xf+_0x8859x1a)+_0xc984[94];_0x8859x19[_0xc984[17]][_0xc984[80]]=_0x8859xd+_0xc984[94];_0x8859x19[_0xc984[17]][_0xc984[82]]=_0x8859xe+_0xc984[94];_0x8859x19[_0xc984[17]][_0xc984[16]]=_0xc984[106];_0x8859x19[_0xc984[17]][_0xc984[149]]=_0xc984[106];_0x8859x19[_0xc984[17]][_0xc984[150]]=_0xc984[106];_0x8859x15[_0xc984[21]](_0x8859x19);if(this[_0xc984[64]]&&_0x8859x9!=null){var _0x8859x1b=(mxClient[_0xc984[91]])?2*this[_0xc984[62]]+2:0;_0x8859x15[_0xc984[17]][_0xc984[82]]=(this[_0xc984[61]]+_0x8859x1b+this[_0xc984[63]]+8)+_0xc984[94];var _0x8859x1c=document[_0xc984[7]](_0xc984[6]);_0x8859x1c[_0xc984[17]][_0xc984[151]]=this[_0xc984[63]]+_0xc984[94];_0x8859x1c[_0xc984[17]][_0xc984[99]]=_0xc984[100];_0x8859x1c[_0xc984[17]][_0xc984[152]]=_0xc984[153];if(mxClient[_0xc984[154]]){_0x8859x1c[_0xc984[17]][_0xc984[82]]=(this[_0xc984[63]]+12)+_0xc984[94]};_0x8859x1c[_0xc984[17]][_0xc984[102]]=_0xc984[155];mxUtils[_0xc984[107]](_0x8859x1c,_0x8859x9);_0x8859x15[_0xc984[21]](_0x8859x1c);};};Sidebar[_0xc984[40]][_0xc984[156]]=function(_0x8859x8,_0x8859x9,_0x8859xa){var _0x8859x7=document[_0xc984[7]](_0xc984[129]);_0x8859x7[_0xc984[124]](_0xc984[130],_0xc984[131]);_0x8859x7[_0xc984[70]]=_0xc984[157];_0x8859x7[_0xc984[17]][_0xc984[92]]=_0xc984[18];var _0x8859x1b=(mxClient[_0xc984[91]])?8+2*this[_0xc984[62]]:6;_0x8859x7[_0xc984[17]][_0xc984[80]]=(this[_0xc984[60]]+_0x8859x1b)+_0xc984[94];_0x8859x7[_0xc984[17]][_0xc984[82]]=(this[_0xc984[61]]+_0x8859x1b)+_0xc984[94];_0x8859x7[_0xc984[17]][_0xc984[158]]=this[_0xc984[62]]+_0xc984[94];mxEvent[_0xc984[26]](_0x8859x7,_0xc984[159],function(_0x8859x4){mxEvent[_0xc984[160]](_0x8859x4)});this[_0xc984[133]](_0x8859x8,this[_0xc984[60]],this[_0xc984[61]],_0x8859x7,_0x8859x9,_0x8859xa);return _0x8859x7;};Sidebar[_0xc984[40]][_0xc984[161]]=function(_0x8859x8,_0x8859x1d){return function(_0x8859x1e,_0x8859x4,_0x8859x1f,_0x8859x20,_0x8859x21){if(_0x8859x1e[_0xc984[162]]()){_0x8859x8=_0x8859x1e[_0xc984[163]](_0x8859x8);if(_0x8859x8[_0xc984[95]]>0){var _0x8859x22=(_0x8859x1f!=null)?_0x8859x1e[_0xc984[164]](_0x8859x1f,_0x8859x8,_0x8859x4):false;var _0x8859x23=null;if(_0x8859x1f!=null&& !_0x8859x22){_0x8859x1f=null};if(_0x8859x1d&&_0x8859x1e[_0xc984[165]]()&&_0x8859x1e[_0xc984[166]](_0x8859x1f,_0x8859x8,_0x8859x4)){_0x8859x1e[_0xc984[167]](_0x8859x1f,_0x8859x8,null,_0x8859x20,_0x8859x21);_0x8859x23=_0x8859x8;}else {if(_0x8859x8[_0xc984[95]]>0){_0x8859x23=_0x8859x1e[_0xc984[168]](_0x8859x8,_0x8859x20,_0x8859x21,_0x8859x1f)}};if(_0x8859x23!=null&&_0x8859x23[_0xc984[95]]>0){_0x8859x1e[_0xc984[169]](_0x8859x23[0]);_0x8859x1e[_0xc984[170]](_0x8859x23);};};}}};Sidebar[_0xc984[40]][_0xc984[171]]=function(_0x8859xd,_0x8859xe){var _0x8859x7=document[_0xc984[7]](_0xc984[6]);_0x8859x7[_0xc984[17]][_0xc984[172]]=_0xc984[173];_0x8859x7[_0xc984[17]][_0xc984[80]]=_0x8859xd+_0xc984[94];_0x8859x7[_0xc984[17]][_0xc984[82]]=_0x8859xe+_0xc984[94];return _0x8859x7;};Sidebar[_0xc984[40]][_0xc984[174]]=function(_0x8859x7,_0x8859x24,_0x8859x25){var _0x8859x26=mxUtils[_0xc984[176]](_0x8859x7,this[_0xc984[1]][_0xc984[9]][_0xc984[5]],_0x8859x24,_0x8859x25,0,0,this[_0xc984[1]][_0xc984[9]][_0xc984[5]][_0xc984[175]],true,true);_0x8859x26[_0xc984[177]]=function(_0x8859x1e,_0x8859x20,_0x8859x21){var _0x8859x1f=mxDragSource[_0xc984[40]][_0xc984[177]][_0xc984[178]](this,arguments);if(!_0x8859x1e[_0xc984[179]](_0x8859x1f)){_0x8859x1f=null};return _0x8859x1f;};return _0x8859x26;};Sidebar[_0xc984[40]][_0xc984[180]]=function(_0x8859x7,_0x8859x27){var _0x8859x1e=this[_0xc984[1]][_0xc984[9]][_0xc984[5]];var _0x8859x28=null;mxEvent[_0xc984[183]](_0x8859x7,function(_0x8859x4){_0x8859x28= new mxPoint(mxEvent[_0xc984[181]](_0x8859x4),mxEvent[_0xc984[182]](_0x8859x4))});var _0x8859x29=_0x8859x27[_0xc984[184]];_0x8859x27[_0xc984[184]]=function(_0x8859x4){if(!mxEvent[_0xc984[185]](_0x8859x4)&&this[_0xc984[186]]==null&&_0x8859x28!=null){var _0x8859x2a=_0x8859x1e[_0xc984[187]];if(Math[_0xc984[188]](_0x8859x28[_0xc984[112]]-mxEvent[_0xc984[181]](_0x8859x4))<=_0x8859x2a&&Math[_0xc984[188]](_0x8859x28[_0xc984[114]]-mxEvent[_0xc984[182]](_0x8859x4))<=_0x8859x2a){var _0x8859x2b=_0x8859x1e[_0xc984[189]]();_0x8859x27[_0xc984[190]](_0x8859x1e,_0x8859x4,null,_0x8859x2b,_0x8859x2b);};};_0x8859x29[_0xc984[178]](this,arguments);_0x8859x28=null;};};Sidebar[_0xc984[40]][_0xc984[191]]=function(_0x8859x2c,_0x8859x14,_0x8859x2d,_0x8859x2e){var _0x8859x2f=mxUtils[_0xc984[191]]();var _0x8859x19=_0x8859x2f[_0xc984[7]](_0x8859x2c);_0x8859x19[_0xc984[124]](_0xc984[192],_0x8859x14);_0x8859x2d[_0xc984[193]](function(_0x8859x30,_0x8859x31){_0x8859x19[_0xc984[124]](_0x8859x30,_0x8859x2e[_0x8859x31]?_0x8859x2e[_0x8859x31]:_0xc984[106])});return _0x8859x19;};Sidebar[_0xc984[40]][_0xc984[194]]=function(_0x8859x32,_0x8859xd,_0x8859xe,_0x8859x33,_0x8859x9,_0x8859xa){var _0x8859x2d=[];var _0x8859x2e=[];switch(_0x8859x33){case _0xc984[48]:_0x8859x2d=[_0xc984[48],_0xc984[195]];_0x8859x2e=[_0xc984[106],_0xc984[196]];break ;;case _0xc984[49]:_0x8859x2d=[_0xc984[48],_0xc984[197]];_0x8859x2e=[_0xc984[106]];break ;;case _0xc984[51]:_0x8859x2d=[_0xc984[198],_0xc984[199],_0xc984[200],_0xc984[201],_0xc984[202],_0xc984[203]];_0x8859x2e=[_0xc984[106]];break ;;default:_0x8859x2d=[];_0x8859x2e=[];break ;;};var _0x8859x19=this[_0xc984[191]](_0x8859x33,_0x8859x9,_0x8859x2d,_0x8859x2e);var _0x8859x8=[ new mxCell(_0x8859x19, new mxGeometry(0,0,_0x8859xd,_0x8859xe),_0x8859x32)];_0x8859x8[0][_0xc984[204]]=true;return this[_0xc984[205]](_0x8859x8,_0x8859xd,_0x8859xe,_0x8859x9,_0x8859xa);};Sidebar[_0xc984[40]][_0xc984[205]]=function(_0x8859x8,_0x8859xd,_0x8859xe,_0x8859x9,_0x8859xa){var _0x8859x7=this[_0xc984[156]](_0x8859x8,_0x8859x9,_0x8859xa);var _0x8859x27=this[_0xc984[174]](_0x8859x7,this[_0xc984[161]](_0x8859x8,true),this[_0xc984[171]](_0x8859xd,_0x8859xe));this[_0xc984[180]](_0x8859x7,_0x8859x27);_0x8859x27[_0xc984[206]]=mxUtils[_0xc984[25]](this,function(){return this[_0xc984[1]][_0xc984[9]][_0xc984[5]][_0xc984[208]][_0xc984[207]]});if(!touchStyle){mxEvent[_0xc984[26]](_0x8859x7,_0xc984[30],mxUtils[_0xc984[25]](this,function(_0x8859x4){this[_0xc984[66]](_0x8859x7,_0x8859x8,_0x8859x9,_0x8859xa)}))};return _0x8859x7;};Sidebar[_0xc984[40]][_0xc984[209]]=function(_0x8859x32,_0x8859xd,_0x8859xe,_0x8859x33,_0x8859x9,_0x8859xa){var _0x8859x8=[ new mxCell((_0x8859x33!=null)?_0x8859x33:_0xc984[106], new mxGeometry(0,0,_0x8859xd,_0x8859xe),_0x8859x32)];_0x8859x8[0][_0xc984[211]][_0xc984[210]]( new mxPoint(0,_0x8859xe),true);_0x8859x8[0][_0xc984[211]][_0xc984[210]]( new mxPoint(_0x8859xd,0),false);_0x8859x8[0][_0xc984[211]][_0xc984[77]]=true;_0x8859x8[0][_0xc984[212]]=true;return this[_0xc984[213]](_0x8859x8,_0x8859xd,_0x8859xe,_0x8859x9,_0x8859xa);};Sidebar[_0xc984[40]][_0xc984[213]]=function(_0x8859x8,_0x8859xd,_0x8859xe,_0x8859x9,_0x8859xa){var _0x8859x7=this[_0xc984[156]](_0x8859x8,_0x8859x9,_0x8859xa);this[_0xc984[174]](_0x8859x7,this[_0xc984[161]](_0x8859x8,false),this[_0xc984[171]](_0x8859xd,_0x8859xe));var _0x8859x1e=this[_0xc984[1]][_0xc984[9]][_0xc984[5]];mxEvent[_0xc984[26]](_0x8859x7,_0xc984[159],mxUtils[_0xc984[25]](this,function(_0x8859x4){if(this[_0xc984[57]]){_0x8859x1e[_0xc984[214]](_0x8859x8[0])};_0x8859x7[_0xc984[17]][_0xc984[215]]=_0xc984[216];window[_0xc984[127]](function(){_0x8859x7[_0xc984[17]][_0xc984[215]]=_0xc984[106]},300);mxEvent[_0xc984[160]](_0x8859x4);}));touchStyle=false;if(!touchStyle){mxEvent[_0xc984[26]](_0x8859x7,_0xc984[30],mxUtils[_0xc984[25]](this,function(_0x8859x4){this[_0xc984[66]](_0x8859x7,_0x8859x8,_0x8859x9,_0x8859xa)}))};return _0x8859x7;};Sidebar[_0xc984[40]][_0xc984[217]]=function(_0x8859x34,_0x8859x9,_0x8859x35,_0x8859x36){var _0x8859x7=this[_0xc984[128]](_0x8859x9);this[_0xc984[2]][_0xc984[21]](_0x8859x7);var _0x8859x1c=document[_0xc984[7]](_0xc984[6]);_0x8859x1c[_0xc984[70]]=_0xc984[218];if(_0x8859x35){_0x8859x36(_0x8859x1c);_0x8859x36=null;}else {_0x8859x1c[_0xc984[17]][_0xc984[84]]=_0xc984[111]};this[_0xc984[219]](_0x8859x7,_0x8859x1c,_0x8859x36);var _0x8859x37=document[_0xc984[7]](_0xc984[6]);_0x8859x37[_0xc984[21]](_0x8859x1c);this[_0xc984[2]][_0xc984[21]](_0x8859x37);if(_0x8859x34!=null){this[_0xc984[3]][_0x8859x34]=[_0x8859x7,_0x8859x37]};};Sidebar[_0xc984[40]][_0xc984[219]]=function(_0x8859x9,_0x8859x38,_0x8859x39){var _0x8859x3a=false;_0x8859x9[_0xc984[17]][_0xc984[144]]=(_0x8859x38[_0xc984[17]][_0xc984[84]]==_0xc984[111])?_0xc984[145]+IMAGE_PATH+_0xc984[220]:_0xc984[145]+IMAGE_PATH+_0xc984[221];_0x8859x9[_0xc984[17]][_0xc984[222]]=_0xc984[223];_0x8859x9[_0xc984[17]][_0xc984[224]]=_0xc984[225];mxEvent[_0xc984[26]](_0x8859x9,_0xc984[159],function(_0x8859x4){if(_0x8859x38[_0xc984[17]][_0xc984[84]]==_0xc984[111]){if(!_0x8859x3a){_0x8859x3a=true;if(_0x8859x39!=null){_0x8859x9[_0xc984[17]][_0xc984[147]]=_0xc984[226];window[_0xc984[127]](function(){_0x8859x39(_0x8859x38);_0x8859x9[_0xc984[17]][_0xc984[147]]=_0xc984[106];},0);};};_0x8859x9[_0xc984[17]][_0xc984[144]]=_0xc984[145]+IMAGE_PATH+_0xc984[221];_0x8859x38[_0xc984[17]][_0xc984[84]]=_0xc984[85];}else {_0x8859x9[_0xc984[17]][_0xc984[144]]=_0xc984[145]+IMAGE_PATH+_0xc984[220];_0x8859x38[_0xc984[17]][_0xc984[84]]=_0xc984[111];};mxEvent[_0xc984[160]](_0x8859x4);});};Sidebar[_0xc984[40]][_0xc984[227]]=function(_0x8859x34){var _0x8859x3b=this[_0xc984[3]][_0x8859x34];if(_0x8859x3b!=null){this[_0xc984[3]][_0x8859x34]=null;for(var _0x8859x3c=0;_0x8859x3c<_0x8859x3b[_0xc984[95]];_0x8859x3c++){this[_0xc984[2]][_0xc984[228]](_0x8859x3b[_0x8859x3c])};return true;};return false;};Sidebar[_0xc984[40]][_0xc984[52]]=function(_0x8859x34,_0x8859x9,_0x8859x3d,_0x8859x3e,_0x8859x3f,_0x8859x40){this[_0xc984[217]](_0x8859x34,_0x8859x9,(_0x8859x34===_0xc984[42]),mxUtils[_0xc984[25]](this,function(_0x8859x38){var _0x8859x41=_0x8859x40!=null;for(var _0x8859x3c=0;_0x8859x3c<_0x8859x3f[_0xc984[95]];_0x8859x3c++){var _0x8859x42=_0x8859x3d+_0x8859x3f[_0x8859x3c]+_0x8859x3e;_0x8859x38[_0xc984[21]](this[_0xc984[194]](_0xc984[229]+_0x8859x42,80,80,_0x8859x3f[_0x8859x3c],(_0x8859x41)?_0x8859x40[_0x8859x3c]:null,_0x8859x41));};}))};
\ No newline at end of file
+var _0x52e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x61\x6C\x65\x74\x74\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x67\x72\x61\x70\x68","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x65\x64\x69\x74\x6F\x72","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x6F\x64\x79","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x6D\x6F\x75\x73\x65\x75\x70","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x74\x6F\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x74\x6F\x6F\x6C\x74\x69\x70\x2E\x70\x6E\x67","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x65\x6E\x74\x72\x79","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74","\x2F","\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x73\x74\x61\x72\x74","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x69\x6E\x70\x75\x74","\x65\x6E\x64","\x65\x6D\x61\x69\x6C","\x61\x64\x64\x49\x6D\x61\x67\x65\x50\x61\x6C\x65\x74\x74\x65","\x65\x6E\x61\x62\x6C\x65\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x42\x6F\x72\x64\x65\x72","\x74\x68\x75\x6D\x62\x42\x6F\x72\x64\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x44\x65\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x61\x72\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x69\x70\x61\x72\x74\x2F\x47\x65\x61\x72\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x74\x68\x75\x6D\x62\x57\x69\x64\x74\x68","\x74\x68\x75\x6D\x62\x48\x65\x69\x67\x68\x74","\x74\x68\x75\x6D\x62\x50\x61\x64\x64\x69\x6E\x67","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x53\x69\x7A\x65","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70","\x74\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x6F\x6F\x6C\x74\x69\x70","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x72\x61\x70\x68\x32","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x76\x69\x65\x77","\x49\x53\x5F\x53\x56\x47","\x63\x61\x6E\x76\x61\x73","\x72\x65\x6C\x61\x74\x69\x76\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x31\x34\x70\x78","\x68\x65\x69\x67\x68\x74","\x32\x37\x70\x78","\x64\x69\x73\x70\x6C\x61\x79","\x62\x6C\x6F\x63\x6B","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x63\x6C\x65\x61\x72","\x6D\x6F\x64\x65\x6C","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x76\x69\x73\x69\x62\x6C\x65","\x70\x78","\x6C\x65\x6E\x67\x74\x68","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x67\x72\x61\x79","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x65\x6E\x74\x65\x72","\x31\x30\x30\x25","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x32\x70\x78","\x36\x70\x78","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","","\x77\x72\x69\x74\x65","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x74\x6F\x70","\x6E\x6F\x6E\x65","\x78","\x6D\x69\x6E","\x79","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x78","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x29","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x65\x66\x74","\x64\x72\x61\x77\x50\x61\x6E\x65","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x54\x69\x74\x6C\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x68\x75\x6D\x62","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x66\x6C\x6F\x6F\x72","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x4E\x4F\x5F\x46\x4F","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x49\x53\x5F\x49\x45\x36","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x63\x75\x72\x73\x6F\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x49\x53\x5F\x49\x45","\x34\x70\x78","\x63\x72\x65\x61\x74\x65\x49\x74\x65\x6D","\x67\x65\x49\x74\x65\x6D","\x70\x61\x64\x64\x69\x6E\x67","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x63\x72\x65\x61\x74\x65\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x50\x72\x65\x76\x69\x65\x77","\x62\x6F\x72\x64\x65\x72","\x31\x70\x78\x20\x64\x61\x73\x68\x65\x64\x20\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x53\x6F\x75\x72\x63\x65","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x61\x70\x70\x6C\x79","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x6D\x6F\x75\x73\x65\x55\x70","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x61\x62\x73","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x64\x72\x6F\x70","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6C\x61\x62\x65\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6F\x74\x68\x65\x72","\x66\x61\x6C\x73\x65","\x54\x79\x70\x65","\x48\x6F\x73\x74","\x55\x73\x65\x72\x6E\x61\x6D\x65","\x50\x61\x73\x73\x77\x6F\x72\x64","\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x42\x6F\x64\x79","\x76\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x65\x64\x67\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x23\x66\x66\x66\x66\x66\x66","\x61\x64\x64\x50\x61\x6C\x65\x74\x74\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72","\x61\x64\x64\x46\x6F\x6C\x64\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66\x29","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x31\x30\x30\x25\x20\x35\x30\x25","\x77\x61\x69\x74","\x72\x65\x6D\x6F\x76\x65\x50\x61\x6C\x65\x74\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x69\x6D\x61\x67\x65\x3B\x69\x6D\x61\x67\x65\x3D"];_0x52e0[0];function Sidebar(_0x6e9bx2,_0x6e9bx3){this[_0x52e0[1]]=_0x6e9bx2;this[_0x52e0[2]]=_0x6e9bx3;this[_0x52e0[3]]= new Object();this[_0x52e0[4]]=true;this[_0x52e0[5]]= new Graph(document[_0x52e0[7]](_0x52e0[6]),null,null,this[_0x52e0[1]][_0x52e0[9]][_0x52e0[5]][_0x52e0[8]]());this[_0x52e0[5]][_0x52e0[10]]=false;this[_0x52e0[5]][_0x52e0[11]]=false;this[_0x52e0[5]][_0x52e0[12]](false);this[_0x52e0[5]][_0x52e0[13]]=false;this[_0x52e0[5]][_0x52e0[14]](false);this[_0x52e0[5]][_0x52e0[15]](false);this[_0x52e0[5]][_0x52e0[2]][_0x52e0[17]][_0x52e0[16]]=_0x52e0[18];this[_0x52e0[5]][_0x52e0[2]][_0x52e0[17]][_0x52e0[19]]=_0x52e0[20];document[_0x52e0[22]][_0x52e0[21]](this[_0x52e0[5]][_0x52e0[2]]);if(!mxClient[_0x52e0[23]]){mxEvent[_0x52e0[26]](document,_0x52e0[24],mxUtils[_0x52e0[25]](this,function(){this[_0x52e0[4]]=true}));mxEvent[_0x52e0[26]](_0x6e9bx3,_0x52e0[27],mxUtils[_0x52e0[25]](this,function(){this[_0x52e0[4]]=true}));mxEvent[_0x52e0[26]](document,_0x52e0[28],mxUtils[_0x52e0[25]](this,function(){this[_0x52e0[4]]=false;this[_0x52e0[29]]();}));mxEvent[_0x52e0[26]](document,_0x52e0[30],mxUtils[_0x52e0[25]](this,function(_0x6e9bx4){var _0x6e9bx5=mxEvent[_0x52e0[31]](_0x6e9bx4);while(_0x6e9bx5!=null){if(_0x6e9bx5==this[_0x52e0[32]]){return };_0x6e9bx5=_0x6e9bx5[_0x52e0[33]];};this[_0x52e0[29]]();}));mxEvent[_0x52e0[26]](document,_0x52e0[34],mxUtils[_0x52e0[25]](this,function(_0x6e9bx4){if(_0x6e9bx4[_0x52e0[35]]==null&&_0x6e9bx4[_0x52e0[36]]==null){this[_0x52e0[29]]()}}));};this[_0x52e0[37]](); new Image()[_0x52e0[38]]=IMAGE_PATH+_0x52e0[39];}Sidebar[_0x52e0[40]][_0x52e0[37]]=function(){var _0x6e9bx6=STENCIL_PATH;console[_0x52e0[41]](_0x6e9bx6);this[_0x52e0[52]](_0x52e0[42],mxResources[_0x52e0[44]](_0x52e0[43]),_0x6e9bx6+_0x52e0[45],_0x52e0[46],[_0x52e0[47],_0x52e0[48],_0x52e0[49],_0x52e0[50],_0x52e0[51]],[mxResources[_0x52e0[44]](_0x52e0[47]),mxResources[_0x52e0[44]](_0x52e0[48]),mxResources[_0x52e0[44]](_0x52e0[49]),mxResources[_0x52e0[44]](_0x52e0[50]),mxResources[_0x52e0[44]](_0x52e0[51])]);};Sidebar[_0x52e0[40]][_0x52e0[53]]=!mxClient[_0x52e0[23]];Sidebar[_0x52e0[40]][_0x52e0[54]]=16;Sidebar[_0x52e0[40]][_0x52e0[55]]=3;Sidebar[_0x52e0[40]][_0x52e0[56]]=300;Sidebar[_0x52e0[40]][_0x52e0[57]]=true;Sidebar[_0x52e0[40]][_0x52e0[58]]=STENCIL_PATH+_0x52e0[59];Sidebar[_0x52e0[40]][_0x52e0[60]]=34;Sidebar[_0x52e0[40]][_0x52e0[61]]=34;Sidebar[_0x52e0[40]][_0x52e0[62]]=2;Sidebar[_0x52e0[40]][_0x52e0[63]]=9;Sidebar[_0x52e0[40]][_0x52e0[64]]=false;Sidebar[_0x52e0[40]][_0x52e0[65]]=false;Sidebar[_0x52e0[40]][_0x52e0[66]]=function(_0x6e9bx7,_0x6e9bx8,_0x6e9bx9,_0x6e9bxa){if(this[_0x52e0[53]]&&this[_0x52e0[4]]){if(this[_0x52e0[32]]!=_0x6e9bx7){if(this[_0x52e0[67]]!=null){window[_0x52e0[68]](this[_0x52e0[67]]);this[_0x52e0[67]]=null;};var _0x6e9bxb=mxUtils[_0x52e0[25]](this,function(){if(this[_0x52e0[69]]==null){this[_0x52e0[69]]=document[_0x52e0[7]](_0x52e0[6]);this[_0x52e0[69]][_0x52e0[70]]=_0x52e0[71];document[_0x52e0[22]][_0x52e0[21]](this[_0x52e0[69]]);this[_0x52e0[72]]= new Graph(this[_0x52e0[69]],null,null,this[_0x52e0[1]][_0x52e0[9]][_0x52e0[5]][_0x52e0[8]]());this[_0x52e0[72]][_0x52e0[74]][_0x52e0[73]](this[_0x52e0[54]],this[_0x52e0[54]]);this[_0x52e0[72]][_0x52e0[10]]=false;this[_0x52e0[72]][_0x52e0[11]]=false;this[_0x52e0[72]][_0x52e0[13]]=false;this[_0x52e0[72]][_0x52e0[14]](false);this[_0x52e0[72]][_0x52e0[12]](false);this[_0x52e0[72]][_0x52e0[15]](false);if(!mxClient[_0x52e0[75]]){this[_0x52e0[72]][_0x52e0[74]][_0x52e0[76]][_0x52e0[17]][_0x52e0[19]]=_0x52e0[77]};this[_0x52e0[78]]=mxUtils[_0x52e0[79]](IMAGE_PATH+_0x52e0[39]);this[_0x52e0[78]][_0x52e0[17]][_0x52e0[19]]=_0x52e0[20];this[_0x52e0[78]][_0x52e0[17]][_0x52e0[80]]=_0x52e0[81];this[_0x52e0[78]][_0x52e0[17]][_0x52e0[82]]=_0x52e0[83];document[_0x52e0[22]][_0x52e0[21]](this[_0x52e0[78]]);};this[_0x52e0[69]][_0x52e0[17]][_0x52e0[84]]=_0x52e0[85];this[_0x52e0[72]][_0x52e0[86]]=(_0x6e9bxa==null||_0x6e9bxa);this[_0x52e0[72]][_0x52e0[88]][_0x52e0[87]]();this[_0x52e0[72]][_0x52e0[89]](_0x6e9bx8);var _0x6e9bxc=this[_0x52e0[72]][_0x52e0[90]]();var _0x6e9bxd=_0x6e9bxc[_0x52e0[80]]+2*this[_0x52e0[54]];var _0x6e9bxe=_0x6e9bxc[_0x52e0[82]]+2*this[_0x52e0[54]];if(mxClient[_0x52e0[91]]){_0x6e9bxd+=4;_0x6e9bxe+=4;this[_0x52e0[69]][_0x52e0[17]][_0x52e0[92]]=_0x52e0[18];}else {this[_0x52e0[69]][_0x52e0[17]][_0x52e0[92]]=_0x52e0[93]};this[_0x52e0[78]][_0x52e0[17]][_0x52e0[16]]=_0x52e0[93];this[_0x52e0[69]][_0x52e0[17]][_0x52e0[80]]=_0x6e9bxd+_0x52e0[94];if(this[_0x52e0[65]]&&_0x6e9bx9!=null&&_0x6e9bx9[_0x52e0[95]]>0){if(this[_0x52e0[96]]==null){this[_0x52e0[96]]=document[_0x52e0[7]](_0x52e0[6]);this[_0x52e0[96]][_0x52e0[17]][_0x52e0[97]]=_0x52e0[98];this[_0x52e0[96]][_0x52e0[17]][_0x52e0[99]]=_0x52e0[100];this[_0x52e0[96]][_0x52e0[17]][_0x52e0[80]]=_0x52e0[101];this[_0x52e0[96]][_0x52e0[17]][_0x52e0[92]]=_0x52e0[18];if(mxClient[_0x52e0[75]]){this[_0x52e0[96]][_0x52e0[17]][_0x52e0[102]]=_0x52e0[103]}else {this[_0x52e0[96]][_0x52e0[17]][_0x52e0[19]]=_0x52e0[20];this[_0x52e0[96]][_0x52e0[17]][_0x52e0[102]]=_0x52e0[104];};this[_0x52e0[69]][_0x52e0[21]](this[_0x52e0[96]]);}else {this[_0x52e0[96]][_0x52e0[105]]=_0x52e0[106]};this[_0x52e0[96]][_0x52e0[17]][_0x52e0[84]]=_0x52e0[106];mxUtils[_0x52e0[107]](this[_0x52e0[96]],_0x6e9bx9);var _0x6e9bxf=this[_0x52e0[96]][_0x52e0[108]]+10;_0x6e9bxe+=_0x6e9bxf;if(mxClient[_0x52e0[75]]){this[_0x52e0[96]][_0x52e0[17]][_0x52e0[109]]=(-_0x6e9bxf)+_0x52e0[94]}else {_0x6e9bxe-=6;this[_0x52e0[96]][_0x52e0[17]][_0x52e0[110]]=(_0x6e9bxe-_0x6e9bxf)+_0x52e0[94];};}else {if(this[_0x52e0[96]]!=null&&this[_0x52e0[96]][_0x52e0[33]]!=null){this[_0x52e0[96]][_0x52e0[17]][_0x52e0[84]]=_0x52e0[111]}};this[_0x52e0[69]][_0x52e0[17]][_0x52e0[82]]=_0x6e9bxe+_0x52e0[94];var _0x6e9bx10=-Math[_0x52e0[113]](0,_0x6e9bxc[_0x52e0[112]]-this[_0x52e0[54]]);var _0x6e9bx11=-Math[_0x52e0[113]](0,_0x6e9bxc[_0x52e0[114]]-this[_0x52e0[54]]);var _0x6e9bx12=this[_0x52e0[2]][_0x52e0[115]]+this[_0x52e0[1]][_0x52e0[116]]+3;var _0x6e9bx13=Math[_0x52e0[119]](0,(this[_0x52e0[2]][_0x52e0[117]]+_0x6e9bx7[_0x52e0[117]]-this[_0x52e0[2]][_0x52e0[118]]-_0x6e9bxe/2+16));if(mxClient[_0x52e0[75]]){this[_0x52e0[72]][_0x52e0[74]][_0x52e0[76]][_0x52e0[124]](_0x52e0[120],_0x52e0[121]+_0x6e9bx10+_0x52e0[122]+_0x6e9bx11+_0x52e0[123])}else {this[_0x52e0[72]][_0x52e0[74]][_0x52e0[126]][_0x52e0[17]][_0x52e0[125]]=_0x6e9bx10+_0x52e0[94];this[_0x52e0[72]][_0x52e0[74]][_0x52e0[126]][_0x52e0[17]][_0x52e0[110]]=_0x6e9bx11+_0x52e0[94];};_0x6e9bx13+=90;this[_0x52e0[69]][_0x52e0[17]][_0x52e0[19]]=_0x52e0[20];this[_0x52e0[69]][_0x52e0[17]][_0x52e0[125]]=_0x6e9bx12+_0x52e0[94];this[_0x52e0[69]][_0x52e0[17]][_0x52e0[110]]=_0x6e9bx13+_0x52e0[94];this[_0x52e0[78]][_0x52e0[17]][_0x52e0[125]]=(_0x6e9bx12-13)+_0x52e0[94];this[_0x52e0[78]][_0x52e0[17]][_0x52e0[110]]=(_0x6e9bx13+_0x6e9bxe/2-13)+_0x52e0[94];});if(this[_0x52e0[69]]!=null&&this[_0x52e0[69]][_0x52e0[17]][_0x52e0[84]]!=_0x52e0[111]){_0x6e9bxb()}else {this[_0x52e0[67]]=window[_0x52e0[127]](_0x6e9bxb,this[_0x52e0[56]])};this[_0x52e0[32]]=_0x6e9bx7;}}};Sidebar[_0x52e0[40]][_0x52e0[29]]=function(){if(this[_0x52e0[67]]!=null){window[_0x52e0[68]](this[_0x52e0[67]]);this[_0x52e0[67]]=null;};if(this[_0x52e0[69]]!=null){this[_0x52e0[69]][_0x52e0[17]][_0x52e0[84]]=_0x52e0[111];this[_0x52e0[78]][_0x52e0[17]][_0x52e0[16]]=_0x52e0[18];this[_0x52e0[32]]=null;};};Sidebar[_0x52e0[40]][_0x52e0[128]]=function(_0x6e9bx14){var _0x6e9bx7=document[_0x52e0[7]](_0x52e0[129]);_0x6e9bx7[_0x52e0[124]](_0x52e0[130],_0x52e0[131]);_0x6e9bx7[_0x52e0[70]]=_0x52e0[132];mxUtils[_0x52e0[107]](_0x6e9bx7,_0x6e9bx14);return _0x6e9bx7;};Sidebar[_0x52e0[40]][_0x52e0[133]]=function(_0x6e9bx8,_0x6e9bxd,_0x6e9bxe,_0x6e9bx15,_0x6e9bx9,_0x6e9bxa){this[_0x52e0[5]][_0x52e0[86]]=(_0x6e9bxa==null||_0x6e9bxa);this[_0x52e0[5]][_0x52e0[74]][_0x52e0[134]](1,0,0);this[_0x52e0[5]][_0x52e0[89]](_0x6e9bx8);var _0x6e9bxc=this[_0x52e0[5]][_0x52e0[90]]();var _0x6e9bx16=this[_0x52e0[55]];var _0x6e9bx17=Math[_0x52e0[113]]((_0x6e9bxd-2)/(_0x6e9bxc[_0x52e0[80]]-_0x6e9bxc[_0x52e0[112]]+_0x6e9bx16),(_0x6e9bxe-2)/(_0x6e9bxc[_0x52e0[82]]-_0x6e9bxc[_0x52e0[114]]+_0x6e9bx16));var _0x6e9bx10=-Math[_0x52e0[113]](_0x6e9bxc[_0x52e0[112]],0);var _0x6e9bx11=-Math[_0x52e0[113]](_0x6e9bxc[_0x52e0[114]],0);this[_0x52e0[5]][_0x52e0[74]][_0x52e0[134]](_0x6e9bx17,_0x6e9bx10,_0x6e9bx11);_0x6e9bxc=this[_0x52e0[5]][_0x52e0[90]]();var _0x6e9bx18=Math[_0x52e0[119]](0,Math[_0x52e0[135]]((_0x6e9bxd-_0x6e9bxc[_0x52e0[80]]-_0x6e9bxc[_0x52e0[112]])/2));var _0x6e9bxf=Math[_0x52e0[119]](0,Math[_0x52e0[135]]((_0x6e9bxe-_0x6e9bxc[_0x52e0[82]]-_0x6e9bxc[_0x52e0[114]])/2));var _0x6e9bx19=null;if(this[_0x52e0[5]][_0x52e0[136]]==mxConstants[_0x52e0[137]]&&!mxClient[_0x52e0[138]]){_0x6e9bx19=this[_0x52e0[5]][_0x52e0[74]][_0x52e0[141]]()[_0x52e0[140]][_0x52e0[139]](true)}else {_0x6e9bx19=this[_0x52e0[5]][_0x52e0[2]][_0x52e0[139]](false);_0x6e9bx19[_0x52e0[105]]=this[_0x52e0[5]][_0x52e0[2]][_0x52e0[105]];};this[_0x52e0[5]][_0x52e0[142]]()[_0x52e0[87]]();if(mxClient[_0x52e0[143]]){_0x6e9bx15[_0x52e0[17]][_0x52e0[144]]=_0x52e0[145]+this[_0x52e0[1]][_0x52e0[9]][_0x52e0[146]]+_0x52e0[123]};var _0x6e9bx1a=3;_0x6e9bx19[_0x52e0[17]][_0x52e0[19]]=_0x52e0[77];_0x6e9bx19[_0x52e0[17]][_0x52e0[92]]=_0x52e0[18];_0x6e9bx19[_0x52e0[17]][_0x52e0[147]]=_0x52e0[148];_0x6e9bx19[_0x52e0[17]][_0x52e0[125]]=(_0x6e9bx18+_0x6e9bx1a)+_0x52e0[94];_0x6e9bx19[_0x52e0[17]][_0x52e0[110]]=(_0x6e9bxf+_0x6e9bx1a)+_0x52e0[94];_0x6e9bx19[_0x52e0[17]][_0x52e0[80]]=_0x6e9bxd+_0x52e0[94];_0x6e9bx19[_0x52e0[17]][_0x52e0[82]]=_0x6e9bxe+_0x52e0[94];_0x6e9bx19[_0x52e0[17]][_0x52e0[16]]=_0x52e0[106];_0x6e9bx19[_0x52e0[17]][_0x52e0[149]]=_0x52e0[106];_0x6e9bx19[_0x52e0[17]][_0x52e0[150]]=_0x52e0[106];_0x6e9bx15[_0x52e0[21]](_0x6e9bx19);if(this[_0x52e0[64]]&&_0x6e9bx9!=null){var _0x6e9bx1b=(mxClient[_0x52e0[91]])?2*this[_0x52e0[62]]+2:0;_0x6e9bx15[_0x52e0[17]][_0x52e0[82]]=(this[_0x52e0[61]]+_0x6e9bx1b+this[_0x52e0[63]]+8)+_0x52e0[94];var _0x6e9bx1c=document[_0x52e0[7]](_0x52e0[6]);_0x6e9bx1c[_0x52e0[17]][_0x52e0[151]]=this[_0x52e0[63]]+_0x52e0[94];_0x6e9bx1c[_0x52e0[17]][_0x52e0[99]]=_0x52e0[100];_0x6e9bx1c[_0x52e0[17]][_0x52e0[152]]=_0x52e0[153];if(mxClient[_0x52e0[154]]){_0x6e9bx1c[_0x52e0[17]][_0x52e0[82]]=(this[_0x52e0[63]]+12)+_0x52e0[94]};_0x6e9bx1c[_0x52e0[17]][_0x52e0[102]]=_0x52e0[155];mxUtils[_0x52e0[107]](_0x6e9bx1c,_0x6e9bx9);_0x6e9bx15[_0x52e0[21]](_0x6e9bx1c);};};Sidebar[_0x52e0[40]][_0x52e0[156]]=function(_0x6e9bx8,_0x6e9bx9,_0x6e9bxa){var _0x6e9bx7=document[_0x52e0[7]](_0x52e0[129]);_0x6e9bx7[_0x52e0[124]](_0x52e0[130],_0x52e0[131]);_0x6e9bx7[_0x52e0[70]]=_0x52e0[157];_0x6e9bx7[_0x52e0[17]][_0x52e0[92]]=_0x52e0[18];var _0x6e9bx1b=(mxClient[_0x52e0[91]])?8+2*this[_0x52e0[62]]:6;_0x6e9bx7[_0x52e0[17]][_0x52e0[80]]=(this[_0x52e0[60]]+_0x6e9bx1b)+_0x52e0[94];_0x6e9bx7[_0x52e0[17]][_0x52e0[82]]=(this[_0x52e0[61]]+_0x6e9bx1b)+_0x52e0[94];_0x6e9bx7[_0x52e0[17]][_0x52e0[158]]=this[_0x52e0[62]]+_0x52e0[94];mxEvent[_0x52e0[26]](_0x6e9bx7,_0x52e0[159],function(_0x6e9bx4){mxEvent[_0x52e0[160]](_0x6e9bx4)});this[_0x52e0[133]](_0x6e9bx8,this[_0x52e0[60]],this[_0x52e0[61]],_0x6e9bx7,_0x6e9bx9,_0x6e9bxa);return _0x6e9bx7;};Sidebar[_0x52e0[40]][_0x52e0[161]]=function(_0x6e9bx8,_0x6e9bx1d){return function(_0x6e9bx1e,_0x6e9bx4,_0x6e9bx1f,_0x6e9bx20,_0x6e9bx21){if(_0x6e9bx1e[_0x52e0[162]]()){_0x6e9bx8=_0x6e9bx1e[_0x52e0[163]](_0x6e9bx8);if(_0x6e9bx8[_0x52e0[95]]>0){var _0x6e9bx22=(_0x6e9bx1f!=null)?_0x6e9bx1e[_0x52e0[164]](_0x6e9bx1f,_0x6e9bx8,_0x6e9bx4):false;var _0x6e9bx23=null;if(_0x6e9bx1f!=null&& !_0x6e9bx22){_0x6e9bx1f=null};if(_0x6e9bx1d&&_0x6e9bx1e[_0x52e0[165]]()&&_0x6e9bx1e[_0x52e0[166]](_0x6e9bx1f,_0x6e9bx8,_0x6e9bx4)){_0x6e9bx1e[_0x52e0[167]](_0x6e9bx1f,_0x6e9bx8,null,_0x6e9bx20,_0x6e9bx21);_0x6e9bx23=_0x6e9bx8;}else {if(_0x6e9bx8[_0x52e0[95]]>0){_0x6e9bx23=_0x6e9bx1e[_0x52e0[168]](_0x6e9bx8,_0x6e9bx20,_0x6e9bx21,_0x6e9bx1f)}};if(_0x6e9bx23!=null&&_0x6e9bx23[_0x52e0[95]]>0){_0x6e9bx1e[_0x52e0[169]](_0x6e9bx23[0]);_0x6e9bx1e[_0x52e0[170]](_0x6e9bx23);};};}}};Sidebar[_0x52e0[40]][_0x52e0[171]]=function(_0x6e9bxd,_0x6e9bxe){var _0x6e9bx7=document[_0x52e0[7]](_0x52e0[6]);_0x6e9bx7[_0x52e0[17]][_0x52e0[172]]=_0x52e0[173];_0x6e9bx7[_0x52e0[17]][_0x52e0[80]]=_0x6e9bxd+_0x52e0[94];_0x6e9bx7[_0x52e0[17]][_0x52e0[82]]=_0x6e9bxe+_0x52e0[94];return _0x6e9bx7;};Sidebar[_0x52e0[40]][_0x52e0[174]]=function(_0x6e9bx7,_0x6e9bx24,_0x6e9bx25){var _0x6e9bx26=mxUtils[_0x52e0[176]](_0x6e9bx7,this[_0x52e0[1]][_0x52e0[9]][_0x52e0[5]],_0x6e9bx24,_0x6e9bx25,0,0,this[_0x52e0[1]][_0x52e0[9]][_0x52e0[5]][_0x52e0[175]],true,true);_0x6e9bx26[_0x52e0[177]]=function(_0x6e9bx1e,_0x6e9bx20,_0x6e9bx21){var _0x6e9bx1f=mxDragSource[_0x52e0[40]][_0x52e0[177]][_0x52e0[178]](this,arguments);if(!_0x6e9bx1e[_0x52e0[179]](_0x6e9bx1f)){_0x6e9bx1f=null};return _0x6e9bx1f;};return _0x6e9bx26;};Sidebar[_0x52e0[40]][_0x52e0[180]]=function(_0x6e9bx7,_0x6e9bx27){var _0x6e9bx1e=this[_0x52e0[1]][_0x52e0[9]][_0x52e0[5]];var _0x6e9bx28=null;mxEvent[_0x52e0[183]](_0x6e9bx7,function(_0x6e9bx4){_0x6e9bx28= new mxPoint(mxEvent[_0x52e0[181]](_0x6e9bx4),mxEvent[_0x52e0[182]](_0x6e9bx4))});var _0x6e9bx29=_0x6e9bx27[_0x52e0[184]];_0x6e9bx27[_0x52e0[184]]=function(_0x6e9bx4){if(!mxEvent[_0x52e0[185]](_0x6e9bx4)&&this[_0x52e0[186]]==null&&_0x6e9bx28!=null){var _0x6e9bx2a=_0x6e9bx1e[_0x52e0[187]];if(Math[_0x52e0[188]](_0x6e9bx28[_0x52e0[112]]-mxEvent[_0x52e0[181]](_0x6e9bx4))<=_0x6e9bx2a&&Math[_0x52e0[188]](_0x6e9bx28[_0x52e0[114]]-mxEvent[_0x52e0[182]](_0x6e9bx4))<=_0x6e9bx2a){var _0x6e9bx2b=_0x6e9bx1e[_0x52e0[189]]();_0x6e9bx27[_0x52e0[190]](_0x6e9bx1e,_0x6e9bx4,null,_0x6e9bx2b,_0x6e9bx2b);};};_0x6e9bx29[_0x52e0[178]](this,arguments);_0x6e9bx28=null;};};Sidebar[_0x52e0[40]][_0x52e0[191]]=function(_0x6e9bx2c,_0x6e9bx14,_0x6e9bx2d,_0x6e9bx2e){var _0x6e9bx2f=mxUtils[_0x52e0[191]]();var _0x6e9bx19=_0x6e9bx2f[_0x52e0[7]](_0x6e9bx2c);_0x6e9bx19[_0x52e0[124]](_0x52e0[192],_0x6e9bx14);_0x6e9bx2d[_0x52e0[193]](function(_0x6e9bx30,_0x6e9bx31){_0x6e9bx19[_0x52e0[124]](_0x6e9bx30,_0x6e9bx2e[_0x6e9bx31]?_0x6e9bx2e[_0x6e9bx31]:_0x52e0[106])});return _0x6e9bx19;};Sidebar[_0x52e0[40]][_0x52e0[194]]=function(_0x6e9bx32,_0x6e9bxd,_0x6e9bxe,_0x6e9bx33,_0x6e9bx9,_0x6e9bxa){var _0x6e9bx2d=[];var _0x6e9bx2e=[];switch(_0x6e9bx33){case _0x52e0[48]:_0x6e9bx2d=[_0x52e0[48],_0x52e0[195]];_0x6e9bx2e=[_0x52e0[106],_0x52e0[196]];break ;;case _0x52e0[49]:_0x6e9bx2d=[_0x52e0[48],_0x52e0[197]];_0x6e9bx2e=[_0x52e0[106]];break ;;case _0x52e0[51]:_0x6e9bx2d=[_0x52e0[198],_0x52e0[199],_0x52e0[200],_0x52e0[201],_0x52e0[202],_0x52e0[203]];_0x6e9bx2e=[_0x52e0[106]];break ;;default:_0x6e9bx2d=[];_0x6e9bx2e=[];break ;;};var _0x6e9bx19=this[_0x52e0[191]](_0x6e9bx33,_0x6e9bx9,_0x6e9bx2d,_0x6e9bx2e);var _0x6e9bx8=[ new mxCell(_0x6e9bx19, new mxGeometry(0,0,_0x6e9bxd,_0x6e9bxe),_0x6e9bx32)];_0x6e9bx8[0][_0x52e0[204]]=true;return this[_0x52e0[205]](_0x6e9bx8,_0x6e9bxd,_0x6e9bxe,_0x6e9bx9,_0x6e9bxa);};Sidebar[_0x52e0[40]][_0x52e0[205]]=function(_0x6e9bx8,_0x6e9bxd,_0x6e9bxe,_0x6e9bx9,_0x6e9bxa){var _0x6e9bx7=this[_0x52e0[156]](_0x6e9bx8,_0x6e9bx9,_0x6e9bxa);var _0x6e9bx27=this[_0x52e0[174]](_0x6e9bx7,this[_0x52e0[161]](_0x6e9bx8,true),this[_0x52e0[171]](_0x6e9bxd,_0x6e9bxe));this[_0x52e0[180]](_0x6e9bx7,_0x6e9bx27);_0x6e9bx27[_0x52e0[206]]=mxUtils[_0x52e0[25]](this,function(){return this[_0x52e0[1]][_0x52e0[9]][_0x52e0[5]][_0x52e0[208]][_0x52e0[207]]});if(!touchStyle){mxEvent[_0x52e0[26]](_0x6e9bx7,_0x52e0[30],mxUtils[_0x52e0[25]](this,function(_0x6e9bx4){this[_0x52e0[66]](_0x6e9bx7,_0x6e9bx8,_0x6e9bx9,_0x6e9bxa)}))};return _0x6e9bx7;};Sidebar[_0x52e0[40]][_0x52e0[209]]=function(_0x6e9bx32,_0x6e9bxd,_0x6e9bxe,_0x6e9bx33,_0x6e9bx9,_0x6e9bxa){var _0x6e9bx8=[ new mxCell((_0x6e9bx33!=null)?_0x6e9bx33:_0x52e0[106], new mxGeometry(0,0,_0x6e9bxd,_0x6e9bxe),_0x6e9bx32)];_0x6e9bx8[0][_0x52e0[211]][_0x52e0[210]]( new mxPoint(0,_0x6e9bxe),true);_0x6e9bx8[0][_0x52e0[211]][_0x52e0[210]]( new mxPoint(_0x6e9bxd,0),false);_0x6e9bx8[0][_0x52e0[211]][_0x52e0[77]]=true;_0x6e9bx8[0][_0x52e0[212]]=true;return this[_0x52e0[213]](_0x6e9bx8,_0x6e9bxd,_0x6e9bxe,_0x6e9bx9,_0x6e9bxa);};Sidebar[_0x52e0[40]][_0x52e0[213]]=function(_0x6e9bx8,_0x6e9bxd,_0x6e9bxe,_0x6e9bx9,_0x6e9bxa){var _0x6e9bx7=this[_0x52e0[156]](_0x6e9bx8,_0x6e9bx9,_0x6e9bxa);this[_0x52e0[174]](_0x6e9bx7,this[_0x52e0[161]](_0x6e9bx8,false),this[_0x52e0[171]](_0x6e9bxd,_0x6e9bxe));var _0x6e9bx1e=this[_0x52e0[1]][_0x52e0[9]][_0x52e0[5]];mxEvent[_0x52e0[26]](_0x6e9bx7,_0x52e0[159],mxUtils[_0x52e0[25]](this,function(_0x6e9bx4){if(this[_0x52e0[57]]){_0x6e9bx1e[_0x52e0[214]](_0x6e9bx8[0])};_0x6e9bx7[_0x52e0[17]][_0x52e0[215]]=_0x52e0[216];window[_0x52e0[127]](function(){_0x6e9bx7[_0x52e0[17]][_0x52e0[215]]=_0x52e0[106]},300);mxEvent[_0x52e0[160]](_0x6e9bx4);}));touchStyle=false;if(!touchStyle){mxEvent[_0x52e0[26]](_0x6e9bx7,_0x52e0[30],mxUtils[_0x52e0[25]](this,function(_0x6e9bx4){this[_0x52e0[66]](_0x6e9bx7,_0x6e9bx8,_0x6e9bx9,_0x6e9bxa)}))};return _0x6e9bx7;};Sidebar[_0x52e0[40]][_0x52e0[217]]=function(_0x6e9bx34,_0x6e9bx9,_0x6e9bx35,_0x6e9bx36){var _0x6e9bx7=this[_0x52e0[128]](_0x6e9bx9);this[_0x52e0[2]][_0x52e0[21]](_0x6e9bx7);var _0x6e9bx1c=document[_0x52e0[7]](_0x52e0[6]);_0x6e9bx1c[_0x52e0[70]]=_0x52e0[218];if(_0x6e9bx35){_0x6e9bx36(_0x6e9bx1c);_0x6e9bx36=null;}else {_0x6e9bx1c[_0x52e0[17]][_0x52e0[84]]=_0x52e0[111]};this[_0x52e0[219]](_0x6e9bx7,_0x6e9bx1c,_0x6e9bx36);var _0x6e9bx37=document[_0x52e0[7]](_0x52e0[6]);_0x6e9bx37[_0x52e0[21]](_0x6e9bx1c);this[_0x52e0[2]][_0x52e0[21]](_0x6e9bx37);if(_0x6e9bx34!=null){this[_0x52e0[3]][_0x6e9bx34]=[_0x6e9bx7,_0x6e9bx37]};};Sidebar[_0x52e0[40]][_0x52e0[219]]=function(_0x6e9bx9,_0x6e9bx38,_0x6e9bx39){var _0x6e9bx3a=false;_0x6e9bx9[_0x52e0[17]][_0x52e0[144]]=(_0x6e9bx38[_0x52e0[17]][_0x52e0[84]]==_0x52e0[111])?_0x52e0[145]+IMAGE_PATH+_0x52e0[220]:_0x52e0[145]+IMAGE_PATH+_0x52e0[221];_0x6e9bx9[_0x52e0[17]][_0x52e0[222]]=_0x52e0[223];_0x6e9bx9[_0x52e0[17]][_0x52e0[224]]=_0x52e0[225];mxEvent[_0x52e0[26]](_0x6e9bx9,_0x52e0[159],function(_0x6e9bx4){if(_0x6e9bx38[_0x52e0[17]][_0x52e0[84]]==_0x52e0[111]){if(!_0x6e9bx3a){_0x6e9bx3a=true;if(_0x6e9bx39!=null){_0x6e9bx9[_0x52e0[17]][_0x52e0[147]]=_0x52e0[226];window[_0x52e0[127]](function(){_0x6e9bx39(_0x6e9bx38);_0x6e9bx9[_0x52e0[17]][_0x52e0[147]]=_0x52e0[106];},0);};};_0x6e9bx9[_0x52e0[17]][_0x52e0[144]]=_0x52e0[145]+IMAGE_PATH+_0x52e0[221];_0x6e9bx38[_0x52e0[17]][_0x52e0[84]]=_0x52e0[85];}else {_0x6e9bx9[_0x52e0[17]][_0x52e0[144]]=_0x52e0[145]+IMAGE_PATH+_0x52e0[220];_0x6e9bx38[_0x52e0[17]][_0x52e0[84]]=_0x52e0[111];};mxEvent[_0x52e0[160]](_0x6e9bx4);});};Sidebar[_0x52e0[40]][_0x52e0[227]]=function(_0x6e9bx34){var _0x6e9bx3b=this[_0x52e0[3]][_0x6e9bx34];if(_0x6e9bx3b!=null){this[_0x52e0[3]][_0x6e9bx34]=null;for(var _0x6e9bx3c=0;_0x6e9bx3c<_0x6e9bx3b[_0x52e0[95]];_0x6e9bx3c++){this[_0x52e0[2]][_0x52e0[228]](_0x6e9bx3b[_0x6e9bx3c])};return true;};return false;};Sidebar[_0x52e0[40]][_0x52e0[52]]=function(_0x6e9bx34,_0x6e9bx9,_0x6e9bx3d,_0x6e9bx3e,_0x6e9bx3f,_0x6e9bx40){this[_0x52e0[217]](_0x6e9bx34,_0x6e9bx9,(_0x6e9bx34===_0x52e0[42]),mxUtils[_0x52e0[25]](this,function(_0x6e9bx38){var _0x6e9bx41=_0x6e9bx40!=null;for(var _0x6e9bx3c=0;_0x6e9bx3c<_0x6e9bx3f[_0x52e0[95]];_0x6e9bx3c++){var _0x6e9bx42=_0x6e9bx3d+_0x6e9bx3f[_0x6e9bx3c]+_0x6e9bx3e;_0x6e9bx38[_0x52e0[21]](this[_0x52e0[194]](_0x52e0[229]+_0x6e9bx42,80,80,_0x6e9bx3f[_0x6e9bx3c],(_0x6e9bx41)?_0x6e9bx40[_0x6e9bx3c]:null,_0x6e9bx41));};}))};
\ No newline at end of file
index 5801b4b..45b8b18 100644 (file)
@@ -1 +1 @@
-var _0x1659=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x6E\x69\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x62\x69\x6E\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x61\x76\x65","\x70\x75\x62\x6C\x69\x73\x68","\x2D","\x70\x72\x69\x6E\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x6F\x70\x79","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x61\x64\x64\x49\x74\x65\x6D\x73","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x67\x65\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x73\x74\x79\x6C\x65","\x6E\x6F\x77\x72\x61\x70","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x77\x69\x64\x74\x68","\x37\x30\x70\x78","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x31\x32","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x33\x30\x70\x78","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x6C\x65\x6E\x67\x74\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2E\x2E\x2E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x6E\x75\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x4D\x65\x6E\x75\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x42\x75\x74\x74\x6F\x6E","\x69\x6E\x69\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x67\x65\x53\x70\x72\x69\x74\x65\x2D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x64\x49\x74\x65\x6D","\x61\x63\x74\x69\x6F\x6E\x73","\x6C\x61\x62\x65\x6C","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x61\x64\x64\x45\x64\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x69\x73\x45\x64\x67\x65","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x74\x69\x74\x6C\x65","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64\x53\x74\x61\x74\x65","\x20\x67\x65\x44\x69\x73\x61\x62\x6C\x65\x64","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x42\x75\x74\x74\x6F\x6E","\x67\x65\x53\x70\x72\x69\x74\x65\x20","\x67\x65\x4C\x61\x62\x65\x6C","\x77\x72\x69\x74\x65","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x20\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x65\x6E\x75","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x6C\x61\x62\x65\x6C\x73","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70"];function Toolbar(_0xdf84x2,_0xdf84x3){this[_0x1659[0]]=_0xdf84x2;this[_0x1659[1]]=_0xdf84x3;this[_0x1659[2]]();mxEvent[_0x1659[5]](document,mxUtils[_0x1659[4]](this,function(_0xdf84x4){this[_0x1659[3]]()}));}Toolbar[_0x1659[6]][_0x1659[2]]=function(){this[_0x1659[21]]([_0x1659[7],_0x1659[8],_0x1659[9],_0x1659[10],_0x1659[11],_0x1659[12],_0x1659[9],_0x1659[13],_0x1659[14],_0x1659[15],_0x1659[16],_0x1659[9],_0x1659[17],_0x1659[9],_0x1659[18],_0x1659[19],_0x1659[20],_0x1659[9]]);var _0xdf84x5=this[_0x1659[25]](_0x1659[22],mxResources[_0x1659[24]](_0x1659[23]),true,_0x1659[23]);_0xdf84x5[_0x1659[27]][_0x1659[26]]=_0x1659[28];_0xdf84x5[_0x1659[27]][_0x1659[29]]=_0x1659[30];_0xdf84x5[_0x1659[27]][_0x1659[31]]=_0x1659[32];this[_0x1659[33]]();var _0xdf84x6=this[_0x1659[25]](_0x1659[34],mxResources[_0x1659[24]](_0x1659[35]),true,_0x1659[35]);_0xdf84x6[_0x1659[27]][_0x1659[26]]=_0x1659[28];_0xdf84x6[_0x1659[27]][_0x1659[29]]=_0x1659[30];_0xdf84x6[_0x1659[27]][_0x1659[31]]=_0x1659[36];this[_0x1659[21]]([_0x1659[9],_0x1659[37],_0x1659[38],_0x1659[39]]);var _0xdf84x7=this[_0x1659[0]][_0x1659[41]][_0x1659[40]];var _0xdf84x8=mxUtils[_0x1659[4]](this,function(){var _0xdf84x9=_0x1659[22];var _0xdf84xa=_0x1659[34];var _0xdf84xb=_0xdf84x7[_0x1659[44]]()[_0x1659[43]](_0xdf84x7[_0x1659[42]]());if(_0xdf84xb!=null){_0xdf84x9=_0xdf84xb[_0x1659[27]][mxConstants[_0x1659[45]]]||_0xdf84x9;_0xdf84xa=_0xdf84xb[_0x1659[27]][mxConstants[_0x1659[46]]]||_0xdf84xa;if(_0xdf84x9[_0x1659[47]]>10){_0xdf84x9=_0xdf84x9[_0x1659[48]](0,8)+_0x1659[49]};_0xdf84x5[_0x1659[50]]=_0xdf84x9;_0xdf84x6[_0x1659[50]]=_0xdf84xa;};});_0xdf84x7[_0x1659[52]]()[_0x1659[51]](mxEvent.CHANGE,_0xdf84x8);_0xdf84x7[_0x1659[53]]()[_0x1659[51]](mxEvent.CHANGE,_0xdf84x8);};Toolbar[_0x1659[6]][_0x1659[3]]=function(){if(this[_0x1659[54]]!=null){this[_0x1659[54]][_0x1659[3]]();this[_0x1659[54]][_0x1659[55]]();this[_0x1659[54]]=null;}};Toolbar[_0x1659[6]][_0x1659[25]]=function(_0xdf84xc,_0xdf84xd,_0xdf84xe,_0xdf84xf){var _0xdf84x10=this[_0x1659[0]][_0x1659[56]][_0x1659[24]](_0xdf84xf);var _0xdf84x11=this[_0x1659[58]](_0xdf84xc,_0xdf84xd,_0xdf84xe,_0xdf84x10[_0x1659[57]]);_0xdf84x10[_0x1659[51]](_0x1659[59],function(){_0xdf84x11[_0x1659[61]](_0xdf84x10[_0x1659[60]])});return _0xdf84x11;};Toolbar[_0x1659[6]][_0x1659[58]]=function(_0xdf84xc,_0xdf84xd,_0xdf84xe,_0xdf84x12){var _0xdf84x11=(_0xdf84xe)?this[_0x1659[62]](_0xdf84xc):this[_0x1659[63]](_0xdf84xc);this[_0x1659[64]](_0xdf84x11,_0xdf84xd);this[_0x1659[65]](_0xdf84x11,_0xdf84xe,_0xdf84x12);this[_0x1659[1]][_0x1659[66]](_0xdf84x11);return _0xdf84x11;};Toolbar[_0x1659[6]][_0x1659[33]]=function(){var _0xdf84x11=document[_0x1659[68]](_0x1659[67]);_0xdf84x11[_0x1659[69]]=_0x1659[70];this[_0x1659[1]][_0x1659[66]](_0xdf84x11);return _0xdf84x11;};Toolbar[_0x1659[6]][_0x1659[21]]=function(_0xdf84x13){for(var _0xdf84x14=0;_0xdf84x14<_0xdf84x13[_0x1659[47]];_0xdf84x14++){var _0xdf84x15=_0xdf84x13[_0xdf84x14];if(_0xdf84x15==_0x1659[9]){this[_0x1659[33]]()}else {this[_0x1659[73]](_0x1659[71]+_0xdf84x15[_0x1659[72]](),_0xdf84x15)};}};Toolbar[_0x1659[6]][_0x1659[73]]=function(_0xdf84x16,_0xdf84x15){var _0xdf84x17=this[_0x1659[0]][_0x1659[74]][_0x1659[24]](_0xdf84x15);var _0xdf84x11=null;if(_0xdf84x17!=null){_0xdf84x11=this[_0x1659[76]](_0xdf84x16,_0xdf84x17[_0x1659[75]],_0xdf84x17[_0x1659[57]]);_0xdf84x11[_0x1659[61]](_0xdf84x17[_0x1659[60]]);_0xdf84x17[_0x1659[51]](_0x1659[59],function(){_0xdf84x11[_0x1659[61]](_0xdf84x17[_0x1659[60]])});};return _0xdf84x11;};Toolbar[_0x1659[6]][_0x1659[76]]=function(_0xdf84x18,_0xdf84xd,_0xdf84x12){var _0xdf84x11=this[_0x1659[63]](_0xdf84x18);this[_0x1659[64]](_0xdf84x11,_0xdf84xd);this[_0x1659[77]](_0xdf84x11,_0xdf84x12);this[_0x1659[1]][_0x1659[66]](_0xdf84x11);return _0xdf84x11;};Toolbar[_0x1659[6]][_0x1659[78]]=function(_0xdf84x19){var _0xdf84x7=this[_0x1659[0]][_0x1659[41]][_0x1659[40]];var _0xdf84x1a=function(){var _0xdf84x1b=!_0xdf84x7[_0x1659[79]]();for(var _0xdf84x14=0;_0xdf84x14<_0xdf84x19[_0x1659[47]];_0xdf84x14++){_0xdf84x19[_0xdf84x14][_0x1659[61]](_0xdf84x1b)};};_0xdf84x7[_0x1659[52]]()[_0x1659[51]](mxEvent.CHANGE,_0xdf84x1a);_0xdf84x1a();};Toolbar[_0x1659[6]][_0x1659[80]]=function(_0xdf84x19){var _0xdf84x7=this[_0x1659[0]][_0x1659[41]][_0x1659[40]];var _0xdf84x1a=function(){var _0xdf84x1c=false;if(!_0xdf84x7[_0x1659[79]]()){var _0xdf84x1d=_0xdf84x7[_0x1659[81]]();for(var _0xdf84x14=0;_0xdf84x14<_0xdf84x1d[_0x1659[47]];_0xdf84x14++){if(_0xdf84x7[_0x1659[53]]()[_0x1659[82]](_0xdf84x1d[_0xdf84x14])){_0xdf84x1c=true;break ;}};};for(var _0xdf84x14=0;_0xdf84x14<_0xdf84x19[_0x1659[47]];_0xdf84x14++){_0xdf84x19[_0xdf84x14][_0x1659[61]](_0xdf84x1c)};};_0xdf84x7[_0x1659[52]]()[_0x1659[51]](mxEvent.CHANGE,_0xdf84x1a);_0xdf84x1a();};Toolbar[_0x1659[6]][_0x1659[64]]=function(_0xdf84x11,_0xdf84xd){_0xdf84x11[_0x1659[85]](_0x1659[83],_0x1659[84]);if(_0xdf84xd!=null){_0xdf84x11[_0x1659[85]](_0x1659[86],_0xdf84xd)};this[_0x1659[87]](_0xdf84x11);};Toolbar[_0x1659[6]][_0x1659[87]]=function(_0xdf84x11){var _0xdf84x18=_0xdf84x11[_0x1659[69]];_0xdf84x11[_0x1659[61]]=function(_0xdf84x1e){_0xdf84x11[_0x1659[60]]=_0xdf84x1e;if(_0xdf84x1e){_0xdf84x11[_0x1659[69]]=_0xdf84x18}else {_0xdf84x11[_0x1659[69]]=_0xdf84x18+_0x1659[88]};};_0xdf84x11[_0x1659[61]](true);};Toolbar[_0x1659[6]][_0x1659[77]]=function(_0xdf84x11,_0xdf84x12){if(_0xdf84x12!=null){mxEvent[_0x1659[51]](_0xdf84x11,_0x1659[89],function(_0xdf84x4){if(_0xdf84x11[_0x1659[60]]){_0xdf84x12(_0xdf84x4)};mxEvent[_0x1659[90]](_0xdf84x4);})}};Toolbar[_0x1659[6]][_0x1659[63]]=function(_0xdf84x18){var _0xdf84x11=document[_0x1659[68]](_0x1659[91]);_0xdf84x11[_0x1659[85]](_0x1659[92],_0x1659[93]);_0xdf84x11[_0x1659[69]]=_0x1659[94];var _0xdf84x1f=document[_0x1659[68]](_0x1659[67]);_0xdf84x1f[_0x1659[69]]=_0x1659[95]+_0xdf84x18;_0xdf84x11[_0x1659[66]](_0xdf84x1f);return _0xdf84x11;};Toolbar[_0x1659[6]][_0x1659[62]]=function(_0xdf84xc,_0xdf84xd){var _0xdf84x11=document[_0x1659[68]](_0x1659[91]);_0xdf84x11[_0x1659[85]](_0x1659[92],_0x1659[93]);_0xdf84x11[_0x1659[69]]=_0x1659[96];mxUtils[_0x1659[97]](_0xdf84x11,_0xdf84xc);return _0xdf84x11;};Toolbar[_0x1659[6]][_0x1659[65]]=function(_0xdf84x11,_0xdf84xe,_0xdf84x12,_0xdf84x20){if(_0xdf84x12!=null){var _0xdf84x7=this[_0x1659[0]][_0x1659[41]][_0x1659[40]];var _0xdf84x10=null;mxEvent[_0x1659[51]](_0xdf84x11,_0x1659[89],mxUtils[_0x1659[4]](this,function(_0xdf84x4){if(_0xdf84x11[_0x1659[60]]==null||_0xdf84x11[_0x1659[60]]){_0xdf84x7[_0x1659[98]][_0x1659[3]]();_0xdf84x10= new mxPopupMenu(_0xdf84x12);_0xdf84x10[_0x1659[67]][_0x1659[69]]+=_0x1659[99];_0xdf84x10[_0x1659[100]]=_0xdf84x20;_0xdf84x10[_0x1659[101]]=_0xdf84xe;_0xdf84x10[_0x1659[102]]=true;_0xdf84x10[_0x1659[106]](_0xdf84x11[_0x1659[103]],_0xdf84x11[_0x1659[104]]+_0xdf84x11[_0x1659[105]]+34,null,_0xdf84x4);this[_0x1659[54]]=_0xdf84x10;};mxEvent[_0x1659[90]](_0xdf84x4);}));}};
\ No newline at end of file
+var _0xcc29=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x6E\x69\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x62\x69\x6E\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x61\x76\x65","\x70\x75\x62\x6C\x69\x73\x68","\x2D","\x70\x72\x69\x6E\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x6F\x70\x79","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x61\x64\x64\x49\x74\x65\x6D\x73","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x67\x65\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x73\x74\x79\x6C\x65","\x6E\x6F\x77\x72\x61\x70","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x77\x69\x64\x74\x68","\x37\x30\x70\x78","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x31\x32","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x33\x30\x70\x78","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x6C\x65\x6E\x67\x74\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2E\x2E\x2E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x6E\x75\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x4D\x65\x6E\x75\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x42\x75\x74\x74\x6F\x6E","\x69\x6E\x69\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x67\x65\x53\x70\x72\x69\x74\x65\x2D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x64\x49\x74\x65\x6D","\x61\x63\x74\x69\x6F\x6E\x73","\x6C\x61\x62\x65\x6C","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x61\x64\x64\x45\x64\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x69\x73\x45\x64\x67\x65","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x74\x69\x74\x6C\x65","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64\x53\x74\x61\x74\x65","\x20\x67\x65\x44\x69\x73\x61\x62\x6C\x65\x64","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x42\x75\x74\x74\x6F\x6E","\x67\x65\x53\x70\x72\x69\x74\x65\x20","\x67\x65\x4C\x61\x62\x65\x6C","\x77\x72\x69\x74\x65","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x20\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x65\x6E\x75","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x6C\x61\x62\x65\x6C\x73","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70"];function Toolbar(_0xc6fbx2,_0xc6fbx3){this[_0xcc29[0]]=_0xc6fbx2;this[_0xcc29[1]]=_0xc6fbx3;this[_0xcc29[2]]();mxEvent[_0xcc29[5]](document,mxUtils[_0xcc29[4]](this,function(_0xc6fbx4){this[_0xcc29[3]]()}));}Toolbar[_0xcc29[6]][_0xcc29[2]]=function(){this[_0xcc29[21]]([_0xcc29[7],_0xcc29[8],_0xcc29[9],_0xcc29[10],_0xcc29[11],_0xcc29[12],_0xcc29[9],_0xcc29[13],_0xcc29[14],_0xcc29[15],_0xcc29[16],_0xcc29[9],_0xcc29[17],_0xcc29[9],_0xcc29[18],_0xcc29[19],_0xcc29[20],_0xcc29[9]]);var _0xc6fbx5=this[_0xcc29[25]](_0xcc29[22],mxResources[_0xcc29[24]](_0xcc29[23]),true,_0xcc29[23]);_0xc6fbx5[_0xcc29[27]][_0xcc29[26]]=_0xcc29[28];_0xc6fbx5[_0xcc29[27]][_0xcc29[29]]=_0xcc29[30];_0xc6fbx5[_0xcc29[27]][_0xcc29[31]]=_0xcc29[32];this[_0xcc29[33]]();var _0xc6fbx6=this[_0xcc29[25]](_0xcc29[34],mxResources[_0xcc29[24]](_0xcc29[35]),true,_0xcc29[35]);_0xc6fbx6[_0xcc29[27]][_0xcc29[26]]=_0xcc29[28];_0xc6fbx6[_0xcc29[27]][_0xcc29[29]]=_0xcc29[30];_0xc6fbx6[_0xcc29[27]][_0xcc29[31]]=_0xcc29[36];this[_0xcc29[21]]([_0xcc29[9],_0xcc29[37],_0xcc29[38],_0xcc29[39]]);var _0xc6fbx7=this[_0xcc29[0]][_0xcc29[41]][_0xcc29[40]];var _0xc6fbx8=mxUtils[_0xcc29[4]](this,function(){var _0xc6fbx9=_0xcc29[22];var _0xc6fbxa=_0xcc29[34];var _0xc6fbxb=_0xc6fbx7[_0xcc29[44]]()[_0xcc29[43]](_0xc6fbx7[_0xcc29[42]]());if(_0xc6fbxb!=null){_0xc6fbx9=_0xc6fbxb[_0xcc29[27]][mxConstants[_0xcc29[45]]]||_0xc6fbx9;_0xc6fbxa=_0xc6fbxb[_0xcc29[27]][mxConstants[_0xcc29[46]]]||_0xc6fbxa;if(_0xc6fbx9[_0xcc29[47]]>10){_0xc6fbx9=_0xc6fbx9[_0xcc29[48]](0,8)+_0xcc29[49]};_0xc6fbx5[_0xcc29[50]]=_0xc6fbx9;_0xc6fbx6[_0xcc29[50]]=_0xc6fbxa;};});_0xc6fbx7[_0xcc29[52]]()[_0xcc29[51]](mxEvent.CHANGE,_0xc6fbx8);_0xc6fbx7[_0xcc29[53]]()[_0xcc29[51]](mxEvent.CHANGE,_0xc6fbx8);};Toolbar[_0xcc29[6]][_0xcc29[3]]=function(){if(this[_0xcc29[54]]!=null){this[_0xcc29[54]][_0xcc29[3]]();this[_0xcc29[54]][_0xcc29[55]]();this[_0xcc29[54]]=null;}};Toolbar[_0xcc29[6]][_0xcc29[25]]=function(_0xc6fbxc,_0xc6fbxd,_0xc6fbxe,_0xc6fbxf){var _0xc6fbx10=this[_0xcc29[0]][_0xcc29[56]][_0xcc29[24]](_0xc6fbxf);var _0xc6fbx11=this[_0xcc29[58]](_0xc6fbxc,_0xc6fbxd,_0xc6fbxe,_0xc6fbx10[_0xcc29[57]]);_0xc6fbx10[_0xcc29[51]](_0xcc29[59],function(){_0xc6fbx11[_0xcc29[61]](_0xc6fbx10[_0xcc29[60]])});return _0xc6fbx11;};Toolbar[_0xcc29[6]][_0xcc29[58]]=function(_0xc6fbxc,_0xc6fbxd,_0xc6fbxe,_0xc6fbx12){var _0xc6fbx11=(_0xc6fbxe)?this[_0xcc29[62]](_0xc6fbxc):this[_0xcc29[63]](_0xc6fbxc);this[_0xcc29[64]](_0xc6fbx11,_0xc6fbxd);this[_0xcc29[65]](_0xc6fbx11,_0xc6fbxe,_0xc6fbx12);this[_0xcc29[1]][_0xcc29[66]](_0xc6fbx11);return _0xc6fbx11;};Toolbar[_0xcc29[6]][_0xcc29[33]]=function(){var _0xc6fbx11=document[_0xcc29[68]](_0xcc29[67]);_0xc6fbx11[_0xcc29[69]]=_0xcc29[70];this[_0xcc29[1]][_0xcc29[66]](_0xc6fbx11);return _0xc6fbx11;};Toolbar[_0xcc29[6]][_0xcc29[21]]=function(_0xc6fbx13){for(var _0xc6fbx14=0;_0xc6fbx14<_0xc6fbx13[_0xcc29[47]];_0xc6fbx14++){var _0xc6fbx15=_0xc6fbx13[_0xc6fbx14];if(_0xc6fbx15==_0xcc29[9]){this[_0xcc29[33]]()}else {this[_0xcc29[73]](_0xcc29[71]+_0xc6fbx15[_0xcc29[72]](),_0xc6fbx15)};}};Toolbar[_0xcc29[6]][_0xcc29[73]]=function(_0xc6fbx16,_0xc6fbx15){var _0xc6fbx17=this[_0xcc29[0]][_0xcc29[74]][_0xcc29[24]](_0xc6fbx15);var _0xc6fbx11=null;if(_0xc6fbx17!=null){_0xc6fbx11=this[_0xcc29[76]](_0xc6fbx16,_0xc6fbx17[_0xcc29[75]],_0xc6fbx17[_0xcc29[57]]);_0xc6fbx11[_0xcc29[61]](_0xc6fbx17[_0xcc29[60]]);_0xc6fbx17[_0xcc29[51]](_0xcc29[59],function(){_0xc6fbx11[_0xcc29[61]](_0xc6fbx17[_0xcc29[60]])});};return _0xc6fbx11;};Toolbar[_0xcc29[6]][_0xcc29[76]]=function(_0xc6fbx18,_0xc6fbxd,_0xc6fbx12){var _0xc6fbx11=this[_0xcc29[63]](_0xc6fbx18);this[_0xcc29[64]](_0xc6fbx11,_0xc6fbxd);this[_0xcc29[77]](_0xc6fbx11,_0xc6fbx12);this[_0xcc29[1]][_0xcc29[66]](_0xc6fbx11);return _0xc6fbx11;};Toolbar[_0xcc29[6]][_0xcc29[78]]=function(_0xc6fbx19){var _0xc6fbx7=this[_0xcc29[0]][_0xcc29[41]][_0xcc29[40]];var _0xc6fbx1a=function(){var _0xc6fbx1b=!_0xc6fbx7[_0xcc29[79]]();for(var _0xc6fbx14=0;_0xc6fbx14<_0xc6fbx19[_0xcc29[47]];_0xc6fbx14++){_0xc6fbx19[_0xc6fbx14][_0xcc29[61]](_0xc6fbx1b)};};_0xc6fbx7[_0xcc29[52]]()[_0xcc29[51]](mxEvent.CHANGE,_0xc6fbx1a);_0xc6fbx1a();};Toolbar[_0xcc29[6]][_0xcc29[80]]=function(_0xc6fbx19){var _0xc6fbx7=this[_0xcc29[0]][_0xcc29[41]][_0xcc29[40]];var _0xc6fbx1a=function(){var _0xc6fbx1c=false;if(!_0xc6fbx7[_0xcc29[79]]()){var _0xc6fbx1d=_0xc6fbx7[_0xcc29[81]]();for(var _0xc6fbx14=0;_0xc6fbx14<_0xc6fbx1d[_0xcc29[47]];_0xc6fbx14++){if(_0xc6fbx7[_0xcc29[53]]()[_0xcc29[82]](_0xc6fbx1d[_0xc6fbx14])){_0xc6fbx1c=true;break ;}};};for(var _0xc6fbx14=0;_0xc6fbx14<_0xc6fbx19[_0xcc29[47]];_0xc6fbx14++){_0xc6fbx19[_0xc6fbx14][_0xcc29[61]](_0xc6fbx1c)};};_0xc6fbx7[_0xcc29[52]]()[_0xcc29[51]](mxEvent.CHANGE,_0xc6fbx1a);_0xc6fbx1a();};Toolbar[_0xcc29[6]][_0xcc29[64]]=function(_0xc6fbx11,_0xc6fbxd){_0xc6fbx11[_0xcc29[85]](_0xcc29[83],_0xcc29[84]);if(_0xc6fbxd!=null){_0xc6fbx11[_0xcc29[85]](_0xcc29[86],_0xc6fbxd)};this[_0xcc29[87]](_0xc6fbx11);};Toolbar[_0xcc29[6]][_0xcc29[87]]=function(_0xc6fbx11){var _0xc6fbx18=_0xc6fbx11[_0xcc29[69]];_0xc6fbx11[_0xcc29[61]]=function(_0xc6fbx1e){_0xc6fbx11[_0xcc29[60]]=_0xc6fbx1e;if(_0xc6fbx1e){_0xc6fbx11[_0xcc29[69]]=_0xc6fbx18}else {_0xc6fbx11[_0xcc29[69]]=_0xc6fbx18+_0xcc29[88]};};_0xc6fbx11[_0xcc29[61]](true);};Toolbar[_0xcc29[6]][_0xcc29[77]]=function(_0xc6fbx11,_0xc6fbx12){if(_0xc6fbx12!=null){mxEvent[_0xcc29[51]](_0xc6fbx11,_0xcc29[89],function(_0xc6fbx4){if(_0xc6fbx11[_0xcc29[60]]){_0xc6fbx12(_0xc6fbx4)};mxEvent[_0xcc29[90]](_0xc6fbx4);})}};Toolbar[_0xcc29[6]][_0xcc29[63]]=function(_0xc6fbx18){var _0xc6fbx11=document[_0xcc29[68]](_0xcc29[91]);_0xc6fbx11[_0xcc29[85]](_0xcc29[92],_0xcc29[93]);_0xc6fbx11[_0xcc29[69]]=_0xcc29[94];var _0xc6fbx1f=document[_0xcc29[68]](_0xcc29[67]);_0xc6fbx1f[_0xcc29[69]]=_0xcc29[95]+_0xc6fbx18;_0xc6fbx11[_0xcc29[66]](_0xc6fbx1f);return _0xc6fbx11;};Toolbar[_0xcc29[6]][_0xcc29[62]]=function(_0xc6fbxc,_0xc6fbxd){var _0xc6fbx11=document[_0xcc29[68]](_0xcc29[91]);_0xc6fbx11[_0xcc29[85]](_0xcc29[92],_0xcc29[93]);_0xc6fbx11[_0xcc29[69]]=_0xcc29[96];mxUtils[_0xcc29[97]](_0xc6fbx11,_0xc6fbxc);return _0xc6fbx11;};Toolbar[_0xcc29[6]][_0xcc29[65]]=function(_0xc6fbx11,_0xc6fbxe,_0xc6fbx12,_0xc6fbx20){if(_0xc6fbx12!=null){var _0xc6fbx7=this[_0xcc29[0]][_0xcc29[41]][_0xcc29[40]];var _0xc6fbx10=null;mxEvent[_0xcc29[51]](_0xc6fbx11,_0xcc29[89],mxUtils[_0xcc29[4]](this,function(_0xc6fbx4){if(_0xc6fbx11[_0xcc29[60]]==null||_0xc6fbx11[_0xcc29[60]]){_0xc6fbx7[_0xcc29[98]][_0xcc29[3]]();_0xc6fbx10= new mxPopupMenu(_0xc6fbx12);_0xc6fbx10[_0xcc29[67]][_0xcc29[69]]+=_0xcc29[99];_0xc6fbx10[_0xcc29[100]]=_0xc6fbx20;_0xc6fbx10[_0xcc29[101]]=_0xc6fbxe;_0xc6fbx10[_0xcc29[102]]=true;_0xc6fbx10[_0xcc29[106]](_0xc6fbx11[_0xcc29[103]],_0xc6fbx11[_0xcc29[104]]+_0xc6fbx11[_0xcc29[105]]+34,null,_0xc6fbx4);this[_0xcc29[54]]=_0xc6fbx10;};mxEvent[_0xcc29[90]](_0xc6fbx4);}));}};
\ No newline at end of file
index dccd07f..86b0b9a 100644 (file)
@@ -1 +1 @@
-var _0xbc86=["\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x26","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x3D","\x69\x6E\x64\x65\x78\x4F\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x65\x78\x70\x2E\x64\x72\x61\x77\x2E\x69\x6F\x2F\x49\x6D\x61\x67\x65\x45\x78\x70\x6F\x72\x74\x32\x2F\x65\x78\x70\x6F\x72\x74","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x33\x30\x30\x30","\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x2F","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x73\x74\x65\x6E\x63\x69\x6C\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x68\x61\x70\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x74\x79\x6C\x65\x73","\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x6F\x70\x65\x6E","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x2F\x64\x69\x61","\x63\x75\x73\x74\x6F\x6D","\x4E\x47\x5F\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x4C\x41\x4E\x47\x5F\x4B\x45\x59","\x67\x65\x74\x49\x74\x65\x6D","\x6C\x6F\x67","\x65\x6E","\x65\x6E\x5F\x45\x4E","\x69\x74","\x6D\x78\x4C\x61\x6E\x67\x75\x61\x67\x65","\x61\x72","\x62\x73","\x63\x73","\x64\x61","\x64\x65","\x65\x6C","\x65\x73","\x65\x73\x2D\x61\x72","\x66\x72","\x68\x75","\x69\x64","\x6A\x61","\x6B\x6F","\x6E\x6C","\x6E\x6F","\x70\x6C","\x70\x74\x2D\x62\x72","\x70\x74","\x72\x6F","\x72\x75","\x73\x72","\x73\x76","\x74\x68","\x74\x72","\x75\x6B","\x7A\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x6A\x73","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x20\x43\x61\x6E\x74\x6F\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x54\x61\x69\x77\x61\x6E\x20\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x4D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x42\x72\x61\x7A\x69\x6C\x69\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x61\x74\x61\x6C\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x7A\x65\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x75\x74\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x49\x74\x61\x6C\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65\x09","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x4D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x4D\x61\x6C\x65","\x53\x77\x65\x64\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x53\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x4B\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x53\x70\x61\x69\x6E\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x4D\x65\x78\x69\x63\x6F\x29","\x49\x74\x61\x6C\x69\x61\x6E\x20\x28\x49\x74\x61\x6C\x79\x29\x20\x2F\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x28\x46\x69\x6E\x6C\x61\x6E\x64\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x46\x72\x61\x6E\x63\x65\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x50\x6F\x6C\x69\x73\x68\x20\x28\x50\x6F\x6C\x61\x6E\x64\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x50\x6F\x72\x74\x75\x67\x61\x6C\x29","\x43\x61\x74\x61\x6C\x61\x6E\x20\x28\x43\x61\x74\x61\x6C\x61\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x61\x69\x77\x61\x6E\x29","\x44\x61\x6E\x69\x73\x68\x20\x28\x44\x65\x6E\x6D\x61\x72\x6B\x29","\x47\x65\x72\x6D\x61\x6E\x20\x28\x47\x65\x72\x6D\x61\x6E\x79\x29","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x28\x4A\x61\x70\x61\x6E\x29","\x4B\x6F\x72\x65\x61\x6E\x20\x28\x4B\x6F\x72\x65\x61\x29","\x44\x75\x74\x63\x68\x20\x28\x4E\x65\x74\x68\x65\x72\x6C\x61\x6E\x64\x73\x29","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x6F\x72\x77\x61\x79\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x42\x72\x61\x7A\x69\x6C\x29","\x52\x75\x73\x73\x69\x61\x6E\x20\x28\x52\x75\x73\x73\x69\x61\x29","\x53\x77\x65\x64\x69\x73\x68\x20\x28\x53\x77\x65\x64\x65\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x43\x68\x69\x6E\x61\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x29","\x44\x65\x66\x61\x75\x6C\x74","\x44\x61\x74\x65","\x55\x53\x20\x4D\x6F\x6E\x65\x79","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39\x39","\x54\x69\x6D\x65","\x50\x68\x6F\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72","\x53\x74\x72\x65\x65\x74\x73","\x55\x53\x20\x43\x69\x74\x79\x2F\x53\x74\x61\x74\x65\x73","\x41\x66\x72\x69\x6B\x61\x61\x6E\x73","\x41\x6C\x62\x61\x6E\x69\x61\x6E","\x41\x6D\x68\x61\x72\x69\x63","\x41\x72\x61\x62\x69\x63","\x41\x72\x6D\x65\x6E\x69\x61\x6E","\x41\x7A\x65\x72\x62\x61\x69\x6A\x61\x6E\x69","\x42\x61\x73\x71\x75\x65","\x42\x65\x6C\x61\x72\x75\x73\x69\x61\x6E","\x42\x65\x6E\x67\x61\x6C\x69","\x42\x69\x68\x61\x72\x69","\x42\x6F\x73\x6E\x69\x61\x6E","\x42\x72\x65\x74\x6F\x6E","\x42\x75\x6C\x67\x61\x72\x69\x61\x6E","\x43\x61\x6D\x62\x6F\x64\x69\x61\x6E","\x43\x61\x74\x61\x6C\x61\x6E","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x53\x69\x6D\x70\x6C\x69\x66\x69\x65\x64\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x72\x61\x64\x69\x74\x69\x6F\x6E\x61\x6C\x29","\x43\x6F\x72\x73\x69\x63\x61\x6E","\x43\x72\x6F\x61\x74\x69\x61\x6E","\x43\x7A\x65\x63\x68","\x44\x61\x6E\x69\x73\x68","\x44\x75\x74\x63\x68","\x45\x6E\x67\x6C\x69\x73\x68","\x45\x73\x70\x65\x72\x61\x6E\x74\x6F","\x45\x73\x74\x6F\x6E\x69\x61\x6E","\x46\x61\x72\x6F\x65\x73\x65","\x46\x69\x6C\x69\x70\x69\x6E\x6F","\x46\x69\x6E\x6E\x69\x73\x68","\x46\x72\x65\x6E\x63\x68","\x46\x72\x69\x73\x69\x61\x6E","\x47\x61\x6C\x69\x63\x69\x61\x6E","\x47\x65\x6F\x72\x67\x69\x61\x6E","\x47\x65\x72\x6D\x61\x6E","\x47\x72\x65\x65\x6B","\x47\x75\x61\x72\x61\x6E\x69","\x47\x75\x6A\x61\x72\x61\x74\x69","\x48\x61\x63\x6B\x65\x72","\x48\x61\x75\x73\x61","\x48\x65\x62\x72\x65\x77","\x48\x69\x6E\x64\x69","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E","\x49\x63\x65\x6C\x61\x6E\x64\x69\x63","\x49\x6E\x64\x6F\x6E\x65\x73\x69\x61\x6E","\x49\x6E\x74\x65\x72\x6C\x69\x6E\x67\x75\x61","\x49\x72\x69\x73\x68","\x49\x74\x61\x6C\x69\x61\x6E","\x4A\x61\x76\x61\x6E\x65\x73\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65","\x4B\x61\x6E\x6E\x61\x64\x61","\x4B\x61\x7A\x61\x6B\x68","\x4B\x69\x6E\x79\x61\x72\x77\x61\x6E\x64\x61","\x4B\x69\x72\x75\x6E\x64\x69","\x4B\x6C\x69\x6E\x67\x6F\x6E","\x4B\x75\x72\x64\x69\x73\x68","\x4B\x6F\x72\x65\x61\x6E","\x4B\x79\x72\x67\x79\x7A","\x4C\x61\x6F\x74\x68\x69\x61\x6E","\x4C\x61\x74\x69\x6E","\x4C\x61\x74\x76\x69\x61\x6E","\x4C\x69\x6E\x67\x61\x6C\x61","\x4C\x69\x74\x68\x75\x61\x6E\x69\x61\x6E","\x4D\x61\x63\x65\x64\x6F\x6E\x69\x61\x6E","\x4D\x61\x6C\x61\x67\x61\x73\x79","\x4D\x61\x6C\x61\x79","\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D","\x4D\x61\x6C\x74\x65\x73\x65","\x4D\x61\x6F\x72\x69","\x4D\x61\x72\x61\x74\x68\x69","\x4D\x6F\x6C\x64\x61\x76\x69\x61\x6E","\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E","\x4D\x6F\x6E\x74\x65\x6E\x65\x67\x72\x69\x6E","\x4E\x65\x70\x61\x6C\x69","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x79\x6E\x6F\x72\x73\x6B\x29","\x4F\x63\x63\x69\x74\x61\x6E","\x4F\x72\x69\x79\x61","\x4F\x72\x6F\x6D\x6F","\x50\x61\x73\x68\x74\x6F","\x50\x65\x72\x73\x69\x61\x6E","\x50\x69\x72\x61\x74\x65","\x50\x6F\x6C\x69\x73\x68","\x50\x75\x6E\x6A\x61\x62\x69","\x51\x75\x65\x63\x68\x75\x61","\x52\x6F\x6D\x61\x6E\x69\x61\x6E","\x52\x6F\x6D\x61\x6E\x73\x68","\x52\x75\x73\x73\x69\x61\x6E","\x53\x63\x6F\x74\x73\x20\x47\x61\x65\x6C\x69\x63","\x53\x65\x72\x62\x69\x61\x6E","\x53\x65\x72\x62\x6F\x2D\x43\x72\x6F\x61\x74\x69\x61\x6E","\x53\x65\x73\x6F\x74\x68\x6F","\x53\x68\x6F\x6E\x61","\x53\x69\x6E\x64\x68\x69","\x53\x69\x6E\x68\x61\x6C\x65\x73\x65","\x53\x6C\x6F\x76\x61\x6B","\x53\x6C\x6F\x76\x65\x6E\x69\x61\x6E","\x53\x6F\x6D\x61\x6C\x69","\x53\x70\x61\x6E\x69\x73\x68","\x53\x75\x6E\x64\x61\x6E\x65\x73\x65","\x53\x77\x61\x68\x69\x6C\x69","\x53\x77\x65\x64\x69\x73\x68","\x54\x61\x6A\x69\x6B","\x54\x61\x6D\x69\x6C","\x54\x61\x74\x61\x72","\x54\x65\x6C\x75\x67\x75","\x54\x68\x61\x69","\x54\x69\x67\x72\x69\x6E\x79\x61","\x54\x6F\x6E\x67\x61","\x54\x75\x72\x6B\x69\x73\x68","\x54\x75\x72\x6B\x6D\x65\x6E","\x54\x77\x69","\x55\x69\x67\x68\x75\x72","\x55\x6B\x72\x61\x69\x6E\x69\x61\x6E","\x55\x72\x64\x75","\x55\x7A\x62\x65\x6B","\x56\x69\x65\x74\x6E\x61\x6D\x65\x73\x65","\x57\x65\x6C\x73\x68","\x58\x68\x6F\x73\x61","\x59\x69\x64\x64\x69\x73\x68","\x59\x6F\x72\x75\x62\x61","\x5A\x75\x6C\x75"];var urlParams=(function(_0x6f0dx2){var _0x6f0dx3= new Object();var _0x6f0dx4=_0x6f0dx2[_0xbc86[3]](_0xbc86[2]);if(_0x6f0dx4>0){var _0x6f0dx5=_0x6f0dx2[_0xbc86[6]](_0x6f0dx4+1)[_0xbc86[5]](_0xbc86[4]);for(var _0x6f0dx6=0;_0x6f0dx6<_0x6f0dx5[_0xbc86[7]];_0x6f0dx6++){_0x6f0dx4=_0x6f0dx5[_0x6f0dx6][_0xbc86[9]](_0xbc86[8]);if(_0x6f0dx4>0){_0x6f0dx3[_0x6f0dx5[_0x6f0dx6][_0xbc86[6]](0,_0x6f0dx4)]=_0x6f0dx5[_0x6f0dx6][_0xbc86[6]](_0x6f0dx4+1)};};};return _0x6f0dx3;})(window[_0xbc86[1]][_0xbc86[0]]);var t0= new Date();var MAX_REQUEST_SIZE=10485760;var MAX_WIDTH=12000;var MAX_HEIGHT=12000;var EXPORT_URL=_0xbc86[10];var SHARE_HOST=_0xbc86[11];var SAVE_URL=_0xbc86[12];var VARIABLE_URL=_0xbc86[13];var STENCIL_PATH=_0xbc86[14];var SHAPES_PATH=_0xbc86[15];var IMAGE_PATH=_0xbc86[16];var STYLE_PATH=_0xbc86[17];var CSS_PATH=_0xbc86[17];var OPEN_FORM=_0xbc86[18];var TEMPLATE_PATH=_0xbc86[19];var RESOURCES_PATH=_0xbc86[20];var RESOURCE_BASE=RESOURCES_PATH+_0xbc86[21];var tapAndHoldStartsConnection=true;var showConnectorImg=true;var mxLoadResources=false;console[_0xbc86[25]](_0xbc86[22],localStorage[_0xbc86[24]](_0xbc86[23]));switch(localStorage[_0xbc86[24]](_0xbc86[23])){case _0xbc86[27]:mxLanguage=_0xbc86[26];break ;;case _0xbc86[28]:mxLanguage=_0xbc86[28];break ;;default:mxLanguage=_0xbc86[28];;};console[_0xbc86[25]](_0xbc86[29],mxLanguage);var mxLanguages=[_0xbc86[30],_0xbc86[31],_0xbc86[32],_0xbc86[33],_0xbc86[34],_0xbc86[35],_0xbc86[36],_0xbc86[37],_0xbc86[38],_0xbc86[39],_0xbc86[40],_0xbc86[28],_0xbc86[41],_0xbc86[42],_0xbc86[43],_0xbc86[44],_0xbc86[45],_0xbc86[46],_0xbc86[47],_0xbc86[48],_0xbc86[49],_0xbc86[50],_0xbc86[51],_0xbc86[52],_0xbc86[53],_0xbc86[54],_0xbc86[55]];var mxBasePath=_0xbc86[56];var geBasePath=_0xbc86[57];var ISPEECHLANG={usenglishfemale:_0xbc86[58],usenglishmale:_0xbc86[59],ukenglishfemale:_0xbc86[60],ukenglishmale:_0xbc86[61],auenglishfemale:_0xbc86[62],usspanishfemale:_0xbc86[63],usspanishmale:_0xbc86[64],chchinesefemale:_0xbc86[65],chchinesemale:_0xbc86[66],hkchinesefemale:_0xbc86[67],twchinesefemale:_0xbc86[68],jpjapanesefemale:_0xbc86[69],jpjapanesemale:_0xbc86[70],krkoreanfemale:_0xbc86[71],krkoreanmale:_0xbc86[72],caenglishfemale:_0xbc86[73],huhungarianfemale:_0xbc86[74],brportuguesefemale:_0xbc86[75],eurportuguesefemale:_0xbc86[76],eurportuguesemale:_0xbc86[77],eurspanishfemale:_0xbc86[78],eurspanishmale:_0xbc86[79],eurcatalanfemale:_0xbc86[80],eurczechfemale:_0xbc86[81],eurdanishfemale:_0xbc86[82],eurfinnishfemale:_0xbc86[83],eurfrenchfemale:_0xbc86[84],eurfrenchmale:_0xbc86[85],eurnorwegianfemale:_0xbc86[86],eurdutchfemale:_0xbc86[87],eurpolishfemale:_0xbc86[88],euritalianfemale:_0xbc86[89],eurturkishfemale:_0xbc86[90],eurturkishmale:_0xbc86[91],eurgermanfemale:_0xbc86[92],eurgermanmale:_0xbc86[93],rurussianfemale:_0xbc86[94],rurussianmale:_0xbc86[95],swswedishfemale:_0xbc86[96],cafrenchfemale:_0xbc86[97],cafrenchmale:_0xbc86[98]};var ISPEECHASRLANG={"\x65\x6E\x2D\x55\x53":_0xbc86[99],"\x65\x6E\x2D\x43\x41":_0xbc86[100],"\x65\x6E\x2D\x47\x42":_0xbc86[101],"\x65\x6E\x2D\x41\x55":_0xbc86[102],"\x65\x73\x2D\x45\x53":_0xbc86[103],"\x65\x73\x2D\x4D\x58":_0xbc86[104],"\x69\x74\x2D\x49\x54":_0xbc86[105],"\x66\x72\x2D\x46\x52":_0xbc86[106],"\x66\x72\x2D\x43\x41":_0xbc86[107],"\x70\x6C\x2D\x50\x4C":_0xbc86[108],"\x70\x74\x2D\x50\x54":_0xbc86[109],"\x63\x61\x2D\x45\x53":_0xbc86[110],"\x7A\x68\x2D\x54\x57":_0xbc86[111],"\x64\x61\x2D\x44\x4B":_0xbc86[112],"\x66\x72\x2D\x46\x52":_0xbc86[113],"\x6A\x61\x2D\x4A\x50":_0xbc86[114],"\x6B\x6F\x2D\x4B\x52":_0xbc86[115],"\x6E\x6C\x2D\x4E\x4C":_0xbc86[116],"\x6E\x62\x2D\x4E\x4F":_0xbc86[117],"\x70\x74\x2D\x42\x52":_0xbc86[118],"\x72\x75\x2D\x52\x55":_0xbc86[119],"\x73\x76\x2D\x53\x45":_0xbc86[120],"\x7A\x68\x2D\x43\x4E":_0xbc86[121],"\x7A\x68\x2D\x48\x4B":_0xbc86[122]};var ISPEECHASRMODEL={0:_0xbc86[123],date:_0xbc86[124],usmoney:_0xbc86[125],numbersto9:_0xbc86[126],numbersto99:_0xbc86[127],numbersto999:_0xbc86[128],time:_0xbc86[129],phonenumber:_0xbc86[130],streets:_0xbc86[131],citystate:_0xbc86[132]};var GOOGLETTSLANG={"\x61\x66":_0xbc86[133],"\x73\x71":_0xbc86[134],"\x61\x6D":_0xbc86[135],"\x61\x72":_0xbc86[136],"\x68\x79":_0xbc86[137],"\x61\x7A":_0xbc86[138],"\x65\x75":_0xbc86[139],"\x62\x65":_0xbc86[140],"\x62\x6E":_0xbc86[141],"\x62\x68":_0xbc86[142],"\x62\x73":_0xbc86[143],"\x62\x72":_0xbc86[144],"\x62\x67":_0xbc86[145],"\x6B\x6D":_0xbc86[146],"\x63\x61":_0xbc86[147],"\x7A\x68\x2D\x43\x4E":_0xbc86[148],"\x7A\x68\x2D\x54\x57":_0xbc86[149],"\x63\x6F":_0xbc86[150],"\x68\x72":_0xbc86[151],"\x63\x73":_0xbc86[152],"\x64\x61":_0xbc86[153],"\x6E\x6C":_0xbc86[154],"\x65\x6E":_0xbc86[155],"\x65\x6F":_0xbc86[156],"\x65\x74":_0xbc86[157],"\x66\x6F":_0xbc86[158],"\x74\x6C":_0xbc86[159],"\x66\x69":_0xbc86[160],"\x66\x72":_0xbc86[161],"\x66\x79":_0xbc86[162],"\x67\x6C":_0xbc86[163],"\x6B\x61":_0xbc86[164],"\x64\x65":_0xbc86[165],"\x65\x6C":_0xbc86[166],"\x67\x6E":_0xbc86[167],"\x67\x75":_0xbc86[168],"\x78\x78\x2D\x68\x61\x63\x6B\x65\x72":_0xbc86[169],"\x68\x61":_0xbc86[170],"\x69\x77":_0xbc86[171],"\x68\x69":_0xbc86[172],"\x68\x75":_0xbc86[173],"\x69\x73":_0xbc86[174],"\x69\x64":_0xbc86[175],"\x69\x61":_0xbc86[176],"\x67\x61":_0xbc86[177],"\x69\x74":_0xbc86[178],"\x6A\x77":_0xbc86[179],"\x6A\x61":_0xbc86[180],"\x6B\x6E":_0xbc86[181],"\x6B\x6B":_0xbc86[182],"\x72\x77":_0xbc86[183],"\x72\x6E":_0xbc86[184],"\x78\x78\x2D\x6B\x6C\x69\x6E\x67\x6F\x6E":_0xbc86[185],"\x6B\x75":_0xbc86[186],"\x6B\x6F":_0xbc86[187],"\x6B\x79":_0xbc86[188],"\x6C\x6F":_0xbc86[189],"\x6C\x61":_0xbc86[190],"\x6C\x76":_0xbc86[191],"\x6C\x6E":_0xbc86[192],"\x6C\x74":_0xbc86[193],"\x6D\x6B":_0xbc86[194],"\x6D\x67":_0xbc86[195],"\x6D\x73":_0xbc86[196],"\x6D\x6C":_0xbc86[197],"\x6D\x74":_0xbc86[198],"\x6D\x69":_0xbc86[199],"\x6D\x72":_0xbc86[200],"\x6D\x6F":_0xbc86[201],"\x6D\x6E":_0xbc86[202],"\x73\x72\x2D\x4D\x45":_0xbc86[203],"\x6E\x65":_0xbc86[204],"\x6E\x6F":_0xbc86[205],"\x6E\x6E":_0xbc86[206],"\x6F\x63":_0xbc86[207],"\x6F\x72":_0xbc86[208],"\x6F\x6D":_0xbc86[209],"\x70\x73":_0xbc86[210],"\x66\x61":_0xbc86[211],"\x78\x78\x2D\x70\x69\x72\x61\x74\x65":_0xbc86[212],"\x70\x6C":_0xbc86[213],"\x70\x74\x2D\x42\x52":_0xbc86[118],"\x70\x74\x2D\x50\x54":_0xbc86[109],"\x70\x61":_0xbc86[214],"\x71\x75":_0xbc86[215],"\x72\x6F":_0xbc86[216],"\x72\x6D":_0xbc86[217],"\x72\x75":_0xbc86[218],"\x67\x64":_0xbc86[219],"\x73\x72":_0xbc86[220],"\x73\x68":_0xbc86[221],"\x73\x74":_0xbc86[222],"\x73\x6E":_0xbc86[223],"\x73\x64":_0xbc86[224],"\x73\x69":_0xbc86[225],"\x73\x6B":_0xbc86[226],"\x73\x6C":_0xbc86[227],"\x73\x6F":_0xbc86[228],"\x65\x73":_0xbc86[229],"\x73\x75":_0xbc86[230],"\x73\x77":_0xbc86[231],"\x73\x76":_0xbc86[232],"\x74\x67":_0xbc86[233],"\x74\x61":_0xbc86[234],"\x74\x74":_0xbc86[235],"\x74\x65":_0xbc86[236],"\x74\x68":_0xbc86[237],"\x74\x69":_0xbc86[238],"\x74\x6F":_0xbc86[239],"\x74\x72":_0xbc86[240],"\x74\x6B":_0xbc86[241],"\x74\x77":_0xbc86[242],"\x75\x67":_0xbc86[243],"\x75\x6B":_0xbc86[244],"\x75\x72":_0xbc86[245],"\x75\x7A":_0xbc86[246],"\x76\x69":_0xbc86[247],"\x63\x79":_0xbc86[248],"\x78\x68":_0xbc86[249],"\x79\x69":_0xbc86[250],"\x79\x6F":_0xbc86[251],"\x7A\x75":_0xbc86[252]};
\ No newline at end of file
+var _0xe915=["\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x26","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x3D","\x69\x6E\x64\x65\x78\x4F\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x65\x78\x70\x2E\x64\x72\x61\x77\x2E\x69\x6F\x2F\x49\x6D\x61\x67\x65\x45\x78\x70\x6F\x72\x74\x32\x2F\x65\x78\x70\x6F\x72\x74","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x33\x30\x30\x30","\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x2F","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x73\x74\x65\x6E\x63\x69\x6C\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x68\x61\x70\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x74\x79\x6C\x65\x73","\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x6F\x70\x65\x6E","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x2F\x64\x69\x61","\x63\x75\x73\x74\x6F\x6D","\x4E\x47\x5F\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x4C\x41\x4E\x47\x5F\x4B\x45\x59","\x67\x65\x74\x49\x74\x65\x6D","\x6C\x6F\x67","\x65\x6E","\x65\x6E\x5F\x45\x4E","\x69\x74","\x6D\x78\x4C\x61\x6E\x67\x75\x61\x67\x65","\x61\x72","\x62\x73","\x63\x73","\x64\x61","\x64\x65","\x65\x6C","\x65\x73","\x65\x73\x2D\x61\x72","\x66\x72","\x68\x75","\x69\x64","\x6A\x61","\x6B\x6F","\x6E\x6C","\x6E\x6F","\x70\x6C","\x70\x74\x2D\x62\x72","\x70\x74","\x72\x6F","\x72\x75","\x73\x72","\x73\x76","\x74\x68","\x74\x72","\x75\x6B","\x7A\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x6A\x73","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x20\x43\x61\x6E\x74\x6F\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x54\x61\x69\x77\x61\x6E\x20\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x4D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x42\x72\x61\x7A\x69\x6C\x69\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x61\x74\x61\x6C\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x7A\x65\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x75\x74\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x49\x74\x61\x6C\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65\x09","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x4D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x4D\x61\x6C\x65","\x53\x77\x65\x64\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x53\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x4B\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x53\x70\x61\x69\x6E\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x4D\x65\x78\x69\x63\x6F\x29","\x49\x74\x61\x6C\x69\x61\x6E\x20\x28\x49\x74\x61\x6C\x79\x29\x20\x2F\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x28\x46\x69\x6E\x6C\x61\x6E\x64\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x46\x72\x61\x6E\x63\x65\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x50\x6F\x6C\x69\x73\x68\x20\x28\x50\x6F\x6C\x61\x6E\x64\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x50\x6F\x72\x74\x75\x67\x61\x6C\x29","\x43\x61\x74\x61\x6C\x61\x6E\x20\x28\x43\x61\x74\x61\x6C\x61\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x61\x69\x77\x61\x6E\x29","\x44\x61\x6E\x69\x73\x68\x20\x28\x44\x65\x6E\x6D\x61\x72\x6B\x29","\x47\x65\x72\x6D\x61\x6E\x20\x28\x47\x65\x72\x6D\x61\x6E\x79\x29","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x28\x4A\x61\x70\x61\x6E\x29","\x4B\x6F\x72\x65\x61\x6E\x20\x28\x4B\x6F\x72\x65\x61\x29","\x44\x75\x74\x63\x68\x20\x28\x4E\x65\x74\x68\x65\x72\x6C\x61\x6E\x64\x73\x29","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x6F\x72\x77\x61\x79\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x42\x72\x61\x7A\x69\x6C\x29","\x52\x75\x73\x73\x69\x61\x6E\x20\x28\x52\x75\x73\x73\x69\x61\x29","\x53\x77\x65\x64\x69\x73\x68\x20\x28\x53\x77\x65\x64\x65\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x43\x68\x69\x6E\x61\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x29","\x44\x65\x66\x61\x75\x6C\x74","\x44\x61\x74\x65","\x55\x53\x20\x4D\x6F\x6E\x65\x79","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39\x39","\x54\x69\x6D\x65","\x50\x68\x6F\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72","\x53\x74\x72\x65\x65\x74\x73","\x55\x53\x20\x43\x69\x74\x79\x2F\x53\x74\x61\x74\x65\x73","\x41\x66\x72\x69\x6B\x61\x61\x6E\x73","\x41\x6C\x62\x61\x6E\x69\x61\x6E","\x41\x6D\x68\x61\x72\x69\x63","\x41\x72\x61\x62\x69\x63","\x41\x72\x6D\x65\x6E\x69\x61\x6E","\x41\x7A\x65\x72\x62\x61\x69\x6A\x61\x6E\x69","\x42\x61\x73\x71\x75\x65","\x42\x65\x6C\x61\x72\x75\x73\x69\x61\x6E","\x42\x65\x6E\x67\x61\x6C\x69","\x42\x69\x68\x61\x72\x69","\x42\x6F\x73\x6E\x69\x61\x6E","\x42\x72\x65\x74\x6F\x6E","\x42\x75\x6C\x67\x61\x72\x69\x61\x6E","\x43\x61\x6D\x62\x6F\x64\x69\x61\x6E","\x43\x61\x74\x61\x6C\x61\x6E","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x53\x69\x6D\x70\x6C\x69\x66\x69\x65\x64\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x72\x61\x64\x69\x74\x69\x6F\x6E\x61\x6C\x29","\x43\x6F\x72\x73\x69\x63\x61\x6E","\x43\x72\x6F\x61\x74\x69\x61\x6E","\x43\x7A\x65\x63\x68","\x44\x61\x6E\x69\x73\x68","\x44\x75\x74\x63\x68","\x45\x6E\x67\x6C\x69\x73\x68","\x45\x73\x70\x65\x72\x61\x6E\x74\x6F","\x45\x73\x74\x6F\x6E\x69\x61\x6E","\x46\x61\x72\x6F\x65\x73\x65","\x46\x69\x6C\x69\x70\x69\x6E\x6F","\x46\x69\x6E\x6E\x69\x73\x68","\x46\x72\x65\x6E\x63\x68","\x46\x72\x69\x73\x69\x61\x6E","\x47\x61\x6C\x69\x63\x69\x61\x6E","\x47\x65\x6F\x72\x67\x69\x61\x6E","\x47\x65\x72\x6D\x61\x6E","\x47\x72\x65\x65\x6B","\x47\x75\x61\x72\x61\x6E\x69","\x47\x75\x6A\x61\x72\x61\x74\x69","\x48\x61\x63\x6B\x65\x72","\x48\x61\x75\x73\x61","\x48\x65\x62\x72\x65\x77","\x48\x69\x6E\x64\x69","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E","\x49\x63\x65\x6C\x61\x6E\x64\x69\x63","\x49\x6E\x64\x6F\x6E\x65\x73\x69\x61\x6E","\x49\x6E\x74\x65\x72\x6C\x69\x6E\x67\x75\x61","\x49\x72\x69\x73\x68","\x49\x74\x61\x6C\x69\x61\x6E","\x4A\x61\x76\x61\x6E\x65\x73\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65","\x4B\x61\x6E\x6E\x61\x64\x61","\x4B\x61\x7A\x61\x6B\x68","\x4B\x69\x6E\x79\x61\x72\x77\x61\x6E\x64\x61","\x4B\x69\x72\x75\x6E\x64\x69","\x4B\x6C\x69\x6E\x67\x6F\x6E","\x4B\x75\x72\x64\x69\x73\x68","\x4B\x6F\x72\x65\x61\x6E","\x4B\x79\x72\x67\x79\x7A","\x4C\x61\x6F\x74\x68\x69\x61\x6E","\x4C\x61\x74\x69\x6E","\x4C\x61\x74\x76\x69\x61\x6E","\x4C\x69\x6E\x67\x61\x6C\x61","\x4C\x69\x74\x68\x75\x61\x6E\x69\x61\x6E","\x4D\x61\x63\x65\x64\x6F\x6E\x69\x61\x6E","\x4D\x61\x6C\x61\x67\x61\x73\x79","\x4D\x61\x6C\x61\x79","\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D","\x4D\x61\x6C\x74\x65\x73\x65","\x4D\x61\x6F\x72\x69","\x4D\x61\x72\x61\x74\x68\x69","\x4D\x6F\x6C\x64\x61\x76\x69\x61\x6E","\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E","\x4D\x6F\x6E\x74\x65\x6E\x65\x67\x72\x69\x6E","\x4E\x65\x70\x61\x6C\x69","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x79\x6E\x6F\x72\x73\x6B\x29","\x4F\x63\x63\x69\x74\x61\x6E","\x4F\x72\x69\x79\x61","\x4F\x72\x6F\x6D\x6F","\x50\x61\x73\x68\x74\x6F","\x50\x65\x72\x73\x69\x61\x6E","\x50\x69\x72\x61\x74\x65","\x50\x6F\x6C\x69\x73\x68","\x50\x75\x6E\x6A\x61\x62\x69","\x51\x75\x65\x63\x68\x75\x61","\x52\x6F\x6D\x61\x6E\x69\x61\x6E","\x52\x6F\x6D\x61\x6E\x73\x68","\x52\x75\x73\x73\x69\x61\x6E","\x53\x63\x6F\x74\x73\x20\x47\x61\x65\x6C\x69\x63","\x53\x65\x72\x62\x69\x61\x6E","\x53\x65\x72\x62\x6F\x2D\x43\x72\x6F\x61\x74\x69\x61\x6E","\x53\x65\x73\x6F\x74\x68\x6F","\x53\x68\x6F\x6E\x61","\x53\x69\x6E\x64\x68\x69","\x53\x69\x6E\x68\x61\x6C\x65\x73\x65","\x53\x6C\x6F\x76\x61\x6B","\x53\x6C\x6F\x76\x65\x6E\x69\x61\x6E","\x53\x6F\x6D\x61\x6C\x69","\x53\x70\x61\x6E\x69\x73\x68","\x53\x75\x6E\x64\x61\x6E\x65\x73\x65","\x53\x77\x61\x68\x69\x6C\x69","\x53\x77\x65\x64\x69\x73\x68","\x54\x61\x6A\x69\x6B","\x54\x61\x6D\x69\x6C","\x54\x61\x74\x61\x72","\x54\x65\x6C\x75\x67\x75","\x54\x68\x61\x69","\x54\x69\x67\x72\x69\x6E\x79\x61","\x54\x6F\x6E\x67\x61","\x54\x75\x72\x6B\x69\x73\x68","\x54\x75\x72\x6B\x6D\x65\x6E","\x54\x77\x69","\x55\x69\x67\x68\x75\x72","\x55\x6B\x72\x61\x69\x6E\x69\x61\x6E","\x55\x72\x64\x75","\x55\x7A\x62\x65\x6B","\x56\x69\x65\x74\x6E\x61\x6D\x65\x73\x65","\x57\x65\x6C\x73\x68","\x58\x68\x6F\x73\x61","\x59\x69\x64\x64\x69\x73\x68","\x59\x6F\x72\x75\x62\x61","\x5A\x75\x6C\x75"];var urlParams=(function(_0xaff3x2){var _0xaff3x3= new Object();var _0xaff3x4=_0xaff3x2[_0xe915[3]](_0xe915[2]);if(_0xaff3x4>0){var _0xaff3x5=_0xaff3x2[_0xe915[6]](_0xaff3x4+1)[_0xe915[5]](_0xe915[4]);for(var _0xaff3x6=0;_0xaff3x6<_0xaff3x5[_0xe915[7]];_0xaff3x6++){_0xaff3x4=_0xaff3x5[_0xaff3x6][_0xe915[9]](_0xe915[8]);if(_0xaff3x4>0){_0xaff3x3[_0xaff3x5[_0xaff3x6][_0xe915[6]](0,_0xaff3x4)]=_0xaff3x5[_0xaff3x6][_0xe915[6]](_0xaff3x4+1)};};};return _0xaff3x3;})(window[_0xe915[1]][_0xe915[0]]);var t0= new Date();var MAX_REQUEST_SIZE=10485760;var MAX_WIDTH=12000;var MAX_HEIGHT=12000;var EXPORT_URL=_0xe915[10];var SHARE_HOST=_0xe915[11];var SAVE_URL=_0xe915[12];var VARIABLE_URL=_0xe915[13];var STENCIL_PATH=_0xe915[14];var SHAPES_PATH=_0xe915[15];var IMAGE_PATH=_0xe915[16];var STYLE_PATH=_0xe915[17];var CSS_PATH=_0xe915[17];var OPEN_FORM=_0xe915[18];var TEMPLATE_PATH=_0xe915[19];var RESOURCES_PATH=_0xe915[20];var RESOURCE_BASE=RESOURCES_PATH+_0xe915[21];var tapAndHoldStartsConnection=true;var showConnectorImg=true;var mxLoadResources=false;console[_0xe915[25]](_0xe915[22],localStorage[_0xe915[24]](_0xe915[23]));switch(localStorage[_0xe915[24]](_0xe915[23])){case _0xe915[27]:mxLanguage=_0xe915[26];break ;;case _0xe915[28]:mxLanguage=_0xe915[28];break ;;default:mxLanguage=_0xe915[28];;};console[_0xe915[25]](_0xe915[29],mxLanguage);var mxLanguages=[_0xe915[30],_0xe915[31],_0xe915[32],_0xe915[33],_0xe915[34],_0xe915[35],_0xe915[36],_0xe915[37],_0xe915[38],_0xe915[39],_0xe915[40],_0xe915[28],_0xe915[41],_0xe915[42],_0xe915[43],_0xe915[44],_0xe915[45],_0xe915[46],_0xe915[47],_0xe915[48],_0xe915[49],_0xe915[50],_0xe915[51],_0xe915[52],_0xe915[53],_0xe915[54],_0xe915[55]];var mxBasePath=_0xe915[56];var geBasePath=_0xe915[57];var ISPEECHLANG={usenglishfemale:_0xe915[58],usenglishmale:_0xe915[59],ukenglishfemale:_0xe915[60],ukenglishmale:_0xe915[61],auenglishfemale:_0xe915[62],usspanishfemale:_0xe915[63],usspanishmale:_0xe915[64],chchinesefemale:_0xe915[65],chchinesemale:_0xe915[66],hkchinesefemale:_0xe915[67],twchinesefemale:_0xe915[68],jpjapanesefemale:_0xe915[69],jpjapanesemale:_0xe915[70],krkoreanfemale:_0xe915[71],krkoreanmale:_0xe915[72],caenglishfemale:_0xe915[73],huhungarianfemale:_0xe915[74],brportuguesefemale:_0xe915[75],eurportuguesefemale:_0xe915[76],eurportuguesemale:_0xe915[77],eurspanishfemale:_0xe915[78],eurspanishmale:_0xe915[79],eurcatalanfemale:_0xe915[80],eurczechfemale:_0xe915[81],eurdanishfemale:_0xe915[82],eurfinnishfemale:_0xe915[83],eurfrenchfemale:_0xe915[84],eurfrenchmale:_0xe915[85],eurnorwegianfemale:_0xe915[86],eurdutchfemale:_0xe915[87],eurpolishfemale:_0xe915[88],euritalianfemale:_0xe915[89],eurturkishfemale:_0xe915[90],eurturkishmale:_0xe915[91],eurgermanfemale:_0xe915[92],eurgermanmale:_0xe915[93],rurussianfemale:_0xe915[94],rurussianmale:_0xe915[95],swswedishfemale:_0xe915[96],cafrenchfemale:_0xe915[97],cafrenchmale:_0xe915[98]};var ISPEECHASRLANG={"\x65\x6E\x2D\x55\x53":_0xe915[99],"\x65\x6E\x2D\x43\x41":_0xe915[100],"\x65\x6E\x2D\x47\x42":_0xe915[101],"\x65\x6E\x2D\x41\x55":_0xe915[102],"\x65\x73\x2D\x45\x53":_0xe915[103],"\x65\x73\x2D\x4D\x58":_0xe915[104],"\x69\x74\x2D\x49\x54":_0xe915[105],"\x66\x72\x2D\x46\x52":_0xe915[106],"\x66\x72\x2D\x43\x41":_0xe915[107],"\x70\x6C\x2D\x50\x4C":_0xe915[108],"\x70\x74\x2D\x50\x54":_0xe915[109],"\x63\x61\x2D\x45\x53":_0xe915[110],"\x7A\x68\x2D\x54\x57":_0xe915[111],"\x64\x61\x2D\x44\x4B":_0xe915[112],"\x66\x72\x2D\x46\x52":_0xe915[113],"\x6A\x61\x2D\x4A\x50":_0xe915[114],"\x6B\x6F\x2D\x4B\x52":_0xe915[115],"\x6E\x6C\x2D\x4E\x4C":_0xe915[116],"\x6E\x62\x2D\x4E\x4F":_0xe915[117],"\x70\x74\x2D\x42\x52":_0xe915[118],"\x72\x75\x2D\x52\x55":_0xe915[119],"\x73\x76\x2D\x53\x45":_0xe915[120],"\x7A\x68\x2D\x43\x4E":_0xe915[121],"\x7A\x68\x2D\x48\x4B":_0xe915[122]};var ISPEECHASRMODEL={0:_0xe915[123],date:_0xe915[124],usmoney:_0xe915[125],numbersto9:_0xe915[126],numbersto99:_0xe915[127],numbersto999:_0xe915[128],time:_0xe915[129],phonenumber:_0xe915[130],streets:_0xe915[131],citystate:_0xe915[132]};var GOOGLETTSLANG={"\x61\x66":_0xe915[133],"\x73\x71":_0xe915[134],"\x61\x6D":_0xe915[135],"\x61\x72":_0xe915[136],"\x68\x79":_0xe915[137],"\x61\x7A":_0xe915[138],"\x65\x75":_0xe915[139],"\x62\x65":_0xe915[140],"\x62\x6E":_0xe915[141],"\x62\x68":_0xe915[142],"\x62\x73":_0xe915[143],"\x62\x72":_0xe915[144],"\x62\x67":_0xe915[145],"\x6B\x6D":_0xe915[146],"\x63\x61":_0xe915[147],"\x7A\x68\x2D\x43\x4E":_0xe915[148],"\x7A\x68\x2D\x54\x57":_0xe915[149],"\x63\x6F":_0xe915[150],"\x68\x72":_0xe915[151],"\x63\x73":_0xe915[152],"\x64\x61":_0xe915[153],"\x6E\x6C":_0xe915[154],"\x65\x6E":_0xe915[155],"\x65\x6F":_0xe915[156],"\x65\x74":_0xe915[157],"\x66\x6F":_0xe915[158],"\x74\x6C":_0xe915[159],"\x66\x69":_0xe915[160],"\x66\x72":_0xe915[161],"\x66\x79":_0xe915[162],"\x67\x6C":_0xe915[163],"\x6B\x61":_0xe915[164],"\x64\x65":_0xe915[165],"\x65\x6C":_0xe915[166],"\x67\x6E":_0xe915[167],"\x67\x75":_0xe915[168],"\x78\x78\x2D\x68\x61\x63\x6B\x65\x72":_0xe915[169],"\x68\x61":_0xe915[170],"\x69\x77":_0xe915[171],"\x68\x69":_0xe915[172],"\x68\x75":_0xe915[173],"\x69\x73":_0xe915[174],"\x69\x64":_0xe915[175],"\x69\x61":_0xe915[176],"\x67\x61":_0xe915[177],"\x69\x74":_0xe915[178],"\x6A\x77":_0xe915[179],"\x6A\x61":_0xe915[180],"\x6B\x6E":_0xe915[181],"\x6B\x6B":_0xe915[182],"\x72\x77":_0xe915[183],"\x72\x6E":_0xe915[184],"\x78\x78\x2D\x6B\x6C\x69\x6E\x67\x6F\x6E":_0xe915[185],"\x6B\x75":_0xe915[186],"\x6B\x6F":_0xe915[187],"\x6B\x79":_0xe915[188],"\x6C\x6F":_0xe915[189],"\x6C\x61":_0xe915[190],"\x6C\x76":_0xe915[191],"\x6C\x6E":_0xe915[192],"\x6C\x74":_0xe915[193],"\x6D\x6B":_0xe915[194],"\x6D\x67":_0xe915[195],"\x6D\x73":_0xe915[196],"\x6D\x6C":_0xe915[197],"\x6D\x74":_0xe915[198],"\x6D\x69":_0xe915[199],"\x6D\x72":_0xe915[200],"\x6D\x6F":_0xe915[201],"\x6D\x6E":_0xe915[202],"\x73\x72\x2D\x4D\x45":_0xe915[203],"\x6E\x65":_0xe915[204],"\x6E\x6F":_0xe915[205],"\x6E\x6E":_0xe915[206],"\x6F\x63":_0xe915[207],"\x6F\x72":_0xe915[208],"\x6F\x6D":_0xe915[209],"\x70\x73":_0xe915[210],"\x66\x61":_0xe915[211],"\x78\x78\x2D\x70\x69\x72\x61\x74\x65":_0xe915[212],"\x70\x6C":_0xe915[213],"\x70\x74\x2D\x42\x52":_0xe915[118],"\x70\x74\x2D\x50\x54":_0xe915[109],"\x70\x61":_0xe915[214],"\x71\x75":_0xe915[215],"\x72\x6F":_0xe915[216],"\x72\x6D":_0xe915[217],"\x72\x75":_0xe915[218],"\x67\x64":_0xe915[219],"\x73\x72":_0xe915[220],"\x73\x68":_0xe915[221],"\x73\x74":_0xe915[222],"\x73\x6E":_0xe915[223],"\x73\x64":_0xe915[224],"\x73\x69":_0xe915[225],"\x73\x6B":_0xe915[226],"\x73\x6C":_0xe915[227],"\x73\x6F":_0xe915[228],"\x65\x73":_0xe915[229],"\x73\x75":_0xe915[230],"\x73\x77":_0xe915[231],"\x73\x76":_0xe915[232],"\x74\x67":_0xe915[233],"\x74\x61":_0xe915[234],"\x74\x74":_0xe915[235],"\x74\x65":_0xe915[236],"\x74\x68":_0xe915[237],"\x74\x69":_0xe915[238],"\x74\x6F":_0xe915[239],"\x74\x72":_0xe915[240],"\x74\x6B":_0xe915[241],"\x74\x77":_0xe915[242],"\x75\x67":_0xe915[243],"\x75\x6B":_0xe915[244],"\x75\x72":_0xe915[245],"\x75\x7A":_0xe915[246],"\x76\x69":_0xe915[247],"\x63\x79":_0xe915[248],"\x78\x68":_0xe915[249],"\x79\x69":_0xe915[250],"\x79\x6F":_0xe915[251],"\x7A\x75":_0xe915[252]};
\ No newline at end of file
index a82388c..d727b71 100644 (file)
@@ -1 +1 @@
-var _0x4e14=["\x32\x2E\x30\x2E\x30\x2E\x30","\x4D\x53\x49\x45","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x4D\x53\x49\x45\x20\x36","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x76","\x6F","\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F","\x4F\x70\x65\x72\x61\x2F","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x34\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x33\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x32\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x31\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x30\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x31\x2E","\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F","\x43\x68\x72\x6F\x6D\x65\x2F","\x46\x69\x72\x65\x66\x6F\x78\x2F","\x46\x69\x72\x65\x66\x6F\x78\x2F\x31\x2E","\x46\x69\x72\x65\x66\x6F\x78\x2F\x32\x2E","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F\x31\x2E","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F\x32\x2E","\x53\x65\x61\x4D\x6F\x6E\x6B\x65\x79\x2F","\x53\x65\x61\x4D\x6F\x6E\x6B\x65\x79\x2F\x31\x2E","\x49\x63\x65\x61\x70\x65\x2F","\x49\x63\x65\x61\x70\x65\x2F\x31\x2E","\x53\x65\x61\x6D\x6F\x6E\x6B\x65\x79\x2F","\x47\x61\x6C\x65\x6F\x6E\x2F","\x45\x70\x69\x70\x68\x61\x6E\x79\x2F","\x47\x65\x63\x6B\x6F\x2F","\x43\x61\x6D\x69\x6E\x6F\x2F\x31\x2E","\x45\x70\x69\x70\x68\x61\x6E\x79\x2F\x32\x2E","\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x32\x2E","\x4D\x49\x43\x52\x4F\x53\x4F\x46\x54\x20\x49\x4E\x54\x45\x52\x4E\x45\x54\x20\x45\x58\x50\x4C\x4F\x52\x45\x52","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x61\x70\x70\x4E\x61\x6D\x65","\x4D\x41\x43\x49\x4E\x54\x4F\x53\x48","\x49\x50\x41\x44","\x49\x50\x4F\x44","\x49\x50\x48\x4F\x4E\x45","\x41\x4E\x44\x52\x4F\x49\x44","\x68\x74\x74\x70\x3A\x2F\x2F","\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x73\x3A\x2F\x2F","\x49\x53\x5F\x56\x4D\x4C","\x49\x53\x5F\x53\x56\x47","\x49\x53\x5F\x49\x45\x36","\x3C\x6C\x69\x6E\x6B\x20\x72\x65\x6C\x3D\x22","\x22\x20\x68\x72\x65\x66\x3D\x22","\x22\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x22\x49\x53\x4F\x2D\x38\x38\x35\x39\x2D\x31\x22\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x2F\x3E","\x77\x72\x69\x74\x65","\x6C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x61\x72\x73\x65\x74","\x49\x53\x4F\x2D\x38\x38\x35\x39\x2D\x31","\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x63\x73\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x68\x65\x61\x64","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65","\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22","\x22\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E","\x6C\x65\x6E\x67\x74\x68","\x6F\x62\x6A\x65\x63\x74\x73","\x6D\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x4C\x69\x73\x74","\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x4F\x50","\x49\x53\x5F\x4F\x54","\x43\x53\x53\x5F\x50\x52\x45\x46\x49\x58","\x4F","\x49\x53\x5F\x53\x46","\x49\x53\x5F\x47\x43","\x57\x65\x62\x6B\x69\x74","\x49\x53\x5F\x4D\x54","\x4D\x6F\x7A","\x49\x53\x5F\x49\x45","\x6D\x73","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x2E\x74\x78\x74","\x2F","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x62\x61\x73\x65\x50\x61\x74\x68","\x2E","\x69\x6D\x61\x67\x65\x42\x61\x73\x65\x50\x61\x74\x68","\x2F\x69\x6D\x61\x67\x65\x73","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x75\x73\x65\x72\x4C\x61\x6E\x67\x75\x61\x67\x65","\x64\x65\x66\x61\x75\x6C\x74\x4C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x63\x73\x73\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2E\x63\x73\x73","\x6C\x61\x6E\x67\x75\x61\x67\x65\x73","\x75\x72\x6E\x3A\x73\x63\x68\x65\x6D\x61\x73\x2D\x6D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2D\x63\x6F\x6D\x3A\x76\x6D\x6C","\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C","\x61\x64\x64","\x6E\x61\x6D\x65\x73\x70\x61\x63\x65\x73","\x75\x72\x6E\x3A\x73\x63\x68\x65\x6D\x61\x73\x2D\x6D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2D\x63\x6F\x6D\x3A\x6F\x66\x66\x69\x63\x65\x3A\x6F\x66\x66\x69\x63\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65\x53\x68\x65\x65\x74","\x63\x73\x73\x54\x65\x78\x74","\x76\x5C\x3A\x2A\x7B\x62\x65\x68\x61\x76\x69\x6F\x72\x3A\x75\x72\x6C\x28\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C\x29\x7D\x6F\x5C\x3A\x2A\x7B\x62\x65\x68\x61\x76\x69\x6F\x72\x3A\x75\x72\x6C\x28\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C\x29\x7D","\x2F\x63\x73\x73\x2F\x65\x78\x70\x6C\x6F\x72\x65\x72\x2E\x63\x73\x73","\x6F\x6E\x75\x6E\x6C\x6F\x61\x64","\x64\x69\x73\x70\x6F\x73\x65","\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6E\x74","\x43\x6F\x6E\x73\x6F\x6C\x65","","\x77\x69\x6E\x64\x6F\x77","\x62\x6F\x64\x79","\x63\x6F\x6E\x73\x6F\x6C\x65\x4E\x61\x6D\x65","\x20\x2D\x20\x6D\x78\x47\x72\x61\x70\x68\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x74\x61\x62\x6C\x65","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x74\x62\x6F\x64\x79","\x74\x72","\x74\x64","\x76\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x73\x74\x79\x6C\x65","\x74\x6F\x70","\x74\x65\x78\x74\x61\x72\x65\x61","\x72\x65\x61\x64\x4F\x6E\x6C\x79","\x74\x72\x75\x65","\x72\x65\x73\x69\x7A\x65","\x6E\x6F\x6E\x65","\x76\x61\x6C\x75\x65","\x62\x75\x66\x66\x65\x72","\x49\x53\x5F\x4E\x53","\x42\x61\x63\x6B\x43\x6F\x6D\x70\x61\x74","\x63\x6F\x6D\x70\x61\x74\x4D\x6F\x64\x65","\x39\x39\x25","\x33\x30\x70\x78","\x49\x6E\x66\x6F","\x69\x6E\x66\x6F","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x44\x4F\x4D","\x67\x65\x74\x49\x6E\x6E\x65\x72\x48\x74\x6D\x6C","\x64\x65\x62\x75\x67","\x54\x72\x61\x63\x65","\x54\x52\x41\x43\x45","\x54\x72\x61\x63\x69\x6E\x67\x20\x65\x6E\x61\x62\x6C\x65\x64","\x54\x72\x61\x63\x69\x6E\x67\x20\x64\x69\x73\x61\x62\x6C\x65\x64","\x43\x6F\x70\x79","\x63\x6F\x70\x79","\x61\x6C\x65\x72\x74","\x53\x68\x6F\x77","\x70\x6F\x70\x75\x70","\x43\x6C\x65\x61\x72","\x6E\x75\x6D\x62\x65\x72","\x69\x6E\x6E\x65\x72\x57\x69\x64\x74\x68","\x69\x6E\x6E\x65\x72\x48\x65\x69\x67\x68\x74","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x6D\x61\x78","\x73\x65\x74\x4D\x61\x78\x69\x6D\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x53\x63\x72\x6F\x6C\x6C\x61\x62\x6C\x65","\x73\x65\x74\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x43\x6C\x6F\x73\x61\x62\x6C\x65","\x64\x65\x73\x74\x72\x6F\x79\x4F\x6E\x43\x6C\x6F\x73\x65","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x78","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x39\x32\x70\x78","\x77\x72\x69\x74\x65\x6C\x6E","\x62\x75\x74\x74\x6F\x6E","\x63\x6C\x69\x63\x6B","\x69\x73\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x56\x69\x73\x69\x62\x6C\x65","\x69\x6E\x69\x74","\x45\x6E\x74\x65\x72\x69\x6E\x67\x20","\x67\x65\x74\x54\x69\x6D\x65","\x20\x28","\x20\x6D\x73\x29","\x4C\x65\x61\x76\x69\x6E\x67\x20","\x44\x45\x42\x55\x47","\x61\x70\x70\x6C\x79","\x57\x41\x52\x4E","\x20","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x35","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x68\x69\x64\x64\x65\x6E","\x76\x69\x73\x69\x62\x6C\x65","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x0A","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x49\x64","\x6F\x62\x6A\x65\x63\x74","\x46\x49\x45\x4C\x44\x5F\x4E\x41\x4D\x45","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x67\x65\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E\x4E\x61\x6D\x65","\x23","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x6C\x65\x61\x72","\x6D\x61\x70","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x65\x74","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65","\x67\x65\x74\x4B\x65\x79\x73","\x70\x75\x73\x68","\x67\x65\x74\x56\x61\x6C\x75\x65\x73","\x76\x69\x73\x69\x74","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2D","\x6C\x6F\x61\x64\x53\x70\x65\x63\x69\x61\x6C\x42\x75\x6E\x64\x6C\x65","\x5F","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x4E\x4F\x4E\x45","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x6C\x6F\x61\x64","\x69\x73\x52\x65\x61\x64\x79","\x67\x65\x74\x54\x65\x78\x74","\x70\x61\x72\x73\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x42\x75\x6E\x64\x6C\x65","\x73\x70\x6C\x69\x74","\x63\x68\x61\x72\x41\x74","\x3D","\x63\x68\x61\x72\x43\x6F\x64\x65\x41\x74","\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x45\x6E\x63\x6F\x64\x65\x64","\x25","\x72\x65\x70\x6C\x61\x63\x65","\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x7B","\x7D","\x6A\x6F\x69\x6E","\x78","\x79","\x65\x71\x75\x61\x6C\x73","\x63\x6C\x6F\x6E\x65","\x63\x61\x6C\x6C","\x73\x65\x74\x52\x65\x63\x74","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x6D\x69\x6E","\x67\x72\x6F\x77","\x67\x65\x74\x50\x6F\x69\x6E\x74","\x63\x65\x6C\x6C","\x63\x68\x69\x6C\x64","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x69\x73\x45\x64\x67\x65","\x6D\x6F\x64\x65\x6C","\x6E\x6F\x64\x65","\x73\x68\x61\x70\x65","\x73\x65\x74\x4F\x70\x61\x63\x69\x74\x79","\x73\x63\x61\x6C\x65","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x72\x65\x76\x69\x6F\x75\x73","\x72\x65\x64\x72\x61\x77","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x61\x73\x63\x61\x64\x65\x4F\x70\x61\x63\x69\x74\x79","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x67\x65\x74\x45\x64\x67\x65\x73","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x65\x72\x72\x6F\x72","\x63\x6C\x6F\x73\x65","\x2F\x65\x72\x72\x6F\x72\x2E\x67\x69\x66","\x63\x75\x72\x73\x6F\x72","\x63\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65\x43\x75\x72\x73\x6F\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x53\x74\x79\x6C\x65","\x67\x65\x74\x43\x6F\x6D\x70\x75\x74\x65\x64\x53\x74\x79\x6C\x65","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x53\x74\x79\x6C\x65","\x73\x63\x72\x6F\x6C\x6C","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x76\x61\x72\x20\x5F\x6D\x78\x4A\x61\x76\x61\x53\x63\x72\x69\x70\x74\x45\x78\x70\x72\x65\x73\x73\x69\x6F\x6E\x3D","\x6D\x65\x73\x73\x61\x67\x65","\x20\x77\x68\x69\x6C\x65\x20\x65\x76\x61\x6C\x75\x61\x74\x69\x6E\x67\x20","\x77\x61\x72\x6E","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x66\x69\x6E\x64\x4E\x6F\x64\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x66\x69\x6E\x64\x4E\x6F\x64\x65\x42\x79\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x2F\x2F\x2A\x5B\x40","\x3D\x27","\x27\x5D","\x73\x65\x6C\x65\x63\x74\x53\x69\x6E\x67\x6C\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x69\x74\x65\x72\x61\x74\x65\x4E\x65\x78\x74","\x65\x76\x61\x6C\x75\x61\x74\x65","\x6E\x61\x6D\x65","\x28","\x73\x70\x6C\x69\x63\x65","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x41\x63\x74\x69\x76\x65\x58\x4F\x62\x6A\x65\x63\x74","\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x44\x4F\x4D","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x61\x73\x79\x6E\x63","\x66\x61\x6C\x73\x65","\x6C\x6F\x61\x64\x58\x4D\x4C","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x70\x61\x72\x73\x65\x46\x72\x6F\x6D\x53\x74\x72\x69\x6E\x67","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x65\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x52\x61\x6E\x67\x65\x73","\x20\x20","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x54\x45\x58\x54","\x6E\x6F\x64\x65\x56\x61\x6C\x75\x65","\x3C","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x3D\x22","\x22","\x3E\x0A","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x3C\x2F","\x2F\x3E\x0A","\x70\x72\x65\x76\x69\x6F\x75\x73\x53\x69\x62\x6C\x69\x6E\x67","\x67\x65\x74\x54\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74","\x74\x72\x69\x6D","\x26\x61\x6D\x70\x3B","\x26\x71\x75\x6F\x74\x3B","\x26\x23\x33\x39\x3B","\x26\x6C\x74\x3B","\x26\x67\x74\x3B","\x26\x23\x78\x61\x3B","\x74\x61\x67\x55\x72\x6E","\x78\x6D\x6C","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x73\x65\x72\x69\x61\x6C\x69\x7A\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x3E","\x6F\x75\x74\x65\x72\x48\x54\x4D\x4C","\x2F\x3E","\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4E\x6F\x64\x65","\x62\x72","\x70","\x66\x69\x6C\x74\x65\x72","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x41\x6C\x70\x68\x61\x49\x6D\x61\x67\x65\x4C\x6F\x61\x64\x65\x72\x28\x73\x72\x63\x3D\x27","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66\x27\x2C\x20\x73\x69\x7A\x69\x6E\x67\x4D\x65\x74\x68\x6F\x64\x3D\x27\x73\x63\x61\x6C\x65\x27\x29","\x65\x78\x65\x63\x75\x74\x65","\x73\x70\x61\x6E","\x63\x6F\x6C\x6F\x72","\x62\x6C\x75\x65","\x74\x65\x78\x74\x44\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x70\x6F\x69\x6E\x74\x65\x72","\x70\x61\x64\x64\x69\x6E\x67\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x55\x6E\x69\x76\x65\x72\x73\x61\x6C\x58\x50\x43\x6F\x6E\x6E\x65\x63\x74","\x65\x6E\x61\x62\x6C\x65\x50\x72\x69\x76\x69\x6C\x65\x67\x65","\x50\x72\x69\x76\x69\x6C\x65\x67\x65\x4D\x61\x6E\x61\x67\x65\x72","\x73\x65\x63\x75\x72\x69\x74\x79","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x72\x65\x61\x64\x20\x66\x69\x6C\x65\x20\x64\x65\x6E\x69\x65\x64\x2E","\x6E\x73\x49\x4C\x6F\x63\x61\x6C\x46\x69\x6C\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x73","\x63\x72\x65\x61\x74\x65\x49\x6E\x73\x74\x61\x6E\x63\x65","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x66\x69\x6C\x65\x2F\x6C\x6F\x63\x61\x6C\x3B\x31","\x63\x6C\x61\x73\x73\x65\x73","\x69\x6E\x69\x74\x57\x69\x74\x68\x50\x61\x74\x68","\x65\x78\x69\x73\x74\x73","\x46\x69\x6C\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E","\x6E\x73\x49\x46\x69\x6C\x65\x49\x6E\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x66\x69\x6C\x65\x2D\x69\x6E\x70\x75\x74\x2D\x73\x74\x72\x65\x61\x6D\x3B\x31","\x6E\x73\x49\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x49\x6E\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x69\x6E\x70\x75\x74\x73\x74\x72\x65\x61\x6D\x3B\x31","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x65\x61\x64","\x53\x63\x72\x69\x70\x74\x69\x6E\x67\x2E\x46\x69\x6C\x65\x53\x79\x73\x74\x65\x6D\x4F\x62\x6A\x65\x63\x74","\x72\x65\x61\x64\x41\x6C\x6C","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x77\x72\x69\x74\x65\x20\x66\x69\x6C\x65\x20\x64\x65\x6E\x69\x65\x64\x2E","\x63\x72\x65\x61\x74\x65","\x6E\x73\x49\x46\x69\x6C\x65\x4F\x75\x74\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x66\x69\x6C\x65\x2D\x6F\x75\x74\x70\x75\x74\x2D\x73\x74\x72\x65\x61\x6D\x3B\x31","\x66\x6C\x75\x73\x68","\x69\x66\x72\x61\x6D\x65","\x73\x72\x63","\x63\x6F\x6E\x74\x65\x6E\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6F\x70\x65\x6E","\x66\x6F\x63\x75\x73","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x73\x61\x76\x65\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x20\x64\x65\x6E\x69\x65\x64\x2E","\x64\x6F\x63\x75\x6D\x65\x6E\x74","\x63\x6F\x6E\x74\x65\x6E\x74\x57\x69\x6E\x64\x6F\x77","\x53\x61\x76\x65\x41\x73","\x65\x78\x65\x63\x43\x6F\x6D\x6D\x61\x6E\x64","\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x44\x61\x74\x61","\x54\x65\x78\x74","\x73\x65\x74\x44\x61\x74\x61","\x6E\x73\x49\x43\x6C\x69\x70\x62\x6F\x61\x72\x64","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x77\x69\x64\x67\x65\x74\x2F\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x3B\x31","\x6E\x73\x49\x54\x72\x61\x6E\x73\x66\x65\x72\x61\x62\x6C\x65","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x77\x69\x64\x67\x65\x74\x2F\x74\x72\x61\x6E\x73\x66\x65\x72\x61\x62\x6C\x65\x3B\x31","\x74\x65\x78\x74\x2F\x75\x6E\x69\x63\x6F\x64\x65","\x61\x64\x64\x44\x61\x74\x61\x46\x6C\x61\x76\x6F\x72","\x6E\x73\x49\x53\x75\x70\x70\x6F\x72\x74\x73\x53\x74\x72\x69\x6E\x67","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x73\x75\x70\x70\x6F\x72\x74\x73\x2D\x73\x74\x72\x69\x6E\x67\x3B\x31","\x64\x61\x74\x61","\x73\x65\x74\x54\x72\x61\x6E\x73\x66\x65\x72\x44\x61\x74\x61","\x6B\x47\x6C\x6F\x62\x61\x6C\x43\x6C\x69\x70\x62\x6F\x61\x72\x64","\x47\x45\x54","\x73\x65\x6E\x64","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x20\x3D\x20\x5B\x6E\x75\x6C\x6C\x5D\x0A","\x20\x3D\x3E\x20\x5B\x46\x75\x6E\x63\x74\x69\x6F\x6E\x5D\x0A","\x20\x3D\x3E\x20\x5B","\x5D\x0A","\x20\x3D\x20","\x50\x49","\x61\x62\x73","\x63\x6F\x73","\x73\x69\x6E","\x73\x71\x72\x74","\x61\x74\x61\x6E\x32","\x63\x65\x69\x6C","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x67\x65\x74\x56\x61\x6C\x75\x65","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x4E\x4F\x4E\x45","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x4E\x4F\x52\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x57\x45\x53\x54","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x53\x4F\x55\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x45\x41\x53\x54","\x61\x62\x73\x6F\x6C\x75\x74\x65\x50\x6F\x69\x6E\x74\x73","\x70\x74\x53\x65\x67\x44\x69\x73\x74\x53\x71","\x76\x69\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x73","\x6F\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x53\x63\x72\x6F\x6C\x6C\x4F\x72\x69\x67\x69\x6E","\x67\x65\x74\x4F\x66\x66\x73\x65\x74","\x5E\x5B","\x5C\x73","\x5D\x2B","\x67","\x5B","\x5D\x2B\x24","\x72\x74\x72\x69\x6D","\x6C\x74\x72\x69\x6D","\x30\x78","\x30\x58","\x61\x6E\x69\x6D\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x73","\x66\x61\x64\x65\x4F\x75\x74","\x69\x73\x56\x6D\x6C","\x61\x6C\x70\x68\x61\x28\x6F\x70\x61\x63\x69\x74\x79\x3D","\x29","\x6F\x70\x61\x63\x69\x74\x79","\x43\x53\x53\x31\x43\x6F\x6D\x70\x61\x74","\x56\x4D\x4C\x5F\x50\x52\x45\x46\x49\x58","\x3A\x69\x6D\x61\x67\x65","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30","\x63\x6F\x6D\x70\x61\x72\x65","\x73\x6F\x72\x74","\x3B","\x69\x6E\x64\x65\x78\x4F\x66\x53\x74\x79\x6C\x65\x6E\x61\x6D\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x65\x74\x53\x74\x79\x6C\x65\x46\x6C\x61\x67","\x3D\x30","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x64\x69\x76","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x72\x6F\x75\x6E\x64","\x6C\x69\x6E\x65\x48\x65\x69\x67\x68\x74","\x4C\x49\x4E\x45\x5F\x48\x45\x49\x47\x48\x54","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x7A\x6F\x6F\x6D","\x31","\x67\x65\x74\x52\x6F\x6F\x74","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x69\x73\x45\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x64\x72\x61\x77\x50\x61\x6E\x65","\x6F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x4E\x53","\x63\x61\x6E\x76\x61\x73","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x67\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x65\x6E\x63\x6F\x64\x65","\x64\x65\x73\x74\x72\x6F\x79","\x50\x41\x47\x45\x5F\x46\x4F\x52\x4D\x41\x54\x5F\x41\x34\x5F\x50\x4F\x52\x54\x52\x41\x49\x54","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x63\x61\x6C\x65","\x66\x6C\x6F\x6F\x72","\x3C\x68\x74\x6D\x6C\x3E\x3C\x68\x65\x61\x64\x3E","\x62\x61\x73\x65","\x3C\x73\x74\x79\x6C\x65\x3E","\x73\x74\x79\x6C\x65\x53\x68\x65\x65\x74\x73","\x3C\x2F\x73\x74\x79\x6C\x65\x3E\x3C\x2F\x68\x65\x61\x64\x3E","\x3C\x62\x6F\x64\x79\x3E","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x3C\x2F\x62\x6F\x64\x79\x3E","\x3C\x68\x74\x6D\x6C\x3E","\x44\x49\x56","\x3C\x68\x74\x6D\x6C","\x3C\x68\x65\x61\x64\x3E","\x67\x65\x74\x4F\x75\x74\x65\x72\x48\x74\x6D\x6C","\x3C\x2F\x68\x65\x61\x64\x3E","\x3C\x2F\x68\x74\x6D\x6C\x3E","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x68\x6F\x77","\x70\x72\x69\x6E\x74","\x36\x33\x36\x70\x78","\x34\x36\x30\x70\x78","\x70\x72\x65","\x26\x6E\x62\x73\x70\x3B","\x3C\x62\x72\x3E","\x50\x6F\x70\x75\x70\x20\x57\x69\x6E\x64\x6F\x77","\x3C\x70\x72\x65\x3E","\x3C\x2F\x70\x72\x65","\x70\x61\x64\x64\x69\x6E\x67","\x32\x30\x70\x78","\x65\x72\x72\x6F\x72\x49\x6D\x61\x67\x65","\x76\x61\x6C\x69\x67\x6E","\x62\x6F\x74\x74\x6F\x6D","\x6D\x69\x64\x64\x6C\x65","\xA0","\x65\x72\x72\x6F\x72\x52\x65\x73\x6F\x75\x72\x63\x65","\x66\x6C\x6F\x61\x74\x3A\x72\x69\x67\x68\x74","\x63\x6C\x6F\x73\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x72\x61\x67\x4F\x66\x66\x73\x65\x74","\x54\x4F\x4F\x4C\x54\x49\x50\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4F\x46\x46\x53\x45\x54","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74\x73","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x46\x6F\x72\x45\x76\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x45\x6C\x65\x6D\x65\x6E\x74","\x65\x78\x61\x63\x74","\x66\x61\x73\x74\x65\x72","\x66\x61\x73\x74\x65\x73\x74","\x73\x76\x67","\x76\x6D\x6C","\x6D\x69\x78\x65\x64\x48\x74\x6D\x6C","\x70\x72\x65\x66\x65\x72\x48\x74\x6D\x6C","\x73\x74\x72\x69\x63\x74\x48\x74\x6D\x6C","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x32\x30\x30\x30\x2F\x73\x76\x67","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x6C\x69\x6E\x6B","\x67\x72\x61\x79","\x23\x30\x30\x46\x46\x30\x30","\x23\x46\x46\x30\x30\x30\x30","\x6D\x6F\x76\x65","\x64\x65\x66\x61\x75\x6C\x74","\x23\x30\x30\x30\x30\x46\x46","\x23\x30\x30\x39\x39\x46\x46","\x62\x6C\x61\x63\x6B","\x79\x65\x6C\x6C\x6F\x77","\x23\x30\x30\x46\x46\x46\x46","\x23\x30\x30\x33\x33\x46\x46","\x41\x72\x69\x61\x6C\x2C\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x50\x6F\x72\x74","\x74\x61\x72\x67\x65\x74\x50\x6F\x72\x74","\x70\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C","\x65\x78\x69\x74\x58","\x65\x78\x69\x74\x59","\x65\x78\x69\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x65\x6E\x74\x72\x79\x58","\x65\x6E\x74\x72\x79\x59","\x65\x6E\x74\x72\x79\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x66\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74\x44\x69\x72\x65\x63\x74\x69\x6F\x6E","\x73\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x73\x65\x70\x61\x72\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x73\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x61\x6C\x69\x67\x6E","\x6C\x61\x62\x65\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x65\x72\x74\x69\x63\x61\x6C\x4C\x61\x62\x65\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x6D\x61\x67\x65\x41\x73\x70\x65\x63\x74","\x69\x6D\x61\x67\x65\x41\x6C\x69\x67\x6E","\x69\x6D\x61\x67\x65\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x67\x6C\x61\x73\x73","\x69\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65\x57\x69\x64\x74\x68","\x69\x6D\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x69\x6D\x61\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x69\x6D\x61\x67\x65\x42\x6F\x72\x64\x65\x72","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x6E\x6F\x4C\x61\x62\x65\x6C","\x6E\x6F\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x61\x62\x65\x6C\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x6C\x61\x62\x65\x6C\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x6C\x61\x62\x65\x6C\x50\x61\x64\x64\x69\x6E\x67","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x68\x61\x70\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x49\x6D\x61\x67\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x47\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x70\x61\x63\x69\x6E\x67","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x57\x69\x64\x74\x68","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x48\x65\x69\x67\x68\x74","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x44\x69\x72\x65\x63\x74\x69\x6F\x6E","\x73\x68\x61\x64\x6F\x77","\x73\x65\x67\x6D\x65\x6E\x74","\x65\x6E\x64\x41\x72\x72\x6F\x77","\x73\x74\x61\x72\x74\x41\x72\x72\x6F\x77","\x65\x6E\x64\x53\x69\x7A\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x69\x6E\x65","\x65\x6E\x64\x46\x69\x6C\x6C","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x64\x61\x73\x68\x65\x64","\x64\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x61\x72\x63\x53\x69\x7A\x65","\x73\x6D\x6F\x6F\x74\x68","\x73\x6F\x75\x72\x63\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x70\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x73\x70\x61\x63\x69\x6E\x67","\x73\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x73\x70\x61\x63\x69\x6E\x67\x4C\x65\x66\x74","\x73\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x73\x70\x61\x63\x69\x6E\x67\x52\x69\x67\x68\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x65\x6C\x62\x6F\x77","\x66\x6F\x6E\x74\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x66\x6F\x6C\x64\x61\x62\x6C\x65","\x65\x64\x69\x74\x61\x62\x6C\x65","\x62\x65\x6E\x64\x61\x62\x6C\x65","\x6D\x6F\x76\x61\x62\x6C\x65","\x72\x65\x73\x69\x7A\x61\x62\x6C\x65","\x63\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x64\x65\x6C\x65\x74\x61\x62\x6C\x65","\x65\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x6F\x6F\x70\x53\x74\x79\x6C\x65","\x72\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x58","\x72\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x59","\x72\x65\x63\x74\x61\x6E\x67\x6C\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x64\x6F\x75\x62\x6C\x65\x45\x6C\x6C\x69\x70\x73\x65","\x72\x68\x6F\x6D\x62\x75\x73","\x6C\x69\x6E\x65","\x61\x72\x72\x6F\x77","\x6C\x61\x62\x65\x6C","\x63\x79\x6C\x69\x6E\x64\x65\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x61\x63\x74\x6F\x72","\x63\x6C\x6F\x75\x64","\x74\x72\x69\x61\x6E\x67\x6C\x65","\x68\x65\x78\x61\x67\x6F\x6E","\x63\x6C\x61\x73\x73\x69\x63","\x62\x6C\x6F\x63\x6B","\x6F\x76\x61\x6C","\x64\x69\x61\x6D\x6F\x6E\x64","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x63\x65\x6E\x74\x65\x72","\x72\x69\x67\x68\x74","\x6E\x6F\x72\x74\x68","\x73\x6F\x75\x74\x68","\x65\x61\x73\x74","\x77\x65\x73\x74","\x76\x65\x72\x74\x69\x63\x61\x6C","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x6F\x6F\x70\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x73\x69\x64\x65\x54\x6F\x53\x69\x64\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x74\x6F\x70\x54\x6F\x42\x6F\x74\x74\x6F\x6D\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x65\x6C\x6C\x69\x70\x73\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x65\x63\x74\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x68\x6F\x6D\x62\x75\x73\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x74\x72\x69\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x63\x6F\x6E\x73\x75\x6D\x65\x64","\x67\x65\x74\x4E\x61\x6D\x65","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x63\x6F\x6E\x73\x75\x6D\x65","\x65\x76\x74","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x69\x73\x53\x6F\x75\x72\x63\x65","\x67\x65\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x59","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x72\x65\x74\x75\x72\x6E\x56\x61\x6C\x75\x65","\x73\x65\x74\x45\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x65\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x65\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x65\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x67\x65\x74\x45\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x6F\x6E","\x66","\x72\x65\x6D\x6F\x76\x65\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6E\x74","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x75\x63\x68\x73\x74\x61\x72\x74","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x72\x65\x6C\x65\x61\x73\x65","\x65\x76\x65\x6E\x74","\x64\x65\x74\x61\x69\x6C","\x77\x68\x65\x65\x6C\x44\x65\x6C\x74\x61","\x6D\x6F\x75\x73\x65\x77\x68\x65\x65\x6C","\x44\x4F\x4D\x4D\x6F\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B","\x73\x72\x63\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x61\x72\x67\x65\x74","\x69\x73\x52\x69\x67\x68\x74\x4D\x6F\x75\x73\x65\x42\x75\x74\x74\x6F\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x73\x68\x69\x66\x74\x4B\x65\x79","\x61\x6C\x74\x4B\x65\x79","\x63\x74\x72\x6C\x4B\x65\x79","\x6D\x65\x74\x61\x4B\x65\x79","\x74\x6F\x75\x63\x68\x65\x73","\x63\x68\x61\x6E\x67\x65\x64\x54\x6F\x75\x63\x68\x65\x73","\x63\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x4D\x61\x69\x6E\x45\x76\x65\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x59","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x63\x61\x6E\x63\x65\x6C\x42\x75\x62\x62\x6C\x65","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x63\x74\x69\x76\x61\x74\x65","\x72\x65\x73\x69\x7A\x65\x53\x74\x61\x72\x74","\x72\x65\x73\x69\x7A\x65\x45\x6E\x64","\x6D\x6F\x76\x65\x53\x74\x61\x72\x74","\x6D\x6F\x76\x65\x45\x6E\x64","\x70\x61\x6E\x53\x74\x61\x72\x74","\x70\x61\x6E","\x70\x61\x6E\x45\x6E\x64","\x6D\x69\x6E\x69\x6D\x69\x7A\x65","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x6D\x61\x78\x69\x6D\x69\x7A\x65","\x68\x69\x64\x65","\x72\x65\x66\x72\x65\x73\x68","\x73\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74","\x66\x69\x72\x65\x64","\x72\x65\x63\x65\x69\x76\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x75\x73\x70\x65\x6E\x64","\x72\x65\x73\x75\x6D\x65","\x6D\x61\x72\x6B","\x73\x65\x73\x73\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x6F\x73\x74","\x73\x61\x76\x65","\x62\x65\x66\x6F\x72\x65\x41\x64\x64\x56\x65\x72\x74\x65\x78","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x61\x66\x74\x65\x72\x41\x64\x64\x56\x65\x72\x74\x65\x78","\x64\x6F\x6E\x65","\x65\x78\x65\x63\x75\x74\x65\x64","\x73\x74\x61\x72\x74\x45\x64\x69\x74","\x65\x6E\x64\x45\x64\x69\x74","\x62\x65\x66\x6F\x72\x65\x55\x6E\x64\x6F","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x68\x61\x6E\x67\x65","\x6E\x6F\x74\x69\x66\x79","\x6C\x61\x79\x6F\x75\x74\x43\x65\x6C\x6C\x73","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x75\x70","\x64\x6F\x77\x6E","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x41\x64\x64\x65\x64","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x4D\x6F\x76\x65\x64","\x72\x65\x73\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x65\x64","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x54\x6F\x67\x67\x6C\x65\x64","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x4F\x72\x64\x65\x72\x65\x64","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x52\x65\x6D\x6F\x76\x65\x64","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x46\x6F\x6C\x64\x65\x64","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67","\x61\x64\x64\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x4F\x76\x65\x72\x6C\x61\x79","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x73\x63\x61\x70\x65","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B","\x73\x74\x61\x72\x74","\x72\x65\x73\x65\x74","\x75\x72\x6C","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x74\x68\x6F\x64","\x50\x4F\x53\x54","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x62\x69\x6E\x61\x72\x79","\x72\x65\x71\x75\x65\x73\x74","\x69\x73\x42\x69\x6E\x61\x72\x79","\x73\x65\x74\x42\x69\x6E\x61\x72\x79","\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x58\x6D\x6C","\x72\x65\x73\x70\x6F\x6E\x73\x65\x58\x4D\x4C","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73","\x58\x4D\x4C\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74","\x6F\x76\x65\x72\x72\x69\x64\x65\x4D\x69\x6D\x65\x54\x79\x70\x65","\x74\x65\x78\x74\x2F\x70\x6C\x61\x69\x6E\x3B\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x78\x2D\x75\x73\x65\x72\x2D\x64\x65\x66\x69\x6E\x65\x64","\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x48\x54\x54\x50","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x66\x6F\x72\x6D","\x61\x63\x74\x69\x6F\x6E","\x26","\x73\x75\x62\x6D\x69\x74","\x63\x65\x6C\x6C\x73","\x69\x6E\x73\x65\x72\x74\x43\x6F\x75\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x67\x65\x74\x45\x78\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x53\x54\x45\x50\x53\x49\x5A\x45","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x61\x78\x69\x6D\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x69\x6E\x69\x6D\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x4D\x69\x6E\x69\x6D\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x54\x69\x74\x6C\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x70\x6C\x61\x63\x65\x43\x68\x69\x6C\x64","\x63\x6C\x6F\x73\x65\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x6F\x73\x65\x2E\x67\x69\x66","\x6D\x69\x6E\x69\x6D\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6D\x69\x6E\x69\x6D\x69\x7A\x65\x2E\x67\x69\x66","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65\x2E\x67\x69\x66","\x6D\x61\x78\x69\x6D\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6D\x61\x78\x69\x6D\x69\x7A\x65\x2E\x67\x69\x66","\x72\x65\x73\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x72\x65\x73\x69\x7A\x65\x2E\x67\x69\x66","\x6D\x69\x6E\x69\x6D\x75\x6D\x53\x69\x7A\x65","\x74\x69\x74\x6C\x65","\x6D\x78\x57\x69\x6E\x64\x6F\x77","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x54\x69\x74\x6C\x65","\x50\x61\x6E\x65","\x63\x6F\x6E\x74\x65\x6E\x74\x57\x72\x61\x70\x70\x65\x72","\x61\x63\x74\x69\x76\x65\x57\x69\x6E\x64\x6F\x77","\x7A\x49\x6E\x64\x65\x78","\x70\x72\x65\x76\x69\x6F\x75\x73\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x69\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x32\x70\x78","\x6E\x77\x2D\x72\x65\x73\x69\x7A\x65","\x73\x65\x74\x53\x69\x7A\x65","\x72\x65\x6D\x6F\x76\x65\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x67\x65\x74\x4D\x69\x6E\x69\x6D\x75\x6D\x53\x69\x7A\x65","\x4D\x69\x6E\x69\x6D\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E\x52\x69\x67\x68\x74","\x31\x70\x78","\x4E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x4D\x61\x78\x69\x6D\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x30\x70\x78","\x73\x65\x74\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x63\x6C\x6F\x73\x65\x49\x6D\x67","\x43\x6C\x6F\x73\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x73\x65\x74\x49\x6D\x61\x67\x65","\x34\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x2D\x32\x70\x78","\x67\x65\x74\x54\x61\x62\x6C\x65","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E\x73","\x6F\x6B","\x4F\x4B","\x63\x61\x6E\x63\x65\x6C","\x43\x61\x6E\x63\x65\x6C","\x61\x64\x64\x54\x65\x78\x74","\x69\x6E\x70\x75\x74","\x74\x65\x78\x74","\x61\x64\x64\x46\x69\x65\x6C\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x62\x6F\x78","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x63\x68\x65\x63\x6B\x65\x64","\x61\x64\x64\x54\x65\x78\x74\x61\x72\x65\x61","\x72\x6F\x77\x73","\x61\x64\x64\x43\x6F\x6D\x62\x6F","\x6D\x75\x6C\x74\x69\x70\x6C\x65","\x61\x64\x64\x4F\x70\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64","\x72\x65\x73\x69\x7A\x65\x57\x69\x64\x74\x68","\x72\x65\x73\x69\x7A\x65\x48\x65\x69\x67\x68\x74","\x68\x61\x6E\x64\x6C\x69\x6E\x67\x52\x65\x73\x69\x7A\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x57\x69\x64\x74\x68","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x65\x6C\x65\x6D\x65\x6E\x74","\x64\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74","\x70\x72\x65\x76\x69\x65\x77\x45\x6C\x65\x6D\x65\x6E\x74","\x65\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x63\x75\x72\x72\x65\x6E\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x63\x75\x72\x72\x65\x6E\x74\x50\x6F\x69\x6E\x74","\x63\x75\x72\x72\x65\x6E\x74\x47\x75\x69\x64\x65","\x63\x75\x72\x72\x65\x6E\x74\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74\x5A\x49\x6E\x64\x65\x78","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74\x4F\x70\x61\x63\x69\x74\x79","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x73\x74\x61\x72\x74\x44\x72\x61\x67","\x6D\x6F\x75\x73\x65\x55\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x74\x6F\x70\x44\x72\x61\x67","\x67\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x73\x45\x76\x65\x6E\x74","\x64\x72\x61\x67\x45\x78\x69\x74","\x64\x72\x61\x67\x45\x6E\x74\x65\x72","\x64\x72\x61\x67\x4F\x76\x65\x72","\x64\x72\x6F\x70","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x67\x65\x74\x47\x75\x69\x64\x65\x53\x74\x61\x74\x65\x73","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x61\x75\x74\x6F\x45\x78\x74\x65\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x50\x6F\x69\x6E\x74\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x68\x69\x67\x68\x6C\x69\x67\x68\x74","\x33","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x6E\x61\x70","\x70\x72\x65\x76\x69\x65\x77\x4F\x66\x66\x73\x65\x74","\x6E\x6F\x52\x65\x73\x65\x74","\x75\x70\x64\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x4D\x6F\x64\x65","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x6F\x64\x65","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x49\x74\x65\x6D","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x6D\x65\x6E\x75","\x63\x75\x72\x72\x65\x6E\x74\x49\x6D\x67","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x53\x65\x6C\x65\x63\x74\x65\x64","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6D\x62\x6F\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6D\x62\x6F","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x43\x6F\x6D\x62\x6F","\x73\x65\x6C\x65\x63\x74\x65\x64\x49\x6E\x64\x65\x78","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x53\x77\x69\x74\x63\x68\x4D\x6F\x64\x65","\x69\x6E\x69\x74\x69\x61\x6C\x43\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x61\x6C\x74\x49\x63\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x4D\x6F\x64\x65","\x64\x65\x66\x61\x75\x6C\x74\x4D\x6F\x64\x65","\x73\x65\x6C\x65\x63\x74\x4D\x6F\x64\x65","\x61\x64\x64\x4D\x6F\x64\x65","\x64\x65\x66\x61\x75\x6C\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x72\x65\x73\x65\x74\x4D\x6F\x64\x65","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x61\x64\x64\x42\x72\x65\x61\x6B","\x61\x64\x64\x4C\x69\x6E\x65","\x68\x72","\x36\x70\x78","\x75\x72\x6C\x49\x6E\x69\x74","\x75\x72\x6C\x50\x6F\x6C\x6C","\x75\x72\x6C\x4E\x6F\x74\x69\x66\x79","\x63\x6F\x64\x65\x63","\x6C\x6F\x6F\x6B\x75\x70","\x65\x64\x69\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x73\x75\x73\x70\x65\x6E\x64\x65\x64","\x3C\x65\x64\x69\x74\x3E","\x63\x68\x61\x6E\x67\x65\x73","\x75\x6E\x64\x6F\x6E\x65","\x65\x6E\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65\x73","\x3C\x2F\x65\x64\x69\x74\x3E","\x6C\x69\x6E\x65\x66\x65\x65\x64","\x65\x73\x63\x61\x70\x65\x50\x6F\x73\x74\x44\x61\x74\x61","\x73\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74\x52\x65\x6D\x6F\x74\x65\x43\x68\x61\x6E\x67\x65\x73","\x73\x65\x6E\x74","\x72\x65\x63\x65\x69\x76\x65\x64","\x70\x6F\x6C\x6C\x69\x6E\x67","\x70\x6F\x6C\x6C","\x73\x74\x6F\x70","\x72\x65\x61\x73\x6F\x6E","\x6D\x78\x53\x65\x73\x73\x69\x6F\x6E\x2E\x6E\x6F\x74\x69\x66\x79\x3A\x20","\x20\x78\x6D\x6C\x3D","\x3C\x6D\x65\x73\x73\x61\x67\x65\x3E\x3C\x64\x65\x6C\x74\x61\x3E","\x3C\x2F\x64\x65\x6C\x74\x61\x3E\x3C\x2F\x6D\x65\x73\x73\x61\x67\x65\x3E","\x78\x6D\x6C\x3D","\x69\x73\x56\x61\x6C\x69\x64\x52\x65\x73\x70\x6F\x6E\x73\x65","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x3A\x20","\x52\x65\x73\x70\x6F\x6E\x73\x65\x20\x6E\x6F\x74\x20\x72\x65\x61\x64\x79","\x54\x72\x61\x6E\x73\x6D\x69\x73\x73\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x3C\x3F\x70\x68\x70","\x6E\x61\x6D\x65\x73\x70\x61\x63\x65","\x70\x72\x65\x66\x69\x78","\x70\x72\x6F\x63\x65\x73\x73\x53\x74\x61\x74\x65","\x64\x65\x6C\x74\x61","\x70\x72\x6F\x63\x65\x73\x73\x44\x65\x6C\x74\x61","\x64\x65\x63\x6F\x64\x65","\x70\x72\x6F\x63\x65\x73\x73\x45\x64\x69\x74","\x64\x65\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65\x73","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74","\x73\x6F\x75\x72\x63\x65","\x64\x65\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65","\x6D\x78\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x6D\x78\x43\x68\x69\x6C\x64\x43\x68\x61\x6E\x67\x65","\x70\x61\x72\x65\x6E\x74","\x63\x65\x6C\x6C\x52\x65\x6D\x6F\x76\x65\x64","\x67\x65\x74\x49\x64","\x70\x75\x74\x4F\x62\x6A\x65\x63\x74","\x73\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74","\x72\x65\x64\x6F\x6E\x65","\x69\x73\x45\x6D\x70\x74\x79","\x69\x73\x53\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74","\x64\x69\x65","\x68\x69\x73\x74\x6F\x72\x79","\x69\x6E\x64\x65\x78\x4F\x66\x4E\x65\x78\x74\x41\x64\x64","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x73\x68\x69\x66\x74","\x64\x61\x74\x61\x3A\x69\x6D\x61\x67\x65","\x69\x73\x52\x65\x6C\x61\x74\x69\x76\x65\x55\x72\x6C","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x2F\x2F","\x68\x6F\x73\x74","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x74\x68\x72\x65\x61\x64","\x61\x63\x74\x69\x76\x65","\x64\x79","\x64\x78","\x74\x30\x79","\x74\x30\x78","\x74\x64\x79","\x74\x64\x78","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x4D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x70\x61\x6E\x47\x72\x61\x70\x68","\x70\x61\x6E\x44\x78","\x70\x61\x6E\x44\x79","\x67\x65\x74\x44\x78","\x67\x65\x74\x44\x79","\x64\x65\x6C\x61\x79","\x73\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C","\x69\x73\x41\x63\x74\x69\x76\x65","\x70\x61\x6E\x54\x6F","\x68\x61\x6E\x64\x6C\x65\x4D\x6F\x75\x73\x65\x4F\x75\x74","\x64\x61\x6D\x70\x65\x72","\x63\x6C\x65\x61\x72\x49\x6E\x74\x65\x72\x76\x61\x6C","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x4D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x2F\x73\x75\x62\x6D\x65\x6E\x75\x2E\x67\x69\x66","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x6F\x70\x75\x70","\x69\x74\x65\x6D\x43\x6F\x75\x6E\x74","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x6C\x61\x62\x65\x6C\x73","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x64\x69\x73\x61\x62\x6C\x65\x43\x6F\x6E\x74\x65\x78\x74\x4D\x65\x6E\x75","\x69\x73\x4C\x65\x66\x74\x4D\x6F\x75\x73\x65\x42\x75\x74\x74\x6F\x6E","\x77\x69\x6C\x6C\x41\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x49\x74\x65\x6D\x73","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x63\x6F\x6E","\x20\x64\x69\x73\x61\x62\x6C\x65\x64","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x72\x65\x61\x74\x65\x53\x75\x62\x6D\x65\x6E\x75","\x65\x76\x65\x6E\x74\x52\x65\x63\x65\x69\x76\x65\x72","\x61\x63\x74\x69\x76\x65\x52\x6F\x77","\x68\x69\x64\x65\x53\x75\x62\x6D\x65\x6E\x75","\x73\x68\x6F\x77\x53\x75\x62\x6D\x65\x6E\x75","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x74\x65\x6D\x48\x6F\x76\x65\x72","\x30\x20\x30\x20\x30\x20\x30\x70\x78","\x63\x6F\x6C\x53\x70\x61\x6E","\x32","\x73\x68\x6F\x77\x4D\x65\x6E\x75","\x63\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x73\x65\x74\x47\x72\x61\x70\x68","\x67\x72\x61\x70\x68","\x61\x75\x74\x6F\x53\x61\x76\x65\x44\x65\x6C\x61\x79","\x61\x75\x74\x6F\x53\x61\x76\x65\x54\x68\x72\x6F\x74\x74\x6C\x65","\x61\x75\x74\x6F\x53\x61\x76\x65\x54\x68\x72\x65\x73\x68\x6F\x6C\x64","\x69\x67\x6E\x6F\x72\x65\x64\x43\x68\x61\x6E\x67\x65\x73","\x6C\x61\x73\x74\x53\x6E\x61\x70\x73\x68\x6F\x74","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x73\x74\x6F\x70\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x73\x74\x65\x70\x73","\x65\x61\x73\x65","\x73\x74\x65\x70","\x61\x6E\x69\x6D\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x44\x65\x6C\x74\x61","\x69\x73\x56\x65\x72\x74\x65\x78","\x6D\x6F\x76\x65\x53\x74\x61\x74\x65","\x73\x74\x6F\x70\x52\x65\x63\x75\x72\x73\x69\x6F\x6E","\x67\x65\x74\x4F\x72\x69\x67\x69\x6E\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x69\x6D\x61\x67\x65\x73","\x61\x6C\x74","\x70\x75\x74\x49\x6D\x61\x67\x65","\x67\x65\x74\x49\x6D\x61\x67\x65","\x66\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x6E\x63\x6C\x75\x64\x65\x4F\x76\x65\x72\x6C\x61\x79\x73","\x64\x72\x61\x77\x53\x74\x61\x74\x65","\x64\x72\x61\x77\x43\x65\x6C\x6C\x53\x74\x61\x74\x65","\x76\x69\x73\x69\x74\x53\x74\x61\x74\x65\x73\x52\x65\x63\x75\x72\x73\x69\x76\x65","\x64\x72\x61\x77\x4F\x76\x65\x72\x6C\x61\x79\x73","\x70\x61\x69\x6E\x74","\x72\x65\x73\x74\x6F\x72\x65","\x6F\x76\x65\x72\x6C\x61\x79\x73","\x63\x6F\x6E\x76\x65\x72\x74\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x72\x6C\x43\x6F\x6E\x76\x65\x72\x74\x65\x72","\x73\x74\x61\x74\x65\x73","\x70\x61\x74\x68","\x72\x6F\x74\x61\x74\x65\x48\x74\x6D\x6C","\x6C\x61\x73\x74\x58","\x6C\x61\x73\x74\x59","\x6D\x6F\x76\x65\x4F\x70","\x4D","\x6C\x69\x6E\x65\x4F\x70","\x4C","\x71\x75\x61\x64\x4F\x70","\x51","\x63\x75\x72\x76\x65\x4F\x70","\x43","\x63\x6C\x6F\x73\x65\x4F\x70","\x5A","\x70\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x33\x20\x33","\x66\x6C\x61\x74","\x6D\x69\x74\x65\x72","\x23\x30\x30\x30\x30\x30\x30","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x50\x41\x43\x49\x54\x59","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x46\x46\x53\x45\x54\x5F\x58","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x46\x46\x53\x45\x54\x5F\x59","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4F\x70","\x72\x6F\x74\x61\x74\x65\x50\x6F\x69\x6E\x74","\x70\x6F\x70","\x73\x65\x74\x41\x6C\x70\x68\x61","\x61\x6C\x70\x68\x61","\x73\x65\x74\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x47\x72\x61\x64\x69\x65\x6E\x74","\x66\x69\x6C\x6C\x41\x6C\x70\x68\x61","\x67\x72\x61\x64\x69\x65\x6E\x74\x41\x6C\x70\x68\x61","\x73\x65\x74\x53\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x53\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x65\x74\x44\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x73\x65\x74\x4C\x69\x6E\x65\x43\x61\x70","\x6C\x69\x6E\x65\x43\x61\x70","\x73\x65\x74\x4C\x69\x6E\x65\x4A\x6F\x69\x6E","\x6C\x69\x6E\x65\x4A\x6F\x69\x6E","\x73\x65\x74\x4D\x69\x74\x65\x72\x4C\x69\x6D\x69\x74","\x6D\x69\x74\x65\x72\x4C\x69\x6D\x69\x74","\x73\x65\x74\x46\x6F\x6E\x74\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x53\x69\x7A\x65","\x73\x65\x74\x46\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x73\x65\x74\x46\x6F\x6E\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x43\x6F\x6C\x6F\x72","\x73\x68\x61\x64\x6F\x77\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x41\x6C\x70\x68\x61","\x73\x68\x61\x64\x6F\x77\x41\x6C\x70\x68\x61","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x4F\x66\x66\x73\x65\x74","\x73\x68\x61\x64\x6F\x77\x44\x78","\x73\x68\x61\x64\x6F\x77\x44\x79","\x62\x65\x67\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x71\x75\x61\x64\x54\x6F","\x63\x75\x72\x76\x65\x54\x6F","\x61\x72\x63\x54\x6F","\x61\x72\x63\x54\x6F\x43\x75\x72\x76\x65\x73","\x65\x6E\x64","\x77\x72\x69\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x73","\x65\x78\x74\x65\x6E\x64","\x74\x65\x78\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6D\x70\x72\x65\x73\x73\x65\x64","\x66\x6F\x6E\x74\x66\x61\x6D\x69\x6C\x79","\x66\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x73\x69\x7A\x65","\x73\x68\x61\x64\x6F\x77\x63\x6F\x6C\x6F\x72","\x73\x68\x61\x64\x6F\x77\x61\x6C\x70\x68\x61","\x73\x68\x61\x64\x6F\x77\x6F\x66\x66\x73\x65\x74","\x74\x6F\x46\x69\x78\x65\x64","\x72\x6F\x74\x61\x74\x65","\x74\x68\x65\x74\x61","\x63\x78","\x63\x79","\x66\x69\x6C\x6C\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74","\x63\x31","\x63\x32","\x77","\x68","\x61\x6C\x70\x68\x61\x31","\x61\x6C\x70\x68\x61\x32","\x73\x74\x72\x6F\x6B\x65\x63\x6F\x6C\x6F\x72","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x64\x61\x73\x68\x70\x61\x74\x74\x65\x72\x6E","\x70\x61\x74\x74\x65\x72\x6E","\x6C\x69\x6E\x65\x63\x61\x70","\x63\x61\x70","\x6C\x69\x6E\x65\x6A\x6F\x69\x6E","\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74","\x6C\x69\x6D\x69\x74","\x66\x6F\x6E\x74\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x62\x6F\x72\x64\x65\x72\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x73\x74\x79\x6C\x65","\x72\x65\x63\x74","\x72\x6F\x75\x6E\x64\x72\x65\x63\x74","\x63\x6F\x6E\x76\x65\x72\x74","\x61\x73\x70\x65\x63\x74","\x71\x75\x61\x64","\x78\x31","\x79\x31","\x78\x32","\x79\x32","\x63\x75\x72\x76\x65","\x78\x33","\x79\x33","\x69\x73\x4E\x6F\x64\x65","\x73\x74\x72","\x77\x72\x61\x70","\x66\x69\x6C\x6C","\x63\x6C\x69\x70","\x73\x74\x72\x6F\x6B\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x66\x69\x6C\x6C\x73\x74\x72\x6F\x6B\x65","\x67\x72\x61\x64\x69\x65\x6E\x74\x73","\x64\x65\x66\x73","\x73\x74\x79\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x61\x74\x63\x68\x48\x74\x6D\x6C\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x66\x6F\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x72\x6F\x6B\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x72\x65\x66\x43\x6F\x75\x6E\x74","\x62\x6C\x6F\x63\x6B\x49\x6D\x61\x67\x65\x50\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x73\x76\x67\x7B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A","\x3B\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A","\x3B\x66\x69\x6C\x6C\x3A\x6E\x6F\x6E\x65\x3B\x73\x74\x72\x6F\x6B\x65\x2D\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74\x3A\x31\x30\x7D","\x4E\x53\x5F\x53\x56\x47","\x78\x6D\x6C\x6E\x73","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x64\x69\x65\x6E\x74\x49\x64","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x53\x4F\x55\x54\x48","\x73","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x45\x41\x53\x54","\x65","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4E\x4F\x52\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x57\x45\x53\x54","\x6D\x78\x2D\x67\x72\x61\x64\x69\x65\x6E\x74\x2D","\x67\x65\x74\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x69\x64","\x63\x72\x65\x61\x74\x65\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74","\x6C\x69\x6E\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6E\x74","\x30\x25","\x3B\x73\x74\x6F\x70\x2D\x6F\x70\x61\x63\x69\x74\x79\x3A","\x6F\x66\x66\x73\x65\x74","\x73\x74\x6F\x70\x2D\x63\x6F\x6C\x6F\x72\x3A","\x61\x64\x64\x4E\x6F\x64\x65","\x64","\x75\x70\x64\x61\x74\x65\x46\x69\x6C\x6C","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77","\x63\x72\x65\x61\x74\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x70\x6F\x69\x6E\x74\x65\x72\x2D\x65\x76\x65\x6E\x74\x73","\x61\x6C\x6C","\x66\x69\x6C\x6C\x2D\x6F\x70\x61\x63\x69\x74\x79","\x75\x72\x6C\x28\x23","\x73\x74\x72\x6F\x6B\x65\x2D\x6F\x70\x61\x63\x69\x74\x79","\x73\x74\x72\x6F\x6B\x65\x2D\x77\x69\x64\x74\x68","\x75\x70\x64\x61\x74\x65\x53\x74\x72\x6F\x6B\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x74\x72\x6F\x6B\x65\x2D\x64\x61\x73\x68\x61\x72\x72\x61\x79","\x63\x72\x65\x61\x74\x65\x44\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x73\x74\x72\x6F\x6B\x65\x2D\x6C\x69\x6E\x65\x6A\x6F\x69\x6E","\x62\x75\x74\x74","\x73\x74\x72\x6F\x6B\x65\x2D\x6C\x69\x6E\x65\x63\x61\x70","\x73\x74\x72\x6F\x6B\x65\x2D\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x68\x69\x74\x65","\x29\x73\x63\x61\x6C\x65\x28","\x29\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x72\x6F\x74\x61\x74\x65\x28","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x43\x78","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x43\x79","\x72\x78","\x72\x79","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x53","\x78\x6C\x69\x6E\x6B\x3A\x68\x72\x65\x66","\x70\x72\x65\x73\x65\x72\x76\x65\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6F","\x73\x63\x61\x6C\x65\x28","\x70\x6F\x69\x6E\x74\x65\x72\x2D\x65\x76\x65\x6E\x74\x73\x3A\x6E\x6F\x6E\x65","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A","\x70\x78\x3B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A","\x3B\x63\x6F\x6C\x6F\x72\x3A","\x3B\x6C\x69\x6E\x65\x2D\x68\x65\x69\x67\x68\x74\x3A","\x70\x78\x3B","\x46\x4F\x4E\x54\x5F\x42\x4F\x4C\x44","\x66\x6F\x6E\x74\x2D\x77\x65\x69\x67\x68\x74\x3A\x62\x6F\x6C\x64\x3B","\x46\x4F\x4E\x54\x5F\x49\x54\x41\x4C\x49\x43","\x66\x6F\x6E\x74\x2D\x73\x74\x79\x6C\x65\x3A\x69\x74\x61\x6C\x69\x63\x3B","\x46\x4F\x4E\x54\x5F\x55\x4E\x44\x45\x52\x4C\x49\x4E\x45","\x66\x6F\x6E\x74\x2D\x64\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E\x3A\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65\x3B","\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x63\x65\x6E\x74\x65\x72\x3B","\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x72\x69\x67\x68\x74\x3B","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A","\x62\x6F\x72\x64\x65\x72\x3A\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20","\x26\x61\x6D\x70\x3B\x67\x74\x3B","\x26\x61\x6D\x70\x3B\x6C\x74\x3B","\x3C\x64\x69\x76\x20\x78\x6D\x6C\x6E\x73\x3D\x22\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C\x22\x20\x73\x74\x79\x6C\x65\x3D\x22\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B","\x22\x3E","\x3C\x2F\x64\x69\x76\x3E","\x3C\x68\x72\x20\x2F\x3E","\x3C\x62\x72\x20\x2F\x3E","\x3C\x64\x69\x76\x20\x78\x6D\x6C\x6E\x73\x3D\x22\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C\x22\x20\x73\x74\x79\x6C\x65\x3D\x22","\x68\x74\x6D\x6C","\x76\x65\x72\x74\x69\x63\x61\x6C\x2D\x61\x6C\x69\x67\x6E\x3A\x74\x6F\x70\x3B","\x6F\x76\x65\x72\x66\x6C\x6F\x77\x3A\x68\x69\x64\x64\x65\x6E\x3B","\x6D\x61\x78\x2D\x68\x65\x69\x67\x68\x74\x3A","\x77\x69\x64\x74\x68\x3A","\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x6E\x6F\x72\x6D\x61\x6C\x3B","\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x6E\x6F\x77\x72\x61\x70\x3B","\x66\x6F\x72\x65\x69\x67\x6E\x4F\x62\x6A\x65\x63\x74","\x70\x6C\x61\x69\x6E\x54\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x43\x6C\x69\x70","\x6D\x78\x2D\x63\x6C\x69\x70\x2D","\x63\x6C\x69\x70\x50\x61\x74\x68","\x63\x6C\x69\x70\x2D\x70\x61\x74\x68","\x75\x70\x64\x61\x74\x65\x46\x6F\x6E\x74","\x74\x65\x78\x74\x2D\x61\x6E\x63\x68\x6F\x72","\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65","\x61\x64\x64\x54\x65\x78\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x2D\x77\x65\x69\x67\x68\x74","\x62\x6F\x6C\x64","\x66\x6F\x6E\x74\x2D\x73\x74\x79\x6C\x65","\x69\x74\x61\x6C\x69\x63","\x74\x65\x78\x74\x2D\x64\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x67\x65\x74\x42\x42\x6F\x78","\x66\x6F\x6E\x74\x57\x65\x69\x67\x68\x74","\x3C\x62\x72\x2F\x3E","\x6D\x6F\x64","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28\x30\x2E\x35\x2C\x20\x30\x2E\x35\x29","\x6D","\x6C","\x63","\x72\x6F\x74\x61\x74\x65\x64\x48\x74\x6D\x6C\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x76\x6D\x6C\x53\x63\x61\x6C\x65","\x20\x65","\x63\x6F\x6F\x72\x64\x73\x69\x7A\x65","\x73\x74\x72\x6F\x6B\x65\x77\x65\x69\x67\x68\x74","\x73\x74\x72\x6F\x6B\x65\x64","\x63\x72\x65\x61\x74\x65\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x46\x69\x6C\x6C","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x46\x69\x6C\x6C","\x66\x69\x6C\x6C\x65\x64","\x3A\x66\x69\x6C\x6C","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x74\x69\x6C\x65","\x63\x6F\x6C\x6F\x72\x32","\x66\x6C\x69\x70","\x61\x6E\x67\x6C\x65","\x4F\x46\x46\x49\x43\x45\x5F\x50\x52\x45\x46\x49\x58","\x3A\x6F\x70\x61\x63\x69\x74\x79\x32","\x3A\x73\x74\x72\x6F\x6B\x65","\x65\x6E\x64\x63\x61\x70","\x6A\x6F\x69\x6E\x73\x74\x79\x6C\x65","\x31\x30","\x64\x61\x73\x68\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x6D\x6C\x44\x61\x73\x68\x53\x74\x79\x6C\x65","\x64\x61\x73\x68","\x30\x20\x32","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77\x46\x69\x6C\x6C","\x3A\x73\x68\x61\x70\x65","\x63\x20","\x63\x72\x65\x61\x74\x65\x52\x65\x63\x74","\x3A\x72\x65\x63\x74","\x3A\x72\x6F\x75\x6E\x64\x72\x65\x63\x74","\x61\x72\x63\x73\x69\x7A\x65","\x3A\x6F\x76\x61\x6C","\x61\x74\x6D\x6F\x73\x74","\x69\x67\x6E\x6F\x72\x65","\x66\x72\x61\x6D\x65","\x31\x38\x30","\x66\x6F\x6E\x74\x44\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x3A\x67\x72\x6F\x75\x70","\x72\x65\x6C\x61\x74\x69\x76\x65","\x67\x65\x74\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74\x41\x73\x50\x6F\x69\x6E\x74","\x6E\x6F\x72\x6D\x61\x6C","\x6D\x61\x78\x48\x65\x69\x67\x68\x74","\x67\x72\x6F\x75\x70","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x4D\x61\x74\x72\x69\x78\x28\x4D\x31\x31\x3D","\x2C\x20\x4D\x31\x32\x3D","\x2C\x20\x4D\x32\x31\x3D","\x2C\x20\x4D\x32\x32\x3D","\x2C\x20\x73\x69\x7A\x69\x6E\x67\x4D\x65\x74\x68\x6F\x64\x3D\x27\x61\x75\x74\x6F\x20\x65\x78\x70\x61\x6E\x64\x27\x29","\x3A\x70\x61\x74\x68","\x74\x65\x78\x74\x70\x61\x74\x68\x6F\x6B","\x6D\x20","\x20\x6C\x20","\x3A\x74\x65\x78\x74\x70\x61\x74\x68","\x76\x2D\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A","\x73\x74\x72\x69\x6E\x67","\x73\x65\x74\x53\x74\x61\x74\x65\x73","\x67\x75\x69\x64\x65\x58","\x67\x75\x69\x64\x65\x59","\x67\x65\x74\x47\x75\x69\x64\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x63\x72\x65\x61\x74\x65\x47\x75\x69\x64\x65\x53\x68\x61\x70\x65","\x69\x73\x44\x61\x73\x68\x65\x64","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x70\x6F\x69\x6E\x74\x73","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x64\x65\x73\x63","\x70\x61\x72\x73\x65\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x61\x72\x73\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x63\x61\x6C\x69\x7A\x65\x64","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x77\x30","\x68\x30","\x62\x67\x4E\x6F\x64\x65","\x66\x67\x4E\x6F\x64\x65","\x66\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x70\x61\x72\x73\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x65\x76\x61\x6C\x75\x61\x74\x65\x54\x65\x78\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x65\x76\x61\x6C\x75\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x6F\x63\x61\x6C\x69\x7A\x65\x64","\x65\x76\x61\x6C","\x64\x72\x61\x77\x53\x68\x61\x70\x65","\x64\x72\x61\x77\x43\x68\x69\x6C\x64\x72\x65\x6E","\x63\x6F\x6D\x70\x75\x74\x65\x41\x73\x70\x65\x63\x74","\x69\x6E\x68\x65\x72\x69\x74","\x67\x65\x74\x4E\x75\x6D\x62\x65\x72","\x64\x72\x61\x77\x4E\x6F\x64\x65","\x66\x69\x78\x65\x64","\x61\x72\x63","\x78\x2D\x61\x78\x69\x73\x2D\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x6C\x61\x72\x67\x65\x2D\x61\x72\x63\x2D\x66\x6C\x61\x67","\x73\x77\x65\x65\x70\x2D\x66\x6C\x61\x67","\x52\x45\x43\x54\x41\x4E\x47\x4C\x45\x5F\x52\x4F\x55\x4E\x44\x49\x4E\x47\x5F\x46\x41\x43\x54\x4F\x52","\x61\x6C\x69\x67\x6E\x2D\x73\x68\x61\x70\x65","\x69\x6E\x63\x6C\x75\x64\x65\x2D\x73\x68\x61\x70\x65","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C","\x62\x6F\x75\x6E\x64\x73","\x62\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x73\x76\x67\x53\x74\x72\x6F\x6B\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x73\x74\x65\x6E\x63\x69\x6C\x50\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x69\x73\x50\x61\x72\x73\x65\x56\x6D\x6C","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x67\x65\x74\x53\x76\x67\x53\x63\x72\x65\x65\x6E\x4F\x66\x66\x73\x65\x74","\x63\x72\x65\x61\x74\x65\x53\x76\x67","\x63\x72\x65\x61\x74\x65\x48\x74\x6D\x6C","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x75\x70\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x73\x46\x72\x6F\x6D\x50\x6F\x69\x6E\x74\x73","\x63\x68\x65\x63\x6B\x42\x6F\x75\x6E\x64\x73","\x72\x65\x64\x72\x61\x77\x48\x74\x6D\x6C\x53\x68\x61\x70\x65","\x72\x65\x64\x72\x61\x77\x53\x68\x61\x70\x65","\x75\x70\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C\x47\x72\x6F\x75\x70","\x63\x72\x65\x61\x74\x65\x43\x61\x6E\x76\x61\x73","\x68\x61\x73\x43\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x6C\x61\x73\x74\x43\x68\x69\x6C\x64","\x62\x65\x66\x6F\x72\x65\x65\x6E\x64","\x69\x6E\x73\x65\x72\x74\x41\x64\x6A\x61\x63\x65\x6E\x74\x48\x54\x4D\x4C","\x61\x64\x64\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x46\x69\x6C\x74\x65\x72","\x64\x65\x73\x74\x72\x6F\x79\x43\x61\x6E\x76\x61\x73","\x75\x70\x64\x61\x74\x65\x56\x6D\x6C\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x78\x52\x65\x66\x43\x6F\x75\x6E\x74","\x6F\x6C\x64\x47\x72\x61\x64\x69\x65\x6E\x74\x73","\x72\x65\x6C\x65\x61\x73\x65\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74\x73","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x75\x70\x64\x61\x74\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x43\x61\x6E\x76\x61\x73","\x70\x61\x69\x6E\x74\x53\x74\x65\x6E\x63\x69\x6C\x53\x68\x61\x70\x65","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x67\x65\x74\x47\x72\x61\x64\x69\x65\x6E\x74\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x64\x64\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x63\x74\x61\x6E\x67\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x70\x61\x69\x6E\x74\x47\x6C\x61\x73\x73\x45\x66\x66\x65\x63\x74","\x23\x66\x66\x66\x66\x66\x66","\x69\x73\x52\x6F\x75\x6E\x64\x65\x64","\x73\x74\x65\x6E\x63\x69\x6C\x46\x6C\x69\x70\x48","\x73\x74\x65\x6E\x63\x69\x6C\x46\x6C\x69\x70\x56","\x73\x65\x74\x43\x75\x72\x73\x6F\x72","\x67\x65\x74\x43\x75\x72\x73\x6F\x72","\x63\x72\x65\x61\x74\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x61\x75\x67\x6D\x65\x6E\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x67\x65\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x67\x65\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x67\x65\x74\x54\x65\x78\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x76\x65\x72\x74\x69\x63\x61\x6C\x54\x65\x78\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28\x27","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66\x27\x29","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x6D\x61\x72\x6B\x65\x72\x73","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x46\x69\x6C\x74\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x43\x6F\x6C\x6F\x72\x73","\x62\x6F\x72\x64\x65\x72\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x73\x6F\x6C\x69\x64","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x64\x72\x6F\x70\x53\x68\x61\x64\x6F\x77\x20\x28\x4F\x66\x66\x58\x3D\x27","\x27\x2C\x20\x4F\x66\x66\x59\x3D\x27","\x27\x2C\x20\x43\x6F\x6C\x6F\x72\x3D\x27","\x27\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x67\x72\x61\x64\x69\x65\x6E\x74\x28\x73\x74\x61\x72\x74\x43\x6F\x6C\x6F\x72\x53\x74\x72\x3D\x27","\x27\x2C\x20\x65\x6E\x64\x43\x6F\x6C\x6F\x72\x53\x74\x72\x3D\x27","\x27\x2C\x20\x67\x72\x61\x64\x69\x65\x6E\x74\x54\x79\x70\x65\x3D\x27","\x70\x61\x69\x6E\x74\x4C\x69\x6E\x65","\x61\x72\x72\x6F\x77\x57\x69\x64\x74\x68","\x41\x52\x52\x4F\x57\x5F\x57\x49\x44\x54\x48","\x41\x52\x52\x4F\x57\x5F\x53\x50\x41\x43\x49\x4E\x47","\x41\x52\x52\x4F\x57\x5F\x53\x49\x5A\x45","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x53\x54\x59\x4C\x45","\x63\x6C\x69\x70\x70\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x4C\x65\x66\x74","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x52\x69\x67\x68\x74","\x72\x65\x70\x6C\x61\x63\x65\x4C\x69\x6E\x65\x66\x65\x65\x64\x73","\x69\x67\x6E\x6F\x72\x65\x43\x6C\x69\x70\x70\x65\x64\x53\x74\x72\x69\x6E\x67\x53\x69\x7A\x65","\x69\x67\x6E\x6F\x72\x65\x53\x74\x72\x69\x6E\x67\x53\x69\x7A\x65","\x74\x65\x78\x74\x44\x69\x76","\x75\x70\x64\x61\x74\x65\x53\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x75\x70\x64\x61\x74\x65\x56\x61\x6C\x75\x65","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x46\x69\x6C\x74\x65\x72","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x4F\x72\x69\x67\x69\x6E","\x25\x20","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x25\x2C","\x25\x29\x73\x63\x61\x6C\x65\x28","\x29\x20\x72\x6F\x74\x61\x74\x65\x28","\x64\x65\x67\x29","\x30\x25\x20\x30\x25","\x25\x29","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20","\x3C\x64\x69\x76\x20\x73\x74\x79\x6C\x65\x3D\x22\x7A\x6F\x6F\x6D\x3A\x31\x3B","\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x5F\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x3B\x70\x61\x64\x64\x69\x6E\x67\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x31\x70\x78\x3B\x70\x61\x64\x64\x69\x6E\x67\x2D\x72\x69\x67\x68\x74\x3A\x31\x70\x78\x3B\x6C\x69\x6E\x65\x2D\x68\x65\x69\x67\x68\x74\x3A","\x75\x70\x64\x61\x74\x65\x4D\x61\x72\x67\x69\x6E","\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x70\x72\x65\x73\x65\x72\x76\x65\x49\x6D\x61\x67\x65\x41\x73\x70\x65\x63\x74","\x69\x6D\x61\x67\x65\x46\x6C\x69\x70\x48","\x69\x6D\x61\x67\x65\x46\x6C\x69\x70\x56","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x72\x6F\x74\x61\x74\x69\x6F\x6E\x3D\x32\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x6D\x69\x72\x72\x6F\x72\x3D\x31\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x72\x6F\x74\x61\x74\x69\x6F\x6E\x3D\x32\x2C\x20\x6D\x69\x72\x72\x6F\x72\x3D\x31\x29","\x69\x6D\x61\x67\x65\x53\x69\x7A\x65","\x44\x45\x46\x41\x55\x4C\x54\x5F\x49\x4D\x41\x47\x45\x53\x49\x5A\x45","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x69\x7A\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72","\x70\x61\x69\x6E\x74\x49\x6D\x61\x67\x65","\x70\x61\x69\x6E\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72","\x67\x65\x74\x49\x6D\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x53\x54\x59\x4C\x45\x5F\x43\x55\x52\x56\x45\x44","\x70\x61\x69\x6E\x74\x43\x75\x72\x76\x65\x64\x4C\x69\x6E\x65","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x53\x49\x5A\x45","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x53\x49\x5A\x45","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x46\x49\x4C\x4C","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x46\x49\x4C\x4C","\x70\x61\x69\x6E\x74\x52\x6F\x75\x6E\x64\x65\x64\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x70\x61\x69\x6E\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x70\x61\x69\x6E\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x75\x73\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x6D\x6F\x76\x65\x43\x65\x6C\x6C","\x67\x65\x74\x47\x72\x61\x70\x68","\x67\x65\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x72\x61\x76\x65\x72\x73\x65","\x67\x65\x74\x45\x64\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x41\x74","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x69\x73\x56\x65\x72\x74\x65\x78\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x56\x65\x72\x74\x65\x78\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x45\x64\x67\x65\x49\x67\x6E\x6F\x72\x65\x64","\x73\x65\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x4F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x4F\x66\x66\x73\x65\x74","\x69\x73\x41\x6E\x63\x65\x73\x74\x6F\x72","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x65\x74\x45\x64\x67\x65\x50\x6F\x69\x6E\x74\x73","\x73\x65\x74\x52\x65\x6C\x61\x74\x69\x76\x65","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x65\x74\x56\x65\x72\x74\x65\x78\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x56\x65\x72\x74\x65\x78\x42\x6F\x75\x6E\x64\x73","\x61\x72\x72\x61\x6E\x67\x65\x47\x72\x6F\x75\x70\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x56\x65\x72\x74\x69\x63\x65\x73","\x67\x65\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78\x46\x72\x6F\x6D\x47\x65\x6F\x6D\x65\x74\x72\x79","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x67\x65\x74\x53\x74\x61\x72\x74\x53\x69\x7A\x65","\x78\x30","\x79\x30","\x6B\x65\x65\x70\x46\x69\x72\x73\x74\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x72\x65\x73\x69\x7A\x65\x50\x61\x72\x65\x6E\x74","\x72\x65\x73\x69\x7A\x65\x4C\x61\x73\x74","\x69\x73\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x67\x65\x74\x49\x6E\x64\x65\x78","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x53\x69\x7A\x65","\x69\x73\x4C\x61\x79\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x72\x65\x73\x69\x7A\x65\x56\x65\x72\x74\x69\x63\x65\x73","\x69\x6E\x76\x65\x72\x74","\x67\x72\x6F\x75\x70\x50\x61\x64\x64\x69\x6E\x67","\x70\x61\x72\x65\x6E\x74\x73\x43\x68\x61\x6E\x67\x65\x64","\x6D\x6F\x76\x65\x54\x72\x65\x65","\x6C\x65\x76\x65\x6C\x44\x69\x73\x74\x61\x6E\x63\x65","\x6E\x6F\x64\x65\x44\x69\x73\x74\x61\x6E\x63\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73","\x70\x72\x65\x66\x48\x6F\x7A\x45\x64\x67\x65\x53\x65\x70","\x70\x72\x65\x66\x56\x65\x72\x74\x45\x64\x67\x65\x4F\x66\x66","\x6D\x69\x6E\x45\x64\x67\x65\x4A\x65\x74\x74\x79","\x63\x68\x61\x6E\x6E\x65\x6C\x42\x75\x66\x66\x65\x72","\x65\x64\x67\x65\x52\x6F\x75\x74\x69\x6E\x67","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x54\x72\x65\x65\x52\x6F\x6F\x74\x73","\x64\x66\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x4C\x61\x79\x6F\x75\x74","\x6D\x6F\x76\x65\x4E\x6F\x64\x65","\x61\x64\x6A\x75\x73\x74\x50\x61\x72\x65\x6E\x74\x73","\x6C\x6F\x63\x61\x6C\x45\x64\x67\x65\x50\x72\x6F\x63\x65\x73\x73\x69\x6E\x67","\x6E\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x4E\x6F\x64\x65","\x61\x74\x74\x61\x63\x68\x50\x61\x72\x65\x6E\x74","\x6C\x61\x79\x6F\x75\x74\x4C\x65\x61\x66","\x6F\x66\x66\x73\x65\x74\x58","\x6F\x66\x66\x73\x65\x74\x59","\x75\x70\x70\x65\x72\x48\x65\x61\x64","\x63\x6F\x6E\x74\x6F\x75\x72","\x63\x72\x65\x61\x74\x65\x4C\x69\x6E\x65","\x6C\x6F\x77\x65\x72\x48\x65\x61\x64","\x75\x70\x70\x65\x72\x54\x61\x69\x6C","\x6C\x6F\x77\x65\x72\x54\x61\x69\x6C","\x6D\x65\x72\x67\x65","\x62\x72\x69\x64\x67\x65","\x73\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x70\x72\x6F\x63\x65\x73\x73\x4E\x6F\x64\x65\x4F\x75\x74\x67\x6F\x69\x6E\x67","\x67\x65\x74\x45\x64\x67\x65\x73\x42\x65\x74\x77\x65\x65\x6E","\x77\x65\x69\x67\x68\x74\x65\x64\x56\x61\x6C\x75\x65","\x6E\x75\x64\x67\x65","\x76\x69\x73\x69\x74\x65\x64","\x72\x61\x6E\x6B\x49\x6E\x64\x65\x78","\x75\x73\x65\x49\x6E\x70\x75\x74\x4F\x72\x69\x67\x69\x6E","\x64\x69\x73\x61\x62\x6C\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x66\x6F\x72\x63\x65\x43\x6F\x6E\x73\x74\x61\x6E\x74","\x66\x6F\x72\x63\x65\x43\x6F\x6E\x73\x74\x61\x6E\x74\x53\x71\x75\x61\x72\x65\x64","\x6D\x69\x6E\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74","\x6D\x61\x78\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74","\x6D\x69\x6E\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74\x53\x71\x75\x61\x72\x65\x64","\x69\x6E\x69\x74\x69\x61\x6C\x54\x65\x6D\x70","\x74\x65\x6D\x70\x65\x72\x61\x74\x75\x72\x65","\x6D\x61\x78\x49\x74\x65\x72\x61\x74\x69\x6F\x6E\x73","\x69\x74\x65\x72\x61\x74\x69\x6F\x6E","\x61\x6C\x6C\x6F\x77\x65\x64\x54\x6F\x52\x75\x6E","\x76\x65\x72\x74\x65\x78\x41\x72\x72\x61\x79","\x67\x65\x74\x42\x6F\x75\x6E\x64\x73","\x69\x6E\x64\x69\x63\x65\x73","\x64\x69\x73\x70\x58","\x64\x69\x73\x70\x59","\x63\x65\x6C\x6C\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x69\x73\x4D\x6F\x76\x65\x61\x62\x6C\x65","\x6E\x65\x69\x67\x68\x62\x6F\x75\x72\x73","\x72\x61\x64\x69\x75\x73","\x72\x61\x64\x69\x75\x73\x53\x71\x75\x61\x72\x65\x64","\x67\x65\x74\x4F\x70\x70\x6F\x73\x69\x74\x65\x73","\x72\x65\x73\x65\x74\x45\x64\x67\x65","\x63\x61\x6C\x63\x52\x65\x70\x75\x6C\x73\x69\x6F\x6E","\x63\x61\x6C\x63\x41\x74\x74\x72\x61\x63\x74\x69\x6F\x6E","\x63\x61\x6C\x63\x50\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x72\x65\x64\x75\x63\x65\x54\x65\x6D\x70\x65\x72\x61\x74\x75\x72\x65","\x72\x61\x6E\x64\x6F\x6D","\x6D\x6F\x76\x65\x43\x69\x72\x63\x6C\x65","\x67\x65\x74\x52\x61\x64\x69\x75\x73","\x63\x69\x72\x63\x6C\x65","\x66\x69\x6E\x64\x50\x61\x72\x61\x6C\x6C\x65\x6C\x73","\x67\x65\x74\x45\x64\x67\x65\x49\x64","\x72\x6F\x75\x74\x65","\x6C\x61\x79\x6F\x75\x74\x73","\x6D\x61\x73\x74\x65\x72","\x70\x6C\x61\x63\x65\x4C\x61\x62\x65\x6C\x73","\x61\x76\x6F\x69\x64","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x74\x65\x6D\x70","\x6D\x61\x78\x52\x61\x6E\x6B","\x6D\x69\x6E\x52\x61\x6E\x6B","\x6E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x70\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x4E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x65\x6E\x65\x72\x61\x6C\x50\x75\x72\x70\x6F\x73\x65\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x65\x74\x47\x65\x6E\x65\x72\x61\x6C\x50\x75\x72\x70\x6F\x73\x65\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x65\x74\x58","\x73\x65\x74\x59","\x63\x6F\x6E\x6E\x65\x63\x74\x73\x41\x73\x54\x61\x72\x67\x65\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x73\x41\x73\x53\x6F\x75\x72\x63\x65","\x68\x61\x73\x68\x43\x6F\x64\x65","\x67\x65\x74\x52\x61\x6E\x6B\x56\x61\x6C\x75\x65","\x67\x65\x74\x43\x6F\x72\x65\x43\x65\x6C\x6C","\x65\x64\x67\x65\x73","\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64","\x74\x69\x67\x68\x74\x65\x6E\x54\x6F\x53\x6F\x75\x72\x63\x65","\x72\x6F\x6F\x74\x73","\x76\x65\x72\x74\x65\x78\x4D\x61\x70\x70\x65\x72","\x65\x64\x67\x65\x4D\x61\x70\x70\x65\x72","\x53\x4F\x55\x52\x43\x45\x53\x43\x41\x4E\x53\x54\x41\x52\x54\x52\x41\x4E\x4B","\x63\x72\x65\x61\x74\x65\x49\x6E\x74\x65\x72\x6E\x61\x6C\x43\x65\x6C\x6C\x73","\x72\x61\x6E\x6B\x73","\x64\x66\x73\x43\x6F\x75\x6E\x74","\x69\x6E\x69\x74\x69\x61\x6C\x52\x61\x6E\x6B","\x73\x6C\x69\x63\x65","\x66\x69\x78\x52\x61\x6E\x6B\x73","\x65\x78\x74\x65\x6E\x64\x65\x64\x44\x66\x73","\x6E\x65\x73\x74\x65\x64\x42\x65\x73\x74\x52\x61\x6E\x6B\x73","\x63\x75\x72\x72\x65\x6E\x74\x42\x65\x73\x74\x43\x72\x6F\x73\x73\x69\x6E\x67\x73","\x69\x74\x65\x72\x61\x74\x69\x6F\x6E\x73\x57\x69\x74\x68\x6F\x75\x74\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74","\x6D\x61\x78\x4E\x6F\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x49\x74\x65\x72\x61\x74\x69\x6F\x6E\x73","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x43\x72\x6F\x73\x73\x69\x6E\x67\x73","\x77\x65\x69\x67\x68\x74\x65\x64\x4D\x65\x64\x69\x61\x6E","\x74\x72\x61\x6E\x73\x70\x6F\x73\x65","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x52\x61\x6E\x6B\x43\x72\x6F\x73\x73\x69\x6E\x67","\x6D\x65\x64\x69\x61\x6E\x52\x61\x6E\x6B","\x6D\x65\x64\x69\x61\x6E\x56\x61\x6C\x75\x65","\x6C\x65\x6E\x74\x68","\x67\x65\x74\x49\x6E\x63\x6F\x6D\x69\x6E\x67\x45\x64\x67\x65\x73","\x69\x6E\x74\x72\x61\x43\x65\x6C\x6C\x53\x70\x61\x63\x69\x6E\x67","\x69\x6E\x74\x65\x72\x52\x61\x6E\x6B\x43\x65\x6C\x6C\x53\x70\x61\x63\x69\x6E\x67","\x6F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x58","\x70\x61\x72\x61\x6C\x6C\x65\x6C\x45\x64\x67\x65\x53\x70\x61\x63\x69\x6E\x67","\x6A\x65\x74\x74\x79\x50\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6C\x69\x6D\x69\x74\x58","\x63\x75\x72\x72\x65\x6E\x74\x58\x44\x65\x6C\x74\x61","\x77\x69\x64\x65\x73\x74\x52\x61\x6E\x6B","\x72\x61\x6E\x6B\x54\x6F\x70\x59","\x72\x61\x6E\x6B\x42\x6F\x74\x74\x6F\x6D\x59","\x77\x69\x64\x65\x73\x74\x52\x61\x6E\x6B\x56\x61\x6C\x75\x65","\x72\x61\x6E\x6B\x57\x69\x64\x74\x68\x73","\x72\x61\x6E\x6B\x59","\x66\x69\x6E\x65\x54\x75\x6E\x69\x6E\x67","\x50\x4F\x4C\x59\x4C\x49\x4E\x45","\x6E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x61\x63\x68\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x61\x63\x68\x65","\x70\x72\x69\x6E\x74\x53\x74\x61\x74\x75\x73","\x3D\x3D\x3D\x3D\x3D\x3D\x43\x6F\x6F\x72\x64\x20\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x20\x64\x65\x62\x75\x67\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x52\x61\x6E\x6B\x20","\x20\x3A\x20","\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x69\x6E\x69\x74\x69\x61\x6C\x43\x6F\x6F\x72\x64\x73","\x6D\x69\x6E\x4E\x6F\x64\x65","\x6D\x65\x64\x69\x61\x6E\x50\x6F\x73","\x6D\x69\x6E\x50\x61\x74\x68","\x73\x65\x74\x43\x65\x6C\x6C\x4C\x6F\x63\x61\x74\x69\x6F\x6E\x73","\x6D\x65\x64\x69\x61\x6E\x58\x56\x61\x6C\x75\x65","\x72\x61\x6E\x6B\x4D\x65\x64\x69\x61\x6E\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x64\x57\x65\x69\x67\x68\x74\x65\x64\x56\x61\x6C\x75\x65","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x57\x69\x64\x65\x73\x74\x52\x61\x6E\x6B","\x72\x61\x6E\x6B\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x65\x64\x67\x65\x2E\x65\x64\x67\x65\x73\x20\x69\x73\x20\x6E\x75\x6C\x6C","\x41\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x63\x65\x6C\x6C\x20\x68\x61\x73\x20\x6E\x6F\x20\x62\x6F\x75\x6E\x64\x73","\x72\x65\x70\x6F\x73\x69\x74\x69\x6F\x6E\x56\x61\x6C\x69\x64","\x4D\x41\x58\x5F\x56\x41\x4C\x55\x45","\x4F\x52\x54\x48\x4F\x47\x4F\x4E\x41\x4C","\x43\x55\x52\x56\x45","\x73\x65\x74\x45\x64\x67\x65\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x73\x50\x6F\x72\x74","\x70\x72\x6F\x63\x65\x73\x73\x52\x65\x76\x65\x72\x73\x65\x64\x45\x64\x67\x65","\x64\x65\x74\x65\x72\x6D\x69\x6E\x69\x73\x74\x69\x63","\x6D\x6F\x76\x65\x50\x61\x72\x65\x6E\x74","\x70\x61\x72\x65\x6E\x74\x42\x6F\x72\x64\x65\x72","\x69\x6E\x74\x65\x72\x48\x69\x65\x72\x61\x72\x63\x68\x79\x53\x70\x61\x63\x69\x6E\x67","\x74\x72\x61\x76\x65\x72\x73\x65\x41\x6E\x63\x65\x73\x74\x6F\x72\x73","\x65\x64\x67\x65\x73\x43\x61\x63\x68\x65","\x72\x75\x6E","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x66\x69\x6E\x64\x52\x6F\x6F\x74\x73","\x63\x6F\x6E\x63\x61\x74","\x69\x73\x56\x61\x6C\x69\x64\x41\x6E\x63\x65\x73\x74\x6F\x72","\x66\x69\x6C\x74\x65\x72\x44\x65\x73\x63\x65\x6E\x64\x61\x6E\x74\x73","\x63\x79\x63\x6C\x65\x53\x74\x61\x67\x65","\x6C\x61\x79\x65\x72\x69\x6E\x67\x53\x74\x61\x67\x65","\x63\x72\x6F\x73\x73\x69\x6E\x67\x53\x74\x61\x67\x65","\x70\x6C\x61\x63\x65\x6D\x65\x6E\x74\x53\x74\x61\x67\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x64\x69\x74","\x73\x65\x74\x52\x6F\x6F\x74","\x6D\x61\x69\x6E\x74\x61\x69\x6E\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x49\x64\x73","\x70\x6F\x73\x74\x66\x69\x78","\x6E\x65\x78\x74\x49\x64","\x75\x70\x64\x61\x74\x65\x4C\x65\x76\x65\x6C","\x65\x6E\x64\x69\x6E\x67\x55\x70\x64\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x52\x6F\x6F\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x49\x64\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x49\x64\x73","\x69\x6E\x73\x65\x72\x74","\x66\x69\x6C\x74\x65\x72\x43\x65\x6C\x6C\x73","\x67\x65\x74\x44\x65\x73\x63\x65\x6E\x64\x61\x6E\x74\x73","\x72\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65\x64","\x63\x65\x6C\x6C\x41\x64\x64\x65\x64","\x69\x73\x52\x6F\x6F\x74","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65\x49\x64","\x73\x65\x74\x49\x64","\x69\x73\x4E\x75\x6D\x65\x72\x69\x63","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x4E\x65\x61\x72\x65\x73\x74\x43\x6F\x6D\x6D\x6F\x6E\x41\x6E\x63\x65\x73\x74\x6F\x72","\x67\x65\x74\x4F\x72\x69\x67\x69\x6E","\x50\x41\x54\x48\x5F\x53\x45\x50\x41\x52\x41\x54\x4F\x52","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x50\x61\x74\x68","\x70\x61\x72\x65\x6E\x74\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x43\x68\x69\x6C\x64\x72\x65\x6E","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x74\x65\x72\x6D\x69\x6E\x61\x6C\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x69\x6E\x73\x65\x72\x74\x45\x64\x67\x65","\x72\x65\x6D\x6F\x76\x65\x45\x64\x67\x65","\x67\x65\x74\x44\x69\x72\x65\x63\x74\x65\x64\x45\x64\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x4F\x75\x74\x67\x6F\x69\x6E\x67\x45\x64\x67\x65\x73","\x67\x65\x74\x54\x6F\x70\x6D\x6F\x73\x74\x43\x65\x6C\x6C\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x76\x61\x6C\x75\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x76\x61\x6C\x75\x65\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x6F\x6D\x65\x74\x72\x79\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x73\x74\x79\x6C\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x69\x73\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x73\x65\x74\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x76\x69\x73\x69\x62\x6C\x65\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x6D\x65\x72\x67\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x6D\x65\x72\x67\x65\x43\x68\x69\x6C\x64\x72\x65\x6E\x49\x6D\x70\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x73","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x49\x6D\x70\x6C","\x72\x65\x73\x74\x6F\x72\x65\x43\x6C\x6F\x6E\x65","\x63\x65\x6C\x6C\x43\x6C\x6F\x6E\x65\x64","\x70\x72\x65\x76\x69\x6F\x75\x73\x49\x6E\x64\x65\x78","\x69\x6E\x64\x65\x78","\x74\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x61\x74\x74\x72\x69\x62\x75\x74\x65","\x6F\x6E\x49\x6E\x69\x74","\x76\x65\x72\x74\x65\x78","\x65\x64\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x6D\x78\x54\x72\x61\x6E\x73\x69\x65\x6E\x74","\x69\x64\x20\x76\x61\x6C\x75\x65\x20\x70\x61\x72\x65\x6E\x74\x20\x73\x6F\x75\x72\x63\x65\x20\x74\x61\x72\x67\x65\x74\x20\x63\x68\x69\x6C\x64\x72\x65\x6E\x20\x65\x64\x67\x65\x73","\x73\x65\x74\x56\x65\x72\x74\x65\x78","\x73\x65\x74\x45\x64\x67\x65","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x50\x61\x72\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x49\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x6C\x6F\x6E\x65\x56\x61\x6C\x75\x65","\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x43\x4F\x4E\x54\x52\x4F\x4C\x5F\x50\x4F\x49\x4E\x54\x53","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65\x50\x6F\x69\x6E\x74","\x74\x61\x72\x67\x65\x74\x50\x6F\x69\x6E\x74","\x73\x77\x61\x70","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x74\x61\x6E","\x70\x6F\x77","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x50\x72\x69\x6E\x74\x65\x72\x2D\x66\x72\x69\x65\x6E\x64\x6C\x79\x20\x76\x65\x72\x73\x69\x6F\x6E","\x70\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x61\x75\x74\x6F\x4F\x72\x69\x67\x69\x6E","\x70\x72\x69\x6E\x74\x4F\x76\x65\x72\x6C\x61\x79\x73","\x77\x6E\x64","\x70\x61\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x57\x69\x6E\x64\x6F\x77","\x67\x65\x74\x44\x6F\x63\x74\x79\x70\x65","\x3C\x6D\x65\x74\x61\x20\x68\x74\x74\x70\x2D\x65\x71\x75\x69\x76\x3D\x22\x58\x2D\x55\x41\x2D\x43\x6F\x6D\x70\x61\x74\x69\x62\x6C\x65\x22\x20\x63\x6F\x6E\x74\x65\x6E\x74\x3D\x22\x49\x45\x3D\x38\x22\x3E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x4F\x76\x65\x72\x6C\x61\x79","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x77\x72\x69\x74\x65\x48\x65\x61\x64","\x3C\x62\x6F\x64\x79\x20\x63\x6C\x61\x73\x73\x3D\x22\x6D\x78\x50\x61\x67\x65\x22\x3E","\x63\x72\x65\x61\x74\x65\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x41\x66\x74\x65\x72","\x61\x6C\x77\x61\x79\x73","\x6D\x78\x50\x61\x67\x65\x42\x72\x65\x61\x6B","\x67\x65\x74\x43\x6F\x76\x65\x72\x50\x61\x67\x65\x73","\x67\x65\x74\x41\x70\x70\x65\x6E\x64\x69\x63\x65\x73","\x61\x64\x64\x47\x72\x61\x70\x68\x46\x72\x61\x67\x6D\x65\x6E\x74","\x72\x65\x6E\x64\x65\x72\x50\x61\x67\x65","\x6D\x78\x50\x61\x67\x65\x2D","\x3C\x74\x69\x74\x6C\x65\x3E","\x3C\x2F\x74\x69\x74\x6C\x65\x3E","\x3C\x73\x74\x79\x6C\x65\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x3E","\x40\x6D\x65\x64\x69\x61\x20\x70\x72\x69\x6E\x74\x20\x7B","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x7B\x20\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x6E\x6F\x6E\x65\x3B\x20\x7D","\x20\x20\x68\x72\x2E\x6D\x78\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x20\x7B\x20\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x6E\x6F\x6E\x65\x3B\x20\x7D","\x40\x6D\x65\x64\x69\x61\x20\x73\x63\x72\x65\x65\x6E\x20\x7B","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x7B\x20\x70\x6F\x73\x69\x74\x69\x6F\x6E\x3A\x20\x66\x69\x78\x65\x64\x3B\x20\x72\x69\x67\x68\x74\x3A\x20\x31\x30\x70\x78\x3B\x20\x74\x6F\x70\x3A\x20\x31\x30\x70\x78\x3B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x41\x72\x69\x61\x6C\x3B\x20\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A\x31\x30\x70\x74\x3B\x20\x62\x6F\x72\x64\x65\x72\x3A\x20\x73\x6F\x6C\x69\x64\x20\x31\x70\x78\x20\x64\x61\x72\x6B\x67\x72\x61\x79\x3B\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x3A\x20\x77\x68\x69\x74\x65\x3B\x20\x62\x6F\x72\x64\x65\x72\x2D\x63\x6F\x6C\x6C\x61\x70\x73\x65\x3A\x63\x6F\x6C\x6C\x61\x70\x73\x65\x3B\x20\x7D","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x74\x64\x20\x7B\x20\x62\x6F\x72\x64\x65\x72\x3A\x20\x73\x6F\x6C\x69\x64\x20\x31\x70\x78\x20\x67\x72\x61\x79\x3B\x20\x70\x61\x64\x64\x69\x6E\x67\x3A\x34\x70\x78\x3B\x20\x7D","\x20\x20\x62\x6F\x64\x79\x2E\x6D\x78\x50\x61\x67\x65\x20\x7B\x20\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x3A\x20\x67\x72\x61\x79\x3B\x20\x7D","\x3C\x2F\x73\x74\x79\x6C\x65\x3E","\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x61","\x23\x6D\x78\x50\x61\x67\x65\x2D","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x49\x6E\x73\x69\x64\x65","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x73\x74\x79\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x70\x75\x74\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x70\x75\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x53\x48\x41\x50\x45","\x53\x48\x41\x50\x45\x5F\x52\x45\x43\x54\x41\x4E\x47\x4C\x45","\x53\x54\x59\x4C\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x52\x65\x63\x74\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x53\x54\x59\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x43\x33\x44\x39\x46\x46","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x36\x34\x38\x32\x42\x39","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x43\x4F\x4C\x4F\x52","\x23\x37\x37\x34\x34\x30\x30","\x53\x48\x41\x50\x45\x5F\x43\x4F\x4E\x4E\x45\x43\x54\x4F\x52","\x23\x34\x34\x36\x32\x39\x39","\x64\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78","\x70\x75\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6F\x72\x69\x67\x69\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65\x4F\x66\x66\x73\x65\x74","\x69\x6E\x76\x61\x6C\x69\x64","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x64\x65\x72","\x6F\x72\x64\x65\x72\x43\x68\x61\x6E\x67\x65\x64","\x76\x69\x73\x69\x62\x6C\x65\x53\x6F\x75\x72\x63\x65\x53\x74\x61\x74\x65","\x76\x69\x73\x69\x62\x6C\x65\x54\x61\x72\x67\x65\x74\x53\x74\x61\x74\x65","\x74\x65\x72\x6D\x69\x6E\x61\x6C\x44\x69\x73\x74\x61\x6E\x63\x65","\x73\x65\x67\x6D\x65\x6E\x74\x73","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x42\x6F\x75\x6E\x64\x73","\x73\x65\x74\x41\x62\x73\x6F\x6C\x75\x74\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x73\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x64\x6F\x6E\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x69\x73\x53\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x68\x61\x6E\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x43\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x73","\x67\x65\x74\x46\x69\x72\x73\x74\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x61\x64\x64\x43\x65\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x61\x64\x64\x65\x64","\x72\x65\x6D\x6F\x76\x65\x64","\x6D\x78\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x68\x61\x6E\x67\x65\x2E\x65\x78\x65\x63\x75\x74\x65","\x65\x6E\x74\x65\x72","\x6C\x65\x61\x76\x65","\x65\x64\x69\x74\x69\x6E\x67\x43\x65\x6C\x6C","\x74\x72\x69\x67\x67\x65\x72","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x61\x75\x74\x6F\x53\x69\x7A\x65","\x65\x6D\x70\x74\x79\x4C\x61\x62\x65\x6C\x54\x65\x78\x74","\x74\x65\x78\x74\x4E\x6F\x64\x65","\x6D\x78\x43\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x63\x6F\x6C\x73","\x32\x30","\x34","\x62\x6C\x75\x72","\x66\x6F\x63\x75\x73\x4C\x6F\x73\x74","\x6B\x65\x79\x64\x6F\x77\x6E","\x6B\x65\x79\x43\x6F\x64\x65","\x69\x73\x45\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x73\x74\x6F\x70\x45\x64\x69\x74\x69\x6E\x67","\x63\x6C\x65\x61\x72\x4F\x6E\x43\x68\x61\x6E\x67\x65","\x73\x65\x74\x4D\x6F\x64\x69\x66\x69\x65\x64","\x6B\x65\x79\x70\x72\x65\x73\x73","\x69\x73\x4C\x61\x62\x65\x6C\x43\x6C\x69\x70\x70\x65\x64","\x69\x73\x57\x72\x61\x70\x70\x69\x6E\x67","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x69\x73\x4D\x6F\x64\x69\x66\x69\x65\x64","\x69\x73\x49\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x69\x73\x48\x69\x64\x65\x4C\x61\x62\x65\x6C","\x6F\x75\x74\x6C\x69\x6E\x65","\x67\x65\x74\x45\x64\x69\x74\x6F\x72\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x56\x61\x6C\x75\x65","\x67\x65\x74\x45\x6D\x70\x74\x79\x4C\x61\x62\x65\x6C\x54\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x44\x69\x76","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x56\x61\x6C\x75\x65","\x67\x65\x74\x45\x64\x69\x74\x69\x6E\x67\x56\x61\x6C\x75\x65","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x54\x4F\x50","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x52\x49\x47\x48\x54","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x42\x4F\x54\x54\x4F\x4D","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x4C\x45\x46\x54","\x67\x65\x74\x45\x64\x69\x74\x69\x6E\x67\x43\x65\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x64\x65\x66\x61\x75\x6C\x74\x54\x65\x78\x74\x53\x68\x61\x70\x65","\x6C\x65\x67\x61\x63\x79\x43\x6F\x6E\x74\x72\x6F\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72\x53\x68\x61\x70\x65","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x70\x65","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x53\x68\x61\x70\x65","\x6F\x72\x64\x65\x72\x65\x64","\x6B\x65\x65\x70\x45\x64\x67\x65\x73\x49\x6E\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x66\x69\x72\x73\x74\x45\x64\x67\x65","\x69\x6E\x73\x65\x72\x74\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x69\x6E\x73\x74\x61\x6C\x6C\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x67\x65\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x53\x74\x61\x74\x65\x49\x6E\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x69\x6E\x64\x50\x72\x65\x76\x69\x6F\x75\x73\x53\x74\x61\x74\x65\x49\x6E\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x72\x64\x65\x72","\x6F\x72\x64\x65\x72\x45\x64\x67\x65","\x6B\x65\x65\x70\x45\x64\x67\x65\x73\x49\x6E\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x53\x68\x61\x70\x65\x43\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x53\x68\x61\x70\x65","\x67\x65\x74\x53\x68\x61\x70\x65","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x68\x61\x70\x65","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x47\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x49\x6D\x61\x67\x65","\x70\x6F\x73\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x65\x53\x68\x61\x70\x65","\x72\x65\x73\x6F\x6C\x76\x65\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x6E\x64\x69\x63\x61\x74\x65\x64","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x67\x65\x74\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x54\x59\x4C\x45","\x53\x54\x59\x4C\x45\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x42\x41\x43\x4B\x47\x52\x4F\x55\x4E\x44\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x42\x4F\x52\x44\x45\x52\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x4F\x56\x45\x52\x46\x4C\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x41\x44\x44\x49\x4E\x47","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x4C\x61\x62\x65\x6C","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x69\x73\x4C\x61\x62\x65\x6C\x45\x76\x65\x6E\x74","\x49\x4D\x47","\x4E\x4F\x5F\x46\x4F","\x67\x65\x74\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x6F\x76\x65\x72\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x74\x72\x6F\x6C","\x67\x65\x74\x46\x6F\x6C\x64\x69\x6E\x67\x49\x6D\x61\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6E\x74\x72\x6F\x6C","\x69\x6E\x69\x74\x43\x6F\x6E\x74\x72\x6F\x6C","\x44\x49\x41\x4C\x45\x43\x54\x5F\x50\x52\x45\x46\x45\x52\x48\x54\x4D\x4C","\x69\x6E\x6E\x65\x72\x4E\x6F\x64\x65","\x69\x73\x53\x68\x61\x70\x65\x45\x76\x65\x6E\x74","\x67\x65\x73\x74\x75\x72\x65\x73\x74\x61\x72\x74","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x54\x69\x6D\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x67\x65\x73\x74\x75\x72\x65\x45\x6E\x61\x62\x6C\x65\x64","\x68\x61\x6E\x64\x6C\x65\x47\x65\x73\x74\x75\x72\x65","\x72\x65\x64\x72\x61\x77\x4C\x61\x62\x65\x6C","\x67\x65\x74\x4C\x61\x62\x65\x6C\x42\x6F\x75\x6E\x64\x73","\x69\x73\x43\x6C\x69\x70\x70\x69\x6E\x67","\x67\x65\x74\x54\x65\x78\x74\x53\x63\x61\x6C\x65","\x72\x6F\x74\x61\x74\x65\x4C\x61\x62\x65\x6C\x42\x6F\x75\x6E\x64\x73","\x72\x65\x64\x72\x61\x77\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x72\x65\x64\x72\x61\x77\x43\x6F\x6E\x74\x72\x6F\x6C","\x67\x65\x74\x43\x6F\x6E\x74\x72\x6F\x6C\x42\x6F\x75\x6E\x64\x73","\x65\x71\x75\x61\x6C\x45\x6E\x74\x72\x69\x65\x73","\x65\x71\x75\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x67\x65\x74\x50\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x67\x65\x74\x52\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x59","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D\x43\x6F\x6E\x74\x72\x6F\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x52\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x58","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x6F\x72\x74\x68\x42\x75\x66\x66\x65\x72","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x41\x4C\x4C","\x6C\x69\x6D\x69\x74\x73","\x76\x65\x72\x74\x65\x78\x53\x65\x70\x65\x72\x61\x74\x69\x6F\x6E\x73","\x72\x65\x76\x65\x72\x73\x65\x50\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x72\x6F\x75\x74\x65\x50\x61\x74\x74\x65\x72\x6E\x73","\x77\x61\x79\x50\x6F\x69\x6E\x74\x73\x31","\x64\x69\x72\x56\x65\x63\x74\x6F\x72\x73","\x54\x41\x52\x47\x45\x54\x5F\x4D\x41\x53\x4B","\x53\x4F\x55\x52\x43\x45\x5F\x4D\x41\x53\x4B","\x53\x49\x44\x45\x5F\x4D\x41\x53\x4B","\x43\x45\x4E\x54\x45\x52\x5F\x4D\x41\x53\x4B","\x76\x61\x6C\x75\x65\x73","\x70\x75\x74\x56\x61\x6C\x75\x65","\x67\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x45\x4D\x50\x54\x59\x5F\x50\x4F\x49\x4E\x54","\x75\x70\x64\x61\x74\x69\x6E\x67\x44\x6F\x63\x75\x6D\x65\x6E\x74\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x61\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x63\x61\x70\x74\x75\x72\x65\x44\x6F\x63\x75\x6D\x65\x6E\x74\x47\x65\x73\x74\x75\x72\x65","\x6F\x70\x74\x69\x6D\x69\x7A\x65\x56\x6D\x6C\x52\x65\x66\x6C\x6F\x77\x73","\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x73\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x73\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x53\x63\x61\x6C\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x65\x74\x53\x63\x61\x6C\x65","\x69\x6E\x76\x61\x6C\x69\x64\x61\x74\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x53\x74\x61\x74\x65","\x6D\x78\x47\x72\x61\x70\x68\x56\x69\x65\x77\x2E\x76\x61\x6C\x69\x64\x61\x74\x65","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x76\x61\x6C\x69\x64\x61\x74\x65\x50\x6F\x69\x6E\x74\x73","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x75\x70\x64\x61\x74\x65\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x4F\x66\x66\x73\x65\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x4F\x66\x66\x73\x65\x74\x46\x6F\x72\x43\x65\x6C\x6C","\x75\x70\x64\x61\x74\x65\x46\x69\x78\x65\x64\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x46\x6C\x6F\x61\x74\x69\x6E\x67\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x4F\x66\x66\x73\x65\x74","\x63\x68\x69\x6C\x64\x4D\x6F\x76\x65\x64","\x69\x73\x52\x65\x6E\x64\x65\x72\x69\x6E\x67","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x46\x69\x78\x65\x64\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x72\x74","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x6F\x70\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x69\x73\x41\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x75\x70\x64\x61\x74\x65\x46\x6C\x6F\x61\x74\x69\x6E\x67\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x4E\x65\x78\x74\x50\x6F\x69\x6E\x74","\x69\x73\x4F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x53\x4F\x55\x52\x43\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x54\x41\x52\x47\x45\x54\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x53\x4F\x55\x52\x43\x45\x5F\x50\x4F\x52\x54","\x53\x54\x59\x4C\x45\x5F\x54\x41\x52\x47\x45\x54\x5F\x50\x4F\x52\x54","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x55\x54\x49\x4E\x47\x5F\x43\x45\x4E\x54\x45\x52\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x55\x54\x49\x4E\x47\x5F\x43\x45\x4E\x54\x45\x52\x5F\x59","\x67\x65\x74\x52\x65\x6C\x61\x74\x69\x76\x65\x50\x6F\x69\x6E\x74","\x72\x65\x6C\x61\x74\x69\x76\x65\x43\x63\x77","\x73\x65\x74\x52\x65\x6E\x64\x65\x72\x69\x6E\x67","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x67\x65\x74\x53\x74\x61\x74\x65\x73","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x61\x74\x65\x73","\x69\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x63\x72\x6F\x6C\x6C\x45\x76\x65\x6E\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x65\x6E\x64\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x48\x74\x6D\x6C\x50\x61\x6E\x65","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x43\x61\x6E\x76\x61\x73\x53\x69\x7A\x65","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C\x50\x61\x6E\x65","\x63\x6F\x6F\x72\x64\x6F\x72\x69\x67\x69\x6E","\x30\x2C\x30","\x73\x74\x61\x74\x69\x63","\x69\x73\x55\x70","\x67\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65\x46\x6F\x72\x52\x6F\x6F\x74","\x55\x50","\x44\x4F\x57\x4E","\x6D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x72\x65\x6E\x64\x65\x72\x48\x69\x6E\x74","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x45\x58\x41\x43\x54","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x46\x41\x53\x54\x45\x53\x54","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x46\x41\x53\x54\x45\x52","\x44\x49\x41\x4C\x45\x43\x54\x5F\x4D\x49\x58\x45\x44\x48\x54\x4D\x4C","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x69\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x73\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x70\x68\x56\x69\x65\x77","\x67\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x67\x72\x61\x70\x68","\x45\x4D\x50\x54\x59\x5F\x41\x52\x52\x41\x59","\x63\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x70\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x54\x69\x6D\x65\x6F\x75\x74","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x59","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x64\x65\x66\x61\x75\x6C\x74\x4F\x76\x65\x72\x6C\x61\x70","\x64\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x65\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x65\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x65\x78\x70\x6F\x72\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x6D\x70\x6F\x72\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x63\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x65\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x76\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x64\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x74\x69\x6D\x65\x72\x41\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x67\x6E\x6F\x72\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x78\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x53\x69\x7A\x65","\x6D\x69\x6E\x69\x6D\x75\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x6D\x61\x78\x69\x6D\x75\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x72\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x61\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x54\x6F\x50\x72\x65\x66\x65\x72\x72\x65\x64\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x46\x61\x63\x74\x6F\x72","\x6B\x65\x65\x70\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x56\x69\x73\x69\x62\x6C\x65\x4F\x6E\x5A\x6F\x6F\x6D","\x63\x65\x6E\x74\x65\x72\x5A\x6F\x6F\x6D","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x52\x65\x73\x69\x7A\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x4D\x6F\x76\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x4C\x6F\x6F\x70","\x6D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x61\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x63\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x68\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x49\x6D\x61\x67\x65","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66","\x65\x78\x70\x61\x6E\x64\x65\x64\x49\x6D\x61\x67\x65","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66","\x77\x61\x72\x6E\x69\x6E\x67\x49\x6D\x61\x67\x65","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73\x2F\x77\x61\x72\x6E\x69\x6E\x67\x2E\x67\x69\x66","\x61\x6C\x72\x65\x61\x64\x79\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x61\x6C\x72\x65\x61\x64\x79\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x45\x78\x70\x61\x6E\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x2D\x65\x78\x70\x61\x6E\x64","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x75\x6E\x6C\x6F\x61\x64","\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x3C\x76\x3A\x67\x72\x6F\x75\x70\x20\x73\x74\x79\x6C\x65\x3D\x22\x44\x49\x53\x50\x4C\x41\x59\x3A\x20\x6E\x6F\x6E\x65\x3B\x22\x3E\x3C\x2F\x76\x3A\x67\x72\x6F\x75\x70\x3E","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x70\x72\x6F\x63\x65\x73\x73\x43\x68\x61\x6E\x67\x65","\x67\x65\x74\x52\x65\x6D\x6F\x76\x65\x64\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x72\x65\x6D\x6F\x76\x65\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C","\x68\x6F\x6D\x65","\x61\x64\x64\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x63\x6C\x65\x61\x72\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","\x3C\x66\x6F\x6E\x74\x20\x63\x6F\x6C\x6F\x72\x3D\x72\x65\x64\x3E","\x3C\x2F\x66\x6F\x6E\x74\x3E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x69\x73\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x65\x6C\x6C\x53\x69\x7A\x65\x55\x70\x64\x61\x74\x65\x64","\x68\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x41\x74","\x69\x73\x54\x6F\x67\x67\x6C\x65\x45\x76\x65\x6E\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x50\x61\x6E\x6E\x69\x6E\x67\x4D\x61\x6E\x61\x67\x65\x72","\x67\x65\x74\x42\x6F\x72\x64\x65\x72\x53\x69\x7A\x65\x73","\x74\x68\x69\x6E","\x6D\x65\x64\x69\x75\x6D","\x74\x68\x69\x63\x6B","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x70\x61\x64\x64\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x67\x65\x74\x50\x72\x65\x66\x65\x72\x72\x65\x64\x50\x61\x67\x65\x53\x69\x7A\x65","\x67\x65\x74\x42\x6F\x72\x64\x65\x72","\x64\x6F\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x73\x74\x50\x72\x6F\x63\x65\x73\x73\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x67\x65\x74\x49\x6D\x61\x67\x65\x46\x72\x6F\x6D\x42\x75\x6E\x64\x6C\x65\x73","\x64\x61\x74\x61\x3A\x69\x6D\x61\x67\x65\x2F","\x3B\x62\x61\x73\x65\x36\x34\x2C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x61\x64\x64\x49\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65","\x62\x61\x63\x6B","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x47\x72\x6F\x75\x70","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x65\x74\x42\x6F\x75\x6E\x64\x73\x46\x6F\x72\x47\x72\x6F\x75\x70","\x61\x64\x64\x41\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65","\x61\x64\x64\x45\x64\x67\x65","\x69\x73\x41\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64","\x67\x65\x74\x44\x65\x6C\x65\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x6E\x63\x6C\x75\x64\x65\x45\x64\x67\x65\x73","\x6E\x65\x77\x45\x64\x67\x65","\x67\x65\x74\x46\x6F\x6C\x64\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x72\x65\x63\x75\x72\x73\x65","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x73\x77\x61\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x41\x6C\x74\x65\x72\x6E\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x50\x72\x65\x66\x65\x72\x72\x65\x64\x53\x69\x7A\x65\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x41\x6C\x6C\x45\x64\x67\x65\x73","\x69\x67\x6E\x6F\x72\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x53\x48\x41\x50\x45\x5F\x4C\x41\x42\x45\x4C","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45\x5F\x57\x49\x44\x54\x48","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45\x5F\x48\x45\x49\x47\x48\x54","\x67\x65\x74\x53\x69\x7A\x65\x46\x6F\x72\x53\x74\x72\x69\x6E\x67","\x72\x65\x73\x69\x7A\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x69\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x69\x73\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x47\x72\x61\x70\x68","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x43\x65\x6C\x6C\x43\x6F\x6E\x74\x61\x69\x6E\x6D\x65\x6E\x74\x41\x72\x65\x61","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x67\x65\x74\x4D\x61\x78\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x70","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x59","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x59","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x70\x6F\x69\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x46\x4C\x49\x50\x48","\x53\x54\x59\x4C\x45\x5F\x46\x4C\x49\x50\x56","\x69\x73\x50\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x46\x6F\x72\x50\x6F\x72\x74","\x69\x73\x43\x65\x6C\x6C\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x67\x65\x74\x43\x65\x6C\x6C\x42\x6F\x75\x6E\x64\x73","\x73\x68\x69\x66\x74\x50\x72\x65\x76\x69\x65\x77\x31","\x73\x68\x69\x66\x74\x50\x72\x65\x76\x69\x65\x77\x32","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x7A\x6F\x6F\x6D\x41\x63\x74\x75\x61\x6C","\x7A\x6F\x6F\x6D\x54\x6F","\x73\x63\x72\x6F\x6C\x6C\x52\x65\x63\x74\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x7A\x6F\x6F\x6D\x54\x6F\x52\x65\x63\x74","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x4F\x52\x54\x48\x4F\x47\x4F\x4E\x41\x4C","\x53\x65\x67\x6D\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x45\x6C\x62\x6F\x77\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x53\x69\x64\x65\x54\x6F\x53\x69\x64\x65","\x54\x6F\x70\x54\x6F\x42\x6F\x74\x74\x6F\x6D","\x45\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x4F\x72\x74\x68\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x69\x73\x4C\x6F\x6F\x70","\x69\x73\x43\x6C\x6F\x6E\x65\x45\x76\x65\x6E\x74","\x49\x53\x5F\x4D\x41\x43","\x69\x73\x4D\x65\x74\x61\x44\x6F\x77\x6E","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x65\x64\x45\x76\x65\x6E\x74","\x69\x73\x46\x6F\x72\x63\x65\x4D\x61\x72\x71\x75\x65\x65\x45\x76\x65\x6E\x74","\x76\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x41\x6C\x65\x72\x74","\x69\x73\x45\x64\x67\x65\x56\x61\x6C\x69\x64","\x69\x73\x56\x61\x6C\x69\x64\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x63\x68\x65\x63\x6B","\x76\x61\x6C\x69\x64\x61\x74\x65\x45\x64\x67\x65","\x76\x61\x6C\x69\x64\x61\x74\x65\x47\x72\x61\x70\x68","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x61\x74\x74\x72","\x63\x6F\x75\x6E\x74\x45\x72\x72\x6F\x72","\x73\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x74\x6F\x53\x74\x72\x69\x6E\x67","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x73\x65\x74\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x4E\x6F\x64\x65","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x43\x75\x72\x73\x6F\x72\x46\x6F\x72\x43\x65\x6C\x6C","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x47\x52\x41\x44\x49\x45\x4E\x54\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x53\x48\x41\x50\x45","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x49\x4D\x41\x47\x45","\x73\x65\x74\x42\x6F\x72\x64\x65\x72","\x53\x48\x41\x50\x45\x5F\x53\x57\x49\x4D\x4C\x41\x4E\x45","\x69\x73\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x65\x74\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x73\x45\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x49\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x73\x65\x74\x45\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x69\x73\x43\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x73\x65\x74\x43\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x67\x65\x74\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x43\x65\x6C\x6C\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x43\x4C\x4F\x4E\x45\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x63\x61\x6E\x45\x78\x70\x6F\x72\x74\x43\x65\x6C\x6C","\x63\x61\x6E\x49\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x44\x45\x4C\x45\x54\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x69\x73\x4C\x61\x62\x65\x6C\x4D\x6F\x76\x61\x62\x6C\x65","\x67\x65\x74\x4D\x6F\x76\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x43\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x4D\x4F\x56\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x50\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x73\x65\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x69\x73\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x73\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x73\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x69\x73\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x65\x6C\x6C\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x52\x45\x53\x49\x5A\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x69\x73\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x42\x65\x6E\x64\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x42\x45\x4E\x44\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x45\x44\x49\x54\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x69\x73\x56\x61\x6C\x69\x64\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x53\x54\x59\x4C\x45\x5F\x41\x55\x54\x4F\x53\x49\x5A\x45","\x73\x65\x74\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x73\x65\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x69\x73\x41\x6C\x6C\x6F\x77\x4F\x76\x65\x72\x6C\x61\x70\x50\x61\x72\x65\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4C\x44\x41\x42\x4C\x45","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x68\x69\x74\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x43\x6F\x6E\x74\x65\x6E\x74","\x67\x65\x74\x50\x6F\x69\x6E\x74\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x73","\x67\x65\x74\x43\x65\x6C\x6C\x73\x42\x65\x79\x6F\x6E\x64","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x52\x65\x67\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x4E\x65\x78\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x50\x61\x72\x65\x6E\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x43\x68\x69\x6C\x64\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x58","\x6C\x61\x73\x74\x4D\x6F\x75\x73\x65\x58","\x6C\x61\x73\x74\x4D\x6F\x75\x73\x65\x59","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x64\x65\x73\x74\x72\x6F\x79\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70","\x68\x65\x6C\x70","\x67\x72\x61\x70\x68\x52\x65\x6E\x64\x65\x72\x48\x69\x6E\x74","\x73\x68\x6F\x77\x56\x69\x65\x77\x70\x6F\x72\x74","\x73\x69\x7A\x65\x72\x53\x69\x7A\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x68\x61\x70\x65\x2D\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x6F\x70\x74\x69\x6D\x69\x7A\x65\x53\x70\x65\x65\x64","\x69\x6D\x61\x67\x65\x2D\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x75\x70\x64\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x75\x70\x64\x61\x74\x65","\x70\x61\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x66\x72\x65\x73\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x72\x64\x65\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x73\x69\x7A\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x7A\x65\x72","\x73\x65\x74\x5A\x6F\x6F\x6D\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x53\x6F\x75\x72\x63\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x67\x65\x74\x4F\x75\x74\x6C\x69\x6E\x65\x4F\x66\x66\x73\x65\x74","\x73\x74\x61\x72\x74\x58","\x73\x74\x61\x72\x74\x59","\x64\x78\x30","\x64\x79\x30","\x6E","\x76\x61\x6C\x69\x64\x4E\x65\x69\x67\x68\x62\x6F\x72\x73","\x74\x79\x70\x65\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x4E\x65\x69\x67\x68\x62\x6F\x72\x73\x41\x6C\x6C\x6F\x77\x65\x64","\x63\x68\x65\x63\x6B\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x68\x65\x63\x6B\x4E\x65\x69\x67\x68\x62\x6F\x72\x73","\x63\x68\x65\x63\x6B\x54\x79\x70\x65","\x75\x6E\x64\x6F\x48\x61\x6E\x64\x6C\x65\x72","\x62\x75\x62\x62\x6C\x69\x6E\x67","\x69\x73\x42\x75\x62\x62\x6C\x69\x6E\x67","\x73\x65\x74\x42\x75\x62\x62\x6C\x69\x6E\x67","\x67\x65\x74\x4C\x61\x79\x6F\x75\x74","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x72\x65\x73\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x66\x6F\x6C\x64\x48\x61\x6E\x64\x6C\x65\x72","\x73\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x73\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x69\x73\x43\x65\x6C\x6C\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x53\x68\x69\x66\x74\x61\x62\x6C\x65","\x69\x73\x53\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x73\x65\x74\x53\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x73\x65\x74\x53\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x63\x65\x6C\x6C\x52\x65\x73\x69\x7A\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C\x73\x54\x6F\x53\x68\x69\x66\x74","\x73\x68\x69\x66\x74\x43\x65\x6C\x6C","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x61\x64\x64\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x41\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x52\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x65\x74\x41\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x52\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x41\x64\x64\x65\x64","\x72\x65\x73\x69\x7A\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x6F\x6C\x64\x42\x6F\x75\x6E\x64\x73","\x6F\x6C\x64\x53\x74\x61\x74\x65\x73","\x6F\x6C\x64\x53\x63\x61\x6C\x65","\x64\x65\x6C\x74\x61\x73","\x63\x6F\x75\x6E\x74","\x58","\x59","\x61\x64\x64\x45\x64\x67\x65\x73","\x72\x65\x73\x6F\x6C\x76\x65","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x53\x74\x61\x74\x65","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65\x53\x74\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x68\x61\x70\x65","\x6D\x61\x78\x43\x65\x6C\x6C\x73","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65","\x63\x75\x72\x72\x65\x6E\x74\x44\x78","\x63\x75\x72\x72\x65\x6E\x74\x44\x79","\x75\x70\x64\x61\x74\x65\x43\x75\x72\x73\x6F\x72","\x73\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x44\x72\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x4F\x6E\x4D\x6F\x76\x65","\x70\x72\x65\x76\x69\x65\x77\x43\x6F\x6C\x6F\x72","\x68\x74\x6D\x6C\x50\x72\x65\x76\x69\x65\x77","\x73\x63\x61\x6C\x65\x47\x72\x69\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x4D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x4D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x73\x65\x74\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x65\x6C\x6C\x57\x61\x73\x43\x6C\x69\x63\x6B\x65\x64","\x53\x45\x4C\x45\x43\x54","\x66\x69\x72\x73\x74","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x68\x61\x70\x65","\x70\x42\x6F\x75\x6E\x64\x73","\x75\x73\x65\x47\x75\x69\x64\x65\x73\x46\x6F\x72\x45\x76\x65\x6E\x74","\x73\x65\x74\x48\x69\x67\x68\x6C\x69\x67\x68\x74\x43\x6F\x6C\x6F\x72","\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x54\x41\x52\x47\x45\x54\x5F\x43\x4F\x4C\x4F\x52","\x43\x55\x52\x53\x4F\x52\x5F\x4D\x4F\x56\x41\x42\x4C\x45\x5F\x45\x44\x47\x45","\x43\x55\x52\x53\x4F\x52\x5F\x4D\x4F\x56\x41\x42\x4C\x45\x5F\x56\x45\x52\x54\x45\x58","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x64\x65\x73\x74\x72\x6F\x79\x53\x68\x61\x70\x65\x73","\x67\x75\x69\x64\x65\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x74\x72\x69\x67\x67\x65\x72\x58","\x74\x72\x69\x67\x67\x65\x72\x59","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4F\x6E\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x70\x72\x65\x76\x69\x65\x77\x45\x6E\x61\x62\x6C\x65\x64","\x75\x73\x65\x47\x72\x69\x64","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x70\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x76\x61\x6C\x69\x64\x43\x6F\x6C\x6F\x72","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x69\x6E\x76\x61\x6C\x69\x64\x43\x6F\x6C\x6F\x72","\x44\x45\x46\x41\x55\x4C\x54\x5F\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x68\x6F\x74\x73\x70\x6F\x74","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x68\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x76\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x6D\x61\x72\x6B\x65\x64\x53\x74\x61\x74\x65","\x73\x65\x74\x48\x6F\x74\x73\x70\x6F\x74","\x67\x65\x74\x48\x6F\x74\x73\x70\x6F\x74","\x73\x65\x74\x48\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x48\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x68\x61\x73\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x4D\x61\x72\x6B\x65\x64\x53\x74\x61\x74\x65","\x75\x6E\x6D\x61\x72\x6B","\x70\x72\x6F\x63\x65\x73\x73","\x69\x73\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x4D\x61\x72\x6B\x65\x72\x43\x6F\x6C\x6F\x72","\x6D\x61\x72\x6B\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65\x54\x6F\x4D\x61\x72\x6B","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73\x48\x6F\x74\x73\x70\x6F\x74","\x72\x65\x73\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x68\x61\x6E\x64\x6C\x65\x72\x73","\x6D\x61\x78\x48\x61\x6E\x64\x6C\x65\x72\x73","\x6D\x6F\x76\x65\x49\x63\x6F\x6E\x46\x72\x6F\x6E\x74","\x6D\x6F\x76\x65\x49\x63\x6F\x6E\x42\x61\x63\x6B","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x6D\x61\x72\x6B\x65\x72","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x48\x61\x6E\x64\x6C\x65\x72","\x77\x61\x79\x70\x6F\x69\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x45\x6E\x61\x62\x6C\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x44\x65\x6C\x61\x79","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x49\x6E\x50\x72\x6F\x67\x72\x65\x73\x73","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x56\x61\x6C\x69\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x69\x6E\x69\x74\x69\x61\x6C\x54\x6F\x75\x63\x68\x58","\x69\x6E\x69\x74\x69\x61\x6C\x54\x6F\x75\x63\x68\x59","\x69\x67\x6E\x6F\x72\x65\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x63\x6F\x6E\x4F\x66\x66\x73\x65\x74","\x65\x64\x67\x65\x53\x74\x61\x74\x65","\x64\x72\x69\x6C\x6C\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E\x43\x6F\x75\x6E\x74\x65\x72","\x6D\x6F\x76\x65\x50\x72\x65\x76\x69\x65\x77\x41\x77\x61\x79","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x63\x6F\x6E\x53\x74\x61\x74\x65","\x69\x63\x6F\x6E\x73","\x72\x65\x64\x72\x61\x77\x49\x63\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79\x49\x63\x6F\x6E\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x69\x73\x4D\x6F\x76\x65\x49\x63\x6F\x6E\x54\x6F\x46\x72\x6F\x6E\x74\x46\x6F\x72\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x49\x63\x6F\x6E\x73","\x43\x55\x52\x53\x4F\x52\x5F\x43\x4F\x4E\x4E\x45\x43\x54","\x63\x75\x72\x72\x65\x6E\x74\x53\x74\x61\x74\x65","\x69\x63\x6F\x6E","\x67\x65\x74\x49\x63\x6F\x6E\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x73\x53\x74\x61\x72\x74\x45\x76\x65\x6E\x74","\x63\x75\x72\x72\x65\x6E\x74\x46\x6F\x63\x75\x73","\x63\x75\x72\x72\x65\x6E\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x73\x6F\x75\x72\x63\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x77\x61\x79\x70\x6F\x69\x6E\x74\x73","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x73\x65\x6C\x65\x63\x74\x65\x64\x49\x63\x6F\x6E","\x69\x73\x49\x6D\x6D\x65\x64\x69\x61\x74\x65\x43\x6F\x6E\x6E\x65\x63\x74\x53\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x65\x43\x75\x72\x72\x65\x6E\x74\x53\x74\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x54\x61\x72\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x67\x65\x74\x53\x6F\x75\x72\x63\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x64\x72\x61\x77\x50\x72\x65\x76\x69\x65\x77","\x75\x70\x64\x61\x74\x65\x49\x63\x6F\x6E\x73","\x69\x73\x53\x74\x6F\x70\x45\x76\x65\x6E\x74","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x57\x69\x64\x74\x68","\x67\x65\x74\x45\x64\x67\x65\x43\x6F\x6C\x6F\x72","\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x63\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x70\x6F\x69\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x70\x6F\x69\x6E\x74\x2E\x67\x69\x66","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x43\x6F\x6C\x6F\x72","\x66\x6F\x63\x75\x73\x49\x63\x6F\x6E\x73","\x66\x6F\x63\x75\x73\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x66\x6F\x63\x75\x73\x50\x6F\x69\x6E\x74\x73","\x63\x75\x72\x72\x65\x6E\x74\x46\x6F\x63\x75\x73\x41\x72\x65\x61","\x67\x65\x74\x49\x6D\x61\x67\x65\x46\x6F\x72\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x69\x73\x45\x76\x65\x6E\x74\x49\x67\x6E\x6F\x72\x65\x64","\x72\x65\x70\x61\x69\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x73\x68\x61\x72\x65\x64\x44\x69\x76","\x63\x75\x72\x72\x65\x6E\x74\x58","\x63\x75\x72\x72\x65\x6E\x74\x59","\x64\x72\x61\x67\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x78\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x61\x6C\x6C\x6F\x77\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73\x43\x68\x65\x63\x6B","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x52\x61\x73\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x53\x68\x61\x70\x65","\x73\x69\x7A\x65\x72\x73","\x6E\x2D\x72\x65\x73\x69\x7A\x65","\x6E\x65\x2D\x72\x65\x73\x69\x7A\x65","\x77\x2D\x72\x65\x73\x69\x7A\x65","\x65\x2D\x72\x65\x73\x69\x7A\x65","\x73\x77\x2D\x72\x65\x73\x69\x7A\x65","\x73\x2D\x72\x65\x73\x69\x7A\x65","\x73\x65\x2D\x72\x65\x73\x69\x7A\x65","\x6C\x61\x62\x65\x6C\x53\x68\x61\x70\x65","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x53\x68\x61\x70\x65","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x53\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x44\x61\x73\x68\x65\x64","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x45\x44","\x63\x72\x65\x61\x74\x65\x53\x69\x7A\x65\x72\x53\x68\x61\x70\x65","\x69\x73\x53\x69\x7A\x65\x72\x56\x69\x73\x69\x62\x6C\x65","\x52\x4F\x54\x41\x54\x49\x4F\x4E\x5F\x48\x41\x4E\x44\x4C\x45","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45","\x70\x72\x65\x76\x69\x65\x77","\x63\x75\x72\x72\x65\x6E\x74\x41\x6C\x70\x68\x61","\x61\x74\x61\x6E","\x75\x6E\x69\x6F\x6E","\x72\x6F\x74\x61\x74\x65\x43\x65\x6C\x6C","\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x62\x65\x6E\x64\x73","\x72\x65\x6D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x61\x62\x73\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x50\x6F\x69\x6E\x74\x73","\x69\x73\x41\x64\x64\x50\x6F\x69\x6E\x74\x45\x76\x65\x6E\x74","\x61\x64\x64\x50\x6F\x69\x6E\x74","\x63\x72\x65\x61\x74\x65\x42\x65\x6E\x64\x73","\x69\x6E\x69\x74\x42\x65\x6E\x64","\x43\x55\x52\x53\x4F\x52\x5F\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45","\x69\x73\x52\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74\x45\x76\x65\x6E\x74","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x45\x44","\x69\x73\x48\x61\x6E\x64\x6C\x65\x56\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x53\x68\x61\x70\x65","\x69\x73\x48\x61\x6E\x64\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x43\x55\x52\x53\x4F\x52\x5F\x42\x45\x4E\x44\x5F\x48\x41\x4E\x44\x4C\x45","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x73\x54\x61\x72\x67\x65\x74","\x69\x73\x4C\x61\x62\x65\x6C","\x63\x6C\x6F\x6E\x65\x50\x72\x65\x76\x69\x65\x77\x53\x74\x61\x74\x65","\x67\x65\x74\x53\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x74\x61\x74\x65","\x73\x65\x74\x50\x72\x65\x76\x69\x65\x77\x43\x6F\x6C\x6F\x72","\x6D\x6F\x76\x65\x4C\x61\x62\x65\x6C","\x63\x68\x61\x6E\x67\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x63\x68\x61\x6E\x67\x65\x50\x6F\x69\x6E\x74\x73","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x66\x69\x6E\x64\x4E\x65\x61\x72\x65\x73\x74\x53\x65\x67\x6D\x65\x6E\x74","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x4C\x4F\x43\x4B\x45\x44\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x72\x65\x64\x72\x61\x77\x49\x6E\x6E\x65\x72\x42\x65\x6E\x64\x73","\x66\x6C\x69\x70\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B\x4F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B\x4F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x56\x69\x72\x74\x75\x61\x6C\x42\x65\x6E\x64","\x67\x65\x74\x43\x75\x72\x73\x6F\x72\x46\x6F\x72\x42\x65\x6E\x64","\x45\x44\x47\x45\x53\x54\x59\x4C\x45\x5F\x54\x4F\x50\x54\x4F\x42\x4F\x54\x54\x4F\x4D","\x45\x44\x47\x45\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x72\x6F\x77\x2D\x72\x65\x73\x69\x7A\x65","\x63\x6F\x6C\x2D\x72\x65\x73\x69\x7A\x65","\x6E\x6F\x72\x6D\x61\x6C\x4B\x65\x79\x73","\x73\x68\x69\x66\x74\x4B\x65\x79\x73","\x63\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79\x73","\x63\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79\x73","\x6B\x65\x79\x44\x6F\x77\x6E","\x62\x69\x6E\x64\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x67\x65\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x69\x73\x47\x72\x61\x70\x68\x45\x76\x65\x6E\x74","\x68\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x73\x65\x74\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x6D\x78\x54\x6F\x6F\x6C\x74\x69\x70","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x73\x74\x61\x74\x65\x53\x6F\x75\x72\x63\x65","\x72\x65\x73\x65\x74\x54\x69\x6D\x65\x72","\x48\x49\x47\x48\x4C\x49\x47\x48\x54\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x72\x65\x70\x61\x69\x6E\x74\x48\x61\x6E\x64\x6C\x65\x72","\x6B\x65\x65\x70\x4F\x6E\x54\x6F\x70","\x64\x72\x61\x77\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x65\x64\x69\x74\x6F\x72","\x68\x69\x64\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x62\x69\x6E\x64\x41\x63\x74\x69\x6F\x6E","\x63\x6F\x6E\x66\x69\x67","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x49\x74\x65\x6D\x73","\x69\x66","\x61\x73","\x69\x63\x6F\x6E\x43\x6C\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x73\x65\x70\x61\x72\x61\x74\x6F\x72","\x6E\x6F\x63\x65\x6C\x6C","\x6E\x63\x65\x6C\x6C\x73","\x6E\x6F\x74\x52\x6F\x6F\x74","\x6E\x6F\x6E\x45\x6D\x70\x74\x79","\x65\x78\x70\x61\x6E\x64\x61\x62\x6C\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x61\x62\x6C\x65","\x76\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x65\x6D\x70\x74\x79\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x62\x61\x72","\x69\x6E\x73\x65\x72\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x2F\x73\x65\x70\x61\x72\x61\x74\x6F\x72\x2E\x67\x69\x66","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x4F\x70\x74\x69\x6F\x6E","\x73\x65\x74\x4D\x6F\x64\x65","\x61\x64\x64\x50\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x56\x61\x6C\x75\x65\x73","\x70\x6F\x70\x75\x70\x48\x61\x6E\x64\x6C\x65\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x70\x68","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x6B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x61\x6D\x65","\x49\x53\x5F\x4C\x4F\x43\x41\x4C","\x63\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6F\x6E","\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x65\x64\x69\x74\x6F\x72","\x61\x73\x6B\x5A\x6F\x6F\x6D\x52\x65\x73\x6F\x75\x72\x63\x65","\x61\x73\x6B\x5A\x6F\x6F\x6D","\x6C\x61\x73\x74\x53\x61\x76\x65\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x6C\x61\x73\x74\x53\x61\x76\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x46\x69\x6C\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x46\x69\x6C\x65","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x74\x61\x73\x6B\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x74\x61\x73\x6B\x73","\x68\x65\x6C\x70\x52\x65\x73\x6F\x75\x72\x63\x65","\x6F\x75\x74\x6C\x69\x6E\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x62\x6C\x43\x6C\x69\x63\x6B\x41\x63\x74\x69\x6F\x6E","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x52\x65\x71\x75\x69\x72\x65\x64","\x66\x6F\x72\x63\x65\x64\x49\x6E\x73\x65\x72\x74\x69\x6E\x67","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x64\x65\x66\x61\x75\x6C\x74\x47\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x42\x6F\x72\x64\x65\x72\x53\x69\x7A\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x6F\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x4E\x61\x6D\x65","\x75\x72\x6C\x50\x6F\x73\x74","\x75\x72\x6C\x49\x6D\x61\x67\x65","\x6C\x61\x79\x6F\x75\x74\x44\x69\x61\x67\x72\x61\x6D","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x53\x70\x61\x63\x69\x6E\x67","\x6D\x61\x69\x6E\x74\x61\x69\x6E\x53\x77\x69\x6D\x6C\x61\x6E\x65\x73","\x6C\x61\x79\x6F\x75\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x73","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x49\x6E\x64\x65\x78","\x74\x61\x73\x6B\x73\x57\x69\x6E\x64\x6F\x77\x49\x6D\x61\x67\x65","\x74\x61\x73\x6B\x73\x54\x6F\x70","\x68\x65\x6C\x70\x57\x69\x6E\x64\x6F\x77\x49\x6D\x61\x67\x65","\x75\x72\x6C\x48\x65\x6C\x70","\x68\x65\x6C\x70\x57\x69\x64\x74\x68","\x68\x65\x6C\x70\x48\x65\x69\x67\x68\x74","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x57\x69\x64\x74\x68","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x48\x65\x69\x67\x68\x74","\x6D\x6F\x76\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x44\x69\x61\x6C\x6F\x67","\x76\x61\x6C\x69\x64\x61\x74\x69\x6E\x67","\x65\x78\x70\x6F\x72\x74\x49\x6D\x61\x67\x65","\x67\x65\x74\x55\x72\x6C\x49\x6D\x61\x67\x65","\x67\x65\x74\x56\x69\x65\x77\x58\x6D\x6C","\x5F\x62\x6C\x61\x6E\x6B","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x75\x6E\x67\x72\x6F\x75\x70","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x73\x68\x6F\x77\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x73\x65\x6C\x65\x63\x74\x4E\x6F\x6E\x65","\x74\x6F\x42\x61\x63\x6B","\x74\x6F\x46\x72\x6F\x6E\x74","\x73\x65\x6C\x65\x63\x74\x50\x72\x65\x76\x69\x6F\x75\x73","\x73\x65\x6C\x65\x63\x74\x4E\x65\x78\x74","\x73\x65\x6C\x65\x63\x74\x50\x61\x72\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x68\x69\x6C\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x41\x6C\x6C","\x65\x78\x70\x61\x6E\x64","\x65\x78\x70\x61\x6E\x64\x41\x6C\x6C","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x4C\x65\x66\x74","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x43\x65\x6E\x74\x65\x72","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x52\x69\x67\x68\x74","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x54\x6F\x70","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x4D\x69\x64\x64\x6C\x65","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x42\x6F\x74\x74\x6F\x6D","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x4C\x65\x66\x74","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x43\x65\x6E\x74\x65\x72","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x52\x69\x67\x68\x74","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x54\x6F\x70","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x4D\x69\x64\x64\x6C\x65","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x42\x6F\x74\x74\x6F\x6D","\x70\x72\x6F\x6D\x70\x74","\x74\x6F\x67\x67\x6C\x65\x54\x61\x73\x6B\x73","\x73\x68\x6F\x77\x54\x61\x73\x6B\x73","\x74\x6F\x67\x67\x6C\x65\x48\x65\x6C\x70","\x73\x68\x6F\x77\x48\x65\x6C\x70","\x74\x6F\x67\x67\x6C\x65\x4F\x75\x74\x6C\x69\x6E\x65","\x73\x68\x6F\x77\x4F\x75\x74\x6C\x69\x6E\x65","\x74\x6F\x67\x67\x6C\x65\x43\x6F\x6E\x73\x6F\x6C\x65","\x72\x65\x73\x65\x74\x48\x69\x73\x74\x6F\x72\x79","\x72\x65\x73\x65\x74\x46\x69\x72\x73\x74\x54\x69\x6D\x65","\x63\x6F\x6F\x6B\x69\x65","\x6D\x78\x67\x72\x61\x70\x68\x3D\x73\x65\x65\x6E\x3B\x20\x65\x78\x70\x69\x72\x65\x73\x3D\x46\x72\x69\x2C\x20\x32\x37\x20\x4A\x75\x6C\x20\x32\x30\x30\x31\x20\x30\x32\x3A\x34\x37\x3A\x31\x31\x20\x55\x54\x43\x3B\x20\x70\x61\x74\x68\x3D\x2F","\x43\x61\x6E\x6E\x6F\x74\x20\x65\x78\x65\x63\x75\x74\x65\x20","\x3A\x20","\x43\x61\x6E\x6E\x6F\x74\x20\x66\x69\x6E\x64\x20\x61\x63\x74\x69\x6F\x6E\x20","\x61\x64\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x62\x6C\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x55\x6E\x64\x6F\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x72\x69\x6C\x6C\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x49\x6E\x73\x65\x72\x74\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x63\x72\x65\x61\x74\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x4C\x61\x79\x6F\x75\x74\x4D\x61\x6E\x61\x67\x65\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x61\x79\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x61\x79\x6F\x75\x74","\x64\x69\x61\x67\x72\x61\x6D\x4C\x61\x79\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x44\x69\x61\x67\x72\x61\x6D\x4C\x61\x79\x6F\x75\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x72\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x73\x65\x74\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x74\x6F\x4C\x6F\x63\x61\x6C\x65\x53\x74\x72\x69\x6E\x67","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x54\x69\x74\x6C\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x74\x54\x69\x74\x6C\x65","\x74\x72\x65\x65\x4C\x61\x79\x6F\x75\x74","\x20\x3E\x20","\x67\x65\x74\x52\x6F\x6F\x74\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70","\x72\x65\x61\x64\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x55\x72\x6C\x50\x6F\x73\x74","\x77\x72\x69\x74\x65\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x70\x6F\x73\x74\x44\x69\x61\x67\x72\x61\x6D","\x73\x77\x61\x70\x53\x74\x79\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x69\x73\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x56\x69\x73\x69\x62\x6C\x65","\x72\x65\x61\x64\x6F\x6E\x6C\x79","\x49\x44","\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x61\x73\x6B\x73","\x72\x65\x66\x72\x65\x73\x68\x54\x61\x73\x6B\x73","\x66\x72\x61\x6D\x65\x42\x6F\x72\x64\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x43\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x65\x64\x4D\x6F\x76\x69\x6E\x67","\x63\x6F\x64\x65\x63\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x61\x64\x64\x41\x6C\x69\x61\x73","\x61\x6C\x69\x61\x73\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x65\x6E\x63\x6F\x64\x65\x44\x65\x66\x61\x75\x6C\x74\x73","\x67\x65\x74\x4F\x62\x6A\x65\x63\x74","\x72\x65\x66\x65\x72\x65\x6E\x63\x65","\x67\x65\x74\x43\x6F\x64\x65\x63","\x69\x6D\x70\x6F\x72\x74\x4E\x6F\x64\x65","\x6D\x78\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x63\x6F\x64\x65\x63\x20\x66\x6F\x72\x20","\x43\x61\x6E\x6E\x6F\x74\x20\x64\x65\x63\x6F\x64\x65\x20","\x65\x6E\x63\x6F\x64\x65\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x64\x65\x63","\x64\x65\x63\x6F\x64\x65\x43\x65\x6C\x6C","\x69\x6E\x73\x65\x72\x74\x49\x6E\x74\x6F\x47\x72\x61\x70\x68","\x65\x78\x63\x6C\x75\x64\x65","\x69\x64\x72\x65\x66\x73","\x6D\x61\x70\x70\x69\x6E\x67","\x72\x65\x76\x65\x72\x73\x65","\x63\x6C\x6F\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x4E\x61\x6D\x65","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x61\x6D\x65","\x69\x73\x45\x78\x63\x6C\x75\x64\x65\x64","\x69\x73\x52\x65\x66\x65\x72\x65\x6E\x63\x65","\x62\x65\x66\x6F\x72\x65\x45\x6E\x63\x6F\x64\x65","\x65\x6E\x63\x6F\x64\x65\x4F\x62\x6A\x65\x63\x74","\x61\x66\x74\x65\x72\x45\x6E\x63\x6F\x64\x65","\x65\x6E\x63\x6F\x64\x65\x56\x61\x6C\x75\x65","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x49\x44\x20\x66\x6F\x72\x20","\x77\x72\x69\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x72\x69\x74\x65\x50\x72\x69\x6D\x69\x74\x69\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x72\x69\x74\x65\x43\x6F\x6D\x70\x6C\x65\x78\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x58\x6D\x6C","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x6E\x6F\x64\x65\x20\x66\x6F\x72\x20","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x46\x72\x6F\x6D\x58\x6D\x6C","\x62\x65\x66\x6F\x72\x65\x44\x65\x63\x6F\x64\x65","\x64\x65\x63\x6F\x64\x65\x4E\x6F\x64\x65","\x61\x66\x74\x65\x72\x44\x65\x63\x6F\x64\x65","\x64\x65\x63\x6F\x64\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x63\x6F\x64\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x64\x65\x63\x6F\x64\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x64\x65\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x6F\x62\x6A\x65\x63\x74\x20\x66\x6F\x72\x20","\x70\x72\x6F\x63\x65\x73\x73\x49\x6E\x63\x6C\x75\x64\x65","\x64\x65\x63\x6F\x64\x65\x43\x68\x69\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x61\x64\x64\x4F\x62\x6A\x65\x63\x74\x56\x61\x6C\x75\x65","\x69\x6E\x63\x6C\x75\x64\x65","\x72\x65\x6D\x6F\x76\x65\x57\x68\x69\x74\x65\x73\x70\x61\x63\x65","\x64\x65\x63\x6F\x64\x65\x52\x6F\x6F\x74","\x67\x72\x61\x70\x68\x4C\x69\x73\x74\x65\x6E\x65\x72\x73\x20\x65\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x73\x20\x76\x69\x65\x77\x20\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72\x20\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72\x20\x65\x64\x69\x74\x6F\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x6C\x61\x79\x65\x72","\x67\x65\x74\x53\x74\x72\x69\x6E\x67\x56\x61\x6C\x75\x65","\x6D\x78\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74\x43\x6F\x64\x65\x63\x2E\x64\x65\x63\x6F\x64\x65\x3A\x20\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74\x20","\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x64","\x70\x72\x65\x73\x73\x65\x64\x49\x63\x6F\x6E","\x6D\x6F\x64\x65","\x74\x6F\x67\x67\x6C\x65","\x2D\x2D\x2D","\x63\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x54\x65\x6D\x70\x6C\x61\x74\x65\x20","\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6D\x6F\x64\x69\x66\x69\x65\x64\x20\x6C\x61\x73\x74\x53\x6E\x61\x70\x73\x68\x6F\x74\x20\x69\x67\x6E\x6F\x72\x65\x64\x43\x68\x61\x6E\x67\x65\x73\x20\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72\x20\x67\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x20\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x41\x72\x72\x61\x79","\x64\x65\x63\x6F\x64\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x75\x69","\x64\x65\x63\x6F\x64\x65\x55\x69","\x73\x65\x74\x4D\x61\x70\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x72\x65\x73\x6F\x75\x72\x63\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65"];var mxClient={VERSION:_0x4e14[0],IS_IE:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[1]),IS_IE6:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[4]),IS_QUIRKS:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[1])&&(null==document[_0x4e14[5]]||5==document[_0x4e14[5]]),VML_PREFIX:_0x4e14[6],OFFICE_PREFIX:_0x4e14[7],IS_NS:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[8])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[1]),IS_OP:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[9]),IS_OT:0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[10])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[11])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[12])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[13])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[14])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[15]),IS_SF:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[16])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[17]),IS_GC:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[17]),IS_MT:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[18])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[19])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[20])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[21])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[22])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[23])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[24])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[25])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[26])&&0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[27]),IS_SVG:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[18])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[21])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[28])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[26])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[29])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[30])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[16])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[31])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[9]),NO_FO:0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[19])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[22])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[20])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[23])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[25])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[27])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[32])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[33])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[9])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[1])||0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[34]),IS_VML:_0x4e14[35]==navigator[_0x4e14[37]][_0x4e14[36]](),IS_MAC:0<navigator[_0x4e14[3]][_0x4e14[36]]()[_0x4e14[2]](_0x4e14[38]),IS_TOUCH:0<navigator[_0x4e14[3]][_0x4e14[36]]()[_0x4e14[2]](_0x4e14[39])||0<navigator[_0x4e14[3]][_0x4e14[36]]()[_0x4e14[2]](_0x4e14[40])||0<navigator[_0x4e14[3]][_0x4e14[36]]()[_0x4e14[2]](_0x4e14[41])||0<navigator[_0x4e14[3]][_0x4e14[36]]()[_0x4e14[2]](_0x4e14[42]),IS_LOCAL:0>document[_0x4e14[45]][_0x4e14[44]][_0x4e14[2]](_0x4e14[43])&&0>document[_0x4e14[45]][_0x4e14[44]][_0x4e14[2]](_0x4e14[46]),isBrowserSupported:function(){return mxClient[_0x4e14[47]]||mxClient[_0x4e14[48]]},link:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=_0xa132x4||document;if(mxClient[_0x4e14[49]]){_0xa132x4[_0x4e14[53]](_0x4e14[50]+_0xa132x2+_0x4e14[51]+_0xa132x3+_0x4e14[52])}else {var _0xa132x5=_0xa132x4[_0x4e14[55]](_0x4e14[54]);_0xa132x5[_0x4e14[57]](_0x4e14[56],_0xa132x2);_0xa132x5[_0x4e14[57]](_0x4e14[44],_0xa132x3);_0xa132x5[_0x4e14[57]](_0x4e14[58],_0x4e14[59]);_0xa132x5[_0x4e14[57]](_0x4e14[60],_0x4e14[61]);_0xa132x4[_0x4e14[64]](_0x4e14[63])[0][_0x4e14[62]](_0xa132x5);};},include:function(_0xa132x2){document[_0x4e14[53]](_0x4e14[65]+_0xa132x2+_0x4e14[66])},dispose:function(){for(var _0xa132x2=0;_0xa132x2<mxEvent[_0x4e14[68]][_0x4e14[67]];_0xa132x2++){null!=mxEvent[_0x4e14[68]][_0xa132x2][_0x4e14[69]]&&mxEvent[_0x4e14[70]](mxEvent[_0x4e14[68]][_0xa132x2])}}};mxClient[_0x4e14[71]]&&mxClient[_0x4e14[72]]?mxClient[_0x4e14[73]]=_0x4e14[74]:mxClient[_0x4e14[75]]||mxClient[_0x4e14[76]]?mxClient[_0x4e14[73]]=_0x4e14[77]:mxClient[_0x4e14[78]]?mxClient[_0x4e14[73]]=_0x4e14[79]:mxClient[_0x4e14[80]]&&9<=document[_0x4e14[5]]&&(mxClient[_0x4e14[73]]=_0x4e14[81]);_0x4e14[82]== typeof mxLoadResources&&(mxLoadResources= !0);_0x4e14[82]== typeof mxResourceExtension&&(mxResourceExtension=_0x4e14[83]);_0x4e14[82]== typeof mxLoadStylesheets&&(mxLoadStylesheets= !0);_0x4e14[82]!= typeof mxBasePath&&0<mxBasePath[_0x4e14[67]]?(_0x4e14[84]==mxBasePath[_0x4e14[85]](mxBasePath[_0x4e14[67]]-1)&&(mxBasePath=mxBasePath[_0x4e14[85]](0,mxBasePath[_0x4e14[67]]-1)),mxClient[_0x4e14[86]]=mxBasePath):mxClient[_0x4e14[86]]=_0x4e14[87];_0x4e14[82]!= typeof mxImageBasePath&&0<mxImageBasePath[_0x4e14[67]]?(_0x4e14[84]==mxImageBasePath[_0x4e14[85]](mxImageBasePath[_0x4e14[67]]-1)&&(mxImageBasePath=mxImageBasePath[_0x4e14[85]](0,mxImageBasePath[_0x4e14[67]]-1)),mxClient[_0x4e14[88]]=mxImageBasePath):mxClient[_0x4e14[88]]=mxClient[_0x4e14[86]]+_0x4e14[89];mxClient[_0x4e14[90]]=_0x4e14[82]!= typeof mxLanguage?mxLanguage:mxClient[_0x4e14[80]]?navigator[_0x4e14[91]]:navigator[_0x4e14[90]];mxClient[_0x4e14[92]]=_0x4e14[82]!= typeof mxDefaultLanguage?mxDefaultLanguage:_0x4e14[93];mxLoadStylesheets&&mxClient[_0x4e14[54]](_0x4e14[94],mxClient[_0x4e14[86]]+_0x4e14[95]);_0x4e14[82]!= typeof mxLanguages&&(mxClient[_0x4e14[96]]=mxLanguages);if(mxClient[_0x4e14[80]]){if(9<=document[_0x4e14[5]]){mxClient[_0x4e14[47]]= !1,mxClient[_0x4e14[48]]= !0}else {8==document[_0x4e14[5]]?(document[_0x4e14[100]][_0x4e14[99]](mxClient.VML_PREFIX,_0x4e14[97],_0x4e14[98]),document[_0x4e14[100]][_0x4e14[99]](mxClient.OFFICE_PREFIX,_0x4e14[101],_0x4e14[98])):(document[_0x4e14[100]][_0x4e14[99]](mxClient.VML_PREFIX,_0x4e14[97]),document[_0x4e14[100]][_0x4e14[99]](mxClient.OFFICE_PREFIX,_0x4e14[101]));var ss=document[_0x4e14[102]]();ss[_0x4e14[103]]=_0x4e14[104];mxLoadStylesheets&&mxClient[_0x4e14[54]](_0x4e14[94],mxClient[_0x4e14[86]]+_0x4e14[105]);};window[_0x4e14[108]](_0x4e14[106],mxClient[_0x4e14[107]]);};var mxLog={consoleName:_0x4e14[109],TRACE:!1,DEBUG:!0,WARN:!0,buffer:_0x4e14[110],init:function(){if(null==mxLog[_0x4e14[111]]&&null!=document[_0x4e14[112]]){var _0xa132x2=mxLog[_0x4e14[113]]+_0x4e14[114]+mxClient[_0x4e14[115]],_0xa132x3=document[_0x4e14[55]](_0x4e14[116]);_0xa132x3[_0x4e14[57]](_0x4e14[117],_0x4e14[118]);_0xa132x3[_0x4e14[57]](_0x4e14[119],_0x4e14[118]);var _0xa132x4=document[_0x4e14[55]](_0x4e14[120]),_0xa132x5=document[_0x4e14[55]](_0x4e14[121]),_0xa132x9=document[_0x4e14[55]](_0x4e14[122]);_0xa132x9[_0x4e14[124]][_0x4e14[123]]=_0x4e14[125];mxLog[_0x4e14[126]]=document[_0x4e14[55]](_0x4e14[126]);mxLog[_0x4e14[126]][_0x4e14[57]](_0x4e14[127],_0x4e14[128]);mxLog[_0x4e14[126]][_0x4e14[124]][_0x4e14[119]]=_0x4e14[118];mxLog[_0x4e14[126]][_0x4e14[124]][_0x4e14[129]]=_0x4e14[130];mxLog[_0x4e14[126]][_0x4e14[131]]=mxLog[_0x4e14[132]];mxLog[_0x4e14[126]][_0x4e14[124]][_0x4e14[117]]=mxClient[_0x4e14[133]]&&_0x4e14[134]!=document[_0x4e14[135]]?_0x4e14[136]:_0x4e14[118];_0xa132x9[_0x4e14[62]](mxLog[_0x4e14[126]]);_0xa132x5[_0x4e14[62]](_0xa132x9);_0xa132x4[_0x4e14[62]](_0xa132x5);_0xa132x5=document[_0x4e14[55]](_0x4e14[121]);mxLog[_0x4e14[122]]=document[_0x4e14[55]](_0x4e14[122]);mxLog[_0x4e14[122]][_0x4e14[124]][_0x4e14[123]]=_0x4e14[125];mxLog[_0x4e14[122]][_0x4e14[57]](_0x4e14[119],_0x4e14[137]);_0xa132x5[_0x4e14[62]](mxLog[_0x4e14[122]]);_0xa132x4[_0x4e14[62]](_0xa132x5);_0xa132x3[_0x4e14[62]](_0xa132x4);mxLog[_0x4e14[140]](_0x4e14[138],function(_0xa132x2){mxLog[_0x4e14[139]]()});mxLog[_0x4e14[140]](_0x4e14[141],function(_0xa132x2){_0xa132x2=mxUtils[_0x4e14[142]](document[_0x4e14[112]]);mxLog[_0x4e14[143]](_0xa132x2);});mxLog[_0x4e14[140]](_0x4e14[144],function(_0xa132x2){mxLog[_0x4e14[145]]=!mxLog[_0x4e14[145]];mxLog[_0x4e14[145]]?mxLog[_0x4e14[143]](_0x4e14[146]):mxLog[_0x4e14[143]](_0x4e14[147]);});mxLog[_0x4e14[140]](_0x4e14[148],function(_0xa132x2){try{mxUtils[_0x4e14[149]](mxLog[_0x4e14[126]][_0x4e14[131]])}catch(_0xa132x3){mxUtils[_0x4e14[150]](_0xa132x3)}});mxLog[_0x4e14[140]](_0x4e14[151],function(_0xa132x2){try{mxUtils[_0x4e14[152]](mxLog[_0x4e14[126]][_0x4e14[131]])}catch(_0xa132x3){mxUtils[_0x4e14[150]](_0xa132x3)}});mxLog[_0x4e14[140]](_0x4e14[153],function(_0xa132x2){mxLog[_0x4e14[126]][_0x4e14[131]]=_0x4e14[110]});_0xa132x5=_0xa132x4=0;_0x4e14[154]=== typeof window[_0x4e14[155]]?(_0xa132x4=window[_0x4e14[156]],_0xa132x5=window[_0x4e14[155]]):(_0xa132x4=document[_0x4e14[158]][_0x4e14[157]]||document[_0x4e14[112]][_0x4e14[157]],_0xa132x5=document[_0x4e14[112]][_0x4e14[159]]);mxLog[_0x4e14[111]]= new mxWindow(_0xa132x2,_0xa132x3,Math[_0x4e14[160]](0,_0xa132x5-320),Math[_0x4e14[160]](0,_0xa132x4-210),300,160);mxLog[_0x4e14[111]][_0x4e14[161]](!0);mxLog[_0x4e14[111]][_0x4e14[162]](!1);mxLog[_0x4e14[111]][_0x4e14[163]](!0);mxLog[_0x4e14[111]][_0x4e14[164]](!0);mxLog[_0x4e14[111]][_0x4e14[165]]= !1;if((mxClient[_0x4e14[133]]||mxClient[_0x4e14[80]])&&!mxClient[_0x4e14[76]]&&!mxClient[_0x4e14[75]]&&_0x4e14[134]!=document[_0x4e14[135]]){var _0xa132xa=mxLog[_0x4e14[111]][_0x4e14[166]](),_0xa132x2=function(_0xa132x2,_0xa132x3){mxLog[_0x4e14[126]][_0x4e14[124]][_0x4e14[119]]=Math[_0x4e14[160]](0,_0xa132xa[_0x4e14[167]]-70)+_0x4e14[168]};mxLog[_0x4e14[111]][_0x4e14[169]](mxEvent.RESIZE_END,_0xa132x2);mxLog[_0x4e14[111]][_0x4e14[169]](mxEvent.MAXIMIZE,_0xa132x2);mxLog[_0x4e14[111]][_0x4e14[169]](mxEvent.NORMALIZE,_0xa132x2);mxLog[_0x4e14[126]][_0x4e14[124]][_0x4e14[119]]=_0x4e14[170];};}},info:function(){mxLog[_0x4e14[171]](mxUtils.toString(navigator))},addButton:function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[172]);mxUtils[_0x4e14[53]](_0xa132x4,_0xa132x2);mxEvent[_0x4e14[169]](_0xa132x4,_0x4e14[173],_0xa132x3);mxLog[_0x4e14[122]][_0x4e14[62]](_0xa132x4);},isVisible:function(){return null!=mxLog[_0x4e14[111]]?mxLog[_0x4e14[111]][_0x4e14[174]]():!1},show:function(){mxLog[_0x4e14[175]](!0)},setVisible:function(_0xa132x2){null==mxLog[_0x4e14[111]]&&mxLog[_0x4e14[176]]();null!=mxLog[_0x4e14[111]]&&mxLog[_0x4e14[111]][_0x4e14[175]](_0xa132x2);},enter:function(_0xa132x2){if(mxLog[_0x4e14[145]]){return mxLog[_0x4e14[171]](_0x4e14[177]+_0xa132x2),( new Date)[_0x4e14[178]]()}},leave:function(_0xa132x2,_0xa132x3){if(mxLog[_0x4e14[145]]){var _0xa132x4=0!=_0xa132x3?_0x4e14[179]+(( new Date)[_0x4e14[178]]()-_0xa132x3)+_0x4e14[180]:_0x4e14[110];mxLog[_0x4e14[171]](_0x4e14[181]+_0xa132x2+_0xa132x4);}},debug:function(){mxLog[_0x4e14[182]]&&mxLog[_0x4e14[171]][_0x4e14[183]](this,arguments)},warn:function(){mxLog[_0x4e14[184]]&&mxLog[_0x4e14[171]][_0x4e14[183]](this,arguments)},write:function(){for(var _0xa132x2=_0x4e14[110],_0xa132x3=0;_0xa132x3<arguments[_0x4e14[67]];_0xa132x3++){_0xa132x2+=arguments[_0xa132x3],_0xa132x3<arguments[_0x4e14[67]]-1&&(_0xa132x2+=_0x4e14[185])};null!=mxLog[_0x4e14[126]]?(mxLog[_0x4e14[126]][_0x4e14[131]]+=_0xa132x2,0<=navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[186])&&(mxLog[_0x4e14[126]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],mxLog[_0x4e14[126]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189]),mxLog[_0x4e14[126]][_0x4e14[190]]=mxLog[_0x4e14[126]][_0x4e14[191]]):mxLog[_0x4e14[132]]+=_0xa132x2;},writeln:function(){for(var _0xa132x2=_0x4e14[110],_0xa132x3=0;_0xa132x3<arguments[_0x4e14[67]];_0xa132x3++){_0xa132x2+=arguments[_0xa132x3],_0xa132x3<arguments[_0x4e14[67]]-1&&(_0xa132x2+=_0x4e14[185])};mxLog[_0x4e14[53]](_0xa132x2+_0x4e14[192]);}},mxObjectIdentity={FIELD_NAME:_0x4e14[193],counter:0,get:function(_0xa132x2){if(_0x4e14[194]== typeof _0xa132x2&&null==_0xa132x2[mxObjectIdentity[_0x4e14[195]]]){var _0xa132x3=mxUtils[_0x4e14[197]](_0xa132x2[_0x4e14[196]]);_0xa132x2[mxObjectIdentity[_0x4e14[195]]]=_0xa132x3+_0x4e14[198]+mxObjectIdentity[_0x4e14[199]]++;};return _0xa132x2[mxObjectIdentity[_0x4e14[195]]];},clear:function(_0xa132x2){_0x4e14[194]== typeof _0xa132x2&& delete _0xa132x2[mxObjectIdentity[_0x4e14[195]]]}};function mxDictionary(){this[_0x4e14[200]]()}mxDictionary[_0x4e14[202]][_0x4e14[201]]=null;mxDictionary[_0x4e14[202]][_0x4e14[200]]=function(){this[_0x4e14[201]]={}};mxDictionary[_0x4e14[202]][_0x4e14[203]]=function(_0xa132x2){_0xa132x2=mxObjectIdentity[_0x4e14[203]](_0xa132x2);return this[_0x4e14[201]][_0xa132x2];};mxDictionary[_0x4e14[202]][_0x4e14[204]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=mxObjectIdentity[_0x4e14[203]](_0xa132x2),_0xa132x5=this[_0x4e14[201]][_0xa132x4];this[_0x4e14[201]][_0xa132x4]=_0xa132x3;return _0xa132x5;};mxDictionary[_0x4e14[202]][_0x4e14[205]]=function(_0xa132x2){_0xa132x2=mxObjectIdentity[_0x4e14[203]](_0xa132x2);var _0xa132x3=this[_0x4e14[201]][_0xa132x2];delete this[_0x4e14[201]][_0xa132x2];return _0xa132x3;};mxDictionary[_0x4e14[202]][_0x4e14[206]]=function(){var _0xa132x2=[],_0xa132x3;for(_0xa132x3 in this[_0x4e14[201]]){_0xa132x2[_0x4e14[207]](_0xa132x3)};return _0xa132x2;};mxDictionary[_0x4e14[202]][_0x4e14[208]]=function(){var _0xa132x2=[],_0xa132x3;for(_0xa132x3 in this[_0x4e14[201]]){_0xa132x2[_0x4e14[207]](this[_0x4e14[201]][_0xa132x3])};return _0xa132x2;};mxDictionary[_0x4e14[202]][_0x4e14[209]]=function(_0xa132x2){for(var _0xa132x3 in this[_0x4e14[201]]){_0xa132x2(_0xa132x3,this[_0x4e14[201]][_0xa132x3])}};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(_0xa132x2){return null!=mxClient[_0x4e14[96]]?0<=mxUtils[_0x4e14[2]](mxClient[_0x4e14[96]],_0xa132x2):!0},getDefaultBundle:function(_0xa132x2,_0xa132x3){return mxResources[_0x4e14[210]]||!mxResources[_0x4e14[211]](_0xa132x3)?_0xa132x2+mxResources[_0x4e14[212]]:null},getSpecialBundle:function(_0xa132x2,_0xa132x3){if(null==mxClient[_0x4e14[96]]||!this[_0x4e14[211]](_0xa132x3)){var _0xa132x4=_0xa132x3[_0x4e14[2]](_0x4e14[213]);0<_0xa132x4&&(_0xa132x3=_0xa132x3[_0x4e14[85]](0,_0xa132x4));};return mxResources[_0x4e14[214]]&&mxResources[_0x4e14[211]](_0xa132x3)&&_0xa132x3!=mxClient[_0x4e14[92]]?_0xa132x2+_0x4e14[215]+_0xa132x3+mxResources[_0x4e14[212]]:null;},add:function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:mxClient[_0x4e14[90]][_0x4e14[216]]();if(_0xa132x3!=mxConstants[_0x4e14[217]]){var _0xa132x4=mxResources[_0x4e14[218]](_0xa132x2,_0xa132x3);if(null!=_0xa132x4){try{var _0xa132x5=mxUtils[_0x4e14[219]](_0xa132x4);_0xa132x5[_0x4e14[220]]()&&mxResources[_0x4e14[222]](_0xa132x5[_0x4e14[221]]());}catch(e){}};_0xa132x4=mxResources[_0x4e14[223]](_0xa132x2,_0xa132x3);if(null!=_0xa132x4){try{_0xa132x5=mxUtils[_0x4e14[219]](_0xa132x4),_0xa132x5[_0x4e14[220]]()&&mxResources[_0x4e14[222]](_0xa132x5[_0x4e14[221]]())}catch(f){}};};},parse:function(_0xa132x2){if(null!=_0xa132x2){_0xa132x2=_0xa132x2[_0x4e14[224]](_0x4e14[192]);for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3++){if(_0x4e14[198]!=_0xa132x2[_0xa132x3][_0x4e14[225]](0)){var _0xa132x4=_0xa132x2[_0xa132x3][_0x4e14[2]](_0x4e14[226]);if(0<_0xa132x4){var _0xa132x5=_0xa132x2[_0xa132x3][_0x4e14[85]](0,_0xa132x4),_0xa132x9=_0xa132x2[_0xa132x3][_0x4e14[67]];13==_0xa132x2[_0xa132x3][_0x4e14[227]](_0xa132x9-1)&&_0xa132x9--;_0xa132x4=_0xa132x2[_0xa132x3][_0x4e14[85]](_0xa132x4+1,_0xa132x9);this[_0x4e14[228]]?(_0xa132x4=_0xa132x4[_0x4e14[230]](/\\(?=u[a-fA-F\d]{4})/g,_0x4e14[229]),mxResources[_0x4e14[231]][_0xa132x5]=unescape(_0xa132x4)):mxResources[_0x4e14[231]][_0xa132x5]=_0xa132x4;};}};}},get:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=mxResources[_0x4e14[231]][_0xa132x2];null==_0xa132x2&&(_0xa132x2=_0xa132x4);if(null!=_0xa132x2&&null!=_0xa132x3){_0xa132x4=[];for(var _0xa132x5=null,_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){var _0xa132xa=_0xa132x2[_0x4e14[225]](_0xa132x9);_0x4e14[232]==_0xa132xa?_0xa132x5=_0x4e14[110]:null!=_0xa132x5&&_0x4e14[233]==_0xa132xa?(_0xa132x5=parseInt(_0xa132x5)-1,0<=_0xa132x5&&_0xa132x5<_0xa132x3[_0x4e14[67]]&&_0xa132x4[_0x4e14[207]](_0xa132x3[_0xa132x5]),_0xa132x5=null):null!=_0xa132x5?_0xa132x5+=_0xa132xa:_0xa132x4[_0x4e14[207]](_0xa132xa);};_0xa132x2=_0xa132x4[_0x4e14[234]](_0x4e14[110]);};return _0xa132x2;}};function mxPoint(_0xa132x2,_0xa132x3){this[_0x4e14[235]]=null!=_0xa132x2?_0xa132x2:0;this[_0x4e14[236]]=null!=_0xa132x3?_0xa132x3:0;}mxPoint[_0x4e14[202]][_0x4e14[235]]=null;mxPoint[_0x4e14[202]][_0x4e14[236]]=null;mxPoint[_0x4e14[202]][_0x4e14[237]]=function(_0xa132x2){return _0xa132x2[_0x4e14[235]]==this[_0x4e14[235]]&&_0xa132x2[_0x4e14[236]]==this[_0x4e14[236]]};mxPoint[_0x4e14[202]][_0x4e14[238]]=function(){return mxUtils[_0x4e14[238]](this)};function mxRectangle(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxPoint[_0x4e14[239]](this,_0xa132x2,_0xa132x3);this[_0x4e14[117]]=null!=_0xa132x4?_0xa132x4:0;this[_0x4e14[119]]=null!=_0xa132x5?_0xa132x5:0;}mxRectangle[_0x4e14[202]]= new mxPoint;mxRectangle[_0x4e14[202]][_0x4e14[196]]=mxRectangle;mxRectangle[_0x4e14[202]][_0x4e14[117]]=null;mxRectangle[_0x4e14[202]][_0x4e14[119]]=null;mxRectangle[_0x4e14[202]][_0x4e14[240]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[235]]=_0xa132x2;this[_0x4e14[236]]=_0xa132x3;this[_0x4e14[117]]=_0xa132x4;this[_0x4e14[119]]=_0xa132x5;};mxRectangle[_0x4e14[202]][_0x4e14[241]]=function(){return this[_0x4e14[235]]+this[_0x4e14[117]]/2};mxRectangle[_0x4e14[202]][_0x4e14[242]]=function(){return this[_0x4e14[236]]+this[_0x4e14[119]]/2};mxRectangle[_0x4e14[202]][_0x4e14[99]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=Math[_0x4e14[243]](this[_0x4e14[235]],_0xa132x2[_0x4e14[235]]),_0xa132x4=Math[_0x4e14[243]](this[_0x4e14[236]],_0xa132x2[_0x4e14[236]]),_0xa132x5=Math[_0x4e14[160]](this[_0x4e14[235]]+this[_0x4e14[117]],_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]);_0xa132x2=Math[_0x4e14[160]](this[_0x4e14[236]]+this[_0x4e14[119]],_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]);this[_0x4e14[235]]=_0xa132x3;this[_0x4e14[236]]=_0xa132x4;this[_0x4e14[117]]=_0xa132x5-_0xa132x3;this[_0x4e14[119]]=_0xa132x2-_0xa132x4;}};mxRectangle[_0x4e14[202]][_0x4e14[244]]=function(_0xa132x2){this[_0x4e14[235]]-=_0xa132x2;this[_0x4e14[236]]-=_0xa132x2;this[_0x4e14[117]]+=2*_0xa132x2;this[_0x4e14[119]]+=2*_0xa132x2;};mxRectangle[_0x4e14[202]][_0x4e14[245]]=function(){return  new mxPoint(this[_0x4e14[235]],this[_0x4e14[236]])};mxRectangle[_0x4e14[202]][_0x4e14[237]]=function(_0xa132x2){return _0xa132x2[_0x4e14[235]]==this[_0x4e14[235]]&&_0xa132x2[_0x4e14[236]]==this[_0x4e14[236]]&&_0xa132x2[_0x4e14[117]]==this[_0x4e14[117]]&&_0xa132x2[_0x4e14[119]]==this[_0x4e14[119]]};var mxEffects={animateChanges:function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=0,_0xa132x9=function(){for(var _0xa132x12=!1,_0xa132x13=0;_0xa132x13<_0xa132x3[_0x4e14[67]];_0xa132x13++){var _0xa132x14=_0xa132x3[_0xa132x13];if(_0xa132x14 instanceof mxGeometryChange||_0xa132x14 instanceof mxTerminalChange||_0xa132x14 instanceof mxValueChange||_0xa132x14 instanceof mxChildChange||_0xa132x14 instanceof mxStyleChange){var _0xa132x15=_0xa132x2[_0x4e14[249]]()[_0x4e14[248]](_0xa132x14[_0x4e14[246]]||_0xa132x14[_0x4e14[247]],!1);if(null!=_0xa132x15){if(_0xa132x12= !0,_0xa132x14[_0x4e14[196]]!=mxGeometryChange||_0xa132x2[_0x4e14[251]][_0x4e14[250]](_0xa132x14[_0x4e14[246]])){mxUtils[_0x4e14[254]](_0xa132x15[_0x4e14[253]][_0x4e14[252]],100*_0xa132x5/10)}else {var _0xa132x16=_0xa132x2[_0x4e14[249]]()[_0x4e14[255]],_0xa132x17=(_0xa132x14[_0x4e14[256]][_0x4e14[235]]-_0xa132x14[_0x4e14[257]][_0x4e14[235]])*_0xa132x16,_0xa132x18=(_0xa132x14[_0x4e14[256]][_0x4e14[236]]-_0xa132x14[_0x4e14[257]][_0x4e14[236]])*_0xa132x16,_0xa132x19=(_0xa132x14[_0x4e14[256]][_0x4e14[117]]-_0xa132x14[_0x4e14[257]][_0x4e14[117]])*_0xa132x16,_0xa132x16=(_0xa132x14[_0x4e14[256]][_0x4e14[119]]-_0xa132x14[_0x4e14[257]][_0x4e14[119]])*_0xa132x16;0==_0xa132x5?(_0xa132x15[_0x4e14[235]]-=_0xa132x17,_0xa132x15[_0x4e14[236]]-=_0xa132x18,_0xa132x15[_0x4e14[117]]-=_0xa132x19,_0xa132x15[_0x4e14[119]]-=_0xa132x16):(_0xa132x15[_0x4e14[235]]+=_0xa132x17/10,_0xa132x15[_0x4e14[236]]+=_0xa132x18/10,_0xa132x15[_0x4e14[117]]+=_0xa132x19/10,_0xa132x15[_0x4e14[119]]+=_0xa132x16/10);_0xa132x2[_0x4e14[259]][_0x4e14[258]](_0xa132x15);mxEffects[_0x4e14[260]](_0xa132x2,_0xa132x14[_0x4e14[246]],100*_0xa132x5/10);}};};};10>_0xa132x5&&_0xa132x12?(_0xa132x5++,window[_0x4e14[261]](_0xa132x9,_0xa132xa)):null!=_0xa132x4&&_0xa132x4();},_0xa132xa=30;_0xa132x9();},cascadeOpacity:function(_0xa132x2,_0xa132x3,_0xa132x4){for(var _0xa132x5=_0xa132x2[_0x4e14[251]][_0x4e14[262]](_0xa132x3),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){var _0xa132xa=_0xa132x2[_0x4e14[251]][_0x4e14[263]](_0xa132x3,_0xa132x9),_0xa132x12=_0xa132x2[_0x4e14[249]]()[_0x4e14[248]](_0xa132xa);null!=_0xa132x12&&(mxUtils[_0x4e14[254]](_0xa132x12[_0x4e14[253]][_0x4e14[252]],_0xa132x4),mxEffects[_0x4e14[260]](_0xa132x2,_0xa132xa,_0xa132x4));};_0xa132x3=_0xa132x2[_0x4e14[251]][_0x4e14[264]](_0xa132x3);if(null!=_0xa132x3){for(_0xa132x9=0;_0xa132x9<_0xa132x3[_0x4e14[67]];_0xa132x9++){_0xa132x5=_0xa132x2[_0x4e14[249]]()[_0x4e14[248]](_0xa132x3[_0xa132x9]),null!=_0xa132x5&&mxUtils[_0x4e14[254]](_0xa132x5[_0x4e14[253]][_0x4e14[252]],_0xa132x4)}};},fadeOut:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x5=_0xa132x5||40;_0xa132x9=_0xa132x9||30;var _0xa132x12=_0xa132x3||100;mxUtils[_0x4e14[254]](_0xa132x2,_0xa132x12);if(_0xa132xa||null==_0xa132xa){var _0xa132x13=function(){_0xa132x12=Math[_0x4e14[160]](_0xa132x12-_0xa132x5,0);mxUtils[_0x4e14[254]](_0xa132x2,_0xa132x12);0<_0xa132x12?window[_0x4e14[261]](_0xa132x13,_0xa132x9):(_0xa132x2[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],_0xa132x4&&_0xa132x2[_0x4e14[265]]&&_0xa132x2[_0x4e14[265]][_0x4e14[266]](_0xa132x2));};window[_0x4e14[261]](_0xa132x13,_0xa132x9);}else {_0xa132x2[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],_0xa132x4&&_0xa132x2[_0x4e14[265]]&&_0xa132x2[_0x4e14[265]][_0x4e14[266]](_0xa132x2)};}},mxUtils={errorResource:_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[267]:_0x4e14[110],closeResource:_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[268]:_0x4e14[110],errorImage:mxClient[_0x4e14[88]]+_0x4e14[269],removeCursors:function(_0xa132x2){null!=_0xa132x2[_0x4e14[124]]&&(_0xa132x2[_0x4e14[124]][_0x4e14[270]]=_0x4e14[110]);_0xa132x2=_0xa132x2[_0x4e14[271]];if(null!=_0xa132x2){for(var _0xa132x3=_0xa132x2[_0x4e14[67]],_0xa132x4=0;_0xa132x4<_0xa132x3;_0xa132x4+=1){mxUtils[_0x4e14[272]](_0xa132x2[_0xa132x4])}};},getCurrentStyle:function(){return mxClient[_0x4e14[80]]?function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[273]]:null}:function(_0xa132x2){return null!=_0xa132x2?window[_0x4e14[274]](_0xa132x2,_0x4e14[110]):null}}(),hasScrollbars:function(_0xa132x2){_0xa132x2=mxUtils[_0x4e14[275]](_0xa132x2);return null!=_0xa132x2&&(_0x4e14[276]==_0xa132x2[_0x4e14[277]]||_0x4e14[278]==_0xa132x2[_0x4e14[277]]);},bind:function(_0xa132x2,_0xa132x3){return function(){return _0xa132x3[_0x4e14[183]](_0xa132x2,arguments)}},eval:function(_0xa132x2){var _0xa132x3=null;if(0<=_0xa132x2[_0x4e14[2]](_0x4e14[279])){try{eval(_0x4e14[280]+_0xa132x2),_0xa132x3=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(c){mxLog[_0x4e14[283]](c[_0x4e14[281]]+_0x4e14[282]+_0xa132x2)}}else {try{_0xa132x3=eval(_0xa132x2)}catch(d){mxLog[_0x4e14[283]](d[_0x4e14[281]]+_0x4e14[282]+_0xa132x2)}};return _0xa132x3;},findNode:function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x2[_0x4e14[284]](_0xa132x3);if(null!=_0xa132x5&&_0xa132x5==_0xa132x4){return _0xa132x2};for(_0xa132x2=_0xa132x2[_0x4e14[285]];null!=_0xa132x2;){_0xa132x5=mxUtils[_0x4e14[286]](_0xa132x2,_0xa132x3,_0xa132x4);if(null!=_0xa132x5){return _0xa132x5};_0xa132x2=_0xa132x2[_0x4e14[287]];};return null;},findNodeByAttribute:function(){return 9<=document[_0x4e14[5]]?function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=null;if(null!=_0xa132x2){if(_0xa132x2[_0x4e14[288]]==mxConstants[_0x4e14[289]]&&_0xa132x2[_0x4e14[284]](_0xa132x3)==_0xa132x4){_0xa132x5=_0xa132x2}else {for(_0xa132x2=_0xa132x2[_0x4e14[285]];null!=_0xa132x2&&null==_0xa132x5;){_0xa132x5=mxUtils[_0x4e14[290]](_0xa132x2,_0xa132x3,_0xa132x4),_0xa132x2=_0xa132x2[_0x4e14[287]]}}};return _0xa132x5;}:mxClient[_0x4e14[80]]?function(_0xa132x2,_0xa132x3,_0xa132x4){return null==_0xa132x2?null:_0xa132x2[_0x4e14[295]][_0x4e14[294]](_0x4e14[291]+_0xa132x3+_0x4e14[292]+_0xa132x4+_0x4e14[293])}:function(_0xa132x2,_0xa132x3,_0xa132x4){return null==_0xa132x2?null:_0xa132x2[_0x4e14[295]][_0x4e14[297]](_0x4e14[291]+_0xa132x3+_0x4e14[292]+_0xa132x4+_0x4e14[293],_0xa132x2[_0x4e14[295]],null,XPathResult.ANY_TYPE,null)[_0x4e14[296]]()}}(),getFunctionName:function(_0xa132x2){var _0xa132x3=null;if(null!=_0xa132x2){if(null!=_0xa132x2[_0x4e14[298]]){_0xa132x3=_0xa132x2[_0x4e14[298]]}else {_0xa132x2=_0xa132x2.toString();for(_0xa132x3=9;_0x4e14[185]==_0xa132x2[_0x4e14[225]](_0xa132x3);){_0xa132x3++};var _0xa132x4=_0xa132x2[_0x4e14[2]](_0x4e14[299],_0xa132x3),_0xa132x3=_0xa132x2[_0x4e14[85]](_0xa132x3,_0xa132x4);}};return _0xa132x3;},indexOf:function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&null!=_0xa132x3){for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){if(_0xa132x2[_0xa132x4]==_0xa132x3){return _0xa132x4}}};return -1;},remove:function(_0xa132x2,_0xa132x3){var _0xa132x4=null;if(_0x4e14[194]== typeof _0xa132x3){for(var _0xa132x5=mxUtils[_0x4e14[2]](_0xa132x3,_0xa132x2);0<=_0xa132x5;){_0xa132x3[_0x4e14[300]](_0xa132x5,1),_0xa132x4=_0xa132x2,_0xa132x5=mxUtils[_0x4e14[2]](_0xa132x3,_0xa132x2)}};for(var _0xa132x9 in _0xa132x3){_0xa132x3[_0xa132x9]==_0xa132x2&&( delete _0xa132x3[_0xa132x9],_0xa132x4=_0xa132x2)};return _0xa132x4;},isNode:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){return null!=_0xa132x2&&!isNaN(_0xa132x2[_0x4e14[288]])&&(null==_0xa132x3||_0xa132x2[_0x4e14[301]][_0x4e14[216]]()==_0xa132x3[_0x4e14[216]]())?null==_0xa132x4||_0xa132x2[_0x4e14[284]](_0xa132x4)==_0xa132x5:!1},getChildNodes:function(_0xa132x2,_0xa132x3){_0xa132x3=_0xa132x3||mxConstants[_0x4e14[289]];for(var _0xa132x4=[],_0xa132x5=_0xa132x2[_0x4e14[285]];null!=_0xa132x5;){_0xa132x5[_0x4e14[288]]==_0xa132x3&&_0xa132x4[_0x4e14[207]](_0xa132x5),_0xa132x5=_0xa132x5[_0x4e14[287]]};return _0xa132x4;},createXmlDocument:function(){var _0xa132x2=null;document[_0x4e14[302]]&&document[_0x4e14[302]][_0x4e14[303]]?_0xa132x2=document[_0x4e14[302]][_0x4e14[303]](_0x4e14[110],_0x4e14[110],null):window[_0x4e14[304]]&&(_0xa132x2= new ActiveXObject(_0x4e14[305]));return _0xa132x2;},parseXml:function(){return mxClient[_0x4e14[80]]&&(_0x4e14[82]=== typeof document[_0x4e14[5]]||9>document[_0x4e14[5]])?function(_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[306]]();_0xa132x3[_0x4e14[307]]=_0x4e14[308];_0xa132x3[_0x4e14[309]](_0xa132x2);return _0xa132x3;}:function(_0xa132x2){return ( new DOMParser)[_0x4e14[311]](_0xa132x2,_0x4e14[310])}}(),clearSelection:function(){if(document[_0x4e14[312]]){return function(){document[_0x4e14[312]][_0x4e14[313]]()}};if(window[_0x4e14[314]]){return function(){window[_0x4e14[314]]()[_0x4e14[315]]()}};}(),getPrettyXml:function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=[];if(null!=_0xa132x2){if(_0xa132x3=_0xa132x3||_0x4e14[316],_0xa132x4=_0xa132x4||_0x4e14[110],_0xa132x2[_0x4e14[288]]==mxConstants[_0x4e14[317]]){_0xa132x5[_0x4e14[207]](_0xa132x2[_0x4e14[318]])}else {_0xa132x5[_0x4e14[207]](_0xa132x4+_0x4e14[319]+_0xa132x2[_0x4e14[301]]);var _0xa132x9=_0xa132x2[_0x4e14[320]];if(null!=_0xa132x9){for(var _0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){var _0xa132x12=mxUtils[_0x4e14[321]](_0xa132x9[_0xa132xa][_0x4e14[318]]);_0xa132x5[_0x4e14[207]](_0x4e14[185]+_0xa132x9[_0xa132xa][_0x4e14[301]]+_0x4e14[322]+_0xa132x12+_0x4e14[323]);}};_0xa132x9=_0xa132x2[_0x4e14[285]];if(null!=_0xa132x9){for(_0xa132x5[_0x4e14[207]](_0x4e14[324]);null!=_0xa132x9;){_0xa132x5[_0x4e14[207]](mxUtils[_0x4e14[325]](_0xa132x9,_0xa132x3,_0xa132x4+_0xa132x3)),_0xa132x9=_0xa132x9[_0x4e14[287]]};_0xa132x5[_0x4e14[207]](_0xa132x4+_0x4e14[326]+_0xa132x2[_0x4e14[301]]+_0x4e14[324]);}else {_0xa132x5[_0x4e14[207]](_0x4e14[327])};}};return _0xa132x5[_0x4e14[234]](_0x4e14[110]);},removeWhitespace:function(_0xa132x2,_0xa132x3){for(var _0xa132x4=_0xa132x3?_0xa132x2[_0x4e14[328]]:_0xa132x2[_0x4e14[287]];null!=_0xa132x4&&_0xa132x4[_0x4e14[288]]==mxConstants[_0x4e14[317]];){var _0xa132x5=_0xa132x3?_0xa132x4[_0x4e14[328]]:_0xa132x4[_0x4e14[287]],_0xa132x9=mxUtils[_0x4e14[329]](_0xa132x4);0==mxUtils[_0x4e14[330]](_0xa132x9)[_0x4e14[67]]&&_0xa132x4[_0x4e14[265]][_0x4e14[266]](_0xa132x4);_0xa132x4=_0xa132x5;}},htmlEntities:function(_0xa132x2,_0xa132x3){_0xa132x2=(_0xa132x2||_0x4e14[110])[_0x4e14[230]](/&/g,_0x4e14[331]);_0xa132x2=_0xa132x2[_0x4e14[230]](/"/g,_0x4e14[332]);_0xa132x2=_0xa132x2[_0x4e14[230]](/\'/g,_0x4e14[333]);_0xa132x2=_0xa132x2[_0x4e14[230]](/</g,_0x4e14[334]);_0xa132x2=_0xa132x2[_0x4e14[230]](/>/g,_0x4e14[335]);if(null==_0xa132x3||_0xa132x3){_0xa132x2=_0xa132x2[_0x4e14[230]](/\n/g,_0x4e14[336])};return _0xa132x2;},isVml:function(_0xa132x2){return null!=_0xa132x2&&_0x4e14[97]==_0xa132x2[_0x4e14[337]]},getXml:function(_0xa132x2,_0xa132x3){var _0xa132x4=_0x4e14[110];null!=_0xa132x2&&(_0xa132x4=_0xa132x2[_0x4e14[338]],_0xa132x4=null==_0xa132x4?_0xa132x2[_0x4e14[339]]?_0xa132x2[_0x4e14[339]]:( new XMLSerializer)[_0x4e14[340]](_0xa132x2):_0xa132x4[_0x4e14[230]](/\r\n\t[\t]*/g,_0x4e14[110])[_0x4e14[230]](/>\r\n/g,_0x4e14[341])[_0x4e14[230]](/\r\n/g,_0x4e14[192]));return _0xa132x4=_0xa132x4[_0x4e14[230]](/\n/g,_0xa132x3||_0x4e14[336]);},getTextContent:function(_0xa132x2){var _0xa132x3=_0x4e14[110];null!=_0xa132x2&&(null!=_0xa132x2[_0x4e14[285]]&&(_0xa132x2=_0xa132x2[_0x4e14[285]]),_0xa132x3=_0xa132x2[_0x4e14[318]]||_0x4e14[110]);return _0xa132x3;},getInnerHtml:function(){return mxClient[_0x4e14[80]]?function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[339]]:_0x4e14[110]}:function(_0xa132x2){return null!=_0xa132x2?( new XMLSerializer)[_0x4e14[340]](_0xa132x2):_0x4e14[110]}}(),getOuterHtml:function(){return mxClient[_0x4e14[80]]?function(_0xa132x2){if(null!=_0xa132x2){if(null!=_0xa132x2[_0x4e14[342]]){return _0xa132x2[_0x4e14[342]]};var _0xa132x3=[];_0xa132x3[_0x4e14[207]](_0x4e14[319]+_0xa132x2[_0x4e14[301]]);var _0xa132x4=_0xa132x2[_0x4e14[320]];if(null!=_0xa132x4){for(var _0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]];_0xa132x5++){var _0xa132x9=_0xa132x4[_0xa132x5][_0x4e14[318]];null!=_0xa132x9&&0<_0xa132x9[_0x4e14[67]]&&(_0xa132x3[_0x4e14[207]](_0x4e14[185]),_0xa132x3[_0x4e14[207]](_0xa132x4[_0xa132x5][_0x4e14[301]]),_0xa132x3[_0x4e14[207]](_0x4e14[322]),_0xa132x3[_0x4e14[207]](_0xa132x9),_0xa132x3[_0x4e14[207]](_0x4e14[323]));}};0==_0xa132x2[_0x4e14[339]][_0x4e14[67]]?_0xa132x3[_0x4e14[207]](_0x4e14[343]):(_0xa132x3[_0x4e14[207]](_0x4e14[341]),_0xa132x3[_0x4e14[207]](_0xa132x2[_0x4e14[339]]),_0xa132x3[_0x4e14[207]](_0x4e14[326]+_0xa132x2[_0x4e14[301]]+_0x4e14[341]));return _0xa132x3[_0x4e14[234]](_0x4e14[110]);};return _0x4e14[110];}:function(_0xa132x2){return null!=_0xa132x2?( new XMLSerializer)[_0x4e14[340]](_0xa132x2):_0x4e14[110]}}(),write:function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[295]][_0x4e14[344]](_0xa132x3);null!=_0xa132x2&&_0xa132x2[_0x4e14[62]](_0xa132x4);return _0xa132x4;},writeln:function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[295]][_0x4e14[344]](_0xa132x3);null!=_0xa132x2&&(_0xa132x2[_0x4e14[62]](_0xa132x4),_0xa132x2[_0x4e14[62]](document[_0x4e14[55]](_0x4e14[345])));return _0xa132x4;},br:function(_0xa132x2,_0xa132x3){_0xa132x3=_0xa132x3||1;for(var _0xa132x4=null,_0xa132x5=0;_0xa132x5<_0xa132x3;_0xa132x5++){null!=_0xa132x2&&(_0xa132x4=_0xa132x2[_0x4e14[295]][_0x4e14[55]](_0x4e14[345]),_0xa132x2[_0x4e14[62]](_0xa132x4))};return _0xa132x4;},button:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:document;_0xa132x4=_0xa132x4[_0x4e14[55]](_0x4e14[172]);mxUtils[_0x4e14[53]](_0xa132x4,_0xa132x2);mxEvent[_0x4e14[169]](_0xa132x4,_0x4e14[173],function(_0xa132x2){_0xa132x3(_0xa132x2)});return _0xa132x4;},para:function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[346]);mxUtils[_0x4e14[53]](_0xa132x4,_0xa132x3);null!=_0xa132x2&&_0xa132x2[_0x4e14[62]](_0xa132x4);return _0xa132x4;},addTransparentBackgroundFilter:function(_0xa132x2){_0xa132x2[_0x4e14[124]][_0x4e14[347]]+=_0x4e14[348]+mxClient[_0x4e14[88]]+_0x4e14[349]},linkAction:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){return mxUtils[_0x4e14[54]](_0xa132x2,_0xa132x3,function(){_0xa132x4[_0x4e14[350]](_0xa132x5)},_0xa132x9)},linkInvoke:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){return mxUtils[_0x4e14[54]](_0xa132x2,_0xa132x3,function(){_0xa132x4[_0xa132x5](_0xa132x9)},_0xa132xa)},link:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=document[_0x4e14[55]](_0x4e14[351]);_0xa132x9[_0x4e14[124]][_0x4e14[352]]=_0x4e14[353];_0xa132x9[_0x4e14[124]][_0x4e14[354]]=_0x4e14[355];_0xa132x9[_0x4e14[124]][_0x4e14[270]]=_0x4e14[356];null!=_0xa132x5&&(_0xa132x9[_0x4e14[124]][_0x4e14[357]]=_0xa132x5+_0x4e14[168]);mxEvent[_0x4e14[169]](_0xa132x9,_0x4e14[173],_0xa132x4);mxUtils[_0x4e14[53]](_0xa132x9,_0xa132x3);null!=_0xa132x2&&_0xa132x2[_0x4e14[62]](_0xa132x9);return _0xa132x9;},fit:function(_0xa132x2){var _0xa132x3=parseInt(_0xa132x2[_0x4e14[358]]),_0xa132x4=parseInt(_0xa132x2[_0x4e14[359]]),_0xa132x5=document[_0x4e14[112]],_0xa132x9=document[_0x4e14[158]],_0xa132xa=(_0xa132x5[_0x4e14[360]]||_0xa132x9[_0x4e14[360]])+(_0xa132x5[_0x4e14[159]]||_0xa132x9[_0x4e14[159]]);_0xa132x3+_0xa132x4>_0xa132xa&&(_0xa132x2[_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[160]](_0xa132x5[_0x4e14[360]]||_0xa132x9[_0x4e14[360]],_0xa132xa-_0xa132x4)+_0x4e14[168]);_0xa132x3=parseInt(_0xa132x2[_0x4e14[362]]);_0xa132x4=parseInt(_0xa132x2[_0x4e14[167]]);_0xa132xa=(_0xa132x5[_0x4e14[190]]||_0xa132x9[_0x4e14[190]])+Math[_0x4e14[160]](_0xa132x5[_0x4e14[157]]||0,_0xa132x9[_0x4e14[157]]);_0xa132x3+_0xa132x4>_0xa132xa&&(_0xa132x2[_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[160]](_0xa132x5[_0x4e14[190]]||_0xa132x9[_0x4e14[190]],_0xa132xa-_0xa132x4)+_0x4e14[168]);},open:function(_0xa132x2){if(mxClient[_0x4e14[133]]){try{netscape[_0x4e14[366]][_0x4e14[365]][_0x4e14[364]](_0x4e14[363])}catch(b){return mxUtils[_0x4e14[150]](_0x4e14[367]),_0x4e14[110]};var _0xa132x4=Components[_0x4e14[372]][_0x4e14[371]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[368]]);_0xa132x4[_0x4e14[373]](_0xa132x2);if(!_0xa132x4[_0x4e14[374]]()){return mxUtils[_0x4e14[150]](_0x4e14[375]),_0x4e14[110]};_0xa132x2=Components[_0x4e14[372]][_0x4e14[377]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[376]]);_0xa132x2[_0x4e14[176]](_0xa132x4,1,4,null);_0xa132x4=Components[_0x4e14[372]][_0x4e14[379]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[378]]);_0xa132x4[_0x4e14[176]](_0xa132x2);return _0xa132x4[_0x4e14[381]](_0xa132x4[_0x4e14[380]]());};_0xa132x4=( new ActiveXObject(_0x4e14[382])).OpenTextFile(_0xa132x2,1);_0xa132x2=_0xa132x4[_0x4e14[383]]();_0xa132x4[_0x4e14[268]]();return _0xa132x2;},save:function(_0xa132x2,_0xa132x3){if(mxClient[_0x4e14[133]]){try{netscape[_0x4e14[366]][_0x4e14[365]][_0x4e14[364]](_0x4e14[363])}catch(c){mxUtils[_0x4e14[150]](_0x4e14[384]);return;};var _0xa132x5=Components[_0x4e14[372]][_0x4e14[371]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[368]]);_0xa132x5[_0x4e14[373]](_0xa132x2);_0xa132x5[_0x4e14[374]]()||_0xa132x5[_0x4e14[385]](0,420);var _0xa132x9=Components[_0x4e14[372]][_0x4e14[387]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[386]]);_0xa132x9[_0x4e14[176]](_0xa132x5,34,4,null);_0xa132x9[_0x4e14[53]](_0xa132x3,_0xa132x3[_0x4e14[67]]);_0xa132x9[_0x4e14[388]]();_0xa132x9[_0x4e14[268]]();}else {_0xa132x5=( new ActiveXObject(_0x4e14[382])).CreateTextFile(_0xa132x2,!0),_0xa132x5.Write(_0xa132x3),_0xa132x5.Close()}},saveAs:function(_0xa132x2){var _0xa132x3=document[_0x4e14[55]](_0x4e14[389]);_0xa132x3[_0x4e14[57]](_0x4e14[390],_0x4e14[110]);_0xa132x3[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];document[_0x4e14[112]][_0x4e14[62]](_0xa132x3);try{if(mxClient[_0x4e14[133]]){var _0xa132x4=_0xa132x3[_0x4e14[391]];_0xa132x4[_0x4e14[392]]();_0xa132x4[_0x4e14[53]](_0xa132x2);_0xa132x4[_0x4e14[268]]();try{netscape[_0x4e14[366]][_0x4e14[365]][_0x4e14[364]](_0x4e14[363]),_0xa132x3[_0x4e14[393]](),saveDocument(_0xa132x4)}catch(d){mxUtils[_0x4e14[150]](_0x4e14[394])};}else {_0xa132x4=_0xa132x3[_0x4e14[396]][_0x4e14[395]],_0xa132x4[_0x4e14[53]](_0xa132x2),_0xa132x4[_0x4e14[398]](_0x4e14[397],!1,document[_0x4e14[45]])}}finally{document[_0x4e14[112]][_0x4e14[266]](_0xa132x3)};},copy:function(_0xa132x2){if(window[_0x4e14[399]]){window[_0x4e14[399]][_0x4e14[401]](_0x4e14[400],_0xa132x2)}else {netscape[_0x4e14[366]][_0x4e14[365]][_0x4e14[364]](_0x4e14[363]);var _0xa132x3=Components[_0x4e14[372]][_0x4e14[403]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[402]]);if(_0xa132x3){var _0xa132x4=Components[_0x4e14[372]][_0x4e14[405]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[404]]);if(_0xa132x4){_0xa132x4[_0x4e14[407]](_0x4e14[406]);var _0xa132x5=Components[_0x4e14[372]][_0x4e14[409]][_0x4e14[370]](Components[_0x4e14[369]][_0x4e14[408]]);_0xa132x5[_0x4e14[410]]=_0xa132x2;_0xa132x4[_0x4e14[411]](_0x4e14[406],_0xa132x5,2*_0xa132x2[_0x4e14[67]]);_0xa132x3[_0x4e14[401]](_0xa132x4,null,Components[_0x4e14[369]][_0x4e14[402]][_0x4e14[412]]);};};}},load:function(_0xa132x2){_0xa132x2= new mxXmlRequest(_0xa132x2,null,_0x4e14[413],!1);_0xa132x2[_0x4e14[414]]();return _0xa132x2;},get:function(_0xa132x2,_0xa132x3,_0xa132x4){return ( new mxXmlRequest(_0xa132x2,null,_0x4e14[413]))[_0x4e14[414]](_0xa132x3,_0xa132x4)},post:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){return ( new mxXmlRequest(_0xa132x2,_0xa132x3))[_0x4e14[414]](_0xa132x4,_0xa132x5)},submit:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){return ( new mxXmlRequest(_0xa132x2,_0xa132x3))[_0x4e14[415]](_0xa132x4,_0xa132x5)},loadInto:function(_0xa132x2,_0xa132x3,_0xa132x4){mxClient[_0x4e14[80]]?_0xa132x3[_0x4e14[416]]=function(){4==_0xa132x3[_0x4e14[417]]&&_0xa132x4()}:_0xa132x3[_0x4e14[418]](_0x4e14[219],_0xa132x4,!1);_0xa132x3[_0x4e14[219]](_0xa132x2);},getValue:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=null!=_0xa132x2?_0xa132x2[_0xa132x3]:null;null==_0xa132x2&&(_0xa132x2=_0xa132x4);return _0xa132x2;},getNumber:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=null!=_0xa132x2?_0xa132x2[_0xa132x3]:null;null==_0xa132x2&&(_0xa132x2=_0xa132x4||0);return Number(_0xa132x2);},getColor:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=null!=_0xa132x2?_0xa132x2[_0xa132x3]:null;null==_0xa132x2?_0xa132x2=_0xa132x4:_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);return _0xa132x2;},clone:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:!1;var _0xa132x5=null;if(null!=_0xa132x2&&_0x4e14[279]== typeof _0xa132x2[_0x4e14[196]]){var _0xa132x5= new _0xa132x2[_0x4e14[196]],_0xa132x9;for(_0xa132x9 in _0xa132x2){if(_0xa132x9!=mxObjectIdentity[_0x4e14[195]]&&(null==_0xa132x3||0>mxUtils[_0x4e14[2]](_0xa132x3,_0xa132x9))){_0xa132x5[_0xa132x9]=!_0xa132x4&&_0x4e14[194]== typeof _0xa132x2[_0xa132x9]?mxUtils[_0x4e14[238]](_0xa132x2[_0xa132x9]):_0xa132x2[_0xa132x9]}};};return _0xa132x5;},equalPoints:function(_0xa132x2,_0xa132x3){if(null==_0xa132x2&&null!=_0xa132x3||null!=_0xa132x2&&null==_0xa132x3||null!=_0xa132x2&&null!=_0xa132x3&&_0xa132x2[_0x4e14[67]]!=_0xa132x3[_0x4e14[67]]){return !1};if(null!=_0xa132x2&&null!=_0xa132x3){for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){if(_0xa132x2[_0xa132x4]==_0xa132x3[_0xa132x4]||null!=_0xa132x2[_0xa132x4]&&!_0xa132x2[_0xa132x4][_0x4e14[237]](_0xa132x3[_0xa132x4])){return !1}}};return !0;},equalEntries:function(_0xa132x2,_0xa132x3){if(null==_0xa132x2&&null!=_0xa132x3||null!=_0xa132x2&&null==_0xa132x3||null!=_0xa132x2&&null!=_0xa132x3&&_0xa132x2[_0x4e14[67]]!=_0xa132x3[_0x4e14[67]]){return !1};if(null!=_0xa132x2&&null!=_0xa132x3){for(var _0xa132x4 in _0xa132x2){if(_0xa132x2[_0xa132x4]!=_0xa132x3[_0xa132x4]){return !1}}};return !0;},extend:function(_0xa132x2,_0xa132x3){var _0xa132x4=function(){};_0xa132x4[_0x4e14[202]]=_0xa132x3[_0x4e14[202]];_0xa132x2[_0x4e14[202]]= new _0xa132x4;_0xa132x2[_0x4e14[202]][_0x4e14[196]]=_0xa132x2;},toString:function(_0xa132x2){var _0xa132x3=_0x4e14[110],_0xa132x4;for(_0xa132x4 in _0xa132x2){try{if(null==_0xa132x2[_0xa132x4]){_0xa132x3+=_0xa132x4+_0x4e14[419]}else {if(_0x4e14[279]== typeof _0xa132x2[_0xa132x4]){_0xa132x3+=_0xa132x4+_0x4e14[420]}else {if(_0x4e14[194]== typeof _0xa132x2[_0xa132x4]){var _0xa132x5=mxUtils[_0x4e14[197]](_0xa132x2[_0xa132x4][_0x4e14[196]]),_0xa132x3=_0xa132x3+(_0xa132x4+_0x4e14[421]+_0xa132x5+_0x4e14[422])}else {_0xa132x3+=_0xa132x4+_0x4e14[423]+_0xa132x2[_0xa132x4]+_0x4e14[192]}}}}catch(e){_0xa132x3+=_0xa132x4+_0x4e14[226]+e[_0x4e14[281]]}};return _0xa132x3;},toRadians:function(_0xa132x2){return Math[_0x4e14[424]]*_0xa132x2/180},arcToCurves:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){_0xa132x13-=_0xa132x2;_0xa132x14-=_0xa132x3;if(0===_0xa132x4||0===_0xa132x5){return _0xa132x18};_0xa132x4=Math[_0x4e14[425]](_0xa132x4);_0xa132x5=Math[_0x4e14[425]](_0xa132x5);var _0xa132x15=-_0xa132x13/2,_0xa132x16=-_0xa132x14/2,_0xa132x17=Math[_0x4e14[426]](_0xa132x9*Math[_0x4e14[424]]/180),_0xa132x18=Math[_0x4e14[427]](_0xa132x9*Math[_0x4e14[424]]/180);_0xa132x9=_0xa132x17*_0xa132x15+_0xa132x18*_0xa132x16;var _0xa132x15=-1*_0xa132x18*_0xa132x15+_0xa132x17*_0xa132x16,_0xa132x16=_0xa132x9*_0xa132x9,_0xa132x19=_0xa132x15*_0xa132x15,_0xa132x1a=_0xa132x4*_0xa132x4,_0xa132x1b=_0xa132x5*_0xa132x5,_0xa132x1c=_0xa132x16/_0xa132x1a+_0xa132x19/_0xa132x1b;1<_0xa132x1c?(_0xa132x4*=Math[_0x4e14[428]](_0xa132x1c),_0xa132x5*=Math[_0x4e14[428]](_0xa132x1c),_0xa132xa=0):(_0xa132x1c=1,_0xa132xa===_0xa132x12&&(_0xa132x1c= -1),_0xa132xa=_0xa132x1c*Math[_0x4e14[428]]((_0xa132x1a*_0xa132x1b-_0xa132x1a*_0xa132x19-_0xa132x1b*_0xa132x16)/(_0xa132x1a*_0xa132x19+_0xa132x1b*_0xa132x16)));_0xa132x16=_0xa132xa*_0xa132x4*_0xa132x15/_0xa132x5;_0xa132x19=-1*_0xa132xa*_0xa132x5*_0xa132x9/_0xa132x4;_0xa132x13=_0xa132x17*_0xa132x16-_0xa132x18*_0xa132x19+_0xa132x13/2;_0xa132x14=_0xa132x18*_0xa132x16+_0xa132x17*_0xa132x19+_0xa132x14/2;_0xa132x1a=Math[_0x4e14[429]]((_0xa132x15-_0xa132x19)/_0xa132x5,(_0xa132x9-_0xa132x16)/_0xa132x4)-Math[_0x4e14[429]](0,1);_0xa132xa=0<=_0xa132x1a?_0xa132x1a:2*Math[_0x4e14[424]]+_0xa132x1a;_0xa132x1a=Math[_0x4e14[429]]((-_0xa132x15-_0xa132x19)/_0xa132x5,(-_0xa132x9-_0xa132x16)/_0xa132x4)-Math[_0x4e14[429]]((_0xa132x15-_0xa132x19)/_0xa132x5,(_0xa132x9-_0xa132x16)/_0xa132x4);_0xa132x9=0<=_0xa132x1a?_0xa132x1a:2*Math[_0x4e14[424]]+_0xa132x1a;0==_0xa132x12&&0<_0xa132x9?_0xa132x9-=2*Math[_0x4e14[424]]:0!=_0xa132x12&&0>_0xa132x9&&(_0xa132x9+=2*Math[_0x4e14[424]]);_0xa132x12=2*_0xa132x9/Math[_0x4e14[424]];_0xa132x12=Math[_0x4e14[430]](0>_0xa132x12?-1*_0xa132x12:_0xa132x12);_0xa132x9/=_0xa132x12;_0xa132x15=8/3*Math[_0x4e14[427]](_0xa132x9/4)*Math[_0x4e14[427]](_0xa132x9/4)/Math[_0x4e14[427]](_0xa132x9/2);_0xa132x16=_0xa132x17*_0xa132x4;_0xa132x17*=_0xa132x5;_0xa132x4*=_0xa132x18;_0xa132x5*=_0xa132x18;for(var _0xa132x1d=Math[_0x4e14[426]](_0xa132xa),_0xa132x1e=Math[_0x4e14[427]](_0xa132xa),_0xa132x19=-_0xa132x15*(_0xa132x16*_0xa132x1e+_0xa132x5*_0xa132x1d),_0xa132x1a=-_0xa132x15*(_0xa132x4*_0xa132x1e-_0xa132x17*_0xa132x1d),_0xa132x1c=_0xa132x1b=0,_0xa132x18=[],_0xa132x1f=0;_0xa132x1f<_0xa132x12;++_0xa132x1f){_0xa132xa+=_0xa132x9;var _0xa132x1d=Math[_0x4e14[426]](_0xa132xa),_0xa132x1e=Math[_0x4e14[427]](_0xa132xa),_0xa132x1b=_0xa132x16*_0xa132x1d-_0xa132x5*_0xa132x1e+_0xa132x13,_0xa132x1c=_0xa132x4*_0xa132x1d+_0xa132x17*_0xa132x1e+_0xa132x14,_0xa132x20=-_0xa132x15*(_0xa132x16*_0xa132x1e+_0xa132x5*_0xa132x1d),_0xa132x1d=-_0xa132x15*(_0xa132x4*_0xa132x1e-_0xa132x17*_0xa132x1d),_0xa132x1e=6*_0xa132x1f;_0xa132x18[_0xa132x1e]=Number(_0xa132x19+_0xa132x2);_0xa132x18[_0xa132x1e+1]=Number(_0xa132x1a+_0xa132x3);_0xa132x18[_0xa132x1e+2]=Number(_0xa132x1b-_0xa132x20+_0xa132x2);_0xa132x18[_0xa132x1e+3]=Number(_0xa132x1c-_0xa132x1d+_0xa132x3);_0xa132x18[_0xa132x1e+4]=Number(_0xa132x1b+_0xa132x2);_0xa132x18[_0xa132x1e+5]=Number(_0xa132x1c+_0xa132x3);_0xa132x19=_0xa132x1b+_0xa132x20;_0xa132x1a=_0xa132x1c+_0xa132x1d;};return _0xa132x18;},getBoundingBox:function(_0xa132x2,_0xa132x3){var _0xa132x4=null;if(null!=_0xa132x2&&null!=_0xa132x3&&0!=_0xa132x3){var _0xa132x5=mxUtils[_0x4e14[431]](_0xa132x3),_0xa132x4=Math[_0x4e14[426]](_0xa132x5),_0xa132x9=Math[_0x4e14[427]](_0xa132x5),_0xa132xa= new mxPoint(_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]/2,_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]/2),_0xa132x12= new mxPoint(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]]),_0xa132x5= new mxPoint(_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]],_0xa132x2[_0x4e14[236]]),_0xa132x13= new mxPoint(_0xa132x5[_0x4e14[235]],_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]),_0xa132x14= new mxPoint(_0xa132x2[_0x4e14[235]],_0xa132x13[_0x4e14[236]]),_0xa132x12=mxUtils[_0x4e14[432]](_0xa132x12,_0xa132x4,_0xa132x9,_0xa132xa),_0xa132x5=mxUtils[_0x4e14[432]](_0xa132x5,_0xa132x4,_0xa132x9,_0xa132xa),_0xa132x13=mxUtils[_0x4e14[432]](_0xa132x13,_0xa132x4,_0xa132x9,_0xa132xa),_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x4,_0xa132x9,_0xa132xa),_0xa132x4= new mxRectangle(_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]],0,0);_0xa132x4[_0x4e14[99]]( new mxRectangle(_0xa132x5[_0x4e14[235]],_0xa132x5[_0x4e14[236]],0,0));_0xa132x4[_0x4e14[99]]( new mxRectangle(_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]],0,0));_0xa132x4[_0x4e14[99]]( new mxRectangle(_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]],0,0));};return _0xa132x4;},getRotatedPoint:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x5=null!=_0xa132x5?_0xa132x5: new mxPoint;var _0xa132x9=_0xa132x2[_0x4e14[235]]-_0xa132x5[_0x4e14[235]];_0xa132x2=_0xa132x2[_0x4e14[236]]-_0xa132x5[_0x4e14[236]];return  new mxPoint(_0xa132x9*_0xa132x3-_0xa132x2*_0xa132x4+_0xa132x5[_0x4e14[235]],_0xa132x2*_0xa132x3+_0xa132x9*_0xa132x4+_0xa132x5[_0x4e14[236]]);},getPortConstraints:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x2=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==_0xa132x2){return _0xa132x5};_0xa132x5=_0xa132x2.toString();_0xa132x2=mxConstants[_0x4e14[434]];0<=_0xa132x5[_0x4e14[2]](mxConstants.DIRECTION_NORTH)&&(_0xa132x2|=mxConstants[_0x4e14[435]]);0<=_0xa132x5[_0x4e14[2]](mxConstants.DIRECTION_WEST)&&(_0xa132x2|=mxConstants[_0x4e14[436]]);0<=_0xa132x5[_0x4e14[2]](mxConstants.DIRECTION_SOUTH)&&(_0xa132x2|=mxConstants[_0x4e14[437]]);0<=_0xa132x5[_0x4e14[2]](mxConstants.DIRECTION_EAST)&&(_0xa132x2|=mxConstants[_0x4e14[438]]);return _0xa132x2;},reversePortConstraints:function(_0xa132x2){var _0xa132x3=0,_0xa132x3=(_0xa132x2&mxConstants[_0x4e14[436]])<<3,_0xa132x3=_0xa132x3|(_0xa132x2&mxConstants[_0x4e14[435]])<<1,_0xa132x3=_0xa132x3|(_0xa132x2&mxConstants[_0x4e14[437]])>>1;return _0xa132x3|=(_0xa132x2&mxConstants[_0x4e14[438]])>>3;},findNearestSegment:function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=-1;if(0<_0xa132x2[_0x4e14[439]][_0x4e14[67]]){for(var _0xa132x9=_0xa132x2[_0x4e14[439]][0],_0xa132xa=null,_0xa132x12=1;_0xa132x12<_0xa132x2[_0x4e14[439]][_0x4e14[67]];_0xa132x12++){var _0xa132x13=_0xa132x2[_0x4e14[439]][_0xa132x12],_0xa132x9=mxUtils[_0x4e14[440]](_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]],_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]],_0xa132x3,_0xa132x4);if(null==_0xa132xa||_0xa132x9<_0xa132xa){_0xa132xa=_0xa132x9,_0xa132x5=_0xa132x12-1};_0xa132x9=_0xa132x13;}};return _0xa132x5;},rectangleIntersectsSegment:function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x2[_0x4e14[236]],_0xa132x9=_0xa132x2[_0x4e14[235]],_0xa132xa=_0xa132x5+_0xa132x2[_0x4e14[119]],_0xa132x12=_0xa132x9+_0xa132x2[_0x4e14[117]];_0xa132x2=_0xa132x3[_0x4e14[235]];var _0xa132x13=_0xa132x4[_0x4e14[235]];_0xa132x3[_0x4e14[235]]>_0xa132x4[_0x4e14[235]]&&(_0xa132x2=_0xa132x4[_0x4e14[235]],_0xa132x13=_0xa132x3[_0x4e14[235]]);_0xa132x13>_0xa132x12&&(_0xa132x13=_0xa132x12);_0xa132x2<_0xa132x9&&(_0xa132x2=_0xa132x9);if(_0xa132x2>_0xa132x13){return !1};var _0xa132x9=_0xa132x3[_0x4e14[236]],_0xa132x12=_0xa132x4[_0x4e14[236]],_0xa132x14=_0xa132x4[_0x4e14[235]]-_0xa132x3[_0x4e14[235]];1E-7<Math[_0x4e14[425]](_0xa132x14)&&(_0xa132x4=(_0xa132x4[_0x4e14[236]]-_0xa132x3[_0x4e14[236]])/_0xa132x14,_0xa132x3=_0xa132x3[_0x4e14[236]]-_0xa132x4*_0xa132x3[_0x4e14[235]],_0xa132x9=_0xa132x4*_0xa132x2+_0xa132x3,_0xa132x12=_0xa132x4*_0xa132x13+_0xa132x3);_0xa132x9>_0xa132x12&&(_0xa132x3=_0xa132x12,_0xa132x12=_0xa132x9,_0xa132x9=_0xa132x3);_0xa132x12>_0xa132xa&&(_0xa132x12=_0xa132xa);_0xa132x9<_0xa132x5&&(_0xa132x9=_0xa132x5);return _0xa132x9>_0xa132x12?!1:!0;},contains:function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x2[_0x4e14[235]]<=_0xa132x3&&_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]>=_0xa132x3&&_0xa132x2[_0x4e14[236]]<=_0xa132x4&&_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]>=_0xa132x4},intersects:function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[117]],_0xa132x5=_0xa132x2[_0x4e14[119]],_0xa132x9=_0xa132x3[_0x4e14[117]],_0xa132xa=_0xa132x3[_0x4e14[119]];if(0>=_0xa132x9||0>=_0xa132xa||0>=_0xa132x4||0>=_0xa132x5){return !1};var _0xa132x12=_0xa132x2[_0x4e14[235]],_0xa132x13=_0xa132x2[_0x4e14[236]],_0xa132x14=_0xa132x3[_0x4e14[235]],_0xa132x15=_0xa132x3[_0x4e14[236]],_0xa132x9=_0xa132x9+_0xa132x14,_0xa132xa=_0xa132xa+_0xa132x15,_0xa132x4=_0xa132x4+_0xa132x12,_0xa132x5=_0xa132x5+_0xa132x13;return (_0xa132x9<_0xa132x14||_0xa132x9>_0xa132x12)&&(_0xa132xa<_0xa132x15||_0xa132xa>_0xa132x13)&&(_0xa132x4<_0xa132x12||_0xa132x4>_0xa132x14)&&(_0xa132x5<_0xa132x13||_0xa132x5>_0xa132x15);},intersectsHotspot:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x5=null!=_0xa132x5?_0xa132x5:1;_0xa132x9=null!=_0xa132x9?_0xa132x9:0;_0xa132xa=null!=_0xa132xa?_0xa132xa:0;if(0<_0xa132x5){var _0xa132x12=_0xa132x2[_0x4e14[241]](),_0xa132x13=_0xa132x2[_0x4e14[242]](),_0xa132x14=_0xa132x2[_0x4e14[117]],_0xa132x15=_0xa132x2[_0x4e14[119]],_0xa132x16=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_STARTSIZE)*_0xa132x2[_0x4e14[441]][_0x4e14[255]];0<_0xa132x16&&(mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_HORIZONTAL,!0)?(_0xa132x13=_0xa132x2[_0x4e14[236]]+_0xa132x16/2,_0xa132x15=_0xa132x16):(_0xa132x12=_0xa132x2[_0x4e14[235]]+_0xa132x16/2,_0xa132x14=_0xa132x16));_0xa132x14=Math[_0x4e14[160]](_0xa132x9,_0xa132x14*_0xa132x5);_0xa132x15=Math[_0x4e14[160]](_0xa132x9,_0xa132x15*_0xa132x5);0<_0xa132xa&&(_0xa132x14=Math[_0x4e14[243]](_0xa132x14,_0xa132xa),_0xa132x15=Math[_0x4e14[243]](_0xa132x15,_0xa132xa));_0xa132x5= new mxRectangle(_0xa132x12-_0xa132x14/2,_0xa132x13-_0xa132x15/2,_0xa132x14,_0xa132x15);_0xa132x12=mxUtils[_0x4e14[431]](mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ROTATION)||0);0!=_0xa132x12&&(_0xa132x9=Math[_0x4e14[426]](-_0xa132x12),_0xa132xa=Math[_0x4e14[427]](-_0xa132x12),_0xa132x12= new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]()),_0xa132x2=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x3,_0xa132x4),_0xa132x9,_0xa132xa,_0xa132x12),_0xa132x3=_0xa132x2[_0x4e14[235]],_0xa132x4=_0xa132x2[_0x4e14[236]]);return mxUtils[_0x4e14[442]](_0xa132x5,_0xa132x3,_0xa132x4);};return !0;},getOffset:function(_0xa132x2,_0xa132x3){var _0xa132x4=0,_0xa132x5=0;if(null!=_0xa132x3&&_0xa132x3){var _0xa132x9=document[_0x4e14[112]],_0xa132xa=document[_0x4e14[158]],_0xa132x4=_0xa132x4+(_0xa132x9[_0x4e14[360]]||_0xa132xa[_0x4e14[360]]),_0xa132x5=_0xa132x5+(_0xa132x9[_0x4e14[190]]||_0xa132xa[_0x4e14[190]])};for(;_0xa132x2[_0x4e14[443]];){_0xa132x4+=_0xa132x2[_0x4e14[358]],_0xa132x5+=_0xa132x2[_0x4e14[362]],_0xa132x2=_0xa132x2[_0x4e14[443]]};return  new mxPoint(_0xa132x4,_0xa132x5);},getScrollOrigin:function(_0xa132x2){for(var _0xa132x3=document[_0x4e14[112]],_0xa132x4=document[_0x4e14[158]],_0xa132x5= new mxPoint(_0xa132x3[_0x4e14[360]]||_0xa132x4[_0x4e14[360]],_0xa132x3[_0x4e14[190]]||_0xa132x4[_0x4e14[190]]);null!=_0xa132x2&&_0xa132x2!=_0xa132x3&&_0xa132x2!=_0xa132x4;){!isNaN(_0xa132x2[_0x4e14[360]])&&!isNaN(_0xa132x2[_0x4e14[190]])&&(_0xa132x5[_0x4e14[235]]+=_0xa132x2[_0x4e14[360]],_0xa132x5[_0x4e14[236]]+=_0xa132x2[_0x4e14[190]]),_0xa132x2=_0xa132x2[_0x4e14[265]]};return _0xa132x5;},convertPoint:function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=mxUtils[_0x4e14[444]](_0xa132x2);_0xa132x2=mxUtils[_0x4e14[445]](_0xa132x2);_0xa132x2[_0x4e14[235]]-=_0xa132x5[_0x4e14[235]];_0xa132x2[_0x4e14[236]]-=_0xa132x5[_0x4e14[236]];return  new mxPoint(_0xa132x3-_0xa132x2[_0x4e14[235]],_0xa132x4-_0xa132x2[_0x4e14[236]]);},ltrim:function(_0xa132x2,_0xa132x3){return _0xa132x2[_0x4e14[230]](RegExp(_0x4e14[446]+(_0xa132x3||_0x4e14[447])+_0x4e14[448],_0x4e14[449]),_0x4e14[110])},rtrim:function(_0xa132x2,_0xa132x3){return _0xa132x2[_0x4e14[230]](RegExp(_0x4e14[450]+(_0xa132x3||_0x4e14[447])+_0x4e14[451],_0x4e14[449]),_0x4e14[110])},trim:function(_0xa132x2,_0xa132x3){return mxUtils[_0x4e14[453]](mxUtils[_0x4e14[452]](_0xa132x2,_0xa132x3),_0xa132x3)},isNumeric:function(_0xa132x2){return null!=_0xa132x2&&(null==_0xa132x2[_0x4e14[67]]||0<_0xa132x2[_0x4e14[67]]&&0>_0xa132x2[_0x4e14[2]](_0x4e14[454])&&0>_0xa132x2[_0x4e14[2]](_0x4e14[455]))&&!isNaN(_0xa132x2)},mod:function(_0xa132x2,_0xa132x3){return (_0xa132x2%_0xa132x3+_0xa132x3)%_0xa132x3},intersection:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13){var _0xa132x14=(_0xa132x13-_0xa132xa)*(_0xa132x4-_0xa132x2)-(_0xa132x12-_0xa132x9)*(_0xa132x5-_0xa132x3);_0xa132x12=((_0xa132x12-_0xa132x9)*(_0xa132x3-_0xa132xa)-(_0xa132x13-_0xa132xa)*(_0xa132x2-_0xa132x9))/_0xa132x14;_0xa132x9=((_0xa132x4-_0xa132x2)*(_0xa132x3-_0xa132xa)-(_0xa132x5-_0xa132x3)*(_0xa132x2-_0xa132x9))/_0xa132x14;return 0<=_0xa132x12&&1>=_0xa132x12&&0<=_0xa132x9&&1>=_0xa132x9? new mxPoint(_0xa132x2+_0xa132x12*(_0xa132x4-_0xa132x2),_0xa132x3+_0xa132x12*(_0xa132x5-_0xa132x3)):null;},ptSegDistSq:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x4-=_0xa132x2;_0xa132x5-=_0xa132x3;_0xa132x9-=_0xa132x2;_0xa132xa-=_0xa132x3;0>=_0xa132x9*_0xa132x4+_0xa132xa*_0xa132x5?_0xa132x4=0:(_0xa132x9=_0xa132x4-_0xa132x9,_0xa132xa=_0xa132x5-_0xa132xa,_0xa132x2=_0xa132x9*_0xa132x4+_0xa132xa*_0xa132x5,_0xa132x4=0>=_0xa132x2?0:_0xa132x2*_0xa132x2/(_0xa132x4*_0xa132x4+_0xa132x5*_0xa132x5));_0xa132x9=_0xa132x9*_0xa132x9+_0xa132xa*_0xa132xa-_0xa132x4;0>_0xa132x9&&(_0xa132x9=0);return _0xa132x9;},relativeCcw:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x4-=_0xa132x2;_0xa132x5-=_0xa132x3;_0xa132x9-=_0xa132x2;_0xa132xa-=_0xa132x3;_0xa132x2=_0xa132x9*_0xa132x5-_0xa132xa*_0xa132x4;0==_0xa132x2&&(_0xa132x2=_0xa132x9*_0xa132x4+_0xa132xa*_0xa132x5,0<_0xa132x2&&(_0xa132x2=(_0xa132x9-_0xa132x4)*_0xa132x4+(_0xa132xa-_0xa132x5)*_0xa132x5,0>_0xa132x2&&(_0xa132x2=0)));return 0>_0xa132x2?-1:0<_0xa132x2?1:0;},animateChanges:function(_0xa132x2,_0xa132x3){mxEffects[_0x4e14[456]][_0x4e14[183]](this,arguments)},cascadeOpacity:function(_0xa132x2,_0xa132x3,_0xa132x4){mxEffects[_0x4e14[260]][_0x4e14[183]](this,arguments)},fadeOut:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){mxEffects[_0x4e14[457]][_0x4e14[183]](this,arguments)},setOpacity:function(_0xa132x2,_0xa132x3){mxUtils[_0x4e14[458]](_0xa132x2)?_0xa132x2[_0x4e14[124]][_0x4e14[347]]=100<=_0xa132x3?null:_0x4e14[459]+_0xa132x3/5+_0x4e14[460]:mxClient[_0x4e14[80]]&&(_0x4e14[82]=== typeof document[_0x4e14[5]]||9>document[_0x4e14[5]])?_0xa132x2[_0x4e14[124]][_0x4e14[347]]=100<=_0xa132x3?null:_0x4e14[459]+_0xa132x3+_0x4e14[460]:_0xa132x2[_0x4e14[124]][_0x4e14[461]]=_0xa132x3/100},createImage:function(_0xa132x2){var _0xa132x3=null;mxClient[_0x4e14[49]]&&_0x4e14[462]!=document[_0x4e14[135]]?(_0xa132x3=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[464]),_0xa132x3[_0x4e14[57]](_0x4e14[390],_0xa132x2),_0xa132x3[_0x4e14[124]][_0x4e14[465]]=_0x4e14[130]):(_0xa132x3=document[_0x4e14[55]](_0x4e14[466]),_0xa132x3[_0x4e14[57]](_0x4e14[390],_0xa132x2),_0xa132x3[_0x4e14[57]](_0x4e14[467],_0x4e14[468]));return _0xa132x3;},sortCells:function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;var _0xa132x4= new mxDictionary;_0xa132x2[_0x4e14[470]](function(_0xa132x2,_0xa132x9){var _0xa132xa=_0xa132x4[_0x4e14[203]](_0xa132x2);null==_0xa132xa&&(_0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2)[_0x4e14[224]](mxCellPath.PATH_SEPARATOR),_0xa132x4[_0x4e14[204]](_0xa132x2,_0xa132xa));var _0xa132x12=_0xa132x4[_0x4e14[203]](_0xa132x9);null==_0xa132x12&&(_0xa132x12=mxCellPath[_0x4e14[385]](_0xa132x9)[_0x4e14[224]](mxCellPath.PATH_SEPARATOR),_0xa132x4[_0x4e14[204]](_0xa132x9,_0xa132x12));_0xa132xa=mxCellPath[_0x4e14[469]](_0xa132xa,_0xa132x12);return 0==_0xa132xa?0:0<_0xa132xa==_0xa132x3?1:-1;});return _0xa132x2;},getStylename:function(_0xa132x2){return null!=_0xa132x2&&(_0xa132x2=_0xa132x2[_0x4e14[224]](_0x4e14[471])[0],0>_0xa132x2[_0x4e14[2]](_0x4e14[226]))?_0xa132x2:_0x4e14[110]},getStylenames:function(_0xa132x2){var _0xa132x3=[];if(null!=_0xa132x2){_0xa132x2=_0xa132x2[_0x4e14[224]](_0x4e14[471]);for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){0>_0xa132x2[_0xa132x4][_0x4e14[2]](_0x4e14[226])&&_0xa132x3[_0x4e14[207]](_0xa132x2[_0xa132x4])};};return _0xa132x3;},indexOfStylename:function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&null!=_0xa132x3){for(var _0xa132x4=_0xa132x2[_0x4e14[224]](_0x4e14[471]),_0xa132x5=0,_0xa132x9=0;_0xa132x9<_0xa132x4[_0x4e14[67]];_0xa132x9++){if(_0xa132x4[_0xa132x9]==_0xa132x3){return _0xa132x5};_0xa132x5+=_0xa132x4[_0xa132x9][_0x4e14[67]]+1;}};return -1;},addStylename:function(_0xa132x2,_0xa132x3){0>mxUtils[_0x4e14[472]](_0xa132x2,_0xa132x3)&&(null==_0xa132x2?_0xa132x2=_0x4e14[110]:0<_0xa132x2[_0x4e14[67]]&&_0x4e14[471]!=_0xa132x2[_0x4e14[225]](_0xa132x2[_0x4e14[67]]-1)&&(_0xa132x2+=_0x4e14[471]),_0xa132x2+=_0xa132x3);return _0xa132x2;},removeStylename:function(_0xa132x2,_0xa132x3){var _0xa132x4=[];if(null!=_0xa132x2){for(var _0xa132x5=_0xa132x2[_0x4e14[224]](_0x4e14[471]),_0xa132x9=0;_0xa132x9<_0xa132x5[_0x4e14[67]];_0xa132x9++){_0xa132x5[_0xa132x9]!=_0xa132x3&&_0xa132x4[_0x4e14[207]](_0xa132x5[_0xa132x9])}};return _0xa132x4[_0x4e14[234]](_0x4e14[471]);},removeAllStylenames:function(_0xa132x2){var _0xa132x3=[];if(null!=_0xa132x2){_0xa132x2=_0xa132x2[_0x4e14[224]](_0x4e14[471]);for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){0<=_0xa132x2[_0xa132x4][_0x4e14[2]](_0x4e14[226])&&_0xa132x3[_0x4e14[207]](_0xa132x2[_0xa132x4])};};return _0xa132x3[_0x4e14[234]](_0x4e14[471]);},setCellStyles:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]){_0xa132x2[_0x4e14[473]]();try{for(var _0xa132x9=0;_0xa132x9<_0xa132x3[_0x4e14[67]];_0xa132x9++){if(null!=_0xa132x3[_0xa132x9]){var _0xa132xa=mxUtils[_0x4e14[475]](_0xa132x2[_0x4e14[474]](_0xa132x3[_0xa132x9]),_0xa132x4,_0xa132x5);_0xa132x2[_0x4e14[475]](_0xa132x3[_0xa132x9],_0xa132xa);}}}finally{_0xa132x2[_0x4e14[476]]()};}},setStyle:function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=null!=_0xa132x4&&(_0x4e14[82]== typeof _0xa132x4[_0x4e14[67]]||0<_0xa132x4[_0x4e14[67]]);if(null==_0xa132x2||0==_0xa132x2[_0x4e14[67]]){_0xa132x5&&(_0xa132x2=_0xa132x3+_0x4e14[226]+_0xa132x4)}else {var _0xa132x9=_0xa132x2[_0x4e14[2]](_0xa132x3+_0x4e14[226]);0>_0xa132x9?_0xa132x5&&(_0xa132x5=_0x4e14[471]==_0xa132x2[_0x4e14[225]](_0xa132x2[_0x4e14[67]]-1)?_0x4e14[110]:_0x4e14[471],_0xa132x2=_0xa132x2+_0xa132x5+_0xa132x3+_0x4e14[226]+_0xa132x4):(_0xa132x3=_0xa132x5?_0xa132x3+_0x4e14[226]+_0xa132x4:_0x4e14[110],_0xa132x4=_0xa132x2[_0x4e14[2]](_0x4e14[471],_0xa132x9),_0xa132x5||_0xa132x4++,_0xa132x2=_0xa132x2[_0x4e14[85]](0,_0xa132x9)+_0xa132x3+(_0xa132x4>_0xa132x9?_0xa132x2[_0x4e14[85]](_0xa132x4):_0x4e14[110]));};return _0xa132x2;},setCellStyleFlags:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]){_0xa132x2[_0x4e14[473]]();try{for(var _0xa132xa=0;_0xa132xa<_0xa132x3[_0x4e14[67]];_0xa132xa++){if(null!=_0xa132x3[_0xa132xa]){var _0xa132x12=mxUtils[_0x4e14[477]](_0xa132x2[_0x4e14[474]](_0xa132x3[_0xa132xa]),_0xa132x4,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[475]](_0xa132x3[_0xa132xa],_0xa132x12);}}}finally{_0xa132x2[_0x4e14[476]]()};}},setStyleFlag:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null==_0xa132x2||0==_0xa132x2[_0x4e14[67]]){_0xa132x2=_0xa132x5||null==_0xa132x5?_0xa132x3+_0x4e14[226]+_0xa132x4:_0xa132x3+_0x4e14[478]}else {var _0xa132x9=_0xa132x2[_0x4e14[2]](_0xa132x3+_0x4e14[226]);if(0>_0xa132x9){_0xa132x9=_0x4e14[471]==_0xa132x2[_0x4e14[225]](_0xa132x2[_0x4e14[67]]-1)?_0x4e14[110]:_0x4e14[471],_0xa132x2=_0xa132x5||null==_0xa132x5?_0xa132x2+_0xa132x9+_0xa132x3+_0x4e14[226]+_0xa132x4:_0xa132x2+_0xa132x9+_0xa132x3+_0x4e14[478]}else {var _0xa132xa=_0xa132x2[_0x4e14[2]](_0x4e14[471],_0xa132x9),_0xa132x12=_0x4e14[110],_0xa132x12=0>_0xa132xa?_0xa132x2[_0x4e14[85]](_0xa132x9+_0xa132x3[_0x4e14[67]]+1):_0xa132x2[_0x4e14[85]](_0xa132x9+_0xa132x3[_0x4e14[67]]+1,_0xa132xa),_0xa132x12=null==_0xa132x5?parseInt(_0xa132x12)^_0xa132x4:_0xa132x5?parseInt(_0xa132x12)|_0xa132x4:parseInt(_0xa132x12)& ~_0xa132x4;_0xa132x2=_0xa132x2[_0x4e14[85]](0,_0xa132x9)+_0xa132x3+_0x4e14[226]+_0xa132x12+(0<=_0xa132xa?_0xa132x2[_0x4e14[85]](_0xa132xa):_0x4e14[110]);};};return _0xa132x2;},getAlignmentAsPoint:function(_0xa132x2,_0xa132x3){var _0xa132x4=0,_0xa132x5=0;_0xa132x2==mxConstants[_0x4e14[479]]?_0xa132x4= -0.5:_0xa132x2==mxConstants[_0x4e14[480]]&&(_0xa132x4= -1);_0xa132x3==mxConstants[_0x4e14[481]]?_0xa132x5= -0.5:_0xa132x3==mxConstants[_0x4e14[482]]&&(_0xa132x5= -1);return  new mxPoint(_0xa132x4,_0xa132x5);},getSizeForString:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=null!=_0xa132x3?_0xa132x3:mxConstants[_0x4e14[483]];_0xa132x4=null!=_0xa132x4?_0xa132x4:mxConstants[_0x4e14[484]];var _0xa132x5=document[_0x4e14[55]](_0x4e14[485]);_0xa132x5[_0x4e14[124]][_0x4e14[486]]=_0xa132x4;_0xa132x5[_0x4e14[124]][_0x4e14[487]]=Math[_0x4e14[488]](_0xa132x3)+_0x4e14[168];_0xa132x5[_0x4e14[124]][_0x4e14[489]]=Math[_0x4e14[488]](_0xa132x3*mxConstants[_0x4e14[490]])+_0x4e14[168];_0xa132x5[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x5[_0x4e14[124]][_0x4e14[493]]=_0x4e14[494];_0xa132x5[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];_0xa132x5[_0x4e14[124]][_0x4e14[495]]=mxClient[_0x4e14[496]]?_0x4e14[497]:_0x4e14[498];_0xa132x5[_0x4e14[124]][_0x4e14[499]]=_0x4e14[500];_0xa132x5[_0x4e14[339]]=_0xa132x2;document[_0x4e14[112]][_0x4e14[62]](_0xa132x5);_0xa132x2= new mxRectangle(0,0,_0xa132x5[_0x4e14[359]],_0xa132x5[_0x4e14[167]]);document[_0x4e14[112]][_0x4e14[266]](_0xa132x5);return _0xa132x2;},getViewXml:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x5=null!=_0xa132x5?_0xa132x5:0;_0xa132x9=null!=_0xa132x9?_0xa132x9:0;_0xa132x3=null!=_0xa132x3?_0xa132x3:1;null==_0xa132x4&&(_0xa132x4=[_0xa132x2[_0x4e14[502]]()[_0x4e14[501]]()]);var _0xa132xa=_0xa132x2[_0x4e14[249]](),_0xa132x12=null,_0xa132x13=_0xa132xa[_0x4e14[503]]();_0xa132xa[_0x4e14[504]](!1);var _0xa132x14=_0xa132xa[_0x4e14[505]],_0xa132x15=_0xa132xa[_0x4e14[506]];_0xa132x2[_0x4e14[507]]==mxConstants[_0x4e14[508]]?(_0xa132xa[_0x4e14[505]]=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[449]),_0xa132xa[_0x4e14[510]][_0x4e14[62]](_0xa132xa[_0x4e14[505]]),_0xa132xa[_0x4e14[506]]=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[449])):(_0xa132xa[_0x4e14[505]]=_0xa132xa[_0x4e14[505]][_0x4e14[511]](!1),_0xa132xa[_0x4e14[510]][_0x4e14[62]](_0xa132xa[_0x4e14[505]]),_0xa132xa[_0x4e14[506]]=_0xa132xa[_0x4e14[506]][_0x4e14[511]](!1));_0xa132xa[_0x4e14[510]][_0x4e14[62]](_0xa132xa[_0x4e14[506]]);var _0xa132x16=_0xa132xa[_0x4e14[512]]();_0xa132xa[_0x4e14[513]]= new mxPoint(_0xa132x5,_0xa132x9);_0xa132x3= new mxTemporaryCellStates(_0xa132x2[_0x4e14[249]](),_0xa132x3,_0xa132x4);try{_0xa132x12=( new mxCodec)[_0x4e14[514]](_0xa132x2[_0x4e14[249]]())}finally{_0xa132x3[_0x4e14[515]](),_0xa132xa[_0x4e14[513]]=_0xa132x16,_0xa132xa[_0x4e14[510]][_0x4e14[266]](_0xa132xa[_0x4e14[505]]),_0xa132xa[_0x4e14[510]][_0x4e14[266]](_0xa132xa[_0x4e14[506]]),_0xa132xa[_0x4e14[505]]=_0xa132x14,_0xa132xa[_0x4e14[506]]=_0xa132x15,_0xa132xa[_0x4e14[504]](_0xa132x13)};return _0xa132x12;},getScaleForPageCount:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(1>_0xa132x2){return 1};_0xa132x4=null!=_0xa132x4?_0xa132x4:mxConstants[_0x4e14[516]];_0xa132x5=null!=_0xa132x5?_0xa132x5:0;var _0xa132x9=_0xa132x4[_0x4e14[117]]-2*_0xa132x5;_0xa132x4=_0xa132x4[_0x4e14[119]]-2*_0xa132x5;_0xa132x5=_0xa132x3[_0x4e14[517]]()[_0x4e14[238]]();_0xa132x3=_0xa132x3[_0x4e14[249]]()[_0x4e14[518]]();_0xa132x5[_0x4e14[117]]/=_0xa132x3;_0xa132x5[_0x4e14[119]]/=_0xa132x3;_0xa132x3=_0xa132x5[_0x4e14[117]];_0xa132x4=_0xa132x3/_0xa132x5[_0x4e14[119]]/(_0xa132x9/_0xa132x4);_0xa132x5=Math[_0x4e14[428]](_0xa132x2);var _0xa132xa=Math[_0x4e14[428]](_0xa132x4);_0xa132x4=_0xa132x5*_0xa132xa;_0xa132x5/=_0xa132xa;if(1>_0xa132x4&&_0xa132x5>_0xa132x2){var _0xa132x12=_0xa132x5/_0xa132x2;_0xa132x5=_0xa132x2;_0xa132x4/=_0xa132x12;};1>_0xa132x5&&_0xa132x4>_0xa132x2&&(_0xa132x12=_0xa132x4/_0xa132x2,_0xa132x4=_0xa132x2,_0xa132x5/=_0xa132x12);_0xa132x12=Math[_0x4e14[430]](_0xa132x4)*Math[_0x4e14[430]](_0xa132x5);for(_0xa132xa=0;_0xa132x12>_0xa132x2;){var _0xa132x12=Math[_0x4e14[519]](_0xa132x4)/_0xa132x4,_0xa132x13=Math[_0x4e14[519]](_0xa132x5)/_0xa132x5;1==_0xa132x12&&(_0xa132x12=Math[_0x4e14[519]](_0xa132x4-1)/_0xa132x4);1==_0xa132x13&&(_0xa132x13=Math[_0x4e14[519]](_0xa132x5-1)/_0xa132x5);_0xa132x12=_0xa132x12>_0xa132x13?_0xa132x12:_0xa132x13;_0xa132x4*=_0xa132x12;_0xa132x5*=_0xa132x12;_0xa132x12=Math[_0x4e14[430]](_0xa132x4)*Math[_0x4e14[430]](_0xa132x5);_0xa132xa++;if(10<_0xa132xa){break};};return 0.99999*(_0xa132x9*_0xa132x4/_0xa132x3);},show:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x4=null!=_0xa132x4?_0xa132x4:0;_0xa132x5=null!=_0xa132x5?_0xa132x5:0;null==_0xa132x3?_0xa132x3=window[_0x4e14[392]]()[_0x4e14[395]]:_0xa132x3[_0x4e14[392]]();var _0xa132x9=_0xa132x2[_0x4e14[517]]();_0xa132x4=-_0xa132x9[_0x4e14[235]]+_0xa132x4;_0xa132x5=-_0xa132x9[_0x4e14[236]]+_0xa132x5;if(mxClient[_0x4e14[80]]){for(var _0xa132x9=_0x4e14[520],_0xa132xa=document[_0x4e14[64]](_0x4e14[521]),_0xa132x12=0;_0xa132x12<_0xa132xa[_0x4e14[67]];_0xa132x12++){_0xa132x9+=_0xa132xa[_0xa132x12][_0x4e14[342]]};_0xa132x9+=_0x4e14[522];for(_0xa132x12=0;_0xa132x12<document[_0x4e14[523]][_0x4e14[67]];_0xa132x12++){try{_0xa132x9+=document[_0x4e14[523]](_0xa132x12)[_0x4e14[103]]}catch(h){}};_0xa132x9+=_0x4e14[524];_0xa132x9+=_0x4e14[525];_0xa132x9+=_0xa132x2[_0x4e14[526]][_0x4e14[339]];_0xa132x9+=_0x4e14[527];_0xa132x9+=_0x4e14[528];_0xa132x3[_0x4e14[171]](_0xa132x9);_0xa132x3[_0x4e14[268]]();_0xa132x2=_0xa132x3[_0x4e14[112]][_0x4e14[64]](_0x4e14[529])[0];null!=_0xa132x2&&(_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492],_0xa132x2[_0x4e14[124]][_0x4e14[361]]=_0xa132x4+_0x4e14[168],_0xa132x2[_0x4e14[124]][_0x4e14[125]]=_0xa132x5+_0x4e14[168]);}else {_0xa132x3[_0x4e14[171]](_0x4e14[530]);_0xa132x3[_0x4e14[171]](_0x4e14[531]);_0xa132xa=document[_0x4e14[64]](_0x4e14[521]);for(_0xa132x12=0;_0xa132x12<_0xa132xa[_0x4e14[67]];_0xa132x12++){_0xa132x3[_0x4e14[171]](mxUtils[_0x4e14[532]](_0xa132xa[_0xa132x12]))};_0xa132xa=document[_0x4e14[64]](_0x4e14[54]);for(_0xa132x12=0;_0xa132x12<_0xa132xa[_0x4e14[67]];_0xa132x12++){_0xa132x3[_0x4e14[171]](mxUtils[_0x4e14[532]](_0xa132xa[_0xa132x12]))};_0xa132xa=document[_0x4e14[64]](_0x4e14[124]);for(_0xa132x12=0;_0xa132x12<_0xa132xa[_0x4e14[67]];_0xa132x12++){_0xa132x3[_0x4e14[171]](mxUtils[_0x4e14[532]](_0xa132xa[_0xa132x12]))};_0xa132x3[_0x4e14[171]](_0x4e14[533]);_0xa132x3[_0x4e14[171]](_0x4e14[534]);_0xa132x3[_0x4e14[268]]();null==_0xa132x3[_0x4e14[112]]&&_0xa132x3[_0x4e14[158]][_0x4e14[62]](_0xa132x3[_0x4e14[55]](_0x4e14[112]));_0xa132x3[_0x4e14[112]][_0x4e14[124]][_0x4e14[277]]=_0x4e14[278];for(_0xa132x2=_0xa132x2[_0x4e14[526]][_0x4e14[285]];null!=_0xa132x2;){_0xa132x12=_0xa132x2[_0x4e14[511]](!0),_0xa132x3[_0x4e14[112]][_0x4e14[62]](_0xa132x12),_0xa132x2=_0xa132x2[_0x4e14[287]]};_0xa132x2=_0xa132x3[_0x4e14[64]](_0x4e14[449])[0];null!=_0xa132x2&&(_0xa132x2[_0x4e14[57]](_0x4e14[535],_0x4e14[536]+_0xa132x4+_0x4e14[537]+_0xa132x5+_0x4e14[460]),_0xa132x4=_0xa132x2[_0x4e14[538]],_0xa132x4[_0x4e14[57]](_0x4e14[117],_0xa132x9[_0x4e14[117]]+Math[_0x4e14[160]](_0xa132x9[_0x4e14[235]],0)+3),_0xa132x4[_0x4e14[57]](_0x4e14[119],_0xa132x9[_0x4e14[119]]+Math[_0x4e14[160]](_0xa132x9[_0x4e14[236]],0)+3));};mxUtils[_0x4e14[272]](_0xa132x3[_0x4e14[112]]);return _0xa132x3;},printScreen:function(_0xa132x2){var _0xa132x3=window[_0x4e14[392]]();mxUtils[_0x4e14[539]](_0xa132x2,_0xa132x3[_0x4e14[395]]);_0xa132x2=function(){_0xa132x3[_0x4e14[393]]();_0xa132x3[_0x4e14[540]]();_0xa132x3[_0x4e14[268]]();};mxClient[_0x4e14[76]]?_0xa132x3[_0x4e14[261]](_0xa132x2,500):_0xa132x2();},popup:function(_0xa132x2,_0xa132x3){if(_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[485]);_0xa132x4[_0x4e14[124]][_0x4e14[277]]=_0x4e14[276];_0xa132x4[_0x4e14[124]][_0x4e14[117]]=_0x4e14[541];_0xa132x4[_0x4e14[124]][_0x4e14[119]]=_0x4e14[542];var _0xa132x5=document[_0x4e14[55]](_0x4e14[543]);_0xa132x5[_0x4e14[339]]=mxUtils[_0x4e14[321]](_0xa132x2,!1)[_0x4e14[230]](/\n/g,_0x4e14[545])[_0x4e14[230]](/ /g,_0x4e14[544]);_0xa132x4[_0x4e14[62]](_0xa132x5);_0xa132x4= new mxWindow(_0x4e14[546],_0xa132x4,document[_0x4e14[112]][_0x4e14[159]]/2-320,(document[_0x4e14[112]][_0x4e14[157]]||document[_0x4e14[158]][_0x4e14[157]])/2-240,640,480,!1,!0);_0xa132x4[_0x4e14[164]](!0);_0xa132x4[_0x4e14[175]](!0);}else {mxClient[_0x4e14[133]]?(_0xa132x4=window[_0x4e14[392]](),_0xa132x4[_0x4e14[395]][_0x4e14[171]](_0x4e14[547]+mxUtils[_0x4e14[321]](_0xa132x2)+_0x4e14[548]),_0xa132x4[_0x4e14[395]][_0x4e14[268]]()):(_0xa132x4=window[_0x4e14[392]](),_0xa132x5=_0xa132x4[_0x4e14[395]][_0x4e14[55]](_0x4e14[543]),_0xa132x5[_0x4e14[339]]=mxUtils[_0x4e14[321]](_0xa132x2,!1)[_0x4e14[230]](/\n/g,_0x4e14[545])[_0x4e14[230]](/ /g,_0x4e14[544]),_0xa132x4[_0x4e14[395]][_0x4e14[112]][_0x4e14[62]](_0xa132x5))}},alert:function(_0xa132x2){alert(_0xa132x2)},prompt:function(_0xa132x2,_0xa132x3){return prompt(_0xa132x2,_0xa132x3)},confirm:function(_0xa132x2){return confirm(_0xa132x2)},error:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=document[_0x4e14[55]](_0x4e14[485]);_0xa132x9[_0x4e14[124]][_0x4e14[549]]=_0x4e14[550];var _0xa132xa=document[_0x4e14[55]](_0x4e14[466]);_0xa132xa[_0x4e14[57]](_0x4e14[390],_0xa132x5||mxUtils[_0x4e14[551]]);_0xa132xa[_0x4e14[57]](_0x4e14[552],_0x4e14[553]);_0xa132xa[_0x4e14[124]][_0x4e14[123]]=_0x4e14[554];_0xa132x9[_0x4e14[62]](_0xa132xa);_0xa132x9[_0x4e14[62]](document[_0x4e14[344]](_0x4e14[555]));_0xa132x9[_0x4e14[62]](document[_0x4e14[344]](_0x4e14[555]));_0xa132x9[_0x4e14[62]](document[_0x4e14[344]](_0x4e14[555]));mxUtils[_0x4e14[53]](_0xa132x9,_0xa132x2);_0xa132x2=document[_0x4e14[112]][_0x4e14[159]];_0xa132x5=document[_0x4e14[112]][_0x4e14[157]]||document[_0x4e14[158]][_0x4e14[157]];var _0xa132x12= new mxWindow(mxResources[_0x4e14[203]](mxUtils[_0x4e14[556]])||mxUtils[_0x4e14[556]],_0xa132x9,(_0xa132x2-_0xa132x3)/2,_0xa132x5/4,_0xa132x3,null,!1,!0);_0xa132x4&&(mxUtils[_0x4e14[345]](_0xa132x9),_0xa132x3=document[_0x4e14[55]](_0x4e14[346]),_0xa132x4=document[_0x4e14[55]](_0x4e14[172]),mxClient[_0x4e14[80]]?_0xa132x4[_0x4e14[124]][_0x4e14[103]]=_0x4e14[557]:_0xa132x4[_0x4e14[57]](_0x4e14[124],_0x4e14[557]),mxEvent[_0x4e14[169]](_0xa132x4,_0x4e14[173],function(_0xa132x2){_0xa132x12[_0x4e14[515]]()}),mxUtils[_0x4e14[53]](_0xa132x4,mxResources[_0x4e14[203]](mxUtils[_0x4e14[558]])||mxUtils[_0x4e14[558]]),_0xa132x3[_0x4e14[62]](_0xa132x4),_0xa132x9[_0x4e14[62]](_0xa132x3),mxUtils[_0x4e14[345]](_0xa132x9),_0xa132x12[_0x4e14[164]](!0));_0xa132x12[_0x4e14[175]](!0);return _0xa132x12;},makeDraggable:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15){_0xa132x2= new mxDragSource(_0xa132x2,_0xa132x4);_0xa132x2[_0x4e14[559]]= new mxPoint(null!=_0xa132x9?_0xa132x9:0,null!=_0xa132xa?_0xa132xa:mxConstants[_0x4e14[560]]);_0xa132x2[_0x4e14[561]]=_0xa132x12;_0xa132x2[_0x4e14[562]](!1);null!=_0xa132x14&&(_0xa132x2[_0x4e14[563]]=_0xa132x14);null!=_0xa132x15&&(_0xa132x2[_0x4e14[564]]=_0xa132x15);_0xa132x2[_0x4e14[565]]=function(_0xa132x2){return _0x4e14[279]== typeof _0xa132x3?_0xa132x3(_0xa132x2):_0xa132x3};null!=_0xa132x5&&(_0xa132x2[_0x4e14[566]]=function(){return _0xa132x5[_0x4e14[511]](!0)},_0xa132x13&&(_0xa132x2[_0x4e14[567]]=function(_0xa132x2){var _0xa132x3=_0xa132x5[_0x4e14[511]](!0),_0xa132x4=parseInt(_0xa132x3[_0x4e14[124]][_0x4e14[117]]),_0xa132x9=parseInt(_0xa132x3[_0x4e14[124]][_0x4e14[119]]);_0xa132x3[_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[488]](_0xa132x4*_0xa132x2[_0x4e14[441]][_0x4e14[255]])+_0x4e14[168];_0xa132x3[_0x4e14[124]][_0x4e14[119]]=Math[_0x4e14[488]](_0xa132x9*_0xa132x2[_0x4e14[441]][_0x4e14[255]])+_0x4e14[168];return _0xa132x3;}));return _0xa132x2;}},mxConstants={DEFAULT_HOTSPOT:0.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:_0x4e14[568],RENDERING_HINT_FASTER:_0x4e14[569],RENDERING_HINT_FASTEST:_0x4e14[570],DIALECT_SVG:_0x4e14[571],DIALECT_VML:_0x4e14[572],DIALECT_MIXEDHTML:_0x4e14[573],DIALECT_PREFERHTML:_0x4e14[574],DIALECT_STRICTHTML:_0x4e14[575],NS_SVG:_0x4e14[576],NS_XHTML:_0x4e14[577],NS_XLINK:_0x4e14[578],SHADOWCOLOR:_0x4e14[579],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:_0x4e14[580],DEFAULT_INVALID_COLOR:_0x4e14[581],HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:_0x4e14[582],CURSOR_MOVABLE_EDGE:_0x4e14[582],CURSOR_LABEL_HANDLE:_0x4e14[583],CURSOR_BEND_HANDLE:_0x4e14[356],CURSOR_CONNECT:_0x4e14[356],HIGHLIGHT_COLOR:_0x4e14[580],CONNECT_TARGET_COLOR:_0x4e14[584],INVALID_CONNECT_TARGET_COLOR:_0x4e14[581],DROP_TARGET_COLOR:_0x4e14[584],VALID_COLOR:_0x4e14[580],INVALID_COLOR:_0x4e14[581],EDGE_SELECTION_COLOR:_0x4e14[580],VERTEX_SELECTION_COLOR:_0x4e14[580],VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:_0x4e14[581],GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:_0x4e14[585],OUTLINE_STROKEWIDTH:mxClient[_0x4e14[80]]?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:_0x4e14[580],HANDLE_STROKECOLOR:_0x4e14[586],LABEL_HANDLE_FILLCOLOR:_0x4e14[587],CONNECT_HANDLE_FILLCOLOR:_0x4e14[584],LOCKED_HANDLE_FILLCOLOR:_0x4e14[581],OUTLINE_HANDLE_FILLCOLOR:_0x4e14[588],OUTLINE_HANDLE_STROKECOLOR:_0x4e14[589],DEFAULT_FONTFAMILY:_0x4e14[590],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:0.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:_0x4e14[130],STYLE_PERIMETER:_0x4e14[591],STYLE_SOURCE_PORT:_0x4e14[592],STYLE_TARGET_PORT:_0x4e14[593],STYLE_PORT_CONSTRAINT:_0x4e14[594],STYLE_OPACITY:_0x4e14[461],STYLE_TEXT_OPACITY:_0x4e14[595],STYLE_OVERFLOW:_0x4e14[277],STYLE_ORTHOGONAL:_0x4e14[596],STYLE_EXIT_X:_0x4e14[597],STYLE_EXIT_Y:_0x4e14[598],STYLE_EXIT_PERIMETER:_0x4e14[599],STYLE_ENTRY_X:_0x4e14[600],STYLE_ENTRY_Y:_0x4e14[601],STYLE_ENTRY_PERIMETER:_0x4e14[602],STYLE_WHITE_SPACE:_0x4e14[493],STYLE_ROTATION:_0x4e14[603],STYLE_FILLCOLOR:_0x4e14[604],STYLE_SWIMLANE_FILLCOLOR:_0x4e14[605],STYLE_GRADIENTCOLOR:_0x4e14[606],STYLE_GRADIENT_DIRECTION:_0x4e14[607],STYLE_STROKECOLOR:_0x4e14[608],STYLE_SEPARATORCOLOR:_0x4e14[609],STYLE_STROKEWIDTH:_0x4e14[610],STYLE_ALIGN:_0x4e14[611],STYLE_VERTICAL_ALIGN:_0x4e14[123],STYLE_LABEL_POSITION:_0x4e14[612],STYLE_VERTICAL_LABEL_POSITION:_0x4e14[613],STYLE_IMAGE_ASPECT:_0x4e14[614],STYLE_IMAGE_ALIGN:_0x4e14[615],STYLE_IMAGE_VERTICAL_ALIGN:_0x4e14[616],STYLE_GLASS:_0x4e14[617],STYLE_IMAGE:_0x4e14[618],STYLE_IMAGE_WIDTH:_0x4e14[619],STYLE_IMAGE_HEIGHT:_0x4e14[620],STYLE_IMAGE_BACKGROUND:_0x4e14[621],STYLE_IMAGE_BORDER:_0x4e14[622],STYLE_FLIPH:_0x4e14[623],STYLE_FLIPV:_0x4e14[624],STYLE_NOLABEL:_0x4e14[625],STYLE_NOEDGESTYLE:_0x4e14[626],STYLE_LABEL_BACKGROUNDCOLOR:_0x4e14[627],STYLE_LABEL_BORDERCOLOR:_0x4e14[628],STYLE_LABEL_PADDING:_0x4e14[629],STYLE_INDICATOR_SHAPE:_0x4e14[630],STYLE_INDICATOR_IMAGE:_0x4e14[631],STYLE_INDICATOR_COLOR:_0x4e14[632],STYLE_INDICATOR_STROKECOLOR:_0x4e14[633],STYLE_INDICATOR_GRADIENTCOLOR:_0x4e14[634],STYLE_INDICATOR_SPACING:_0x4e14[635],STYLE_INDICATOR_WIDTH:_0x4e14[636],STYLE_INDICATOR_HEIGHT:_0x4e14[637],STYLE_INDICATOR_DIRECTION:_0x4e14[638],STYLE_SHADOW:_0x4e14[639],STYLE_SEGMENT:_0x4e14[640],STYLE_ENDARROW:_0x4e14[641],STYLE_STARTARROW:_0x4e14[642],STYLE_ENDSIZE:_0x4e14[643],STYLE_STARTSIZE:_0x4e14[644],STYLE_SWIMLANE_LINE:_0x4e14[645],STYLE_ENDFILL:_0x4e14[646],STYLE_STARTFILL:_0x4e14[647],STYLE_DASHED:_0x4e14[648],STYLE_DASH_PATTERN:_0x4e14[649],STYLE_ROUNDED:_0x4e14[650],STYLE_CURVED:_0x4e14[651],STYLE_ARCSIZE:_0x4e14[652],STYLE_SMOOTH:_0x4e14[653],STYLE_SOURCE_PERIMETER_SPACING:_0x4e14[654],STYLE_TARGET_PERIMETER_SPACING:_0x4e14[655],STYLE_PERIMETER_SPACING:_0x4e14[656],STYLE_SPACING:_0x4e14[657],STYLE_SPACING_TOP:_0x4e14[658],STYLE_SPACING_LEFT:_0x4e14[659],STYLE_SPACING_BOTTOM:_0x4e14[660],STYLE_SPACING_RIGHT:_0x4e14[661],STYLE_HORIZONTAL:_0x4e14[662],STYLE_DIRECTION:_0x4e14[663],STYLE_ELBOW:_0x4e14[664],STYLE_FONTCOLOR:_0x4e14[665],STYLE_FONTFAMILY:_0x4e14[486],STYLE_FONTSIZE:_0x4e14[487],STYLE_FONTSTYLE:_0x4e14[666],STYLE_AUTOSIZE:_0x4e14[667],STYLE_FOLDABLE:_0x4e14[668],STYLE_EDITABLE:_0x4e14[669],STYLE_BENDABLE:_0x4e14[670],STYLE_MOVABLE:_0x4e14[671],STYLE_RESIZABLE:_0x4e14[672],STYLE_CLONEABLE:_0x4e14[673],STYLE_DELETABLE:_0x4e14[674],STYLE_SHAPE:_0x4e14[253],STYLE_EDGE:_0x4e14[675],STYLE_LOOP:_0x4e14[676],STYLE_ROUTING_CENTER_X:_0x4e14[677],STYLE_ROUTING_CENTER_Y:_0x4e14[678],FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:_0x4e14[679],SHAPE_ELLIPSE:_0x4e14[680],SHAPE_DOUBLE_ELLIPSE:_0x4e14[681],SHAPE_RHOMBUS:_0x4e14[682],SHAPE_LINE:_0x4e14[683],SHAPE_IMAGE:_0x4e14[618],SHAPE_ARROW:_0x4e14[684],SHAPE_LABEL:_0x4e14[685],SHAPE_CYLINDER:_0x4e14[686],SHAPE_SWIMLANE:_0x4e14[687],SHAPE_CONNECTOR:_0x4e14[688],SHAPE_ACTOR:_0x4e14[689],SHAPE_CLOUD:_0x4e14[690],SHAPE_TRIANGLE:_0x4e14[691],SHAPE_HEXAGON:_0x4e14[692],ARROW_CLASSIC:_0x4e14[693],ARROW_BLOCK:_0x4e14[694],ARROW_OPEN:_0x4e14[392],ARROW_OVAL:_0x4e14[695],ARROW_DIAMOND:_0x4e14[696],ARROW_DIAMOND_THIN:_0x4e14[697],ALIGN_LEFT:_0x4e14[361],ALIGN_CENTER:_0x4e14[698],ALIGN_RIGHT:_0x4e14[699],ALIGN_TOP:_0x4e14[125],ALIGN_MIDDLE:_0x4e14[554],ALIGN_BOTTOM:_0x4e14[553],DIRECTION_NORTH:_0x4e14[700],DIRECTION_SOUTH:_0x4e14[701],DIRECTION_EAST:_0x4e14[702],DIRECTION_WEST:_0x4e14[703],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:_0x4e14[704],ELBOW_HORIZONTAL:_0x4e14[662],EDGESTYLE_ELBOW:_0x4e14[705],EDGESTYLE_ENTITY_RELATION:_0x4e14[706],EDGESTYLE_LOOP:_0x4e14[707],EDGESTYLE_SIDETOSIDE:_0x4e14[708],EDGESTYLE_TOPTOBOTTOM:_0x4e14[709],EDGESTYLE_ORTHOGONAL:_0x4e14[710],EDGESTYLE_SEGMENT:_0x4e14[711],PERIMETER_ELLIPSE:_0x4e14[712],PERIMETER_RECTANGLE:_0x4e14[713],PERIMETER_RHOMBUS:_0x4e14[714],PERIMETER_TRIANGLE:_0x4e14[715]};function mxEventObject(_0xa132x2){this[_0x4e14[298]]=_0xa132x2;this[_0x4e14[716]]=[];for(var _0xa132x3=1;_0xa132x3<arguments[_0x4e14[67]];_0xa132x3+=2){null!=arguments[_0xa132x3+1]&&(this[_0x4e14[716]][arguments[_0xa132x3]]=arguments[_0xa132x3+1])};}mxEventObject[_0x4e14[202]][_0x4e14[298]]=null;mxEventObject[_0x4e14[202]][_0x4e14[716]]=null;mxEventObject[_0x4e14[202]][_0x4e14[717]]= !1;mxEventObject[_0x4e14[202]][_0x4e14[718]]=function(){return this[_0x4e14[298]]};mxEventObject[_0x4e14[202]][_0x4e14[719]]=function(){return this[_0x4e14[716]]};mxEventObject[_0x4e14[202]][_0x4e14[720]]=function(_0xa132x2){return this[_0x4e14[716]][_0xa132x2]};mxEventObject[_0x4e14[202]][_0x4e14[721]]=function(){return this[_0x4e14[717]]};mxEventObject[_0x4e14[202]][_0x4e14[722]]=function(){this[_0x4e14[717]]= !0};function mxMouseEvent(_0xa132x2,_0xa132x3){this[_0x4e14[723]]=_0xa132x2;this[_0x4e14[724]]=_0xa132x3;}mxMouseEvent[_0x4e14[202]][_0x4e14[717]]= !1;mxMouseEvent[_0x4e14[202]][_0x4e14[723]]=null;mxMouseEvent[_0x4e14[202]][_0x4e14[725]]=null;mxMouseEvent[_0x4e14[202]][_0x4e14[726]]=null;mxMouseEvent[_0x4e14[202]][_0x4e14[724]]=null;mxMouseEvent[_0x4e14[202]][_0x4e14[727]]=function(){return this[_0x4e14[723]]};mxMouseEvent[_0x4e14[202]][_0x4e14[728]]=function(){return mxEvent[_0x4e14[728]](this[_0x4e14[723]])};mxMouseEvent[_0x4e14[202]][_0x4e14[729]]=function(_0xa132x2){if(null!=_0xa132x2){for(var _0xa132x3=this[_0x4e14[728]]();null!=_0xa132x3;){if(_0xa132x3==_0xa132x2[_0x4e14[252]]){return !0};_0xa132x3=_0xa132x3[_0x4e14[265]];}};return !1;};mxMouseEvent[_0x4e14[202]][_0x4e14[730]]=function(){return mxEvent[_0x4e14[731]](this[_0x4e14[727]]())};mxMouseEvent[_0x4e14[202]][_0x4e14[732]]=function(){return mxEvent[_0x4e14[733]](this[_0x4e14[727]]())};mxMouseEvent[_0x4e14[202]][_0x4e14[734]]=function(){return this[_0x4e14[725]]};mxMouseEvent[_0x4e14[202]][_0x4e14[735]]=function(){return this[_0x4e14[726]]};mxMouseEvent[_0x4e14[202]][_0x4e14[248]]=function(){return this[_0x4e14[724]]};mxMouseEvent[_0x4e14[202]][_0x4e14[736]]=function(){var _0xa132x2=this[_0x4e14[248]]();return null!=_0xa132x2?_0xa132x2[_0x4e14[246]]:null;};mxMouseEvent[_0x4e14[202]][_0x4e14[737]]=function(){return mxEvent[_0x4e14[737]](this[_0x4e14[727]]())};mxMouseEvent[_0x4e14[202]][_0x4e14[721]]=function(){return this[_0x4e14[717]]};mxMouseEvent[_0x4e14[202]][_0x4e14[722]]=function(_0xa132x2){(null!=_0xa132x2?_0xa132x2:1)&&this[_0x4e14[723]][_0x4e14[738]]&&this[_0x4e14[723]][_0x4e14[738]]();this[_0x4e14[723]][_0x4e14[739]]= !1;this[_0x4e14[717]]= !0;};function mxEventSource(_0xa132x2){this[_0x4e14[740]](_0xa132x2)}mxEventSource[_0x4e14[202]][_0x4e14[741]]=null;mxEventSource[_0x4e14[202]][_0x4e14[742]]= !0;mxEventSource[_0x4e14[202]][_0x4e14[743]]=null;mxEventSource[_0x4e14[202]][_0x4e14[503]]=function(){return this[_0x4e14[742]]};mxEventSource[_0x4e14[202]][_0x4e14[504]]=function(_0xa132x2){this[_0x4e14[742]]=_0xa132x2};mxEventSource[_0x4e14[202]][_0x4e14[744]]=function(){return this[_0x4e14[743]]};mxEventSource[_0x4e14[202]][_0x4e14[740]]=function(_0xa132x2){this[_0x4e14[743]]=_0xa132x2};mxEventSource[_0x4e14[202]][_0x4e14[169]]=function(_0xa132x2,_0xa132x3){null==this[_0x4e14[741]]&&(this[_0x4e14[741]]=[]);this[_0x4e14[741]][_0x4e14[207]](_0xa132x2);this[_0x4e14[741]][_0x4e14[207]](_0xa132x3);};mxEventSource[_0x4e14[202]][_0x4e14[745]]=function(_0xa132x2){if(null!=this[_0x4e14[741]]){for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[741]][_0x4e14[67]];){this[_0x4e14[741]][_0xa132x3+1]==_0xa132x2?this[_0x4e14[741]][_0x4e14[300]](_0xa132x3,2):_0xa132x3+=2}}};mxEventSource[_0x4e14[202]][_0x4e14[746]]=function(_0xa132x2,_0xa132x3){if(null!=this[_0x4e14[741]]&&this[_0x4e14[503]]()){null==_0xa132x2&&(_0xa132x2= new mxEventObject);null==_0xa132x3&&(_0xa132x3=this[_0x4e14[744]]());null==_0xa132x3&&(_0xa132x3=this);for(var _0xa132x4=[_0xa132x3,_0xa132x2],_0xa132x5=0;_0xa132x5<this[_0x4e14[741]][_0x4e14[67]];_0xa132x5+=2){var _0xa132x9=this[_0x4e14[741]][_0xa132x5];(null==_0xa132x9||_0xa132x9==_0xa132x2[_0x4e14[718]]())&&this[_0x4e14[741]][_0xa132x5+1][_0x4e14[183]](this,_0xa132x4);};}};var mxEvent={objects:[],addListener:function(){var _0xa132x2=function(_0xa132x2,_0xa132x4,_0xa132x5){null==_0xa132x2[_0x4e14[69]]&&(_0xa132x2[_0x4e14[69]]=[],mxEvent[_0x4e14[68]][_0x4e14[207]](_0xa132x2));_0xa132x2[_0x4e14[69]][_0x4e14[207]]({name:_0xa132x4,f:_0xa132x5});};return window[_0x4e14[418]]?function(_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3[_0x4e14[418]](_0xa132x4,_0xa132x5,!1);_0xa132x2(_0xa132x3,_0xa132x4,_0xa132x5);}:function(_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3[_0x4e14[108]](_0x4e14[747]+_0xa132x4,_0xa132x5);_0xa132x2(_0xa132x3,_0xa132x4,_0xa132x5);};}(),removeListener:function(){var _0xa132x2=function(_0xa132x2,_0xa132x4,_0xa132x5){if(null!=_0xa132x2[_0x4e14[69]]){_0xa132x4=_0xa132x2[_0x4e14[69]][_0x4e14[67]];for(var _0xa132x9=0;_0xa132x9<_0xa132x4;_0xa132x9++){if(_0xa132x2[_0x4e14[69]][_0xa132x9][_0x4e14[748]]==_0xa132x5){_0xa132x2[_0x4e14[69]][_0x4e14[300]](_0xa132x9,1);break;}};0==_0xa132x2[_0x4e14[69]][_0x4e14[67]]&&(_0xa132x2[_0x4e14[69]]=null);}};return window[_0x4e14[749]]?function(_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3[_0x4e14[749]](_0xa132x4,_0xa132x5,!1);_0xa132x2(_0xa132x3,_0xa132x4,_0xa132x5);}:function(_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3[_0x4e14[750]](_0x4e14[747]+_0xa132x4,_0xa132x5);_0xa132x2(_0xa132x3,_0xa132x4,_0xa132x5);};}(),removeAllListeners:function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[69]];if(null!=_0xa132x3){for(;0<_0xa132x3[_0x4e14[67]];){var _0xa132x4=_0xa132x3[0];mxEvent[_0x4e14[745]](_0xa132x2,_0xa132x4[_0x4e14[298]],_0xa132x4[_0x4e14[748]]);}};},addGestureListeners:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){null!=_0xa132x3&&mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[751],_0xa132x3);null!=_0xa132x4&&mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[752],_0xa132x4);null!=_0xa132x5&&mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[753],_0xa132x5);mxClient[_0x4e14[754]]&&(null!=_0xa132x3&&mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[755],_0xa132x3),null!=_0xa132x4&&mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[756],_0xa132x4),null!=_0xa132x5&&mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[757],_0xa132x5));},removeGestureListeners:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){null!=_0xa132x3&&mxEvent[_0x4e14[745]](_0xa132x2,_0x4e14[751],_0xa132x3);null!=_0xa132x4&&mxEvent[_0x4e14[745]](_0xa132x2,_0x4e14[752],_0xa132x4);null!=_0xa132x5&&mxEvent[_0x4e14[745]](_0xa132x2,_0x4e14[753],_0xa132x5);mxClient[_0x4e14[754]]&&(null!=_0xa132x3&&mxEvent[_0x4e14[745]](_0xa132x2,_0x4e14[755],_0xa132x3),null!=_0xa132x4&&mxEvent[_0x4e14[745]](_0xa132x2,_0x4e14[756],_0xa132x4),null!=_0xa132x5&&mxEvent[_0x4e14[745]](_0xa132x2,_0x4e14[757],_0xa132x5));},redirectMouseEvents:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12){var _0xa132x13=function(_0xa132x2){return _0x4e14[279]== typeof _0xa132x4?_0xa132x4(_0xa132x2):_0xa132x4};mxEvent[_0x4e14[759]](_0xa132x2,function(_0xa132x2){null!=_0xa132x5?_0xa132x5(_0xa132x2):mxEvent[_0x4e14[721]](_0xa132x2)||_0xa132x3[_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x2,_0xa132x13(_0xa132x2)))},function(_0xa132x2){null!=_0xa132x9?_0xa132x9(_0xa132x2):mxEvent[_0x4e14[721]](_0xa132x2)||_0xa132x3[_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x2,_0xa132x13(_0xa132x2)))},function(_0xa132x2){null!=_0xa132xa?_0xa132xa(_0xa132x2):mxEvent[_0x4e14[721]](_0xa132x2)||_0xa132x3[_0x4e14[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xa132x2,_0xa132x13(_0xa132x2)))});mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[760],function(_0xa132x2){if(null!=_0xa132x12){_0xa132x12(_0xa132x2)}else {if(!mxEvent[_0x4e14[721]](_0xa132x2)){var _0xa132x4=_0xa132x13(_0xa132x2);_0xa132x3[_0x4e14[761]](_0xa132x2,null!=_0xa132x4?_0xa132x4[_0x4e14[246]]:null);}}});},release:function(_0xa132x2){if(null!=_0xa132x2&&(mxEvent[_0x4e14[70]](_0xa132x2),_0xa132x2=_0xa132x2[_0x4e14[271]],null!=_0xa132x2)){for(var _0xa132x3=_0xa132x2[_0x4e14[67]],_0xa132x4=0;_0xa132x4<_0xa132x3;_0xa132x4+=1){mxEvent[_0x4e14[762]](_0xa132x2[_0xa132x4])}}},addMouseWheelListener:function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=function(_0xa132x3){null==_0xa132x3&&(_0xa132x3=window[_0x4e14[763]]);var _0xa132x5=0,_0xa132x5=mxClient[_0x4e14[133]]&&!mxClient[_0x4e14[75]]&&!mxClient[_0x4e14[76]]?-_0xa132x3[_0x4e14[764]]/2:_0xa132x3[_0x4e14[765]]/120;0!=_0xa132x5&&_0xa132x2(_0xa132x3,0<_0xa132x5);};mxClient[_0x4e14[133]]?mxEvent[_0x4e14[169]](window,mxClient[_0x4e14[75]]||mxClient[_0x4e14[76]]?_0x4e14[766]:_0x4e14[767],_0xa132x3):mxEvent[_0x4e14[169]](document,_0x4e14[766],_0xa132x3);}},disableContextMenu:function(){return mxClient[_0x4e14[80]]&&(_0x4e14[82]=== typeof document[_0x4e14[5]]||9>document[_0x4e14[5]])?function(_0xa132x2){mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[768],function(){return !1})}:function(_0xa132x2){_0xa132x2[_0x4e14[57]](_0x4e14[769],_0x4e14[770])}}(),getSource:function(_0xa132x2){return null!=_0xa132x2[_0x4e14[771]]?_0xa132x2[_0x4e14[771]]:_0xa132x2[_0x4e14[772]]},isConsumed:function(_0xa132x2){return null!=_0xa132x2[_0x4e14[721]]&&_0xa132x2[_0x4e14[721]]},isLeftMouseButton:function(_0xa132x2){return _0xa132x2[_0x4e14[172]]==(mxClient[_0x4e14[80]]&&(_0x4e14[82]=== typeof document[_0x4e14[5]]||9>document[_0x4e14[5]])?1:0)},isRightMouseButton:function(_0xa132x2){return 2==_0xa132x2[_0x4e14[172]]},isPopupTrigger:function(_0xa132x2){return mxEvent[_0x4e14[773]](_0xa132x2)||mxEvent[_0x4e14[774]](_0xa132x2)&&!mxEvent[_0x4e14[775]](_0xa132x2)},isShiftDown:function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[776]]:!1},isAltDown:function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[777]]:!1},isControlDown:function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[778]]:!1},isMetaDown:function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[779]]:!1},getMainEvent:function(_0xa132x2){(_0x4e14[755]==_0xa132x2[_0x4e14[60]]||_0x4e14[756]==_0xa132x2[_0x4e14[60]])&&null!=_0xa132x2[_0x4e14[780]]&&null!=_0xa132x2[_0x4e14[780]][0]?_0xa132x2=_0xa132x2[_0x4e14[780]][0]:_0x4e14[757]==_0xa132x2[_0x4e14[60]]&&(null!=_0xa132x2[_0x4e14[781]]&&null!=_0xa132x2[_0x4e14[781]][0])&&(_0xa132x2=_0xa132x2[_0x4e14[781]][0]);return _0xa132x2;},getClientX:function(_0xa132x2){return mxEvent[_0x4e14[783]](_0xa132x2)[_0x4e14[782]]},getClientY:function(_0xa132x2){return mxEvent[_0x4e14[783]](_0xa132x2)[_0x4e14[784]]},consume:function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;if(null!=_0xa132x3?_0xa132x3:1){_0xa132x2[_0x4e14[738]]?(_0xa132x4&&_0xa132x2[_0x4e14[785]](),_0xa132x2[_0x4e14[738]]()):_0xa132x4&&(_0xa132x2[_0x4e14[786]]= !0)};_0xa132x2[_0x4e14[721]]= !0;_0xa132x2[_0x4e14[739]]= !1;},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:_0x4e14[787],MOUSE_MOVE:_0x4e14[788],MOUSE_UP:_0x4e14[789],ACTIVATE:_0x4e14[790],RESIZE_START:_0x4e14[791],RESIZE:_0x4e14[129],RESIZE_END:_0x4e14[792],MOVE_START:_0x4e14[793],MOVE:_0x4e14[582],MOVE_END:_0x4e14[794],PAN_START:_0x4e14[795],PAN:_0x4e14[796],PAN_END:_0x4e14[797],MINIMIZE:_0x4e14[798],NORMALIZE:_0x4e14[799],MAXIMIZE:_0x4e14[800],HIDE:_0x4e14[801],SHOW:_0x4e14[539],CLOSE:_0x4e14[268],DESTROY:_0x4e14[515],REFRESH:_0x4e14[802],SIZE:_0x4e14[803],SELECT:_0x4e14[804],FIRED:_0x4e14[805],GET:_0x4e14[203],RECEIVE:_0x4e14[806],CONNECT:_0x4e14[807],DISCONNECT:_0x4e14[808],SUSPEND:_0x4e14[809],RESUME:_0x4e14[810],MARK:_0x4e14[811],SESSION:_0x4e14[812],ROOT:_0x4e14[813],POST:_0x4e14[814],OPEN:_0x4e14[392],SAVE:_0x4e14[815],BEFORE_ADD_VERTEX:_0x4e14[816],ADD_VERTEX:_0x4e14[817],AFTER_ADD_VERTEX:_0x4e14[818],DONE:_0x4e14[819],EXECUTE:_0x4e14[350],EXECUTED:_0x4e14[820],BEGIN_UPDATE:_0x4e14[473],START_EDIT:_0x4e14[821],END_UPDATE:_0x4e14[476],END_EDIT:_0x4e14[822],BEFORE_UNDO:_0x4e14[823],UNDO:_0x4e14[824],REDO:_0x4e14[825],CHANGE:_0x4e14[826],NOTIFY:_0x4e14[827],LAYOUT_CELLS:_0x4e14[828],CLICK:_0x4e14[173],SCALE:_0x4e14[255],TRANSLATE:_0x4e14[513],SCALE_AND_TRANSLATE:_0x4e14[829],UP:_0x4e14[830],DOWN:_0x4e14[831],ADD:_0x4e14[99],REMOVE:_0x4e14[205],CLEAR:_0x4e14[200],ADD_CELLS:_0x4e14[832],CELLS_ADDED:_0x4e14[833],MOVE_CELLS:_0x4e14[834],CELLS_MOVED:_0x4e14[835],RESIZE_CELLS:_0x4e14[836],CELLS_RESIZED:_0x4e14[837],TOGGLE_CELLS:_0x4e14[838],CELLS_TOGGLED:_0x4e14[839],ORDER_CELLS:_0x4e14[840],CELLS_ORDERED:_0x4e14[841],REMOVE_CELLS:_0x4e14[842],CELLS_REMOVED:_0x4e14[843],GROUP_CELLS:_0x4e14[844],UNGROUP_CELLS:_0x4e14[845],REMOVE_CELLS_FROM_PARENT:_0x4e14[846],FOLD_CELLS:_0x4e14[847],CELLS_FOLDED:_0x4e14[848],ALIGN_CELLS:_0x4e14[849],LABEL_CHANGED:_0x4e14[850],CONNECT_CELL:_0x4e14[851],CELL_CONNECTED:_0x4e14[852],SPLIT_EDGE:_0x4e14[853],FLIP_EDGE:_0x4e14[854],START_EDITING:_0x4e14[855],ADD_OVERLAY:_0x4e14[856],REMOVE_OVERLAY:_0x4e14[857],UPDATE_CELL_SIZE:_0x4e14[858],ESCAPE:_0x4e14[859],CLICK:_0x4e14[173],DOUBLE_CLICK:_0x4e14[860],START:_0x4e14[861],RESET:_0x4e14[862]};function mxXmlRequest(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[863]]=_0xa132x2;this[_0x4e14[864]]=_0xa132x3;this[_0x4e14[865]]=_0xa132x4||_0x4e14[866];this[_0x4e14[307]]=null!=_0xa132x5?_0xa132x5:!0;this[_0x4e14[867]]=_0xa132x9;this[_0x4e14[868]]=_0xa132xa;}mxXmlRequest[_0x4e14[202]][_0x4e14[863]]=null;mxXmlRequest[_0x4e14[202]][_0x4e14[864]]=null;mxXmlRequest[_0x4e14[202]][_0x4e14[865]]=null;mxXmlRequest[_0x4e14[202]][_0x4e14[307]]=null;mxXmlRequest[_0x4e14[202]][_0x4e14[869]]= !1;mxXmlRequest[_0x4e14[202]][_0x4e14[867]]=null;mxXmlRequest[_0x4e14[202]][_0x4e14[868]]=null;mxXmlRequest[_0x4e14[202]][_0x4e14[870]]=null;mxXmlRequest[_0x4e14[202]][_0x4e14[871]]=function(){return this[_0x4e14[869]]};mxXmlRequest[_0x4e14[202]][_0x4e14[872]]=function(_0xa132x2){this[_0x4e14[869]]=_0xa132x2};mxXmlRequest[_0x4e14[202]][_0x4e14[221]]=function(){return this[_0x4e14[870]][_0x4e14[873]]};mxXmlRequest[_0x4e14[202]][_0x4e14[220]]=function(){return 4==this[_0x4e14[870]][_0x4e14[417]]};mxXmlRequest[_0x4e14[202]][_0x4e14[874]]=function(){var _0xa132x2=this[_0x4e14[875]]();return null!=_0xa132x2?_0xa132x2[_0x4e14[158]]:null;};mxXmlRequest[_0x4e14[202]][_0x4e14[875]]=function(){var _0xa132x2=this[_0x4e14[870]][_0x4e14[876]];if(9<=document[_0x4e14[5]]||null==_0xa132x2||null==_0xa132x2[_0x4e14[158]]){_0xa132x2=mxUtils[_0x4e14[877]](this[_0x4e14[870]][_0x4e14[873]])};return _0xa132x2;};mxXmlRequest[_0x4e14[202]][_0x4e14[221]]=function(){return this[_0x4e14[870]][_0x4e14[873]]};mxXmlRequest[_0x4e14[202]][_0x4e14[878]]=function(){return this[_0x4e14[870]][_0x4e14[879]]};mxXmlRequest[_0x4e14[202]][_0x4e14[385]]=function(){if(window[_0x4e14[880]]){return function(){var _0xa132x2= new XMLHttpRequest;this[_0x4e14[871]]()&&_0xa132x2[_0x4e14[881]]&&_0xa132x2[_0x4e14[881]](_0x4e14[882]);return _0xa132x2;}};if(_0x4e14[82]!= typeof ActiveXObject){return function(){return  new ActiveXObject(_0x4e14[883])}};}();mxXmlRequest[_0x4e14[202]][_0x4e14[414]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[870]]=this[_0x4e14[385]]();null!=this[_0x4e14[870]]&&(null!=_0xa132x2&&(this[_0x4e14[870]][_0x4e14[416]]=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[220]]()&&(_0xa132x2(this),this[_0x4e14[884]]=null)})),this[_0x4e14[870]][_0x4e14[392]](this[_0x4e14[865]],this[_0x4e14[863]],this[_0x4e14[307]],this[_0x4e14[867]],this[_0x4e14[868]]),this[_0x4e14[886]](this[_0x4e14[870]],this[_0x4e14[864]]),this[_0x4e14[870]][_0x4e14[414]](this[_0x4e14[864]]));};mxXmlRequest[_0x4e14[202]][_0x4e14[886]]=function(_0xa132x2,_0xa132x3){null!=_0xa132x3&&_0xa132x2[_0x4e14[889]](_0x4e14[887],_0x4e14[888])};mxXmlRequest[_0x4e14[202]][_0x4e14[415]]=function(_0xa132x2,_0xa132x3){_0xa132x2=_0xa132x2||document;var _0xa132x4=null;_0xa132x2==document&&(_0xa132x4=window[_0x4e14[890]],window[_0x4e14[890]]=null);var _0xa132x5=_0xa132x2[_0x4e14[55]](_0x4e14[891]);_0xa132x5[_0x4e14[57]](_0x4e14[865],this[_0x4e14[865]]);_0xa132x5[_0x4e14[57]](_0x4e14[892],this[_0x4e14[863]]);null!=_0xa132x3&&_0xa132x5[_0x4e14[57]](_0x4e14[772],_0xa132x3);_0xa132x5[_0x4e14[124]][_0x4e14[495]]=_0x4e14[130];_0xa132x5[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];for(var _0xa132x9=0<this[_0x4e14[864]][_0x4e14[2]](_0x4e14[893])?this[_0x4e14[864]][_0x4e14[224]](_0x4e14[893]):this[_0x4e14[864]][_0x4e14[224]](),_0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x9[_0xa132xa][_0x4e14[2]](_0x4e14[226]);if(0<_0xa132x12){var _0xa132x13=_0xa132x9[_0xa132xa][_0x4e14[85]](0,_0xa132x12),_0xa132x14=_0xa132x9[_0xa132xa][_0x4e14[85]](_0xa132x12+1),_0xa132x12=_0xa132x2[_0x4e14[55]](_0x4e14[126]);_0xa132x12[_0x4e14[57]](_0x4e14[298],_0xa132x13);_0xa132x14=_0xa132x14[_0x4e14[230]](/\n/g,_0x4e14[336]);_0xa132x13=_0xa132x2[_0x4e14[344]](_0xa132x14);_0xa132x12[_0x4e14[62]](_0xa132x13);_0xa132x5[_0x4e14[62]](_0xa132x12);};};_0xa132x2[_0x4e14[112]][_0x4e14[62]](_0xa132x5);_0xa132x5[_0x4e14[894]]();_0xa132x2[_0x4e14[112]][_0x4e14[266]](_0xa132x5);null!=_0xa132x4&&(window[_0x4e14[890]]=_0xa132x4);};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard[_0x4e14[895]]},cut:function(_0xa132x2,_0xa132x3){_0xa132x3=mxClipboard[_0x4e14[149]](_0xa132x2,_0xa132x3);mxClipboard[_0x4e14[896]]=0;mxClipboard[_0x4e14[842]](_0xa132x2,_0xa132x3);return _0xa132x3;},removeCells:function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[842]](_0xa132x3)},copy:function(_0xa132x2,_0xa132x3){_0xa132x3=_0xa132x3||_0xa132x2[_0x4e14[897]]();var _0xa132x4=_0xa132x2[_0x4e14[898]](_0xa132x3);mxClipboard[_0x4e14[896]]=1;mxClipboard[_0x4e14[895]]=_0xa132x2[_0x4e14[899]](_0xa132x4);return _0xa132x4;},paste:function(_0xa132x2){if(null!=mxClipboard[_0x4e14[895]]){var _0xa132x3=_0xa132x2[_0x4e14[900]](mxClipboard[_0x4e14[895]]),_0xa132x4=mxClipboard[_0x4e14[896]]*mxClipboard[_0x4e14[901]],_0xa132x5=_0xa132x2[_0x4e14[902]](),_0xa132x3=_0xa132x2[_0x4e14[903]](_0xa132x3,_0xa132x4,_0xa132x4,_0xa132x5);mxClipboard[_0x4e14[896]]++;_0xa132x2[_0x4e14[904]](_0xa132x3);}}};function mxWindow(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15){null!=_0xa132x3&&(_0xa132x12=null!=_0xa132x12?_0xa132x12:!0,this[_0x4e14[905]]=_0xa132x3,this[_0x4e14[176]](_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x15),this[_0x4e14[906]](),this[_0x4e14[907]](),this[_0x4e14[908]](),this[_0x4e14[909]](_0xa132x12),this[_0x4e14[910]](_0xa132x2),(null==_0xa132x13||_0xa132x13)&&this[_0x4e14[911]](),null!=_0xa132x14&&null!=_0xa132x14[_0x4e14[265]]?_0xa132x14[_0x4e14[265]][_0x4e14[912]](this[_0x4e14[485]],_0xa132x14):document[_0x4e14[112]][_0x4e14[62]](this[_0x4e14[485]]))}mxWindow[_0x4e14[202]]= new mxEventSource;mxWindow[_0x4e14[202]][_0x4e14[196]]=mxWindow;mxWindow[_0x4e14[202]][_0x4e14[913]]=mxClient[_0x4e14[88]]+_0x4e14[914];mxWindow[_0x4e14[202]][_0x4e14[915]]=mxClient[_0x4e14[88]]+_0x4e14[916];mxWindow[_0x4e14[202]][_0x4e14[917]]=mxClient[_0x4e14[88]]+_0x4e14[918];mxWindow[_0x4e14[202]][_0x4e14[919]]=mxClient[_0x4e14[88]]+_0x4e14[920];mxWindow[_0x4e14[202]][_0x4e14[921]]=mxClient[_0x4e14[88]]+_0x4e14[922];mxWindow[_0x4e14[202]][_0x4e14[189]]= !1;mxWindow[_0x4e14[202]][_0x4e14[905]]= !1;mxWindow[_0x4e14[202]][_0x4e14[923]]= new mxRectangle(0,0,50,40);mxWindow[_0x4e14[202]][_0x4e14[924]]= !1;mxWindow[_0x4e14[202]][_0x4e14[905]]= !1;mxWindow[_0x4e14[202]][_0x4e14[165]]= !0;mxWindow[_0x4e14[202]][_0x4e14[176]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x9=null!=_0xa132x9?_0xa132x9:_0x4e14[925];this[_0x4e14[485]]=document[_0x4e14[55]](_0x4e14[485]);this[_0x4e14[485]][_0x4e14[926]]=_0xa132x9;this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0xa132x2+_0x4e14[168];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=_0xa132x3+_0x4e14[168];this[_0x4e14[116]]=document[_0x4e14[55]](_0x4e14[116]);this[_0x4e14[116]][_0x4e14[926]]=_0xa132x9;null!=_0xa132x4&&(mxClient[_0x4e14[80]]||(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[117]]=_0xa132x4+_0x4e14[168]),this[_0x4e14[116]][_0x4e14[124]][_0x4e14[117]]=_0xa132x4+_0x4e14[168]);null!=_0xa132x5&&(mxClient[_0x4e14[80]]||(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=_0xa132x5+_0x4e14[168]),this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]]=_0xa132x5+_0x4e14[168]);_0xa132x2=document[_0x4e14[55]](_0x4e14[120]);_0xa132x3=document[_0x4e14[55]](_0x4e14[121]);this[_0x4e14[924]]=document[_0x4e14[55]](_0x4e14[122]);this[_0x4e14[924]][_0x4e14[926]]=_0xa132x9+_0x4e14[927];_0xa132x3[_0x4e14[62]](this[_0x4e14[924]]);_0xa132x2[_0x4e14[62]](_0xa132x3);_0xa132x3=document[_0x4e14[55]](_0x4e14[121]);this[_0x4e14[122]]=document[_0x4e14[55]](_0x4e14[122]);this[_0x4e14[122]][_0x4e14[926]]=_0xa132x9+_0x4e14[928];this[_0x4e14[929]]=document[_0x4e14[55]](_0x4e14[485]);this[_0x4e14[929]][_0x4e14[926]]=_0xa132x9+_0x4e14[928];this[_0x4e14[929]][_0x4e14[124]][_0x4e14[117]]=_0x4e14[118];this[_0x4e14[929]][_0x4e14[62]](this[_0x4e14[905]]);if(mxClient[_0x4e14[80]]||_0x4e14[529]!=this[_0x4e14[905]][_0x4e14[301]][_0x4e14[36]]()){this[_0x4e14[929]][_0x4e14[124]][_0x4e14[119]]=_0x4e14[118]};this[_0x4e14[122]][_0x4e14[62]](this[_0x4e14[929]]);_0xa132x3[_0x4e14[62]](this[_0x4e14[122]]);_0xa132x2[_0x4e14[62]](_0xa132x3);this[_0x4e14[116]][_0x4e14[62]](_0xa132x2);this[_0x4e14[485]][_0x4e14[62]](this[_0x4e14[116]]);_0xa132x9=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[790]]()});mxEvent[_0x4e14[169]](this[_0x4e14[924]],_0x4e14[751],_0xa132x9);mxEvent[_0x4e14[169]](this[_0x4e14[116]],_0x4e14[751],_0xa132x9);mxClient[_0x4e14[754]]&&(mxEvent[_0x4e14[169]](this[_0x4e14[924]],_0x4e14[755],_0xa132x9),mxEvent[_0x4e14[169]](this[_0x4e14[116]],_0x4e14[755],_0xa132x9));this[_0x4e14[801]]();};mxWindow[_0x4e14[202]][_0x4e14[910]]=function(_0xa132x2){for(var _0xa132x3=this[_0x4e14[924]][_0x4e14[285]];null!=_0xa132x3;){var _0xa132x4=_0xa132x3[_0x4e14[287]];_0xa132x3[_0x4e14[288]]==mxConstants[_0x4e14[317]]&&_0xa132x3[_0x4e14[265]][_0x4e14[266]](_0xa132x3);_0xa132x3=_0xa132x4;};mxUtils[_0x4e14[53]](this[_0x4e14[924]],_0xa132x2||_0x4e14[110]);};mxWindow[_0x4e14[202]][_0x4e14[162]]=function(_0xa132x2){0>navigator[_0x4e14[3]][_0x4e14[2]](_0x4e14[186])&&(this[_0x4e14[929]][_0x4e14[124]][_0x4e14[277]]=_0xa132x2?_0x4e14[278]:_0x4e14[188])};mxWindow[_0x4e14[202]][_0x4e14[790]]=function(){if(mxWindow[_0x4e14[930]]!=this){var _0xa132x2=mxUtils[_0x4e14[275]](this[_0x4e14[166]]()),_0xa132x2=null!=_0xa132x2?_0xa132x2[_0x4e14[931]]:3;if(mxWindow[_0x4e14[930]]){var _0xa132x3=mxWindow[_0x4e14[930]][_0x4e14[166]]();null!=_0xa132x3&&null!=_0xa132x3[_0x4e14[124]]&&(_0xa132x3[_0x4e14[124]][_0x4e14[931]]=_0xa132x2);};_0xa132x3=mxWindow[_0x4e14[930]];this[_0x4e14[166]]()[_0x4e14[124]][_0x4e14[931]]=parseInt(_0xa132x2)+1;mxWindow[_0x4e14[930]]=this;this[_0x4e14[746]]( new mxEventObject(mxEvent.ACTIVATE,_0x4e14[932],_0xa132x3));}};mxWindow[_0x4e14[202]][_0x4e14[166]]=function(){return this[_0x4e14[485]]};mxWindow[_0x4e14[202]][_0x4e14[933]]=function(){mxUtils[_0x4e14[933]](this[_0x4e14[485]])};mxWindow[_0x4e14[202]][_0x4e14[934]]=function(){return null!=this[_0x4e14[129]]?_0x4e14[130]!=this[_0x4e14[129]][_0x4e14[124]][_0x4e14[495]]:!1};mxWindow[_0x4e14[202]][_0x4e14[163]]=function(_0xa132x2){_0xa132x2?null==this[_0x4e14[129]]?(this[_0x4e14[129]]=document[_0x4e14[55]](_0x4e14[466]),this[_0x4e14[129]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492],this[_0x4e14[129]][_0x4e14[124]][_0x4e14[553]]=_0x4e14[935],this[_0x4e14[129]][_0x4e14[124]][_0x4e14[699]]=_0x4e14[935],this[_0x4e14[129]][_0x4e14[57]](_0x4e14[390],mxClient[_0x4e14[88]]+_0x4e14[922]),this[_0x4e14[129]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[936],mxEvent[_0x4e14[759]](this[_0x4e14[129]],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[790]]();var _0xa132x4=mxEvent[_0x4e14[731]](_0xa132x2),_0xa132x5=mxEvent[_0x4e14[733]](_0xa132x2),_0xa132x9=this[_0x4e14[485]][_0x4e14[359]],_0xa132xa=this[_0x4e14[485]][_0x4e14[167]],_0xa132x12=mxUtils[_0x4e14[885]](this,function(_0xa132x2){var _0xa132x3=mxEvent[_0x4e14[731]](_0xa132x2)-_0xa132x4,_0xa132x12=mxEvent[_0x4e14[733]](_0xa132x2)-_0xa132x5;this[_0x4e14[937]](_0xa132x9+_0xa132x3,_0xa132xa+_0xa132x12);this[_0x4e14[746]]( new mxEventObject(mxEvent.RESIZE,_0x4e14[763],_0xa132x2));mxEvent[_0x4e14[722]](_0xa132x2);}),_0xa132x13=mxUtils[_0x4e14[885]](this,function(_0xa132x2){mxEvent[_0x4e14[938]](document,null,_0xa132x12,_0xa132x13);this[_0x4e14[746]]( new mxEventObject(mxEvent.RESIZE_END,_0x4e14[763],_0xa132x2));mxEvent[_0x4e14[722]](_0xa132x2);});mxEvent[_0x4e14[759]](document,null,_0xa132x12,_0xa132x13);this[_0x4e14[746]]( new mxEventObject(mxEvent.RESIZE_START,_0x4e14[763],_0xa132x2));mxEvent[_0x4e14[722]](_0xa132x2);}),null,null),this[_0x4e14[485]][_0x4e14[62]](this[_0x4e14[129]])):this[_0x4e14[129]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[497]:null!=this[_0x4e14[129]]&&(this[_0x4e14[129]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130])};mxWindow[_0x4e14[202]][_0x4e14[937]]=function(_0xa132x2,_0xa132x3){_0xa132x2=Math[_0x4e14[160]](this[_0x4e14[923]][_0x4e14[117]],_0xa132x2);_0xa132x3=Math[_0x4e14[160]](this[_0x4e14[923]][_0x4e14[119]],_0xa132x3);mxClient[_0x4e14[80]]||(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[117]]=_0xa132x2+_0x4e14[168],this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=_0xa132x3+_0x4e14[168]);this[_0x4e14[116]][_0x4e14[124]][_0x4e14[117]]=_0xa132x2+_0x4e14[168];this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]]=_0xa132x3+_0x4e14[168];mxClient[_0x4e14[80]]||(this[_0x4e14[929]][_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[485]][_0x4e14[167]]-this[_0x4e14[924]][_0x4e14[167]]-2+_0x4e14[168]);};mxWindow[_0x4e14[202]][_0x4e14[909]]=function(_0xa132x2){this[_0x4e14[798]][_0x4e14[124]][_0x4e14[495]]=_0xa132x2?_0x4e14[110]:_0x4e14[130]};mxWindow[_0x4e14[202]][_0x4e14[939]]=function(){return  new mxRectangle(0,0,0,this[_0x4e14[924]][_0x4e14[167]])};mxWindow[_0x4e14[202]][_0x4e14[907]]=function(){this[_0x4e14[798]]=document[_0x4e14[55]](_0x4e14[466]);this[_0x4e14[798]][_0x4e14[57]](_0x4e14[390],this[_0x4e14[915]]);this[_0x4e14[798]][_0x4e14[57]](_0x4e14[611],_0x4e14[699]);this[_0x4e14[798]][_0x4e14[57]](_0x4e14[924],_0x4e14[940]);this[_0x4e14[798]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[356];this[_0x4e14[798]][_0x4e14[124]][_0x4e14[941]]=_0x4e14[942];this[_0x4e14[798]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130];this[_0x4e14[924]][_0x4e14[62]](this[_0x4e14[798]]);var _0xa132x2=!1,_0xa132x3=null,_0xa132x4=null,_0xa132x5=mxUtils[_0x4e14[885]](this,function(_0xa132x5){this[_0x4e14[790]]();if(_0xa132x2){_0xa132x2= !1,this[_0x4e14[798]][_0x4e14[57]](_0x4e14[390],this[_0x4e14[915]]),this[_0x4e14[798]][_0x4e14[57]](_0x4e14[924],_0x4e14[940]),this[_0x4e14[929]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[110],this[_0x4e14[800]][_0x4e14[124]][_0x4e14[495]]=_0xa132x3,mxClient[_0x4e14[80]]||(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=_0xa132x4),this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]]=_0xa132x4,null!=this[_0x4e14[129]]&&(this[_0x4e14[129]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[110]),this[_0x4e14[746]]( new mxEventObject(mxEvent.NORMALIZE,_0x4e14[763],_0xa132x5))}else {_0xa132x2= !0;this[_0x4e14[798]][_0x4e14[57]](_0x4e14[390],this[_0x4e14[917]]);this[_0x4e14[798]][_0x4e14[57]](_0x4e14[924],_0x4e14[943]);this[_0x4e14[929]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130];_0xa132x3=this[_0x4e14[800]][_0x4e14[124]][_0x4e14[495]];this[_0x4e14[800]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130];_0xa132x4=this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]];var _0xa132xa=this[_0x4e14[939]]();0<_0xa132xa[_0x4e14[119]]&&(mxClient[_0x4e14[80]]||(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=_0xa132xa[_0x4e14[119]]+_0x4e14[168]),this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]]=_0xa132xa[_0x4e14[119]]+_0x4e14[168]);0<_0xa132xa[_0x4e14[117]]&&(mxClient[_0x4e14[80]]||(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[117]]=_0xa132xa[_0x4e14[117]]+_0x4e14[168]),this[_0x4e14[116]][_0x4e14[124]][_0x4e14[117]]=_0xa132xa[_0x4e14[117]]+_0x4e14[168]);null!=this[_0x4e14[129]]&&(this[_0x4e14[129]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]);this[_0x4e14[746]]( new mxEventObject(mxEvent.MINIMIZE,_0x4e14[763],_0xa132x5));};mxEvent[_0x4e14[722]](_0xa132x5);});mxEvent[_0x4e14[169]](this[_0x4e14[798]],_0x4e14[751],_0xa132x5);mxClient[_0x4e14[754]]&&mxEvent[_0x4e14[169]](this[_0x4e14[798]],_0x4e14[755],_0xa132x5);};mxWindow[_0x4e14[202]][_0x4e14[161]]=function(_0xa132x2){this[_0x4e14[800]][_0x4e14[124]][_0x4e14[495]]=_0xa132x2?_0x4e14[110]:_0x4e14[130]};mxWindow[_0x4e14[202]][_0x4e14[906]]=function(){this[_0x4e14[800]]=document[_0x4e14[55]](_0x4e14[466]);this[_0x4e14[800]][_0x4e14[57]](_0x4e14[390],this[_0x4e14[919]]);this[_0x4e14[800]][_0x4e14[57]](_0x4e14[611],_0x4e14[699]);this[_0x4e14[800]][_0x4e14[57]](_0x4e14[924],_0x4e14[944]);this[_0x4e14[800]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[583];this[_0x4e14[800]][_0x4e14[124]][_0x4e14[945]]=_0x4e14[942];this[_0x4e14[800]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[356];this[_0x4e14[800]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130];this[_0x4e14[924]][_0x4e14[62]](this[_0x4e14[800]]);var _0xa132x2=!1,_0xa132x3=null,_0xa132x4=null,_0xa132x5=null,_0xa132x9=null,_0xa132xa=mxUtils[_0x4e14[885]](this,function(_0xa132xa){this[_0x4e14[790]]();if(_0x4e14[130]!=this[_0x4e14[800]][_0x4e14[124]][_0x4e14[495]]){if(_0xa132x2){_0xa132x2= !1;this[_0x4e14[800]][_0x4e14[57]](_0x4e14[390],this[_0x4e14[919]]);this[_0x4e14[800]][_0x4e14[57]](_0x4e14[924],_0x4e14[944]);this[_0x4e14[929]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[110];this[_0x4e14[798]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[110];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0xa132x3+_0x4e14[168];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=_0xa132x4+_0x4e14[168];if(!mxClient[_0x4e14[80]]&&(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=_0xa132x5,this[_0x4e14[485]][_0x4e14[124]][_0x4e14[117]]=_0xa132x9,_0xa132x13=mxUtils[_0x4e14[275]](this[_0x4e14[929]]),_0x4e14[278]==_0xa132x13[_0x4e14[277]]||null!=this[_0x4e14[129]])){this[_0x4e14[929]][_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[485]][_0x4e14[167]]-this[_0x4e14[924]][_0x4e14[167]]-2+_0x4e14[168]};this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]]=_0xa132x5;this[_0x4e14[116]][_0x4e14[124]][_0x4e14[117]]=_0xa132x9;null!=this[_0x4e14[129]]&&(this[_0x4e14[129]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[110]);this[_0x4e14[746]]( new mxEventObject(mxEvent.NORMALIZE,_0x4e14[763],_0xa132xa));}else {_0xa132x2= !0;this[_0x4e14[800]][_0x4e14[57]](_0x4e14[390],this[_0x4e14[917]]);this[_0x4e14[800]][_0x4e14[57]](_0x4e14[924],_0x4e14[943]);this[_0x4e14[929]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[110];this[_0x4e14[798]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];_0xa132x3=parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]);_0xa132x4=parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]);_0xa132x5=this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]];_0xa132x9=this[_0x4e14[116]][_0x4e14[124]][_0x4e14[117]];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0x4e14[946];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=_0x4e14[946];mxClient[_0x4e14[80]]||(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=document[_0x4e14[112]][_0x4e14[157]]-2+_0x4e14[168],this[_0x4e14[485]][_0x4e14[124]][_0x4e14[117]]=document[_0x4e14[112]][_0x4e14[159]]-2+_0x4e14[168]);this[_0x4e14[116]][_0x4e14[124]][_0x4e14[117]]=document[_0x4e14[112]][_0x4e14[159]]-2+_0x4e14[168];this[_0x4e14[116]][_0x4e14[124]][_0x4e14[119]]=document[_0x4e14[112]][_0x4e14[157]]-2+_0x4e14[168];null!=this[_0x4e14[129]]&&(this[_0x4e14[129]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]);if(!mxClient[_0x4e14[80]]){var _0xa132x13=mxUtils[_0x4e14[275]](this[_0x4e14[929]]);if(_0x4e14[278]==_0xa132x13[_0x4e14[277]]||null!=this[_0x4e14[129]]){this[_0x4e14[929]][_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[485]][_0x4e14[167]]-this[_0x4e14[924]][_0x4e14[167]]-2+_0x4e14[168]};};this[_0x4e14[746]]( new mxEventObject(mxEvent.MAXIMIZE,_0x4e14[763],_0xa132xa));};mxEvent[_0x4e14[722]](_0xa132xa);};});mxEvent[_0x4e14[759]](this[_0x4e14[800]],_0xa132xa);mxEvent[_0x4e14[169]](this[_0x4e14[924]],_0x4e14[760],_0xa132xa);};mxWindow[_0x4e14[202]][_0x4e14[911]]=function(){this[_0x4e14[924]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[582];mxEvent[_0x4e14[759]](this[_0x4e14[924]],mxUtils[_0x4e14[885]](this,function(_0xa132x2){var _0xa132x3=mxEvent[_0x4e14[731]](_0xa132x2),_0xa132x4=mxEvent[_0x4e14[733]](_0xa132x2),_0xa132x5=this[_0x4e14[730]](),_0xa132x9=this[_0x4e14[732]](),_0xa132xa=mxUtils[_0x4e14[885]](this,function(_0xa132x2){var _0xa132xa=mxEvent[_0x4e14[731]](_0xa132x2)-_0xa132x3,_0xa132x12=mxEvent[_0x4e14[733]](_0xa132x2)-_0xa132x4;this[_0x4e14[947]](_0xa132x5+_0xa132xa,_0xa132x9+_0xa132x12);this[_0x4e14[746]]( new mxEventObject(mxEvent.MOVE,_0x4e14[763],_0xa132x2));mxEvent[_0x4e14[722]](_0xa132x2);}),_0xa132x12=mxUtils[_0x4e14[885]](this,function(_0xa132x2){mxEvent[_0x4e14[938]](document,null,_0xa132xa,_0xa132x12);this[_0x4e14[746]]( new mxEventObject(mxEvent.MOVE_END,_0x4e14[763],_0xa132x2));mxEvent[_0x4e14[722]](_0xa132x2);});mxEvent[_0x4e14[759]](document,null,_0xa132xa,_0xa132x12);this[_0x4e14[746]]( new mxEventObject(mxEvent.MOVE_START,_0x4e14[763],_0xa132x2));mxEvent[_0x4e14[722]](_0xa132x2);}));};mxWindow[_0x4e14[202]][_0x4e14[947]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0xa132x2+_0x4e14[168];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=_0xa132x3+_0x4e14[168];};mxWindow[_0x4e14[202]][_0x4e14[730]]=function(){return parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]])};mxWindow[_0x4e14[202]][_0x4e14[732]]=function(){return parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]])};mxWindow[_0x4e14[202]][_0x4e14[908]]=function(){this[_0x4e14[948]]=document[_0x4e14[55]](_0x4e14[466]);this[_0x4e14[948]][_0x4e14[57]](_0x4e14[390],this[_0x4e14[913]]);this[_0x4e14[948]][_0x4e14[57]](_0x4e14[611],_0x4e14[699]);this[_0x4e14[948]][_0x4e14[57]](_0x4e14[924],_0x4e14[949]);this[_0x4e14[948]][_0x4e14[124]][_0x4e14[945]]=_0x4e14[935];this[_0x4e14[948]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[356];this[_0x4e14[948]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130];this[_0x4e14[924]][_0x4e14[950]](this[_0x4e14[948]],this[_0x4e14[924]][_0x4e14[285]]);mxEvent[_0x4e14[759]](this[_0x4e14[948]],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[746]]( new mxEventObject(mxEvent.CLOSE,_0x4e14[763],_0xa132x2));this[_0x4e14[165]]?this[_0x4e14[515]]():this[_0x4e14[175]](!1);mxEvent[_0x4e14[722]](_0xa132x2);}));};mxWindow[_0x4e14[202]][_0x4e14[951]]=function(_0xa132x2){this[_0x4e14[618]]=document[_0x4e14[55]](_0x4e14[466]);this[_0x4e14[618]][_0x4e14[57]](_0x4e14[390],_0xa132x2);this[_0x4e14[618]][_0x4e14[57]](_0x4e14[611],_0x4e14[361]);this[_0x4e14[618]][_0x4e14[124]][_0x4e14[941]]=_0x4e14[952];this[_0x4e14[618]][_0x4e14[124]][_0x4e14[945]]=_0x4e14[946];this[_0x4e14[618]][_0x4e14[124]][_0x4e14[953]]=_0x4e14[954];this[_0x4e14[924]][_0x4e14[950]](this[_0x4e14[618]],this[_0x4e14[924]][_0x4e14[285]]);};mxWindow[_0x4e14[202]][_0x4e14[164]]=function(_0xa132x2){this[_0x4e14[948]][_0x4e14[124]][_0x4e14[495]]=_0xa132x2?_0x4e14[110]:_0x4e14[130]};mxWindow[_0x4e14[202]][_0x4e14[174]]=function(){return null!=this[_0x4e14[485]]?_0x4e14[188]!=this[_0x4e14[485]][_0x4e14[124]][_0x4e14[187]]:!1};mxWindow[_0x4e14[202]][_0x4e14[175]]=function(_0xa132x2){null!=this[_0x4e14[485]]&&this[_0x4e14[174]]()!=_0xa132x2&&(_0xa132x2?this[_0x4e14[539]]():this[_0x4e14[801]]())};mxWindow[_0x4e14[202]][_0x4e14[539]]=function(){this[_0x4e14[485]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[110];this[_0x4e14[790]]();var _0xa132x2=mxUtils[_0x4e14[275]](this[_0x4e14[929]]);if(!mxClient[_0x4e14[80]]&&(_0x4e14[278]==_0xa132x2[_0x4e14[277]]||null!=this[_0x4e14[129]])){this[_0x4e14[929]][_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[485]][_0x4e14[167]]-this[_0x4e14[924]][_0x4e14[167]]-2+_0x4e14[168]};this[_0x4e14[746]]( new mxEventObject(mxEvent.SHOW));};mxWindow[_0x4e14[202]][_0x4e14[801]]=function(){this[_0x4e14[485]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];this[_0x4e14[746]]( new mxEventObject(mxEvent.HIDE));};mxWindow[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[746]]( new mxEventObject(mxEvent.DESTROY));null!=this[_0x4e14[485]]&&(mxEvent[_0x4e14[762]](this[_0x4e14[485]]),this[_0x4e14[485]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[485]]),this[_0x4e14[485]]=null);this[_0x4e14[929]]=this[_0x4e14[905]]=this[_0x4e14[924]]=null;};function mxForm(_0xa132x2){this[_0x4e14[116]]=document[_0x4e14[55]](_0x4e14[116]);this[_0x4e14[116]][_0x4e14[926]]=_0xa132x2;this[_0x4e14[112]]=document[_0x4e14[55]](_0x4e14[120]);this[_0x4e14[116]][_0x4e14[62]](this[_0x4e14[112]]);}mxForm[_0x4e14[202]][_0x4e14[116]]=null;mxForm[_0x4e14[202]][_0x4e14[112]]= !1;mxForm[_0x4e14[202]][_0x4e14[955]]=function(){return this[_0x4e14[116]]};mxForm[_0x4e14[202]][_0x4e14[956]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[121]),_0xa132x5=document[_0x4e14[55]](_0x4e14[122]);_0xa132x4[_0x4e14[62]](_0xa132x5);var _0xa132x5=document[_0x4e14[55]](_0x4e14[122]),_0xa132x9=document[_0x4e14[55]](_0x4e14[172]);mxUtils[_0x4e14[53]](_0xa132x9,mxResources[_0x4e14[203]](_0x4e14[957])||_0x4e14[958]);_0xa132x5[_0x4e14[62]](_0xa132x9);mxEvent[_0x4e14[169]](_0xa132x9,_0x4e14[173],function(){_0xa132x2()});_0xa132x9=document[_0x4e14[55]](_0x4e14[172]);mxUtils[_0x4e14[53]](_0xa132x9,mxResources[_0x4e14[203]](_0x4e14[959])||_0x4e14[960]);_0xa132x5[_0x4e14[62]](_0xa132x9);mxEvent[_0x4e14[169]](_0xa132x9,_0x4e14[173],function(){_0xa132x3()});_0xa132x4[_0x4e14[62]](_0xa132x5);this[_0x4e14[112]][_0x4e14[62]](_0xa132x4);};mxForm[_0x4e14[202]][_0x4e14[961]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[962]);_0xa132x4[_0x4e14[57]](_0x4e14[60],_0x4e14[963]);_0xa132x4[_0x4e14[131]]=_0xa132x3;return this[_0x4e14[964]](_0xa132x2,_0xa132x4);};mxForm[_0x4e14[202]][_0x4e14[965]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[962]);_0xa132x4[_0x4e14[57]](_0x4e14[60],_0x4e14[966]);this[_0x4e14[964]](_0xa132x2,_0xa132x4);_0xa132x3&&(_0xa132x4[_0x4e14[967]]= !0);return _0xa132x4;};mxForm[_0x4e14[202]][_0x4e14[968]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=document[_0x4e14[55]](_0x4e14[126]);mxClient[_0x4e14[133]]&&_0xa132x4--;_0xa132x5[_0x4e14[57]](_0x4e14[969],_0xa132x4||2);_0xa132x5[_0x4e14[131]]=_0xa132x3;return this[_0x4e14[964]](_0xa132x2,_0xa132x5);};mxForm[_0x4e14[202]][_0x4e14[970]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=document[_0x4e14[55]](_0x4e14[804]);null!=_0xa132x4&&_0xa132x5[_0x4e14[57]](_0x4e14[803],_0xa132x4);_0xa132x3&&_0xa132x5[_0x4e14[57]](_0x4e14[971],_0x4e14[128]);return this[_0x4e14[964]](_0xa132x2,_0xa132x5);};mxForm[_0x4e14[202]][_0x4e14[972]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=document[_0x4e14[55]](_0x4e14[973]);mxUtils[_0x4e14[171]](_0xa132x9,_0xa132x3);_0xa132x9[_0x4e14[57]](_0x4e14[131],_0xa132x4);_0xa132x5&&_0xa132x9[_0x4e14[57]](_0x4e14[974],_0xa132x5);_0xa132x2[_0x4e14[62]](_0xa132x9);};mxForm[_0x4e14[202]][_0x4e14[964]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[121]),_0xa132x5=document[_0x4e14[55]](_0x4e14[122]);mxUtils[_0x4e14[53]](_0xa132x5,_0xa132x2);_0xa132x4[_0x4e14[62]](_0xa132x5);_0xa132x5=document[_0x4e14[55]](_0x4e14[122]);_0xa132x5[_0x4e14[62]](_0xa132x3);_0xa132x4[_0x4e14[62]](_0xa132x5);this[_0x4e14[112]][_0x4e14[62]](_0xa132x4);return _0xa132x3;};function mxImage(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[390]]=_0xa132x2;this[_0x4e14[117]]=_0xa132x3;this[_0x4e14[119]]=_0xa132x4;}mxImage[_0x4e14[202]][_0x4e14[390]]=null;mxImage[_0x4e14[202]][_0x4e14[117]]=null;mxImage[_0x4e14[202]][_0x4e14[119]]=null;function mxDivResizer(_0xa132x2,_0xa132x3){if(_0x4e14[485]==_0xa132x2[_0x4e14[301]][_0x4e14[216]]()){null==_0xa132x3&&(_0xa132x3=window);this[_0x4e14[485]]=_0xa132x2;var _0xa132x4=mxUtils[_0x4e14[275]](_0xa132x2);null!=_0xa132x4&&(this[_0x4e14[975]]=_0x4e14[278]==_0xa132x4[_0x4e14[117]],this[_0x4e14[976]]=_0x4e14[278]==_0xa132x4[_0x4e14[119]]);mxEvent[_0x4e14[169]](_0xa132x3,_0x4e14[129],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[977]]||(this[_0x4e14[977]]= !0,this[_0x4e14[129]](),this[_0x4e14[977]]= !1)}));this[_0x4e14[129]]();}}mxDivResizer[_0x4e14[202]][_0x4e14[975]]= !0;mxDivResizer[_0x4e14[202]][_0x4e14[976]]= !0;mxDivResizer[_0x4e14[202]][_0x4e14[977]]= !1;mxDivResizer[_0x4e14[202]][_0x4e14[129]]=function(){var _0xa132x2=this[_0x4e14[978]](),_0xa132x3=this[_0x4e14[979]](),_0xa132x4=parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]),_0xa132x5=parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[699]]),_0xa132x9=parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]),_0xa132xa=parseInt(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[553]]);this[_0x4e14[975]]&&(!isNaN(_0xa132x4)&&!isNaN(_0xa132x5)&&0<=_0xa132x4&&0<=_0xa132x5&&0<_0xa132x2-_0xa132x5-_0xa132x4)&&(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[117]]=_0xa132x2-_0xa132x5-_0xa132x4+_0x4e14[168]);this[_0x4e14[976]]&&(!isNaN(_0xa132x9)&&!isNaN(_0xa132xa)&&0<=_0xa132x9&&0<=_0xa132xa&&0<_0xa132x3-_0xa132x9-_0xa132xa)&&(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=_0xa132x3-_0xa132x9-_0xa132xa+_0x4e14[168]);};mxDivResizer[_0x4e14[202]][_0x4e14[978]]=function(){return document[_0x4e14[112]][_0x4e14[159]]};mxDivResizer[_0x4e14[202]][_0x4e14[979]]=function(){return document[_0x4e14[112]][_0x4e14[157]]};function mxDragSource(_0xa132x2,_0xa132x3){this[_0x4e14[980]]=_0xa132x2;this[_0x4e14[981]]=_0xa132x3;mxEvent[_0x4e14[759]](_0xa132x2,mxUtils[_0x4e14[885]](this,this[_0x4e14[787]]));}mxDragSource[_0x4e14[202]][_0x4e14[980]]=null;mxDragSource[_0x4e14[202]][_0x4e14[981]]=null;mxDragSource[_0x4e14[202]][_0x4e14[559]]=null;mxDragSource[_0x4e14[202]][_0x4e14[982]]=null;mxDragSource[_0x4e14[202]][_0x4e14[983]]=null;mxDragSource[_0x4e14[202]][_0x4e14[984]]= !0;mxDragSource[_0x4e14[202]][_0x4e14[985]]=null;mxDragSource[_0x4e14[202]][_0x4e14[986]]=null;mxDragSource[_0x4e14[202]][_0x4e14[987]]=null;mxDragSource[_0x4e14[202]][_0x4e14[988]]=null;mxDragSource[_0x4e14[202]][_0x4e14[989]]=null;mxDragSource[_0x4e14[202]][_0x4e14[561]]= !0;mxDragSource[_0x4e14[202]][_0x4e14[990]]= !0;mxDragSource[_0x4e14[202]][_0x4e14[991]]= !0;mxDragSource[_0x4e14[202]][_0x4e14[563]]= !0;mxDragSource[_0x4e14[202]][_0x4e14[992]]=100;mxDragSource[_0x4e14[202]][_0x4e14[993]]=70;mxDragSource[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxDragSource[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxDragSource[_0x4e14[202]][_0x4e14[996]]=function(){return this[_0x4e14[990]]};mxDragSource[_0x4e14[202]][_0x4e14[562]]=function(_0xa132x2){this[_0x4e14[990]]=_0xa132x2};mxDragSource[_0x4e14[202]][_0x4e14[997]]=function(){return this[_0x4e14[991]]};mxDragSource[_0x4e14[202]][_0x4e14[998]]=function(_0xa132x2){this[_0x4e14[991]]=_0xa132x2};mxDragSource[_0x4e14[202]][_0x4e14[565]]=function(_0xa132x2){return null};mxDragSource[_0x4e14[202]][_0x4e14[564]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x2[_0x4e14[999]](_0xa132x3,_0xa132x4)};mxDragSource[_0x4e14[202]][_0x4e14[566]]=function(_0xa132x2){return this[_0x4e14[980]][_0x4e14[511]](!0)};mxDragSource[_0x4e14[202]][_0x4e14[567]]=function(_0xa132x2){return null};mxDragSource[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2){this[_0x4e14[984]]&&(!mxEvent[_0x4e14[721]](_0xa132x2)&&null==this[_0x4e14[1000]])&&(this[_0x4e14[1001]](_0xa132x2),this[_0x4e14[1000]]=mxUtils[_0x4e14[885]](this,this[_0x4e14[788]]),this[_0x4e14[1002]]=mxUtils[_0x4e14[885]](this,this[_0x4e14[789]]),mxEvent[_0x4e14[759]](document,null,this[_0x4e14[1000]],this[_0x4e14[1002]]),mxEvent[_0x4e14[722]](_0xa132x2,!0,!1))};mxDragSource[_0x4e14[202]][_0x4e14[1001]]=function(_0xa132x2){this[_0x4e14[982]]=this[_0x4e14[566]](_0xa132x2);this[_0x4e14[982]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];this[_0x4e14[982]][_0x4e14[124]][_0x4e14[931]]=this[_0x4e14[992]];mxUtils[_0x4e14[254]](this[_0x4e14[982]],this[_0x4e14[993]]);};mxDragSource[_0x4e14[202]][_0x4e14[1003]]=function(_0xa132x2){null!=this[_0x4e14[982]]&&(null!=this[_0x4e14[982]][_0x4e14[265]]&&this[_0x4e14[982]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[982]]),this[_0x4e14[982]]=null)};mxDragSource[_0x4e14[202]][_0x4e14[1004]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=mxEvent[_0x4e14[731]](_0xa132x3),_0xa132x5=mxEvent[_0x4e14[733]](_0xa132x3),_0xa132x9=mxUtils[_0x4e14[445]](_0xa132x2[_0x4e14[526]]),_0xa132xa=mxUtils[_0x4e14[444]]();return _0xa132x4>=_0xa132x9[_0x4e14[235]]-_0xa132xa[_0x4e14[235]]&&_0xa132x5>=_0xa132x9[_0x4e14[236]]-_0xa132xa[_0x4e14[236]]&&_0xa132x4<=_0xa132x9[_0x4e14[235]]-_0xa132xa[_0x4e14[235]]+_0xa132x2[_0x4e14[526]][_0x4e14[359]]&&_0xa132x5<=_0xa132x9[_0x4e14[236]]-_0xa132xa[_0x4e14[236]]+_0xa132x2[_0x4e14[526]][_0x4e14[167]];};mxDragSource[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[565]](_0xa132x2);null!=_0xa132x3&&!this[_0x4e14[1004]](_0xa132x3,_0xa132x2)&&(_0xa132x3=null);_0xa132x3!=this[_0x4e14[985]]&&(null!=this[_0x4e14[985]]&&this[_0x4e14[1005]](this[_0x4e14[985]]),this[_0x4e14[985]]=_0xa132x3,null!=this[_0x4e14[985]]&&this[_0x4e14[1006]](this[_0x4e14[985]]));null!=this[_0x4e14[985]]&&this[_0x4e14[1007]](this[_0x4e14[985]],_0xa132x2);if(null!=this[_0x4e14[982]]&&(null==this[_0x4e14[983]]||_0x4e14[189]!=this[_0x4e14[983]][_0x4e14[124]][_0x4e14[187]])){var _0xa132x3=mxEvent[_0x4e14[731]](_0xa132x2),_0xa132x4=mxEvent[_0x4e14[733]](_0xa132x2);null==this[_0x4e14[982]][_0x4e14[265]]&&document[_0x4e14[112]][_0x4e14[62]](this[_0x4e14[982]]);this[_0x4e14[982]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189];null!=this[_0x4e14[559]]&&(_0xa132x3+=this[_0x4e14[559]][_0x4e14[235]],_0xa132x4+=this[_0x4e14[559]][_0x4e14[236]]);_0xa132x3+=document[_0x4e14[112]][_0x4e14[360]]||document[_0x4e14[158]][_0x4e14[360]];_0xa132x4+=document[_0x4e14[112]][_0x4e14[190]]||document[_0x4e14[158]][_0x4e14[190]];this[_0x4e14[982]][_0x4e14[124]][_0x4e14[361]]=_0xa132x3+_0x4e14[168];this[_0x4e14[982]][_0x4e14[124]][_0x4e14[125]]=_0xa132x4+_0x4e14[168];}else {null!=this[_0x4e14[982]]&&(this[_0x4e14[982]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188])};mxEvent[_0x4e14[722]](_0xa132x2);};mxDragSource[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2){if(null!=this[_0x4e14[985]]){if(null!=this[_0x4e14[987]]&&(null==this[_0x4e14[983]]||_0x4e14[188]!=this[_0x4e14[983]][_0x4e14[124]][_0x4e14[187]])){var _0xa132x3=this[_0x4e14[985]][_0x4e14[441]][_0x4e14[255]],_0xa132x4=this[_0x4e14[985]][_0x4e14[441]][_0x4e14[513]];this[_0x4e14[1008]](this[_0x4e14[985]],_0xa132x2,this[_0x4e14[986]],this[_0x4e14[987]][_0x4e14[235]]/_0xa132x3-_0xa132x4[_0x4e14[235]],this[_0x4e14[987]][_0x4e14[236]]/_0xa132x3-_0xa132x4[_0x4e14[236]]);};this[_0x4e14[1005]](this[_0x4e14[985]]);};this[_0x4e14[1003]](_0xa132x2);mxEvent[_0x4e14[938]](document,null,this[_0x4e14[1000]],this[_0x4e14[1002]]);this[_0x4e14[985]]=this[_0x4e14[1002]]=this[_0x4e14[1000]]=null;mxEvent[_0x4e14[722]](_0xa132x2);};mxDragSource[_0x4e14[202]][_0x4e14[1006]]=function(_0xa132x2){_0xa132x2[_0x4e14[1009]]= !0;this[_0x4e14[983]]=this[_0x4e14[567]](_0xa132x2);this[_0x4e14[996]]()&&null!=this[_0x4e14[983]]&&(this[_0x4e14[988]]= new mxGuide(_0xa132x2,_0xa132x2[_0x4e14[1011]][_0x4e14[1010]]()));this[_0x4e14[563]]&&(this[_0x4e14[989]]= new mxCellHighlight(_0xa132x2,mxConstants.DROP_TARGET_COLOR));};mxDragSource[_0x4e14[202]][_0x4e14[1005]]=function(_0xa132x2){this[_0x4e14[987]]=this[_0x4e14[986]]=null;_0xa132x2[_0x4e14[1009]]= !1;null!=this[_0x4e14[983]]&&(null!=this[_0x4e14[983]][_0x4e14[265]]&&this[_0x4e14[983]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[983]]),this[_0x4e14[983]]=null);null!=this[_0x4e14[988]]&&(this[_0x4e14[988]][_0x4e14[515]](),this[_0x4e14[988]]=null);null!=this[_0x4e14[989]]&&(this[_0x4e14[989]][_0x4e14[515]](),this[_0x4e14[989]]=null);};mxDragSource[_0x4e14[202]][_0x4e14[1007]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=mxUtils[_0x4e14[445]](_0xa132x2[_0x4e14[526]]),_0xa132x5=mxUtils[_0x4e14[444]](_0xa132x2[_0x4e14[526]]),_0xa132x9=mxEvent[_0x4e14[731]](_0xa132x3)-_0xa132x4[_0x4e14[235]]+_0xa132x5[_0x4e14[235]],_0xa132x4=mxEvent[_0x4e14[733]](_0xa132x3)-_0xa132x4[_0x4e14[236]]+_0xa132x5[_0x4e14[236]];_0xa132x2[_0x4e14[1012]]&&(null==this[_0x4e14[561]]||this[_0x4e14[561]])&&_0xa132x2[_0x4e14[1014]](_0xa132x9,_0xa132x4,_0xa132x2[_0x4e14[1013]]);null!=this[_0x4e14[989]]&&_0xa132x2[_0x4e14[1015]]()&&(this[_0x4e14[986]]=this[_0x4e14[564]](_0xa132x2,_0xa132x9,_0xa132x4),_0xa132x5=_0xa132x2[_0x4e14[249]]()[_0x4e14[248]](this[_0x4e14[986]]),this[_0x4e14[989]][_0x4e14[1016]](_0xa132x5));if(null!=this[_0x4e14[983]]){null==this[_0x4e14[983]][_0x4e14[265]]&&(_0xa132x2[_0x4e14[526]][_0x4e14[62]](this[_0x4e14[983]]),this[_0x4e14[983]][_0x4e14[124]][_0x4e14[931]]=_0x4e14[1017],this[_0x4e14[983]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492]);var _0xa132x5=this[_0x4e14[997]]()&&_0xa132x2[_0x4e14[1018]](_0xa132x3),_0xa132xa=!0;if(null!=this[_0x4e14[988]]&&this[_0x4e14[988]][_0x4e14[1019]](_0xa132x3)){var _0xa132xa=parseInt(this[_0x4e14[983]][_0x4e14[124]][_0x4e14[117]]),_0xa132x12=parseInt(this[_0x4e14[983]][_0x4e14[124]][_0x4e14[119]]),_0xa132xa= new mxRectangle(0,0,_0xa132xa,_0xa132x12),_0xa132x4= new mxPoint(_0xa132x9,_0xa132x4),_0xa132x4=this[_0x4e14[988]][_0x4e14[582]](_0xa132xa,_0xa132x4,_0xa132x5),_0xa132xa=!1,_0xa132x9=_0xa132x4[_0x4e14[235]],_0xa132x4=_0xa132x4[_0x4e14[236]]}else {if(_0xa132x5){var _0xa132x5=_0xa132x2[_0x4e14[441]][_0x4e14[255]],_0xa132x12=_0xa132x2[_0x4e14[441]][_0x4e14[513]],_0xa132x13=_0xa132x2[_0x4e14[1020]]/2,_0xa132x9=(_0xa132x2[_0x4e14[1021]](_0xa132x9/_0xa132x5-_0xa132x12[_0x4e14[235]]-_0xa132x13)+_0xa132x12[_0x4e14[235]])*_0xa132x5,_0xa132x4=(_0xa132x2[_0x4e14[1021]](_0xa132x4/_0xa132x5-_0xa132x12[_0x4e14[236]]-_0xa132x13)+_0xa132x12[_0x4e14[236]])*_0xa132x5}};null!=this[_0x4e14[988]]&&_0xa132xa&&this[_0x4e14[988]][_0x4e14[801]]();null!=this[_0x4e14[1022]]&&(_0xa132x9+=this[_0x4e14[1022]][_0x4e14[235]],_0xa132x4+=this[_0x4e14[1022]][_0x4e14[236]]);this[_0x4e14[983]][_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[488]](_0xa132x9)+_0x4e14[168];this[_0x4e14[983]][_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[488]](_0xa132x4)+_0x4e14[168];this[_0x4e14[983]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189];};this[_0x4e14[987]]= new mxPoint(_0xa132x9,_0xa132x4);};mxDragSource[_0x4e14[202]][_0x4e14[1008]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){this[_0x4e14[981]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[526]][_0x4e14[393]]();};function mxToolbar(_0xa132x2){this[_0x4e14[526]]=_0xa132x2}mxToolbar[_0x4e14[202]]= new mxEventSource;mxToolbar[_0x4e14[202]][_0x4e14[196]]=mxToolbar;mxToolbar[_0x4e14[202]][_0x4e14[526]]=null;mxToolbar[_0x4e14[202]][_0x4e14[984]]= !0;mxToolbar[_0x4e14[202]][_0x4e14[1023]]= !1;mxToolbar[_0x4e14[202]][_0x4e14[1024]]= !0;mxToolbar[_0x4e14[202]][_0x4e14[1025]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){var _0xa132x12=document[_0x4e14[55]](null!=_0xa132x3?_0x4e14[466]:_0x4e14[172]),_0xa132x13=_0xa132x9||(null!=_0xa132xa?_0x4e14[1026]:_0x4e14[1027]);_0xa132x12[_0x4e14[926]]=_0xa132x13;_0xa132x12[_0x4e14[57]](_0x4e14[390],_0xa132x3);null!=_0xa132x2&&(null!=_0xa132x3?_0xa132x12[_0x4e14[57]](_0x4e14[924],_0xa132x2):mxUtils[_0x4e14[53]](_0xa132x12,_0xa132x2));this[_0x4e14[526]][_0x4e14[62]](_0xa132x12);null!=_0xa132x4&&(mxEvent[_0x4e14[169]](_0xa132x12,_0x4e14[173],_0xa132x4),mxClient[_0x4e14[754]]&&mxEvent[_0x4e14[169]](_0xa132x12,_0x4e14[757],_0xa132x4));_0xa132x2=mxUtils[_0x4e14[885]](this,function(_0xa132x2){null!=_0xa132x5?_0xa132x12[_0x4e14[57]](_0x4e14[390],_0xa132x3):_0xa132x12[_0x4e14[124]][_0x4e14[1028]]=_0x4e14[110]});mxEvent[_0x4e14[759]](_0xa132x12,mxUtils[_0x4e14[885]](this,function(_0xa132x2){null!=_0xa132x5?_0xa132x12[_0x4e14[57]](_0x4e14[390],_0xa132x5):_0xa132x12[_0x4e14[124]][_0x4e14[1028]]=_0x4e14[579];if(null!=_0xa132xa){null==this[_0x4e14[1029]]&&(this[_0x4e14[1029]]= new mxPopupMenu,this[_0x4e14[1029]][_0x4e14[176]]());var _0xa132x3=this[_0x4e14[1030]];this[_0x4e14[1029]][_0x4e14[1031]]()&&this[_0x4e14[1029]][_0x4e14[1032]]();_0xa132x3!=_0xa132x12&&(this[_0x4e14[1030]]=_0xa132x12,this[_0x4e14[1029]][_0x4e14[1033]]=_0xa132xa,_0xa132x3= new mxPoint(_0xa132x12[_0x4e14[358]],_0xa132x12[_0x4e14[362]]+_0xa132x12[_0x4e14[167]]),this[_0x4e14[1029]][_0x4e14[152]](_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]],null,_0xa132x2),this[_0x4e14[1029]][_0x4e14[1031]]()&&(_0xa132x12[_0x4e14[926]]=_0xa132x13+_0x4e14[1034],this[_0x4e14[1029]][_0x4e14[1032]]=function(){mxPopupMenu[_0x4e14[202]][_0x4e14[1032]][_0x4e14[183]](this);_0xa132x12[_0x4e14[926]]=_0xa132x13;this[_0x4e14[1030]]=null;}));};}),null,_0xa132x2);mxEvent[_0x4e14[169]](_0xa132x12,_0x4e14[1035],_0xa132x2);return _0xa132x12;};mxToolbar[_0x4e14[202]][_0x4e14[970]]=function(_0xa132x2){var _0xa132x3=document[_0x4e14[55]](_0x4e14[485]);_0xa132x3[_0x4e14[124]][_0x4e14[495]]=_0x4e14[497];_0xa132x3[_0x4e14[926]]=_0x4e14[1036];var _0xa132x4=document[_0x4e14[55]](_0x4e14[804]);_0xa132x4[_0x4e14[926]]=_0xa132x2||_0x4e14[1037];_0xa132x3[_0x4e14[62]](_0xa132x4);this[_0x4e14[526]][_0x4e14[62]](_0xa132x3);return _0xa132x4;};mxToolbar[_0x4e14[202]][_0x4e14[1038]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[804]);_0xa132x4[_0x4e14[926]]=_0xa132x3||_0x4e14[1037];this[_0x4e14[972]](_0xa132x4,_0xa132x2,null);mxEvent[_0x4e14[169]](_0xa132x4,_0x4e14[826],function(_0xa132x2){var _0xa132x3=_0xa132x4[_0x4e14[1040]][_0xa132x4[_0x4e14[1039]]];_0xa132x4[_0x4e14[1039]]=0;null!=_0xa132x3[_0x4e14[1041]]&&_0xa132x3[_0x4e14[1041]](_0xa132x2);});this[_0x4e14[526]][_0x4e14[62]](_0xa132x4);return _0xa132x4;};mxToolbar[_0x4e14[202]][_0x4e14[972]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=document[_0x4e14[55]](_0x4e14[973]);mxUtils[_0x4e14[171]](_0xa132x5,_0xa132x3);_0x4e14[279]== typeof _0xa132x4?_0xa132x5[_0x4e14[1041]]=_0xa132x4:_0xa132x5[_0x4e14[57]](_0x4e14[131],_0xa132x4);_0xa132x2[_0x4e14[62]](_0xa132x5);return _0xa132x5;};mxToolbar[_0x4e14[202]][_0x4e14[1042]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=document[_0x4e14[55]](_0x4e14[466]);_0xa132xa[_0x4e14[1043]]=_0xa132x9||_0x4e14[1026];_0xa132xa[_0x4e14[926]]=_0xa132xa[_0x4e14[1043]];_0xa132xa[_0x4e14[57]](_0x4e14[390],_0xa132x3);_0xa132xa[_0x4e14[1044]]=_0xa132x5;null!=_0xa132x2&&_0xa132xa[_0x4e14[57]](_0x4e14[924],_0xa132x2);mxEvent[_0x4e14[169]](_0xa132xa,_0x4e14[173],mxUtils[_0x4e14[885]](this,function(_0xa132x2){_0xa132x2=this[_0x4e14[1045]][_0x4e14[1044]];null!=_0xa132x2?(this[_0x4e14[1045]][_0x4e14[1044]]=this[_0x4e14[1045]][_0x4e14[284]](_0x4e14[390]),this[_0x4e14[1045]][_0x4e14[57]](_0x4e14[390],_0xa132x2)):this[_0x4e14[1045]][_0x4e14[926]]=this[_0x4e14[1045]][_0x4e14[1043]];this[_0x4e14[1024]]&&(this[_0x4e14[1046]]=_0xa132xa);this[_0x4e14[1045]]=_0xa132xa;_0xa132x2=_0xa132xa[_0x4e14[1044]];null!=_0xa132x2?(_0xa132xa[_0x4e14[1044]]=_0xa132xa[_0x4e14[284]](_0x4e14[390]),_0xa132xa[_0x4e14[57]](_0x4e14[390],_0xa132x2)):_0xa132xa[_0x4e14[926]]=_0xa132xa[_0x4e14[1043]]+_0x4e14[1034];this[_0x4e14[746]]( new mxEventObject(mxEvent.SELECT));_0xa132x4();}));this[_0x4e14[526]][_0x4e14[62]](_0xa132xa);null==this[_0x4e14[1046]]&&(this[_0x4e14[1046]]=_0xa132xa,this[_0x4e14[1047]](_0xa132xa),_0xa132x4());return _0xa132xa;};mxToolbar[_0x4e14[202]][_0x4e14[1048]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132xa=null!=_0xa132xa?_0xa132xa:!0;var _0xa132x12=document[_0x4e14[55]](null!=_0xa132x3?_0x4e14[466]:_0x4e14[172]);_0xa132x12[_0x4e14[1043]]=_0xa132x9||_0x4e14[1026];_0xa132x12[_0x4e14[926]]=_0xa132x12[_0x4e14[1043]];_0xa132x12[_0x4e14[57]](_0x4e14[390],_0xa132x3);_0xa132x12[_0x4e14[1044]]=_0xa132x5;null!=_0xa132x2&&_0xa132x12[_0x4e14[57]](_0x4e14[924],_0xa132x2);this[_0x4e14[984]]&&_0xa132xa&&(mxEvent[_0x4e14[169]](_0xa132x12,_0x4e14[173],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1047]](_0xa132x12,_0xa132x4);this[_0x4e14[1023]]= !1;})),mxEvent[_0x4e14[169]](_0xa132x12,_0x4e14[760],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1047]](_0xa132x12,_0xa132x4);this[_0x4e14[1023]]= !0;})),null==this[_0x4e14[1046]]&&(this[_0x4e14[1046]]=_0xa132x12,this[_0x4e14[1049]]=_0xa132x4,this[_0x4e14[1047]](_0xa132x12,_0xa132x4)));this[_0x4e14[526]][_0x4e14[62]](_0xa132x12);return _0xa132x12;};mxToolbar[_0x4e14[202]][_0x4e14[1047]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1045]]!=_0xa132x2){if(null!=this[_0x4e14[1045]]){var _0xa132x4=this[_0x4e14[1045]][_0x4e14[1044]];null!=_0xa132x4?(this[_0x4e14[1045]][_0x4e14[1044]]=this[_0x4e14[1045]][_0x4e14[284]](_0x4e14[390]),this[_0x4e14[1045]][_0x4e14[57]](_0x4e14[390],_0xa132x4)):this[_0x4e14[1045]][_0x4e14[926]]=this[_0x4e14[1045]][_0x4e14[1043]];};this[_0x4e14[1045]]=_0xa132x2;_0xa132x4=this[_0x4e14[1045]][_0x4e14[1044]];null!=_0xa132x4?(this[_0x4e14[1045]][_0x4e14[1044]]=this[_0x4e14[1045]][_0x4e14[284]](_0x4e14[390]),this[_0x4e14[1045]][_0x4e14[57]](_0x4e14[390],_0xa132x4)):this[_0x4e14[1045]][_0x4e14[926]]=this[_0x4e14[1045]][_0x4e14[1043]]+_0x4e14[1034];this[_0x4e14[746]]( new mxEventObject(mxEvent.SELECT,_0x4e14[279],_0xa132x3));}};mxToolbar[_0x4e14[202]][_0x4e14[1050]]=function(_0xa132x2){(_0xa132x2||!this[_0x4e14[1023]])&&this[_0x4e14[1045]]!=this[_0x4e14[1046]]&&this[_0x4e14[1047]](this[_0x4e14[1046]],this[_0x4e14[1049]])};mxToolbar[_0x4e14[202]][_0x4e14[1051]]=function(_0xa132x2){return this[_0x4e14[1025]](null,_0xa132x2,null)};mxToolbar[_0x4e14[202]][_0x4e14[1052]]=function(){mxUtils[_0x4e14[345]](this[_0x4e14[526]])};mxToolbar[_0x4e14[202]][_0x4e14[1053]]=function(){var _0xa132x2=document[_0x4e14[55]](_0x4e14[1054]);_0xa132x2[_0x4e14[124]][_0x4e14[941]]=_0x4e14[1055];_0xa132x2[_0x4e14[57]](_0x4e14[803],_0x4e14[500]);this[_0x4e14[526]][_0x4e14[62]](_0xa132x2);};mxToolbar[_0x4e14[202]][_0x4e14[515]]=function(){mxEvent[_0x4e14[762]](this[_0x4e14[526]]);this[_0x4e14[1045]]=this[_0x4e14[1049]]=this[_0x4e14[1046]]=this[_0x4e14[526]]=null;null!=this[_0x4e14[1029]]&&this[_0x4e14[1029]][_0x4e14[515]]();};function mxSession(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[1056]]=_0xa132x3;this[_0x4e14[1057]]=_0xa132x4;this[_0x4e14[1058]]=_0xa132x5;null!=_0xa132x2&&(this[_0x4e14[1059]]= new mxCodec,this[_0x4e14[1059]][_0x4e14[1060]]=function(_0xa132x3){return _0xa132x2[_0x4e14[736]](_0xa132x3)});_0xa132x2[_0x4e14[169]](mxEvent.NOTIFY,mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x3[_0x4e14[720]](_0x4e14[1061]);(null!=_0xa132x4&&this[_0x4e14[143]]||this[_0x4e14[1062]]&&!this[_0x4e14[1063]])&&this[_0x4e14[827]](_0x4e14[1064]+this[_0x4e14[1067]](_0xa132x4[_0x4e14[1065]],_0xa132x4[_0x4e14[1066]])+_0x4e14[1068]);}));}mxSession[_0x4e14[202]]= new mxEventSource;mxSession[_0x4e14[202]][_0x4e14[196]]=mxSession;mxSession[_0x4e14[202]][_0x4e14[251]]=null;mxSession[_0x4e14[202]][_0x4e14[1056]]=null;mxSession[_0x4e14[202]][_0x4e14[1057]]=null;mxSession[_0x4e14[202]][_0x4e14[1058]]=null;mxSession[_0x4e14[202]][_0x4e14[1059]]=null;mxSession[_0x4e14[202]][_0x4e14[1069]]=_0x4e14[336];mxSession[_0x4e14[202]][_0x4e14[1070]]= !0;mxSession[_0x4e14[202]][_0x4e14[1071]]= !0;mxSession[_0x4e14[202]][_0x4e14[1072]]=0;mxSession[_0x4e14[202]][_0x4e14[1073]]=0;mxSession[_0x4e14[202]][_0x4e14[143]]= !1;mxSession[_0x4e14[202]][_0x4e14[1062]]= !1;mxSession[_0x4e14[202]][_0x4e14[1063]]= !1;mxSession[_0x4e14[202]][_0x4e14[1074]]= !1;mxSession[_0x4e14[202]][_0x4e14[861]]=function(){this[_0x4e14[143]]?(this[_0x4e14[1062]]= !0,this[_0x4e14[746]]( new mxEventObject(mxEvent.CONNECT))):this[_0x4e14[1062]]||this[_0x4e14[203]](this[_0x4e14[1056]],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1062]]= !0;this[_0x4e14[746]]( new mxEventObject(mxEvent.CONNECT));this[_0x4e14[1075]]();}))};mxSession[_0x4e14[202]][_0x4e14[809]]=function(){this[_0x4e14[1062]]&&!this[_0x4e14[1063]]&&(this[_0x4e14[1063]]= !0,this[_0x4e14[746]]( new mxEventObject(mxEvent.SUSPEND)))};mxSession[_0x4e14[202]][_0x4e14[810]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[1062]]&&this[_0x4e14[1063]]&&(this[_0x4e14[1063]]= !1,this[_0x4e14[746]]( new mxEventObject(mxEvent.RESUME)),this[_0x4e14[1074]]||this[_0x4e14[1075]]())};mxSession[_0x4e14[202]][_0x4e14[1076]]=function(_0xa132x2){this[_0x4e14[1062]]&&(this[_0x4e14[1062]]= !1);this[_0x4e14[746]]( new mxEventObject(mxEvent.DISCONNECT,_0x4e14[1077],_0xa132x2));};mxSession[_0x4e14[202]][_0x4e14[1075]]=function(){this[_0x4e14[1062]]&&!this[_0x4e14[1063]]&&null!=this[_0x4e14[1057]]?(this[_0x4e14[1074]]= !0,this[_0x4e14[203]](this[_0x4e14[1057]],mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[1075]]()}))):this[_0x4e14[1074]]= !1};mxSession[_0x4e14[202]][_0x4e14[827]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]&&(null!=this[_0x4e14[1058]]&&(this[_0x4e14[143]]?(mxLog[_0x4e14[539]](),mxLog[_0x4e14[143]](_0x4e14[1078]+this[_0x4e14[1058]]+_0x4e14[1079]+_0xa132x2)):(_0xa132x2=_0x4e14[1080]+_0xa132x2+_0x4e14[1081],this[_0x4e14[1070]]&&(_0xa132x2=encodeURIComponent(_0xa132x2)),mxUtils[_0x4e14[814]](this[_0x4e14[1058]],_0x4e14[1082]+_0xa132x2,_0xa132x3,_0xa132x4))),this[_0x4e14[1072]]+=_0xa132x2[_0x4e14[67]],this[_0x4e14[746]]( new mxEventObject(mxEvent.NOTIFY,_0x4e14[863],this[_0x4e14[1058]],_0x4e14[338],_0xa132x2)))};mxSession[_0x4e14[202]][_0x4e14[203]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(_0x4e14[82]!= typeof mxUtils){var _0xa132x5=mxUtils[_0x4e14[885]](this,function(_0xa132x2){null!=_0xa132x4?_0xa132x4(_0xa132x2):this[_0x4e14[1076]](_0xa132x2)});mxUtils[_0x4e14[203]](_0xa132x2,mxUtils[_0x4e14[885]](this,function(_0xa132x4){if(_0x4e14[82]!= typeof mxUtils){if(_0xa132x4[_0x4e14[220]]()&&404!=_0xa132x4[_0x4e14[878]]()){if(this[_0x4e14[1073]]+=_0xa132x4[_0x4e14[221]]()[_0x4e14[67]],this[_0x4e14[746]]( new mxEventObject(mxEvent.GET,_0x4e14[863],_0xa132x2,_0x4e14[870],_0xa132x4)),this[_0x4e14[1083]](_0xa132x4)){if(0<_0xa132x4[_0x4e14[221]]()[_0x4e14[67]]){var _0xa132xa=_0xa132x4[_0x4e14[874]]();null==_0xa132xa?_0xa132x5(_0x4e14[1084]+_0xa132x4[_0x4e14[221]]()):this[_0x4e14[806]](_0xa132xa);};null!=_0xa132x3&&_0xa132x3(_0xa132x4);}}else {_0xa132x5(_0x4e14[1085])}}}),function(_0xa132x2){_0xa132x5(_0x4e14[1086])});}};mxSession[_0x4e14[202]][_0x4e14[1083]]=function(_0xa132x2){return 0>_0xa132x2[_0x4e14[221]]()[_0x4e14[2]](_0x4e14[1087])};mxSession[_0x4e14[202]][_0x4e14[1067]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=_0x4e14[110],_0xa132x5=_0xa132x3?-1:1,_0xa132x9=_0xa132x3?_0xa132x2[_0x4e14[67]]-1:0;0<=_0xa132x9&&_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9+=_0xa132x5){var _0xa132xa=this[_0x4e14[1059]][_0x4e14[514]](_0xa132x2[_0xa132x9]),_0xa132x4=_0xa132x4+mxUtils[_0x4e14[875]](_0xa132xa,this[_0x4e14[1069]])};return _0xa132x4;};mxSession[_0x4e14[202]][_0x4e14[806]]=function(_0xa132x2){if(null!=_0xa132x2&&_0xa132x2[_0x4e14[288]]==mxConstants[_0x4e14[289]]){var _0xa132x3=_0xa132x2[_0x4e14[284]](_0x4e14[1088]);null!=_0xa132x3&&(this[_0x4e14[251]][_0x4e14[1089]]=_0xa132x3+_0x4e14[213]);for(_0xa132x3=_0xa132x2[_0x4e14[285]];null!=_0xa132x3;){var _0xa132x4=_0xa132x3[_0x4e14[301]][_0x4e14[216]]();_0x4e14[724]==_0xa132x4?this[_0x4e14[1090]](_0xa132x3):_0x4e14[1091]==_0xa132x4&&this[_0x4e14[1092]](_0xa132x3);_0xa132x3=_0xa132x3[_0x4e14[287]];};this[_0x4e14[746]]( new mxEventObject(mxEvent.RECEIVE,_0x4e14[252],_0xa132x2));}};mxSession[_0x4e14[202]][_0x4e14[1090]]=function(_0xa132x2){( new mxCodec(_0xa132x2[_0x4e14[295]]))[_0x4e14[1093]](_0xa132x2[_0x4e14[285]],this[_0x4e14[251]])};mxSession[_0x4e14[202]][_0x4e14[1092]]=function(_0xa132x2){for(_0xa132x2=_0xa132x2[_0x4e14[285]];null!=_0xa132x2;){_0x4e14[1061]==_0xa132x2[_0x4e14[301]]&&this[_0x4e14[1094]](_0xa132x2),_0xa132x2=_0xa132x2[_0x4e14[287]]}};mxSession[_0x4e14[202]][_0x4e14[1094]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[1095]](_0xa132x2);if(0<_0xa132x2[_0x4e14[67]]){var _0xa132x3=this[_0x4e14[1096]](_0xa132x2);this[_0x4e14[251]][_0x4e14[746]]( new mxEventObject(mxEvent.CHANGE,_0x4e14[1061],_0xa132x3,_0x4e14[1065],_0xa132x2));this[_0x4e14[251]][_0x4e14[746]]( new mxEventObject(mxEvent.UNDO,_0x4e14[1061],_0xa132x3));this[_0x4e14[746]]( new mxEventObject(mxEvent.FIRED,_0x4e14[1061],_0xa132x3));};};mxSession[_0x4e14[202]][_0x4e14[1096]]=function(_0xa132x2){var _0xa132x3= new mxUndoableEdit(this[_0x4e14[251]],this[_0x4e14[1071]]);_0xa132x3[_0x4e14[1065]]=_0xa132x2;_0xa132x3[_0x4e14[827]]=function(){_0xa132x3[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.CHANGE,_0x4e14[1061],_0xa132x3,_0x4e14[1065],_0xa132x3[_0x4e14[1065]]));_0xa132x3[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.NOTIFY,_0x4e14[1061],_0xa132x3,_0x4e14[1065],_0xa132x3[_0x4e14[1065]]));};return _0xa132x3;};mxSession[_0x4e14[202]][_0x4e14[1095]]=function(_0xa132x2){this[_0x4e14[1059]][_0x4e14[395]]=_0xa132x2[_0x4e14[295]];var _0xa132x3=[];for(_0xa132x2=_0xa132x2[_0x4e14[285]];null!=_0xa132x2;){var _0xa132x4=this[_0x4e14[1098]](_0xa132x2);null!=_0xa132x4&&_0xa132x3[_0x4e14[207]](_0xa132x4);_0xa132x2=_0xa132x2[_0x4e14[287]];};return _0xa132x3;};mxSession[_0x4e14[202]][_0x4e14[1098]]=function(_0xa132x2){var _0xa132x3=null;_0xa132x2[_0x4e14[288]]==mxConstants[_0x4e14[289]]&&(_0xa132x3=_0x4e14[1099]==_0xa132x2[_0x4e14[301]]?( new mxCodec(_0xa132x2[_0x4e14[295]]))[_0x4e14[1093]](_0xa132x2):this[_0x4e14[1059]][_0x4e14[1093]](_0xa132x2),null!=_0xa132x3&&(_0xa132x3[_0x4e14[251]]=this[_0x4e14[251]],_0xa132x3[_0x4e14[350]](),_0x4e14[1100]==_0xa132x2[_0x4e14[301]]&&null==_0xa132x3[_0x4e14[1101]]&&this[_0x4e14[1102]](_0xa132x3[_0x4e14[247]])));return _0xa132x3;};mxSession[_0x4e14[202]][_0x4e14[1102]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1059]][_0x4e14[1104]](_0xa132x2[_0x4e14[1103]](),_0xa132x2);for(var _0xa132x4=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2),_0xa132x5=0;_0xa132x5<_0xa132x4;_0xa132x5++){this[_0x4e14[1102]](this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,_0xa132x5))};};function mxUndoableEdit(_0xa132x2,_0xa132x3){this[_0x4e14[1097]]=_0xa132x2;this[_0x4e14[1065]]=[];this[_0x4e14[1105]]=null!=_0xa132x3?_0xa132x3:!0;}mxUndoableEdit[_0x4e14[202]][_0x4e14[1097]]=null;mxUndoableEdit[_0x4e14[202]][_0x4e14[1065]]=null;mxUndoableEdit[_0x4e14[202]][_0x4e14[1105]]=null;mxUndoableEdit[_0x4e14[202]][_0x4e14[1066]]= !1;mxUndoableEdit[_0x4e14[202]][_0x4e14[1106]]= !1;mxUndoableEdit[_0x4e14[202]][_0x4e14[1107]]=function(){return 0==this[_0x4e14[1065]][_0x4e14[67]]};mxUndoableEdit[_0x4e14[202]][_0x4e14[1108]]=function(){return this[_0x4e14[1105]]};mxUndoableEdit[_0x4e14[202]][_0x4e14[99]]=function(_0xa132x2){this[_0x4e14[1065]][_0x4e14[207]](_0xa132x2)};mxUndoableEdit[_0x4e14[202]][_0x4e14[827]]=function(){};mxUndoableEdit[_0x4e14[202]][_0x4e14[1109]]=function(){};mxUndoableEdit[_0x4e14[202]][_0x4e14[824]]=function(){if(!this[_0x4e14[1066]]){this[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.START_EDIT));for(var _0xa132x2=this[_0x4e14[1065]][_0x4e14[67]]-1;0<=_0xa132x2;_0xa132x2--){var _0xa132x3=this[_0x4e14[1065]][_0xa132x2];null!=_0xa132x3[_0x4e14[350]]?_0xa132x3[_0x4e14[350]]():null!=_0xa132x3[_0x4e14[824]]&&_0xa132x3[_0x4e14[824]]();this[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.EXECUTED,_0x4e14[826],_0xa132x3));};this[_0x4e14[1066]]= !0;this[_0x4e14[1106]]= !1;this[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.END_EDIT));};this[_0x4e14[827]]();};mxUndoableEdit[_0x4e14[202]][_0x4e14[825]]=function(){if(!this[_0x4e14[1106]]){this[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.START_EDIT));for(var _0xa132x2=this[_0x4e14[1065]][_0x4e14[67]],_0xa132x3=0;_0xa132x3<_0xa132x2;_0xa132x3++){var _0xa132x4=this[_0x4e14[1065]][_0xa132x3];null!=_0xa132x4[_0x4e14[350]]?_0xa132x4[_0x4e14[350]]():null!=_0xa132x4[_0x4e14[825]]&&_0xa132x4[_0x4e14[825]]();this[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.EXECUTED,_0x4e14[826],_0xa132x4));};this[_0x4e14[1066]]= !1;this[_0x4e14[1106]]= !0;this[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.END_EDIT));};this[_0x4e14[827]]();};function mxUndoManager(_0xa132x2){this[_0x4e14[803]]=null!=_0xa132x2?_0xa132x2:100;this[_0x4e14[200]]();}mxUndoManager[_0x4e14[202]]= new mxEventSource;mxUndoManager[_0x4e14[202]][_0x4e14[196]]=mxUndoManager;mxUndoManager[_0x4e14[202]][_0x4e14[803]]=null;mxUndoManager[_0x4e14[202]][_0x4e14[1110]]=null;mxUndoManager[_0x4e14[202]][_0x4e14[1111]]=0;mxUndoManager[_0x4e14[202]][_0x4e14[1107]]=function(){return 0==this[_0x4e14[1110]][_0x4e14[67]]};mxUndoManager[_0x4e14[202]][_0x4e14[200]]=function(){this[_0x4e14[1110]]=[];this[_0x4e14[1111]]=0;this[_0x4e14[746]]( new mxEventObject(mxEvent.CLEAR));};mxUndoManager[_0x4e14[202]][_0x4e14[1112]]=function(){return 0<this[_0x4e14[1111]]};mxUndoManager[_0x4e14[202]][_0x4e14[824]]=function(){for(;0<this[_0x4e14[1111]];){var _0xa132x2=this[_0x4e14[1110]][--this[_0x4e14[1111]]];_0xa132x2[_0x4e14[824]]();if(_0xa132x2[_0x4e14[1108]]()){this[_0x4e14[746]]( new mxEventObject(mxEvent.UNDO,_0x4e14[1061],_0xa132x2));break;};}};mxUndoManager[_0x4e14[202]][_0x4e14[1113]]=function(){return this[_0x4e14[1111]]<this[_0x4e14[1110]][_0x4e14[67]]};mxUndoManager[_0x4e14[202]][_0x4e14[825]]=function(){for(var _0xa132x2=this[_0x4e14[1110]][_0x4e14[67]];this[_0x4e14[1111]]<_0xa132x2;){var _0xa132x3=this[_0x4e14[1110]][this[_0x4e14[1111]]++];_0xa132x3[_0x4e14[825]]();if(_0xa132x3[_0x4e14[1108]]()){this[_0x4e14[746]]( new mxEventObject(mxEvent.REDO,_0x4e14[1061],_0xa132x3));break;};}};mxUndoManager[_0x4e14[202]][_0x4e14[1114]]=function(_0xa132x2){this[_0x4e14[330]]();0<this[_0x4e14[803]]&&this[_0x4e14[803]]==this[_0x4e14[1110]][_0x4e14[67]]&&this[_0x4e14[1110]][_0x4e14[1115]]();this[_0x4e14[1110]][_0x4e14[207]](_0xa132x2);this[_0x4e14[1111]]=this[_0x4e14[1110]][_0x4e14[67]];this[_0x4e14[746]]( new mxEventObject(mxEvent.ADD,_0x4e14[1061],_0xa132x2));};mxUndoManager[_0x4e14[202]][_0x4e14[330]]=function(){if(this[_0x4e14[1110]][_0x4e14[67]]>this[_0x4e14[1111]]){for(var _0xa132x2=this[_0x4e14[1110]][_0x4e14[300]](this[_0x4e14[1111]],this[_0x4e14[1110]][_0x4e14[67]]-this[_0x4e14[1111]]),_0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3++){_0xa132x2[_0xa132x3][_0x4e14[1109]]()}}};var mxUrlConverter=function(_0xa132x2){var _0xa132x3=!0,_0xa132x4=null,_0xa132x5=null;return {isEnabled:function(){return _0xa132x3},setEnabled:function(_0xa132x2){_0xa132x3=_0xa132x2},getBaseUrl:function(){return _0xa132x4},setBaseUrl:function(_0xa132x2){_0xa132x4=_0xa132x2},getBaseDomain:function(){return _0xa132x4},setBaseDomain:function(_0xa132x2){_0xa132x4=_0xa132x2},isRelativeUrl:function(_0xa132x2){return _0x4e14[43]!=_0xa132x2[_0x4e14[85]](0,7)&&_0x4e14[46]!=_0xa132x2[_0x4e14[85]](0,8)&&_0x4e14[1116]!=_0xa132x2[_0x4e14[85]](0,10)},convert:function(_0xa132x2){if(_0xa132x3&&this[_0x4e14[1117]](_0xa132x2)){if(null==_0xa132x4){_0xa132x5=location[_0x4e14[1118]]+_0x4e14[1119]+location[_0x4e14[1120]];_0xa132x4=_0xa132x5+location[_0x4e14[1121]];var _0xa132xa=_0xa132x4[_0x4e14[1122]](_0x4e14[84]);0<_0xa132xa&&(_0xa132x4=_0xa132x4[_0x4e14[85]](0,_0xa132xa+1));};_0xa132x2=_0x4e14[84]==_0xa132x2[_0x4e14[225]](0)?_0xa132x5+_0xa132x2:_0xa132x4+_0xa132x2;};return _0xa132x2;}};};function mxPanningManager(_0xa132x2){this[_0x4e14[1123]]=null;this[_0x4e14[1124]]= !1;this[_0x4e14[1125]]=this[_0x4e14[1126]]=this[_0x4e14[1127]]=this[_0x4e14[1128]]=this[_0x4e14[1129]]=this[_0x4e14[1130]]=0;this[_0x4e14[1131]]= !1;this[_0x4e14[190]]=this[_0x4e14[360]]=0;this[_0x4e14[1132]]={mouseDown:function(_0xa132x2,_0xa132x3){},mouseMove:function(_0xa132x2,_0xa132x3){},mouseUp:mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){this[_0x4e14[1124]]&&this[_0x4e14[1076]]()})};_0xa132x2[_0x4e14[1133]](this[_0x4e14[1132]]);mxEvent[_0x4e14[169]](document,_0x4e14[753],mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[1124]]&&this[_0x4e14[1076]]()}));var _0xa132x3=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[1131]]=mxUtils[_0x4e14[1134]](_0xa132x2[_0x4e14[526]]);this[_0x4e14[360]]=_0xa132x2[_0x4e14[526]][_0x4e14[360]];this[_0x4e14[190]]=_0xa132x2[_0x4e14[526]][_0x4e14[190]];return window[_0x4e14[1141]](mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[1130]]-=this[_0x4e14[1126]];this[_0x4e14[1129]]-=this[_0x4e14[1125]];if(this[_0x4e14[1131]]){var _0xa132x3=-_0xa132x2[_0x4e14[526]][_0x4e14[360]]-Math[_0x4e14[430]](this[_0x4e14[1126]]),_0xa132x5=-_0xa132x2[_0x4e14[526]][_0x4e14[190]]-Math[_0x4e14[430]](this[_0x4e14[1125]]);_0xa132x2[_0x4e14[1135]](_0xa132x3,_0xa132x5);_0xa132x2[_0x4e14[1136]]=this[_0x4e14[360]]-_0xa132x2[_0x4e14[526]][_0x4e14[360]];_0xa132x2[_0x4e14[1137]]=this[_0x4e14[190]]-_0xa132x2[_0x4e14[526]][_0x4e14[190]];_0xa132x2[_0x4e14[746]]( new mxEventObject(mxEvent.PAN));}else {_0xa132x2[_0x4e14[1135]](this[_0x4e14[1138]](),this[_0x4e14[1139]]())};}),this[_0x4e14[1140]]);});this[_0x4e14[1142]]=function(){return active};this[_0x4e14[1138]]=function(){return Math[_0x4e14[488]](this[_0x4e14[1130]])};this[_0x4e14[1139]]=function(){return Math[_0x4e14[488]](this[_0x4e14[1129]])};this[_0x4e14[861]]=function(){this[_0x4e14[1128]]=_0xa132x2[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]];this[_0x4e14[1127]]=_0xa132x2[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]];this[_0x4e14[1124]]= !0;};this[_0x4e14[1143]]=function(_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[1124]]||this[_0x4e14[861]]();this[_0x4e14[360]]=_0xa132x2[_0x4e14[526]][_0x4e14[360]];this[_0x4e14[190]]=_0xa132x2[_0x4e14[526]][_0x4e14[190]];_0xa132xa=null!=_0xa132xa?_0xa132xa:0;var _0xa132x12=_0xa132x2[_0x4e14[526]];this[_0x4e14[1126]]=_0xa132x4+(null!=_0xa132x9?_0xa132x9:0)-_0xa132x12[_0x4e14[360]]-_0xa132x12[_0x4e14[159]];0>this[_0x4e14[1126]]&&Math[_0x4e14[425]](this[_0x4e14[1126]])<this[_0x4e14[467]]?this[_0x4e14[1126]]=this[_0x4e14[467]]+this[_0x4e14[1126]]:this[_0x4e14[1126]]=this[_0x4e14[1144]]?Math[_0x4e14[160]](this[_0x4e14[1126]],0):0;0==this[_0x4e14[1126]]&&(this[_0x4e14[1126]]=_0xa132x4-_0xa132x12[_0x4e14[360]],this[_0x4e14[1126]]=0<this[_0x4e14[1126]]&&this[_0x4e14[1126]]<this[_0x4e14[467]]?this[_0x4e14[1126]]-this[_0x4e14[467]]:this[_0x4e14[1144]]?Math[_0x4e14[243]](0,this[_0x4e14[1126]]):0);this[_0x4e14[1125]]=_0xa132x5+_0xa132xa-_0xa132x12[_0x4e14[190]]-_0xa132x12[_0x4e14[157]];0>this[_0x4e14[1125]]&&Math[_0x4e14[425]](this[_0x4e14[1125]])<this[_0x4e14[467]]?this[_0x4e14[1125]]=this[_0x4e14[467]]+this[_0x4e14[1125]]:this[_0x4e14[1125]]=this[_0x4e14[1144]]?Math[_0x4e14[160]](this[_0x4e14[1125]],0):0;0==this[_0x4e14[1125]]&&(this[_0x4e14[1125]]=_0xa132x5-_0xa132x12[_0x4e14[190]],this[_0x4e14[1125]]=0<this[_0x4e14[1125]]&&this[_0x4e14[1125]]<this[_0x4e14[467]]?this[_0x4e14[1125]]-this[_0x4e14[467]]:this[_0x4e14[1144]]?Math[_0x4e14[243]](0,this[_0x4e14[1125]]):0);0!=this[_0x4e14[1126]]||0!=this[_0x4e14[1125]]?(this[_0x4e14[1126]]*=this[_0x4e14[1145]],this[_0x4e14[1125]]*=this[_0x4e14[1145]],null==this[_0x4e14[1123]]&&(this[_0x4e14[1123]]=_0xa132x3())):null!=this[_0x4e14[1123]]&&(window[_0x4e14[1146]](this[_0x4e14[1123]]),this[_0x4e14[1123]]=null);};this[_0x4e14[1076]]=function(){if(this[_0x4e14[1124]]){if(this[_0x4e14[1124]]= !1,null!=this[_0x4e14[1123]]&&(window[_0x4e14[1146]](this[_0x4e14[1123]]),this[_0x4e14[1123]]=null),this[_0x4e14[1129]]=this[_0x4e14[1130]]=0,this[_0x4e14[1131]]){_0xa132x2[_0x4e14[1136]]=0,_0xa132x2[_0x4e14[1137]]=0,_0xa132x2[_0x4e14[746]]( new mxEventObject(mxEvent.PAN))}else {var _0xa132x3=_0xa132x2[_0x4e14[1136]],_0xa132x5=_0xa132x2[_0x4e14[1137]];if(0!=_0xa132x3||0!=_0xa132x5){_0xa132x2[_0x4e14[1135]](0,0),_0xa132x2[_0x4e14[441]][_0x4e14[1147]](this[_0x4e14[1128]]+_0xa132x3/_0xa132x2[_0x4e14[441]][_0x4e14[255]],this[_0x4e14[1127]]+_0xa132x5/_0xa132x2[_0x4e14[441]][_0x4e14[255]])};}}};this[_0x4e14[515]]=function(){_0xa132x2[_0x4e14[1148]](this[_0x4e14[1132]])};}mxPanningManager[_0x4e14[202]][_0x4e14[1145]]=1/6;mxPanningManager[_0x4e14[202]][_0x4e14[1140]]=10;mxPanningManager[_0x4e14[202]][_0x4e14[1144]]= !0;mxPanningManager[_0x4e14[202]][_0x4e14[467]]=0;function mxPopupMenu(_0xa132x2){this[_0x4e14[1033]]=_0xa132x2;null!=_0xa132x2&&this[_0x4e14[176]]();}mxPopupMenu[_0x4e14[202]]= new mxEventSource;mxPopupMenu[_0x4e14[202]][_0x4e14[196]]=mxPopupMenu;mxPopupMenu[_0x4e14[202]][_0x4e14[1149]]=mxClient[_0x4e14[88]]+_0x4e14[1150];mxPopupMenu[_0x4e14[202]][_0x4e14[931]]=10006;mxPopupMenu[_0x4e14[202]][_0x4e14[1033]]=null;mxPopupMenu[_0x4e14[202]][_0x4e14[1151]]= !1;mxPopupMenu[_0x4e14[202]][_0x4e14[984]]= !0;mxPopupMenu[_0x4e14[202]][_0x4e14[1152]]=0;mxPopupMenu[_0x4e14[202]][_0x4e14[1153]]= !1;mxPopupMenu[_0x4e14[202]][_0x4e14[1154]]= !1;mxPopupMenu[_0x4e14[202]][_0x4e14[1155]]= !0;mxPopupMenu[_0x4e14[202]][_0x4e14[176]]=function(){this[_0x4e14[116]]=document[_0x4e14[55]](_0x4e14[116]);this[_0x4e14[116]][_0x4e14[926]]=_0x4e14[1156];this[_0x4e14[120]]=document[_0x4e14[55]](_0x4e14[120]);this[_0x4e14[116]][_0x4e14[62]](this[_0x4e14[120]]);this[_0x4e14[485]]=document[_0x4e14[55]](_0x4e14[485]);this[_0x4e14[485]][_0x4e14[926]]=_0x4e14[1156];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[497];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[931]]=this[_0x4e14[931]];this[_0x4e14[485]][_0x4e14[62]](this[_0x4e14[116]]);mxEvent[_0x4e14[1157]](this[_0x4e14[485]]);};mxPopupMenu[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxPopupMenu[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxPopupMenu[_0x4e14[202]][_0x4e14[737]]=function(_0xa132x2){return _0xa132x2[_0x4e14[737]]()||this[_0x4e14[1151]]&&mxEvent[_0x4e14[1158]](_0xa132x2[_0x4e14[727]]())};mxPopupMenu[_0x4e14[202]][_0x4e14[1025]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x5=_0xa132x5||this;this[_0x4e14[1152]]++;_0xa132x5[_0x4e14[1159]]&&(_0xa132x5[_0x4e14[1160]]&&this[_0x4e14[1051]](_0xa132x5,!0),_0xa132x5[_0x4e14[1159]]= !1);_0xa132x5[_0x4e14[1160]]= !0;var _0xa132x12=document[_0x4e14[55]](_0x4e14[121]);_0xa132x12[_0x4e14[926]]=_0x4e14[1161];var _0xa132x13=document[_0x4e14[55]](_0x4e14[122]);_0xa132x13[_0x4e14[926]]=_0x4e14[1162];null!=_0xa132x3?(_0xa132x9=document[_0x4e14[55]](_0x4e14[466]),_0xa132x9[_0x4e14[390]]=_0xa132x3,_0xa132x13[_0x4e14[62]](_0xa132x9)):null!=_0xa132x9&&(_0xa132x3=document[_0x4e14[55]](_0x4e14[485]),_0xa132x3[_0x4e14[926]]=_0xa132x9,_0xa132x13[_0x4e14[62]](_0xa132x3));_0xa132x12[_0x4e14[62]](_0xa132x13);this[_0x4e14[1155]]&&(_0xa132x13=document[_0x4e14[55]](_0x4e14[122]),_0xa132x13[_0x4e14[926]]=_0x4e14[1161]+(null!=_0xa132xa&&!_0xa132xa?_0x4e14[1163]:_0x4e14[110]),mxUtils[_0x4e14[53]](_0xa132x13,_0xa132x2),_0xa132x13[_0x4e14[611]]=_0x4e14[361],_0xa132x12[_0x4e14[62]](_0xa132x13),_0xa132x2=document[_0x4e14[55]](_0x4e14[122]),_0xa132x2[_0x4e14[926]]=_0x4e14[1161]+(null!=_0xa132xa&&!_0xa132xa?_0x4e14[1163]:_0x4e14[110]),_0xa132x2[_0x4e14[124]][_0x4e14[1164]]=_0x4e14[1055],_0xa132x2[_0x4e14[124]][_0x4e14[1165]]=_0x4e14[699],_0xa132x12[_0x4e14[62]](_0xa132x2),null==_0xa132x5[_0x4e14[485]]&&this[_0x4e14[1166]](_0xa132x5));_0xa132x5[_0x4e14[120]][_0x4e14[62]](_0xa132x12);if(null==_0xa132xa||_0xa132xa){mxEvent[_0x4e14[759]](_0xa132x12,mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1167]]=_0xa132x12;_0xa132x5[_0x4e14[1168]]!=_0xa132x12&&_0xa132x5[_0x4e14[1168]]!=_0xa132x5&&(null!=_0xa132x5[_0x4e14[1168]]&&null!=_0xa132x5[_0x4e14[1168]][_0x4e14[485]][_0x4e14[265]]&&this[_0x4e14[1169]](_0xa132x5),null!=_0xa132x12[_0x4e14[485]]&&(this[_0x4e14[1170]](_0xa132x5,_0xa132x12),_0xa132x5[_0x4e14[1168]]=_0xa132x12));mxEvent[_0x4e14[722]](_0xa132x2);}),mxUtils[_0x4e14[885]](this,function(_0xa132x2){_0xa132x5[_0x4e14[1168]]!=_0xa132x12&&_0xa132x5[_0x4e14[1168]]!=_0xa132x5&&(null!=_0xa132x5[_0x4e14[1168]]&&null!=_0xa132x5[_0x4e14[1168]][_0x4e14[485]][_0x4e14[265]]&&this[_0x4e14[1169]](_0xa132x5),this[_0x4e14[1153]]&&null!=_0xa132x12[_0x4e14[485]]&&(this[_0x4e14[1170]](_0xa132x5,_0xa132x12),_0xa132x5[_0x4e14[1168]]=_0xa132x12));_0xa132x12[_0x4e14[926]]=_0x4e14[1171];}),mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1167]]==_0xa132x12&&(_0xa132x5[_0x4e14[1168]]!=_0xa132x12&&this[_0x4e14[1032]](),null!=_0xa132x4&&_0xa132x4(_0xa132x2));this[_0x4e14[1167]]=null;mxEvent[_0x4e14[722]](_0xa132x2);})),mxEvent[_0x4e14[169]](_0xa132x12,_0x4e14[1035],mxUtils[_0x4e14[885]](this,function(_0xa132x2){_0xa132x12[_0x4e14[926]]=_0x4e14[1161]}))};return _0xa132x12;};mxPopupMenu[_0x4e14[202]][_0x4e14[1166]]=function(_0xa132x2){_0xa132x2[_0x4e14[116]]=document[_0x4e14[55]](_0x4e14[116]);_0xa132x2[_0x4e14[116]][_0x4e14[926]]=_0x4e14[1156];_0xa132x2[_0x4e14[120]]=document[_0x4e14[55]](_0x4e14[120]);_0xa132x2[_0x4e14[116]][_0x4e14[62]](_0xa132x2[_0x4e14[120]]);_0xa132x2[_0x4e14[485]]=document[_0x4e14[55]](_0x4e14[485]);_0xa132x2[_0x4e14[485]][_0x4e14[926]]=_0x4e14[1156];_0xa132x2[_0x4e14[485]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x2[_0x4e14[485]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[497];_0xa132x2[_0x4e14[485]][_0x4e14[124]][_0x4e14[931]]=this[_0x4e14[931]];_0xa132x2[_0x4e14[485]][_0x4e14[62]](_0xa132x2[_0x4e14[116]]);var _0xa132x3=document[_0x4e14[55]](_0x4e14[466]);_0xa132x3[_0x4e14[57]](_0x4e14[390],this[_0x4e14[1149]]);td=_0xa132x2[_0x4e14[285]][_0x4e14[287]][_0x4e14[287]];td[_0x4e14[62]](_0xa132x3);};mxPopupMenu[_0x4e14[202]][_0x4e14[1170]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x3[_0x4e14[485]]){_0xa132x3[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0xa132x2[_0x4e14[485]][_0x4e14[358]]+_0xa132x3[_0x4e14[358]]+_0xa132x3[_0x4e14[359]]-1+_0x4e14[168];_0xa132x3[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=_0xa132x2[_0x4e14[485]][_0x4e14[362]]+_0xa132x3[_0x4e14[362]]+_0x4e14[168];document[_0x4e14[112]][_0x4e14[62]](_0xa132x3[_0x4e14[485]]);var _0xa132x4=parseInt(_0xa132x3[_0x4e14[485]][_0x4e14[358]]),_0xa132x5=parseInt(_0xa132x3[_0x4e14[485]][_0x4e14[359]]),_0xa132x9=document[_0x4e14[112]],_0xa132xa=document[_0x4e14[158]];if(_0xa132x4+_0xa132x5>(_0xa132x9[_0x4e14[360]]||_0xa132xa[_0x4e14[360]])+(_0xa132x9[_0x4e14[159]]||_0xa132xa[_0x4e14[159]])){_0xa132x3[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0xa132x2[_0x4e14[485]][_0x4e14[358]]-_0xa132x5+(mxClient[_0x4e14[80]]?6:-6)+_0x4e14[168]};mxUtils[_0x4e14[933]](_0xa132x3[_0x4e14[485]]);}};mxPopupMenu[_0x4e14[202]][_0x4e14[1051]]=function(_0xa132x2,_0xa132x3){_0xa132x2=_0xa132x2||this;if(this[_0x4e14[1154]]&& !_0xa132x3){_0xa132x2[_0x4e14[1159]]= !0}else {if(null!=_0xa132x2[_0x4e14[120]]){_0xa132x2[_0x4e14[1159]]= !1;var _0xa132x4=document[_0x4e14[55]](_0x4e14[121]),_0xa132x5=document[_0x4e14[55]](_0x4e14[122]);_0xa132x5[_0x4e14[926]]=_0x4e14[1162];_0xa132x5[_0x4e14[124]][_0x4e14[549]]=_0x4e14[1172];_0xa132x4[_0x4e14[62]](_0xa132x5);_0xa132x5=document[_0x4e14[55]](_0x4e14[122]);_0xa132x5[_0x4e14[124]][_0x4e14[549]]=_0x4e14[1172];_0xa132x5[_0x4e14[57]](_0x4e14[1173],_0x4e14[1174]);var _0xa132x9=document[_0x4e14[55]](_0x4e14[1054]);_0xa132x9[_0x4e14[57]](_0x4e14[803],_0x4e14[500]);_0xa132x5[_0x4e14[62]](_0xa132x9);_0xa132x4[_0x4e14[62]](_0xa132x5);_0xa132x2[_0x4e14[120]][_0x4e14[62]](_0xa132x4);}};};mxPopupMenu[_0x4e14[202]][_0x4e14[152]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=this[_0x4e14[485]]&&null!=this[_0x4e14[120]]&&null!=this[_0x4e14[1033]]){this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0xa132x2+_0x4e14[168];for(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=_0xa132x3+_0x4e14[168];null!=this[_0x4e14[120]][_0x4e14[285]];){mxEvent[_0x4e14[762]](this[_0x4e14[120]][_0x4e14[285]]),this[_0x4e14[120]][_0x4e14[266]](this[_0x4e14[120]][_0x4e14[285]])};this[_0x4e14[1152]]=0;this[_0x4e14[1033]](this,_0xa132x4,_0xa132x5);0<this[_0x4e14[1152]]&&(this[_0x4e14[1175]](),this[_0x4e14[746]]( new mxEventObject(mxEvent.SHOW)));}};mxPopupMenu[_0x4e14[202]][_0x4e14[1031]]=function(){return null!=this[_0x4e14[485]]&&this[_0x4e14[485]][_0x4e14[265]]==document[_0x4e14[112]]};mxPopupMenu[_0x4e14[202]][_0x4e14[1175]]=function(){9<=document[_0x4e14[5]]&&(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[347]]=_0x4e14[130]);document[_0x4e14[112]][_0x4e14[62]](this[_0x4e14[485]]);mxUtils[_0x4e14[933]](this[_0x4e14[485]]);};mxPopupMenu[_0x4e14[202]][_0x4e14[1032]]=function(){null!=this[_0x4e14[485]]&&(null!=this[_0x4e14[485]][_0x4e14[265]]&&this[_0x4e14[485]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[485]]),this[_0x4e14[1169]](this),this[_0x4e14[1160]]= !1)};mxPopupMenu[_0x4e14[202]][_0x4e14[1169]]=function(_0xa132x2){null!=_0xa132x2[_0x4e14[1168]]&&(this[_0x4e14[1169]](_0xa132x2[_0x4e14[1168]]),null!=_0xa132x2[_0x4e14[1168]][_0x4e14[485]][_0x4e14[265]]&&_0xa132x2[_0x4e14[1168]][_0x4e14[485]][_0x4e14[265]][_0x4e14[266]](_0xa132x2[_0x4e14[1168]][_0x4e14[485]]),_0xa132x2[_0x4e14[1168]]=null)};mxPopupMenu[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[485]]&&(mxEvent[_0x4e14[762]](this[_0x4e14[485]]),null!=this[_0x4e14[485]][_0x4e14[265]]&&this[_0x4e14[485]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[485]]),this[_0x4e14[485]]=null)};function mxAutoSaveManager(_0xa132x2){this[_0x4e14[1176]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x4){this[_0x4e14[994]]()&&this[_0x4e14[1177]](_0xa132x4[_0x4e14[720]](_0x4e14[1061])[_0x4e14[1065]])});this[_0x4e14[1178]](_0xa132x2);}mxAutoSaveManager[_0x4e14[202]]= new mxEventSource;mxAutoSaveManager[_0x4e14[202]][_0x4e14[196]]=mxAutoSaveManager;mxAutoSaveManager[_0x4e14[202]][_0x4e14[1179]]=null;mxAutoSaveManager[_0x4e14[202]][_0x4e14[1180]]=10;mxAutoSaveManager[_0x4e14[202]][_0x4e14[1181]]=2;mxAutoSaveManager[_0x4e14[202]][_0x4e14[1182]]=5;mxAutoSaveManager[_0x4e14[202]][_0x4e14[1183]]=0;mxAutoSaveManager[_0x4e14[202]][_0x4e14[1184]]=0;mxAutoSaveManager[_0x4e14[202]][_0x4e14[984]]= !0;mxAutoSaveManager[_0x4e14[202]][_0x4e14[1176]]=null;mxAutoSaveManager[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxAutoSaveManager[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxAutoSaveManager[_0x4e14[202]][_0x4e14[1178]]=function(_0xa132x2){null!=this[_0x4e14[1179]]&&this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[745]](this[_0x4e14[1176]]);this[_0x4e14[1179]]=_0xa132x2;null!=this[_0x4e14[1179]]&&this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[169]](mxEvent.CHANGE,this[_0x4e14[1176]]);};mxAutoSaveManager[_0x4e14[202]][_0x4e14[815]]=function(){};mxAutoSaveManager[_0x4e14[202]][_0x4e14[1177]]=function(_0xa132x2){_0xa132x2=(( new Date)[_0x4e14[178]]()-this[_0x4e14[1184]])/1E3;_0xa132x2>this[_0x4e14[1180]]||this[_0x4e14[1183]]>=this[_0x4e14[1182]]&&_0xa132x2>this[_0x4e14[1181]]?(this[_0x4e14[815]](),this[_0x4e14[862]]()):this[_0x4e14[1183]]++;};mxAutoSaveManager[_0x4e14[202]][_0x4e14[862]]=function(){this[_0x4e14[1184]]=( new Date)[_0x4e14[178]]();this[_0x4e14[1183]]=0;};mxAutoSaveManager[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1178]](null)};function mxAnimation(_0xa132x2){this[_0x4e14[1140]]=null!=_0xa132x2?_0xa132x2:20}mxAnimation[_0x4e14[202]]= new mxEventSource;mxAnimation[_0x4e14[202]][_0x4e14[196]]=mxAnimation;mxAnimation[_0x4e14[202]][_0x4e14[1140]]=null;mxAnimation[_0x4e14[202]][_0x4e14[1123]]=null;mxAnimation[_0x4e14[202]][_0x4e14[1185]]=function(){null==this[_0x4e14[1123]]&&(this[_0x4e14[1123]]=window[_0x4e14[1141]](mxUtils[_0x4e14[885]](this,this[_0x4e14[1186]]),this[_0x4e14[1140]]))};mxAnimation[_0x4e14[202]][_0x4e14[1186]]=function(){this[_0x4e14[746]]( new mxEventObject(mxEvent.EXECUTE))};mxAnimation[_0x4e14[202]][_0x4e14[1187]]=function(){null!=this[_0x4e14[1123]]&&(window[_0x4e14[1146]](this[_0x4e14[1123]]),this[_0x4e14[1123]]=null,this[_0x4e14[746]]( new mxEventObject(mxEvent.DONE)))};function mxMorphing(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxAnimation[_0x4e14[239]](this,_0xa132x5);this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[1188]]=null!=_0xa132x3?_0xa132x3:6;this[_0x4e14[1189]]=null!=_0xa132x4?_0xa132x4:1.5;}mxMorphing[_0x4e14[202]]= new mxAnimation;mxMorphing[_0x4e14[202]][_0x4e14[196]]=mxMorphing;mxMorphing[_0x4e14[202]][_0x4e14[1179]]=null;mxMorphing[_0x4e14[202]][_0x4e14[1188]]=null;mxMorphing[_0x4e14[202]][_0x4e14[1190]]=0;mxMorphing[_0x4e14[202]][_0x4e14[1189]]=null;mxMorphing[_0x4e14[202]][_0x4e14[895]]=null;mxMorphing[_0x4e14[202]][_0x4e14[1186]]=function(){var _0xa132x2= new mxCellStatePreview(this[_0x4e14[1179]]);if(null!=this[_0x4e14[895]]){for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[895]][_0x4e14[67]];_0xa132x3++){this[_0x4e14[1191]](cells[_0xa132x3],_0xa132x2,!1)}}else {this[_0x4e14[1191]](this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[501]](),_0xa132x2,!0)};this[_0x4e14[539]](_0xa132x2);(_0xa132x2[_0x4e14[1107]]()||this[_0x4e14[1190]]++ >=this[_0x4e14[1188]])&&this[_0x4e14[1187]]();};mxMorphing[_0x4e14[202]][_0x4e14[539]]=function(_0xa132x2){_0xa132x2[_0x4e14[539]]()};mxMorphing[_0x4e14[202]][_0x4e14[1191]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x2),_0xa132x9=null;if(null!=_0xa132x5&&(_0xa132x9=this[_0x4e14[1192]](_0xa132x5),this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1193]](_0xa132x2)&&(0!=_0xa132x9[_0x4e14[235]]||0!=_0xa132x9[_0x4e14[236]]))){var _0xa132xa=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[512]](),_0xa132x12=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[518]]();_0xa132x9[_0x4e14[235]]+=_0xa132xa[_0x4e14[235]]*_0xa132x12;_0xa132x9[_0x4e14[236]]+=_0xa132xa[_0x4e14[236]]*_0xa132x12;_0xa132x3[_0x4e14[1194]](_0xa132x5,-_0xa132x9[_0x4e14[235]]/this[_0x4e14[1189]],-_0xa132x9[_0x4e14[236]]/this[_0x4e14[1189]]);};if(_0xa132x4&&!this[_0x4e14[1195]](_0xa132x5,_0xa132x9)){_0xa132x5=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[262]](_0xa132x2);for(_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){this[_0x4e14[1191]](this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[263]](_0xa132x2,_0xa132x9),_0xa132x3,_0xa132x4)};};};mxMorphing[_0x4e14[202]][_0x4e14[1195]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x3&&(0!=_0xa132x3[_0x4e14[235]]||0!=_0xa132x3[_0x4e14[236]])};mxMorphing[_0x4e14[202]][_0x4e14[1192]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1196]](_0xa132x2[_0x4e14[246]]),_0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[512]](),_0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[518]]();_0xa132x2= new mxPoint(_0xa132x2[_0x4e14[235]]/_0xa132x5-_0xa132x4[_0x4e14[235]],_0xa132x2[_0x4e14[236]]/_0xa132x5-_0xa132x4[_0x4e14[236]]);return  new mxPoint((_0xa132x3[_0x4e14[235]]-_0xa132x2[_0x4e14[235]])*_0xa132x5,(_0xa132x3[_0x4e14[236]]-_0xa132x2[_0x4e14[236]])*_0xa132x5);};mxMorphing[_0x4e14[202]][_0x4e14[1196]]=function(_0xa132x2){var _0xa132x3=null;null!=_0xa132x2&&(_0xa132x3=this[_0x4e14[1196]](this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1197]](_0xa132x2)),_0xa132x2=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x2),null!=_0xa132x2&&(_0xa132x3[_0x4e14[235]]+=_0xa132x2[_0x4e14[235]],_0xa132x3[_0x4e14[236]]+=_0xa132x2[_0x4e14[236]]));null==_0xa132x3&&(_0xa132x3=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[512]](),_0xa132x3= new mxPoint(-_0xa132x3[_0x4e14[235]],-_0xa132x3[_0x4e14[236]]));return _0xa132x3;};function mxImageBundle(_0xa132x2){this[_0x4e14[1199]]=[];this[_0x4e14[1200]]=null!=_0xa132x2?_0xa132x2:!1;}mxImageBundle[_0x4e14[202]][_0x4e14[1199]]=null;mxImageBundle[_0x4e14[202]][_0x4e14[1199]]=null;mxImageBundle[_0x4e14[202]][_0x4e14[1201]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[1199]][_0xa132x2]={value:_0xa132x3,fallback:_0xa132x4}};mxImageBundle[_0x4e14[202]][_0x4e14[1202]]=function(_0xa132x2){var _0xa132x3=null;null!=_0xa132x2&&(_0xa132x2=this[_0x4e14[1199]][_0xa132x2],null!=_0xa132x2&&(_0xa132x3=this[_0x4e14[1200]]?_0xa132x2[_0x4e14[1203]]:_0xa132x2[_0x4e14[131]]));return _0xa132x3;};function mxImageExport(){}mxImageExport[_0x4e14[202]][_0x4e14[1204]]= !1;mxImageExport[_0x4e14[202]][_0x4e14[1205]]=function(_0xa132x2,_0xa132x3){null!=_0xa132x2&&(this[_0x4e14[1207]](_0xa132x2,_0xa132x3,this[_0x4e14[1206]]),this[_0x4e14[1204]]&&this[_0x4e14[1207]](_0xa132x2,_0xa132x3,this[_0x4e14[1208]]))};mxImageExport[_0x4e14[202]][_0x4e14[1207]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(null!=_0xa132x2){_0xa132x4(_0xa132x2,_0xa132x3);for(var _0xa132x5=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132x9=_0xa132x5[_0x4e14[251]][_0x4e14[262]](_0xa132x2[_0x4e14[246]]),_0xa132xa=0;_0xa132xa<_0xa132x9;_0xa132xa++){var _0xa132x12=_0xa132x5[_0x4e14[441]][_0x4e14[248]](_0xa132x5[_0x4e14[251]][_0x4e14[263]](_0xa132x2[_0x4e14[246]],_0xa132xa));this[_0x4e14[1207]](_0xa132x12,_0xa132x3,_0xa132x4);};}};mxImageExport[_0x4e14[202]][_0x4e14[1206]]=function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[253]] instanceof mxShape&&(_0xa132x3[_0x4e14[815]](),_0xa132x2[_0x4e14[253]][_0x4e14[1209]](_0xa132x3),_0xa132x3[_0x4e14[1210]]());null!=_0xa132x2[_0x4e14[963]]&&(_0xa132x3[_0x4e14[815]](),_0xa132x2[_0x4e14[963]][_0x4e14[1209]](_0xa132x3),_0xa132x3[_0x4e14[1210]]());};mxImageExport[_0x4e14[202]][_0x4e14[1208]]=function(_0xa132x2,_0xa132x3){null!=_0xa132x2[_0x4e14[1211]]&&_0xa132x2[_0x4e14[1211]][_0x4e14[209]](function(_0xa132x2,_0xa132x5){_0xa132x5 instanceof mxShape&&_0xa132x5[_0x4e14[1209]](_0xa132x3)})};function mxAbstractCanvas2D(){this[_0x4e14[1212]]=this[_0x4e14[1213]]();this[_0x4e14[862]]();}mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[724]]=null;mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1214]]=null;mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1215]]=null;mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1216]]= !0;mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1217]]=0;mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1218]]=0;mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1219]]=_0x4e14[1220];mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1221]]=_0x4e14[1222];mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1223]]=_0x4e14[1224];mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1225]]=_0x4e14[1226];mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1227]]=_0x4e14[1228];mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1229]]= !1;mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1213]]=function(){return  new mxUrlConverter};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[862]]=function(){this[_0x4e14[724]]=this[_0x4e14[1230]]();this[_0x4e14[1214]]=[];};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1230]]=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:_0x4e14[1231],lineCap:_0x4e14[1232],lineJoin:_0x4e14[1233],miterLimit:10,fontColor:_0x4e14[1234],fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants[_0x4e14[483]],fontFamily:mxConstants[_0x4e14[484]],fontStyle:0,shadow:!1,shadowColor:mxConstants[_0x4e14[1235]],shadowAlpha:mxConstants[_0x4e14[1236]],shadowDx:mxConstants[_0x4e14[1237]],shadowDy:mxConstants[_0x4e14[1238]],rotation:0,rotationCx:0,rotationCy:0}};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1239]]=function(_0xa132x2){return Math[_0x4e14[488]](parseFloat(_0xa132x2))};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1240]]=function(){if(null!=this[_0x4e14[1215]]&&(this[_0x4e14[1215]][_0x4e14[207]](arguments[0]),2<arguments[_0x4e14[67]])){for(var _0xa132x2=this[_0x4e14[724]],_0xa132x3=2;_0xa132x3<arguments[_0x4e14[67]];_0xa132x3+=2){this[_0x4e14[1217]]=arguments[_0xa132x3-1],this[_0x4e14[1218]]=arguments[_0xa132x3],this[_0x4e14[1215]][_0x4e14[207]](this[_0x4e14[1239]]((this[_0x4e14[1217]]+_0xa132x2[_0x4e14[1126]])*_0xa132x2[_0x4e14[255]])),this[_0x4e14[1215]][_0x4e14[207]](this[_0x4e14[1239]]((this[_0x4e14[1218]]+_0xa132x2[_0x4e14[1125]])*_0xa132x2[_0x4e14[255]]))}}};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1241]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x4*=Math[_0x4e14[424]]/180;return mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x2,_0xa132x3),Math[_0x4e14[426]](_0xa132x4),Math[_0x4e14[427]](_0xa132x4), new mxPoint(_0xa132x5,_0xa132x9));};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[815]]=function(){this[_0x4e14[1214]][_0x4e14[207]](this[_0x4e14[724]]);this[_0x4e14[724]]=mxUtils[_0x4e14[238]](this[_0x4e14[724]]);};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1210]]=function(){this[_0x4e14[724]]=this[_0x4e14[1214]][_0x4e14[1242]]()};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[255]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[255]]*=_0xa132x2;this[_0x4e14[724]][_0x4e14[610]]*=_0xa132x2;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[513]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[724]][_0x4e14[1126]]+=_0xa132x2;this[_0x4e14[724]][_0x4e14[1125]]+=_0xa132x3;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1243]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[1244]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1245]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);this[_0x4e14[724]][_0x4e14[604]]=_0xa132x2;this[_0x4e14[724]][_0x4e14[606]]=null;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1246]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){_0xa132x4=this[_0x4e14[724]];_0xa132x4[_0x4e14[604]]=_0xa132x2;_0xa132x4[_0x4e14[1247]]=null!=_0xa132x13?_0xa132x13:1;_0xa132x4[_0x4e14[606]]=_0xa132x3;_0xa132x4[_0x4e14[1248]]=null!=_0xa132x14?_0xa132x14:1;_0xa132x4[_0x4e14[607]]=_0xa132x12;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1249]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);this[_0x4e14[724]][_0x4e14[608]]=_0xa132x2;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1250]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[610]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1251]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[648]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1252]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[649]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1253]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[1254]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1255]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[1256]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1257]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[1258]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1259]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);this[_0x4e14[724]][_0x4e14[665]]=_0xa132x2;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1260]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);this[_0x4e14[724]][_0x4e14[1261]]=_0xa132x2;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1262]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);this[_0x4e14[724]][_0x4e14[1263]]=_0xa132x2;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1264]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[487]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1265]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[486]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1266]]=function(_0xa132x2){null==_0xa132x2&&(_0xa132x2=0);this[_0x4e14[724]][_0x4e14[666]]=_0xa132x2;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1267]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[639]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1268]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);this[_0x4e14[724]][_0x4e14[1269]]=_0xa132x2;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1270]]=function(_0xa132x2){this[_0x4e14[724]][_0x4e14[1271]]=_0xa132x2};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1272]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[724]][_0x4e14[1273]]=_0xa132x2;this[_0x4e14[724]][_0x4e14[1274]]=_0xa132x3;};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1275]]=function(){this[_0x4e14[1218]]=this[_0x4e14[1217]]=0;this[_0x4e14[1215]]=[];};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1276]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1240]](this[_0x4e14[1219]],_0xa132x2,_0xa132x3)};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1277]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1240]](this[_0x4e14[1221]],_0xa132x2,_0xa132x3)};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1278]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[1240]](this[_0x4e14[1223]],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5)};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1279]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[1240]](this[_0x4e14[1225]],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa)};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1280]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12){_0xa132x2=mxUtils[_0x4e14[1281]](this[_0x4e14[1217]],this[_0x4e14[1218]],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12);for(_0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3+=6){this[_0x4e14[1279]](_0xa132x2[_0xa132x3],_0xa132x2[_0xa132x3+1],_0xa132x2[_0xa132x3+2],_0xa132x2[_0xa132x3+3],_0xa132x2[_0xa132x3+4],_0xa132x2[_0xa132x3+5])};};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[268]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[1240]](this[_0x4e14[1227]])};mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1282]]=function(){};function mxXmlCanvas2D(_0xa132x2){mxAbstractCanvas2D[_0x4e14[239]](this);this[_0x4e14[813]]=_0xa132x2;this[_0x4e14[1283]]();}mxUtils[_0x4e14[1284]](mxXmlCanvas2D,mxAbstractCanvas2D);mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1285]]= !0;mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1286]]= !0;mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1283]]=function(){var _0xa132x2;_0xa132x2=this[_0x4e14[55]](_0x4e14[1287]);_0xa132x2[_0x4e14[57]](_0x4e14[1288],mxConstants.DEFAULT_FONTFAMILY);this[_0x4e14[813]][_0x4e14[62]](_0xa132x2);_0xa132x2=this[_0x4e14[55]](_0x4e14[1289]);_0xa132x2[_0x4e14[57]](_0x4e14[803],mxConstants.DEFAULT_FONTSIZE);this[_0x4e14[813]][_0x4e14[62]](_0xa132x2);_0xa132x2=this[_0x4e14[55]](_0x4e14[1290]);_0xa132x2[_0x4e14[57]](_0x4e14[352],mxConstants.SHADOWCOLOR);this[_0x4e14[813]][_0x4e14[62]](_0xa132x2);_0xa132x2=this[_0x4e14[55]](_0x4e14[1291]);_0xa132x2[_0x4e14[57]](_0x4e14[1244],mxConstants.SHADOW_OPACITY);this[_0x4e14[813]][_0x4e14[62]](_0xa132x2);_0xa132x2=this[_0x4e14[55]](_0x4e14[1292]);_0xa132x2[_0x4e14[57]](_0x4e14[1126],mxConstants.SHADOW_OFFSET_X);_0xa132x2[_0x4e14[57]](_0x4e14[1125],mxConstants.SHADOW_OFFSET_Y);this[_0x4e14[813]][_0x4e14[62]](_0xa132x2);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1239]]=function(_0xa132x2){return parseFloat(parseFloat(_0xa132x2)[_0x4e14[1293]](2))};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[55]]=function(_0xa132x2){return this[_0x4e14[813]][_0x4e14[295]][_0x4e14[55]](_0xa132x2)};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[815]]=function(){this[_0x4e14[1286]]&&mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[815]][_0x4e14[183]](this,arguments);this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[55]](_0x4e14[815]));};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1210]]=function(){this[_0x4e14[1286]]&&mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1210]][_0x4e14[183]](this,arguments);this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[55]](_0x4e14[1210]));};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[255]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[255]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1243]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[255]);_0xa132x3[_0x4e14[57]](_0x4e14[255],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[513]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[55]](_0x4e14[513]);_0xa132x4[_0x4e14[57]](_0x4e14[1126],this[_0x4e14[1239]](_0xa132x2));_0xa132x4[_0x4e14[57]](_0x4e14[1125],this[_0x4e14[1239]](_0xa132x3));this[_0x4e14[813]][_0x4e14[62]](_0xa132x4);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1294]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=this[_0x4e14[55]](_0x4e14[1294]);if(0!=_0xa132x2||_0xa132x3||_0xa132x4){_0xa132xa[_0x4e14[57]](_0x4e14[1295],this[_0x4e14[1239]](_0xa132x2)),_0xa132xa[_0x4e14[57]](_0x4e14[623],_0xa132x3?_0x4e14[500]:_0x4e14[468]),_0xa132xa[_0x4e14[57]](_0x4e14[624],_0xa132x4?_0x4e14[500]:_0x4e14[468]),_0xa132xa[_0x4e14[57]](_0x4e14[1296],this[_0x4e14[1239]](_0xa132x5)),_0xa132xa[_0x4e14[57]](_0x4e14[1297],this[_0x4e14[1239]](_0xa132x9)),this[_0x4e14[813]][_0x4e14[62]](_0xa132xa)};};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1243]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1244]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1243]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1244]);_0xa132x3[_0x4e14[57]](_0x4e14[1244],this[_0x4e14[1239]](_0xa132x2));this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1245]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[604]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1245]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1298]);_0xa132x3[_0x4e14[57]](_0x4e14[352],null!=_0xa132x2?_0xa132x2:mxConstants[_0x4e14[217]]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1246]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){if(null!=_0xa132x2&&null!=_0xa132x3){mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1246]][_0x4e14[183]](this,arguments);var _0xa132x15=this[_0x4e14[55]](_0x4e14[1299]);_0xa132x15[_0x4e14[57]](_0x4e14[1300],_0xa132x2);_0xa132x15[_0x4e14[57]](_0x4e14[1301],_0xa132x3);_0xa132x15[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x4));_0xa132x15[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x5));_0xa132x15[_0x4e14[57]](_0x4e14[1302],this[_0x4e14[1239]](_0xa132x9));_0xa132x15[_0x4e14[57]](_0x4e14[1303],this[_0x4e14[1239]](_0xa132xa));null!=_0xa132x12&&_0xa132x15[_0x4e14[57]](_0x4e14[663],_0xa132x12);null!=_0xa132x13&&_0xa132x15[_0x4e14[57]](_0x4e14[1304],_0xa132x13);null!=_0xa132x14&&_0xa132x15[_0x4e14[57]](_0x4e14[1305],_0xa132x14);this[_0x4e14[813]][_0x4e14[62]](_0xa132x15);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1249]]=function(_0xa132x2){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[608]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1249]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1306]);_0xa132x3[_0x4e14[57]](_0x4e14[352],null!=_0xa132x2?_0xa132x2:mxConstants[_0x4e14[217]]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1250]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[610]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1250]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1307]);_0xa132x3[_0x4e14[57]](_0x4e14[117],this[_0x4e14[1239]](_0xa132x2));this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1251]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[648]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1251]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[648]);_0xa132x3[_0x4e14[57]](_0x4e14[648],_0xa132x2?_0x4e14[500]:_0x4e14[468]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1252]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[649]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1252]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1308]);_0xa132x3[_0x4e14[57]](_0x4e14[1309],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1253]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1254]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1253]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1310]);_0xa132x3[_0x4e14[57]](_0x4e14[1311],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1255]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1256]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1255]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1312]);_0xa132x3[_0x4e14[57]](_0x4e14[234],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1257]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1258]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1257]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1313]);_0xa132x3[_0x4e14[57]](_0x4e14[1314],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1259]]=function(_0xa132x2){if(this[_0x4e14[1285]]){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[665]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1259]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1315]);_0xa132x3[_0x4e14[57]](_0x4e14[352],null!=_0xa132x2?_0xa132x2:mxConstants[_0x4e14[217]]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1260]]=function(_0xa132x2){if(this[_0x4e14[1285]]){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1261]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1260]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1316]);_0xa132x3[_0x4e14[57]](_0x4e14[352],null!=_0xa132x2?_0xa132x2:mxConstants[_0x4e14[217]]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1262]]=function(_0xa132x2){if(this[_0x4e14[1285]]){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1263]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1262]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1317]);_0xa132x3[_0x4e14[57]](_0x4e14[352],null!=_0xa132x2?_0xa132x2:mxConstants[_0x4e14[217]]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1264]]=function(_0xa132x2){if(this[_0x4e14[1285]]){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[487]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1264]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1289]);_0xa132x3[_0x4e14[57]](_0x4e14[803],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1265]]=function(_0xa132x2){if(this[_0x4e14[1285]]){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[486]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1265]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1287]);_0xa132x3[_0x4e14[57]](_0x4e14[1288],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1266]]=function(_0xa132x2){if(this[_0x4e14[1285]]){null==_0xa132x2&&(_0xa132x2=0);if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[666]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1266]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1318]);_0xa132x3[_0x4e14[57]](_0x4e14[124],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1267]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[639]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1267]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[639]);_0xa132x3[_0x4e14[57]](_0x4e14[984],_0xa132x2?_0x4e14[500]:_0x4e14[468]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1268]]=function(_0xa132x2){if(this[_0x4e14[1286]]){_0xa132x2==mxConstants[_0x4e14[217]]&&(_0xa132x2=null);if(this[_0x4e14[724]][_0x4e14[1269]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1268]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1290]);_0xa132x3[_0x4e14[57]](_0x4e14[352],null!=_0xa132x2?_0xa132x2:mxConstants[_0x4e14[217]]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1270]]=function(_0xa132x2){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1271]]==_0xa132x2){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1270]][_0x4e14[183]](this,arguments);};var _0xa132x3=this[_0x4e14[55]](_0x4e14[1291]);_0xa132x3[_0x4e14[57]](_0x4e14[1244],_0xa132x2);this[_0x4e14[813]][_0x4e14[62]](_0xa132x3);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1272]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1286]]){if(this[_0x4e14[724]][_0x4e14[1273]]==_0xa132x2&&this[_0x4e14[724]][_0x4e14[1274]]==_0xa132x3){return };mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1272]][_0x4e14[183]](this,arguments);};var _0xa132x4=this[_0x4e14[55]](_0x4e14[1292]);_0xa132x4[_0x4e14[57]](_0x4e14[1126],_0xa132x2);_0xa132x4[_0x4e14[57]](_0x4e14[1125],_0xa132x3);this[_0x4e14[813]][_0x4e14[62]](_0xa132x4);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1319]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=this[_0x4e14[55]](_0x4e14[1319]);_0xa132x9[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2));_0xa132x9[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3));_0xa132x9[_0x4e14[57]](_0x4e14[1302],this[_0x4e14[1239]](_0xa132x4));_0xa132x9[_0x4e14[57]](_0x4e14[1303],this[_0x4e14[1239]](_0xa132x5));this[_0x4e14[813]][_0x4e14[62]](_0xa132x9);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1320]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){var _0xa132x12=this[_0x4e14[55]](_0x4e14[1320]);_0xa132x12[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2));_0xa132x12[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3));_0xa132x12[_0x4e14[57]](_0x4e14[1302],this[_0x4e14[1239]](_0xa132x4));_0xa132x12[_0x4e14[57]](_0x4e14[1303],this[_0x4e14[1239]](_0xa132x5));_0xa132x12[_0x4e14[57]](_0x4e14[1126],this[_0x4e14[1239]](_0xa132x9));_0xa132x12[_0x4e14[57]](_0x4e14[1125],this[_0x4e14[1239]](_0xa132xa));this[_0x4e14[813]][_0x4e14[62]](_0xa132x12);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[680]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=this[_0x4e14[55]](_0x4e14[680]);_0xa132x9[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2));_0xa132x9[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3));_0xa132x9[_0x4e14[57]](_0x4e14[1302],this[_0x4e14[1239]](_0xa132x4));_0xa132x9[_0x4e14[57]](_0x4e14[1303],this[_0x4e14[1239]](_0xa132x5));this[_0x4e14[813]][_0x4e14[62]](_0xa132x9);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[618]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13){_0xa132x9=this[_0x4e14[1212]][_0x4e14[1321]](_0xa132x9);var _0xa132x14=this[_0x4e14[55]](_0x4e14[618]);_0xa132x14[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2));_0xa132x14[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3));_0xa132x14[_0x4e14[57]](_0x4e14[1302],this[_0x4e14[1239]](_0xa132x4));_0xa132x14[_0x4e14[57]](_0x4e14[1303],this[_0x4e14[1239]](_0xa132x5));_0xa132x14[_0x4e14[57]](_0x4e14[390],_0xa132x9);_0xa132x14[_0x4e14[57]](_0x4e14[1322],_0xa132xa?_0x4e14[500]:_0x4e14[468]);_0xa132x14[_0x4e14[57]](_0x4e14[623],_0xa132x12?_0x4e14[500]:_0x4e14[468]);_0xa132x14[_0x4e14[57]](_0x4e14[624],_0xa132x13?_0x4e14[500]:_0x4e14[468]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x14);};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1275]]=function(){this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[55]](_0x4e14[1275]));this[_0x4e14[1218]]=this[_0x4e14[1217]]=0;};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1276]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[55]](_0x4e14[582]);_0xa132x4[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2));_0xa132x4[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3));this[_0x4e14[813]][_0x4e14[62]](_0xa132x4);this[_0x4e14[1217]]=_0xa132x2;this[_0x4e14[1218]]=_0xa132x3;};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1277]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[55]](_0x4e14[683]);_0xa132x4[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2));_0xa132x4[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3));this[_0x4e14[813]][_0x4e14[62]](_0xa132x4);this[_0x4e14[1217]]=_0xa132x2;this[_0x4e14[1218]]=_0xa132x3;};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1278]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=this[_0x4e14[55]](_0x4e14[1323]);_0xa132x9[_0x4e14[57]](_0x4e14[1324],this[_0x4e14[1239]](_0xa132x2));_0xa132x9[_0x4e14[57]](_0x4e14[1325],this[_0x4e14[1239]](_0xa132x3));_0xa132x9[_0x4e14[57]](_0x4e14[1326],this[_0x4e14[1239]](_0xa132x4));_0xa132x9[_0x4e14[57]](_0x4e14[1327],this[_0x4e14[1239]](_0xa132x5));this[_0x4e14[813]][_0x4e14[62]](_0xa132x9);this[_0x4e14[1217]]=_0xa132x4;this[_0x4e14[1218]]=_0xa132x5;};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1279]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){var _0xa132x12=this[_0x4e14[55]](_0x4e14[1328]);_0xa132x12[_0x4e14[57]](_0x4e14[1324],this[_0x4e14[1239]](_0xa132x2));_0xa132x12[_0x4e14[57]](_0x4e14[1325],this[_0x4e14[1239]](_0xa132x3));_0xa132x12[_0x4e14[57]](_0x4e14[1326],this[_0x4e14[1239]](_0xa132x4));_0xa132x12[_0x4e14[57]](_0x4e14[1327],this[_0x4e14[1239]](_0xa132x5));_0xa132x12[_0x4e14[57]](_0x4e14[1329],this[_0x4e14[1239]](_0xa132x9));_0xa132x12[_0x4e14[57]](_0x4e14[1330],this[_0x4e14[1239]](_0xa132xa));this[_0x4e14[813]][_0x4e14[62]](_0xa132x12);this[_0x4e14[1217]]=_0xa132x9;this[_0x4e14[1218]]=_0xa132xa;};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[268]]=function(){this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[55]](_0x4e14[268]))};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[963]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){if(this[_0x4e14[1285]]&&null!=_0xa132x9){mxUtils[_0x4e14[1331]](_0xa132x9)&&(_0xa132x9=mxUtils[_0x4e14[532]](_0xa132x9));var _0xa132x18=this[_0x4e14[55]](_0x4e14[963]);_0xa132x18[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2));_0xa132x18[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3));_0xa132x18[_0x4e14[57]](_0x4e14[1302],this[_0x4e14[1239]](_0xa132x4));_0xa132x18[_0x4e14[57]](_0x4e14[1303],this[_0x4e14[1239]](_0xa132x5));_0xa132x18[_0x4e14[57]](_0x4e14[1332],_0xa132x9);null!=_0xa132xa&&_0xa132x18[_0x4e14[57]](_0x4e14[611],_0xa132xa);null!=_0xa132x12&&_0xa132x18[_0x4e14[57]](_0x4e14[552],_0xa132x12);_0xa132x18[_0x4e14[57]](_0x4e14[1333],_0xa132x13?_0x4e14[500]:_0x4e14[468]);null==_0xa132x14&&(_0xa132x14=_0x4e14[110]);_0xa132x18[_0x4e14[57]](_0x4e14[1239],_0xa132x14);null!=_0xa132x15&&_0xa132x18[_0x4e14[57]](_0x4e14[1334],_0xa132x15?_0x4e14[500]:_0x4e14[468]);null!=_0xa132x16&&_0xa132x18[_0x4e14[57]](_0x4e14[1335],_0xa132x16?_0x4e14[500]:_0x4e14[468]);null!=_0xa132x17&&_0xa132x18[_0x4e14[57]](_0x4e14[603],_0xa132x17);this[_0x4e14[813]][_0x4e14[62]](_0xa132x18);}};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1336]]=function(){this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[55]](_0x4e14[1336]))};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1334]]=function(){this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[55]](_0x4e14[1334]))};mxXmlCanvas2D[_0x4e14[202]][_0x4e14[1337]]=function(){this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[55]](_0x4e14[1338]))};function mxSvgCanvas2D(_0xa132x2,_0xa132x3){mxAbstractCanvas2D[_0x4e14[239]](this);this[_0x4e14[813]]=_0xa132x2;this[_0x4e14[1339]]=[];this[_0x4e14[1340]]=null;this[_0x4e14[1341]]=null!=_0xa132x3?_0xa132x3:!1;var _0xa132x4=null;if(_0xa132x2[_0x4e14[295]]!=document){for(_0xa132x4=_0xa132x2;null!=_0xa132x4&&_0x4e14[571]!=_0xa132x4[_0x4e14[301]];){_0xa132x4=_0xa132x4[_0x4e14[265]]}};null!=_0xa132x4&&(0<_0xa132x4[_0x4e14[64]](_0x4e14[1340])[_0x4e14[67]]&&(this[_0x4e14[1340]]=_0xa132x4[_0x4e14[64]](_0x4e14[1340])[0]),null==this[_0x4e14[1340]]&&(this[_0x4e14[1340]]=this[_0x4e14[55]](_0x4e14[1340]),null!=_0xa132x4[_0x4e14[285]]?_0xa132x4[_0x4e14[950]](this[_0x4e14[1340]],_0xa132x4[_0x4e14[285]]):_0xa132x4[_0x4e14[62]](this[_0x4e14[1340]])),this[_0x4e14[1341]]&&this[_0x4e14[1340]][_0x4e14[62]](this[_0x4e14[1342]]()));}mxUtils[_0x4e14[1284]](mxSvgCanvas2D,mxAbstractCanvas2D);mxSvgCanvas2D[_0x4e14[202]][_0x4e14[252]]=null;mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1343]]= !0;mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1285]]= !0;mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1344]]= !0;mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1345]]=0;mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1346]]=0;mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1347]]= !1;mxSvgCanvas2D[_0x4e14[202]][_0x4e14[862]]=function(){mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[862]][_0x4e14[183]](this,arguments);this[_0x4e14[1339]]=[];};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1342]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[55]](_0x4e14[124]);_0xa132x2[_0x4e14[57]](_0x4e14[60],_0x4e14[61]);mxUtils[_0x4e14[53]](_0xa132x2,_0x4e14[1348]+mxConstants[_0x4e14[484]]+_0x4e14[1349]+mxConstants[_0x4e14[483]]+_0x4e14[1350]);return _0xa132x2;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[55]]=function(_0xa132x2,_0xa132x3){if(null!=this[_0x4e14[813]][_0x4e14[295]][_0x4e14[509]]){return this[_0x4e14[813]][_0x4e14[295]][_0x4e14[509]](_0xa132x3||mxConstants[_0x4e14[1351]],_0xa132x2)};var _0xa132x4=this[_0x4e14[813]][_0x4e14[295]][_0x4e14[55]](_0xa132x2);null!=_0xa132x3&&_0xa132x4[_0x4e14[57]](_0x4e14[1352],_0xa132x3);return _0xa132x4;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1353]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0x4e14[198]==_0xa132x2[_0x4e14[225]](0)&&(_0xa132x2=_0xa132x2[_0x4e14[85]](1));_0x4e14[198]==_0xa132x3[_0x4e14[225]](0)&&(_0xa132x3=_0xa132x3[_0x4e14[85]](1));_0xa132x2=_0xa132x2[_0x4e14[216]]()+_0x4e14[213]+_0xa132x4;_0xa132x3=_0xa132x3[_0x4e14[216]]()+_0x4e14[213]+_0xa132x5;_0xa132x4=null;null==_0xa132x9||_0xa132x9==mxConstants[_0x4e14[1354]]?_0xa132x4=_0x4e14[1355]:_0xa132x9==mxConstants[_0x4e14[1356]]?_0xa132x4=_0x4e14[1357]:(_0xa132x5=_0xa132x2,_0xa132x2=_0xa132x3,_0xa132x3=_0xa132x5,_0xa132x9==mxConstants[_0x4e14[1358]]?_0xa132x4=_0x4e14[1355]:_0xa132x9==mxConstants[_0x4e14[1359]]&&(_0xa132x4=_0x4e14[1357]));return _0x4e14[1360]+_0xa132x2+_0x4e14[213]+_0xa132x3+_0x4e14[213]+_0xa132x4;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1361]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=this[_0x4e14[1353]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),_0xa132x12=this[_0x4e14[1339]][_0xa132xa];if(null==_0xa132x12){var _0xa132x13=this[_0x4e14[813]][_0x4e14[538]],_0xa132x14=0,_0xa132x15=_0xa132xa+_0x4e14[213]+_0xa132x14;if(null!=_0xa132x13){for(_0xa132x12=_0xa132x13[_0x4e14[295]][_0x4e14[1362]](_0xa132x15);null!=_0xa132x12&&_0xa132x12[_0x4e14[538]]!=_0xa132x13;){_0xa132x15=_0xa132xa+_0x4e14[213]+_0xa132x14++,_0xa132x12=_0xa132x13[_0x4e14[295]][_0x4e14[1362]](_0xa132x15)}}else {_0xa132x15=_0x4e14[1363]+++this[_0x4e14[1346]]};null==_0xa132x12&&(_0xa132x12=this[_0x4e14[1364]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),_0xa132x12[_0x4e14[57]](_0x4e14[1363],_0xa132x15),null!=this[_0x4e14[1340]]?this[_0x4e14[1340]][_0x4e14[62]](_0xa132x12):_0xa132x13[_0x4e14[62]](_0xa132x12));this[_0x4e14[1339]][_0xa132xa]=_0xa132x12;};return _0xa132x12[_0x4e14[284]](_0x4e14[1363]);};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1364]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=this[_0x4e14[55]](_0x4e14[1365]);_0xa132xa[_0x4e14[57]](_0x4e14[1324],_0x4e14[1366]);_0xa132xa[_0x4e14[57]](_0x4e14[1325],_0x4e14[1366]);_0xa132xa[_0x4e14[57]](_0x4e14[1326],_0x4e14[1366]);_0xa132xa[_0x4e14[57]](_0x4e14[1327],_0x4e14[1366]);null==_0xa132x9||_0xa132x9==mxConstants[_0x4e14[1354]]?_0xa132xa[_0x4e14[57]](_0x4e14[1327],_0x4e14[118]):_0xa132x9==mxConstants[_0x4e14[1356]]?_0xa132xa[_0x4e14[57]](_0x4e14[1326],_0x4e14[118]):_0xa132x9==mxConstants[_0x4e14[1358]]?_0xa132xa[_0x4e14[57]](_0x4e14[1325],_0x4e14[118]):_0xa132x9==mxConstants[_0x4e14[1359]]&&_0xa132xa[_0x4e14[57]](_0x4e14[1324],_0x4e14[118]);_0xa132x4=1>_0xa132x4?_0x4e14[1367]+_0xa132x4:_0x4e14[110];_0xa132x9=this[_0x4e14[55]](_0x4e14[1076]);_0xa132x9[_0x4e14[57]](_0x4e14[1368],_0x4e14[1366]);_0xa132x9[_0x4e14[57]](_0x4e14[124],_0x4e14[1369]+_0xa132x2+_0xa132x4);_0xa132xa[_0x4e14[62]](_0xa132x9);_0xa132x4=1>_0xa132x5?_0x4e14[1367]+_0xa132x5:_0x4e14[110];_0xa132x9=this[_0x4e14[55]](_0x4e14[1076]);_0xa132x9[_0x4e14[57]](_0x4e14[1368],_0x4e14[118]);_0xa132x9[_0x4e14[57]](_0x4e14[124],_0x4e14[1369]+_0xa132x3+_0xa132x4);_0xa132xa[_0x4e14[62]](_0xa132x9);return _0xa132xa;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1370]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[252]],_0xa132x5=this[_0x4e14[724]];if(null!=_0xa132x4){if(_0x4e14[1215]==_0xa132x4[_0x4e14[301]]){if(null!=this[_0x4e14[1215]]&&0<this[_0x4e14[1215]][_0x4e14[67]]){_0xa132x4[_0x4e14[57]](_0x4e14[1371],this[_0x4e14[1215]][_0x4e14[234]](_0x4e14[185]))}else {return }};_0xa132x2&&null!=_0xa132x5[_0x4e14[604]]?this[_0x4e14[1372]]():this[_0x4e14[1341]]||(_0x4e14[680]==_0xa132x4[_0x4e14[301]]&&mxClient[_0x4e14[133]]&&!mxClient[_0x4e14[76]]&&!mxClient[_0x4e14[75]]?_0xa132x4[_0x4e14[57]](_0x4e14[1334],_0x4e14[1373]):_0xa132x4[_0x4e14[57]](_0x4e14[1334],_0x4e14[130]),_0xa132x2= !1);_0xa132x3&&null!=_0xa132x5[_0x4e14[608]]?this[_0x4e14[1374]]():this[_0x4e14[1341]]||_0xa132x4[_0x4e14[57]](_0x4e14[1336],_0x4e14[130]);null!=_0xa132x5[_0x4e14[535]]&&0<_0xa132x5[_0x4e14[535]][_0x4e14[67]]&&_0xa132x4[_0x4e14[57]](_0x4e14[535],_0xa132x5[_0x4e14[535]]);_0xa132x5[_0x4e14[639]]&&this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[1375]](_0xa132x4));0<this[_0x4e14[1345]]&&!_0xa132x2&&this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[1376]](_0xa132x4));this[_0x4e14[1229]]&&(_0x4e14[1215]!=_0xa132x4[_0x4e14[301]]||this[_0x4e14[1215]][this[_0x4e14[1215]][_0x4e14[67]]-1]==this[_0x4e14[1227]])&&_0xa132x4[_0x4e14[57]](_0x4e14[1377],_0x4e14[1378]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x4);};};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1372]]=function(){var _0xa132x2=this[_0x4e14[724]];1>_0xa132x2[_0x4e14[1244]]&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1379],_0xa132x2[_0x4e14[1244]]);null!=_0xa132x2[_0x4e14[604]]&&(null!=_0xa132x2[_0x4e14[606]]?(_0xa132x2=this[_0x4e14[1361]](_0xa132x2[_0x4e14[604]],_0xa132x2[_0x4e14[606]],_0xa132x2[_0x4e14[1247]],_0xa132x2[_0x4e14[1248]],_0xa132x2[_0x4e14[607]]),this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1334],_0x4e14[1380]+_0xa132x2+_0x4e14[460])):this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1334],_0xa132x2[_0x4e14[604]][_0x4e14[216]]()));};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1374]]=function(){var _0xa132x2=this[_0x4e14[724]];this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1336],_0xa132x2[_0x4e14[608]][_0x4e14[216]]());1>_0xa132x2[_0x4e14[1244]]&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1381],_0xa132x2[_0x4e14[1244]]);var _0xa132x3=Math[_0x4e14[160]](1,this[_0x4e14[1239]](_0xa132x2[_0x4e14[610]]*_0xa132x2[_0x4e14[255]]));1!=_0xa132x3&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1382],_0xa132x3);_0x4e14[1215]==this[_0x4e14[252]][_0x4e14[301]]&&this[_0x4e14[1383]]();_0xa132x2[_0x4e14[648]]&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1384],this[_0x4e14[1385]](_0xa132x3));};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1383]]=function(){var _0xa132x2=this[_0x4e14[724]];null!=_0xa132x2[_0x4e14[1256]]&&_0x4e14[1233]!=_0xa132x2[_0x4e14[1256]]&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1386],_0xa132x2[_0x4e14[1256]]);if(null!=_0xa132x2[_0x4e14[1254]]){var _0xa132x3=_0xa132x2[_0x4e14[1254]];_0x4e14[1232]==_0xa132x3&&(_0xa132x3=_0x4e14[1387]);_0x4e14[1387]!=_0xa132x3&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1388],_0xa132x3);};null!=_0xa132x2[_0x4e14[1258]]&&(!this[_0x4e14[1341]]||10!=_0xa132x2[_0x4e14[1258]])&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1389],_0xa132x2[_0x4e14[1258]]);};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1385]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[724]][_0x4e14[649]][_0x4e14[224]](_0x4e14[185]),_0xa132x4=[];if(0<_0xa132x3[_0x4e14[67]]){for(var _0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){_0xa132x4[_0xa132x5]=Number(_0xa132x3[_0xa132x5])*_0xa132x2}};return _0xa132x4[_0x4e14[234]](_0x4e14[185]);};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1376]]=function(_0xa132x2){_0xa132x2=_0xa132x2[_0x4e14[511]](!0);var _0xa132x3=parseFloat(_0xa132x2[_0x4e14[284]](_0x4e14[1382])||1)+this[_0x4e14[1345]];_0xa132x2[_0x4e14[57]](_0x4e14[1377],_0x4e14[1336]);_0xa132x2[_0x4e14[57]](_0x4e14[187],_0x4e14[188]);_0xa132x2[_0x4e14[1390]](_0x4e14[1384]);_0xa132x2[_0x4e14[57]](_0x4e14[1382],_0xa132x3);_0xa132x2[_0x4e14[57]](_0x4e14[1334],_0x4e14[130]);_0xa132x2[_0x4e14[57]](_0x4e14[1336],mxClient[_0x4e14[71]]?_0x4e14[130]:_0x4e14[1391]);return _0xa132x2;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1375]]=function(_0xa132x2){_0xa132x2=_0xa132x2[_0x4e14[511]](!0);var _0xa132x3=this[_0x4e14[724]];_0x4e14[130]!=_0xa132x2[_0x4e14[284]](_0x4e14[1334])&&_0xa132x2[_0x4e14[57]](_0x4e14[1334],_0xa132x3[_0x4e14[1269]]);_0x4e14[130]!=_0xa132x2[_0x4e14[284]](_0x4e14[1336])&&_0xa132x2[_0x4e14[57]](_0x4e14[1336],_0xa132x3[_0x4e14[1269]]);_0xa132x2[_0x4e14[57]](_0x4e14[535],_0x4e14[536]+this[_0x4e14[1239]](_0xa132x3[_0x4e14[1273]]*_0xa132x3[_0x4e14[255]])+_0x4e14[537]+this[_0x4e14[1239]](_0xa132x3[_0x4e14[1274]]*_0xa132x3[_0x4e14[255]])+_0x4e14[460]+(_0xa132x3[_0x4e14[535]]||_0x4e14[110]));_0xa132x2[_0x4e14[57]](_0x4e14[461],_0xa132x3[_0x4e14[1271]]);return _0xa132x2;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1294]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(0!=_0xa132x2||_0xa132x3||_0xa132x4){var _0xa132xa=this[_0x4e14[724]];_0xa132x5+=_0xa132xa[_0x4e14[1126]];_0xa132x9+=_0xa132xa[_0x4e14[1125]];_0xa132x5*=_0xa132xa[_0x4e14[255]];_0xa132x9*=_0xa132xa[_0x4e14[255]];_0xa132xa[_0x4e14[535]]=_0xa132xa[_0x4e14[535]]||_0x4e14[110];if(_0xa132x3&&_0xa132x4){_0xa132x2+=180}else {if(_0xa132x3^_0xa132x4){var _0xa132x12=_0xa132x3?_0xa132x5:0,_0xa132x13=_0xa132x3?-1:1,_0xa132x14=_0xa132x4?_0xa132x9:0,_0xa132x15=_0xa132x4?-1:1;_0xa132xa[_0x4e14[535]]+=_0x4e14[536]+this[_0x4e14[1239]](_0xa132x12)+_0x4e14[537]+this[_0x4e14[1239]](_0xa132x14)+_0x4e14[1392]+this[_0x4e14[1239]](_0xa132x13)+_0x4e14[537]+this[_0x4e14[1239]](_0xa132x15)+_0x4e14[1393]+this[_0x4e14[1239]](-_0xa132x12)+_0x4e14[537]+this[_0x4e14[1239]](-_0xa132x14)+_0x4e14[460];}};if(_0xa132x3?!_0xa132x4:_0xa132x4){_0xa132x2*= -1};0!=_0xa132x2&&(_0xa132xa[_0x4e14[535]]+=_0x4e14[1394]+this[_0x4e14[1239]](_0xa132x2)+_0x4e14[537]+this[_0x4e14[1239]](_0xa132x5)+_0x4e14[537]+this[_0x4e14[1239]](_0xa132x9)+_0x4e14[460]);_0xa132xa[_0x4e14[603]]+=_0xa132x2;_0xa132xa[_0x4e14[1395]]=_0xa132x5;_0xa132xa[_0x4e14[1396]]=_0xa132x9;}};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1275]]=function(){mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1275]][_0x4e14[183]](this,arguments);this[_0x4e14[252]]=this[_0x4e14[55]](_0x4e14[1215]);};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1319]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=this[_0x4e14[724]],_0xa132xa=this[_0x4e14[55]](_0x4e14[1319]);_0xa132xa[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]]((_0xa132x2+_0xa132x9[_0x4e14[1126]])*_0xa132x9[_0x4e14[255]]));_0xa132xa[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]]((_0xa132x3+_0xa132x9[_0x4e14[1125]])*_0xa132x9[_0x4e14[255]]));_0xa132xa[_0x4e14[57]](_0x4e14[117],this[_0x4e14[1239]](_0xa132x4*_0xa132x9[_0x4e14[255]]));_0xa132xa[_0x4e14[57]](_0x4e14[119],this[_0x4e14[1239]](_0xa132x5*_0xa132x9[_0x4e14[255]]));this[_0x4e14[252]]=_0xa132xa;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1320]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[1319]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5);0<_0xa132x9&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1397],this[_0x4e14[1239]](_0xa132x9*this[_0x4e14[724]][_0x4e14[255]]));0<_0xa132xa&&this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1398],this[_0x4e14[1239]](_0xa132xa*this[_0x4e14[724]][_0x4e14[255]]));};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[680]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=this[_0x4e14[724]],_0xa132xa=this[_0x4e14[55]](_0x4e14[680]);_0xa132xa[_0x4e14[57]](_0x4e14[1296],Math[_0x4e14[488]]((_0xa132x2+_0xa132x4/2+_0xa132x9[_0x4e14[1126]])*_0xa132x9[_0x4e14[255]]));_0xa132xa[_0x4e14[57]](_0x4e14[1297],Math[_0x4e14[488]]((_0xa132x3+_0xa132x5/2+_0xa132x9[_0x4e14[1125]])*_0xa132x9[_0x4e14[255]]));_0xa132xa[_0x4e14[57]](_0x4e14[1397],_0xa132x4/2*_0xa132x9[_0x4e14[255]]);_0xa132xa[_0x4e14[57]](_0x4e14[1398],_0xa132x5/2*_0xa132x9[_0x4e14[255]]);this[_0x4e14[252]]=_0xa132xa;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[618]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13){_0xa132x9=this[_0x4e14[1212]][_0x4e14[1321]](_0xa132x9);_0xa132xa=null!=_0xa132xa?_0xa132xa:!0;_0xa132x12=null!=_0xa132x12?_0xa132x12:!1;_0xa132x13=null!=_0xa132x13?_0xa132x13:!1;var _0xa132x14=this[_0x4e14[724]];_0xa132x2+=_0xa132x14[_0x4e14[1126]];_0xa132x3+=_0xa132x14[_0x4e14[1125]];var _0xa132x15=this[_0x4e14[55]](_0x4e14[618]);_0xa132x15[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2*_0xa132x14[_0x4e14[255]]));_0xa132x15[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3*_0xa132x14[_0x4e14[255]]));_0xa132x15[_0x4e14[57]](_0x4e14[117],this[_0x4e14[1239]](_0xa132x4*_0xa132x14[_0x4e14[255]]));_0xa132x15[_0x4e14[57]](_0x4e14[119],this[_0x4e14[1239]](_0xa132x5*_0xa132x14[_0x4e14[255]]));null==_0xa132x15[_0x4e14[1399]]?_0xa132x15[_0x4e14[57]](_0x4e14[1400],_0xa132x9):_0xa132x15[_0x4e14[1399]](mxConstants.NS_XLINK,_0x4e14[44],_0xa132x9);_0xa132xa||_0xa132x15[_0x4e14[57]](_0x4e14[1401],_0x4e14[130]);1>_0xa132x14[_0x4e14[1244]]&&_0xa132x15[_0x4e14[57]](_0x4e14[461],_0xa132x14[_0x4e14[1244]]);_0xa132x9=this[_0x4e14[724]][_0x4e14[535]]||_0x4e14[110];if(_0xa132x12||_0xa132x13){var _0xa132x16=_0xa132xa=1,_0xa132x17=0,_0xa132x18=0;_0xa132x12&&(_0xa132xa= -1,_0xa132x17=-_0xa132x4-2*_0xa132x2);_0xa132x13&&(_0xa132x16= -1,_0xa132x18=-_0xa132x5-2*_0xa132x3);_0xa132x9+=_0x4e14[1402]+_0xa132xa+_0x4e14[537]+_0xa132x16+_0x4e14[1393]+_0xa132x17+_0x4e14[537]+_0xa132x18+_0x4e14[460];};0<_0xa132x9[_0x4e14[67]]&&_0xa132x15[_0x4e14[57]](_0x4e14[535],_0xa132x9);this[_0x4e14[813]][_0x4e14[62]](_0xa132x15);this[_0x4e14[1347]]&&(_0xa132x15[_0x4e14[57]](_0x4e14[124],_0x4e14[1403]),_0xa132x15=this[_0x4e14[55]](_0x4e14[1319]),_0xa132x15[_0x4e14[57]](_0x4e14[187],_0x4e14[188]),_0xa132x15[_0x4e14[57]](_0x4e14[1377],_0x4e14[1334]),_0xa132x15[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2*_0xa132x14[_0x4e14[255]])),_0xa132x15[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x3*_0xa132x14[_0x4e14[255]])),_0xa132x15[_0x4e14[57]](_0x4e14[117],this[_0x4e14[1239]](_0xa132x4*_0xa132x14[_0x4e14[255]])),_0xa132x15[_0x4e14[57]](_0x4e14[119],this[_0x4e14[1239]](_0xa132x5*_0xa132x14[_0x4e14[255]])),this[_0x4e14[813]][_0x4e14[62]](_0xa132x15));};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1404]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x4=this[_0x4e14[724]];_0xa132x5=_0x4e14[1405]+Math[_0x4e14[488]](_0xa132x4[_0x4e14[487]])+_0x4e14[1406]+_0xa132x4[_0x4e14[486]]+_0x4e14[1407]+_0xa132x4[_0x4e14[665]]+_0x4e14[1408]+Math[_0x4e14[488]](_0xa132x4[_0x4e14[487]]*mxConstants[_0x4e14[490]])+_0x4e14[1409]+_0xa132x5;(_0xa132x4[_0x4e14[666]]&mxConstants[_0x4e14[1410]])==mxConstants[_0x4e14[1410]]&&(_0xa132x5+=_0x4e14[1411]);(_0xa132x4[_0x4e14[666]]&mxConstants[_0x4e14[1412]])==mxConstants[_0x4e14[1412]]&&(_0xa132x5+=_0x4e14[1413]);(_0xa132x4[_0x4e14[666]]&mxConstants[_0x4e14[1414]])==mxConstants[_0x4e14[1414]]&&(_0xa132x5+=_0x4e14[1415]);_0xa132x3==mxConstants[_0x4e14[479]]?_0xa132x5+=_0x4e14[1416]:_0xa132x3==mxConstants[_0x4e14[480]]&&(_0xa132x5+=_0x4e14[1417]);_0xa132x3=_0x4e14[110];null!=_0xa132x4[_0x4e14[1261]]&&(_0xa132x3+=_0x4e14[1418]+_0xa132x4[_0x4e14[1261]]+_0x4e14[471]);null!=_0xa132x4[_0x4e14[1263]]&&(_0xa132x3+=_0x4e14[1419]+_0xa132x4[_0x4e14[1263]]+_0x4e14[471]);mxUtils[_0x4e14[1331]](_0xa132x2)||(_0xa132x4=document[_0x4e14[55]](_0x4e14[126]),_0xa132x4[_0x4e14[339]]=_0xa132x2[_0x4e14[230]](/&lt;/g,_0x4e14[1421])[_0x4e14[230]](/&gt;/g,_0x4e14[1420])[_0x4e14[230]](/</g,_0x4e14[334])[_0x4e14[230]](/>/g,_0x4e14[335]),_0xa132x2=_0xa132x4[_0x4e14[131]],_0xa132x9?_0xa132x5+=_0xa132x3:0<_0xa132x3[_0x4e14[67]]&&(_0xa132x2=_0x4e14[1422]+_0xa132x3+_0x4e14[1423]+_0xa132x2+_0x4e14[1424]));if(!mxClient[_0x4e14[80]]&&document[_0x4e14[509]]){return _0xa132x9=document[_0x4e14[509]](_0x4e14[577],_0x4e14[485]),_0xa132x9[_0x4e14[57]](_0x4e14[124],_0xa132x5),mxUtils[_0x4e14[1331]](_0xa132x2)?this[_0x4e14[813]][_0x4e14[295]]!=document?_0xa132x9[_0x4e14[62]](_0xa132x2[_0x4e14[511]](!0)):_0xa132x9[_0x4e14[62]](_0xa132x2):_0xa132x9[_0x4e14[339]]=_0xa132x2,_0xa132x9};mxUtils[_0x4e14[1331]](_0xa132x2)&&this[_0x4e14[813]][_0x4e14[295]]!=document&&(_0xa132x2=_0xa132x2[_0x4e14[342]]);_0xa132x2=_0xa132x2[_0x4e14[230]](/<br>/g,_0x4e14[1426])[_0x4e14[230]](/<hr>/g,_0x4e14[1425]);return mxUtils[_0x4e14[877]](_0x4e14[1427]+_0xa132x5+_0x4e14[1423]+_0xa132x2+_0x4e14[1424])[_0x4e14[158]];};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[963]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){if(this[_0x4e14[1285]]&&null!=_0xa132x9){_0xa132x17=null!=_0xa132x17?_0xa132x17:0;var _0xa132x18=this[_0x4e14[724]];_0xa132x2+=_0xa132x18[_0x4e14[1126]];_0xa132x3+=_0xa132x18[_0x4e14[1125]];if(this[_0x4e14[1344]]&&_0x4e14[1428]==_0xa132x14){var _0xa132x19=_0x4e14[1429];_0xa132x16?(_0xa132x19+=_0x4e14[1430],0<_0xa132x5&&(_0xa132x19+=_0x4e14[1431]+Math[_0x4e14[488]](_0xa132x5)+_0x4e14[1409]),0<_0xa132x4&&(_0xa132x19+=_0x4e14[1432]+Math[_0x4e14[488]](_0xa132x4)+_0x4e14[1409])):_0xa132x15&&(_0xa132x19+=_0x4e14[1432]+Math[_0x4e14[488]](_0xa132x4)+_0x4e14[1409],0<_0xa132x5&&(_0xa132x19+=_0x4e14[1431]+Math[_0x4e14[488]](_0xa132x5)+_0x4e14[1409]));_0xa132x13?(!_0xa132x16&&0<_0xa132x4&&(_0xa132x19+=_0x4e14[1432]+Math[_0x4e14[488]](_0xa132x4)+_0x4e14[1409]),_0xa132x19+=_0x4e14[1433]):_0xa132x19+=_0x4e14[1434];_0xa132x13=this[_0x4e14[55]](_0x4e14[449]);1>_0xa132x18[_0x4e14[1244]]&&_0xa132x13[_0x4e14[57]](_0x4e14[461],_0xa132x18[_0x4e14[1244]]);_0xa132x14=this[_0x4e14[55]](_0x4e14[1435]);_0xa132x14[_0x4e14[57]](_0x4e14[1377],_0x4e14[1378]);_0xa132x19=this[_0x4e14[1404]](_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x19,_0xa132x15);if(null!=_0xa132x19){_0xa132x13[_0x4e14[62]](_0xa132x14);this[_0x4e14[813]][_0x4e14[62]](_0xa132x13);var _0xa132x1a=0;if(mxClient[_0x4e14[80]]&&!mxClient[_0x4e14[48]]){var _0xa132x1b=document[_0x4e14[55]](_0x4e14[485]);_0xa132x1b[_0x4e14[124]][_0x4e14[103]]=_0xa132x19[_0x4e14[284]](_0x4e14[124]);_0xa132x1b[_0x4e14[124]][_0x4e14[495]]=mxClient[_0x4e14[496]]?_0x4e14[497]:_0x4e14[498];_0xa132x1b[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];_0xa132x1b[_0x4e14[339]]=mxUtils[_0x4e14[1331]](_0xa132x9)?_0xa132x9[_0x4e14[342]]:_0xa132x9;document[_0x4e14[112]][_0x4e14[62]](_0xa132x1b);_0xa132x1a=_0xa132x1b[_0x4e14[359]];_0xa132x5=mxClient[_0x4e14[496]]&&0<_0xa132x5&&_0xa132x16?Math[_0x4e14[243]](_0xa132x5,_0xa132x1b[_0x4e14[167]]+2):_0xa132x1b[_0x4e14[167]];_0xa132x1b[_0x4e14[265]][_0x4e14[266]](_0xa132x1b);_0xa132x14[_0x4e14[62]](_0xa132x19);}else {this[_0x4e14[813]][_0x4e14[295]]!=document?(_0xa132x19[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],document[_0x4e14[112]][_0x4e14[62]](_0xa132x19),_0xa132x1a=_0xa132x19[_0x4e14[359]],_0xa132x5=_0xa132x19[_0x4e14[167]],_0xa132x14[_0x4e14[62]](_0xa132x19),_0xa132x19[_0x4e14[124]][_0x4e14[187]]=_0x4e14[110]):(_0xa132x14[_0x4e14[62]](_0xa132x19),_0xa132x1a=_0xa132x19[_0x4e14[359]],_0xa132x5=_0xa132x19[_0x4e14[167]])};_0xa132x4=_0xa132x15?Math[_0x4e14[160]](_0xa132x4,_0xa132x1a):_0xa132x1a;1>_0xa132x18[_0x4e14[1244]]&&_0xa132x13[_0x4e14[57]](_0x4e14[461],_0xa132x18[_0x4e14[1244]]);_0xa132x15=_0xa132x9=0;_0xa132xa==mxConstants[_0x4e14[479]]?_0xa132x9-=_0xa132x4/2:_0xa132xa==mxConstants[_0x4e14[480]]&&(_0xa132x9-=_0xa132x4);_0xa132x2+=_0xa132x9;_0xa132x12==mxConstants[_0x4e14[481]]?_0xa132x15-=_0xa132x5/2:_0xa132x12==mxConstants[_0x4e14[482]]&&(_0xa132x15-=_0xa132x5);_0xa132x3+=_0xa132x15;_0xa132xa=1!=_0xa132x18[_0x4e14[255]]?_0x4e14[1402]+_0xa132x18[_0x4e14[255]]+_0x4e14[460]:_0x4e14[110];0!=_0xa132x18[_0x4e14[603]]&&this[_0x4e14[1216]]?(_0xa132xa+=_0x4e14[1394]+_0xa132x18[_0x4e14[603]]+_0x4e14[537]+_0xa132x4/2+_0x4e14[537]+_0xa132x5/2+_0x4e14[460],_0xa132x3=this[_0x4e14[1241]]((_0xa132x2+_0xa132x4/2)*_0xa132x18[_0x4e14[255]],(_0xa132x3+_0xa132x5/2)*_0xa132x18[_0x4e14[255]],_0xa132x18[_0x4e14[603]],_0xa132x18[_0x4e14[1395]],_0xa132x18[_0x4e14[1396]]),_0xa132x2=_0xa132x3[_0x4e14[235]]-_0xa132x4*_0xa132x18[_0x4e14[255]]/2,_0xa132x3=_0xa132x3[_0x4e14[236]]-_0xa132x5*_0xa132x18[_0x4e14[255]]/2):(_0xa132x2*=_0xa132x18[_0x4e14[255]],_0xa132x3*=_0xa132x18[_0x4e14[255]]);0!=_0xa132x17&&(_0xa132xa+=_0x4e14[1394]+_0xa132x17+_0x4e14[537]+-_0xa132x9+_0x4e14[537]+-_0xa132x15+_0x4e14[460]);_0xa132x13[_0x4e14[57]](_0x4e14[535],_0x4e14[536]+Math[_0x4e14[488]](_0xa132x2)+_0x4e14[537]+Math[_0x4e14[488]](_0xa132x3)+_0x4e14[460]+_0xa132xa);_0xa132x14[_0x4e14[57]](_0x4e14[117],Math[_0x4e14[488]](Math[_0x4e14[160]](1,_0xa132x4)));_0xa132x14[_0x4e14[57]](_0x4e14[119],Math[_0x4e14[488]](Math[_0x4e14[160]](1,_0xa132x5)));};}else {this[_0x4e14[1436]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x15,_0xa132x16,_0xa132x17)};}};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1437]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x2=Math[_0x4e14[488]](_0xa132x2);_0xa132x3=Math[_0x4e14[488]](_0xa132x3);_0xa132x4=Math[_0x4e14[488]](_0xa132x4);_0xa132x5=Math[_0x4e14[488]](_0xa132x5);for(var _0xa132x9=_0x4e14[1438]+_0xa132x2+_0x4e14[213]+_0xa132x3+_0x4e14[213]+_0xa132x4+_0x4e14[213]+_0xa132x5,_0xa132xa=0,_0xa132x12=_0xa132x9+_0x4e14[213]+_0xa132xa;null!=document[_0x4e14[1362]](_0xa132x12);){_0xa132x12=_0xa132x9+_0x4e14[213]+ ++_0xa132xa};clip=this[_0x4e14[55]](_0x4e14[1439]);clip[_0x4e14[57]](_0x4e14[1363],_0xa132x12);_0xa132x9=this[_0x4e14[55]](_0x4e14[1319]);_0xa132x9[_0x4e14[57]](_0x4e14[235],_0xa132x2);_0xa132x9[_0x4e14[57]](_0x4e14[236],_0xa132x3);_0xa132x9[_0x4e14[57]](_0x4e14[117],_0xa132x4);_0xa132x9[_0x4e14[57]](_0x4e14[119],_0xa132x5);clip[_0x4e14[62]](_0xa132x9);return clip;};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1436]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16){_0xa132x16=null!=_0xa132x16?_0xa132x16:0;_0xa132x13=this[_0x4e14[724]];var _0xa132x17=Math[_0x4e14[488]](_0xa132x13[_0x4e14[487]]),_0xa132x18=this[_0x4e14[55]](_0x4e14[449]),_0xa132x19=_0xa132x13[_0x4e14[535]]||_0x4e14[110];0!=_0xa132x16&&(_0xa132x19+=_0x4e14[1394]+_0xa132x16+_0x4e14[537]+this[_0x4e14[1239]](_0xa132x2*_0xa132x13[_0x4e14[255]])+_0x4e14[537]+this[_0x4e14[1239]](_0xa132x3*_0xa132x13[_0x4e14[255]])+_0x4e14[460]);if(_0xa132x15&&0<_0xa132x4&&0<_0xa132x5){var _0xa132x1a=_0xa132x2;_0xa132x16=_0xa132x3;_0xa132xa==mxConstants[_0x4e14[479]]?_0xa132x1a-=_0xa132x4/2:_0xa132xa==mxConstants[_0x4e14[480]]&&(_0xa132x1a-=_0xa132x4);_0xa132x12==mxConstants[_0x4e14[481]]?_0xa132x16-=_0xa132x5/2:_0xa132x12==mxConstants[_0x4e14[482]]&&(_0xa132x16-=_0xa132x5);_0xa132x16=this[_0x4e14[1437]](_0xa132x1a*_0xa132x13[_0x4e14[255]]-2,_0xa132x16*_0xa132x13[_0x4e14[255]]-2,_0xa132x4*_0xa132x13[_0x4e14[255]]+4,_0xa132x5*_0xa132x13[_0x4e14[255]]+4);null!=this[_0x4e14[1340]]?this[_0x4e14[1340]][_0x4e14[62]](_0xa132x16):this[_0x4e14[813]][_0x4e14[62]](_0xa132x16);_0xa132x18[_0x4e14[57]](_0x4e14[1440],_0x4e14[1380]+_0xa132x16[_0x4e14[284]](_0x4e14[1363])+_0x4e14[460]);};this[_0x4e14[1441]](_0xa132x18,_0xa132xa);_0xa132x16=_0xa132xa==mxConstants[_0x4e14[480]]?_0x4e14[1282]:_0xa132xa==mxConstants[_0x4e14[479]]?_0x4e14[554]:_0x4e14[861];_0x4e14[861]!=_0xa132x16&&_0xa132x18[_0x4e14[57]](_0x4e14[1442],_0xa132x16);(!this[_0x4e14[1341]]||_0xa132x17!=mxConstants[_0x4e14[483]])&&_0xa132x18[_0x4e14[57]](_0x4e14[1443],Math[_0x4e14[488]](_0xa132x17*_0xa132x13[_0x4e14[255]])+_0x4e14[168]);0<_0xa132x19[_0x4e14[67]]&&_0xa132x18[_0x4e14[57]](_0x4e14[535],_0xa132x19);1>_0xa132x13[_0x4e14[1244]]&&_0xa132x18[_0x4e14[57]](_0x4e14[461],_0xa132x13[_0x4e14[1244]]);var _0xa132x19=_0xa132x9[_0x4e14[224]](_0x4e14[192]),_0xa132x1a=Math[_0x4e14[488]](_0xa132x17*mxConstants[_0x4e14[490]]),_0xa132x1b=_0xa132x17+(_0xa132x19[_0x4e14[67]]-1)*_0xa132x1a;_0xa132x16=_0xa132x3+_0xa132x17-1;_0xa132x12==mxConstants[_0x4e14[481]]?(_0xa132x5=(this[_0x4e14[1343]]&&_0xa132x15&&0<_0xa132x5?Math[_0x4e14[243]](_0xa132x1b,_0xa132x5):_0xa132x1b)/2,_0xa132x16-=_0xa132x5+1):_0xa132x12==mxConstants[_0x4e14[482]]&&(_0xa132x5=this[_0x4e14[1343]]&&_0xa132x15&&0<_0xa132x5?Math[_0x4e14[243]](_0xa132x1b,_0xa132x5):_0xa132x1b,_0xa132x16-=_0xa132x5+2);for(_0xa132x5=0;_0xa132x5<_0xa132x19[_0x4e14[67]];_0xa132x5++){0<_0xa132x19[_0xa132x5][_0x4e14[67]]&&0<mxUtils[_0x4e14[330]](_0xa132x19[_0xa132x5])[_0x4e14[67]]&&(_0xa132x15=this[_0x4e14[55]](_0x4e14[963]),_0xa132x15[_0x4e14[57]](_0x4e14[235],this[_0x4e14[1239]](_0xa132x2*_0xa132x13[_0x4e14[255]])),_0xa132x15[_0x4e14[57]](_0x4e14[236],this[_0x4e14[1239]](_0xa132x16*_0xa132x13[_0x4e14[255]])),mxUtils[_0x4e14[53]](_0xa132x15,_0xa132x19[_0xa132x5]),_0xa132x18[_0x4e14[62]](_0xa132x15)),_0xa132x16+=_0xa132x1a};this[_0x4e14[813]][_0x4e14[62]](_0xa132x18);this[_0x4e14[1444]](_0xa132x18,_0xa132x9,_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x1b,_0xa132xa,_0xa132x12,_0xa132x14);};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1441]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[724]];_0xa132x2[_0x4e14[57]](_0x4e14[1334],_0xa132x3[_0x4e14[665]]);(!this[_0x4e14[1341]]||_0xa132x3[_0x4e14[486]]!=mxConstants[_0x4e14[484]])&&_0xa132x2[_0x4e14[57]](_0x4e14[1445],_0xa132x3[_0x4e14[486]]);(_0xa132x3[_0x4e14[666]]&mxConstants[_0x4e14[1410]])==mxConstants[_0x4e14[1410]]&&_0xa132x2[_0x4e14[57]](_0x4e14[1446],_0x4e14[1447]);(_0xa132x3[_0x4e14[666]]&mxConstants[_0x4e14[1412]])==mxConstants[_0x4e14[1412]]&&_0xa132x2[_0x4e14[57]](_0x4e14[1448],_0x4e14[1449]);(_0xa132x3[_0x4e14[666]]&mxConstants[_0x4e14[1414]])==mxConstants[_0x4e14[1414]]&&_0xa132x2[_0x4e14[57]](_0x4e14[1450],_0x4e14[355]);};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1444]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){var _0xa132x15=this[_0x4e14[724]];if(null!=_0xa132x15[_0x4e14[1261]]||null!=_0xa132x15[_0x4e14[1263]]){var _0xa132x16=null;_0xa132x14?(_0xa132x12==mxConstants[_0x4e14[479]]?_0xa132x4-=_0xa132x9/2:_0xa132x12==mxConstants[_0x4e14[480]]&&(_0xa132x4-=_0xa132x9),_0xa132x13==mxConstants[_0x4e14[481]]?_0xa132x5-=_0xa132xa/2:_0xa132x13==mxConstants[_0x4e14[482]]&&(_0xa132x5-=_0xa132xa),_0xa132x16= new mxRectangle((_0xa132x4+1)*_0xa132x15[_0x4e14[255]],_0xa132x5*_0xa132x15[_0x4e14[255]],(_0xa132x9-2)*_0xa132x15[_0x4e14[255]],(_0xa132xa+2)*_0xa132x15[_0x4e14[255]])):null!=_0xa132x2[_0x4e14[1451]]&&this[_0x4e14[813]][_0x4e14[295]]==document?(_0xa132x16=_0xa132x2[_0x4e14[1451]](),_0xa132x3=mxClient[_0x4e14[80]]&&mxClient[_0x4e14[48]],_0xa132x16= new mxRectangle(_0xa132x16[_0x4e14[235]],_0xa132x16[_0x4e14[236]]+(_0xa132x3?0:1),_0xa132x16[_0x4e14[117]],_0xa132x16[_0x4e14[119]]+(_0xa132x3?1:0))):(_0xa132x16=document[_0x4e14[55]](_0x4e14[485]),_0xa132x16[_0x4e14[124]][_0x4e14[489]]=Math[_0x4e14[488]](_0xa132x15[_0x4e14[487]]*mxConstants[_0x4e14[490]])+_0x4e14[168],_0xa132x16[_0x4e14[124]][_0x4e14[487]]=Math[_0x4e14[488]](_0xa132x15[_0x4e14[487]])+_0x4e14[168],_0xa132x16[_0x4e14[124]][_0x4e14[486]]=_0xa132x15[_0x4e14[486]],_0xa132x16[_0x4e14[124]][_0x4e14[493]]=_0x4e14[494],_0xa132x16[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492],_0xa132x16[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],_0xa132x16[_0x4e14[124]][_0x4e14[495]]=mxClient[_0x4e14[496]]?_0x4e14[497]:_0x4e14[498],_0xa132x16[_0x4e14[124]][_0x4e14[499]]=_0x4e14[500],(_0xa132x15[_0x4e14[666]]&mxConstants[_0x4e14[1410]])==mxConstants[_0x4e14[1410]]&&(_0xa132x16[_0x4e14[124]][_0x4e14[1452]]=_0x4e14[1447]),(_0xa132x15[_0x4e14[666]]&mxConstants[_0x4e14[1412]])==mxConstants[_0x4e14[1412]]&&(_0xa132x16[_0x4e14[124]][_0x4e14[666]]=_0x4e14[1449]),_0xa132x3=mxUtils[_0x4e14[321]](_0xa132x3,!1),_0xa132x16[_0x4e14[339]]=_0xa132x3[_0x4e14[230]](/\n/g,_0x4e14[1453]),document[_0x4e14[112]][_0x4e14[62]](_0xa132x16),_0xa132x9=_0xa132x16[_0x4e14[359]],_0xa132xa=_0xa132x16[_0x4e14[167]],_0xa132x16[_0x4e14[265]][_0x4e14[266]](_0xa132x16),_0xa132x12==mxConstants[_0x4e14[479]]?_0xa132x4-=_0xa132x9/2:_0xa132x12==mxConstants[_0x4e14[480]]&&(_0xa132x4-=_0xa132x9),_0xa132x13==mxConstants[_0x4e14[481]]?_0xa132x5-=_0xa132xa/2:_0xa132x13==mxConstants[_0x4e14[482]]&&(_0xa132x5-=_0xa132xa),_0xa132x16= new mxRectangle((_0xa132x4+1)*_0xa132x15[_0x4e14[255]],(_0xa132x5+2)*_0xa132x15[_0x4e14[255]],_0xa132x9*_0xa132x15[_0x4e14[255]],(_0xa132xa+1)*_0xa132x15[_0x4e14[255]]));null!=_0xa132x16&&(_0xa132x3=this[_0x4e14[55]](_0x4e14[1319]),_0xa132x3[_0x4e14[57]](_0x4e14[1334],_0xa132x15[_0x4e14[1261]]||_0x4e14[130]),_0xa132x3[_0x4e14[57]](_0x4e14[1336],_0xa132x15[_0x4e14[1263]]||_0x4e14[130]),_0xa132x3[_0x4e14[57]](_0x4e14[235],Math[_0x4e14[519]](_0xa132x16[_0x4e14[235]]-1)),_0xa132x3[_0x4e14[57]](_0x4e14[236],Math[_0x4e14[519]](_0xa132x16[_0x4e14[236]]-1)),_0xa132x3[_0x4e14[57]](_0x4e14[117],Math[_0x4e14[430]](_0xa132x16[_0x4e14[117]]+2)),_0xa132x3[_0x4e14[57]](_0x4e14[119],Math[_0x4e14[430]](_0xa132x16[_0x4e14[119]])),_0xa132x15=null!=_0xa132x15[_0x4e14[1263]]?Math[_0x4e14[160]](1,this[_0x4e14[1239]](_0xa132x15[_0x4e14[255]])):0,_0xa132x3[_0x4e14[57]](_0x4e14[1382],_0xa132x15),this[_0x4e14[813]][_0x4e14[295]]==document&&1==mxUtils[_0x4e14[1454]](_0xa132x15,2)&&_0xa132x3[_0x4e14[57]](_0x4e14[535],_0x4e14[1455]),_0xa132x2[_0x4e14[950]](_0xa132x3,_0xa132x2[_0x4e14[285]]));};};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1336]]=function(){this[_0x4e14[1370]](!1,!0)};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1334]]=function(){this[_0x4e14[1370]](!0,!1)};mxSvgCanvas2D[_0x4e14[202]][_0x4e14[1337]]=function(){this[_0x4e14[1370]](!0,!0)};var mxVmlCanvas2D=function(_0xa132x2){mxAbstractCanvas2D[_0x4e14[239]](this);this[_0x4e14[813]]=_0xa132x2;};mxUtils[_0x4e14[1284]](mxVmlCanvas2D,mxAbstractCanvas2D);mxVmlCanvas2D[_0x4e14[202]][_0x4e14[252]]=null;mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1285]]= !0;mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1219]]=_0x4e14[1456];mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1221]]=_0x4e14[1457];mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1225]]=_0x4e14[1458];mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1227]]=_0x4e14[235];mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1459]]=_0x4e14[110];mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1460]]=1;mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1370]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[252]],_0xa132x5=this[_0x4e14[724]];if(null!=_0xa132x4){if(_0x4e14[253]==_0xa132x4[_0x4e14[301]]){if(null!=this[_0x4e14[1215]]&&0<this[_0x4e14[1215]][_0x4e14[67]]){_0xa132x4[_0x4e14[1215]]=this[_0x4e14[1215]][_0x4e14[234]](_0x4e14[185])+_0x4e14[1461],_0xa132x4[_0x4e14[124]][_0x4e14[117]]=this[_0x4e14[813]][_0x4e14[124]][_0x4e14[117]],_0xa132x4[_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[813]][_0x4e14[124]][_0x4e14[119]],_0xa132x4[_0x4e14[1462]]=parseInt(_0xa132x4[_0x4e14[124]][_0x4e14[117]])+_0x4e14[185]+parseInt(_0xa132x4[_0x4e14[124]][_0x4e14[119]])}else {return }};_0xa132x4[_0x4e14[1463]]=this[_0x4e14[1239]](Math[_0x4e14[160]](1,_0xa132x5[_0x4e14[610]]*_0xa132x5[_0x4e14[255]]/this[_0x4e14[1460]]))+_0x4e14[168];_0xa132x5[_0x4e14[639]]&&this[_0x4e14[813]][_0x4e14[62]](this[_0x4e14[1375]](_0xa132x4,_0xa132x2&&null!=_0xa132x5[_0x4e14[604]],_0xa132x3&&null!=_0xa132x5[_0x4e14[608]]));_0xa132x3&&null!=_0xa132x5[_0x4e14[608]]?(_0xa132x4[_0x4e14[1464]]=_0x4e14[128],_0xa132x4[_0x4e14[1306]]=_0xa132x5[_0x4e14[608]]):_0xa132x4[_0x4e14[1464]]=_0x4e14[308];_0xa132x4[_0x4e14[62]](this[_0x4e14[1465]]());_0xa132x2&&null!=_0xa132x5[_0x4e14[604]]?_0xa132x4[_0x4e14[62]](this[_0x4e14[1466]]()):this[_0x4e14[1229]]&&(_0x4e14[253]!=_0xa132x4[_0x4e14[301]]||this[_0x4e14[1215]][this[_0x4e14[1215]][_0x4e14[67]]-1]==this[_0x4e14[1227]])?_0xa132x4[_0x4e14[62]](this[_0x4e14[1467]]()):_0xa132x4[_0x4e14[1468]]=_0x4e14[308];this[_0x4e14[813]][_0x4e14[62]](_0xa132x4);};};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1467]]=function(){var _0xa132x2=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1469]);_0xa132x2[_0x4e14[390]]=mxClient[_0x4e14[88]]+_0x4e14[1470];_0xa132x2[_0x4e14[60]]=_0x4e14[1471];return _0xa132x2;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1466]]=function(){var _0xa132x2=this[_0x4e14[724]],_0xa132x3=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1469]);_0xa132x3[_0x4e14[352]]=_0xa132x2[_0x4e14[604]];if(null!=_0xa132x2[_0x4e14[606]]){_0xa132x3[_0x4e14[60]]=_0x4e14[1299];_0xa132x3[_0x4e14[865]]=_0x4e14[130];_0xa132x3[_0x4e14[1472]]=_0xa132x2[_0x4e14[606]];var _0xa132x4=180-_0xa132x2[_0x4e14[603]],_0xa132x4=_0xa132x2[_0x4e14[607]]==mxConstants[_0x4e14[1359]]?_0xa132x4-(90+(_0x4e14[235]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]?180:0)):_0xa132x2[_0x4e14[607]]==mxConstants[_0x4e14[1356]]?_0xa132x4+(90+(_0x4e14[235]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]?180:0)):_0xa132x2[_0x4e14[607]]==mxConstants[_0x4e14[1358]]?_0xa132x4-(180+(_0x4e14[236]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]?-180:0)):_0xa132x4+(_0x4e14[236]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]?-180:0);if(_0x4e14[235]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]||_0x4e14[236]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]){_0xa132x4*= -1};_0xa132x3[_0x4e14[1474]]=mxUtils[_0x4e14[1454]](_0xa132x4,360);_0xa132x3[_0x4e14[461]]=100*_0xa132x2[_0x4e14[1244]]*_0xa132x2[_0x4e14[1247]]+_0x4e14[229];_0xa132x3[_0x4e14[57]](mxClient[_0x4e14[1475]]+_0x4e14[1476],100*_0xa132x2[_0x4e14[1244]]*_0xa132x2[_0x4e14[1248]]+_0x4e14[229]);}else {1>_0xa132x2[_0x4e14[1244]]&&(_0xa132x3[_0x4e14[461]]=100*_0xa132x2[_0x4e14[1244]]+_0x4e14[229])};return _0xa132x3;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1465]]=function(){var _0xa132x2=this[_0x4e14[724]],_0xa132x3=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1477]);_0xa132x3[_0x4e14[1478]]=_0xa132x2[_0x4e14[1254]]||_0x4e14[1232];_0xa132x3[_0x4e14[1479]]=_0xa132x2[_0x4e14[1256]]||_0x4e14[1233];_0xa132x3[_0x4e14[1313]]=_0xa132x2[_0x4e14[1258]]||_0x4e14[1480];1>_0xa132x2[_0x4e14[1244]]&&(_0xa132x3[_0x4e14[461]]=100*_0xa132x2[_0x4e14[1244]]+_0x4e14[229]);_0xa132x2[_0x4e14[648]]&&(_0xa132x3[_0x4e14[1481]]=this[_0x4e14[1482]]());return _0xa132x3;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1482]]=function(){var _0xa132x2=_0x4e14[1483];if(null!=this[_0x4e14[724]][_0x4e14[649]]){var _0xa132x3=this[_0x4e14[724]][_0x4e14[649]][_0x4e14[224]](_0x4e14[185]);0<_0xa132x3[_0x4e14[67]]&&1==_0xa132x3[0]&&(_0xa132x2=_0x4e14[1484]);};return _0xa132x2;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1375]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[724]],_0xa132x9=-_0xa132x5[_0x4e14[603]]*(Math[_0x4e14[424]]/180),_0xa132xa=Math[_0x4e14[426]](_0xa132x9),_0xa132x9=Math[_0x4e14[427]](_0xa132x9),_0xa132x12=_0xa132x5[_0x4e14[1273]]*_0xa132x5[_0x4e14[255]],_0xa132x13=_0xa132x5[_0x4e14[1274]]*_0xa132x5[_0x4e14[255]];_0x4e14[235]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]?_0xa132x12*= -1:_0x4e14[236]==this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]&&(_0xa132x13*= -1);var _0xa132x14=_0xa132x2[_0x4e14[511]](!0);_0xa132x14[_0x4e14[124]][_0x4e14[945]]=Math[_0x4e14[488]](_0xa132x12*_0xa132xa-_0xa132x13*_0xa132x9)+_0x4e14[168];_0xa132x14[_0x4e14[124]][_0x4e14[953]]=Math[_0x4e14[488]](_0xa132x12*_0xa132x9+_0xa132x13*_0xa132xa)+_0x4e14[168];8==document[_0x4e14[5]]&&(_0xa132x14[_0x4e14[1463]]=_0xa132x2[_0x4e14[1463]],_0x4e14[253]==_0xa132x2[_0x4e14[301]]&&(_0xa132x14[_0x4e14[1215]]=this[_0x4e14[1215]][_0x4e14[234]](_0x4e14[185])+_0x4e14[1461],_0xa132x14[_0x4e14[124]][_0x4e14[117]]=this[_0x4e14[813]][_0x4e14[124]][_0x4e14[117]],_0xa132x14[_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[813]][_0x4e14[124]][_0x4e14[119]],_0xa132x14[_0x4e14[1462]]=parseInt(_0xa132x2[_0x4e14[124]][_0x4e14[117]])+_0x4e14[185]+parseInt(_0xa132x2[_0x4e14[124]][_0x4e14[119]])));_0xa132x4?(_0xa132x14[_0x4e14[1306]]=_0xa132x5[_0x4e14[1269]],_0xa132x14[_0x4e14[62]](this[_0x4e14[1485]]())):_0xa132x14[_0x4e14[1464]]=_0x4e14[308];_0xa132x3?_0xa132x14[_0x4e14[62]](this[_0x4e14[1486]]()):_0xa132x14[_0x4e14[1468]]=_0x4e14[308];return _0xa132x14;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1486]]=function(){var _0xa132x2=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1469]);_0xa132x2[_0x4e14[352]]=this[_0x4e14[724]][_0x4e14[1269]];_0xa132x2[_0x4e14[461]]=100*this[_0x4e14[724]][_0x4e14[1244]]*this[_0x4e14[724]][_0x4e14[1271]]+_0x4e14[229];return _0xa132x2;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1485]]=function(){var _0xa132x2=this[_0x4e14[1465]]();_0xa132x2[_0x4e14[461]]=100*this[_0x4e14[724]][_0x4e14[1244]]*this[_0x4e14[724]][_0x4e14[1271]]+_0x4e14[229];return _0xa132x2;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1294]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x3&&_0xa132x4?_0xa132x2+=180:_0xa132x3?this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]=_0x4e14[235]:_0xa132x4&&(this[_0x4e14[813]][_0x4e14[124]][_0x4e14[1473]]=_0x4e14[236]);if(_0xa132x3?!_0xa132x4:_0xa132x4){_0xa132x2*= -1};this[_0x4e14[813]][_0x4e14[124]][_0x4e14[603]]=_0xa132x2;this[_0x4e14[724]][_0x4e14[603]]+=_0xa132x2;this[_0x4e14[724]][_0x4e14[1395]]=_0xa132x5;this[_0x4e14[724]][_0x4e14[1396]]=_0xa132x9;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1275]]=function(){mxAbstractCanvas2D[_0x4e14[202]][_0x4e14[1275]][_0x4e14[183]](this,arguments);this[_0x4e14[252]]=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1487]);this[_0x4e14[252]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1278]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=this[_0x4e14[724]],_0xa132xa=(this[_0x4e14[1217]]+_0xa132x9[_0x4e14[1126]])*_0xa132x9[_0x4e14[255]],_0xa132x12=(this[_0x4e14[1218]]+_0xa132x9[_0x4e14[1125]])*_0xa132x9[_0x4e14[255]];_0xa132x2=(_0xa132x2+_0xa132x9[_0x4e14[1126]])*_0xa132x9[_0x4e14[255]];_0xa132x3=(_0xa132x3+_0xa132x9[_0x4e14[1125]])*_0xa132x9[_0x4e14[255]];_0xa132x4=(_0xa132x4+_0xa132x9[_0x4e14[1126]])*_0xa132x9[_0x4e14[255]];_0xa132x5=(_0xa132x5+_0xa132x9[_0x4e14[1125]])*_0xa132x9[_0x4e14[255]];var _0xa132x12=_0xa132x12+2/3*(_0xa132x3-_0xa132x12),_0xa132x13=_0xa132x4+2/3*(_0xa132x2-_0xa132x4);_0xa132x3=_0xa132x5+2/3*(_0xa132x3-_0xa132x5);this[_0x4e14[1215]][_0x4e14[207]](_0x4e14[1488]+this[_0x4e14[1239]](_0xa132xa+2/3*(_0xa132x2-_0xa132xa))+_0x4e14[185]+this[_0x4e14[1239]](_0xa132x12)+_0x4e14[185]+this[_0x4e14[1239]](_0xa132x13)+_0x4e14[185]+this[_0x4e14[1239]](_0xa132x3)+_0x4e14[185]+this[_0x4e14[1239]](_0xa132x4)+_0x4e14[185]+this[_0x4e14[1239]](_0xa132x5));this[_0x4e14[1217]]=_0xa132x4/_0xa132x9[_0x4e14[255]]-_0xa132x9[_0x4e14[1126]];this[_0x4e14[1218]]=_0xa132x5/_0xa132x9[_0x4e14[255]]-_0xa132x9[_0x4e14[1125]];};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1489]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=this[_0x4e14[724]];_0xa132x2=document[_0x4e14[55]](_0xa132x2);_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x2[_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[1239]]((_0xa132x3+_0xa132xa[_0x4e14[1126]])*_0xa132xa[_0x4e14[255]])+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[1239]]((_0xa132x4+_0xa132xa[_0x4e14[1125]])*_0xa132xa[_0x4e14[255]])+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[117]]=this[_0x4e14[1239]](_0xa132x5*_0xa132xa[_0x4e14[255]])+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[1239]](_0xa132x9*_0xa132xa[_0x4e14[255]])+_0x4e14[168];return _0xa132x2;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1319]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[252]]=this[_0x4e14[1489]](mxClient[_0x4e14[463]]+_0x4e14[1490],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5)};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1320]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[252]]=this[_0x4e14[1489]](mxClient[_0x4e14[463]]+_0x4e14[1491],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5);this[_0x4e14[252]][_0x4e14[57]](_0x4e14[1492],Math[_0x4e14[160]](100*_0xa132x9/_0xa132x4,100*_0xa132xa/_0xa132x5)+_0x4e14[229]);};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[680]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[252]]=this[_0x4e14[1489]](mxClient[_0x4e14[463]]+_0x4e14[1493],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5)};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[618]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13){var _0xa132x14=null;_0xa132xa?(_0xa132x14=this[_0x4e14[1489]](mxClient[_0x4e14[463]]+_0x4e14[1490],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5),_0xa132x14[_0x4e14[1464]]=_0x4e14[308],_0xa132x2=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1469]),_0xa132x2[_0x4e14[1322]]=_0xa132xa?_0x4e14[1494]:_0x4e14[1495],_0xa132x2[_0x4e14[1294]]=_0x4e14[128],_0xa132x2[_0x4e14[60]]=_0x4e14[1496],_0xa132x2[_0x4e14[390]]=_0xa132x9,_0xa132x14[_0x4e14[62]](_0xa132x2)):(_0xa132x14=this[_0x4e14[1489]](mxClient[_0x4e14[463]]+_0x4e14[464],_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5),_0xa132x14[_0x4e14[390]]=_0xa132x9);_0xa132x12&&_0xa132x13?_0xa132x14[_0x4e14[124]][_0x4e14[603]]=_0x4e14[1497]:_0xa132x12?_0xa132x14[_0x4e14[124]][_0x4e14[1473]]=_0x4e14[235]:_0xa132x13&&(_0xa132x14[_0x4e14[124]][_0x4e14[1473]]=_0x4e14[236]);1>this[_0x4e14[724]][_0x4e14[1244]]&&(_0xa132x14[_0x4e14[124]][_0x4e14[347]]+=_0x4e14[459]+100*this[_0x4e14[724]][_0x4e14[1244]]+_0x4e14[460]);this[_0x4e14[813]][_0x4e14[62]](_0xa132x14);};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1404]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x4=document[_0x4e14[55]](_0x4e14[485]);var _0xa132x9=this[_0x4e14[724]],_0xa132xa=_0x4e14[110];null!=_0xa132x9[_0x4e14[1261]]&&(_0xa132xa+=_0x4e14[1418]+_0xa132x9[_0x4e14[1261]]+_0x4e14[471]);null!=_0xa132x9[_0x4e14[1263]]&&(_0xa132xa+=_0x4e14[1419]+_0xa132x9[_0x4e14[1263]]+_0x4e14[471]);mxUtils[_0x4e14[1331]](_0xa132x2)?_0xa132x4[_0x4e14[62]](_0xa132x2):0<_0xa132xa[_0x4e14[67]]&&!_0xa132x5?(_0xa132x5=document[_0x4e14[55]](_0x4e14[485]),_0xa132x5[_0x4e14[124]][_0x4e14[103]]=_0xa132xa,_0xa132x5[_0x4e14[124]][_0x4e14[495]]=mxClient[_0x4e14[496]]?_0x4e14[497]:_0x4e14[498],_0xa132x5[_0x4e14[124]][_0x4e14[499]]=_0x4e14[500],_0xa132x5[_0x4e14[339]]=_0xa132x2,_0xa132x4[_0x4e14[62]](_0xa132x5)):(_0xa132x4[_0x4e14[124]][_0x4e14[103]]=_0xa132xa,_0xa132x4[_0x4e14[339]]=_0xa132x2);_0xa132x2=_0xa132x4[_0x4e14[124]];_0xa132x2[_0x4e14[487]]=Math[_0x4e14[488]](_0xa132x9[_0x4e14[487]]/this[_0x4e14[1460]])+_0x4e14[168];_0xa132x2[_0x4e14[486]]=_0xa132x9[_0x4e14[486]];_0xa132x2[_0x4e14[352]]=_0xa132x9[_0x4e14[665]];_0xa132x2[_0x4e14[123]]=_0x4e14[125];_0xa132x2[_0x4e14[1165]]=_0xa132x3||_0x4e14[361];_0xa132x2[_0x4e14[489]]=Math[_0x4e14[488]](_0xa132x9[_0x4e14[487]]*mxConstants[_0x4e14[490]]/this[_0x4e14[1460]])+_0x4e14[168];(_0xa132x9[_0x4e14[666]]&mxConstants[_0x4e14[1410]])==mxConstants[_0x4e14[1410]]&&(_0xa132x2[_0x4e14[1452]]=_0x4e14[1447]);(_0xa132x9[_0x4e14[666]]&mxConstants[_0x4e14[1412]])==mxConstants[_0x4e14[1412]]&&(_0xa132x2[_0x4e14[666]]=_0x4e14[1449]);(_0xa132x9[_0x4e14[666]]&mxConstants[_0x4e14[1414]])==mxConstants[_0x4e14[1414]]&&(_0xa132x2[_0x4e14[1498]]=_0x4e14[355]);return _0xa132x4;};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[963]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){if(this[_0x4e14[1285]]&&null!=_0xa132x9){var _0xa132x18=this[_0x4e14[724]];if(_0x4e14[1428]==_0xa132x14){null!=_0xa132x18[_0x4e14[603]]&&(_0xa132x3=this[_0x4e14[1241]](_0xa132x2,_0xa132x3,_0xa132x18[_0x4e14[603]],_0xa132x18[_0x4e14[1395]],_0xa132x18[_0x4e14[1396]]),_0xa132x2=_0xa132x3[_0x4e14[235]],_0xa132x3=_0xa132x3[_0x4e14[236]]);8==document[_0x4e14[5]]?(_0xa132x2+=_0xa132x18[_0x4e14[1126]],_0xa132x3+=_0xa132x18[_0x4e14[1125]]):(_0xa132x2*=_0xa132x18[_0x4e14[255]],_0xa132x3*=_0xa132x18[_0x4e14[255]]);_0xa132x14=8==document[_0x4e14[5]]?document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1499]):document[_0x4e14[55]](_0x4e14[485]);_0xa132x14[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x14[_0x4e14[124]][_0x4e14[495]]=_0x4e14[497];_0xa132x14[_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[1239]](_0xa132x2)+_0x4e14[168];_0xa132x14[_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[1239]](_0xa132x3)+_0x4e14[168];_0xa132x14[_0x4e14[124]][_0x4e14[499]]=_0xa132x18[_0x4e14[255]];var _0xa132x19=document[_0x4e14[55]](_0x4e14[485]);_0xa132x19[_0x4e14[124]][_0x4e14[491]]=_0x4e14[1500];_0xa132x19[_0x4e14[124]][_0x4e14[495]]=_0x4e14[497];var _0xa132x1a=mxUtils[_0x4e14[1501]](_0xa132xa,_0xa132x12),_0xa132x1b=_0xa132x1a[_0x4e14[235]],_0xa132x1a=_0xa132x1a[_0x4e14[236]];_0xa132x9=this[_0x4e14[1404]](_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x15);_0xa132xa=document[_0x4e14[55]](_0x4e14[485]);_0xa132x13?(!_0xa132x16&&0<_0xa132x4&&(_0xa132x9[_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[488]](_0xa132x4)+_0x4e14[168]),_0xa132x9[_0x4e14[124]][_0x4e14[493]]=_0x4e14[1502]):_0xa132x9[_0x4e14[124]][_0x4e14[493]]=_0x4e14[494];_0xa132x13=_0xa132x18[_0x4e14[603]]+(_0xa132x17||0);this[_0x4e14[1216]]&&0!=_0xa132x13?(_0xa132xa[_0x4e14[124]][_0x4e14[495]]=_0x4e14[497],_0xa132xa[_0x4e14[124]][_0x4e14[499]]=_0x4e14[500],_0xa132xa[_0x4e14[62]](_0xa132x9),8==document[_0x4e14[5]]&&_0x4e14[529]!=this[_0x4e14[813]][_0x4e14[301]]?(_0xa132x19[_0x4e14[62]](_0xa132xa),_0xa132x14[_0x4e14[62]](_0xa132x19)):_0xa132x14[_0x4e14[62]](_0xa132xa)):8==document[_0x4e14[5]]?(_0xa132x19[_0x4e14[62]](_0xa132x9),_0xa132x14[_0x4e14[62]](_0xa132x19)):(_0xa132x9[_0x4e14[124]][_0x4e14[495]]=_0x4e14[497],_0xa132x14[_0x4e14[62]](_0xa132x9));_0x4e14[529]!=this[_0x4e14[813]][_0x4e14[301]]?(_0xa132x17=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1490]),_0xa132x17[_0x4e14[1464]]=_0x4e14[308],_0xa132x17[_0x4e14[1468]]=_0x4e14[308],_0xa132x17[_0x4e14[62]](_0xa132x14),this[_0x4e14[813]][_0x4e14[62]](_0xa132x17)):this[_0x4e14[813]][_0x4e14[62]](_0xa132x14);_0xa132x16?(_0xa132x9[_0x4e14[124]][_0x4e14[277]]=_0x4e14[188],0<_0xa132x4&&(_0xa132x9[_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[488]](_0xa132x4)+_0x4e14[168]),0<_0xa132x5&&8==document[_0x4e14[5]]&&(_0xa132x9[_0x4e14[124]][_0x4e14[1503]]=Math[_0x4e14[488]](_0xa132x5)+_0x4e14[168])):_0xa132x15&&(_0xa132x9[_0x4e14[124]][_0x4e14[117]]=_0xa132x4+_0x4e14[168],0<_0xa132x5&&(_0xa132x9[_0x4e14[124]][_0x4e14[1503]]=Math[_0x4e14[488]](_0xa132x5)+_0x4e14[168]));if(this[_0x4e14[1216]]&&0!=_0xa132x13){_0xa132x4=_0xa132x13*(Math[_0x4e14[424]]/180);_0xa132x13=parseFloat(parseFloat(Math[_0x4e14[426]](_0xa132x4))[_0x4e14[1293]](8));_0xa132x17=parseFloat(parseFloat(Math[_0x4e14[427]](-_0xa132x4))[_0x4e14[1293]](8));_0xa132x4%=2*Math[_0x4e14[424]];0>_0xa132x4&&(_0xa132x4+=2*Math[_0x4e14[424]]);_0xa132x4%=Math[_0x4e14[424]];_0xa132x4>Math[_0x4e14[424]]/2&&(_0xa132x4=Math[_0x4e14[424]]-_0xa132x4);_0xa132x12=Math[_0x4e14[426]](_0xa132x4);var _0xa132x1c=Math[_0x4e14[427]](_0xa132x4);8==document[_0x4e14[5]]&&(_0xa132x9[_0x4e14[124]][_0x4e14[495]]=_0x4e14[498],_0xa132xa[_0x4e14[124]][_0x4e14[495]]=_0x4e14[498],_0xa132x19[_0x4e14[124]][_0x4e14[495]]=_0x4e14[498]);_0xa132x9[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];document[_0x4e14[112]][_0x4e14[62]](_0xa132x9);_0xa132x4=_0xa132x9[_0x4e14[359]];_0xa132x19=_0xa132x9[_0x4e14[167]];if(mxClient[_0x4e14[496]]&&(_0xa132x16||_0xa132x15)&&_0xa132x19>_0xa132x5){_0xa132x19=_0xa132x5,_0xa132x9[_0x4e14[124]][_0x4e14[119]]=_0xa132x19+_0x4e14[168]};_0xa132x5=_0xa132x19;_0xa132x16=(_0xa132x5-_0xa132x5*_0xa132x12+_0xa132x4* -_0xa132x1c)/2-_0xa132x17*_0xa132x4*(_0xa132x1b+0.5)+_0xa132x13*_0xa132x5*(_0xa132x1a+0.5);_0xa132x15=(_0xa132x4-_0xa132x4*_0xa132x12+_0xa132x5* -_0xa132x1c)/2+_0xa132x13*_0xa132x4*(_0xa132x1b+0.5)+_0xa132x17*_0xa132x5*(_0xa132x1a+0.5);_0x4e14[1504]==_0xa132x14[_0x4e14[301]]&&_0x4e14[529]==this[_0x4e14[813]][_0x4e14[301]]?(_0xa132x1b=document[_0x4e14[55]](_0x4e14[485]),_0xa132x1b[_0x4e14[124]][_0x4e14[495]]=_0x4e14[498],_0xa132x1b[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492],_0xa132x1b[_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[1239]](_0xa132x2+(_0xa132x15-_0xa132x4/2)*_0xa132x18[_0x4e14[255]])+_0x4e14[168],_0xa132x1b[_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[1239]](_0xa132x3+(_0xa132x16-_0xa132x5/2)*_0xa132x18[_0x4e14[255]])+_0x4e14[168],_0xa132x14[_0x4e14[265]][_0x4e14[62]](_0xa132x1b),_0xa132x1b[_0x4e14[62]](_0xa132x14)):(_0xa132x18=8==document[_0x4e14[5]]?1:_0xa132x18[_0x4e14[255]],_0xa132x14[_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[1239]](_0xa132x2+(_0xa132x15-_0xa132x4/2)*_0xa132x18)+_0x4e14[168],_0xa132x14[_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[1239]](_0xa132x3+(_0xa132x16-_0xa132x5/2)*_0xa132x18)+_0x4e14[168]);_0xa132xa[_0x4e14[124]][_0x4e14[347]]=_0x4e14[1505]+_0xa132x13+_0x4e14[1506]+_0xa132x17+_0x4e14[1507]+-_0xa132x17+_0x4e14[1508]+_0xa132x13+_0x4e14[1509];_0xa132xa[_0x4e14[124]][_0x4e14[1028]]=this[_0x4e14[1459]];1>this[_0x4e14[724]][_0x4e14[1244]]&&(_0xa132xa[_0x4e14[124]][_0x4e14[347]]+=_0x4e14[459]+100*this[_0x4e14[724]][_0x4e14[1244]]+_0x4e14[460]);_0xa132x9[_0x4e14[124]][_0x4e14[187]]=_0x4e14[110];_0xa132xa[_0x4e14[62]](_0xa132x9);}else {8!=document[_0x4e14[5]]?(_0xa132x9[_0x4e14[124]][_0x4e14[123]]=_0x4e14[125],1>this[_0x4e14[724]][_0x4e14[1244]]&&(_0xa132x14[_0x4e14[124]][_0x4e14[347]]=_0x4e14[459]+100*this[_0x4e14[724]][_0x4e14[1244]]+_0x4e14[460]),_0xa132x18=_0xa132x9[_0x4e14[265]],_0xa132x9[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],document[_0x4e14[112]][_0x4e14[62]](_0xa132x9),_0xa132x4=_0xa132x9[_0x4e14[359]],_0xa132x19=_0xa132x9[_0x4e14[167]],mxClient[_0x4e14[496]]&&(_0xa132x16&&_0xa132x19>_0xa132x5)&&(_0xa132x19=_0xa132x5,_0xa132x9[_0x4e14[124]][_0x4e14[119]]=_0xa132x19+_0x4e14[168]),_0xa132x5=_0xa132x19,_0xa132x9[_0x4e14[124]][_0x4e14[187]]=_0x4e14[110],_0xa132x18[_0x4e14[62]](_0xa132x9),_0xa132x14[_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[1239]](_0xa132x2+_0xa132x4*_0xa132x1b*this[_0x4e14[724]][_0x4e14[255]])+_0x4e14[168],_0xa132x14[_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[1239]](_0xa132x3+_0xa132x5*_0xa132x1a*this[_0x4e14[724]][_0x4e14[255]])+_0x4e14[168]):(1>this[_0x4e14[724]][_0x4e14[1244]]&&(_0xa132x9[_0x4e14[124]][_0x4e14[347]]=_0x4e14[459]+100*this[_0x4e14[724]][_0x4e14[1244]]+_0x4e14[460]),_0xa132x19[_0x4e14[124]][_0x4e14[361]]=100*_0xa132x1b+_0x4e14[229],_0xa132x19[_0x4e14[124]][_0x4e14[125]]=100*_0xa132x1a+_0x4e14[229])};}else {this[_0x4e14[1436]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,mxUtils[_0x4e14[321]](_0xa132x9,!1),_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17)};}};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1436]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){_0xa132x5=this[_0x4e14[724]];_0xa132x2=(_0xa132x2+_0xa132x5[_0x4e14[1126]])*_0xa132x5[_0x4e14[255]];_0xa132x3=(_0xa132x3+_0xa132x5[_0x4e14[1125]])*_0xa132x5[_0x4e14[255]];_0xa132x4=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1487]);_0xa132x4[_0x4e14[124]][_0x4e14[117]]=_0x4e14[942];_0xa132x4[_0x4e14[124]][_0x4e14[119]]=_0x4e14[942];_0xa132x4[_0x4e14[1464]]=_0x4e14[308];_0xa132x15=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1469]);_0xa132x15[_0x4e14[352]]=_0xa132x5[_0x4e14[665]];_0xa132x15[_0x4e14[461]]=100*_0xa132x5[_0x4e14[1244]]+_0x4e14[229];_0xa132x4[_0x4e14[62]](_0xa132x15);_0xa132x15=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1510]);_0xa132x15[_0x4e14[1511]]=_0x4e14[128];_0xa132x15[_0x4e14[6]]=_0x4e14[1512]+this[_0x4e14[1239]](0)+_0x4e14[185]+this[_0x4e14[1239]](0)+_0x4e14[1513]+this[_0x4e14[1239]](1)+_0x4e14[185]+this[_0x4e14[1239]](0);_0xa132x4[_0x4e14[62]](_0xa132x15);_0xa132x15=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1514]);_0xa132x15[_0x4e14[124]][_0x4e14[103]]=_0x4e14[1515]+_0xa132xa;_0xa132x15[_0x4e14[124]][_0x4e14[611]]=_0xa132xa;_0xa132x15[_0x4e14[124]][_0x4e14[486]]=_0xa132x5[_0x4e14[486]];_0xa132x15[_0x4e14[1516]]=_0xa132x9;_0xa132x15[_0x4e14[747]]=_0x4e14[128];_0xa132xa=Math[_0x4e14[488]](_0xa132x5[_0x4e14[487]]*_0xa132x5[_0x4e14[255]]/this[_0x4e14[1460]]);_0xa132x15[_0x4e14[124]][_0x4e14[487]]=_0xa132xa+_0x4e14[168];(_0xa132x5[_0x4e14[666]]&mxConstants[_0x4e14[1410]])==mxConstants[_0x4e14[1410]]&&(_0xa132x15[_0x4e14[124]][_0x4e14[1452]]=_0x4e14[1447]);(_0xa132x5[_0x4e14[666]]&mxConstants[_0x4e14[1412]])==mxConstants[_0x4e14[1412]]&&(_0xa132x15[_0x4e14[124]][_0x4e14[666]]=_0x4e14[1449]);(_0xa132x5[_0x4e14[666]]&mxConstants[_0x4e14[1414]])==mxConstants[_0x4e14[1414]]&&(_0xa132x15[_0x4e14[124]][_0x4e14[354]]=_0x4e14[355]);_0xa132x9=_0xa132x9[_0x4e14[224]](_0x4e14[192]);_0xa132x5=_0xa132xa+(_0xa132x9[_0x4e14[67]]-1)*_0xa132xa*mxConstants[_0x4e14[490]];_0xa132xa=_0xa132x9=0;_0xa132x12==mxConstants[_0x4e14[482]]?_0xa132xa=-_0xa132x5/2:_0xa132x12!=mxConstants[_0x4e14[481]]&&(_0xa132xa=_0xa132x5/2);null!=_0xa132x17&&(_0xa132x4[_0x4e14[124]][_0x4e14[603]]=_0xa132x17,_0xa132x12=_0xa132x17*(Math[_0x4e14[424]]/180),_0xa132x9=Math[_0x4e14[427]](_0xa132x12)*_0xa132xa,_0xa132xa*=Math[_0x4e14[426]](_0xa132x12));_0xa132x4[_0x4e14[62]](_0xa132x15);_0xa132x4[_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[1239]](_0xa132x2-_0xa132x9)+_0x4e14[168];_0xa132x4[_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[1239]](_0xa132x3+_0xa132xa)+_0x4e14[168];this[_0x4e14[813]][_0x4e14[62]](_0xa132x4);};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1336]]=function(){this[_0x4e14[1370]](!1,!0)};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1334]]=function(){this[_0x4e14[1370]](!0,!1)};mxVmlCanvas2D[_0x4e14[202]][_0x4e14[1337]]=function(){this[_0x4e14[1370]](!0,!0)};function mxGuide(_0xa132x2,_0xa132x3){this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[1517]](_0xa132x3);}mxGuide[_0x4e14[202]][_0x4e14[1179]]=null;mxGuide[_0x4e14[202]][_0x4e14[1214]]=null;mxGuide[_0x4e14[202]][_0x4e14[662]]= !0;mxGuide[_0x4e14[202]][_0x4e14[704]]= !0;mxGuide[_0x4e14[202]][_0x4e14[1518]]=null;mxGuide[_0x4e14[202]][_0x4e14[1519]]=null;mxGuide[_0x4e14[202]][_0x4e14[1517]]=function(_0xa132x2){this[_0x4e14[1214]]=_0xa132x2};mxGuide[_0x4e14[202]][_0x4e14[1019]]=function(_0xa132x2){return !0};mxGuide[_0x4e14[202]][_0x4e14[1520]]=function(){return this[_0x4e14[1179]][_0x4e14[1020]]*this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]]/2};mxGuide[_0x4e14[202]][_0x4e14[1521]]=function(_0xa132x2){_0xa132x2= new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);_0xa132x2[_0x4e14[1522]]= !0;return _0xa132x2;};mxGuide[_0x4e14[202]][_0x4e14[582]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(null!=this[_0x4e14[1214]]&&(this[_0x4e14[662]]||this[_0x4e14[704]])&&null!=_0xa132x2&&null!=_0xa132x3){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[513]],_0xa132x9=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132xa=_0xa132x3[_0x4e14[235]],_0xa132x12=_0xa132x3[_0x4e14[236]],_0xa132x13=!1,_0xa132x14=!1,_0xa132x15=this[_0x4e14[1520]](),_0xa132x16=_0xa132x15,_0xa132x17=_0xa132x15,_0xa132x15=_0xa132x2[_0x4e14[238]]();_0xa132x15[_0x4e14[235]]+=_0xa132x3[_0x4e14[235]];_0xa132x15[_0x4e14[236]]+=_0xa132x3[_0x4e14[236]];var _0xa132x18=_0xa132x15[_0x4e14[235]],_0xa132x19=_0xa132x15[_0x4e14[235]]+_0xa132x15[_0x4e14[117]],_0xa132x1a=_0xa132x15[_0x4e14[241]](),_0xa132x1b=_0xa132x15[_0x4e14[236]],_0xa132x1c=_0xa132x15[_0x4e14[236]]+_0xa132x15[_0x4e14[119]],_0xa132x1d=_0xa132x15[_0x4e14[242]]();_0xa132x3=function(_0xa132x3){_0xa132x3+=this[_0x4e14[1179]][_0x4e14[1136]];var _0xa132x4=!1;Math[_0x4e14[425]](_0xa132x3-_0xa132x1a)<_0xa132x16?(_0xa132xa=_0xa132x3-_0xa132x2[_0x4e14[241]](),_0xa132x16=Math[_0x4e14[425]](_0xa132x3-_0xa132x1a),_0xa132x4= !0):Math[_0x4e14[425]](_0xa132x3-_0xa132x18)<_0xa132x16?(_0xa132xa=_0xa132x3-_0xa132x2[_0x4e14[235]],_0xa132x16=Math[_0x4e14[425]](_0xa132x3-_0xa132x18),_0xa132x4= !0):Math[_0x4e14[425]](_0xa132x3-_0xa132x19)<_0xa132x16&&(_0xa132xa=_0xa132x3-_0xa132x2[_0x4e14[235]]-_0xa132x2[_0x4e14[117]],_0xa132x16=Math[_0x4e14[425]](_0xa132x3-_0xa132x19),_0xa132x4= !0);if(_0xa132x4){null==this[_0x4e14[1518]]&&(this[_0x4e14[1518]]=this[_0x4e14[1521]](!0),this[_0x4e14[1518]][_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]],this[_0x4e14[1518]][_0x4e14[1229]]= !1,this[_0x4e14[1518]][_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]()));var _0xa132x5=this[_0x4e14[1179]][_0x4e14[526]];_0xa132x3-=this[_0x4e14[1179]][_0x4e14[1136]];this[_0x4e14[1518]][_0x4e14[1525]]=[ new mxPoint(_0xa132x3,-this[_0x4e14[1179]][_0x4e14[1137]]), new mxPoint(_0xa132x3,_0xa132x5[_0x4e14[191]]-3-this[_0x4e14[1179]][_0x4e14[1137]])];};_0xa132x13=_0xa132x13||_0xa132x4;};for(var _0xa132x15=function(_0xa132x3){_0xa132x3+=this[_0x4e14[1179]][_0x4e14[1137]];var _0xa132x4=!1;Math[_0x4e14[425]](_0xa132x3-_0xa132x1d)<_0xa132x17?(_0xa132x12=_0xa132x3-_0xa132x2[_0x4e14[242]](),_0xa132x17=Math[_0x4e14[425]](_0xa132x3-_0xa132x1d),_0xa132x4= !0):Math[_0x4e14[425]](_0xa132x3-_0xa132x1b)<_0xa132x17?(_0xa132x12=_0xa132x3-_0xa132x2[_0x4e14[236]],_0xa132x17=Math[_0x4e14[425]](_0xa132x3-_0xa132x1b),_0xa132x4= !0):Math[_0x4e14[425]](_0xa132x3-_0xa132x1c)<_0xa132x17&&(_0xa132x12=_0xa132x3-_0xa132x2[_0x4e14[236]]-_0xa132x2[_0x4e14[119]],_0xa132x17=Math[_0x4e14[425]](_0xa132x3-_0xa132x1c),_0xa132x4= !0);if(_0xa132x4){null==this[_0x4e14[1519]]&&(this[_0x4e14[1519]]=this[_0x4e14[1521]](!1),this[_0x4e14[1519]][_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]],this[_0x4e14[1519]][_0x4e14[1229]]= !1,this[_0x4e14[1519]][_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]()));var _0xa132x5=this[_0x4e14[1179]][_0x4e14[526]];_0xa132x3-=this[_0x4e14[1179]][_0x4e14[1137]];this[_0x4e14[1519]][_0x4e14[1525]]=[ new mxPoint(-this[_0x4e14[1179]][_0x4e14[1136]],_0xa132x3), new mxPoint(_0xa132x5[_0x4e14[1526]]-3-this[_0x4e14[1179]][_0x4e14[1136]],_0xa132x3)];};_0xa132x14=_0xa132x14||_0xa132x4;},_0xa132x1e=0;_0xa132x1e<this[_0x4e14[1214]][_0x4e14[67]];_0xa132x1e++){var _0xa132x1f=this[_0x4e14[1214]][_0xa132x1e];null!=_0xa132x1f&&(this[_0x4e14[662]]&&(_0xa132x3[_0x4e14[239]](this,_0xa132x1f[_0x4e14[241]]()),_0xa132x3[_0x4e14[239]](this,_0xa132x1f[_0x4e14[235]]),_0xa132x3[_0x4e14[239]](this,_0xa132x1f[_0x4e14[235]]+_0xa132x1f[_0x4e14[117]])),this[_0x4e14[704]]&&(_0xa132x15[_0x4e14[239]](this,_0xa132x1f[_0x4e14[242]]()),_0xa132x15[_0x4e14[239]](this,_0xa132x1f[_0x4e14[236]]),_0xa132x15[_0x4e14[239]](this,_0xa132x1f[_0x4e14[236]]+_0xa132x1f[_0x4e14[119]])));};!_0xa132x13&&null!=this[_0x4e14[1518]]?this[_0x4e14[1518]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]:null!=this[_0x4e14[1518]]&&(this[_0x4e14[1518]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189],this[_0x4e14[1518]][_0x4e14[258]]());!_0xa132x14&&null!=this[_0x4e14[1519]]?this[_0x4e14[1519]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]:null!=this[_0x4e14[1519]]&&(this[_0x4e14[1519]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189],this[_0x4e14[1519]][_0x4e14[258]]());_0xa132x4&&(_0xa132x13||(_0xa132x4=_0xa132x2[_0x4e14[235]]-(this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[235]]/_0xa132x9-_0xa132x5[_0x4e14[235]])+_0xa132x5[_0x4e14[235]])*_0xa132x9,_0xa132xa=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132xa/_0xa132x9)*_0xa132x9-_0xa132x4),_0xa132x14||(_0xa132x5=_0xa132x2[_0x4e14[236]]-(this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[236]]/_0xa132x9-_0xa132x5[_0x4e14[236]])+_0xa132x5[_0x4e14[236]])*_0xa132x9,_0xa132x12=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x12/_0xa132x9)*_0xa132x9-_0xa132x5));_0xa132x3= new mxPoint(_0xa132xa,_0xa132x12);};return _0xa132x3;};mxGuide[_0x4e14[202]][_0x4e14[801]]=function(){null!=this[_0x4e14[1518]]&&(this[_0x4e14[1518]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]);null!=this[_0x4e14[1519]]&&(this[_0x4e14[1519]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]);};mxGuide[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[1518]]&&(this[_0x4e14[1518]][_0x4e14[515]](),this[_0x4e14[1518]]=null);null!=this[_0x4e14[1519]]&&(this[_0x4e14[1519]][_0x4e14[515]](),this[_0x4e14[1519]]=null);};function mxStencil(_0xa132x2){this[_0x4e14[1527]]=_0xa132x2;this[_0x4e14[1528]]();this[_0x4e14[1529]]();}mxStencil[_0x4e14[1530]]= !1;mxStencil[_0x4e14[202]][_0x4e14[1527]]=null;mxStencil[_0x4e14[202]][_0x4e14[1531]]=null;mxStencil[_0x4e14[202]][_0x4e14[1322]]=null;mxStencil[_0x4e14[202]][_0x4e14[1532]]=null;mxStencil[_0x4e14[202]][_0x4e14[1533]]=null;mxStencil[_0x4e14[202]][_0x4e14[1534]]=null;mxStencil[_0x4e14[202]][_0x4e14[1535]]=null;mxStencil[_0x4e14[202]][_0x4e14[1307]]=null;mxStencil[_0x4e14[202]][_0x4e14[1528]]=function(){this[_0x4e14[1535]]=this[_0x4e14[1527]][_0x4e14[64]](_0x4e14[1536])[0];this[_0x4e14[1534]]=this[_0x4e14[1527]][_0x4e14[64]](_0x4e14[1537])[0];this[_0x4e14[1532]]=Number(this[_0x4e14[1527]][_0x4e14[284]](_0x4e14[1302])||100);this[_0x4e14[1533]]=Number(this[_0x4e14[1527]][_0x4e14[284]](_0x4e14[1303])||100);var _0xa132x2=this[_0x4e14[1527]][_0x4e14[284]](_0x4e14[1322]);this[_0x4e14[1322]]=null!=_0xa132x2?_0xa132x2:_0x4e14[1538];_0xa132x2=this[_0x4e14[1527]][_0x4e14[284]](_0x4e14[1307]);this[_0x4e14[1307]]=null!=_0xa132x2?_0xa132x2:_0x4e14[500];};mxStencil[_0x4e14[202]][_0x4e14[1529]]=function(){var _0xa132x2=this[_0x4e14[1527]][_0x4e14[64]](_0x4e14[1539])[0];if(null!=_0xa132x2&&(_0xa132x2=mxUtils[_0x4e14[1540]](_0xa132x2),null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]])){this[_0x4e14[1531]]=[];for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3++){this[_0x4e14[1531]][_0x4e14[207]](this[_0x4e14[1541]](_0xa132x2[_0xa132x3]))};};};mxStencil[_0x4e14[202]][_0x4e14[1541]]=function(_0xa132x2){var _0xa132x3=Number(_0xa132x2[_0x4e14[284]](_0x4e14[235])),_0xa132x4=Number(_0xa132x2[_0x4e14[284]](_0x4e14[236]));_0xa132x2=_0x4e14[500]==_0xa132x2[_0x4e14[284]](_0x4e14[591]);return  new mxConnectionConstraint( new mxPoint(_0xa132x3,_0xa132x4),_0xa132x2);};mxStencil[_0x4e14[202]][_0x4e14[1542]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=this[_0x4e14[1543]](_0xa132x2,_0xa132x3,_0xa132x4);_0xa132x2=_0xa132x2[_0x4e14[284]](_0x4e14[1544]);if(mxStencil[_0x4e14[1530]]&&null==_0xa132x2||_0x4e14[500]==_0xa132x2){_0xa132x3=mxResources[_0x4e14[203]](_0xa132x3)};return _0xa132x3;};mxStencil[_0x4e14[202]][_0x4e14[1543]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=_0xa132x2[_0x4e14[284]](_0xa132x3);null==_0xa132x3&&(_0xa132x2=mxUtils[_0x4e14[329]](_0xa132x2),null!=_0xa132x2&&(_0xa132x2=mxUtils[_0x4e14[1545]](_0xa132x2),_0x4e14[279]== typeof _0xa132x2&&(_0xa132x3=_0xa132x2(_0xa132x4))));return _0xa132x3;};mxStencil[_0x4e14[202]][_0x4e14[1546]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[1547]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,this[_0x4e14[1534]],!1);this[_0x4e14[1547]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,this[_0x4e14[1535]],!0);};mxStencil[_0x4e14[202]][_0x4e14[1547]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13){if(null!=_0xa132x12){var _0xa132x14=mxUtils[_0x4e14[433]](_0xa132x3[_0x4e14[124]],mxConstants.STYLE_DIRECTION,null);_0xa132x4=this[_0x4e14[1548]](_0xa132x3[_0x4e14[124]],_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x14);_0xa132x5=Math[_0x4e14[243]](_0xa132x4[_0x4e14[117]],_0xa132x4[_0x4e14[119]]);_0xa132x5=_0x4e14[1549]==this[_0x4e14[1307]]?Number(mxUtils[_0x4e14[1550]](_0xa132x3[_0x4e14[124]],mxConstants.STYLE_STROKEWIDTH,1)):Number(this[_0x4e14[1307]])*_0xa132x5;_0xa132x2[_0x4e14[1250]](_0xa132x5);for(_0xa132x12=_0xa132x12[_0x4e14[285]];null!=_0xa132x12;){_0xa132x12[_0x4e14[288]]==mxConstants[_0x4e14[289]]&&this[_0x4e14[1551]](_0xa132x2,_0xa132x3,_0xa132x12,_0xa132x4,_0xa132x13),_0xa132x12=_0xa132x12[_0x4e14[287]]};}};mxStencil[_0x4e14[202]][_0x4e14[1548]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x2=_0xa132x3;_0xa132x3=_0xa132x5/this[_0x4e14[1532]];var _0xa132x12=_0xa132x9/this[_0x4e14[1533]];if(_0xa132xa=_0x4e14[700]==_0xa132xa||_0x4e14[701]==_0xa132xa){_0xa132x12=_0xa132x5/this[_0x4e14[1533]];_0xa132x3=_0xa132x9/this[_0x4e14[1532]];var _0xa132x13=(_0xa132x5-_0xa132x9)/2;_0xa132x2+=_0xa132x13;_0xa132x4-=_0xa132x13;};_0x4e14[1552]==this[_0x4e14[1322]]&&(_0xa132x3=_0xa132x12=Math[_0x4e14[243]](_0xa132x3,_0xa132x12),_0xa132xa?(_0xa132x2+=(_0xa132x9-this[_0x4e14[1532]]*_0xa132x3)/2,_0xa132x4+=(_0xa132x5-this[_0x4e14[1533]]*_0xa132x12)/2):(_0xa132x2+=(_0xa132x5-this[_0x4e14[1532]]*_0xa132x3)/2,_0xa132x4+=(_0xa132x9-this[_0x4e14[1533]]*_0xa132x12)/2));return  new mxRectangle(_0xa132x2,_0xa132x4,_0xa132x3,_0xa132x12);};mxStencil[_0x4e14[202]][_0x4e14[1551]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=_0xa132x4[_0x4e14[301]],_0xa132x12=_0xa132x5[_0x4e14[235]],_0xa132x13=_0xa132x5[_0x4e14[236]],_0xa132x14=_0xa132x5[_0x4e14[117]],_0xa132x15=_0xa132x5[_0x4e14[119]],_0xa132x16=Math[_0x4e14[243]](_0xa132x14,_0xa132x15);if(_0x4e14[815]==_0xa132xa){_0xa132x2[_0x4e14[815]]()}else {if(_0x4e14[1210]==_0xa132xa){_0xa132x2[_0x4e14[1210]]()}else {if(_0x4e14[1215]==_0xa132xa){_0xa132x2[_0x4e14[1275]]();for(_0xa132x4=_0xa132x4[_0x4e14[285]];null!=_0xa132x4;){_0xa132x4[_0x4e14[288]]==mxConstants[_0x4e14[289]]&&this[_0x4e14[1551]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),_0xa132x4=_0xa132x4[_0x4e14[287]]};}else {if(_0x4e14[268]==_0xa132xa){_0xa132x2[_0x4e14[268]]()}else {if(_0x4e14[582]==_0xa132xa){_0xa132x2[_0x4e14[1276]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15)}else {if(_0x4e14[683]==_0xa132xa){_0xa132x2[_0x4e14[1277]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15)}else {if(_0x4e14[1323]==_0xa132xa){_0xa132x2[_0x4e14[1278]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1324]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1325]))*_0xa132x15,_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1326]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1327]))*_0xa132x15)}else {if(_0x4e14[1328]==_0xa132xa){_0xa132x2[_0x4e14[1279]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1324]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1325]))*_0xa132x15,_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1326]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1327]))*_0xa132x15,_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1329]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[1330]))*_0xa132x15)}else {if(_0x4e14[1553]==_0xa132xa){_0xa132x2[_0x4e14[1280]](Number(_0xa132x4[_0x4e14[284]](_0x4e14[1397]))*_0xa132x14,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1398]))*_0xa132x15,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1554])),Number(_0xa132x4[_0x4e14[284]](_0x4e14[1555])),Number(_0xa132x4[_0x4e14[284]](_0x4e14[1556])),_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15)}else {if(_0x4e14[1319]==_0xa132xa){_0xa132x2[_0x4e14[1319]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1302]))*_0xa132x14,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1303]))*_0xa132x15)}else {if(_0x4e14[1320]==_0xa132xa){_0xa132x3=_0xa132x4[_0x4e14[284]](_0x4e14[1492]),0==_0xa132x3&&(_0xa132x3=100*mxConstants[_0x4e14[1557]]),_0xa132x16=Number(_0xa132x4[_0x4e14[284]](_0x4e14[1302]))*_0xa132x14,_0xa132x5=Number(_0xa132x4[_0x4e14[284]](_0x4e14[1303]))*_0xa132x15,_0xa132x3=Number(_0xa132x3)/100,_0xa132x3=Math[_0x4e14[243]](_0xa132x16*_0xa132x3,_0xa132x5*_0xa132x3),_0xa132x2[_0x4e14[1320]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15,_0xa132x16,_0xa132x5,_0xa132x3,_0xa132x3)}else {if(_0x4e14[680]==_0xa132xa){_0xa132x2[_0x4e14[680]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1302]))*_0xa132x14,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1303]))*_0xa132x15)}else {if(_0x4e14[618]==_0xa132xa){_0xa132x3=this[_0x4e14[1543]](_0xa132x4,_0x4e14[390],_0xa132x3),_0xa132x2[_0x4e14[618]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1302]))*_0xa132x14,Number(_0xa132x4[_0x4e14[284]](_0x4e14[1303]))*_0xa132x15,_0xa132x3,!1,_0x4e14[500]==_0xa132x4[_0x4e14[284]](_0x4e14[623]),_0x4e14[500]==_0xa132x4[_0x4e14[284]](_0x4e14[624]))}else {if(_0x4e14[963]==_0xa132xa){_0xa132x16=this[_0x4e14[1542]](_0xa132x4,_0x4e14[1332],_0xa132x3);_0xa132x5=_0x4e14[500]==_0xa132x4[_0x4e14[284]](_0x4e14[704])?-90:0;if(_0x4e14[468]==_0xa132x4[_0x4e14[284]](_0x4e14[1558])){var _0xa132x17=_0xa132x3[_0x4e14[603]],_0xa132x18=1==mxUtils[_0x4e14[433]](_0xa132x3[_0x4e14[124]],mxConstants.STYLE_FLIPH,0);_0xa132x3=1==mxUtils[_0x4e14[433]](_0xa132x3[_0x4e14[124]],mxConstants.STYLE_FLIPV,0);_0xa132x5=_0xa132x18&&_0xa132x3?_0xa132x5-_0xa132x17:_0xa132x18||_0xa132x3?_0xa132x5+_0xa132x17:_0xa132x5-_0xa132x17;};_0xa132x5-=_0xa132x4[_0x4e14[284]](_0x4e14[603]);_0xa132x2[_0x4e14[963]](_0xa132x12+Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15,0,0,_0xa132x16,_0xa132x4[_0x4e14[284]](_0x4e14[611])||_0x4e14[361],_0xa132x4[_0x4e14[284]](_0x4e14[552])||_0x4e14[125],!1,_0x4e14[110],!1,!1,_0xa132x5);}else {if(_0x4e14[1559]==_0xa132xa){_0xa132x17=mxStencilRegistry[_0x4e14[1560]](_0xa132x4[_0x4e14[284]](_0x4e14[298])),null!=_0xa132x17&&(_0xa132x12+=Number(_0xa132x4[_0x4e14[284]](_0x4e14[235]))*_0xa132x14,_0xa132x13+=Number(_0xa132x4[_0x4e14[284]](_0x4e14[236]))*_0xa132x15,_0xa132x16=Number(_0xa132x4[_0x4e14[284]](_0x4e14[1302]))*_0xa132x14,_0xa132x5=Number(_0xa132x4[_0x4e14[284]](_0x4e14[1303]))*_0xa132x15,_0xa132x17[_0x4e14[1546]](_0xa132x2,_0xa132x3,_0xa132x12,_0xa132x13,_0xa132x16,_0xa132x5))}else {if(_0x4e14[1338]==_0xa132xa){_0xa132x2[_0x4e14[1337]]()}else {if(_0x4e14[1334]==_0xa132xa){_0xa132x2[_0x4e14[1334]]()}else {if(_0x4e14[1336]==_0xa132xa){_0xa132x2[_0x4e14[1336]]()}else {if(_0x4e14[1307]==_0xa132xa){_0xa132x2[_0x4e14[1250]](Number(_0xa132x4[_0x4e14[284]](_0x4e14[117]))*_0xa132x16)}else {if(_0x4e14[648]==_0xa132xa){_0xa132x2[_0x4e14[1251]](_0x4e14[500]==_0xa132x4[_0x4e14[284]](_0x4e14[648]))}else {if(_0x4e14[1308]==_0xa132xa){if(_0xa132x4=_0xa132x4[_0x4e14[284]](_0x4e14[1309]),null!=_0xa132x4){_0xa132x4=_0xa132x4[_0x4e14[224]](_0x4e14[185]);_0xa132x14=[];for(_0xa132x15=0;_0xa132x15<_0xa132x4[_0x4e14[67]];_0xa132x15++){0<_0xa132x4[_0xa132x15][_0x4e14[67]]&&_0xa132x14[_0x4e14[207]](Number(_0xa132x4[_0xa132x15])*_0xa132x16)};_0xa132x4=_0xa132x14[_0x4e14[234]](_0x4e14[185]);_0xa132x2[_0x4e14[1252]](_0xa132x4);}}else {_0x4e14[1306]==_0xa132xa?_0xa132x2[_0x4e14[1249]](_0xa132x4[_0x4e14[284]](_0x4e14[352])):_0x4e14[1310]==_0xa132xa?_0xa132x2[_0x4e14[1253]](_0xa132x4[_0x4e14[284]](_0x4e14[1311])):_0x4e14[1312]==_0xa132xa?_0xa132x2[_0x4e14[1255]](_0xa132x4[_0x4e14[284]](_0x4e14[234])):_0x4e14[1313]==_0xa132xa?_0xa132x2[_0x4e14[1257]](Number(_0xa132x4[_0x4e14[284]](_0x4e14[1314]))):_0x4e14[1298]==_0xa132xa?_0xa132x2[_0x4e14[1245]](_0xa132x4[_0x4e14[284]](_0x4e14[352])):_0x4e14[1244]==_0xa132xa?_0xa132x2[_0x4e14[1243]](_0xa132x4[_0x4e14[284]](_0x4e14[1244])):_0x4e14[1315]==_0xa132xa?_0xa132x2[_0x4e14[1259]](_0xa132x4[_0x4e14[284]](_0x4e14[352])):_0x4e14[1318]==_0xa132xa?_0xa132x2[_0x4e14[1266]](_0xa132x4[_0x4e14[284]](_0x4e14[124])):_0x4e14[1287]==_0xa132xa?_0xa132x2[_0x4e14[1265]](_0xa132x4[_0x4e14[284]](_0x4e14[1288])):_0x4e14[1289]==_0xa132xa&&_0xa132x2[_0x4e14[1264]](Number(_0xa132x4[_0x4e14[284]](_0x4e14[803]))*_0xa132x16)}}}}}}}}}}}}}}}}}}}}};_0xa132x9&&(_0x4e14[1338]==_0xa132xa||_0x4e14[1334]==_0xa132xa||_0x4e14[1336]==_0xa132xa)&&_0xa132x2[_0x4e14[1267]](!1);};function mxShape(_0xa132x2){this[_0x4e14[1561]]=_0xa132x2;this[_0x4e14[1307]]=1;this[_0x4e14[603]]=0;this[_0x4e14[461]]=100;this[_0x4e14[624]]=this[_0x4e14[623]]= !1;}mxShape[_0x4e14[202]][_0x4e14[507]]=null;mxShape[_0x4e14[202]][_0x4e14[255]]=1;mxShape[_0x4e14[202]][_0x4e14[1562]]=null;mxShape[_0x4e14[202]][_0x4e14[1525]]=null;mxShape[_0x4e14[202]][_0x4e14[252]]=null;mxShape[_0x4e14[202]][_0x4e14[124]]=null;mxShape[_0x4e14[202]][_0x4e14[124]]=null;mxShape[_0x4e14[202]][_0x4e14[1563]]=null;mxShape[_0x4e14[202]][_0x4e14[1561]]=null;mxShape[_0x4e14[202]][_0x4e14[1564]]=6;mxShape[_0x4e14[202]][_0x4e14[1229]]= !0;mxShape[_0x4e14[202]][_0x4e14[1565]]= !1;mxShape[_0x4e14[202]][_0x4e14[1460]]=1;mxShape[_0x4e14[202]][_0x4e14[176]]=function(_0xa132x2){null==this[_0x4e14[252]]&&(this[_0x4e14[252]]=this[_0x4e14[385]](_0xa132x2),null!=_0xa132x2&&_0xa132x2[_0x4e14[62]](this[_0x4e14[252]]))};mxShape[_0x4e14[202]][_0x4e14[1566]]=function(){return !0};mxShape[_0x4e14[202]][_0x4e14[1567]]=function(){return !1};mxShape[_0x4e14[202]][_0x4e14[1568]]=function(){return 1==mxUtils[_0x4e14[1454]](Math[_0x4e14[160]](1,Math[_0x4e14[488]](this[_0x4e14[1307]]*this[_0x4e14[255]])),2)?0.5:0};mxShape[_0x4e14[202]][_0x4e14[385]]=function(_0xa132x2){var _0xa132x3=null;return _0xa132x3=null!=_0xa132x2[_0x4e14[538]]?this[_0x4e14[1569]](_0xa132x2):8==document[_0x4e14[5]]||this[_0x4e14[507]]==mxConstants[_0x4e14[508]]||this[_0x4e14[507]]!=mxConstants[_0x4e14[1523]]&&this[_0x4e14[1567]]()?this[_0x4e14[1570]](_0xa132x2):this[_0x4e14[1571]](_0xa132x2);};mxShape[_0x4e14[202]][_0x4e14[1569]]=function(){return document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[449])};mxShape[_0x4e14[202]][_0x4e14[1571]]=function(){var _0xa132x2=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1499]);_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];return _0xa132x2;};mxShape[_0x4e14[202]][_0x4e14[1570]]=function(){var _0xa132x2=document[_0x4e14[55]](_0x4e14[485]);_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];return _0xa132x2;};mxShape[_0x4e14[202]][_0x4e14[1572]]=function(){this[_0x4e14[258]]()};mxShape[_0x4e14[202]][_0x4e14[258]]=function(){this[_0x4e14[1573]]();this[_0x4e14[1574]]()?(this[_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[110],_0x4e14[529]==this[_0x4e14[252]][_0x4e14[301]]&&this[_0x4e14[1567]]()?this[_0x4e14[1575]]():this[_0x4e14[1576]](),this[_0x4e14[1577]]()):(this[_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],this[_0x4e14[1563]]=null);};mxShape[_0x4e14[202]][_0x4e14[1573]]=function(){var _0xa132x2=this[_0x4e14[1525]];if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]&&null!=_0xa132x2[0]){this[_0x4e14[1562]]= new mxRectangle(Number(_0xa132x2[0][_0x4e14[235]]),Number(_0xa132x2[0][_0x4e14[236]]),1,1);for(var _0xa132x3=1;_0xa132x3<this[_0x4e14[1525]][_0x4e14[67]];_0xa132x3++){null!=_0xa132x2[_0xa132x3]&&this[_0x4e14[1562]][_0x4e14[99]]( new mxRectangle(Number(_0xa132x2[_0xa132x3][_0x4e14[235]]),Number(_0xa132x2[_0xa132x3][_0x4e14[236]]),1,1))};};};mxShape[_0x4e14[202]][_0x4e14[1574]]=function(){return null!=this[_0x4e14[1562]]&&!isNaN(this[_0x4e14[1562]][_0x4e14[235]])&&!isNaN(this[_0x4e14[1562]][_0x4e14[236]])&&!isNaN(this[_0x4e14[1562]][_0x4e14[117]])&&!isNaN(this[_0x4e14[1562]][_0x4e14[119]])&&0<this[_0x4e14[1562]][_0x4e14[117]]&&0<this[_0x4e14[1562]][_0x4e14[119]]};mxShape[_0x4e14[202]][_0x4e14[1578]]=function(){var _0xa132x2=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1499]);_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x2[_0x4e14[124]][_0x4e14[117]]=this[_0x4e14[252]][_0x4e14[124]][_0x4e14[117]];_0xa132x2[_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[252]][_0x4e14[124]][_0x4e14[119]];return _0xa132x2;};mxShape[_0x4e14[202]][_0x4e14[1576]]=function(){var _0xa132x2=this[_0x4e14[1579]]();for(_0xa132x2[_0x4e14[1229]]=this[_0x4e14[1229]];this[_0x4e14[252]][_0x4e14[1580]]();){this[_0x4e14[252]][_0x4e14[266]](this[_0x4e14[252]][_0x4e14[1581]])};this[_0x4e14[1209]](_0xa132x2);this[_0x4e14[252]]!=_0xa132x2[_0x4e14[813]]&&this[_0x4e14[252]][_0x4e14[1583]](_0x4e14[1582],_0xa132x2[_0x4e14[813]][_0x4e14[342]]);_0x4e14[529]==this[_0x4e14[252]][_0x4e14[301]]&&8==document[_0x4e14[5]]&&(this[_0x4e14[252]][_0x4e14[124]][_0x4e14[347]]=_0x4e14[110],(null==this[_0x4e14[1561]]||!this[_0x4e14[1565]])&&mxUtils[_0x4e14[1584]](this[_0x4e14[252]]));this[_0x4e14[1585]](_0xa132x2);};mxShape[_0x4e14[202]][_0x4e14[1579]]=function(){var _0xa132x2=null,_0xa132x3=null;if(null!=this[_0x4e14[252]][_0x4e14[538]]){_0xa132x2= new mxSvgCanvas2D(this[_0x4e14[252]],!1),_0xa132x2[_0x4e14[1345]]=this[_0x4e14[1564]],_0xa132x2[_0x4e14[1347]]=mxClient[_0x4e14[133]]&&!mxClient[_0x4e14[75]]&&!mxClient[_0x4e14[76]],_0xa132x3=this[_0x4e14[1568]](),0!=_0xa132x3?this[_0x4e14[252]][_0x4e14[57]](_0x4e14[535],_0x4e14[536]+_0xa132x3+_0x4e14[537]+_0xa132x3+_0x4e14[460]):this[_0x4e14[252]][_0x4e14[1390]](_0x4e14[535])}else {this[_0x4e14[1586]]();var _0xa132x4=Math[_0x4e14[160]](1,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[117]])),_0xa132x5=Math[_0x4e14[160]](1,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[119]])),_0xa132x3=8==document[_0x4e14[5]]&&this[_0x4e14[1566]]()?this[_0x4e14[1578]]():this[_0x4e14[252]],_0xa132x2= new mxVmlCanvas2D(_0xa132x3,!1);_0x4e14[110]!=_0xa132x3[_0x4e14[337]]&&(_0xa132x3[_0x4e14[1462]]=_0xa132x4*this[_0x4e14[1460]]+_0x4e14[537]+_0xa132x5*this[_0x4e14[1460]],_0xa132x2[_0x4e14[255]](this[_0x4e14[1460]]),_0xa132x2[_0x4e14[1460]]=this[_0x4e14[1460]]);_0xa132x3=this[_0x4e14[255]];_0xa132x2[_0x4e14[513]](-Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]]/_0xa132x3),-Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]]/_0xa132x3));};return _0xa132x2;};mxShape[_0x4e14[202]][_0x4e14[1586]]=function(){this[_0x4e14[252]][_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]])+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]])+_0x4e14[168];var _0xa132x2=Math[_0x4e14[160]](1,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[117]])),_0xa132x3=Math[_0x4e14[160]](1,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[119]]));this[_0x4e14[252]][_0x4e14[124]][_0x4e14[117]]=_0xa132x2+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[119]]=_0xa132x3+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[277]]=_0x4e14[189];};mxShape[_0x4e14[202]][_0x4e14[1585]]=function(_0xa132x2){if(_0xa132x2 instanceof mxSvgCanvas2D){for(var _0xa132x3 in _0xa132x2[_0x4e14[1339]]){var _0xa132x4=_0xa132x2[_0x4e14[1339]][_0xa132x3];_0xa132x4[_0x4e14[1587]]=(_0xa132x4[_0x4e14[1587]]||0)+1;};this[_0x4e14[1589]](this[_0x4e14[1588]]);this[_0x4e14[1588]]=_0xa132x2[_0x4e14[1339]];}};mxShape[_0x4e14[202]][_0x4e14[1209]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[255]],_0xa132x4=this[_0x4e14[1562]][_0x4e14[235]]/_0xa132x3,_0xa132x5=this[_0x4e14[1562]][_0x4e14[236]]/_0xa132x3,_0xa132x9=this[_0x4e14[1562]][_0x4e14[117]]/_0xa132x3,_0xa132xa=this[_0x4e14[1562]][_0x4e14[119]]/_0xa132x3;if(this[_0x4e14[1590]]()){var _0xa132x12=(_0xa132x9-_0xa132xa)/2,_0xa132x4=_0xa132x4+_0xa132x12,_0xa132x5=_0xa132x5-_0xa132x12,_0xa132x12=_0xa132x9,_0xa132x9=_0xa132xa,_0xa132xa=_0xa132x12};this[_0x4e14[1591]](_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa);this[_0x4e14[1592]](_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa);if(null!=this[_0x4e14[1561]]){this[_0x4e14[1593]](_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa)}else {if(_0xa132x2[_0x4e14[1250]](this[_0x4e14[1307]]),null!=this[_0x4e14[1525]]){_0xa132x4=[];for(_0xa132x5=0;_0xa132x5<this[_0x4e14[1525]][_0x4e14[67]];_0xa132x5++){_0xa132x4[_0x4e14[207]]( new mxPoint(this[_0x4e14[1525]][_0xa132x5][_0x4e14[235]]/_0xa132x3,this[_0x4e14[1525]][_0xa132x5][_0x4e14[236]]/_0xa132x3))};this[_0x4e14[1594]](_0xa132x2,_0xa132x4);}else {this[_0x4e14[1595]](_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa)}};};mxShape[_0x4e14[202]][_0x4e14[1592]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=null;null!=this[_0x4e14[124]]&&(_0xa132xa=this[_0x4e14[124]][_0x4e14[649]]);_0xa132x2[_0x4e14[1243]](this[_0x4e14[461]]/100);null!=this[_0x4e14[1596]]&&_0xa132x2[_0x4e14[1267]](this[_0x4e14[1596]]);null!=this[_0x4e14[1522]]&&_0xa132x2[_0x4e14[1251]](this[_0x4e14[1522]]);null!=_0xa132xa&&_0xa132x2[_0x4e14[1252]](_0xa132xa);null!=this[_0x4e14[1299]]?(_0xa132x3=this[_0x4e14[1597]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),_0xa132x2[_0x4e14[1246]](this[_0x4e14[1334]],this[_0x4e14[1299]],_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]],_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]],this[_0x4e14[607]])):_0xa132x2[_0x4e14[1245]](this[_0x4e14[1334]]);_0xa132x2[_0x4e14[1249]](this[_0x4e14[1336]]);};mxShape[_0x4e14[202]][_0x4e14[1597]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){return  new mxRectangle(_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9)};mxShape[_0x4e14[202]][_0x4e14[1591]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[255]](this[_0x4e14[255]]);_0xa132x2[_0x4e14[1294]](this[_0x4e14[1598]](),this[_0x4e14[623]],this[_0x4e14[624]],_0xa132x3+_0xa132x5/2,_0xa132x4+_0xa132x9/2);};mxShape[_0x4e14[202]][_0x4e14[1593]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){this[_0x4e14[1565]]&&(this[_0x4e14[507]]==mxConstants[_0x4e14[508]]?this[_0x4e14[1599]](this[_0x4e14[252]],_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9):8!=document[_0x4e14[5]]&&this[_0x4e14[1600]](this[_0x4e14[252]]));this[_0x4e14[1561]][_0x4e14[1546]](_0xa132x2,this,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);};mxShape[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){this[_0x4e14[1601]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[1267]](!1);this[_0x4e14[1602]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);};mxShape[_0x4e14[202]][_0x4e14[1601]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){};mxShape[_0x4e14[202]][_0x4e14[1602]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){};mxShape[_0x4e14[202]][_0x4e14[1594]]=function(_0xa132x2,_0xa132x3){};mxShape[_0x4e14[202]][_0x4e14[1603]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0x4e14[1557]])/100;return Math[_0x4e14[243]](_0xa132x2*_0xa132x4,_0xa132x3*_0xa132x4);};mxShape[_0x4e14[202]][_0x4e14[1604]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){var _0xa132x12=Math[_0x4e14[430]](this[_0x4e14[1307]]/2);_0xa132x2[_0x4e14[1246]](_0x4e14[1605],_0x4e14[1605],_0xa132x3,_0xa132x4,_0xa132x5,0.6*_0xa132x9,_0x4e14[701],0.9,0.1);_0xa132x2[_0x4e14[1275]]();_0xa132xa+=2*_0xa132x12;this[_0x4e14[1606]]?(_0xa132x2[_0x4e14[1276]](_0xa132x3-_0xa132x12+_0xa132xa,_0xa132x4-_0xa132x12),_0xa132x2[_0x4e14[1278]](_0xa132x3-_0xa132x12,_0xa132x4-_0xa132x12,_0xa132x3-_0xa132x12,_0xa132x4-_0xa132x12+_0xa132xa),_0xa132x2[_0x4e14[1277]](_0xa132x3-_0xa132x12,_0xa132x4+0.4*_0xa132x9),_0xa132x2[_0x4e14[1278]](_0xa132x3+0.5*_0xa132x5,_0xa132x4+0.7*_0xa132x9,_0xa132x3+_0xa132x5+_0xa132x12,_0xa132x4+0.4*_0xa132x9),_0xa132x2[_0x4e14[1277]](_0xa132x3+_0xa132x5+_0xa132x12,_0xa132x4-_0xa132x12+_0xa132xa),_0xa132x2[_0x4e14[1278]](_0xa132x3+_0xa132x5+_0xa132x12,_0xa132x4-_0xa132x12,_0xa132x3+_0xa132x5+_0xa132x12-_0xa132xa,_0xa132x4-_0xa132x12)):(_0xa132x2[_0x4e14[1276]](_0xa132x3-_0xa132x12,_0xa132x4-_0xa132x12),_0xa132x2[_0x4e14[1277]](_0xa132x3-_0xa132x12,_0xa132x4+0.4*_0xa132x9),_0xa132x2[_0x4e14[1278]](_0xa132x3+0.5*_0xa132x5,_0xa132x4+0.7*_0xa132x9,_0xa132x3+_0xa132x5+_0xa132x12,_0xa132x4+0.4*_0xa132x9),_0xa132x2[_0x4e14[1277]](_0xa132x3+_0xa132x5+_0xa132x12,_0xa132x4-_0xa132x12));_0xa132x2[_0x4e14[268]]();_0xa132x2[_0x4e14[1334]]();};mxShape[_0x4e14[202]][_0x4e14[183]]=function(_0xa132x2){this[_0x4e14[724]]=_0xa132x2;this[_0x4e14[124]]=_0xa132x2[_0x4e14[124]];if(null!=this[_0x4e14[124]]){this[_0x4e14[1334]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_FILLCOLOR,this[_0x4e14[1334]]);this[_0x4e14[1299]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_GRADIENTCOLOR,this[_0x4e14[1299]]);this[_0x4e14[607]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_GRADIENT_DIRECTION,this[_0x4e14[607]]);this[_0x4e14[461]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_OPACITY,this[_0x4e14[461]]);this[_0x4e14[1336]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_STROKECOLOR,this[_0x4e14[1336]]);this[_0x4e14[1307]]=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_STROKEWIDTH,this[_0x4e14[1307]]);this[_0x4e14[657]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_SPACING,this[_0x4e14[657]]);this[_0x4e14[644]]=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_STARTSIZE,this[_0x4e14[644]]);this[_0x4e14[643]]=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_ENDSIZE,this[_0x4e14[643]]);this[_0x4e14[642]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_STARTARROW,this[_0x4e14[642]]);this[_0x4e14[641]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ENDARROW,this[_0x4e14[641]]);this[_0x4e14[603]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ROTATION,this[_0x4e14[603]]);this[_0x4e14[663]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_DIRECTION,this[_0x4e14[663]]);this[_0x4e14[623]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_FLIPH,0);this[_0x4e14[624]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_FLIPV,0);null!=this[_0x4e14[1561]]&&(this[_0x4e14[623]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],_0x4e14[1607],0)||this[_0x4e14[623]],this[_0x4e14[624]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],_0x4e14[1608],0)||this[_0x4e14[624]]);if(_0x4e14[700]==this[_0x4e14[663]]||_0x4e14[701]==this[_0x4e14[663]]){_0xa132x2=this[_0x4e14[623]],this[_0x4e14[623]]=this[_0x4e14[624]],this[_0x4e14[624]]=_0xa132x2};this[_0x4e14[1596]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_SHADOW,this[_0x4e14[1596]]);this[_0x4e14[1522]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_DASHED,this[_0x4e14[1522]]);this[_0x4e14[1606]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ROUNDED,this[_0x4e14[1606]]);this[_0x4e14[617]]=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_GLASS,this[_0x4e14[617]]);_0x4e14[130]==this[_0x4e14[1334]]&&(this[_0x4e14[1334]]=null);_0x4e14[130]==this[_0x4e14[1299]]&&(this[_0x4e14[1299]]=null);_0x4e14[130]==this[_0x4e14[1336]]&&(this[_0x4e14[1336]]=null);};};mxShape[_0x4e14[202]][_0x4e14[1609]]=function(_0xa132x2){null==_0xa132x2&&(_0xa132x2=_0x4e14[110]);this[_0x4e14[270]]=_0xa132x2;null!=this[_0x4e14[252]]&&(this[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=_0xa132x2);};mxShape[_0x4e14[202]][_0x4e14[1610]]=function(){return this[_0x4e14[270]]};mxShape[_0x4e14[202]][_0x4e14[1577]]=function(){if(null!=this[_0x4e14[1562]]){var _0xa132x2=this[_0x4e14[1611]]();if(null!=_0xa132x2){this[_0x4e14[1612]](_0xa132x2);var _0xa132x3=this[_0x4e14[1598]]();0!=_0xa132x3&&(_0xa132x2=mxUtils[_0x4e14[1613]](_0xa132x2,_0xa132x3));_0xa132x2[_0x4e14[235]]=Math[_0x4e14[519]](_0xa132x2[_0x4e14[235]]);_0xa132x2[_0x4e14[236]]=Math[_0x4e14[519]](_0xa132x2[_0x4e14[236]]);_0xa132x2[_0x4e14[117]]=Math[_0x4e14[430]](_0xa132x2[_0x4e14[117]]);_0xa132x2[_0x4e14[119]]=Math[_0x4e14[430]](_0xa132x2[_0x4e14[119]]);};this[_0x4e14[1563]]=_0xa132x2;}};mxShape[_0x4e14[202]][_0x4e14[1611]]=function(){var _0xa132x2=this[_0x4e14[1562]][_0x4e14[238]]();if(this[_0x4e14[1590]]()){var _0xa132x3=(_0xa132x2[_0x4e14[117]]-_0xa132x2[_0x4e14[119]])/2;_0xa132x2[_0x4e14[235]]+=_0xa132x3;_0xa132x2[_0x4e14[236]]-=_0xa132x3;_0xa132x3=_0xa132x2[_0x4e14[117]];_0xa132x2[_0x4e14[117]]=_0xa132x2[_0x4e14[119]];_0xa132x2[_0x4e14[119]]=_0xa132x3;};return _0xa132x2;};mxShape[_0x4e14[202]][_0x4e14[1612]]=function(_0xa132x2){this[_0x4e14[1596]]&&(_0xa132x2[_0x4e14[117]]+=Math[_0x4e14[430]](mxConstants[_0x4e14[1237]]*this[_0x4e14[255]]),_0xa132x2[_0x4e14[119]]+=Math[_0x4e14[430]](mxConstants[_0x4e14[1238]]*this[_0x4e14[255]]));var _0xa132x3=Math[_0x4e14[430]](this[_0x4e14[1307]]*this[_0x4e14[255]]);_0xa132x2[_0x4e14[244]](Math[_0x4e14[430]](_0xa132x3/2));};mxShape[_0x4e14[202]][_0x4e14[1590]]=function(){return null==this[_0x4e14[1561]]&&(_0x4e14[700]==this[_0x4e14[663]]||_0x4e14[701]==this[_0x4e14[663]])};mxShape[_0x4e14[202]][_0x4e14[1614]]=function(){return null!=this[_0x4e14[603]]?this[_0x4e14[603]]:0};mxShape[_0x4e14[202]][_0x4e14[1615]]=function(){var _0xa132x2=this[_0x4e14[1614]]();1!=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_HORIZONTAL,1)&&(_0xa132x2+=mxText[_0x4e14[202]][_0x4e14[1616]]);return _0xa132x2;};mxShape[_0x4e14[202]][_0x4e14[1598]]=function(){var _0xa132x2=this[_0x4e14[1614]]();null!=this[_0x4e14[663]]&&(_0x4e14[700]==this[_0x4e14[663]]?_0xa132x2+=270:_0x4e14[703]==this[_0x4e14[663]]?_0xa132x2+=180:_0x4e14[701]==this[_0x4e14[663]]&&(_0xa132x2+=90));return _0xa132x2;};mxShape[_0x4e14[202]][_0x4e14[1599]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[1319]);_0xa132x2[_0x4e14[57]](_0x4e14[235],_0xa132x3);_0xa132x2[_0x4e14[57]](_0x4e14[236],_0xa132x4);_0xa132x2[_0x4e14[57]](_0x4e14[117],_0xa132x5);_0xa132x2[_0x4e14[57]](_0x4e14[119],_0xa132x9);_0xa132x2[_0x4e14[57]](_0x4e14[1334],_0x4e14[130]);_0xa132x2[_0x4e14[57]](_0x4e14[1336],_0x4e14[130]);_0xa132x2[_0x4e14[57]](_0x4e14[1377],_0x4e14[1378]);this[_0x4e14[252]][_0x4e14[62]](_0xa132x2);};mxShape[_0x4e14[202]][_0x4e14[1600]]=function(_0xa132x2){_0xa132x2[_0x4e14[124]][_0x4e14[1617]]=_0x4e14[1618]+mxClient[_0x4e14[88]]+_0x4e14[1619]};mxShape[_0x4e14[202]][_0x4e14[1589]]=function(_0xa132x2){if(null!=_0xa132x2){for(var _0xa132x3 in _0xa132x2){var _0xa132x4=_0xa132x2[_0xa132x3];_0xa132x4[_0x4e14[1587]]=(_0xa132x4[_0x4e14[1587]]||0)-1;0==_0xa132x4[_0x4e14[1587]]&&null!=_0xa132x4[_0x4e14[265]]&&_0xa132x4[_0x4e14[265]][_0x4e14[266]](_0xa132x4);}}};mxShape[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[252]]&&(mxEvent[_0x4e14[762]](this[_0x4e14[252]]),null!=this[_0x4e14[252]][_0x4e14[265]]&&this[_0x4e14[252]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[252]]),this[_0x4e14[252]]=null);this[_0x4e14[1589]](this[_0x4e14[1588]]);this[_0x4e14[1588]]=null;};var mxStencilRegistry={stencils:[],addStencil:function(_0xa132x2,_0xa132x3){mxStencilRegistry[_0x4e14[1620]][_0xa132x2]=_0xa132x3},getStencil:function(_0xa132x2){return mxStencilRegistry[_0x4e14[1620]][_0xa132x2]}},mxMarker={markers:[],addMarker:function(_0xa132x2,_0xa132x3){mxMarker[_0x4e14[1621]][_0xa132x2]=_0xa132x3},createMarker:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15){var _0xa132x16=mxMarker[_0x4e14[1621]][_0xa132x4];return null!=_0xa132x16?_0xa132x16(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15):null;}};(function(){function _0xa132x2(_0xa132x2,_0xa132x3,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){_0xa132x3=1.118*_0xa132x12*_0xa132x16;_0xa132x15=1.118*_0xa132x13*_0xa132x16;_0xa132x12*=_0xa132x14+_0xa132x16;_0xa132x13*=_0xa132x14+_0xa132x16;var _0xa132x18=_0xa132xa[_0x4e14[238]]();_0xa132x18[_0x4e14[235]]-=_0xa132x3;_0xa132x18[_0x4e14[236]]-=_0xa132x15;_0xa132x14=_0xa132x9!=mxConstants[_0x4e14[1622]]?1:0.75;_0xa132xa[_0x4e14[235]]+=-_0xa132x12*_0xa132x14-_0xa132x3;_0xa132xa[_0x4e14[236]]+=-_0xa132x13*_0xa132x14-_0xa132x15;return function(){_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x18[_0x4e14[235]],_0xa132x18[_0x4e14[236]]);_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]]-_0xa132x12-_0xa132x13/2,_0xa132x18[_0x4e14[236]]-_0xa132x13+_0xa132x12/2);_0xa132x9==mxConstants[_0x4e14[1622]]&&_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]]-3*_0xa132x12/4,_0xa132x18[_0x4e14[236]]-3*_0xa132x13/4);_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]]+_0xa132x13/2-_0xa132x12,_0xa132x18[_0x4e14[236]]-_0xa132x13-_0xa132x12/2);_0xa132x2[_0x4e14[268]]();_0xa132x17?_0xa132x2[_0x4e14[1337]]():_0xa132x2[_0x4e14[1336]]();};}function _0xa132x3(_0xa132x2,_0xa132x3,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){_0xa132x15=_0xa132x9==mxConstants[_0x4e14[1623]]?0.7071:0.9862;_0xa132x3=_0xa132x12*_0xa132x16*_0xa132x15;_0xa132x15*=_0xa132x13*_0xa132x16;_0xa132x12*=_0xa132x14+_0xa132x16;_0xa132x13*=_0xa132x14+_0xa132x16;var _0xa132x18=_0xa132xa[_0x4e14[238]]();_0xa132x18[_0x4e14[235]]-=_0xa132x3;_0xa132x18[_0x4e14[236]]-=_0xa132x15;_0xa132xa[_0x4e14[235]]+=-_0xa132x12-_0xa132x3;_0xa132xa[_0x4e14[236]]+=-_0xa132x13-_0xa132x15;var _0xa132x19=_0xa132x9==mxConstants[_0x4e14[1623]]?2:3.4;return function(){_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x18[_0x4e14[235]],_0xa132x18[_0x4e14[236]]);_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]]-_0xa132x12/2-_0xa132x13/_0xa132x19,_0xa132x18[_0x4e14[236]]+_0xa132x12/_0xa132x19-_0xa132x13/2);_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]]-_0xa132x12,_0xa132x18[_0x4e14[236]]-_0xa132x13);_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]]-_0xa132x12/2+_0xa132x13/_0xa132x19,_0xa132x18[_0x4e14[236]]-_0xa132x13/2-_0xa132x12/_0xa132x19);_0xa132x2[_0x4e14[268]]();_0xa132x17?_0xa132x2[_0x4e14[1337]]():_0xa132x2[_0x4e14[1336]]();};}mxMarker[_0x4e14[1624]](_0x4e14[693],_0xa132x2);mxMarker[_0x4e14[1624]](_0x4e14[694],_0xa132x2);mxMarker[_0x4e14[1624]](_0x4e14[392],function(_0xa132x2,_0xa132x3,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){_0xa132x3=1.118*_0xa132x12*_0xa132x16;_0xa132x9=1.118*_0xa132x13*_0xa132x16;_0xa132x12*=_0xa132x14+_0xa132x16;_0xa132x13*=_0xa132x14+_0xa132x16;var _0xa132x18=_0xa132xa[_0x4e14[238]]();_0xa132x18[_0x4e14[235]]-=_0xa132x3;_0xa132x18[_0x4e14[236]]-=_0xa132x9;_0xa132xa[_0x4e14[235]]+=2* -_0xa132x3;_0xa132xa[_0x4e14[236]]+=2* -_0xa132x9;return function(){_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x18[_0x4e14[235]]-_0xa132x12-_0xa132x13/2,_0xa132x18[_0x4e14[236]]-_0xa132x13+_0xa132x12/2);_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]],_0xa132x18[_0x4e14[236]]);_0xa132x2[_0x4e14[1277]](_0xa132x18[_0x4e14[235]]+_0xa132x13/2-_0xa132x12,_0xa132x18[_0x4e14[236]]-_0xa132x13-_0xa132x12/2);_0xa132x2[_0x4e14[1336]]();};});mxMarker[_0x4e14[1624]](_0x4e14[695],function(_0xa132x2,_0xa132x3,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17){var _0xa132x18=_0xa132x14/2,_0xa132x19=_0xa132xa[_0x4e14[238]]();_0xa132xa[_0x4e14[235]]-=_0xa132x12*_0xa132x18;_0xa132xa[_0x4e14[236]]-=_0xa132x13*_0xa132x18;return function(){_0xa132x2[_0x4e14[680]](_0xa132x19[_0x4e14[235]]-_0xa132x18,_0xa132x19[_0x4e14[236]]-_0xa132x18,_0xa132x14,_0xa132x14);_0xa132x17?_0xa132x2[_0x4e14[1337]]():_0xa132x2[_0x4e14[1336]]();};});mxMarker[_0x4e14[1624]](_0x4e14[696],_0xa132x3);mxMarker[_0x4e14[1624]](_0x4e14[697],_0xa132x3);})();function mxActor(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxActor,mxShape);mxActor[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[513]](_0xa132x3,_0xa132x4);_0xa132x2[_0x4e14[1275]]();this[_0x4e14[1625]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[1337]]();};mxActor[_0x4e14[202]][_0x4e14[1625]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x3=_0xa132x5/3;_0xa132x2[_0x4e14[1276]](0,_0xa132x9);_0xa132x2[_0x4e14[1279]](0,3*_0xa132x9/5,0,2*_0xa132x9/5,_0xa132x5/2,2*_0xa132x9/5);_0xa132x2[_0x4e14[1279]](_0xa132x5/2-_0xa132x3,2*_0xa132x9/5,_0xa132x5/2-_0xa132x3,0,_0xa132x5/2,0);_0xa132x2[_0x4e14[1279]](_0xa132x5/2+_0xa132x3,0,_0xa132x5/2+_0xa132x3,2*_0xa132x9/5,_0xa132x5/2,2*_0xa132x9/5);_0xa132x2[_0x4e14[1279]](_0xa132x5,2*_0xa132x9/5,_0xa132x5,3*_0xa132x9/5,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[268]]();};function mxCloud(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxActor[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxCloud,mxActor);mxCloud[_0x4e14[202]][_0x4e14[1625]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[1276]](0.25*_0xa132x5,0.25*_0xa132x9);_0xa132x2[_0x4e14[1279]](0.05*_0xa132x5,0.25*_0xa132x9,0,0.5*_0xa132x9,0.16*_0xa132x5,0.55*_0xa132x9);_0xa132x2[_0x4e14[1279]](0,0.66*_0xa132x9,0.18*_0xa132x5,0.9*_0xa132x9,0.31*_0xa132x5,0.8*_0xa132x9);_0xa132x2[_0x4e14[1279]](0.4*_0xa132x5,_0xa132x9,0.7*_0xa132x5,_0xa132x9,0.8*_0xa132x5,0.8*_0xa132x9);_0xa132x2[_0x4e14[1279]](_0xa132x5,0.8*_0xa132x9,_0xa132x5,0.6*_0xa132x9,0.875*_0xa132x5,0.5*_0xa132x9);_0xa132x2[_0x4e14[1279]](_0xa132x5,0.3*_0xa132x9,0.8*_0xa132x5,0.1*_0xa132x9,0.625*_0xa132x5,0.2*_0xa132x9);_0xa132x2[_0x4e14[1279]](0.5*_0xa132x5,0.05*_0xa132x9,0.3*_0xa132x5,0.05*_0xa132x9,0.25*_0xa132x5,0.25*_0xa132x9);_0xa132x2[_0x4e14[268]]();};function mxRectangleShape(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxRectangleShape,mxShape);mxRectangleShape[_0x4e14[202]][_0x4e14[1567]]=function(){return !this[_0x4e14[1606]]&&!this[_0x4e14[617]]&&0==this[_0x4e14[603]]};mxRectangleShape[_0x4e14[202]][_0x4e14[1601]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(this[_0x4e14[1606]]){var _0xa132xa=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0x4e14[1557]])/100,_0xa132xa=Math[_0x4e14[243]](_0xa132x5*_0xa132xa,_0xa132x9*_0xa132xa);_0xa132x2[_0x4e14[1320]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132xa);}else {_0xa132x2[_0x4e14[1319]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9)};_0xa132x2[_0x4e14[1337]]();};mxRectangleShape[_0x4e14[202]][_0x4e14[1602]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){this[_0x4e14[617]]&&this[_0x4e14[1604]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,this[_0x4e14[1603]](_0xa132x5+this[_0x4e14[1307]],_0xa132x9+this[_0x4e14[1307]]))};mxRectangleShape[_0x4e14[202]][_0x4e14[1575]]=function(){this[_0x4e14[1626]](this[_0x4e14[252]]);this[_0x4e14[1627]](this[_0x4e14[252]]);this[_0x4e14[1628]](this[_0x4e14[252]]);};mxRectangleShape[_0x4e14[202]][_0x4e14[1626]]=function(_0xa132x2){var _0xa132x3=9<=document[_0x4e14[5]]?0:Math[_0x4e14[430]](this[_0x4e14[1307]]*this[_0x4e14[255]]);_0xa132x2[_0x4e14[124]][_0x4e14[1629]]=Math[_0x4e14[160]](1,_0xa132x3)+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[277]]=_0x4e14[188];_0xa132x2[_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]]-_0xa132x3/2)+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]]-_0xa132x3/2)+_0x4e14[168];_0x4e14[462]==document[_0x4e14[135]]&&(_0xa132x3= -_0xa132x3);_0xa132x2[_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[488]](Math[_0x4e14[160]](0,this[_0x4e14[1562]][_0x4e14[117]]+_0xa132x3))+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[119]]=Math[_0x4e14[488]](Math[_0x4e14[160]](0,this[_0x4e14[1562]][_0x4e14[119]]+_0xa132x3))+_0x4e14[168];};mxRectangleShape[_0x4e14[202]][_0x4e14[1628]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1336]];null!=_0xa132x3&&_0xa132x3!=mxConstants[_0x4e14[217]]?(_0xa132x2[_0x4e14[124]][_0x4e14[1630]]=_0xa132x3,this[_0x4e14[1522]]?_0xa132x2[_0x4e14[124]][_0x4e14[465]]=_0x4e14[648]:0<this[_0x4e14[1307]]&&(_0xa132x2[_0x4e14[124]][_0x4e14[465]]=_0x4e14[1631]),_0xa132x2[_0x4e14[124]][_0x4e14[1629]]=Math[_0x4e14[160]](1,Math[_0x4e14[430]](this[_0x4e14[1307]]*this[_0x4e14[255]]))+_0x4e14[168]):_0xa132x2[_0x4e14[124]][_0x4e14[1629]]=_0x4e14[946];_0xa132x3=this[_0x4e14[1334]];null!=_0xa132x3&&_0xa132x3!=mxConstants[_0x4e14[217]]?(_0xa132x2[_0x4e14[124]][_0x4e14[1028]]=_0xa132x3,_0xa132x2[_0x4e14[124]][_0x4e14[1617]]=_0x4e14[130]):this[_0x4e14[1229]]?_0xa132x2[_0x4e14[124]][_0x4e14[1028]]=_0x4e14[1373]:8==document[_0x4e14[5]]?mxUtils[_0x4e14[1584]](_0xa132x2):this[_0x4e14[1600]](_0xa132x2);};mxRectangleShape[_0x4e14[202]][_0x4e14[1627]]=function(_0xa132x2){var _0xa132x3=_0x4e14[110];100>this[_0x4e14[461]]&&(_0xa132x3+=_0x4e14[459]+this[_0x4e14[461]]+_0x4e14[460]);this[_0x4e14[1596]]&&(_0xa132x3+=_0x4e14[1632]+Math[_0x4e14[488]](mxConstants[_0x4e14[1237]]*this[_0x4e14[255]])+_0x4e14[1633]+Math[_0x4e14[488]](mxConstants[_0x4e14[1238]]*this[_0x4e14[255]])+_0x4e14[1634]+mxConstants[_0x4e14[1235]]+_0x4e14[1635]);if(this[_0x4e14[1299]]){var _0xa132x4=this[_0x4e14[1334]],_0xa132x5=this[_0x4e14[1299]],_0xa132x9=_0x4e14[468],_0xa132xa={east:0,south:1,west:2,north:3},_0xa132x12=null!=this[_0x4e14[663]]?_0xa132xa[this[_0x4e14[663]]]:0;null!=this[_0x4e14[607]]&&(_0xa132x12=mxUtils[_0x4e14[1454]](_0xa132x12+_0xa132xa[this[_0x4e14[607]]]-1,4));1==_0xa132x12?(_0xa132x9=_0x4e14[500],_0xa132xa=_0xa132x4,_0xa132x4=_0xa132x5,_0xa132x5=_0xa132xa):2==_0xa132x12?(_0xa132xa=_0xa132x4,_0xa132x4=_0xa132x5,_0xa132x5=_0xa132xa):3==_0xa132x12&&(_0xa132x9=_0x4e14[500]);_0xa132x3+=_0x4e14[1636]+_0xa132x4+_0x4e14[1637]+_0xa132x5+_0x4e14[1638]+_0xa132x9+_0x4e14[1635];};_0xa132x2[_0x4e14[124]][_0x4e14[347]]=_0xa132x3;};function mxEllipse(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxEllipse,mxShape);mxEllipse[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[680]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[1337]]();};function mxDoubleEllipse(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxDoubleEllipse,mxShape);mxDoubleEllipse[_0x4e14[202]][_0x4e14[1460]]=10;mxDoubleEllipse[_0x4e14[202]][_0x4e14[1601]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[680]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[1337]]();};mxDoubleEllipse[_0x4e14[202]][_0x4e14[1602]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=Math[_0x4e14[243]](4,Math[_0x4e14[243]](_0xa132x5/5,_0xa132x9/5));_0xa132x5-=2*_0xa132xa;_0xa132x9-=2*_0xa132xa;0<_0xa132x5&&0<_0xa132x9&&_0xa132x2[_0x4e14[680]](_0xa132x3+_0xa132xa,_0xa132x4+_0xa132xa,_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[1336]]();};function mxRhombus(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxRhombus,mxShape);mxRhombus[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=_0xa132x5/2,_0xa132x12=_0xa132x9/2;_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x3+_0xa132xa,_0xa132x4);_0xa132x2[_0x4e14[1277]](_0xa132x3+_0xa132x5,_0xa132x4+_0xa132x12);_0xa132x2[_0x4e14[1277]](_0xa132x3+_0xa132xa,_0xa132x4+_0xa132x9);_0xa132x2[_0x4e14[1277]](_0xa132x3,_0xa132x4+_0xa132x12);_0xa132x2[_0x4e14[268]]();_0xa132x2[_0x4e14[1337]]();};function mxPolyline(_0xa132x2,_0xa132x3,_0xa132x4){mxShape[_0x4e14[239]](this);this[_0x4e14[1525]]=_0xa132x2;this[_0x4e14[1336]]=_0xa132x3;this[_0x4e14[1307]]=null!=_0xa132x4?_0xa132x4:1;}mxUtils[_0x4e14[1284]](mxPolyline,mxShape);mxPolyline[_0x4e14[202]][_0x4e14[1614]]=function(){return 0};mxPolyline[_0x4e14[202]][_0x4e14[1594]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1639]](_0xa132x2,_0xa132x3,this[_0x4e14[1606]])};mxPolyline[_0x4e14[202]][_0x4e14[1639]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,_0xa132x9=_0xa132x3[0],_0xa132xa=_0xa132x3[_0xa132x3[_0x4e14[67]]-1];_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]]);for(var _0xa132x12=1;_0xa132x12<_0xa132x3[_0x4e14[67]]-1;_0xa132x12++){var _0xa132x13=_0xa132x3[_0xa132x12],_0xa132x14=_0xa132x9[_0x4e14[235]]-_0xa132x13[_0x4e14[235]],_0xa132x9=_0xa132x9[_0x4e14[236]]-_0xa132x13[_0x4e14[236]];if(_0xa132x4&&_0xa132x12<_0xa132x3[_0x4e14[67]]-1&&(0!=_0xa132x14||0!=_0xa132x9)){var _0xa132x15=Math[_0x4e14[428]](_0xa132x14*_0xa132x14+_0xa132x9*_0xa132x9),_0xa132x14=_0xa132x14*Math[_0x4e14[243]](_0xa132x5,_0xa132x15/2)/_0xa132x15,_0xa132x9=_0xa132x9*Math[_0x4e14[243]](_0xa132x5,_0xa132x15/2)/_0xa132x15;_0xa132x2[_0x4e14[1277]](_0xa132x13[_0x4e14[235]]+_0xa132x14,_0xa132x13[_0x4e14[236]]+_0xa132x9);_0xa132x9=_0xa132x3[_0xa132x12+1];_0xa132x14=_0xa132x9[_0x4e14[235]]-_0xa132x13[_0x4e14[235]];_0xa132x9=_0xa132x9[_0x4e14[236]]-_0xa132x13[_0x4e14[236]];_0xa132x15=Math[_0x4e14[160]](1,Math[_0x4e14[428]](_0xa132x14*_0xa132x14+_0xa132x9*_0xa132x9));_0xa132x14=_0xa132x14*Math[_0x4e14[243]](_0xa132x5,_0xa132x15/2)/_0xa132x15;_0xa132x9=_0xa132x9*Math[_0x4e14[243]](_0xa132x5,_0xa132x15/2)/_0xa132x15;_0xa132x14=_0xa132x13[_0x4e14[235]]+_0xa132x14;_0xa132x9=_0xa132x13[_0x4e14[236]]+_0xa132x9;_0xa132x2[_0x4e14[1278]](_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]],_0xa132x14,_0xa132x9);_0xa132x13= new mxPoint(_0xa132x14,_0xa132x9);}else {_0xa132x2[_0x4e14[1277]](_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]])};_0xa132x9=_0xa132x13;};_0xa132x2[_0x4e14[1277]](_0xa132xa[_0x4e14[235]],_0xa132xa[_0x4e14[236]]);_0xa132x2[_0x4e14[1336]]();};function mxArrow(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12){mxShape[_0x4e14[239]](this);this[_0x4e14[1525]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;this[_0x4e14[1640]]=null!=_0xa132x9?_0xa132x9:mxConstants[_0x4e14[1641]];this[_0x4e14[657]]=null!=_0xa132xa?_0xa132xa:mxConstants[_0x4e14[1642]];this[_0x4e14[643]]=null!=_0xa132x12?_0xa132x12:mxConstants[_0x4e14[1643]];}mxUtils[_0x4e14[1284]](mxArrow,mxShape);mxArrow[_0x4e14[202]][_0x4e14[1594]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=mxConstants[_0x4e14[1642]],_0xa132x5=mxConstants[_0x4e14[1641]],_0xa132x9=mxConstants[_0x4e14[1643]],_0xa132xa=_0xa132x3[0],_0xa132x12=_0xa132x3[_0xa132x3[_0x4e14[67]]-1],_0xa132x13=_0xa132x12[_0x4e14[235]]-_0xa132xa[_0x4e14[235]],_0xa132x14=_0xa132x12[_0x4e14[236]]-_0xa132xa[_0x4e14[236]],_0xa132x15=Math[_0x4e14[428]](_0xa132x13*_0xa132x13+_0xa132x14*_0xa132x14),_0xa132x16=_0xa132x15-2*_0xa132x4-_0xa132x9,_0xa132x13=_0xa132x13/_0xa132x15,_0xa132x14=_0xa132x14/_0xa132x15,_0xa132x15=_0xa132x5*_0xa132x14/3,_0xa132x5=-_0xa132x5*_0xa132x13/3,_0xa132x9=_0xa132xa[_0x4e14[235]]-_0xa132x15/2+_0xa132x4*_0xa132x13,_0xa132xa=_0xa132xa[_0x4e14[236]]-_0xa132x5/2+_0xa132x4*_0xa132x14,_0xa132x17=_0xa132x9+_0xa132x15,_0xa132x18=_0xa132xa+_0xa132x5,_0xa132x19=_0xa132x17+_0xa132x16*_0xa132x13,_0xa132x16=_0xa132x18+_0xa132x16*_0xa132x14,_0xa132x1a=_0xa132x19+_0xa132x15,_0xa132x1b=_0xa132x16+_0xa132x5,_0xa132x1c=_0xa132x1a-3*_0xa132x15,_0xa132x1d=_0xa132x1b-3*_0xa132x5;_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x9,_0xa132xa);_0xa132x2[_0x4e14[1277]](_0xa132x17,_0xa132x18);_0xa132x2[_0x4e14[1277]](_0xa132x19,_0xa132x16);_0xa132x2[_0x4e14[1277]](_0xa132x1a,_0xa132x1b);_0xa132x2[_0x4e14[1277]](_0xa132x12[_0x4e14[235]]-_0xa132x4*_0xa132x13,_0xa132x12[_0x4e14[236]]-_0xa132x4*_0xa132x14);_0xa132x2[_0x4e14[1277]](_0xa132x1c,_0xa132x1d);_0xa132x2[_0x4e14[1277]](_0xa132x1c+_0xa132x15,_0xa132x1d+_0xa132x5);_0xa132x2[_0x4e14[268]]();_0xa132x2[_0x4e14[1337]]();};function mxText(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15,_0xa132x16,_0xa132x17,_0xa132x18,_0xa132x19,_0xa132x1a,_0xa132x1b,_0xa132x1c,_0xa132x1d,_0xa132x1e,_0xa132x1f){mxShape[_0x4e14[239]](this);this[_0x4e14[131]]=_0xa132x2;this[_0x4e14[1562]]=_0xa132x3;this[_0x4e14[352]]=null!=_0xa132x9?_0xa132x9:_0x4e14[586];this[_0x4e14[611]]=null!=_0xa132x4?_0xa132x4:_0x4e14[110];this[_0x4e14[552]]=null!=_0xa132x5?_0xa132x5:_0x4e14[110];this[_0x4e14[1288]]=null!=_0xa132xa?_0xa132xa:mxConstants[_0x4e14[484]];this[_0x4e14[803]]=null!=_0xa132x12?_0xa132x12:mxConstants[_0x4e14[483]];this[_0x4e14[666]]=null!=_0xa132x13?_0xa132x13:mxConstants[_0x4e14[1644]];this[_0x4e14[657]]=parseInt(_0xa132x14||2);this[_0x4e14[658]]=this[_0x4e14[657]]+parseInt(_0xa132x15||0);this[_0x4e14[661]]=this[_0x4e14[657]]+parseInt(_0xa132x16||0);this[_0x4e14[660]]=this[_0x4e14[657]]+parseInt(_0xa132x17||0);this[_0x4e14[659]]=this[_0x4e14[657]]+parseInt(_0xa132x18||0);this[_0x4e14[662]]=null!=_0xa132x19?_0xa132x19:!0;this[_0x4e14[1537]]=_0xa132x1a;this[_0x4e14[467]]=_0xa132x1b;this[_0x4e14[1333]]=null!=_0xa132x1c?_0xa132x1c:!1;this[_0x4e14[1645]]=null!=_0xa132x1d?_0xa132x1d:!1;this[_0x4e14[277]]=null!=_0xa132x1e?_0xa132x1e:_0x4e14[189];this[_0x4e14[629]]=null!=_0xa132x1f?_0xa132x1f:0;this[_0x4e14[603]]=0;}mxUtils[_0x4e14[1284]](mxText,mxShape);mxText[_0x4e14[202]][_0x4e14[1646]]=0;mxText[_0x4e14[202]][_0x4e14[1647]]=0;mxText[_0x4e14[202]][_0x4e14[1648]]=0;mxText[_0x4e14[202]][_0x4e14[1649]]=0;mxText[_0x4e14[202]][_0x4e14[1650]]= !0;mxText[_0x4e14[202]][_0x4e14[1616]]= -90;mxText[_0x4e14[202]][_0x4e14[1651]]= !0;mxText[_0x4e14[202]][_0x4e14[1652]]= !1;mxText[_0x4e14[202]][_0x4e14[1566]]=function(){return !1};mxText[_0x4e14[202]][_0x4e14[1567]]=function(){return 8!=document[_0x4e14[5]]};mxText[_0x4e14[202]][_0x4e14[1568]]=function(){return 0};mxText[_0x4e14[202]][_0x4e14[1574]]=function(){return null!=this[_0x4e14[1562]]&&!isNaN(this[_0x4e14[1562]][_0x4e14[235]])&&!isNaN(this[_0x4e14[1562]][_0x4e14[236]])&&!isNaN(this[_0x4e14[1562]][_0x4e14[117]])&&!isNaN(this[_0x4e14[1562]][_0x4e14[119]])};mxText[_0x4e14[202]][_0x4e14[1577]]=function(){var _0xa132x2=this[_0x4e14[252]];8==document[_0x4e14[5]]&&null!=_0xa132x2[_0x4e14[285]]&&(_0xa132x2=_0xa132x2[_0x4e14[285]],null!=_0xa132x2[_0x4e14[285]]&&(_0xa132x2=_0xa132x2[_0x4e14[285]]));this[_0x4e14[1563]]=this[_0x4e14[1562]][_0x4e14[238]]();var _0xa132x3=this[_0x4e14[1615]]();if(!this[_0x4e14[1652]]&&null!=_0xa132x2&&_0x4e14[1334]!=this[_0x4e14[277]]&&(!this[_0x4e14[1645]]||!this[_0x4e14[1651]])){var _0xa132x4=null,_0xa132x5=null;if(null!=_0xa132x2[_0x4e14[538]]){if(null!=_0xa132x2[_0x4e14[285]]&&null!=_0xa132x2[_0x4e14[285]][_0x4e14[285]]&&_0x4e14[1435]==_0xa132x2[_0x4e14[285]][_0x4e14[285]][_0x4e14[301]]){_0xa132x2=_0xa132x2[_0x4e14[285]][_0x4e14[285]],_0xa132x4=this[_0x4e14[1333]]?this[_0x4e14[1562]][_0x4e14[117]]:parseInt(_0xa132x2[_0x4e14[284]](_0x4e14[117]))*this[_0x4e14[255]],_0xa132x5=parseInt(_0xa132x2[_0x4e14[284]](_0x4e14[119]))*this[_0x4e14[255]]}else {_0xa132x3=_0xa132x2[_0x4e14[1451]]();if(0==_0xa132x3[_0x4e14[117]]&&0==_0xa132x3[_0x4e14[119]]){return };this[_0x4e14[1563]]= new mxRectangle(_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]],_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]]);_0xa132x3=0;}}else {_0xa132x5=this[_0x4e14[724]][_0x4e14[441]][_0x4e14[1653]],null!=this[_0x4e14[359]]&&null!=this[_0x4e14[167]]?(_0xa132x4=this[_0x4e14[1333]]?this[_0x4e14[1562]][_0x4e14[117]]:this[_0x4e14[359]]*this[_0x4e14[255]],_0xa132x5=this[_0x4e14[167]]*this[_0x4e14[255]]):null!=_0xa132x5?(this[_0x4e14[1441]](_0xa132x5),this[_0x4e14[1654]](_0xa132x5),mxUtils[_0x4e14[1331]](this[_0x4e14[131]])?_0xa132x5[_0x4e14[339]]=this[_0x4e14[131]][_0x4e14[342]]:(_0xa132x4=this[_0x4e14[1650]]?this[_0x4e14[131]][_0x4e14[230]](/\n/g,_0x4e14[1453]):this[_0x4e14[131]],_0xa132x5[_0x4e14[339]]=_0xa132x4),_0xa132x4=this[_0x4e14[1333]]?this[_0x4e14[1562]][_0x4e14[117]]:_0xa132x5[_0x4e14[359]]*this[_0x4e14[255]],_0xa132x5=_0xa132x5[_0x4e14[167]]*this[_0x4e14[255]]):(_0xa132x4=this[_0x4e14[1333]]?this[_0x4e14[1562]][_0x4e14[117]]:_0xa132x2[_0x4e14[359]]*this[_0x4e14[255]],_0xa132x5=_0xa132x2[_0x4e14[167]]*this[_0x4e14[255]])};null!=_0xa132x4&&null!=_0xa132x5&&(this[_0x4e14[1563]]= new mxRectangle(this[_0x4e14[1562]][_0x4e14[235]]+this[_0x4e14[1655]][_0x4e14[235]]*_0xa132x4,this[_0x4e14[1562]][_0x4e14[236]]+this[_0x4e14[1655]][_0x4e14[236]]*_0xa132x5,_0xa132x4,_0xa132x5));}else {this[_0x4e14[1563]][_0x4e14[235]]+=this[_0x4e14[1655]][_0x4e14[235]]*this[_0x4e14[1563]][_0x4e14[117]],this[_0x4e14[1563]][_0x4e14[236]]+=this[_0x4e14[1655]][_0x4e14[236]]*this[_0x4e14[1563]][_0x4e14[119]]};null!=this[_0x4e14[1563]]&&(0!=_0xa132x3&&(_0xa132x3=mxUtils[_0x4e14[1613]](this[_0x4e14[1563]],_0xa132x3),this[_0x4e14[1563]][_0x4e14[235]]=_0xa132x3[_0x4e14[235]],this[_0x4e14[1563]][_0x4e14[236]]=_0xa132x3[_0x4e14[236]],mxClient[_0x4e14[496]]||(this[_0x4e14[1563]][_0x4e14[117]]=_0xa132x3[_0x4e14[117]],this[_0x4e14[1563]][_0x4e14[119]]=_0xa132x3[_0x4e14[119]])),this[_0x4e14[1563]][_0x4e14[235]]=Math[_0x4e14[519]](this[_0x4e14[1563]][_0x4e14[235]]),this[_0x4e14[1563]][_0x4e14[236]]=Math[_0x4e14[519]](this[_0x4e14[1563]][_0x4e14[236]]),this[_0x4e14[1563]][_0x4e14[117]]=Math[_0x4e14[430]](this[_0x4e14[1563]][_0x4e14[117]]),this[_0x4e14[1563]][_0x4e14[119]]=Math[_0x4e14[430]](this[_0x4e14[1563]][_0x4e14[119]]));};mxText[_0x4e14[202]][_0x4e14[1598]]=function(){return 0};mxText[_0x4e14[202]][_0x4e14[1615]]=function(){return null!=this[_0x4e14[724]]&&null!=this[_0x4e14[724]][_0x4e14[253]]?this[_0x4e14[724]][_0x4e14[253]][_0x4e14[1615]]():0};mxText[_0x4e14[202]][_0x4e14[1590]]=function(){return !this[_0x4e14[662]]&&null!=this[_0x4e14[724]]&&this[_0x4e14[724]][_0x4e14[441]][_0x4e14[1179]][_0x4e14[251]][_0x4e14[1193]](this[_0x4e14[724]][_0x4e14[246]])};mxText[_0x4e14[202]][_0x4e14[1592]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){mxShape[_0x4e14[202]][_0x4e14[1592]][_0x4e14[183]](this,arguments);_0xa132x2[_0x4e14[1259]](this[_0x4e14[352]]);_0xa132x2[_0x4e14[1260]](this[_0x4e14[1537]]);_0xa132x2[_0x4e14[1262]](this[_0x4e14[467]]);_0xa132x2[_0x4e14[1265]](this[_0x4e14[1288]]);_0xa132x2[_0x4e14[1264]](this[_0x4e14[803]]);_0xa132x2[_0x4e14[1266]](this[_0x4e14[666]]);};mxText[_0x4e14[202]][_0x4e14[1586]]=function(){this[_0x4e14[252]][_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]])+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]])+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[117]]=_0x4e14[942];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[119]]=_0x4e14[942];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[277]]=_0x4e14[189];};mxText[_0x4e14[202]][_0x4e14[1209]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[255]],_0xa132x4=this[_0x4e14[1562]][_0x4e14[235]]/_0xa132x3,_0xa132x5=this[_0x4e14[1562]][_0x4e14[236]]/_0xa132x3,_0xa132x9=this[_0x4e14[1562]][_0x4e14[117]]/_0xa132x3,_0xa132x3=this[_0x4e14[1562]][_0x4e14[119]]/_0xa132x3;this[_0x4e14[1591]](_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132x3);this[_0x4e14[1592]](_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132x3);var _0xa132xa=mxUtils[_0x4e14[1331]](this[_0x4e14[131]])||this[_0x4e14[507]]==mxConstants[_0x4e14[1656]],_0xa132x12=_0xa132xa||_0xa132x2 instanceof mxVmlCanvas2D?_0x4e14[1428]:_0x4e14[110],_0xa132x13=this[_0x4e14[131]];!_0xa132xa&&_0x4e14[1428]==_0xa132x12&&(_0xa132x13=mxUtils[_0x4e14[321]](_0xa132x13,!1));_0xa132x13=!mxUtils[_0x4e14[1331]](this[_0x4e14[131]])&&this[_0x4e14[1650]]&&_0x4e14[1428]==_0xa132x12?_0xa132x13[_0x4e14[230]](/\n/g,_0x4e14[1453]):_0xa132x13;_0xa132x2[_0x4e14[963]](_0xa132x4,_0xa132x5,_0xa132x9,_0xa132x3,_0xa132x13,this[_0x4e14[611]],this[_0x4e14[552]],this[_0x4e14[1333]],_0xa132x12,_0x4e14[1334]==this[_0x4e14[277]],this[_0x4e14[1645]],this[_0x4e14[1615]]());};mxText[_0x4e14[202]][_0x4e14[1575]]=function(){var _0xa132x2=this[_0x4e14[252]][_0x4e14[124]];_0xa132x2[_0x4e14[461]]=1>this[_0x4e14[461]]?this[_0x4e14[461]]:_0x4e14[110];_0xa132x2[_0x4e14[277]]=_0x4e14[110];_0xa132x2[_0x4e14[117]]=_0x4e14[110];_0xa132x2[_0x4e14[119]]=_0x4e14[110];this[_0x4e14[1441]](this[_0x4e14[252]]);this[_0x4e14[1654]](this[_0x4e14[252]]);this[_0x4e14[1657]]();this[_0x4e14[167]]=this[_0x4e14[359]]=null;null!=mxClient[_0x4e14[73]]?this[_0x4e14[1658]]():this[_0x4e14[1659]]();};mxText[_0x4e14[202]][_0x4e14[1658]]=function(){var _0xa132x2=this[_0x4e14[1615]](),_0xa132x3=this[_0x4e14[252]][_0x4e14[124]],_0xa132x4=this[_0x4e14[1655]][_0x4e14[235]],_0xa132x5=this[_0x4e14[1655]][_0x4e14[236]];0!=_0xa132x2?(_0xa132x3[mxClient[_0x4e14[73]]+_0x4e14[1660]]=100*-_0xa132x4+_0x4e14[1661]+100*-_0xa132x5+_0x4e14[229],_0xa132x3[mxClient[_0x4e14[73]]+_0x4e14[1662]]=_0x4e14[536]+100*_0xa132x4+_0x4e14[1663]+100*_0xa132x5+_0x4e14[1664]+this[_0x4e14[255]]+_0x4e14[1665]+_0xa132x2+_0x4e14[1666]):(_0xa132x3[mxClient[_0x4e14[73]]+_0x4e14[1660]]=_0x4e14[1667],_0xa132x3[mxClient[_0x4e14[73]]+_0x4e14[1662]]=_0x4e14[1402]+this[_0x4e14[255]]+_0x4e14[1393]+100*_0xa132x4+_0x4e14[1663]+100*_0xa132x5+_0x4e14[1668]);_0xa132x3[_0x4e14[361]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]])+_0x4e14[168];_0xa132x3[_0x4e14[125]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]])+_0x4e14[168];};mxText[_0x4e14[202]][_0x4e14[1659]]=function(){var _0xa132x2=this[_0x4e14[252]][_0x4e14[124]],_0xa132x3=this[_0x4e14[1655]][_0x4e14[235]],_0xa132x4=this[_0x4e14[1655]][_0x4e14[236]],_0xa132x5=this[_0x4e14[255]];_0xa132x2[_0x4e14[347]]=_0x4e14[110];var _0xa132x9=0,_0xa132xa=0,_0xa132x12=null!=this[_0x4e14[724]]?this[_0x4e14[724]][_0x4e14[441]][_0x4e14[1653]]:null;if(null!=_0xa132x12){_0xa132x12[_0x4e14[124]][_0x4e14[277]]=_0x4e14[110];_0xa132x12[_0x4e14[124]][_0x4e14[119]]=_0x4e14[110];_0xa132x12[_0x4e14[124]][_0x4e14[117]]=_0x4e14[110];this[_0x4e14[1441]](_0xa132x12);this[_0x4e14[1654]](_0xa132x12);if(mxUtils[_0x4e14[1331]](this[_0x4e14[131]])){_0xa132x12[_0x4e14[339]]=this[_0x4e14[131]][_0x4e14[342]]}else {var _0xa132x13=this[_0x4e14[131]];this[_0x4e14[507]]!=mxConstants[_0x4e14[1656]]&&(_0xa132x13=mxUtils[_0x4e14[321]](_0xa132x13,!1));_0xa132x13=this[_0x4e14[1650]]?_0xa132x13[_0x4e14[230]](/\n/g,_0x4e14[1453]):_0xa132x13;_0xa132x12[_0x4e14[339]]=_0xa132x13;};_0xa132x9=_0xa132x12[_0x4e14[359]]+2;_0xa132xa=_0xa132x12[_0x4e14[167]]+2;}else {_0xa132x9=this[_0x4e14[252]][_0x4e14[359]],_0xa132xa=this[_0x4e14[252]][_0x4e14[167]]+1};this[_0x4e14[359]]=_0xa132x9;this[_0x4e14[167]]=_0xa132xa;_0xa132x12=this[_0x4e14[1562]][_0x4e14[117]]/_0xa132x5;_0xa132x13=this[_0x4e14[1562]][_0x4e14[119]]/_0xa132x5;mxClient[_0x4e14[496]]&&(this[_0x4e14[1645]]||_0x4e14[1334]==this[_0x4e14[277]])&&0<_0xa132x13?(_0xa132x13=Math[_0x4e14[243]](_0xa132x13,_0xa132xa),_0xa132x2[_0x4e14[119]]=Math[_0x4e14[488]](_0xa132x13+1)+_0x4e14[168]):_0xa132x13=_0xa132xa;_0x4e14[1334]!=this[_0x4e14[277]]&&(mxClient[_0x4e14[496]]&&(this[_0x4e14[1645]]||this[_0x4e14[1333]])&&0<_0xa132x12?(_0xa132x12=Math[_0x4e14[243]](_0xa132x12,_0xa132x9),_0xa132x2[_0x4e14[117]]=Math[_0x4e14[488]](_0xa132x12)+_0x4e14[168]):_0xa132x12=_0xa132x9);var _0xa132x13=_0xa132x13*_0xa132x5,_0xa132x12=_0xa132x12*_0xa132x5,_0xa132x9=this[_0x4e14[1615]]()*(Math[_0x4e14[424]]/180),_0xa132xa=parseFloat(parseFloat(Math[_0x4e14[426]](_0xa132x9))[_0x4e14[1293]](8)),_0xa132x14=parseFloat(parseFloat(Math[_0x4e14[427]](-_0xa132x9))[_0x4e14[1293]](8)),_0xa132x9=_0xa132x9%(2*Math[_0x4e14[424]]);0>_0xa132x9&&(_0xa132x9+=2*Math[_0x4e14[424]]);_0xa132x9%=Math[_0x4e14[424]];_0xa132x9>Math[_0x4e14[424]]/2&&(_0xa132x9=Math[_0x4e14[424]]-_0xa132x9);var _0xa132x15=Math[_0x4e14[426]](_0xa132x9),_0xa132x16=Math[_0x4e14[427]](-_0xa132x9),_0xa132x3=_0xa132x12* -(_0xa132x3+0.5),_0xa132x4=_0xa132x13* -(_0xa132x4+0.5),_0xa132x17=(_0xa132x13-_0xa132x13*_0xa132x15+_0xa132x12*_0xa132x16)/2+_0xa132x14*_0xa132x3-_0xa132xa*_0xa132x4;0!=_0xa132x9&&(_0xa132x2[_0x4e14[347]]=_0x4e14[1505]+_0xa132xa+_0x4e14[1506]+_0xa132x14+_0x4e14[1507]+-_0xa132x14+_0x4e14[1508]+_0xa132xa+_0x4e14[1509]);_0xa132x2[_0x4e14[499]]=_0xa132x5;_0xa132x2[_0x4e14[361]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]]+((_0xa132x12-_0xa132x12*_0xa132x15+_0xa132x13*_0xa132x16)/2-_0xa132xa*_0xa132x3-_0xa132x14*_0xa132x4)-_0xa132x12/2)+_0x4e14[168];_0xa132x2[_0x4e14[125]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]]+_0xa132x17-_0xa132x13/2)+_0x4e14[168];};mxText[_0x4e14[202]][_0x4e14[1657]]=function(){if(mxUtils[_0x4e14[1331]](this[_0x4e14[131]])){this[_0x4e14[252]][_0x4e14[339]]=_0x4e14[110],this[_0x4e14[252]][_0x4e14[62]](this[_0x4e14[131]])}else {var _0xa132x2=this[_0x4e14[131]];this[_0x4e14[507]]!=mxConstants[_0x4e14[1656]]&&(_0xa132x2=mxUtils[_0x4e14[321]](_0xa132x2,!1));var _0xa132x2=this[_0x4e14[1650]]?_0xa132x2[_0x4e14[230]](/\n/g,_0x4e14[1453]):_0xa132x2,_0xa132x3=null!=this[_0x4e14[1537]]&&this[_0x4e14[1537]]!=mxConstants[_0x4e14[217]]?this[_0x4e14[1537]]:null,_0xa132x4=null!=this[_0x4e14[467]]&&this[_0x4e14[467]]!=mxConstants[_0x4e14[217]]?this[_0x4e14[467]]:null;if(null!=_0xa132x3||null!=_0xa132x4){if(_0x4e14[1334]==this[_0x4e14[277]]){null!=_0xa132x3&&(this[_0x4e14[252]][_0x4e14[124]][_0x4e14[1028]]=_0xa132x3),null!=_0xa132x4&&(this[_0x4e14[252]][_0x4e14[124]][_0x4e14[467]]=_0x4e14[1669]+_0xa132x4)}else {var _0xa132x5=_0x4e14[110];null!=_0xa132x3&&(_0xa132x5+=_0x4e14[1418]+_0xa132x3+_0x4e14[471]);null!=_0xa132x4&&(_0xa132x5+=_0x4e14[1419]+_0xa132x4+_0x4e14[471]);_0xa132x2=_0x4e14[1670]+_0xa132x5+_0x4e14[1671]+this[_0x4e14[252]][_0x4e14[124]][_0x4e14[489]]+_0x4e14[1423]+_0xa132x2+_0x4e14[1424];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[489]]=_0x4e14[110];}};this[_0x4e14[252]][_0x4e14[339]]=_0xa132x2;}};mxText[_0x4e14[202]][_0x4e14[1441]]=function(_0xa132x2){_0xa132x2=_0xa132x2[_0x4e14[124]];_0xa132x2[_0x4e14[489]]=Math[_0x4e14[488]](this[_0x4e14[803]]*mxConstants[_0x4e14[490]])+_0x4e14[168];_0xa132x2[_0x4e14[487]]=Math[_0x4e14[488]](this[_0x4e14[803]])+_0x4e14[168];_0xa132x2[_0x4e14[486]]=this[_0x4e14[1288]];_0xa132x2[_0x4e14[123]]=_0x4e14[125];_0xa132x2[_0x4e14[352]]=this[_0x4e14[352]];_0xa132x2[_0x4e14[1452]]=(this[_0x4e14[666]]&mxConstants[_0x4e14[1410]])==mxConstants[_0x4e14[1410]]?_0x4e14[1447]:_0x4e14[110];_0xa132x2[_0x4e14[666]]=(this[_0x4e14[666]]&mxConstants[_0x4e14[1412]])==mxConstants[_0x4e14[1412]]?_0x4e14[1449]:_0x4e14[110];_0xa132x2[_0x4e14[1498]]=(this[_0x4e14[666]]&mxConstants[_0x4e14[1414]])==mxConstants[_0x4e14[1414]]?_0x4e14[355]:_0x4e14[110];_0xa132x2[_0x4e14[1165]]=this[_0x4e14[611]]==mxConstants[_0x4e14[479]]?_0x4e14[698]:this[_0x4e14[611]]==mxConstants[_0x4e14[480]]?_0x4e14[699]:_0x4e14[361];};mxText[_0x4e14[202]][_0x4e14[1654]]=function(_0xa132x2){var _0xa132x3=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[117]]/this[_0x4e14[255]]),_0xa132x4=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[119]]/this[_0x4e14[255]]);_0xa132x2=_0xa132x2[_0x4e14[124]];this[_0x4e14[1645]]?(_0xa132x2[_0x4e14[277]]=_0x4e14[188],0<_0xa132x4&&(_0xa132x2[_0x4e14[1503]]=_0xa132x4+_0x4e14[168]),0<_0xa132x3&&(_0xa132x2[_0x4e14[117]]=_0xa132x3+_0x4e14[168])):_0x4e14[1334]==this[_0x4e14[277]]&&(_0xa132x2[_0x4e14[117]]=_0xa132x3+_0x4e14[168],0<_0xa132x4&&(_0xa132x2[_0x4e14[1503]]=_0xa132x4+_0x4e14[168]));this[_0x4e14[1333]]?(!this[_0x4e14[1645]]&&0<_0xa132x3&&(_0xa132x2[_0x4e14[117]]=_0xa132x3+_0x4e14[168]),_0xa132x2[_0x4e14[493]]=_0x4e14[1502]):_0xa132x2[_0x4e14[493]]=_0x4e14[494];};mxText[_0x4e14[202]][_0x4e14[1672]]=function(){this[_0x4e14[1655]]=mxUtils[_0x4e14[1501]](this[_0x4e14[611]],this[_0x4e14[552]])};mxText[_0x4e14[202]][_0x4e14[1673]]=function(){var _0xa132x2=0,_0xa132x3=0,_0xa132x2=this[_0x4e14[611]]==mxConstants[_0x4e14[479]]?(this[_0x4e14[659]]-this[_0x4e14[661]])/2:this[_0x4e14[611]]==mxConstants[_0x4e14[480]]?-this[_0x4e14[661]]-this[_0x4e14[1649]]:this[_0x4e14[659]]+this[_0x4e14[1648]],_0xa132x3=this[_0x4e14[552]]==mxConstants[_0x4e14[481]]?(this[_0x4e14[658]]-this[_0x4e14[660]])/2:this[_0x4e14[552]]==mxConstants[_0x4e14[482]]?-this[_0x4e14[660]]-this[_0x4e14[1647]]:this[_0x4e14[658]]+this[_0x4e14[1646]];return  new mxPoint(_0xa132x2,_0xa132x3);};function mxTriangle(){mxActor[_0x4e14[239]](this)}mxUtils[_0x4e14[1284]](mxTriangle,mxActor);mxTriangle[_0x4e14[202]][_0x4e14[1625]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[1276]](0,0);_0xa132x2[_0x4e14[1277]](_0xa132x5,0.5*_0xa132x9);_0xa132x2[_0x4e14[1277]](0,_0xa132x9);_0xa132x2[_0x4e14[268]]();};function mxHexagon(){mxActor[_0x4e14[239]](this)}mxUtils[_0x4e14[1284]](mxHexagon,mxActor);mxHexagon[_0x4e14[202]][_0x4e14[1625]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[1276]](0.25*_0xa132x5,0);_0xa132x2[_0x4e14[1277]](0.75*_0xa132x5,0);_0xa132x2[_0x4e14[1277]](_0xa132x5,0.5*_0xa132x9);_0xa132x2[_0x4e14[1277]](0.75*_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[1277]](0.25*_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[1277]](0,0.5*_0xa132x9);_0xa132x2[_0x4e14[268]]();};function mxLine(_0xa132x2,_0xa132x3,_0xa132x4){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1336]]=_0xa132x3;this[_0x4e14[1307]]=null!=_0xa132x4?_0xa132x4:1;}mxUtils[_0x4e14[1284]](mxLine,mxShape);mxLine[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x4+=_0xa132x9/2;_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x3,_0xa132x4);_0xa132x2[_0x4e14[1277]](_0xa132x3+_0xa132x5,_0xa132x4);_0xa132x2[_0x4e14[1336]]();};function mxImageShape(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[618]]=_0xa132x3;this[_0x4e14[1334]]=_0xa132x4;this[_0x4e14[1336]]=_0xa132x5;this[_0x4e14[1307]]=null!=_0xa132x9?_0xa132x9:1;this[_0x4e14[639]]= !1;}mxUtils[_0x4e14[1284]](mxImageShape,mxRectangleShape);mxImageShape[_0x4e14[202]][_0x4e14[1674]]= !0;mxImageShape[_0x4e14[202]][_0x4e14[1568]]=function(){return !mxClient[_0x4e14[80]]?0.5:0};mxImageShape[_0x4e14[202]][_0x4e14[183]]=function(_0xa132x2){mxShape[_0x4e14[202]][_0x4e14[183]][_0x4e14[183]](this,arguments);this[_0x4e14[1299]]=this[_0x4e14[1336]]=this[_0x4e14[1334]]=null;null!=this[_0x4e14[124]]&&(this[_0x4e14[1334]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_BACKGROUND),this[_0x4e14[1336]]=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_BORDER),this[_0x4e14[1674]]=1==mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_ASPECT,1),this[_0x4e14[623]]=this[_0x4e14[623]]||1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],_0x4e14[1675],0),this[_0x4e14[624]]=this[_0x4e14[624]]||1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],_0x4e14[1676],0));};mxImageShape[_0x4e14[202]][_0x4e14[1567]]=function(){return !this[_0x4e14[1674]]};mxImageShape[_0x4e14[202]][_0x4e14[1570]]=function(){var _0xa132x2=document[_0x4e14[55]](_0x4e14[485]);_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];return _0xa132x2;};mxImageShape[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=this[_0x4e14[618]]){var _0xa132xa=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_BACKGROUND,null),_0xa132x12=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_BORDER,null);if(null!=_0xa132xa||null!=_0xa132x12){_0xa132x2[_0x4e14[1245]](_0xa132xa),_0xa132x2[_0x4e14[1249]](_0xa132x12),_0xa132x2[_0x4e14[1319]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),_0xa132x2[_0x4e14[1337]]()};_0xa132x2[_0x4e14[618]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,this[_0x4e14[618]],this[_0x4e14[1674]],!1,!1);}else {mxRectangleShape[_0x4e14[202]][_0x4e14[1601]][_0x4e14[183]](this,arguments)}};mxImageShape[_0x4e14[202]][_0x4e14[1575]]=function(){this[_0x4e14[252]][_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]])+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]])+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[160]](0,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[117]]))+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[119]]=Math[_0x4e14[160]](0,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[119]]))+_0x4e14[168];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[1028]]=this[_0x4e14[1334]]||_0x4e14[110];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[1630]]=this[_0x4e14[1336]]||_0x4e14[110];this[_0x4e14[252]][_0x4e14[339]]=_0x4e14[110];if(null!=this[_0x4e14[618]]){var _0xa132x2=document[_0x4e14[55]](mxClient[_0x4e14[49]]||null==mxClient[_0x4e14[73]]&&0!=this[_0x4e14[603]]?mxClient[_0x4e14[463]]+_0x4e14[464]:_0x4e14[466]);_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x2[_0x4e14[390]]=this[_0x4e14[618]];var _0xa132x3=100>this[_0x4e14[461]]?_0x4e14[459]+this[_0x4e14[461]]+_0x4e14[460]:_0x4e14[110];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[347]]=_0xa132x3;this[_0x4e14[623]]&&this[_0x4e14[624]]?_0xa132x3+=_0x4e14[1677]:this[_0x4e14[623]]?_0xa132x3+=_0x4e14[1678]:this[_0x4e14[624]]&&(_0xa132x3+=_0x4e14[1679]);_0xa132x2[_0x4e14[124]][_0x4e14[347]]!=_0xa132x3&&(_0xa132x2[_0x4e14[124]][_0x4e14[347]]=_0xa132x3);_0x4e14[618]==_0xa132x2[_0x4e14[301]]?_0xa132x2[_0x4e14[124]][_0x4e14[603]]=this[_0x4e14[603]]:_0xa132x2[_0x4e14[124]][mxClient[_0x4e14[73]]+_0x4e14[1662]]=_0x4e14[1394]+this[_0x4e14[603]]+_0x4e14[1666];_0xa132x2[_0x4e14[124]][_0x4e14[117]]=this[_0x4e14[252]][_0x4e14[124]][_0x4e14[117]];_0xa132x2[_0x4e14[124]][_0x4e14[119]]=this[_0x4e14[252]][_0x4e14[124]][_0x4e14[119]];this[_0x4e14[252]][_0x4e14[124]][_0x4e14[1617]]=_0x4e14[110];this[_0x4e14[252]][_0x4e14[62]](_0xa132x2);}else {this[_0x4e14[1600]](this[_0x4e14[252]])};};function mxLabel(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxRectangleShape[_0x4e14[239]](this,_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5)}mxUtils[_0x4e14[1284]](mxLabel,mxRectangleShape);mxLabel[_0x4e14[202]][_0x4e14[1680]]=mxConstants[_0x4e14[1681]];mxLabel[_0x4e14[202]][_0x4e14[657]]=2;mxLabel[_0x4e14[202]][_0x4e14[1682]]=10;mxLabel[_0x4e14[202]][_0x4e14[635]]=2;mxLabel[_0x4e14[202]][_0x4e14[176]]=function(_0xa132x2){mxShape[_0x4e14[202]][_0x4e14[176]][_0x4e14[183]](this,arguments);null!=this[_0x4e14[632]]&&null!=this[_0x4e14[630]]&&(this[_0x4e14[1683]]= new this[_0x4e14[630]],this[_0x4e14[1683]][_0x4e14[507]]=this[_0x4e14[507]],this[_0x4e14[1683]][_0x4e14[1562]]=this[_0x4e14[1562]],this[_0x4e14[1683]][_0x4e14[1334]]=this[_0x4e14[632]],this[_0x4e14[1683]][_0x4e14[1336]]=this[_0x4e14[632]],this[_0x4e14[1683]][_0x4e14[1299]]=this[_0x4e14[634]],this[_0x4e14[1683]][_0x4e14[663]]=this[_0x4e14[638]],this[_0x4e14[1683]][_0x4e14[176]](this[_0x4e14[252]]));};mxLabel[_0x4e14[202]][_0x4e14[258]]=function(){null!=this[_0x4e14[1683]]&&(this[_0x4e14[1683]][_0x4e14[1334]]=this[_0x4e14[632]],this[_0x4e14[1683]][_0x4e14[1336]]=this[_0x4e14[632]],this[_0x4e14[1683]][_0x4e14[1299]]=this[_0x4e14[634]],this[_0x4e14[1683]][_0x4e14[663]]=this[_0x4e14[638]]);mxShape[_0x4e14[202]][_0x4e14[258]][_0x4e14[183]](this,arguments);};mxLabel[_0x4e14[202]][_0x4e14[1567]]=function(){return mxRectangleShape[_0x4e14[202]][_0x4e14[1567]][_0x4e14[183]](this,arguments)&&null==this[_0x4e14[632]]&&null==this[_0x4e14[630]]};mxLabel[_0x4e14[202]][_0x4e14[1602]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){this[_0x4e14[1684]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);this[_0x4e14[1685]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);mxRectangleShape[_0x4e14[202]][_0x4e14[1602]][_0x4e14[183]](this,arguments);};mxLabel[_0x4e14[202]][_0x4e14[1684]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){null!=this[_0x4e14[618]]&&(_0xa132x3=this[_0x4e14[1686]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),_0xa132x2[_0x4e14[618]](_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]],_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]],this[_0x4e14[618]],!1,!1,!1))};mxLabel[_0x4e14[202]][_0x4e14[1686]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),_0xa132xa=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0xa132x12=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),_0xa132x13=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),_0xa132x14=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_SPACING,this[_0x4e14[657]])+5;_0xa132x2=_0xa132x9==mxConstants[_0x4e14[479]]?_0xa132x2+(_0xa132x4-_0xa132x12)/2:_0xa132x9==mxConstants[_0x4e14[480]]?_0xa132x2+(_0xa132x4-_0xa132x12-_0xa132x14):_0xa132x2+_0xa132x14;_0xa132x3=_0xa132xa==mxConstants[_0x4e14[1687]]?_0xa132x3+_0xa132x14:_0xa132xa==mxConstants[_0x4e14[482]]?_0xa132x3+(_0xa132x5-_0xa132x13-_0xa132x14):_0xa132x3+(_0xa132x5-_0xa132x13)/2;return  new mxRectangle(_0xa132x2,_0xa132x3,_0xa132x12,_0xa132x13);};mxLabel[_0x4e14[202]][_0x4e14[1685]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){null!=this[_0x4e14[1683]]?(this[_0x4e14[1683]][_0x4e14[1562]]=this[_0x4e14[1688]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),this[_0x4e14[1683]][_0x4e14[1209]](_0xa132x2)):null!=this[_0x4e14[631]]&&(_0xa132x3=this[_0x4e14[1688]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9),_0xa132x2[_0x4e14[618]](_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]],_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]],this[_0x4e14[631]],!1,!1,!1))};mxLabel[_0x4e14[202]][_0x4e14[1688]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),_0xa132xa=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0xa132x12=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_INDICATOR_WIDTH,this[_0x4e14[1682]]),_0xa132x13=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_INDICATOR_HEIGHT,this[_0x4e14[1682]]),_0xa132x14=this[_0x4e14[657]]+5;_0xa132x2=_0xa132x9==mxConstants[_0x4e14[480]]?_0xa132x2+(_0xa132x4-_0xa132x12-_0xa132x14):_0xa132x9==mxConstants[_0x4e14[479]]?_0xa132x2+(_0xa132x4-_0xa132x12)/2:_0xa132x2+_0xa132x14;_0xa132x3=_0xa132xa==mxConstants[_0x4e14[482]]?_0xa132x3+(_0xa132x5-_0xa132x13-_0xa132x14):_0xa132xa==mxConstants[_0x4e14[1687]]?_0xa132x3+_0xa132x14:_0xa132x3+(_0xa132x5-_0xa132x13)/2;return  new mxRectangle(_0xa132x2,_0xa132x3,_0xa132x12,_0xa132x13);};mxLabel[_0x4e14[202]][_0x4e14[1575]]=function(){for(mxRectangleShape[_0x4e14[202]][_0x4e14[1575]][_0x4e14[183]](this,arguments);this[_0x4e14[252]][_0x4e14[1580]]();){this[_0x4e14[252]][_0x4e14[266]](this[_0x4e14[252]][_0x4e14[1581]])};if(null!=this[_0x4e14[618]]){var _0xa132x2=document[_0x4e14[55]](_0x4e14[466]);_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[1500];_0xa132x2[_0x4e14[57]](_0x4e14[467],_0x4e14[468]);var _0xa132x3=this[_0x4e14[1686]](this[_0x4e14[1562]][_0x4e14[235]],this[_0x4e14[1562]][_0x4e14[236]],this[_0x4e14[1562]][_0x4e14[117]],this[_0x4e14[1562]][_0x4e14[119]]);_0xa132x3[_0x4e14[235]]-=this[_0x4e14[1562]][_0x4e14[235]];_0xa132x3[_0x4e14[236]]-=this[_0x4e14[1562]][_0x4e14[236]];_0xa132x2[_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[488]](_0xa132x3[_0x4e14[235]])+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[488]](_0xa132x3[_0x4e14[236]])+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[488]](_0xa132x3[_0x4e14[117]])+_0x4e14[168];_0xa132x2[_0x4e14[124]][_0x4e14[119]]=Math[_0x4e14[488]](_0xa132x3[_0x4e14[119]])+_0x4e14[168];_0xa132x2[_0x4e14[390]]=this[_0x4e14[618]];this[_0x4e14[252]][_0x4e14[62]](_0xa132x2);};};function mxCylinder(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxCylinder,mxShape);mxCylinder[_0x4e14[202]][_0x4e14[1503]]=40;mxCylinder[_0x4e14[202]][_0x4e14[1564]]=0;mxCylinder[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[513]](_0xa132x3,_0xa132x4);_0xa132x2[_0x4e14[1275]]();this[_0x4e14[1625]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,!1);_0xa132x2[_0x4e14[1337]]();_0xa132x2[_0x4e14[1267]](!1);_0xa132x2[_0x4e14[1275]]();this[_0x4e14[1625]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,!0);_0xa132x2[_0x4e14[1336]]();};mxCylinder[_0x4e14[202]][_0x4e14[1625]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x3=Math[_0x4e14[243]](this[_0x4e14[1503]],Math[_0x4e14[488]](_0xa132x9/5));if(_0xa132xa&&null!=this[_0x4e14[1334]]||!_0xa132xa&&null==this[_0x4e14[1334]]){_0xa132x2[_0x4e14[1276]](0,_0xa132x3),_0xa132x2[_0x4e14[1279]](0,2*_0xa132x3,_0xa132x5,2*_0xa132x3,_0xa132x5,_0xa132x3),_0xa132xa||(_0xa132x2[_0x4e14[1336]](),_0xa132x2[_0x4e14[1275]]())};_0xa132xa||(_0xa132x2[_0x4e14[1276]](0,_0xa132x3),_0xa132x2[_0x4e14[1279]](0,-_0xa132x3/3,_0xa132x5,-_0xa132x3/3,_0xa132x5,_0xa132x3),_0xa132x2[_0x4e14[1277]](_0xa132x5,_0xa132x9-_0xa132x3),_0xa132x2[_0x4e14[1279]](_0xa132x5,_0xa132x9+_0xa132x3/3,0,_0xa132x9+_0xa132x3/3,0,_0xa132x9-_0xa132x3),_0xa132x2[_0x4e14[268]]());};function mxConnector(_0xa132x2,_0xa132x3,_0xa132x4){mxPolyline[_0x4e14[239]](this,_0xa132x2,_0xa132x3,_0xa132x4)}mxUtils[_0x4e14[1284]](mxConnector,mxPolyline);mxConnector[_0x4e14[202]][_0x4e14[1594]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1689]](_0xa132x2,_0xa132x3,!0),_0xa132x5=this[_0x4e14[1689]](_0xa132x2,_0xa132x3,!1);null==this[_0x4e14[124]]||1!=this[_0x4e14[124]][mxConstants[_0x4e14[1690]]]?this[_0x4e14[1639]](_0xa132x2,_0xa132x3,this[_0x4e14[1606]]):this[_0x4e14[1691]](_0xa132x2,_0xa132x3);_0xa132x2[_0x4e14[1245]](this[_0x4e14[1336]]);_0xa132x2[_0x4e14[1267]](!1);_0xa132x2[_0x4e14[1251]](!1);null!=_0xa132x4&&_0xa132x4();null!=_0xa132x5&&_0xa132x5();};mxConnector[_0x4e14[202]][_0x4e14[1691]]=function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[1275]]();var _0xa132x4=_0xa132x3[0],_0xa132x5=_0xa132x3[_0x4e14[67]];_0xa132x2[_0x4e14[1276]](_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]]);for(_0xa132x4=1;_0xa132x4<_0xa132x5-2;_0xa132x4++){var _0xa132x9=_0xa132x3[_0xa132x4],_0xa132xa=_0xa132x3[_0xa132x4+1];_0xa132x2[_0x4e14[1278]](_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]],(_0xa132x9[_0x4e14[235]]+_0xa132xa[_0x4e14[235]])/2,(_0xa132x9[_0x4e14[236]]+_0xa132xa[_0x4e14[236]])/2);};_0xa132x9=_0xa132x3[_0xa132x5-2];_0xa132xa=_0xa132x3[_0xa132x5-1];_0xa132x2[_0x4e14[1278]](_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]],_0xa132xa[_0x4e14[235]],_0xa132xa[_0x4e14[236]]);_0xa132x2[_0x4e14[1336]]();};mxConnector[_0x4e14[202]][_0x4e14[1689]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x3[_0x4e14[67]],_0xa132x9=_0xa132x4?_0xa132x3[1]:_0xa132x3[_0xa132x5-2];_0xa132x3=_0xa132x4?_0xa132x3[0]:_0xa132x3[_0xa132x5-1];var _0xa132x5=_0xa132x3[_0x4e14[235]]-_0xa132x9[_0x4e14[235]],_0xa132xa=_0xa132x3[_0x4e14[236]]-_0xa132x9[_0x4e14[236]],_0xa132x12=Math[_0x4e14[160]](1,Math[_0x4e14[428]](_0xa132x5*_0xa132x5+_0xa132xa*_0xa132xa)),_0xa132x9=_0xa132x5/_0xa132x12,_0xa132x5=_0xa132xa/_0xa132x12,_0xa132xa=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],_0xa132x4?mxConstants[_0x4e14[1692]]:mxConstants[_0x4e14[1693]],mxConstants.DEFAULT_MARKERSIZE),_0xa132x12=mxUtils[_0x4e14[433]](this[_0x4e14[124]],_0xa132x4?mxConstants[_0x4e14[1694]]:mxConstants[_0x4e14[1695]]);return mxMarker[_0x4e14[1689]](_0xa132x2,this,_0xa132x12,_0xa132x3,_0xa132x9,_0xa132x5,_0xa132xa,_0xa132x4,this[_0x4e14[1307]],0!=this[_0x4e14[124]][_0xa132x4?mxConstants[_0x4e14[1696]]:mxConstants[_0x4e14[1697]]]);};mxConnector[_0x4e14[202]][_0x4e14[1612]]=function(_0xa132x2){mxShape[_0x4e14[202]][_0x4e14[1612]][_0x4e14[183]](this,arguments);var _0xa132x3=0;mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants[_0x4e14[217]]&&(_0xa132x3=mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants[_0x4e14[217]]&&(_0xa132x3=Math[_0x4e14[160]](_0xa132x3,mxUtils[_0x4e14[1550]](this[_0x4e14[124]],mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1);_0xa132x2[_0x4e14[244]](Math[_0x4e14[430]](_0xa132x3*this[_0x4e14[255]]));};function mxSwimlane(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxShape[_0x4e14[239]](this);this[_0x4e14[1562]]=_0xa132x2;this[_0x4e14[1334]]=_0xa132x3;this[_0x4e14[1336]]=_0xa132x4;this[_0x4e14[1307]]=null!=_0xa132x5?_0xa132x5:1;}mxUtils[_0x4e14[1284]](mxSwimlane,mxShape);mxSwimlane[_0x4e14[202]][_0x4e14[1680]]=16;mxSwimlane[_0x4e14[202]][_0x4e14[1597]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2=Math[_0x4e14[243]](_0xa132x9,mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return  new mxRectangle(_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x2);};mxSwimlane[_0x4e14[202]][_0x4e14[1614]]=function(){var _0xa132x2=mxShape[_0x4e14[202]][_0x4e14[1614]][_0x4e14[183]](this,arguments);1!=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_HORIZONTAL,1)&&(_0xa132x2+=mxText[_0x4e14[202]][_0x4e14[1616]]);return _0xa132x2;};mxSwimlane[_0x4e14[202]][_0x4e14[1615]]=function(){return this[_0x4e14[1614]]()};mxSwimlane[_0x4e14[202]][_0x4e14[1590]]=function(){return mxShape[_0x4e14[202]][_0x4e14[1590]][_0x4e14[183]](this,arguments)||1!=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_HORIZONTAL,1)};mxSwimlane[_0x4e14[202]][_0x4e14[1603]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0x4e14[1557]])/100;return 3*_0xa132x4*_0xa132x2;};mxSwimlane[_0x4e14[202]][_0x4e14[1595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=Math[_0x4e14[243]](_0xa132x9,mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),_0xa132x12=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),_0xa132x13=1==mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_SWIMLANE_LINE,1),_0xa132x14=0;_0xa132x2[_0x4e14[513]](_0xa132x3,_0xa132x4);this[_0x4e14[1606]]?(_0xa132x14=this[_0x4e14[1603]](_0xa132x5,_0xa132x9,_0xa132xa),this[_0x4e14[1698]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x14,_0xa132x12,_0xa132x13)):this[_0x4e14[1699]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13);_0xa132x12=mxUtils[_0x4e14[433]](this[_0x4e14[124]],mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);this[_0x4e14[1700]](_0xa132x2,_0xa132x5,_0xa132xa,_0xa132x9,_0xa132x12);null!=this[_0x4e14[618]]&&(_0xa132x9=this[_0x4e14[1686]](_0xa132x3,_0xa132xa,_0xa132x5,_0xa132x9),_0xa132x2[_0x4e14[618]](_0xa132x9[_0x4e14[235]]-_0xa132x3,_0xa132x9[_0x4e14[236]]-_0xa132x4,_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]],this[_0x4e14[618]],!1,!1,!1));this[_0x4e14[617]]&&(_0xa132x2[_0x4e14[1267]](!1),this[_0x4e14[1604]](_0xa132x2,0,0,_0xa132x5,_0xa132xa,_0xa132x14));};mxSwimlane[_0x4e14[202]][_0x4e14[1699]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13){_0xa132x12!=mxConstants[_0x4e14[217]]&&(_0xa132x2[_0x4e14[815]](),_0xa132x2[_0x4e14[1245]](_0xa132x12),_0xa132x2[_0x4e14[1319]](0,0,_0xa132x5,_0xa132x9),_0xa132x2[_0x4e14[1337]](),_0xa132x2[_0x4e14[1210]](),_0xa132x2[_0x4e14[1267]](!1));_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](0,_0xa132xa);_0xa132x2[_0x4e14[1277]](0,0);_0xa132x2[_0x4e14[1277]](_0xa132x5,0);_0xa132x2[_0x4e14[1277]](_0xa132x5,_0xa132xa);_0xa132x13&&_0xa132x2[_0x4e14[268]]();_0xa132x2[_0x4e14[1337]]();_0xa132xa<_0xa132x9&&_0xa132x12==mxConstants[_0x4e14[217]]&&(_0xa132x2[_0x4e14[1229]]= !1,_0xa132x2[_0x4e14[1275]](),_0xa132x2[_0x4e14[1276]](0,_0xa132xa),_0xa132x2[_0x4e14[1277]](0,_0xa132x9),_0xa132x2[_0x4e14[1277]](_0xa132x5,_0xa132x9),_0xa132x2[_0x4e14[1277]](_0xa132x5,_0xa132xa),_0xa132x2[_0x4e14[1336]]());};mxSwimlane[_0x4e14[202]][_0x4e14[1698]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){_0xa132x13!=mxConstants[_0x4e14[217]]&&(_0xa132x2[_0x4e14[815]](),_0xa132x2[_0x4e14[1245]](_0xa132x13),_0xa132x2[_0x4e14[1320]](0,0,_0xa132x5,_0xa132x9,_0xa132x12,_0xa132x12),_0xa132x2[_0x4e14[1337]](),_0xa132x2[_0x4e14[1210]](),_0xa132x2[_0x4e14[1267]](!1));_0xa132x2[_0x4e14[1275]]();_0xa132x2[_0x4e14[1276]](_0xa132x5,_0xa132xa);_0xa132x2[_0x4e14[1277]](_0xa132x5,_0xa132x12);_0xa132x2[_0x4e14[1278]](_0xa132x5,0,_0xa132x5-Math[_0x4e14[243]](_0xa132x5/2,_0xa132x12),0);_0xa132x2[_0x4e14[1277]](Math[_0x4e14[243]](_0xa132x5/2,_0xa132x12),0);_0xa132x2[_0x4e14[1278]](0,0,0,_0xa132x12);_0xa132x2[_0x4e14[1277]](0,_0xa132xa);_0xa132x14&&_0xa132x2[_0x4e14[268]]();_0xa132x2[_0x4e14[1337]]();_0xa132xa<_0xa132x9&&_0xa132x13==mxConstants[_0x4e14[217]]&&(_0xa132x2[_0x4e14[1229]]= !1,_0xa132x2[_0x4e14[1275]](),_0xa132x2[_0x4e14[1276]](0,_0xa132xa),_0xa132x2[_0x4e14[1277]](0,_0xa132x9-_0xa132x12),_0xa132x2[_0x4e14[1278]](0,_0xa132x9,Math[_0x4e14[243]](_0xa132x5/2,_0xa132x12),_0xa132x9),_0xa132x2[_0x4e14[1277]](_0xa132x5-Math[_0x4e14[243]](_0xa132x5/2,_0xa132x12),_0xa132x9),_0xa132x2[_0x4e14[1278]](_0xa132x5,_0xa132x9,_0xa132x5,_0xa132x9-_0xa132x12),_0xa132x2[_0x4e14[1277]](_0xa132x5,_0xa132xa),_0xa132x2[_0x4e14[1336]]());};mxSwimlane[_0x4e14[202]][_0x4e14[1700]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x9!=mxConstants[_0x4e14[217]]&&(_0xa132x2[_0x4e14[1249]](_0xa132x9),_0xa132x2[_0x4e14[1251]](!0),_0xa132x2[_0x4e14[1275]](),_0xa132x2[_0x4e14[1276]](_0xa132x3,_0xa132x4),_0xa132x2[_0x4e14[1277]](_0xa132x3,_0xa132x5),_0xa132x2[_0x4e14[1336]](),_0xa132x2[_0x4e14[1251]](!1))};mxSwimlane[_0x4e14[202]][_0x4e14[1686]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){return  new mxRectangle(_0xa132x2+_0xa132x4-this[_0x4e14[1680]],_0xa132x3,this[_0x4e14[1680]],this[_0x4e14[1680]])};function mxGraphLayout(_0xa132x2){this[_0x4e14[1179]]=_0xa132x2}mxGraphLayout[_0x4e14[202]][_0x4e14[1179]]=null;mxGraphLayout[_0x4e14[202]][_0x4e14[1701]]= !0;mxGraphLayout[_0x4e14[202]][_0x4e14[1101]]=null;mxGraphLayout[_0x4e14[202]][_0x4e14[1702]]=function(_0xa132x2,_0xa132x3,_0xa132x4){};mxGraphLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){};mxGraphLayout[_0x4e14[202]][_0x4e14[1703]]=function(){return this[_0x4e14[1179]]};mxGraphLayout[_0x4e14[202]][_0x4e14[1704]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x4=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x3);_0xa132x3=null!=_0xa132x4?_0xa132x4[_0x4e14[124]]:this[_0x4e14[1179]][_0x4e14[1705]](_0xa132x3);return null!=_0xa132x3?_0xa132x3[_0xa132x2]:null;};mxGraphLayout[_0x4e14[1706]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=_0xa132x4&&null!=_0xa132x2){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;_0xa132x9=_0xa132x9||[];var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2);if(null==_0xa132x9[_0xa132xa]&&(_0xa132x9[_0xa132xa]=_0xa132x2,_0xa132x5=_0xa132x4(_0xa132x2,_0xa132x5),null==_0xa132x5||_0xa132x5)){if(_0xa132x5=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1707]](_0xa132x2),0<_0xa132x5){for(_0xa132xa=0;_0xa132xa<_0xa132x5;_0xa132xa++){var _0xa132x12=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1708]](_0xa132x2,_0xa132xa),_0xa132x13=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1709]](_0xa132x12,!0)==_0xa132x2;if(!_0xa132x3||_0xa132x13){_0xa132x13=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[1710]](_0xa132x12,!_0xa132x13),this[_0x4e14[1706]](_0xa132x13,_0xa132x3,_0xa132x4,_0xa132x12,_0xa132x9)};}}};}};mxGraphLayout[_0x4e14[202]][_0x4e14[1711]]=function(_0xa132x2){return this[_0x4e14[1179]][_0x4e14[1712]](_0xa132x2)};mxGraphLayout[_0x4e14[202]][_0x4e14[1713]]=function(_0xa132x2){return !this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1193]](_0xa132x2)||!this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x2)};mxGraphLayout[_0x4e14[202]][_0x4e14[1715]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]();return !_0xa132x3[_0x4e14[250]](_0xa132x2)||!this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x2)||null==_0xa132x3[_0x4e14[1709]](_0xa132x2,!0)||null==_0xa132x3[_0x4e14[1709]](_0xa132x2,!1);};mxGraphLayout[_0x4e14[202]][_0x4e14[1716]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_NOEDGESTYLE,_0xa132x3?_0x4e14[468]:_0x4e14[500],[_0xa132x2])};mxGraphLayout[_0x4e14[202]][_0x4e14[1718]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_ORTHOGONAL,_0xa132x3?_0x4e14[500]:_0x4e14[468],[_0xa132x2])};mxGraphLayout[_0x4e14[202]][_0x4e14[1719]]=function(_0xa132x2){var _0xa132x3= new mxPoint;if(null!=_0xa132x2&&_0xa132x2!=this[_0x4e14[1101]]){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]();if(_0xa132x4[_0x4e14[1720]](this[_0x4e14[1101]],_0xa132x2)){for(var _0xa132x5=_0xa132x4[_0x4e14[1721]](_0xa132x2);_0xa132x2!=this[_0x4e14[1101]];){_0xa132x3[_0x4e14[235]]+=_0xa132x5[_0x4e14[235]],_0xa132x3[_0x4e14[236]]+=_0xa132x5[_0x4e14[236]],_0xa132x2=_0xa132x4[_0x4e14[1197]](_0xa132x2),_0xa132x5=_0xa132x4[_0x4e14[1721]](_0xa132x2)}};};return _0xa132x3;};mxGraphLayout[_0x4e14[202]][_0x4e14[1722]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[251]],_0xa132x5=_0xa132x4[_0x4e14[1721]](_0xa132x2);null==_0xa132x5?(_0xa132x5= new mxGeometry,_0xa132x5[_0x4e14[1723]](!0)):_0xa132x5=_0xa132x5[_0x4e14[238]]();if(null!=this[_0x4e14[1101]]&&null!=_0xa132x3){for(var _0xa132x9=_0xa132x4[_0x4e14[1197]](_0xa132x2),_0xa132x9=this[_0x4e14[1719]](_0xa132x9),_0xa132xa=0;_0xa132xa<_0xa132x3[_0x4e14[67]];_0xa132xa++){_0xa132x3[_0xa132xa][_0x4e14[235]]-=_0xa132x9[_0x4e14[235]],_0xa132x3[_0xa132xa][_0x4e14[236]]-=_0xa132x9[_0x4e14[236]]}};_0xa132x5[_0x4e14[1525]]=_0xa132x3;_0xa132x4[_0x4e14[1724]](_0xa132x2,_0xa132x5);}};mxGraphLayout[_0x4e14[202]][_0x4e14[1725]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x9=_0xa132x5[_0x4e14[1721]](_0xa132x2),_0xa132xa=null;if(null!=_0xa132x9){_0xa132xa= new mxRectangle(_0xa132x3,_0xa132x4,_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]]);if(this[_0x4e14[1701]]){var _0xa132x12=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);if(null!=_0xa132x12&&null!=_0xa132x12[_0x4e14[963]]&&null!=_0xa132x12[_0x4e14[963]][_0x4e14[1563]]){var _0xa132x13=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x14=_0xa132x12[_0x4e14[963]][_0x4e14[1563]];_0xa132x12[_0x4e14[963]][_0x4e14[1563]][_0x4e14[235]]<_0xa132x12[_0x4e14[235]]&&(_0xa132x3+=(_0xa132x12[_0x4e14[235]]-_0xa132x14[_0x4e14[235]])/_0xa132x13,_0xa132xa[_0x4e14[117]]=_0xa132x14[_0x4e14[117]]);_0xa132x12[_0x4e14[963]][_0x4e14[1563]][_0x4e14[236]]<_0xa132x12[_0x4e14[236]]&&(_0xa132x4+=(_0xa132x12[_0x4e14[236]]-_0xa132x14[_0x4e14[236]])/_0xa132x13,_0xa132xa[_0x4e14[119]]=_0xa132x14[_0x4e14[119]]);};};null!=this[_0x4e14[1101]]&&(_0xa132x12=_0xa132x5[_0x4e14[1197]](_0xa132x2),null!=_0xa132x12&&_0xa132x12!=this[_0x4e14[1101]]&&(_0xa132x12=this[_0x4e14[1719]](_0xa132x12),_0xa132x3-=_0xa132x12[_0x4e14[235]],_0xa132x4-=_0xa132x12[_0x4e14[236]]));if(_0xa132x9[_0x4e14[235]]!=_0xa132x3||_0xa132x9[_0x4e14[236]]!=_0xa132x4){_0xa132x9=_0xa132x9[_0x4e14[238]](),_0xa132x9[_0x4e14[235]]=_0xa132x3,_0xa132x9[_0x4e14[236]]=_0xa132x4,_0xa132x5[_0x4e14[1724]](_0xa132x2,_0xa132x9)};};return _0xa132xa;};mxGraphLayout[_0x4e14[202]][_0x4e14[1726]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1721]](_0xa132x2);if(this[_0x4e14[1701]]){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);if(null!=_0xa132x4&&null!=_0xa132x4[_0x4e14[963]]&&null!=_0xa132x4[_0x4e14[963]][_0x4e14[1563]]){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x9=_0xa132x4[_0x4e14[963]][_0x4e14[1563]],_0xa132xa=Math[_0x4e14[160]](_0xa132x4[_0x4e14[235]]-_0xa132x9[_0x4e14[235]],0)/_0xa132x5,_0xa132x12=Math[_0x4e14[160]](_0xa132x4[_0x4e14[236]]-_0xa132x9[_0x4e14[236]],0)/_0xa132x5,_0xa132x13=Math[_0x4e14[160]](_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]]-(_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]),0)/_0xa132x5,_0xa132x4=Math[_0x4e14[160]](_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]]-(_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]),0)/_0xa132x5,_0xa132x3= new mxRectangle(_0xa132x3[_0x4e14[235]]-_0xa132xa,_0xa132x3[_0x4e14[236]]-_0xa132x12,_0xa132x3[_0x4e14[117]]+_0xa132xa+_0xa132x13,_0xa132x3[_0x4e14[119]]+_0xa132x12+_0xa132x4)};};null!=this[_0x4e14[1101]]&&(_0xa132x2=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1197]](_0xa132x2),_0xa132x3=_0xa132x3[_0x4e14[238]](),null!=_0xa132x2&&_0xa132x2!=this[_0x4e14[1101]]&&(_0xa132x2=this[_0x4e14[1719]](_0xa132x2),_0xa132x3[_0x4e14[235]]+=_0xa132x2[_0x4e14[235]],_0xa132x3[_0x4e14[236]]+=_0xa132x2[_0x4e14[236]]));return  new mxRectangle(_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]],_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]]);};mxGraphLayout[_0x4e14[202]][_0x4e14[1727]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[473]]();try{for(var _0xa132x4=_0xa132x2[_0x4e14[67]]-1;0<=_0xa132x4;_0xa132x4--){var _0xa132x5=_0xa132x2[_0xa132x4],_0xa132x9=this[_0x4e14[1179]][_0x4e14[1728]](_0xa132x5),_0xa132xa=this[_0x4e14[1179]][_0x4e14[1729]](_0xa132x9),_0xa132x12=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x5),_0xa132x13=0,_0xa132x14=0;if(this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x5)){var _0xa132x15=this[_0x4e14[1179]][_0x4e14[1731]](_0xa132x5),_0xa132x13=_0xa132x15[_0x4e14[117]],_0xa132x14=_0xa132x15[_0x4e14[119]]};null!=_0xa132xa&&null!=_0xa132x12&&(_0xa132x12=_0xa132x12[_0x4e14[238]](),_0xa132x12[_0x4e14[235]]=_0xa132x12[_0x4e14[235]]+_0xa132xa[_0x4e14[235]]-_0xa132x3-_0xa132x13,_0xa132x12[_0x4e14[236]]=_0xa132x12[_0x4e14[236]]+_0xa132xa[_0x4e14[236]]-_0xa132x3-_0xa132x14,_0xa132x12[_0x4e14[117]]=_0xa132xa[_0x4e14[117]]+2*_0xa132x3+_0xa132x13,_0xa132x12[_0x4e14[119]]=_0xa132xa[_0x4e14[119]]+2*_0xa132x3+_0xa132x14,this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1724]](_0xa132x5,_0xa132x12),this[_0x4e14[1179]][_0x4e14[834]](_0xa132x9,_0xa132x3+_0xa132x13-_0xa132xa[_0x4e14[235]],_0xa132x3+_0xa132x14-_0xa132xa[_0x4e14[236]]));}}finally{this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[476]]()};};function mxStackLayout(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){mxGraphLayout[_0x4e14[239]](this,_0xa132x2);this[_0x4e14[662]]=null!=_0xa132x3?_0xa132x3:!0;this[_0x4e14[657]]=null!=_0xa132x4?_0xa132x4:0;this[_0x4e14[1732]]=null!=_0xa132x5?_0xa132x5:0;this[_0x4e14[1733]]=null!=_0xa132x9?_0xa132x9:0;this[_0x4e14[467]]=null!=_0xa132xa?_0xa132xa:0;}mxStackLayout[_0x4e14[202]]= new mxGraphLayout;mxStackLayout[_0x4e14[202]][_0x4e14[196]]=mxStackLayout;mxStackLayout[_0x4e14[202]][_0x4e14[662]]=null;mxStackLayout[_0x4e14[202]][_0x4e14[657]]=null;mxStackLayout[_0x4e14[202]][_0x4e14[1732]]=null;mxStackLayout[_0x4e14[202]][_0x4e14[1733]]=null;mxStackLayout[_0x4e14[202]][_0x4e14[467]]=0;mxStackLayout[_0x4e14[202]][_0x4e14[1734]]= !1;mxStackLayout[_0x4e14[202]][_0x4e14[1334]]= !1;mxStackLayout[_0x4e14[202]][_0x4e14[1735]]= !1;mxStackLayout[_0x4e14[202]][_0x4e14[1736]]= !1;mxStackLayout[_0x4e14[202]][_0x4e14[1333]]=null;mxStackLayout[_0x4e14[202]][_0x4e14[1737]]=function(){return this[_0x4e14[662]]};mxStackLayout[_0x4e14[202]][_0x4e14[1702]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x9=_0xa132x5[_0x4e14[1197]](_0xa132x2),_0xa132xa=this[_0x4e14[1737]]();if(null!=_0xa132x2&&null!=_0xa132x9){var _0xa132x12=0,_0xa132x13=0,_0xa132x14=_0xa132x5[_0x4e14[262]](_0xa132x9);_0xa132x3=_0xa132xa?_0xa132x3:_0xa132x4;_0xa132x12=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x9);null!=_0xa132x12&&(_0xa132x3-=_0xa132xa?_0xa132x12[_0x4e14[235]]:_0xa132x12[_0x4e14[236]]);for(_0xa132x12=0;_0xa132x12<_0xa132x14;_0xa132x12++){if(_0xa132x4=_0xa132x5[_0x4e14[263]](_0xa132x9,_0xa132x12),_0xa132x4!=_0xa132x2&&(_0xa132x4=_0xa132x5[_0x4e14[1721]](_0xa132x4),null!=_0xa132x4)){_0xa132x4=_0xa132xa?_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]/2:_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]/2;if(_0xa132x13<_0xa132x3&&_0xa132x4>_0xa132x3){break };_0xa132x13=_0xa132x4;}};_0xa132xa=_0xa132x9[_0x4e14[1738]](_0xa132x2);_0xa132xa=Math[_0x4e14[160]](0,_0xa132x12-(_0xa132x12>_0xa132xa?1:0));_0xa132x5[_0x4e14[99]](_0xa132x9,_0xa132x2,_0xa132xa);};};mxStackLayout[_0x4e14[202]][_0x4e14[1739]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x4=_0xa132x3[_0x4e14[1721]](_0xa132x2);if(null!=this[_0x4e14[1179]][_0x4e14[526]]&&(null==_0xa132x4&&_0xa132x3[_0x4e14[1740]](_0xa132x2)||_0xa132x2==this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1741]])){_0xa132x4= new mxRectangle(0,0,this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[359]]-1,this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[167]]-1)};return _0xa132x4;};mxStackLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[1737]](),_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=this[_0x4e14[1739]](_0xa132x2),_0xa132x9=0;null!=_0xa132x5&&(_0xa132x9=_0xa132x3?_0xa132x5[_0x4e14[119]]:_0xa132x5[_0x4e14[117]]);var _0xa132x9=_0xa132x9-(2*this[_0x4e14[657]]+2*this[_0x4e14[467]]),_0xa132xa=this[_0x4e14[1732]]+this[_0x4e14[467]],_0xa132x12=this[_0x4e14[1733]]+this[_0x4e14[467]];if(this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x2)){var _0xa132x13=this[_0x4e14[1179]][_0x4e14[1705]](_0xa132x2),_0xa132x14=mxUtils[_0x4e14[433]](_0xa132x13,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),_0xa132x13=mxUtils[_0x4e14[433]](_0xa132x13,mxConstants.STYLE_HORIZONTAL,!0);_0xa132x3==_0xa132x13&&(_0xa132x9-=_0xa132x14);_0xa132x3?_0xa132x12+=_0xa132x14:_0xa132xa+=_0xa132x14;};_0xa132x4[_0x4e14[473]]();try{for(var _0xa132x14=0,_0xa132x13=null,_0xa132x15=_0xa132x4[_0x4e14[262]](_0xa132x2),_0xa132x16=0;_0xa132x16<_0xa132x15;_0xa132x16++){var _0xa132x17=_0xa132x4[_0x4e14[263]](_0xa132x2,_0xa132x16);if(!this[_0x4e14[1713]](_0xa132x17)&&this[_0x4e14[1711]](_0xa132x17)){var _0xa132x18=_0xa132x4[_0x4e14[1721]](_0xa132x17);if(null!=_0xa132x18){_0xa132x18=_0xa132x18[_0x4e14[238]]();if(null!=this[_0x4e14[1333]]&&null!=_0xa132x13&&(_0xa132x3&&_0xa132x13[_0x4e14[235]]+_0xa132x13[_0x4e14[117]]+_0xa132x18[_0x4e14[117]]+2*this[_0x4e14[657]]>this[_0x4e14[1333]]||!_0xa132x3&&_0xa132x13[_0x4e14[236]]+_0xa132x13[_0x4e14[119]]+_0xa132x18[_0x4e14[119]]+2*this[_0x4e14[657]]>this[_0x4e14[1333]])){_0xa132x13=null,_0xa132x3?_0xa132x12+=_0xa132x14+this[_0x4e14[657]]:_0xa132xa+=_0xa132x14+this[_0x4e14[657]],_0xa132x14=0};_0xa132x14=Math[_0x4e14[160]](_0xa132x14,_0xa132x3?_0xa132x18[_0x4e14[119]]:_0xa132x18[_0x4e14[117]]);null!=_0xa132x13?_0xa132x3?_0xa132x18[_0x4e14[235]]=_0xa132x13[_0x4e14[235]]+_0xa132x13[_0x4e14[117]]+this[_0x4e14[657]]:_0xa132x18[_0x4e14[236]]=_0xa132x13[_0x4e14[236]]+_0xa132x13[_0x4e14[119]]+this[_0x4e14[657]]:this[_0x4e14[1734]]||(_0xa132x3?_0xa132x18[_0x4e14[235]]=_0xa132xa:_0xa132x18[_0x4e14[236]]=_0xa132x12);_0xa132x3?_0xa132x18[_0x4e14[236]]=_0xa132x12:_0xa132x18[_0x4e14[235]]=_0xa132xa;this[_0x4e14[1334]]&&0<_0xa132x9&&(_0xa132x3?_0xa132x18[_0x4e14[119]]=_0xa132x9:_0xa132x18[_0x4e14[117]]=_0xa132x9);_0xa132x4[_0x4e14[1724]](_0xa132x17,_0xa132x18);_0xa132x13=_0xa132x18;};};};this[_0x4e14[1735]]&&null!=_0xa132x5&&null!=_0xa132x13&&!this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x2)?(_0xa132x5=_0xa132x5[_0x4e14[238]](),_0xa132x3?_0xa132x5[_0x4e14[117]]=_0xa132x13[_0x4e14[235]]+_0xa132x13[_0x4e14[117]]+this[_0x4e14[657]]:_0xa132x5[_0x4e14[119]]=_0xa132x13[_0x4e14[236]]+_0xa132x13[_0x4e14[119]]+this[_0x4e14[657]],_0xa132x4[_0x4e14[1724]](_0xa132x2,_0xa132x5)):this[_0x4e14[1736]]&&(null!=_0xa132x5&&null!=_0xa132x13)&&(_0xa132x3?_0xa132x13[_0x4e14[117]]=_0xa132x5[_0x4e14[117]]-_0xa132x13[_0x4e14[235]]-this[_0x4e14[657]]:_0xa132x13[_0x4e14[119]]=_0xa132x5[_0x4e14[119]]-_0xa132x13[_0x4e14[236]]-this[_0x4e14[657]]);}finally{_0xa132x4[_0x4e14[476]]()};}};function mxPartitionLayout(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxGraphLayout[_0x4e14[239]](this,_0xa132x2);this[_0x4e14[662]]=null!=_0xa132x3?_0xa132x3:!0;this[_0x4e14[657]]=_0xa132x4||0;this[_0x4e14[467]]=_0xa132x5||0;}mxPartitionLayout[_0x4e14[202]]= new mxGraphLayout;mxPartitionLayout[_0x4e14[202]][_0x4e14[196]]=mxPartitionLayout;mxPartitionLayout[_0x4e14[202]][_0x4e14[662]]=null;mxPartitionLayout[_0x4e14[202]][_0x4e14[657]]=null;mxPartitionLayout[_0x4e14[202]][_0x4e14[467]]=null;mxPartitionLayout[_0x4e14[202]][_0x4e14[1743]]= !0;mxPartitionLayout[_0x4e14[202]][_0x4e14[1737]]=function(){return this[_0x4e14[662]]};mxPartitionLayout[_0x4e14[202]][_0x4e14[1702]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]();var _0xa132x5=_0xa132x4[_0x4e14[1197]](_0xa132x2);if(null!=_0xa132x2&&null!=_0xa132x5){for(var _0xa132x9=0,_0xa132xa=0,_0xa132x12=_0xa132x4[_0x4e14[262]](_0xa132x5),_0xa132x9=0;_0xa132x9<_0xa132x12;_0xa132x9++){var _0xa132x13=_0xa132x4[_0x4e14[263]](_0xa132x5,_0xa132x9),_0xa132x13=this[_0x4e14[1726]](_0xa132x13);if(null!=_0xa132x13){_0xa132x13=_0xa132x13[_0x4e14[235]]+_0xa132x13[_0x4e14[117]]/2;if(_0xa132xa<_0xa132x3&&_0xa132x13>_0xa132x3){break };_0xa132xa=_0xa132x13;};};_0xa132x3=_0xa132x5[_0x4e14[1738]](_0xa132x2);_0xa132x3=Math[_0x4e14[160]](0,_0xa132x9-(_0xa132x9>_0xa132x3?1:0));_0xa132x4[_0x4e14[99]](_0xa132x5,_0xa132x2,_0xa132x3);};};mxPartitionLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1737]](),_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=_0xa132x4[_0x4e14[1721]](_0xa132x2);if(null!=this[_0x4e14[1179]][_0x4e14[526]]&&(null==_0xa132x5&&_0xa132x4[_0x4e14[1740]](_0xa132x2)||_0xa132x2==this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1741]])){_0xa132x5= new mxRectangle(0,0,this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[359]]-1,this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[167]]-1)};if(null!=_0xa132x5){for(var _0xa132x9=[],_0xa132xa=_0xa132x4[_0x4e14[262]](_0xa132x2),_0xa132x12=0;_0xa132x12<_0xa132xa;_0xa132x12++){var _0xa132x13=_0xa132x4[_0x4e14[263]](_0xa132x2,_0xa132x12);!this[_0x4e14[1713]](_0xa132x13)&&this[_0x4e14[1711]](_0xa132x13)&&_0xa132x9[_0x4e14[207]](_0xa132x13);};_0xa132xa=_0xa132x9[_0x4e14[67]];if(0<_0xa132xa){var _0xa132x14=this[_0x4e14[467]],_0xa132x15=this[_0x4e14[467]],_0xa132x16=_0xa132x3?_0xa132x5[_0x4e14[119]]:_0xa132x5[_0x4e14[117]],_0xa132x16=_0xa132x16-2*this[_0x4e14[467]];_0xa132x2=this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x2)?this[_0x4e14[1179]][_0x4e14[1731]](_0xa132x2): new mxRectangle;_0xa132x16-=_0xa132x3?_0xa132x2[_0x4e14[119]]:_0xa132x2[_0x4e14[117]];_0xa132x14+=_0xa132x2[_0x4e14[117]];_0xa132x15+=_0xa132x2[_0x4e14[119]];_0xa132x2=this[_0x4e14[467]]+(_0xa132xa-1)*this[_0x4e14[657]];_0xa132x5=_0xa132x3?(_0xa132x5[_0x4e14[117]]-_0xa132x14-_0xa132x2)/_0xa132xa:(_0xa132x5[_0x4e14[119]]-_0xa132x15-_0xa132x2)/_0xa132xa;if(0<_0xa132x5){_0xa132x4[_0x4e14[473]]();try{for(_0xa132x12=0;_0xa132x12<_0xa132xa;_0xa132x12++){var _0xa132x13=_0xa132x9[_0xa132x12],_0xa132x17=_0xa132x4[_0x4e14[1721]](_0xa132x13);null!=_0xa132x17&&(_0xa132x17=_0xa132x17[_0x4e14[238]](),_0xa132x17[_0x4e14[235]]=_0xa132x14,_0xa132x17[_0x4e14[236]]=_0xa132x15,_0xa132x3?(this[_0x4e14[1743]]&&(_0xa132x17[_0x4e14[117]]=_0xa132x5,_0xa132x17[_0x4e14[119]]=_0xa132x16),_0xa132x14+=_0xa132x5+this[_0x4e14[657]]):(this[_0x4e14[1743]]&&(_0xa132x17[_0x4e14[119]]=_0xa132x5,_0xa132x17[_0x4e14[117]]=_0xa132x16),_0xa132x15+=_0xa132x5+this[_0x4e14[657]]),_0xa132x4[_0x4e14[1724]](_0xa132x13,_0xa132x17));}}finally{_0xa132x4[_0x4e14[476]]()};};};};};function mxCompactTreeLayout(_0xa132x2,_0xa132x3,_0xa132x4){mxGraphLayout[_0x4e14[239]](this,_0xa132x2);this[_0x4e14[662]]=null!=_0xa132x3?_0xa132x3:!0;this[_0x4e14[1744]]=null!=_0xa132x4?_0xa132x4:!1;}mxCompactTreeLayout[_0x4e14[202]]= new mxGraphLayout;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[196]]=mxCompactTreeLayout;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[662]]=null;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1744]]=null;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1735]]= !0;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1745]]=10;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1746]]=null;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1747]]= !1;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1748]]=10;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1749]]=20;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1750]]= !0;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1751]]=5;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1752]]=4;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1753]]=8;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1754]]=4;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1755]]= !0;mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1713]]=function(_0xa132x2){return mxGraphLayout[_0x4e14[202]][_0x4e14[1713]][_0x4e14[183]](this,arguments)||0==this[_0x4e14[1179]][_0x4e14[1756]](_0xa132x2)[_0x4e14[67]]};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1737]]=function(){return this[_0x4e14[662]]};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1101]]=_0xa132x2;var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]();if(null==_0xa132x3){if(0<this[_0x4e14[1179]][_0x4e14[264]](_0xa132x2,_0xa132x4[_0x4e14[1197]](_0xa132x2),this[_0x4e14[1744]],!this[_0x4e14[1744]],!1)[_0x4e14[67]]){_0xa132x3=_0xa132x2}else {var _0xa132x5=this[_0x4e14[1179]][_0x4e14[1757]](_0xa132x2,!0,this[_0x4e14[1744]]);if(0<_0xa132x5[_0x4e14[67]]){for(var _0xa132x9=0;_0xa132x9<_0xa132x5[_0x4e14[67]];_0xa132x9++){if(!this[_0x4e14[1713]](_0xa132x5[_0xa132x9])&&0<this[_0x4e14[1179]][_0x4e14[264]](_0xa132x5[_0xa132x9],null,this[_0x4e14[1744]],!this[_0x4e14[1744]],!1)[_0x4e14[67]]){_0xa132x3=_0xa132x5[_0xa132x9];break;}}};}};if(null!=_0xa132x3){this[_0x4e14[1746]]=this[_0x4e14[1735]]?{}:null;_0xa132x4[_0x4e14[473]]();try{var _0xa132xa=this[_0x4e14[1758]](_0xa132x3,_0xa132x2);if(null!=_0xa132xa){this[_0x4e14[1759]](_0xa132xa);var _0xa132x12=this[_0x4e14[1179]][_0x4e14[1020]],_0xa132x5=_0xa132x12;if(!this[_0x4e14[1747]]){var _0xa132x13=this[_0x4e14[1726]](_0xa132x3);null!=_0xa132x13&&(_0xa132x12=_0xa132x13[_0x4e14[235]],_0xa132x5=_0xa132x13[_0x4e14[236]]);};_0xa132x13=null;_0xa132x13=this[_0x4e14[1737]]()?this[_0x4e14[1760]](_0xa132xa,_0xa132x12,_0xa132x5):this[_0x4e14[1761]](_0xa132xa,null,_0xa132x12,_0xa132x5);if(null!=_0xa132x13){var _0xa132x14=_0xa132x9=0;0>_0xa132x13[_0x4e14[235]]&&(_0xa132x9=Math[_0x4e14[425]](_0xa132x12-_0xa132x13[_0x4e14[235]]));0>_0xa132x13[_0x4e14[236]]&&(_0xa132x14=Math[_0x4e14[425]](_0xa132x5-_0xa132x13[_0x4e14[236]]));(0!=_0xa132x9||0!=_0xa132x14)&&this[_0x4e14[1762]](_0xa132xa,_0xa132x9,_0xa132x14);this[_0x4e14[1735]]&&this[_0x4e14[1763]]();this[_0x4e14[1755]]&&this[_0x4e14[1764]](_0xa132xa);};};}finally{_0xa132x4[_0x4e14[476]]()};};};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1762]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2[_0x4e14[235]]+=_0xa132x3;_0xa132x2[_0x4e14[236]]+=_0xa132x4;this[_0x4e14[183]](_0xa132x2);for(_0xa132x2=_0xa132x2[_0x4e14[247]];null!=_0xa132x2;){this[_0x4e14[1762]](_0xa132x2,_0xa132x3,_0xa132x4),_0xa132x2=_0xa132x2[_0x4e14[1765]]};};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1758]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:[];var _0xa132x5=mxCellPath[_0x4e14[385]](_0xa132x2),_0xa132x9=null;if(null!=_0xa132x2&&null==_0xa132x4[_0xa132x5]&&!this[_0x4e14[1713]](_0xa132x2)){_0xa132x4[_0xa132x5]=_0xa132x2;var _0xa132x9=this[_0x4e14[1766]](_0xa132x2),_0xa132x5=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132xa=null;_0xa132x2=this[_0x4e14[1179]][_0x4e14[264]](_0xa132x2,_0xa132x3,this[_0x4e14[1744]],!this[_0x4e14[1744]],!1,!0);for(var _0xa132x12=this[_0x4e14[1179]][_0x4e14[249]](),_0xa132x13=0;_0xa132x13<_0xa132x2[_0x4e14[67]];_0xa132x13++){var _0xa132x14=_0xa132x2[_0xa132x13];if(!this[_0x4e14[1715]](_0xa132x14)){this[_0x4e14[1750]]&&this[_0x4e14[1722]](_0xa132x14,null);this[_0x4e14[1755]]&&(this[_0x4e14[1716]](_0xa132x14,!1),this[_0x4e14[1722]](_0xa132x14,null));var _0xa132x15=_0xa132x12[_0x4e14[248]](_0xa132x14),_0xa132x14=null!=_0xa132x15?_0xa132x15[_0x4e14[1710]](this[_0x4e14[1744]]):_0xa132x12[_0x4e14[1710]](_0xa132x14,this[_0x4e14[1744]]),_0xa132x15=this[_0x4e14[1758]](_0xa132x14,_0xa132x3,_0xa132x4);null!=_0xa132x15&&null!=_0xa132x5[_0x4e14[1721]](_0xa132x14)&&(null==_0xa132xa?_0xa132x9[_0x4e14[247]]=_0xa132x15:_0xa132xa[_0x4e14[1765]]=_0xa132x15,_0xa132xa=_0xa132x15);};};};return _0xa132x9;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1759]]=function(_0xa132x2){if(null!=_0xa132x2){for(var _0xa132x3=_0xa132x2[_0x4e14[247]];null!=_0xa132x3;){this[_0x4e14[1759]](_0xa132x3),_0xa132x3=_0xa132x3[_0x4e14[1765]]};null!=_0xa132x2[_0x4e14[247]]?this[_0x4e14[1767]](_0xa132x2,this[_0x4e14[234]](_0xa132x2)):this[_0x4e14[1768]](_0xa132x2);}};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1760]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x2[_0x4e14[235]]+=_0xa132x3+_0xa132x2[_0x4e14[1769]];_0xa132x2[_0x4e14[236]]+=_0xa132x4+_0xa132x2[_0x4e14[1770]];_0xa132x5=this[_0x4e14[183]](_0xa132x2,_0xa132x5);_0xa132x3=_0xa132x2[_0x4e14[247]];if(null!=_0xa132x3){_0xa132x5=this[_0x4e14[1760]](_0xa132x3,_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],_0xa132x5);_0xa132x4=_0xa132x2[_0x4e14[236]]+_0xa132x3[_0x4e14[1770]];for(var _0xa132x9=_0xa132x3[_0x4e14[1765]];null!=_0xa132x9;){_0xa132x5=this[_0x4e14[1760]](_0xa132x9,_0xa132x2[_0x4e14[235]]+_0xa132x3[_0x4e14[1769]],_0xa132x4,_0xa132x5),_0xa132x4+=_0xa132x9[_0x4e14[1770]],_0xa132x9=_0xa132x9[_0x4e14[1765]]};};return _0xa132x5;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1761]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[235]]+=_0xa132x4+_0xa132x2[_0x4e14[1770]];_0xa132x2[_0x4e14[236]]+=_0xa132x5+_0xa132x2[_0x4e14[1769]];_0xa132x9=this[_0x4e14[183]](_0xa132x2,_0xa132x9);_0xa132x3=_0xa132x2[_0x4e14[247]];if(null!=_0xa132x3){_0xa132x9=this[_0x4e14[1761]](_0xa132x3,_0xa132x2,_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],_0xa132x9);_0xa132x4=_0xa132x2[_0x4e14[235]]+_0xa132x3[_0x4e14[1770]];for(_0xa132x5=_0xa132x3[_0x4e14[1765]];null!=_0xa132x5;){_0xa132x9=this[_0x4e14[1761]](_0xa132x5,_0xa132x2,_0xa132x4,_0xa132x2[_0x4e14[236]]+_0xa132x3[_0x4e14[1769]],_0xa132x9),_0xa132x4+=_0xa132x5[_0x4e14[1770]],_0xa132x5=_0xa132x5[_0x4e14[1765]]};};return _0xa132x9;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1767]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1749]]+this[_0x4e14[1748]],_0xa132x5=(_0xa132x3-_0xa132x2[_0x4e14[117]])/2-this[_0x4e14[1749]],_0xa132x9=_0xa132x5+_0xa132x2[_0x4e14[117]]+2*this[_0x4e14[1749]]-_0xa132x3;_0xa132x2[_0x4e14[247]][_0x4e14[1769]]=_0xa132x4+_0xa132x2[_0x4e14[119]];_0xa132x2[_0x4e14[247]][_0x4e14[1770]]=_0xa132x9;_0xa132x2[_0x4e14[1772]][_0x4e14[1771]]=this[_0x4e14[1773]](_0xa132x2[_0x4e14[119]],0,this[_0x4e14[1773]](_0xa132x4,_0xa132x9,_0xa132x2[_0x4e14[1772]][_0x4e14[1771]]));_0xa132x2[_0x4e14[1772]][_0x4e14[1774]]=this[_0x4e14[1773]](_0xa132x2[_0x4e14[119]],0,this[_0x4e14[1773]](_0xa132x4,_0xa132x5,_0xa132x2[_0x4e14[1772]][_0x4e14[1774]]));};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1768]]=function(_0xa132x2){var _0xa132x3=2*this[_0x4e14[1749]];_0xa132x2[_0x4e14[1772]][_0x4e14[1775]]=this[_0x4e14[1773]](_0xa132x2[_0x4e14[119]]+_0xa132x3,0);_0xa132x2[_0x4e14[1772]][_0x4e14[1771]]=_0xa132x2[_0x4e14[1772]][_0x4e14[1775]];_0xa132x2[_0x4e14[1772]][_0x4e14[1776]]=this[_0x4e14[1773]](0,-_0xa132x2[_0x4e14[117]]-_0xa132x3);_0xa132x2[_0x4e14[1772]][_0x4e14[1774]]=this[_0x4e14[1773]](_0xa132x2[_0x4e14[119]]+_0xa132x3,0,_0xa132x2[_0x4e14[1772]][_0x4e14[1776]]);};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[234]]=function(_0xa132x2){var _0xa132x3=2*this[_0x4e14[1749]],_0xa132x4=_0xa132x2[_0x4e14[247]];_0xa132x2[_0x4e14[1772]]=_0xa132x4[_0x4e14[1772]];for(var _0xa132x5=_0xa132x4[_0x4e14[117]]+_0xa132x3,_0xa132x9=_0xa132x5,_0xa132x4=_0xa132x4[_0x4e14[1765]];null!=_0xa132x4;){var _0xa132xa=this[_0x4e14[1777]](_0xa132x2[_0x4e14[1772]],_0xa132x4[_0x4e14[1772]]);_0xa132x4[_0x4e14[1770]]=_0xa132xa+_0xa132x5;_0xa132x4[_0x4e14[1769]]=0;_0xa132x5=_0xa132x4[_0x4e14[117]]+_0xa132x3;_0xa132x9+=_0xa132xa+_0xa132x5;_0xa132x4=_0xa132x4[_0x4e14[1765]];};return _0xa132x9;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1777]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=0,_0xa132x5=0,_0xa132x9=0,_0xa132xa=_0xa132x2[_0x4e14[1774]],_0xa132x12=_0xa132x3[_0x4e14[1771]];null!=_0xa132x12&&null!=_0xa132xa;){var _0xa132x13=this[_0x4e14[1368]](_0xa132x4,_0xa132x5,_0xa132x12[_0x4e14[1126]],_0xa132x12[_0x4e14[1125]],_0xa132xa[_0x4e14[1126]],_0xa132xa[_0x4e14[1125]]),_0xa132x5=_0xa132x5+_0xa132x13,_0xa132x9=_0xa132x9+_0xa132x13;_0xa132x4+_0xa132x12[_0x4e14[1126]]<=_0xa132xa[_0x4e14[1126]]?(_0xa132x4+=_0xa132x12[_0x4e14[1126]],_0xa132x5+=_0xa132x12[_0x4e14[1125]],_0xa132x12=_0xa132x12[_0x4e14[1765]]):(_0xa132x4-=_0xa132xa[_0x4e14[1126]],_0xa132x5-=_0xa132xa[_0x4e14[1125]],_0xa132xa=_0xa132xa[_0x4e14[1765]]);};null!=_0xa132x12?(_0xa132x4=this[_0x4e14[1778]](_0xa132x2[_0x4e14[1775]],0,0,_0xa132x12,_0xa132x4,_0xa132x5),_0xa132x2[_0x4e14[1775]]=null!=_0xa132x4[_0x4e14[1765]]?_0xa132x3[_0x4e14[1775]]:_0xa132x4,_0xa132x2[_0x4e14[1776]]=_0xa132x3[_0x4e14[1776]]):(_0xa132x4=this[_0x4e14[1778]](_0xa132x3[_0x4e14[1776]],_0xa132x4,_0xa132x5,_0xa132xa,0,0),null==_0xa132x4[_0x4e14[1765]]&&(_0xa132x2[_0x4e14[1776]]=_0xa132x4));_0xa132x2[_0x4e14[1774]]=_0xa132x3[_0x4e14[1774]];return _0xa132x9;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1368]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){var _0xa132x12=0;if(_0xa132x9<=_0xa132x2||0>=_0xa132x2+_0xa132x4){return 0};_0xa132x12=0<_0xa132x9*_0xa132x5-_0xa132x4*_0xa132xa?0>_0xa132x2?_0xa132x2*_0xa132x5/_0xa132x4-_0xa132x3:0<_0xa132x2?_0xa132x2*_0xa132xa/_0xa132x9-_0xa132x3:-_0xa132x3:_0xa132x9<_0xa132x2+_0xa132x4?_0xa132xa-(_0xa132x3+(_0xa132x9-_0xa132x2)*_0xa132x5/_0xa132x4):_0xa132x9>_0xa132x2+_0xa132x4?(_0xa132x4+_0xa132x2)*_0xa132xa/_0xa132x9-(_0xa132x3+_0xa132x5):_0xa132xa-(_0xa132x3+_0xa132x5);return 0<_0xa132x12?_0xa132x12:0;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1778]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x3=_0xa132x9+_0xa132x5[_0x4e14[1126]]-_0xa132x3;_0xa132x9=_0xa132x9=0;0==_0xa132x5[_0x4e14[1126]]?_0xa132x9=_0xa132x5[_0x4e14[1125]]:(_0xa132x9=_0xa132x3*_0xa132x5[_0x4e14[1125]],_0xa132x9/=_0xa132x5[_0x4e14[1126]]);_0xa132x3=this[_0x4e14[1773]](_0xa132x3,_0xa132x9,_0xa132x5[_0x4e14[1765]]);_0xa132x2[_0x4e14[1765]]=this[_0x4e14[1773]](0,_0xa132xa+_0xa132x5[_0x4e14[1125]]-_0xa132x9-_0xa132x4,_0xa132x3);return _0xa132x3;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1766]]=function(_0xa132x2){var _0xa132x3={};_0xa132x3[_0x4e14[246]]=_0xa132x2;_0xa132x3[_0x4e14[235]]=0;_0xa132x3[_0x4e14[236]]=0;_0xa132x3[_0x4e14[117]]=0;_0xa132x3[_0x4e14[119]]=0;_0xa132x2=this[_0x4e14[1726]](_0xa132x2);null!=_0xa132x2&&(this[_0x4e14[1737]]()?(_0xa132x3[_0x4e14[117]]=_0xa132x2[_0x4e14[119]],_0xa132x3[_0x4e14[119]]=_0xa132x2[_0x4e14[117]]):(_0xa132x3[_0x4e14[117]]=_0xa132x2[_0x4e14[117]],_0xa132x3[_0x4e14[119]]=_0xa132x2[_0x4e14[119]]));_0xa132x3[_0x4e14[1769]]=0;_0xa132x3[_0x4e14[1770]]=0;_0xa132x3[_0x4e14[1772]]={};return _0xa132x3;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[183]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=_0xa132x2[_0x4e14[246]],_0xa132x9=_0xa132x4[_0x4e14[1721]](_0xa132x5);null!=_0xa132x5&&null!=_0xa132x9&&(this[_0x4e14[1711]](_0xa132x5)&&(_0xa132x9=this[_0x4e14[1725]](_0xa132x5,_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]]),this[_0x4e14[1735]]&&(_0xa132x4=_0xa132x4[_0x4e14[1197]](_0xa132x5),_0xa132x5=mxCellPath[_0x4e14[385]](_0xa132x4),null==this[_0x4e14[1746]][_0xa132x5]&&(this[_0x4e14[1746]][_0xa132x5]=_0xa132x4))),_0xa132x3=null==_0xa132x3? new mxRectangle(_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]],_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]]): new mxRectangle(Math[_0x4e14[243]](_0xa132x3[_0x4e14[235]],_0xa132x9[_0x4e14[235]]),Math[_0x4e14[243]](_0xa132x3[_0x4e14[236]],_0xa132x9[_0x4e14[236]]),Math[_0x4e14[160]](_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]],_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]]),Math[_0x4e14[160]](_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]],_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]])));return _0xa132x3;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1773]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5={};_0xa132x5[_0x4e14[1126]]=_0xa132x2;_0xa132x5[_0x4e14[1125]]=_0xa132x3;_0xa132x5[_0x4e14[1765]]=_0xa132x4;return _0xa132x5;};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1763]]=function(){var _0xa132x2=[],_0xa132x3;for(_0xa132x3 in this[_0x4e14[1746]]){_0xa132x2[_0x4e14[207]](this[_0x4e14[1746]][_0xa132x3])};this[_0x4e14[1727]](mxUtils[_0x4e14[1779]](_0xa132x2,!0),this[_0x4e14[1745]]);};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1764]]=function(_0xa132x2){this[_0x4e14[1780]](_0xa132x2);for(_0xa132x2=_0xa132x2[_0x4e14[247]];null!=_0xa132x2;){this[_0x4e14[1764]](_0xa132x2),_0xa132x2=_0xa132x2[_0x4e14[1765]]};};mxCompactTreeLayout[_0x4e14[202]][_0x4e14[1780]]=function(_0xa132x2){for(var _0xa132x3=_0xa132x2[_0x4e14[247]],_0xa132x4=_0xa132x2[_0x4e14[246]],_0xa132x5=0,_0xa132x9=[];null!=_0xa132x3;){_0xa132x5++;var _0xa132xa=_0xa132x3[_0x4e14[235]];this[_0x4e14[662]]&&(_0xa132xa=_0xa132x3[_0x4e14[236]]);_0xa132x9[_0x4e14[207]]( new WeightedCellSorter(_0xa132x3,_0xa132xa));_0xa132x3=_0xa132x3[_0x4e14[1765]];};_0xa132x9[_0x4e14[470]](WeightedCellSorter[_0x4e14[202]][_0x4e14[469]]);var _0xa132xa=_0xa132x2[_0x4e14[117]],_0xa132x12=(_0xa132x5+1)*this[_0x4e14[1751]];_0xa132xa>_0xa132x12+2*this[_0x4e14[1751]]&&(_0xa132xa-=2*this[_0x4e14[1751]]);_0xa132x2=_0xa132xa/_0xa132x5;_0xa132x3=_0xa132x2/2;_0xa132xa>_0xa132x12+2*this[_0x4e14[1751]]&&(_0xa132x3+=this[_0x4e14[1751]]);for(var _0xa132xa=this[_0x4e14[1753]]-this[_0x4e14[1752]],_0xa132x12=0,_0xa132x13=this[_0x4e14[1726]](_0xa132x4),_0xa132x14=0;_0xa132x14<_0xa132x9[_0x4e14[67]];_0xa132x14++){for(var _0xa132x15=_0xa132x9[_0xa132x14][_0x4e14[246]][_0x4e14[246]],_0xa132x16=this[_0x4e14[1726]](_0xa132x15),_0xa132x15=this[_0x4e14[1179]][_0x4e14[1781]](_0xa132x4,_0xa132x15,!1),_0xa132x17=[],_0xa132x18=0,_0xa132x19=0,_0xa132x1a=0;_0xa132x1a<_0xa132x15[_0x4e14[67]];_0xa132x1a++){this[_0x4e14[662]]?(_0xa132x18=_0xa132x13[_0x4e14[235]]+_0xa132x13[_0x4e14[117]],_0xa132x19=_0xa132x13[_0x4e14[236]]+_0xa132x3,_0xa132x17[_0x4e14[207]]( new mxPoint(_0xa132x18,_0xa132x19)),_0xa132x18=_0xa132x13[_0x4e14[235]]+_0xa132x13[_0x4e14[117]]+_0xa132xa,_0xa132x17[_0x4e14[207]]( new mxPoint(_0xa132x18,_0xa132x19)),_0xa132x19=_0xa132x16[_0x4e14[236]]+_0xa132x16[_0x4e14[119]]/2):(_0xa132x18=_0xa132x13[_0x4e14[235]]+_0xa132x3,_0xa132x19=_0xa132x13[_0x4e14[236]]+_0xa132x13[_0x4e14[119]],_0xa132x17[_0x4e14[207]]( new mxPoint(_0xa132x18,_0xa132x19)),_0xa132x19=_0xa132x13[_0x4e14[236]]+_0xa132x13[_0x4e14[119]]+_0xa132xa,_0xa132x17[_0x4e14[207]]( new mxPoint(_0xa132x18,_0xa132x19)),_0xa132x18=_0xa132x16[_0x4e14[235]]+_0xa132x16[_0x4e14[117]]/2),_0xa132x17[_0x4e14[207]]( new mxPoint(_0xa132x18,_0xa132x19)),this[_0x4e14[1722]](_0xa132x15[_0xa132x1a],_0xa132x17)};_0xa132x14<_0xa132x5/2?_0xa132xa+=this[_0x4e14[1752]]:_0xa132x14>_0xa132x5/2&&(_0xa132xa-=this[_0x4e14[1752]]);_0xa132x3+=_0xa132x2;_0xa132x12=Math[_0x4e14[160]](_0xa132x12,_0xa132xa);};};function WeightedCellSorter(_0xa132x2,_0xa132x3){this[_0x4e14[246]]=_0xa132x2;this[_0x4e14[1782]]=_0xa132x3;}WeightedCellSorter[_0x4e14[202]][_0x4e14[1782]]=0;WeightedCellSorter[_0x4e14[202]][_0x4e14[1783]]= !1;WeightedCellSorter[_0x4e14[202]][_0x4e14[1784]]= !1;WeightedCellSorter[_0x4e14[202]][_0x4e14[1785]]=null;WeightedCellSorter[_0x4e14[202]][_0x4e14[246]]=null;WeightedCellSorter[_0x4e14[202]][_0x4e14[469]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2&&null!=_0xa132x3?_0xa132x3[_0x4e14[1782]]>_0xa132x2[_0x4e14[1782]]?1:_0xa132x3[_0x4e14[1782]]<_0xa132x2[_0x4e14[1782]]?-1:_0xa132x3[_0x4e14[1783]]?1:-1:0};function mxFastOrganicLayout(_0xa132x2){mxGraphLayout[_0x4e14[239]](this,_0xa132x2)}mxFastOrganicLayout[_0x4e14[202]]= new mxGraphLayout;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[196]]=mxFastOrganicLayout;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1786]]= !0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1750]]= !0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1787]]= !0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1788]]=50;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1789]]=0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1790]]=2;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1791]]=500;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1792]]=4;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1793]]=200;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1794]]=0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1795]]=0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1796]]=0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1797]]= !0;mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1713]]=function(_0xa132x2){return mxGraphLayout[_0x4e14[202]][_0x4e14[1713]][_0x4e14[183]](this,arguments)||0==this[_0x4e14[1179]][_0x4e14[1756]](_0xa132x2)[_0x4e14[67]]};mxFastOrganicLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]();this[_0x4e14[1798]]=[];for(var _0xa132x4=this[_0x4e14[1179]][_0x4e14[1728]](_0xa132x2),_0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]];_0xa132x5++){this[_0x4e14[1713]](_0xa132x4[_0xa132x5])||this[_0x4e14[1798]][_0x4e14[207]](_0xa132x4[_0xa132x5])};var _0xa132x9=this[_0x4e14[1786]]?this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[1799]](this[_0x4e14[1798]]):null,_0xa132xa=this[_0x4e14[1798]][_0x4e14[67]];this[_0x4e14[1800]]=[];this[_0x4e14[1801]]=[];this[_0x4e14[1802]]=[];this[_0x4e14[1803]]=[];this[_0x4e14[1804]]=[];this[_0x4e14[1805]]=[];this[_0x4e14[1806]]=[];this[_0x4e14[1807]]=[];0.0010>this[_0x4e14[1788]]&&(this[_0x4e14[1788]]=0.0010);this[_0x4e14[1789]]=this[_0x4e14[1788]]*this[_0x4e14[1788]];for(_0xa132x5=0;_0xa132x5<this[_0x4e14[1798]][_0x4e14[67]];_0xa132x5++){var _0xa132x12=this[_0x4e14[1798]][_0xa132x5];this[_0x4e14[1803]][_0xa132x5]=[];var _0xa132x13=mxCellPath[_0x4e14[385]](_0xa132x12);this[_0x4e14[1800]][_0xa132x13]=_0xa132x5;var _0xa132x14=this[_0x4e14[1726]](_0xa132x12),_0xa132x15=_0xa132x14[_0x4e14[117]],_0xa132x16=_0xa132x14[_0x4e14[119]],_0xa132x17=_0xa132x14[_0x4e14[235]],_0xa132x18=_0xa132x14[_0x4e14[236]];this[_0x4e14[1803]][_0xa132x5][0]=_0xa132x17+_0xa132x15/2;this[_0x4e14[1803]][_0xa132x5][1]=_0xa132x18+_0xa132x16/2;this[_0x4e14[1806]][_0xa132x5]=Math[_0x4e14[243]](_0xa132x15,_0xa132x16);this[_0x4e14[1807]][_0xa132x5]=this[_0x4e14[1806]][_0xa132x5]*this[_0x4e14[1806]][_0xa132x5];};_0xa132x3[_0x4e14[473]]();try{for(_0xa132x5=0;_0xa132x5<_0xa132xa;_0xa132x5++){this[_0x4e14[1801]][_0xa132x5]=0;this[_0x4e14[1802]][_0xa132x5]=0;this[_0x4e14[1804]][_0xa132x5]=this[_0x4e14[1711]](this[_0x4e14[1798]][_0xa132x5]);var _0xa132x19=this[_0x4e14[1179]][_0x4e14[1756]](this[_0x4e14[1798]][_0xa132x5],_0xa132x2),_0xa132x4=this[_0x4e14[1179]][_0x4e14[1808]](_0xa132x19,this[_0x4e14[1798]][_0xa132x5]);this[_0x4e14[1805]][_0xa132x5]=[];for(_0xa132x15=0;_0xa132x15<_0xa132x4[_0x4e14[67]];_0xa132x15++){this[_0x4e14[1750]]&&this[_0x4e14[1179]][_0x4e14[1809]](_0xa132x19[_0xa132x15]);this[_0x4e14[1787]]&&this[_0x4e14[1716]](_0xa132x19[_0xa132x15],!1);var _0xa132x13=mxCellPath[_0x4e14[385]](_0xa132x4[_0xa132x15]),_0xa132x1a=this[_0x4e14[1800]][_0xa132x13];this[_0x4e14[1805]][_0xa132x5][_0xa132x15]=null!=_0xa132x1a?_0xa132x1a:_0xa132x5;};};this[_0x4e14[1794]]=this[_0x4e14[1793]];0==this[_0x4e14[1795]]&&(this[_0x4e14[1795]]=20*Math[_0x4e14[428]](_0xa132xa));for(this[_0x4e14[1796]]=0;this[_0x4e14[1796]]<this[_0x4e14[1795]];this[_0x4e14[1796]]++){if(!this[_0x4e14[1797]]){return };this[_0x4e14[1810]]();this[_0x4e14[1811]]();this[_0x4e14[1812]]();this[_0x4e14[1813]]();};_0xa132x2=_0xa132x4=null;for(_0xa132x5=0;_0xa132x5<this[_0x4e14[1798]][_0x4e14[67]];_0xa132x5++){_0xa132x12=this[_0x4e14[1798]][_0xa132x5],this[_0x4e14[1711]](_0xa132x12)&&(_0xa132x14=this[_0x4e14[1726]](_0xa132x12),null!=_0xa132x14&&(this[_0x4e14[1803]][_0xa132x5][0]-=_0xa132x14[_0x4e14[117]]/2,this[_0x4e14[1803]][_0xa132x5][1]-=_0xa132x14[_0x4e14[119]]/2,_0xa132x17=this[_0x4e14[1179]][_0x4e14[1021]](this[_0x4e14[1803]][_0xa132x5][0]),_0xa132x18=this[_0x4e14[1179]][_0x4e14[1021]](this[_0x4e14[1803]][_0xa132x5][1]),this[_0x4e14[1725]](_0xa132x12,_0xa132x17,_0xa132x18),_0xa132x4=null==_0xa132x4?_0xa132x17:Math[_0x4e14[243]](_0xa132x4,_0xa132x17),_0xa132x2=null==_0xa132x2?_0xa132x18:Math[_0x4e14[243]](_0xa132x2,_0xa132x18)))};_0xa132x5=-(_0xa132x4||0)+1;_0xa132x12=-(_0xa132x2||0)+1;null!=_0xa132x9&&(_0xa132x5+=_0xa132x9[_0x4e14[235]],_0xa132x12+=_0xa132x9[_0x4e14[236]]);this[_0x4e14[1179]][_0x4e14[834]](this[_0x4e14[1798]],_0xa132x5,_0xa132x12);}finally{_0xa132x3[_0x4e14[476]]()};};mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1812]]=function(){for(var _0xa132x2=0;_0xa132x2<this[_0x4e14[1798]][_0x4e14[67]];_0xa132x2++){if(this[_0x4e14[1804]][_0xa132x2]){var _0xa132x3=Math[_0x4e14[428]](this[_0x4e14[1801]][_0xa132x2]*this[_0x4e14[1801]][_0xa132x2]+this[_0x4e14[1802]][_0xa132x2]*this[_0x4e14[1802]][_0xa132x2]);0.0010>_0xa132x3&&(_0xa132x3=0.0010);var _0xa132x4=this[_0x4e14[1801]][_0xa132x2]/_0xa132x3*Math[_0x4e14[243]](_0xa132x3,this[_0x4e14[1794]]),_0xa132x3=this[_0x4e14[1802]][_0xa132x2]/_0xa132x3*Math[_0x4e14[243]](_0xa132x3,this[_0x4e14[1794]]);this[_0x4e14[1801]][_0xa132x2]=0;this[_0x4e14[1802]][_0xa132x2]=0;this[_0x4e14[1803]][_0xa132x2][0]+=_0xa132x4;this[_0x4e14[1803]][_0xa132x2][1]+=_0xa132x3;}}};mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1811]]=function(){for(var _0xa132x2=0;_0xa132x2<this[_0x4e14[1798]][_0x4e14[67]];_0xa132x2++){for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1805]][_0xa132x2][_0x4e14[67]];_0xa132x3++){var _0xa132x4=this[_0x4e14[1805]][_0xa132x2][_0xa132x3];if(_0xa132x2!=_0xa132x4&&this[_0x4e14[1804]][_0xa132x2]&&this[_0x4e14[1804]][_0xa132x4]){var _0xa132x5=this[_0x4e14[1803]][_0xa132x2][0]-this[_0x4e14[1803]][_0xa132x4][0],_0xa132x9=this[_0x4e14[1803]][_0xa132x2][1]-this[_0x4e14[1803]][_0xa132x4][1],_0xa132xa=_0xa132x5*_0xa132x5+_0xa132x9*_0xa132x9-this[_0x4e14[1807]][_0xa132x2]-this[_0x4e14[1807]][_0xa132x4];_0xa132xa<this[_0x4e14[1792]]&&(_0xa132xa=this[_0x4e14[1792]]);var _0xa132x12=Math[_0x4e14[428]](_0xa132xa),_0xa132xa=_0xa132xa/this[_0x4e14[1788]],_0xa132x5=_0xa132x5/_0xa132x12*_0xa132xa,_0xa132x9=_0xa132x9/_0xa132x12*_0xa132xa;this[_0x4e14[1801]][_0xa132x2]-=_0xa132x5;this[_0x4e14[1802]][_0xa132x2]-=_0xa132x9;this[_0x4e14[1801]][_0xa132x4]+=_0xa132x5;this[_0x4e14[1802]][_0xa132x4]+=_0xa132x9;};}}};mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1810]]=function(){for(var _0xa132x2=this[_0x4e14[1798]][_0x4e14[67]],_0xa132x3=0;_0xa132x3<_0xa132x2;_0xa132x3++){for(var _0xa132x4=_0xa132x3;_0xa132x4<_0xa132x2;_0xa132x4++){if(!this[_0x4e14[1797]]){return };if(_0xa132x4!=_0xa132x3&&this[_0x4e14[1804]][_0xa132x3]&&this[_0x4e14[1804]][_0xa132x4]){var _0xa132x5=this[_0x4e14[1803]][_0xa132x3][0]-this[_0x4e14[1803]][_0xa132x4][0],_0xa132x9=this[_0x4e14[1803]][_0xa132x3][1]-this[_0x4e14[1803]][_0xa132x4][1];0==_0xa132x5&&(_0xa132x5=0.01+Math[_0x4e14[1814]]());0==_0xa132x9&&(_0xa132x9=0.01+Math[_0x4e14[1814]]());var _0xa132xa=Math[_0x4e14[428]](_0xa132x5*_0xa132x5+_0xa132x9*_0xa132x9),_0xa132x12=_0xa132xa-this[_0x4e14[1806]][_0xa132x3]-this[_0x4e14[1806]][_0xa132x4];_0xa132x12>this[_0x4e14[1791]]||(_0xa132x12<this[_0x4e14[1790]]&&(_0xa132x12=this[_0x4e14[1790]]),_0xa132x12=this[_0x4e14[1789]]/_0xa132x12,_0xa132x5=_0xa132x5/_0xa132xa*_0xa132x12,_0xa132x9=_0xa132x9/_0xa132xa*_0xa132x12,this[_0x4e14[1801]][_0xa132x3]+=_0xa132x5,this[_0x4e14[1802]][_0xa132x3]+=_0xa132x9,this[_0x4e14[1801]][_0xa132x4]-=_0xa132x5,this[_0x4e14[1802]][_0xa132x4]-=_0xa132x9);};}}};mxFastOrganicLayout[_0x4e14[202]][_0x4e14[1813]]=function(){this[_0x4e14[1794]]=this[_0x4e14[1793]]*(1-this[_0x4e14[1796]]/this[_0x4e14[1795]])};function mxCircleLayout(_0xa132x2,_0xa132x3){mxGraphLayout[_0x4e14[239]](this,_0xa132x2);this[_0x4e14[1806]]=null!=_0xa132x3?_0xa132x3:100;}mxCircleLayout[_0x4e14[202]]= new mxGraphLayout;mxCircleLayout[_0x4e14[202]][_0x4e14[196]]=mxCircleLayout;mxCircleLayout[_0x4e14[202]][_0x4e14[1806]]=null;mxCircleLayout[_0x4e14[202]][_0x4e14[1815]]= !1;mxCircleLayout[_0x4e14[202]][_0x4e14[1732]]=0;mxCircleLayout[_0x4e14[202]][_0x4e14[1733]]=0;mxCircleLayout[_0x4e14[202]][_0x4e14[1750]]= !0;mxCircleLayout[_0x4e14[202]][_0x4e14[1787]]= !0;mxCircleLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]();_0xa132x3[_0x4e14[473]]();try{for(var _0xa132x4=0,_0xa132x5=null,_0xa132x9=null,_0xa132xa=[],_0xa132x12=_0xa132x3[_0x4e14[262]](_0xa132x2),_0xa132x13=0;_0xa132x13<_0xa132x12;_0xa132x13++){var _0xa132x14=_0xa132x3[_0x4e14[263]](_0xa132x2,_0xa132x13);if(this[_0x4e14[1713]](_0xa132x14)){this[_0x4e14[1715]](_0xa132x14)||(this[_0x4e14[1750]]&&this[_0x4e14[1179]][_0x4e14[1809]](_0xa132x14),this[_0x4e14[1787]]&&this[_0x4e14[1716]](_0xa132x14,!1))}else {_0xa132xa[_0x4e14[207]](_0xa132x14);var _0xa132x15=this[_0x4e14[1726]](_0xa132x14),_0xa132x5=null==_0xa132x5?_0xa132x15[_0x4e14[236]]:Math[_0x4e14[243]](_0xa132x5,_0xa132x15[_0x4e14[236]]),_0xa132x9=null==_0xa132x9?_0xa132x15[_0x4e14[235]]:Math[_0x4e14[243]](_0xa132x9,_0xa132x15[_0x4e14[235]]),_0xa132x4=Math[_0x4e14[160]](_0xa132x4,Math[_0x4e14[160]](_0xa132x15[_0x4e14[117]],_0xa132x15[_0x4e14[119]]));};};var _0xa132x16=this[_0x4e14[1816]](_0xa132xa[_0x4e14[67]],_0xa132x4);this[_0x4e14[1815]]&&(_0xa132x9=this[_0x4e14[1732]],_0xa132x5=this[_0x4e14[1733]]);this[_0x4e14[1817]](_0xa132xa,_0xa132x16,_0xa132x9,_0xa132x5);}finally{_0xa132x3[_0x4e14[476]]()};};mxCircleLayout[_0x4e14[202]][_0x4e14[1816]]=function(_0xa132x2,_0xa132x3){return Math[_0x4e14[160]](_0xa132x2*_0xa132x3/Math[_0x4e14[424]],this[_0x4e14[1806]])};mxCircleLayout[_0x4e14[202]][_0x4e14[1817]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){for(var _0xa132x9=_0xa132x2[_0x4e14[67]],_0xa132xa=2*Math[_0x4e14[424]]/_0xa132x9,_0xa132x12=0;_0xa132x12<_0xa132x9;_0xa132x12++){this[_0x4e14[1711]](_0xa132x2[_0xa132x12])&&this[_0x4e14[1725]](_0xa132x2[_0xa132x12],_0xa132x4+_0xa132x3+_0xa132x3*Math[_0x4e14[427]](_0xa132x12*_0xa132xa),_0xa132x5+_0xa132x3+_0xa132x3*Math[_0x4e14[426]](_0xa132x12*_0xa132xa))}};function mxParallelEdgeLayout(_0xa132x2){mxGraphLayout[_0x4e14[239]](this,_0xa132x2)}mxParallelEdgeLayout[_0x4e14[202]]= new mxGraphLayout;mxParallelEdgeLayout[_0x4e14[202]][_0x4e14[196]]=mxParallelEdgeLayout;mxParallelEdgeLayout[_0x4e14[202]][_0x4e14[657]]=20;mxParallelEdgeLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[1818]](_0xa132x2);this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x3 in _0xa132x2){var _0xa132x4=_0xa132x2[_0xa132x3];1<_0xa132x4[_0x4e14[67]]&&this[_0x4e14[1759]](_0xa132x4);}}finally{this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[476]]()};};mxParallelEdgeLayout[_0x4e14[202]][_0x4e14[1818]]=function(_0xa132x2){for(var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x4=[],_0xa132x5=_0xa132x3[_0x4e14[262]](_0xa132x2),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){var _0xa132xa=_0xa132x3[_0x4e14[263]](_0xa132x2,_0xa132x9);if(!this[_0x4e14[1715]](_0xa132xa)){var _0xa132x12=this[_0x4e14[1819]](_0xa132xa);null!=_0xa132x12&&(null==_0xa132x4[_0xa132x12]&&(_0xa132x4[_0xa132x12]=[]),_0xa132x4[_0xa132x12][_0x4e14[207]](_0xa132xa));};};return _0xa132x4;};mxParallelEdgeLayout[_0x4e14[202]][_0x4e14[1819]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[249]](),_0xa132x4=_0xa132x3[_0x4e14[248]](_0xa132x2),_0xa132x5=null!=_0xa132x4?_0xa132x4[_0x4e14[1710]](!0):_0xa132x3[_0x4e14[1710]](_0xa132x2,!0);_0xa132x2=null!=_0xa132x4?_0xa132x4[_0x4e14[1710]](!1):_0xa132x3[_0x4e14[1710]](_0xa132x2,!1);return null!=_0xa132x5&&null!=_0xa132x2?(_0xa132x5=mxCellPath[_0x4e14[385]](_0xa132x5),_0xa132x2=mxCellPath[_0x4e14[385]](_0xa132x2),_0xa132x5>_0xa132x2?_0xa132x2+_0x4e14[213]+_0xa132x5:_0xa132x5+_0x4e14[213]+_0xa132x2):null;};mxParallelEdgeLayout[_0x4e14[202]][_0x4e14[1759]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[0],_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=_0xa132x4[_0x4e14[1721]](_0xa132x4[_0x4e14[1709]](_0xa132x3,!0)),_0xa132x9=_0xa132x4[_0x4e14[1721]](_0xa132x4[_0x4e14[1709]](_0xa132x3,!1));if(_0xa132x5==_0xa132x9){for(var _0xa132x3=_0xa132x5[_0x4e14[235]]+_0xa132x5[_0x4e14[117]]+this[_0x4e14[657]],_0xa132x4=_0xa132x5[_0x4e14[236]]+_0xa132x5[_0x4e14[119]]/2,_0xa132xa=0;_0xa132xa<_0xa132x2[_0x4e14[67]];_0xa132xa++){this[_0x4e14[1820]](_0xa132x2[_0xa132xa],_0xa132x3,_0xa132x4),_0xa132x3+=this[_0x4e14[657]]}}else {if(null!=_0xa132x5&&null!=_0xa132x9){for(var _0xa132x3=_0xa132x5[_0x4e14[235]]+_0xa132x5[_0x4e14[117]]/2,_0xa132x4=_0xa132x5[_0x4e14[236]]+_0xa132x5[_0x4e14[119]]/2,_0xa132xa=_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]]/2-_0xa132x3,_0xa132x12=_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]]/2-_0xa132x4,_0xa132x9=Math[_0x4e14[428]](_0xa132xa*_0xa132xa+_0xa132x12*_0xa132x12),_0xa132x5=_0xa132x12*this[_0x4e14[657]]/_0xa132x9,_0xa132x9=_0xa132xa*this[_0x4e14[657]]/_0xa132x9,_0xa132x3=_0xa132x3+_0xa132xa/2+_0xa132x5*(_0xa132x2[_0x4e14[67]]-1)/2,_0xa132x4=_0xa132x4+_0xa132x12/2-_0xa132x9*(_0xa132x2[_0x4e14[67]]-1)/2,_0xa132xa=0;_0xa132xa<_0xa132x2[_0x4e14[67]];_0xa132xa++){this[_0x4e14[1820]](_0xa132x2[_0xa132xa],_0xa132x3,_0xa132x4),_0xa132x3-=_0xa132x5,_0xa132x4+=_0xa132x9}}};};mxParallelEdgeLayout[_0x4e14[202]][_0x4e14[1820]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[1179]][_0x4e14[1712]](_0xa132x2)&&this[_0x4e14[1722]](_0xa132x2,[ new mxPoint(_0xa132x3,_0xa132x4)])};function mxCompositeLayout(_0xa132x2,_0xa132x3,_0xa132x4){mxGraphLayout[_0x4e14[239]](this,_0xa132x2);this[_0x4e14[1821]]=_0xa132x3;this[_0x4e14[1822]]=_0xa132x4;}mxCompositeLayout[_0x4e14[202]]= new mxGraphLayout;mxCompositeLayout[_0x4e14[202]][_0x4e14[196]]=mxCompositeLayout;mxCompositeLayout[_0x4e14[202]][_0x4e14[1821]]=null;mxCompositeLayout[_0x4e14[202]][_0x4e14[1822]]=null;mxCompositeLayout[_0x4e14[202]][_0x4e14[1702]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null!=this[_0x4e14[1822]]?this[_0x4e14[1822]][_0x4e14[582]][_0x4e14[183]](this[_0x4e14[1822]],arguments):this[_0x4e14[1821]][0][_0x4e14[582]][_0x4e14[183]](this[_0x4e14[1821]][0],arguments)};mxCompositeLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]();_0xa132x3[_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<this[_0x4e14[1821]][_0x4e14[67]];_0xa132x4++){this[_0x4e14[1821]][_0xa132x4][_0x4e14[350]][_0x4e14[183]](this[_0x4e14[1821]][_0xa132x4],arguments)}}finally{_0xa132x3[_0x4e14[476]]()};};function mxEdgeLabelLayout(_0xa132x2,_0xa132x3){mxGraphLayout[_0x4e14[239]](this,_0xa132x2)}mxEdgeLabelLayout[_0x4e14[202]]= new mxGraphLayout;mxEdgeLabelLayout[_0x4e14[202]][_0x4e14[196]]=mxEdgeLabelLayout;mxEdgeLabelLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){for(var _0xa132x3=this[_0x4e14[1179]][_0x4e14[441]],_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=[],_0xa132x9=[],_0xa132xa=_0xa132x4[_0x4e14[262]](_0xa132x2),_0xa132x12=0;_0xa132x12<_0xa132xa;_0xa132x12++){var _0xa132x13=_0xa132x4[_0x4e14[263]](_0xa132x2,_0xa132x12),_0xa132x14=_0xa132x3[_0x4e14[248]](_0xa132x13);null!=_0xa132x14&&(this[_0x4e14[1713]](_0xa132x13)?this[_0x4e14[1715]](_0xa132x13)||_0xa132x5[_0x4e14[207]](_0xa132x14):_0xa132x9[_0x4e14[207]](_0xa132x14));};this[_0x4e14[1823]](_0xa132x9,_0xa132x5);};mxEdgeLabelLayout[_0x4e14[202]][_0x4e14[1823]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]();_0xa132x4[_0x4e14[473]]();try{for(var _0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){var _0xa132x9=_0xa132x3[_0xa132x5];if(null!=_0xa132x9&&null!=_0xa132x9[_0x4e14[963]]&&null!=_0xa132x9[_0x4e14[963]][_0x4e14[1563]]){for(var _0xa132xa=0;_0xa132xa<_0xa132x2[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x2[_0xa132xa];null!=_0xa132x12&&this[_0x4e14[1824]](_0xa132x9,_0xa132x12);}};}}finally{_0xa132x4[_0x4e14[476]]()};};mxEdgeLabelLayout[_0x4e14[202]][_0x4e14[1824]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=_0xa132x2[_0x4e14[963]][_0x4e14[1563]];if(mxUtils[_0x4e14[1825]](_0xa132x5,_0xa132x3)){var _0xa132x9=-_0xa132x5[_0x4e14[236]]-_0xa132x5[_0x4e14[119]]+_0xa132x3[_0x4e14[236]],_0xa132xa=-_0xa132x5[_0x4e14[236]]+_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]],_0xa132x9=Math[_0x4e14[425]](_0xa132x9)<Math[_0x4e14[425]](_0xa132xa)?_0xa132x9:_0xa132xa,_0xa132xa=-_0xa132x5[_0x4e14[235]]-_0xa132x5[_0x4e14[117]]+_0xa132x3[_0x4e14[235]],_0xa132x5=-_0xa132x5[_0x4e14[235]]+_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]],_0xa132x5=Math[_0x4e14[425]](_0xa132xa)<Math[_0x4e14[425]](_0xa132x5)?_0xa132xa:_0xa132x5;Math[_0x4e14[425]](_0xa132x5)<Math[_0x4e14[425]](_0xa132x9)?_0xa132x9=0:_0xa132x5=0;_0xa132xa=_0xa132x4[_0x4e14[1721]](_0xa132x2[_0x4e14[246]]);null!=_0xa132xa&&(_0xa132xa=_0xa132xa[_0x4e14[238]](),null!=_0xa132xa[_0x4e14[1368]]?(_0xa132xa[_0x4e14[1368]][_0x4e14[235]]+=_0xa132x5,_0xa132xa[_0x4e14[1368]][_0x4e14[236]]+=_0xa132x9):_0xa132xa[_0x4e14[1368]]= new mxPoint(_0xa132x5,_0xa132x9),_0xa132x4[_0x4e14[1724]](_0xa132x2[_0x4e14[246]],_0xa132xa));};};function mxGraphAbstractHierarchyCell(){this[_0x4e14[235]]=[];this[_0x4e14[236]]=[];this[_0x4e14[1826]]=[];}mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1827]]= -1;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1828]]= -1;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[235]]=null;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[236]]=null;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[117]]=0;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[119]]=0;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1829]]=null;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1830]]=null;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1826]]=null;mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1831]]=function(_0xa132x2){return null};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1832]]=function(_0xa132x2){return null};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[250]]=function(){return !1};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1193]]=function(){return !1};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1833]]=function(_0xa132x2){return null};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1834]]=function(_0xa132x2,_0xa132x3){return null};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1835]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1193]]()?this[_0x4e14[235]][0]=_0xa132x3:this[_0x4e14[250]]()&&(this[_0x4e14[235]][_0xa132x2-this[_0x4e14[1828]]-1]=_0xa132x3)};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[730]]=function(_0xa132x2){return this[_0x4e14[1193]]()?this[_0x4e14[235]][0]:this[_0x4e14[250]]()?this[_0x4e14[235]][_0xa132x2-this[_0x4e14[1828]]-1]:0};mxGraphAbstractHierarchyCell[_0x4e14[202]][_0x4e14[1836]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1193]]()?this[_0x4e14[236]][0]=_0xa132x3:this[_0x4e14[250]]()&&(this[_0x4e14[236]][_0xa132x2-this[_0x4e14[1828]]-1]=_0xa132x3)};function mxGraphHierarchyNode(_0xa132x2){mxGraphAbstractHierarchyCell[_0x4e14[183]](this,arguments);this[_0x4e14[246]]=_0xa132x2;}mxGraphHierarchyNode[_0x4e14[202]]= new mxGraphAbstractHierarchyCell;mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[196]]=mxGraphHierarchyNode;mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[246]]=null;mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1837]]=[];mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1838]]=[];mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1839]]= !1;mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1840]]=function(_0xa132x2){return this[_0x4e14[1827]]};mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1831]]=function(_0xa132x2){if(null==this[_0x4e14[1829]]){this[_0x4e14[1829]]=[];this[_0x4e14[1829]][0]=[];for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1837]][_0x4e14[67]];_0xa132x3++){var _0xa132x4=this[_0x4e14[1837]][_0xa132x3];-1==_0xa132x4[_0x4e14[1827]]||_0xa132x4[_0x4e14[1827]]==_0xa132x2+1?this[_0x4e14[1829]][0][_0x4e14[207]](_0xa132x4[_0x4e14[1097]]):this[_0x4e14[1829]][0][_0x4e14[207]](_0xa132x4);};};return this[_0x4e14[1829]][0];};mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1832]]=function(_0xa132x2){if(null==this[_0x4e14[1830]]){this[_0x4e14[1830]]=[];this[_0x4e14[1830]][0]=[];for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1838]][_0x4e14[67]];_0xa132x3++){var _0xa132x4=this[_0x4e14[1838]][_0xa132x3];-1==_0xa132x4[_0x4e14[1828]]||_0xa132x4[_0x4e14[1828]]==_0xa132x2-1?this[_0x4e14[1830]][0][_0x4e14[207]](_0xa132x4[_0x4e14[772]]):this[_0x4e14[1830]][0][_0x4e14[207]](_0xa132x4);};};return this[_0x4e14[1830]][0];};mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1193]]=function(){return !0};mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1833]]=function(_0xa132x2){return this[_0x4e14[1826]][0]};mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1834]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1826]][0]=_0xa132x3};mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1720]]=function(_0xa132x2){if(null!=_0xa132x2&&null!=this[_0x4e14[1839]]&&null!=_0xa132x2[_0x4e14[1839]]&&this[_0x4e14[1839]][_0x4e14[67]]<_0xa132x2[_0x4e14[1839]][_0x4e14[67]]){if(this[_0x4e14[1839]]==_0xa132x2[_0x4e14[1839]]){return !0};if(null==this[_0x4e14[1839]]||null==this[_0x4e14[1839]]){return !1};for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1839]][_0x4e14[67]];_0xa132x3++){if(this[_0x4e14[1839]][_0xa132x3]!=_0xa132x2[_0x4e14[1839]][_0xa132x3]){return !1}};return !0;};return !1;};mxGraphHierarchyNode[_0x4e14[202]][_0x4e14[1841]]=function(){return this[_0x4e14[246]]};function mxGraphHierarchyEdge(_0xa132x2){mxGraphAbstractHierarchyCell[_0x4e14[183]](this,arguments);this[_0x4e14[1842]]=_0xa132x2;}mxGraphHierarchyEdge[_0x4e14[202]]= new mxGraphAbstractHierarchyCell;mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[196]]=mxGraphHierarchyEdge;mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1842]]=null;mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1097]]=null;mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[772]]=null;mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1843]]= !1;mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1744]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[1097]];this[_0x4e14[1097]]=this[_0x4e14[772]];this[_0x4e14[772]]=_0xa132x2;this[_0x4e14[1843]]=!this[_0x4e14[1843]];};mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1831]]=function(_0xa132x2){if(null==this[_0x4e14[1829]]){this[_0x4e14[1829]]=[];for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1826]][_0x4e14[67]];_0xa132x3++){this[_0x4e14[1829]][_0xa132x3]=[],_0xa132x3==this[_0x4e14[1826]][_0x4e14[67]]-1?this[_0x4e14[1829]][_0xa132x3][_0x4e14[207]](this[_0x4e14[1097]]):this[_0x4e14[1829]][_0xa132x3][_0x4e14[207]](this)};};return this[_0x4e14[1829]][_0xa132x2-this[_0x4e14[1828]]-1];};mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1832]]=function(_0xa132x2){if(null==this[_0x4e14[1830]]){this[_0x4e14[1830]]=[];for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1826]][_0x4e14[67]];_0xa132x3++){this[_0x4e14[1830]][_0xa132x3]=[],0==_0xa132x3?this[_0x4e14[1830]][_0xa132x3][_0x4e14[207]](this[_0x4e14[772]]):this[_0x4e14[1830]][_0xa132x3][_0x4e14[207]](this)};};return this[_0x4e14[1830]][_0xa132x2-this[_0x4e14[1828]]-1];};mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[250]]=function(){return !0};mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1833]]=function(_0xa132x2){return this[_0x4e14[1826]][_0xa132x2-this[_0x4e14[1828]]-1]};mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1834]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1826]][_0xa132x2-this[_0x4e14[1828]]-1]=_0xa132x3};mxGraphHierarchyEdge[_0x4e14[202]][_0x4e14[1841]]=function(){return null!=this[_0x4e14[1842]]&&0<this[_0x4e14[1842]][_0x4e14[67]]?this[_0x4e14[1842]][0]:null};function mxGraphHierarchyModel(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2[_0x4e14[1703]]();this[_0x4e14[1844]]=_0xa132x9;this[_0x4e14[1845]]=_0xa132x4;this[_0x4e14[1101]]=_0xa132x5;this[_0x4e14[1846]]={};this[_0x4e14[1847]]={};this[_0x4e14[1827]]=0;_0xa132x4=[];null==_0xa132x3&&(_0xa132x3=this[_0x4e14[1179]][_0x4e14[1728]](_0xa132x5));this[_0x4e14[1827]]=this[_0x4e14[1848]];this[_0x4e14[1849]](_0xa132x2,_0xa132x3,_0xa132x4);for(_0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){_0xa132x9=_0xa132x4[_0xa132x5][_0x4e14[1838]];for(var _0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x9[_0xa132xa],_0xa132x13=_0xa132x12[_0x4e14[1842]];if(null!=_0xa132x13&&0<_0xa132x13[_0x4e14[67]]){var _0xa132x13=_0xa132x13[0],_0xa132x14=_0xa132x2[_0x4e14[1710]](_0xa132x13,!1),_0xa132x14=mxCellPath[_0x4e14[385]](_0xa132x14),_0xa132x14=this[_0x4e14[1846]][_0xa132x14];_0xa132x4[_0xa132x5]==_0xa132x14&&(_0xa132x14=_0xa132x2[_0x4e14[1710]](_0xa132x13,!0),_0xa132x14=mxCellPath[_0x4e14[385]](_0xa132x14),_0xa132x14=this[_0x4e14[1846]][_0xa132x14]);null!=_0xa132x14&&_0xa132x4[_0xa132x5]!=_0xa132x14&&(_0xa132x12[_0x4e14[772]]=_0xa132x14,0==_0xa132x14[_0x4e14[1837]][_0x4e14[67]]&&(_0xa132x14[_0x4e14[1837]]=[]),0>mxUtils[_0x4e14[2]](_0xa132x14[_0x4e14[1837]],_0xa132x12)&&_0xa132x14[_0x4e14[1837]][_0x4e14[207]](_0xa132x12));};};_0xa132x4[_0xa132x5][_0x4e14[1826]][0]=1;};}mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1827]]=null;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1846]]=null;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1847]]=null;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1850]]=null;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1845]]=null;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1101]]=null;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1851]]=0;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1848]]=1E8;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1844]]= !1;mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1849]]=function(_0xa132x2,_0xa132x3,_0xa132x4){for(var _0xa132x5=_0xa132x2[_0x4e14[1703]](),_0xa132x9=0;_0xa132x9<_0xa132x3[_0x4e14[67]];_0xa132x9++){_0xa132x4[_0xa132x9]= new mxGraphHierarchyNode(_0xa132x3[_0xa132x9]);var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x3[_0xa132x9]);this[_0x4e14[1846]][_0xa132xa]=_0xa132x4[_0xa132x9];_0xa132xa=_0xa132x2[_0x4e14[264]](_0xa132x3[_0xa132x9]);_0xa132x4[_0xa132x9][_0x4e14[1838]]=[];for(var _0xa132x12=0;_0xa132x12<_0xa132xa[_0x4e14[67]];_0xa132x12++){var _0xa132x13=_0xa132x2[_0x4e14[1710]](_0xa132xa[_0xa132x12],!1);if(_0xa132x13!=_0xa132x3[_0xa132x9]&&_0xa132x13!=_0xa132x3[_0xa132x9]&&_0xa132x2[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1193]](_0xa132x13)&&!_0xa132x2[_0x4e14[1713]](_0xa132x13)){var _0xa132x14=_0xa132x2[_0x4e14[1781]](_0xa132x3[_0xa132x9],_0xa132x13,!1),_0xa132x15=_0xa132x2[_0x4e14[1781]](_0xa132x3[_0xa132x9],_0xa132x13,!0),_0xa132x13=mxCellPath[_0x4e14[385]](_0xa132x14[0]);if(null!=_0xa132x14&&0<_0xa132x14[_0x4e14[67]]&&null==this[_0x4e14[1847]][_0xa132x13]&&2*_0xa132x15[_0x4e14[67]]>=_0xa132x14[_0x4e14[67]]){for(var _0xa132x15= new mxGraphHierarchyEdge(_0xa132x14),_0xa132x16=0;_0xa132x16<_0xa132x14[_0x4e14[67]];_0xa132x16++){var _0xa132x17=_0xa132x14[_0xa132x16],_0xa132x13=mxCellPath[_0x4e14[385]](_0xa132x17);this[_0x4e14[1847]][_0xa132x13]=_0xa132x15;_0xa132x5[_0x4e14[1809]](_0xa132x17);_0xa132x2[_0x4e14[1787]]&&(_0xa132x2[_0x4e14[1716]](_0xa132x17,!1),_0xa132x2[_0x4e14[1718]](_0xa132x17,!0));};_0xa132x15[_0x4e14[1097]]=_0xa132x4[_0xa132x9];0>mxUtils[_0x4e14[2]](_0xa132x4[_0xa132x9][_0x4e14[1838]],_0xa132x15)&&_0xa132x4[_0xa132x9][_0x4e14[1838]][_0x4e14[207]](_0xa132x15);};};};_0xa132x4[_0xa132x9][_0x4e14[1826]][0]=0;}};mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1852]]=function(){var _0xa132x2=[];if(null!=this[_0x4e14[1845]]){for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1845]][_0x4e14[67]];_0xa132x3++){var _0xa132x4=mxCellPath[_0x4e14[385]](this[_0x4e14[1845]][_0xa132x3]),_0xa132x4=this[_0x4e14[1846]][_0xa132x4];null!=_0xa132x4&&_0xa132x2[_0x4e14[207]](_0xa132x4);}};for(var _0xa132x5 in this[_0x4e14[1846]]){_0xa132x4=this[_0x4e14[1846]][_0xa132x5],_0xa132x4[_0x4e14[1826]][0]= -1};for(var _0xa132x9=_0xa132x2[_0x4e14[1853]]();0<_0xa132x2[_0x4e14[67]];){var _0xa132x4=_0xa132x2[0],_0xa132xa,_0xa132x12;_0xa132xa=_0xa132x4[_0x4e14[1837]];_0xa132x12=_0xa132x4[_0x4e14[1838]];for(var _0xa132x13=!0,_0xa132x14=this[_0x4e14[1848]],_0xa132x3=0;_0xa132x3<_0xa132xa[_0x4e14[67]];_0xa132x3++){var _0xa132x15=_0xa132xa[_0xa132x3];if(5270620==_0xa132x15[_0x4e14[1826]][0]){_0xa132x15=_0xa132x15[_0x4e14[1097]],_0xa132x14=Math[_0x4e14[243]](_0xa132x14,_0xa132x15[_0x4e14[1826]][0]-1)}else {_0xa132x13= !1;break;};};if(_0xa132x13){_0xa132x4[_0x4e14[1826]][0]=_0xa132x14;this[_0x4e14[1827]]=Math[_0x4e14[243]](this[_0x4e14[1827]],_0xa132x14);if(null!=_0xa132x12){for(_0xa132x3=0;_0xa132x3<_0xa132x12[_0x4e14[67]];_0xa132x3++){_0xa132x15=_0xa132x12[_0xa132x3],_0xa132x15[_0x4e14[1826]][0]=5270620,_0xa132x15=_0xa132x15[_0x4e14[772]],-1==_0xa132x15[_0x4e14[1826]][0]&&(_0xa132x2[_0x4e14[207]](_0xa132x15),_0xa132x15[_0x4e14[1826]][0]= -2)}};_0xa132x2[_0x4e14[1115]]();}else {if(_0xa132x3=_0xa132x2[_0x4e14[1115]](),_0xa132x2[_0x4e14[207]](_0xa132x4),_0xa132x3==_0xa132x4&&1==_0xa132x2[_0x4e14[67]]){break}};};for(_0xa132x5 in this[_0x4e14[1846]]){_0xa132x4=this[_0x4e14[1846]][_0xa132x5],_0xa132x4[_0x4e14[1826]][0]-=this[_0x4e14[1827]]};for(_0xa132x3=0;_0xa132x3<_0xa132x9[_0x4e14[67]];_0xa132x3++){_0xa132x4=_0xa132x9[_0xa132x3];_0xa132x2=0;_0xa132xa=_0xa132x4[_0x4e14[1838]];for(_0xa132x5=0;_0xa132x5<_0xa132xa[_0x4e14[67]];_0xa132x5++){_0xa132x15=_0xa132xa[_0xa132x5],_0xa132x15=_0xa132x15[_0x4e14[772]],_0xa132x4[_0x4e14[1826]][0]=Math[_0x4e14[160]](_0xa132x2,_0xa132x15[_0x4e14[1826]][0]+1),_0xa132x2=_0xa132x4[_0x4e14[1826]][0]};};this[_0x4e14[1827]]=this[_0x4e14[1848]]-this[_0x4e14[1827]];};mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1854]]=function(){var _0xa132x2=[];this[_0x4e14[1850]]=[];for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[1827]]+1;_0xa132x3++){_0xa132x2[_0xa132x3]=[],this[_0x4e14[1850]][_0xa132x3]=_0xa132x2[_0xa132x3]};var _0xa132x4=null;if(null!=this[_0x4e14[1845]]){for(var _0xa132x5=this[_0x4e14[1845]],_0xa132x4=[],_0xa132x3=0;_0xa132x3<_0xa132x5[_0x4e14[67]];_0xa132x3++){var _0xa132x9=mxCellPath[_0x4e14[385]](_0xa132x5[_0xa132x3]);_0xa132x4[_0xa132x3]=this[_0x4e14[1846]][_0xa132x9];}};this[_0x4e14[209]](function(_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132x15){0==_0xa132x15&&(0>_0xa132x4[_0x4e14[1827]]&&0>_0xa132x4[_0x4e14[1828]])&&(_0xa132x2[_0xa132x4[_0x4e14[1826]][0]][_0x4e14[207]](_0xa132x4),_0xa132x4[_0x4e14[1827]]=_0xa132x4[_0x4e14[1826]][0],_0xa132x4[_0x4e14[1828]]=_0xa132x4[_0x4e14[1826]][0],_0xa132x4[_0x4e14[1826]][0]=_0xa132x2[_0xa132x4[_0x4e14[1827]]][_0x4e14[67]]-1);if(null!=_0xa132x3&&null!=_0xa132x5&&1<_0xa132x3[_0x4e14[1827]]-_0xa132x4[_0x4e14[1827]]){_0xa132x5[_0x4e14[1827]]=_0xa132x3[_0x4e14[1827]];_0xa132x5[_0x4e14[1828]]=_0xa132x4[_0x4e14[1827]];_0xa132x5[_0x4e14[1826]]=[];_0xa132x5[_0x4e14[235]]=[];_0xa132x5[_0x4e14[236]]=[];for(_0xa132x3=_0xa132x5[_0x4e14[1828]]+1;_0xa132x3<_0xa132x5[_0x4e14[1827]];_0xa132x3++){_0xa132x2[_0xa132x3][_0x4e14[207]](_0xa132x5),_0xa132x5[_0x4e14[1834]](_0xa132x3,_0xa132x2[_0xa132x3][_0x4e14[67]]-1)};};},_0xa132x4,!1,null);};mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[209]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x3){for(var _0xa132x9=0;_0xa132x9<_0xa132x3[_0x4e14[67]];_0xa132x9++){var _0xa132xa=_0xa132x3[_0xa132x9];null!=_0xa132xa&&(null==_0xa132x5&&(_0xa132x5={}),_0xa132x4?(_0xa132xa[_0x4e14[1839]]=[],_0xa132xa[_0x4e14[1839]][0]=this[_0x4e14[1851]],_0xa132xa[_0x4e14[1839]][1]=_0xa132x9,this[_0x4e14[1855]](null,_0xa132xa,null,_0xa132x2,_0xa132x5,_0xa132xa[_0x4e14[1839]],_0xa132x9,0)):this[_0x4e14[1758]](null,_0xa132xa,null,_0xa132x2,_0xa132x5,0));};this[_0x4e14[1851]]++;}};mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1758]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){if(null!=_0xa132x3){var _0xa132x12=mxCellPath[_0x4e14[385]](_0xa132x3[_0x4e14[246]]);if(null==_0xa132x9[_0xa132x12]){_0xa132x9[_0xa132x12]=_0xa132x3;_0xa132x5(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132xa,0);_0xa132x2=_0xa132x3[_0x4e14[1838]][_0x4e14[1853]]();for(_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){_0xa132x12=_0xa132x2[_0xa132x4],this[_0x4e14[1758]](_0xa132x3,_0xa132x12[_0x4e14[772]],_0xa132x12,_0xa132x5,_0xa132x9,_0xa132xa+1)};}else {_0xa132x5(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132xa,1)};}};mxGraphHierarchyModel[_0x4e14[202]][_0x4e14[1855]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13){if(null!=_0xa132x3){if(null!=_0xa132x2&&(null==_0xa132x3[_0x4e14[1839]]||_0xa132x3[_0x4e14[1839]][0]!=_0xa132x2[_0x4e14[1839]][0])){_0xa132xa=_0xa132x2[_0x4e14[1839]][_0x4e14[67]]+1,_0xa132x3[_0x4e14[1839]]=_0xa132x2[_0x4e14[1839]][_0x4e14[1853]](),_0xa132x3[_0x4e14[1839]][_0xa132xa-1]=_0xa132x12};_0xa132x12=mxCellPath[_0x4e14[385]](_0xa132x3[_0x4e14[246]]);if(null==_0xa132x9[_0xa132x12]){_0xa132x9[_0xa132x12]=_0xa132x3;_0xa132x5(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x13,0);_0xa132x2=_0xa132x3[_0x4e14[1838]][_0x4e14[1853]]();for(_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){_0xa132x12=_0xa132x2[_0xa132x4],this[_0x4e14[1855]](_0xa132x3,_0xa132x12[_0x4e14[772]],_0xa132x12,_0xa132x5,_0xa132x9,_0xa132x3[_0x4e14[1839]],_0xa132x4,_0xa132x13+1)};}else {_0xa132x5(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x13,1)};}};function mxHierarchicalLayoutStage(){}mxHierarchicalLayoutStage[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){};function mxMedianHybridCrossingReduction(_0xa132x2){this[_0x4e14[1759]]=_0xa132x2}mxMedianHybridCrossingReduction[_0x4e14[202]]= new mxHierarchicalLayoutStage;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[196]]=mxMedianHybridCrossingReduction;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1759]]=null;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1795]]=24;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1856]]=null;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1857]]=0;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1858]]=0;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1859]]=2;mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[1759]][_0x4e14[502]]();this[_0x4e14[1856]]=[];for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[1850]][_0x4e14[67]];_0xa132x3++){this[_0x4e14[1856]][_0xa132x3]=_0xa132x2[_0x4e14[1850]][_0xa132x3][_0x4e14[1853]]()};for(var _0xa132x4=0,_0xa132x5=this[_0x4e14[1860]](_0xa132x2),_0xa132x3=0;_0xa132x3<this[_0x4e14[1795]]&&_0xa132x4<this[_0x4e14[1859]];_0xa132x3++){this[_0x4e14[1861]](_0xa132x3,_0xa132x2);this[_0x4e14[1862]](_0xa132x3,_0xa132x2);var _0xa132x9=this[_0x4e14[1860]](_0xa132x2);if(_0xa132x9<_0xa132x5){_0xa132x5=_0xa132x9;for(_0xa132x9=_0xa132x4=0;_0xa132x9<this[_0x4e14[1856]][_0x4e14[67]];_0xa132x9++){for(var _0xa132xa=_0xa132x2[_0x4e14[1850]][_0xa132x9],_0xa132x12=0;_0xa132x12<_0xa132xa[_0x4e14[67]];_0xa132x12++){var _0xa132x13=_0xa132xa[_0xa132x12];this[_0x4e14[1856]][_0xa132x9][_0xa132x13[_0x4e14[1833]](_0xa132x9)]=_0xa132x13;}};}else {_0xa132x4++;for(_0xa132x9=0;_0xa132x9<this[_0x4e14[1856]][_0x4e14[67]];_0xa132x9++){_0xa132xa=_0xa132x2[_0x4e14[1850]][_0xa132x9];for(_0xa132x12=0;_0xa132x12<_0xa132xa[_0x4e14[67]];_0xa132x12++){_0xa132x13=_0xa132xa[_0xa132x12],_0xa132x13[_0x4e14[1834]](_0xa132x9,_0xa132x12)};};};if(0==_0xa132x5){break};};_0xa132x4=[];_0xa132x5=[];for(_0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[1827]]+1;_0xa132x3++){_0xa132x5[_0xa132x3]=[],_0xa132x4[_0xa132x3]=_0xa132x5[_0xa132x3]};for(_0xa132x3=0;_0xa132x3<this[_0x4e14[1856]][_0x4e14[67]];_0xa132x3++){for(_0xa132x9=0;_0xa132x9<this[_0x4e14[1856]][_0xa132x3][_0x4e14[67]];_0xa132x9++){_0xa132x5[_0xa132x3][_0x4e14[207]](this[_0x4e14[1856]][_0xa132x3][_0xa132x9])}};_0xa132x2[_0x4e14[1850]]=_0xa132x4;};mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1860]]=function(_0xa132x2){for(var _0xa132x3=_0xa132x2[_0x4e14[1850]][_0x4e14[67]],_0xa132x4=0,_0xa132x5=1;_0xa132x5<_0xa132x3;_0xa132x5++){_0xa132x4+=this[_0x4e14[1863]](_0xa132x5,_0xa132x2)};return _0xa132x4;};mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1863]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=0,_0xa132x5=_0xa132x3[_0x4e14[1850]][_0xa132x2],_0xa132x9=_0xa132x5[_0x4e14[67]],_0xa132xa=_0xa132x3[_0x4e14[1850]][_0xa132x2-1][_0x4e14[67]],_0xa132x12=[],_0xa132x13=0;_0xa132x13<_0xa132x9;_0xa132x13++){_0xa132x12[_0xa132x13]=[]};for(_0xa132x13=0;_0xa132x13<_0xa132x5[_0x4e14[67]];_0xa132x13++){for(var _0xa132x14=_0xa132x5[_0xa132x13],_0xa132x15=_0xa132x14[_0x4e14[1833]](_0xa132x2),_0xa132x16=_0xa132x14[_0x4e14[1832]](_0xa132x2),_0xa132x14=0;_0xa132x14<_0xa132x16[_0x4e14[67]];_0xa132x14++){var _0xa132x17=_0xa132x16[_0xa132x14][_0x4e14[1833]](_0xa132x2-1);_0xa132x12[_0xa132x15][_0xa132x17]=201207;}};for(_0xa132x13=0;_0xa132x13<_0xa132x9;_0xa132x13++){for(_0xa132x14=0;_0xa132x14<_0xa132xa;_0xa132x14++){if(201207==_0xa132x12[_0xa132x13][_0xa132x14]){for(_0xa132x5=_0xa132x13+1;_0xa132x5<_0xa132x9;_0xa132x5++){for(_0xa132x15=0;_0xa132x15<_0xa132x14;_0xa132x15++){201207==_0xa132x12[_0xa132x5][_0xa132x15]&&_0xa132x4++}};for(_0xa132x5=0;_0xa132x5<_0xa132x13;_0xa132x5++){for(_0xa132x15=_0xa132x14+1;_0xa132x15<_0xa132xa;_0xa132x15++){201207==_0xa132x12[_0xa132x5][_0xa132x15]&&_0xa132x4++}};}}};return _0xa132x4/2;};mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1862]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=!0,_0xa132x5=0;_0xa132x4&&10>_0xa132x5++;){for(var _0xa132x9=1==_0xa132x2%2&&1==_0xa132x5%2,_0xa132x4=!1,_0xa132xa=0;_0xa132xa<_0xa132x3[_0x4e14[1850]][_0x4e14[67]];_0xa132xa++){for(var _0xa132x12=_0xa132x3[_0x4e14[1850]][_0xa132xa],_0xa132x13=[],_0xa132x14=0;_0xa132x14<_0xa132x12[_0x4e14[67]];_0xa132x14++){var _0xa132x15=_0xa132x12[_0xa132x14],_0xa132x16=_0xa132x15[_0x4e14[1833]](_0xa132xa);0>_0xa132x16&&(_0xa132x16=_0xa132x14);_0xa132x13[_0xa132x16]=_0xa132x15;};for(var _0xa132x17=_0xa132x16=_0xa132x15=null,_0xa132x18=null,_0xa132x19=null,_0xa132x1a=null,_0xa132x1b=null,_0xa132x1c=null,_0xa132x1d=null,_0xa132x1e=null,_0xa132x14=0;_0xa132x14<_0xa132x12[_0x4e14[67]]-1;_0xa132x14++){if(0==_0xa132x14){for(var _0xa132x1d=_0xa132x13[_0xa132x14],_0xa132x15=_0xa132x1d[_0x4e14[1831]](_0xa132xa),_0xa132x16=_0xa132x1d[_0x4e14[1832]](_0xa132xa),_0xa132x19=[],_0xa132x1a=[],_0xa132x1f=0;_0xa132x1f<_0xa132x15[_0x4e14[67]];_0xa132x1f++){_0xa132x19[_0xa132x1f]=_0xa132x15[_0xa132x1f][_0x4e14[1833]](_0xa132xa+1)};for(_0xa132x1f=0;_0xa132x1f<_0xa132x16[_0x4e14[67]];_0xa132x1f++){_0xa132x1a[_0xa132x1f]=_0xa132x16[_0xa132x1f][_0x4e14[1833]](_0xa132xa-1)};}else {_0xa132x15=_0xa132x17,_0xa132x16=_0xa132x18,_0xa132x19=_0xa132x1b,_0xa132x1a=_0xa132x1c,_0xa132x1d=_0xa132x1e};_0xa132x1e=_0xa132x13[_0xa132x14+1];_0xa132x17=_0xa132x1e[_0x4e14[1831]](_0xa132xa);_0xa132x18=_0xa132x1e[_0x4e14[1832]](_0xa132xa);_0xa132x1b=[];_0xa132x1c=[];for(_0xa132x1f=0;_0xa132x1f<_0xa132x17[_0x4e14[67]];_0xa132x1f++){_0xa132x1b[_0xa132x1f]=_0xa132x17[_0xa132x1f][_0x4e14[1833]](_0xa132xa+1)};for(_0xa132x1f=0;_0xa132x1f<_0xa132x18[_0x4e14[67]];_0xa132x1f++){_0xa132x1c[_0xa132x1f]=_0xa132x18[_0xa132x1f][_0x4e14[1833]](_0xa132xa-1)};for(var _0xa132x20=0,_0xa132x62=0,_0xa132x1f=0;_0xa132x1f<_0xa132x19[_0x4e14[67]];_0xa132x1f++){for(var _0xa132x63=0;_0xa132x63<_0xa132x1b[_0x4e14[67]];_0xa132x63++){_0xa132x19[_0xa132x1f]>_0xa132x1b[_0xa132x63]&&_0xa132x20++,_0xa132x19[_0xa132x1f]<_0xa132x1b[_0xa132x63]&&_0xa132x62++}};for(_0xa132x1f=0;_0xa132x1f<_0xa132x1a[_0x4e14[67]];_0xa132x1f++){for(_0xa132x63=0;_0xa132x63<_0xa132x1c[_0x4e14[67]];_0xa132x63++){_0xa132x1a[_0xa132x1f]>_0xa132x1c[_0xa132x63]&&_0xa132x20++,_0xa132x1a[_0xa132x1f]<_0xa132x1c[_0xa132x63]&&_0xa132x62++}};if(_0xa132x62<_0xa132x20||_0xa132x62==_0xa132x20&&_0xa132x9){_0xa132x17=_0xa132x1d[_0x4e14[1833]](_0xa132xa),_0xa132x1d[_0x4e14[1834]](_0xa132xa,_0xa132x1e[_0x4e14[1833]](_0xa132xa)),_0xa132x1e[_0x4e14[1834]](_0xa132xa,_0xa132x17),_0xa132x17=_0xa132x15,_0xa132x18=_0xa132x16,_0xa132x1b=_0xa132x19,_0xa132x1c=_0xa132x1a,_0xa132x1e=_0xa132x1d,_0xa132x9||(_0xa132x4= !0)};};}}};mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1861]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=0==_0xa132x2%2;if(_0xa132x4){for(var _0xa132x5=_0xa132x3[_0x4e14[1827]]-1;0<=_0xa132x5;_0xa132x5--){this[_0x4e14[1864]](_0xa132x5,_0xa132x4)}}else {for(_0xa132x5=1;_0xa132x5<_0xa132x3[_0x4e14[1827]];_0xa132x5++){this[_0x4e14[1864]](_0xa132x5,_0xa132x4)}};};mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1864]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=this[_0x4e14[1856]][_0xa132x2][_0x4e14[67]],_0xa132x5=[],_0xa132x9=[],_0xa132xa=0;_0xa132xa<_0xa132x4;_0xa132xa++){var _0xa132x12=this[_0x4e14[1856]][_0xa132x2][_0xa132xa],_0xa132x13= new MedianCellSorter;_0xa132x13[_0x4e14[246]]=_0xa132x12;var _0xa132x14;_0xa132x14=_0xa132x3?_0xa132x12[_0x4e14[1831]](_0xa132x2):_0xa132x12[_0x4e14[1832]](_0xa132x2);var _0xa132x15;_0xa132x15=_0xa132x3?_0xa132x2+1:_0xa132x2-1;null!=_0xa132x14&&0!=_0xa132x14[_0x4e14[67]]?(_0xa132x13[_0x4e14[1865]]=this[_0x4e14[1865]](_0xa132x14,_0xa132x15),_0xa132x5[_0x4e14[207]](_0xa132x13)):_0xa132x9[_0xa132x12[_0x4e14[1833]](_0xa132x2)]= !0;};_0xa132x5[_0x4e14[470]](MedianCellSorter[_0x4e14[202]][_0x4e14[469]]);for(_0xa132xa=0;_0xa132xa<_0xa132x4;_0xa132xa++){null==_0xa132x9[_0xa132xa]&&(_0xa132x12=_0xa132x5[_0x4e14[1115]]()[_0x4e14[246]],_0xa132x12[_0x4e14[1834]](_0xa132x2,_0xa132xa))};};mxMedianHybridCrossingReduction[_0x4e14[202]][_0x4e14[1865]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=[],_0xa132x5=0,_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){var _0xa132xa=_0xa132x2[_0xa132x9];_0xa132x4[_0xa132x5++]=_0xa132xa[_0x4e14[1833]](_0xa132x3);};_0xa132x4[_0x4e14[470]](function(_0xa132x2,_0xa132x3){return _0xa132x2-_0xa132x3});if(1==_0xa132x5%2){return _0xa132x4[Math[_0x4e14[519]](_0xa132x5/2)]};if(2==_0xa132x5){return (_0xa132x4[0]+_0xa132x4[1])/2};_0xa132x9=_0xa132x5/2;_0xa132xa=_0xa132x4[_0xa132x9-1]-_0xa132x4[0];_0xa132x5=_0xa132x4[_0xa132x5-1]-_0xa132x4[_0xa132x9];return (_0xa132x4[_0xa132x9-1]*_0xa132x5+_0xa132x4[_0xa132x9]*_0xa132xa)/(_0xa132xa+_0xa132x5);};function MedianCellSorter(){}MedianCellSorter[_0x4e14[202]][_0x4e14[1865]]=0;MedianCellSorter[_0x4e14[202]][_0x4e14[246]]= !1;MedianCellSorter[_0x4e14[202]][_0x4e14[469]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2&&null!=_0xa132x3?_0xa132x3[_0x4e14[1865]]>_0xa132x2[_0x4e14[1865]]?-1:_0xa132x3[_0x4e14[1865]]<_0xa132x2[_0x4e14[1865]]?1:0:0};function mxMinimumCycleRemover(_0xa132x2){this[_0x4e14[1759]]=_0xa132x2}mxMinimumCycleRemover[_0x4e14[202]]= new mxHierarchicalLayoutStage;mxMinimumCycleRemover[_0x4e14[202]][_0x4e14[196]]=mxMinimumCycleRemover;mxMinimumCycleRemover[_0x4e14[202]][_0x4e14[1759]]=null;mxMinimumCycleRemover[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1759]][_0x4e14[502]](),_0xa132x4={},_0xa132x5=mxUtils[_0x4e14[238]](_0xa132x3[_0x4e14[1846]],null,!0),_0xa132x9=null;if(null!=_0xa132x3[_0x4e14[1845]]){var _0xa132xa=_0xa132x3[_0x4e14[1845]],_0xa132x9=[];for(_0xa132x2=0;_0xa132x2<_0xa132xa[_0x4e14[67]];_0xa132x2++){var _0xa132x12=mxCellPath[_0x4e14[385]](_0xa132xa[_0xa132x2]);_0xa132x9[_0xa132x2]=_0xa132x3[_0x4e14[1846]][_0xa132x12];};};_0xa132x3[_0x4e14[209]](function(_0xa132x2,_0xa132x3,_0xa132x9,_0xa132xa,_0xa132x12){_0xa132x3[_0x4e14[1720]](_0xa132x2)&&(_0xa132x9[_0x4e14[1744]](),mxUtils[_0x4e14[205]](_0xa132x9,_0xa132x2[_0x4e14[1838]]),_0xa132x2[_0x4e14[1837]][_0x4e14[207]](_0xa132x9),mxUtils[_0x4e14[205]](_0xa132x9,_0xa132x3[_0x4e14[1837]]),_0xa132x3[_0x4e14[1838]][_0x4e14[207]](_0xa132x9));_0xa132x2=mxCellPath[_0x4e14[385]](_0xa132x3[_0x4e14[246]]);_0xa132x4[_0xa132x2]=_0xa132x3;delete _0xa132x5[_0xa132x2];},_0xa132x9,!0,null);_0xa132x9=null;0<_0xa132x5[_0x4e14[1866]]&&(_0xa132x9=mxUtils[_0x4e14[238]](_0xa132x5,null,!0));_0xa132x2=mxUtils[_0x4e14[238]](_0xa132x4,null,!0);_0xa132x3[_0x4e14[209]](function(_0xa132x2,_0xa132x3,_0xa132x9,_0xa132xa,_0xa132x12){_0xa132x3[_0x4e14[1720]](_0xa132x2)&&(_0xa132x9[_0x4e14[1744]](),mxUtils[_0x4e14[205]](_0xa132x9,_0xa132x2[_0x4e14[1838]]),_0xa132x3[_0x4e14[1838]][_0x4e14[207]](_0xa132x9),_0xa132x2[_0x4e14[1837]][_0x4e14[207]](_0xa132x9),mxUtils[_0x4e14[205]](_0xa132x9,_0xa132x3[_0x4e14[1837]]));_0xa132x2=mxCellPath[_0x4e14[385]](_0xa132x3[_0x4e14[246]]);_0xa132x4[_0xa132x2]=_0xa132x3;delete _0xa132x5[_0xa132x2];},_0xa132x5,!0,_0xa132x2);_0xa132xa=this[_0x4e14[1759]][_0x4e14[1703]]();if(null!=_0xa132x9&&0<_0xa132x9[_0x4e14[67]]){_0xa132x3=_0xa132x3[_0x4e14[1845]];for(_0xa132x2=0;_0xa132x2<_0xa132x9[_0x4e14[67]];_0xa132x2++){_0xa132x12=_0xa132x9[_0xa132x2][_0x4e14[246]],0==_0xa132xa[_0x4e14[1867]](_0xa132x12)[_0x4e14[67]]&&_0xa132x3[_0x4e14[207]](_0xa132x12)};};};function mxCoordinateAssignment(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[1759]]=_0xa132x2;this[_0x4e14[1868]]=_0xa132x3;this[_0x4e14[1869]]=_0xa132x4;this[_0x4e14[1870]]=_0xa132x5;this[_0x4e14[1871]]=_0xa132x9;this[_0x4e14[1872]]=_0xa132xa;}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxCoordinateAssignment[_0x4e14[202]]= new mxHierarchicalLayoutStage;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[196]]=mxCoordinateAssignment;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1759]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1868]]=30;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1869]]=100;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1872]]=10;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1795]]=8;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1751]]=5;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1752]]=2;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1753]]=12;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1754]]=4;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1873]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1870]]=mxConstants[_0x4e14[1358]];mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1871]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1874]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1875]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1876]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1877]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1878]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1879]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1880]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1881]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1882]]= !0;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[675]]=mxHierarchicalEdgeStyle[_0x4e14[1883]];mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1884]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1885]]=null;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1745]]=10;mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1886]]=function(){var _0xa132x2=this[_0x4e14[1759]][_0x4e14[502]]();mxLog[_0x4e14[539]]();mxLog[_0x4e14[171]](_0x4e14[1887]);for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[1850]][_0x4e14[67]];_0xa132x3++){mxLog[_0x4e14[53]](_0x4e14[1888],_0xa132x3,_0x4e14[1889]);for(var _0xa132x4=_0xa132x2[_0x4e14[1850]][_0xa132x3],_0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]];_0xa132x5++){mxLog[_0x4e14[53]](_0xa132x4[_0xa132x5][_0x4e14[1833]](_0xa132x3),_0x4e14[316])};mxLog[_0x4e14[171]]();};mxLog[_0x4e14[171]](_0x4e14[1890]);};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){this[_0x4e14[1873]]=[];_0xa132x2=this[_0x4e14[1759]][_0x4e14[502]]();this[_0x4e14[1875]]=0;this[_0x4e14[1891]](this[_0x4e14[1759]][_0x4e14[1703]](),_0xa132x2);this[_0x4e14[1882]]&&this[_0x4e14[1892]](_0xa132x2);var _0xa132x3=1E8;if(this[_0x4e14[1882]]){for(var _0xa132x4=0;_0xa132x4<this[_0x4e14[1795]];_0xa132x4++){0!=_0xa132x4&&(this[_0x4e14[1893]](_0xa132x4,_0xa132x2),this[_0x4e14[1892]](_0xa132x2));if(this[_0x4e14[1875]]<_0xa132x3){for(var _0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[1850]][_0x4e14[67]];_0xa132x5++){for(var _0xa132x9=_0xa132x2[_0x4e14[1850]][_0xa132x5],_0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x9[_0xa132xa];_0xa132x12[_0x4e14[1835]](_0xa132x5,_0xa132x12[_0x4e14[1833]](_0xa132x5));}};_0xa132x3=this[_0x4e14[1875]];}else {for(_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[1850]][_0x4e14[67]];_0xa132x5++){_0xa132x9=_0xa132x2[_0x4e14[1850]][_0xa132x5];for(_0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){_0xa132x12=_0xa132x9[_0xa132xa],_0xa132x12[_0x4e14[1834]](_0xa132x5,_0xa132x12[_0x4e14[730]](_0xa132x5))};}};this[_0x4e14[1894]](this[_0x4e14[1759]][_0x4e14[1703]](),_0xa132x2);this[_0x4e14[1875]]=0;}};this[_0x4e14[1895]](this[_0x4e14[1759]][_0x4e14[1703]](),_0xa132x2);};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1892]]=function(_0xa132x2){for(var _0xa132x3=[],_0xa132x4=[],_0xa132x5=[],_0xa132x9=0;_0xa132x9<=_0xa132x2[_0x4e14[1827]];_0xa132x9++){_0xa132x5[_0xa132x9]=_0xa132x2[_0x4e14[1850]][_0xa132x9];for(var _0xa132xa=0;_0xa132xa<_0xa132x5[_0xa132x9][_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x5[_0xa132x9][_0xa132xa],_0xa132x13= new WeightedCellSorter(_0xa132x12,_0xa132x9);_0xa132x13[_0x4e14[1785]]=_0xa132xa;_0xa132x13[_0x4e14[1784]]= !0;_0xa132x3[_0x4e14[207]](_0xa132x13);_0xa132x12=mxCellPath[_0x4e14[385]](_0xa132x12[_0x4e14[1841]]());_0xa132x4[_0xa132x12]=_0xa132x13;};};_0xa132x2=10*_0xa132x3[_0x4e14[67]];for(_0xa132xa=0;0<_0xa132x3[_0x4e14[67]]&&_0xa132xa<=_0xa132x2;){var _0xa132x13=_0xa132x3[_0x4e14[1115]](),_0xa132x9=_0xa132x13[_0x4e14[246]],_0xa132x14=_0xa132x13[_0x4e14[1782]],_0xa132x15=parseInt(_0xa132x13[_0x4e14[1785]]),_0xa132x12=_0xa132x9[_0x4e14[1831]](_0xa132x14),_0xa132x16=_0xa132x9[_0x4e14[1832]](_0xa132x14),_0xa132x17=_0xa132x12[_0x4e14[67]],_0xa132x18=_0xa132x16[_0x4e14[67]],_0xa132x19=this[_0x4e14[1896]](_0xa132x12,_0xa132x14+1),_0xa132x1a=this[_0x4e14[1896]](_0xa132x16,_0xa132x14-1),_0xa132x1b=_0xa132x17+_0xa132x18,_0xa132x1c=_0xa132x9[_0x4e14[1833]](_0xa132x14),_0xa132x1d=_0xa132x1c;0<_0xa132x1b&&(_0xa132x1d=(_0xa132x19*_0xa132x17+_0xa132x1a*_0xa132x18)/_0xa132x1b);_0xa132x17= !1;_0xa132x1d<_0xa132x1c-1?0==_0xa132x15?(_0xa132x9[_0x4e14[1834]](_0xa132x14,_0xa132x1d),_0xa132x17= !0):(_0xa132x15=_0xa132x5[_0xa132x14][_0xa132x15-1],_0xa132x1c=_0xa132x15[_0x4e14[1833]](_0xa132x14),_0xa132x1c=_0xa132x1c+_0xa132x15[_0x4e14[117]]/2+this[_0x4e14[1868]]+_0xa132x9[_0x4e14[117]]/2,_0xa132x1c<_0xa132x1d?(_0xa132x9[_0x4e14[1834]](_0xa132x14,_0xa132x1d),_0xa132x17= !0):_0xa132x1c<_0xa132x9[_0x4e14[1833]](_0xa132x14)-1&&(_0xa132x9[_0x4e14[1834]](_0xa132x14,_0xa132x1c),_0xa132x17= !0)):_0xa132x1d>_0xa132x1c+1&&(_0xa132x15==_0xa132x5[_0xa132x14][_0x4e14[67]]-1?(_0xa132x9[_0x4e14[1834]](_0xa132x14,_0xa132x1d),_0xa132x17= !0):(_0xa132x15=_0xa132x5[_0xa132x14][_0xa132x15+1],_0xa132x1c=_0xa132x15[_0x4e14[1833]](_0xa132x14),_0xa132x1c=_0xa132x1c-_0xa132x15[_0x4e14[117]]/2-this[_0x4e14[1868]]-_0xa132x9[_0x4e14[117]]/2,_0xa132x1c>_0xa132x1d?(_0xa132x9[_0x4e14[1834]](_0xa132x14,_0xa132x1d),_0xa132x17= !0):_0xa132x1c>_0xa132x9[_0x4e14[1833]](_0xa132x14)+1&&(_0xa132x9[_0x4e14[1834]](_0xa132x14,_0xa132x1c),_0xa132x17= !0)));if(_0xa132x17){for(_0xa132x9=0;_0xa132x9<_0xa132x12[_0x4e14[67]];_0xa132x9++){_0xa132x14=_0xa132x12[_0xa132x9],_0xa132x14=mxCellPath[_0x4e14[385]](_0xa132x14[_0x4e14[1841]]()),_0xa132x14=_0xa132x4[_0xa132x14],null!=_0xa132x14&&!1==_0xa132x14[_0x4e14[1784]]&&(_0xa132x14[_0x4e14[1784]]= !0,_0xa132x3[_0x4e14[207]](_0xa132x14))};for(_0xa132x9=0;_0xa132x9<_0xa132x16[_0x4e14[67]];_0xa132x9++){_0xa132x14=_0xa132x16[_0xa132x9],_0xa132x14=mxCellPath[_0x4e14[385]](_0xa132x14[_0x4e14[1841]]()),_0xa132x14=_0xa132x4[_0xa132x14],null!=_0xa132x14&&!1==_0xa132x14[_0x4e14[1784]]&&(_0xa132x14[_0x4e14[1784]]= !0,_0xa132x3[_0x4e14[207]](_0xa132x14))};};_0xa132x13[_0x4e14[1784]]= !1;_0xa132xa++;};};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1893]]=function(_0xa132x2,_0xa132x3){if(0==_0xa132x2%2){for(var _0xa132x4=_0xa132x3[_0x4e14[1827]];0<_0xa132x4;_0xa132x4--){this[_0x4e14[1897]](_0xa132x4-1,_0xa132x3,_0xa132x4)}}else {for(_0xa132x4=0;_0xa132x4<_0xa132x3[_0x4e14[1827]]-1;_0xa132x4++){this[_0x4e14[1897]](_0xa132x4+1,_0xa132x3,_0xa132x4)}}};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1897]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=_0xa132x3[_0x4e14[1850]][_0xa132x2];for(var _0xa132x5=[],_0xa132x9=[],_0xa132xa=0;_0xa132xa<_0xa132x3[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x3[_0xa132xa];_0xa132x5[_0xa132xa]= new WeightedCellSorter;_0xa132x5[_0xa132xa][_0x4e14[246]]=_0xa132x12;_0xa132x5[_0xa132xa][_0x4e14[1785]]=_0xa132xa;var _0xa132x13=mxCellPath[_0x4e14[385]](_0xa132x12[_0x4e14[1841]]());_0xa132x9[_0xa132x13]=_0xa132x5[_0xa132xa];var _0xa132x14=null,_0xa132x14=_0xa132x4<_0xa132x2?_0xa132x12[_0x4e14[1832]](_0xa132x2):_0xa132x12[_0x4e14[1831]](_0xa132x2);_0xa132x5[_0xa132xa][_0x4e14[1782]]=this[_0x4e14[1898]](_0xa132x12,_0xa132x14);};_0xa132x5[_0x4e14[470]](WeightedCellSorter[_0x4e14[202]][_0x4e14[469]]);for(_0xa132xa=0;_0xa132xa<_0xa132x5[_0x4e14[67]];_0xa132xa++){_0xa132x13=0;_0xa132x12=_0xa132x5[_0xa132xa][_0x4e14[246]];_0xa132x13=0;_0xa132x14=_0xa132x4<_0xa132x2?_0xa132x12[_0x4e14[1832]](_0xa132x2)[_0x4e14[1853]]():_0xa132x12[_0x4e14[1831]](_0xa132x2)[_0x4e14[1853]]();null!=_0xa132x14&&(_0xa132x13=_0xa132x14[_0x4e14[67]],_0xa132x13=0<_0xa132x13?this[_0x4e14[1896]](_0xa132x14,_0xa132x4):_0xa132x12[_0x4e14[1833]](_0xa132x2));for(var _0xa132x15=0,_0xa132x14=-1E8,_0xa132x16=_0xa132x5[_0xa132xa][_0x4e14[1785]]-1;0<=_0xa132x16;){var _0xa132x17=mxCellPath[_0x4e14[385]](_0xa132x3[_0xa132x16][_0x4e14[1841]]()),_0xa132x17=_0xa132x9[_0xa132x17];if(null!=_0xa132x17){var _0xa132x18=_0xa132x17[_0x4e14[246]];_0xa132x17[_0x4e14[1784]]?(_0xa132x14=_0xa132x18[_0x4e14[1833]](_0xa132x2)+_0xa132x18[_0x4e14[117]]/2+this[_0x4e14[1868]]+_0xa132x15+_0xa132x12[_0x4e14[117]]/2,_0xa132x16= -1):(_0xa132x15+=_0xa132x18[_0x4e14[117]]+this[_0x4e14[1868]],_0xa132x16--);};};_0xa132x15=0;_0xa132x18=1E8;for(_0xa132x16=_0xa132x5[_0xa132xa][_0x4e14[1785]]+1;_0xa132x16<_0xa132x5[_0x4e14[67]];){if(_0xa132x17=mxCellPath[_0x4e14[385]](_0xa132x3[_0xa132x16][_0x4e14[1841]]()),_0xa132x17=_0xa132x9[_0xa132x17],null!=_0xa132x17){var _0xa132x19=_0xa132x17[_0x4e14[246]];_0xa132x17[_0x4e14[1784]]?(_0xa132x18=_0xa132x19[_0x4e14[1833]](_0xa132x2)-_0xa132x19[_0x4e14[117]]/2-this[_0x4e14[1868]]-_0xa132x15-_0xa132x12[_0x4e14[117]]/2,_0xa132x16=_0xa132x5[_0x4e14[67]]):(_0xa132x15+=_0xa132x19[_0x4e14[117]]+this[_0x4e14[1868]],_0xa132x16++);}};_0xa132x13>=_0xa132x14&&_0xa132x13<=_0xa132x18?_0xa132x12[_0x4e14[1834]](_0xa132x2,_0xa132x13):_0xa132x13<_0xa132x14?(_0xa132x12[_0x4e14[1834]](_0xa132x2,_0xa132x14),this[_0x4e14[1875]]+=_0xa132x14-_0xa132x13):_0xa132x13>_0xa132x18&&(_0xa132x12[_0x4e14[1834]](_0xa132x2,_0xa132x18),this[_0x4e14[1875]]+=_0xa132x13-_0xa132x18);_0xa132x5[_0xa132xa][_0x4e14[1784]]= !0;};};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1898]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=0,_0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){var _0xa132x9=_0xa132x3[_0xa132x5];_0xa132x2[_0x4e14[1193]]()&&_0xa132x9[_0x4e14[1193]]()?_0xa132x4++:_0xa132x4=_0xa132x2[_0x4e14[250]]()&&_0xa132x9[_0x4e14[250]]()?_0xa132x4+8:_0xa132x4+2;};return _0xa132x4;};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1896]]=function(_0xa132x2,_0xa132x3){if(0==_0xa132x2[_0x4e14[67]]){return 0};for(var _0xa132x4=[],_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){_0xa132x4[_0xa132x5]=_0xa132x2[_0xa132x5][_0x4e14[1833]](_0xa132x3)};_0xa132x4[_0x4e14[470]](function(_0xa132x2,_0xa132x3){return _0xa132x2-_0xa132x3});if(1==_0xa132x2[_0x4e14[67]]%2){return _0xa132x4[Math[_0x4e14[519]](_0xa132x2[_0x4e14[67]]/2)]};_0xa132x5=_0xa132x2[_0x4e14[67]]/2;return (_0xa132x4[_0xa132x5-1]+_0xa132x4[_0xa132x5])/2;};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1891]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1899]](_0xa132x2,_0xa132x3);for(var _0xa132x4=this[_0x4e14[1876]];0<=_0xa132x4;_0xa132x4--){_0xa132x4<_0xa132x3[_0x4e14[1827]]&&this[_0x4e14[1900]](_0xa132x4,_0xa132x2,_0xa132x3)};for(_0xa132x4=this[_0x4e14[1876]]+1;_0xa132x4<=_0xa132x3[_0x4e14[1827]];_0xa132x4++){0<_0xa132x4&&this[_0x4e14[1900]](_0xa132x4,_0xa132x2,_0xa132x3)};};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1900]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=_0xa132x4[_0x4e14[1850]][_0xa132x2];_0xa132x4=0;for(var _0xa132x5=this[_0x4e14[1871]]+(this[_0x4e14[1879]]-this[_0x4e14[1880]][_0xa132x2])/2,_0xa132x9=!1,_0xa132xa=0;_0xa132xa<_0xa132x3[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x3[_0xa132xa];if(_0xa132x12[_0x4e14[1193]]()){var _0xa132x13=this[_0x4e14[1759]][_0x4e14[1726]](_0xa132x12[_0x4e14[246]]);null!=_0xa132x13?this[_0x4e14[1870]]==mxConstants[_0x4e14[1358]]||this[_0x4e14[1870]]==mxConstants[_0x4e14[1354]]?(_0xa132x12[_0x4e14[117]]=_0xa132x13[_0x4e14[117]],_0xa132x12[_0x4e14[119]]=_0xa132x13[_0x4e14[119]]):(_0xa132x12[_0x4e14[117]]=_0xa132x13[_0x4e14[119]],_0xa132x12[_0x4e14[119]]=_0xa132x13[_0x4e14[117]]):_0xa132x9= !0;_0xa132x4=Math[_0x4e14[160]](_0xa132x4,_0xa132x12[_0x4e14[119]]);}else {_0xa132x12[_0x4e14[250]]()&&(_0xa132x13=1,null!=_0xa132x12[_0x4e14[1842]]?_0xa132x13=_0xa132x12[_0x4e14[1842]][_0x4e14[67]]:mxLog[_0x4e14[283]](_0x4e14[1901]),_0xa132x12[_0x4e14[117]]=(_0xa132x13-1)*this[_0x4e14[1872]])};_0xa132x5+=_0xa132x12[_0x4e14[117]]/2;_0xa132x12[_0x4e14[1835]](_0xa132x2,_0xa132x5);_0xa132x12[_0x4e14[1834]](_0xa132x2,_0xa132x5);_0xa132x5+=_0xa132x12[_0x4e14[117]]/2;_0xa132x5+=this[_0x4e14[1868]];};!0==_0xa132x9&&mxLog[_0x4e14[283]](_0x4e14[1902]);};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1899]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=-this[_0x4e14[1869]],_0xa132x5=0;this[_0x4e14[1880]]=[];this[_0x4e14[1881]]=[];for(var _0xa132x9=_0xa132x3[_0x4e14[1827]];0<=_0xa132x9;_0xa132x9--){for(var _0xa132xa=0,_0xa132x12=_0xa132x3[_0x4e14[1850]][_0xa132x9],_0xa132x13=this[_0x4e14[1871]],_0xa132x14=!1,_0xa132x15=0;_0xa132x15<_0xa132x12[_0x4e14[67]];_0xa132x15++){var _0xa132x16=_0xa132x12[_0xa132x15];if(_0xa132x16[_0x4e14[1193]]()){var _0xa132x17=this[_0x4e14[1759]][_0x4e14[1726]](_0xa132x16[_0x4e14[246]]);null!=_0xa132x17?this[_0x4e14[1870]]==mxConstants[_0x4e14[1358]]||this[_0x4e14[1870]]==mxConstants[_0x4e14[1354]]?(_0xa132x16[_0x4e14[117]]=_0xa132x17[_0x4e14[117]],_0xa132x16[_0x4e14[119]]=_0xa132x17[_0x4e14[119]]):(_0xa132x16[_0x4e14[117]]=_0xa132x17[_0x4e14[119]],_0xa132x16[_0x4e14[119]]=_0xa132x17[_0x4e14[117]]):_0xa132x14= !0;_0xa132xa=Math[_0x4e14[160]](_0xa132xa,_0xa132x16[_0x4e14[119]]);}else {_0xa132x16[_0x4e14[250]]()&&(_0xa132x17=1,null!=_0xa132x16[_0x4e14[1842]]?_0xa132x17=_0xa132x16[_0x4e14[1842]][_0x4e14[67]]:mxLog[_0x4e14[283]](_0x4e14[1901]),_0xa132x16[_0x4e14[117]]=(_0xa132x17-1)*this[_0x4e14[1872]])};_0xa132x13+=_0xa132x16[_0x4e14[117]]/2;_0xa132x16[_0x4e14[1835]](_0xa132x9,_0xa132x13);_0xa132x16[_0x4e14[1834]](_0xa132x9,_0xa132x13);_0xa132x13+=_0xa132x16[_0x4e14[117]]/2;_0xa132x13+=this[_0x4e14[1868]];_0xa132x13>this[_0x4e14[1879]]&&(this[_0x4e14[1879]]=_0xa132x13,this[_0x4e14[1876]]=_0xa132x9);this[_0x4e14[1880]][_0xa132x9]=_0xa132x13;};!0==_0xa132x14&&mxLog[_0x4e14[283]](_0x4e14[1902]);this[_0x4e14[1881]][_0xa132x9]=_0xa132x4;_0xa132x13=_0xa132xa/2+_0xa132x5/2+this[_0x4e14[1869]];_0xa132x5=_0xa132xa;_0xa132x4=this[_0x4e14[1870]]==mxConstants[_0x4e14[1358]]||this[_0x4e14[1870]]==mxConstants[_0x4e14[1359]]?_0xa132x4+_0xa132x13:_0xa132x4-_0xa132x13;for(_0xa132x15=0;_0xa132x15<_0xa132x12[_0x4e14[67]];_0xa132x15++){_0xa132x12[_0xa132x15][_0x4e14[1836]](_0xa132x9,_0xa132x4)};};};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1894]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x3[_0x4e14[1847]],_0xa132x5;for(_0xa132x5 in _0xa132x4){var _0xa132x9=_0xa132x4[_0xa132x5];if(!(1>_0xa132x9[_0x4e14[1827]]-_0xa132x9[_0x4e14[1828]]-1)){for(var _0xa132xa=_0xa132x9[_0x4e14[1833]](_0xa132x9[_0x4e14[1828]]+1),_0xa132x12=!0,_0xa132x13=0,_0xa132x14=_0xa132x9[_0x4e14[1828]]+2;_0xa132x14<_0xa132x9[_0x4e14[1827]];_0xa132x14++){var _0xa132x15=_0xa132x9[_0x4e14[1833]](_0xa132x14);_0xa132xa!=_0xa132x15?(_0xa132x12= !1,_0xa132xa=_0xa132x15):_0xa132x13++;};if(!_0xa132x12){for(var _0xa132x12=_0xa132xa=0,_0xa132x15=[],_0xa132x16=[],_0xa132x17=_0xa132x9[_0x4e14[1833]](_0xa132x9[_0x4e14[1828]]+1),_0xa132x14=_0xa132x9[_0x4e14[1828]]+1;_0xa132x14<_0xa132x9[_0x4e14[1827]]-1;_0xa132x14++){var _0xa132x18=_0xa132x9[_0x4e14[730]](_0xa132x14+1);_0xa132x17==_0xa132x18?(_0xa132x15[_0xa132x14-_0xa132x9[_0x4e14[1828]]-1]=_0xa132x17,_0xa132xa++):this[_0x4e14[1903]](_0xa132x3,_0xa132x9,_0xa132x14+1,_0xa132x17)?(_0xa132x15[_0xa132x14-_0xa132x9[_0x4e14[1828]]-1]=_0xa132x17,_0xa132xa++):_0xa132x17=_0xa132x15[_0xa132x14-_0xa132x9[_0x4e14[1828]]-1]=_0xa132x18;};_0xa132x17=_0xa132x9[_0x4e14[730]](_0xa132x14);for(_0xa132x14=_0xa132x9[_0x4e14[1827]]-1;_0xa132x14>_0xa132x9[_0x4e14[1828]]+1;_0xa132x14--){_0xa132x18=_0xa132x9[_0x4e14[730]](_0xa132x14-1),_0xa132x17==_0xa132x18?(_0xa132x16[_0xa132x14-_0xa132x9[_0x4e14[1828]]-2]=_0xa132x17,_0xa132x12++):this[_0x4e14[1903]](_0xa132x3,_0xa132x9,_0xa132x14-1,_0xa132x17)?(_0xa132x16[_0xa132x14-_0xa132x9[_0x4e14[1828]]-2]=_0xa132x17,_0xa132x12++):(_0xa132x16[_0xa132x14-_0xa132x9[_0x4e14[1828]]-2]=_0xa132x9[_0x4e14[730]](_0xa132x14-1),_0xa132x17=_0xa132x18)};if(_0xa132x12>_0xa132x13||_0xa132xa>_0xa132x13){if(_0xa132x12>=_0xa132xa){for(_0xa132x14=_0xa132x9[_0x4e14[1827]]-2;_0xa132x14>_0xa132x9[_0x4e14[1828]];_0xa132x14--){_0xa132x9[_0x4e14[1835]](_0xa132x14,_0xa132x16[_0xa132x14-_0xa132x9[_0x4e14[1828]]-1])}}else {if(_0xa132xa>_0xa132x12){for(_0xa132x14=_0xa132x9[_0x4e14[1828]]+2;_0xa132x14<_0xa132x9[_0x4e14[1827]];_0xa132x14++){_0xa132x9[_0x4e14[1835]](_0xa132x14,_0xa132x15[_0xa132x14-_0xa132x9[_0x4e14[1828]]-2])}}}};};};};};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1903]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x2=_0xa132x2[_0x4e14[1850]][_0xa132x4];for(var _0xa132x9=-1,_0xa132xa=0;_0xa132xa<_0xa132x2[_0x4e14[67]];_0xa132xa++){if(_0xa132x3==_0xa132x2[_0xa132xa]){_0xa132x9=_0xa132xa;break;}};if(0>_0xa132x9){return !1};_0xa132xa=_0xa132x3[_0x4e14[1833]](_0xa132x4);if(_0xa132x5<_0xa132xa){if(0==_0xa132x9){return !0};_0xa132x2=_0xa132x2[_0xa132x9-1];_0xa132x4=_0xa132x2[_0x4e14[1833]](_0xa132x4);_0xa132x4=_0xa132x4+_0xa132x2[_0x4e14[117]]/2+this[_0x4e14[1868]]+_0xa132x3[_0x4e14[117]]/2;if(!(_0xa132x4<=_0xa132x5)){return !1};}else {if(_0xa132x5>_0xa132xa){if(_0xa132x9==_0xa132x2[_0x4e14[67]]-1){return !0};_0xa132x2=_0xa132x2[_0xa132x9+1];_0xa132x4=_0xa132x2[_0x4e14[1833]](_0xa132x4);_0xa132x4=_0xa132x4-_0xa132x2[_0x4e14[117]]/2-this[_0x4e14[1868]]-_0xa132x3[_0x4e14[117]]/2;if(!(_0xa132x4>=_0xa132x5)){return !1};}};return !0;};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1895]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1877]]=[];this[_0x4e14[1878]]=[];for(var _0xa132x4=0;_0xa132x4<_0xa132x3[_0x4e14[1850]][_0x4e14[67]];_0xa132x4++){this[_0x4e14[1877]][_0xa132x4]=Number[_0x4e14[1904]],this[_0x4e14[1878]][_0xa132x4]=0};_0xa132x4=null;this[_0x4e14[1759]][_0x4e14[1735]]&&(_0xa132x4={});var _0xa132x5=_0xa132x3[_0x4e14[1847]],_0xa132x9=_0xa132x3[_0x4e14[1846]],_0xa132xa;for(_0xa132xa in _0xa132x9){var _0xa132x12=_0xa132x9[_0xa132xa];this[_0x4e14[1725]](_0xa132x12);if(this[_0x4e14[1759]][_0x4e14[1735]]){var _0xa132x12=_0xa132x2[_0x4e14[251]][_0x4e14[1197]](_0xa132x12[_0x4e14[246]]),_0xa132x13=mxCellPath[_0x4e14[385]](_0xa132x12);null==_0xa132x4[_0xa132x13]&&(_0xa132x4[_0xa132x13]=_0xa132x12);};};this[_0x4e14[1759]][_0x4e14[1735]]&&null!=_0xa132x4&&this[_0x4e14[1763]](_0xa132x4);(this[_0x4e14[675]]==mxHierarchicalEdgeStyle[_0x4e14[1905]]||this[_0x4e14[675]]==mxHierarchicalEdgeStyle[_0x4e14[1883]]||this[_0x4e14[675]]==mxHierarchicalEdgeStyle[_0x4e14[1906]])&&this[_0x4e14[1764]](_0xa132x3);for(_0xa132xa in _0xa132x5){this[_0x4e14[1907]](_0xa132x5[_0xa132xa])};};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1763]]=function(_0xa132x2){var _0xa132x3=[],_0xa132x4;for(_0xa132x4 in _0xa132x2){_0xa132x3[_0x4e14[207]](_0xa132x2[_0xa132x4])};this[_0x4e14[1759]][_0x4e14[1727]](mxUtils[_0x4e14[1779]](_0xa132x3,!0),this[_0x4e14[1745]]);};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1764]]=function(_0xa132x2){for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[1850]][_0x4e14[67]];_0xa132x3++){for(var _0xa132x4=_0xa132x2[_0x4e14[1850]][_0xa132x3],_0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]];_0xa132x5++){var _0xa132x9=_0xa132x4[_0xa132x5];if(_0xa132x9[_0x4e14[1193]]()){for(var _0xa132xa=_0xa132x9[_0x4e14[1832]](_0xa132x3),_0xa132x12=_0xa132x3-1,_0xa132x13=0;2>_0xa132x13;_0xa132x13++){if(-1<_0xa132x12&&_0xa132x12<_0xa132x2[_0x4e14[1850]][_0x4e14[67]]&&null!=_0xa132xa&&0<_0xa132xa[_0x4e14[67]]){for(var _0xa132x14=[],_0xa132x15=0;_0xa132x15<_0xa132xa[_0x4e14[67]];_0xa132x15++){var _0xa132x16= new WeightedCellSorter(_0xa132xa[_0xa132x15],_0xa132xa[_0xa132x15][_0x4e14[730]](_0xa132x12));_0xa132x14[_0x4e14[207]](_0xa132x16);};_0xa132x14[_0x4e14[470]](WeightedCellSorter[_0x4e14[202]][_0x4e14[469]]);for(var _0xa132x16=_0xa132x9[_0x4e14[235]][0]-_0xa132x9[_0x4e14[117]]/2,_0xa132x17=_0xa132x16+_0xa132x9[_0x4e14[117]],_0xa132x18=_0xa132xa=0,_0xa132x12=[],_0xa132x15=0;_0xa132x15<_0xa132x14[_0x4e14[67]];_0xa132x15++){var _0xa132x19=_0xa132x14[_0xa132x15][_0x4e14[246]],_0xa132x1a;if(_0xa132x19[_0x4e14[1193]]()){_0xa132x1a=0==_0xa132x13?_0xa132x9[_0x4e14[1838]]:_0xa132x9[_0x4e14[1837]];for(var _0xa132x1b=0;_0xa132x1b<_0xa132x1a[_0x4e14[67]];_0xa132x1b++){if(_0xa132x1a[_0xa132x1b][_0x4e14[1097]]==_0xa132x19||_0xa132x1a[_0xa132x1b][_0x4e14[772]]==_0xa132x19){_0xa132xa+=_0xa132x1a[_0xa132x1b][_0x4e14[1842]][_0x4e14[67]],_0xa132x18++,_0xa132x12[_0x4e14[207]](_0xa132x1a[_0xa132x1b])}};}else {_0xa132xa+=_0xa132x19[_0x4e14[1842]][_0x4e14[67]],_0xa132x18++,_0xa132x12[_0x4e14[207]](_0xa132x19)};};_0xa132x9[_0x4e14[117]]>(_0xa132xa+1)*this[_0x4e14[1751]]+2*this[_0x4e14[1751]]&&(_0xa132x16+=this[_0x4e14[1751]],_0xa132x17-=this[_0x4e14[1751]]);_0xa132x14=(_0xa132x17-_0xa132x16)/_0xa132xa;_0xa132x16+=_0xa132x14/2;_0xa132x17=this[_0x4e14[1753]]-this[_0x4e14[1752]];for(_0xa132x15=_0xa132x18=0;_0xa132x15<_0xa132x12[_0x4e14[67]];_0xa132x15++){_0xa132x19=_0xa132x12[_0xa132x15][_0x4e14[1842]][_0x4e14[67]];_0xa132x1b=mxCellPath[_0x4e14[385]](_0xa132x12[_0xa132x15][_0x4e14[1842]][0]);_0xa132x1a=this[_0x4e14[1873]][_0xa132x1b];null==_0xa132x1a&&(_0xa132x1a=[],this[_0x4e14[1873]][_0xa132x1b]=_0xa132x1a);_0xa132x15<_0xa132xa/2?_0xa132x17+=this[_0x4e14[1752]]:_0xa132x15>_0xa132xa/2&&(_0xa132x17-=this[_0x4e14[1752]]);for(_0xa132x1b=0;_0xa132x1b<_0xa132x19;_0xa132x1b++){_0xa132x1a[4*_0xa132x1b+2*_0xa132x13]=_0xa132x16,_0xa132x16+=_0xa132x14,_0xa132x1a[4*_0xa132x1b+2*_0xa132x13+1]=_0xa132x17};_0xa132x18=Math[_0x4e14[160]](_0xa132x18,_0xa132x17);};};_0xa132xa=_0xa132x9[_0x4e14[1831]](_0xa132x3);_0xa132x12=_0xa132x3+1;}};}}};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1907]]=function(_0xa132x2){var _0xa132x3=0;if(101207!=_0xa132x2[_0x4e14[1826]][0]){var _0xa132x4=_0xa132x2[_0x4e14[1827]],_0xa132x5=_0xa132x2[_0x4e14[1828]];_0xa132x4==_0xa132x5&&(_0xa132x4=_0xa132x2[_0x4e14[1097]][_0x4e14[1827]],_0xa132x5=_0xa132x2[_0x4e14[772]][_0x4e14[1828]]);for(var _0xa132x9=0,_0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2[_0x4e14[1842]][0]),_0xa132xa=this[_0x4e14[1873]][_0xa132xa],_0xa132x12=_0xa132x2[_0x4e14[1843]]?_0xa132x2[_0x4e14[772]][_0x4e14[246]]:_0xa132x2[_0x4e14[1097]][_0x4e14[246]],_0xa132x13=this[_0x4e14[1759]][_0x4e14[1179]],_0xa132x14=0;_0xa132x14<_0xa132x2[_0x4e14[1842]][_0x4e14[67]];_0xa132x14++){var _0xa132x15=_0xa132x2[_0x4e14[1842]][_0xa132x14],_0xa132x16=this[_0x4e14[1759]][_0x4e14[1710]](_0xa132x15,!0),_0xa132x17=_0xa132x13[_0x4e14[251]][_0x4e14[1709]](_0xa132x15,!0),_0xa132x18=[],_0xa132x19=_0xa132x2[_0x4e14[1843]];_0xa132x16!=_0xa132x12&&(_0xa132x19= !_0xa132x19);if(null!=_0xa132xa){var _0xa132x1a=_0xa132x19?2:0,_0xa132x1b=_0xa132x19?this[_0x4e14[1877]][_0xa132x5]:this[_0x4e14[1878]][_0xa132x4],_0xa132x1c=_0xa132xa[4*_0xa132x9+1+_0xa132x1a];_0xa132x19&&(_0xa132x1c= -_0xa132x1c);_0xa132x1b+=_0xa132x1c;_0xa132x1a=_0xa132xa[4*_0xa132x9+_0xa132x1a];_0xa132x17=_0xa132x13[_0x4e14[251]][_0x4e14[1709]](_0xa132x15,!0);this[_0x4e14[1759]][_0x4e14[1908]](_0xa132x17)&&_0xa132x13[_0x4e14[251]][_0x4e14[1197]](_0xa132x17)==_0xa132x16&&(_0xa132x1a=_0xa132x13[_0x4e14[441]][_0x4e14[248]](_0xa132x17),_0xa132x1a=null!=_0xa132x1a?_0xa132x1a[_0x4e14[235]]:_0xa132x16[_0x4e14[256]][_0x4e14[235]]+_0xa132x2[_0x4e14[1097]][_0x4e14[117]]*_0xa132x17[_0x4e14[256]][_0x4e14[235]]);this[_0x4e14[1870]]==mxConstants[_0x4e14[1358]]||this[_0x4e14[1870]]==mxConstants[_0x4e14[1354]]?(_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1a,_0xa132x1b)),this[_0x4e14[675]]==mxHierarchicalEdgeStyle[_0x4e14[1906]]&&_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1a,_0xa132x1b+_0xa132x1c))):(_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1b,_0xa132x1a)),this[_0x4e14[675]]==mxHierarchicalEdgeStyle[_0x4e14[1906]]&&_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1b+_0xa132x1c,_0xa132x1a)));};_0xa132x1a=_0xa132x2[_0x4e14[235]][_0x4e14[67]]-1;_0xa132x1b=_0xa132x1c= -1;_0xa132x16=_0xa132x2[_0x4e14[1827]]-1;_0xa132x19&&(_0xa132x1a=0,_0xa132x1c=_0xa132x2[_0x4e14[235]][_0x4e14[67]],_0xa132x1b=1,_0xa132x16=_0xa132x2[_0x4e14[1828]]+1);for(;_0xa132x2[_0x4e14[1827]]!=_0xa132x2[_0x4e14[1828]]&&_0xa132x1a!=_0xa132x1c;_0xa132x1a+=_0xa132x1b){var _0xa132x17=_0xa132x2[_0x4e14[235]][_0xa132x1a]+_0xa132x3,_0xa132x1d=(this[_0x4e14[1877]][_0xa132x16]+this[_0x4e14[1878]][_0xa132x16+1])/2,_0xa132x1e=(this[_0x4e14[1877]][_0xa132x16-1]+this[_0x4e14[1878]][_0xa132x16])/2;if(_0xa132x19){var _0xa132x1f=_0xa132x1d,_0xa132x1d=_0xa132x1e,_0xa132x1e=_0xa132x1f};this[_0x4e14[1870]]==mxConstants[_0x4e14[1358]]||this[_0x4e14[1870]]==mxConstants[_0x4e14[1354]]?(_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x17,_0xa132x1d)),_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x17,_0xa132x1e))):(_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1d,_0xa132x17)),_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1e,_0xa132x17)));this[_0x4e14[1874]]=Math[_0x4e14[160]](this[_0x4e14[1874]],_0xa132x17);_0xa132x16+=_0xa132x1b;};null!=_0xa132xa&&(_0xa132x1a=_0xa132x19?2:0,_0xa132x1b=_0xa132x19?this[_0x4e14[1878]][_0xa132x4]:this[_0x4e14[1877]][_0xa132x5],_0xa132x1c=_0xa132xa[4*_0xa132x9+3-_0xa132x1a],_0xa132x19&&(_0xa132x1c= -_0xa132x1c),_0xa132x1b-=_0xa132x1c,_0xa132x1a=_0xa132xa[4*_0xa132x9+2-_0xa132x1a],_0xa132x19=_0xa132x13[_0x4e14[251]][_0x4e14[1709]](_0xa132x15,!1),_0xa132x16=this[_0x4e14[1759]][_0x4e14[1710]](_0xa132x15,!1),this[_0x4e14[1759]][_0x4e14[1908]](_0xa132x19)&&_0xa132x13[_0x4e14[251]][_0x4e14[1197]](_0xa132x19)==_0xa132x16&&(_0xa132x1a=_0xa132x13[_0x4e14[441]][_0x4e14[248]](_0xa132x19),_0xa132x1a=null!=_0xa132x1a?_0xa132x1a[_0x4e14[235]]:_0xa132x16[_0x4e14[256]][_0x4e14[235]]+_0xa132x2[_0x4e14[772]][_0x4e14[117]]*_0xa132x19[_0x4e14[256]][_0x4e14[235]]),this[_0x4e14[1870]]==mxConstants[_0x4e14[1358]]||this[_0x4e14[1870]]==mxConstants[_0x4e14[1354]]?(this[_0x4e14[675]]==mxHierarchicalEdgeStyle[_0x4e14[1906]]&&_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1a,_0xa132x1b-_0xa132x1c)),_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1a,_0xa132x1b))):(this[_0x4e14[675]]==mxHierarchicalEdgeStyle[_0x4e14[1906]]&&_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1b-_0xa132x1c,_0xa132x1a)),_0xa132x18[_0x4e14[207]]( new mxPoint(_0xa132x1b,_0xa132x1a))));_0xa132x2[_0x4e14[1843]]&&this[_0x4e14[1909]](_0xa132x2,_0xa132x15);this[_0x4e14[1759]][_0x4e14[1722]](_0xa132x15,_0xa132x18);_0xa132x3=0==_0xa132x3?this[_0x4e14[1872]]:0<_0xa132x3?-_0xa132x3:-_0xa132x3+this[_0x4e14[1872]];_0xa132x9++;};_0xa132x2[_0x4e14[1826]][0]=101207;};};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1725]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[246]],_0xa132x4=_0xa132x2[_0x4e14[235]][0]-_0xa132x2[_0x4e14[117]]/2,_0xa132x5=_0xa132x2[_0x4e14[236]][0]-_0xa132x2[_0x4e14[119]]/2;this[_0x4e14[1877]][_0xa132x2[_0x4e14[1828]]]=Math[_0x4e14[243]](this[_0x4e14[1877]][_0xa132x2[_0x4e14[1828]]],_0xa132x5);this[_0x4e14[1878]][_0xa132x2[_0x4e14[1828]]]=Math[_0x4e14[160]](this[_0x4e14[1878]][_0xa132x2[_0x4e14[1828]]],_0xa132x5+_0xa132x2[_0x4e14[119]]);this[_0x4e14[1870]]==mxConstants[_0x4e14[1358]]||this[_0x4e14[1870]]==mxConstants[_0x4e14[1354]]?this[_0x4e14[1759]][_0x4e14[1725]](_0xa132x3,_0xa132x4,_0xa132x5):this[_0x4e14[1759]][_0x4e14[1725]](_0xa132x3,_0xa132x5,_0xa132x4);this[_0x4e14[1874]]=Math[_0x4e14[160]](this[_0x4e14[1874]],_0xa132x4+_0xa132x2[_0x4e14[117]]);};mxCoordinateAssignment[_0x4e14[202]][_0x4e14[1909]]=function(_0xa132x2,_0xa132x3){};function WeightedCellSorter(_0xa132x2,_0xa132x3){this[_0x4e14[246]]=_0xa132x2;this[_0x4e14[1782]]=_0xa132x3;}WeightedCellSorter[_0x4e14[202]][_0x4e14[1782]]=0;WeightedCellSorter[_0x4e14[202]][_0x4e14[1783]]= !1;WeightedCellSorter[_0x4e14[202]][_0x4e14[1784]]= !1;WeightedCellSorter[_0x4e14[202]][_0x4e14[1785]]=null;WeightedCellSorter[_0x4e14[202]][_0x4e14[246]]=null;WeightedCellSorter[_0x4e14[202]][_0x4e14[469]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2&&null!=_0xa132x3?_0xa132x3[_0x4e14[1782]]>_0xa132x2[_0x4e14[1782]]?-1:_0xa132x3[_0x4e14[1782]]<_0xa132x2[_0x4e14[1782]]?1:_0xa132x3[_0x4e14[1783]]?-1:1:0};function mxHierarchicalLayout(_0xa132x2,_0xa132x3,_0xa132x4){mxGraphLayout[_0x4e14[239]](this,_0xa132x2);this[_0x4e14[1870]]=null!=_0xa132x3?_0xa132x3:mxConstants[_0x4e14[1358]];this[_0x4e14[1910]]=null!=_0xa132x4?_0xa132x4:!0;}mxHierarchicalLayout[_0x4e14[202]]= new mxGraphLayout;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[196]]=mxHierarchicalLayout;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1845]]=null;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1735]]= !1;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1911]]= !1;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1912]]=0;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1868]]=30;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1869]]=100;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1913]]=60;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1872]]=10;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1870]]=mxConstants[_0x4e14[1358]];mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1882]]= !0;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1844]]= !0;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1787]]= !0;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1914]]= !0;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[251]]=null;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1915]]=null;mxHierarchicalLayout[_0x4e14[202]][_0x4e14[502]]=function(){return this[_0x4e14[251]]};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1101]]=_0xa132x2;var _0xa132x4=this[_0x4e14[1179]][_0x4e14[251]];this[_0x4e14[1915]]={};if(!(null==_0xa132x3&&null==_0xa132x2)){if(null!=_0xa132x3&&null!=_0xa132x2){for(var _0xa132x5=[],_0xa132x9=0;_0xa132x9<_0xa132x3[_0x4e14[67]];_0xa132x9++){_0xa132x4[_0x4e14[1720]](_0xa132x2,_0xa132x3[_0xa132x9])&&_0xa132x5[_0x4e14[207]](_0xa132x3[_0xa132x9])};this[_0x4e14[1845]]=_0xa132x5;}else {this[_0x4e14[1845]]=_0xa132x3};_0xa132x4[_0x4e14[473]]();try{this[_0x4e14[1916]](_0xa132x2),this[_0x4e14[1735]]&&!this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x2)&&this[_0x4e14[1179]][_0x4e14[1917]]([_0xa132x2],this[_0x4e14[1912]],this[_0x4e14[1911]])}finally{_0xa132x4[_0x4e14[476]]()};};};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1918]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=[];if(null!=_0xa132x2&&null!=_0xa132x3){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[251]],_0xa132x9=null,_0xa132xa=-1E5,_0xa132x12;for(_0xa132x12 in _0xa132x3){var _0xa132x13=_0xa132x3[_0xa132x12];if(_0xa132x5[_0x4e14[1193]](_0xa132x13)&&this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x13)){for(var _0xa132x14=this[_0x4e14[264]](_0xa132x13),_0xa132x15=0,_0xa132x16=0,_0xa132x17=0;_0xa132x17<_0xa132x14[_0x4e14[67]];_0xa132x17++){this[_0x4e14[1710]](_0xa132x14[_0xa132x17],!0)==_0xa132x13?_0xa132x15++:_0xa132x16++};0==_0xa132x16&&0<_0xa132x15&&_0xa132x4[_0x4e14[207]](_0xa132x13);_0xa132x14=_0xa132x15-_0xa132x16;_0xa132x14>_0xa132xa&&(_0xa132xa=_0xa132x14,_0xa132x9=_0xa132x13);};};0==_0xa132x4[_0x4e14[67]]&&null!=_0xa132x9&&_0xa132x4[_0x4e14[207]](_0xa132x9);};return _0xa132x4;};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[264]]=function(_0xa132x2){var _0xa132x3=mxCellPath[_0x4e14[385]](_0xa132x2);if(null!=this[_0x4e14[1915]][_0xa132x3]){return this[_0x4e14[1915]][_0xa132x3]};for(var _0xa132x4=this[_0x4e14[1179]][_0x4e14[251]],_0xa132x5=[],_0xa132x9=this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x2),_0xa132xa=_0xa132x4[_0x4e14[262]](_0xa132x2),_0xa132x12=0;_0xa132x12<_0xa132xa;_0xa132x12++){var _0xa132x13=_0xa132x4[_0x4e14[263]](_0xa132x2,_0xa132x12);if(this[_0x4e14[1908]](_0xa132x13)){_0xa132x5=_0xa132x5[_0x4e14[1919]](_0xa132x4[_0x4e14[264]](_0xa132x13,!0,!0))}else {if(_0xa132x9||!this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x13)){_0xa132x5=_0xa132x5[_0x4e14[1919]](_0xa132x4[_0x4e14[264]](_0xa132x13,!0,!0))}};};_0xa132x5=_0xa132x5[_0x4e14[1919]](_0xa132x4[_0x4e14[264]](_0xa132x2,!0,!0));_0xa132x4=[];for(_0xa132x12=0;_0xa132x12<_0xa132x5[_0x4e14[67]];_0xa132x12++){_0xa132x9=this[_0x4e14[1710]](_0xa132x5[_0xa132x12],!0),_0xa132xa=this[_0x4e14[1710]](_0xa132x5[_0xa132x12],!1),(_0xa132x9==_0xa132xa||_0xa132x9!=_0xa132xa&&(_0xa132xa==_0xa132x2&&(null==this[_0x4e14[1101]]||this[_0x4e14[1179]][_0x4e14[1920]](_0xa132x9,this[_0x4e14[1101]],this[_0x4e14[1914]]))||_0xa132x9==_0xa132x2&&(null==this[_0x4e14[1101]]||this[_0x4e14[1179]][_0x4e14[1920]](_0xa132xa,this[_0x4e14[1101]],this[_0x4e14[1914]]))))&&_0xa132x4[_0x4e14[207]](_0xa132x5[_0xa132x12])};return this[_0x4e14[1915]][_0xa132x3]=_0xa132x4;};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1710]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x4=null!=_0xa132x4?_0xa132x4[_0x4e14[1710]](_0xa132x3):this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[1710]](_0xa132x2,_0xa132x3);this[_0x4e14[1908]](_0xa132x4)&&(_0xa132x4=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1197]](_0xa132x4));return _0xa132x4;};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1916]]=function(_0xa132x2){var _0xa132x3=[],_0xa132x4=[];if(null==this[_0x4e14[1845]]&&null!=_0xa132x2){var _0xa132x5={};this[_0x4e14[1921]](_0xa132x2,_0xa132x5);this[_0x4e14[1845]]=[];var _0xa132x9=!0,_0xa132xa;for(_0xa132xa in _0xa132x5){if(null!=_0xa132x5[_0xa132xa]){_0xa132x9= !1;break;}};for(;!_0xa132x9;){for(var _0xa132x12=this[_0x4e14[1918]](_0xa132x2,_0xa132x5),_0xa132x9=0;_0xa132x9<_0xa132x12[_0x4e14[67]];_0xa132x9++){var _0xa132x13=[];_0xa132x3[_0x4e14[207]](_0xa132x13);this[_0x4e14[1706]](_0xa132x12[_0xa132x9],!0,null,_0xa132x4,_0xa132x13,_0xa132x3,_0xa132x5);};for(_0xa132x9=0;_0xa132x9<_0xa132x12[_0x4e14[67]];_0xa132x9++){this[_0x4e14[1845]][_0x4e14[207]](_0xa132x12[_0xa132x9])};_0xa132x9= !0;for(_0xa132xa in _0xa132x5){if(null!=_0xa132x5[_0xa132xa]){_0xa132x9= !1;break;}};};}else {for(_0xa132x9=0;_0xa132x9<roots[_0x4e14[67]];_0xa132x9++){_0xa132x13=[],_0xa132x3[_0x4e14[207]](_0xa132x13),traverse(roots[_0x4e14[203]](_0xa132x9),!0,null,_0xa132x4,_0xa132x13,_0xa132x3,null)}};for(_0xa132x9=_0xa132x4=0;_0xa132x9<_0xa132x3[_0x4e14[67]];_0xa132x9++){_0xa132x13=_0xa132x3[_0xa132x9];_0xa132x5=[];for(_0xa132xa in _0xa132x13){_0xa132x5[_0x4e14[207]](_0xa132x13[_0xa132xa])};this[_0x4e14[251]]= new mxGraphHierarchyModel(this,_0xa132x5,this[_0x4e14[1845]],_0xa132x2,this[_0x4e14[1844]]);this[_0x4e14[1922]](_0xa132x2);this[_0x4e14[1923]]();this[_0x4e14[1924]](_0xa132x2);_0xa132x4=this[_0x4e14[1925]](_0xa132x4,_0xa132x2);};};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1921]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[251]];_0xa132x4[_0x4e14[1193]](_0xa132x2)&&(_0xa132x2!=this[_0x4e14[1101]]&&this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x2))&&(_0xa132x3[mxCellPath[_0x4e14[385]](_0xa132x2)]=_0xa132x2);if(this[_0x4e14[1914]]||_0xa132x2==this[_0x4e14[1101]]&&this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x2)){for(var _0xa132x5=_0xa132x4[_0x4e14[262]](_0xa132x2),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){var _0xa132xa=_0xa132x4[_0x4e14[263]](_0xa132x2,_0xa132x9);this[_0x4e14[1908]](_0xa132xa)||this[_0x4e14[1921]](_0xa132xa,_0xa132x3);}};};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1908]]=function(_0xa132x2){return _0xa132x2[_0x4e14[256]][_0x4e14[1500]]?!0:!1};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1781]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:!1;for(var _0xa132x5=this[_0x4e14[264]](_0xa132x2),_0xa132x9=[],_0xa132xa=0;_0xa132xa<_0xa132x5[_0x4e14[67]];_0xa132xa++){var _0xa132x12=this[_0x4e14[1710]](_0xa132x5[_0xa132xa],!0),_0xa132x13=this[_0x4e14[1710]](_0xa132x5[_0xa132xa],!1);(_0xa132x12==_0xa132x2&&_0xa132x13==_0xa132x3||!_0xa132x4&&_0xa132x12==_0xa132x3&&_0xa132x13==_0xa132x2)&&_0xa132x9[_0x4e14[207]](_0xa132x5[_0xa132xa]);};return _0xa132x9;};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1706]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12){if(null!=_0xa132x2&&null!=_0xa132x5){var _0xa132x13=mxCellPath[_0x4e14[385]](_0xa132x2);if(null==_0xa132x5[_0xa132x13]&&(null==_0xa132x12||null!=_0xa132x12[_0xa132x13])){null==_0xa132x9[_0xa132x13]&&(_0xa132x9[_0xa132x13]=_0xa132x2);null==_0xa132x5[_0xa132x13]&&(_0xa132x5[_0xa132x13]=_0xa132x2);delete _0xa132x12[_0xa132x13];var _0xa132x14=this[_0x4e14[264]](_0xa132x2);for(_0xa132x4=0;_0xa132x4<_0xa132x14[_0x4e14[67]];_0xa132x4++){if(_0xa132x13=this[_0x4e14[1710]](_0xa132x14[_0xa132x4],!0)==_0xa132x2,!_0xa132x3||_0xa132x13){_0xa132x13=this[_0x4e14[1710]](_0xa132x14[_0xa132x4],!_0xa132x13),_0xa132x9=this[_0x4e14[1706]](_0xa132x13,_0xa132x3,_0xa132x14[_0xa132x4],_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12)}};}else {if(null==_0xa132x9[_0xa132x13]){for(_0xa132x4=0;_0xa132x4<_0xa132xa[_0x4e14[67]];_0xa132x4++){if(_0xa132x2=_0xa132xa[_0xa132x4],null!=_0xa132x2[_0xa132x13]){for(_0xa132x14 in _0xa132x9){_0xa132x2[_0xa132x14]=_0xa132x9[_0xa132x14]};_0xa132xa[_0x4e14[1242]]();return _0xa132x2;}}}};};return _0xa132x9;};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1922]]=function(_0xa132x2){( new mxMinimumCycleRemover(this))[_0x4e14[350]](_0xa132x2)};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1923]]=function(){this[_0x4e14[251]][_0x4e14[1852]]();this[_0x4e14[251]][_0x4e14[1854]]();};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1924]]=function(_0xa132x2){( new mxMedianHybridCrossingReduction(this))[_0x4e14[350]](_0xa132x2)};mxHierarchicalLayout[_0x4e14[202]][_0x4e14[1925]]=function(_0xa132x2,_0xa132x3){var _0xa132x4= new mxCoordinateAssignment(this,this[_0x4e14[1868]],this[_0x4e14[1869]],this[_0x4e14[1870]],_0xa132x2,this[_0x4e14[1872]]);_0xa132x4[_0x4e14[1882]]=this[_0x4e14[1882]];_0xa132x4[_0x4e14[350]](_0xa132x3);return _0xa132x4[_0x4e14[1874]]+this[_0x4e14[1913]];};function mxGraphModel(_0xa132x2){this[_0x4e14[1926]]=this[_0x4e14[1096]]();null!=_0xa132x2?this[_0x4e14[1927]](_0xa132x2):this[_0x4e14[200]]();}mxGraphModel[_0x4e14[202]]= new mxEventSource;mxGraphModel[_0x4e14[202]][_0x4e14[196]]=mxGraphModel;mxGraphModel[_0x4e14[202]][_0x4e14[813]]=null;mxGraphModel[_0x4e14[202]][_0x4e14[895]]=null;mxGraphModel[_0x4e14[202]][_0x4e14[1928]]= !0;mxGraphModel[_0x4e14[202]][_0x4e14[1929]]= !0;mxGraphModel[_0x4e14[202]][_0x4e14[1089]]=_0x4e14[110];mxGraphModel[_0x4e14[202]][_0x4e14[1930]]=_0x4e14[110];mxGraphModel[_0x4e14[202]][_0x4e14[1931]]=0;mxGraphModel[_0x4e14[202]][_0x4e14[1926]]=null;mxGraphModel[_0x4e14[202]][_0x4e14[1932]]=0;mxGraphModel[_0x4e14[202]][_0x4e14[1933]]= !1;mxGraphModel[_0x4e14[202]][_0x4e14[200]]=function(){this[_0x4e14[1927]](this[_0x4e14[1934]]())};mxGraphModel[_0x4e14[202]][_0x4e14[1935]]=function(){return this[_0x4e14[1929]]};mxGraphModel[_0x4e14[202]][_0x4e14[1936]]=function(_0xa132x2){this[_0x4e14[1929]]=_0xa132x2};mxGraphModel[_0x4e14[202]][_0x4e14[1934]]=function(){var _0xa132x2= new mxCell;_0xa132x2[_0x4e14[1937]]( new mxCell);return _0xa132x2;};mxGraphModel[_0x4e14[202]][_0x4e14[736]]=function(_0xa132x2){return null!=this[_0x4e14[895]]?this[_0x4e14[895]][_0xa132x2]:null};mxGraphModel[_0x4e14[202]][_0x4e14[1938]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=null;if(null!=_0xa132x2){for(var _0xa132x4=[],_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){_0xa132x3(_0xa132x2[_0xa132x5])&&_0xa132x4[_0x4e14[207]](_0xa132x2[_0xa132x5])}};return _0xa132x4;};mxGraphModel[_0x4e14[202]][_0x4e14[1939]]=function(_0xa132x2){return this[_0x4e14[1921]](null,_0xa132x2)};mxGraphModel[_0x4e14[202]][_0x4e14[1921]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=[];_0xa132x3=_0xa132x3||this[_0x4e14[501]]();(null==_0xa132x2||_0xa132x2(_0xa132x3))&&_0xa132x4[_0x4e14[207]](_0xa132x3);for(var _0xa132x5=this[_0x4e14[262]](_0xa132x3),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){var _0xa132xa=this[_0x4e14[263]](_0xa132x3,_0xa132x9),_0xa132x4=_0xa132x4[_0x4e14[1919]](this[_0x4e14[1921]](_0xa132x2,_0xa132xa))};return _0xa132x4;};mxGraphModel[_0x4e14[202]][_0x4e14[501]]=function(_0xa132x2){var _0xa132x3=_0xa132x2||this[_0x4e14[813]];if(null!=_0xa132x2){for(;null!=_0xa132x2;){_0xa132x3=_0xa132x2,_0xa132x2=this[_0x4e14[1197]](_0xa132x2)}};return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1927]]=function(_0xa132x2){this[_0x4e14[350]]( new mxRootChange(this,_0xa132x2));return _0xa132x2;};mxGraphModel[_0x4e14[202]][_0x4e14[1940]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[813]];this[_0x4e14[813]]=_0xa132x2;this[_0x4e14[1931]]=0;this[_0x4e14[895]]=null;this[_0x4e14[1941]](_0xa132x2);return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1942]]=function(_0xa132x2){return null!=_0xa132x2&&this[_0x4e14[813]]==_0xa132x2};mxGraphModel[_0x4e14[202]][_0x4e14[1740]]=function(_0xa132x2){return this[_0x4e14[1942]](this[_0x4e14[1197]](_0xa132x2))};mxGraphModel[_0x4e14[202]][_0x4e14[1720]]=function(_0xa132x2,_0xa132x3){for(;null!=_0xa132x3&&_0xa132x3!=_0xa132x2;){_0xa132x3=this[_0x4e14[1197]](_0xa132x3)};return _0xa132x3==_0xa132x2;};mxGraphModel[_0x4e14[202]][_0x4e14[442]]=function(_0xa132x2){return this[_0x4e14[1720]](this[_0x4e14[813]],_0xa132x2)};mxGraphModel[_0x4e14[202]][_0x4e14[1197]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[1197]]():null};mxGraphModel[_0x4e14[202]][_0x4e14[99]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(_0xa132x3!=_0xa132x2&&null!=_0xa132x2&&null!=_0xa132x3){null==_0xa132x4&&(_0xa132x4=this[_0x4e14[262]](_0xa132x2));var _0xa132x5=_0xa132x2!=this[_0x4e14[1197]](_0xa132x3);this[_0x4e14[350]]( new mxChildChange(this,_0xa132x2,_0xa132x3,_0xa132x4));this[_0x4e14[1928]]&&_0xa132x5&&this[_0x4e14[1943]](_0xa132x3);};return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1941]]=function(_0xa132x2){if(null!=_0xa132x2){null==_0xa132x2[_0x4e14[1103]]()&&this[_0x4e14[1929]]&&_0xa132x2[_0x4e14[1945]](this[_0x4e14[1944]](_0xa132x2));if(null!=_0xa132x2[_0x4e14[1103]]()){var _0xa132x3=this[_0x4e14[736]](_0xa132x2[_0x4e14[1103]]());if(_0xa132x3!=_0xa132x2){for(;null!=_0xa132x3;){_0xa132x2[_0x4e14[1945]](this[_0x4e14[1944]](_0xa132x2)),_0xa132x3=this[_0x4e14[736]](_0xa132x2[_0x4e14[1103]]())};null==this[_0x4e14[895]]&&(this[_0x4e14[895]]={});this[_0x4e14[895]][_0xa132x2[_0x4e14[1103]]()]=_0xa132x2;};};mxUtils[_0x4e14[1946]](_0xa132x2[_0x4e14[1103]]())&&(this[_0x4e14[1931]]=Math[_0x4e14[160]](this[_0x4e14[1931]],_0xa132x2[_0x4e14[1103]]()));for(var _0xa132x3=this[_0x4e14[262]](_0xa132x2),_0xa132x4=0;_0xa132x4<_0xa132x3;_0xa132x4++){this[_0x4e14[1941]](this[_0x4e14[263]](_0xa132x2,_0xa132x4))};}};mxGraphModel[_0x4e14[202]][_0x4e14[1944]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[1931]];this[_0x4e14[1931]]++;return this[_0x4e14[1089]]+_0xa132x2+this[_0x4e14[1930]];};mxGraphModel[_0x4e14[202]][_0x4e14[1943]]=function(_0xa132x2,_0xa132x3){_0xa132x3=_0xa132x3||this[_0x4e14[501]](_0xa132x2);for(var _0xa132x4=this[_0x4e14[262]](_0xa132x2),_0xa132x5=0;_0xa132x5<_0xa132x4;_0xa132x5++){var _0xa132x9=this[_0x4e14[263]](_0xa132x2,_0xa132x5);this[_0x4e14[1943]](_0xa132x9,_0xa132x3);};_0xa132x9=this[_0x4e14[1707]](_0xa132x2);_0xa132x4=[];for(_0xa132x5=0;_0xa132x5<_0xa132x9;_0xa132x5++){_0xa132x4[_0x4e14[207]](this[_0x4e14[1708]](_0xa132x2,_0xa132x5))};for(_0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]];_0xa132x5++){_0xa132x9=_0xa132x4[_0xa132x5],this[_0x4e14[1720]](_0xa132x3,_0xa132x9)&&this[_0x4e14[1947]](_0xa132x9,_0xa132x3)};};mxGraphModel[_0x4e14[202]][_0x4e14[1947]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=this[_0x4e14[1709]](_0xa132x2,!0),_0xa132x5=this[_0x4e14[1709]](_0xa132x2,!1),_0xa132x9=null;null!=_0xa132x4&&!this[_0x4e14[250]](_0xa132x4)&&null!=_0xa132x4[_0x4e14[256]]&&_0xa132x4[_0x4e14[256]][_0x4e14[1500]];){_0xa132x4=this[_0x4e14[1197]](_0xa132x4)};for(;null!=_0xa132x5&&!this[_0x4e14[250]](_0xa132x5)&&null!=_0xa132x5[_0x4e14[256]]&&_0xa132x5[_0x4e14[256]][_0x4e14[1500]];){_0xa132x5=this[_0x4e14[1197]](_0xa132x5)};if(this[_0x4e14[1720]](_0xa132x3,_0xa132x4)&&this[_0x4e14[1720]](_0xa132x3,_0xa132x5)&&(_0xa132x9=_0xa132x4==_0xa132x5?this[_0x4e14[1197]](_0xa132x4):this[_0x4e14[1948]](_0xa132x4,_0xa132x5),null!=_0xa132x9&&(this[_0x4e14[1197]](_0xa132x9)!=this[_0x4e14[813]]||this[_0x4e14[1720]](_0xa132x9,_0xa132x2))&&this[_0x4e14[1197]](_0xa132x2)!=_0xa132x9)){_0xa132x4=this[_0x4e14[1721]](_0xa132x2);if(null!=_0xa132x4){var _0xa132xa=this[_0x4e14[1949]](this[_0x4e14[1197]](_0xa132x2)),_0xa132x12=this[_0x4e14[1949]](_0xa132x9),_0xa132x5=_0xa132x12[_0x4e14[235]]-_0xa132xa[_0x4e14[235]],_0xa132xa=_0xa132x12[_0x4e14[236]]-_0xa132xa[_0x4e14[236]],_0xa132x4=_0xa132x4[_0x4e14[238]]();_0xa132x4[_0x4e14[513]](-_0xa132x5,-_0xa132xa);this[_0x4e14[1724]](_0xa132x2,_0xa132x4);};this[_0x4e14[99]](_0xa132x9,_0xa132x2,this[_0x4e14[262]](_0xa132x9));};};mxGraphModel[_0x4e14[202]][_0x4e14[1949]]=function(_0xa132x2){var _0xa132x3=null;null!=_0xa132x2?(_0xa132x3=this[_0x4e14[1949]](this[_0x4e14[1197]](_0xa132x2)),this[_0x4e14[250]](_0xa132x2)||(_0xa132x2=this[_0x4e14[1721]](_0xa132x2),null!=_0xa132x2&&(_0xa132x3[_0x4e14[235]]+=_0xa132x2[_0x4e14[235]],_0xa132x3[_0x4e14[236]]+=_0xa132x2[_0x4e14[236]]))):_0xa132x3= new mxPoint;return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1948]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&null!=_0xa132x3){var _0xa132x4=mxCellPath[_0x4e14[385]](_0xa132x3);if(null!=_0xa132x4&&0<_0xa132x4[_0x4e14[67]]){var _0xa132x5=_0xa132x2,_0xa132x9=mxCellPath[_0x4e14[385]](_0xa132x5);if(_0xa132x4[_0x4e14[67]]<_0xa132x9[_0x4e14[67]]){var _0xa132x5=_0xa132x3,_0xa132xa=_0xa132x9,_0xa132x9=_0xa132x4,_0xa132x4=_0xa132xa};for(;null!=_0xa132x5;){_0xa132xa=this[_0x4e14[1197]](_0xa132x5);if(0==_0xa132x4[_0x4e14[2]](_0xa132x9+mxCellPath[_0x4e14[1950]])&&null!=_0xa132xa){return _0xa132x5};_0xa132x9=mxCellPath[_0x4e14[1951]](_0xa132x9);_0xa132x5=_0xa132xa;};};};return null;};mxGraphModel[_0x4e14[202]][_0x4e14[205]]=function(_0xa132x2){_0xa132x2==this[_0x4e14[813]]?this[_0x4e14[1927]](null):null!=this[_0x4e14[1197]](_0xa132x2)&&this[_0x4e14[350]]( new mxChildChange(this,null,_0xa132x2));return _0xa132x2;};mxGraphModel[_0x4e14[202]][_0x4e14[1102]]=function(_0xa132x2){if(null!=_0xa132x2&&null!=this[_0x4e14[895]]){for(var _0xa132x3=this[_0x4e14[262]](_0xa132x2)-1;0<=_0xa132x3;_0xa132x3--){this[_0x4e14[1102]](this[_0x4e14[263]](_0xa132x2,_0xa132x3))};null!=this[_0x4e14[895]]&&null!=_0xa132x2[_0x4e14[1103]]()&& delete this[_0x4e14[895]][_0xa132x2[_0x4e14[1103]]()];}};mxGraphModel[_0x4e14[202]][_0x4e14[1952]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1197]](_0xa132x2);null!=_0xa132x3?(_0xa132x3!=_0xa132x5||_0xa132x5[_0x4e14[1738]](_0xa132x2)!=_0xa132x4)&&_0xa132x3[_0x4e14[1937]](_0xa132x2,_0xa132x4):null!=_0xa132x5&&(_0xa132x4=_0xa132x5[_0x4e14[1738]](_0xa132x2),_0xa132x5[_0x4e14[205]](_0xa132x4));!this[_0x4e14[442]](_0xa132x5)&&null!=_0xa132x3?this[_0x4e14[1941]](_0xa132x2):null==_0xa132x3&&this[_0x4e14[1102]](_0xa132x2);return _0xa132x5;};mxGraphModel[_0x4e14[202]][_0x4e14[262]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[262]]():0};mxGraphModel[_0x4e14[202]][_0x4e14[263]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2?_0xa132x2[_0x4e14[263]](_0xa132x3):null};mxGraphModel[_0x4e14[202]][_0x4e14[1953]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[1954]]:null};mxGraphModel[_0x4e14[202]][_0x4e14[1728]]=function(_0xa132x2){return this[_0x4e14[1955]](_0xa132x2,!0,!1)};mxGraphModel[_0x4e14[202]][_0x4e14[1956]]=function(_0xa132x2){return this[_0x4e14[1955]](_0xa132x2,!1,!0)};mxGraphModel[_0x4e14[202]][_0x4e14[1955]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;_0xa132x4=null!=_0xa132x4?_0xa132x4:!1;for(var _0xa132x5=this[_0x4e14[262]](_0xa132x2),_0xa132x9=[],_0xa132xa=0;_0xa132xa<_0xa132x5;_0xa132xa++){var _0xa132x12=this[_0x4e14[263]](_0xa132x2,_0xa132xa);(!_0xa132x4&&!_0xa132x3||_0xa132x4&&this[_0x4e14[250]](_0xa132x12)||_0xa132x3&&this[_0x4e14[1193]](_0xa132x12))&&_0xa132x9[_0x4e14[207]](_0xa132x12);};return _0xa132x9;};mxGraphModel[_0x4e14[202]][_0x4e14[1709]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2?_0xa132x2[_0x4e14[1709]](_0xa132x3):null};mxGraphModel[_0x4e14[202]][_0x4e14[1957]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x3!=this[_0x4e14[1709]](_0xa132x2,_0xa132x4);this[_0x4e14[350]]( new mxTerminalChange(this,_0xa132x2,_0xa132x3,_0xa132x4));this[_0x4e14[1928]]&&_0xa132x5&&this[_0x4e14[1947]](_0xa132x2,this[_0x4e14[501]]());return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1958]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[473]]();try{this[_0x4e14[1957]](_0xa132x2,_0xa132x3,!0),this[_0x4e14[1957]](_0xa132x2,_0xa132x4,!1)}finally{this[_0x4e14[476]]()};};mxGraphModel[_0x4e14[202]][_0x4e14[1959]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1709]](_0xa132x2,_0xa132x4);null!=_0xa132x3?_0xa132x3[_0x4e14[1960]](_0xa132x2,_0xa132x4):null!=_0xa132x5&&_0xa132x5[_0x4e14[1961]](_0xa132x2,_0xa132x4);return _0xa132x5;};mxGraphModel[_0x4e14[202]][_0x4e14[1707]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[1707]]():0};mxGraphModel[_0x4e14[202]][_0x4e14[1708]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2?_0xa132x2[_0x4e14[1708]](_0xa132x3):null};mxGraphModel[_0x4e14[202]][_0x4e14[1962]]=function(_0xa132x2,_0xa132x3,_0xa132x4){for(var _0xa132x5=0,_0xa132x9=this[_0x4e14[1707]](_0xa132x2),_0xa132xa=0;_0xa132xa<_0xa132x9;_0xa132xa++){var _0xa132x12=this[_0x4e14[1708]](_0xa132x2,_0xa132xa);_0xa132x12!=_0xa132x4&&this[_0x4e14[1709]](_0xa132x12,_0xa132x3)==_0xa132x2&&_0xa132x5++;};return _0xa132x5;};mxGraphModel[_0x4e14[202]][_0x4e14[1756]]=function(_0xa132x2){return this[_0x4e14[264]](_0xa132x2,!0,!0,!1)};mxGraphModel[_0x4e14[202]][_0x4e14[1867]]=function(_0xa132x2){return this[_0x4e14[264]](_0xa132x2,!0,!1,!1)};mxGraphModel[_0x4e14[202]][_0x4e14[1963]]=function(_0xa132x2){return this[_0x4e14[264]](_0xa132x2,!1,!0,!1)};mxGraphModel[_0x4e14[202]][_0x4e14[264]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;_0xa132x5=null!=_0xa132x5?_0xa132x5:!0;for(var _0xa132x9=this[_0x4e14[1707]](_0xa132x2),_0xa132xa=[],_0xa132x12=0;_0xa132x12<_0xa132x9;_0xa132x12++){var _0xa132x13=this[_0x4e14[1708]](_0xa132x2,_0xa132x12),_0xa132x14=this[_0x4e14[1709]](_0xa132x13,!0),_0xa132x15=this[_0x4e14[1709]](_0xa132x13,!1);(_0xa132x5&&_0xa132x14==_0xa132x15||_0xa132x14!=_0xa132x15&&(_0xa132x3&&_0xa132x15==_0xa132x2||_0xa132x4&&_0xa132x14==_0xa132x2))&&_0xa132xa[_0x4e14[207]](_0xa132x13);};return _0xa132xa;};mxGraphModel[_0x4e14[202]][_0x4e14[1781]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:!1;var _0xa132x5=this[_0x4e14[1707]](_0xa132x2),_0xa132x9=this[_0x4e14[1707]](_0xa132x3),_0xa132xa=_0xa132x2,_0xa132x12=_0xa132x5;_0xa132x9<_0xa132x5&&(_0xa132x12=_0xa132x9,_0xa132xa=_0xa132x3);_0xa132x5=[];for(_0xa132x9=0;_0xa132x9<_0xa132x12;_0xa132x9++){var _0xa132x13=this[_0x4e14[1708]](_0xa132xa,_0xa132x9),_0xa132x14=this[_0x4e14[1709]](_0xa132x13,!0),_0xa132x15=this[_0x4e14[1709]](_0xa132x13,!1),_0xa132x16=_0xa132x15==_0xa132x2&&_0xa132x14==_0xa132x3;(_0xa132x14==_0xa132x2&&_0xa132x15==_0xa132x3||!_0xa132x4&&_0xa132x16)&&_0xa132x5[_0x4e14[207]](_0xa132x13);};return _0xa132x5;};mxGraphModel[_0x4e14[202]][_0x4e14[1808]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;_0xa132x5=null!=_0xa132x5?_0xa132x5:!0;var _0xa132x9=[];if(null!=_0xa132x2){for(var _0xa132xa=0;_0xa132xa<_0xa132x2[_0x4e14[67]];_0xa132xa++){var _0xa132x12=this[_0x4e14[1709]](_0xa132x2[_0xa132xa],!0),_0xa132x13=this[_0x4e14[1709]](_0xa132x2[_0xa132xa],!1);_0xa132x12==_0xa132x3&&null!=_0xa132x13&&_0xa132x13!=_0xa132x3&&_0xa132x5?_0xa132x9[_0x4e14[207]](_0xa132x13):_0xa132x13==_0xa132x3&&(null!=_0xa132x12&&_0xa132x12!=_0xa132x3&&_0xa132x4)&&_0xa132x9[_0x4e14[207]](_0xa132x12);}};return _0xa132x9;};mxGraphModel[_0x4e14[202]][_0x4e14[1964]]=function(_0xa132x2){for(var _0xa132x3=[],_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){for(var _0xa132x5=_0xa132x2[_0xa132x4],_0xa132x9=!0,_0xa132xa=this[_0x4e14[1197]](_0xa132x5);null!=_0xa132xa;){if(0<=mxUtils[_0x4e14[2]](_0xa132x2,_0xa132xa)){_0xa132x9= !1;break;};_0xa132xa=this[_0x4e14[1197]](_0xa132xa);};_0xa132x9&&_0xa132x3[_0x4e14[207]](_0xa132x5);};return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1193]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[1193]]():!1};mxGraphModel[_0x4e14[202]][_0x4e14[250]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[250]]():!1};mxGraphModel[_0x4e14[202]][_0x4e14[1965]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[1965]]():!1};mxGraphModel[_0x4e14[202]][_0x4e14[433]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[433]]():null};mxGraphModel[_0x4e14[202]][_0x4e14[1966]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[350]]( new mxValueChange(this,_0xa132x2,_0xa132x3));return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1967]]=function(_0xa132x2,_0xa132x3){return _0xa132x2[_0x4e14[1968]](_0xa132x3)};mxGraphModel[_0x4e14[202]][_0x4e14[1721]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2?_0xa132x2[_0x4e14[1721]]():null};mxGraphModel[_0x4e14[202]][_0x4e14[1724]]=function(_0xa132x2,_0xa132x3){_0xa132x3!=this[_0x4e14[1721]](_0xa132x2)&&this[_0x4e14[350]]( new mxGeometryChange(this,_0xa132x2,_0xa132x3));return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1969]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1721]](_0xa132x2);_0xa132x2[_0x4e14[1724]](_0xa132x3);return _0xa132x4;};mxGraphModel[_0x4e14[202]][_0x4e14[474]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[474]]():null};mxGraphModel[_0x4e14[202]][_0x4e14[475]]=function(_0xa132x2,_0xa132x3){_0xa132x3!=this[_0x4e14[474]](_0xa132x2)&&this[_0x4e14[350]]( new mxStyleChange(this,_0xa132x2,_0xa132x3));return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1970]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[474]](_0xa132x2);_0xa132x2[_0x4e14[475]](_0xa132x3);return _0xa132x4;};mxGraphModel[_0x4e14[202]][_0x4e14[1971]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[1971]]():!1};mxGraphModel[_0x4e14[202]][_0x4e14[1972]]=function(_0xa132x2,_0xa132x3){_0xa132x3!=this[_0x4e14[1971]](_0xa132x2)&&this[_0x4e14[350]]( new mxCollapseChange(this,_0xa132x2,_0xa132x3));return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1973]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1971]](_0xa132x2);_0xa132x2[_0x4e14[1972]](_0xa132x3);return _0xa132x4;};mxGraphModel[_0x4e14[202]][_0x4e14[174]]=function(_0xa132x2){return null!=_0xa132x2?_0xa132x2[_0x4e14[174]]():!1};mxGraphModel[_0x4e14[202]][_0x4e14[175]]=function(_0xa132x2,_0xa132x3){_0xa132x3!=this[_0x4e14[174]](_0xa132x2)&&this[_0x4e14[350]]( new mxVisibleChange(this,_0xa132x2,_0xa132x3));return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1974]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[174]](_0xa132x2);_0xa132x2[_0x4e14[175]](_0xa132x3);return _0xa132x4;};mxGraphModel[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2){_0xa132x2[_0x4e14[350]]();this[_0x4e14[473]]();this[_0x4e14[1926]][_0x4e14[99]](_0xa132x2);this[_0x4e14[746]]( new mxEventObject(mxEvent.EXECUTE,_0x4e14[826],_0xa132x2));this[_0x4e14[746]]( new mxEventObject(mxEvent.EXECUTED,_0x4e14[826],_0xa132x2));this[_0x4e14[476]]();};mxGraphModel[_0x4e14[202]][_0x4e14[473]]=function(){this[_0x4e14[1932]]++;this[_0x4e14[746]]( new mxEventObject(mxEvent.BEGIN_UPDATE));1==this[_0x4e14[1932]]&&this[_0x4e14[746]]( new mxEventObject(mxEvent.START_EDIT));};mxGraphModel[_0x4e14[202]][_0x4e14[476]]=function(){this[_0x4e14[1932]]--;0==this[_0x4e14[1932]]&&this[_0x4e14[746]]( new mxEventObject(mxEvent.END_EDIT));if(!this[_0x4e14[1933]]){this[_0x4e14[1933]]=0==this[_0x4e14[1932]];this[_0x4e14[746]]( new mxEventObject(mxEvent.END_UPDATE,_0x4e14[1061],this[_0x4e14[1926]]));try{if(this[_0x4e14[1933]]&&!this[_0x4e14[1926]][_0x4e14[1107]]()){this[_0x4e14[746]]( new mxEventObject(mxEvent.BEFORE_UNDO,_0x4e14[1061],this[_0x4e14[1926]]));var _0xa132x2=this[_0x4e14[1926]];this[_0x4e14[1926]]=this[_0x4e14[1096]]();_0xa132x2[_0x4e14[827]]();this[_0x4e14[746]]( new mxEventObject(mxEvent.UNDO,_0x4e14[1061],_0xa132x2));}}finally{this[_0x4e14[1933]]= !1};};};mxGraphModel[_0x4e14[202]][_0x4e14[1096]]=function(){var _0xa132x2= new mxUndoableEdit(this,!0);_0xa132x2[_0x4e14[827]]=function(){_0xa132x2[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.CHANGE,_0x4e14[1061],_0xa132x2,_0x4e14[1065],_0xa132x2[_0x4e14[1065]]));_0xa132x2[_0x4e14[1097]][_0x4e14[746]]( new mxEventObject(mxEvent.NOTIFY,_0x4e14[1061],_0xa132x2,_0x4e14[1065],_0xa132x2[_0x4e14[1065]]));};return _0xa132x2;};mxGraphModel[_0x4e14[202]][_0x4e14[1975]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;this[_0x4e14[473]]();try{var _0xa132x5={};this[_0x4e14[1976]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5);for(var _0xa132x9 in _0xa132x5){var _0xa132xa=_0xa132x5[_0xa132x9],_0xa132x12=this[_0x4e14[1709]](_0xa132xa,!0);null!=_0xa132x12&&(_0xa132x12=_0xa132x5[mxCellPath[_0x4e14[385]](_0xa132x12)],this[_0x4e14[1957]](_0xa132xa,_0xa132x12,!0));_0xa132x12=this[_0x4e14[1709]](_0xa132xa,!1);null!=_0xa132x12&&(_0xa132x12=_0xa132x5[mxCellPath[_0x4e14[385]](_0xa132x12)],this[_0x4e14[1957]](_0xa132xa,_0xa132x12,!1));};}finally{this[_0x4e14[476]]()};};mxGraphModel[_0x4e14[202]][_0x4e14[1976]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[473]]();try{for(var _0xa132x9=_0xa132x2[_0x4e14[262]](),_0xa132xa=0;_0xa132xa<_0xa132x9;_0xa132xa++){var _0xa132x12=_0xa132x2[_0x4e14[263]](_0xa132xa);if(_0x4e14[279]== typeof _0xa132x12[_0x4e14[1103]]){var _0xa132x13=_0xa132x12[_0x4e14[1103]](),_0xa132x14=null!=_0xa132x13&&(!this[_0x4e14[250]](_0xa132x12)|| !_0xa132x4)?this[_0x4e14[736]](_0xa132x13):null;if(null==_0xa132x14){var _0xa132x15=_0xa132x12[_0x4e14[238]]();_0xa132x15[_0x4e14[1945]](_0xa132x13);_0xa132x15[_0x4e14[1957]](_0xa132x12[_0x4e14[1709]](!0),!0);_0xa132x15[_0x4e14[1957]](_0xa132x12[_0x4e14[1709]](!1),!1);_0xa132x14=_0xa132x3[_0x4e14[1937]](_0xa132x15);this[_0x4e14[1941]](_0xa132x14);};_0xa132x5[mxCellPath[_0x4e14[385]](_0xa132x12)]=_0xa132x14;this[_0x4e14[1976]](_0xa132x12,_0xa132x14,_0xa132x4,_0xa132x5);};}}finally{this[_0x4e14[476]]()};};mxGraphModel[_0x4e14[202]][_0x4e14[1977]]=function(_0xa132x2){var _0xa132x3=[];if(null!=_0xa132x2){for(var _0xa132x4={},_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){var _0xa132x9=this[_0x4e14[1197]](_0xa132x2[_0xa132x5]);if(null!=_0xa132x9){var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x9);null==_0xa132x4[_0xa132xa]&&(_0xa132x4[_0xa132xa]=_0xa132x9,_0xa132x3[_0x4e14[207]](_0xa132x9));};}};return _0xa132x3;};mxGraphModel[_0x4e14[202]][_0x4e14[1978]]=function(_0xa132x2){return null!=_0xa132x2?this[_0x4e14[899]]([_0xa132x2],!0)[0]:null};mxGraphModel[_0x4e14[202]][_0x4e14[899]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4={},_0xa132x5=[],_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){null!=_0xa132x2[_0xa132x9]?_0xa132x5[_0x4e14[207]](this[_0x4e14[1979]](_0xa132x2[_0xa132x9],_0xa132x4,_0xa132x3)):_0xa132x5[_0x4e14[207]](null)};for(_0xa132x9=0;_0xa132x9<_0xa132x5[_0x4e14[67]];_0xa132x9++){null!=_0xa132x5[_0xa132x9]&&this[_0x4e14[1980]](_0xa132x5[_0xa132x9],_0xa132x2[_0xa132x9],_0xa132x4)};return _0xa132x5;};mxGraphModel[_0x4e14[202]][_0x4e14[1979]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1981]](_0xa132x2);_0xa132x3[mxObjectIdentity[_0x4e14[203]](_0xa132x2)]=_0xa132x5;if(_0xa132x4){_0xa132x4=this[_0x4e14[262]](_0xa132x2);for(var _0xa132x9=0;_0xa132x9<_0xa132x4;_0xa132x9++){var _0xa132xa=this[_0x4e14[1979]](this[_0x4e14[263]](_0xa132x2,_0xa132x9),_0xa132x3,!0);_0xa132x5[_0x4e14[1937]](_0xa132xa);};};return _0xa132x5;};mxGraphModel[_0x4e14[202]][_0x4e14[1981]]=function(_0xa132x2){return _0xa132x2[_0x4e14[238]]()};mxGraphModel[_0x4e14[202]][_0x4e14[1980]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1709]](_0xa132x3,!0);null!=_0xa132x5&&(_0xa132x5=_0xa132x4[mxObjectIdentity[_0x4e14[203]](_0xa132x5)],null!=_0xa132x5&&_0xa132x5[_0x4e14[1960]](_0xa132x2,!0));_0xa132x5=this[_0x4e14[1709]](_0xa132x3,!1);null!=_0xa132x5&&(_0xa132x5=_0xa132x4[mxObjectIdentity[_0x4e14[203]](_0xa132x5)],null!=_0xa132x5&&_0xa132x5[_0x4e14[1960]](_0xa132x2,!1));for(var _0xa132x5=this[_0x4e14[262]](_0xa132x2),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){this[_0x4e14[1980]](this[_0x4e14[263]](_0xa132x2,_0xa132x9),this[_0x4e14[263]](_0xa132x3,_0xa132x9),_0xa132x4)};};function mxRootChange(_0xa132x2,_0xa132x3){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[257]]=this[_0x4e14[813]]=_0xa132x3;}mxRootChange[_0x4e14[202]][_0x4e14[350]]=function(){this[_0x4e14[813]]=this[_0x4e14[257]];this[_0x4e14[257]]=this[_0x4e14[251]][_0x4e14[1940]](this[_0x4e14[257]]);};function mxChildChange(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[257]]=this[_0x4e14[1101]]=_0xa132x3;this[_0x4e14[247]]=_0xa132x4;this[_0x4e14[1982]]=this[_0x4e14[1983]]=_0xa132x5;}mxChildChange[_0x4e14[202]][_0x4e14[350]]=function(){var _0xa132x2=this[_0x4e14[251]][_0x4e14[1197]](this[_0x4e14[247]]),_0xa132x3=null!=_0xa132x2?_0xa132x2[_0x4e14[1738]](this[_0x4e14[247]]):0;null==this[_0x4e14[257]]&&this[_0x4e14[807]](this[_0x4e14[247]],!1);_0xa132x2=this[_0x4e14[251]][_0x4e14[1952]](this[_0x4e14[247]],this[_0x4e14[257]],this[_0x4e14[1982]]);null!=this[_0x4e14[257]]&&this[_0x4e14[807]](this[_0x4e14[247]],!0);this[_0x4e14[1101]]=this[_0x4e14[257]];this[_0x4e14[257]]=_0xa132x2;this[_0x4e14[1983]]=this[_0x4e14[1982]];this[_0x4e14[1982]]=_0xa132x3;};mxChildChange[_0x4e14[202]][_0x4e14[807]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;var _0xa132x4=_0xa132x2[_0x4e14[1709]](!0),_0xa132x5=_0xa132x2[_0x4e14[1709]](!1);null!=_0xa132x4&&(_0xa132x3?this[_0x4e14[251]][_0x4e14[1959]](_0xa132x2,_0xa132x4,!0):this[_0x4e14[251]][_0x4e14[1959]](_0xa132x2,null,!0));null!=_0xa132x5&&(_0xa132x3?this[_0x4e14[251]][_0x4e14[1959]](_0xa132x2,_0xa132x5,!1):this[_0x4e14[251]][_0x4e14[1959]](_0xa132x2,null,!1));_0xa132x2[_0x4e14[1957]](_0xa132x4,!0);_0xa132x2[_0x4e14[1957]](_0xa132x5,!1);_0xa132x4=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2);for(_0xa132x5=0;_0xa132x5<_0xa132x4;_0xa132x5++){this[_0x4e14[807]](this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,_0xa132x5),_0xa132x3)};};function mxTerminalChange(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[246]]=_0xa132x3;this[_0x4e14[257]]=this[_0x4e14[1984]]=_0xa132x4;this[_0x4e14[1097]]=_0xa132x5;}mxTerminalChange[_0x4e14[202]][_0x4e14[350]]=function(){this[_0x4e14[1984]]=this[_0x4e14[257]];this[_0x4e14[257]]=this[_0x4e14[251]][_0x4e14[1959]](this[_0x4e14[246]],this[_0x4e14[257]],this[_0x4e14[1097]]);};function mxValueChange(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[246]]=_0xa132x3;this[_0x4e14[257]]=this[_0x4e14[131]]=_0xa132x4;}mxValueChange[_0x4e14[202]][_0x4e14[350]]=function(){this[_0x4e14[131]]=this[_0x4e14[257]];this[_0x4e14[257]]=this[_0x4e14[251]][_0x4e14[1967]](this[_0x4e14[246]],this[_0x4e14[257]]);};function mxStyleChange(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[246]]=_0xa132x3;this[_0x4e14[257]]=this[_0x4e14[124]]=_0xa132x4;}mxStyleChange[_0x4e14[202]][_0x4e14[350]]=function(){this[_0x4e14[124]]=this[_0x4e14[257]];this[_0x4e14[257]]=this[_0x4e14[251]][_0x4e14[1970]](this[_0x4e14[246]],this[_0x4e14[257]]);};function mxGeometryChange(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[246]]=_0xa132x3;this[_0x4e14[257]]=this[_0x4e14[256]]=_0xa132x4;}mxGeometryChange[_0x4e14[202]][_0x4e14[350]]=function(){this[_0x4e14[256]]=this[_0x4e14[257]];this[_0x4e14[257]]=this[_0x4e14[251]][_0x4e14[1969]](this[_0x4e14[246]],this[_0x4e14[257]]);};function mxCollapseChange(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[246]]=_0xa132x3;this[_0x4e14[257]]=this[_0x4e14[1985]]=_0xa132x4;}mxCollapseChange[_0x4e14[202]][_0x4e14[350]]=function(){this[_0x4e14[1985]]=this[_0x4e14[257]];this[_0x4e14[257]]=this[_0x4e14[251]][_0x4e14[1973]](this[_0x4e14[246]],this[_0x4e14[257]]);};function mxVisibleChange(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[251]]=_0xa132x2;this[_0x4e14[246]]=_0xa132x3;this[_0x4e14[257]]=this[_0x4e14[189]]=_0xa132x4;}mxVisibleChange[_0x4e14[202]][_0x4e14[350]]=function(){this[_0x4e14[189]]=this[_0x4e14[257]];this[_0x4e14[257]]=this[_0x4e14[251]][_0x4e14[1974]](this[_0x4e14[246]],this[_0x4e14[257]]);};function mxCellAttributeChange(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[246]]=_0xa132x2;this[_0x4e14[1986]]=_0xa132x3;this[_0x4e14[257]]=this[_0x4e14[131]]=_0xa132x4;}mxCellAttributeChange[_0x4e14[202]][_0x4e14[350]]=function(){var _0xa132x2=this[_0x4e14[246]][_0x4e14[284]](this[_0x4e14[1986]]);null==this[_0x4e14[257]]?this[_0x4e14[246]][_0x4e14[131]][_0x4e14[1390]](this[_0x4e14[1986]]):this[_0x4e14[246]][_0x4e14[57]](this[_0x4e14[1986]],this[_0x4e14[257]]);this[_0x4e14[257]]=_0xa132x2;};function mxCell(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[131]]=_0xa132x2;this[_0x4e14[1724]](_0xa132x3);this[_0x4e14[475]](_0xa132x4);if(null!=this[_0x4e14[1987]]){this[_0x4e14[1987]]()};}mxCell[_0x4e14[202]][_0x4e14[1363]]=null;mxCell[_0x4e14[202]][_0x4e14[131]]=null;mxCell[_0x4e14[202]][_0x4e14[256]]=null;mxCell[_0x4e14[202]][_0x4e14[124]]=null;mxCell[_0x4e14[202]][_0x4e14[1988]]= !1;mxCell[_0x4e14[202]][_0x4e14[1989]]= !1;mxCell[_0x4e14[202]][_0x4e14[1990]]= !0;mxCell[_0x4e14[202]][_0x4e14[189]]= !0;mxCell[_0x4e14[202]][_0x4e14[1985]]= !1;mxCell[_0x4e14[202]][_0x4e14[1101]]=null;mxCell[_0x4e14[202]][_0x4e14[1097]]=null;mxCell[_0x4e14[202]][_0x4e14[772]]=null;mxCell[_0x4e14[202]][_0x4e14[1954]]=null;mxCell[_0x4e14[202]][_0x4e14[1842]]=null;mxCell[_0x4e14[202]][_0x4e14[1991]]=_0x4e14[1992][_0x4e14[224]](_0x4e14[185]);mxCell[_0x4e14[202]][_0x4e14[1103]]=function(){return this[_0x4e14[1363]]};mxCell[_0x4e14[202]][_0x4e14[1945]]=function(_0xa132x2){this[_0x4e14[1363]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[433]]=function(){return this[_0x4e14[131]]};mxCell[_0x4e14[202]][_0x4e14[1966]]=function(_0xa132x2){this[_0x4e14[131]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[1968]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[433]]();this[_0x4e14[1966]](_0xa132x2);return _0xa132x3;};mxCell[_0x4e14[202]][_0x4e14[1721]]=function(){return this[_0x4e14[256]]};mxCell[_0x4e14[202]][_0x4e14[1724]]=function(_0xa132x2){this[_0x4e14[256]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[474]]=function(){return this[_0x4e14[124]]};mxCell[_0x4e14[202]][_0x4e14[475]]=function(_0xa132x2){this[_0x4e14[124]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[1193]]=function(){return this[_0x4e14[1988]]};mxCell[_0x4e14[202]][_0x4e14[1993]]=function(_0xa132x2){this[_0x4e14[1988]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[250]]=function(){return this[_0x4e14[1989]]};mxCell[_0x4e14[202]][_0x4e14[1994]]=function(_0xa132x2){this[_0x4e14[1989]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[1965]]=function(){return this[_0x4e14[1990]]};mxCell[_0x4e14[202]][_0x4e14[1995]]=function(_0xa132x2){this[_0x4e14[1990]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[174]]=function(){return this[_0x4e14[189]]};mxCell[_0x4e14[202]][_0x4e14[175]]=function(_0xa132x2){this[_0x4e14[189]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[1971]]=function(){return this[_0x4e14[1985]]};mxCell[_0x4e14[202]][_0x4e14[1972]]=function(_0xa132x2){this[_0x4e14[1985]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[1197]]=function(){return this[_0x4e14[1101]]};mxCell[_0x4e14[202]][_0x4e14[1996]]=function(_0xa132x2){this[_0x4e14[1101]]=_0xa132x2};mxCell[_0x4e14[202]][_0x4e14[1709]]=function(_0xa132x2){return _0xa132x2?this[_0x4e14[1097]]:this[_0x4e14[772]]};mxCell[_0x4e14[202]][_0x4e14[1957]]=function(_0xa132x2,_0xa132x3){_0xa132x3?this[_0x4e14[1097]]=_0xa132x2:this[_0x4e14[772]]=_0xa132x2;return _0xa132x2;};mxCell[_0x4e14[202]][_0x4e14[262]]=function(){return null==this[_0x4e14[1954]]?0:this[_0x4e14[1954]][_0x4e14[67]]};mxCell[_0x4e14[202]][_0x4e14[1738]]=function(_0xa132x2){return mxUtils[_0x4e14[2]](this[_0x4e14[1954]],_0xa132x2)};mxCell[_0x4e14[202]][_0x4e14[263]]=function(_0xa132x2){return null==this[_0x4e14[1954]]?null:this[_0x4e14[1954]][_0xa132x2]};mxCell[_0x4e14[202]][_0x4e14[1937]]=function(_0xa132x2,_0xa132x3){null!=_0xa132x2&&(null==_0xa132x3&&(_0xa132x3=this[_0x4e14[262]](),_0xa132x2[_0x4e14[1197]]()==this&&_0xa132x3--),_0xa132x2[_0x4e14[1997]](),_0xa132x2[_0x4e14[1996]](this),null==this[_0x4e14[1954]]?(this[_0x4e14[1954]]=[],this[_0x4e14[1954]][_0x4e14[207]](_0xa132x2)):this[_0x4e14[1954]][_0x4e14[300]](_0xa132x3,0,_0xa132x2));return _0xa132x2;};mxCell[_0x4e14[202]][_0x4e14[205]]=function(_0xa132x2){var _0xa132x3=null;null!=this[_0x4e14[1954]]&&0<=_0xa132x2&&(_0xa132x3=this[_0x4e14[263]](_0xa132x2),null!=_0xa132x3&&(this[_0x4e14[1954]][_0x4e14[300]](_0xa132x2,1),_0xa132x3[_0x4e14[1996]](null)));return _0xa132x3;};mxCell[_0x4e14[202]][_0x4e14[1997]]=function(){if(null!=this[_0x4e14[1101]]){var _0xa132x2=this[_0x4e14[1101]][_0x4e14[1738]](this);this[_0x4e14[1101]][_0x4e14[205]](_0xa132x2);}};mxCell[_0x4e14[202]][_0x4e14[1707]]=function(){return null==this[_0x4e14[1842]]?0:this[_0x4e14[1842]][_0x4e14[67]]};mxCell[_0x4e14[202]][_0x4e14[1998]]=function(_0xa132x2){return mxUtils[_0x4e14[2]](this[_0x4e14[1842]],_0xa132x2)};mxCell[_0x4e14[202]][_0x4e14[1708]]=function(_0xa132x2){return null==this[_0x4e14[1842]]?null:this[_0x4e14[1842]][_0xa132x2]};mxCell[_0x4e14[202]][_0x4e14[1960]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&(_0xa132x2[_0x4e14[1999]](_0xa132x3),_0xa132x2[_0x4e14[1957]](this,_0xa132x3),null==this[_0x4e14[1842]]||_0xa132x2[_0x4e14[1709]](!_0xa132x3)!=this||0>mxUtils[_0x4e14[2]](this[_0x4e14[1842]],_0xa132x2))){null==this[_0x4e14[1842]]&&(this[_0x4e14[1842]]=[]),this[_0x4e14[1842]][_0x4e14[207]](_0xa132x2)};return _0xa132x2;};mxCell[_0x4e14[202]][_0x4e14[1961]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2){if(_0xa132x2[_0x4e14[1709]](!_0xa132x3)!=this&&null!=this[_0x4e14[1842]]){var _0xa132x4=this[_0x4e14[1998]](_0xa132x2);0<=_0xa132x4&&this[_0x4e14[1842]][_0x4e14[300]](_0xa132x4,1);};_0xa132x2[_0x4e14[1957]](null,_0xa132x3);};return _0xa132x2;};mxCell[_0x4e14[202]][_0x4e14[1999]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1709]](_0xa132x2);null!=_0xa132x3&&_0xa132x3[_0x4e14[1961]](this,_0xa132x2);};mxCell[_0x4e14[202]][_0x4e14[284]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[433]]();return (null!=_0xa132x4&&_0xa132x4[_0x4e14[288]]==mxConstants[_0x4e14[289]]?_0xa132x4[_0x4e14[284]](_0xa132x2):null)||_0xa132x3;};mxCell[_0x4e14[202]][_0x4e14[57]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[433]]();null!=_0xa132x4&&_0xa132x4[_0x4e14[288]]==mxConstants[_0x4e14[289]]&&_0xa132x4[_0x4e14[57]](_0xa132x2,_0xa132x3);};mxCell[_0x4e14[202]][_0x4e14[238]]=function(){var _0xa132x2=mxUtils[_0x4e14[238]](this,this[_0x4e14[1991]]);_0xa132x2[_0x4e14[1966]](this[_0x4e14[2000]]());return _0xa132x2;};mxCell[_0x4e14[202]][_0x4e14[2000]]=function(){var _0xa132x2=this[_0x4e14[433]]();null!=_0xa132x2&&(_0x4e14[279]== typeof _0xa132x2[_0x4e14[238]]?_0xa132x2=_0xa132x2[_0x4e14[238]]():isNaN(_0xa132x2[_0x4e14[288]])||(_0xa132x2=_0xa132x2[_0x4e14[511]](!0)));return _0xa132x2;};function mxGeometry(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxRectangle[_0x4e14[239]](this,_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5)}mxGeometry[_0x4e14[202]]= new mxRectangle;mxGeometry[_0x4e14[202]][_0x4e14[196]]=mxGeometry;mxGeometry[_0x4e14[202]][_0x4e14[2001]]= !0;mxGeometry[_0x4e14[202]][_0x4e14[2002]]=null;mxGeometry[_0x4e14[202]][_0x4e14[2003]]=null;mxGeometry[_0x4e14[202]][_0x4e14[2004]]=null;mxGeometry[_0x4e14[202]][_0x4e14[1525]]=null;mxGeometry[_0x4e14[202]][_0x4e14[1368]]=null;mxGeometry[_0x4e14[202]][_0x4e14[1500]]= !1;mxGeometry[_0x4e14[202]][_0x4e14[2005]]=function(){if(null!=this[_0x4e14[2002]]){var _0xa132x2= new mxRectangle(this[_0x4e14[235]],this[_0x4e14[236]],this[_0x4e14[117]],this[_0x4e14[119]]);this[_0x4e14[235]]=this[_0x4e14[2002]][_0x4e14[235]];this[_0x4e14[236]]=this[_0x4e14[2002]][_0x4e14[236]];this[_0x4e14[117]]=this[_0x4e14[2002]][_0x4e14[117]];this[_0x4e14[119]]=this[_0x4e14[2002]][_0x4e14[119]];this[_0x4e14[2002]]=_0xa132x2;}};mxGeometry[_0x4e14[202]][_0x4e14[2006]]=function(_0xa132x2){return _0xa132x2?this[_0x4e14[2003]]:this[_0x4e14[2004]]};mxGeometry[_0x4e14[202]][_0x4e14[2007]]=function(_0xa132x2,_0xa132x3){_0xa132x3?this[_0x4e14[2003]]=_0xa132x2:this[_0x4e14[2004]]=_0xa132x2;return _0xa132x2;};mxGeometry[_0x4e14[202]][_0x4e14[513]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[238]]();this[_0x4e14[1500]]||(this[_0x4e14[235]]+=_0xa132x2,this[_0x4e14[236]]+=_0xa132x3);null!=this[_0x4e14[2003]]&&(this[_0x4e14[2003]][_0x4e14[235]]+=_0xa132x2,this[_0x4e14[2003]][_0x4e14[236]]+=_0xa132x3);null!=this[_0x4e14[2004]]&&(this[_0x4e14[2004]][_0x4e14[235]]+=_0xa132x2,this[_0x4e14[2004]][_0x4e14[236]]+=_0xa132x3);if(this[_0x4e14[2001]]&&null!=this[_0x4e14[1525]]){for(var _0xa132x4=this[_0x4e14[1525]][_0x4e14[67]],_0xa132x5=0;_0xa132x5<_0xa132x4;_0xa132x5++){var _0xa132x9=this[_0x4e14[1525]][_0xa132x5];null!=_0xa132x9&&(_0xa132x9[_0x4e14[235]]+=_0xa132x2,_0xa132x9[_0x4e14[236]]+=_0xa132x3);}};};var mxCellPath={PATH_SEPARATOR:_0x4e14[87],create:function(_0xa132x2){var _0xa132x3=_0x4e14[110];if(null!=_0xa132x2){for(var _0xa132x4=_0xa132x2[_0x4e14[1197]]();null!=_0xa132x4;){_0xa132x3=_0xa132x4[_0x4e14[1738]](_0xa132x2)+mxCellPath[_0x4e14[1950]]+_0xa132x3,_0xa132x2=_0xa132x4,_0xa132x4=_0xa132x2[_0x4e14[1197]]()}};_0xa132x2=_0xa132x3[_0x4e14[67]];1<_0xa132x2&&(_0xa132x3=_0xa132x3[_0x4e14[85]](0,_0xa132x2-1));return _0xa132x3;},getParentPath:function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[1122]](mxCellPath.PATH_SEPARATOR);if(0<=_0xa132x3){return _0xa132x2[_0x4e14[85]](0,_0xa132x3)};if(0<_0xa132x2[_0x4e14[67]]){return _0x4e14[110]};};return null;},resolve:function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2;if(null!=_0xa132x3){for(var _0xa132x5=_0xa132x3[_0x4e14[224]](mxCellPath.PATH_SEPARATOR),_0xa132x9=0;_0xa132x9<_0xa132x5[_0x4e14[67]];_0xa132x9++){_0xa132x4=_0xa132x4[_0x4e14[263]](parseInt(_0xa132x5[_0xa132x9]))}};return _0xa132x4;},compare:function(_0xa132x2,_0xa132x3){for(var _0xa132x4=Math[_0x4e14[243]](_0xa132x2[_0x4e14[67]],_0xa132x3[_0x4e14[67]]),_0xa132x5=0,_0xa132x9=0;_0xa132x9<_0xa132x4;_0xa132x9++){if(_0xa132x2[_0xa132x9]!=_0xa132x3[_0xa132x9]){0==_0xa132x2[_0xa132x9][_0x4e14[67]]||0==_0xa132x3[_0xa132x9][_0x4e14[67]]?_0xa132x5=_0xa132x2[_0xa132x9]==_0xa132x3[_0xa132x9]?0:_0xa132x2[_0xa132x9]>_0xa132x3[_0xa132x9]?1:-1:(_0xa132x4=parseInt(_0xa132x2[_0xa132x9]),_0xa132x9=parseInt(_0xa132x3[_0xa132x9]),_0xa132x5=_0xa132x4==_0xa132x9?0:_0xa132x4>_0xa132x9?1:-1);break;}};0==_0xa132x5&&(_0xa132x4=_0xa132x2[_0x4e14[67]],_0xa132x9=_0xa132x3[_0x4e14[67]],_0xa132x4!=_0xa132x9&&(_0xa132x5=_0xa132x4>_0xa132x9?1:-1));return _0xa132x5;}},mxPerimeter={RectanglePerimeter:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3=_0xa132x2[_0x4e14[241]]();var _0xa132x9=_0xa132x2[_0x4e14[242]](),_0xa132xa=Math[_0x4e14[429]](_0xa132x4[_0x4e14[236]]-_0xa132x9,_0xa132x4[_0x4e14[235]]-_0xa132x3),_0xa132x12= new mxPoint(0,0),_0xa132x13=Math[_0x4e14[424]],_0xa132x14=Math[_0x4e14[424]]/2-_0xa132xa,_0xa132x15=Math[_0x4e14[429]](_0xa132x2[_0x4e14[119]],_0xa132x2[_0x4e14[117]]);_0xa132xa<-_0xa132x13+_0xa132x15||_0xa132xa>_0xa132x13-_0xa132x15?(_0xa132x12[_0x4e14[235]]=_0xa132x2[_0x4e14[235]],_0xa132x12[_0x4e14[236]]=_0xa132x9-_0xa132x2[_0x4e14[117]]*Math[_0x4e14[2008]](_0xa132xa)/2):_0xa132xa<-_0xa132x15?(_0xa132x12[_0x4e14[236]]=_0xa132x2[_0x4e14[236]],_0xa132x12[_0x4e14[235]]=_0xa132x3-_0xa132x2[_0x4e14[119]]*Math[_0x4e14[2008]](_0xa132x14)/2):_0xa132xa<_0xa132x15?(_0xa132x12[_0x4e14[235]]=_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]],_0xa132x12[_0x4e14[236]]=_0xa132x9+_0xa132x2[_0x4e14[117]]*Math[_0x4e14[2008]](_0xa132xa)/2):(_0xa132x12[_0x4e14[236]]=_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]],_0xa132x12[_0x4e14[235]]=_0xa132x3+_0xa132x2[_0x4e14[119]]*Math[_0x4e14[2008]](_0xa132x14)/2);_0xa132x5&&(_0xa132x4[_0x4e14[235]]>=_0xa132x2[_0x4e14[235]]&&_0xa132x4[_0x4e14[235]]<=_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]?_0xa132x12[_0x4e14[235]]=_0xa132x4[_0x4e14[235]]:_0xa132x4[_0x4e14[236]]>=_0xa132x2[_0x4e14[236]]&&_0xa132x4[_0x4e14[236]]<=_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]&&(_0xa132x12[_0x4e14[236]]=_0xa132x4[_0x4e14[236]]),_0xa132x4[_0x4e14[235]]<_0xa132x2[_0x4e14[235]]?_0xa132x12[_0x4e14[235]]=_0xa132x2[_0x4e14[235]]:_0xa132x4[_0x4e14[235]]>_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]&&(_0xa132x12[_0x4e14[235]]=_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]),_0xa132x4[_0x4e14[236]]<_0xa132x2[_0x4e14[236]]?_0xa132x12[_0x4e14[236]]=_0xa132x2[_0x4e14[236]]:_0xa132x4[_0x4e14[236]]>_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]&&(_0xa132x12[_0x4e14[236]]=_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]));return _0xa132x12;},EllipsePerimeter:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=_0xa132x2[_0x4e14[235]],_0xa132xa=_0xa132x2[_0x4e14[236]],_0xa132x12=_0xa132x2[_0x4e14[117]]/2,_0xa132x13=_0xa132x2[_0x4e14[119]]/2,_0xa132x14=_0xa132x9+_0xa132x12,_0xa132x15=_0xa132xa+_0xa132x13;_0xa132x3=_0xa132x4[_0x4e14[235]];_0xa132x4=_0xa132x4[_0x4e14[236]];var _0xa132x16=parseInt(_0xa132x3-_0xa132x14),_0xa132x17=parseInt(_0xa132x4-_0xa132x15);if(0==_0xa132x16&&0!=_0xa132x17){return  new mxPoint(_0xa132x14,_0xa132x15+_0xa132x13*_0xa132x17/Math[_0x4e14[425]](_0xa132x17))};if(0==_0xa132x16&&0==_0xa132x17){return  new mxPoint(_0xa132x3,_0xa132x4)};if(_0xa132x5){if(_0xa132x4>=_0xa132xa&&_0xa132x4<=_0xa132xa+_0xa132x2[_0x4e14[119]]){return _0xa132x2=_0xa132x4-_0xa132x15,_0xa132x2=Math[_0x4e14[428]](_0xa132x12*_0xa132x12*(1-_0xa132x2*_0xa132x2/(_0xa132x13*_0xa132x13)))||0,_0xa132x3<=_0xa132x9&&(_0xa132x2= -_0xa132x2), new mxPoint(_0xa132x14+_0xa132x2,_0xa132x4)};if(_0xa132x3>=_0xa132x9&&_0xa132x3<=_0xa132x9+_0xa132x2[_0x4e14[117]]){return _0xa132x2=_0xa132x3-_0xa132x14,_0xa132x2=Math[_0x4e14[428]](_0xa132x13*_0xa132x13*(1-_0xa132x2*_0xa132x2/(_0xa132x12*_0xa132x12)))||0,_0xa132x4<=_0xa132xa&&(_0xa132x2= -_0xa132x2), new mxPoint(_0xa132x3,_0xa132x15+_0xa132x2)};};_0xa132x9=_0xa132x17/_0xa132x16;_0xa132x15-=_0xa132x9*_0xa132x14;_0xa132xa=_0xa132x12*_0xa132x12*_0xa132x9*_0xa132x9+_0xa132x13*_0xa132x13;_0xa132x2=-2*_0xa132x14*_0xa132xa;_0xa132x13=Math[_0x4e14[428]](_0xa132x2*_0xa132x2-4*_0xa132xa*(_0xa132x12*_0xa132x12*_0xa132x9*_0xa132x9*_0xa132x14*_0xa132x14+_0xa132x13*_0xa132x13*_0xa132x14*_0xa132x14-_0xa132x12*_0xa132x12*_0xa132x13*_0xa132x13));_0xa132x12=(-_0xa132x2+_0xa132x13)/(2*_0xa132xa);_0xa132x13=(-_0xa132x2-_0xa132x13)/(2*_0xa132xa);_0xa132x14=_0xa132x9*_0xa132x12+_0xa132x15;_0xa132x15=_0xa132x9*_0xa132x13+_0xa132x15;_0xa132x9=Math[_0x4e14[428]](Math[_0x4e14[2009]](_0xa132x12-_0xa132x3,2)+Math[_0x4e14[2009]](_0xa132x14-_0xa132x4,2));_0xa132x3=Math[_0x4e14[428]](Math[_0x4e14[2009]](_0xa132x13-_0xa132x3,2)+Math[_0x4e14[2009]](_0xa132x15-_0xa132x4,2));_0xa132xa=_0xa132x4=0;_0xa132x9<_0xa132x3?(_0xa132x4=_0xa132x12,_0xa132xa=_0xa132x14):(_0xa132x4=_0xa132x13,_0xa132xa=_0xa132x15);return  new mxPoint(_0xa132x4,_0xa132xa);},RhombusPerimeter:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3=_0xa132x2[_0x4e14[235]];var _0xa132x9=_0xa132x2[_0x4e14[236]],_0xa132xa=_0xa132x2[_0x4e14[117]];_0xa132x2=_0xa132x2[_0x4e14[119]];var _0xa132x12=_0xa132x3+_0xa132xa/2,_0xa132x13=_0xa132x9+_0xa132x2/2,_0xa132x14=_0xa132x4[_0x4e14[235]];_0xa132x4=_0xa132x4[_0x4e14[236]];if(_0xa132x12==_0xa132x14){return _0xa132x13>_0xa132x4? new mxPoint(_0xa132x12,_0xa132x9): new mxPoint(_0xa132x12,_0xa132x9+_0xa132x2)};if(_0xa132x13==_0xa132x4){return _0xa132x12>_0xa132x14? new mxPoint(_0xa132x3,_0xa132x13): new mxPoint(_0xa132x3+_0xa132xa,_0xa132x13)};var _0xa132x15=_0xa132x12,_0xa132x16=_0xa132x13;_0xa132x5&&(_0xa132x14>=_0xa132x3&&_0xa132x14<=_0xa132x3+_0xa132xa?_0xa132x15=_0xa132x14:_0xa132x4>=_0xa132x9&&_0xa132x4<=_0xa132x9+_0xa132x2&&(_0xa132x16=_0xa132x4));return _0xa132x14<_0xa132x12?_0xa132x4<_0xa132x13?mxUtils[_0x4e14[2010]](_0xa132x14,_0xa132x4,_0xa132x15,_0xa132x16,_0xa132x12,_0xa132x9,_0xa132x3,_0xa132x13):mxUtils[_0x4e14[2010]](_0xa132x14,_0xa132x4,_0xa132x15,_0xa132x16,_0xa132x12,_0xa132x9+_0xa132x2,_0xa132x3,_0xa132x13):_0xa132x4<_0xa132x13?mxUtils[_0x4e14[2010]](_0xa132x14,_0xa132x4,_0xa132x15,_0xa132x16,_0xa132x12,_0xa132x9,_0xa132x3+_0xa132xa,_0xa132x13):mxUtils[_0x4e14[2010]](_0xa132x14,_0xa132x4,_0xa132x15,_0xa132x16,_0xa132x12,_0xa132x9+_0xa132x2,_0xa132x3+_0xa132xa,_0xa132x13);},TrianglePerimeter:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3=null!=_0xa132x3?_0xa132x3[_0x4e14[124]][mxConstants[_0x4e14[2011]]]:null;var _0xa132x9=_0xa132x3==mxConstants[_0x4e14[1358]]||_0xa132x3==mxConstants[_0x4e14[1354]],_0xa132xa=_0xa132x2[_0x4e14[235]],_0xa132x12=_0xa132x2[_0x4e14[236]],_0xa132x13=_0xa132x2[_0x4e14[117]];_0xa132x2=_0xa132x2[_0x4e14[119]];var _0xa132x14=_0xa132xa+_0xa132x13/2,_0xa132x15=_0xa132x12+_0xa132x2/2,_0xa132x16= new mxPoint(_0xa132xa,_0xa132x12),_0xa132x17= new mxPoint(_0xa132xa+_0xa132x13,_0xa132x15),_0xa132x18= new mxPoint(_0xa132xa,_0xa132x12+_0xa132x2);_0xa132x3==mxConstants[_0x4e14[1358]]?(_0xa132x16=_0xa132x18,_0xa132x17= new mxPoint(_0xa132x14,_0xa132x12),_0xa132x18= new mxPoint(_0xa132xa+_0xa132x13,_0xa132x12+_0xa132x2)):_0xa132x3==mxConstants[_0x4e14[1354]]?(_0xa132x17= new mxPoint(_0xa132x14,_0xa132x12+_0xa132x2),_0xa132x18= new mxPoint(_0xa132xa+_0xa132x13,_0xa132x12)):_0xa132x3==mxConstants[_0x4e14[1359]]&&(_0xa132x16= new mxPoint(_0xa132xa+_0xa132x13,_0xa132x12),_0xa132x17= new mxPoint(_0xa132xa,_0xa132x15),_0xa132x18= new mxPoint(_0xa132xa+_0xa132x13,_0xa132x12+_0xa132x2));var _0xa132x19=_0xa132x4[_0x4e14[235]]-_0xa132x14,_0xa132x1a=_0xa132x4[_0x4e14[236]]-_0xa132x15,_0xa132x19=_0xa132x9?Math[_0x4e14[429]](_0xa132x19,_0xa132x1a):Math[_0x4e14[429]](_0xa132x1a,_0xa132x19),_0xa132x1b=_0xa132x9?Math[_0x4e14[429]](_0xa132x13,_0xa132x2):Math[_0x4e14[429]](_0xa132x2,_0xa132x13),_0xa132x1a=!1,_0xa132x1a=_0xa132x3==mxConstants[_0x4e14[1358]]||_0xa132x3==mxConstants[_0x4e14[1359]]?_0xa132x19>-_0xa132x1b&&_0xa132x19<_0xa132x1b:_0xa132x19<-Math[_0x4e14[424]]+_0xa132x1b||_0xa132x19>Math[_0x4e14[424]]-_0xa132x1b,_0xa132x1b=null;_0xa132x1a?_0xa132x1b=_0xa132x5&&(_0xa132x9&&_0xa132x4[_0x4e14[235]]>=_0xa132x16[_0x4e14[235]]&&_0xa132x4[_0x4e14[235]]<=_0xa132x18[_0x4e14[235]]||!_0xa132x9&&_0xa132x4[_0x4e14[236]]>=_0xa132x16[_0x4e14[236]]&&_0xa132x4[_0x4e14[236]]<=_0xa132x18[_0x4e14[236]])?_0xa132x9? new mxPoint(_0xa132x4[_0x4e14[235]],_0xa132x16[_0x4e14[236]]): new mxPoint(_0xa132x16[_0x4e14[235]],_0xa132x4[_0x4e14[236]]):_0xa132x3==mxConstants[_0x4e14[1358]]? new mxPoint(_0xa132xa+_0xa132x13/2+_0xa132x2*Math[_0x4e14[2008]](_0xa132x19)/2,_0xa132x12+_0xa132x2):_0xa132x3==mxConstants[_0x4e14[1354]]? new mxPoint(_0xa132xa+_0xa132x13/2-_0xa132x2*Math[_0x4e14[2008]](_0xa132x19)/2,_0xa132x12):_0xa132x3==mxConstants[_0x4e14[1359]]? new mxPoint(_0xa132xa+_0xa132x13,_0xa132x12+_0xa132x2/2+_0xa132x13*Math[_0x4e14[2008]](_0xa132x19)/2): new mxPoint(_0xa132xa,_0xa132x12+_0xa132x2/2-_0xa132x13*Math[_0x4e14[2008]](_0xa132x19)/2):(_0xa132x5&&(_0xa132x5= new mxPoint(_0xa132x14,_0xa132x15),_0xa132x4[_0x4e14[236]]>=_0xa132x12&&_0xa132x4[_0x4e14[236]]<=_0xa132x12+_0xa132x2?(_0xa132x5[_0x4e14[235]]=_0xa132x9?_0xa132x14:_0xa132x3==mxConstants[_0x4e14[1359]]?_0xa132xa+_0xa132x13:_0xa132xa,_0xa132x5[_0x4e14[236]]=_0xa132x4[_0x4e14[236]]):_0xa132x4[_0x4e14[235]]>=_0xa132xa&&_0xa132x4[_0x4e14[235]]<=_0xa132xa+_0xa132x13&&(_0xa132x5[_0x4e14[235]]=_0xa132x4[_0x4e14[235]],_0xa132x5[_0x4e14[236]]=!_0xa132x9?_0xa132x15:_0xa132x3==mxConstants[_0x4e14[1358]]?_0xa132x12+_0xa132x2:_0xa132x12),_0xa132x14=_0xa132x5[_0x4e14[235]],_0xa132x15=_0xa132x5[_0x4e14[236]]),_0xa132x1b=_0xa132x9&&_0xa132x4[_0x4e14[235]]<=_0xa132xa+_0xa132x13/2||!_0xa132x9&&_0xa132x4[_0x4e14[236]]<=_0xa132x12+_0xa132x2/2?mxUtils[_0x4e14[2010]](_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]],_0xa132x14,_0xa132x15,_0xa132x16[_0x4e14[235]],_0xa132x16[_0x4e14[236]],_0xa132x17[_0x4e14[235]],_0xa132x17[_0x4e14[236]]):mxUtils[_0x4e14[2010]](_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]],_0xa132x14,_0xa132x15,_0xa132x17[_0x4e14[235]],_0xa132x17[_0x4e14[236]],_0xa132x18[_0x4e14[235]],_0xa132x18[_0x4e14[236]]));null==_0xa132x1b&&(_0xa132x1b= new mxPoint(_0xa132x14,_0xa132x15));return _0xa132x1b;}};function mxPrintPreview(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[255]]=null!=_0xa132x3?_0xa132x3:1/_0xa132x2[_0x4e14[2012]];this[_0x4e14[467]]=null!=_0xa132x5?_0xa132x5:0;this[_0x4e14[2013]]=null!=_0xa132x4?_0xa132x4:_0xa132x2[_0x4e14[2013]];this[_0x4e14[924]]=null!=_0xa132x13?_0xa132x13:_0x4e14[2014];this[_0x4e14[1732]]=null!=_0xa132x9?_0xa132x9:0;this[_0x4e14[1733]]=null!=_0xa132xa?_0xa132xa:0;this[_0x4e14[1630]]=_0xa132x12;this[_0x4e14[2015]]=null!=_0xa132x14?_0xa132x14:!0;}mxPrintPreview[_0x4e14[202]][_0x4e14[1179]]=null;mxPrintPreview[_0x4e14[202]][_0x4e14[2013]]=null;mxPrintPreview[_0x4e14[202]][_0x4e14[255]]=null;mxPrintPreview[_0x4e14[202]][_0x4e14[467]]=0;mxPrintPreview[_0x4e14[202]][_0x4e14[1732]]=0;mxPrintPreview[_0x4e14[202]][_0x4e14[1733]]=0;mxPrintPreview[_0x4e14[202]][_0x4e14[2016]]= !0;mxPrintPreview[_0x4e14[202]][_0x4e14[2017]]= !1;mxPrintPreview[_0x4e14[202]][_0x4e14[1630]]=null;mxPrintPreview[_0x4e14[202]][_0x4e14[924]]=null;mxPrintPreview[_0x4e14[202]][_0x4e14[2015]]=null;mxPrintPreview[_0x4e14[202]][_0x4e14[2018]]=null;mxPrintPreview[_0x4e14[202]][_0x4e14[2019]]=0;mxPrintPreview[_0x4e14[202]][_0x4e14[2020]]=function(){return this[_0x4e14[2018]]};mxPrintPreview[_0x4e14[202]][_0x4e14[2021]]=function(){var _0xa132x2=_0x4e14[110];8==document[_0x4e14[5]]&&(_0xa132x2=_0x4e14[2022]);return _0xa132x2;};mxPrintPreview[_0x4e14[202]][_0x4e14[392]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[259]][_0x4e14[2023]],_0xa132x4=null;try{this[_0x4e14[2017]]&&(this[_0x4e14[1179]][_0x4e14[259]][_0x4e14[2023]]=function(_0xa132x2,_0xa132x3){_0xa132x3[_0x4e14[176]](_0xa132x2[_0x4e14[441]][_0x4e14[2024]]())});if(null==this[_0x4e14[2018]]){this[_0x4e14[2018]]=window[_0x4e14[392]]();var _0xa132x5=this[_0x4e14[2018]][_0x4e14[395]],_0xa132x9=this[_0x4e14[2021]]();null!=_0xa132x9&&0<_0xa132x9[_0x4e14[67]]&&_0xa132x5[_0x4e14[171]](_0xa132x9);_0xa132x5[_0x4e14[171]](_0x4e14[528]);_0xa132x5[_0x4e14[171]](_0x4e14[531]);this[_0x4e14[2025]](_0xa132x5,_0xa132x2);_0xa132x5[_0x4e14[171]](_0x4e14[533]);_0xa132x5[_0x4e14[171]](_0x4e14[2026]);mxClient[_0x4e14[54]](_0x4e14[94],mxClient[_0x4e14[86]]+_0x4e14[95],_0xa132x5);mxClient[_0x4e14[47]]&&(_0xa132x5[_0x4e14[100]][_0x4e14[99]](_0x4e14[6],_0x4e14[97]),_0xa132x5[_0x4e14[100]][_0x4e14[99]](_0x4e14[7],_0x4e14[101]),_0xa132x5[_0x4e14[102]]()[_0x4e14[103]]=_0x4e14[104],mxClient[_0x4e14[54]](_0x4e14[94],mxClient[_0x4e14[86]]+_0x4e14[105],_0xa132x5));var _0xa132xa=this[_0x4e14[1179]][_0x4e14[517]]()[_0x4e14[238]](),_0xa132x12=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[518]](),_0xa132x13=_0xa132x12/this[_0x4e14[255]],_0xa132x14=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[512]]();this[_0x4e14[2016]]||(this[_0x4e14[1732]]=-_0xa132x14[_0x4e14[235]]*this[_0x4e14[255]],this[_0x4e14[1733]]=-_0xa132x14[_0x4e14[236]]*this[_0x4e14[255]],_0xa132xa[_0x4e14[117]]+=_0xa132xa[_0x4e14[235]],_0xa132xa[_0x4e14[119]]+=_0xa132xa[_0x4e14[236]],_0xa132xa[_0x4e14[235]]=0,this[_0x4e14[467]]=_0xa132xa[_0x4e14[236]]=0);_0xa132xa[_0x4e14[117]]/=_0xa132x13;_0xa132xa[_0x4e14[119]]/=_0xa132x13;var _0xa132x15=this[_0x4e14[2013]][_0x4e14[117]]-2*this[_0x4e14[467]],_0xa132x16=this[_0x4e14[2013]][_0x4e14[119]]-2*this[_0x4e14[467]],_0xa132x17=Math[_0x4e14[160]](1,Math[_0x4e14[430]]((_0xa132xa[_0x4e14[117]]+this[_0x4e14[1732]])/_0xa132x15)),_0xa132x18=Math[_0x4e14[160]](1,Math[_0x4e14[430]]((_0xa132xa[_0x4e14[119]]+this[_0x4e14[1733]])/_0xa132x16));this[_0x4e14[2019]]=_0xa132x17*_0xa132x18;var _0xa132x19=mxUtils[_0x4e14[885]](this,function(){if(this[_0x4e14[2015]]&&(1<_0xa132x18||1<_0xa132x17)){var _0xa132x2=this[_0x4e14[2027]](_0xa132x18,_0xa132x17);_0xa132x5[_0x4e14[112]][_0x4e14[62]](_0xa132x2);if(mxClient[_0x4e14[80]]){_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];var _0xa132x3=function(){_0xa132x2[_0x4e14[124]][_0x4e14[125]]=_0xa132x5[_0x4e14[112]][_0x4e14[190]]+10+_0x4e14[168]};mxEvent[_0x4e14[169]](this[_0x4e14[2018]],_0x4e14[276],function(_0xa132x2){_0xa132x3()});mxEvent[_0x4e14[169]](this[_0x4e14[2018]],_0x4e14[129],function(_0xa132x2){_0xa132x3()});};}});_0xa132x2=function(_0xa132x2,_0xa132x3){null!=this[_0x4e14[1630]]&&(_0xa132x2[_0x4e14[124]][_0x4e14[1630]]=this[_0x4e14[1630]],_0xa132x2[_0x4e14[124]][_0x4e14[465]]=_0x4e14[1631],_0xa132x2[_0x4e14[124]][_0x4e14[1629]]=_0x4e14[942]);_0xa132x2[_0x4e14[124]][_0x4e14[1537]]=_0x4e14[1391];_0xa132x3&&(_0xa132x2[_0x4e14[124]][_0x4e14[2028]]=_0x4e14[2029]);mxClient[_0x4e14[80]]?(_0xa132x5[_0x4e14[171]](_0xa132x2[_0x4e14[342]]),_0xa132x2[_0x4e14[265]][_0x4e14[266]](_0xa132x2)):(_0xa132x2[_0x4e14[265]][_0x4e14[266]](_0xa132x2),_0xa132x5[_0x4e14[112]][_0x4e14[62]](_0xa132x2));if(_0xa132x3){var _0xa132x4=_0xa132x5[_0x4e14[55]](_0x4e14[1054]);_0xa132x4[_0x4e14[926]]=_0x4e14[2030];_0xa132x5[_0x4e14[112]][_0x4e14[62]](_0xa132x4);};};var _0xa132x1a=this[_0x4e14[2031]](this[_0x4e14[2013]][_0x4e14[117]],this[_0x4e14[2013]][_0x4e14[119]]);if(null!=_0xa132x1a){for(var _0xa132x1b=0;_0xa132x1b<_0xa132x1a[_0x4e14[67]];_0xa132x1b++){_0xa132x2(_0xa132x1a[_0xa132x1b],!0)}};for(var _0xa132x1c=this[_0x4e14[2032]](this[_0x4e14[2013]][_0x4e14[117]],this[_0x4e14[2013]][_0x4e14[119]]),_0xa132x1b=0;_0xa132x1b<_0xa132x18;_0xa132x1b++){for(var _0xa132x1d=_0xa132x1b*_0xa132x16/this[_0x4e14[255]]-this[_0x4e14[1733]]/this[_0x4e14[255]]+(_0xa132xa[_0x4e14[236]]-_0xa132x14[_0x4e14[236]]*_0xa132x12)/_0xa132x12,_0xa132x1a=0;_0xa132x1a<_0xa132x17;_0xa132x1a++){if(null==this[_0x4e14[2018]]){return null};var _0xa132x1e=_0xa132x1a*_0xa132x15/this[_0x4e14[255]]-this[_0x4e14[1732]]/this[_0x4e14[255]]+(_0xa132xa[_0x4e14[235]]-_0xa132x14[_0x4e14[235]]*_0xa132x12)/_0xa132x12,_0xa132x1f=_0xa132x1b*_0xa132x17+_0xa132x1a+1,_0xa132x4=this[_0x4e14[2034]](this[_0x4e14[2013]][_0x4e14[117]],this[_0x4e14[2013]][_0x4e14[119]],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2033]](-_0xa132x1e,-_0xa132x1d,this[_0x4e14[255]],_0xa132x1f,_0xa132x2)}));_0xa132x4[_0x4e14[57]](_0x4e14[1363],_0x4e14[2035]+_0xa132x1f);_0xa132x2(_0xa132x4,null!=_0xa132x1c||_0xa132x1b<_0xa132x18-1||_0xa132x1a<_0xa132x17-1);}};if(null!=_0xa132x1c){for(_0xa132x1b=0;_0xa132x1b<_0xa132x1c[_0x4e14[67]];_0xa132x1b++){_0xa132x2(_0xa132x1c[_0xa132x1b],_0xa132x1b<_0xa132x1c[_0x4e14[67]])}};_0xa132x5[_0x4e14[171]](_0x4e14[527]);_0xa132x5[_0x4e14[171]](_0x4e14[534]);_0xa132x5[_0x4e14[268]]();_0xa132x19();mxEvent[_0x4e14[762]](_0xa132x5[_0x4e14[112]]);};this[_0x4e14[2018]][_0x4e14[393]]();}catch(y){null!=_0xa132x4&&null!=_0xa132x4[_0x4e14[265]]&&_0xa132x4[_0x4e14[265]][_0x4e14[266]](_0xa132x4)}finally{this[_0x4e14[1179]][_0x4e14[259]][_0x4e14[2023]]=_0xa132x3};return this[_0x4e14[2018]];};mxPrintPreview[_0x4e14[202]][_0x4e14[2025]]=function(_0xa132x2,_0xa132x3){null!=this[_0x4e14[924]]&&_0xa132x2[_0x4e14[171]](_0x4e14[2036]+this[_0x4e14[924]]+_0x4e14[2037]);_0xa132x2[_0x4e14[171]](_0x4e14[2038]);_0xa132x2[_0x4e14[171]](_0x4e14[2039]);_0xa132x2[_0x4e14[171]](_0x4e14[2040]);_0xa132x2[_0x4e14[171]](_0x4e14[2041]);_0xa132x2[_0x4e14[171]](_0x4e14[233]);_0xa132x2[_0x4e14[171]](_0x4e14[2042]);_0xa132x2[_0x4e14[171]](_0x4e14[2043]);_0xa132x2[_0x4e14[171]](_0x4e14[2044]);_0xa132x2[_0x4e14[171]](_0x4e14[2045]);_0xa132x2[_0x4e14[171]](_0x4e14[233]);null!=_0xa132x3&&_0xa132x2[_0x4e14[171]](_0xa132x3);_0xa132x2[_0x4e14[171]](_0x4e14[2046]);};mxPrintPreview[_0x4e14[202]][_0x4e14[2027]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[2018]][_0x4e14[395]],_0xa132x5=_0xa132x4[_0x4e14[55]](_0x4e14[116]);_0xa132x5[_0x4e14[926]]=_0x4e14[2047];_0xa132x5[_0x4e14[57]](_0x4e14[467],_0x4e14[468]);for(var _0xa132x9=_0xa132x4[_0x4e14[55]](_0x4e14[120]),_0xa132xa=0;_0xa132xa<_0xa132x2;_0xa132xa++){for(var _0xa132x12=_0xa132x4[_0x4e14[55]](_0x4e14[121]),_0xa132x13=0;_0xa132x13<_0xa132x3;_0xa132x13++){var _0xa132x14=_0xa132xa*_0xa132x3+_0xa132x13+1,_0xa132x15=_0xa132x4[_0x4e14[55]](_0x4e14[122]);if(!mxClient[_0x4e14[133]]||mxClient[_0x4e14[75]]||mxClient[_0x4e14[76]]){var _0xa132x16=_0xa132x4[_0x4e14[55]](_0x4e14[2048]);_0xa132x16[_0x4e14[57]](_0x4e14[44],_0x4e14[2049]+_0xa132x14);mxUtils[_0x4e14[53]](_0xa132x16,_0xa132x14,_0xa132x4);_0xa132x15[_0x4e14[62]](_0xa132x16);}else {mxUtils[_0x4e14[53]](_0xa132x15,_0xa132x14,_0xa132x4)};_0xa132x12[_0x4e14[62]](_0xa132x15);};_0xa132x9[_0x4e14[62]](_0xa132x12);};_0xa132x5[_0x4e14[62]](_0xa132x9);return _0xa132x5;};mxPrintPreview[_0x4e14[202]][_0x4e14[2034]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=document[_0x4e14[55]](_0x4e14[485]);try{_0xa132x5[_0x4e14[124]][_0x4e14[117]]=_0xa132x2+_0x4e14[168];_0xa132x5[_0x4e14[124]][_0x4e14[119]]=_0xa132x3+_0x4e14[168];_0xa132x5[_0x4e14[124]][_0x4e14[277]]=_0x4e14[188];_0xa132x5[_0x4e14[124]][_0x4e14[2050]]=_0x4e14[1824];_0xa132x5[_0x4e14[124]][_0x4e14[491]]=_0x4e14[1500];var _0xa132x9=document[_0x4e14[55]](_0x4e14[485]);_0xa132x9[_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[467]]+_0x4e14[168];_0xa132x9[_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[467]]+_0x4e14[168];_0xa132x9[_0x4e14[124]][_0x4e14[117]]=_0xa132x2-2*this[_0x4e14[467]]+_0x4e14[168];_0xa132x9[_0x4e14[124]][_0x4e14[119]]=_0xa132x3-2*this[_0x4e14[467]]+_0x4e14[168];_0xa132x9[_0x4e14[124]][_0x4e14[277]]=_0x4e14[188];this[_0x4e14[1179]][_0x4e14[507]]==mxConstants[_0x4e14[1523]]&&(_0xa132x9[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492]);_0xa132x5[_0x4e14[62]](_0xa132x9);document[_0x4e14[112]][_0x4e14[62]](_0xa132x5);_0xa132x4(_0xa132x9);}catch(f){throw _0xa132x5[_0x4e14[265]][_0x4e14[266]](_0xa132x5),f};return _0xa132x5;};mxPrintPreview[_0x4e14[202]][_0x4e14[2033]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]();var _0xa132xa=this[_0x4e14[1179]][_0x4e14[526]];this[_0x4e14[1179]][_0x4e14[526]]=_0xa132x9;var _0xa132x12=_0xa132x5[_0x4e14[2051]](),_0xa132x13=_0xa132x5[_0x4e14[2052]](),_0xa132x14=_0xa132x5[_0x4e14[2024]](),_0xa132x15=_0xa132x5[_0x4e14[1524]]();this[_0x4e14[1179]][_0x4e14[507]]==mxConstants[_0x4e14[508]]?_0xa132x5[_0x4e14[1569]]():this[_0x4e14[1179]][_0x4e14[507]]==mxConstants[_0x4e14[1523]]?_0xa132x5[_0x4e14[1571]]():_0xa132x5[_0x4e14[1570]]();var _0xa132x16=_0xa132x5[_0x4e14[503]]();_0xa132x5[_0x4e14[504]](!1);var _0xa132x17=this[_0x4e14[1179]][_0x4e14[994]]();this[_0x4e14[1179]][_0x4e14[995]](!1);var _0xa132x18=_0xa132x5[_0x4e14[512]]();_0xa132x5[_0x4e14[513]]= new mxPoint(_0xa132x2,_0xa132x3);_0xa132x2=null;try{var _0xa132x19=[this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[501]]()];_0xa132x2= new mxTemporaryCellStates(_0xa132x5,_0xa132x4,_0xa132x19);}finally{if(mxClient[_0x4e14[80]]){_0xa132x5[_0x4e14[506]][_0x4e14[339]]=_0x4e14[110]}else {for(_0xa132x4=_0xa132x9[_0x4e14[285]];null!=_0xa132x4;){_0xa132x19=_0xa132x4[_0x4e14[287]],_0xa132x3=_0xa132x4[_0x4e14[301]][_0x4e14[216]](),_0x4e14[571]==_0xa132x3?(_0xa132x4[_0x4e14[57]](_0x4e14[117],parseInt(_0xa132x9[_0x4e14[124]][_0x4e14[117]])),_0xa132x4[_0x4e14[57]](_0x4e14[119],parseInt(_0xa132x9[_0x4e14[124]][_0x4e14[119]]))):_0x4e14[583]!=_0xa132x4[_0x4e14[124]][_0x4e14[270]]&&_0x4e14[116]!=_0xa132x3&&_0xa132x4[_0x4e14[265]][_0x4e14[266]](_0xa132x4),_0xa132x4=_0xa132x19}};_0xa132x5[_0x4e14[506]][_0x4e14[265]][_0x4e14[266]](_0xa132x5[_0x4e14[506]]);this[_0x4e14[1179]][_0x4e14[995]](_0xa132x17);this[_0x4e14[1179]][_0x4e14[526]]=_0xa132xa;_0xa132x5[_0x4e14[510]]=_0xa132x12;_0xa132x5[_0x4e14[2053]]=_0xa132x13;_0xa132x5[_0x4e14[505]]=_0xa132x14;_0xa132x5[_0x4e14[506]]=_0xa132x15;_0xa132x5[_0x4e14[513]]=_0xa132x18;_0xa132x2[_0x4e14[515]]();_0xa132x5[_0x4e14[504]](_0xa132x16);};};mxPrintPreview[_0x4e14[202]][_0x4e14[2031]]=function(){return null};mxPrintPreview[_0x4e14[202]][_0x4e14[2032]]=function(){return null};mxPrintPreview[_0x4e14[202]][_0x4e14[540]]=function(){var _0xa132x2=this[_0x4e14[392]]();null!=_0xa132x2&&_0xa132x2[_0x4e14[540]]();};mxPrintPreview[_0x4e14[202]][_0x4e14[268]]=function(){null!=this[_0x4e14[2018]]&&(this[_0x4e14[2018]][_0x4e14[268]](),this[_0x4e14[2018]]=null)};function mxStylesheet(){this[_0x4e14[2054]]={};this[_0x4e14[2056]](this[_0x4e14[2055]]());this[_0x4e14[2058]](this[_0x4e14[2057]]());}mxStylesheet[_0x4e14[202]][_0x4e14[2055]]=function(){var _0xa132x2={};_0xa132x2[mxConstants[_0x4e14[2059]]]=mxConstants[_0x4e14[2060]];_0xa132x2[mxConstants[_0x4e14[2061]]]=mxPerimeter[_0x4e14[2062]];_0xa132x2[mxConstants[_0x4e14[2063]]]=mxConstants[_0x4e14[481]];_0xa132x2[mxConstants[_0x4e14[2064]]]=mxConstants[_0x4e14[479]];_0xa132x2[mxConstants[_0x4e14[2065]]]=_0x4e14[2066];_0xa132x2[mxConstants[_0x4e14[2067]]]=_0x4e14[2068];_0xa132x2[mxConstants[_0x4e14[2069]]]=_0x4e14[2070];return _0xa132x2;};mxStylesheet[_0x4e14[202]][_0x4e14[2057]]=function(){var _0xa132x2={};_0xa132x2[mxConstants[_0x4e14[2059]]]=mxConstants[_0x4e14[2071]];_0xa132x2[mxConstants[_0x4e14[1695]]]=mxConstants[_0x4e14[1622]];_0xa132x2[mxConstants[_0x4e14[2063]]]=mxConstants[_0x4e14[481]];_0xa132x2[mxConstants[_0x4e14[2064]]]=mxConstants[_0x4e14[479]];_0xa132x2[mxConstants[_0x4e14[2067]]]=_0x4e14[2068];_0xa132x2[mxConstants[_0x4e14[2069]]]=_0x4e14[2072];return _0xa132x2;};mxStylesheet[_0x4e14[202]][_0x4e14[2056]]=function(_0xa132x2){this[_0x4e14[2074]](_0x4e14[2073],_0xa132x2)};mxStylesheet[_0x4e14[202]][_0x4e14[2058]]=function(_0xa132x2){this[_0x4e14[2074]](_0x4e14[2075],_0xa132x2)};mxStylesheet[_0x4e14[202]][_0x4e14[2076]]=function(){return this[_0x4e14[2054]][_0x4e14[2073]]};mxStylesheet[_0x4e14[202]][_0x4e14[2077]]=function(){return this[_0x4e14[2054]][_0x4e14[2075]]};mxStylesheet[_0x4e14[202]][_0x4e14[2074]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[2054]][_0xa132x2]=_0xa132x3};mxStylesheet[_0x4e14[202]][_0x4e14[1705]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x3;if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){for(var _0xa132x5=_0xa132x2[_0x4e14[224]](_0x4e14[471]),_0xa132x4=null!=_0xa132x4&&_0x4e14[471]!=_0xa132x2[_0x4e14[225]](0)?mxUtils[_0x4e14[238]](_0xa132x4):{},_0xa132x9=0;_0xa132x9<_0xa132x5[_0x4e14[67]];_0xa132x9++){var _0xa132xa=_0xa132x5[_0xa132x9],_0xa132x12=_0xa132xa[_0x4e14[2]](_0x4e14[226]);if(0<=_0xa132x12){var _0xa132x13=_0xa132xa[_0x4e14[85]](0,_0xa132x12),_0xa132xa=_0xa132xa[_0x4e14[85]](_0xa132x12+1);_0xa132xa==mxConstants[_0x4e14[217]]? delete _0xa132x4[_0xa132x13]:mxUtils[_0x4e14[1946]](_0xa132xa)?_0xa132x4[_0xa132x13]=parseFloat(_0xa132xa):_0xa132x4[_0xa132x13]=_0xa132xa;}else {if(_0xa132xa=this[_0x4e14[2054]][_0xa132xa],null!=_0xa132xa){for(_0xa132x13 in _0xa132xa){_0xa132x4[_0xa132x13]=_0xa132xa[_0xa132x13]}}};}};return _0xa132x4;};function mxCellState(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[441]]=_0xa132x2;this[_0x4e14[246]]=_0xa132x3;this[_0x4e14[124]]=_0xa132x4;this[_0x4e14[2078]]= new mxPoint;this[_0x4e14[2079]]= new mxPoint;}mxCellState[_0x4e14[202]]= new mxRectangle;mxCellState[_0x4e14[202]][_0x4e14[196]]=mxCellState;mxCellState[_0x4e14[202]][_0x4e14[441]]=null;mxCellState[_0x4e14[202]][_0x4e14[246]]=null;mxCellState[_0x4e14[202]][_0x4e14[124]]=null;mxCellState[_0x4e14[202]][_0x4e14[2080]]= !0;mxCellState[_0x4e14[202]][_0x4e14[2081]]= !1;mxCellState[_0x4e14[202]][_0x4e14[2082]]= !1;mxCellState[_0x4e14[202]][_0x4e14[2078]]=null;mxCellState[_0x4e14[202]][_0x4e14[439]]=null;mxCellState[_0x4e14[202]][_0x4e14[2079]]=null;mxCellState[_0x4e14[202]][_0x4e14[2083]]=null;mxCellState[_0x4e14[202]][_0x4e14[2084]]=null;mxCellState[_0x4e14[202]][_0x4e14[2085]]=0;mxCellState[_0x4e14[202]][_0x4e14[67]]=0;mxCellState[_0x4e14[202]][_0x4e14[2086]]=null;mxCellState[_0x4e14[202]][_0x4e14[253]]=null;mxCellState[_0x4e14[202]][_0x4e14[963]]=null;mxCellState[_0x4e14[202]][_0x4e14[2087]]=function(_0xa132x2,_0xa132x3){_0xa132x2=_0xa132x2||0;_0xa132x3=null!=_0xa132x3?_0xa132x3: new mxRectangle(this[_0x4e14[235]],this[_0x4e14[236]],this[_0x4e14[117]],this[_0x4e14[119]]);if(null!=this[_0x4e14[253]]&&null!=this[_0x4e14[253]][_0x4e14[1561]]){var _0xa132x4=this[_0x4e14[253]][_0x4e14[1561]][_0x4e14[1548]](this[_0x4e14[124]],_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]],_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]]);_0xa132x3[_0x4e14[235]]=_0xa132x4[_0x4e14[235]];_0xa132x3[_0x4e14[236]]=_0xa132x4[_0x4e14[236]];_0xa132x3[_0x4e14[117]]=this[_0x4e14[253]][_0x4e14[1561]][_0x4e14[1532]]*_0xa132x4[_0x4e14[117]];_0xa132x3[_0x4e14[119]]=this[_0x4e14[253]][_0x4e14[1561]][_0x4e14[1533]]*_0xa132x4[_0x4e14[119]];};0!=_0xa132x2&&_0xa132x3[_0x4e14[244]](_0xa132x2);return _0xa132x3;};mxCellState[_0x4e14[202]][_0x4e14[2088]]=function(_0xa132x2,_0xa132x3){_0xa132x3?(null==this[_0x4e14[439]]&&(this[_0x4e14[439]]=[]),0==this[_0x4e14[439]][_0x4e14[67]]?this[_0x4e14[439]][_0x4e14[207]](_0xa132x2):this[_0x4e14[439]][0]=_0xa132x2):null==this[_0x4e14[439]]?(this[_0x4e14[439]]=[],this[_0x4e14[439]][_0x4e14[207]](null),this[_0x4e14[439]][_0x4e14[207]](_0xa132x2)):1==this[_0x4e14[439]][_0x4e14[67]]?this[_0x4e14[439]][_0x4e14[207]](_0xa132x2):this[_0x4e14[439]][this[_0x4e14[439]][_0x4e14[67]]-1]=_0xa132x2};mxCellState[_0x4e14[202]][_0x4e14[1609]]=function(_0xa132x2){null!=this[_0x4e14[253]]&&this[_0x4e14[253]][_0x4e14[1609]](_0xa132x2);null!=this[_0x4e14[963]]&&this[_0x4e14[963]][_0x4e14[1609]](_0xa132x2);};mxCellState[_0x4e14[202]][_0x4e14[1710]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[2089]](_0xa132x2);return null!=_0xa132x2?_0xa132x2[_0x4e14[246]]:null;};mxCellState[_0x4e14[202]][_0x4e14[2089]]=function(_0xa132x2){return _0xa132x2?this[_0x4e14[2083]]:this[_0x4e14[2084]]};mxCellState[_0x4e14[202]][_0x4e14[2090]]=function(_0xa132x2,_0xa132x3){_0xa132x3?this[_0x4e14[2083]]=_0xa132x2:this[_0x4e14[2084]]=_0xa132x2};mxCellState[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[441]][_0x4e14[1179]][_0x4e14[259]][_0x4e14[515]](this)};mxCellState[_0x4e14[202]][_0x4e14[238]]=function(){var _0xa132x2= new mxCellState(this[_0x4e14[441]],this[_0x4e14[246]],this[_0x4e14[124]]);if(null!=this[_0x4e14[439]]){_0xa132x2[_0x4e14[439]]=[];for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[439]][_0x4e14[67]];_0xa132x3++){_0xa132x2[_0x4e14[439]][_0xa132x3]=this[_0x4e14[439]][_0xa132x3][_0x4e14[238]]()};};null!=this[_0x4e14[2078]]&&(_0xa132x2[_0x4e14[2078]]=this[_0x4e14[2078]][_0x4e14[238]]());null!=this[_0x4e14[2079]]&&(_0xa132x2[_0x4e14[2079]]=this[_0x4e14[2079]][_0x4e14[238]]());null!=this[_0x4e14[1563]]&&(_0xa132x2[_0x4e14[1563]]=this[_0x4e14[1563]][_0x4e14[238]]());_0xa132x2[_0x4e14[2085]]=this[_0x4e14[2085]];_0xa132x2[_0x4e14[2086]]=this[_0x4e14[2086]];_0xa132x2[_0x4e14[67]]=this[_0x4e14[67]];_0xa132x2[_0x4e14[235]]=this[_0x4e14[235]];_0xa132x2[_0x4e14[236]]=this[_0x4e14[236]];_0xa132x2[_0x4e14[117]]=this[_0x4e14[117]];_0xa132x2[_0x4e14[119]]=this[_0x4e14[119]];return _0xa132x2;};function mxGraphSelectionModel(_0xa132x2){this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[895]]=[];}mxGraphSelectionModel[_0x4e14[202]]= new mxEventSource;mxGraphSelectionModel[_0x4e14[202]][_0x4e14[196]]=mxGraphSelectionModel;mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2091]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[819]:_0x4e14[110];mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2092]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[2093]:_0x4e14[110];mxGraphSelectionModel[_0x4e14[202]][_0x4e14[1179]]=null;mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2094]]= !1;mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2095]]=function(){return this[_0x4e14[2094]]};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2096]]=function(_0xa132x2){this[_0x4e14[2094]]=_0xa132x2};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2097]]=function(_0xa132x2){return null!=_0xa132x2?0<=mxUtils[_0x4e14[2]](this[_0x4e14[895]],_0xa132x2):!1};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[1107]]=function(){return 0==this[_0x4e14[895]][_0x4e14[67]]};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[200]]=function(){this[_0x4e14[2098]](null,this[_0x4e14[895]])};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2099]]=function(_0xa132x2){null!=_0xa132x2&&this[_0x4e14[2100]]([_0xa132x2])};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2100]]=function(_0xa132x2){if(null!=_0xa132x2){this[_0x4e14[2094]]&&(_0xa132x2=[this[_0x4e14[2101]](_0xa132x2)]);for(var _0xa132x3=[],_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){this[_0x4e14[1179]][_0x4e14[2102]](_0xa132x2[_0xa132x4])&&_0xa132x3[_0x4e14[207]](_0xa132x2[_0xa132x4])};this[_0x4e14[2098]](_0xa132x3,this[_0x4e14[895]]);}};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2101]]=function(_0xa132x2){if(null!=_0xa132x2){for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3++){if(this[_0x4e14[1179]][_0x4e14[2102]](_0xa132x2[_0xa132x3])){return _0xa132x2[_0xa132x3]}}};return null;};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2103]]=function(_0xa132x2){null!=_0xa132x2&&this[_0x4e14[832]]([_0xa132x2])};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[832]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=null;this[_0x4e14[2094]]&&(_0xa132x3=this[_0x4e14[895]],_0xa132x2=[this[_0x4e14[2101]](_0xa132x2)]);for(var _0xa132x4=[],_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){!this[_0x4e14[2097]](_0xa132x2[_0xa132x5])&&this[_0x4e14[1179]][_0x4e14[2102]](_0xa132x2[_0xa132x5])&&_0xa132x4[_0x4e14[207]](_0xa132x2[_0xa132x5])};this[_0x4e14[2098]](_0xa132x4,_0xa132x3);}};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2104]]=function(_0xa132x2){null!=_0xa132x2&&this[_0x4e14[842]]([_0xa132x2])};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[842]]=function(_0xa132x2){if(null!=_0xa132x2){for(var _0xa132x3=[],_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){this[_0x4e14[2097]](_0xa132x2[_0xa132x4])&&_0xa132x3[_0x4e14[207]](_0xa132x2[_0xa132x4])};this[_0x4e14[2098]](null,_0xa132x3);}};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[2098]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]&&null!=_0xa132x2[0]||null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]&&null!=_0xa132x3[0]){var _0xa132x4= new mxSelectionChange(this,_0xa132x2,_0xa132x3);_0xa132x4[_0x4e14[350]]();var _0xa132x5= new mxUndoableEdit(this,!1);_0xa132x5[_0x4e14[99]](_0xa132x4);this[_0x4e14[746]]( new mxEventObject(mxEvent.UNDO,_0x4e14[1061],_0xa132x5));}};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[1941]]=function(_0xa132x2){null!=_0xa132x2&&!this[_0x4e14[2097]](_0xa132x2)&&this[_0x4e14[895]][_0x4e14[207]](_0xa132x2)};mxGraphSelectionModel[_0x4e14[202]][_0x4e14[1102]]=function(_0xa132x2){null!=_0xa132x2&&(_0xa132x2=mxUtils[_0x4e14[2]](this[_0x4e14[895]],_0xa132x2),0<=_0xa132x2&&this[_0x4e14[895]][_0x4e14[300]](_0xa132x2,1))};function mxSelectionChange(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[2105]]=_0xa132x2;this[_0x4e14[2106]]=null!=_0xa132x3?_0xa132x3[_0x4e14[1853]]():null;this[_0x4e14[2107]]=null!=_0xa132x4?_0xa132x4[_0x4e14[1853]]():null;}mxSelectionChange[_0x4e14[202]][_0x4e14[350]]=function(){var _0xa132x2=mxLog[_0x4e14[2109]](_0x4e14[2108]);window[_0x4e14[879]]=mxResources[_0x4e14[203]](this[_0x4e14[2105]][_0x4e14[2092]])||this[_0x4e14[2105]][_0x4e14[2092]];if(null!=this[_0x4e14[2107]]){for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[2107]][_0x4e14[67]];_0xa132x3++){this[_0x4e14[2105]][_0x4e14[1102]](this[_0x4e14[2107]][_0xa132x3])}};if(null!=this[_0x4e14[2106]]){for(_0xa132x3=0;_0xa132x3<this[_0x4e14[2106]][_0x4e14[67]];_0xa132x3++){this[_0x4e14[2105]][_0x4e14[1941]](this[_0x4e14[2106]][_0xa132x3])}};_0xa132x3=this[_0x4e14[2106]];this[_0x4e14[2106]]=this[_0x4e14[2107]];this[_0x4e14[2107]]=_0xa132x3;window[_0x4e14[879]]=mxResources[_0x4e14[203]](this[_0x4e14[2105]][_0x4e14[2091]])||this[_0x4e14[2105]][_0x4e14[2091]];mxLog[_0x4e14[2110]](_0x4e14[2108],_0xa132x2);this[_0x4e14[2105]][_0x4e14[746]]( new mxEventObject(mxEvent.CHANGE,_0x4e14[2106],this[_0x4e14[2106]],_0x4e14[2107],this[_0x4e14[2107]]));};function mxCellEditor(_0xa132x2){this[_0x4e14[1179]]=_0xa132x2}mxCellEditor[_0x4e14[202]][_0x4e14[1179]]=null;mxCellEditor[_0x4e14[202]][_0x4e14[126]]=null;mxCellEditor[_0x4e14[202]][_0x4e14[2111]]=null;mxCellEditor[_0x4e14[202]][_0x4e14[2112]]=null;mxCellEditor[_0x4e14[202]][_0x4e14[2113]]= !1;mxCellEditor[_0x4e14[202]][_0x4e14[2114]]= !0;mxCellEditor[_0x4e14[202]][_0x4e14[2115]]=_0x4e14[110];mxCellEditor[_0x4e14[202]][_0x4e14[2116]]=_0x4e14[110];mxCellEditor[_0x4e14[202]][_0x4e14[176]]=function(){this[_0x4e14[126]]=document[_0x4e14[55]](_0x4e14[126]);this[_0x4e14[126]][_0x4e14[926]]=_0x4e14[2117];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[277]]=_0x4e14[189];this[_0x4e14[126]][_0x4e14[57]](_0x4e14[2118],_0x4e14[2119]);this[_0x4e14[126]][_0x4e14[57]](_0x4e14[969],_0x4e14[2120]);mxClient[_0x4e14[133]]&&(this[_0x4e14[126]][_0x4e14[124]][_0x4e14[129]]=_0x4e14[130]);mxEvent[_0x4e14[169]](this[_0x4e14[126]],_0x4e14[2121],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2122]]()}));mxEvent[_0x4e14[169]](this[_0x4e14[126]],_0x4e14[2123],mxUtils[_0x4e14[885]](this,function(_0xa132x2){mxEvent[_0x4e14[721]](_0xa132x2)||(113==_0xa132x2[_0x4e14[2124]]||this[_0x4e14[1179]][_0x4e14[2125]]()&&13==_0xa132x2[_0x4e14[2124]]&&!mxEvent[_0x4e14[775]](_0xa132x2)&&!mxEvent[_0x4e14[774]](_0xa132x2)?(this[_0x4e14[1179]][_0x4e14[2126]](!1),mxEvent[_0x4e14[722]](_0xa132x2)):27==_0xa132x2[_0x4e14[2124]]?(this[_0x4e14[1179]][_0x4e14[2126]](!0),mxEvent[_0x4e14[722]](_0xa132x2)):(this[_0x4e14[2127]]&&(this[_0x4e14[2127]]= !1,this[_0x4e14[126]][_0x4e14[131]]=_0x4e14[110]),this[_0x4e14[2128]](!0)))}));mxEvent[_0x4e14[169]](this[_0x4e14[126]],_0x4e14[2129],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2114]]&&!mxEvent[_0x4e14[721]](_0xa132x2)&&setTimeout(mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[129]]()}),0)}));};mxCellEditor[_0x4e14[202]][_0x4e14[129]]=function(){if(null!=this[_0x4e14[1653]]){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](this[_0x4e14[2111]]),_0xa132x3=this[_0x4e14[1179]][_0x4e14[2130]](_0xa132x2[_0x4e14[246]]),_0xa132x4=this[_0x4e14[1179]][_0x4e14[2131]](_0xa132x2[_0x4e14[246]]);if(this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]])){this[_0x4e14[1562]][_0x4e14[235]]=_0xa132x2[_0x4e14[2079]][_0x4e14[235]],this[_0x4e14[1562]][_0x4e14[236]]=_0xa132x2[_0x4e14[2079]][_0x4e14[236]],this[_0x4e14[1562]][_0x4e14[117]]=0,this[_0x4e14[1562]][_0x4e14[119]]=0}else {if(null!=this[_0x4e14[1562]]){this[_0x4e14[1562]][_0x4e14[235]]=_0xa132x2[_0x4e14[235]];this[_0x4e14[1562]][_0x4e14[236]]=_0xa132x2[_0x4e14[236]];this[_0x4e14[1562]][_0x4e14[117]]=_0xa132x2[_0x4e14[117]];this[_0x4e14[1562]][_0x4e14[119]]=_0xa132x2[_0x4e14[119]];var _0xa132x5=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);_0xa132x5==mxConstants[_0x4e14[2132]]?this[_0x4e14[1562]][_0x4e14[235]]-=_0xa132x2[_0x4e14[117]]:_0xa132x5==mxConstants[_0x4e14[480]]&&(this[_0x4e14[1562]][_0x4e14[235]]+=_0xa132x2[_0x4e14[117]]);_0xa132x5=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);_0xa132x5==mxConstants[_0x4e14[1687]]?this[_0x4e14[1562]][_0x4e14[236]]-=_0xa132x2[_0x4e14[119]]:_0xa132x5==mxConstants[_0x4e14[482]]&&(this[_0x4e14[1562]][_0x4e14[236]]+=_0xa132x2[_0x4e14[119]]);}};_0xa132x5=this[_0x4e14[126]][_0x4e14[131]];if(_0x4e14[192]==_0xa132x5[_0x4e14[225]](_0xa132x5[_0x4e14[67]]-1)||_0x4e14[110]==_0xa132x5){_0xa132x5+=_0x4e14[544]};_0xa132x5=mxUtils[_0x4e14[321]](_0xa132x5,!1);_0xa132x4?(this[_0x4e14[1653]][_0x4e14[124]][_0x4e14[493]]=_0x4e14[1502],this[_0x4e14[1653]][_0x4e14[124]][_0x4e14[117]]=this[_0x4e14[1562]][_0x4e14[117]]+_0x4e14[168]):_0xa132x5=_0xa132x5[_0x4e14[230]](/ /g,_0x4e14[544]);_0xa132x5=_0xa132x5[_0x4e14[230]](/\n/g,_0x4e14[1453]);this[_0x4e14[1653]][_0x4e14[339]]=_0xa132x5;var _0xa132x5=this[_0x4e14[1653]][_0x4e14[359]]+30,_0xa132x9=this[_0x4e14[1653]][_0x4e14[167]]+16,_0xa132x5=Math[_0x4e14[160]](_0xa132x5,40),_0xa132x9=Math[_0x4e14[160]](_0xa132x9,20);_0xa132x3&&(_0xa132x5=Math[_0x4e14[243]](this[_0x4e14[1562]][_0x4e14[117]]-4,_0xa132x5),_0xa132x9=Math[_0x4e14[243]](this[_0x4e14[1562]][_0x4e14[119]],_0xa132x9));var _0xa132xa=null!=_0xa132x2[_0x4e14[963]]?_0xa132x2[_0x4e14[963]][_0x4e14[1655]]:null;null==_0xa132xa&&(_0xa132xa=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),_0xa132x2=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0xa132xa=mxUtils[_0x4e14[1501]](_0xa132xa,_0xa132x2));if(null!=_0xa132xa){if(_0xa132x3|| !_0xa132x4){this[_0x4e14[126]][_0x4e14[124]][_0x4e14[361]]=Math[_0x4e14[160]](0,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[235]]-_0xa132xa[_0x4e14[235]]*this[_0x4e14[1562]][_0x4e14[117]]+_0xa132xa[_0x4e14[235]]*_0xa132x5)-3)+_0x4e14[168]};this[_0x4e14[126]][_0x4e14[124]][_0x4e14[125]]=Math[_0x4e14[160]](0,Math[_0x4e14[488]](this[_0x4e14[1562]][_0x4e14[236]]-_0xa132xa[_0x4e14[236]]*this[_0x4e14[1562]][_0x4e14[119]]+_0xa132xa[_0x4e14[236]]*_0xa132x9)+4)+_0x4e14[168];};if(_0xa132x3|| !_0xa132x4){this[_0x4e14[126]][_0x4e14[124]][_0x4e14[117]]=_0xa132x5+_0x4e14[168]};this[_0x4e14[126]][_0x4e14[124]][_0x4e14[119]]=_0xa132x9+_0x4e14[168];}};mxCellEditor[_0x4e14[202]][_0x4e14[2133]]=function(){return this[_0x4e14[2113]]};mxCellEditor[_0x4e14[202]][_0x4e14[2128]]=function(_0xa132x2){this[_0x4e14[2113]]=_0xa132x2};mxCellEditor[_0x4e14[202]][_0x4e14[2122]]=function(){this[_0x4e14[2126]](!this[_0x4e14[1179]][_0x4e14[2134]]())};mxCellEditor[_0x4e14[202]][_0x4e14[855]]=function(_0xa132x2,_0xa132x3){null==this[_0x4e14[126]]&&this[_0x4e14[176]]();this[_0x4e14[2126]](!0);var _0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);if(null!=_0xa132x4){this[_0x4e14[2111]]=_0xa132x2;this[_0x4e14[2112]]=_0xa132x3;this[_0x4e14[2116]]=null;null!=_0xa132x4[_0x4e14[963]]&&this[_0x4e14[2135]](_0xa132x4)&&(this[_0x4e14[2116]]=_0xa132x4[_0x4e14[963]][_0x4e14[252]],this[_0x4e14[2116]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]);var _0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x5=mxUtils[_0x4e14[433]](_0xa132x4[_0x4e14[124]],mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*_0xa132x5,_0xa132x9=mxUtils[_0x4e14[433]](_0xa132x4[_0x4e14[124]],mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),_0xa132xa=mxUtils[_0x4e14[433]](_0xa132x4[_0x4e14[124]],mxConstants.STYLE_FONTCOLOR,_0x4e14[586]),_0xa132x12=mxUtils[_0x4e14[433]](_0xa132x4[_0x4e14[124]],mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),_0xa132x13=(mxUtils[_0x4e14[433]](_0xa132x4[_0x4e14[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0x4e14[1410]])==mxConstants[_0x4e14[1410]],_0xa132x14=(mxUtils[_0x4e14[433]](_0xa132x4[_0x4e14[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0x4e14[1412]])==mxConstants[_0x4e14[1412]],_0xa132x15=(mxUtils[_0x4e14[433]](_0xa132x4[_0x4e14[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0x4e14[1414]])==mxConstants[_0x4e14[1414]];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[487]]=Math[_0x4e14[488]](_0xa132x5)+_0x4e14[168];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[489]]=Math[_0x4e14[488]](_0xa132x5*mxConstants[_0x4e14[490]])+_0x4e14[168];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[486]]=_0xa132x9;this[_0x4e14[126]][_0x4e14[124]][_0x4e14[1165]]=_0xa132x12;this[_0x4e14[126]][_0x4e14[124]][_0x4e14[352]]=_0xa132xa;this[_0x4e14[126]][_0x4e14[124]][_0x4e14[1452]]=_0xa132x13?_0x4e14[1447]:_0x4e14[1502];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[666]]=_0xa132x14?_0x4e14[1449]:_0x4e14[110];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[354]]=_0xa132x15?_0x4e14[355]:_0x4e14[110];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[277]]=_0x4e14[278];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[2136]]=_0x4e14[130];this[_0x4e14[1562]]=_0xa132x5=this[_0x4e14[2137]](_0xa132x4);this[_0x4e14[126]][_0x4e14[124]][_0x4e14[361]]=_0xa132x5[_0x4e14[235]]+_0x4e14[168];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[125]]=_0xa132x5[_0x4e14[236]]+_0x4e14[168];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[117]]=_0xa132x5[_0x4e14[117]]+_0x4e14[168];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[119]]=_0xa132x5[_0x4e14[119]]+_0x4e14[168];this[_0x4e14[126]][_0x4e14[124]][_0x4e14[931]]=5;_0xa132x4=this[_0x4e14[2138]](_0xa132x4,_0xa132x3);null==_0xa132x4||0==_0xa132x4[_0x4e14[67]]?(_0xa132x4=this[_0x4e14[2139]](),this[_0x4e14[2127]]= !0):this[_0x4e14[2127]]= !1;this[_0x4e14[2128]](!1);this[_0x4e14[126]][_0x4e14[131]]=_0xa132x4;this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[62]](this[_0x4e14[126]]);_0x4e14[130]!=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[495]]&&(this[_0x4e14[2114]]&&(this[_0x4e14[1653]]=this[_0x4e14[2140]](),document[_0x4e14[112]][_0x4e14[62]](this[_0x4e14[1653]]),this[_0x4e14[129]]()),this[_0x4e14[126]][_0x4e14[393]](),this[_0x4e14[126]][_0x4e14[804]]());};};mxCellEditor[_0x4e14[202]][_0x4e14[2140]]=function(){var _0xa132x2=document[_0x4e14[55]](_0x4e14[485]),_0xa132x3=_0xa132x2[_0x4e14[124]];_0xa132x3[_0x4e14[491]]=_0x4e14[492];_0xa132x3[_0x4e14[493]]=_0x4e14[494];_0xa132x3[_0x4e14[187]]=_0x4e14[188];_0xa132x3[_0x4e14[495]]=mxClient[_0x4e14[496]]?_0x4e14[497]:_0x4e14[498];_0xa132x3[_0x4e14[499]]=_0x4e14[500];_0xa132x3[_0x4e14[123]]=_0x4e14[125];_0xa132x3[_0x4e14[489]]=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[489]];_0xa132x3[_0x4e14[487]]=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[487]];_0xa132x3[_0x4e14[486]]=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[486]];_0xa132x3[_0x4e14[1452]]=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[1452]];_0xa132x3[_0x4e14[1165]]=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[1165]];_0xa132x3[_0x4e14[666]]=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[666]];_0xa132x3[_0x4e14[354]]=this[_0x4e14[126]][_0x4e14[124]][_0x4e14[354]];return _0xa132x2;};mxCellEditor[_0x4e14[202]][_0x4e14[2126]]=function(_0xa132x2){null!=this[_0x4e14[2111]]&&(null!=this[_0x4e14[2116]]&&(this[_0x4e14[2116]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189],this[_0x4e14[2116]]=null),!_0xa132x2&&this[_0x4e14[2133]]()&&this[_0x4e14[1179]][_0x4e14[850]](this[_0x4e14[2111]],this[_0x4e14[2141]](),this[_0x4e14[2112]]),null!=this[_0x4e14[1653]]&&(document[_0x4e14[112]][_0x4e14[266]](this[_0x4e14[1653]]),this[_0x4e14[1653]]=null),this[_0x4e14[1562]]=this[_0x4e14[2112]]=this[_0x4e14[2111]]=null,this[_0x4e14[126]][_0x4e14[2121]](),this[_0x4e14[126]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[126]]))};mxCellEditor[_0x4e14[202]][_0x4e14[2138]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[1179]][_0x4e14[2142]](_0xa132x2[_0x4e14[246]],_0xa132x3)};mxCellEditor[_0x4e14[202]][_0x4e14[2141]]=function(){return this[_0x4e14[126]][_0x4e14[131]][_0x4e14[230]](/\r/g,_0x4e14[110])};mxCellEditor[_0x4e14[202]][_0x4e14[2135]]=function(_0xa132x2){return !0};mxCellEditor[_0x4e14[202]][_0x4e14[939]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]];return  new mxRectangle(0,0,null==_0xa132x2[_0x4e14[963]]?30:_0xa132x2[_0x4e14[963]][_0x4e14[803]]*_0xa132x3+20,_0x4e14[361]==this[_0x4e14[126]][_0x4e14[124]][_0x4e14[1165]]?120:40);};mxCellEditor[_0x4e14[202]][_0x4e14[2137]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]]),_0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x5=this[_0x4e14[939]](_0xa132x2),_0xa132x9=_0xa132x5[_0x4e14[117]],_0xa132x5=_0xa132x5[_0x4e14[119]],_0xa132xa=parseInt(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2143]]]||2)*_0xa132x4,_0xa132x12=parseInt(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2144]]]||0)*_0xa132x4+_0xa132xa,_0xa132x13=parseInt(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2145]]]||0)*_0xa132x4+_0xa132xa,_0xa132x14=parseInt(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2146]]]||0)*_0xa132x4+_0xa132xa,_0xa132x4=parseInt(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2147]]]||0)*_0xa132x4+_0xa132xa,_0xa132x13= new mxRectangle(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],Math[_0x4e14[160]](_0xa132x9,_0xa132x2[_0x4e14[117]]-_0xa132x4-_0xa132x13),Math[_0x4e14[160]](_0xa132x5,_0xa132x2[_0x4e14[119]]-_0xa132x12-_0xa132x14));_0xa132x3?(_0xa132x13[_0x4e14[235]]=_0xa132x2[_0x4e14[2079]][_0x4e14[235]],_0xa132x13[_0x4e14[236]]=_0xa132x2[_0x4e14[2079]][_0x4e14[236]],null!=_0xa132x2[_0x4e14[963]]&&null!=_0xa132x2[_0x4e14[963]][_0x4e14[1563]]&&(0<_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[235]]&&(_0xa132x13[_0x4e14[235]]=_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[235]]),0<_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[236]]&&(_0xa132x13[_0x4e14[236]]=_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[236]]))):null!=_0xa132x2[_0x4e14[963]]&&null!=_0xa132x2[_0x4e14[963]][_0x4e14[1563]]&&(_0xa132x13[_0x4e14[235]]=Math[_0x4e14[243]](_0xa132x13[_0x4e14[235]],_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[235]]),_0xa132x13[_0x4e14[236]]=Math[_0x4e14[243]](_0xa132x13[_0x4e14[236]],_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[236]]));_0xa132x13[_0x4e14[235]]+=_0xa132x4;_0xa132x13[_0x4e14[236]]+=_0xa132x12;null!=_0xa132x2[_0x4e14[963]]&&null!=_0xa132x2[_0x4e14[963]][_0x4e14[1563]]&&(_0xa132x3?(_0xa132x13[_0x4e14[117]]=Math[_0x4e14[160]](_0xa132x9,_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[117]]),_0xa132x13[_0x4e14[119]]=Math[_0x4e14[160]](_0xa132x5,_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[119]])):(_0xa132x13[_0x4e14[117]]=Math[_0x4e14[160]](_0xa132x13[_0x4e14[117]],_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[117]]),_0xa132x13[_0x4e14[119]]=Math[_0x4e14[160]](_0xa132x13[_0x4e14[119]],_0xa132x2[_0x4e14[963]][_0x4e14[1563]][_0x4e14[119]])));this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1193]](_0xa132x2[_0x4e14[246]])&&(_0xa132x3=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),_0xa132x3==mxConstants[_0x4e14[2132]]?_0xa132x13[_0x4e14[235]]-=_0xa132x2[_0x4e14[117]]:_0xa132x3==mxConstants[_0x4e14[480]]&&(_0xa132x13[_0x4e14[235]]+=_0xa132x2[_0x4e14[117]]),_0xa132x3=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),_0xa132x3==mxConstants[_0x4e14[1687]]?_0xa132x13[_0x4e14[236]]-=_0xa132x2[_0x4e14[119]]:_0xa132x3==mxConstants[_0x4e14[482]]&&(_0xa132x13[_0x4e14[236]]+=_0xa132x2[_0x4e14[119]]));return _0xa132x13;};mxCellEditor[_0x4e14[202]][_0x4e14[2139]]=function(_0xa132x2){return this[_0x4e14[2115]]};mxCellEditor[_0x4e14[202]][_0x4e14[2148]]=function(){return this[_0x4e14[2111]]};mxCellEditor[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[126]]&&(mxEvent[_0x4e14[762]](this[_0x4e14[126]]),null!=this[_0x4e14[126]][_0x4e14[265]]&&this[_0x4e14[126]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[126]]),this[_0x4e14[126]]=null)};function mxCellRenderer(){}mxCellRenderer[_0x4e14[202]][_0x4e14[2149]]=mxConnector;mxCellRenderer[_0x4e14[202]][_0x4e14[2150]]=mxRectangleShape;mxCellRenderer[_0x4e14[202]][_0x4e14[2151]]=mxText;mxCellRenderer[_0x4e14[202]][_0x4e14[2152]]= !0;mxCellRenderer[_0x4e14[202]][_0x4e14[2153]]={};mxCellRenderer[_0x4e14[2154]]=function(_0xa132x2,_0xa132x3){mxCellRenderer[_0x4e14[202]][_0x4e14[2153]][_0xa132x2]=_0xa132x3};mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_LINE,mxLine);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer[_0x4e14[2154]](mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer[_0x4e14[202]][_0x4e14[2155]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]();if(null!=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[526]]&&null==_0xa132x2[_0x4e14[253]]&&_0xa132x2[_0x4e14[246]]!=_0xa132x2[_0x4e14[441]][_0x4e14[1741]]&&(_0xa132x4[_0x4e14[1193]](_0xa132x2[_0x4e14[246]])||_0xa132x4[_0x4e14[250]](_0xa132x2[_0x4e14[246]]))){if(this[_0x4e14[2156]](_0xa132x2),null!=_0xa132x2[_0x4e14[253]]&&(null==_0xa132x3||_0xa132x3)){this[_0x4e14[2157]](_0xa132x2),_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2158]]||_0xa132x4[_0x4e14[250]](_0xa132x2[_0x4e14[246]])?_0xa132x2[_0x4e14[2081]]= !0:_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2159]]&&null!=this[_0x4e14[2160]]&&(this[_0x4e14[2160]][_0x4e14[265]]==_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]]?this[_0x4e14[2161]](_0xa132x2,this[_0x4e14[2160]]):this[_0x4e14[2160]]=null),_0xa132x2[_0x4e14[253]][_0x4e14[255]]=_0xa132x2[_0x4e14[441]][_0x4e14[255]],this[_0x4e14[2162]](_0xa132x2),this[_0x4e14[2163]](_0xa132x2)}};};mxCellRenderer[_0x4e14[202]][_0x4e14[2157]]=function(_0xa132x2){_0xa132x2[_0x4e14[253]][_0x4e14[176]](_0xa132x2[_0x4e14[441]][_0x4e14[2024]]())};mxCellRenderer[_0x4e14[202]][_0x4e14[2164]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=null,_0xa132x5=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132x9=_0xa132x5[_0x4e14[502]](),_0xa132xa=_0xa132x2[_0x4e14[246]],_0xa132x12=_0xa132x9[_0x4e14[1197]](_0xa132xa);null!=_0xa132x12&&null==_0xa132x4;){_0xa132x4=this[_0x4e14[2165]](_0xa132x5,_0xa132x12,_0xa132xa,_0xa132x3),_0xa132xa=_0xa132x12,_0xa132x12=_0xa132x9[_0x4e14[1197]](_0xa132xa)};return _0xa132x4;};mxCellRenderer[_0x4e14[202]][_0x4e14[2165]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=null,_0xa132xa=_0xa132x2[_0x4e14[502]]();for(_0xa132x4=null!=_0xa132x4?_0xa132x3[_0x4e14[1738]](_0xa132x4)-1:_0xa132xa[_0x4e14[262]](_0xa132x3)-1;0<=_0xa132x4&&null==_0xa132x9;_0xa132x4--){_0xa132x9=this[_0x4e14[2165]](_0xa132x2,_0xa132xa[_0x4e14[263]](_0xa132x3,_0xa132x4),null,_0xa132x5)};if(null==_0xa132x9&&(_0xa132x9=_0xa132x2[_0x4e14[441]][_0x4e14[248]](_0xa132x3),null!=_0xa132x9&&(null==_0xa132x9[_0x4e14[253]]||null==_0xa132x9[_0x4e14[253]][_0x4e14[252]]||_0xa132x9[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]]!=_0xa132x5))){_0xa132x9=null};return _0xa132x9;};mxCellRenderer[_0x4e14[202]][_0x4e14[2166]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]],_0xa132x4=this[_0x4e14[2164]](_0xa132x2,_0xa132x3),_0xa132x5=_0xa132x3[_0x4e14[285]];null!=_0xa132x4&&(_0xa132x5=_0xa132x4[_0x4e14[253]][_0x4e14[252]],null!=_0xa132x4[_0x4e14[963]]&&(null!=_0xa132x4[_0x4e14[963]][_0x4e14[252]]&&_0xa132x4[_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==_0xa132x3)&&(_0xa132x5=_0xa132x4[_0x4e14[963]][_0x4e14[252]]),_0xa132x5=_0xa132x5[_0x4e14[287]]);this[_0x4e14[2161]](_0xa132x2,_0xa132x5);};mxCellRenderer[_0x4e14[202]][_0x4e14[2167]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[441]],_0xa132x4=_0xa132x3[_0x4e14[1179]][_0x4e14[502]]();if(_0xa132x3[_0x4e14[1179]][_0x4e14[2159]]){if(null==this[_0x4e14[2160]]||null==this[_0x4e14[2160]][_0x4e14[265]]||this[_0x4e14[2160]][_0x4e14[265]]!=_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]]){this[_0x4e14[2160]]=_0xa132x2[_0x4e14[253]][_0x4e14[252]]}}else {if(_0xa132x3[_0x4e14[1179]][_0x4e14[2168]]){var _0xa132x5=_0xa132x2[_0x4e14[253]][_0x4e14[252]],_0xa132x9=_0xa132x5[_0x4e14[265]],_0xa132x4=_0xa132x4[_0x4e14[1197]](_0xa132x2[_0x4e14[246]]),_0xa132x3=_0xa132x3[_0x4e14[248]](_0xa132x4),_0xa132x9=null!=_0xa132x3&&null!=_0xa132x3[_0x4e14[253]]&&null!=_0xa132x3[_0x4e14[253]][_0x4e14[252]]?_0xa132x3[_0x4e14[253]][_0x4e14[252]][_0x4e14[287]]:_0xa132x9[_0x4e14[285]];null!=_0xa132x9&&_0xa132x9!=_0xa132x5&&this[_0x4e14[2161]](_0xa132x2,_0xa132x9);}};};mxCellRenderer[_0x4e14[202]][_0x4e14[2161]]=function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]][_0x4e14[950]](_0xa132x2[_0x4e14[253]][_0x4e14[252]],_0xa132x3);null!=_0xa132x2[_0x4e14[963]]&&(null!=_0xa132x2[_0x4e14[963]][_0x4e14[252]]&&_0xa132x2[_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]])&&_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]][_0x4e14[950]](_0xa132x2[_0x4e14[963]][_0x4e14[252]],_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[287]]);};mxCellRenderer[_0x4e14[202]][_0x4e14[2156]]=function(_0xa132x2){if(null!=_0xa132x2[_0x4e14[124]]){var _0xa132x3=mxStencilRegistry[_0x4e14[1560]](_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2059]]]);null!=_0xa132x3?_0xa132x2[_0x4e14[253]]= new mxShape(_0xa132x3):(_0xa132x3=this[_0x4e14[2169]](_0xa132x2),_0xa132x2[_0x4e14[253]]= new _0xa132x3);_0xa132x2[_0x4e14[253]][_0x4e14[1525]]=_0xa132x2[_0x4e14[439]];_0xa132x2[_0x4e14[253]][_0x4e14[1562]]= new mxRectangle(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],_0xa132x2[_0x4e14[117]],_0xa132x2[_0x4e14[119]]);_0xa132x2[_0x4e14[253]][_0x4e14[507]]=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[507]];this[_0x4e14[2170]](_0xa132x2);}};mxCellRenderer[_0x4e14[202]][_0x4e14[2171]]=function(_0xa132x2){return null!=_0xa132x2?mxCellRenderer[_0x4e14[202]][_0x4e14[2153]][_0xa132x2]:null};mxCellRenderer[_0x4e14[202]][_0x4e14[2169]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[2171]](_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2059]]]);null==_0xa132x3&&(_0xa132x3=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]])?this[_0x4e14[2149]]:this[_0x4e14[2150]]);return _0xa132x3;};mxCellRenderer[_0x4e14[202]][_0x4e14[2170]]=function(_0xa132x2){_0xa132x2[_0x4e14[253]][_0x4e14[183]](_0xa132x2);_0xa132x2[_0x4e14[253]][_0x4e14[618]]=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[1202]](_0xa132x2);_0xa132x2[_0x4e14[253]][_0x4e14[630]]=this[_0x4e14[2171]](_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2172]](_0xa132x2));_0xa132x2[_0x4e14[253]][_0x4e14[632]]=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2173]](_0xa132x2);_0xa132x2[_0x4e14[253]][_0x4e14[634]]=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2174]](_0xa132x2);_0xa132x2[_0x4e14[253]][_0x4e14[638]]=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2175]]];_0xa132x2[_0x4e14[253]][_0x4e14[631]]=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2176]](_0xa132x2);this[_0x4e14[2177]](_0xa132x2);};mxCellRenderer[_0x4e14[202]][_0x4e14[2177]]=function(_0xa132x2){null!=_0xa132x2[_0x4e14[253]]&&(this[_0x4e14[2178]](_0xa132x2,_0x4e14[632],mxConstants.STYLE_FILLCOLOR),this[_0x4e14[2178]](_0xa132x2,_0x4e14[634],mxConstants.STYLE_GRADIENTCOLOR),this[_0x4e14[2178]](_0xa132x2,_0x4e14[1334],mxConstants.STYLE_FILLCOLOR),this[_0x4e14[2178]](_0xa132x2,_0x4e14[1336],mxConstants.STYLE_STROKECOLOR),this[_0x4e14[2178]](_0xa132x2,_0x4e14[1299],mxConstants.STYLE_GRADIENTCOLOR))};mxCellRenderer[_0x4e14[202]][_0x4e14[2178]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x2[_0x4e14[253]][_0xa132x3],_0xa132x9=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132xa=null;_0x4e14[1549]==_0xa132x5?_0xa132xa=_0xa132x9[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0x4e14[246]]):_0x4e14[687]==_0xa132x5?(_0xa132xa=null!=_0xa132x9[_0x4e14[251]][_0x4e14[1709]](_0xa132x2[_0x4e14[246]],!1)?_0xa132x9[_0x4e14[251]][_0x4e14[1709]](_0xa132x2[_0x4e14[246]],!1):_0xa132x2[_0x4e14[246]],_0xa132xa=_0xa132x9[_0x4e14[2179]](_0xa132xa),_0xa132x4=_0xa132x9[_0x4e14[2180]]):_0x4e14[2181]==_0xa132x5&&(_0xa132x2[_0x4e14[253]][_0xa132x3]=_0xa132x2[_0x4e14[253]][_0x4e14[632]]);null!=_0xa132xa&&(_0xa132x5=_0xa132x9[_0x4e14[249]]()[_0x4e14[248]](_0xa132xa),_0xa132x2[_0x4e14[253]][_0xa132x3]=null,null!=_0xa132x5&&(_0xa132x2[_0x4e14[253]][_0xa132x3]=null!=_0xa132x5[_0x4e14[253]]&&_0x4e14[632]!=_0xa132x3?_0xa132x5[_0x4e14[253]][_0xa132x3]:_0xa132x5[_0x4e14[124]][_0xa132x4]));};mxCellRenderer[_0x4e14[202]][_0x4e14[2182]]=function(_0xa132x2){return _0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2183]](_0xa132x2[_0x4e14[246]])};mxCellRenderer[_0x4e14[202]][_0x4e14[2184]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[441]][_0x4e14[1179]];_0xa132x4[_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]]);if(0<_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2185]]]||null==_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2185]]]){var _0xa132x5=_0xa132x4[_0x4e14[2186]](_0xa132x2[_0x4e14[246]])||null!=_0xa132x3&&mxUtils[_0x4e14[1331]](_0xa132x3);_0xa132x2[_0x4e14[963]]= new this[_0x4e14[2151]](_0xa132x3, new mxRectangle,_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2064]]]||mxConstants[_0x4e14[479]],_0xa132x4[_0x4e14[2187]](_0xa132x2),_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2069]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2188]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2185]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2189]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2143]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2144]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2145]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2146]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2147]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2190]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2191]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2192]]],_0xa132x4[_0x4e14[2131]](_0xa132x2[_0x4e14[246]])&&_0xa132x4[_0x4e14[2186]](_0xa132x2[_0x4e14[246]]),_0xa132x4[_0x4e14[2130]](_0xa132x2[_0x4e14[246]]),_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2193]]],_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2194]]]);_0xa132x2[_0x4e14[963]][_0x4e14[461]]=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_TEXT_OPACITY,100);_0xa132x2[_0x4e14[963]][_0x4e14[507]]=_0xa132x5?mxConstants[_0x4e14[1656]]:_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[507]];_0xa132x2[_0x4e14[963]][_0x4e14[724]]=_0xa132x2;this[_0x4e14[2195]](_0xa132x2);var _0xa132x9=!1,_0xa132xa=function(_0xa132x3){var _0xa132x5=_0xa132x2;if(mxClient[_0x4e14[754]]||_0xa132x9){_0xa132x5=mxEvent[_0x4e14[731]](_0xa132x3),_0xa132x3=mxEvent[_0x4e14[733]](_0xa132x3),_0xa132x3=mxUtils[_0x4e14[2196]](_0xa132x4[_0x4e14[526]],_0xa132x5,_0xa132x3),_0xa132x5=_0xa132x4[_0x4e14[441]][_0x4e14[248]](_0xa132x4[_0x4e14[999]](_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]]))};return _0xa132x5;};mxEvent[_0x4e14[759]](_0xa132x2[_0x4e14[963]][_0x4e14[252]],mxUtils[_0x4e14[885]](this,function(_0xa132x3){this[_0x4e14[2197]](_0xa132x2,_0xa132x3)&&(_0xa132x4[_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x3,_0xa132x2)),_0xa132x9=_0xa132x4[_0x4e14[507]]!=mxConstants[_0x4e14[508]]&&_0x4e14[2198]==mxEvent[_0x4e14[728]](_0xa132x3)[_0x4e14[301]])}),mxUtils[_0x4e14[885]](this,function(_0xa132x3){this[_0x4e14[2197]](_0xa132x2,_0xa132x3)&&_0xa132x4[_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x3,_0xa132xa(_0xa132x3)))}),mxUtils[_0x4e14[885]](this,function(_0xa132x3){this[_0x4e14[2197]](_0xa132x2,_0xa132x3)&&(_0xa132x4[_0x4e14[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xa132x3,_0xa132xa(_0xa132x3))),_0xa132x9= !1)}));mxEvent[_0x4e14[169]](_0xa132x2[_0x4e14[963]][_0x4e14[252]],_0x4e14[760],mxUtils[_0x4e14[885]](this,function(_0xa132x3){this[_0x4e14[2197]](_0xa132x2,_0xa132x3)&&(_0xa132x4[_0x4e14[761]](_0xa132x3,_0xa132x2[_0x4e14[246]]),mxEvent[_0x4e14[722]](_0xa132x3))}));};};mxCellRenderer[_0x4e14[202]][_0x4e14[2195]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[441]][_0x4e14[1179]];_0xa132x2[_0x4e14[963]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]&&(mxClient[_0x4e14[48]]&&mxClient[_0x4e14[2199]]?_0xa132x2[_0x4e14[963]][_0x4e14[176]](_0xa132x3[_0x4e14[526]]):mxUtils[_0x4e14[458]](_0xa132x2[_0x4e14[441]][_0x4e14[2024]]())&&(null!=_0xa132x2[_0x4e14[253]][_0x4e14[685]]?_0xa132x2[_0x4e14[963]][_0x4e14[176]](_0xa132x2[_0x4e14[253]][_0x4e14[685]]):_0xa132x2[_0x4e14[963]][_0x4e14[176]](_0xa132x2[_0x4e14[253]][_0x4e14[252]])));null==_0xa132x2[_0x4e14[963]][_0x4e14[252]]&&(_0xa132x2[_0x4e14[963]][_0x4e14[176]](_0xa132x2[_0x4e14[441]][_0x4e14[2024]]()),null!=_0xa132x2[_0x4e14[253]]&&null!=_0xa132x2[_0x4e14[963]]&&_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]][_0x4e14[950]](_0xa132x2[_0x4e14[963]][_0x4e14[252]],_0xa132x2[_0x4e14[253]][_0x4e14[252]][_0x4e14[287]]));};mxCellRenderer[_0x4e14[202]][_0x4e14[2162]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2200]](_0xa132x2[_0x4e14[246]]),_0xa132x4=null;if(null!=_0xa132x3){for(var _0xa132x4= new mxDictionary,_0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){var _0xa132x9=null!=_0xa132x2[_0x4e14[1211]]?_0xa132x2[_0x4e14[1211]][_0x4e14[205]](_0xa132x3[_0xa132x5]):null;null==_0xa132x9&&(_0xa132x9= new mxImageShape( new mxRectangle,_0xa132x3[_0xa132x5][_0x4e14[618]][_0x4e14[390]]),_0xa132x9[_0x4e14[507]]=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[507]],_0xa132x9[_0x4e14[1674]]= !1,_0xa132x9[_0x4e14[2201]]=_0xa132x3[_0xa132x5],this[_0x4e14[2023]](_0xa132x2,_0xa132x9),this[_0x4e14[2202]](_0xa132x2,_0xa132x3[_0xa132x5],_0xa132x9),null!=_0xa132x3[_0xa132x5][_0x4e14[270]]&&(_0xa132x9[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=_0xa132x3[_0xa132x5][_0x4e14[270]]));_0xa132x4[_0x4e14[204]](_0xa132x3[_0xa132x5],_0xa132x9);}};null!=_0xa132x2[_0x4e14[1211]]&&_0xa132x2[_0x4e14[1211]][_0x4e14[209]](function(_0xa132x2,_0xa132x3){_0xa132x3[_0x4e14[515]]()});_0xa132x2[_0x4e14[1211]]=_0xa132x4;};mxCellRenderer[_0x4e14[202]][_0x4e14[2023]]=function(_0xa132x2,_0xa132x3){_0xa132x3[_0x4e14[176]](_0xa132x2[_0x4e14[441]][_0x4e14[1524]]())};mxCellRenderer[_0x4e14[202]][_0x4e14[2202]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x2[_0x4e14[441]][_0x4e14[1179]];mxEvent[_0x4e14[169]](_0xa132x4[_0x4e14[252]],_0x4e14[173],function(_0xa132x4){_0xa132x5[_0x4e14[2203]]()&&_0xa132x5[_0x4e14[2126]](!_0xa132x5[_0x4e14[2134]]());_0xa132x3[_0x4e14[746]]( new mxEventObject(mxEvent.CLICK,_0x4e14[763],_0xa132x4,_0x4e14[246],_0xa132x2[_0x4e14[246]]));});mxEvent[_0x4e14[759]](_0xa132x4[_0x4e14[252]],function(_0xa132x2){mxEvent[_0x4e14[722]](_0xa132x2)},function(_0xa132x3){_0xa132x5[_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x3,_0xa132x2))});mxClient[_0x4e14[754]]&&mxEvent[_0x4e14[169]](_0xa132x4[_0x4e14[252]],_0x4e14[757],function(_0xa132x4){_0xa132x3[_0x4e14[746]]( new mxEventObject(mxEvent.CLICK,_0x4e14[763],_0xa132x4,_0x4e14[246],_0xa132x2[_0x4e14[246]]))});};mxCellRenderer[_0x4e14[202]][_0x4e14[2204]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132x4=_0xa132x3[_0x4e14[2205]](_0xa132x2);if(_0xa132x3[_0x4e14[2206]]&&null!=_0xa132x4){if(null==_0xa132x2[_0x4e14[2207]]){var _0xa132x5= new mxRectangle(0,0,_0xa132x4[_0x4e14[117]],_0xa132x4[_0x4e14[119]]);_0xa132x2[_0x4e14[2207]]= new mxImageShape(_0xa132x5,_0xa132x4[_0x4e14[390]]);_0xa132x2[_0x4e14[2207]][_0x4e14[1674]]= !1;_0xa132x2[_0x4e14[2207]][_0x4e14[507]]=_0xa132x3[_0x4e14[507]];this[_0x4e14[2208]](_0xa132x2,_0xa132x2[_0x4e14[2207]],!0,function(_0xa132x4){if(_0xa132x3[_0x4e14[994]]()){var _0xa132x5=!_0xa132x3[_0x4e14[1742]](_0xa132x2[_0x4e14[246]]);_0xa132x3[_0x4e14[847]](_0xa132x5,!1,[_0xa132x2[_0x4e14[246]]]);mxEvent[_0x4e14[722]](_0xa132x4);}});}}else {null!=_0xa132x2[_0x4e14[2207]]&&(_0xa132x2[_0x4e14[2207]][_0x4e14[515]](),_0xa132x2[_0x4e14[2207]]=null)};};mxCellRenderer[_0x4e14[202]][_0x4e14[2208]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=_0xa132x2[_0x4e14[441]][_0x4e14[1179]];_0xa132x9[_0x4e14[2186]](_0xa132x2[_0x4e14[246]])&&mxClient[_0x4e14[2199]]&&_0xa132x9[_0x4e14[507]]==mxConstants[_0x4e14[508]]?(_0xa132x3[_0x4e14[507]]=mxConstants[_0x4e14[2209]],_0xa132x3[_0x4e14[176]](_0xa132x9[_0x4e14[526]]),_0xa132x3[_0x4e14[252]][_0x4e14[124]][_0x4e14[931]]=1):_0xa132x3[_0x4e14[176]](_0xa132x2[_0x4e14[441]][_0x4e14[1524]]());_0xa132x3=_0xa132x3[_0x4e14[2210]]||_0xa132x3[_0x4e14[252]];_0xa132x5&&(_0xa132x9[_0x4e14[994]]()&&(_0xa132x3[_0x4e14[124]][_0x4e14[270]]=_0x4e14[356]),mxEvent[_0x4e14[169]](_0xa132x3,_0x4e14[173],_0xa132x5));_0xa132x4&&mxEvent[_0x4e14[759]](_0xa132x3,function(_0xa132x3){_0xa132x9[_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x3,_0xa132x2));mxEvent[_0x4e14[722]](_0xa132x3);},function(_0xa132x3){_0xa132x9[_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x3,_0xa132x2))});return _0xa132x3;};mxCellRenderer[_0x4e14[202]][_0x4e14[2211]]=function(_0xa132x2,_0xa132x3){return !0};mxCellRenderer[_0x4e14[202]][_0x4e14[2197]]=function(_0xa132x2,_0xa132x3){return !0};mxCellRenderer[_0x4e14[202]][_0x4e14[2163]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132x4=function(_0xa132x4){var _0xa132x5=_0xa132x2;if(_0xa132x3[_0x4e14[507]]!=mxConstants[_0x4e14[508]]&&_0x4e14[2198]==mxEvent[_0x4e14[728]](_0xa132x4)[_0x4e14[301]]||mxClient[_0x4e14[754]]){_0xa132x5=mxEvent[_0x4e14[731]](_0xa132x4),_0xa132x4=mxEvent[_0x4e14[733]](_0xa132x4),_0xa132x4=mxUtils[_0x4e14[2196]](_0xa132x3[_0x4e14[526]],_0xa132x5,_0xa132x4),_0xa132x5=_0xa132x3[_0x4e14[441]][_0x4e14[248]](_0xa132x3[_0x4e14[999]](_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]]))};return _0xa132x5;},_0xa132x5=!1;mxEvent[_0x4e14[169]](_0xa132x2[_0x4e14[253]][_0x4e14[252]],_0x4e14[2212],mxUtils[_0x4e14[885]](this,function(_0xa132x2){_0xa132x3[_0x4e14[2213]]=0;_0xa132x5= !0;mxEvent[_0x4e14[722]](_0xa132x2);}));mxEvent[_0x4e14[759]](_0xa132x2[_0x4e14[253]][_0x4e14[252]],mxUtils[_0x4e14[885]](this,function(_0xa132x4){this[_0x4e14[2211]](_0xa132x2,_0xa132x4)&&!_0xa132x5?_0xa132x3[_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x4,null!=_0xa132x2[_0x4e14[253]]&&mxEvent[_0x4e14[728]](_0xa132x4)==_0xa132x2[_0x4e14[253]][_0x4e14[905]]?null:_0xa132x2)):_0xa132x5&&mxEvent[_0x4e14[722]](_0xa132x4)}),mxUtils[_0x4e14[885]](this,function(_0xa132x9){this[_0x4e14[2211]](_0xa132x2,_0xa132x9)&&!_0xa132x5?_0xa132x3[_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x9,null!=_0xa132x2[_0x4e14[253]]&&mxEvent[_0x4e14[728]](_0xa132x9)==_0xa132x2[_0x4e14[253]][_0x4e14[905]]?null:_0xa132x4(_0xa132x9))):_0xa132x5&&mxEvent[_0x4e14[722]](_0xa132x9)}),mxUtils[_0x4e14[885]](this,function(_0xa132x9){this[_0x4e14[2211]](_0xa132x2,_0xa132x9)&&!_0xa132x5?_0xa132x3[_0x4e14[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xa132x9,null!=_0xa132x2[_0x4e14[253]]&&mxEvent[_0x4e14[728]](_0xa132x9)==_0xa132x2[_0x4e14[253]][_0x4e14[905]]?null:_0xa132x4(_0xa132x9))):_0xa132x5&&mxEvent[_0x4e14[722]](_0xa132x9)}));var _0xa132x9=mxClient[_0x4e14[754]]?_0x4e14[2214]:_0x4e14[760];mxEvent[_0x4e14[169]](_0xa132x2[_0x4e14[253]][_0x4e14[252]],_0xa132x9,mxUtils[_0x4e14[885]](this,function(_0xa132x4){_0xa132x5= !1;_0x4e14[2214]==_0xa132x9?(_0xa132x3[_0x4e14[2213]]=0,_0xa132x3[_0x4e14[2215]]&&(_0xa132x3[_0x4e14[2216]](_0xa132x2,_0xa132x4),mxEvent[_0x4e14[722]](_0xa132x4))):this[_0x4e14[2211]](_0xa132x2,_0xa132x4)&&(_0xa132x3[_0x4e14[761]](_0xa132x4,null!=_0xa132x2[_0x4e14[253]]&&mxEvent[_0x4e14[728]](_0xa132x4)==_0xa132x2[_0x4e14[253]][_0x4e14[905]]?null:_0xa132x2[_0x4e14[246]]),mxEvent[_0x4e14[722]](_0xa132x4));}));};mxCellRenderer[_0x4e14[202]][_0x4e14[2217]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[2182]](_0xa132x2);if(null==_0xa132x2[_0x4e14[963]]&&null!=_0xa132x4&&(mxUtils[_0x4e14[1331]](_0xa132x4)||0<_0xa132x4[_0x4e14[67]])){this[_0x4e14[2184]](_0xa132x2,_0xa132x4)}else {if(null!=_0xa132x2[_0x4e14[963]]&&(null==_0xa132x4||0==_0xa132x4[_0x4e14[67]])){_0xa132x2[_0x4e14[963]][_0x4e14[515]](),_0xa132x2[_0x4e14[963]]=null}};if(null!=_0xa132x2[_0x4e14[963]]){var _0xa132x5=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132x9=_0xa132x5[_0x4e14[2131]](_0xa132x2[_0x4e14[246]]),_0xa132x5=_0xa132x5[_0x4e14[2130]](_0xa132x2[_0x4e14[246]]),_0xa132xa=this[_0x4e14[2218]](_0xa132x2);if(_0xa132x3||_0xa132x2[_0x4e14[963]][_0x4e14[131]]!=_0xa132x4||_0xa132x2[_0x4e14[963]][_0x4e14[2131]]!=_0xa132x9||_0xa132x2[_0x4e14[963]][_0x4e14[2219]]!=_0xa132x5||_0xa132x2[_0x4e14[963]][_0x4e14[255]]!=_0xa132x2[_0x4e14[441]][_0x4e14[255]]||!_0xa132x2[_0x4e14[963]][_0x4e14[1562]][_0x4e14[237]](_0xa132xa)){_0xa132x2[_0x4e14[963]][_0x4e14[131]]=_0xa132x4,_0xa132x2[_0x4e14[963]][_0x4e14[1562]]=_0xa132xa,_0xa132x2[_0x4e14[963]][_0x4e14[255]]=this[_0x4e14[2220]](_0xa132x2),_0xa132x2[_0x4e14[963]][_0x4e14[2131]]=_0xa132x9,_0xa132x2[_0x4e14[963]][_0x4e14[2219]]=_0xa132x5,_0xa132x2[_0x4e14[963]][_0x4e14[258]]()};};};mxCellRenderer[_0x4e14[202]][_0x4e14[2220]]=function(_0xa132x2){return _0xa132x2[_0x4e14[441]][_0x4e14[255]]};mxCellRenderer[_0x4e14[202]][_0x4e14[2218]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132x4=_0xa132x2[_0x4e14[441]][_0x4e14[255]],_0xa132x5=_0xa132x3[_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]]),_0xa132x9= new mxRectangle(_0xa132x2[_0x4e14[2079]][_0x4e14[235]],_0xa132x2[_0x4e14[2079]][_0x4e14[236]]);_0xa132x2[_0x4e14[963]][_0x4e14[1672]]();_0xa132x5?(_0xa132x5=_0xa132x2[_0x4e14[963]][_0x4e14[1673]](),_0xa132x9[_0x4e14[235]]+=_0xa132x5[_0x4e14[235]]*_0xa132x4,_0xa132x9[_0x4e14[236]]+=_0xa132x5[_0x4e14[236]]*_0xa132x4,_0xa132x3=_0xa132x3[_0x4e14[1198]](_0xa132x2[_0x4e14[246]]),null!=_0xa132x3&&(_0xa132x9[_0x4e14[117]]=Math[_0x4e14[160]](0,_0xa132x2[_0x4e14[963]][_0x4e14[1655]][_0x4e14[235]]*_0xa132x3[_0x4e14[117]]*_0xa132x4-_0xa132x2[_0x4e14[963]][_0x4e14[659]]*_0xa132x4-_0xa132x2[_0x4e14[963]][_0x4e14[661]]*_0xa132x4),_0xa132x9[_0x4e14[119]]=Math[_0x4e14[160]](0,_0xa132x2[_0x4e14[963]][_0x4e14[1655]][_0x4e14[236]]*_0xa132x3[_0x4e14[119]]*_0xa132x4-_0xa132x2[_0x4e14[963]][_0x4e14[658]]*_0xa132x4-_0xa132x2[_0x4e14[963]][_0x4e14[660]]*_0xa132x4))):(_0xa132x2[_0x4e14[963]][_0x4e14[1590]]()&&(_0xa132x5=_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[235]]=_0xa132x9[_0x4e14[236]],_0xa132x9[_0x4e14[236]]=_0xa132x5),_0xa132x9[_0x4e14[235]]+=_0xa132x2[_0x4e14[235]],_0xa132x9[_0x4e14[236]]+=_0xa132x2[_0x4e14[236]],_0xa132x9[_0x4e14[117]]=Math[_0x4e14[160]](1,_0xa132x2[_0x4e14[117]]),_0xa132x9[_0x4e14[119]]=Math[_0x4e14[160]](1,_0xa132x2[_0x4e14[119]]),_0xa132x3[_0x4e14[1730]](_0xa132x2[_0x4e14[246]])&&(_0xa132x3=_0xa132x3[_0x4e14[1731]](_0xa132x2[_0x4e14[246]]),0<_0xa132x3[_0x4e14[117]]?(_0xa132x5=Math[_0x4e14[243]](_0xa132x9[_0x4e14[117]],_0xa132x3[_0x4e14[117]]*_0xa132x4),_0xa132x2[_0x4e14[253]][_0x4e14[623]]&&(_0xa132x9[_0x4e14[235]]+=_0xa132x9[_0x4e14[117]]-_0xa132x5),_0xa132x9[_0x4e14[117]]=_0xa132x5):0<_0xa132x3[_0x4e14[119]]&&(_0xa132x5=Math[_0x4e14[243]](_0xa132x9[_0x4e14[119]],_0xa132x3[_0x4e14[119]]*_0xa132x4),_0xa132x2[_0x4e14[253]][_0x4e14[624]]&&(_0xa132x9[_0x4e14[236]]+=_0xa132x9[_0x4e14[119]]-_0xa132x5),_0xa132x9[_0x4e14[119]]=_0xa132x5)),this[_0x4e14[2221]](_0xa132x2,_0xa132x9));return _0xa132x9;};mxCellRenderer[_0x4e14[202]][_0x4e14[2221]]=function(_0xa132x2,_0xa132x3){if(_0xa132x2[_0x4e14[963]][_0x4e14[1590]]()){var _0xa132x4=(_0xa132x2[_0x4e14[117]]-_0xa132x2[_0x4e14[119]])/2;_0xa132x3[_0x4e14[235]]+=_0xa132x4;_0xa132x3[_0x4e14[236]]-=_0xa132x4;_0xa132x4=_0xa132x3[_0x4e14[117]];_0xa132x3[_0x4e14[117]]=_0xa132x3[_0x4e14[119]];_0xa132x3[_0x4e14[119]]=_0xa132x4;};_0xa132x3[_0x4e14[235]]-=_0xa132x2[_0x4e14[963]][_0x4e14[1655]][_0x4e14[235]]*_0xa132x3[_0x4e14[117]];_0xa132x3[_0x4e14[236]]-=_0xa132x2[_0x4e14[963]][_0x4e14[1655]][_0x4e14[236]]*_0xa132x3[_0x4e14[119]];if(_0x4e14[1334]!=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2193]]]){var _0xa132x4=_0xa132x2[_0x4e14[441]][_0x4e14[255]],_0xa132x5=_0xa132x2[_0x4e14[963]][_0x4e14[1673]]();_0xa132x3[_0x4e14[235]]+=_0xa132x5[_0x4e14[235]]*_0xa132x4;_0xa132x3[_0x4e14[236]]+=_0xa132x5[_0x4e14[236]]*_0xa132x4;_0xa132x3[_0x4e14[117]]=Math[_0x4e14[160]](0,_0xa132x3[_0x4e14[117]]-_0xa132x2[_0x4e14[963]][_0x4e14[659]]*_0xa132x4-_0xa132x2[_0x4e14[963]][_0x4e14[661]]*_0xa132x4);_0xa132x3[_0x4e14[119]]=Math[_0x4e14[160]](0,_0xa132x3[_0x4e14[119]]-_0xa132x2[_0x4e14[963]][_0x4e14[658]]*_0xa132x4-_0xa132x2[_0x4e14[963]][_0x4e14[660]]*_0xa132x4);};var _0xa132x9=_0xa132x2[_0x4e14[963]][_0x4e14[1615]]();if(0!=_0xa132x9&&(null!=_0xa132x2&&_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[251]][_0x4e14[1193]](_0xa132x2[_0x4e14[246]]))&&(_0xa132x4=_0xa132x2[_0x4e14[241]](),_0xa132x5=_0xa132x2[_0x4e14[242]](),_0xa132x3[_0x4e14[235]]!=_0xa132x4||_0xa132x3[_0x4e14[236]]!=_0xa132x5)){_0xa132x9*=Math[_0x4e14[424]]/180,pt=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]]),Math[_0x4e14[426]](_0xa132x9),Math[_0x4e14[427]](_0xa132x9), new mxPoint(_0xa132x4,_0xa132x5)),_0xa132x3[_0x4e14[235]]=pt[_0x4e14[235]],_0xa132x3[_0x4e14[236]]=pt[_0x4e14[236]]};};mxCellRenderer[_0x4e14[202]][_0x4e14[2222]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[2162]](_0xa132x2);if(null!=_0xa132x2[_0x4e14[1211]]){var _0xa132x4=mxUtils[_0x4e14[1454]](mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ROTATION,0),90),_0xa132x5=mxUtils[_0x4e14[431]](_0xa132x4),_0xa132x9=Math[_0x4e14[426]](_0xa132x5),_0xa132xa=Math[_0x4e14[427]](_0xa132x5);_0xa132x2[_0x4e14[1211]][_0x4e14[209]](function(_0xa132x5,_0xa132x13){var _0xa132x14=_0xa132x13[_0x4e14[2201]][_0x4e14[1799]](_0xa132x2);if(!_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]])&&null!=_0xa132x2[_0x4e14[253]]&&0!=_0xa132x4){var _0xa132x15=_0xa132x14[_0x4e14[241]](),_0xa132x16=_0xa132x14[_0x4e14[242]](),_0xa132x16=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x15,_0xa132x16),_0xa132x9,_0xa132xa, new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]())),_0xa132x15=_0xa132x16[_0x4e14[235]],_0xa132x16=_0xa132x16[_0x4e14[236]];_0xa132x14[_0x4e14[235]]=Math[_0x4e14[488]](_0xa132x15-_0xa132x14[_0x4e14[117]]/2);_0xa132x14[_0x4e14[236]]=Math[_0x4e14[488]](_0xa132x16-_0xa132x14[_0x4e14[119]]/2);};if(_0xa132x3||null==_0xa132x13[_0x4e14[1562]]||_0xa132x13[_0x4e14[255]]!=_0xa132x2[_0x4e14[441]][_0x4e14[255]]||!_0xa132x13[_0x4e14[1562]][_0x4e14[237]](_0xa132x14)){_0xa132x13[_0x4e14[1562]]=_0xa132x14,_0xa132x13[_0x4e14[255]]=_0xa132x2[_0x4e14[441]][_0x4e14[255]],_0xa132x13[_0x4e14[258]]()};});};};mxCellRenderer[_0x4e14[202]][_0x4e14[2223]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2[_0x4e14[2207]]){var _0xa132x4=this[_0x4e14[2224]](_0xa132x2),_0xa132x5=this[_0x4e14[2152]]?mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ROTATION,0):_0xa132x2[_0x4e14[253]][_0x4e14[1615]](),_0xa132x9=_0xa132x2[_0x4e14[441]][_0x4e14[255]];if(_0xa132x3||_0xa132x2[_0x4e14[2207]][_0x4e14[255]]!=_0xa132x9||!_0xa132x2[_0x4e14[2207]][_0x4e14[1562]][_0x4e14[237]](_0xa132x4)||_0xa132x2[_0x4e14[2207]][_0x4e14[603]]!=_0xa132x5){_0xa132x2[_0x4e14[2207]][_0x4e14[603]]=_0xa132x5,_0xa132x2[_0x4e14[2207]][_0x4e14[1562]]=_0xa132x4,_0xa132x2[_0x4e14[2207]][_0x4e14[255]]=_0xa132x9,_0xa132x2[_0x4e14[2207]][_0x4e14[258]]()};}};mxCellRenderer[_0x4e14[202]][_0x4e14[2224]]=function(_0xa132x2){if(null!=_0xa132x2[_0x4e14[2207]]){var _0xa132x3=_0xa132x2[_0x4e14[2207]][_0x4e14[255]],_0xa132x4=_0xa132x2[_0x4e14[2207]][_0x4e14[1562]][_0x4e14[117]]/_0xa132x3,_0xa132x3=_0xa132x2[_0x4e14[2207]][_0x4e14[1562]][_0x4e14[119]]/_0xa132x3,_0xa132x5=_0xa132x2[_0x4e14[441]][_0x4e14[255]],_0xa132x9=_0xa132x2[_0x4e14[241]](),_0xa132xa=_0xa132x2[_0x4e14[242]]();if(!_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]])&&(_0xa132x9=_0xa132x2[_0x4e14[235]]+_0xa132x4*_0xa132x5,_0xa132xa=_0xa132x2[_0x4e14[236]]+_0xa132x3*_0xa132x5,null!=_0xa132x2[_0x4e14[253]])){var _0xa132x12=_0xa132x2[_0x4e14[253]][_0x4e14[1598]]();if(this[_0x4e14[2152]]){_0xa132x12=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ROTATION,0)}else {if(_0xa132x2[_0x4e14[253]][_0x4e14[1590]]()){var _0xa132x13=(_0xa132x2[_0x4e14[117]]-_0xa132x2[_0x4e14[119]])/2,_0xa132x9=_0xa132x9+_0xa132x13,_0xa132xa=_0xa132xa-_0xa132x13}};0!=_0xa132x12&&(_0xa132x13=mxUtils[_0x4e14[431]](_0xa132x12),_0xa132x12=Math[_0x4e14[426]](_0xa132x13),_0xa132x13=Math[_0x4e14[427]](_0xa132x13),_0xa132xa=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x9,_0xa132xa),_0xa132x12,_0xa132x13, new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]())),_0xa132x9=_0xa132xa[_0x4e14[235]],_0xa132xa=_0xa132xa[_0x4e14[236]]);};return _0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]]), new mxRectangle(Math[_0x4e14[488]](_0xa132x9-_0xa132x4/2*_0xa132x5),Math[_0x4e14[488]](_0xa132xa-_0xa132x3/2*_0xa132x5),Math[_0x4e14[488]](_0xa132x4*_0xa132x5),Math[_0x4e14[488]](_0xa132x3*_0xa132x5));};return null;};mxCellRenderer[_0x4e14[202]][_0x4e14[258]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(null!=_0xa132x2[_0x4e14[253]]){var _0xa132x5=!1;_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]]);reconfigure=null!=_0xa132x3?_0xa132x3:!1;this[_0x4e14[2204]](_0xa132x2);if(_0xa132x2[_0x4e14[2082]]||_0xa132x2[_0x4e14[2081]]){_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2158]]?this[_0x4e14[2166]](_0xa132x2):this[_0x4e14[2167]](_0xa132x2)};if(_0xa132x2[_0x4e14[2082]]||!mxUtils[_0x4e14[2225]](_0xa132x2[_0x4e14[253]][_0x4e14[124]],_0xa132x2[_0x4e14[124]])){this[_0x4e14[2170]](_0xa132x2),_0xa132x3= !0};delete _0xa132x2[_0x4e14[2081]];delete _0xa132x2[_0x4e14[2082]];if(_0xa132x3||null==_0xa132x2[_0x4e14[253]][_0x4e14[1562]]||_0xa132x2[_0x4e14[253]][_0x4e14[255]]!=_0xa132x2[_0x4e14[441]][_0x4e14[255]]||!_0xa132x2[_0x4e14[253]][_0x4e14[1562]][_0x4e14[237]](_0xa132x2)||!mxUtils[_0x4e14[2226]](_0xa132x2[_0x4e14[253]][_0x4e14[1525]],_0xa132x2[_0x4e14[439]])){_0xa132x5= !0,_0xa132x2[_0x4e14[253]][_0x4e14[1525]]=null!=_0xa132x2[_0x4e14[439]]?_0xa132x2[_0x4e14[439]][_0x4e14[1853]]():null,_0xa132x2[_0x4e14[253]][_0x4e14[1562]]= new mxRectangle(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],_0xa132x2[_0x4e14[117]],_0xa132x2[_0x4e14[119]]),_0xa132x2[_0x4e14[253]][_0x4e14[255]]=_0xa132x2[_0x4e14[441]][_0x4e14[255]],null==_0xa132x4||_0xa132x4?_0xa132x2[_0x4e14[253]][_0x4e14[258]]():_0xa132x2[_0x4e14[253]][_0x4e14[1577]]()};if(null==_0xa132x4||_0xa132x4){this[_0x4e14[2217]](_0xa132x2,_0xa132x5),this[_0x4e14[2222]](_0xa132x2,_0xa132x5),this[_0x4e14[2223]](_0xa132x2,_0xa132x5)};}};mxCellRenderer[_0x4e14[202]][_0x4e14[515]]=function(_0xa132x2){null!=_0xa132x2[_0x4e14[253]]&&(null!=_0xa132x2[_0x4e14[963]]&&(_0xa132x2[_0x4e14[963]][_0x4e14[515]](),_0xa132x2[_0x4e14[963]]=null),null!=_0xa132x2[_0x4e14[1211]]&&(_0xa132x2[_0x4e14[1211]][_0x4e14[209]](function(_0xa132x2,_0xa132x4){_0xa132x4[_0x4e14[515]]()}),_0xa132x2[_0x4e14[1211]]=null),null!=_0xa132x2[_0x4e14[2207]]&&(_0xa132x2[_0x4e14[2207]][_0x4e14[515]](),_0xa132x2[_0x4e14[2207]]=null),_0xa132x2[_0x4e14[253]][_0x4e14[515]](),_0xa132x2[_0x4e14[253]]=null)};var mxEdgeStyle={EntityRelation:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=_0xa132x2[_0x4e14[441]],_0xa132x12=_0xa132xa[_0x4e14[1179]];_0xa132x5=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*_0xa132xa[_0x4e14[255]];var _0xa132x13=_0xa132x2[_0x4e14[439]],_0xa132x14=_0xa132x13[0],_0xa132x15=_0xa132x13[_0xa132x13[_0x4e14[67]]-1],_0xa132x13=!1;if(null!=_0xa132x14){_0xa132x3= new mxCellState,_0xa132x3[_0x4e14[235]]=_0xa132x14[_0x4e14[235]],_0xa132x3[_0x4e14[236]]=_0xa132x14[_0x4e14[236]]}else {if(null!=_0xa132x3){var _0xa132x16=mxUtils[_0x4e14[2227]](_0xa132x3,_0xa132x2,!0,mxConstants.DIRECTION_MASK_NONE);_0xa132x16!=mxConstants[_0x4e14[434]]?_0xa132x13=_0xa132x16==mxConstants[_0x4e14[436]]:(_0xa132x14=_0xa132x12[_0x4e14[1198]](_0xa132x3[_0x4e14[246]]),_0xa132x14[_0x4e14[1500]]?_0xa132x13=0.5>=_0xa132x14[_0x4e14[235]]:null!=_0xa132x4&&(_0xa132x13=_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]<_0xa132x3[_0x4e14[235]]));}else {return }};_0xa132x14= !0;null!=_0xa132x15?(_0xa132x4= new mxCellState,_0xa132x4[_0x4e14[235]]=_0xa132x15[_0x4e14[235]],_0xa132x4[_0x4e14[236]]=_0xa132x15[_0x4e14[236]]):null!=_0xa132x4&&(_0xa132x16=mxUtils[_0x4e14[2227]](_0xa132x4,_0xa132x2,!1,mxConstants.DIRECTION_MASK_NONE),_0xa132x16!=mxConstants[_0x4e14[434]]?_0xa132x14=_0xa132x16==mxConstants[_0x4e14[436]]:(_0xa132x2=_0xa132x12[_0x4e14[1198]](_0xa132x4[_0x4e14[246]]),_0xa132x2[_0x4e14[1500]]?_0xa132x14=0.5>=_0xa132x2[_0x4e14[235]]:null!=_0xa132x3&&(_0xa132x14=_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]]<_0xa132x4[_0x4e14[235]])));null!=_0xa132x3&&null!=_0xa132x4&&(_0xa132x2=_0xa132x13?_0xa132x3[_0x4e14[235]]:_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]],_0xa132x3=_0xa132xa[_0x4e14[2228]](_0xa132x3),_0xa132x12=_0xa132x14?_0xa132x4[_0x4e14[235]]:_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]],_0xa132x4=_0xa132xa[_0x4e14[2228]](_0xa132x4),_0xa132xa= new mxPoint(_0xa132x2+(_0xa132x13?-_0xa132x5:_0xa132x5),_0xa132x3),_0xa132x15= new mxPoint(_0xa132x12+(_0xa132x14?-_0xa132x5:_0xa132x5),_0xa132x4),_0xa132x13==_0xa132x14?(_0xa132x5=_0xa132x13?Math[_0x4e14[243]](_0xa132x2,_0xa132x12)-_0xa132x5:Math[_0x4e14[160]](_0xa132x2,_0xa132x12)+_0xa132x5,_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x5,_0xa132x3)),_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x5,_0xa132x4))):(_0xa132xa[_0x4e14[235]]<_0xa132x15[_0x4e14[235]]==_0xa132x13?(_0xa132x5=_0xa132x3+(_0xa132x4-_0xa132x3)/2,_0xa132x9[_0x4e14[207]](_0xa132xa),_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132xa[_0x4e14[235]],_0xa132x5)),_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x15[_0x4e14[235]],_0xa132x5))):_0xa132x9[_0x4e14[207]](_0xa132xa),_0xa132x9[_0x4e14[207]](_0xa132x15)));},Loop:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=_0xa132x3){_0xa132x4=_0xa132x2[_0x4e14[441]];var _0xa132xa=_0xa132x4[_0x4e14[1179]];_0xa132x5=null!=_0xa132x5&&0<_0xa132x5[_0x4e14[67]]?_0xa132x5[0]:null;null!=_0xa132x5&&(_0xa132x5=_0xa132x4[_0x4e14[2229]](_0xa132x2,_0xa132x5),mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x5[_0x4e14[235]],_0xa132x5[_0x4e14[236]])&&(_0xa132x5=null));var _0xa132x12=0,_0xa132x13=0,_0xa132x14=0,_0xa132x15=0,_0xa132xa=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_SEGMENT,_0xa132xa[_0x4e14[1020]])*_0xa132x4[_0x4e14[255]];_0xa132x2=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);_0xa132x2==mxConstants[_0x4e14[1358]]||_0xa132x2==mxConstants[_0x4e14[1354]]?(_0xa132x12=_0xa132x4[_0x4e14[2230]](_0xa132x3),_0xa132x13=_0xa132xa):(_0xa132x14=_0xa132x4[_0x4e14[2228]](_0xa132x3),_0xa132x15=_0xa132xa);null==_0xa132x5||_0xa132x5[_0x4e14[235]]<_0xa132x3[_0x4e14[235]]||_0xa132x5[_0x4e14[235]]>_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]]?null!=_0xa132x5?(_0xa132x12=_0xa132x5[_0x4e14[235]],_0xa132x15=Math[_0x4e14[160]](Math[_0x4e14[425]](_0xa132x14-_0xa132x5[_0x4e14[236]]),_0xa132x15)):_0xa132x2==mxConstants[_0x4e14[1358]]?_0xa132x14=_0xa132x3[_0x4e14[236]]-2*_0xa132x13:_0xa132x2==mxConstants[_0x4e14[1354]]?_0xa132x14=_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]]+2*_0xa132x13:_0xa132x12=_0xa132x2==mxConstants[_0x4e14[1356]]?_0xa132x3[_0x4e14[235]]-2*_0xa132x15:_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]]+2*_0xa132x15:null!=_0xa132x5&&(_0xa132x12=_0xa132x4[_0x4e14[2230]](_0xa132x3),_0xa132x13=Math[_0x4e14[160]](Math[_0x4e14[425]](_0xa132x12-_0xa132x5[_0x4e14[235]]),_0xa132x15),_0xa132x14=_0xa132x5[_0x4e14[236]],_0xa132x15=0);_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x12-_0xa132x13,_0xa132x14-_0xa132x15));_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x12+_0xa132x13,_0xa132x14+_0xa132x15));}},ElbowConnector:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=null!=_0xa132x5&&0<_0xa132x5[_0x4e14[67]]?_0xa132x5[0]:null,_0xa132x12=!1,_0xa132x13=!1;if(null!=_0xa132x3&&null!=_0xa132x4){if(null!=_0xa132xa){var _0xa132x14=Math[_0x4e14[243]](_0xa132x3[_0x4e14[235]],_0xa132x4[_0x4e14[235]]),_0xa132x15=Math[_0x4e14[160]](_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]],_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]),_0xa132x13=Math[_0x4e14[243]](_0xa132x3[_0x4e14[236]],_0xa132x4[_0x4e14[236]]),_0xa132x16=Math[_0x4e14[160]](_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]],_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]),_0xa132xa=_0xa132x2[_0x4e14[441]][_0x4e14[2229]](_0xa132x2,_0xa132xa),_0xa132x12=_0xa132xa[_0x4e14[236]]<_0xa132x13||_0xa132xa[_0x4e14[236]]>_0xa132x16,_0xa132x13=_0xa132xa[_0x4e14[235]]<_0xa132x14||_0xa132xa[_0x4e14[235]]>_0xa132x15}else {_0xa132x14=Math[_0x4e14[160]](_0xa132x3[_0x4e14[235]],_0xa132x4[_0x4e14[235]]),_0xa132x15=Math[_0x4e14[243]](_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]],_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]),_0xa132x12=_0xa132x14==_0xa132x15,_0xa132x12||(_0xa132x13=Math[_0x4e14[160]](_0xa132x3[_0x4e14[236]],_0xa132x4[_0x4e14[236]]),_0xa132x16=Math[_0x4e14[243]](_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]],_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]),_0xa132x13=_0xa132x13==_0xa132x16)}};!_0xa132x13&&(_0xa132x12||_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2231]]]==mxConstants[_0x4e14[2232]])?mxEdgeStyle.TopToBottom(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9):mxEdgeStyle.SideToSide(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9);},SideToSide:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=_0xa132x2[_0x4e14[441]];_0xa132x5=null!=_0xa132x5&&0<_0xa132x5[_0x4e14[67]]?_0xa132x5[0]:null;var _0xa132x12=_0xa132x2[_0x4e14[439]],_0xa132x13=_0xa132x12[0],_0xa132x12=_0xa132x12[_0xa132x12[_0x4e14[67]]-1];null!=_0xa132x5&&(_0xa132x5=_0xa132xa[_0x4e14[2229]](_0xa132x2,_0xa132x5));null!=_0xa132x13&&(_0xa132x3= new mxCellState,_0xa132x3[_0x4e14[235]]=_0xa132x13[_0x4e14[235]],_0xa132x3[_0x4e14[236]]=_0xa132x13[_0x4e14[236]]);null!=_0xa132x12&&(_0xa132x4= new mxCellState,_0xa132x4[_0x4e14[235]]=_0xa132x12[_0x4e14[235]],_0xa132x4[_0x4e14[236]]=_0xa132x12[_0x4e14[236]]);null!=_0xa132x3&&null!=_0xa132x4&&(_0xa132x2=Math[_0x4e14[160]](_0xa132x3[_0x4e14[235]],_0xa132x4[_0x4e14[235]]),_0xa132x13=Math[_0x4e14[243]](_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]],_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]),_0xa132x2=null!=_0xa132x5?_0xa132x5[_0x4e14[235]]:_0xa132x13+(_0xa132x2-_0xa132x13)/2,_0xa132x13=_0xa132xa[_0x4e14[2228]](_0xa132x3),_0xa132xa=_0xa132xa[_0x4e14[2228]](_0xa132x4),null!=_0xa132x5&&(_0xa132x5[_0x4e14[236]]>=_0xa132x3[_0x4e14[236]]&&_0xa132x5[_0x4e14[236]]<=_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]]&&(_0xa132x13=_0xa132x5[_0x4e14[236]]),_0xa132x5[_0x4e14[236]]>=_0xa132x4[_0x4e14[236]]&&_0xa132x5[_0x4e14[236]]<=_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]&&(_0xa132xa=_0xa132x5[_0x4e14[236]])),!mxUtils[_0x4e14[442]](_0xa132x4,_0xa132x2,_0xa132x13)&&!mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x2,_0xa132x13)&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x2,_0xa132x13)),!mxUtils[_0x4e14[442]](_0xa132x4,_0xa132x2,_0xa132xa)&&!mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x2,_0xa132xa)&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x2,_0xa132xa)),1==_0xa132x9[_0x4e14[67]]&&(null!=_0xa132x5?!mxUtils[_0x4e14[442]](_0xa132x4,_0xa132x2,_0xa132x5[_0x4e14[236]])&&!mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x2,_0xa132x5[_0x4e14[236]])&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x2,_0xa132x5[_0x4e14[236]])):(_0xa132xa=Math[_0x4e14[160]](_0xa132x3[_0x4e14[236]],_0xa132x4[_0x4e14[236]]),_0xa132x3=Math[_0x4e14[243]](_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]],_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]),_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x2,_0xa132xa+(_0xa132x3-_0xa132xa)/2)))));},TopToBottom:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=_0xa132x2[_0x4e14[441]];_0xa132x5=null!=_0xa132x5&&0<_0xa132x5[_0x4e14[67]]?_0xa132x5[0]:null;var _0xa132x12=_0xa132x2[_0x4e14[439]],_0xa132x13=_0xa132x12[0],_0xa132x12=_0xa132x12[_0xa132x12[_0x4e14[67]]-1];null!=_0xa132x5&&(_0xa132x5=_0xa132xa[_0x4e14[2229]](_0xa132x2,_0xa132x5));null!=_0xa132x13&&(_0xa132x3= new mxCellState,_0xa132x3[_0x4e14[235]]=_0xa132x13[_0x4e14[235]],_0xa132x3[_0x4e14[236]]=_0xa132x13[_0x4e14[236]]);null!=_0xa132x12&&(_0xa132x4= new mxCellState,_0xa132x4[_0x4e14[235]]=_0xa132x12[_0x4e14[235]],_0xa132x4[_0x4e14[236]]=_0xa132x12[_0x4e14[236]]);null!=_0xa132x3&&null!=_0xa132x4&&(_0xa132x13=Math[_0x4e14[160]](_0xa132x3[_0x4e14[236]],_0xa132x4[_0x4e14[236]]),_0xa132x12=Math[_0x4e14[243]](_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]],_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]),_0xa132x2=_0xa132xa[_0x4e14[2230]](_0xa132x3),null!=_0xa132x5&&(_0xa132x5[_0x4e14[235]]>=_0xa132x3[_0x4e14[235]]&&_0xa132x5[_0x4e14[235]]<=_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]])&&(_0xa132x2=_0xa132x5[_0x4e14[235]]),_0xa132x13=null!=_0xa132x5?_0xa132x5[_0x4e14[236]]:_0xa132x12+(_0xa132x13-_0xa132x12)/2,!mxUtils[_0x4e14[442]](_0xa132x4,_0xa132x2,_0xa132x13)&&!mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x2,_0xa132x13)&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x2,_0xa132x13)),_0xa132x2=null!=_0xa132x5&&_0xa132x5[_0x4e14[235]]>=_0xa132x4[_0x4e14[235]]&&_0xa132x5[_0x4e14[235]]<=_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]?_0xa132x5[_0x4e14[235]]:_0xa132xa[_0x4e14[2230]](_0xa132x4),!mxUtils[_0x4e14[442]](_0xa132x4,_0xa132x2,_0xa132x13)&&!mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x2,_0xa132x13)&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x2,_0xa132x13)),1==_0xa132x9[_0x4e14[67]]&&(null!=_0xa132x5&&1==_0xa132x9[_0x4e14[67]]?!mxUtils[_0x4e14[442]](_0xa132x4,_0xa132x5[_0x4e14[235]],_0xa132x13)&&!mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x5[_0x4e14[235]],_0xa132x13)&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x5[_0x4e14[235]],_0xa132x13)):(_0xa132xa=Math[_0x4e14[160]](_0xa132x3[_0x4e14[235]],_0xa132x4[_0x4e14[235]]),_0xa132x3=Math[_0x4e14[243]](_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]],_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]),_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132xa+(_0xa132x3-_0xa132xa)/2,_0xa132x13)))));},SegmentConnector:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=_0xa132x2[_0x4e14[439]],_0xa132x12=!0,_0xa132x13=null,_0xa132x14=_0xa132xa[0];null==_0xa132x14&&null!=_0xa132x3?_0xa132x14= new mxPoint(_0xa132x2[_0x4e14[441]][_0x4e14[2230]](_0xa132x3),_0xa132x2[_0x4e14[441]][_0x4e14[2228]](_0xa132x3)):null!=_0xa132x14&&(_0xa132x14=_0xa132x14[_0x4e14[238]]());var _0xa132x15=_0xa132xa[_0x4e14[67]]-1;if(null!=_0xa132x5&&0<_0xa132x5[_0x4e14[67]]){for(var _0xa132x13=_0xa132x2[_0x4e14[441]][_0x4e14[2229]](_0xa132x2,_0xa132x5[0]),_0xa132x16=_0xa132x3,_0xa132x17=_0xa132xa[0],_0xa132x18=!1,_0xa132x19=!1,_0xa132x18=_0xa132x13,_0xa132x1a=_0xa132x5[_0x4e14[67]],_0xa132x1b=0;2>_0xa132x1b;_0xa132x1b++){var _0xa132x1c=null!=_0xa132x17&&_0xa132x17[_0x4e14[235]]==_0xa132x18[_0x4e14[235]],_0xa132x1d=null!=_0xa132x17&&_0xa132x17[_0x4e14[236]]==_0xa132x18[_0x4e14[236]],_0xa132x1e=null!=_0xa132x16&&_0xa132x18[_0x4e14[236]]>=_0xa132x16[_0x4e14[236]]&&_0xa132x18[_0x4e14[236]]<=_0xa132x16[_0x4e14[236]]+_0xa132x16[_0x4e14[119]],_0xa132x16=null!=_0xa132x16&&_0xa132x18[_0x4e14[235]]>=_0xa132x16[_0x4e14[235]]&&_0xa132x18[_0x4e14[235]]<=_0xa132x16[_0x4e14[235]]+_0xa132x16[_0x4e14[117]],_0xa132x18=_0xa132x1d||null==_0xa132x17&&_0xa132x1e,_0xa132x19=_0xa132x1c||null==_0xa132x17&&_0xa132x16;if(null!=_0xa132x17&&!_0xa132x1d&&!_0xa132x1c&&(_0xa132x1e||_0xa132x16)){_0xa132x12=_0xa132x1e?!1:!0;break;};if(_0xa132x19||_0xa132x18){_0xa132x12=_0xa132x18;1==_0xa132x1b&&(_0xa132x12=0==_0xa132x5[_0x4e14[67]]%2?_0xa132x18:_0xa132x19);break;};_0xa132x16=_0xa132x4;_0xa132x17=_0xa132xa[_0xa132x15];_0xa132x18=_0xa132x2[_0x4e14[441]][_0x4e14[2229]](_0xa132x2,_0xa132x5[_0xa132x1a-1]);};_0xa132x12&&(null!=_0xa132xa[0]&&_0xa132xa[0][_0x4e14[236]]!=_0xa132x13[_0x4e14[236]]||null==_0xa132xa[0]&&null!=_0xa132x3&&(_0xa132x13[_0x4e14[236]]<_0xa132x3[_0x4e14[236]]||_0xa132x13[_0x4e14[236]]>_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]]))?_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x14[_0x4e14[235]],_0xa132x13[_0x4e14[236]])):!_0xa132x12&&(null!=_0xa132xa[0]&&_0xa132xa[0][_0x4e14[235]]!=_0xa132x13[_0x4e14[235]]||null==_0xa132xa[0]&&null!=_0xa132x3&&(_0xa132x13[_0x4e14[235]]<_0xa132x3[_0x4e14[235]]||_0xa132x13[_0x4e14[235]]>_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]]))&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x13[_0x4e14[235]],_0xa132x14[_0x4e14[236]]));_0xa132x12?_0xa132x14[_0x4e14[236]]=_0xa132x13[_0x4e14[236]]:_0xa132x14[_0x4e14[235]]=_0xa132x13[_0x4e14[235]];for(_0xa132x1b=0;_0xa132x1b<_0xa132x5[_0x4e14[67]];_0xa132x1b++){_0xa132x12= !_0xa132x12,_0xa132x13=_0xa132x2[_0x4e14[441]][_0x4e14[2229]](_0xa132x2,_0xa132x5[_0xa132x1b]),_0xa132x12?_0xa132x14[_0x4e14[236]]=_0xa132x13[_0x4e14[236]]:_0xa132x14[_0x4e14[235]]=_0xa132x13[_0x4e14[235]],_0xa132x9[_0x4e14[207]](_0xa132x14[_0x4e14[238]]())};}else {_0xa132x13=_0xa132x14,_0xa132x12= !0};_0xa132x14=_0xa132xa[_0xa132x15];null==_0xa132x14&&null!=_0xa132x4&&(_0xa132x14= new mxPoint(_0xa132x2[_0x4e14[441]][_0x4e14[2230]](_0xa132x4),_0xa132x2[_0x4e14[441]][_0x4e14[2228]](_0xa132x4)));_0xa132x12&&(null!=_0xa132xa[_0xa132x15]&&_0xa132xa[_0xa132x15][_0x4e14[236]]!=_0xa132x13[_0x4e14[236]]||null==_0xa132xa[_0xa132x15]&&null!=_0xa132x4&&(_0xa132x13[_0x4e14[236]]<_0xa132x4[_0x4e14[236]]||_0xa132x13[_0x4e14[236]]>_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]))?_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x14[_0x4e14[235]],_0xa132x13[_0x4e14[236]])):!_0xa132x12&&(null!=_0xa132xa[_0xa132x15]&&_0xa132xa[_0xa132x15][_0x4e14[235]]!=_0xa132x13[_0x4e14[235]]||null==_0xa132xa[_0xa132x15]&&null!=_0xa132x4&&(_0xa132x13[_0x4e14[235]]<_0xa132x4[_0x4e14[235]]||_0xa132x13[_0x4e14[235]]>_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]))&&_0xa132x9[_0x4e14[207]]( new mxPoint(_0xa132x13[_0x4e14[235]],_0xa132x14[_0x4e14[236]]));if(null==_0xa132xa[0]&&null!=_0xa132x3){for(;1<_0xa132x9[_0x4e14[67]]&&mxUtils[_0x4e14[442]](_0xa132x3,_0xa132x9[1][_0x4e14[235]],_0xa132x9[1][_0x4e14[236]]);){_0xa132x9=_0xa132x9[_0x4e14[300]](1,1)}};if(null==_0xa132xa[_0xa132x15]&&null!=_0xa132x4){for(;1<_0xa132x9[_0x4e14[67]]&&mxUtils[_0x4e14[442]](_0xa132x4,_0xa132x9[_0xa132x9[_0x4e14[67]]-1][_0x4e14[235]],_0xa132x9[_0xa132x9[_0x4e14[67]]-1][_0x4e14[236]]);){_0xa132x9=_0xa132x9[_0x4e14[300]](_0xa132x9[_0x4e14[67]]-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(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=_0xa132x2[_0x4e14[441]][_0x4e14[1179]],_0xa132x12=null==_0xa132x3?!1:_0xa132xa[_0x4e14[502]]()[_0x4e14[250]](_0xa132x3[_0x4e14[246]]),_0xa132xa=null==_0xa132x4?!1:_0xa132xa[_0x4e14[502]]()[_0x4e14[250]](_0xa132x4[_0x4e14[246]]);if(null!=_0xa132x5&&0<_0xa132x5[_0x4e14[67]]||_0xa132x12||_0xa132xa){mxEdgeStyle.SegmentConnector(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9)}else {_0xa132x5=_0xa132x2[_0x4e14[439]];var _0xa132x13=_0xa132x5[0],_0xa132x14=_0xa132x5[_0xa132x5[_0x4e14[67]]-1];_0xa132x5=null!=_0xa132x3?_0xa132x3[_0x4e14[235]]:_0xa132x13[_0x4e14[235]];var _0xa132x12=null!=_0xa132x3?_0xa132x3[_0x4e14[236]]:_0xa132x13[_0x4e14[236]],_0xa132x15=null!=_0xa132x3?_0xa132x3[_0x4e14[117]]:1,_0xa132x16=null!=_0xa132x3?_0xa132x3[_0x4e14[119]]:1,_0xa132x17=null!=_0xa132x4?_0xa132x4[_0x4e14[235]]:_0xa132x14[_0x4e14[235]],_0xa132x18=null!=_0xa132x4?_0xa132x4[_0x4e14[236]]:_0xa132x14[_0x4e14[236]],_0xa132x19=null!=_0xa132x4?_0xa132x4[_0x4e14[117]]:1,_0xa132x1a=null!=_0xa132x4?_0xa132x4[_0x4e14[119]]:1,_0xa132xa=_0xa132x2[_0x4e14[441]][_0x4e14[255]]*mxEdgeStyle[_0x4e14[2233]],_0xa132x1b=[mxConstants[_0x4e14[2234]],mxConstants[_0x4e14[2234]]];null!=_0xa132x3&&(_0xa132x1b[0]=mxUtils[_0x4e14[2227]](_0xa132x3,_0xa132x2,!0,mxConstants.DIRECTION_MASK_ALL));null!=_0xa132x4&&(_0xa132x1b[1]=mxUtils[_0x4e14[2227]](_0xa132x4,_0xa132x2,!1,mxConstants.DIRECTION_MASK_ALL));_0xa132x2=[0,0];_0xa132x5=[[_0xa132x5,_0xa132x12,_0xa132x15,_0xa132x16],[_0xa132x17,_0xa132x18,_0xa132x19,_0xa132x1a]];for(_0xa132x15=0;2>_0xa132x15;_0xa132x15++){mxEdgeStyle[_0x4e14[2235]][_0xa132x15][1]=_0xa132x5[_0xa132x15][0]-_0xa132xa,mxEdgeStyle[_0x4e14[2235]][_0xa132x15][2]=_0xa132x5[_0xa132x15][1]-_0xa132xa,mxEdgeStyle[_0x4e14[2235]][_0xa132x15][4]=_0xa132x5[_0xa132x15][0]+_0xa132x5[_0xa132x15][2]+_0xa132xa,mxEdgeStyle[_0x4e14[2235]][_0xa132x15][8]=_0xa132x5[_0xa132x15][1]+_0xa132x5[_0xa132x15][3]+_0xa132xa};_0xa132x15=_0xa132x5[0][0]+_0xa132x5[0][2]/2-(_0xa132x5[1][0]+_0xa132x5[1][2]/2);_0xa132x16=_0xa132x5[0][1]+_0xa132x5[0][3]/2-(_0xa132x5[1][1]+_0xa132x5[1][3]/2);_0xa132x12=0;0>_0xa132x15?_0xa132x12=0>_0xa132x16?2:1:0>=_0xa132x16&&(_0xa132x12=3,0==_0xa132x15&&(_0xa132x12=2));_0xa132x16=null;null!=_0xa132x3&&(_0xa132x16=_0xa132x13);_0xa132x3=[[0.5,0.5],[0.5,0.5]];for(_0xa132x15=0;2>_0xa132x15;_0xa132x15++){null!=_0xa132x16&&(_0xa132x3[_0xa132x15][0]=(_0xa132x16[_0x4e14[235]]-_0xa132x5[_0xa132x15][0])/_0xa132x5[_0xa132x15][2],0.01>_0xa132x3[_0xa132x15][0]?_0xa132x2[_0xa132x15]=mxConstants[_0x4e14[436]]:0.99<_0xa132x3[_0xa132x15][0]&&(_0xa132x2[_0xa132x15]=mxConstants[_0x4e14[438]]),_0xa132x3[_0xa132x15][1]=(_0xa132x16[_0x4e14[236]]-_0xa132x5[_0xa132x15][1])/_0xa132x5[_0xa132x15][3],0.01>_0xa132x3[_0xa132x15][1]?_0xa132x2[_0xa132x15]=mxConstants[_0x4e14[435]]:0.99<_0xa132x3[_0xa132x15][1]&&(_0xa132x2[_0xa132x15]=mxConstants[_0x4e14[437]])),_0xa132x16=null,null!=_0xa132x4&&(_0xa132x16=_0xa132x14)};_0xa132x15=_0xa132x5[0][1]-(_0xa132x5[1][1]+_0xa132x5[1][3]);_0xa132x16=_0xa132x5[0][0]-(_0xa132x5[1][0]+_0xa132x5[1][2]);_0xa132x17=_0xa132x5[1][1]-(_0xa132x5[0][1]+_0xa132x5[0][3]);_0xa132x18=_0xa132x5[1][0]-(_0xa132x5[0][0]+_0xa132x5[0][2]);mxEdgeStyle[_0x4e14[2236]][1]=Math[_0x4e14[160]](_0xa132x16-2*_0xa132xa,0);mxEdgeStyle[_0x4e14[2236]][2]=Math[_0x4e14[160]](_0xa132x15-2*_0xa132xa,0);mxEdgeStyle[_0x4e14[2236]][4]=Math[_0x4e14[160]](_0xa132x17-2*_0xa132xa,0);mxEdgeStyle[_0x4e14[2236]][3]=Math[_0x4e14[160]](_0xa132x18-2*_0xa132xa,0);_0xa132x4=[];_0xa132x13=[];_0xa132x14=[];_0xa132x13[0]=_0xa132x16>=_0xa132x18?mxConstants[_0x4e14[436]]:mxConstants[_0x4e14[438]];_0xa132x14[0]=_0xa132x15>=_0xa132x17?mxConstants[_0x4e14[435]]:mxConstants[_0x4e14[437]];_0xa132x13[1]=mxUtils[_0x4e14[2237]](_0xa132x13[0]);_0xa132x14[1]=mxUtils[_0x4e14[2237]](_0xa132x14[0]);_0xa132x16=_0xa132x16>=_0xa132x18?_0xa132x16:_0xa132x18;_0xa132x17=_0xa132x15>=_0xa132x17?_0xa132x15:_0xa132x17;_0xa132x18=[[0,0],[0,0]];_0xa132x19= !1;for(_0xa132x15=0;2>_0xa132x15;_0xa132x15++){0==_0xa132x2[_0xa132x15]&&(0==(_0xa132x13[_0xa132x15]&_0xa132x1b[_0xa132x15])&&(_0xa132x13[_0xa132x15]=mxUtils[_0x4e14[2237]](_0xa132x13[_0xa132x15])),0==(_0xa132x14[_0xa132x15]&_0xa132x1b[_0xa132x15])&&(_0xa132x14[_0xa132x15]=mxUtils[_0x4e14[2237]](_0xa132x14[_0xa132x15])),_0xa132x18[_0xa132x15][0]=_0xa132x14[_0xa132x15],_0xa132x18[_0xa132x15][1]=_0xa132x13[_0xa132x15])};_0xa132x17>2*_0xa132xa&&_0xa132x16>2*_0xa132xa&&(0<(_0xa132x13[0]&_0xa132x1b[0])&&0<(_0xa132x14[1]&_0xa132x1b[1])?(_0xa132x18[0][0]=_0xa132x13[0],_0xa132x18[0][1]=_0xa132x14[0],_0xa132x18[1][0]=_0xa132x14[1],_0xa132x18[1][1]=_0xa132x13[1],_0xa132x19= !0):0<(_0xa132x14[0]&_0xa132x1b[0])&&0<(_0xa132x13[1]&_0xa132x1b[1])&&(_0xa132x18[0][0]=_0xa132x14[0],_0xa132x18[0][1]=_0xa132x13[0],_0xa132x18[1][0]=_0xa132x13[1],_0xa132x18[1][1]=_0xa132x14[1],_0xa132x19= !0));_0xa132x17>2*_0xa132xa&&!_0xa132x19&&(_0xa132x18[0][0]=_0xa132x14[0],_0xa132x18[0][1]=_0xa132x13[0],_0xa132x18[1][0]=_0xa132x14[1],_0xa132x18[1][1]=_0xa132x13[1],_0xa132x19= !0);_0xa132x16>2*_0xa132xa&&!_0xa132x19&&(_0xa132x18[0][0]=_0xa132x13[0],_0xa132x18[0][1]=_0xa132x14[0],_0xa132x18[1][0]=_0xa132x13[1],_0xa132x18[1][1]=_0xa132x14[1]);for(_0xa132x15=0;2>_0xa132x15;_0xa132x15++){if(0==_0xa132x2[_0xa132x15]&&(0==(_0xa132x18[_0xa132x15][0]&_0xa132x1b[_0xa132x15])&&(_0xa132x18[_0xa132x15][0]=_0xa132x18[_0xa132x15][1]),_0xa132x4[_0xa132x15]=_0xa132x18[_0xa132x15][0]&_0xa132x1b[_0xa132x15],_0xa132x4[_0xa132x15]|=(_0xa132x18[_0xa132x15][1]&_0xa132x1b[_0xa132x15])<<8,_0xa132x4[_0xa132x15]|=(_0xa132x18[1-_0xa132x15][_0xa132x15]&_0xa132x1b[_0xa132x15])<<16,_0xa132x4[_0xa132x15]|=(_0xa132x18[1-_0xa132x15][1-_0xa132x15]&_0xa132x1b[_0xa132x15])<<24,0==(_0xa132x4[_0xa132x15]&15)&&(_0xa132x4[_0xa132x15]<<=8),0==(_0xa132x4[_0xa132x15]&3840)&&(_0xa132x4[_0xa132x15]=_0xa132x4[_0xa132x15]&15|_0xa132x4[_0xa132x15]>>8),0==(_0xa132x4[_0xa132x15]&983040)&&(_0xa132x4[_0xa132x15]=_0xa132x4[_0xa132x15]&65535|(_0xa132x4[_0xa132x15]&251658240)>>8),_0xa132x2[_0xa132x15]=_0xa132x4[_0xa132x15]&15,_0xa132x1b[_0xa132x15]==mxConstants[_0x4e14[436]]||_0xa132x1b[_0xa132x15]==mxConstants[_0x4e14[435]]||_0xa132x1b[_0xa132x15]==mxConstants[_0x4e14[438]]||_0xa132x1b[_0xa132x15]==mxConstants[_0x4e14[437]])){_0xa132x2[_0xa132x15]=_0xa132x1b[_0xa132x15]}};_0xa132x15=_0xa132x2[0]==mxConstants[_0x4e14[438]]?3:_0xa132x2[0];_0xa132x1b=_0xa132x2[1]==mxConstants[_0x4e14[438]]?3:_0xa132x2[1];_0xa132x15-=_0xa132x12;_0xa132x1b-=_0xa132x12;1>_0xa132x15&&(_0xa132x15+=4);1>_0xa132x1b&&(_0xa132x1b+=4);_0xa132x1b=mxEdgeStyle[_0x4e14[2238]][_0xa132x15-1][_0xa132x1b-1];mxEdgeStyle[_0x4e14[2239]][0][0]=_0xa132x5[0][0];mxEdgeStyle[_0x4e14[2239]][0][1]=_0xa132x5[0][1];switch(_0xa132x2[0]){case mxConstants[_0x4e14[436]]:mxEdgeStyle[_0x4e14[2239]][0][0]-=_0xa132xa;mxEdgeStyle[_0x4e14[2239]][0][1]+=_0xa132x3[0][1]*_0xa132x5[0][3];break ;;case mxConstants[_0x4e14[437]]:mxEdgeStyle[_0x4e14[2239]][0][0]+=_0xa132x3[0][0]*_0xa132x5[0][2];mxEdgeStyle[_0x4e14[2239]][0][1]+=_0xa132x5[0][3]+_0xa132xa;break ;;case mxConstants[_0x4e14[438]]:mxEdgeStyle[_0x4e14[2239]][0][0]+=_0xa132x5[0][2]+_0xa132xa;mxEdgeStyle[_0x4e14[2239]][0][1]+=_0xa132x3[0][1]*_0xa132x5[0][3];break ;;case mxConstants[_0x4e14[435]]:mxEdgeStyle[_0x4e14[2239]][0][0]+=_0xa132x3[0][0]*_0xa132x5[0][2],mxEdgeStyle[_0x4e14[2239]][0][1]-=_0xa132xa;;};_0xa132xa=0;_0xa132x13=_0xa132x4=0<(_0xa132x2[0]&(mxConstants[_0x4e14[438]]|mxConstants[_0x4e14[436]]))?0:1;for(_0xa132x15=_0xa132x14=0;_0xa132x15<_0xa132x1b[_0x4e14[67]];_0xa132x15++){_0xa132x14=_0xa132x1b[_0xa132x15]&15;_0xa132x1a=_0xa132x14==mxConstants[_0x4e14[438]]?3:_0xa132x14;_0xa132x1a+=_0xa132x12;4<_0xa132x1a&&(_0xa132x1a-=4);_0xa132x16=mxEdgeStyle[_0x4e14[2240]][_0xa132x1a-1];_0xa132x14=0<_0xa132x1a%2?0:1;_0xa132x14!=_0xa132x4&&(_0xa132xa++,mxEdgeStyle[_0x4e14[2239]][_0xa132xa][0]=mxEdgeStyle[_0x4e14[2239]][_0xa132xa-1][0],mxEdgeStyle[_0x4e14[2239]][_0xa132xa][1]=mxEdgeStyle[_0x4e14[2239]][_0xa132xa-1][1]);var _0xa132x1c=0<(_0xa132x1b[_0xa132x15]&mxEdgeStyle[_0x4e14[2241]]),_0xa132x19=0<(_0xa132x1b[_0xa132x15]&mxEdgeStyle[_0x4e14[2242]]),_0xa132x17=(_0xa132x1b[_0xa132x15]&mxEdgeStyle[_0x4e14[2243]])>>5,_0xa132x17=_0xa132x17<<_0xa132x12;15<_0xa132x17&&(_0xa132x17>>=4);_0xa132x18=0<(_0xa132x1b[_0xa132x15]&mxEdgeStyle[_0x4e14[2244]]);(_0xa132x19||_0xa132x1c)&&9>_0xa132x17?(_0xa132x1a=0,_0xa132x19=_0xa132x19?0:1,_0xa132x1a=_0xa132x18&&0==_0xa132x14?_0xa132x5[_0xa132x19][0]+_0xa132x3[_0xa132x19][0]*_0xa132x5[_0xa132x19][2]:_0xa132x18?_0xa132x5[_0xa132x19][1]+_0xa132x3[_0xa132x19][1]*_0xa132x5[_0xa132x19][3]:mxEdgeStyle[_0x4e14[2235]][_0xa132x19][_0xa132x17],0==_0xa132x14?(_0xa132x17=(_0xa132x1a-mxEdgeStyle[_0x4e14[2239]][_0xa132xa][0])*_0xa132x16[0],0<_0xa132x17&&(mxEdgeStyle[_0x4e14[2239]][_0xa132xa][0]+=_0xa132x16[0]*_0xa132x17)):(_0xa132x17=(_0xa132x1a-mxEdgeStyle[_0x4e14[2239]][_0xa132xa][1])*_0xa132x16[1],0<_0xa132x17&&(mxEdgeStyle[_0x4e14[2239]][_0xa132xa][1]+=_0xa132x16[1]*_0xa132x17))):_0xa132x18&&(mxEdgeStyle[_0x4e14[2239]][_0xa132xa][0]+=_0xa132x16[0]*Math[_0x4e14[425]](mxEdgeStyle[_0x4e14[2236]][_0xa132x1a]/2),mxEdgeStyle[_0x4e14[2239]][_0xa132xa][1]+=_0xa132x16[1]*Math[_0x4e14[425]](mxEdgeStyle[_0x4e14[2236]][_0xa132x1a]/2));0<_0xa132xa&&mxEdgeStyle[_0x4e14[2239]][_0xa132xa][_0xa132x14]==mxEdgeStyle[_0x4e14[2239]][_0xa132xa-1][_0xa132x14]?_0xa132xa--:_0xa132x4=_0xa132x14;};for(_0xa132x15=0;_0xa132x15<=_0xa132xa&& !(_0xa132x15==_0xa132xa&&((0<(_0xa132x2[1]&(mxConstants[_0x4e14[438]]|mxConstants[_0x4e14[436]]))?0:1)==_0xa132x13?0:1)!=(_0xa132xa+1)%2);_0xa132x15++){_0xa132x9[_0x4e14[207]]( new mxPoint(mxEdgeStyle[_0x4e14[2239]][_0xa132x15][0],mxEdgeStyle[_0x4e14[2239]][_0xa132x15][1]))};};},getRoutePattern:function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=_0xa132x2[0]==mxConstants[_0x4e14[438]]?3:_0xa132x2[0];_0xa132x2=_0xa132x2[1]==mxConstants[_0x4e14[438]]?3:_0xa132x2[1];_0xa132x9-=_0xa132x3;_0xa132x2-=_0xa132x3;1>_0xa132x9&&(_0xa132x9+=4);1>_0xa132x2&&(_0xa132x2+=4);_0xa132x3=routePatterns[_0xa132x9-1][_0xa132x2-1];if(0==_0xa132x4||0==_0xa132x5){null!=inlineRoutePatterns[_0xa132x9-1][_0xa132x2-1]&&(_0xa132x3=inlineRoutePatterns[_0xa132x9-1][_0xa132x2-1])};return _0xa132x3;}},mxStyleRegistry={values:[],putValue:function(_0xa132x2,_0xa132x3){mxStyleRegistry[_0x4e14[2245]][_0xa132x2]=_0xa132x3},getValue:function(_0xa132x2){return mxStyleRegistry[_0x4e14[2245]][_0xa132x2]},getName:function(_0xa132x2){for(var _0xa132x3 in mxStyleRegistry[_0x4e14[2245]]){if(mxStyleRegistry[_0x4e14[2245]][_0xa132x3]==_0xa132x2){return _0xa132x3}};return null;}};mxStyleRegistry[_0x4e14[2246]](mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry[_0x4e14[2246]](mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation);mxStyleRegistry[_0x4e14[2246]](mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry[_0x4e14[2246]](mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);mxStyleRegistry[_0x4e14[2246]](mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry[_0x4e14[2246]](mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry[_0x4e14[2246]](mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry[_0x4e14[2246]](mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter);mxStyleRegistry[_0x4e14[2246]](mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter);mxStyleRegistry[_0x4e14[2246]](mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter);mxStyleRegistry[_0x4e14[2246]](mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter);function mxGraphView(_0xa132x2){this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[513]]= new mxPoint;this[_0x4e14[2247]]= new mxRectangle;this[_0x4e14[1214]]= new mxDictionary;}mxGraphView[_0x4e14[202]]= new mxEventSource;mxGraphView[_0x4e14[202]][_0x4e14[196]]=mxGraphView;mxGraphView[_0x4e14[202]][_0x4e14[2248]]= new mxPoint;mxGraphView[_0x4e14[202]][_0x4e14[2091]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[819]:_0x4e14[110];mxGraphView[_0x4e14[202]][_0x4e14[2249]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[2250]:_0x4e14[110];mxGraphView[_0x4e14[202]][_0x4e14[2251]]= !1;mxGraphView[_0x4e14[202]][_0x4e14[2252]]= !0;mxGraphView[_0x4e14[202]][_0x4e14[2253]]= !0;mxGraphView[_0x4e14[202]][_0x4e14[2254]]= !0;mxGraphView[_0x4e14[202]][_0x4e14[1179]]=null;mxGraphView[_0x4e14[202]][_0x4e14[1741]]=null;mxGraphView[_0x4e14[202]][_0x4e14[2247]]=null;mxGraphView[_0x4e14[202]][_0x4e14[255]]=1;mxGraphView[_0x4e14[202]][_0x4e14[513]]=null;mxGraphView[_0x4e14[202]][_0x4e14[2255]]= !1;mxGraphView[_0x4e14[202]][_0x4e14[517]]=function(){return this[_0x4e14[2247]]};mxGraphView[_0x4e14[202]][_0x4e14[2256]]=function(_0xa132x2){this[_0x4e14[2247]]=_0xa132x2};mxGraphView[_0x4e14[202]][_0x4e14[1799]]=function(_0xa132x2){var _0xa132x3=null;if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){for(var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){if(_0xa132x4[_0x4e14[1193]](_0xa132x2[_0xa132x5])||_0xa132x4[_0x4e14[250]](_0xa132x2[_0xa132x5])){var _0xa132x9=this[_0x4e14[248]](_0xa132x2[_0xa132x5]);null!=_0xa132x9&&(null==_0xa132x3?_0xa132x3= new mxRectangle(_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]],_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]]):_0xa132x3[_0x4e14[99]](_0xa132x9));}}};return _0xa132x3;};mxGraphView[_0x4e14[202]][_0x4e14[2257]]=function(_0xa132x2){if(this[_0x4e14[1741]]!=_0xa132x2){var _0xa132x3= new mxCurrentRootChange(this,_0xa132x2);_0xa132x3[_0x4e14[350]]();var _0xa132x4= new mxUndoableEdit(this,!1);_0xa132x4[_0x4e14[99]](_0xa132x3);this[_0x4e14[746]]( new mxEventObject(mxEvent.UNDO,_0x4e14[1061],_0xa132x4));this[_0x4e14[1179]][_0x4e14[2258]]();};return _0xa132x2;};mxGraphView[_0x4e14[202]][_0x4e14[829]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[255]],_0xa132x9= new mxPoint(this[_0x4e14[513]][_0x4e14[235]],this[_0x4e14[513]][_0x4e14[236]]);if(this[_0x4e14[255]]!=_0xa132x2||this[_0x4e14[513]][_0x4e14[235]]!=_0xa132x3||this[_0x4e14[513]][_0x4e14[236]]!=_0xa132x4){this[_0x4e14[255]]=_0xa132x2,this[_0x4e14[513]][_0x4e14[235]]=_0xa132x3,this[_0x4e14[513]][_0x4e14[236]]=_0xa132x4,this[_0x4e14[503]]()&&(this[_0x4e14[2259]](),this[_0x4e14[1179]][_0x4e14[2258]]())};this[_0x4e14[746]]( new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,_0x4e14[255],_0xa132x2,_0x4e14[2260],_0xa132x5,_0x4e14[513],this[_0x4e14[513]],_0x4e14[2261],_0xa132x9));};mxGraphView[_0x4e14[202]][_0x4e14[518]]=function(){return this[_0x4e14[255]]};mxGraphView[_0x4e14[202]][_0x4e14[2262]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[255]];this[_0x4e14[255]]!=_0xa132x2&&(this[_0x4e14[255]]=_0xa132x2,this[_0x4e14[503]]()&&(this[_0x4e14[2259]](),this[_0x4e14[1179]][_0x4e14[2258]]()));this[_0x4e14[746]]( new mxEventObject(mxEvent.SCALE,_0x4e14[255],_0xa132x2,_0x4e14[2260],_0xa132x3));};mxGraphView[_0x4e14[202]][_0x4e14[512]]=function(){return this[_0x4e14[513]]};mxGraphView[_0x4e14[202]][_0x4e14[1147]]=function(_0xa132x2,_0xa132x3){var _0xa132x4= new mxPoint(this[_0x4e14[513]][_0x4e14[235]],this[_0x4e14[513]][_0x4e14[236]]);if(this[_0x4e14[513]][_0x4e14[235]]!=_0xa132x2||this[_0x4e14[513]][_0x4e14[236]]!=_0xa132x3){this[_0x4e14[513]][_0x4e14[235]]=_0xa132x2,this[_0x4e14[513]][_0x4e14[236]]=_0xa132x3,this[_0x4e14[503]]()&&(this[_0x4e14[2259]](),this[_0x4e14[1179]][_0x4e14[2258]]())};this[_0x4e14[746]]( new mxEventObject(mxEvent.TRANSLATE,_0x4e14[513],this[_0x4e14[513]],_0x4e14[2261],_0xa132x4));};mxGraphView[_0x4e14[202]][_0x4e14[802]]=function(){null!=this[_0x4e14[1741]]&&this[_0x4e14[200]]();this[_0x4e14[2259]]();};mxGraphView[_0x4e14[202]][_0x4e14[2259]]=function(){this[_0x4e14[2263]]();this[_0x4e14[2264]]();};mxGraphView[_0x4e14[202]][_0x4e14[200]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]]();_0xa132x2=_0xa132x2||_0xa132x5[_0x4e14[501]]();_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;this[_0x4e14[2265]](_0xa132x2);if(_0xa132x4&&(_0xa132x3||_0xa132x2!=this[_0x4e14[1741]])){_0xa132x4=_0xa132x5[_0x4e14[262]](_0xa132x2);for(var _0xa132x9=0;_0xa132x9<_0xa132x4;_0xa132x9++){this[_0x4e14[200]](_0xa132x5[_0x4e14[263]](_0xa132x2,_0xa132x9),_0xa132x3)};}else {this[_0x4e14[2263]](_0xa132x2)};};mxGraphView[_0x4e14[202]][_0x4e14[2263]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[502]]();_0xa132x2=_0xa132x2||_0xa132x9[_0x4e14[501]]();_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;_0xa132x5=null!=_0xa132x5?_0xa132x5:!1;var _0xa132xa=this[_0x4e14[248]](_0xa132x2);null!=_0xa132xa&&(_0xa132xa[_0x4e14[2080]]= !0,_0xa132x5&&(_0xa132xa[_0x4e14[2082]]= !0));if(_0xa132x3){for(var _0xa132x12=_0xa132x9[_0x4e14[262]](_0xa132x2),_0xa132xa=0;_0xa132xa<_0xa132x12;_0xa132xa++){var _0xa132x13=_0xa132x9[_0x4e14[263]](_0xa132x2,_0xa132xa);this[_0x4e14[2263]](_0xa132x13,_0xa132x3,_0xa132x4,_0xa132x5);}};if(_0xa132x4){_0xa132x5=_0xa132x9[_0x4e14[1707]](_0xa132x2);for(_0xa132xa=0;_0xa132xa<_0xa132x5;_0xa132xa++){this[_0x4e14[2263]](_0xa132x9[_0x4e14[1708]](_0xa132x2,_0xa132xa),_0xa132x3,_0xa132x4)};};};mxGraphView[_0x4e14[202]][_0x4e14[2264]]=function(_0xa132x2){var _0xa132x3=mxLog[_0x4e14[2109]](_0x4e14[2266]);window[_0x4e14[879]]=mxResources[_0x4e14[203]](this[_0x4e14[2249]])||this[_0x4e14[2249]];var _0xa132x4=null;if(this[_0x4e14[2253]]&&null!=this[_0x4e14[510]]&&null==this[_0x4e14[1653]]&&(8==document[_0x4e14[5]]||mxClient[_0x4e14[496]])){_0xa132x4=this[_0x4e14[510]][_0x4e14[124]][_0x4e14[495]];this[_0x4e14[510]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130];var _0xa132x5=document[_0x4e14[55]](_0x4e14[485]);_0xa132x5[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x5[_0x4e14[124]][_0x4e14[493]]=_0x4e14[494];_0xa132x5[_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];_0xa132x5[_0x4e14[124]][_0x4e14[495]]=mxClient[_0x4e14[496]]?_0x4e14[497]:_0x4e14[498];_0xa132x5[_0x4e14[124]][_0x4e14[499]]=_0x4e14[500];document[_0x4e14[112]][_0x4e14[62]](_0xa132x5);this[_0x4e14[1653]]=_0xa132x5;};_0xa132x2=_0xa132x2||(null!=this[_0x4e14[1741]]?this[_0x4e14[1741]]:this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[501]]());this[_0x4e14[2267]](null,_0xa132x2);_0xa132x2=this[_0x4e14[2268]](null,_0xa132x2);null==_0xa132x2&&(_0xa132x2= new mxRectangle);this[_0x4e14[2256]](_0xa132x2);this[_0x4e14[2269]]();null!=_0xa132x4&&(this[_0x4e14[510]][_0x4e14[124]][_0x4e14[495]]=_0xa132x4,document[_0x4e14[112]][_0x4e14[266]](this[_0x4e14[1653]]),this[_0x4e14[1653]]=null);window[_0x4e14[879]]=mxResources[_0x4e14[203]](this[_0x4e14[2091]])||this[_0x4e14[2091]];mxLog[_0x4e14[2110]](_0x4e14[2266],_0xa132x3);};mxGraphView[_0x4e14[202]][_0x4e14[2270]]=function(_0xa132x2){return  new mxRectangleShape(_0xa132x2,_0x4e14[1391],_0x4e14[586])};mxGraphView[_0x4e14[202]][_0x4e14[2269]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[2271]]();if(null!=_0xa132x2){if(null==this[_0x4e14[1617]]||this[_0x4e14[1617]][_0x4e14[618]]!=_0xa132x2[_0x4e14[390]]){null!=this[_0x4e14[1617]]&&this[_0x4e14[1617]][_0x4e14[515]]();var _0xa132x3= new mxRectangle(0,0,1,1);this[_0x4e14[1617]]= new mxImageShape(_0xa132x3,_0xa132x2[_0x4e14[390]]);this[_0x4e14[1617]][_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]];this[_0x4e14[1617]][_0x4e14[176]](this[_0x4e14[2053]]);this[_0x4e14[1617]][_0x4e14[258]]();};this[_0x4e14[2272]](this[_0x4e14[1617]],_0xa132x2);}else {null!=this[_0x4e14[1617]]&&(this[_0x4e14[1617]][_0x4e14[515]](),this[_0x4e14[1617]]=null)};this[_0x4e14[1179]][_0x4e14[2273]]?(_0xa132x3=this[_0x4e14[2274]](),null==this[_0x4e14[2275]]?(this[_0x4e14[2275]]=this[_0x4e14[2270]](_0xa132x3),this[_0x4e14[2275]][_0x4e14[255]]=this[_0x4e14[255]],this[_0x4e14[2275]][_0x4e14[1596]]= !0,this[_0x4e14[2275]][_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]],this[_0x4e14[2275]][_0x4e14[176]](this[_0x4e14[2053]]),this[_0x4e14[2275]][_0x4e14[258]](),mxEvent[_0x4e14[169]](this[_0x4e14[2275]][_0x4e14[252]],_0x4e14[760],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[761]](_0xa132x2)})),mxEvent[_0x4e14[759]](this[_0x4e14[2275]][_0x4e14[252]],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x2))}),mxUtils[_0x4e14[885]](this,function(_0xa132x2){null!=this[_0x4e14[1179]][_0x4e14[2276]]&&this[_0x4e14[1179]][_0x4e14[2276]][_0x4e14[2277]]()&&this[_0x4e14[1179]][_0x4e14[2276]][_0x4e14[801]]();this[_0x4e14[1179]][_0x4e14[1009]]&&!mxEvent[_0x4e14[721]](_0xa132x2)&&this[_0x4e14[1179]][_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x2));}),mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xa132x2))}))):(this[_0x4e14[2275]][_0x4e14[255]]=this[_0x4e14[255]],this[_0x4e14[2275]][_0x4e14[1562]]=_0xa132x3,this[_0x4e14[2275]][_0x4e14[258]]())):null!=this[_0x4e14[2275]]&&(this[_0x4e14[2275]][_0x4e14[515]](),this[_0x4e14[2275]]=null);};mxGraphView[_0x4e14[202]][_0x4e14[2274]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[2013]],_0xa132x3=this[_0x4e14[255]]*this[_0x4e14[1179]][_0x4e14[2012]];return  new mxRectangle(this[_0x4e14[255]]*this[_0x4e14[513]][_0x4e14[235]],this[_0x4e14[255]]*this[_0x4e14[513]][_0x4e14[236]],_0xa132x2[_0x4e14[117]]*_0xa132x3,_0xa132x2[_0x4e14[119]]*_0xa132x3);};mxGraphView[_0x4e14[202]][_0x4e14[2272]]=function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[255]]=this[_0x4e14[255]];_0xa132x2[_0x4e14[1562]][_0x4e14[235]]=this[_0x4e14[255]]*this[_0x4e14[513]][_0x4e14[235]];_0xa132x2[_0x4e14[1562]][_0x4e14[236]]=this[_0x4e14[255]]*this[_0x4e14[513]][_0x4e14[236]];_0xa132x2[_0x4e14[1562]][_0x4e14[117]]=this[_0x4e14[255]]*_0xa132x3[_0x4e14[117]];_0xa132x2[_0x4e14[1562]][_0x4e14[119]]=this[_0x4e14[255]]*_0xa132x3[_0x4e14[119]];_0xa132x2[_0x4e14[258]]();};mxGraphView[_0x4e14[202]][_0x4e14[2267]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=this[_0x4e14[248]](_0xa132x3,!0);if(null!=_0xa132x5&&_0xa132x5[_0x4e14[2080]]){if(this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x3)){if(_0xa132x3!=this[_0x4e14[1741]]&&null!=_0xa132x2){_0xa132x5[_0x4e14[2079]][_0x4e14[235]]=0;_0xa132x5[_0x4e14[2079]][_0x4e14[236]]=0;_0xa132x5[_0x4e14[2078]][_0x4e14[235]]=_0xa132x2[_0x4e14[2078]][_0x4e14[235]];_0xa132x5[_0x4e14[2078]][_0x4e14[236]]=_0xa132x2[_0x4e14[2078]][_0x4e14[236]];var _0xa132x9=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x3);if(null!=_0xa132x9){if(!_0xa132x4[_0x4e14[250]](_0xa132x3)){var _0xa132xa=_0xa132x9[_0x4e14[1368]]||this[_0x4e14[2248]];_0xa132x9[_0x4e14[1500]]?(_0xa132x5[_0x4e14[2078]][_0x4e14[235]]+=_0xa132x9[_0x4e14[235]]*_0xa132x2[_0x4e14[117]]/this[_0x4e14[255]]+_0xa132xa[_0x4e14[235]],_0xa132x5[_0x4e14[2078]][_0x4e14[236]]+=_0xa132x9[_0x4e14[236]]*_0xa132x2[_0x4e14[119]]/this[_0x4e14[255]]+_0xa132xa[_0x4e14[236]]):(_0xa132x5[_0x4e14[2079]][_0x4e14[235]]=this[_0x4e14[255]]*_0xa132xa[_0x4e14[235]],_0xa132x5[_0x4e14[2079]][_0x4e14[236]]=this[_0x4e14[255]]*_0xa132xa[_0x4e14[236]],_0xa132x5[_0x4e14[2078]][_0x4e14[235]]+=_0xa132x9[_0x4e14[235]],_0xa132x5[_0x4e14[2078]][_0x4e14[236]]+=_0xa132x9[_0x4e14[236]]);};_0xa132x5[_0x4e14[235]]=this[_0x4e14[255]]*(this[_0x4e14[513]][_0x4e14[235]]+_0xa132x5[_0x4e14[2078]][_0x4e14[235]]);_0xa132x5[_0x4e14[236]]=this[_0x4e14[255]]*(this[_0x4e14[513]][_0x4e14[236]]+_0xa132x5[_0x4e14[2078]][_0x4e14[236]]);_0xa132x5[_0x4e14[117]]=this[_0x4e14[255]]*_0xa132x9[_0x4e14[117]];_0xa132x5[_0x4e14[119]]=this[_0x4e14[255]]*_0xa132x9[_0x4e14[119]];if(_0xa132x4[_0x4e14[1193]](_0xa132x3)){if(_0xa132x9[_0x4e14[1500]]&&(_0xa132xa=mxUtils[_0x4e14[431]](_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]),0!=_0xa132xa)){var _0xa132x9=Math[_0x4e14[426]](_0xa132xa),_0xa132xa=Math[_0x4e14[427]](_0xa132xa),_0xa132x12= new mxPoint(_0xa132x5[_0x4e14[241]](),_0xa132x5[_0x4e14[242]]()),_0xa132x13= new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]()),_0xa132x9=mxUtils[_0x4e14[432]](_0xa132x12,_0xa132x9,_0xa132xa,_0xa132x13);_0xa132x5[_0x4e14[235]]=_0xa132x9[_0x4e14[235]]-_0xa132x5[_0x4e14[117]]/2;_0xa132x5[_0x4e14[236]]=_0xa132x9[_0x4e14[236]]-_0xa132x5[_0x4e14[119]]/2;};this[_0x4e14[2279]](_0xa132x5);};};}}else {this[_0x4e14[2265]](_0xa132x3)};_0xa132xa=this[_0x4e14[1179]][_0x4e14[2280]](_0xa132x3);null!=_0xa132xa&&(_0xa132x5[_0x4e14[2078]][_0x4e14[235]]+=_0xa132xa[_0x4e14[235]],_0xa132x5[_0x4e14[2078]][_0x4e14[236]]+=_0xa132xa[_0x4e14[236]]);};if(null!=_0xa132x5&&(!this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x3)||_0xa132x3==this[_0x4e14[1741]])){_0xa132x9=_0xa132x4[_0x4e14[262]](_0xa132x3);for(_0xa132xa=0;_0xa132xa<_0xa132x9;_0xa132xa++){_0xa132x12=_0xa132x4[_0x4e14[263]](_0xa132x3,_0xa132xa),this[_0x4e14[2267]](_0xa132x5,_0xa132x12)};};};mxGraphView[_0x4e14[202]][_0x4e14[2279]]=function(_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);_0xa132x3==mxConstants[_0x4e14[2132]]?_0xa132x2[_0x4e14[2079]][_0x4e14[235]]-=_0xa132x2[_0x4e14[117]]:_0xa132x3==mxConstants[_0x4e14[480]]&&(_0xa132x2[_0x4e14[2079]][_0x4e14[235]]+=_0xa132x2[_0x4e14[117]]);_0xa132x3=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);_0xa132x3==mxConstants[_0x4e14[1687]]?_0xa132x2[_0x4e14[2079]][_0x4e14[236]]-=_0xa132x2[_0x4e14[119]]:_0xa132x3==mxConstants[_0x4e14[482]]&&(_0xa132x2[_0x4e14[2079]][_0x4e14[236]]+=_0xa132x2[_0x4e14[119]]);};mxGraphView[_0x4e14[202]][_0x4e14[2268]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=this[_0x4e14[248]](_0xa132x3),_0xa132x9=null;if(null!=_0xa132x5){if(_0xa132x5[_0x4e14[2080]]){var _0xa132xa=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x3);if(null!=_0xa132xa&&_0xa132x4[_0x4e14[250]](_0xa132x3)){var _0xa132x12=this[_0x4e14[248]](this[_0x4e14[1710]](_0xa132x3,!0));_0xa132x5[_0x4e14[2090]](_0xa132x12,!0);if(null!=_0xa132x12&&_0xa132x4[_0x4e14[250]](_0xa132x12[_0x4e14[246]])&&!_0xa132x4[_0x4e14[1720]](_0xa132x12[_0x4e14[246]],_0xa132x3)){var _0xa132x13=this[_0x4e14[248]](_0xa132x4[_0x4e14[1197]](_0xa132x12[_0x4e14[246]]));this[_0x4e14[2268]](_0xa132x13,_0xa132x12[_0x4e14[246]]);};var _0xa132x14=this[_0x4e14[248]](this[_0x4e14[1710]](_0xa132x3,!1));_0xa132x5[_0x4e14[2090]](_0xa132x14,!1);null!=_0xa132x14&&(_0xa132x4[_0x4e14[250]](_0xa132x14[_0x4e14[246]])&&!_0xa132x4[_0x4e14[1720]](_0xa132x14[_0x4e14[246]],_0xa132x3))&&(_0xa132x13=this[_0x4e14[248]](_0xa132x4[_0x4e14[1197]](_0xa132x14[_0x4e14[246]])),this[_0x4e14[2268]](_0xa132x13,_0xa132x14[_0x4e14[246]]));this[_0x4e14[2281]](_0xa132x5,_0xa132x12,_0xa132x14);this[_0x4e14[2282]](_0xa132x5,_0xa132xa[_0x4e14[1525]],_0xa132x12,_0xa132x14);this[_0x4e14[2283]](_0xa132x5,_0xa132x12,_0xa132x14);this[_0x4e14[2284]](_0xa132x5);this[_0x4e14[2285]](_0xa132x5);}else {null!=_0xa132xa&&(_0xa132xa[_0x4e14[1500]]&&null!=_0xa132x2&&_0xa132x4[_0x4e14[250]](_0xa132x2[_0x4e14[246]]))&&(_0xa132xa=this[_0x4e14[245]](_0xa132x2,_0xa132xa),null!=_0xa132xa&&(_0xa132x5[_0x4e14[235]]=_0xa132xa[_0x4e14[235]],_0xa132x5[_0x4e14[236]]=_0xa132xa[_0x4e14[236]],_0xa132xa[_0x4e14[235]]=_0xa132xa[_0x4e14[235]]/this[_0x4e14[255]]-this[_0x4e14[513]][_0x4e14[235]],_0xa132xa[_0x4e14[236]]=_0xa132xa[_0x4e14[236]]/this[_0x4e14[255]]-this[_0x4e14[513]][_0x4e14[236]],_0xa132x5[_0x4e14[2078]]=_0xa132xa,this[_0x4e14[2286]](_0xa132x2,_0xa132x5)))};_0xa132x5[_0x4e14[2080]]= !1;_0xa132x3!=this[_0x4e14[1741]]&&this[_0x4e14[1179]][_0x4e14[259]][_0x4e14[258]](_0xa132x5,!1,this[_0x4e14[2287]]());};if(_0xa132x4[_0x4e14[250]](_0xa132x3)||_0xa132x4[_0x4e14[1193]](_0xa132x3)){null!=_0xa132x5[_0x4e14[253]]&&null!=_0xa132x5[_0x4e14[253]][_0x4e14[1563]]&&(_0xa132x9=_0xa132x5[_0x4e14[253]][_0x4e14[1563]][_0x4e14[238]]()),null!=_0xa132x5[_0x4e14[963]]&&!this[_0x4e14[1179]][_0x4e14[2130]](_0xa132x5[_0x4e14[246]])&&null!=_0xa132x5[_0x4e14[963]][_0x4e14[1563]]&&(null!=_0xa132x9?_0xa132x9[_0x4e14[99]](_0xa132x5[_0x4e14[963]][_0x4e14[1563]]):_0xa132x9=_0xa132x5[_0x4e14[963]][_0x4e14[1563]][_0x4e14[238]]())};};if(null!=_0xa132x5&&(!this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x3)||_0xa132x3==this[_0x4e14[1741]])){_0xa132xa=_0xa132x4[_0x4e14[262]](_0xa132x3);for(_0xa132x12=0;_0xa132x12<_0xa132xa;_0xa132x12++){_0xa132x13=_0xa132x4[_0x4e14[263]](_0xa132x3,_0xa132x12),_0xa132x13=this[_0x4e14[2268]](_0xa132x5,_0xa132x13),null!=_0xa132x13&&(null==_0xa132x9?_0xa132x9=_0xa132x13:_0xa132x9[_0x4e14[99]](_0xa132x13))};};return _0xa132x9;};mxGraphView[_0x4e14[202]][_0x4e14[2286]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x3[_0x4e14[246]];if(!this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x4)||_0xa132x4==this[_0x4e14[1741]]){for(var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x9=_0xa132x5[_0x4e14[262]](_0xa132x4),_0xa132xa=0;_0xa132xa<_0xa132x9;_0xa132xa++){this[_0x4e14[2267]](_0xa132x3,_0xa132x5[_0x4e14[263]](_0xa132x4,_0xa132xa))}};};mxGraphView[_0x4e14[202]][_0x4e14[2281]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[2289]](_0xa132x2,_0xa132x3,!0,this[_0x4e14[1179]][_0x4e14[2288]](_0xa132x2,_0xa132x3,!0));this[_0x4e14[2289]](_0xa132x2,_0xa132x4,!1,this[_0x4e14[1179]][_0x4e14[2288]](_0xa132x2,_0xa132x4,!1));};mxGraphView[_0x4e14[202]][_0x4e14[2289]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=null;null!=_0xa132x5&&(_0xa132x9=this[_0x4e14[1179]][_0x4e14[2290]](_0xa132x3,_0xa132x5));if(null==_0xa132x9&&null==_0xa132x3){_0xa132x3=this[_0x4e14[255]];_0xa132x5=this[_0x4e14[513]];var _0xa132xa=_0xa132x2[_0x4e14[2078]],_0xa132x9=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x2[_0x4e14[246]])[_0x4e14[2006]](_0xa132x4);null!=_0xa132x9&&(_0xa132x9= new mxPoint(_0xa132x3*(_0xa132x5[_0x4e14[235]]+_0xa132x9[_0x4e14[235]]+_0xa132xa[_0x4e14[235]]),_0xa132x3*(_0xa132x5[_0x4e14[236]]+_0xa132x9[_0x4e14[236]]+_0xa132xa[_0x4e14[236]])));};_0xa132x2[_0x4e14[2088]](_0xa132x9,_0xa132x4);};mxGraphView[_0x4e14[202]][_0x4e14[2282]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x2){var _0xa132x9=[];_0xa132x9[_0x4e14[207]](_0xa132x2[_0x4e14[439]][0]);var _0xa132xa=this[_0x4e14[2291]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5);if(null!=_0xa132xa){_0xa132x4=this[_0x4e14[2292]](_0xa132x2,_0xa132x4,!0),_0xa132x5=this[_0x4e14[2292]](_0xa132x2,_0xa132x5,!1),_0xa132xa(_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x3,_0xa132x9)}else {if(null!=_0xa132x3){for(_0xa132xa=0;_0xa132xa<_0xa132x3[_0x4e14[67]];_0xa132xa++){null!=_0xa132x3[_0xa132xa]&&(_0xa132x5=mxUtils[_0x4e14[238]](_0xa132x3[_0xa132xa]),_0xa132x9[_0x4e14[207]](this[_0x4e14[2229]](_0xa132x2,_0xa132x5)))}}};_0xa132x3=_0xa132x2[_0x4e14[439]];_0xa132x9[_0x4e14[207]](_0xa132x3[_0xa132x3[_0x4e14[67]]-1]);_0xa132x2[_0x4e14[439]]=_0xa132x9;}};mxGraphView[_0x4e14[202]][_0x4e14[2229]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[2078]];return  new mxPoint(this[_0x4e14[255]]*(_0xa132x3[_0x4e14[235]]+this[_0x4e14[513]][_0x4e14[235]]+_0xa132x4[_0x4e14[235]]),this[_0x4e14[255]]*(_0xa132x3[_0x4e14[236]]+this[_0x4e14[513]][_0x4e14[236]]+_0xa132x4[_0x4e14[236]]));};mxGraphView[_0x4e14[202]][_0x4e14[2291]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x2=null!=_0xa132x4&&_0xa132x4==_0xa132x5?mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_LOOP,this[_0x4e14[1179]][_0x4e14[2293]]):!mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_NOEDGESTYLE,!1)?_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2294]]]:null;_0x4e14[1516]== typeof _0xa132x2&&(_0xa132x3=mxStyleRegistry[_0x4e14[433]](_0xa132x2),null==_0xa132x3&&this[_0x4e14[2295]]()&&(_0xa132x3=mxUtils[_0x4e14[1545]](_0xa132x2)),_0xa132x2=_0xa132x3);return _0x4e14[279]== typeof _0xa132x2?_0xa132x2:null;};mxGraphView[_0x4e14[202]][_0x4e14[2283]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x2[_0x4e14[439]],_0xa132x9=_0xa132x5[0];null==_0xa132x5[_0xa132x5[_0x4e14[67]]-1]&&null!=_0xa132x4&&this[_0x4e14[2296]](_0xa132x2,_0xa132x4,_0xa132x3,!1);null==_0xa132x9&&null!=_0xa132x3&&this[_0x4e14[2296]](_0xa132x2,_0xa132x3,_0xa132x4,!0);};mxGraphView[_0x4e14[202]][_0x4e14[2296]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3=this[_0x4e14[2292]](_0xa132x2,_0xa132x3,_0xa132x5);var _0xa132x9=this[_0x4e14[2297]](_0xa132x2,_0xa132x4,_0xa132x5),_0xa132xa=this[_0x4e14[1179]][_0x4e14[2298]](_0xa132x2);_0xa132x4=mxUtils[_0x4e14[431]](Number(_0xa132x3[_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]));var _0xa132x12= new mxPoint(_0xa132x3[_0x4e14[241]](),_0xa132x3[_0x4e14[242]]());if(0!=_0xa132x4){var _0xa132x13=Math[_0x4e14[426]](-_0xa132x4),_0xa132x14=Math[_0x4e14[427]](-_0xa132x4),_0xa132x9=mxUtils[_0x4e14[432]](_0xa132x9,_0xa132x13,_0xa132x14,_0xa132x12)};_0xa132x13=parseFloat(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2299]]]||0);_0xa132x13+=parseFloat(_0xa132x2[_0x4e14[124]][_0xa132x5?mxConstants[_0x4e14[2300]]:mxConstants[_0x4e14[2301]]]||0);_0xa132x3=this[_0x4e14[2302]](_0xa132x3,_0xa132x9,0==_0xa132x4&&_0xa132xa,_0xa132x13);0!=_0xa132x4&&(_0xa132x13=Math[_0x4e14[426]](_0xa132x4),_0xa132x14=Math[_0x4e14[427]](_0xa132x4),_0xa132x3=mxUtils[_0x4e14[432]](_0xa132x3,_0xa132x13,_0xa132x14,_0xa132x12));_0xa132x2[_0x4e14[2088]](_0xa132x3,_0xa132x5);};mxGraphView[_0x4e14[202]][_0x4e14[2292]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],_0xa132x4?mxConstants[_0x4e14[2303]]:mxConstants[_0x4e14[2304]]);null!=_0xa132x2&&(_0xa132x2=this[_0x4e14[248]](this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[736]](_0xa132x2)),null!=_0xa132x2&&(_0xa132x3=_0xa132x2));return _0xa132x3;};mxGraphView[_0x4e14[202]][_0x4e14[2302]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=null;if(null!=_0xa132x2){var _0xa132xa=this[_0x4e14[2305]](_0xa132x2);if(null!=_0xa132xa&&null!=_0xa132x3&&(_0xa132x5=this[_0x4e14[2087]](_0xa132x2,_0xa132x5),0<_0xa132x5[_0x4e14[117]]||0<_0xa132x5[_0x4e14[119]])){_0xa132x9=_0xa132xa(_0xa132x5,_0xa132x2,_0xa132x3,_0xa132x4)};null==_0xa132x9&&(_0xa132x9=this[_0x4e14[245]](_0xa132x2));};return _0xa132x9;};mxGraphView[_0x4e14[202]][_0x4e14[2230]]=function(_0xa132x2){var _0xa132x3=null!=_0xa132x2[_0x4e14[124]]?parseFloat(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2306]]])||0:0;return _0xa132x2[_0x4e14[241]]()+_0xa132x3*_0xa132x2[_0x4e14[117]];};mxGraphView[_0x4e14[202]][_0x4e14[2228]]=function(_0xa132x2){var _0xa132x3=null!=_0xa132x2[_0x4e14[124]]?parseFloat(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2307]]])||0:0;return _0xa132x2[_0x4e14[242]]()+_0xa132x3*_0xa132x2[_0x4e14[119]];};mxGraphView[_0x4e14[202]][_0x4e14[2087]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:0;null!=_0xa132x2&&(_0xa132x3+=parseFloat(_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2299]]]||0));return _0xa132x2[_0x4e14[2087]](_0xa132x3*this[_0x4e14[255]]);};mxGraphView[_0x4e14[202]][_0x4e14[2305]]=function(_0xa132x2){_0xa132x2=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2061]]];if(_0x4e14[1516]== typeof _0xa132x2){var _0xa132x3=mxStyleRegistry[_0x4e14[433]](_0xa132x2);null==_0xa132x3&&this[_0x4e14[2295]]()&&(_0xa132x3=mxUtils[_0x4e14[1545]](_0xa132x2));_0xa132x2=_0xa132x3;};return _0x4e14[279]== typeof _0xa132x2?_0xa132x2:null;};mxGraphView[_0x4e14[202]][_0x4e14[2297]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=_0xa132x2[_0x4e14[439]];var _0xa132x5=null;if(null!=_0xa132x2&&(_0xa132x4||2<_0xa132x2[_0x4e14[67]]||null==_0xa132x3)){_0xa132x5=_0xa132x2[_0x4e14[67]],_0xa132x5=_0xa132x2[_0xa132x4?Math[_0x4e14[243]](1,_0xa132x5-1):Math[_0x4e14[160]](0,_0xa132x5-2)]};null==_0xa132x5&&null!=_0xa132x3&&(_0xa132x5= new mxPoint(_0xa132x3[_0x4e14[241]](),_0xa132x3[_0x4e14[242]]()));return _0xa132x5;};mxGraphView[_0x4e14[202]][_0x4e14[1710]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=_0xa132x4[_0x4e14[1709]](_0xa132x2,_0xa132x3),_0xa132x9=_0xa132x5;null!=_0xa132x5&&_0xa132x5!=this[_0x4e14[1741]];){if(!this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x9)||this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x5)){_0xa132x9=_0xa132x5};_0xa132x5=_0xa132x4[_0x4e14[1197]](_0xa132x5);};_0xa132x4[_0x4e14[1197]](_0xa132x9)==_0xa132x4[_0x4e14[501]]()&&(_0xa132x9=null);return _0xa132x9;};mxGraphView[_0x4e14[202]][_0x4e14[2284]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[439]];_0xa132x2[_0x4e14[67]]=0;if(null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]){var _0xa132x4=_0xa132x3[0],_0xa132x5=_0xa132x3[_0xa132x3[_0x4e14[67]]-1];if(null==_0xa132x4||null==_0xa132x5){_0xa132x2[_0x4e14[246]]!=this[_0x4e14[1741]]&&this[_0x4e14[200]](_0xa132x2[_0x4e14[246]],!0)}else {if(_0xa132x4[_0x4e14[235]]!=_0xa132x5[_0x4e14[235]]||_0xa132x4[_0x4e14[236]]!=_0xa132x5[_0x4e14[236]]){var _0xa132x9=_0xa132x5[_0x4e14[235]]-_0xa132x4[_0x4e14[235]],_0xa132xa=_0xa132x5[_0x4e14[236]]-_0xa132x4[_0x4e14[236]];_0xa132x2[_0x4e14[2085]]=Math[_0x4e14[428]](_0xa132x9*_0xa132x9+_0xa132xa*_0xa132xa);}else {_0xa132x2[_0x4e14[2085]]=0};var _0xa132x5=0,_0xa132x12=[],_0xa132xa=_0xa132x4;if(null!=_0xa132xa){for(var _0xa132x4=_0xa132xa[_0x4e14[235]],_0xa132x13=_0xa132xa[_0x4e14[236]],_0xa132x14=_0xa132x4,_0xa132x15=_0xa132x13,_0xa132x16=1;_0xa132x16<_0xa132x3[_0x4e14[67]];_0xa132x16++){var _0xa132x17=_0xa132x3[_0xa132x16];null!=_0xa132x17&&(_0xa132x9=_0xa132xa[_0x4e14[235]]-_0xa132x17[_0x4e14[235]],_0xa132xa=_0xa132xa[_0x4e14[236]]-_0xa132x17[_0x4e14[236]],_0xa132x9=Math[_0x4e14[428]](_0xa132x9*_0xa132x9+_0xa132xa*_0xa132xa),_0xa132x12[_0x4e14[207]](_0xa132x9),_0xa132x5+=_0xa132x9,_0xa132xa=_0xa132x17,_0xa132x4=Math[_0x4e14[243]](_0xa132xa[_0x4e14[235]],_0xa132x4),_0xa132x13=Math[_0x4e14[243]](_0xa132xa[_0x4e14[236]],_0xa132x13),_0xa132x14=Math[_0x4e14[160]](_0xa132xa[_0x4e14[235]],_0xa132x14),_0xa132x15=Math[_0x4e14[160]](_0xa132xa[_0x4e14[236]],_0xa132x15));};_0xa132x2[_0x4e14[67]]=_0xa132x5;_0xa132x2[_0x4e14[2086]]=_0xa132x12;_0xa132x2[_0x4e14[235]]=_0xa132x4;_0xa132x2[_0x4e14[236]]=_0xa132x13;_0xa132x2[_0x4e14[117]]=Math[_0x4e14[160]](1,_0xa132x14-_0xa132x4);_0xa132x2[_0x4e14[119]]=Math[_0x4e14[160]](1,_0xa132x15-_0xa132x13);};};};};mxGraphView[_0x4e14[202]][_0x4e14[245]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[241]](),_0xa132x5=_0xa132x2[_0x4e14[242]]();if(null!=_0xa132x2[_0x4e14[2086]]&&(null==_0xa132x3||_0xa132x3[_0x4e14[1500]])){for(var _0xa132x9=_0xa132x2[_0x4e14[439]][_0x4e14[67]],_0xa132xa=((null!=_0xa132x3?_0xa132x3[_0x4e14[235]]/2:0)+0.5)*_0xa132x2[_0x4e14[67]],_0xa132x12=_0xa132x2[_0x4e14[2086]][0],_0xa132x13=0,_0xa132x14=1;_0xa132xa>_0xa132x13+_0xa132x12&&_0xa132x14<_0xa132x9-1;){_0xa132x13+=_0xa132x12,_0xa132x12=_0xa132x2[_0x4e14[2086]][_0xa132x14++]};_0xa132x9=0==_0xa132x12?0:(_0xa132xa-_0xa132x13)/_0xa132x12;_0xa132xa=_0xa132x2[_0x4e14[439]][_0xa132x14-1];_0xa132x14=_0xa132x2[_0x4e14[439]][_0xa132x14];if(null!=_0xa132xa&&null!=_0xa132x14){_0xa132x13=_0xa132x4=_0xa132x5=0;if(null!=_0xa132x3){var _0xa132x5=_0xa132x3[_0x4e14[236]],_0xa132x15=_0xa132x3[_0x4e14[1368]];null!=_0xa132x15&&(_0xa132x4=_0xa132x15[_0x4e14[235]],_0xa132x13=_0xa132x15[_0x4e14[236]]);};_0xa132x15=_0xa132x14[_0x4e14[235]]-_0xa132xa[_0x4e14[235]];_0xa132x14=_0xa132x14[_0x4e14[236]]-_0xa132xa[_0x4e14[236]];_0xa132x4=_0xa132xa[_0x4e14[235]]+_0xa132x15*_0xa132x9+((0==_0xa132x12?0:_0xa132x14/_0xa132x12)*_0xa132x5+_0xa132x4)*this[_0x4e14[255]];_0xa132x5=_0xa132xa[_0x4e14[236]]+_0xa132x14*_0xa132x9-((0==_0xa132x12?0:_0xa132x15/_0xa132x12)*_0xa132x5-_0xa132x13)*this[_0x4e14[255]];};}else {null!=_0xa132x3&&(_0xa132x15=_0xa132x3[_0x4e14[1368]],null!=_0xa132x15&&(_0xa132x4+=_0xa132x15[_0x4e14[235]],_0xa132x5+=_0xa132x15[_0x4e14[236]]))};return  new mxPoint(_0xa132x4,_0xa132x5);};mxGraphView[_0x4e14[202]][_0x4e14[2308]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1721]](_0xa132x2[_0x4e14[246]]);if(null!=_0xa132x5){var _0xa132x9=_0xa132x2[_0x4e14[439]][_0x4e14[67]];if(_0xa132x5[_0x4e14[1500]]&&1<_0xa132x9){for(var _0xa132x5=_0xa132x2[_0x4e14[67]],_0xa132xa=_0xa132x2[_0x4e14[2086]],_0xa132x12=_0xa132x2[_0x4e14[439]][0],_0xa132x13=_0xa132x2[_0x4e14[439]][1],_0xa132x14=mxUtils[_0x4e14[440]](_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]],_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]],_0xa132x3,_0xa132x4),_0xa132x15=0,_0xa132x16=0,_0xa132x17=0,_0xa132x18=2;_0xa132x18<_0xa132x9;_0xa132x18++){_0xa132x16+=_0xa132xa[_0xa132x18-2],_0xa132x13=_0xa132x2[_0x4e14[439]][_0xa132x18],_0xa132x12=mxUtils[_0x4e14[440]](_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]],_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]],_0xa132x3,_0xa132x4),_0xa132x12<=_0xa132x14&&(_0xa132x14=_0xa132x12,_0xa132x15=_0xa132x18-1,_0xa132x17=_0xa132x16),_0xa132x12=_0xa132x13};_0xa132x9=_0xa132xa[_0xa132x15];_0xa132x12=_0xa132x2[_0x4e14[439]][_0xa132x15];_0xa132x13=_0xa132x2[_0x4e14[439]][_0xa132x15+1];_0xa132x14=_0xa132x13[_0x4e14[235]];_0xa132xa=_0xa132x13[_0x4e14[236]];_0xa132x2=_0xa132x12[_0x4e14[235]]-_0xa132x14;_0xa132x15=_0xa132x12[_0x4e14[236]]-_0xa132xa;_0xa132x14=_0xa132x3-_0xa132x14;_0xa132xa=_0xa132x4-_0xa132xa;_0xa132x14=_0xa132x2-_0xa132x14;_0xa132xa=_0xa132x15-_0xa132xa;_0xa132xa=_0xa132x14*_0xa132x2+_0xa132xa*_0xa132x15;_0xa132x2=Math[_0x4e14[428]](0>=_0xa132xa?0:_0xa132xa*_0xa132xa/(_0xa132x2*_0xa132x2+_0xa132x15*_0xa132x15));_0xa132x2>_0xa132x9&&(_0xa132x2=_0xa132x9);_0xa132x9=Math[_0x4e14[428]](mxUtils[_0x4e14[440]](_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]],_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]],_0xa132x3,_0xa132x4));-1==mxUtils[_0x4e14[2309]](_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]],_0xa132x13[_0x4e14[235]],_0xa132x13[_0x4e14[236]],_0xa132x3,_0xa132x4)&&(_0xa132x9= -_0xa132x9);return  new mxPoint(-2*((_0xa132x5/2-_0xa132x17-_0xa132x2)/_0xa132x5),_0xa132x9/this[_0x4e14[255]]);};};return  new mxPoint;};mxGraphView[_0x4e14[202]][_0x4e14[2285]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[439]];_0xa132x2[_0x4e14[2079]][_0x4e14[235]]=_0xa132x2[_0x4e14[241]]();_0xa132x2[_0x4e14[2079]][_0x4e14[236]]=_0xa132x2[_0x4e14[242]]();if(null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]&&null!=_0xa132x2[_0x4e14[2086]]){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x2[_0x4e14[246]]);if(_0xa132x4[_0x4e14[1500]]){var _0xa132x5=this[_0x4e14[245]](_0xa132x2,_0xa132x4);null!=_0xa132x5&&(_0xa132x2[_0x4e14[2079]]=_0xa132x5);}else {var _0xa132x5=_0xa132x3[0],_0xa132x9=_0xa132x3[_0xa132x3[_0x4e14[67]]-1];if(null!=_0xa132x5&&null!=_0xa132x9){var _0xa132x3=_0xa132x9[_0x4e14[235]]-_0xa132x5[_0x4e14[235]],_0xa132xa=_0xa132x9[_0x4e14[236]]-_0xa132x5[_0x4e14[236]],_0xa132x12=_0xa132x9=0,_0xa132x4=_0xa132x4[_0x4e14[1368]];null!=_0xa132x4&&(_0xa132x9=_0xa132x4[_0x4e14[235]],_0xa132x12=_0xa132x4[_0x4e14[236]]);_0xa132x4=_0xa132x5[_0x4e14[236]]+_0xa132xa/2+_0xa132x12*this[_0x4e14[255]];_0xa132x2[_0x4e14[2079]][_0x4e14[235]]=_0xa132x5[_0x4e14[235]]+_0xa132x3/2+_0xa132x9*this[_0x4e14[255]];_0xa132x2[_0x4e14[2079]][_0x4e14[236]]=_0xa132x4;};};};};mxGraphView[_0x4e14[202]][_0x4e14[248]]=function(_0xa132x2,_0xa132x3){_0xa132x3=_0xa132x3|| !1;var _0xa132x4=null;null!=_0xa132x2&&(_0xa132x4=this[_0x4e14[1214]][_0x4e14[203]](_0xa132x2),this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x2)&&(null==_0xa132x4&&_0xa132x3&&this[_0x4e14[1179]][_0x4e14[1714]](_0xa132x2)?(_0xa132x4=this[_0x4e14[1230]](_0xa132x2),this[_0x4e14[1214]][_0x4e14[204]](_0xa132x2,_0xa132x4)):_0xa132x3&&(null!=_0xa132x4&&this[_0x4e14[2255]])&&(_0xa132x4[_0x4e14[124]]=this[_0x4e14[1179]][_0x4e14[1705]](_0xa132x2))));return _0xa132x4;};mxGraphView[_0x4e14[202]][_0x4e14[2287]]=function(){return this[_0x4e14[2254]]};mxGraphView[_0x4e14[202]][_0x4e14[2310]]=function(_0xa132x2){this[_0x4e14[2254]]=_0xa132x2};mxGraphView[_0x4e14[202]][_0x4e14[2295]]=function(){return this[_0x4e14[2251]]};mxGraphView[_0x4e14[202]][_0x4e14[2311]]=function(_0xa132x2){this[_0x4e14[2251]]=_0xa132x2};mxGraphView[_0x4e14[202]][_0x4e14[2312]]=function(){return this[_0x4e14[1214]]};mxGraphView[_0x4e14[202]][_0x4e14[1517]]=function(_0xa132x2){this[_0x4e14[1214]]=_0xa132x2};mxGraphView[_0x4e14[202]][_0x4e14[2313]]=function(_0xa132x2){if(null==_0xa132x2){return this[_0x4e14[1214]]};for(var _0xa132x3=[],_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){var _0xa132x5=this[_0x4e14[248]](_0xa132x2[_0xa132x4]);null!=_0xa132x5&&_0xa132x3[_0x4e14[207]](_0xa132x5);};return _0xa132x3;};mxGraphView[_0x4e14[202]][_0x4e14[2265]]=function(_0xa132x2){var _0xa132x3=null;null!=_0xa132x2&&(_0xa132x3=this[_0x4e14[1214]][_0x4e14[205]](_0xa132x2),null!=_0xa132x3&&(this[_0x4e14[1179]][_0x4e14[259]][_0x4e14[515]](_0xa132x3),_0xa132x3[_0x4e14[515]]()));return _0xa132x3;};mxGraphView[_0x4e14[202]][_0x4e14[1230]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[1705]](_0xa132x2);_0xa132x2= new mxCellState(this,_0xa132x2,_0xa132x3);this[_0x4e14[1179]][_0x4e14[259]][_0x4e14[2155]](_0xa132x2,this[_0x4e14[2287]]());return _0xa132x2;};mxGraphView[_0x4e14[202]][_0x4e14[2051]]=function(){return this[_0x4e14[510]]};mxGraphView[_0x4e14[202]][_0x4e14[2052]]=function(){return this[_0x4e14[2053]]};mxGraphView[_0x4e14[202]][_0x4e14[2024]]=function(){return this[_0x4e14[505]]};mxGraphView[_0x4e14[202]][_0x4e14[1524]]=function(){return this[_0x4e14[506]]};mxGraphView[_0x4e14[202]][_0x4e14[2314]]=function(_0xa132x2){_0xa132x2=mxEvent[_0x4e14[728]](_0xa132x2);return _0xa132x2==this[_0x4e14[1179]][_0x4e14[526]]||_0xa132x2[_0x4e14[265]]==this[_0x4e14[2053]]||null!=_0xa132x2[_0x4e14[265]]&&_0xa132x2[_0x4e14[265]][_0x4e14[265]]==this[_0x4e14[2053]]||_0xa132x2==this[_0x4e14[510]][_0x4e14[265]]||_0xa132x2==this[_0x4e14[510]]||_0xa132x2==this[_0x4e14[2053]]||_0xa132x2==this[_0x4e14[505]]||_0xa132x2==this[_0x4e14[506]];};mxGraphView[_0x4e14[202]][_0x4e14[2315]]=function(_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[445]](this[_0x4e14[1179]][_0x4e14[526]]);_0xa132x2= new mxPoint(_0xa132x2[_0x4e14[782]]-_0xa132x3[_0x4e14[235]],_0xa132x2[_0x4e14[784]]-_0xa132x3[_0x4e14[236]]);var _0xa132x3=this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[359]],_0xa132x4=this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[159]];if(_0xa132x3>_0xa132x4&&_0xa132x2[_0x4e14[235]]>_0xa132x4+2&&_0xa132x2[_0x4e14[235]]<=_0xa132x3){return !0};_0xa132x3=this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[167]];_0xa132x4=this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[157]];return _0xa132x3>_0xa132x4&&_0xa132x2[_0x4e14[236]]>_0xa132x4+2&&_0xa132x2[_0x4e14[236]]<=_0xa132x3?!0:!1;};mxGraphView[_0x4e14[202]][_0x4e14[176]]=function(){this[_0x4e14[2163]]();var _0xa132x2=this[_0x4e14[1179]];_0xa132x2[_0x4e14[507]]==mxConstants[_0x4e14[508]]?this[_0x4e14[1569]]():_0xa132x2[_0x4e14[507]]==mxConstants[_0x4e14[1523]]?this[_0x4e14[1571]]():this[_0x4e14[1570]]();};mxGraphView[_0x4e14[202]][_0x4e14[2163]]=function(){var _0xa132x2=this[_0x4e14[1179]],_0xa132x3=_0xa132x2[_0x4e14[526]];if(null!=_0xa132x3){mxEvent[_0x4e14[759]](_0xa132x3,mxUtils[_0x4e14[885]](this,function(_0xa132x3){mxClient[_0x4e14[754]]&&_0xa132x2[_0x4e14[2203]]()&&_0xa132x2[_0x4e14[2126]](!_0xa132x2[_0x4e14[2134]]());this[_0x4e14[2314]](_0xa132x3)&&(!mxClient[_0x4e14[80]]&&!mxClient[_0x4e14[76]]&&!mxClient[_0x4e14[71]]&&!mxClient[_0x4e14[75]]||!this[_0x4e14[2315]](_0xa132x3))&&_0xa132x2[_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x3));}),mxUtils[_0x4e14[885]](this,function(_0xa132x3){this[_0x4e14[2314]](_0xa132x3)&&_0xa132x2[_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x3))}),mxUtils[_0x4e14[885]](this,function(_0xa132x3){this[_0x4e14[2314]](_0xa132x3)&&_0xa132x2[_0x4e14[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xa132x3))}));mxEvent[_0x4e14[169]](_0xa132x3,_0x4e14[760],mxUtils[_0x4e14[885]](this,function(_0xa132x3){_0xa132x2[_0x4e14[761]](_0xa132x3)}));var _0xa132x4=function(_0xa132x4){var _0xa132x9=null;mxClient[_0x4e14[754]]&&(_0xa132x9=mxEvent[_0x4e14[731]](_0xa132x4),_0xa132x4=mxEvent[_0x4e14[733]](_0xa132x4),_0xa132x4=mxUtils[_0x4e14[2196]](_0xa132x3,_0xa132x9,_0xa132x4),_0xa132x9=_0xa132x2[_0x4e14[441]][_0x4e14[248]](_0xa132x2[_0x4e14[999]](_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]])));return _0xa132x9;};_0xa132x2[_0x4e14[1133]]({mouseDown:function(_0xa132x3,_0xa132x4){_0xa132x2[_0x4e14[2316]][_0x4e14[1032]]()},mouseMove:function(){},mouseUp:function(){}});this[_0x4e14[2317]]=mxUtils[_0x4e14[885]](this,function(_0xa132x3){null!=_0xa132x2[_0x4e14[2276]]&&_0xa132x2[_0x4e14[2276]][_0x4e14[2277]]()&&_0xa132x2[_0x4e14[2276]][_0x4e14[801]]();this[_0x4e14[2252]]&&(_0xa132x2[_0x4e14[1009]]&&!mxEvent[_0x4e14[721]](_0xa132x3))&&_0xa132x2[_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x3,_0xa132x4(_0xa132x3)));});this[_0x4e14[2318]]=mxUtils[_0x4e14[885]](this,function(_0xa132x3){this[_0x4e14[2252]]&&_0xa132x2[_0x4e14[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xa132x3))});mxEvent[_0x4e14[759]](document,null,this[_0x4e14[2317]],this[_0x4e14[2318]]);};};mxGraphView[_0x4e14[202]][_0x4e14[1570]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[526]];null!=_0xa132x2&&(this[_0x4e14[510]]=this[_0x4e14[2319]](_0x4e14[118],_0x4e14[118]),this[_0x4e14[2053]]=this[_0x4e14[2319]](_0x4e14[942],_0x4e14[942]),this[_0x4e14[505]]=this[_0x4e14[2319]](_0x4e14[942],_0x4e14[942]),this[_0x4e14[506]]=this[_0x4e14[2319]](_0x4e14[942],_0x4e14[942]),this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[2053]]),this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[505]]),this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[506]]),_0xa132x2[_0x4e14[62]](this[_0x4e14[510]]),mxClient[_0x4e14[496]]&&(_0xa132x2=mxUtils[_0x4e14[885]](this,function(_0xa132x2){_0xa132x2=this[_0x4e14[517]]();this[_0x4e14[2320]](_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]+this[_0x4e14[1179]][_0x4e14[467]],_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]+this[_0x4e14[1179]][_0x4e14[467]]);}),mxEvent[_0x4e14[169]](window,_0x4e14[129],_0xa132x2)));};mxGraphView[_0x4e14[202]][_0x4e14[2320]]=function(_0xa132x2,_0xa132x3){if(null!=this[_0x4e14[1179]][_0x4e14[526]]){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[167]];this[_0x4e14[510]][_0x4e14[124]][_0x4e14[117]]=this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[359]]<_0xa132x2?_0xa132x2+_0x4e14[168]:_0x4e14[118];this[_0x4e14[510]][_0x4e14[124]][_0x4e14[119]]=_0xa132x4<_0xa132x3?_0xa132x3+_0x4e14[168]:_0x4e14[118];}};mxGraphView[_0x4e14[202]][_0x4e14[2319]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[529]);null!=_0xa132x2&&null!=_0xa132x3?(_0xa132x4[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492],_0xa132x4[_0x4e14[124]][_0x4e14[361]]=_0x4e14[946],_0xa132x4[_0x4e14[124]][_0x4e14[125]]=_0x4e14[946],_0xa132x4[_0x4e14[124]][_0x4e14[117]]=_0xa132x2,_0xa132x4[_0x4e14[124]][_0x4e14[119]]=_0xa132x3):_0xa132x4[_0x4e14[124]][_0x4e14[491]]=_0x4e14[1500];return _0xa132x4;};mxGraphView[_0x4e14[202]][_0x4e14[1571]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[526]];if(null!=_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[359]],_0xa132x4=_0xa132x2[_0x4e14[167]];this[_0x4e14[510]]=this[_0x4e14[2321]](_0xa132x3,_0xa132x4);this[_0x4e14[2053]]=this[_0x4e14[2321]](_0xa132x3,_0xa132x4);this[_0x4e14[505]]=this[_0x4e14[2321]](_0xa132x3,_0xa132x4);this[_0x4e14[506]]=this[_0x4e14[2321]](_0xa132x3,_0xa132x4);this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[2053]]);this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[505]]);this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[506]]);_0xa132x2[_0x4e14[62]](this[_0x4e14[510]]);};};mxGraphView[_0x4e14[202]][_0x4e14[2321]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](mxClient[_0x4e14[463]]+_0x4e14[1499]);_0xa132x4[_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];_0xa132x4[_0x4e14[124]][_0x4e14[361]]=_0x4e14[946];_0xa132x4[_0x4e14[124]][_0x4e14[125]]=_0x4e14[946];_0xa132x4[_0x4e14[124]][_0x4e14[117]]=_0xa132x2+_0x4e14[168];_0xa132x4[_0x4e14[124]][_0x4e14[119]]=_0xa132x3+_0x4e14[168];_0xa132x4[_0x4e14[57]](_0x4e14[1462],_0xa132x2+_0x4e14[537]+_0xa132x3);_0xa132x4[_0x4e14[57]](_0x4e14[2322],_0x4e14[2323]);return _0xa132x4;};mxGraphView[_0x4e14[202]][_0x4e14[1569]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[526]];this[_0x4e14[510]]=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[449]);this[_0x4e14[2053]]=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[449]);this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[2053]]);this[_0x4e14[505]]=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[449]);this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[505]]);this[_0x4e14[506]]=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[449]);this[_0x4e14[510]][_0x4e14[62]](this[_0x4e14[506]]);var _0xa132x3=document[_0x4e14[509]](mxConstants.NS_SVG,_0x4e14[571]);_0xa132x3[_0x4e14[124]][_0x4e14[117]]=_0x4e14[118];_0xa132x3[_0x4e14[124]][_0x4e14[119]]=_0x4e14[118];_0xa132x3[_0x4e14[124]][_0x4e14[495]]=_0x4e14[694];_0xa132x3[_0x4e14[62]](this[_0x4e14[510]]);null!=_0xa132x2&&(_0xa132x2[_0x4e14[62]](_0xa132x3),_0x4e14[2324]==mxUtils[_0x4e14[275]](_0xa132x2)[_0x4e14[491]]&&(_0xa132x2[_0x4e14[124]][_0x4e14[491]]=_0x4e14[1500]));};mxGraphView[_0x4e14[202]][_0x4e14[515]]=function(){var _0xa132x2=null!=this[_0x4e14[510]]?this[_0x4e14[510]][_0x4e14[538]]:null;null==_0xa132x2&&(_0xa132x2=this[_0x4e14[510]]);null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[265]]&&(this[_0x4e14[200]](this[_0x4e14[1741]],!0),mxEvent[_0x4e14[938]](document,null,this[_0x4e14[2317]],this[_0x4e14[2318]]),mxEvent[_0x4e14[762]](this[_0x4e14[1179]][_0x4e14[526]]),_0xa132x2[_0x4e14[265]][_0x4e14[266]](_0xa132x2),this[_0x4e14[506]]=this[_0x4e14[505]]=this[_0x4e14[2053]]=this[_0x4e14[510]]=this[_0x4e14[2318]]=this[_0x4e14[2317]]=null);};function mxCurrentRootChange(_0xa132x2,_0xa132x3){this[_0x4e14[441]]=_0xa132x2;this[_0x4e14[257]]=this[_0x4e14[813]]=_0xa132x3;this[_0x4e14[2325]]=null==_0xa132x3;if(!this[_0x4e14[2325]]){for(var _0xa132x4=this[_0x4e14[441]][_0x4e14[1741]],_0xa132x5=this[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]();null!=_0xa132x4;){if(_0xa132x4==_0xa132x3){this[_0x4e14[2325]]= !0;break;};_0xa132x4=_0xa132x5[_0x4e14[1197]](_0xa132x4);}};}mxCurrentRootChange[_0x4e14[202]][_0x4e14[350]]=function(){var _0xa132x2=this[_0x4e14[441]][_0x4e14[1741]];this[_0x4e14[441]][_0x4e14[1741]]=this[_0x4e14[257]];this[_0x4e14[257]]=_0xa132x2;_0xa132x2=this[_0x4e14[441]][_0x4e14[1179]][_0x4e14[2326]](this[_0x4e14[441]][_0x4e14[1741]]);null!=_0xa132x2&&(this[_0x4e14[441]][_0x4e14[513]]= new mxPoint(-_0xa132x2[_0x4e14[235]],-_0xa132x2[_0x4e14[236]]));this[_0x4e14[441]][_0x4e14[746]]( new mxEventObject(this[_0x4e14[2325]]?mxEvent[_0x4e14[2327]]:mxEvent[_0x4e14[2328]],_0x4e14[813],this[_0x4e14[441]][_0x4e14[1741]],_0x4e14[257],this[_0x4e14[257]]));this[_0x4e14[2325]]?(this[_0x4e14[441]][_0x4e14[200]](this[_0x4e14[441]][_0x4e14[1741]],!0),this[_0x4e14[441]][_0x4e14[2264]]()):this[_0x4e14[441]][_0x4e14[802]]();this[_0x4e14[2325]]=!this[_0x4e14[2325]];};function mxGraph(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[2329]]=null;this[_0x4e14[2330]]=_0xa132x4;this[_0x4e14[507]]=mxClient[_0x4e14[48]]?mxConstants[_0x4e14[508]]:_0xa132x4==mxConstants[_0x4e14[2331]]&&mxClient[_0x4e14[47]]?mxConstants[_0x4e14[1523]]:_0xa132x4==mxConstants[_0x4e14[2332]]?mxConstants[_0x4e14[1656]]:_0xa132x4==mxConstants[_0x4e14[2333]]?mxConstants[_0x4e14[2209]]:mxConstants[_0x4e14[2334]];this[_0x4e14[251]]=null!=_0xa132x3?_0xa132x3: new mxGraphModel;this[_0x4e14[2335]]=[];this[_0x4e14[2336]]=[];this[_0x4e14[259]]=this[_0x4e14[2337]]();this[_0x4e14[2339]](this[_0x4e14[2338]]());this[_0x4e14[2341]](null!=_0xa132x5?_0xa132x5:this[_0x4e14[2340]]());this[_0x4e14[441]]=this[_0x4e14[2342]]();this[_0x4e14[2343]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){this[_0x4e14[1177]](_0xa132x3[_0x4e14[720]](_0x4e14[1061])[_0x4e14[1065]])});this[_0x4e14[251]][_0x4e14[169]](mxEvent.CHANGE,this[_0x4e14[2343]]);this[_0x4e14[2344]]();null!=_0xa132x2&&this[_0x4e14[176]](_0xa132x2);this[_0x4e14[441]][_0x4e14[2259]]();}mxLoadResources&&mxResources[_0x4e14[99]](mxClient[_0x4e14[86]]+_0x4e14[2345]);mxGraph[_0x4e14[202]]= new mxEventSource;mxGraph[_0x4e14[202]][_0x4e14[196]]=mxGraph;mxGraph[_0x4e14[202]][_0x4e14[2346]]=[];mxGraph[_0x4e14[202]][_0x4e14[2329]]=null;mxGraph[_0x4e14[202]][_0x4e14[1009]]= !1;mxGraph[_0x4e14[202]][_0x4e14[251]]=null;mxGraph[_0x4e14[202]][_0x4e14[441]]=null;mxGraph[_0x4e14[202]][_0x4e14[94]]=null;mxGraph[_0x4e14[202]][_0x4e14[2105]]=null;mxGraph[_0x4e14[202]][_0x4e14[2347]]=null;mxGraph[_0x4e14[202]][_0x4e14[259]]=null;mxGraph[_0x4e14[202]][_0x4e14[2335]]=null;mxGraph[_0x4e14[202]][_0x4e14[2330]]=null;mxGraph[_0x4e14[202]][_0x4e14[507]]=null;mxGraph[_0x4e14[202]][_0x4e14[1020]]=10;mxGraph[_0x4e14[202]][_0x4e14[991]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2348]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2349]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2350]]=700;mxGraph[_0x4e14[202]][_0x4e14[2351]]=25;mxGraph[_0x4e14[202]][_0x4e14[2352]]=0;mxGraph[_0x4e14[202]][_0x4e14[2352]]=0;mxGraph[_0x4e14[202]][_0x4e14[2213]]=0;mxGraph[_0x4e14[202]][_0x4e14[2215]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2353]]=4;mxGraph[_0x4e14[202]][_0x4e14[2354]]=0.5;mxGraph[_0x4e14[202]][_0x4e14[2355]]=null;mxGraph[_0x4e14[202]][_0x4e14[2356]]=null;mxGraph[_0x4e14[202]][_0x4e14[1617]]=null;mxGraph[_0x4e14[202]][_0x4e14[2273]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2357]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2358]]=_0x4e14[579];mxGraph[_0x4e14[202]][_0x4e14[2359]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2360]]=20;mxGraph[_0x4e14[202]][_0x4e14[2361]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2013]]=mxConstants[_0x4e14[516]];mxGraph[_0x4e14[202]][_0x4e14[2012]]=1.5;mxGraph[_0x4e14[202]][_0x4e14[984]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2362]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2363]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2364]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2365]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2366]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2367]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2368]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2369]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2206]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2370]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2371]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2372]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2373]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2374]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2375]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2376]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2377]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2378]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2379]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2380]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2381]]= !1;mxGraph[_0x4e14[202]][_0x4e14[1012]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2382]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2383]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2384]]= !1;mxGraph[_0x4e14[202]][_0x4e14[1013]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2385]]=null;mxGraph[_0x4e14[202]][_0x4e14[2386]]=null;mxGraph[_0x4e14[202]][_0x4e14[2387]]=null;mxGraph[_0x4e14[202]][_0x4e14[2388]]=null;mxGraph[_0x4e14[202]][_0x4e14[2389]]= !1;mxGraph[_0x4e14[202]][_0x4e14[467]]=0;mxGraph[_0x4e14[202]][_0x4e14[2158]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2159]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2168]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2390]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2391]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2392]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2393]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2394]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2395]]=1.2;mxGraph[_0x4e14[202]][_0x4e14[2396]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2397]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2398]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2399]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2400]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2401]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2402]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2293]]=mxEdgeStyle[_0x4e14[2403]];mxGraph[_0x4e14[202]][_0x4e14[2404]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2405]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2406]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2407]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2408]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2409]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2410]]= !1;mxGraph[_0x4e14[202]][_0x4e14[2411]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2412]]= !0;mxGraph[_0x4e14[202]][_0x4e14[2180]]=mxConstants[_0x4e14[2065]];mxGraph[_0x4e14[202]][_0x4e14[2336]]=null;mxGraph[_0x4e14[202]][_0x4e14[2413]]=0.1;mxGraph[_0x4e14[202]][_0x4e14[2414]]=8;mxGraph[_0x4e14[202]][_0x4e14[1136]]=0;mxGraph[_0x4e14[202]][_0x4e14[1137]]=0;mxGraph[_0x4e14[202]][_0x4e14[2415]]= new mxImage(mxClient[_0x4e14[88]]+_0x4e14[2416],9,9);mxGraph[_0x4e14[202]][_0x4e14[2417]]= new mxImage(mxClient[_0x4e14[88]]+_0x4e14[2418],9,9);mxGraph[_0x4e14[202]][_0x4e14[2419]]= new mxImage(_0x4e14[2420],16,16);mxGraph[_0x4e14[202]][_0x4e14[2421]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[2422]:_0x4e14[110];mxGraph[_0x4e14[202]][_0x4e14[2423]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[2424]:_0x4e14[110];mxGraph[_0x4e14[202]][_0x4e14[2425]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[2426]:_0x4e14[110];mxGraph[_0x4e14[202]][_0x4e14[176]]=function(_0xa132x2){this[_0x4e14[526]]=_0xa132x2;this[_0x4e14[2347]]=this[_0x4e14[2427]]();this[_0x4e14[441]][_0x4e14[176]]();this[_0x4e14[2258]]();mxClient[_0x4e14[80]]&&(mxEvent[_0x4e14[169]](window,_0x4e14[2428],mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[515]]()})),mxEvent[_0x4e14[169]](_0xa132x2,_0x4e14[2429],mxUtils[_0x4e14[885]](this,function(){return this[_0x4e14[2203]]()})));8==document[_0x4e14[5]]&&_0xa132x2[_0x4e14[1583]](_0x4e14[1582],_0x4e14[2430]);};mxGraph[_0x4e14[202]][_0x4e14[2344]]=function(_0xa132x2){this[_0x4e14[2276]]= new mxTooltipHandler(this);this[_0x4e14[2276]][_0x4e14[995]](!1);this[_0x4e14[2316]]= new mxPanningHandler(this);this[_0x4e14[2316]][_0x4e14[2431]]= !1;this[_0x4e14[2432]]= new mxSelectionCellsHandler(this);this[_0x4e14[2433]]= new mxConnectionHandler(this);this[_0x4e14[2433]][_0x4e14[995]](!1);this[_0x4e14[1011]]= new mxGraphHandler(this);};mxGraph[_0x4e14[202]][_0x4e14[2338]]=function(){return  new mxGraphSelectionModel(this)};mxGraph[_0x4e14[202]][_0x4e14[2340]]=function(){return  new mxStylesheet};mxGraph[_0x4e14[202]][_0x4e14[2342]]=function(){return  new mxGraphView(this)};mxGraph[_0x4e14[202]][_0x4e14[2337]]=function(){return  new mxCellRenderer};mxGraph[_0x4e14[202]][_0x4e14[2427]]=function(){return  new mxCellEditor(this)};mxGraph[_0x4e14[202]][_0x4e14[502]]=function(){return this[_0x4e14[251]]};mxGraph[_0x4e14[202]][_0x4e14[249]]=function(){return this[_0x4e14[441]]};mxGraph[_0x4e14[202]][_0x4e14[2434]]=function(){return this[_0x4e14[94]]};mxGraph[_0x4e14[202]][_0x4e14[2341]]=function(_0xa132x2){this[_0x4e14[94]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2435]]=function(){return this[_0x4e14[2105]]};mxGraph[_0x4e14[202]][_0x4e14[2339]]=function(_0xa132x2){this[_0x4e14[2105]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2436]]=function(_0xa132x2){for(var _0xa132x3=[],_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){var _0xa132x5=_0xa132x2[_0xa132x4];if(_0xa132x5[_0x4e14[196]]!=mxRootChange){var _0xa132x9=null;_0xa132x5 instanceof mxChildChange&&null==_0xa132x5[_0x4e14[257]]?_0xa132x9=_0xa132x5[_0x4e14[247]]:null!=_0xa132x5[_0x4e14[246]]&&_0xa132x5[_0x4e14[246]] instanceof mxCell&&(_0xa132x9=_0xa132x5[_0x4e14[246]]);null!=_0xa132x9&&0>mxUtils[_0x4e14[2]](_0xa132x3,_0xa132x9)&&_0xa132x3[_0x4e14[207]](_0xa132x9);};};return this[_0x4e14[502]]()[_0x4e14[1964]](_0xa132x3);};mxGraph[_0x4e14[202]][_0x4e14[1177]]=function(_0xa132x2){for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3++){this[_0x4e14[2437]](_0xa132x2[_0xa132x3])};this[_0x4e14[2439]](this[_0x4e14[2438]](_0xa132x2));this[_0x4e14[441]][_0x4e14[2264]]();this[_0x4e14[2258]]();};mxGraph[_0x4e14[202]][_0x4e14[2438]]=function(_0xa132x2){for(var _0xa132x3=[],_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){var _0xa132x5=_0xa132x2[_0xa132x4];if(_0xa132x5 instanceof mxRootChange){break }else {_0xa132x5 instanceof mxChildChange?null!=_0xa132x5[_0x4e14[257]]&&null==_0xa132x5[_0x4e14[1101]]&&(_0xa132x3=_0xa132x3[_0x4e14[1919]](this[_0x4e14[251]][_0x4e14[1939]](_0xa132x5[_0x4e14[247]]))):_0xa132x5 instanceof mxVisibleChange&&(_0xa132x3=_0xa132x3[_0x4e14[1919]](this[_0x4e14[251]][_0x4e14[1939]](_0xa132x5[_0x4e14[246]])))};};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2437]]=function(_0xa132x2){if(_0xa132x2 instanceof mxRootChange){this[_0x4e14[2440]](),this[_0x4e14[2441]](_0xa132x2[_0x4e14[257]]),this[_0x4e14[2398]]&&(this[_0x4e14[441]][_0x4e14[255]]=1,this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]]=0,this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]=0),this[_0x4e14[746]]( new mxEventObject(mxEvent.ROOT))}else {if(_0xa132x2 instanceof mxChildChange){var _0xa132x3=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0x4e14[247]]);null!=_0xa132x3?this[_0x4e14[441]][_0x4e14[2263]](_0xa132x2[_0x4e14[247]],!0,!1,null!=_0xa132x2[_0x4e14[257]]):(this[_0x4e14[2441]](_0xa132x2[_0x4e14[247]]),this[_0x4e14[441]][_0x4e14[1741]]==_0xa132x2[_0x4e14[247]]&&this[_0x4e14[2442]]());_0xa132x3!=_0xa132x2[_0x4e14[257]]&&(null!=_0xa132x3&&this[_0x4e14[441]][_0x4e14[2263]](_0xa132x3,!1,!1),null!=_0xa132x2[_0x4e14[257]]&&this[_0x4e14[441]][_0x4e14[2263]](_0xa132x2[_0x4e14[257]],!1,!1));}else {_0xa132x2 instanceof mxTerminalChange||_0xa132x2 instanceof mxGeometryChange?this[_0x4e14[441]][_0x4e14[2263]](_0xa132x2[_0x4e14[246]]):_0xa132x2 instanceof mxValueChange?this[_0x4e14[441]][_0x4e14[2263]](_0xa132x2[_0x4e14[246]],!1,!1):_0xa132x2 instanceof mxStyleChange?(this[_0x4e14[441]][_0x4e14[2263]](_0xa132x2[_0x4e14[246]],!0,!0,!1),this[_0x4e14[441]][_0x4e14[2265]](_0xa132x2[_0x4e14[246]])):null!=_0xa132x2[_0x4e14[246]]&&_0xa132x2[_0x4e14[246]] instanceof mxCell&&this[_0x4e14[2441]](_0xa132x2[_0x4e14[246]])}}};mxGraph[_0x4e14[202]][_0x4e14[2441]]=function(_0xa132x2){for(var _0xa132x3=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2),_0xa132x4=0;_0xa132x4<_0xa132x3;_0xa132x4++){this[_0x4e14[2441]](this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,_0xa132x4))};this[_0x4e14[441]][_0x4e14[2265]](_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[2443]]=function(_0xa132x2,_0xa132x3){null==_0xa132x2[_0x4e14[1211]]&&(_0xa132x2[_0x4e14[1211]]=[]);_0xa132x2[_0x4e14[1211]][_0x4e14[207]](_0xa132x3);var _0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);null!=_0xa132x4&&this[_0x4e14[259]][_0x4e14[258]](_0xa132x4);this[_0x4e14[746]]( new mxEventObject(mxEvent.ADD_OVERLAY,_0x4e14[246],_0xa132x2,_0x4e14[2201],_0xa132x3));return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2200]]=function(_0xa132x2){return _0xa132x2[_0x4e14[1211]]};mxGraph[_0x4e14[202]][_0x4e14[2444]]=function(_0xa132x2,_0xa132x3){if(null==_0xa132x3){this[_0x4e14[2445]](_0xa132x2)}else {var _0xa132x4=mxUtils[_0x4e14[2]](_0xa132x2[_0x4e14[1211]],_0xa132x3);0<=_0xa132x4?(_0xa132x2[_0x4e14[1211]][_0x4e14[300]](_0xa132x4,1),0==_0xa132x2[_0x4e14[1211]][_0x4e14[67]]&&(_0xa132x2[_0x4e14[1211]]=null),_0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),null!=_0xa132x4&&this[_0x4e14[259]][_0x4e14[258]](_0xa132x4),this[_0x4e14[746]]( new mxEventObject(mxEvent.REMOVE_OVERLAY,_0x4e14[246],_0xa132x2,_0x4e14[2201],_0xa132x3))):_0xa132x3=null;};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2445]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[1211]];if(null!=_0xa132x3){_0xa132x2[_0x4e14[1211]]=null;var _0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);null!=_0xa132x4&&this[_0x4e14[259]][_0x4e14[258]](_0xa132x4);for(_0xa132x4=0;_0xa132x4<_0xa132x3[_0x4e14[67]];_0xa132x4++){this[_0x4e14[746]]( new mxEventObject(mxEvent.REMOVE_OVERLAY,_0x4e14[246],_0xa132x2,_0x4e14[2201],_0xa132x3[_0xa132x4]))};};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2446]]=function(_0xa132x2){_0xa132x2=null!=_0xa132x2?_0xa132x2:this[_0x4e14[251]][_0x4e14[501]]();this[_0x4e14[2445]](_0xa132x2);for(var _0xa132x3=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2),_0xa132x4=0;_0xa132x4<_0xa132x3;_0xa132x4++){var _0xa132x5=this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,_0xa132x4);this[_0x4e14[2446]](_0xa132x5);};};mxGraph[_0x4e14[202]][_0x4e14[2447]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]){return _0xa132x4=null!=_0xa132x4?_0xa132x4:this[_0x4e14[2419]],_0xa132x3= new mxCellOverlay(_0xa132x4,_0x4e14[2448]+_0xa132x3+_0x4e14[2449]),_0xa132x5&&_0xa132x3[_0x4e14[169]](mxEvent.CLICK,mxUtils[_0x4e14[885]](this,function(_0xa132x3,_0xa132x4){this[_0x4e14[994]]()&&this[_0x4e14[2450]](_0xa132x2)})),this[_0x4e14[2443]](_0xa132x2,_0xa132x3)};this[_0x4e14[2445]](_0xa132x2);return null;};mxGraph[_0x4e14[202]][_0x4e14[855]]=function(_0xa132x2){this[_0x4e14[2451]](null,_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2451]]=function(_0xa132x2,_0xa132x3){null==_0xa132x2&&(_0xa132x2=this[_0x4e14[2452]](),null!=_0xa132x2&&!this[_0x4e14[2453]](_0xa132x2)&&(_0xa132x2=null));null!=_0xa132x2&&(this[_0x4e14[746]]( new mxEventObject(mxEvent.START_EDITING,_0x4e14[246],_0xa132x2,_0x4e14[763],_0xa132x3)),this[_0x4e14[2347]][_0x4e14[855]](_0xa132x2,_0xa132x3));};mxGraph[_0x4e14[202]][_0x4e14[2142]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[2454]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2126]]=function(_0xa132x2){this[_0x4e14[2347]][_0x4e14[2126]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[850]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[2456]](_0xa132x2,_0xa132x3,this[_0x4e14[2455]](_0xa132x2)),this[_0x4e14[746]]( new mxEventObject(mxEvent.LABEL_CHANGED,_0x4e14[246],_0xa132x2,_0x4e14[131],_0xa132x3,_0x4e14[763],_0xa132x4))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2456]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[251]][_0x4e14[1966]](_0xa132x2,_0xa132x3),_0xa132x4&&this[_0x4e14[2457]](_0xa132x2,!1)}finally{this[_0x4e14[251]][_0x4e14[476]]()};};mxGraph[_0x4e14[202]][_0x4e14[859]]=function(_0xa132x2){this[_0x4e14[2126]](!0);this[_0x4e14[2433]][_0x4e14[862]]();this[_0x4e14[1011]][_0x4e14[862]]();_0xa132x2=this[_0x4e14[897]]();for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3++){var _0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2[_0xa132x3]);null!=_0xa132x4&&null!=_0xa132x4[_0x4e14[2458]]&&_0xa132x4[_0x4e14[2458]][_0x4e14[862]]();};};mxGraph[_0x4e14[202]][_0x4e14[173]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[727]](),_0xa132x4=_0xa132x2[_0x4e14[736]](),_0xa132x5= new mxEventObject(mxEvent.CLICK,_0x4e14[763],_0xa132x3,_0x4e14[246],_0xa132x4);_0xa132x2[_0x4e14[721]]()&&_0xa132x5[_0x4e14[722]]();this[_0x4e14[746]](_0xa132x5);this[_0x4e14[994]]()&&(!mxEvent[_0x4e14[721]](_0xa132x3)&&!_0xa132x5[_0x4e14[721]]())&&(null!=_0xa132x4?this[_0x4e14[2459]](_0xa132x4,_0xa132x3):(_0xa132x4=null,this[_0x4e14[2460]]()&&(_0xa132x4=this[_0x4e14[2461]](_0xa132x2[_0x4e14[734]](),_0xa132x2[_0x4e14[735]]())),null!=_0xa132x4?this[_0x4e14[2459]](_0xa132x4,_0xa132x3):this[_0x4e14[2462]](_0xa132x3)||this[_0x4e14[2440]]()));};mxGraph[_0x4e14[202]][_0x4e14[761]]=function(_0xa132x2,_0xa132x3){var _0xa132x4= new mxEventObject(mxEvent.DOUBLE_CLICK,_0x4e14[763],_0xa132x2,_0x4e14[246],_0xa132x3);this[_0x4e14[746]](_0xa132x4);this[_0x4e14[994]]()&&(!mxEvent[_0x4e14[721]](_0xa132x2)&&!_0xa132x4[_0x4e14[721]]()&&null!=_0xa132x3&&this[_0x4e14[2453]](_0xa132x3))&&this[_0x4e14[2451]](_0xa132x3,_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[1014]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(!this[_0x4e14[2382]]&&(this[_0x4e14[2384]]||mxUtils[_0x4e14[1134]](this[_0x4e14[526]]))){var _0xa132x9=this[_0x4e14[526]];_0xa132x5=null!=_0xa132x5?_0xa132x5:20;if(_0xa132x2>=_0xa132x9[_0x4e14[360]]&&_0xa132x3>=_0xa132x9[_0x4e14[190]]&&_0xa132x2<=_0xa132x9[_0x4e14[360]]+_0xa132x9[_0x4e14[159]]&&_0xa132x3<=_0xa132x9[_0x4e14[190]]+_0xa132x9[_0x4e14[157]]){var _0xa132xa=_0xa132x9[_0x4e14[360]]+_0xa132x9[_0x4e14[159]]-_0xa132x2;if(_0xa132xa<_0xa132x5){if(_0xa132x2=_0xa132x9[_0x4e14[360]],_0xa132x9[_0x4e14[360]]+=_0xa132x5-_0xa132xa,_0xa132x4&&_0xa132x2==_0xa132x9[_0x4e14[360]]){if(this[_0x4e14[507]]==mxConstants[_0x4e14[508]]){_0xa132x2=this[_0x4e14[441]][_0x4e14[2024]]()[_0x4e14[538]];var _0xa132x12=this[_0x4e14[526]][_0x4e14[1526]]+_0xa132x5-_0xa132xa;}else {_0xa132x12=Math[_0x4e14[160]](_0xa132x9[_0x4e14[159]],_0xa132x9[_0x4e14[1526]])+_0xa132x5-_0xa132xa,_0xa132x2=this[_0x4e14[441]][_0x4e14[2051]]()};_0xa132x2[_0x4e14[124]][_0x4e14[117]]=_0xa132x12+_0x4e14[168];_0xa132x9[_0x4e14[360]]+=_0xa132x5-_0xa132xa;}}else {_0xa132xa=_0xa132x2-_0xa132x9[_0x4e14[360]],_0xa132xa<_0xa132x5&&(_0xa132x9[_0x4e14[360]]-=_0xa132x5-_0xa132xa)};_0xa132xa=_0xa132x9[_0x4e14[190]]+_0xa132x9[_0x4e14[157]]-_0xa132x3;_0xa132xa<_0xa132x5?(_0xa132x2=_0xa132x9[_0x4e14[190]],_0xa132x9[_0x4e14[190]]+=_0xa132x5-_0xa132xa,_0xa132x2==_0xa132x9[_0x4e14[190]]&&_0xa132x4&&(this[_0x4e14[507]]==mxConstants[_0x4e14[508]]?(_0xa132x2=this[_0x4e14[441]][_0x4e14[2024]]()[_0x4e14[538]],_0xa132x3=this[_0x4e14[526]][_0x4e14[191]]+_0xa132x5-_0xa132xa):(_0xa132x3=Math[_0x4e14[160]](_0xa132x9[_0x4e14[157]],_0xa132x9[_0x4e14[191]])+_0xa132x5-_0xa132xa,_0xa132x2=this[_0x4e14[441]][_0x4e14[2051]]()),_0xa132x2[_0x4e14[124]][_0x4e14[119]]=_0xa132x3+_0x4e14[168],_0xa132x9[_0x4e14[190]]+=_0xa132x5-_0xa132xa)):(_0xa132xa=_0xa132x3-_0xa132x9[_0x4e14[190]],_0xa132xa<_0xa132x5&&(_0xa132x9[_0x4e14[190]]-=_0xa132x5-_0xa132xa));};}else {this[_0x4e14[2383]]&&!this[_0x4e14[2316]][_0x4e14[1124]]&&(null==this[_0x4e14[2463]]&&(this[_0x4e14[2463]]=this[_0x4e14[2464]]()),this[_0x4e14[2463]][_0x4e14[1143]](_0xa132x2+this[_0x4e14[1136]],_0xa132x3+this[_0x4e14[1137]]))}};mxGraph[_0x4e14[202]][_0x4e14[2464]]=function(){return  new mxPanningManager(this)};mxGraph[_0x4e14[202]][_0x4e14[2465]]=function(){function _0xa132x2(_0xa132x2){var _0xa132x3=0,_0xa132x3=_0x4e14[2466]==_0xa132x2?2:_0x4e14[2467]==_0xa132x2?4:_0x4e14[2468]==_0xa132x2?6:parseInt(_0xa132x2);isNaN(_0xa132x3)&&(_0xa132x3=0);return _0xa132x3;}var _0xa132x3=mxUtils[_0x4e14[275]](this[_0x4e14[526]]),_0xa132x4= new mxRectangle;_0xa132x4[_0x4e14[235]]=_0xa132x2(_0xa132x3[_0x4e14[2469]])+parseInt(_0xa132x3[_0x4e14[357]]||0);_0xa132x4[_0x4e14[236]]=_0xa132x2(_0xa132x3[_0x4e14[2470]])+parseInt(_0xa132x3[_0x4e14[2471]]||0);_0xa132x4[_0x4e14[117]]=_0xa132x2(_0xa132x3[_0x4e14[2472]])+parseInt(_0xa132x3[_0x4e14[1164]]||0);_0xa132x4[_0x4e14[119]]=_0xa132x2(_0xa132x3[_0x4e14[2473]])+parseInt(_0xa132x3[_0x4e14[2474]]||0);return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[2475]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=this[_0x4e14[441]][_0x4e14[255]];var _0xa132x5=this[_0x4e14[441]][_0x4e14[513]],_0xa132x9=this[_0x4e14[2013]],_0xa132xa=_0xa132x2*this[_0x4e14[2012]],_0xa132x9= new mxRectangle(0,0,_0xa132x9[_0x4e14[117]]*_0xa132xa,_0xa132x9[_0x4e14[119]]*_0xa132xa);_0xa132x3=this[_0x4e14[2357]]?Math[_0x4e14[430]](_0xa132x3/_0xa132x9[_0x4e14[117]]):1;_0xa132x4=this[_0x4e14[2357]]?Math[_0x4e14[430]](_0xa132x4/_0xa132x9[_0x4e14[119]]):1;return  new mxRectangle(0,0,_0xa132x3*_0xa132x9[_0x4e14[117]]+2+_0xa132x5[_0x4e14[235]]/_0xa132x2,_0xa132x4*_0xa132x9[_0x4e14[119]]+2+_0xa132x5[_0x4e14[236]]/_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[2258]]=function(){var _0xa132x2=this[_0x4e14[517]]();if(null!=this[_0x4e14[526]]){var _0xa132x3=this[_0x4e14[2476]](),_0xa132x4=Math[_0x4e14[160]](0,_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]+1+_0xa132x3),_0xa132x3=Math[_0x4e14[160]](0,_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]+1+_0xa132x3);null!=this[_0x4e14[2387]]&&(_0xa132x4=Math[_0x4e14[160]](_0xa132x4,this[_0x4e14[2387]][_0x4e14[117]]),_0xa132x3=Math[_0x4e14[160]](_0xa132x3,this[_0x4e14[2387]][_0x4e14[119]]));this[_0x4e14[2389]]&&this[_0x4e14[2477]](_0xa132x4,_0xa132x3);if(this[_0x4e14[2361]]||!mxClient[_0x4e14[80]]&&this[_0x4e14[2273]]){var _0xa132x5=this[_0x4e14[2475]](_0xa132x2,_0xa132x4,_0xa132x3);null!=_0xa132x5&&(_0xa132x4=_0xa132x5[_0x4e14[117]],_0xa132x3=_0xa132x5[_0x4e14[119]]);};null!=this[_0x4e14[2386]]&&(_0xa132x4=Math[_0x4e14[160]](_0xa132x4,this[_0x4e14[2386]][_0x4e14[117]]*this[_0x4e14[441]][_0x4e14[255]]),_0xa132x3=Math[_0x4e14[160]](_0xa132x3,this[_0x4e14[2386]][_0x4e14[119]]*this[_0x4e14[441]][_0x4e14[255]]));_0xa132x4=Math[_0x4e14[430]](_0xa132x4-1);_0xa132x3=Math[_0x4e14[430]](_0xa132x3-1);this[_0x4e14[507]]==mxConstants[_0x4e14[508]]?(_0xa132x5=this[_0x4e14[441]][_0x4e14[2024]]()[_0x4e14[538]],_0xa132x5[_0x4e14[124]][_0x4e14[2478]]=Math[_0x4e14[160]](1,_0xa132x4)+_0x4e14[168],_0xa132x5[_0x4e14[124]][_0x4e14[2479]]=Math[_0x4e14[160]](1,_0xa132x3)+_0x4e14[168],_0xa132x5[_0x4e14[124]][_0x4e14[117]]=_0x4e14[118],_0xa132x5[_0x4e14[124]][_0x4e14[119]]=_0x4e14[118]):mxClient[_0x4e14[496]]?this[_0x4e14[441]][_0x4e14[2320]](Math[_0x4e14[160]](1,_0xa132x4),Math[_0x4e14[160]](1,_0xa132x3)):(this[_0x4e14[441]][_0x4e14[510]][_0x4e14[124]][_0x4e14[2478]]=Math[_0x4e14[160]](1,_0xa132x4)+_0x4e14[168],this[_0x4e14[441]][_0x4e14[510]][_0x4e14[124]][_0x4e14[2479]]=Math[_0x4e14[160]](1,_0xa132x3)+_0x4e14[168]);this[_0x4e14[2480]](this[_0x4e14[2357]],_0xa132x4-1,_0xa132x3-1);};this[_0x4e14[746]]( new mxEventObject(mxEvent.SIZE,_0x4e14[1562],_0xa132x2));};mxGraph[_0x4e14[202]][_0x4e14[2477]]=function(_0xa132x2,_0xa132x3){if(mxClient[_0x4e14[80]]){if(mxClient[_0x4e14[496]]){var _0xa132x4=this[_0x4e14[2465]]();_0xa132x2+=Math[_0x4e14[160]](2,_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]+1);_0xa132x3+=Math[_0x4e14[160]](2,_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]+1);}else {9<=document[_0x4e14[5]]?(_0xa132x2+=3,_0xa132x3+=5):(_0xa132x2+=1,_0xa132x3+=1)}}else {_0xa132x3+=1};null!=this[_0x4e14[2388]]&&(_0xa132x2=Math[_0x4e14[243]](this[_0x4e14[2388]][_0x4e14[117]],_0xa132x2),_0xa132x3=Math[_0x4e14[243]](this[_0x4e14[2388]][_0x4e14[119]],_0xa132x3));this[_0x4e14[526]][_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[430]](_0xa132x2)+_0x4e14[168];this[_0x4e14[526]][_0x4e14[124]][_0x4e14[119]]=Math[_0x4e14[430]](_0xa132x3)+_0x4e14[168];};mxGraph[_0x4e14[202]][_0x4e14[2480]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[441]][_0x4e14[255]],_0xa132x9=this[_0x4e14[441]][_0x4e14[513]],_0xa132xa=this[_0x4e14[2013]],_0xa132x12=_0xa132x5*this[_0x4e14[2012]],_0xa132x9= new mxRectangle(_0xa132x5*_0xa132x9[_0x4e14[235]],_0xa132x5*_0xa132x9[_0x4e14[236]],_0xa132xa[_0x4e14[117]]*_0xa132x12,_0xa132xa[_0x4e14[119]]*_0xa132x12);_0xa132x2=_0xa132x2&&Math[_0x4e14[243]](_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]])>this[_0x4e14[2360]];_0xa132x9[_0x4e14[235]]=mxUtils[_0x4e14[1454]](_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[117]]);_0xa132x9[_0x4e14[236]]=mxUtils[_0x4e14[1454]](_0xa132x9[_0x4e14[236]],_0xa132x9[_0x4e14[119]]);_0xa132xa=_0xa132x2?Math[_0x4e14[430]]((_0xa132x3-_0xa132x9[_0x4e14[235]])/_0xa132x9[_0x4e14[117]]):0;_0xa132x2=_0xa132x2?Math[_0x4e14[430]]((_0xa132x4-_0xa132x9[_0x4e14[236]])/_0xa132x9[_0x4e14[119]]):0;null==this[_0x4e14[2481]]&&0<_0xa132xa&&(this[_0x4e14[2481]]=[]);if(null!=this[_0x4e14[2481]]){for(_0xa132x12=0;_0xa132x12<=_0xa132xa;_0xa132x12++){var _0xa132x13=[ new mxPoint(_0xa132x9[_0x4e14[235]]+_0xa132x12*_0xa132x9[_0x4e14[117]],1), new mxPoint(_0xa132x9[_0x4e14[235]]+_0xa132x12*_0xa132x9[_0x4e14[117]],_0xa132x4)];null!=this[_0x4e14[2481]][_0xa132x12]?(this[_0x4e14[2481]][_0xa132x12][_0x4e14[255]]=1,this[_0x4e14[2481]][_0xa132x12][_0x4e14[1525]]=_0xa132x13,this[_0x4e14[2481]][_0xa132x12][_0x4e14[258]]()):(_0xa132x13= new mxPolyline(_0xa132x13,this[_0x4e14[2358]],this[_0x4e14[255]]),_0xa132x13[_0x4e14[507]]=this[_0x4e14[507]],_0xa132x13[_0x4e14[1522]]=this[_0x4e14[2359]],_0xa132x13[_0x4e14[255]]=_0xa132x5,_0xa132x13[_0x4e14[176]](this[_0x4e14[441]][_0x4e14[2053]]),_0xa132x13[_0x4e14[258]](),this[_0x4e14[2481]][_0xa132x12]=_0xa132x13);};for(_0xa132x12=_0xa132xa;_0xa132x12<this[_0x4e14[2481]][_0x4e14[67]];_0xa132x12++){this[_0x4e14[2481]][_0xa132x12][_0x4e14[515]]()};this[_0x4e14[2481]][_0x4e14[300]](_0xa132xa,this[_0x4e14[2481]][_0x4e14[67]]-_0xa132xa);};null==this[_0x4e14[2482]]&&0<_0xa132x2&&(this[_0x4e14[2482]]=[]);if(null!=this[_0x4e14[2482]]){for(_0xa132x12=0;_0xa132x12<=_0xa132x2;_0xa132x12++){_0xa132x13=[ new mxPoint(1,_0xa132x9[_0x4e14[236]]+_0xa132x12*_0xa132x9[_0x4e14[119]]), new mxPoint(_0xa132x3,_0xa132x9[_0x4e14[236]]+_0xa132x12*_0xa132x9[_0x4e14[119]])],null!=this[_0x4e14[2482]][_0xa132x12]?(this[_0x4e14[2482]][_0xa132x12][_0x4e14[255]]=1,this[_0x4e14[2482]][_0xa132x12][_0x4e14[1525]]=_0xa132x13,this[_0x4e14[2482]][_0xa132x12][_0x4e14[258]]()):(_0xa132x13= new mxPolyline(_0xa132x13,this[_0x4e14[2358]],_0xa132x5),_0xa132x13[_0x4e14[507]]=this[_0x4e14[507]],_0xa132x13[_0x4e14[1522]]=this[_0x4e14[2359]],_0xa132x13[_0x4e14[255]]=_0xa132x5,_0xa132x13[_0x4e14[176]](this[_0x4e14[441]][_0x4e14[2053]]),_0xa132x13[_0x4e14[258]](),this[_0x4e14[2482]][_0xa132x12]=_0xa132x13)};for(_0xa132x12=_0xa132x2;_0xa132x12<this[_0x4e14[2482]][_0x4e14[67]];_0xa132x12++){this[_0x4e14[2482]][_0xa132x12][_0x4e14[515]]()};this[_0x4e14[2482]][_0x4e14[300]](_0xa132x2,this[_0x4e14[2482]][_0x4e14[67]]-_0xa132x2);};};mxGraph[_0x4e14[202]][_0x4e14[1705]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[251]][_0x4e14[474]](_0xa132x2),_0xa132x4=null,_0xa132x4=this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)?this[_0x4e14[94]][_0x4e14[2077]]():this[_0x4e14[94]][_0x4e14[2076]]();null!=_0xa132x3&&(_0xa132x4=this[_0x4e14[2483]](this[_0x4e14[94]][_0x4e14[1705]](_0xa132x3,_0xa132x4)));null==_0xa132x4&&(_0xa132x4=mxGraph[_0x4e14[202]][_0x4e14[2346]]);return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[2483]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=_0xa132x2[mxConstants[_0x4e14[2484]]],_0xa132x4=this[_0x4e14[2485]](_0xa132x3);null!=_0xa132x4?_0xa132x2[mxConstants[_0x4e14[2484]]]=_0xa132x4:_0xa132x4=_0xa132x3;null!=_0xa132x4&&_0x4e14[2486]==_0xa132x4[_0x4e14[85]](0,11)&&(_0xa132x3=_0xa132x4[_0x4e14[2]](_0x4e14[537]),0<_0xa132x3&&(_0xa132x4=_0xa132x4[_0x4e14[85]](0,_0xa132x3)+_0x4e14[2487]+_0xa132x4[_0x4e14[85]](_0xa132x3+1)),_0xa132x2[mxConstants[_0x4e14[2484]]]=_0xa132x4);};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2488]]=function(_0xa132x2,_0xa132x3){_0xa132x3=_0xa132x3||this[_0x4e14[897]]();if(null!=_0xa132x3){this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<_0xa132x3[_0x4e14[67]];_0xa132x4++){this[_0x4e14[251]][_0x4e14[475]](_0xa132x3[_0xa132x4],_0xa132x2)}}finally{this[_0x4e14[251]][_0x4e14[476]]()};};};mxGraph[_0x4e14[202]][_0x4e14[2489]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=_0xa132x4||this[_0x4e14[2452]]();this[_0x4e14[2490]](_0xa132x2,_0xa132x3,[_0xa132x4]);};mxGraph[_0x4e14[202]][_0x4e14[2490]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;_0xa132x4=_0xa132x4||this[_0x4e14[897]]();if(null!=_0xa132x4&&0<_0xa132x4[_0x4e14[67]]){var _0xa132x5=this[_0x4e14[441]][_0x4e14[248]](_0xa132x4[0]),_0xa132x5=null!=_0xa132x5?_0xa132x5[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x4[0]);null!=_0xa132x5&&(_0xa132x3=mxUtils[_0x4e14[433]](_0xa132x5,_0xa132x2,_0xa132x3)?0:1,this[_0x4e14[1717]](_0xa132x2,_0xa132x3,_0xa132x4));};};mxGraph[_0x4e14[202]][_0x4e14[1717]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=_0xa132x4||this[_0x4e14[897]]();mxUtils[_0x4e14[1717]](this[_0x4e14[251]],_0xa132x4,_0xa132x2,_0xa132x3);};mxGraph[_0x4e14[202]][_0x4e14[2491]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[2492]](_0xa132x2,_0xa132x3,null,_0xa132x4)};mxGraph[_0x4e14[202]][_0x4e14[2492]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x5=_0xa132x5||this[_0x4e14[897]]();if(null!=_0xa132x5&&0<_0xa132x5[_0x4e14[67]]){if(null==_0xa132x4){var _0xa132x9=this[_0x4e14[441]][_0x4e14[248]](_0xa132x5[0]),_0xa132x9=null!=_0xa132x9?_0xa132x9[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x5[0]);null!=_0xa132x9&&(_0xa132x4=(parseInt(_0xa132x9[_0xa132x2]||0)&_0xa132x3)!=_0xa132x3);};mxUtils[_0x4e14[2492]](this[_0x4e14[251]],_0xa132x5,_0xa132x2,_0xa132x3,_0xa132x4);};};mxGraph[_0x4e14[202]][_0x4e14[849]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null==_0xa132x3&&(_0xa132x3=this[_0x4e14[897]]());if(null!=_0xa132x3&&1<_0xa132x3[_0x4e14[67]]){if(null==_0xa132x4){for(var _0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){var _0xa132x9=this[_0x4e14[1198]](_0xa132x3[_0xa132x5]);if(null!=_0xa132x9&&!this[_0x4e14[251]][_0x4e14[250]](_0xa132x3[_0xa132x5])){if(null==_0xa132x4){if(_0xa132x2==mxConstants[_0x4e14[479]]){_0xa132x4=_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]]/2;break;}else {if(_0xa132x2==mxConstants[_0x4e14[480]]){_0xa132x4=_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]]}else {if(_0xa132x2==mxConstants[_0x4e14[1687]]){_0xa132x4=_0xa132x9[_0x4e14[236]]}else {if(_0xa132x2==mxConstants[_0x4e14[481]]){_0xa132x4=_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]]/2;break;}else {_0xa132x4=_0xa132x2==mxConstants[_0x4e14[482]]?_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]]:_0xa132x9[_0x4e14[235]]}}}}}else {_0xa132x4=_0xa132x2==mxConstants[_0x4e14[480]]?Math[_0x4e14[160]](_0xa132x4,_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]]):_0xa132x2==mxConstants[_0x4e14[1687]]?Math[_0x4e14[243]](_0xa132x4,_0xa132x9[_0x4e14[236]]):_0xa132x2==mxConstants[_0x4e14[482]]?Math[_0x4e14[160]](_0xa132x4,_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]]):Math[_0x4e14[243]](_0xa132x4,_0xa132x9[_0x4e14[235]])}};}};if(null!=_0xa132x4){this[_0x4e14[251]][_0x4e14[473]]();try{for(_0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){_0xa132x9=this[_0x4e14[1198]](_0xa132x3[_0xa132x5]),null!=_0xa132x9&&!this[_0x4e14[251]][_0x4e14[250]](_0xa132x3[_0xa132x5])&&(_0xa132x9=_0xa132x9[_0x4e14[238]](),_0xa132x2==mxConstants[_0x4e14[479]]?_0xa132x9[_0x4e14[235]]=_0xa132x4-_0xa132x9[_0x4e14[117]]/2:_0xa132x2==mxConstants[_0x4e14[480]]?_0xa132x9[_0x4e14[235]]=_0xa132x4-_0xa132x9[_0x4e14[117]]:_0xa132x2==mxConstants[_0x4e14[1687]]?_0xa132x9[_0x4e14[236]]=_0xa132x4:_0xa132x2==mxConstants[_0x4e14[481]]?_0xa132x9[_0x4e14[236]]=_0xa132x4-_0xa132x9[_0x4e14[119]]/2:_0xa132x2==mxConstants[_0x4e14[482]]?_0xa132x9[_0x4e14[236]]=_0xa132x4-_0xa132x9[_0x4e14[119]]:_0xa132x9[_0x4e14[235]]=_0xa132x4,this[_0x4e14[251]][_0x4e14[1724]](_0xa132x3[_0xa132x5],_0xa132x9))};this[_0x4e14[746]]( new mxEventObject(mxEvent.ALIGN_CELLS,_0x4e14[611],_0xa132x2,_0x4e14[895],_0xa132x3));}finally{this[_0x4e14[251]][_0x4e14[476]]()};};};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[854]]=function(_0xa132x2){if(null!=_0xa132x2&&null!=this[_0x4e14[2356]]){this[_0x4e14[251]][_0x4e14[473]]();try{var _0xa132x3=this[_0x4e14[251]][_0x4e14[474]](_0xa132x2);null==_0xa132x3||0==_0xa132x3[_0x4e14[67]]?this[_0x4e14[251]][_0x4e14[475]](_0xa132x2,this[_0x4e14[2356]]):this[_0x4e14[251]][_0x4e14[475]](_0xa132x2,null);this[_0x4e14[1809]](_0xa132x2);this[_0x4e14[746]]( new mxEventObject(mxEvent.FLIP_EDGE,_0x4e14[1989],_0xa132x2));}finally{this[_0x4e14[251]][_0x4e14[476]]()};};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2493]]=function(_0xa132x2){this[_0x4e14[2336]][_0x4e14[207]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2494]]=function(_0xa132x2){for(var _0xa132x3=[],_0xa132x4=0;_0xa132x4<this[_0x4e14[2336]][_0x4e14[67]];_0xa132x4++){this[_0x4e14[2336]][_0xa132x4]!=_0xa132x2&&_0xa132x3[_0x4e14[207]](this[_0x4e14[2336]][_0xa132x4])};this[_0x4e14[2336]]=_0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2485]]=function(_0xa132x2){if(null!=_0xa132x2){for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[2336]][_0x4e14[67]];_0xa132x3++){var _0xa132x4=this[_0x4e14[2336]][_0xa132x3][_0x4e14[1202]](_0xa132x2);if(null!=_0xa132x4){return _0xa132x4};}};return null;};mxGraph[_0x4e14[202]][_0x4e14[840]]=function(_0xa132x2,_0xa132x3){null==_0xa132x3&&(_0xa132x3=mxUtils[_0x4e14[1779]](this[_0x4e14[897]](),!0));this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[841]](_0xa132x3,_0xa132x2),this[_0x4e14[746]]( new mxEventObject(mxEvent.ORDER_CELLS,_0x4e14[2495],_0xa132x2,_0x4e14[895],_0xa132x3))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[841]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2){this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){var _0xa132x5=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0xa132x4]);_0xa132x3?this[_0x4e14[251]][_0x4e14[99]](_0xa132x5,_0xa132x2[_0xa132x4],_0xa132x4):this[_0x4e14[251]][_0x4e14[99]](_0xa132x5,_0xa132x2[_0xa132x4],this[_0x4e14[251]][_0x4e14[262]](_0xa132x5)-1);};this[_0x4e14[746]]( new mxEventObject(mxEvent.CELLS_ORDERED,_0x4e14[2495],_0xa132x3,_0x4e14[895],_0xa132x2));}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[844]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null==_0xa132x4&&(_0xa132x4=mxUtils[_0x4e14[1779]](this[_0x4e14[897]](),!0));_0xa132x4=this[_0x4e14[2496]](_0xa132x4);null==_0xa132x2&&(_0xa132x2=this[_0x4e14[2497]](_0xa132x4));var _0xa132x5=this[_0x4e14[2498]](_0xa132x2,_0xa132x4,_0xa132x3);if(0<_0xa132x4[_0x4e14[67]]&&null!=_0xa132x5){var _0xa132x9=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2);null==_0xa132x9&&(_0xa132x9=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x4[0]));this[_0x4e14[251]][_0x4e14[473]]();try{null==this[_0x4e14[1198]](_0xa132x2)&&this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2, new mxGeometry);var _0xa132xa=this[_0x4e14[251]][_0x4e14[262]](_0xa132x9);this[_0x4e14[833]]([_0xa132x2],_0xa132x9,_0xa132xa,null,null,!1);_0xa132xa=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2);this[_0x4e14[833]](_0xa132x4,_0xa132x2,_0xa132xa,null,null,!1,!1);this[_0x4e14[835]](_0xa132x4,-_0xa132x5[_0x4e14[235]],-_0xa132x5[_0x4e14[236]],!1,!0);this[_0x4e14[837]]([_0xa132x2],[_0xa132x5]);this[_0x4e14[746]]( new mxEventObject(mxEvent.GROUP_CELLS,_0x4e14[1504],_0xa132x2,_0x4e14[467],_0xa132x3,_0x4e14[895],_0xa132x4));}finally{this[_0x4e14[251]][_0x4e14[476]]()};};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2496]]=function(_0xa132x2){var _0xa132x3=[];if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){var _0xa132x4=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[0]);_0xa132x3[_0x4e14[207]](_0xa132x2[0]);for(var _0xa132x5=1;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0xa132x5])==_0xa132x4&&_0xa132x3[_0x4e14[207]](_0xa132x2[_0xa132x5])};};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2498]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=this[_0x4e14[1729]](_0xa132x3);null!=_0xa132x3&&(this[_0x4e14[1730]](_0xa132x2)&&(_0xa132x2=this[_0x4e14[1731]](_0xa132x2),_0xa132x3[_0x4e14[235]]-=_0xa132x2[_0x4e14[117]],_0xa132x3[_0x4e14[236]]-=_0xa132x2[_0x4e14[119]],_0xa132x3[_0x4e14[117]]+=_0xa132x2[_0x4e14[117]],_0xa132x3[_0x4e14[119]]+=_0xa132x2[_0x4e14[119]]),_0xa132x3[_0x4e14[235]]-=_0xa132x4,_0xa132x3[_0x4e14[236]]-=_0xa132x4,_0xa132x3[_0x4e14[117]]+=2*_0xa132x4,_0xa132x3[_0x4e14[119]]+=2*_0xa132x4);return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2497]]=function(_0xa132x2){_0xa132x2= new mxCell(_0x4e14[110]);_0xa132x2[_0x4e14[1993]](!0);_0xa132x2[_0x4e14[1995]](!1);return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[845]]=function(_0xa132x2){var _0xa132x3=[];if(null==_0xa132x2){_0xa132x2=this[_0x4e14[897]]();for(var _0xa132x4=[],_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){0<this[_0x4e14[251]][_0x4e14[262]](_0xa132x2[_0xa132x5])&&_0xa132x4[_0x4e14[207]](_0xa132x2[_0xa132x5])};_0xa132x2=_0xa132x4;};if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){this[_0x4e14[251]][_0x4e14[473]]();try{for(_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){var _0xa132x9=this[_0x4e14[251]][_0x4e14[1953]](_0xa132x2[_0xa132x5]);if(null!=_0xa132x9&&0<_0xa132x9[_0x4e14[67]]){var _0xa132x9=_0xa132x9[_0x4e14[1853]](),_0xa132xa=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0xa132x5]),_0xa132x12=this[_0x4e14[251]][_0x4e14[262]](_0xa132xa);this[_0x4e14[833]](_0xa132x9,_0xa132xa,_0xa132x12,null,null,!0);_0xa132x3=_0xa132x3[_0x4e14[1919]](_0xa132x9);};};this[_0x4e14[843]](this[_0x4e14[2499]](_0xa132x2));this[_0x4e14[746]]( new mxEventObject(mxEvent.UNGROUP_CELLS,_0x4e14[895],_0xa132x2));}finally{this[_0x4e14[251]][_0x4e14[476]]()};};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[846]]=function(_0xa132x2){null==_0xa132x2&&(_0xa132x2=this[_0x4e14[897]]());this[_0x4e14[251]][_0x4e14[473]]();try{var _0xa132x3=this[_0x4e14[902]](),_0xa132x4=this[_0x4e14[251]][_0x4e14[262]](_0xa132x3);this[_0x4e14[833]](_0xa132x2,_0xa132x3,_0xa132x4,null,null,!0);this[_0x4e14[746]]( new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,_0x4e14[895],_0xa132x2));}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[1917]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null==_0xa132x2&&(_0xa132x2=this[_0x4e14[897]]());_0xa132x3=null!=_0xa132x3?_0xa132x3:0;_0xa132x4=null!=_0xa132x4?_0xa132x4:!1;this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){var _0xa132x9=this[_0x4e14[1198]](_0xa132x2[_0xa132x5]);if(null!=_0xa132x9){var _0xa132xa=this[_0x4e14[1955]](_0xa132x2[_0xa132x5]);if(null!=_0xa132xa&&0<_0xa132xa[_0x4e14[67]]){var _0xa132x12=this[_0x4e14[1729]](_0xa132xa);if(0<_0xa132x12[_0x4e14[117]]&&0<_0xa132x12[_0x4e14[119]]){var _0xa132x13=this[_0x4e14[1730]](_0xa132x2[_0xa132x5])?this[_0x4e14[1731]](_0xa132x2[_0xa132x5]): new mxRectangle,_0xa132x9=_0xa132x9[_0x4e14[238]]();_0xa132x4&&(_0xa132x9[_0x4e14[235]]+=_0xa132x12[_0x4e14[235]]-_0xa132x13[_0x4e14[117]]-_0xa132x3,_0xa132x9[_0x4e14[236]]+=_0xa132x12[_0x4e14[236]]-_0xa132x13[_0x4e14[119]]-_0xa132x3);_0xa132x9[_0x4e14[117]]=_0xa132x12[_0x4e14[117]]+_0xa132x13[_0x4e14[117]]+2*_0xa132x3;_0xa132x9[_0x4e14[119]]=_0xa132x12[_0x4e14[119]]+_0xa132x13[_0x4e14[119]]+2*_0xa132x3;this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2[_0xa132x5],_0xa132x9);this[_0x4e14[834]](_0xa132xa,-_0xa132x12[_0x4e14[235]]+_0xa132x13[_0x4e14[117]]+_0xa132x3,-_0xa132x12[_0x4e14[236]]+_0xa132x13[_0x4e14[119]]+_0xa132x3);};};};}}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[899]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;var _0xa132x4=null;if(null!=_0xa132x2){for(var _0xa132x5={},_0xa132x4=[],_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2[_0xa132x9]);_0xa132x5[_0xa132xa]=_0xa132x2[_0xa132x9];_0xa132x4[_0x4e14[207]](_0xa132x2[_0xa132x9]);};if(0<_0xa132x4[_0x4e14[67]]){for(var _0xa132xa=this[_0x4e14[441]][_0x4e14[255]],_0xa132x12=this[_0x4e14[441]][_0x4e14[513]],_0xa132x4=this[_0x4e14[251]][_0x4e14[899]](_0xa132x2,!0),_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){if(!_0xa132x3&&this[_0x4e14[251]][_0x4e14[250]](_0xa132x4[_0xa132x9])&&null!=this[_0x4e14[2500]](_0xa132x4[_0xa132x9],this[_0x4e14[251]][_0x4e14[1709]](_0xa132x4[_0xa132x9],!0),this[_0x4e14[251]][_0x4e14[1709]](_0xa132x4[_0xa132x9],!1))){_0xa132x4[_0xa132x9]=null}else {var _0xa132x13=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x4[_0xa132x9]);if(null!=_0xa132x13){var _0xa132x14=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2[_0xa132x9]),_0xa132x15=this[_0x4e14[441]][_0x4e14[248]](this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0xa132x9]));if(null!=_0xa132x14&&null!=_0xa132x15){var _0xa132x16=_0xa132x15[_0x4e14[2078]][_0x4e14[235]],_0xa132x15=_0xa132x15[_0x4e14[2078]][_0x4e14[236]];if(this[_0x4e14[251]][_0x4e14[250]](_0xa132x4[_0xa132x9])){for(var _0xa132x14=_0xa132x14[_0x4e14[439]],_0xa132x17=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2[_0xa132x9],!0),_0xa132x18=mxCellPath[_0x4e14[385]](_0xa132x17);null!=_0xa132x17&&null==_0xa132x5[_0xa132x18];){_0xa132x17=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x17),_0xa132x18=mxCellPath[_0x4e14[385]](_0xa132x17)};null==_0xa132x17&&_0xa132x13[_0x4e14[2007]]( new mxPoint(_0xa132x14[0][_0x4e14[235]]/_0xa132xa-_0xa132x12[_0x4e14[235]],_0xa132x14[0][_0x4e14[236]]/_0xa132xa-_0xa132x12[_0x4e14[236]]),!0);_0xa132x17=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2[_0xa132x9],!1);for(_0xa132x18=mxCellPath[_0x4e14[385]](_0xa132x17);null!=_0xa132x17&&null==_0xa132x5[_0xa132x18];){_0xa132x17=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x17),_0xa132x18=mxCellPath[_0x4e14[385]](_0xa132x17)};null==_0xa132x17&&(_0xa132x17=_0xa132x14[_0x4e14[67]]-1,_0xa132x13[_0x4e14[2007]]( new mxPoint(_0xa132x14[_0xa132x17][_0x4e14[235]]/_0xa132xa-_0xa132x12[_0x4e14[235]],_0xa132x14[_0xa132x17][_0x4e14[236]]/_0xa132xa-_0xa132x12[_0x4e14[236]]),!1));_0xa132x13=_0xa132x13[_0x4e14[1525]];if(null!=_0xa132x13){for(_0xa132x14=0;_0xa132x14<_0xa132x13[_0x4e14[67]];_0xa132x14++){_0xa132x13[_0xa132x14][_0x4e14[235]]+=_0xa132x16,_0xa132x13[_0xa132x14][_0x4e14[236]]+=_0xa132x15}};}else {_0xa132x13[_0x4e14[235]]+=_0xa132x16,_0xa132x13[_0x4e14[236]]+=_0xa132x15};};};}}}else {_0xa132x4=[]};};return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[2501]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){_0xa132x3=this[_0x4e14[2502]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14);return this[_0x4e14[2103]](_0xa132x3,_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[2502]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){_0xa132x2= new mxGeometry(_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12);_0xa132x2[_0x4e14[1500]]=null!=_0xa132x14?_0xa132x14:!1;_0xa132x4= new mxCell(_0xa132x4,_0xa132x2,_0xa132x13);_0xa132x4[_0x4e14[1945]](_0xa132x3);_0xa132x4[_0x4e14[1993]](!0);_0xa132x4[_0x4e14[1995]](!0);return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[1960]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x3=this[_0x4e14[2503]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa);return this[_0x4e14[2504]](_0xa132x3,_0xa132x2,_0xa132x5,_0xa132x9);};mxGraph[_0x4e14[202]][_0x4e14[2503]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x2= new mxCell(_0xa132x4, new mxGeometry,_0xa132xa);_0xa132x2[_0x4e14[1945]](_0xa132x3);_0xa132x2[_0x4e14[1994]](!0);_0xa132x2[_0x4e14[256]][_0x4e14[1500]]= !0;return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2504]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){return this[_0x4e14[2103]](_0xa132x2,_0xa132x3,_0xa132x9,_0xa132x4,_0xa132x5)};mxGraph[_0x4e14[202]][_0x4e14[2103]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){return this[_0x4e14[832]]([_0xa132x2],_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9)[0]};mxGraph[_0x4e14[202]][_0x4e14[832]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){null==_0xa132x3&&(_0xa132x3=this[_0x4e14[902]]());null==_0xa132x4&&(_0xa132x4=this[_0x4e14[251]][_0x4e14[262]](_0xa132x3));this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[833]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,!1,!0),this[_0x4e14[746]]( new mxEventObject(mxEvent.ADD_CELLS,_0x4e14[895],_0xa132x2,_0x4e14[1101],_0xa132x3,_0x4e14[1983],_0xa132x4,_0x4e14[1097],_0xa132x5,_0x4e14[772],_0xa132x9))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[833]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12){if(null!=_0xa132x2&&null!=_0xa132x3&&null!=_0xa132x4){this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x13=_0xa132xa?this[_0x4e14[441]][_0x4e14[248]](_0xa132x3):null,_0xa132x14=null!=_0xa132x13?_0xa132x13[_0x4e14[2078]]:null,_0xa132x15= new mxPoint(0,0),_0xa132x13=0;_0xa132x13<_0xa132x2[_0x4e14[67]];_0xa132x13++){if(null==_0xa132x2[_0xa132x13]){_0xa132x4--}else {var _0xa132x16=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0xa132x13]);if(null!=_0xa132x14&&_0xa132x2[_0xa132x13]!=_0xa132x3&&_0xa132x3!=_0xa132x16){var _0xa132x17=this[_0x4e14[441]][_0x4e14[248]](_0xa132x16),_0xa132x18=null!=_0xa132x17?_0xa132x17[_0x4e14[2078]]:_0xa132x15,_0xa132x19=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2[_0xa132x13]);if(null!=_0xa132x19){var _0xa132x1a=_0xa132x18[_0x4e14[235]]-_0xa132x14[_0x4e14[235]],_0xa132x1b=_0xa132x18[_0x4e14[236]]-_0xa132x14[_0x4e14[236]],_0xa132x19=_0xa132x19[_0x4e14[238]]();_0xa132x19[_0x4e14[513]](_0xa132x1a,_0xa132x1b);!_0xa132x19[_0x4e14[1500]]&&(this[_0x4e14[251]][_0x4e14[1193]](_0xa132x2[_0xa132x13])&&!this[_0x4e14[2505]]())&&(_0xa132x19[_0x4e14[235]]=Math[_0x4e14[160]](0,_0xa132x19[_0x4e14[235]]),_0xa132x19[_0x4e14[236]]=Math[_0x4e14[160]](0,_0xa132x19[_0x4e14[236]]));this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2[_0xa132x13],_0xa132x19);};};_0xa132x3==_0xa132x16&&_0xa132x4+_0xa132x13>this[_0x4e14[251]][_0x4e14[262]](_0xa132x3)&&_0xa132x4--;this[_0x4e14[251]][_0x4e14[99]](_0xa132x3,_0xa132x2[_0xa132x13],_0xa132x4+_0xa132x13);this[_0x4e14[2506]]()&&this[_0x4e14[2507]](_0xa132x2[_0xa132x13])&&this[_0x4e14[2508]](_0xa132x2[_0xa132x13]);(null==_0xa132x12||_0xa132x12)&&this[_0x4e14[2509]](_0xa132x2[_0xa132x13]);null!=_0xa132x5&&this[_0x4e14[852]](_0xa132x2[_0xa132x13],_0xa132x5,!0);null!=_0xa132x9&&this[_0x4e14[852]](_0xa132x2[_0xa132x13],_0xa132x9,!1);}};this[_0x4e14[746]]( new mxEventObject(mxEvent.CELLS_ADDED,_0x4e14[895],_0xa132x2,_0x4e14[1101],_0xa132x3,_0x4e14[1983],_0xa132x4,_0x4e14[1097],_0xa132x5,_0x4e14[772],_0xa132x9,_0x4e14[492],_0xa132xa));}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[842]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;null==_0xa132x2&&(_0xa132x2=this[_0x4e14[2510]](this[_0x4e14[897]]()));_0xa132x3&&(_0xa132x2=this[_0x4e14[2510]](this[_0x4e14[2499]](_0xa132x2)));this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[843]](_0xa132x2),this[_0x4e14[746]]( new mxEventObject(mxEvent.REMOVE_CELLS,_0x4e14[895],_0xa132x2,_0x4e14[2511],_0xa132x3))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[843]]=function(_0xa132x2){if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){var _0xa132x3=this[_0x4e14[441]][_0x4e14[255]],_0xa132x4=this[_0x4e14[441]][_0x4e14[513]];this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x5={},_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2[_0xa132x9]);_0xa132x5[_0xa132xa]=_0xa132x2[_0xa132x9];};for(_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){for(var _0xa132x12=this[_0x4e14[1756]](_0xa132x2[_0xa132x9]),_0xa132x13=0;_0xa132x13<_0xa132x12[_0x4e14[67]];_0xa132x13++){if(_0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x12[_0xa132x13]),null==_0xa132x5[_0xa132xa]){var _0xa132x14=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x12[_0xa132x13]);if(null!=_0xa132x14){var _0xa132x15=this[_0x4e14[441]][_0x4e14[248]](_0xa132x12[_0xa132x13]);if(null!=_0xa132x15){var _0xa132x14=_0xa132x14[_0x4e14[238]](),_0xa132x16=_0xa132x15[_0x4e14[1710]](!0)==_0xa132x2[_0xa132x9],_0xa132x17=_0xa132x15[_0x4e14[439]],_0xa132x18=_0xa132x16?0:_0xa132x17[_0x4e14[67]]-1;_0xa132x14[_0x4e14[2007]]( new mxPoint(_0xa132x17[_0xa132x18][_0x4e14[235]]/_0xa132x3-_0xa132x4[_0x4e14[235]],_0xa132x17[_0xa132x18][_0x4e14[236]]/_0xa132x3-_0xa132x4[_0x4e14[236]]),_0xa132x16);this[_0x4e14[251]][_0x4e14[1957]](_0xa132x12[_0xa132x13],null,_0xa132x16);this[_0x4e14[251]][_0x4e14[1724]](_0xa132x12[_0xa132x13],_0xa132x14);};};}};this[_0x4e14[251]][_0x4e14[205]](_0xa132x2[_0xa132x9]);};this[_0x4e14[746]]( new mxEventObject(mxEvent.CELLS_REMOVED,_0x4e14[895],_0xa132x2));}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[853]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x5=_0xa132x5||0;_0xa132x9=_0xa132x9||0;null==_0xa132x4&&(_0xa132x4=this[_0x4e14[899]]([_0xa132x2])[0]);var _0xa132xa=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2),_0xa132x12=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!0);this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[835]](_0xa132x3,_0xa132x5,_0xa132x9,!1,!1),this[_0x4e14[833]](_0xa132x3,_0xa132xa,this[_0x4e14[251]][_0x4e14[262]](_0xa132xa),null,null,!0),this[_0x4e14[833]]([_0xa132x4],_0xa132xa,this[_0x4e14[251]][_0x4e14[262]](_0xa132xa),_0xa132x12,_0xa132x3[0],!1),this[_0x4e14[852]](_0xa132x2,_0xa132x3[0],!0),this[_0x4e14[746]]( new mxEventObject(mxEvent.SPLIT_EDGE,_0x4e14[1989],_0xa132x2,_0x4e14[895],_0xa132x3,_0x4e14[2512],_0xa132x4,_0x4e14[1126],_0xa132x5,_0x4e14[1125],_0xa132x9))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[838]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null==_0xa132x3&&(_0xa132x3=this[_0x4e14[897]]());_0xa132x4&&(_0xa132x3=this[_0x4e14[2499]](_0xa132x3));this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[839]](_0xa132x3,_0xa132x2),this[_0x4e14[746]]( new mxEventObject(mxEvent.TOGGLE_CELLS,_0x4e14[539],_0xa132x2,_0x4e14[895],_0xa132x3,_0x4e14[2511],_0xa132x4))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[839]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){this[_0x4e14[251]][_0x4e14[175]](_0xa132x2[_0xa132x4],_0xa132x3)}}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[847]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;null==_0xa132x4&&(_0xa132x4=this[_0x4e14[2513]](this[_0x4e14[897]](),_0xa132x2));this[_0x4e14[2126]](!1);this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[848]](_0xa132x4,_0xa132x2,_0xa132x3,_0xa132x5),this[_0x4e14[746]]( new mxEventObject(mxEvent.FOLD_CELLS,_0x4e14[2514],_0xa132x2,_0x4e14[2515],_0xa132x3,_0x4e14[895],_0xa132x4))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[848]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){if((!_0xa132x5||this[_0x4e14[2516]](_0xa132x2[_0xa132x9],_0xa132x3))&&_0xa132x3!=this[_0x4e14[1742]](_0xa132x2[_0xa132x9])){if(this[_0x4e14[251]][_0x4e14[1972]](_0xa132x2[_0xa132x9],_0xa132x3),this[_0x4e14[2517]](_0xa132x2[_0xa132x9],_0xa132x3),this[_0x4e14[2507]](_0xa132x2[_0xa132x9])&&this[_0x4e14[2508]](_0xa132x2[_0xa132x9]),_0xa132x4){var _0xa132xa=this[_0x4e14[251]][_0x4e14[1953]](_0xa132x2[_0xa132x9]);this[_0x4e14[847]](_0xa132xa,_0xa132x3,_0xa132x4);}}};this[_0x4e14[746]]( new mxEventObject(mxEvent.CELLS_FOLDED,_0x4e14[895],_0xa132x2,_0x4e14[2514],_0xa132x3,_0x4e14[2515],_0xa132x4));}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[2517]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2){var _0xa132x4=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2);null!=_0xa132x4&&(_0xa132x4=_0xa132x4[_0x4e14[238]](),this[_0x4e14[2518]](_0xa132x2,_0xa132x4,_0xa132x3),_0xa132x4[_0x4e14[2005]](),this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2,_0xa132x4));}};mxGraph[_0x4e14[202]][_0x4e14[2518]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(null!=_0xa132x2&&null!=_0xa132x3){_0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x4=null!=_0xa132x4?_0xa132x4[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);if(null==_0xa132x3[_0x4e14[2002]]){var _0xa132x5=_0xa132x3;this[_0x4e14[2394]]&&(_0xa132x2=this[_0x4e14[2519]](_0xa132x2),null!=_0xa132x2&&(_0xa132x5=_0xa132x2,_0xa132x2=mxUtils[_0x4e14[433]](_0xa132x4,mxConstants.STYLE_STARTSIZE),0<_0xa132x2&&(_0xa132x5[_0x4e14[119]]=Math[_0x4e14[160]](_0xa132x5[_0x4e14[119]],_0xa132x2))));_0xa132x3[_0x4e14[2002]]= new mxRectangle(0,0,_0xa132x5[_0x4e14[117]],_0xa132x5[_0x4e14[119]]);};if(null!=_0xa132x3[_0x4e14[2002]]){_0xa132x3[_0x4e14[2002]][_0x4e14[235]]=_0xa132x3[_0x4e14[235]];_0xa132x3[_0x4e14[2002]][_0x4e14[236]]=_0xa132x3[_0x4e14[236]];var _0xa132x9=mxUtils[_0x4e14[431]](_0xa132x4[mxConstants[_0x4e14[2278]]]||_0x4e14[468]);0!=_0xa132x9&&(_0xa132x2=_0xa132x3[_0x4e14[2002]][_0x4e14[241]]()-_0xa132x3[_0x4e14[241]](),_0xa132x4=_0xa132x3[_0x4e14[2002]][_0x4e14[242]]()-_0xa132x3[_0x4e14[242]](),_0xa132x5=Math[_0x4e14[426]](_0xa132x9),_0xa132x9=Math[_0x4e14[427]](_0xa132x9),_0xa132x3[_0x4e14[2002]][_0x4e14[235]]+=_0xa132x5*_0xa132x2-_0xa132x9*_0xa132x4-_0xa132x2,_0xa132x3[_0x4e14[2002]][_0x4e14[236]]+=_0xa132x9*_0xa132x2+_0xa132x5*_0xa132x4-_0xa132x4);};}};mxGraph[_0x4e14[202]][_0x4e14[2499]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[1853]]();return _0xa132x3=_0xa132x3[_0x4e14[1919]](this[_0x4e14[2520]](_0xa132x2));};mxGraph[_0x4e14[202]][_0x4e14[2520]]=function(_0xa132x2){var _0xa132x3=[];if(null!=_0xa132x2){for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){for(var _0xa132x5=this[_0x4e14[251]][_0x4e14[1707]](_0xa132x2[_0xa132x4]),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){_0xa132x3[_0x4e14[207]](this[_0x4e14[251]][_0x4e14[1708]](_0xa132x2[_0xa132x4],_0xa132x9))};_0xa132x5=this[_0x4e14[251]][_0x4e14[1953]](_0xa132x2[_0xa132x4]);_0xa132x3=_0xa132x3[_0x4e14[1919]](this[_0x4e14[2520]](_0xa132x5));}};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[858]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[2457]](_0xa132x2,_0xa132x3),this[_0x4e14[746]]( new mxEventObject(mxEvent.UPDATE_CELL_SIZE,_0x4e14[246],_0xa132x2,_0x4e14[2521],_0xa132x3))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2457]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2){this[_0x4e14[251]][_0x4e14[473]]();try{var _0xa132x4=this[_0x4e14[2519]](_0xa132x2),_0xa132x5=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2);if(null!=_0xa132x4&&null!=_0xa132x5){var _0xa132x9=this[_0x4e14[1742]](_0xa132x2),_0xa132x5=_0xa132x5[_0x4e14[238]]();if(this[_0x4e14[1730]](_0xa132x2)){var _0xa132xa=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x12=null!=_0xa132xa?_0xa132xa[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2),_0xa132x13=this[_0x4e14[251]][_0x4e14[474]](_0xa132x2);null==_0xa132x13&&(_0xa132x13=_0x4e14[110]);mxUtils[_0x4e14[433]](_0xa132x12,mxConstants.STYLE_HORIZONTAL,!0)?(_0xa132x13=mxUtils[_0x4e14[475]](_0xa132x13,mxConstants.STYLE_STARTSIZE,_0xa132x4[_0x4e14[119]]+8),_0xa132x9&&(_0xa132x5[_0x4e14[119]]=_0xa132x4[_0x4e14[119]]+8),_0xa132x5[_0x4e14[117]]=_0xa132x4[_0x4e14[117]]):(_0xa132x13=mxUtils[_0x4e14[475]](_0xa132x13,mxConstants.STYLE_STARTSIZE,_0xa132x4[_0x4e14[117]]+8),_0xa132x9&&(_0xa132x5[_0x4e14[117]]=_0xa132x4[_0x4e14[117]]+8),_0xa132x5[_0x4e14[119]]=_0xa132x4[_0x4e14[119]]);this[_0x4e14[251]][_0x4e14[475]](_0xa132x2,_0xa132x13);}else {_0xa132x5[_0x4e14[117]]=_0xa132x4[_0x4e14[117]],_0xa132x5[_0x4e14[119]]=_0xa132x4[_0x4e14[119]]};if(!_0xa132x3&& !_0xa132x9){var _0xa132x14=this[_0x4e14[441]][_0x4e14[1799]](this[_0x4e14[251]][_0x4e14[1953]](_0xa132x2));if(null!=_0xa132x14){var _0xa132x15=this[_0x4e14[441]][_0x4e14[513]],_0xa132x16=this[_0x4e14[441]][_0x4e14[255]],_0xa132x17=(_0xa132x14[_0x4e14[236]]+_0xa132x14[_0x4e14[119]])/_0xa132x16-_0xa132x5[_0x4e14[236]]-_0xa132x15[_0x4e14[236]];_0xa132x5[_0x4e14[117]]=Math[_0x4e14[160]](_0xa132x5[_0x4e14[117]],(_0xa132x14[_0x4e14[235]]+_0xa132x14[_0x4e14[117]])/_0xa132x16-_0xa132x5[_0x4e14[235]]-_0xa132x15[_0x4e14[235]]);_0xa132x5[_0x4e14[119]]=Math[_0x4e14[160]](_0xa132x5[_0x4e14[119]],_0xa132x17);};};this[_0x4e14[837]]([_0xa132x2],[_0xa132x5]);};}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[2519]]=function(_0xa132x2){var _0xa132x3=null;if(null!=_0xa132x2){var _0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x5=null!=_0xa132x4?_0xa132x4[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);if(null!=_0xa132x5&&!this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)){var _0xa132x9=_0xa132x5[mxConstants[_0x4e14[2185]]]||mxConstants[_0x4e14[483]],_0xa132xa=0,_0xa132x3=0;if((null!=this[_0x4e14[1202]](_0xa132x4)||null!=_0xa132x5[mxConstants[_0x4e14[2484]]])&&_0xa132x5[mxConstants[_0x4e14[2059]]]==mxConstants[_0x4e14[2522]]){_0xa132x5[mxConstants[_0x4e14[2063]]]==mxConstants[_0x4e14[481]]&&(_0xa132xa+=parseFloat(_0xa132x5[mxConstants[_0x4e14[2523]]])||mxLabel[_0x4e14[202]][_0x4e14[1680]]),_0xa132x5[mxConstants[_0x4e14[2064]]]!=mxConstants[_0x4e14[479]]&&(_0xa132x3+=parseFloat(_0xa132x5[mxConstants[_0x4e14[2524]]])||mxLabel[_0x4e14[202]][_0x4e14[1680]])};_0xa132xa+=2*(_0xa132x5[mxConstants[_0x4e14[2143]]]||0);_0xa132xa+=_0xa132x5[mxConstants[_0x4e14[2147]]]||0;_0xa132xa+=_0xa132x5[mxConstants[_0x4e14[2145]]]||0;_0xa132x3+=2*(_0xa132x5[mxConstants[_0x4e14[2143]]]||0);_0xa132x3+=_0xa132x5[mxConstants[_0x4e14[2144]]]||0;_0xa132x3+=_0xa132x5[mxConstants[_0x4e14[2146]]]||0;_0xa132x4=this[_0x4e14[2205]](_0xa132x4);null!=_0xa132x4&&(_0xa132xa+=_0xa132x4[_0x4e14[117]]+8);_0xa132x4=this[_0x4e14[2183]](_0xa132x2);null!=_0xa132x4&&0<_0xa132x4[_0x4e14[67]]?(this[_0x4e14[2186]](_0xa132x2)||(_0xa132x4=_0xa132x4[_0x4e14[230]](/\n/g,_0x4e14[545])),_0xa132x9=mxUtils[_0x4e14[2525]](_0xa132x4,_0xa132x9,_0xa132x5[mxConstants[_0x4e14[2188]]]),_0xa132x2=_0xa132x9[_0x4e14[117]]+_0xa132xa,_0xa132x3=_0xa132x9[_0x4e14[119]]+_0xa132x3,mxUtils[_0x4e14[433]](_0xa132x5,mxConstants.STYLE_HORIZONTAL,!0)||(_0xa132x5=_0xa132x3,_0xa132x3=_0xa132x2,_0xa132x2=_0xa132x5),this[_0x4e14[991]]&&(_0xa132x2=this[_0x4e14[1021]](_0xa132x2+this[_0x4e14[1020]]/2),_0xa132x3=this[_0x4e14[1021]](_0xa132x3+this[_0x4e14[1020]]/2)),_0xa132x3= new mxRectangle(0,0,_0xa132x2,_0xa132x3)):(_0xa132x5=4*this[_0x4e14[1020]],_0xa132x3= new mxRectangle(0,0,_0xa132x5,_0xa132x5));};};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2216]]=function(_0xa132x2,_0xa132x3){if(0.2<Math[_0x4e14[425]](1-_0xa132x3[_0x4e14[255]])){var _0xa132x4=this[_0x4e14[441]][_0x4e14[255]],_0xa132x5=this[_0x4e14[441]][_0x4e14[513]],_0xa132x9=_0xa132x2[_0x4e14[117]]*_0xa132x3[_0x4e14[255]],_0xa132xa=_0xa132x2[_0x4e14[119]]*_0xa132x3[_0x4e14[255]],_0xa132x12=_0xa132x2[_0x4e14[236]]-(_0xa132xa-_0xa132x2[_0x4e14[119]])/2,_0xa132x4= new mxRectangle(this[_0x4e14[1021]]((_0xa132x2[_0x4e14[235]]-(_0xa132x9-_0xa132x2[_0x4e14[117]])/2)/_0xa132x4)-_0xa132x5[_0x4e14[235]],this[_0x4e14[1021]](_0xa132x12/_0xa132x4)-_0xa132x5[_0x4e14[236]],this[_0x4e14[1021]](_0xa132x9/_0xa132x4),this[_0x4e14[1021]](_0xa132xa/_0xa132x4));this[_0x4e14[2526]](_0xa132x2[_0x4e14[246]],_0xa132x4);}};mxGraph[_0x4e14[202]][_0x4e14[2526]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[836]]([_0xa132x2],[_0xa132x3])[0]};mxGraph[_0x4e14[202]][_0x4e14[836]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[251]][_0x4e14[473]]();try{this[_0x4e14[837]](_0xa132x2,_0xa132x3),this[_0x4e14[746]]( new mxEventObject(mxEvent.RESIZE_CELLS,_0x4e14[895],_0xa132x2,_0x4e14[1562],_0xa132x3))}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[837]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&null!=_0xa132x3&&_0xa132x2[_0x4e14[67]]==_0xa132x3[_0x4e14[67]]){this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){var _0xa132x5=_0xa132x3[_0xa132x4],_0xa132x9=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2[_0xa132x4]);if(null!=_0xa132x9&&(_0xa132x9[_0x4e14[235]]!=_0xa132x5[_0x4e14[235]]||_0xa132x9[_0x4e14[236]]!=_0xa132x5[_0x4e14[236]]||_0xa132x9[_0x4e14[117]]!=_0xa132x5[_0x4e14[117]]||_0xa132x9[_0x4e14[119]]!=_0xa132x5[_0x4e14[119]])){_0xa132x9=_0xa132x9[_0x4e14[238]]();if(_0xa132x9[_0x4e14[1500]]){var _0xa132xa=_0xa132x9[_0x4e14[1368]];null!=_0xa132xa&&(_0xa132xa[_0x4e14[235]]+=_0xa132x5[_0x4e14[235]]-_0xa132x9[_0x4e14[235]],_0xa132xa[_0x4e14[236]]+=_0xa132x5[_0x4e14[236]]-_0xa132x9[_0x4e14[236]]);}else {_0xa132x9[_0x4e14[235]]=_0xa132x5[_0x4e14[235]],_0xa132x9[_0x4e14[236]]=_0xa132x5[_0x4e14[236]]};_0xa132x9[_0x4e14[117]]=_0xa132x5[_0x4e14[117]];_0xa132x9[_0x4e14[119]]=_0xa132x5[_0x4e14[119]];!_0xa132x9[_0x4e14[1500]]&&(this[_0x4e14[251]][_0x4e14[1193]](_0xa132x2[_0xa132x4])&&!this[_0x4e14[2505]]())&&(_0xa132x9[_0x4e14[235]]=Math[_0x4e14[160]](0,_0xa132x9[_0x4e14[235]]),_0xa132x9[_0x4e14[236]]=Math[_0x4e14[160]](0,_0xa132x9[_0x4e14[236]]));this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2[_0xa132x4],_0xa132x9);this[_0x4e14[2507]](_0xa132x2[_0xa132x4])&&this[_0x4e14[2508]](_0xa132x2[_0xa132x4]);};};this[_0x4e14[2399]]&&this[_0x4e14[1750]](_0xa132x2);this[_0x4e14[746]]( new mxEventObject(mxEvent.CELLS_RESIZED,_0x4e14[895],_0xa132x2,_0x4e14[1562],_0xa132x3));}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[2508]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2),_0xa132x4=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x3);if(null!=_0xa132x3&&(null!=_0xa132x4&&!this[_0x4e14[1742]](_0xa132x3))&&(_0xa132x2=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2),null!=_0xa132x2&&(_0xa132x4[_0x4e14[117]]<_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]||_0xa132x4[_0x4e14[119]]<_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]))){_0xa132x4=_0xa132x4[_0x4e14[238]](),_0xa132x4[_0x4e14[117]]=Math[_0x4e14[160]](_0xa132x4[_0x4e14[117]],_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]),_0xa132x4[_0x4e14[119]]=Math[_0x4e14[160]](_0xa132x4[_0x4e14[119]],_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]),this[_0x4e14[837]]([_0xa132x3],[_0xa132x4])};}};mxGraph[_0x4e14[202]][_0x4e14[903]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){return this[_0x4e14[834]](_0xa132x2,_0xa132x3,_0xa132x4,!0,_0xa132x5,_0xa132x9)};mxGraph[_0x4e14[202]][_0x4e14[834]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x3=null!=_0xa132x3?_0xa132x3:0;_0xa132x4=null!=_0xa132x4?_0xa132x4:0;_0xa132x5=null!=_0xa132x5?_0xa132x5:!1;if(null!=_0xa132x2&&(0!=_0xa132x3||0!=_0xa132x4||_0xa132x5||null!=_0xa132x9)){this[_0x4e14[251]][_0x4e14[473]]();try{_0xa132x5&&(_0xa132x2=this[_0x4e14[899]](_0xa132x2,this[_0x4e14[2527]]()),null==_0xa132x9&&(_0xa132x9=this[_0x4e14[902]]()));var _0xa132x12=this[_0x4e14[2505]]();null!=_0xa132x9&&this[_0x4e14[2528]](!0);this[_0x4e14[835]](_0xa132x2,_0xa132x3,_0xa132x4,!_0xa132x5&&this[_0x4e14[2529]]()&&this[_0x4e14[2530]](),null==_0xa132x9);this[_0x4e14[2528]](_0xa132x12);if(null!=_0xa132x9){var _0xa132x13=this[_0x4e14[251]][_0x4e14[262]](_0xa132x9);this[_0x4e14[833]](_0xa132x2,_0xa132x9,_0xa132x13,null,null,!0);};this[_0x4e14[746]]( new mxEventObject(mxEvent.MOVE_CELLS,_0x4e14[895],_0xa132x2,_0x4e14[1126],_0xa132x3,_0x4e14[1125],_0xa132x4,_0x4e14[238],_0xa132x5,_0x4e14[772],_0xa132x9,_0x4e14[763],_0xa132xa));}finally{this[_0x4e14[251]][_0x4e14[476]]()};};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[835]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=_0xa132x2&&(0!=_0xa132x3||0!=_0xa132x4)){this[_0x4e14[251]][_0x4e14[473]]();try{_0xa132x5&&this[_0x4e14[2531]](_0xa132x2);for(var _0xa132xa=0;_0xa132xa<_0xa132x2[_0x4e14[67]];_0xa132xa++){this[_0x4e14[2532]](_0xa132x2[_0xa132xa],_0xa132x3,_0xa132x4),_0xa132x9&&this[_0x4e14[2509]](_0xa132x2[_0xa132xa])};this[_0x4e14[2400]]&&this[_0x4e14[1750]](_0xa132x2);this[_0x4e14[746]]( new mxEventObject(mxEvent.CELLS_MOVED,_0x4e14[895],_0xa132x2,_0x4e14[1126],_0xa132x4,_0x4e14[1125],_0xa132x4,_0x4e14[808],_0xa132x5));}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[2532]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2);null!=_0xa132x5&&(_0xa132x5=_0xa132x5[_0x4e14[238]](),_0xa132x5[_0x4e14[513]](_0xa132x3,_0xa132x4),!_0xa132x5[_0x4e14[1500]]&&(this[_0x4e14[251]][_0x4e14[1193]](_0xa132x2)&&!this[_0x4e14[2505]]())&&(_0xa132x5[_0x4e14[235]]=Math[_0x4e14[160]](0,_0xa132x5[_0x4e14[235]]),_0xa132x5[_0x4e14[236]]=Math[_0x4e14[160]](0,_0xa132x5[_0x4e14[236]])),_0xa132x5[_0x4e14[1500]]&&!this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)&&(null==_0xa132x5[_0x4e14[1368]]?_0xa132x5[_0x4e14[1368]]= new mxPoint(_0xa132x3,_0xa132x4):(_0xa132x5[_0x4e14[1368]][_0x4e14[235]]+=_0xa132x3,_0xa132x5[_0x4e14[1368]][_0x4e14[236]]+=_0xa132x4)),this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2,_0xa132x5));};mxGraph[_0x4e14[202]][_0x4e14[2533]]=function(_0xa132x2){if(null!=_0xa132x2&&!this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)){var _0xa132x3=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2);if(_0xa132x3==this[_0x4e14[902]]()||_0xa132x3==this[_0x4e14[2534]]()){return this[_0x4e14[2535]]()};if(null!=_0xa132x3&&_0xa132x3!=this[_0x4e14[902]]()){var _0xa132x4=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x3);if(null!=_0xa132x4){var _0xa132x5=_0xa132x2=0,_0xa132x9=_0xa132x4[_0x4e14[117]],_0xa132x4=_0xa132x4[_0x4e14[119]];this[_0x4e14[1730]](_0xa132x3)&&(_0xa132x3=this[_0x4e14[1731]](_0xa132x3),_0xa132x2=_0xa132x3[_0x4e14[117]],_0xa132x9-=_0xa132x3[_0x4e14[117]],_0xa132x5=_0xa132x3[_0x4e14[119]],_0xa132x4-=_0xa132x3[_0x4e14[119]]);return  new mxRectangle(_0xa132x2,_0xa132x5,_0xa132x9,_0xa132x4);};};};return null;};mxGraph[_0x4e14[202]][_0x4e14[2535]]=function(){return this[_0x4e14[2385]]};mxGraph[_0x4e14[202]][_0x4e14[2509]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2),_0xa132x4=this[_0x4e14[2536]](_0xa132x2)?this[_0x4e14[2533]](_0xa132x2):this[_0x4e14[2535]]();if(null!=_0xa132x3&&null!=_0xa132x4&&!_0xa132x3[_0x4e14[1500]]&&(_0xa132x3[_0x4e14[235]]<_0xa132x4[_0x4e14[235]]||_0xa132x3[_0x4e14[236]]<_0xa132x4[_0x4e14[236]]||_0xa132x4[_0x4e14[117]]<_0xa132x3[_0x4e14[235]]+_0xa132x3[_0x4e14[117]]||_0xa132x4[_0x4e14[119]]<_0xa132x3[_0x4e14[236]]+_0xa132x3[_0x4e14[119]])){_0xa132x2=this[_0x4e14[2537]](_0xa132x2),0<_0xa132x4[_0x4e14[117]]&&(_0xa132x3[_0x4e14[235]]=Math[_0x4e14[243]](_0xa132x3[_0x4e14[235]],_0xa132x4[_0x4e14[235]]+_0xa132x4[_0x4e14[117]]-(1-_0xa132x2)*_0xa132x3[_0x4e14[117]])),0<_0xa132x4[_0x4e14[119]]&&(_0xa132x3[_0x4e14[236]]=Math[_0x4e14[243]](_0xa132x3[_0x4e14[236]],_0xa132x4[_0x4e14[236]]+_0xa132x4[_0x4e14[119]]-(1-_0xa132x2)*_0xa132x3[_0x4e14[119]])),_0xa132x3[_0x4e14[235]]=Math[_0x4e14[160]](_0xa132x3[_0x4e14[235]],_0xa132x4[_0x4e14[235]]-_0xa132x3[_0x4e14[117]]*_0xa132x2),_0xa132x3[_0x4e14[236]]=Math[_0x4e14[160]](_0xa132x3[_0x4e14[236]],_0xa132x4[_0x4e14[236]]-_0xa132x3[_0x4e14[119]]*_0xa132x2)};}};mxGraph[_0x4e14[202]][_0x4e14[1750]]=function(_0xa132x2){if(null!=_0xa132x2){for(var _0xa132x3={},_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){var _0xa132x5=mxCellPath[_0x4e14[385]](_0xa132x2[_0xa132x4]);_0xa132x3[_0xa132x5]=_0xa132x2[_0xa132x4];};this[_0x4e14[251]][_0x4e14[473]]();try{for(_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){var _0xa132x9=this[_0x4e14[251]][_0x4e14[264]](_0xa132x2[_0xa132x4]);if(null!=_0xa132x9){for(_0xa132x5=0;_0xa132x5<_0xa132x9[_0x4e14[67]];_0xa132x5++){var _0xa132xa=this[_0x4e14[441]][_0x4e14[248]](_0xa132x9[_0xa132x5]),_0xa132x12=null!=_0xa132xa?_0xa132xa[_0x4e14[1710]](!0):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x9[_0xa132x5],!0),_0xa132x13=null!=_0xa132xa?_0xa132xa[_0x4e14[1710]](!1):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x9[_0xa132x5],!1),_0xa132x14=mxCellPath[_0x4e14[385]](_0xa132x12),_0xa132x15=mxCellPath[_0x4e14[385]](_0xa132x13);(null==_0xa132x3[_0xa132x14]||null==_0xa132x3[_0xa132x15])&&this[_0x4e14[1809]](_0xa132x9[_0xa132x5]);}};this[_0x4e14[1750]](this[_0x4e14[251]][_0x4e14[1953]](_0xa132x2[_0xa132x4]));}}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[1809]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2);null!=_0xa132x3&&(null!=_0xa132x3[_0x4e14[1525]]&&0<_0xa132x3[_0x4e14[1525]][_0x4e14[67]])&&(_0xa132x3=_0xa132x3[_0x4e14[238]](),_0xa132x3[_0x4e14[1525]]=[],this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2,_0xa132x3));return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2538]]=function(_0xa132x2,_0xa132x3){return null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[253]]&&null!=_0xa132x2[_0x4e14[253]][_0x4e14[1561]]?_0xa132x2[_0x4e14[253]][_0x4e14[1561]][_0x4e14[1531]]:null};mxGraph[_0x4e14[202]][_0x4e14[2288]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=null;var _0xa132x5=_0xa132x2[_0x4e14[124]][_0xa132x4?mxConstants[_0x4e14[2539]]:mxConstants[_0x4e14[2540]]];if(null!=_0xa132x5){var _0xa132x9=_0xa132x2[_0x4e14[124]][_0xa132x4?mxConstants[_0x4e14[2541]]:mxConstants[_0x4e14[2542]]];null!=_0xa132x9&&(_0xa132x3= new mxPoint(parseFloat(_0xa132x5),parseFloat(_0xa132x9)));};_0xa132x5= !1;null!=_0xa132x3&&(_0xa132x5=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],_0xa132x4?mxConstants[_0x4e14[2543]]:mxConstants[_0x4e14[2544]],!0));return  new mxConnectionConstraint(_0xa132x3,_0xa132x5);};mxGraph[_0x4e14[202]][_0x4e14[2545]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x5){this[_0x4e14[251]][_0x4e14[473]]();try{null==_0xa132x5||null==_0xa132x5[_0x4e14[2546]]?(this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2539]]:mxConstants[_0x4e14[2540]],null,[_0xa132x2]),this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2541]]:mxConstants[_0x4e14[2542]],null,[_0xa132x2]),this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2543]]:mxConstants[_0x4e14[2544]],null,[_0xa132x2])):null!=_0xa132x5[_0x4e14[2546]]&&(this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2539]]:mxConstants[_0x4e14[2540]],_0xa132x5[_0x4e14[2546]][_0x4e14[235]],[_0xa132x2]),this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2541]]:mxConstants[_0x4e14[2542]],_0xa132x5[_0x4e14[2546]][_0x4e14[236]],[_0xa132x2]),_0xa132x5[_0x4e14[591]]?this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2543]]:mxConstants[_0x4e14[2544]],null,[_0xa132x2]):this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2543]]:mxConstants[_0x4e14[2544]],_0x4e14[468],[_0xa132x2]))}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[2290]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=null;if(null!=_0xa132x2){var _0xa132x5=this[_0x4e14[441]][_0x4e14[2087]](_0xa132x2),_0xa132x9= new mxPoint(_0xa132x5[_0x4e14[241]](),_0xa132x5[_0x4e14[242]]()),_0xa132xa=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2011]]],_0xa132x12=0;if(null!=_0xa132xa&&(_0x4e14[700]==_0xa132xa?_0xa132x12+=270:_0x4e14[703]==_0xa132xa?_0xa132x12+=180:_0x4e14[701]==_0xa132xa&&(_0xa132x12+=90),_0x4e14[700]==_0xa132xa||_0x4e14[701]==_0xa132xa)){_0xa132x5[_0x4e14[235]]+=_0xa132x5[_0x4e14[117]]/2-_0xa132x5[_0x4e14[119]]/2;_0xa132x5[_0x4e14[236]]+=_0xa132x5[_0x4e14[119]]/2-_0xa132x5[_0x4e14[117]]/2;var _0xa132x13=_0xa132x5[_0x4e14[117]];_0xa132x5[_0x4e14[117]]=_0xa132x5[_0x4e14[119]];_0xa132x5[_0x4e14[119]]=_0xa132x13;};if(null!=_0xa132x3[_0x4e14[2546]]){var _0xa132x14=_0xa132x4=1,_0xa132x15=0,_0xa132x16=0;if(this[_0x4e14[502]]()[_0x4e14[1193]](_0xa132x2[_0x4e14[246]])){var _0xa132x17=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2547]]],_0xa132x18=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2548]]];null!=_0xa132x2[_0x4e14[253]][_0x4e14[1561]]&&(_0xa132x17=1==mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],_0x4e14[1607],0)||_0xa132x17,_0xa132x18=1==mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],_0x4e14[1608],0)||_0xa132x18);if(_0x4e14[700]==_0xa132xa||_0x4e14[701]==_0xa132xa){_0xa132x13=_0xa132x17,_0xa132x17=_0xa132x18,_0xa132x18=_0xa132x13};_0xa132x17&&(_0xa132x4= -1,_0xa132x15=-_0xa132x5[_0x4e14[117]]);_0xa132x18&&(_0xa132x14= -1,_0xa132x16=-_0xa132x5[_0x4e14[119]]);};_0xa132x4= new mxPoint(_0xa132x5[_0x4e14[235]]+_0xa132x3[_0x4e14[2546]][_0x4e14[235]]*_0xa132x5[_0x4e14[117]]*_0xa132x4-_0xa132x15,_0xa132x5[_0x4e14[236]]+_0xa132x3[_0x4e14[2546]][_0x4e14[236]]*_0xa132x5[_0x4e14[119]]*_0xa132x14-_0xa132x16);};_0xa132xa=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2278]]]||0;_0xa132x3[_0x4e14[591]]?(0!=_0xa132x12&&null!=_0xa132x4&&(_0xa132x13=_0xa132x5=0,90==_0xa132x12?_0xa132x13=1:180==_0xa132x12?_0xa132x5= -1:270==_0xa132xa&&(_0xa132x13= -1),_0xa132x4=mxUtils[_0x4e14[432]](_0xa132x4,_0xa132x5,_0xa132x13,_0xa132x9)),null!=_0xa132x4&&_0xa132x3[_0x4e14[591]]&&(_0xa132x4=this[_0x4e14[441]][_0x4e14[2302]](_0xa132x2,_0xa132x4,!1))):_0xa132xa+=_0xa132x12;0!=_0xa132xa&&null!=_0xa132x4&&(_0xa132x12=mxUtils[_0x4e14[431]](_0xa132xa),_0xa132x5=Math[_0x4e14[426]](_0xa132x12),_0xa132x13=Math[_0x4e14[427]](_0xa132x12),_0xa132x4=mxUtils[_0x4e14[432]](_0xa132x4,_0xa132x5,_0xa132x13,_0xa132x9));};return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[851]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[251]][_0x4e14[473]]();try{var _0xa132x9=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,_0xa132x4);this[_0x4e14[852]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5);this[_0x4e14[746]]( new mxEventObject(mxEvent.CONNECT_CELL,_0x4e14[1989],_0xa132x2,_0x4e14[1984],_0xa132x3,_0x4e14[1097],_0xa132x4,_0x4e14[257],_0xa132x9));}finally{this[_0x4e14[251]][_0x4e14[476]]()};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[852]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x2){this[_0x4e14[251]][_0x4e14[473]]();try{var _0xa132x9=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,_0xa132x4);this[_0x4e14[2545]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5);this[_0x4e14[2549]]()&&(_0xa132x5=null,this[_0x4e14[1908]](_0xa132x3)&&(_0xa132x5=_0xa132x3[_0x4e14[1103]](),_0xa132x3=this[_0x4e14[2550]](_0xa132x3,_0xa132x4)),this[_0x4e14[1717]](_0xa132x4?mxConstants[_0x4e14[2303]]:mxConstants[_0x4e14[2304]],_0xa132x5,[_0xa132x2]));this[_0x4e14[251]][_0x4e14[1957]](_0xa132x2,_0xa132x3,_0xa132x4);this[_0x4e14[2401]]&&this[_0x4e14[1809]](_0xa132x2);this[_0x4e14[746]]( new mxEventObject(mxEvent.CELL_CONNECTED,_0x4e14[1989],_0xa132x2,_0x4e14[1984],_0xa132x3,_0x4e14[1097],_0xa132x4,_0x4e14[257],_0xa132x9));}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[2531]]=function(_0xa132x2){if(null!=_0xa132x2){this[_0x4e14[251]][_0x4e14[473]]();try{for(var _0xa132x3=this[_0x4e14[441]][_0x4e14[255]],_0xa132x4=this[_0x4e14[441]][_0x4e14[513]],_0xa132x5={},_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2[_0xa132x9]);_0xa132x5[_0xa132xa]=_0xa132x2[_0xa132x9];};for(_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){if(this[_0x4e14[251]][_0x4e14[250]](_0xa132x2[_0xa132x9])){var _0xa132x12=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2[_0xa132x9]);if(null!=_0xa132x12){var _0xa132x13=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2[_0xa132x9]),_0xa132x14=this[_0x4e14[441]][_0x4e14[248]](this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2[_0xa132x9]));if(null!=_0xa132x13&&null!=_0xa132x14){var _0xa132x12=_0xa132x12[_0x4e14[238]](),_0xa132x15=-_0xa132x14[_0x4e14[2078]][_0x4e14[235]],_0xa132x16=-_0xa132x14[_0x4e14[2078]][_0x4e14[236]],_0xa132x17=_0xa132x13[_0x4e14[439]],_0xa132x18=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2[_0xa132x9],!0);if(null!=_0xa132x18&&this[_0x4e14[2551]](_0xa132x2[_0xa132x9],_0xa132x18,!0)){for(var _0xa132x19=mxCellPath[_0x4e14[385]](_0xa132x18);null!=_0xa132x18&&null==_0xa132x5[_0xa132x19];){_0xa132x18=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x18),_0xa132x19=mxCellPath[_0x4e14[385]](_0xa132x18)};null==_0xa132x18&&(_0xa132x12[_0x4e14[2007]]( new mxPoint(_0xa132x17[0][_0x4e14[235]]/_0xa132x3-_0xa132x4[_0x4e14[235]]+_0xa132x15,_0xa132x17[0][_0x4e14[236]]/_0xa132x3-_0xa132x4[_0x4e14[236]]+_0xa132x16),!0),this[_0x4e14[251]][_0x4e14[1957]](_0xa132x2[_0xa132x9],null,!0));};var _0xa132x1a=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2[_0xa132x9],!1);if(null!=_0xa132x1a&&this[_0x4e14[2551]](_0xa132x2[_0xa132x9],_0xa132x1a,!1)){for(var _0xa132x1b=mxCellPath[_0x4e14[385]](_0xa132x1a);null!=_0xa132x1a&&null==_0xa132x5[_0xa132x1b];){_0xa132x1a=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x1a),_0xa132x1b=mxCellPath[_0x4e14[385]](_0xa132x1a)};if(null==_0xa132x1a){var _0xa132x1c=_0xa132x17[_0x4e14[67]]-1;_0xa132x12[_0x4e14[2007]]( new mxPoint(_0xa132x17[_0xa132x1c][_0x4e14[235]]/_0xa132x3-_0xa132x4[_0x4e14[235]]+_0xa132x15,_0xa132x17[_0xa132x1c][_0x4e14[236]]/_0xa132x3-_0xa132x4[_0x4e14[236]]+_0xa132x16),!1);this[_0x4e14[251]][_0x4e14[1957]](_0xa132x2[_0xa132x9],null,!1);};};this[_0x4e14[251]][_0x4e14[1724]](_0xa132x2[_0xa132x9],_0xa132x12);};};}};}finally{this[_0x4e14[251]][_0x4e14[476]]()};}};mxGraph[_0x4e14[202]][_0x4e14[2534]]=function(){return this[_0x4e14[441]][_0x4e14[1741]]};mxGraph[_0x4e14[202]][_0x4e14[2326]]=function(_0xa132x2){return null};mxGraph[_0x4e14[202]][_0x4e14[1908]]=function(_0xa132x2){return !1};mxGraph[_0x4e14[202]][_0x4e14[2550]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2280]]=function(_0xa132x2){return null};mxGraph[_0x4e14[202]][_0x4e14[2552]]=function(_0xa132x2){_0xa132x2=_0xa132x2||this[_0x4e14[2452]]();null!=_0xa132x2&&this[_0x4e14[2553]](_0xa132x2)&&(this[_0x4e14[441]][_0x4e14[2257]](_0xa132x2),this[_0x4e14[2440]]());};mxGraph[_0x4e14[202]][_0x4e14[2554]]=function(){var _0xa132x2=this[_0x4e14[251]][_0x4e14[501]](),_0xa132x3=this[_0x4e14[2534]]();if(null!=_0xa132x3){for(var _0xa132x4=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x3);_0xa132x4!=_0xa132x2&&!this[_0x4e14[2553]](_0xa132x4)&&this[_0x4e14[251]][_0x4e14[1197]](_0xa132x4)!=_0xa132x2;){_0xa132x4=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x4)};_0xa132x4==_0xa132x2||this[_0x4e14[251]][_0x4e14[1197]](_0xa132x4)==_0xa132x2?this[_0x4e14[441]][_0x4e14[2257]](null):this[_0x4e14[441]][_0x4e14[2257]](_0xa132x4);null!=this[_0x4e14[441]][_0x4e14[248]](_0xa132x3)&&this[_0x4e14[2450]](_0xa132x3);};};mxGraph[_0x4e14[202]][_0x4e14[2442]]=function(){var _0xa132x2=this[_0x4e14[2534]]();null!=_0xa132x2&&(this[_0x4e14[441]][_0x4e14[2257]](null),null!=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2)&&this[_0x4e14[2450]](_0xa132x2));};mxGraph[_0x4e14[202]][_0x4e14[2553]]=function(_0xa132x2){return null!=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[517]]=function(){return this[_0x4e14[441]][_0x4e14[517]]()};mxGraph[_0x4e14[202]][_0x4e14[2555]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=[_0xa132x2];_0xa132x3&&(_0xa132x5=_0xa132x5[_0x4e14[1919]](this[_0x4e14[251]][_0x4e14[264]](_0xa132x2)));_0xa132x5=this[_0x4e14[441]][_0x4e14[1799]](_0xa132x5);if(_0xa132x4){_0xa132x4=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2);for(var _0xa132x9=0;_0xa132x9<_0xa132x4;_0xa132x9++){var _0xa132xa=this[_0x4e14[2555]](this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,_0xa132x9),_0xa132x3,!0);null!=_0xa132x5?_0xa132x5[_0x4e14[99]](_0xa132xa):_0xa132x5=_0xa132xa;};};return _0xa132x5;};mxGraph[_0x4e14[202]][_0x4e14[1729]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;var _0xa132x4=null;if(null!=_0xa132x2){for(var _0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){if(_0xa132x3||this[_0x4e14[251]][_0x4e14[1193]](_0xa132x2[_0xa132x5])){var _0xa132x9=this[_0x4e14[1198]](_0xa132x2[_0xa132x5]);if(null!=_0xa132x9){var _0xa132xa=_0xa132x9[_0x4e14[1525]];if(null!=_0xa132xa&&0<_0xa132xa[_0x4e14[67]]){for(var _0xa132x12= new mxRectangle(_0xa132xa[0][_0x4e14[235]],_0xa132xa[0][_0x4e14[236]],0,0),_0xa132x13=function(_0xa132x2){null!=_0xa132x2&&_0xa132x12[_0x4e14[99]]( new mxRectangle(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],0,0))},_0xa132x14=1;_0xa132x14<_0xa132xa[_0x4e14[67]];_0xa132x14++){_0xa132x13(_0xa132xa[_0xa132x14])};_0xa132x13(_0xa132x9[_0x4e14[2006]](!0));_0xa132x13(_0xa132x9[_0x4e14[2006]](!1));};null==_0xa132x4?_0xa132x4= new mxRectangle(_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]],_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]]):_0xa132x4[_0x4e14[99]](_0xa132x9);};}}};return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[802]]=function(_0xa132x2){this[_0x4e14[441]][_0x4e14[200]](_0xa132x2,null==_0xa132x2);this[_0x4e14[441]][_0x4e14[2264]]();this[_0x4e14[2258]]();this[_0x4e14[746]]( new mxEventObject(mxEvent.REFRESH));};mxGraph[_0x4e14[202]][_0x4e14[1021]]=function(_0xa132x2){this[_0x4e14[991]]&&(_0xa132x2=Math[_0x4e14[488]](_0xa132x2/this[_0x4e14[1020]])*this[_0x4e14[1020]]);return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[1135]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[2365]]&&mxUtils[_0x4e14[1134]](this[_0x4e14[526]])){this[_0x4e14[526]][_0x4e14[360]]= -_0xa132x2,this[_0x4e14[526]][_0x4e14[190]]= -_0xa132x3}else {var _0xa132x4=this[_0x4e14[441]][_0x4e14[2051]]();if(this[_0x4e14[507]]==mxConstants[_0x4e14[508]]){if(0==_0xa132x2&&0==_0xa132x3){if(mxClient[_0x4e14[80]]?_0xa132x4[_0x4e14[57]](_0x4e14[535],_0x4e14[536]+_0xa132x2+_0x4e14[537]+_0xa132x3+_0x4e14[460]):_0xa132x4[_0x4e14[1390]](_0x4e14[535]),null!=this[_0x4e14[2556]]){for(var _0xa132x5=this[_0x4e14[2556]][_0x4e14[285]];null!=_0xa132x5;){var _0xa132x9=_0xa132x5[_0x4e14[287]];this[_0x4e14[526]][_0x4e14[62]](_0xa132x5);_0xa132x5=_0xa132x9;};this[_0x4e14[2556]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[2556]]);this[_0x4e14[2556]]=null;this[_0x4e14[526]][_0x4e14[62]](_0xa132x4[_0x4e14[265]]);for(_0xa132x5=this[_0x4e14[2557]][_0x4e14[285]];null!=_0xa132x5;){_0xa132x9=_0xa132x5[_0x4e14[287]],this[_0x4e14[526]][_0x4e14[62]](_0xa132x5),_0xa132x5=_0xa132x9};this[_0x4e14[2557]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[2557]]);this[_0x4e14[2557]]=null;}}else {_0xa132x4[_0x4e14[57]](_0x4e14[535],_0x4e14[536]+_0xa132x2+_0x4e14[537]+_0xa132x3+_0x4e14[460]);if(null==this[_0x4e14[2556]]){this[_0x4e14[2556]]=document[_0x4e14[55]](_0x4e14[485]);this[_0x4e14[2556]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];this[_0x4e14[2556]][_0x4e14[124]][_0x4e14[277]]=_0x4e14[189];this[_0x4e14[2557]]=document[_0x4e14[55]](_0x4e14[485]);this[_0x4e14[2557]][_0x4e14[124]][_0x4e14[491]]=_0x4e14[492];this[_0x4e14[2557]][_0x4e14[124]][_0x4e14[277]]=_0x4e14[189];for(var _0xa132xa=this[_0x4e14[2556]],_0xa132x5=this[_0x4e14[526]][_0x4e14[285]];null!=_0xa132x5;){_0xa132x9=_0xa132x5[_0x4e14[287]],_0xa132x5!=_0xa132x4[_0x4e14[265]]?_0xa132xa[_0x4e14[62]](_0xa132x5):_0xa132xa=this[_0x4e14[2557]],_0xa132x5=_0xa132x9};this[_0x4e14[526]][_0x4e14[950]](this[_0x4e14[2556]],_0xa132x4[_0x4e14[265]]);this[_0x4e14[526]][_0x4e14[62]](this[_0x4e14[2557]]);};this[_0x4e14[2556]][_0x4e14[124]][_0x4e14[361]]=_0xa132x2+_0x4e14[168];this[_0x4e14[2556]][_0x4e14[124]][_0x4e14[125]]=_0xa132x3+_0x4e14[168];this[_0x4e14[2557]][_0x4e14[124]][_0x4e14[361]]=_0xa132x2+_0x4e14[168];this[_0x4e14[2557]][_0x4e14[124]][_0x4e14[125]]=_0xa132x3+_0x4e14[168];}}else {_0xa132x4[_0x4e14[124]][_0x4e14[361]]=_0xa132x2+_0x4e14[168],_0xa132x4[_0x4e14[124]][_0x4e14[125]]=_0xa132x3+_0x4e14[168]};this[_0x4e14[1136]]=_0xa132x2;this[_0x4e14[1137]]=_0xa132x3;this[_0x4e14[746]]( new mxEventObject(mxEvent.PAN));}};mxGraph[_0x4e14[202]][_0x4e14[2558]]=function(){this[_0x4e14[499]](this[_0x4e14[2395]])};mxGraph[_0x4e14[202]][_0x4e14[2559]]=function(){this[_0x4e14[499]](1/this[_0x4e14[2395]])};mxGraph[_0x4e14[202]][_0x4e14[2560]]=function(){1==this[_0x4e14[441]][_0x4e14[255]]?this[_0x4e14[441]][_0x4e14[1147]](0,0):(this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]]=0,this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]=0,this[_0x4e14[441]][_0x4e14[2262]](1))};mxGraph[_0x4e14[202]][_0x4e14[2561]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[499]](_0xa132x2/this[_0x4e14[441]][_0x4e14[255]],_0xa132x3)};mxGraph[_0x4e14[202]][_0x4e14[499]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:this[_0x4e14[2397]];var _0xa132x4=this[_0x4e14[441]][_0x4e14[255]]*_0xa132x2,_0xa132x5=this[_0x4e14[441]][_0x4e14[248]](this[_0x4e14[2452]]());if(this[_0x4e14[2396]]&&null!=_0xa132x5){_0xa132x5= new mxRectangle(_0xa132x5[_0x4e14[235]]*_0xa132x2,_0xa132x5[_0x4e14[236]]*_0xa132x2,_0xa132x5[_0x4e14[117]]*_0xa132x2,_0xa132x5[_0x4e14[119]]*_0xa132x2),this[_0x4e14[441]][_0x4e14[255]]=_0xa132x4,this[_0x4e14[2562]](_0xa132x5)||(this[_0x4e14[441]][_0x4e14[2259]](),this[_0x4e14[441]][_0x4e14[2262]](_0xa132x4))}else {if(_0xa132x3&&!mxUtils[_0x4e14[1134]](this[_0x4e14[526]])){var _0xa132x5=this[_0x4e14[526]][_0x4e14[359]],_0xa132x9=this[_0x4e14[526]][_0x4e14[167]];if(1<_0xa132x2){var _0xa132xa=(_0xa132x2-1)/(2*_0xa132x4),_0xa132x5=_0xa132x5* -_0xa132xa,_0xa132x9=_0xa132x9* -_0xa132xa}else {_0xa132xa=(1/_0xa132x2-1)/(2*this[_0x4e14[441]][_0x4e14[255]]),_0xa132x5*=_0xa132xa,_0xa132x9*=_0xa132xa};this[_0x4e14[441]][_0x4e14[829]](_0xa132x4,this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]]+_0xa132x5,this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]+_0xa132x9);}else {this[_0x4e14[441]][_0x4e14[2262]](_0xa132x4),mxUtils[_0x4e14[1134]](this[_0x4e14[526]])&&(_0xa132x9=_0xa132x5=0,_0xa132x3&&(_0xa132x5=this[_0x4e14[526]][_0x4e14[359]]*(_0xa132x2-1)/2,_0xa132x9=this[_0x4e14[526]][_0x4e14[167]]*(_0xa132x2-1)/2),this[_0x4e14[526]][_0x4e14[360]]=Math[_0x4e14[488]](this[_0x4e14[526]][_0x4e14[360]]*_0xa132x2+_0xa132x5),this[_0x4e14[526]][_0x4e14[190]]=Math[_0x4e14[488]](this[_0x4e14[526]][_0x4e14[190]]*_0xa132x2+_0xa132x9))}};};mxGraph[_0x4e14[202]][_0x4e14[2563]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[526]][_0x4e14[159]]/_0xa132x2[_0x4e14[117]]/(this[_0x4e14[526]][_0x4e14[157]]/_0xa132x2[_0x4e14[119]]);_0xa132x2[_0x4e14[235]]=Math[_0x4e14[160]](0,_0xa132x2[_0x4e14[235]]);_0xa132x2[_0x4e14[236]]=Math[_0x4e14[160]](0,_0xa132x2[_0x4e14[236]]);var _0xa132x4=Math[_0x4e14[243]](this[_0x4e14[526]][_0x4e14[1526]],_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]),_0xa132x5=Math[_0x4e14[243]](this[_0x4e14[526]][_0x4e14[191]],_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]);_0xa132x2[_0x4e14[117]]=_0xa132x4-_0xa132x2[_0x4e14[235]];_0xa132x2[_0x4e14[119]]=_0xa132x5-_0xa132x2[_0x4e14[236]];1>_0xa132x3?(_0xa132x3=_0xa132x2[_0x4e14[119]]/_0xa132x3,_0xa132x4=(_0xa132x3-_0xa132x2[_0x4e14[119]])/2,_0xa132x2[_0x4e14[119]]=_0xa132x3,_0xa132x3=Math[_0x4e14[243]](_0xa132x2[_0x4e14[236]],_0xa132x4),_0xa132x2[_0x4e14[236]]-=_0xa132x3,_0xa132x5=Math[_0x4e14[243]](this[_0x4e14[526]][_0x4e14[191]],_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]),_0xa132x2[_0x4e14[119]]=_0xa132x5-_0xa132x2[_0x4e14[236]]):(_0xa132x3*=_0xa132x2[_0x4e14[117]],_0xa132x4=(_0xa132x3-_0xa132x2[_0x4e14[117]])/2,_0xa132x2[_0x4e14[117]]=_0xa132x3,_0xa132x3=Math[_0x4e14[243]](_0xa132x2[_0x4e14[235]],_0xa132x4),_0xa132x2[_0x4e14[235]]-=_0xa132x3,_0xa132x4=Math[_0x4e14[243]](this[_0x4e14[526]][_0x4e14[1526]],_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]),_0xa132x2[_0x4e14[117]]=_0xa132x4-_0xa132x2[_0x4e14[235]]);_0xa132x3=this[_0x4e14[526]][_0x4e14[159]]/_0xa132x2[_0x4e14[117]];_0xa132x4=this[_0x4e14[441]][_0x4e14[255]]*_0xa132x3;mxUtils[_0x4e14[1134]](this[_0x4e14[526]])?(this[_0x4e14[441]][_0x4e14[2262]](_0xa132x4),this[_0x4e14[526]][_0x4e14[360]]=Math[_0x4e14[488]](_0xa132x2[_0x4e14[235]]*_0xa132x3),this[_0x4e14[526]][_0x4e14[190]]=Math[_0x4e14[488]](_0xa132x2[_0x4e14[236]]*_0xa132x3)):this[_0x4e14[441]][_0x4e14[829]](_0xa132x4,this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]]-_0xa132x2[_0x4e14[235]]/this[_0x4e14[441]][_0x4e14[255]],this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]-_0xa132x2[_0x4e14[236]]/this[_0x4e14[441]][_0x4e14[255]]);};mxGraph[_0x4e14[202]][_0x4e14[933]]=function(_0xa132x2,_0xa132x3){if(null!=this[_0x4e14[526]]){_0xa132x2=null!=_0xa132x2?_0xa132x2:0;_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;var _0xa132x4=this[_0x4e14[526]][_0x4e14[159]],_0xa132x5=this[_0x4e14[526]][_0x4e14[157]],_0xa132x9=this[_0x4e14[441]][_0x4e14[517]]();_0xa132x3&&(null!=_0xa132x9[_0x4e14[235]]&&null!=_0xa132x9[_0x4e14[236]])&&(_0xa132x9[_0x4e14[117]]+=_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[119]]+=_0xa132x9[_0x4e14[236]],_0xa132x9[_0x4e14[235]]=0,_0xa132x9[_0x4e14[236]]=0);var _0xa132xa=this[_0x4e14[441]][_0x4e14[255]],_0xa132x12=_0xa132x9[_0x4e14[117]]/_0xa132xa,_0xa132x13=_0xa132x9[_0x4e14[119]]/_0xa132xa;null!=this[_0x4e14[1617]]&&(_0xa132x12=Math[_0x4e14[160]](_0xa132x12,this[_0x4e14[1617]][_0x4e14[117]]-_0xa132x9[_0x4e14[235]]/_0xa132xa),_0xa132x13=Math[_0x4e14[160]](_0xa132x13,this[_0x4e14[1617]][_0x4e14[119]]-_0xa132x9[_0x4e14[236]]/_0xa132xa));var _0xa132x14=_0xa132x3?_0xa132x2:2*_0xa132x2,_0xa132x4=Math[_0x4e14[519]](100*Math[_0x4e14[243]](_0xa132x4/(_0xa132x12+_0xa132x14),_0xa132x5/(_0xa132x13+_0xa132x14)))/100;null!=this[_0x4e14[2413]]&&(_0xa132x4=Math[_0x4e14[160]](_0xa132x4,this[_0x4e14[2413]]));null!=this[_0x4e14[2414]]&&(_0xa132x4=Math[_0x4e14[243]](_0xa132x4,this[_0x4e14[2414]]));_0xa132x3?this[_0x4e14[441]][_0x4e14[255]]!=_0xa132x4&&this[_0x4e14[441]][_0x4e14[2262]](_0xa132x4):mxUtils[_0x4e14[1134]](this[_0x4e14[526]])?(this[_0x4e14[441]][_0x4e14[2262]](_0xa132x4),null!=_0xa132x9[_0x4e14[235]]&&(this[_0x4e14[526]][_0x4e14[360]]=Math[_0x4e14[488]](_0xa132x9[_0x4e14[235]]/_0xa132xa)*_0xa132x4-_0xa132x2-Math[_0x4e14[160]](0,(this[_0x4e14[526]][_0x4e14[159]]-_0xa132x12*_0xa132x4)/2)),null!=_0xa132x9[_0x4e14[236]]&&(this[_0x4e14[526]][_0x4e14[190]]=Math[_0x4e14[488]](_0xa132x9[_0x4e14[236]]/_0xa132xa)*_0xa132x4-_0xa132x2-Math[_0x4e14[160]](0,(this[_0x4e14[526]][_0x4e14[157]]-_0xa132x13*_0xa132x4)/2))):this[_0x4e14[441]][_0x4e14[829]](_0xa132x4,null!=_0xa132x9[_0x4e14[235]]?Math[_0x4e14[519]](this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]]-_0xa132x9[_0x4e14[235]]/_0xa132xa+_0xa132x2+1):_0xa132x2,null!=_0xa132x9[_0x4e14[236]]?Math[_0x4e14[519]](this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]-_0xa132x9[_0x4e14[236]]/_0xa132xa+_0xa132x2+1):_0xa132x2);};return this[_0x4e14[441]][_0x4e14[255]];};mxGraph[_0x4e14[202]][_0x4e14[2564]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=-this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]],_0xa132x5=-this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]],_0xa132x9=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);null!=_0xa132x9&&(_0xa132x4= new mxRectangle(_0xa132x4+_0xa132x9[_0x4e14[235]],_0xa132x5+_0xa132x9[_0x4e14[236]],_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]]),_0xa132x3&&null!=this[_0x4e14[526]]&&(_0xa132x5=this[_0x4e14[526]][_0x4e14[159]],_0xa132x9=this[_0x4e14[526]][_0x4e14[157]],_0xa132x4[_0x4e14[235]]=_0xa132x4[_0x4e14[241]]()-_0xa132x5/2,_0xa132x4[_0x4e14[117]]=_0xa132x5,_0xa132x4[_0x4e14[236]]=_0xa132x4[_0x4e14[242]]()-_0xa132x9/2,_0xa132x4[_0x4e14[119]]=_0xa132x9),this[_0x4e14[2562]](_0xa132x4)&&this[_0x4e14[441]][_0x4e14[1147]](this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]],this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]));};mxGraph[_0x4e14[202]][_0x4e14[2562]]=function(_0xa132x2){var _0xa132x3=!1;if(null!=_0xa132x2){var _0xa132x4=this[_0x4e14[526]][_0x4e14[359]],_0xa132x5=this[_0x4e14[526]][_0x4e14[167]],_0xa132x9=Math[_0x4e14[243]](_0xa132x4,_0xa132x2[_0x4e14[117]]),_0xa132xa=Math[_0x4e14[243]](_0xa132x5,_0xa132x2[_0x4e14[119]]);if(mxUtils[_0x4e14[1134]](this[_0x4e14[526]])){_0xa132x4=this[_0x4e14[526]];_0xa132x2[_0x4e14[235]]+=this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]];_0xa132x2[_0x4e14[236]]+=this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]];var _0xa132x12=_0xa132x4[_0x4e14[360]]-_0xa132x2[_0x4e14[235]],_0xa132x5=Math[_0x4e14[160]](_0xa132x12-_0xa132x4[_0x4e14[360]],0);0<_0xa132x12?_0xa132x4[_0x4e14[360]]-=_0xa132x12+2:(_0xa132x12=_0xa132x2[_0x4e14[235]]+_0xa132x9-_0xa132x4[_0x4e14[360]]-_0xa132x4[_0x4e14[159]],0<_0xa132x12&&(_0xa132x4[_0x4e14[360]]+=_0xa132x12+2));_0xa132x9=_0xa132x4[_0x4e14[190]]-_0xa132x2[_0x4e14[236]];_0xa132x12=Math[_0x4e14[160]](0,_0xa132x9-_0xa132x4[_0x4e14[190]]);0<_0xa132x9?_0xa132x4[_0x4e14[190]]-=_0xa132x9+2:(_0xa132x9=_0xa132x2[_0x4e14[236]]+_0xa132xa-_0xa132x4[_0x4e14[190]]-_0xa132x4[_0x4e14[157]],0<_0xa132x9&&(_0xa132x4[_0x4e14[190]]+=_0xa132x9+2));!this[_0x4e14[2365]]&&(0!=_0xa132x5||0!=_0xa132x12)&&this[_0x4e14[441]][_0x4e14[1147]](_0xa132x5,_0xa132x12);}else {var _0xa132x12=-this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]],_0xa132x13=-this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]],_0xa132x14=this[_0x4e14[441]][_0x4e14[255]];_0xa132x2[_0x4e14[235]]+_0xa132x9>_0xa132x12+_0xa132x4&&(this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]]-=(_0xa132x2[_0x4e14[235]]+_0xa132x9-_0xa132x4-_0xa132x12)/_0xa132x14,_0xa132x3= !0);_0xa132x2[_0x4e14[236]]+_0xa132xa>_0xa132x13+_0xa132x5&&(this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]-=(_0xa132x2[_0x4e14[236]]+_0xa132xa-_0xa132x5-_0xa132x13)/_0xa132x14,_0xa132x3= !0);_0xa132x2[_0x4e14[235]]<_0xa132x12&&(this[_0x4e14[441]][_0x4e14[513]][_0x4e14[235]]+=(_0xa132x12-_0xa132x2[_0x4e14[235]])/_0xa132x14,_0xa132x3= !0);_0xa132x2[_0x4e14[236]]<_0xa132x13&&(this[_0x4e14[441]][_0x4e14[513]][_0x4e14[236]]+=(_0xa132x13-_0xa132x2[_0x4e14[236]])/_0xa132x14,_0xa132x3= !0);_0xa132x3&&(this[_0x4e14[441]][_0x4e14[802]](),null!=this[_0x4e14[2432]]&&this[_0x4e14[2432]][_0x4e14[802]]());};};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[1198]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[1714]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[174]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[1742]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1971]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2565]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1965]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2298]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2566]]];if(null!=_0xa132x3){return _0xa132x3};_0xa132x2=this[_0x4e14[441]][_0x4e14[2291]](_0xa132x2);return _0xa132x2==mxEdgeStyle[_0x4e14[2567]]||_0xa132x2==mxEdgeStyle[_0x4e14[2568]]||_0xa132x2==mxEdgeStyle[_0x4e14[2569]]||_0xa132x2==mxEdgeStyle[_0x4e14[2570]]||_0xa132x2==mxEdgeStyle[_0x4e14[2571]]||_0xa132x2==mxEdgeStyle[_0x4e14[2572]];};mxGraph[_0x4e14[202]][_0x4e14[2573]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[2089]](!0);_0xa132x2=_0xa132x2[_0x4e14[2089]](!1);return null!=_0xa132x3&&_0xa132x3==_0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2574]]=function(_0xa132x2){return mxEvent[_0x4e14[775]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2462]]=function(_0xa132x2){return mxClient[_0x4e14[2575]]?mxEvent[_0x4e14[2576]](_0xa132x2):mxEvent[_0x4e14[775]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[1018]]=function(_0xa132x2){return null!=_0xa132x2&&!mxEvent[_0x4e14[2577]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2578]]=function(_0xa132x2){return mxEvent[_0x4e14[774]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2579]]=function(_0xa132x2){return mxEvent[_0x4e14[2577]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2580]]=function(_0xa132x2){mxUtils[_0x4e14[150]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2581]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return null==this[_0x4e14[2500]](_0xa132x2,_0xa132x3,_0xa132x4)};mxGraph[_0x4e14[202]][_0x4e14[2500]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(null!=_0xa132x2&&!this[_0x4e14[2530]]()&&(null==_0xa132x3||null==_0xa132x4)){return _0x4e14[110]};if(null!=_0xa132x2&&null==this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!0)&&null==this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!1)){return null};if(!this[_0x4e14[2402]]&&_0xa132x3==_0xa132x4&&null!=_0xa132x3||!this[_0x4e14[2582]](_0xa132x3,_0xa132x4)){return _0x4e14[110]};if(null!=_0xa132x3&&null!=_0xa132x4){var _0xa132x5=_0x4e14[110];if(!this[_0x4e14[2404]]){var _0xa132x9=this[_0x4e14[251]][_0x4e14[1781]](_0xa132x3,_0xa132x4,!0);if(1<_0xa132x9[_0x4e14[67]]||1==_0xa132x9[_0x4e14[67]]&&_0xa132x9[0]!=_0xa132x2){_0xa132x5+=(mxResources[_0x4e14[203]](this[_0x4e14[2421]])||this[_0x4e14[2421]])+_0x4e14[192]};};var _0xa132x9=this[_0x4e14[251]][_0x4e14[1962]](_0xa132x3,!0,_0xa132x2),_0xa132xa=this[_0x4e14[251]][_0x4e14[1962]](_0xa132x4,!1,_0xa132x2);if(null!=this[_0x4e14[2335]]){for(var _0xa132x12=0;_0xa132x12<this[_0x4e14[2335]][_0x4e14[67]];_0xa132x12++){var _0xa132x13=this[_0x4e14[2335]][_0xa132x12][_0x4e14[2583]](this,_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x9,_0xa132xa);null!=_0xa132x13&&(_0xa132x5+=_0xa132x13);}};_0xa132x13=this[_0x4e14[2584]](_0xa132x2,_0xa132x3,_0xa132x4);null!=_0xa132x13&&(_0xa132x5+=_0xa132x13);return 0<_0xa132x5[_0x4e14[67]]?_0xa132x5:null;};return this[_0x4e14[2406]]?null:_0x4e14[110];};mxGraph[_0x4e14[202]][_0x4e14[2584]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return null};mxGraph[_0x4e14[202]][_0x4e14[2585]]=function(_0xa132x2,_0xa132x3){_0xa132x2=null!=_0xa132x2?_0xa132x2:this[_0x4e14[251]][_0x4e14[501]]();_0xa132x3=null!=_0xa132x3?_0xa132x3:{};for(var _0xa132x4=!0,_0xa132x5=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){var _0xa132xa=this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,_0xa132x9),_0xa132x12=_0xa132x3;this[_0x4e14[2553]](_0xa132xa)&&(_0xa132x12={});_0xa132x12=this[_0x4e14[2585]](_0xa132xa,_0xa132x12);null!=_0xa132x12?this[_0x4e14[2447]](_0xa132xa,_0xa132x12[_0x4e14[230]](/\n/g,_0x4e14[545])):this[_0x4e14[2447]](_0xa132xa,null);_0xa132x4=_0xa132x4&&null==_0xa132x12;};_0xa132x5=_0x4e14[110];this[_0x4e14[1742]](_0xa132x2)&&!_0xa132x4&&(_0xa132x5+=(mxResources[_0x4e14[203]](this[_0x4e14[2423]])||this[_0x4e14[2423]])+_0x4e14[192]);_0xa132x5=this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)?_0xa132x5+(this[_0x4e14[2500]](_0xa132x2,this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!0),this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!1))||_0x4e14[110]):_0xa132x5+(this[_0x4e14[2586]](_0xa132x2)||_0x4e14[110]);_0xa132x9=this[_0x4e14[2587]](_0xa132x2,_0xa132x3);null!=_0xa132x9&&(_0xa132x5+=_0xa132x9);null==this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2)&&this[_0x4e14[441]][_0x4e14[2264]]();return 0<_0xa132x5[_0x4e14[67]]||!_0xa132x4?_0xa132x5:null;};mxGraph[_0x4e14[202]][_0x4e14[2586]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[251]][_0x4e14[1962]](_0xa132x2,!0),_0xa132x4=this[_0x4e14[251]][_0x4e14[1962]](_0xa132x2,!1);_0xa132x2=this[_0x4e14[251]][_0x4e14[433]](_0xa132x2);var _0xa132x5=_0x4e14[110];if(null!=this[_0x4e14[2335]]){for(var _0xa132x9=0;_0xa132x9<this[_0x4e14[2335]][_0x4e14[67]];_0xa132x9++){var _0xa132xa=this[_0x4e14[2335]][_0xa132x9];if(_0xa132xa[_0x4e14[1097]]&&mxUtils[_0x4e14[1331]](_0xa132x2,_0xa132xa[_0x4e14[60]],_0xa132xa[_0x4e14[2588]],_0xa132xa[_0x4e14[131]])&&(0==_0xa132xa[_0x4e14[160]]&&0<_0xa132x3||1==_0xa132xa[_0x4e14[243]]&&0==_0xa132x3||1==_0xa132xa[_0x4e14[160]]&&1<_0xa132x3)){_0xa132x5+=_0xa132xa[_0x4e14[2589]]+_0x4e14[192]}else {if(!_0xa132xa[_0x4e14[1097]]&&mxUtils[_0x4e14[1331]](_0xa132x2,_0xa132xa[_0x4e14[60]],_0xa132xa[_0x4e14[2588]],_0xa132xa[_0x4e14[131]])&&(0==_0xa132xa[_0x4e14[160]]&&0<_0xa132x4||1==_0xa132xa[_0x4e14[243]]&&0==_0xa132x4||1==_0xa132xa[_0x4e14[160]]&&1<_0xa132x4)){_0xa132x5+=_0xa132xa[_0x4e14[2589]]+_0x4e14[192]}};}};return 0<_0xa132x5[_0x4e14[67]]?_0xa132x5:null;};mxGraph[_0x4e14[202]][_0x4e14[2587]]=function(_0xa132x2,_0xa132x3){return null};mxGraph[_0x4e14[202]][_0x4e14[2271]]=function(){return this[_0x4e14[1617]]};mxGraph[_0x4e14[202]][_0x4e14[2590]]=function(_0xa132x2){this[_0x4e14[1617]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2205]]=function(_0xa132x2){if(null!=_0xa132x2&&this[_0x4e14[2206]]&&!this[_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]])){var _0xa132x3=this[_0x4e14[1742]](_0xa132x2[_0x4e14[246]]);if(this[_0x4e14[2516]](_0xa132x2[_0x4e14[246]],!_0xa132x3)){return _0xa132x3?this[_0x4e14[2415]]:this[_0x4e14[2417]]};};return null;};mxGraph[_0x4e14[202]][_0x4e14[2454]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[251]][_0x4e14[433]](_0xa132x2);if(null!=_0xa132x2){if(mxUtils[_0x4e14[1331]](_0xa132x2)){return _0xa132x2[_0x4e14[301]]};if(_0x4e14[279]== typeof _0xa132x2[_0x4e14[2591]]){return _0xa132x2.toString()};};return _0x4e14[110];};mxGraph[_0x4e14[202]][_0x4e14[2183]]=function(_0xa132x2){var _0xa132x3=_0x4e14[110];if(this[_0x4e14[2409]]&&null!=_0xa132x2){var _0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x4=null!=_0xa132x4?_0xa132x4[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);mxUtils[_0x4e14[433]](_0xa132x4,mxConstants.STYLE_NOLABEL,!1)||(_0xa132x3=this[_0x4e14[2454]](_0xa132x2));};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[2186]]=function(_0xa132x2){return this[_0x4e14[2592]]()};mxGraph[_0x4e14[202]][_0x4e14[2592]]=function(){return this[_0x4e14[2410]]};mxGraph[_0x4e14[202]][_0x4e14[2593]]=function(_0xa132x2){this[_0x4e14[2410]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2131]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x2=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return null!=_0xa132x2?_0x4e14[1333]==_0xa132x2[mxConstants[_0x4e14[2594]]]:!1;};mxGraph[_0x4e14[202]][_0x4e14[2130]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x2=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return null!=_0xa132x2?_0x4e14[188]==_0xa132x2[mxConstants[_0x4e14[2193]]]:!1;};mxGraph[_0x4e14[202]][_0x4e14[2595]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=null;if(null!=_0xa132x2){if(null!=_0xa132x2[_0x4e14[2207]]&&(_0xa132x3==_0xa132x2[_0x4e14[2207]][_0x4e14[252]]||_0xa132x3[_0x4e14[265]]==_0xa132x2[_0x4e14[2207]][_0x4e14[252]])){_0xa132x9=this[_0x4e14[2425]],_0xa132x9=mxResources[_0x4e14[203]](_0xa132x9)||_0xa132x9};null==_0xa132x9&&null!=_0xa132x2[_0x4e14[1211]]&&_0xa132x2[_0x4e14[1211]][_0x4e14[209]](function(_0xa132x2,_0xa132x4){if(null==_0xa132x9&&(_0xa132x3==_0xa132x4[_0x4e14[252]]||_0xa132x3[_0x4e14[265]]==_0xa132x4[_0x4e14[252]])){_0xa132x9=_0xa132x4[_0x4e14[2201]].toString()}});null==_0xa132x9&&(_0xa132x4=this[_0x4e14[2432]][_0x4e14[2596]](_0xa132x2[_0x4e14[246]]),null!=_0xa132x4&&_0x4e14[279]== typeof _0xa132x4[_0x4e14[2597]]&&(_0xa132x9=_0xa132x4[_0x4e14[2597]](_0xa132x3)));null==_0xa132x9&&(_0xa132x9=this[_0x4e14[2598]](_0xa132x2[_0x4e14[246]]));};return _0xa132x9;};mxGraph[_0x4e14[202]][_0x4e14[2598]]=function(_0xa132x2){var _0xa132x3=null;return _0xa132x3=null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[2595]]?_0xa132x2[_0x4e14[2595]]():this[_0x4e14[2454]](_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[2599]]=function(_0xa132x2){return null};mxGraph[_0x4e14[202]][_0x4e14[1731]]=function(_0xa132x2){var _0xa132x3= new mxRectangle,_0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x2=null!=_0xa132x4?_0xa132x4[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);null!=_0xa132x2&&(_0xa132x4=parseInt(mxUtils[_0x4e14[433]](_0xa132x2,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils[_0x4e14[433]](_0xa132x2,mxConstants.STYLE_HORIZONTAL,!0)?_0xa132x3[_0x4e14[119]]=_0xa132x4:_0xa132x3[_0x4e14[117]]=_0xa132x4);return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[1202]]=function(_0xa132x2){return null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[124]]?_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2484]]]:null};mxGraph[_0x4e14[202]][_0x4e14[2187]]=function(_0xa132x2){return null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[124]]?_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2063]]]||mxConstants[_0x4e14[481]]:null};mxGraph[_0x4e14[202]][_0x4e14[2173]]=function(_0xa132x2){return null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[124]]?_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2600]]]:null};mxGraph[_0x4e14[202]][_0x4e14[2174]]=function(_0xa132x2){return null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[124]]?_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2601]]]:null};mxGraph[_0x4e14[202]][_0x4e14[2172]]=function(_0xa132x2){return null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[124]]?_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2602]]]:null};mxGraph[_0x4e14[202]][_0x4e14[2176]]=function(_0xa132x2){return null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[124]]?_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2603]]]:null};mxGraph[_0x4e14[202]][_0x4e14[2476]]=function(){return this[_0x4e14[467]]};mxGraph[_0x4e14[202]][_0x4e14[2604]]=function(_0xa132x2){this[_0x4e14[467]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[1730]]=function(_0xa132x2){if(null!=_0xa132x2&&this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2)!=this[_0x4e14[251]][_0x4e14[501]]()){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x3=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);if(null!=_0xa132x3&&!this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)){return _0xa132x3[mxConstants[_0x4e14[2059]]]==mxConstants[_0x4e14[2605]]};};return !1;};mxGraph[_0x4e14[202]][_0x4e14[2606]]=function(){return this[_0x4e14[2389]]};mxGraph[_0x4e14[202]][_0x4e14[2607]]=function(_0xa132x2){this[_0x4e14[2389]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxGraph[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2608]]=function(){return this[_0x4e14[2362]]};mxGraph[_0x4e14[202]][_0x4e14[2609]]=function(_0xa132x2){this[_0x4e14[2362]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2134]]=function(){return this[_0x4e14[2363]]};mxGraph[_0x4e14[202]][_0x4e14[2610]]=function(_0xa132x2){this[_0x4e14[2363]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2125]]=function(){return this[_0x4e14[2364]]};mxGraph[_0x4e14[202]][_0x4e14[2611]]=function(_0xa132x2){this[_0x4e14[2364]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2612]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x2);return this[_0x4e14[2613]]()||null!=_0xa132x3&&this[_0x4e14[251]][_0x4e14[1193]](_0xa132x2)&&_0xa132x3[_0x4e14[1500]];};mxGraph[_0x4e14[202]][_0x4e14[2613]]=function(){return this[_0x4e14[2368]]};mxGraph[_0x4e14[202]][_0x4e14[2614]]=function(_0xa132x2){this[_0x4e14[2368]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2615]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1938]](_0xa132x2,mxUtils[_0x4e14[885]](this,function(_0xa132x2){return this[_0x4e14[2616]](_0xa132x2)}))};mxGraph[_0x4e14[202]][_0x4e14[2616]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x2=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return this[_0x4e14[2617]]()&&0!=_0xa132x2[mxConstants[_0x4e14[2618]]];};mxGraph[_0x4e14[202]][_0x4e14[2617]]=function(){return this[_0x4e14[2369]]};mxGraph[_0x4e14[202]][_0x4e14[2619]]=function(_0xa132x2){this[_0x4e14[2369]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[898]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1938]](_0xa132x2,mxUtils[_0x4e14[885]](this,function(_0xa132x2){return this[_0x4e14[2620]](_0xa132x2)}))};mxGraph[_0x4e14[202]][_0x4e14[2620]]=function(_0xa132x2){return this[_0x4e14[2366]]};mxGraph[_0x4e14[202]][_0x4e14[900]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1938]](_0xa132x2,mxUtils[_0x4e14[885]](this,function(_0xa132x2){return this[_0x4e14[2621]](_0xa132x2)}))};mxGraph[_0x4e14[202]][_0x4e14[2621]]=function(_0xa132x2){return this[_0x4e14[2367]]};mxGraph[_0x4e14[202]][_0x4e14[2102]]=function(_0xa132x2){return this[_0x4e14[2622]]()};mxGraph[_0x4e14[202]][_0x4e14[2622]]=function(){return this[_0x4e14[2379]]};mxGraph[_0x4e14[202]][_0x4e14[2623]]=function(_0xa132x2){this[_0x4e14[2379]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2510]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1938]](_0xa132x2,mxUtils[_0x4e14[885]](this,function(_0xa132x2){return this[_0x4e14[2624]](_0xa132x2)}))};mxGraph[_0x4e14[202]][_0x4e14[2624]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x2=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return this[_0x4e14[2625]]()&&0!=_0xa132x2[mxConstants[_0x4e14[2626]]];};mxGraph[_0x4e14[202]][_0x4e14[2625]]=function(){return this[_0x4e14[2371]]};mxGraph[_0x4e14[202]][_0x4e14[2627]]=function(_0xa132x2){this[_0x4e14[2371]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2628]]=function(_0xa132x2){return !this[_0x4e14[2612]](_0xa132x2)&&(this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)&&this[_0x4e14[2373]]||this[_0x4e14[251]][_0x4e14[1193]](_0xa132x2)&&this[_0x4e14[2374]])};mxGraph[_0x4e14[202]][_0x4e14[2629]]=function(_0xa132x2){return this[_0x4e14[251]][_0x4e14[1938]](_0xa132x2,mxUtils[_0x4e14[885]](this,function(_0xa132x2){return this[_0x4e14[1712]](_0xa132x2)}))};mxGraph[_0x4e14[202]][_0x4e14[1712]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x3=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return this[_0x4e14[2630]]()&&!this[_0x4e14[2612]](_0xa132x2)&&0!=_0xa132x3[mxConstants[_0x4e14[2631]]];};mxGraph[_0x4e14[202]][_0x4e14[2630]]=function(){return this[_0x4e14[2372]]};mxGraph[_0x4e14[202]][_0x4e14[2632]]=function(_0xa132x2){this[_0x4e14[2372]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[997]]=function(){return this[_0x4e14[991]]};mxGraph[_0x4e14[202]][_0x4e14[998]]=function(_0xa132x2){this[_0x4e14[991]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2549]]=function(){return this[_0x4e14[2348]]};mxGraph[_0x4e14[202]][_0x4e14[2633]]=function(_0xa132x2){this[_0x4e14[2348]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2634]]=function(){return this[_0x4e14[1020]]};mxGraph[_0x4e14[202]][_0x4e14[2635]]=function(_0xa132x2){this[_0x4e14[1020]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2636]]=function(){return this[_0x4e14[2353]]};mxGraph[_0x4e14[202]][_0x4e14[2637]]=function(_0xa132x2){this[_0x4e14[2353]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2638]]=function(){return this[_0x4e14[2374]]};mxGraph[_0x4e14[202]][_0x4e14[2639]]=function(_0xa132x2){this[_0x4e14[2374]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2640]]=function(){return this[_0x4e14[2373]]};mxGraph[_0x4e14[202]][_0x4e14[2641]]=function(_0xa132x2){this[_0x4e14[2373]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2642]]=function(){return this[_0x4e14[2412]]};mxGraph[_0x4e14[202]][_0x4e14[2643]]=function(_0xa132x2){this[_0x4e14[2412]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2460]]=function(){return this[_0x4e14[2411]]};mxGraph[_0x4e14[202]][_0x4e14[2644]]=function(_0xa132x2){this[_0x4e14[2411]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2645]]=function(){return this[_0x4e14[2404]]};mxGraph[_0x4e14[202]][_0x4e14[2646]]=function(_0xa132x2){this[_0x4e14[2404]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2647]]=function(){return this[_0x4e14[2402]]};mxGraph[_0x4e14[202]][_0x4e14[2648]]=function(_0xa132x2){this[_0x4e14[2406]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2530]]=function(){return this[_0x4e14[2406]]};mxGraph[_0x4e14[202]][_0x4e14[2649]]=function(_0xa132x2){this[_0x4e14[2405]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2650]]=function(){return this[_0x4e14[2405]]};mxGraph[_0x4e14[202]][_0x4e14[2651]]=function(_0xa132x2){this[_0x4e14[2407]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2527]]=function(){return this[_0x4e14[2407]]};mxGraph[_0x4e14[202]][_0x4e14[2652]]=function(_0xa132x2){this[_0x4e14[2402]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2529]]=function(){return this[_0x4e14[2408]]};mxGraph[_0x4e14[202]][_0x4e14[2653]]=function(_0xa132x2){this[_0x4e14[2408]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[1015]]=function(){return this[_0x4e14[2375]]};mxGraph[_0x4e14[202]][_0x4e14[2654]]=function(_0xa132x2){this[_0x4e14[2375]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2655]]=function(){return this[_0x4e14[2376]]};mxGraph[_0x4e14[202]][_0x4e14[2656]]=function(_0xa132x2){this[_0x4e14[2376]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2657]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x3=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return this[_0x4e14[2658]]()&&!this[_0x4e14[2612]](_0xa132x2)&&0!=_0xa132x3[mxConstants[_0x4e14[2659]]];};mxGraph[_0x4e14[202]][_0x4e14[2658]]=function(){return this[_0x4e14[2377]]};mxGraph[_0x4e14[202]][_0x4e14[2660]]=function(_0xa132x2){this[_0x4e14[2377]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2661]]=function(_0xa132x2,_0xa132x3){return !0};mxGraph[_0x4e14[202]][_0x4e14[2662]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x3=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return this[_0x4e14[2663]]()&&!this[_0x4e14[2612]](_0xa132x2)&&0!=_0xa132x3[mxConstants[_0x4e14[2664]]];};mxGraph[_0x4e14[202]][_0x4e14[2663]]=function(){return this[_0x4e14[2378]]};mxGraph[_0x4e14[202]][_0x4e14[2665]]=function(_0xa132x2){this[_0x4e14[2378]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2453]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x3=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return this[_0x4e14[2666]]()&&!this[_0x4e14[2612]](_0xa132x2)&&0!=_0xa132x3[mxConstants[_0x4e14[2667]]];};mxGraph[_0x4e14[202]][_0x4e14[2666]]=function(){return this[_0x4e14[2370]]};mxGraph[_0x4e14[202]][_0x4e14[2668]]=function(_0xa132x2){this[_0x4e14[2370]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2551]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return this[_0x4e14[2669]]()&&!this[_0x4e14[2612]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2669]]=function(){return this[_0x4e14[2380]]};mxGraph[_0x4e14[202]][_0x4e14[2670]]=function(_0xa132x2){this[_0x4e14[2380]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2671]]=function(_0xa132x2){return null==_0xa132x2&&this[_0x4e14[2406]]||null!=_0xa132x2&&(!this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)||this[_0x4e14[2405]])&&this[_0x4e14[2565]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2672]]=function(_0xa132x2){return this[_0x4e14[2671]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2582]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[2671]](_0xa132x2)&&this[_0x4e14[2672]](_0xa132x3)};mxGraph[_0x4e14[202]][_0x4e14[1995]]=function(_0xa132x2){this[_0x4e14[2433]][_0x4e14[995]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[1965]]=function(_0xa132x2){return this[_0x4e14[2433]][_0x4e14[994]]()};mxGraph[_0x4e14[202]][_0x4e14[2673]]=function(_0xa132x2){this[_0x4e14[2276]][_0x4e14[995]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2674]]=function(_0xa132x2){this[_0x4e14[2316]][_0x4e14[2431]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2203]]=function(_0xa132x2){if(null!=this[_0x4e14[2347]]){var _0xa132x3=this[_0x4e14[2347]][_0x4e14[2148]]();return null==_0xa132x2?null!=_0xa132x3:_0xa132x2==_0xa132x3;};return !1;};mxGraph[_0x4e14[202]][_0x4e14[2455]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x2=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return this[_0x4e14[2675]]()||1==_0xa132x2[mxConstants[_0x4e14[2676]]];};mxGraph[_0x4e14[202]][_0x4e14[2675]]=function(){return this[_0x4e14[2381]]};mxGraph[_0x4e14[202]][_0x4e14[2677]]=function(_0xa132x2){this[_0x4e14[2381]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2507]]=function(_0xa132x2){return !this[_0x4e14[502]]()[_0x4e14[250]](_0xa132x2)&&this[_0x4e14[2678]]()};mxGraph[_0x4e14[202]][_0x4e14[2678]]=function(){return this[_0x4e14[2392]]};mxGraph[_0x4e14[202]][_0x4e14[2679]]=function(_0xa132x2){this[_0x4e14[2392]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2506]]=function(){return this[_0x4e14[2393]]};mxGraph[_0x4e14[202]][_0x4e14[2680]]=function(_0xa132x2){this[_0x4e14[2393]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2536]]=function(_0xa132x2){return this[_0x4e14[2681]]()&&!this[_0x4e14[502]]()[_0x4e14[250]](this[_0x4e14[502]]()[_0x4e14[1197]](_0xa132x2))};mxGraph[_0x4e14[202]][_0x4e14[2681]]=function(){return this[_0x4e14[2391]]};mxGraph[_0x4e14[202]][_0x4e14[2682]]=function(_0xa132x2){this[_0x4e14[2391]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2505]]=function(){return this[_0x4e14[2390]]};mxGraph[_0x4e14[202]][_0x4e14[2528]]=function(_0xa132x2){this[_0x4e14[2390]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2537]]=function(_0xa132x2){return this[_0x4e14[2683]](_0xa132x2)?this[_0x4e14[2354]]:0};mxGraph[_0x4e14[202]][_0x4e14[2683]]=function(_0xa132x2){return !1};mxGraph[_0x4e14[202]][_0x4e14[2513]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[251]][_0x4e14[1938]](_0xa132x2,mxUtils[_0x4e14[885]](this,function(_0xa132x2){return this[_0x4e14[2516]](_0xa132x2,_0xa132x3)}))};mxGraph[_0x4e14[202]][_0x4e14[2516]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2),_0xa132x4=null!=_0xa132x4?_0xa132x4[_0x4e14[124]]:this[_0x4e14[1705]](_0xa132x2);return 0<this[_0x4e14[251]][_0x4e14[262]](_0xa132x2)&&0!=_0xa132x4[mxConstants[_0x4e14[2684]]];};mxGraph[_0x4e14[202]][_0x4e14[2685]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return null!=_0xa132x2&&(this[_0x4e14[2655]]()&&this[_0x4e14[2686]](_0xa132x2,_0xa132x3,_0xa132x4)||!this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)&&(this[_0x4e14[1730]](_0xa132x2)||0<this[_0x4e14[251]][_0x4e14[262]](_0xa132x2)&&!this[_0x4e14[1742]](_0xa132x2)))};mxGraph[_0x4e14[202]][_0x4e14[2686]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return this[_0x4e14[251]][_0x4e14[250]](_0xa132x2)&&null!=_0xa132x3&&1==_0xa132x3[_0x4e14[67]]&&this[_0x4e14[2565]](_0xa132x3[0])&&null==this[_0x4e14[2500]](_0xa132x2,this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!0),_0xa132x3[0])?(_0xa132x4=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!0),_0xa132x2=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x2,!1),!this[_0x4e14[251]][_0x4e14[1720]](_0xa132x3[0],_0xa132x4)&&!this[_0x4e14[251]][_0x4e14[1720]](_0xa132x3[0],_0xa132x2)):!1};mxGraph[_0x4e14[202]][_0x4e14[564]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(!this[_0x4e14[2642]]()){for(var _0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){if(this[_0x4e14[1730]](_0xa132x2[_0xa132x5])){return null}}};_0xa132x5=mxUtils[_0x4e14[2196]](this[_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x3),mxEvent[_0x4e14[733]](_0xa132x3));_0xa132x5[_0x4e14[235]]-=this[_0x4e14[1136]];_0xa132x5[_0x4e14[236]]-=this[_0x4e14[1137]];_0xa132x5=this[_0x4e14[2461]](_0xa132x5[_0x4e14[235]],_0xa132x5[_0x4e14[236]]);if(null==_0xa132x4){_0xa132x4=_0xa132x5}else {if(null!=_0xa132x5){for(var _0xa132x9=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x5);null!=_0xa132x9&&this[_0x4e14[1730]](_0xa132x9)&&_0xa132x9!=_0xa132x4;){_0xa132x9=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x9)};_0xa132x9==_0xa132x4&&(_0xa132x4=_0xa132x5);}};for(;null!=_0xa132x4&&!this[_0x4e14[2685]](_0xa132x4,_0xa132x2,_0xa132x3)&&!this[_0x4e14[251]][_0x4e14[1740]](_0xa132x4);){_0xa132x4=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x4)};return !this[_0x4e14[251]][_0x4e14[1740]](_0xa132x4)&&0>mxUtils[_0x4e14[2]](_0xa132x2,_0xa132x4)?_0xa132x4:null;};mxGraph[_0x4e14[202]][_0x4e14[902]]=function(){var _0xa132x2=this[_0x4e14[2355]];null==_0xa132x2&&(_0xa132x2=this[_0x4e14[2534]](),null==_0xa132x2&&(_0xa132x2=this[_0x4e14[251]][_0x4e14[501]](),_0xa132x2=this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,0)));return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2687]]=function(_0xa132x2){this[_0x4e14[2355]]=_0xa132x2};mxGraph[_0x4e14[202]][_0x4e14[2179]]=function(_0xa132x2){for(;null!=_0xa132x2&&!this[_0x4e14[1730]](_0xa132x2);){_0xa132x2=this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2)};return _0xa132x2;};mxGraph[_0x4e14[202]][_0x4e14[2461]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=_0xa132x4||this[_0x4e14[902]]();if(null!=_0xa132x4){for(var _0xa132x5=this[_0x4e14[251]][_0x4e14[262]](_0xa132x4),_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){var _0xa132xa=this[_0x4e14[251]][_0x4e14[263]](_0xa132x4,_0xa132x9),_0xa132x12=this[_0x4e14[2461]](_0xa132x2,_0xa132x3,_0xa132xa);if(null!=_0xa132x12){return _0xa132x12};if(this[_0x4e14[1730]](_0xa132xa)&&(_0xa132x12=this[_0x4e14[441]][_0x4e14[248]](_0xa132xa),this[_0x4e14[1825]](_0xa132x12,_0xa132x2,_0xa132x3))){return _0xa132xa};}};return null;};mxGraph[_0x4e14[202]][_0x4e14[999]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x5=null!=_0xa132x5?_0xa132x5:!0;_0xa132x9=null!=_0xa132x9?_0xa132x9:!0;_0xa132x4=null!=_0xa132x4?_0xa132x4:this[_0x4e14[902]]();if(null!=_0xa132x4){for(var _0xa132xa=this[_0x4e14[251]][_0x4e14[262]](_0xa132x4)-1;0<=_0xa132xa;_0xa132xa--){var _0xa132x12=this[_0x4e14[251]][_0x4e14[263]](_0xa132x4,_0xa132xa),_0xa132x13=this[_0x4e14[999]](_0xa132x2,_0xa132x3,_0xa132x12,_0xa132x5,_0xa132x9);if(null!=_0xa132x13){return _0xa132x13};if(this[_0x4e14[1714]](_0xa132x12)&&(_0xa132x9&&this[_0x4e14[251]][_0x4e14[250]](_0xa132x12)||_0xa132x5&&this[_0x4e14[251]][_0x4e14[1193]](_0xa132x12))){if(_0xa132x13=this[_0x4e14[441]][_0x4e14[248]](_0xa132x12),this[_0x4e14[1825]](_0xa132x13,_0xa132x2,_0xa132x3)){return _0xa132x12}};}};return null;};mxGraph[_0x4e14[202]][_0x4e14[1825]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(null!=_0xa132x2){var _0xa132x5=_0xa132x2[_0x4e14[439]];if(null!=_0xa132x5){_0xa132x2=this[_0x4e14[2353]]*this[_0x4e14[2353]];for(var _0xa132x9=_0xa132x5[0],_0xa132xa=1;_0xa132xa<_0xa132x5[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x5[_0xa132xa];if(mxUtils[_0x4e14[440]](_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]],_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]],_0xa132x3,_0xa132x4)<=_0xa132x2){return !0};_0xa132x9=_0xa132x12;};}else {if(_0xa132x9=mxUtils[_0x4e14[431]](mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ROTATION)||0),0!=_0xa132x9&&(_0xa132x5=Math[_0x4e14[426]](-_0xa132x9),_0xa132x9=Math[_0x4e14[427]](-_0xa132x9),_0xa132xa= new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]()),_0xa132x9=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x3,_0xa132x4),_0xa132x5,_0xa132x9,_0xa132xa),_0xa132x3=_0xa132x9[_0x4e14[235]],_0xa132x4=_0xa132x9[_0x4e14[236]]),mxUtils[_0x4e14[442]](_0xa132x2,_0xa132x3,_0xa132x4)){return !0}};};return !1;};mxGraph[_0x4e14[202]][_0x4e14[2688]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);_0xa132x2=this[_0x4e14[1731]](_0xa132x2);if(null!=_0xa132x5){var _0xa132x9=this[_0x4e14[249]]()[_0x4e14[518]]();_0xa132x3-=_0xa132x5[_0x4e14[235]];_0xa132x4-=_0xa132x5[_0x4e14[236]];if(0<_0xa132x2[_0x4e14[117]]&&0<_0xa132x3&&_0xa132x3>_0xa132x2[_0x4e14[117]]*_0xa132x9||0<_0xa132x2[_0x4e14[119]]&&0<_0xa132x4&&_0xa132x4>_0xa132x2[_0x4e14[119]]*_0xa132x9){return !0};};return !1;};mxGraph[_0x4e14[202]][_0x4e14[1728]]=function(_0xa132x2){return this[_0x4e14[1955]](_0xa132x2,!0,!1)};mxGraph[_0x4e14[202]][_0x4e14[1956]]=function(_0xa132x2){return this[_0x4e14[1955]](_0xa132x2,!1,!0)};mxGraph[_0x4e14[202]][_0x4e14[1955]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=null!=_0xa132x2?_0xa132x2:this[_0x4e14[902]]();_0xa132x2=this[_0x4e14[251]][_0x4e14[1955]](_0xa132x2,null!=_0xa132x3?_0xa132x3:!1,null!=_0xa132x4?_0xa132x4:!1);_0xa132x3=[];for(_0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){this[_0x4e14[1714]](_0xa132x2[_0xa132x4])&&_0xa132x3[_0x4e14[207]](_0xa132x2[_0xa132x4])};return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[1756]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[264]](_0xa132x2,_0xa132x3,!0,!0,!1)};mxGraph[_0x4e14[202]][_0x4e14[1867]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[264]](_0xa132x2,_0xa132x3,!0,!1,!1)};mxGraph[_0x4e14[202]][_0x4e14[1963]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[264]](_0xa132x2,_0xa132x3,!1,!0,!1)};mxGraph[_0x4e14[202]][_0x4e14[264]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;_0xa132x5=null!=_0xa132x5?_0xa132x5:!0;_0xa132x9=null!=_0xa132x9?_0xa132x9:!0;_0xa132xa=null!=_0xa132xa?_0xa132xa:!1;for(var _0xa132x12=[],_0xa132x13=this[_0x4e14[1742]](_0xa132x2),_0xa132x14=this[_0x4e14[251]][_0x4e14[262]](_0xa132x2),_0xa132x15=0;_0xa132x15<_0xa132x14;_0xa132x15++){var _0xa132x16=this[_0x4e14[251]][_0x4e14[263]](_0xa132x2,_0xa132x15);if(_0xa132x13||!this[_0x4e14[1714]](_0xa132x16)){_0xa132x12=_0xa132x12[_0x4e14[1919]](this[_0x4e14[251]][_0x4e14[264]](_0xa132x16,_0xa132x4,_0xa132x5))};};_0xa132x12=_0xa132x12[_0x4e14[1919]](this[_0x4e14[251]][_0x4e14[264]](_0xa132x2,_0xa132x4,_0xa132x5));_0xa132x13=[];for(_0xa132x15=0;_0xa132x15<_0xa132x12[_0x4e14[67]];_0xa132x15++){_0xa132x16=this[_0x4e14[441]][_0x4e14[248]](_0xa132x12[_0xa132x15]),_0xa132x14=null!=_0xa132x16?_0xa132x16[_0x4e14[1710]](!0):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x12[_0xa132x15],!0),_0xa132x16=null!=_0xa132x16?_0xa132x16[_0x4e14[1710]](!1):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x12[_0xa132x15],!1),(_0xa132x9&&_0xa132x14==_0xa132x16||_0xa132x14!=_0xa132x16&&(_0xa132x4&&_0xa132x16==_0xa132x2&&(null==_0xa132x3||this[_0x4e14[1920]](_0xa132x14,_0xa132x3,_0xa132xa))||_0xa132x5&&_0xa132x14==_0xa132x2&&(null==_0xa132x3||this[_0x4e14[1920]](_0xa132x16,_0xa132x3,_0xa132xa))))&&_0xa132x13[_0x4e14[207]](_0xa132x12[_0xa132x15])};return _0xa132x13;};mxGraph[_0x4e14[202]][_0x4e14[1920]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x4?this[_0x4e14[251]][_0x4e14[1720]](_0xa132x3,_0xa132x2):this[_0x4e14[251]][_0x4e14[1197]](_0xa132x2)==_0xa132x3};mxGraph[_0x4e14[202]][_0x4e14[1808]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x4=null!=_0xa132x4?_0xa132x4:!0;_0xa132x5=null!=_0xa132x5?_0xa132x5:!0;var _0xa132x9=[],_0xa132xa={};if(null!=_0xa132x2){for(var _0xa132x12=0;_0xa132x12<_0xa132x2[_0x4e14[67]];_0xa132x12++){var _0xa132x13=this[_0x4e14[441]][_0x4e14[248]](_0xa132x2[_0xa132x12]),_0xa132x14=null!=_0xa132x13?_0xa132x13[_0x4e14[1710]](!0):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x2[_0xa132x12],!0),_0xa132x13=null!=_0xa132x13?_0xa132x13[_0x4e14[1710]](!1):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x2[_0xa132x12],!1);if(_0xa132x14==_0xa132x3&&null!=_0xa132x13&&_0xa132x13!=_0xa132x3&&_0xa132x5){var _0xa132x15=mxCellPath[_0x4e14[385]](_0xa132x13);null==_0xa132xa[_0xa132x15]&&(_0xa132xa[_0xa132x15]=_0xa132x13,_0xa132x9[_0x4e14[207]](_0xa132x13));}else {_0xa132x13==_0xa132x3&&(null!=_0xa132x14&&_0xa132x14!=_0xa132x3&&_0xa132x4)&&(_0xa132x15=mxCellPath[_0x4e14[385]](_0xa132x14),null==_0xa132xa[_0xa132x15]&&(_0xa132xa[_0xa132x15]=_0xa132x14,_0xa132x9[_0x4e14[207]](_0xa132x14)))};}};return _0xa132x9;};mxGraph[_0x4e14[202]][_0x4e14[1781]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null!=_0xa132x4?_0xa132x4:!1;for(var _0xa132x5=this[_0x4e14[264]](_0xa132x2),_0xa132x9=[],_0xa132xa=0;_0xa132xa<_0xa132x5[_0x4e14[67]];_0xa132xa++){var _0xa132x12=this[_0x4e14[441]][_0x4e14[248]](_0xa132x5[_0xa132xa]),_0xa132x13=null!=_0xa132x12?_0xa132x12[_0x4e14[1710]](!0):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x5[_0xa132xa],!0),_0xa132x12=null!=_0xa132x12?_0xa132x12[_0x4e14[1710]](!1):this[_0x4e14[441]][_0x4e14[1710]](_0xa132x5[_0xa132xa],!1);(_0xa132x13==_0xa132x2&&_0xa132x12==_0xa132x3||!_0xa132x4&&_0xa132x13==_0xa132x3&&_0xa132x12==_0xa132x2)&&_0xa132x9[_0x4e14[207]](_0xa132x5[_0xa132xa]);};return _0xa132x9;};mxGraph[_0x4e14[202]][_0x4e14[2689]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=mxUtils[_0x4e14[2196]](this[_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x2),mxEvent[_0x4e14[733]](_0xa132x2)),_0xa132x5=this[_0x4e14[441]][_0x4e14[255]],_0xa132x9=this[_0x4e14[441]][_0x4e14[513]],_0xa132xa=!1!=_0xa132x3?this[_0x4e14[1020]]/2:0;_0xa132x4[_0x4e14[235]]=this[_0x4e14[1021]](_0xa132x4[_0x4e14[235]]/_0xa132x5-_0xa132x9[_0x4e14[235]]-_0xa132xa);_0xa132x4[_0x4e14[236]]=this[_0x4e14[1021]](_0xa132x4[_0x4e14[236]]/_0xa132x5-_0xa132x9[_0x4e14[236]]-_0xa132xa);return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[2690]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132xa=null!=_0xa132xa?_0xa132xa:[];if(0<_0xa132x4||0<_0xa132x5){var _0xa132x12=_0xa132x2+_0xa132x4,_0xa132x13=_0xa132x3+_0xa132x5;_0xa132x9=_0xa132x9||this[_0x4e14[902]]();if(null!=_0xa132x9){for(var _0xa132x14=this[_0x4e14[251]][_0x4e14[262]](_0xa132x9),_0xa132x15=0;_0xa132x15<_0xa132x14;_0xa132x15++){var _0xa132x16=this[_0x4e14[251]][_0x4e14[263]](_0xa132x9,_0xa132x15),_0xa132x17=this[_0x4e14[441]][_0x4e14[248]](_0xa132x16);if(this[_0x4e14[1714]](_0xa132x16)&&null!=_0xa132x17){var _0xa132x18=_0xa132x17,_0xa132x17=mxUtils[_0x4e14[433]](_0xa132x17[_0x4e14[124]],mxConstants.STYLE_ROTATION)||0;0!=_0xa132x17&&(_0xa132x18=mxUtils[_0x4e14[1613]](_0xa132x18,_0xa132x17));_0xa132x18[_0x4e14[235]]>=_0xa132x2&&_0xa132x18[_0x4e14[236]]+_0xa132x18[_0x4e14[119]]<=_0xa132x13&&_0xa132x18[_0x4e14[236]]>=_0xa132x3&&_0xa132x18[_0x4e14[235]]+_0xa132x18[_0x4e14[117]]<=_0xa132x12?_0xa132xa[_0x4e14[207]](_0xa132x16):this[_0x4e14[2690]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x16,_0xa132xa);};}};};return _0xa132xa;};mxGraph[_0x4e14[202]][_0x4e14[2691]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=[];if(_0xa132x5||_0xa132x9){if(null==_0xa132x4&&(_0xa132x4=this[_0x4e14[902]]()),null!=_0xa132x4){for(var _0xa132x12=this[_0x4e14[251]][_0x4e14[262]](_0xa132x4),_0xa132x13=0;_0xa132x13<_0xa132x12;_0xa132x13++){var _0xa132x14=this[_0x4e14[251]][_0x4e14[263]](_0xa132x4,_0xa132x13),_0xa132x15=this[_0x4e14[441]][_0x4e14[248]](_0xa132x14);this[_0x4e14[1714]](_0xa132x14)&&null!=_0xa132x15&&(!_0xa132x5||_0xa132x15[_0x4e14[235]]>=_0xa132x2)&&(!_0xa132x9||_0xa132x15[_0x4e14[236]]>=_0xa132x3)&&_0xa132xa[_0x4e14[207]](_0xa132x14);}}};return _0xa132xa;};mxGraph[_0x4e14[202]][_0x4e14[1757]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=null!=_0xa132x3?_0xa132x3:!1;_0xa132x4=null!=_0xa132x4?_0xa132x4:!1;var _0xa132x5=[];if(null!=_0xa132x2){for(var _0xa132x9=this[_0x4e14[502]](),_0xa132xa=_0xa132x9[_0x4e14[262]](_0xa132x2),_0xa132x12=null,_0xa132x13=0,_0xa132x14=0;_0xa132x14<_0xa132xa;_0xa132x14++){var _0xa132x15=_0xa132x9[_0x4e14[263]](_0xa132x2,_0xa132x14);if(this[_0x4e14[251]][_0x4e14[1193]](_0xa132x15)&&this[_0x4e14[1714]](_0xa132x15)){for(var _0xa132x16=this[_0x4e14[1756]](_0xa132x15,_0xa132x3?_0xa132x2:null),_0xa132x17=0,_0xa132x18=0,_0xa132x19=0;_0xa132x19<_0xa132x16[_0x4e14[67]];_0xa132x19++){this[_0x4e14[441]][_0x4e14[1710]](_0xa132x16[_0xa132x19],!0)==_0xa132x15?_0xa132x17++:_0xa132x18++};(_0xa132x4&&0==_0xa132x17&&0<_0xa132x18||!_0xa132x4&&0==_0xa132x18&&0<_0xa132x17)&&_0xa132x5[_0x4e14[207]](_0xa132x15);_0xa132x16=_0xa132x4?_0xa132x18-_0xa132x17:_0xa132x17-_0xa132x18;_0xa132x16>_0xa132x13&&(_0xa132x13=_0xa132x16,_0xa132x12=_0xa132x15);};};0==_0xa132x5[_0x4e14[67]]&&null!=_0xa132x12&&_0xa132x5[_0x4e14[207]](_0xa132x12);};return _0xa132x5;};mxGraph[_0x4e14[202]][_0x4e14[1706]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=_0xa132x4&&null!=_0xa132x2){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;_0xa132x9=_0xa132x9||[];var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2);if(null==_0xa132x9[_0xa132xa]&&(_0xa132x9[_0xa132xa]=_0xa132x2,_0xa132x5=_0xa132x4(_0xa132x2,_0xa132x5),null==_0xa132x5||_0xa132x5)){if(_0xa132x5=this[_0x4e14[251]][_0x4e14[1707]](_0xa132x2),0<_0xa132x5){for(_0xa132xa=0;_0xa132xa<_0xa132x5;_0xa132xa++){var _0xa132x12=this[_0x4e14[251]][_0x4e14[1708]](_0xa132x2,_0xa132xa),_0xa132x13=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x12,!0)==_0xa132x2;if(!_0xa132x3||_0xa132x13){_0xa132x13=this[_0x4e14[251]][_0x4e14[1709]](_0xa132x12,!_0xa132x13),this[_0x4e14[1706]](_0xa132x13,_0xa132x3,_0xa132x4,_0xa132x12,_0xa132x9)};}}};}};mxGraph[_0x4e14[202]][_0x4e14[2692]]=function(_0xa132x2){return this[_0x4e14[2435]]()[_0x4e14[2097]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2693]]=function(){return this[_0x4e14[2435]]()[_0x4e14[1107]]()};mxGraph[_0x4e14[202]][_0x4e14[2440]]=function(){return this[_0x4e14[2435]]()[_0x4e14[200]]()};mxGraph[_0x4e14[202]][_0x4e14[2694]]=function(){return this[_0x4e14[2435]]()[_0x4e14[895]][_0x4e14[67]]};mxGraph[_0x4e14[202]][_0x4e14[2452]]=function(){return this[_0x4e14[2435]]()[_0x4e14[895]][0]};mxGraph[_0x4e14[202]][_0x4e14[897]]=function(){return this[_0x4e14[2435]]()[_0x4e14[895]][_0x4e14[1853]]()};mxGraph[_0x4e14[202]][_0x4e14[2450]]=function(_0xa132x2){this[_0x4e14[2435]]()[_0x4e14[2099]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[904]]=function(_0xa132x2){this[_0x4e14[2435]]()[_0x4e14[2100]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2695]]=function(_0xa132x2){this[_0x4e14[2435]]()[_0x4e14[2103]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2696]]=function(_0xa132x2){this[_0x4e14[2435]]()[_0x4e14[832]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2697]]=function(_0xa132x2){this[_0x4e14[2435]]()[_0x4e14[2104]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2439]]=function(_0xa132x2){this[_0x4e14[2435]]()[_0x4e14[842]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2698]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[2690]](_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],_0xa132x2[_0x4e14[117]],_0xa132x2[_0x4e14[119]]);this[_0x4e14[2699]](_0xa132x4,_0xa132x3);return _0xa132x4;};mxGraph[_0x4e14[202]][_0x4e14[2700]]=function(){this[_0x4e14[2701]](!0)};mxGraph[_0x4e14[202]][_0x4e14[2702]]=function(){this[_0x4e14[2701]]()};mxGraph[_0x4e14[202]][_0x4e14[2703]]=function(){this[_0x4e14[2701]](!1,!0)};mxGraph[_0x4e14[202]][_0x4e14[2704]]=function(){this[_0x4e14[2701]](!1,!1,!0)};mxGraph[_0x4e14[202]][_0x4e14[2701]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[2105]],_0xa132x9=0<_0xa132x5[_0x4e14[895]][_0x4e14[67]]?_0xa132x5[_0x4e14[895]][0]:null;1<_0xa132x5[_0x4e14[895]][_0x4e14[67]]&&_0xa132x5[_0x4e14[200]]();var _0xa132x5=null!=_0xa132x9?this[_0x4e14[251]][_0x4e14[1197]](_0xa132x9):this[_0x4e14[902]](),_0xa132xa=this[_0x4e14[251]][_0x4e14[262]](_0xa132x5);null==_0xa132x9&&0<_0xa132xa?(_0xa132x2=this[_0x4e14[251]][_0x4e14[263]](_0xa132x5,0),this[_0x4e14[2450]](_0xa132x2)):(null==_0xa132x9||_0xa132x3)&&null!=this[_0x4e14[441]][_0x4e14[248]](_0xa132x5)&&null!=this[_0x4e14[251]][_0x4e14[1721]](_0xa132x5)?this[_0x4e14[2534]]()!=_0xa132x5&&this[_0x4e14[2450]](_0xa132x5):null!=_0xa132x9&&_0xa132x4?0<this[_0x4e14[251]][_0x4e14[262]](_0xa132x9)&&(_0xa132x2=this[_0x4e14[251]][_0x4e14[263]](_0xa132x9,0),this[_0x4e14[2450]](_0xa132x2)):0<_0xa132xa&&(_0xa132x3=_0xa132x5[_0x4e14[1738]](_0xa132x9),_0xa132x2?(_0xa132x3++,_0xa132x2=this[_0x4e14[251]][_0x4e14[263]](_0xa132x5,_0xa132x3%_0xa132xa)):(_0xa132x3--,_0xa132x2=this[_0x4e14[251]][_0x4e14[263]](_0xa132x5,0>_0xa132x3?_0xa132xa-1:_0xa132x3)),this[_0x4e14[2450]](_0xa132x2));};mxGraph[_0x4e14[202]][_0x4e14[2705]]=function(_0xa132x2){_0xa132x2=_0xa132x2||this[_0x4e14[902]]();_0xa132x2=this[_0x4e14[251]][_0x4e14[1953]](_0xa132x2);null!=_0xa132x2&&this[_0x4e14[904]](_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[2706]]=function(_0xa132x2){this[_0x4e14[2707]](!0,!1,_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2708]]=function(_0xa132x2){this[_0x4e14[2707]](!1,!0,_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2707]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=_0xa132x4||this[_0x4e14[902]]();var _0xa132x5=mxUtils[_0x4e14[885]](this,function(_0xa132x4){return null!=this[_0x4e14[441]][_0x4e14[248]](_0xa132x4)&&0==this[_0x4e14[251]][_0x4e14[262]](_0xa132x4)&&(this[_0x4e14[251]][_0x4e14[1193]](_0xa132x4)&&_0xa132x2||this[_0x4e14[251]][_0x4e14[250]](_0xa132x4)&&_0xa132x3)});_0xa132x4=this[_0x4e14[251]][_0x4e14[1921]](_0xa132x5,_0xa132x4);this[_0x4e14[904]](_0xa132x4);};mxGraph[_0x4e14[202]][_0x4e14[2459]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[2692]](_0xa132x2);this[_0x4e14[2462]](_0xa132x3)?_0xa132x4?this[_0x4e14[2697]](_0xa132x2):this[_0x4e14[2695]](_0xa132x2):(!_0xa132x4||1!=this[_0x4e14[2694]]())&&this[_0x4e14[2450]](_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[2699]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[2462]](_0xa132x3)?this[_0x4e14[2696]](_0xa132x2):this[_0x4e14[904]](_0xa132x2)};mxGraph[_0x4e14[202]][_0x4e14[2709]]=function(_0xa132x2){var _0xa132x3=null;null!=_0xa132x2&&(this[_0x4e14[251]][_0x4e14[250]](_0xa132x2[_0x4e14[246]])?(_0xa132x3=this[_0x4e14[441]][_0x4e14[2291]](_0xa132x2),_0xa132x3=this[_0x4e14[2573]](_0xa132x2)||_0xa132x3==mxEdgeStyle[_0x4e14[2568]]||_0xa132x3==mxEdgeStyle[_0x4e14[2569]]||_0xa132x3==mxEdgeStyle[_0x4e14[2570]]? new mxElbowEdgeHandler(_0xa132x2):_0xa132x3==mxEdgeStyle[_0x4e14[2567]]||_0xa132x3==mxEdgeStyle[_0x4e14[2572]]? new mxEdgeSegmentHandler(_0xa132x2): new mxEdgeHandler(_0xa132x2)):_0xa132x3= new mxVertexHandler(_0xa132x2));return _0xa132x3;};mxGraph[_0x4e14[202]][_0x4e14[1133]]=function(_0xa132x2){null==this[_0x4e14[2329]]&&(this[_0x4e14[2329]]=[]);this[_0x4e14[2329]][_0x4e14[207]](_0xa132x2);};mxGraph[_0x4e14[202]][_0x4e14[1148]]=function(_0xa132x2){if(null!=this[_0x4e14[2329]]){for(var _0xa132x3=0;_0xa132x3<this[_0x4e14[2329]][_0x4e14[67]];_0xa132x3++){if(this[_0x4e14[2329]][_0xa132x3]==_0xa132x2){this[_0x4e14[2329]][_0x4e14[300]](_0xa132x3,1);break;}}}};mxGraph[_0x4e14[202]][_0x4e14[2710]]=function(_0xa132x2){if(null==_0xa132x2[_0x4e14[725]]||null==_0xa132x2[_0x4e14[726]]){var _0xa132x3=mxUtils[_0x4e14[2196]](this[_0x4e14[526]],_0xa132x2[_0x4e14[730]](),_0xa132x2[_0x4e14[732]]());_0xa132x2[_0x4e14[725]]=_0xa132x3[_0x4e14[235]]-this[_0x4e14[1136]];_0xa132x2[_0x4e14[726]]=_0xa132x3[_0x4e14[236]]-this[_0x4e14[1137]];}};mxGraph[_0x4e14[202]][_0x4e14[758]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null==_0xa132x4&&(_0xa132x4=this);this[_0x4e14[2710]](_0xa132x3);_0xa132x2==mxEvent[_0x4e14[2711]]&&(this[_0x4e14[1009]]= !0);if(mxClient[_0x4e14[754]]&&this[_0x4e14[2349]]&&_0xa132x2==mxEvent[_0x4e14[2711]]){var _0xa132x5=( new Date)[_0x4e14[178]]();_0xa132x5-this[_0x4e14[2213]]<this[_0x4e14[2350]]&&Math[_0x4e14[425]](this[_0x4e14[2712]]-_0xa132x3[_0x4e14[730]]())<this[_0x4e14[2351]]&&Math[_0x4e14[425]](this[_0x4e14[2352]]-_0xa132x3[_0x4e14[732]]())<this[_0x4e14[2351]]?(this[_0x4e14[2213]]=0,this[_0x4e14[761]](_0xa132x3[_0x4e14[727]](),_0xa132x3[_0x4e14[736]]()),_0xa132x3[_0x4e14[727]]()[_0x4e14[786]]= !0):(this[_0x4e14[2712]]=_0xa132x3[_0x4e14[730]](),this[_0x4e14[2352]]=_0xa132x3[_0x4e14[732]](),this[_0x4e14[2213]]=_0xa132x5);};_0xa132x5=2!=_0xa132x3[_0x4e14[727]]()[_0x4e14[764]];if(mxClient[_0x4e14[80]]&&_0x4e14[462]==document[_0x4e14[135]]){if(null!=this[_0x4e14[2713]]&&Math[_0x4e14[425]](this[_0x4e14[2713]]-_0xa132x3[_0x4e14[730]]())>this[_0x4e14[2351]]||null!=this[_0x4e14[2714]]&&Math[_0x4e14[425]](this[_0x4e14[2714]]-_0xa132x3[_0x4e14[732]]())>this[_0x4e14[2351]]){_0xa132x5= !0};_0xa132x2==mxEvent[_0x4e14[2715]]&&(this[_0x4e14[2713]]=_0xa132x3[_0x4e14[730]](),this[_0x4e14[2714]]=_0xa132x3[_0x4e14[732]]());};if((_0xa132x2!=mxEvent[_0x4e14[2715]]||this[_0x4e14[1009]])&&_0xa132x5){if(_0xa132x2==mxEvent[_0x4e14[2715]]&&(this[_0x4e14[1009]]= !1),!this[_0x4e14[2203]]()&&(mxClient[_0x4e14[71]]||mxClient[_0x4e14[75]]||mxClient[_0x4e14[76]]||mxClient[_0x4e14[80]]&&mxClient[_0x4e14[48]]||_0xa132x3[_0x4e14[727]]()[_0x4e14[772]]!=this[_0x4e14[526]])){_0xa132x2==mxEvent[_0x4e14[2716]]&&(this[_0x4e14[1009]]&&this[_0x4e14[1012]])&&this[_0x4e14[1014]](_0xa132x3[_0x4e14[734]](),_0xa132x3[_0x4e14[735]](),this[_0x4e14[1013]]);if(null!=this[_0x4e14[2329]]){_0xa132x4=[_0xa132x4,_0xa132x3];_0xa132x3[_0x4e14[727]]()[_0x4e14[739]]= !0;for(_0xa132x5=0;_0xa132x5<this[_0x4e14[2329]][_0x4e14[67]];_0xa132x5++){var _0xa132x9=this[_0x4e14[2329]][_0xa132x5];_0xa132x2==mxEvent[_0x4e14[2711]]?_0xa132x9[_0x4e14[787]][_0x4e14[183]](_0xa132x9,_0xa132x4):_0xa132x2==mxEvent[_0x4e14[2716]]?_0xa132x9[_0x4e14[788]][_0x4e14[183]](_0xa132x9,_0xa132x4):_0xa132x2==mxEvent[_0x4e14[2715]]&&_0xa132x9[_0x4e14[789]][_0x4e14[183]](_0xa132x9,_0xa132x4);};};_0xa132x2==mxEvent[_0x4e14[2715]]&&this[_0x4e14[173]](_0xa132x3);}}else {_0xa132x2==mxEvent[_0x4e14[2715]]&&(this[_0x4e14[1009]]= !1)};};mxGraph[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[2717]]||(this[_0x4e14[2717]]= !0,null!=this[_0x4e14[2276]]&&this[_0x4e14[2276]][_0x4e14[515]](),null!=this[_0x4e14[2432]]&&this[_0x4e14[2432]][_0x4e14[515]](),null!=this[_0x4e14[2316]]&&this[_0x4e14[2316]][_0x4e14[515]](),null!=this[_0x4e14[2433]]&&this[_0x4e14[2433]][_0x4e14[515]](),null!=this[_0x4e14[1011]]&&this[_0x4e14[1011]][_0x4e14[515]](),null!=this[_0x4e14[2347]]&&this[_0x4e14[2347]][_0x4e14[515]](),null!=this[_0x4e14[441]]&&this[_0x4e14[441]][_0x4e14[515]](),null!=this[_0x4e14[251]]&&null!=this[_0x4e14[2343]]&&(this[_0x4e14[251]][_0x4e14[745]](this[_0x4e14[2343]]),this[_0x4e14[2343]]=null),this[_0x4e14[526]]=null)};function mxCellOverlay(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){this[_0x4e14[618]]=_0xa132x2;this[_0x4e14[2718]]=_0xa132x3;this[_0x4e14[611]]=null!=_0xa132x4?_0xa132x4:this[_0x4e14[611]];this[_0x4e14[123]]=null!=_0xa132x5?_0xa132x5:this[_0x4e14[123]];this[_0x4e14[1368]]=null!=_0xa132x9?_0xa132x9: new mxPoint;this[_0x4e14[270]]=null!=_0xa132xa?_0xa132xa:_0x4e14[2719];}mxCellOverlay[_0x4e14[202]]= new mxEventSource;mxCellOverlay[_0x4e14[202]][_0x4e14[196]]=mxCellOverlay;mxCellOverlay[_0x4e14[202]][_0x4e14[618]]=null;mxCellOverlay[_0x4e14[202]][_0x4e14[2718]]=null;mxCellOverlay[_0x4e14[202]][_0x4e14[611]]=mxConstants[_0x4e14[480]];mxCellOverlay[_0x4e14[202]][_0x4e14[123]]=mxConstants[_0x4e14[482]];mxCellOverlay[_0x4e14[202]][_0x4e14[1368]]=null;mxCellOverlay[_0x4e14[202]][_0x4e14[270]]=null;mxCellOverlay[_0x4e14[202]][_0x4e14[2354]]=0.5;mxCellOverlay[_0x4e14[202]][_0x4e14[1799]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[441]][_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x2[_0x4e14[246]]),_0xa132x4=_0xa132x2[_0x4e14[441]][_0x4e14[255]],_0xa132x5=null,_0xa132x9=this[_0x4e14[618]][_0x4e14[117]],_0xa132xa=this[_0x4e14[618]][_0x4e14[119]];_0xa132x3?(_0xa132x3=_0xa132x2[_0x4e14[439]],1==_0xa132x3[_0x4e14[67]]%2?_0xa132x5=_0xa132x3[Math[_0x4e14[519]](_0xa132x3[_0x4e14[67]]/2)]:(_0xa132x5=_0xa132x3[_0x4e14[67]]/2,_0xa132x2=_0xa132x3[_0xa132x5-1],_0xa132x3=_0xa132x3[_0xa132x5],_0xa132x5= new mxPoint(_0xa132x2[_0x4e14[235]]+(_0xa132x3[_0x4e14[235]]-_0xa132x2[_0x4e14[235]])/2,_0xa132x2[_0x4e14[236]]+(_0xa132x3[_0x4e14[236]]-_0xa132x2[_0x4e14[236]])/2))):(_0xa132x5= new mxPoint,_0xa132x5[_0x4e14[235]]=this[_0x4e14[611]]==mxConstants[_0x4e14[2132]]?_0xa132x2[_0x4e14[235]]:this[_0x4e14[611]]==mxConstants[_0x4e14[479]]?_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]/2:_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]],_0xa132x5[_0x4e14[236]]=this[_0x4e14[123]]==mxConstants[_0x4e14[1687]]?_0xa132x2[_0x4e14[236]]:this[_0x4e14[123]]==mxConstants[_0x4e14[481]]?_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]/2:_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]);return  new mxRectangle(Math[_0x4e14[488]](_0xa132x5[_0x4e14[235]]-(_0xa132x9*this[_0x4e14[2354]]-this[_0x4e14[1368]][_0x4e14[235]])*_0xa132x4),Math[_0x4e14[488]](_0xa132x5[_0x4e14[236]]-(_0xa132xa*this[_0x4e14[2354]]-this[_0x4e14[1368]][_0x4e14[236]])*_0xa132x4),_0xa132x9*_0xa132x4,_0xa132xa*_0xa132x4);};mxCellOverlay[_0x4e14[202]][_0x4e14[2591]]=function(){return this[_0x4e14[2718]]};function mxOutline(_0xa132x2,_0xa132x3){this[_0x4e14[1097]]=_0xa132x2;null!=_0xa132x3&&this[_0x4e14[176]](_0xa132x3);}mxOutline[_0x4e14[202]][_0x4e14[1097]]=null;mxOutline[_0x4e14[202]][_0x4e14[2136]]=null;mxOutline[_0x4e14[202]][_0x4e14[2720]]=mxConstants[_0x4e14[2333]];mxOutline[_0x4e14[202]][_0x4e14[984]]= !0;mxOutline[_0x4e14[202]][_0x4e14[2721]]= !0;mxOutline[_0x4e14[202]][_0x4e14[467]]=10;mxOutline[_0x4e14[202]][_0x4e14[2722]]=8;mxOutline[_0x4e14[202]][_0x4e14[2723]]= !1;mxOutline[_0x4e14[202]][_0x4e14[2724]]=null;mxOutline[_0x4e14[202]][_0x4e14[1063]]= !1;mxOutline[_0x4e14[202]][_0x4e14[176]]=function(_0xa132x2){this[_0x4e14[2136]]= new mxGraph(_0xa132x2,this[_0x4e14[1097]][_0x4e14[502]](),this[_0x4e14[2720]],this[_0x4e14[1097]][_0x4e14[2434]]());this[_0x4e14[2136]][_0x4e14[2206]]= !1;this[_0x4e14[2136]][_0x4e14[1012]]= !1;var _0xa132x3=this[_0x4e14[2136]][_0x4e14[1177]];this[_0x4e14[2136]][_0x4e14[1177]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2){!this[_0x4e14[1063]]&&null!=this[_0x4e14[2136]]&&_0xa132x3[_0x4e14[183]](this[_0x4e14[2136]],arguments)});mxClient[_0x4e14[48]]&&(_0xa132x2=this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[2051]]()[_0x4e14[265]],_0xa132x2[_0x4e14[57]](_0x4e14[2725],_0x4e14[2726]),_0xa132x2[_0x4e14[57]](_0x4e14[2727],_0x4e14[2726]));this[_0x4e14[2136]][_0x4e14[2409]]= !1;this[_0x4e14[2136]][_0x4e14[995]](!1);this[_0x4e14[2728]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){!this[_0x4e14[1063]]&&!this[_0x4e14[1124]]&&this[_0x4e14[2729]]()});this[_0x4e14[1097]][_0x4e14[502]]()[_0x4e14[169]](mxEvent.CHANGE,this[_0x4e14[2728]]);this[_0x4e14[2136]][_0x4e14[1133]](this);_0xa132x2=this[_0x4e14[1097]][_0x4e14[249]]();_0xa132x2[_0x4e14[169]](mxEvent.SCALE,this[_0x4e14[2728]]);_0xa132x2[_0x4e14[169]](mxEvent.TRANSLATE,this[_0x4e14[2728]]);_0xa132x2[_0x4e14[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x4e14[2728]]);_0xa132x2[_0x4e14[169]](mxEvent.DOWN,this[_0x4e14[2728]]);_0xa132x2[_0x4e14[169]](mxEvent.UP,this[_0x4e14[2728]]);mxEvent[_0x4e14[169]](this[_0x4e14[1097]][_0x4e14[526]],_0x4e14[276],this[_0x4e14[2728]]);this[_0x4e14[2730]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2723]]&&this[_0x4e14[2728]][_0x4e14[183]](this,arguments)});this[_0x4e14[1097]][_0x4e14[169]](mxEvent.PAN,this[_0x4e14[2730]]);this[_0x4e14[2731]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2136]][_0x4e14[2341]](this[_0x4e14[1097]][_0x4e14[2434]]());this[_0x4e14[2136]][_0x4e14[802]]();});this[_0x4e14[1097]][_0x4e14[169]](mxEvent.REFRESH,this[_0x4e14[2731]]);this[_0x4e14[1562]]= new mxRectangle(0,0,0,0);this[_0x4e14[2732]]= new mxRectangleShape(this[_0x4e14[1562]],null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH);this[_0x4e14[2732]][_0x4e14[507]]=this[_0x4e14[2136]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]];this[_0x4e14[2732]][_0x4e14[176]](this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[1524]]());mxEvent[_0x4e14[2733]](this[_0x4e14[2732]][_0x4e14[252]],this[_0x4e14[2136]]);this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[1537]]=_0x4e14[110];this[_0x4e14[2734]]=this[_0x4e14[2735]]();this[_0x4e14[2734]][_0x4e14[176]](this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[1524]]());this[_0x4e14[984]]&&(this[_0x4e14[2734]][_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[356]);mxEvent[_0x4e14[169]](this[_0x4e14[2734]][_0x4e14[252]],mxClient[_0x4e14[754]]?_0x4e14[755]:_0x4e14[751],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2136]][_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x2))}));this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]]=this[_0x4e14[2721]]?_0x4e14[110]:_0x4e14[130];this[_0x4e14[2734]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]]=this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]];this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=_0x4e14[582];this[_0x4e14[2729]](!1);};mxOutline[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxOutline[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxOutline[_0x4e14[202]][_0x4e14[2736]]=function(_0xa132x2){this[_0x4e14[2734]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0xa132x2?_0x4e14[189]:_0x4e14[188]};mxOutline[_0x4e14[202]][_0x4e14[802]]=function(){this[_0x4e14[2729]](!0)};mxOutline[_0x4e14[202]][_0x4e14[2735]]=function(){var _0xa132x2=null!=this[_0x4e14[2724]]? new mxImageShape( new mxRectangle(0,0,this[_0x4e14[2724]][_0x4e14[117]],this[_0x4e14[2724]][_0x4e14[119]]),this[_0x4e14[2724]][_0x4e14[390]]): new mxRectangleShape( new mxRectangle(0,0,this[_0x4e14[2722]],this[_0x4e14[2722]]),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);_0xa132x2[_0x4e14[507]]=this[_0x4e14[2136]][_0x4e14[507]];return _0xa132x2;};mxOutline[_0x4e14[202]][_0x4e14[2737]]=function(){return  new mxRectangle(0,0,this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[1526]],this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[191]])};mxOutline[_0x4e14[202]][_0x4e14[2738]]=function(_0xa132x2){return null};mxOutline[_0x4e14[202]][_0x4e14[2729]]=function(_0xa132x2){if(null!=this[_0x4e14[1097]]){var _0xa132x3=this[_0x4e14[1097]][_0x4e14[441]][_0x4e14[255]],_0xa132x4=this[_0x4e14[1097]][_0x4e14[517]](),_0xa132x4= new mxRectangle(_0xa132x4[_0x4e14[235]]/_0xa132x3+this[_0x4e14[1097]][_0x4e14[1136]],_0xa132x4[_0x4e14[236]]/_0xa132x3+this[_0x4e14[1097]][_0x4e14[1137]],_0xa132x4[_0x4e14[117]]/_0xa132x3,_0xa132x4[_0x4e14[119]]/_0xa132x3),_0xa132x5= new mxRectangle(0,0,this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[159]]/_0xa132x3,this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[157]]/_0xa132x3),_0xa132x9=_0xa132x4[_0x4e14[238]]();_0xa132x9[_0x4e14[99]](_0xa132x5);var _0xa132xa=this[_0x4e14[2737]](),_0xa132x5=Math[_0x4e14[160]](_0xa132xa[_0x4e14[117]]/_0xa132x3,_0xa132x9[_0x4e14[117]]),_0xa132x3=Math[_0x4e14[160]](_0xa132xa[_0x4e14[119]]/_0xa132x3,_0xa132x9[_0x4e14[119]]),_0xa132x9=Math[_0x4e14[160]](0,this[_0x4e14[2136]][_0x4e14[526]][_0x4e14[159]]-this[_0x4e14[467]]),_0xa132xa=Math[_0x4e14[160]](0,this[_0x4e14[2136]][_0x4e14[526]][_0x4e14[157]]-this[_0x4e14[467]]),_0xa132x9=Math[_0x4e14[243]](_0xa132x9/_0xa132x5,_0xa132xa/_0xa132x3);if(0<_0xa132x9){this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[255]]!=_0xa132x9&&(this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[255]]=_0xa132x9,_0xa132x2= !0);_0xa132x5=this[_0x4e14[2136]][_0x4e14[249]]();_0xa132x5[_0x4e14[1741]]!=this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[1741]]&&_0xa132x5[_0x4e14[2257]](this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[1741]]);var _0xa132x3=this[_0x4e14[1097]][_0x4e14[441]][_0x4e14[513]],_0xa132xa=_0xa132x3[_0x4e14[235]]+this[_0x4e14[1097]][_0x4e14[1136]],_0xa132x12=_0xa132x3[_0x4e14[236]]+this[_0x4e14[1097]][_0x4e14[1137]],_0xa132x9=this[_0x4e14[2738]](_0xa132x9);null!=_0xa132x9&&(_0xa132xa+=_0xa132x9[_0x4e14[235]],_0xa132x12+=_0xa132x9[_0x4e14[236]]);0>_0xa132x4[_0x4e14[235]]&&(_0xa132xa-=_0xa132x4[_0x4e14[235]]);0>_0xa132x4[_0x4e14[236]]&&(_0xa132x12-=_0xa132x4[_0x4e14[236]]);if(_0xa132x5[_0x4e14[513]][_0x4e14[235]]!=_0xa132xa||_0xa132x5[_0x4e14[513]][_0x4e14[236]]!=_0xa132x12){_0xa132x5[_0x4e14[513]][_0x4e14[235]]=_0xa132xa,_0xa132x5[_0x4e14[513]][_0x4e14[236]]=_0xa132x12,_0xa132x2= !0};var _0xa132x4=_0xa132x5[_0x4e14[513]],_0xa132x9=this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[255]],_0xa132xa=_0xa132x9/_0xa132x5[_0x4e14[255]],_0xa132x12=1/_0xa132x5[_0x4e14[255]],_0xa132x13=this[_0x4e14[1097]][_0x4e14[526]];this[_0x4e14[1562]]= new mxRectangle((_0xa132x4[_0x4e14[235]]-_0xa132x3[_0x4e14[235]]-this[_0x4e14[1097]][_0x4e14[1136]])/_0xa132x12,(_0xa132x4[_0x4e14[236]]-_0xa132x3[_0x4e14[236]]-this[_0x4e14[1097]][_0x4e14[1137]])/_0xa132x12,_0xa132x13[_0x4e14[159]]/_0xa132xa,_0xa132x13[_0x4e14[157]]/_0xa132xa);this[_0x4e14[1562]][_0x4e14[235]]+=this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[360]]*_0xa132x5[_0x4e14[255]]/_0xa132x9;this[_0x4e14[1562]][_0x4e14[236]]+=this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[190]]*_0xa132x5[_0x4e14[255]]/_0xa132x9;_0xa132x4=this[_0x4e14[2732]][_0x4e14[1562]];if(_0xa132x4[_0x4e14[235]]!=this[_0x4e14[1562]][_0x4e14[235]]||_0xa132x4[_0x4e14[236]]!=this[_0x4e14[1562]][_0x4e14[236]]||_0xa132x4[_0x4e14[117]]!=this[_0x4e14[1562]][_0x4e14[117]]||_0xa132x4[_0x4e14[119]]!=this[_0x4e14[1562]][_0x4e14[119]]){this[_0x4e14[2732]][_0x4e14[1562]]=this[_0x4e14[1562]],this[_0x4e14[2732]][_0x4e14[258]]()};_0xa132x4=this[_0x4e14[2734]][_0x4e14[1562]];_0xa132x5= new mxRectangle(this[_0x4e14[1562]][_0x4e14[235]]+this[_0x4e14[1562]][_0x4e14[117]]-_0xa132x4[_0x4e14[117]]/2,this[_0x4e14[1562]][_0x4e14[236]]+this[_0x4e14[1562]][_0x4e14[119]]-_0xa132x4[_0x4e14[119]]/2,_0xa132x4[_0x4e14[117]],_0xa132x4[_0x4e14[119]]);if(_0xa132x4[_0x4e14[235]]!=_0xa132x5[_0x4e14[235]]||_0xa132x4[_0x4e14[236]]!=_0xa132x5[_0x4e14[236]]||_0xa132x4[_0x4e14[117]]!=_0xa132x5[_0x4e14[117]]||_0xa132x4[_0x4e14[119]]!=_0xa132x5[_0x4e14[119]]){this[_0x4e14[2734]][_0x4e14[1562]]=_0xa132x5,_0x4e14[188]!=this[_0x4e14[2734]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]&&this[_0x4e14[2734]][_0x4e14[258]]()};_0xa132x2&&this[_0x4e14[2136]][_0x4e14[441]][_0x4e14[2259]]();};}};mxOutline[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[984]]&&this[_0x4e14[2721]]&&(this[_0x4e14[499]]=_0xa132x3[_0x4e14[729]](this[_0x4e14[2734]]),this[_0x4e14[2739]]=_0xa132x3[_0x4e14[730]](),this[_0x4e14[2740]]=_0xa132x3[_0x4e14[732]](),this[_0x4e14[1124]]= !0,this[_0x4e14[1097]][_0x4e14[2365]]&&mxUtils[_0x4e14[1134]](this[_0x4e14[1097]][_0x4e14[526]])?(this[_0x4e14[2741]]=this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[360]],this[_0x4e14[2742]]=this[_0x4e14[1097]][_0x4e14[526]][_0x4e14[190]]):this[_0x4e14[2742]]=this[_0x4e14[2741]]=0);_0xa132x3[_0x4e14[722]]();};mxOutline[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1124]]){this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]]=this[_0x4e14[2721]]?_0x4e14[110]:_0x4e14[130];this[_0x4e14[2734]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]]=this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]];var _0xa132x4=_0xa132x3[_0x4e14[730]]()-this[_0x4e14[2739]],_0xa132x5=_0xa132x3[_0x4e14[732]]()-this[_0x4e14[2740]],_0xa132x9=null;if(this[_0x4e14[499]]){_0xa132x9=this[_0x4e14[1097]][_0x4e14[526]],_0xa132x5=_0xa132x4/(_0xa132x9[_0x4e14[159]]/_0xa132x9[_0x4e14[157]]),_0xa132x9= new mxRectangle(this[_0x4e14[1562]][_0x4e14[235]],this[_0x4e14[1562]][_0x4e14[236]],Math[_0x4e14[160]](1,this[_0x4e14[1562]][_0x4e14[117]]+_0xa132x4),Math[_0x4e14[160]](1,this[_0x4e14[1562]][_0x4e14[119]]+_0xa132x5)),this[_0x4e14[2732]][_0x4e14[1562]]=_0xa132x9,this[_0x4e14[2732]][_0x4e14[258]]()}else {var _0xa132xa=this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x9= new mxRectangle(this[_0x4e14[1562]][_0x4e14[235]]+_0xa132x4,this[_0x4e14[1562]][_0x4e14[236]]+_0xa132x5,this[_0x4e14[1562]][_0x4e14[117]],this[_0x4e14[1562]][_0x4e14[119]]);this[_0x4e14[2732]][_0x4e14[1562]]=_0xa132x9;this[_0x4e14[2732]][_0x4e14[258]]();_0xa132x4=_0xa132x4/_0xa132xa*this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[255]];_0xa132x5=_0xa132x5/_0xa132xa*this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[255]];this[_0x4e14[1097]][_0x4e14[1135]](-_0xa132x4-this[_0x4e14[2741]],-_0xa132x5-this[_0x4e14[2742]]);};_0xa132x4=this[_0x4e14[2734]][_0x4e14[1562]];this[_0x4e14[2734]][_0x4e14[1562]]= new mxRectangle(_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]]-_0xa132x4[_0x4e14[117]]/2,_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]]-_0xa132x4[_0x4e14[119]]/2,_0xa132x4[_0x4e14[117]],_0xa132x4[_0x4e14[119]]);_0x4e14[188]!=this[_0x4e14[2734]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]&&this[_0x4e14[2734]][_0x4e14[258]]();_0xa132x3[_0x4e14[722]]();}};mxOutline[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1124]]){var _0xa132x4=_0xa132x3[_0x4e14[730]]()-this[_0x4e14[2739]],_0xa132x5=_0xa132x3[_0x4e14[732]]()-this[_0x4e14[2740]];if(0<Math[_0x4e14[425]](_0xa132x4)||0<Math[_0x4e14[425]](_0xa132x5)){if(this[_0x4e14[499]]){var _0xa132x5=this[_0x4e14[2732]][_0x4e14[1562]][_0x4e14[117]],_0xa132x9=this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[255]];this[_0x4e14[1097]][_0x4e14[2561]](_0xa132x9-_0xa132x4*_0xa132x9/_0xa132x5,!1);}else {if(!this[_0x4e14[1097]][_0x4e14[2365]]||!mxUtils[_0x4e14[1134]](this[_0x4e14[1097]][_0x4e14[526]])){this[_0x4e14[1097]][_0x4e14[1135]](0,0),_0xa132x4/=this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x5/=this[_0x4e14[2136]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x9=this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[513]],this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[1147]](_0xa132x9[_0x4e14[235]]-_0xa132x4,_0xa132x9[_0x4e14[236]]-_0xa132x5)}};this[_0x4e14[2729]]();_0xa132x3[_0x4e14[722]]();};this[_0x4e14[1983]]=null;this[_0x4e14[1124]]= !1;}};mxOutline[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[1097]]&&(this[_0x4e14[1097]][_0x4e14[745]](this[_0x4e14[2730]]),this[_0x4e14[1097]][_0x4e14[745]](this[_0x4e14[2731]]),this[_0x4e14[1097]][_0x4e14[502]]()[_0x4e14[745]](this[_0x4e14[2728]]),this[_0x4e14[1097]][_0x4e14[249]]()[_0x4e14[745]](this[_0x4e14[2728]]),mxEvent[_0x4e14[169]](this[_0x4e14[1097]][_0x4e14[526]],_0x4e14[276],this[_0x4e14[2728]]),this[_0x4e14[1097]]=null);null!=this[_0x4e14[2136]]&&(this[_0x4e14[2136]][_0x4e14[1148]](this),this[_0x4e14[2136]][_0x4e14[515]](),this[_0x4e14[2136]]=null);null!=this[_0x4e14[2732]]&&(this[_0x4e14[2732]][_0x4e14[515]](),this[_0x4e14[2732]]=null);null!=this[_0x4e14[2734]]&&(this[_0x4e14[2734]][_0x4e14[515]](),this[_0x4e14[2734]]=null);};function mxMultiplicity(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15){this[_0x4e14[1097]]=_0xa132x2;this[_0x4e14[60]]=_0xa132x3;this[_0x4e14[2588]]=_0xa132x4;this[_0x4e14[131]]=_0xa132x5;this[_0x4e14[243]]=null!=_0xa132x9?_0xa132x9:0;this[_0x4e14[160]]=null!=_0xa132xa?_0xa132xa:_0x4e14[2743];this[_0x4e14[2744]]=_0xa132x12;this[_0x4e14[2589]]=mxResources[_0x4e14[203]](_0xa132x13)||_0xa132x13;this[_0x4e14[2745]]=mxResources[_0x4e14[203]](_0xa132x14)||_0xa132x14;this[_0x4e14[2746]]=null!=_0xa132x15?_0xa132x15:!0;}mxMultiplicity[_0x4e14[202]][_0x4e14[60]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[2588]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[131]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[1097]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[243]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[160]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[2744]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[2746]]= !0;mxMultiplicity[_0x4e14[202]][_0x4e14[2589]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[2745]]=null;mxMultiplicity[_0x4e14[202]][_0x4e14[2583]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){var _0xa132x12=_0x4e14[110];if(this[_0x4e14[1097]]&&this[_0x4e14[2747]](_0xa132x2,_0xa132x4,_0xa132x3)||!this[_0x4e14[1097]]&&this[_0x4e14[2747]](_0xa132x2,_0xa132x5,_0xa132x3)){if(null!=this[_0x4e14[2589]]&&(this[_0x4e14[1097]]&&(0==this[_0x4e14[160]]||_0xa132x9>=this[_0x4e14[160]])||!this[_0x4e14[1097]]&&(0==this[_0x4e14[160]]||_0xa132xa>=this[_0x4e14[160]]))){_0xa132x12+=this[_0x4e14[2589]]+_0x4e14[192]};null!=this[_0x4e14[2744]]&&(null!=this[_0x4e14[2745]]&&0<this[_0x4e14[2744]][_0x4e14[67]])&&(this[_0x4e14[2748]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5)||(_0xa132x12+=this[_0x4e14[2745]]+_0x4e14[192]));};return 0<_0xa132x12[_0x4e14[67]]?_0xa132x12:null;};mxMultiplicity[_0x4e14[202]][_0x4e14[2748]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x3=_0xa132x2[_0x4e14[251]][_0x4e14[433]](_0xa132x4);_0xa132x5=_0xa132x2[_0x4e14[251]][_0x4e14[433]](_0xa132x5);_0xa132x4=!this[_0x4e14[2746]];for(var _0xa132x9=this[_0x4e14[2744]],_0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){if(this[_0x4e14[1097]]&&this[_0x4e14[2749]](_0xa132x2,_0xa132x5,_0xa132x9[_0xa132xa])){_0xa132x4=this[_0x4e14[2746]];break;}else {if(!this[_0x4e14[1097]]&&this[_0x4e14[2749]](_0xa132x2,_0xa132x3,_0xa132x9[_0xa132xa])){_0xa132x4=this[_0x4e14[2746]];break;}}};return _0xa132x4;};mxMultiplicity[_0x4e14[202]][_0x4e14[2747]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=_0xa132x2[_0x4e14[251]][_0x4e14[433]](_0xa132x3);return this[_0x4e14[2749]](_0xa132x2,_0xa132x3,this[_0x4e14[60]],this[_0x4e14[2588]],this[_0x4e14[131]]);};mxMultiplicity[_0x4e14[202]][_0x4e14[2749]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){return null!=_0xa132x3?isNaN(_0xa132x3[_0x4e14[288]])?_0xa132x3==_0xa132x4:mxUtils[_0x4e14[1331]](_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9):!1};function mxLayoutManager(_0xa132x2){this[_0x4e14[2750]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x4){this[_0x4e14[994]]()&&this[_0x4e14[823]](_0xa132x4[_0x4e14[720]](_0x4e14[1061]))});this[_0x4e14[2317]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x4){this[_0x4e14[994]]()&&this[_0x4e14[835]](_0xa132x4[_0x4e14[720]](_0x4e14[895]),_0xa132x4[_0x4e14[720]](_0x4e14[763]))});this[_0x4e14[1178]](_0xa132x2);}mxLayoutManager[_0x4e14[202]]= new mxEventSource;mxLayoutManager[_0x4e14[202]][_0x4e14[196]]=mxLayoutManager;mxLayoutManager[_0x4e14[202]][_0x4e14[1179]]=null;mxLayoutManager[_0x4e14[202]][_0x4e14[2751]]= !0;mxLayoutManager[_0x4e14[202]][_0x4e14[984]]= !0;mxLayoutManager[_0x4e14[202]][_0x4e14[2728]]=null;mxLayoutManager[_0x4e14[202]][_0x4e14[2317]]=null;mxLayoutManager[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxLayoutManager[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxLayoutManager[_0x4e14[202]][_0x4e14[2752]]=function(){return this[_0x4e14[2751]]};mxLayoutManager[_0x4e14[202]][_0x4e14[2753]]=function(_0xa132x2){this[_0x4e14[2751]]=_0xa132x2};mxLayoutManager[_0x4e14[202]][_0x4e14[1703]]=function(){return this[_0x4e14[1179]]};mxLayoutManager[_0x4e14[202]][_0x4e14[1178]]=function(_0xa132x2){if(null!=this[_0x4e14[1179]]){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]();_0xa132x3[_0x4e14[745]](this[_0x4e14[2750]]);this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2317]]);};this[_0x4e14[1179]]=_0xa132x2;null!=this[_0x4e14[1179]]&&(_0xa132x3=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x3[_0x4e14[169]](mxEvent.BEFORE_UNDO,this[_0x4e14[2750]]),this[_0x4e14[1179]][_0x4e14[169]](mxEvent.MOVE_CELLS,this[_0x4e14[2317]]));};mxLayoutManager[_0x4e14[202]][_0x4e14[2754]]=function(_0xa132x2){return null};mxLayoutManager[_0x4e14[202]][_0x4e14[823]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[2755]](_0xa132x2[_0x4e14[1065]]);var _0xa132x3=this[_0x4e14[1703]]()[_0x4e14[502]]();if(this[_0x4e14[2752]]()){for(var _0xa132x4=_0xa132x3[_0x4e14[1977]](_0xa132x2);0<_0xa132x4[_0x4e14[67]];){_0xa132x2=_0xa132x2[_0x4e14[1919]](_0xa132x4),_0xa132x4=_0xa132x3[_0x4e14[1977]](_0xa132x4)}};this[_0x4e14[828]](mxUtils[_0x4e14[1779]](_0xa132x2,!1));};mxLayoutManager[_0x4e14[202]][_0x4e14[835]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&null!=_0xa132x3){for(var _0xa132x4=mxUtils[_0x4e14[2196]](this[_0x4e14[1703]]()[_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x3),mxEvent[_0x4e14[733]](_0xa132x3)),_0xa132x5=this[_0x4e14[1703]]()[_0x4e14[502]](),_0xa132x9=0;_0xa132x9<_0xa132x2[_0x4e14[67]];_0xa132x9++){var _0xa132xa=this[_0x4e14[2754]](_0xa132x5[_0x4e14[1197]](_0xa132x2[_0xa132x9]));null!=_0xa132xa&&_0xa132xa[_0x4e14[1702]](_0xa132x2[_0xa132x9],_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]]);}}};mxLayoutManager[_0x4e14[202]][_0x4e14[2755]]=function(_0xa132x2){for(var _0xa132x3=[],_0xa132x4={},_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){var _0xa132x9=_0xa132x2[_0xa132x5];if(_0xa132x9 instanceof mxRootChange){return []};for(var _0xa132x9=this[_0x4e14[2756]](_0xa132x9),_0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){if(null!=_0xa132x9[_0xa132xa]){var _0xa132x12=mxCellPath[_0x4e14[385]](_0xa132x9[_0xa132xa]);null==_0xa132x4[_0xa132x12]&&(_0xa132x4[_0xa132x12]=_0xa132x9[_0xa132xa],_0xa132x3[_0x4e14[207]](_0xa132x9[_0xa132xa]));}};};return _0xa132x3;};mxLayoutManager[_0x4e14[202]][_0x4e14[2756]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1703]]()[_0x4e14[502]]();return _0xa132x2 instanceof mxChildChange?[_0xa132x2[_0x4e14[247]],_0xa132x2[_0x4e14[257]],_0xa132x3[_0x4e14[1197]](_0xa132x2[_0x4e14[247]])]:_0xa132x2 instanceof mxTerminalChange||_0xa132x2 instanceof mxGeometryChange?[_0xa132x2[_0x4e14[246]],_0xa132x3[_0x4e14[1197]](_0xa132x2[_0x4e14[246]])]:[];};mxLayoutManager[_0x4e14[202]][_0x4e14[828]]=function(_0xa132x2){if(0<_0xa132x2[_0x4e14[67]]){var _0xa132x3=this[_0x4e14[1703]]()[_0x4e14[502]]();_0xa132x3[_0x4e14[473]]();try{for(var _0xa132x4=null,_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){_0xa132x2[_0xa132x5]!=_0xa132x3[_0x4e14[501]]()&&_0xa132x2[_0xa132x5]!=_0xa132x4&&(_0xa132x4=_0xa132x2[_0xa132x5],this[_0x4e14[2757]](this[_0x4e14[2754]](_0xa132x4),_0xa132x4))};this[_0x4e14[746]]( new mxEventObject(mxEvent.LAYOUT_CELLS,_0x4e14[895],_0xa132x2));}finally{_0xa132x3[_0x4e14[476]]()};}};mxLayoutManager[_0x4e14[202]][_0x4e14[2757]]=function(_0xa132x2,_0xa132x3){null!=_0xa132x2&&null!=_0xa132x3&&_0xa132x2[_0x4e14[350]](_0xa132x3)};mxLayoutManager[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1178]](null)};function mxSpaceManager(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[2758]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){this[_0x4e14[994]]()&&this[_0x4e14[837]](_0xa132x3[_0x4e14[720]](_0x4e14[895]))});this[_0x4e14[2759]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){this[_0x4e14[994]]()&&this[_0x4e14[837]](_0xa132x3[_0x4e14[720]](_0x4e14[895]))});this[_0x4e14[2760]]=null!=_0xa132x3?_0xa132x3:!0;this[_0x4e14[2761]]=null!=_0xa132x4?_0xa132x4:!0;this[_0x4e14[2392]]=null!=_0xa132x5?_0xa132x5:!0;this[_0x4e14[1178]](_0xa132x2);}mxSpaceManager[_0x4e14[202]]= new mxEventSource;mxSpaceManager[_0x4e14[202]][_0x4e14[196]]=mxSpaceManager;mxSpaceManager[_0x4e14[202]][_0x4e14[1179]]=null;mxSpaceManager[_0x4e14[202]][_0x4e14[984]]= !0;mxSpaceManager[_0x4e14[202]][_0x4e14[2760]]= !0;mxSpaceManager[_0x4e14[202]][_0x4e14[2761]]= !0;mxSpaceManager[_0x4e14[202]][_0x4e14[2392]]= !0;mxSpaceManager[_0x4e14[202]][_0x4e14[2758]]=null;mxSpaceManager[_0x4e14[202]][_0x4e14[2759]]=null;mxSpaceManager[_0x4e14[202]][_0x4e14[2762]]=function(_0xa132x2){return !this[_0x4e14[1703]]()[_0x4e14[502]]()[_0x4e14[1193]](_0xa132x2)};mxSpaceManager[_0x4e14[202]][_0x4e14[2763]]=function(_0xa132x2){return this[_0x4e14[1703]]()[_0x4e14[502]]()[_0x4e14[1193]](_0xa132x2)&&this[_0x4e14[1703]]()[_0x4e14[1712]](_0xa132x2)};mxSpaceManager[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxSpaceManager[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxSpaceManager[_0x4e14[202]][_0x4e14[2764]]=function(){return this[_0x4e14[2760]]};mxSpaceManager[_0x4e14[202]][_0x4e14[2765]]=function(_0xa132x2){this[_0x4e14[2760]]=_0xa132x2};mxSpaceManager[_0x4e14[202]][_0x4e14[2766]]=function(){return this[_0x4e14[2761]]};mxSpaceManager[_0x4e14[202]][_0x4e14[2767]]=function(_0xa132x2){this[_0x4e14[2761]]=_0xa132x2};mxSpaceManager[_0x4e14[202]][_0x4e14[2678]]=function(){return this[_0x4e14[2392]]};mxSpaceManager[_0x4e14[202]][_0x4e14[2679]]=function(_0xa132x2){this[_0x4e14[2392]]=_0xa132x2};mxSpaceManager[_0x4e14[202]][_0x4e14[1703]]=function(){return this[_0x4e14[1179]]};mxSpaceManager[_0x4e14[202]][_0x4e14[1178]]=function(_0xa132x2){null!=this[_0x4e14[1179]]&&(this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2758]]),this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2759]]));this[_0x4e14[1179]]=_0xa132x2;null!=this[_0x4e14[1179]]&&(this[_0x4e14[1179]][_0x4e14[169]](mxEvent.RESIZE_CELLS,this[_0x4e14[2758]]),this[_0x4e14[1179]][_0x4e14[169]](mxEvent.FOLD_CELLS,this[_0x4e14[2759]]));};mxSpaceManager[_0x4e14[202]][_0x4e14[837]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]();_0xa132x3[_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){if(!this[_0x4e14[2762]](_0xa132x2[_0xa132x4])){this[_0x4e14[2768]](_0xa132x2[_0xa132x4]);break;}}}finally{_0xa132x3[_0x4e14[476]]()};}};mxSpaceManager[_0x4e14[202]][_0x4e14[2768]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1703]](),_0xa132x4=_0xa132x3[_0x4e14[249]](),_0xa132x5=_0xa132x3[_0x4e14[502]](),_0xa132x9=_0xa132x4[_0x4e14[248]](_0xa132x2),_0xa132xa=_0xa132x4[_0x4e14[248]](_0xa132x5[_0x4e14[1197]](_0xa132x2));if(null!=_0xa132x9&&null!=_0xa132xa){var _0xa132x12=this[_0x4e14[2769]](_0xa132x9),_0xa132x13=_0xa132x5[_0x4e14[1721]](_0xa132x2);if(null!=_0xa132x12&&null!=_0xa132x13){var _0xa132x14=_0xa132x4[_0x4e14[513]],_0xa132x15=_0xa132x4[_0x4e14[255]],_0xa132x4=_0xa132x9[_0x4e14[235]]-_0xa132xa[_0x4e14[2078]][_0x4e14[235]]-_0xa132x14[_0x4e14[235]]*_0xa132x15,_0xa132xa=_0xa132x9[_0x4e14[236]]-_0xa132xa[_0x4e14[2078]][_0x4e14[236]]-_0xa132x14[_0x4e14[236]]*_0xa132x15,_0xa132x14=_0xa132x9[_0x4e14[235]]+_0xa132x9[_0x4e14[117]],_0xa132x16=_0xa132x9[_0x4e14[236]]+_0xa132x9[_0x4e14[119]],_0xa132x17=_0xa132x9[_0x4e14[117]]-_0xa132x13[_0x4e14[117]]*_0xa132x15+_0xa132x4-_0xa132x13[_0x4e14[235]]*_0xa132x15,_0xa132x18=_0xa132x9[_0x4e14[119]]-_0xa132x13[_0x4e14[119]]*_0xa132x15+_0xa132xa-_0xa132x13[_0x4e14[236]]*_0xa132x15,_0xa132x19=1-_0xa132x13[_0x4e14[117]]*_0xa132x15/_0xa132x9[_0x4e14[117]],_0xa132x9=1-_0xa132x13[_0x4e14[119]]*_0xa132x15/_0xa132x9[_0x4e14[119]];_0xa132x5[_0x4e14[473]]();try{for(_0xa132x13=0;_0xa132x13<_0xa132x12[_0x4e14[67]];_0xa132x13++){_0xa132x12[_0xa132x13]!=_0xa132x2&&this[_0x4e14[2763]](_0xa132x12[_0xa132x13])&&this[_0x4e14[2770]](_0xa132x12[_0xa132x13],_0xa132x17,_0xa132x18,_0xa132x4,_0xa132xa,_0xa132x14,_0xa132x16,_0xa132x19,_0xa132x9,this[_0x4e14[2678]]()&&_0xa132x3[_0x4e14[2507]](_0xa132x12[_0xa132x13]))}}finally{_0xa132x5[_0x4e14[476]]()};};};};mxSpaceManager[_0x4e14[202]][_0x4e14[2770]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14,_0xa132x15){_0xa132x5=this[_0x4e14[1703]]();var _0xa132x16=_0xa132x5[_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);if(null!=_0xa132x16){var _0xa132x17=_0xa132x5[_0x4e14[502]](),_0xa132x18=_0xa132x17[_0x4e14[1721]](_0xa132x2);if(null!=_0xa132x18){_0xa132x17[_0x4e14[473]]();try{if(this[_0x4e14[2764]]()){if(_0xa132x16[_0x4e14[235]]>=_0xa132xa){_0xa132x18=_0xa132x18[_0x4e14[238]](),_0xa132x18[_0x4e14[513]](-_0xa132x3,0)}else {var _0xa132x19=Math[_0x4e14[160]](0,_0xa132x16[_0x4e14[235]]-x0),_0xa132x18=_0xa132x18[_0x4e14[238]]();_0xa132x18[_0x4e14[513]](-_0xa132x13*_0xa132x19,0);}};if(this[_0x4e14[2766]]()){if(_0xa132x16[_0x4e14[236]]>=_0xa132x12){_0xa132x18=_0xa132x18[_0x4e14[238]](),_0xa132x18[_0x4e14[513]](0,-_0xa132x4)}else {var _0xa132x1a=Math[_0x4e14[160]](0,_0xa132x16[_0x4e14[236]]-_0xa132x9),_0xa132x18=_0xa132x18[_0x4e14[238]]();_0xa132x18[_0x4e14[513]](0,-_0xa132x14*_0xa132x1a);}};_0xa132x18!=_0xa132x17[_0x4e14[1721]](_0xa132x2)&&(_0xa132x17[_0x4e14[1724]](_0xa132x2,_0xa132x18),_0xa132x15&&_0xa132x5[_0x4e14[2508]](_0xa132x2));}finally{_0xa132x17[_0x4e14[476]]()};};};};mxSpaceManager[_0x4e14[202]][_0x4e14[2769]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1703]](),_0xa132x4=_0xa132x3[_0x4e14[502]]()[_0x4e14[1197]](_0xa132x2[_0x4e14[246]]),_0xa132x5=this[_0x4e14[2766]](),_0xa132x9=this[_0x4e14[2764]]();return _0xa132x3[_0x4e14[2691]](_0xa132x2[_0x4e14[235]]+(_0xa132x5?0:_0xa132x2[_0x4e14[117]]),_0xa132x2[_0x4e14[236]]+(_0xa132x5&&_0xa132x9?0:_0xa132x2[_0x4e14[119]]),_0xa132x4,_0xa132x9,_0xa132x5);};mxSpaceManager[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1178]](null)};function mxSwimlaneManager(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[662]]=null!=_0xa132x3?_0xa132x3:!0;this[_0x4e14[2771]]=null!=_0xa132x4?_0xa132x4:!0;this[_0x4e14[2772]]=null!=_0xa132x5?_0xa132x5:!0;this[_0x4e14[2773]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){this[_0x4e14[994]]()&&this[_0x4e14[2774]]()&&this[_0x4e14[833]](_0xa132x3[_0x4e14[720]](_0x4e14[895]))});this[_0x4e14[2758]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){this[_0x4e14[994]]()&&this[_0x4e14[2775]]()&&this[_0x4e14[837]](_0xa132x3[_0x4e14[720]](_0x4e14[895]))});this[_0x4e14[1178]](_0xa132x2);}mxSwimlaneManager[_0x4e14[202]]= new mxEventSource;mxSwimlaneManager[_0x4e14[202]][_0x4e14[196]]=mxSwimlaneManager;mxSwimlaneManager[_0x4e14[202]][_0x4e14[1179]]=null;mxSwimlaneManager[_0x4e14[202]][_0x4e14[984]]= !0;mxSwimlaneManager[_0x4e14[202]][_0x4e14[662]]= !0;mxSwimlaneManager[_0x4e14[202]][_0x4e14[2771]]= !0;mxSwimlaneManager[_0x4e14[202]][_0x4e14[2772]]= !0;mxSwimlaneManager[_0x4e14[202]][_0x4e14[2773]]=null;mxSwimlaneManager[_0x4e14[202]][_0x4e14[2758]]=null;mxSwimlaneManager[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxSwimlaneManager[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxSwimlaneManager[_0x4e14[202]][_0x4e14[1737]]=function(){return this[_0x4e14[662]]};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2776]]=function(_0xa132x2){this[_0x4e14[662]]=_0xa132x2};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2774]]=function(){return this[_0x4e14[2771]]};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2777]]=function(_0xa132x2){this[_0x4e14[2771]]=_0xa132x2};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2775]]=function(){return this[_0x4e14[2772]]};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2778]]=function(_0xa132x2){this[_0x4e14[2772]]=_0xa132x2};mxSwimlaneManager[_0x4e14[202]][_0x4e14[1703]]=function(){return this[_0x4e14[1179]]};mxSwimlaneManager[_0x4e14[202]][_0x4e14[1178]]=function(_0xa132x2){null!=this[_0x4e14[1179]]&&(this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2773]]),this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2758]]));this[_0x4e14[1179]]=_0xa132x2;null!=this[_0x4e14[1179]]&&(this[_0x4e14[1179]][_0x4e14[169]](mxEvent.ADD_CELLS,this[_0x4e14[2773]]),this[_0x4e14[1179]][_0x4e14[169]](mxEvent.CELLS_RESIZED,this[_0x4e14[2758]]));};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2779]]=function(_0xa132x2){return !this[_0x4e14[1703]]()[_0x4e14[1730]](_0xa132x2)};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2780]]=function(_0xa132x2){if(this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x2)){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x2);_0xa132x2=null!=_0xa132x3?_0xa132x3[_0x4e14[124]]:this[_0x4e14[1179]][_0x4e14[1705]](_0xa132x2);return 1==mxUtils[_0x4e14[433]](_0xa132x2,mxConstants.STYLE_HORIZONTAL,1);};return !this[_0x4e14[1737]]();};mxSwimlaneManager[_0x4e14[202]][_0x4e14[833]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[1703]]()[_0x4e14[502]]();_0xa132x3[_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){this[_0x4e14[2779]](_0xa132x2[_0xa132x4])||this[_0x4e14[2781]](_0xa132x2[_0xa132x4])}}finally{_0xa132x3[_0x4e14[476]]()};}};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2781]]=function(_0xa132x2){for(var _0xa132x3=this[_0x4e14[1703]]()[_0x4e14[502]](),_0xa132x4=_0xa132x3[_0x4e14[1197]](_0xa132x2),_0xa132x5=_0xa132x3[_0x4e14[262]](_0xa132x4),_0xa132x9=null,_0xa132xa=0;_0xa132xa<_0xa132x5;_0xa132xa++){var _0xa132x12=_0xa132x3[_0x4e14[263]](_0xa132x4,_0xa132xa);if(_0xa132x12!=_0xa132x2&&!this[_0x4e14[2779]](_0xa132x12)&&(_0xa132x9=_0xa132x3[_0x4e14[1721]](_0xa132x12),null!=_0xa132x9)){break};};null!=_0xa132x9&&this[_0x4e14[2782]](_0xa132x2,_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]]);};mxSwimlaneManager[_0x4e14[202]][_0x4e14[837]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[1703]]()[_0x4e14[502]]();_0xa132x3[_0x4e14[473]]();try{for(var _0xa132x4=0;_0xa132x4<_0xa132x2[_0x4e14[67]];_0xa132x4++){if(!this[_0x4e14[2779]](_0xa132x2[_0xa132x4])){var _0xa132x5=_0xa132x3[_0x4e14[1721]](_0xa132x2[_0xa132x4]);if(null!=_0xa132x5){for(var _0xa132x9= new mxRectangle(0,0,_0xa132x5[_0x4e14[117]],_0xa132x5[_0x4e14[119]]),_0xa132xa=_0xa132x2[_0xa132x4],_0xa132x12=_0xa132xa;null!=_0xa132x12;){var _0xa132xa=_0xa132x12,_0xa132x12=_0xa132x3[_0x4e14[1197]](_0xa132x12),_0xa132x13=this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x12)?this[_0x4e14[1179]][_0x4e14[1731]](_0xa132x12): new mxRectangle;_0xa132x9[_0x4e14[117]]+=_0xa132x13[_0x4e14[117]];_0xa132x9[_0x4e14[119]]+=_0xa132x13[_0x4e14[119]];};this[_0x4e14[2782]](_0xa132xa,_0xa132x9[_0x4e14[117]],_0xa132x9[_0x4e14[119]]);};}}}finally{_0xa132x3[_0x4e14[476]]()};}};mxSwimlaneManager[_0x4e14[202]][_0x4e14[2782]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1703]]()[_0x4e14[502]]();_0xa132x5[_0x4e14[473]]();try{if(!this[_0x4e14[2779]](_0xa132x2)){var _0xa132x9=_0xa132x5[_0x4e14[1721]](_0xa132x2);if(null!=_0xa132x9){var _0xa132xa=this[_0x4e14[2780]](_0xa132x2);if(_0xa132xa&&_0xa132x9[_0x4e14[119]]!=_0xa132x4||!_0xa132xa&&_0xa132x9[_0x4e14[117]]!=_0xa132x3){_0xa132x9=_0xa132x9[_0x4e14[238]](),_0xa132xa?_0xa132x9[_0x4e14[119]]=_0xa132x4:_0xa132x9[_0x4e14[117]]=_0xa132x3,_0xa132x5[_0x4e14[1724]](_0xa132x2,_0xa132x9)};};};var _0xa132x12=this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x2)?this[_0x4e14[1179]][_0x4e14[1731]](_0xa132x2): new mxRectangle;_0xa132x3-=_0xa132x12[_0x4e14[117]];_0xa132x4-=_0xa132x12[_0x4e14[119]];for(var _0xa132x13=_0xa132x5[_0x4e14[262]](_0xa132x2),_0xa132x9=0;_0xa132x9<_0xa132x13;_0xa132x9++){var _0xa132x14=_0xa132x5[_0x4e14[263]](_0xa132x2,_0xa132x9);this[_0x4e14[2782]](_0xa132x14,_0xa132x3,_0xa132x4);};}finally{_0xa132x5[_0x4e14[476]]()};};mxSwimlaneManager[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1178]](null)};function mxTemporaryCellStates(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[441]]=_0xa132x2;_0xa132x3=null!=_0xa132x3?_0xa132x3:1;this[_0x4e14[2783]]=_0xa132x2[_0x4e14[517]]();this[_0x4e14[2784]]=_0xa132x2[_0x4e14[2312]]();this[_0x4e14[2785]]=_0xa132x2[_0x4e14[518]]();_0xa132x2[_0x4e14[1517]]( new mxDictionary);_0xa132x2[_0x4e14[2262]](_0xa132x3);if(null!=_0xa132x4){_0xa132x3=_0xa132x2[_0x4e14[1230]]( new mxCell);for(var _0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]];_0xa132x5++){_0xa132x2[_0x4e14[2267]](_0xa132x3,_0xa132x4[_0xa132x5])};for(var _0xa132x9=null,_0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]];_0xa132x5++){var _0xa132xa=_0xa132x2[_0x4e14[2268]](_0xa132x3,_0xa132x4[_0xa132x5]);null==_0xa132x9?_0xa132x9=_0xa132xa:_0xa132x9[_0x4e14[99]](_0xa132xa);};null==_0xa132x9&&(_0xa132x9= new mxRectangle);_0xa132x2[_0x4e14[2256]](_0xa132x9);};}mxTemporaryCellStates[_0x4e14[202]][_0x4e14[441]]=null;mxTemporaryCellStates[_0x4e14[202]][_0x4e14[2784]]=null;mxTemporaryCellStates[_0x4e14[202]][_0x4e14[2783]]=null;mxTemporaryCellStates[_0x4e14[202]][_0x4e14[2785]]=null;mxTemporaryCellStates[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[441]][_0x4e14[2262]](this[_0x4e14[2785]]);this[_0x4e14[441]][_0x4e14[1517]](this[_0x4e14[2784]]);this[_0x4e14[441]][_0x4e14[2256]](this[_0x4e14[2783]]);};function mxCellStatePreview(_0xa132x2){this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[2786]]={};}mxCellStatePreview[_0x4e14[202]][_0x4e14[1179]]=null;mxCellStatePreview[_0x4e14[202]][_0x4e14[2786]]=null;mxCellStatePreview[_0x4e14[202]][_0x4e14[2787]]=0;mxCellStatePreview[_0x4e14[202]][_0x4e14[1107]]=function(){return 0==this[_0x4e14[2787]]};mxCellStatePreview[_0x4e14[202]][_0x4e14[1194]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x5=null!=_0xa132x5?_0xa132x5:!0;_0xa132x9=null!=_0xa132x9?_0xa132x9:!0;var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x2[_0x4e14[246]]),_0xa132x12=this[_0x4e14[2786]][_0xa132xa];null==_0xa132x12?(_0xa132x12= new mxPoint(_0xa132x3,_0xa132x4),this[_0x4e14[2786]][_0xa132xa]=_0xa132x12,this[_0x4e14[2787]]++):_0xa132x5?(_0xa132x12[_0x4e14[2788]]+=_0xa132x3,_0xa132x12[_0x4e14[2789]]+=_0xa132x4):(_0xa132x12[_0x4e14[2788]]=_0xa132x3,_0xa132x12[_0x4e14[2789]]=_0xa132x4);_0xa132x9&&this[_0x4e14[2790]](_0xa132x2);return _0xa132x12;};mxCellStatePreview[_0x4e14[202]][_0x4e14[539]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x4=_0xa132x3[_0x4e14[501]](),_0xa132x5;for(_0xa132x5 in this[_0x4e14[2786]]){var _0xa132x9=mxCellPath[_0x4e14[2791]](_0xa132x4,_0xa132x5),_0xa132xa=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x9),_0xa132x12=this[_0x4e14[2786]][_0xa132x5],_0xa132x9=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x3[_0x4e14[1197]](_0xa132x9));this[_0x4e14[2792]](_0xa132x9,_0xa132xa,_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]]);};for(_0xa132x5 in this[_0x4e14[2786]]){_0xa132x9=mxCellPath[_0x4e14[2791]](_0xa132x4,_0xa132x5),_0xa132xa=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x9),_0xa132x12=this[_0x4e14[2786]][_0xa132x5],_0xa132x9=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x3[_0x4e14[1197]](_0xa132x9)),this[_0x4e14[2793]](_0xa132x9,_0xa132xa,_0xa132x12[_0x4e14[235]],_0xa132x12[_0x4e14[236]],_0xa132x2)};};mxCellStatePreview[_0x4e14[202]][_0x4e14[2792]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x3){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[502]]();if(_0xa132x9[_0x4e14[1193]](_0xa132x3[_0x4e14[246]])){_0xa132x3[_0x4e14[2080]]= !0;this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2267]](_0xa132x2,_0xa132x3[_0x4e14[246]]);_0xa132x2=_0xa132x9[_0x4e14[1721]](_0xa132x3[_0x4e14[246]]);var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x3[_0x4e14[246]]);if((0!=_0xa132x4||0!=_0xa132x5)&&null!=_0xa132x2&&(!_0xa132x2[_0x4e14[1500]]||null!=this[_0x4e14[2786]][_0xa132xa])){_0xa132x3[_0x4e14[235]]+=_0xa132x4,_0xa132x3[_0x4e14[236]]+=_0xa132x5};};_0xa132x2=_0xa132x9[_0x4e14[262]](_0xa132x3[_0x4e14[246]]);for(_0xa132xa=0;_0xa132xa<_0xa132x2;_0xa132xa++){this[_0x4e14[2792]](_0xa132x3,this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x9[_0x4e14[263]](_0xa132x3[_0x4e14[246]],_0xa132xa)),_0xa132x4,_0xa132x5)};}};mxCellStatePreview[_0x4e14[202]][_0x4e14[2793]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=_0xa132x3){_0xa132x3[_0x4e14[2080]]= !0;this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2268]](_0xa132x2,_0xa132x3[_0x4e14[246]]);var _0xa132xa=mxCellPath[_0x4e14[385]](_0xa132x3[_0x4e14[246]]),_0xa132x12=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x13=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x3[_0x4e14[246]]);if((0!=_0xa132x4||0!=_0xa132x5)&&null!=_0xa132x13&&_0xa132x13[_0x4e14[1500]]&&_0xa132x12[_0x4e14[1193]](_0xa132x3[_0x4e14[246]])&&(null==_0xa132x2||_0xa132x12[_0x4e14[1193]](_0xa132x2[_0x4e14[246]])||null!=this[_0x4e14[2786]][_0xa132xa])){_0xa132x3[_0x4e14[235]]+=_0xa132x4,_0xa132x3[_0x4e14[236]]+=_0xa132x5,this[_0x4e14[1179]][_0x4e14[259]][_0x4e14[258]](_0xa132x3)};null!=_0xa132x9&&_0xa132x9(_0xa132x3);_0xa132x2=_0xa132x12[_0x4e14[262]](_0xa132x3[_0x4e14[246]]);for(_0xa132xa=0;_0xa132xa<_0xa132x2;_0xa132xa++){this[_0x4e14[2793]](_0xa132x3,this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x12[_0x4e14[263]](_0xa132x3[_0x4e14[246]],_0xa132xa)),_0xa132x4,_0xa132x5,_0xa132x9)};}};mxCellStatePreview[_0x4e14[202]][_0x4e14[2790]]=function(_0xa132x2){for(var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x4=_0xa132x3[_0x4e14[1707]](_0xa132x2[_0x4e14[246]]),_0xa132x5=0;_0xa132x5<_0xa132x4;_0xa132x5++){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x3[_0x4e14[1708]](_0xa132x2[_0x4e14[246]],_0xa132x5));null!=_0xa132x9&&this[_0x4e14[1194]](_0xa132x9,0,0);}};function mxConnectionConstraint(_0xa132x2,_0xa132x3){this[_0x4e14[2546]]=_0xa132x2;this[_0x4e14[591]]=null!=_0xa132x3?_0xa132x3:!0;}mxConnectionConstraint[_0x4e14[202]][_0x4e14[2546]]=null;mxConnectionConstraint[_0x4e14[202]][_0x4e14[591]]=null;function mxGraphHandler(_0xa132x2){this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[1179]][_0x4e14[1133]](this);this[_0x4e14[2730]]=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[2794]]()});this[_0x4e14[1179]][_0x4e14[169]](mxEvent.PAN,this[_0x4e14[2730]]);}mxGraphHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxGraphHandler[_0x4e14[202]][_0x4e14[2795]]=mxClient[_0x4e14[80]]?20:50;mxGraphHandler[_0x4e14[202]][_0x4e14[984]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[2796]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[2797]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[2798]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[990]]= !1;mxGraphHandler[_0x4e14[202]][_0x4e14[2799]]=null;mxGraphHandler[_0x4e14[202]][_0x4e14[2800]]=null;mxGraphHandler[_0x4e14[202]][_0x4e14[2801]]=null;mxGraphHandler[_0x4e14[202]][_0x4e14[2802]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[2803]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[846]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[2804]]= !1;mxGraphHandler[_0x4e14[202]][_0x4e14[2805]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[923]]=6;mxGraphHandler[_0x4e14[202]][_0x4e14[2806]]=_0x4e14[586];mxGraphHandler[_0x4e14[202]][_0x4e14[2807]]= !1;mxGraphHandler[_0x4e14[202]][_0x4e14[253]]=null;mxGraphHandler[_0x4e14[202]][_0x4e14[2808]]= !1;mxGraphHandler[_0x4e14[202]][_0x4e14[2809]]= !0;mxGraphHandler[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxGraphHandler[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxGraphHandler[_0x4e14[202]][_0x4e14[2810]]=function(){return this[_0x4e14[2797]]};mxGraphHandler[_0x4e14[202]][_0x4e14[2811]]=function(_0xa132x2){this[_0x4e14[2797]]=_0xa132x2};mxGraphHandler[_0x4e14[202]][_0x4e14[2812]]=function(){return this[_0x4e14[2798]]};mxGraphHandler[_0x4e14[202]][_0x4e14[2813]]=function(_0xa132x2){this[_0x4e14[2798]]=_0xa132x2};mxGraphHandler[_0x4e14[202]][_0x4e14[2814]]=function(){return this[_0x4e14[2803]]};mxGraphHandler[_0x4e14[202]][_0x4e14[2815]]=function(_0xa132x2){this[_0x4e14[2803]]=_0xa132x2};mxGraphHandler[_0x4e14[202]][_0x4e14[2816]]=function(){return this[_0x4e14[846]]};mxGraphHandler[_0x4e14[202]][_0x4e14[2817]]=function(_0xa132x2){this[_0x4e14[846]]=_0xa132x2};mxGraphHandler[_0x4e14[202]][_0x4e14[2818]]=function(_0xa132x2){return _0xa132x2[_0x4e14[736]]()};mxGraphHandler[_0x4e14[202]][_0x4e14[2819]]=function(_0xa132x2){return this[_0x4e14[1179]][_0x4e14[2692]](_0xa132x2)};mxGraphHandler[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&this[_0x4e14[994]]()&&this[_0x4e14[1179]][_0x4e14[994]]()&&!this[_0x4e14[1179]][_0x4e14[2579]](_0xa132x3[_0x4e14[727]]())&&null!=_0xa132x3[_0x4e14[248]]()){var _0xa132x4=this[_0x4e14[2818]](_0xa132x3);this[_0x4e14[246]]=null;this[_0x4e14[2820]]=this[_0x4e14[2819]](_0xa132x4);this[_0x4e14[2814]]()&&!this[_0x4e14[2820]]&&this[_0x4e14[1179]][_0x4e14[2459]](_0xa132x4,_0xa132x3[_0x4e14[727]]());if(this[_0x4e14[2812]]()){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[251]],_0xa132x9=_0xa132x5[_0x4e14[1721]](_0xa132x4);this[_0x4e14[1179]][_0x4e14[1712]](_0xa132x4)&&(!_0xa132x5[_0x4e14[250]](_0xa132x4)||1<this[_0x4e14[1179]][_0x4e14[2694]]()||null!=_0xa132x9[_0x4e14[1525]]&&0<_0xa132x9[_0x4e14[1525]][_0x4e14[67]]||null==_0xa132x5[_0x4e14[1709]](_0xa132x4,!0)||null==_0xa132x5[_0x4e14[1709]](_0xa132x4,!1)||this[_0x4e14[1179]][_0x4e14[2406]]||this[_0x4e14[1179]][_0x4e14[2574]](_0xa132x3[_0x4e14[727]]())&&this[_0x4e14[1179]][_0x4e14[2617]]())&&this[_0x4e14[861]](_0xa132x4,_0xa132x3[_0x4e14[730]](),_0xa132x3[_0x4e14[732]]());this[_0x4e14[2821]]= !0;!mxClient[_0x4e14[75]]&&!mxClient[_0x4e14[76]]||_0x4e14[2822]!=_0xa132x3[_0x4e14[728]]()[_0x4e14[301]]?_0xa132x3[_0x4e14[722]]():mxClient[_0x4e14[75]]&&_0x4e14[2822]==_0xa132x3[_0x4e14[728]]()[_0x4e14[301]]&&(this[_0x4e14[2821]]= !1,this[_0x4e14[2823]]=null);};}};mxGraphHandler[_0x4e14[202]][_0x4e14[1010]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[902]](),_0xa132x3=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x4=mxUtils[_0x4e14[885]](this,function(_0xa132x2){return null!=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x2)&&_0xa132x3[_0x4e14[1193]](_0xa132x2)&&null!=_0xa132x3[_0x4e14[1721]](_0xa132x2)&&!_0xa132x3[_0x4e14[1721]](_0xa132x2)[_0x4e14[1500]]});return this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2313]](_0xa132x3[_0x4e14[1921]](_0xa132x4,_0xa132x2));};mxGraphHandler[_0x4e14[202]][_0x4e14[2690]]=function(_0xa132x2){return !this[_0x4e14[2820]]&&this[_0x4e14[1179]][_0x4e14[1712]](_0xa132x2)?[_0xa132x2]:this[_0x4e14[1179]][_0x4e14[2629]](this[_0x4e14[1179]][_0x4e14[897]]())};mxGraphHandler[_0x4e14[202]][_0x4e14[2824]]=function(_0xa132x2){_0xa132x2=this[_0x4e14[1613]](_0xa132x2);null!=_0xa132x2&&(_0xa132x2[_0x4e14[244]](-1,-1),_0xa132x2[_0x4e14[117]]<this[_0x4e14[923]]&&(_0xa132x2[_0x4e14[235]]-=(this[_0x4e14[923]]-_0xa132x2[_0x4e14[117]])/2,_0xa132x2[_0x4e14[117]]=this[_0x4e14[923]]),_0xa132x2[_0x4e14[119]]<this[_0x4e14[923]]&&(_0xa132x2[_0x4e14[236]]-=(this[_0x4e14[923]]-_0xa132x2[_0x4e14[119]])/2,_0xa132x2[_0x4e14[119]]=this[_0x4e14[923]]));return _0xa132x2;};mxGraphHandler[_0x4e14[202]][_0x4e14[1613]]=function(_0xa132x2){var _0xa132x3=null;if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){for(var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=0;_0xa132x5<_0xa132x2[_0x4e14[67]];_0xa132x5++){if(_0xa132x4[_0x4e14[1193]](_0xa132x2[_0xa132x5])||_0xa132x4[_0x4e14[250]](_0xa132x2[_0xa132x5])){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x2[_0xa132x5]);if(null!=_0xa132x9){var _0xa132xa=_0xa132x9;_0xa132x4[_0x4e14[1193]](_0xa132x2[_0xa132x5])&&(null!=_0xa132x9[_0x4e14[253]]&&null!=_0xa132x9[_0x4e14[253]][_0x4e14[1563]])&&(_0xa132xa=_0xa132x9[_0x4e14[253]][_0x4e14[1563]]);null==_0xa132x3?_0xa132x3= new mxRectangle(_0xa132xa[_0x4e14[235]],_0xa132xa[_0x4e14[236]],_0xa132xa[_0x4e14[117]],_0xa132xa[_0x4e14[119]]):_0xa132x3[_0x4e14[99]](_0xa132xa);};}}};return _0xa132x3;};mxGraphHandler[_0x4e14[202]][_0x4e14[2825]]=function(_0xa132x2){_0xa132x2= new mxRectangleShape(_0xa132x2,null,this[_0x4e14[2806]]);_0xa132x2[_0x4e14[1522]]= !0;this[_0x4e14[2807]]?(_0xa132x2[_0x4e14[507]]=mxConstants[_0x4e14[1656]],_0xa132x2[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[526]])):(_0xa132x2[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]],_0xa132x2[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]()),_0xa132x2[_0x4e14[1229]]= !1);return _0xa132x2;};mxGraphHandler[_0x4e14[202]][_0x4e14[861]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[246]]=_0xa132x2;this[_0x4e14[2823]]=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],_0xa132x3,_0xa132x4);this[_0x4e14[895]]=this[_0x4e14[2690]](this[_0x4e14[246]]);this[_0x4e14[1562]]=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1799]](this[_0x4e14[895]]);this[_0x4e14[2826]]=this[_0x4e14[2824]](this[_0x4e14[895]]);this[_0x4e14[990]]&&(this[_0x4e14[2799]]= new mxGuide(this[_0x4e14[1179]],this[_0x4e14[1010]]()));};mxGraphHandler[_0x4e14[202]][_0x4e14[2827]]=function(_0xa132x2){return null!=this[_0x4e14[2799]]?this[_0x4e14[2799]][_0x4e14[1019]](_0xa132x2[_0x4e14[727]]()):!0};mxGraphHandler[_0x4e14[202]][_0x4e14[1021]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[2808]]?this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]]:1;_0xa132x2[_0x4e14[235]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[235]]/_0xa132x3)*_0xa132x3;_0xa132x2[_0x4e14[236]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[236]]/_0xa132x3)*_0xa132x3;return _0xa132x2;};mxGraphHandler[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]];if(!_0xa132x3[_0x4e14[721]]()&&_0xa132x4[_0x4e14[1009]]&&null!=this[_0x4e14[246]]&&null!=this[_0x4e14[2823]]&&null!=this[_0x4e14[1562]]){var _0xa132x5=mxUtils[_0x4e14[2196]](_0xa132x4[_0x4e14[526]],_0xa132x3[_0x4e14[730]](),_0xa132x3[_0x4e14[732]]()),_0xa132x9=_0xa132x5[_0x4e14[235]]-this[_0x4e14[2823]][_0x4e14[235]],_0xa132xa=_0xa132x5[_0x4e14[236]]-this[_0x4e14[2823]][_0x4e14[236]],_0xa132x5=_0xa132x4[_0x4e14[2353]];if(null!=this[_0x4e14[253]]||Math[_0x4e14[425]](_0xa132x9)>_0xa132x5||Math[_0x4e14[425]](_0xa132xa)>_0xa132x5){null==this[_0x4e14[1016]]&&(this[_0x4e14[1016]]= new mxCellHighlight(this[_0x4e14[1179]],mxConstants.DROP_TARGET_COLOR,3));null==this[_0x4e14[253]]&&(this[_0x4e14[253]]=this[_0x4e14[2825]](this[_0x4e14[1562]]));var _0xa132x12=_0xa132x4[_0x4e14[1018]](_0xa132x3[_0x4e14[727]]()),_0xa132x5=!0;if(null!=this[_0x4e14[2799]]&&this[_0x4e14[2827]](_0xa132x3)){_0xa132xa=this[_0x4e14[2799]][_0x4e14[582]](this[_0x4e14[1562]], new mxPoint(_0xa132x9,_0xa132xa),_0xa132x12),_0xa132x5= !1,_0xa132x9=_0xa132xa[_0x4e14[235]],_0xa132xa=_0xa132xa[_0x4e14[236]]}else {if(_0xa132x12){var _0xa132x13=_0xa132x4[_0x4e14[249]]()[_0x4e14[513]],_0xa132x14=_0xa132x4[_0x4e14[249]]()[_0x4e14[255]],_0xa132x12=this[_0x4e14[1562]][_0x4e14[235]]-(_0xa132x4[_0x4e14[1021]](this[_0x4e14[1562]][_0x4e14[235]]/_0xa132x14-_0xa132x13[_0x4e14[235]])+_0xa132x13[_0x4e14[235]])*_0xa132x14,_0xa132x13=this[_0x4e14[1562]][_0x4e14[236]]-(_0xa132x4[_0x4e14[1021]](this[_0x4e14[1562]][_0x4e14[236]]/_0xa132x14-_0xa132x13[_0x4e14[236]])+_0xa132x13[_0x4e14[236]])*_0xa132x14,_0xa132xa=this[_0x4e14[1021]]( new mxPoint(_0xa132x9,_0xa132xa)),_0xa132x9=_0xa132xa[_0x4e14[235]]-_0xa132x12,_0xa132xa=_0xa132xa[_0x4e14[236]]-_0xa132x13}};null!=this[_0x4e14[2799]]&&_0xa132x5&&this[_0x4e14[2799]][_0x4e14[801]]();_0xa132x4[_0x4e14[2578]](_0xa132x3[_0x4e14[727]]())&&(Math[_0x4e14[425]](_0xa132x9)>Math[_0x4e14[425]](_0xa132xa)?_0xa132xa=0:_0xa132x9=0);this[_0x4e14[2800]]=_0xa132x9;this[_0x4e14[2801]]=_0xa132xa;this[_0x4e14[2794]]();_0xa132x5=null;_0xa132xa=_0xa132x3[_0x4e14[736]]();_0xa132x4[_0x4e14[1015]]()&&this[_0x4e14[2796]]&&(_0xa132x5=_0xa132x4[_0x4e14[564]](this[_0x4e14[895]],_0xa132x3[_0x4e14[727]](),_0xa132xa));_0xa132x12=_0xa132x5;for(_0xa132x13=_0xa132x4[_0x4e14[502]]();null!=_0xa132x12&&_0xa132x12!=this[_0x4e14[895]][0];){_0xa132x12=_0xa132x13[_0x4e14[1197]](_0xa132x12)};var _0xa132x14=_0xa132x4[_0x4e14[2574]](_0xa132x3[_0x4e14[727]]())&&_0xa132x4[_0x4e14[2617]]()&&this[_0x4e14[2810]](),_0xa132x9=_0xa132x4[_0x4e14[249]]()[_0x4e14[248]](_0xa132x5),_0xa132x15=!1;null!=_0xa132x9&&null==_0xa132x12&&(_0xa132x13[_0x4e14[1197]](this[_0x4e14[246]])!=_0xa132x5||_0xa132x14)?(this[_0x4e14[772]]!=_0xa132x5&&(this[_0x4e14[772]]=_0xa132x5,this[_0x4e14[2828]](mxConstants.DROP_TARGET_COLOR)),_0xa132x15= !0):(this[_0x4e14[772]]=null,this[_0x4e14[2804]]&&(null!=_0xa132xa&&1==this[_0x4e14[895]][_0x4e14[67]]&&_0xa132x4[_0x4e14[502]]()[_0x4e14[1193]](_0xa132xa)&&_0xa132x4[_0x4e14[2565]](_0xa132xa))&&(_0xa132x9=_0xa132x4[_0x4e14[249]]()[_0x4e14[248]](_0xa132xa),null!=_0xa132x9&&(_0xa132x4=null==_0xa132x4[_0x4e14[2500]](null,this[_0x4e14[246]],_0xa132xa)?mxConstants[_0x4e14[2829]]:mxConstants[_0x4e14[2830]],this[_0x4e14[2828]](_0xa132x4),_0xa132x15= !0)));null!=_0xa132x9&&_0xa132x15?this[_0x4e14[1016]][_0x4e14[1016]](_0xa132x9):this[_0x4e14[1016]][_0x4e14[801]]();};_0xa132x3[_0x4e14[722]]();mxEvent[_0x4e14[722]](_0xa132x3[_0x4e14[727]]());}else {if((this[_0x4e14[2812]]()||this[_0x4e14[2810]]())&&this[_0x4e14[2802]]&&!_0xa132x3[_0x4e14[721]]()&&null!=_0xa132x3[_0x4e14[248]]()&&!_0xa132x4[_0x4e14[1009]]){_0xa132x9=_0xa132x4[_0x4e14[2599]](_0xa132x3[_0x4e14[736]]()),null==_0xa132x9&&(_0xa132x4[_0x4e14[994]]()&&_0xa132x4[_0x4e14[1712]](_0xa132x3[_0x4e14[736]]()))&&(_0xa132x9=_0xa132x4[_0x4e14[502]]()[_0x4e14[250]](_0xa132x3[_0x4e14[736]]())?mxConstants[_0x4e14[2831]]:mxConstants[_0x4e14[2832]]),_0xa132x3[_0x4e14[248]]()[_0x4e14[1609]](_0xa132x9),_0xa132x3[_0x4e14[722]]()}};};mxGraphHandler[_0x4e14[202]][_0x4e14[2794]]=function(){null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[1562]]= new mxRectangle(Math[_0x4e14[488]](this[_0x4e14[2826]][_0x4e14[235]]+this[_0x4e14[2800]]-this[_0x4e14[1179]][_0x4e14[1136]]),Math[_0x4e14[488]](this[_0x4e14[2826]][_0x4e14[236]]+this[_0x4e14[2801]]-this[_0x4e14[1179]][_0x4e14[1137]]),this[_0x4e14[2826]][_0x4e14[117]],this[_0x4e14[2826]][_0x4e14[119]]),this[_0x4e14[253]][_0x4e14[258]]())};mxGraphHandler[_0x4e14[202]][_0x4e14[2828]]=function(_0xa132x2){null!=this[_0x4e14[1016]]&&this[_0x4e14[1016]][_0x4e14[2828]](_0xa132x2)};mxGraphHandler[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()){var _0xa132x4=this[_0x4e14[1179]];if(null!=this[_0x4e14[246]]&&null!=this[_0x4e14[2823]]&&null!=this[_0x4e14[253]]&&null!=this[_0x4e14[2800]]&&null!=this[_0x4e14[2801]]){var _0xa132x5=_0xa132x4[_0x4e14[249]]()[_0x4e14[255]],_0xa132x9=_0xa132x4[_0x4e14[2574]](_0xa132x3[_0x4e14[727]]())&&_0xa132x4[_0x4e14[2617]]()&&this[_0x4e14[2810]](),_0xa132xa=this[_0x4e14[2800]]/_0xa132x5,_0xa132x5=this[_0x4e14[2801]]/_0xa132x5,_0xa132x12=_0xa132x3[_0x4e14[736]]();this[_0x4e14[2804]]&&null==this[_0x4e14[772]]&&null!=_0xa132x12&&_0xa132x4[_0x4e14[502]]()[_0x4e14[1193]](_0xa132x12)&&_0xa132x4[_0x4e14[2565]](_0xa132x12)&&_0xa132x4[_0x4e14[2581]](null,this[_0x4e14[246]],_0xa132x12)?_0xa132x4[_0x4e14[2433]][_0x4e14[807]](this[_0x4e14[246]],_0xa132x12,_0xa132x3[_0x4e14[727]]()):(_0xa132x12=this[_0x4e14[772]],_0xa132x4[_0x4e14[2655]]()&&_0xa132x4[_0x4e14[2686]](_0xa132x12,this[_0x4e14[895]],_0xa132x3[_0x4e14[727]]())?_0xa132x4[_0x4e14[853]](_0xa132x12,this[_0x4e14[895]],null,_0xa132xa,_0xa132x5):this[_0x4e14[834]](this[_0x4e14[895]],_0xa132xa,_0xa132x5,_0xa132x9,this[_0x4e14[772]],_0xa132x3[_0x4e14[727]]()));}else {this[_0x4e14[2814]]()&&(this[_0x4e14[2820]]&&null!=this[_0x4e14[246]])&&this[_0x4e14[2833]](_0xa132x3)};};this[_0x4e14[2821]]&&_0xa132x3[_0x4e14[722]]();this[_0x4e14[862]]();};mxGraphHandler[_0x4e14[202]][_0x4e14[2833]]=function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[2459]](this[_0x4e14[246]],_0xa132x2[_0x4e14[727]]())};mxGraphHandler[_0x4e14[202]][_0x4e14[862]]=function(){this[_0x4e14[2834]]();this[_0x4e14[2820]]=this[_0x4e14[2821]]= !1;this[_0x4e14[772]]=this[_0x4e14[246]]=this[_0x4e14[2823]]=this[_0x4e14[2835]]=this[_0x4e14[2801]]=this[_0x4e14[2800]]=null;};mxGraphHandler[_0x4e14[202]][_0x4e14[2836]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1193]](_0xa132x2)){_0xa132x2=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);_0xa132x4=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x4),mxEvent[_0x4e14[733]](_0xa132x4));var _0xa132x5=mxUtils[_0x4e14[431]](mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ROTATION)||0);if(0!=_0xa132x5){_0xa132x3=Math[_0x4e14[426]](-_0xa132x5);var _0xa132x5=Math[_0x4e14[427]](-_0xa132x5),_0xa132x9= new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]());_0xa132x4=mxUtils[_0x4e14[432]](_0xa132x4,_0xa132x3,_0xa132x5,_0xa132x9);};return null!=_0xa132x2&&!mxUtils[_0x4e14[442]](_0xa132x2,_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]]);};return !1;};mxGraphHandler[_0x4e14[202]][_0x4e14[834]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){_0xa132x5&&(_0xa132x2=this[_0x4e14[1179]][_0x4e14[2615]](_0xa132x2));null==_0xa132x9&&(this[_0x4e14[2816]]()&&this[_0x4e14[2836]](this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1197]](this[_0x4e14[246]]),_0xa132x2,_0xa132xa))&&(_0xa132x9=this[_0x4e14[1179]][_0x4e14[902]]());_0xa132x2=this[_0x4e14[1179]][_0x4e14[834]](_0xa132x2,_0xa132x3-this[_0x4e14[1179]][_0x4e14[1136]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]],_0xa132x4-this[_0x4e14[1179]][_0x4e14[1137]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]],_0xa132x5,_0xa132x9,_0xa132xa);this[_0x4e14[2814]]()&&this[_0x4e14[2805]]&&this[_0x4e14[1179]][_0x4e14[2564]](_0xa132x2[0]);_0xa132x5&&this[_0x4e14[1179]][_0x4e14[904]](_0xa132x2);};mxGraphHandler[_0x4e14[202]][_0x4e14[2834]]=function(){null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[515]](),this[_0x4e14[253]]=null);null!=this[_0x4e14[2799]]&&(this[_0x4e14[2799]][_0x4e14[515]](),this[_0x4e14[2799]]=null);null!=this[_0x4e14[1016]]&&(this[_0x4e14[1016]][_0x4e14[515]](),this[_0x4e14[1016]]=null);};mxGraphHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1179]][_0x4e14[1148]](this);this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2730]]);this[_0x4e14[2834]]();};function mxPanningHandler(_0xa132x2,_0xa132x3){null!=_0xa132x2&&(this[_0x4e14[1179]]=_0xa132x2,this[_0x4e14[1033]]=_0xa132x3,this[_0x4e14[1179]][_0x4e14[1133]](this),this[_0x4e14[176]]())}mxPanningHandler[_0x4e14[202]]= new mxPopupMenu;mxPanningHandler[_0x4e14[202]][_0x4e14[196]]=mxPanningHandler;mxPanningHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxPanningHandler[_0x4e14[202]][_0x4e14[2837]]=null;mxPanningHandler[_0x4e14[202]][_0x4e14[2838]]=null;mxPanningHandler[_0x4e14[202]][_0x4e14[2839]]= !0;mxPanningHandler[_0x4e14[202]][_0x4e14[2840]]= !1;mxPanningHandler[_0x4e14[202]][_0x4e14[2841]]= !0;mxPanningHandler[_0x4e14[202]][_0x4e14[2842]]= !0;mxPanningHandler[_0x4e14[202]][_0x4e14[2843]]= !1;mxPanningHandler[_0x4e14[202]][_0x4e14[2844]]= !0;mxPanningHandler[_0x4e14[202]][_0x4e14[2845]]= !1;mxPanningHandler[_0x4e14[202]][_0x4e14[2431]]= !0;mxPanningHandler[_0x4e14[202]][_0x4e14[2846]]=function(){return this[_0x4e14[2431]]};mxPanningHandler[_0x4e14[202]][_0x4e14[2847]]=function(_0xa132x2){this[_0x4e14[2431]]=_0xa132x2};mxPanningHandler[_0x4e14[202]][_0x4e14[176]]=function(){mxPopupMenu[_0x4e14[202]][_0x4e14[176]][_0x4e14[183]](this);mxEvent[_0x4e14[169]](this[_0x4e14[485]],mxClient[_0x4e14[754]]?_0x4e14[756]:_0x4e14[752],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[2276]][_0x4e14[801]]()}));};mxPanningHandler[_0x4e14[202]][_0x4e14[2848]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[727]]();return this[_0x4e14[2840]]&&(this[_0x4e14[2843]]||null==_0xa132x2[_0x4e14[248]]())&&mxEvent[_0x4e14[1158]](_0xa132x3)||mxEvent[_0x4e14[775]](_0xa132x3)&&mxEvent[_0x4e14[774]](_0xa132x3)||this[_0x4e14[2839]]&&mxEvent[_0x4e14[737]](_0xa132x3);};mxPanningHandler[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&this[_0x4e14[994]]()){this[_0x4e14[1032]]();this[_0x4e14[2741]]=-this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[360]];this[_0x4e14[2742]]=-this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[190]];var _0xa132x4=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],_0xa132x3[_0x4e14[730]](),_0xa132x3[_0x4e14[732]]());this[_0x4e14[2837]]=_0xa132x4[_0x4e14[235]];this[_0x4e14[2838]]=_0xa132x4[_0x4e14[236]];this[_0x4e14[2849]]=this[_0x4e14[737]](_0xa132x3);this[_0x4e14[2850]]=this[_0x4e14[2846]]()&&this[_0x4e14[2848]](_0xa132x3);this[_0x4e14[2739]]=_0xa132x3[_0x4e14[730]]();this[_0x4e14[2740]]=_0xa132x3[_0x4e14[732]]();this[_0x4e14[2850]]&&this[_0x4e14[2851]](_0xa132x3);}};mxPanningHandler[_0x4e14[202]][_0x4e14[2851]]=function(_0xa132x2){_0xa132x2[_0x4e14[722]]()};mxPanningHandler[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x3[_0x4e14[730]]()-this[_0x4e14[2739]],_0xa132x5=_0xa132x3[_0x4e14[732]]()-this[_0x4e14[2740]];if(this[_0x4e14[1124]]){this[_0x4e14[2844]]&&(this[_0x4e14[2845]]&&(_0xa132x4=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x4),_0xa132x5=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x5)),this[_0x4e14[1179]][_0x4e14[1135]](_0xa132x4+this[_0x4e14[2741]],_0xa132x5+this[_0x4e14[2742]])),this[_0x4e14[746]]( new mxEventObject(mxEvent.PAN,_0x4e14[763],_0xa132x3)),_0xa132x3[_0x4e14[722]]()}else {if(this[_0x4e14[2850]]){var _0xa132x9=this[_0x4e14[1124]];this[_0x4e14[1124]]=Math[_0x4e14[425]](_0xa132x4)>this[_0x4e14[1179]][_0x4e14[2353]]||Math[_0x4e14[425]](_0xa132x5)>this[_0x4e14[1179]][_0x4e14[2353]];!_0xa132x9&&this[_0x4e14[1124]]&&this[_0x4e14[746]]( new mxEventObject(mxEvent.PAN_START,_0x4e14[763],_0xa132x3));}};};mxPanningHandler[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=Math[_0x4e14[425]](_0xa132x3[_0x4e14[730]]()-this[_0x4e14[2739]]),_0xa132x5=Math[_0x4e14[425]](_0xa132x3[_0x4e14[732]]()-this[_0x4e14[2740]]);if(this[_0x4e14[1124]]){if(!this[_0x4e14[1179]][_0x4e14[2365]]||!mxUtils[_0x4e14[1134]](this[_0x4e14[1179]][_0x4e14[526]])){_0xa132x4=_0xa132x3[_0x4e14[730]]()-this[_0x4e14[2739]];_0xa132x5=_0xa132x3[_0x4e14[732]]()-this[_0x4e14[2740]];this[_0x4e14[2845]]&&(_0xa132x4=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x4),_0xa132x5=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x5));var _0xa132x9=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132xa=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[513]];this[_0x4e14[1179]][_0x4e14[1135]](0,0);this[_0x4e14[1135]](_0xa132xa[_0x4e14[235]]+_0xa132x4/_0xa132x9,_0xa132xa[_0x4e14[236]]+_0xa132x5/_0xa132x9);};this[_0x4e14[1124]]= !1;this[_0x4e14[746]]( new mxEventObject(mxEvent.PAN_END,_0x4e14[763],_0xa132x3));_0xa132x3[_0x4e14[722]]();}else {this[_0x4e14[2849]]&&(_0xa132x4<this[_0x4e14[1179]][_0x4e14[2353]]&&_0xa132x5<this[_0x4e14[1179]][_0x4e14[2353]])&&(_0xa132x4=this[_0x4e14[2852]](_0xa132x3),this[_0x4e14[1179]][_0x4e14[994]]()&&this[_0x4e14[2841]]&&null!=_0xa132x4&&!this[_0x4e14[1179]][_0x4e14[2692]](_0xa132x4)?this[_0x4e14[1179]][_0x4e14[2450]](_0xa132x4):this[_0x4e14[2842]]&&null==_0xa132x4&&this[_0x4e14[1179]][_0x4e14[2440]](),this[_0x4e14[1179]][_0x4e14[2276]][_0x4e14[801]](),_0xa132x5=mxUtils[_0x4e14[444]](),_0xa132x5= new mxPoint(_0xa132x3[_0x4e14[730]]()+_0xa132x5[_0x4e14[235]],_0xa132x3[_0x4e14[732]]()+_0xa132x5[_0x4e14[236]]),this[_0x4e14[152]](_0xa132x5[_0x4e14[235]]+1,_0xa132x5[_0x4e14[236]]+1,_0xa132x4,_0xa132x3[_0x4e14[727]]()),_0xa132x3[_0x4e14[722]]())};this[_0x4e14[2849]]=this[_0x4e14[2850]]= !1;};mxPanningHandler[_0x4e14[202]][_0x4e14[2852]]=function(_0xa132x2){return _0xa132x2[_0x4e14[736]]()};mxPanningHandler[_0x4e14[202]][_0x4e14[1135]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1147]](_0xa132x2,_0xa132x3)};mxPanningHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1179]][_0x4e14[1148]](this);mxPopupMenu[_0x4e14[202]][_0x4e14[515]][_0x4e14[183]](this);};function mxCellMarker(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){mxEventSource[_0x4e14[239]](this);null!=_0xa132x2&&(this[_0x4e14[1179]]=_0xa132x2,this[_0x4e14[2853]]=null!=_0xa132x3?_0xa132x3:mxConstants[_0x4e14[2854]],this[_0x4e14[2855]]=null!=_0xa132x3?_0xa132x4:mxConstants[_0x4e14[2856]],this[_0x4e14[2857]]=null!=_0xa132x5?_0xa132x5:mxConstants[_0x4e14[2858]],this[_0x4e14[1016]]= new mxCellHighlight(_0xa132x2));}mxUtils[_0x4e14[1284]](mxCellMarker,mxEventSource);mxCellMarker[_0x4e14[202]][_0x4e14[1179]]=null;mxCellMarker[_0x4e14[202]][_0x4e14[984]]= !0;mxCellMarker[_0x4e14[202]][_0x4e14[2857]]=mxConstants[_0x4e14[2858]];mxCellMarker[_0x4e14[202]][_0x4e14[2859]]= !1;mxCellMarker[_0x4e14[202]][_0x4e14[2853]]=null;mxCellMarker[_0x4e14[202]][_0x4e14[2855]]=null;mxCellMarker[_0x4e14[202]][_0x4e14[2860]]=null;mxCellMarker[_0x4e14[202]][_0x4e14[2861]]=null;mxCellMarker[_0x4e14[202]][_0x4e14[2862]]=null;mxCellMarker[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxCellMarker[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxCellMarker[_0x4e14[202]][_0x4e14[2863]]=function(_0xa132x2){this[_0x4e14[2857]]=_0xa132x2};mxCellMarker[_0x4e14[202]][_0x4e14[2864]]=function(){return this[_0x4e14[2857]]};mxCellMarker[_0x4e14[202]][_0x4e14[2865]]=function(_0xa132x2){this[_0x4e14[2859]]=_0xa132x2};mxCellMarker[_0x4e14[202]][_0x4e14[2866]]=function(){return this[_0x4e14[2859]]};mxCellMarker[_0x4e14[202]][_0x4e14[2867]]=function(){return null!=this[_0x4e14[2861]]};mxCellMarker[_0x4e14[202]][_0x4e14[2868]]=function(){return this[_0x4e14[2861]]};mxCellMarker[_0x4e14[202]][_0x4e14[2869]]=function(){return this[_0x4e14[2862]]};mxCellMarker[_0x4e14[202]][_0x4e14[862]]=function(){this[_0x4e14[2861]]=null;null!=this[_0x4e14[2862]]&&(this[_0x4e14[2862]]=null,this[_0x4e14[2870]]());};mxCellMarker[_0x4e14[202]][_0x4e14[2871]]=function(_0xa132x2){var _0xa132x3=null;if(this[_0x4e14[994]]()){var _0xa132x3=this[_0x4e14[248]](_0xa132x2),_0xa132x4=null!=_0xa132x3?this[_0x4e14[2872]](_0xa132x3):!1;_0xa132x2=this[_0x4e14[2873]](_0xa132x2[_0x4e14[727]](),_0xa132x3,_0xa132x4);this[_0x4e14[2861]]=_0xa132x4?_0xa132x3:null;if(_0xa132x3!=this[_0x4e14[2862]]||_0xa132x2!=this[_0x4e14[2860]]){this[_0x4e14[2860]]=_0xa132x2,null!=_0xa132x3&&null!=this[_0x4e14[2860]]?(this[_0x4e14[2862]]=_0xa132x3,this[_0x4e14[811]]()):null!=this[_0x4e14[2862]]&&(this[_0x4e14[2862]]=null,this[_0x4e14[2870]]())};};return _0xa132x3;};mxCellMarker[_0x4e14[202]][_0x4e14[2874]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);null!=_0xa132x4&&(this[_0x4e14[2860]]=null!=_0xa132x3?_0xa132x3:this[_0x4e14[2853]],this[_0x4e14[2862]]=_0xa132x4,this[_0x4e14[811]]());};mxCellMarker[_0x4e14[202]][_0x4e14[811]]=function(){this[_0x4e14[1016]][_0x4e14[2828]](this[_0x4e14[2860]]);this[_0x4e14[1016]][_0x4e14[1016]](this[_0x4e14[2862]]);this[_0x4e14[746]]( new mxEventObject(mxEvent.MARK,_0x4e14[724],this[_0x4e14[2862]]));};mxCellMarker[_0x4e14[202]][_0x4e14[2870]]=function(){this[_0x4e14[811]]()};mxCellMarker[_0x4e14[202]][_0x4e14[2872]]=function(_0xa132x2){return !0};mxCellMarker[_0x4e14[202]][_0x4e14[2873]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x4?this[_0x4e14[2853]]:this[_0x4e14[2855]]};mxCellMarker[_0x4e14[202]][_0x4e14[248]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[249]]();cell=this[_0x4e14[736]](_0xa132x2);_0xa132x3=this[_0x4e14[2875]](_0xa132x3[_0x4e14[248]](cell));return null!=_0xa132x3&&this[_0x4e14[1825]](_0xa132x3,_0xa132x2)?_0xa132x3:null;};mxCellMarker[_0x4e14[202]][_0x4e14[736]]=function(_0xa132x2){return _0xa132x2[_0x4e14[736]]()};mxCellMarker[_0x4e14[202]][_0x4e14[2875]]=function(_0xa132x2){return _0xa132x2};mxCellMarker[_0x4e14[202]][_0x4e14[1825]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[2859]]?mxUtils[_0x4e14[2876]](_0xa132x2,_0xa132x3[_0x4e14[734]](),_0xa132x3[_0x4e14[735]](),this[_0x4e14[2857]],mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE):!0};mxCellMarker[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[745]](this[_0x4e14[2877]]);this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[745]](this[_0x4e14[2877]]);this[_0x4e14[1016]][_0x4e14[515]]();};function mxSelectionCellsHandler(_0xa132x2){mxEventSource[_0x4e14[239]](this);this[_0x4e14[1179]]=_0xa132x2;this[_0x4e14[2878]]= new mxDictionary;this[_0x4e14[1179]][_0x4e14[1133]](this);this[_0x4e14[2731]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x4){this[_0x4e14[994]]()&&this[_0x4e14[802]]()});this[_0x4e14[1179]][_0x4e14[2435]]()[_0x4e14[169]](mxEvent.CHANGE,this[_0x4e14[2731]]);this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[169]](mxEvent.CHANGE,this[_0x4e14[2731]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.SCALE,this[_0x4e14[2731]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.TRANSLATE,this[_0x4e14[2731]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x4e14[2731]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.DOWN,this[_0x4e14[2731]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.UP,this[_0x4e14[2731]]);}mxUtils[_0x4e14[1284]](mxSelectionCellsHandler,mxEventSource);mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[984]]= !0;mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[2731]]=null;mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[2879]]=100;mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[2878]]=null;mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[2596]]=function(_0xa132x2){return this[_0x4e14[2878]][_0x4e14[203]](_0xa132x2)};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[862]]=function(){this[_0x4e14[2878]][_0x4e14[209]](function(_0xa132x2,_0xa132x3){_0xa132x3[_0x4e14[862]][_0x4e14[183]](_0xa132x3)})};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[802]]=function(){var _0xa132x2=this[_0x4e14[2878]];this[_0x4e14[2878]]= new mxDictionary;for(var _0xa132x3=this[_0x4e14[1179]][_0x4e14[897]](),_0xa132x4=0;_0xa132x4<_0xa132x3[_0x4e14[67]];_0xa132x4++){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x3[_0xa132x4]);if(null!=_0xa132x5){var _0xa132x9=_0xa132x2[_0x4e14[205]](_0xa132x3[_0xa132x4]);null!=_0xa132x9&&(_0xa132x9[_0x4e14[724]]!=_0xa132x5?(_0xa132x9[_0x4e14[515]](),_0xa132x9=null):_0xa132x9[_0x4e14[258]]());null==_0xa132x9&&(_0xa132x9=this[_0x4e14[1179]][_0x4e14[2709]](_0xa132x5),this[_0x4e14[746]]( new mxEventObject(mxEvent.ADD,_0x4e14[724],_0xa132x5)));null!=_0xa132x9&&this[_0x4e14[2878]][_0x4e14[204]](_0xa132x3[_0xa132x4],_0xa132x9);};};_0xa132x2[_0x4e14[209]](mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){this[_0x4e14[746]]( new mxEventObject(mxEvent.REMOVE,_0x4e14[724],_0xa132x3[_0x4e14[724]]));_0xa132x3[_0x4e14[515]]();}));};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1179]][_0x4e14[994]]()&&this[_0x4e14[994]]()){var _0xa132x4=[_0xa132x2,_0xa132x3];this[_0x4e14[2878]][_0x4e14[209]](function(_0xa132x2,_0xa132x3){_0xa132x3[_0x4e14[787]][_0x4e14[183]](_0xa132x3,_0xa132x4)});}};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1179]][_0x4e14[994]]()&&this[_0x4e14[994]]()){var _0xa132x4=[_0xa132x2,_0xa132x3];this[_0x4e14[2878]][_0x4e14[209]](function(_0xa132x2,_0xa132x3){_0xa132x3[_0x4e14[788]][_0x4e14[183]](_0xa132x3,_0xa132x4)});}};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1179]][_0x4e14[994]]()&&this[_0x4e14[994]]()){var _0xa132x4=[_0xa132x2,_0xa132x3];this[_0x4e14[2878]][_0x4e14[209]](function(_0xa132x2,_0xa132x3){_0xa132x3[_0x4e14[789]][_0x4e14[183]](_0xa132x3,_0xa132x4)});}};mxSelectionCellsHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1179]][_0x4e14[1148]](this);null!=this[_0x4e14[2731]]&&(this[_0x4e14[1179]][_0x4e14[2435]]()[_0x4e14[745]](this[_0x4e14[2731]]),this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[745]](this[_0x4e14[2731]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[745]](this[_0x4e14[2731]]),this[_0x4e14[2731]]=null);};function mxConnectionHandler(_0xa132x2,_0xa132x3){mxEventSource[_0x4e14[239]](this);null!=_0xa132x2&&(this[_0x4e14[1179]]=_0xa132x2,this[_0x4e14[1033]]=_0xa132x3,this[_0x4e14[176]]());}mxUtils[_0x4e14[1284]](mxConnectionHandler,mxEventSource);mxConnectionHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[1033]]= !0;mxConnectionHandler[_0x4e14[202]][_0x4e14[2880]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[2881]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[2882]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[2883]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[984]]= !0;mxConnectionHandler[_0x4e14[202]][_0x4e14[804]]= !0;mxConnectionHandler[_0x4e14[202]][_0x4e14[2884]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[2885]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[2886]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[267]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[2887]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[2888]]= !0;mxConnectionHandler[_0x4e14[202]][_0x4e14[2889]]=500;mxConnectionHandler[_0x4e14[202]][_0x4e14[2890]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[2891]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[2892]]=4;mxConnectionHandler[_0x4e14[202]][_0x4e14[2893]]=0;mxConnectionHandler[_0x4e14[202]][_0x4e14[2894]]=0;mxConnectionHandler[_0x4e14[202]][_0x4e14[2895]]= !1;mxConnectionHandler[_0x4e14[202]][_0x4e14[2823]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[2896]]= new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET);mxConnectionHandler[_0x4e14[202]][_0x4e14[2897]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[1176]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[2898]]=null;mxConnectionHandler[_0x4e14[202]][_0x4e14[2899]]=0;mxConnectionHandler[_0x4e14[202]][_0x4e14[2900]]=mxClient[_0x4e14[47]];mxConnectionHandler[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxConnectionHandler[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxConnectionHandler[_0x4e14[202]][_0x4e14[2901]]=function(){return this[_0x4e14[2884]]};mxConnectionHandler[_0x4e14[202]][_0x4e14[2902]]=function(_0xa132x2){this[_0x4e14[2884]]=_0xa132x2};mxConnectionHandler[_0x4e14[202]][_0x4e14[2156]]=function(){var _0xa132x2= new mxPolyline([],mxConstants.INVALID_COLOR);_0xa132x2[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]];_0xa132x2[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]());_0xa132x2[_0x4e14[1564]]=0;_0xa132x2[_0x4e14[1229]]= !1;_0xa132x2[_0x4e14[1522]]= !0;if(this[_0x4e14[1179]][_0x4e14[507]]==mxConstants[_0x4e14[508]]){_0xa132x2[_0x4e14[252]][_0x4e14[57]](_0x4e14[1377],_0x4e14[130])}else {var _0xa132x3=mxUtils[_0x4e14[885]](this,function(_0xa132x2){_0xa132x2=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x2),mxEvent[_0x4e14[733]](_0xa132x2));return this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](this[_0x4e14[1179]][_0x4e14[999]](_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]]));});mxEvent[_0x4e14[2733]](_0xa132x2[_0x4e14[252]],this[_0x4e14[1179]],_0xa132x3);};return _0xa132x2;};mxConnectionHandler[_0x4e14[202]][_0x4e14[176]]=function(){this[_0x4e14[1179]][_0x4e14[1133]](this);this[_0x4e14[2885]]=this[_0x4e14[1689]]();this[_0x4e14[2886]]= new mxConstraintHandler(this[_0x4e14[1179]]);this[_0x4e14[1176]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2){null!=this[_0x4e14[2903]]&&(this[_0x4e14[2903]]=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](this[_0x4e14[2903]][_0x4e14[246]]));null!=this[_0x4e14[2903]]?this[_0x4e14[2905]](this[_0x4e14[2904]],this[_0x4e14[2903]]):(this[_0x4e14[2906]](this[_0x4e14[2904]]),this[_0x4e14[257]]=null);this[_0x4e14[2886]][_0x4e14[862]]();});this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[169]](mxEvent.CHANGE,this[_0x4e14[1176]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.SCALE,this[_0x4e14[1176]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.TRANSLATE,this[_0x4e14[1176]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x4e14[1176]]);this[_0x4e14[2898]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2906]](this[_0x4e14[2904]])});this[_0x4e14[1179]][_0x4e14[169]](mxEvent.START_EDITING,this[_0x4e14[2898]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.DOWN,this[_0x4e14[2898]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.UP,this[_0x4e14[2898]]);};mxConnectionHandler[_0x4e14[202]][_0x4e14[2907]]=function(_0xa132x2){return !0};mxConnectionHandler[_0x4e14[202]][_0x4e14[1689]]=function(){var _0xa132x2= new mxCellMarker(this[_0x4e14[1179]]);_0xa132x2[_0x4e14[2859]]= !0;_0xa132x2[_0x4e14[736]]=mxUtils[_0x4e14[885]](this,function(_0xa132x3,_0xa132x4){_0xa132x4=mxCellMarker[_0x4e14[202]][_0x4e14[736]][_0x4e14[183]](_0xa132x2,arguments);this[_0x4e14[267]]=null;if(!this[_0x4e14[2907]](_0xa132x4)){return null};null!=_0xa132x4?this[_0x4e14[2908]]()?null!=this[_0x4e14[257]]&&(this[_0x4e14[267]]=this[_0x4e14[2909]](this[_0x4e14[257]][_0x4e14[246]],_0xa132x4),null!=this[_0x4e14[267]]&&0==this[_0x4e14[267]][_0x4e14[67]]&&(_0xa132x4=null,this[_0x4e14[2901]]()&&(this[_0x4e14[267]]=null))):this[_0x4e14[2671]](_0xa132x4)||(_0xa132x4=null):this[_0x4e14[2908]]()&&(!this[_0x4e14[2901]]()&&!this[_0x4e14[1179]][_0x4e14[2406]])&&(this[_0x4e14[267]]=_0x4e14[110]);return _0xa132x4;});_0xa132x2[_0x4e14[2872]]=mxUtils[_0x4e14[885]](this,function(_0xa132x3){return this[_0x4e14[2908]]()?null==this[_0x4e14[267]]:mxCellMarker[_0x4e14[202]][_0x4e14[2872]][_0x4e14[183]](_0xa132x2,arguments)});_0xa132x2[_0x4e14[2873]]=mxUtils[_0x4e14[885]](this,function(_0xa132x3,_0xa132x4,_0xa132x5){return null==this[_0x4e14[2882]]||this[_0x4e14[2908]]()?mxCellMarker[_0x4e14[202]][_0x4e14[2873]][_0x4e14[183]](_0xa132x2,arguments):null});_0xa132x2[_0x4e14[1825]]=mxUtils[_0x4e14[885]](this,function(_0xa132x3,_0xa132x4){return null!=this[_0x4e14[2882]]||this[_0x4e14[2908]]()?!0:mxCellMarker[_0x4e14[202]][_0x4e14[1825]][_0x4e14[183]](_0xa132x2,arguments)});return _0xa132x2;};mxConnectionHandler[_0x4e14[202]][_0x4e14[861]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[257]]=_0xa132x2;this[_0x4e14[2823]]= new mxPoint(_0xa132x3,_0xa132x4);this[_0x4e14[2897]]=null!=_0xa132x5?_0xa132x5:this[_0x4e14[2910]](null);this[_0x4e14[2885]][_0x4e14[2860]]=this[_0x4e14[2885]][_0x4e14[2853]];this[_0x4e14[2885]][_0x4e14[2862]]=_0xa132x2;this[_0x4e14[2885]][_0x4e14[811]]();this[_0x4e14[746]]( new mxEventObject(mxEvent.START,_0x4e14[724],this[_0x4e14[257]]));};mxConnectionHandler[_0x4e14[202]][_0x4e14[2908]]=function(){return null!=this[_0x4e14[2823]]&&null!=this[_0x4e14[253]]};mxConnectionHandler[_0x4e14[202]][_0x4e14[2671]]=function(_0xa132x2){return this[_0x4e14[1179]][_0x4e14[2671]](_0xa132x2)};mxConnectionHandler[_0x4e14[202]][_0x4e14[2672]]=function(_0xa132x2){return !0};mxConnectionHandler[_0x4e14[202]][_0x4e14[2909]]=function(_0xa132x2,_0xa132x3){return !this[_0x4e14[2672]](_0xa132x3)?_0x4e14[110]:this[_0x4e14[1179]][_0x4e14[2500]](null,_0xa132x2,_0xa132x3)};mxConnectionHandler[_0x4e14[202]][_0x4e14[2911]]=function(_0xa132x2){return this[_0x4e14[2882]]};mxConnectionHandler[_0x4e14[202]][_0x4e14[2912]]=function(_0xa132x2){return null!=_0xa132x2[_0x4e14[963]]&&_0xa132x2[_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==this[_0x4e14[1179]][_0x4e14[526]]?!0:this[_0x4e14[2880]]};mxConnectionHandler[_0x4e14[202]][_0x4e14[2913]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[2911]](_0xa132x2);if(null!=_0xa132x3&&null!=_0xa132x2){this[_0x4e14[2903]]=_0xa132x2;var _0xa132x4=[],_0xa132x5= new mxRectangle(0,0,_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]]),_0xa132x9= new mxImageShape(_0xa132x5,_0xa132x3[_0x4e14[390]],null,null,0);_0xa132x9[_0x4e14[1674]]= !1;this[_0x4e14[2912]](_0xa132x2)?(_0xa132x9[_0x4e14[507]]=mxConstants[_0x4e14[1656]],_0xa132x9[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[526]])):(_0xa132x9[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]==mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[508]]:mxConstants[_0x4e14[1523]],_0xa132x9[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]()),this[_0x4e14[2881]]&&null!=_0xa132x9[_0x4e14[252]][_0x4e14[328]]&&_0xa132x9[_0x4e14[252]][_0x4e14[265]][_0x4e14[950]](_0xa132x9[_0x4e14[252]],_0xa132x9[_0x4e14[252]][_0x4e14[265]][_0x4e14[285]]));_0xa132x9[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[2914]];var _0xa132xa=mxUtils[_0x4e14[885]](this,function(){return null!=this[_0x4e14[2915]]?this[_0x4e14[2915]]:_0xa132x2}),_0xa132x3=mxUtils[_0x4e14[885]](this,function(_0xa132x2){mxEvent[_0x4e14[721]](_0xa132x2)||(this[_0x4e14[2916]]=_0xa132x9,this[_0x4e14[1179]][_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x2,_0xa132xa())))});mxEvent[_0x4e14[2733]](_0xa132x9[_0x4e14[252]],this[_0x4e14[1179]],_0xa132xa,_0xa132x3);_0xa132x4[_0x4e14[207]](_0xa132x9);this[_0x4e14[2905]](_0xa132x4,this[_0x4e14[2903]]);return _0xa132x4;};return null;};mxConnectionHandler[_0x4e14[202]][_0x4e14[2905]]=function(_0xa132x2,_0xa132x3){if(null!=_0xa132x2&&null!=_0xa132x2[0]&&null!=_0xa132x3){var _0xa132x4=this[_0x4e14[2917]](_0xa132x2[0],_0xa132x3);_0xa132x2[0][_0x4e14[1562]][_0x4e14[235]]=_0xa132x4[_0x4e14[235]];_0xa132x2[0][_0x4e14[1562]][_0x4e14[236]]=_0xa132x4[_0x4e14[236]];_0xa132x2[0][_0x4e14[258]]();}};mxConnectionHandler[_0x4e14[202]][_0x4e14[2917]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x5=_0xa132x3[_0x4e14[241]](),_0xa132x9=_0xa132x3[_0x4e14[242]]();if(this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x3[_0x4e14[246]])){var _0xa132xa=this[_0x4e14[1179]][_0x4e14[1731]](_0xa132x3[_0x4e14[246]]),_0xa132x5=0!=_0xa132xa[_0x4e14[117]]?_0xa132x3[_0x4e14[235]]+_0xa132xa[_0x4e14[117]]*_0xa132x4/2:_0xa132x5,_0xa132x9=0!=_0xa132xa[_0x4e14[119]]?_0xa132x3[_0x4e14[236]]+_0xa132xa[_0x4e14[119]]*_0xa132x4/2:_0xa132x9,_0xa132xa=mxUtils[_0x4e14[431]](mxUtils[_0x4e14[433]](_0xa132x3[_0x4e14[124]],mxConstants.STYLE_ROTATION)||0);if(0!=_0xa132xa){var _0xa132x4=Math[_0x4e14[426]](_0xa132xa),_0xa132xa=Math[_0x4e14[427]](_0xa132xa),_0xa132x12= new mxPoint(_0xa132x3[_0x4e14[241]](),_0xa132x3[_0x4e14[242]]()),_0xa132x9=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x5,_0xa132x9),_0xa132x4,_0xa132xa,_0xa132x12),_0xa132x5=_0xa132x9[_0x4e14[235]],_0xa132x9=_0xa132x9[_0x4e14[236]]};};return  new mxPoint(_0xa132x5-_0xa132x2[_0x4e14[1562]][_0x4e14[117]]/2,_0xa132x9-_0xa132x2[_0x4e14[1562]][_0x4e14[119]]/2);};mxConnectionHandler[_0x4e14[202]][_0x4e14[2906]]=function(_0xa132x2){if(null!=_0xa132x2){this[_0x4e14[2903]]=null;for(var _0xa132x3=0;_0xa132x3<_0xa132x2[_0x4e14[67]];_0xa132x3++){_0xa132x2[_0xa132x3][_0x4e14[515]]()};}};mxConnectionHandler[_0x4e14[202]][_0x4e14[2918]]=function(_0xa132x2){return !this[_0x4e14[1179]][_0x4e14[2579]](_0xa132x2[_0x4e14[727]]())&&(null!=this[_0x4e14[2886]][_0x4e14[2919]]&&null!=this[_0x4e14[2886]][_0x4e14[2920]]||null!=this[_0x4e14[257]]&&null==this[_0x4e14[267]]&&(null==this[_0x4e14[2904]]||null!=this[_0x4e14[2904]]&&null!=this[_0x4e14[2916]]))};mxConnectionHandler[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[2899]]++;if(this[_0x4e14[994]]()&&this[_0x4e14[1179]][_0x4e14[994]]()&&!_0xa132x3[_0x4e14[721]]()&&!this[_0x4e14[2908]]()&&this[_0x4e14[2918]](_0xa132x3)){null!=this[_0x4e14[2886]][_0x4e14[2920]]&&null!=this[_0x4e14[2886]][_0x4e14[2919]]&&null!=this[_0x4e14[2886]][_0x4e14[987]]?(this[_0x4e14[2921]]=this[_0x4e14[2886]][_0x4e14[2920]],this[_0x4e14[257]]=this[_0x4e14[2886]][_0x4e14[2919]],this[_0x4e14[2823]]=this[_0x4e14[2886]][_0x4e14[987]][_0x4e14[238]]()):this[_0x4e14[2823]]= new mxPoint(_0xa132x3[_0x4e14[734]](),_0xa132x3[_0x4e14[735]]());this[_0x4e14[2897]]=this[_0x4e14[2910]](_0xa132x3);this[_0x4e14[2899]]=1;this[_0x4e14[2887]]&&null==this[_0x4e14[253]]&&(this[_0x4e14[2922]]=null,this[_0x4e14[253]]=this[_0x4e14[2156]]());if(null==this[_0x4e14[257]]&&null!=this[_0x4e14[2897]]){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[2689]](_0xa132x3[_0x4e14[727]]());this[_0x4e14[2897]][_0x4e14[246]][_0x4e14[256]][_0x4e14[2007]](_0xa132x4,!0);};this[_0x4e14[746]]( new mxEventObject(mxEvent.START,_0x4e14[724],this[_0x4e14[257]]));_0xa132x3[_0x4e14[722]]();}else {if(mxClient[_0x4e14[754]]&&this[_0x4e14[2888]]&&!this[_0x4e14[2890]]&&this[_0x4e14[994]]()&&this[_0x4e14[1179]][_0x4e14[994]]()&&!this[_0x4e14[2908]]()){this[_0x4e14[2890]]= !0;this[_0x4e14[2893]]=_0xa132x3[_0x4e14[730]]();this[_0x4e14[2894]]=_0xa132x3[_0x4e14[732]]();var _0xa132x5=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](this[_0x4e14[2885]][_0x4e14[736]](_0xa132x3));this[_0x4e14[2923]]&&window[_0x4e14[2924]](this[_0x4e14[2923]]);this[_0x4e14[2923]]=window[_0x4e14[261]](mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[2891]]&&this[_0x4e14[2925]](_0xa132x3,_0xa132x5);this[_0x4e14[2891]]=this[_0x4e14[2890]]= !1;}),this[_0x4e14[2889]]);this[_0x4e14[2891]]= !0;}};this[_0x4e14[2926]]=this[_0x4e14[2916]];this[_0x4e14[2916]]=null;};mxConnectionHandler[_0x4e14[202]][_0x4e14[2925]]=function(_0xa132x2,_0xa132x3){null!=_0xa132x3&&(this[_0x4e14[2885]][_0x4e14[2860]]=this[_0x4e14[2885]][_0x4e14[2853]],this[_0x4e14[2885]][_0x4e14[2862]]=_0xa132x3,this[_0x4e14[2885]][_0x4e14[811]](),this[_0x4e14[2823]]= new mxPoint(_0xa132x2[_0x4e14[734]](),_0xa132x2[_0x4e14[735]]()),this[_0x4e14[2897]]=this[_0x4e14[2910]](_0xa132x2),this[_0x4e14[257]]=_0xa132x3,this[_0x4e14[746]]( new mxEventObject(mxEvent.START,_0x4e14[724],this[_0x4e14[257]])))};mxConnectionHandler[_0x4e14[202]][_0x4e14[2927]]=function(_0xa132x2){return !this[_0x4e14[1179]][_0x4e14[1712]](_0xa132x2[_0x4e14[246]])};mxConnectionHandler[_0x4e14[202]][_0x4e14[2910]]=function(_0xa132x2){return null};mxConnectionHandler[_0x4e14[202]][_0x4e14[2928]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[2885]][_0x4e14[2871]](_0xa132x2);this[_0x4e14[2886]][_0x4e14[2729]](_0xa132x2,null==this[_0x4e14[2823]]);this[_0x4e14[2915]]=_0xa132x3;};mxConnectionHandler[_0x4e14[202]][_0x4e14[2929]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[518]](),_0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[512]]();_0xa132x2[_0x4e14[235]]=_0xa132x2[_0x4e14[235]]/_0xa132x3-_0xa132x4[_0x4e14[235]];_0xa132x2[_0x4e14[236]]=_0xa132x2[_0x4e14[236]]/_0xa132x3-_0xa132x4[_0x4e14[236]];};mxConnectionHandler[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[2891]]&&(this[_0x4e14[2891]]=Math[_0x4e14[425]](this[_0x4e14[2893]]-_0xa132x3[_0x4e14[730]]())<this[_0x4e14[2892]]&&Math[_0x4e14[425]](this[_0x4e14[2894]]-_0xa132x3[_0x4e14[732]]())<this[_0x4e14[2892]]);if(!_0xa132x3[_0x4e14[721]]()&&(this[_0x4e14[2895]]||null!=this[_0x4e14[2823]]||!this[_0x4e14[1179]][_0x4e14[1009]])){!this[_0x4e14[994]]()&&null!=this[_0x4e14[2915]]&&(this[_0x4e14[2906]](this[_0x4e14[2904]]),this[_0x4e14[2915]]=null);(null!=this[_0x4e14[2823]]||this[_0x4e14[994]]()&&this[_0x4e14[1179]][_0x4e14[994]]())&&this[_0x4e14[2928]](_0xa132x3);if(null!=this[_0x4e14[2823]]){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x4= new mxPoint(this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x3[_0x4e14[734]]()/_0xa132x4)*_0xa132x4,this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x3[_0x4e14[735]]()/_0xa132x4)*_0xa132x4),_0xa132x5=null,_0xa132x9=_0xa132x4;null!=this[_0x4e14[2886]][_0x4e14[2920]]&&(null!=this[_0x4e14[2886]][_0x4e14[2919]]&&null!=this[_0x4e14[2886]][_0x4e14[987]])&&(_0xa132x5=this[_0x4e14[2886]][_0x4e14[2920]],_0xa132x9=this[_0x4e14[2886]][_0x4e14[987]][_0x4e14[238]]());var _0xa132xa=this[_0x4e14[2823]];if(null!=this[_0x4e14[2926]]){var _0xa132x12=this[_0x4e14[2926]][_0x4e14[1562]][_0x4e14[117]],_0xa132x13=this[_0x4e14[2926]][_0x4e14[1562]][_0x4e14[119]];null!=this[_0x4e14[2915]]&&this[_0x4e14[2883]]?(_0xa132x12=this[_0x4e14[2917]](this[_0x4e14[2926]],this[_0x4e14[2915]]),this[_0x4e14[2926]][_0x4e14[1562]][_0x4e14[235]]=_0xa132x12[_0x4e14[235]],this[_0x4e14[2926]][_0x4e14[1562]][_0x4e14[236]]=_0xa132x12[_0x4e14[236]]):(_0xa132x12= new mxRectangle(_0xa132x3[_0x4e14[734]]()+this[_0x4e14[2896]][_0x4e14[235]],_0xa132x3[_0x4e14[735]]()+this[_0x4e14[2896]][_0x4e14[236]],_0xa132x12,_0xa132x13),this[_0x4e14[2926]][_0x4e14[1562]]=_0xa132x12);this[_0x4e14[2926]][_0x4e14[258]]();};if(null!=this[_0x4e14[2897]]){this[_0x4e14[2897]][_0x4e14[439]]=[null,null!=this[_0x4e14[2915]]?null:_0xa132x9];this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2289]](this[_0x4e14[2897]],this[_0x4e14[257]],!0,this[_0x4e14[2921]]);null!=this[_0x4e14[2915]]&&(null==_0xa132x5&&(_0xa132x5=this[_0x4e14[1179]][_0x4e14[2288]](this[_0x4e14[2897]],this[_0x4e14[257]],!1)),this[_0x4e14[2897]][_0x4e14[2088]](null,!1),this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2289]](this[_0x4e14[2897]],this[_0x4e14[2915]],!1,_0xa132x5));_0xa132xa=null;if(null!=this[_0x4e14[2922]]){_0xa132xa=[];for(_0xa132x9=0;_0xa132x9<this[_0x4e14[2922]][_0x4e14[67]];_0xa132x9++){_0xa132x5=this[_0x4e14[2922]][_0xa132x9][_0x4e14[238]](),this[_0x4e14[2929]](_0xa132x5),_0xa132xa[_0xa132x9]=_0xa132x5};};this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2282]](this[_0x4e14[2897]],_0xa132xa,this[_0x4e14[257]],this[_0x4e14[2915]]);this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2283]](this[_0x4e14[2897]],this[_0x4e14[257]],this[_0x4e14[2915]]);_0xa132x9=this[_0x4e14[2897]][_0x4e14[439]][this[_0x4e14[2897]][_0x4e14[439]][_0x4e14[67]]-1];_0xa132xa=this[_0x4e14[2897]][_0x4e14[439]][0];}else {null!=this[_0x4e14[2915]]&&null==this[_0x4e14[2886]][_0x4e14[2920]]&&(_0xa132x12=this[_0x4e14[2930]](this[_0x4e14[2915]],_0xa132x3),null!=_0xa132x12&&(_0xa132x9=_0xa132x12)),null==this[_0x4e14[2921]]&&null!=this[_0x4e14[257]]&&(_0xa132x12=this[_0x4e14[2931]](this[_0x4e14[257]],null!=this[_0x4e14[2922]]&&0<this[_0x4e14[2922]][_0x4e14[67]]?this[_0x4e14[2922]][0]:_0xa132x9,_0xa132x3),null!=_0xa132x12&&(_0xa132xa=_0xa132x12))};if(null==this[_0x4e14[2915]]&&this[_0x4e14[2900]]){_0xa132x12=_0xa132xa;null!=this[_0x4e14[2897]]&&2<this[_0x4e14[2897]][_0x4e14[439]][_0x4e14[67]]&&(_0xa132x5=this[_0x4e14[2897]][_0x4e14[439]][this[_0x4e14[2897]][_0x4e14[439]][_0x4e14[67]]-2],null!=_0xa132x5&&(_0xa132x12=_0xa132x5));_0xa132x5=_0xa132x9[_0x4e14[235]]-_0xa132x12[_0x4e14[235]];_0xa132x12=_0xa132x9[_0x4e14[236]]-_0xa132x12[_0x4e14[236]];_0xa132x13=Math[_0x4e14[428]](_0xa132x5*_0xa132x5+_0xa132x12*_0xa132x12);if(0==_0xa132x13){return };_0xa132x9[_0x4e14[235]]-=4*_0xa132x5/_0xa132x13;_0xa132x9[_0x4e14[236]]-=4*_0xa132x12/_0xa132x13;};if(null==this[_0x4e14[253]]&&(_0xa132x5=Math[_0x4e14[425]](_0xa132x4[_0x4e14[235]]-this[_0x4e14[2823]][_0x4e14[235]]),_0xa132x12=Math[_0x4e14[425]](_0xa132x4[_0x4e14[236]]-this[_0x4e14[2823]][_0x4e14[236]]),_0xa132x5>this[_0x4e14[1179]][_0x4e14[2353]]||_0xa132x12>this[_0x4e14[1179]][_0x4e14[2353]])){this[_0x4e14[253]]=this[_0x4e14[2156]](),this[_0x4e14[2928]](_0xa132x3)};null!=this[_0x4e14[253]]&&(null!=this[_0x4e14[2897]]?this[_0x4e14[253]][_0x4e14[1525]]=this[_0x4e14[2897]][_0x4e14[439]]:(_0xa132x4=[_0xa132xa],null!=this[_0x4e14[2922]]&&(_0xa132x4=_0xa132x4[_0x4e14[1919]](this[_0x4e14[2922]])),_0xa132x4[_0x4e14[207]](_0xa132x9),this[_0x4e14[253]][_0x4e14[1525]]=_0xa132x4),this[_0x4e14[2932]]());mxEvent[_0x4e14[722]](_0xa132x3[_0x4e14[727]]());_0xa132x3[_0x4e14[722]]();}else {!this[_0x4e14[994]]()||!this[_0x4e14[1179]][_0x4e14[994]]()?this[_0x4e14[2886]][_0x4e14[862]]():this[_0x4e14[257]]!=this[_0x4e14[2915]]&&null==this[_0x4e14[2897]]?(this[_0x4e14[2906]](this[_0x4e14[2904]]),this[_0x4e14[2904]]=null,null!=this[_0x4e14[2915]]&&null==this[_0x4e14[267]]&&(this[_0x4e14[2904]]=this[_0x4e14[2913]](this[_0x4e14[2915]]),null==this[_0x4e14[2904]]&&(this[_0x4e14[2915]][_0x4e14[1609]](mxConstants.CURSOR_CONNECT),_0xa132x3[_0x4e14[722]]())),this[_0x4e14[257]]=this[_0x4e14[2915]]):this[_0x4e14[257]]==this[_0x4e14[2915]]&&(null!=this[_0x4e14[2915]]&&null==this[_0x4e14[2904]]&&!this[_0x4e14[1179]][_0x4e14[1009]])&&_0xa132x3[_0x4e14[722]]()};null!=this[_0x4e14[2886]][_0x4e14[2920]]&&this[_0x4e14[2885]][_0x4e14[862]]();if(!this[_0x4e14[1179]][_0x4e14[1009]]&&null!=this[_0x4e14[2915]]&&null!=this[_0x4e14[2904]]){_0xa132x4= !1;_0xa132xa=_0xa132x3[_0x4e14[728]]();for(_0xa132x9=0;_0xa132x9<this[_0x4e14[2904]][_0x4e14[67]]&& !_0xa132x4;_0xa132x9++){_0xa132x4=_0xa132xa==this[_0x4e14[2904]][_0xa132x9][_0x4e14[252]]||_0xa132xa[_0x4e14[265]]==this[_0x4e14[2904]][_0xa132x9][_0x4e14[252]]};_0xa132x4||this[_0x4e14[2933]](this[_0x4e14[2915]],this[_0x4e14[2904]],_0xa132x3);};}else {this[_0x4e14[2886]][_0x4e14[862]]()};};mxConnectionHandler[_0x4e14[202]][_0x4e14[2930]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=null,_0xa132x5=_0xa132x2[_0x4e14[441]],_0xa132x9=_0xa132x5[_0x4e14[2305]](_0xa132x2);if(null!=_0xa132x9){var _0xa132xa=null!=this[_0x4e14[2922]]&&0<this[_0x4e14[2922]][_0x4e14[67]]?this[_0x4e14[2922]][this[_0x4e14[2922]][_0x4e14[67]]-1]: new mxPoint(this[_0x4e14[257]][_0x4e14[241]](),this[_0x4e14[257]][_0x4e14[242]]()),_0xa132x5=_0xa132x9(_0xa132x5[_0x4e14[2087]](_0xa132x2),this[_0x4e14[2897]],_0xa132xa,!1);null!=_0xa132x5&&(_0xa132x4=_0xa132x5);}else {_0xa132x4= new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]())};return _0xa132x4;};mxConnectionHandler[_0x4e14[202]][_0x4e14[2931]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x4=null;var _0xa132x5=_0xa132x2[_0x4e14[441]],_0xa132x9=_0xa132x5[_0x4e14[2305]](_0xa132x2),_0xa132xa= new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]());if(null!=_0xa132x9){var _0xa132x12=mxUtils[_0x4e14[433]](_0xa132x2[_0x4e14[124]],mxConstants.STYLE_ROTATION,0),_0xa132x13=-_0xa132x12*(Math[_0x4e14[424]]/180);0!=_0xa132x12&&(_0xa132x3=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x3[_0x4e14[235]],_0xa132x3[_0x4e14[236]]),Math[_0x4e14[426]](_0xa132x13),Math[_0x4e14[427]](_0xa132x13),_0xa132xa));_0xa132x2=_0xa132x9(_0xa132x5[_0x4e14[2087]](_0xa132x2),_0xa132x2,_0xa132x3,!1);null!=_0xa132x2&&(0!=_0xa132x12&&(_0xa132x2=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]]),Math[_0x4e14[426]](-_0xa132x13),Math[_0x4e14[427]](-_0xa132x13),_0xa132xa)),_0xa132x4=_0xa132x2);}else {_0xa132x4=_0xa132xa};return _0xa132x4;};mxConnectionHandler[_0x4e14[202]][_0x4e14[2933]]=function(_0xa132x2,_0xa132x3,_0xa132x4){};mxConnectionHandler[_0x4e14[202]][_0x4e14[2934]]=function(_0xa132x2){return null!=_0xa132x2[_0x4e14[248]]()};mxConnectionHandler[_0x4e14[202]][_0x4e14[2935]]=function(_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],_0xa132x2[_0x4e14[730]](),_0xa132x2[_0x4e14[732]]()),_0xa132x4=Math[_0x4e14[425]](_0xa132x3[_0x4e14[235]]-this[_0x4e14[2823]][_0x4e14[235]]),_0xa132x3=Math[_0x4e14[425]](_0xa132x3[_0x4e14[236]]-this[_0x4e14[2823]][_0x4e14[236]]);if(null!=this[_0x4e14[2922]]||1<this[_0x4e14[2899]]&&(_0xa132x4>this[_0x4e14[1179]][_0x4e14[2353]]||_0xa132x3>this[_0x4e14[1179]][_0x4e14[2353]])){null==this[_0x4e14[2922]]&&(this[_0x4e14[2922]]=[]),_0xa132x4=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]],_0xa132x3= new mxPoint(this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[734]]()/_0xa132x4)*_0xa132x4,this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[735]]()/_0xa132x4)*_0xa132x4),this[_0x4e14[2922]][_0x4e14[207]](_0xa132x3)};};mxConnectionHandler[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&this[_0x4e14[2908]]()){if(this[_0x4e14[2887]]&&!this[_0x4e14[2934]](_0xa132x3)){this[_0x4e14[2935]](_0xa132x3);_0xa132x3[_0x4e14[722]]();return;};if(null==this[_0x4e14[267]]){var _0xa132x4=null!=this[_0x4e14[257]]?this[_0x4e14[257]][_0x4e14[246]]:null,_0xa132x5=null;null!=this[_0x4e14[2886]][_0x4e14[2920]]&&null!=this[_0x4e14[2886]][_0x4e14[2919]]&&(_0xa132x5=this[_0x4e14[2886]][_0x4e14[2919]][_0x4e14[246]]);null==_0xa132x5&&this[_0x4e14[2885]][_0x4e14[2867]]()&&(_0xa132x5=this[_0x4e14[2885]][_0x4e14[2861]][_0x4e14[246]]);this[_0x4e14[807]](_0xa132x4,_0xa132x5,_0xa132x3[_0x4e14[727]](),_0xa132x3[_0x4e14[736]]());}else {null!=this[_0x4e14[257]]&&(null!=this[_0x4e14[2885]][_0x4e14[2861]]&&this[_0x4e14[257]][_0x4e14[246]]==this[_0x4e14[2885]][_0x4e14[2861]][_0x4e14[246]])&&this[_0x4e14[1179]][_0x4e14[2459]](this[_0x4e14[2885]][_0x4e14[1097]],evt),0<this[_0x4e14[267]][_0x4e14[67]]&&this[_0x4e14[1179]][_0x4e14[2580]](this[_0x4e14[267]])};this[_0x4e14[2906]](this[_0x4e14[2904]]);_0xa132x3[_0x4e14[722]]();};null!=this[_0x4e14[2823]]&&this[_0x4e14[862]]();this[_0x4e14[2891]]=this[_0x4e14[2890]]= !1;};mxConnectionHandler[_0x4e14[202]][_0x4e14[862]]=function(){null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[515]](),this[_0x4e14[253]]=null);this[_0x4e14[2906]](this[_0x4e14[2904]]);this[_0x4e14[2904]]=null;this[_0x4e14[2885]][_0x4e14[862]]();this[_0x4e14[2886]][_0x4e14[862]]();this[_0x4e14[2921]]=this[_0x4e14[267]]=this[_0x4e14[257]]=this[_0x4e14[2897]]=this[_0x4e14[2926]]=null;this[_0x4e14[2899]]=0;this[_0x4e14[2916]]=this[_0x4e14[2823]]=null;this[_0x4e14[746]]( new mxEventObject(mxEvent.RESET));};mxConnectionHandler[_0x4e14[202]][_0x4e14[2932]]=function(){var _0xa132x2=null==this[_0x4e14[267]];this[_0x4e14[253]][_0x4e14[1307]]=this[_0x4e14[2936]](_0xa132x2);_0xa132x2=this[_0x4e14[2937]](_0xa132x2);this[_0x4e14[253]][_0x4e14[1336]]=_0xa132x2;this[_0x4e14[253]][_0x4e14[258]]();};mxConnectionHandler[_0x4e14[202]][_0x4e14[2937]]=function(_0xa132x2){return _0xa132x2?mxConstants[_0x4e14[2829]]:mxConstants[_0x4e14[2938]]};mxConnectionHandler[_0x4e14[202]][_0x4e14[2936]]=function(_0xa132x2){return _0xa132x2?3:1};mxConnectionHandler[_0x4e14[202]][_0x4e14[807]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=_0xa132x3||this[_0x4e14[2901]]()||this[_0x4e14[1179]][_0x4e14[2406]]){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132xa=null;_0xa132x9[_0x4e14[473]]();try{if(null!=_0xa132x2&&(null==_0xa132x3&&this[_0x4e14[2901]]())&&(_0xa132x3=this[_0x4e14[2939]](_0xa132x4,_0xa132x2),null!=_0xa132x3)){_0xa132x5=this[_0x4e14[1179]][_0x4e14[564]]([_0xa132x3],_0xa132x4,_0xa132x5);if(null==_0xa132x5||!this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[250]](_0xa132x5)){var _0xa132x12=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x5);if(null!=_0xa132x12){var _0xa132x13=_0xa132x9[_0x4e14[1721]](_0xa132x3);_0xa132x13[_0x4e14[235]]-=_0xa132x12[_0x4e14[2078]][_0x4e14[235]];_0xa132x13[_0x4e14[236]]-=_0xa132x12[_0x4e14[2078]][_0x4e14[236]];};}else {_0xa132x5=this[_0x4e14[1179]][_0x4e14[902]]()};this[_0x4e14[1179]][_0x4e14[2103]](_0xa132x3,_0xa132x5);};var _0xa132x14=this[_0x4e14[1179]][_0x4e14[902]]();null!=_0xa132x2&&(null!=_0xa132x3&&_0xa132x9[_0x4e14[1197]](_0xa132x2)==_0xa132x9[_0x4e14[1197]](_0xa132x3)&&_0xa132x9[_0x4e14[1197]](_0xa132x9[_0x4e14[1197]](_0xa132x2))!=_0xa132x9[_0x4e14[501]]())&&(_0xa132x14=_0xa132x9[_0x4e14[1197]](_0xa132x2),null!=_0xa132x2[_0x4e14[256]]&&_0xa132x2[_0x4e14[256]][_0x4e14[1500]]&&(null!=_0xa132x3[_0x4e14[256]]&&_0xa132x3[_0x4e14[256]][_0x4e14[1500]])&&(_0xa132x14=_0xa132x9[_0x4e14[1197]](_0xa132x14)));_0xa132x13=_0xa132x12=null;null!=this[_0x4e14[2897]]&&(_0xa132x12=this[_0x4e14[2897]][_0x4e14[246]][_0x4e14[131]],_0xa132x13=this[_0x4e14[2897]][_0x4e14[246]][_0x4e14[124]]);_0xa132xa=this[_0x4e14[1960]](_0xa132x14,null,_0xa132x12,_0xa132x2,_0xa132x3,_0xa132x13);if(null!=_0xa132xa){this[_0x4e14[1179]][_0x4e14[2545]](_0xa132xa,_0xa132x2,!0,this[_0x4e14[2921]]);this[_0x4e14[1179]][_0x4e14[2545]](_0xa132xa,_0xa132x3,!1,this[_0x4e14[2886]][_0x4e14[2920]]);null!=this[_0x4e14[2897]]&&_0xa132x9[_0x4e14[1724]](_0xa132xa,this[_0x4e14[2897]][_0x4e14[246]][_0x4e14[256]]);var _0xa132x15=_0xa132x9[_0x4e14[1721]](_0xa132xa);null==_0xa132x15&&(_0xa132x15= new mxGeometry,_0xa132x15[_0x4e14[1500]]= !0,_0xa132x9[_0x4e14[1724]](_0xa132xa,_0xa132x15));if(null!=this[_0x4e14[2922]]&&0<this[_0x4e14[2922]][_0x4e14[67]]){var _0xa132x16=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]],_0xa132x17=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[513]];_0xa132x15[_0x4e14[1525]]=[];for(_0xa132x2=0;_0xa132x2<this[_0x4e14[2922]][_0x4e14[67]];_0xa132x2++){var _0xa132x18=this[_0x4e14[2922]][_0xa132x2];_0xa132x15[_0x4e14[1525]][_0x4e14[207]]( new mxPoint(_0xa132x18[_0x4e14[235]]/_0xa132x16-_0xa132x17[_0x4e14[235]],_0xa132x18[_0x4e14[236]]/_0xa132x16-_0xa132x17[_0x4e14[236]]));};};null==_0xa132x3&&(_0xa132x18=this[_0x4e14[1179]][_0x4e14[2689]](_0xa132x4,!1),_0xa132x18[_0x4e14[235]]-=this[_0x4e14[1179]][_0x4e14[1136]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]],_0xa132x18[_0x4e14[236]]-=this[_0x4e14[1179]][_0x4e14[1137]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]],_0xa132x15[_0x4e14[2007]](_0xa132x18,!1));this[_0x4e14[746]]( new mxEventObject(mxEvent.CONNECT,_0x4e14[246],_0xa132xa,_0x4e14[763],_0xa132x4,_0x4e14[772],_0xa132x5));};}catch(q){mxLog[_0x4e14[539]](),mxLog[_0x4e14[143]](q[_0x4e14[281]])}finally{_0xa132x9[_0x4e14[476]]()};this[_0x4e14[804]]&&this[_0x4e14[2707]](_0xa132xa,_0xa132x3);}};mxConnectionHandler[_0x4e14[202]][_0x4e14[2707]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1179]][_0x4e14[2450]](_0xa132x2)};mxConnectionHandler[_0x4e14[202]][_0x4e14[1960]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){if(null==this[_0x4e14[1033]]){return this[_0x4e14[1179]][_0x4e14[1960]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa)};_0xa132x3=this[_0x4e14[2503]](_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa);return _0xa132x3=this[_0x4e14[1179]][_0x4e14[2504]](_0xa132x3,_0xa132x2,_0xa132x5,_0xa132x9);};mxConnectionHandler[_0x4e14[202]][_0x4e14[2939]]=function(_0xa132x2,_0xa132x3){for(var _0xa132x4=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x3);null!=_0xa132x4&&_0xa132x4[_0x4e14[1500]];){_0xa132x3=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1197]](_0xa132x3),_0xa132x4=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x3)};var _0xa132x5=this[_0x4e14[1179]][_0x4e14[899]]([_0xa132x3])[0],_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1721]](_0xa132x5);if(null!=_0xa132x4){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[2689]](_0xa132x2);_0xa132x4[_0x4e14[235]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x9[_0x4e14[235]]-_0xa132x4[_0x4e14[117]]/2)-this[_0x4e14[1179]][_0x4e14[1136]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]];_0xa132x4[_0x4e14[236]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x9[_0x4e14[236]]-_0xa132x4[_0x4e14[119]]/2)-this[_0x4e14[1179]][_0x4e14[1137]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]];if(null!=this[_0x4e14[2823]]){var _0xa132xa=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x3);if(null!=_0xa132xa){var _0xa132x12=this[_0x4e14[2940]]();Math[_0x4e14[425]](this[_0x4e14[1179]][_0x4e14[1021]](this[_0x4e14[2823]][_0x4e14[235]])-this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x9[_0x4e14[235]]))<=_0xa132x12?_0xa132x4[_0x4e14[235]]=_0xa132xa[_0x4e14[235]]:Math[_0x4e14[425]](this[_0x4e14[1179]][_0x4e14[1021]](this[_0x4e14[2823]][_0x4e14[236]])-this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x9[_0x4e14[236]]))<=_0xa132x12&&(_0xa132x4[_0x4e14[236]]=_0xa132xa[_0x4e14[236]]);};};};return _0xa132x5;};mxConnectionHandler[_0x4e14[202]][_0x4e14[2940]]=function(){return this[_0x4e14[1179]][_0x4e14[997]]()?this[_0x4e14[1179]][_0x4e14[1020]]:this[_0x4e14[1179]][_0x4e14[2353]]};mxConnectionHandler[_0x4e14[202]][_0x4e14[2503]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=null;null!=this[_0x4e14[1033]]&&(_0xa132x9=this[_0x4e14[1033]](_0xa132x3,_0xa132x4,_0xa132x5));null==_0xa132x9&&(_0xa132x9= new mxCell(_0xa132x2||_0x4e14[110]),_0xa132x9[_0x4e14[1994]](!0),_0xa132x9[_0x4e14[475]](_0xa132x5),_0xa132x2= new mxGeometry,_0xa132x2[_0x4e14[1500]]= !0,_0xa132x9[_0x4e14[1724]](_0xa132x2));return _0xa132x9;};mxConnectionHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1179]][_0x4e14[1148]](this);null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[515]](),this[_0x4e14[253]]=null);null!=this[_0x4e14[2885]]&&(this[_0x4e14[2885]][_0x4e14[515]](),this[_0x4e14[2885]]=null);null!=this[_0x4e14[2886]]&&(this[_0x4e14[2886]][_0x4e14[515]](),this[_0x4e14[2886]]=null);null!=this[_0x4e14[1176]]&&(this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[745]](this[_0x4e14[1176]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[745]](this[_0x4e14[1176]]),this[_0x4e14[1176]]=null);null!=this[_0x4e14[2898]]&&(this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2898]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[745]](this[_0x4e14[2898]]),this[_0x4e14[2898]]=null);};function mxConstraintHandler(_0xa132x2){this[_0x4e14[1179]]=_0xa132x2}mxConstraintHandler[_0x4e14[202]][_0x4e14[2941]]= new mxImage(mxClient[_0x4e14[88]]+_0x4e14[2942],5,5);mxConstraintHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxConstraintHandler[_0x4e14[202]][_0x4e14[984]]= !0;mxConstraintHandler[_0x4e14[202]][_0x4e14[2943]]=mxConstants[_0x4e14[2854]];mxConstraintHandler[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxConstraintHandler[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxConstraintHandler[_0x4e14[202]][_0x4e14[862]]=function(){if(null!=this[_0x4e14[2944]]){for(var _0xa132x2=0;_0xa132x2<this[_0x4e14[2944]][_0x4e14[67]];_0xa132x2++){this[_0x4e14[2944]][_0xa132x2][_0x4e14[515]]()};this[_0x4e14[2944]]=null;};null!=this[_0x4e14[2945]]&&(this[_0x4e14[2945]][_0x4e14[515]](),this[_0x4e14[2945]]=null);this[_0x4e14[2946]]=this[_0x4e14[2919]]=this[_0x4e14[987]]=this[_0x4e14[2947]]=this[_0x4e14[2920]]=null;};mxConstraintHandler[_0x4e14[202]][_0x4e14[2636]]=function(){return this[_0x4e14[1179]][_0x4e14[2636]]()};mxConstraintHandler[_0x4e14[202]][_0x4e14[2948]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return this[_0x4e14[2941]]};mxConstraintHandler[_0x4e14[202]][_0x4e14[2949]]=function(_0xa132x2,_0xa132x3){return !1};mxConstraintHandler[_0x4e14[202]][_0x4e14[2729]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[994]]()&&!this[_0x4e14[2949]](_0xa132x2)){var _0xa132x4=this[_0x4e14[2636]](),_0xa132x5= new mxRectangle(_0xa132x2[_0x4e14[734]]()-_0xa132x4,_0xa132x2[_0x4e14[735]]()-_0xa132x4,2*_0xa132x4,2*_0xa132x4),_0xa132x9=null!=_0xa132x2[_0x4e14[736]]()?this[_0x4e14[1179]][_0x4e14[2565]](_0xa132x2[_0x4e14[736]]()):!1;if(null==this[_0x4e14[2947]]||!mxUtils[_0x4e14[1825]](this[_0x4e14[2947]],_0xa132x5)||null!=_0xa132x2[_0x4e14[248]]()&&null!=this[_0x4e14[2919]]&&_0xa132x9){if(this[_0x4e14[2947]]=null,_0xa132x2[_0x4e14[248]]()!=this[_0x4e14[2919]]){if(this[_0x4e14[2919]]=null,this[_0x4e14[1531]]=null!=_0xa132x2[_0x4e14[248]]()&&_0xa132x9?this[_0x4e14[1179]][_0x4e14[2538]](_0xa132x2[_0x4e14[248]](),_0xa132x3):null,null!=this[_0x4e14[1531]]){this[_0x4e14[2919]]=_0xa132x2[_0x4e14[248]]();this[_0x4e14[2947]]= new mxRectangle(_0xa132x2[_0x4e14[248]]()[_0x4e14[235]],_0xa132x2[_0x4e14[248]]()[_0x4e14[236]],_0xa132x2[_0x4e14[248]]()[_0x4e14[117]],_0xa132x2[_0x4e14[248]]()[_0x4e14[119]]);if(null!=this[_0x4e14[2944]]){for(_0xa132x9=0;_0xa132x9<this[_0x4e14[2944]][_0x4e14[67]];_0xa132x9++){this[_0x4e14[2944]][_0xa132x9][_0x4e14[515]]()};this[_0x4e14[2946]]=this[_0x4e14[2944]]=null;};this[_0x4e14[2944]]=[];this[_0x4e14[2946]]=[];for(_0xa132x9=0;_0xa132x9<this[_0x4e14[1531]][_0x4e14[67]];_0xa132x9++){var _0xa132xa=this[_0x4e14[1179]][_0x4e14[2290]](_0xa132x2[_0x4e14[248]](),this[_0x4e14[1531]][_0xa132x9]),_0xa132x12=this[_0x4e14[2948]](_0xa132x2[_0x4e14[248]](),this[_0x4e14[1531]][_0xa132x9],_0xa132xa),_0xa132x13=_0xa132x12[_0x4e14[390]],_0xa132x12= new mxRectangle(_0xa132xa[_0x4e14[235]]-_0xa132x12[_0x4e14[117]]/2,_0xa132xa[_0x4e14[236]]-_0xa132x12[_0x4e14[119]]/2,_0xa132x12[_0x4e14[117]],_0xa132x12[_0x4e14[119]]),_0xa132x12= new mxImageShape(_0xa132x12,_0xa132x13);_0xa132x12[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[2334]]:mxConstants[_0x4e14[508]];_0xa132x12[_0x4e14[1674]]= !1;_0xa132x12[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]());null!=_0xa132x12[_0x4e14[252]][_0x4e14[328]]&&_0xa132x12[_0x4e14[252]][_0x4e14[265]][_0x4e14[950]](_0xa132x12[_0x4e14[252]],_0xa132x12[_0x4e14[252]][_0x4e14[265]][_0x4e14[285]]);_0xa132x13=mxUtils[_0x4e14[885]](this,function(){return null!=this[_0x4e14[2919]]?this[_0x4e14[2919]]:_0xa132x2[_0x4e14[248]]()});_0xa132x12[_0x4e14[258]]();mxEvent[_0x4e14[2733]](_0xa132x12[_0x4e14[252]],this[_0x4e14[1179]],_0xa132x13);this[_0x4e14[2947]][_0x4e14[99]](_0xa132x12[_0x4e14[1562]]);this[_0x4e14[2944]][_0x4e14[207]](_0xa132x12);this[_0x4e14[2946]][_0x4e14[207]](_0xa132xa);};this[_0x4e14[2947]][_0x4e14[244]](_0xa132x4);}else {if(null!=this[_0x4e14[2944]]){null!=this[_0x4e14[2945]]&&(this[_0x4e14[2945]][_0x4e14[515]](),this[_0x4e14[2945]]=null);for(_0xa132x9=0;_0xa132x9<this[_0x4e14[2944]][_0x4e14[67]];_0xa132x9++){this[_0x4e14[2944]][_0xa132x9][_0x4e14[515]]()};this[_0x4e14[2946]]=this[_0x4e14[2944]]=null;}}}};this[_0x4e14[987]]=this[_0x4e14[2920]]=null;if(null!=this[_0x4e14[2944]]&&null!=this[_0x4e14[1531]]&&(null==_0xa132x2[_0x4e14[248]]()||this[_0x4e14[2919]]==_0xa132x2[_0x4e14[248]]())){for(_0xa132x9=0;_0xa132x9<this[_0x4e14[2944]][_0x4e14[67]];_0xa132x9++){if(mxUtils[_0x4e14[1825]](this[_0x4e14[2944]][_0xa132x9][_0x4e14[1562]],_0xa132x5)){this[_0x4e14[2920]]=this[_0x4e14[1531]][_0xa132x9];this[_0x4e14[987]]=this[_0x4e14[2946]][_0xa132x9];_0xa132x4=this[_0x4e14[2944]][_0xa132x9][_0x4e14[1562]][_0x4e14[238]]();_0xa132x4[_0x4e14[244]](mxClient[_0x4e14[80]]?3:2);mxClient[_0x4e14[80]]&&(_0xa132x4[_0x4e14[117]]-=1,_0xa132x4[_0x4e14[119]]-=1);null==this[_0x4e14[2945]]?(_0xa132x4= new mxRectangleShape(_0xa132x4,null,this[_0x4e14[2943]],3),_0xa132x4[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]==mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[508]]:mxConstants[_0x4e14[1523]],_0xa132x4[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]()),this[_0x4e14[2945]]=_0xa132x4,_0xa132x13=mxUtils[_0x4e14[885]](this,function(){return null!=this[_0x4e14[2919]]?this[_0x4e14[2919]]:_0xa132x2[_0x4e14[248]]()}),mxEvent[_0x4e14[2733]](_0xa132x4[_0x4e14[252]],this[_0x4e14[1179]],_0xa132x13)):(this[_0x4e14[2945]][_0x4e14[1562]]=_0xa132x4,this[_0x4e14[2945]][_0x4e14[258]]());break;}}};null==this[_0x4e14[2920]]&&null!=this[_0x4e14[2945]]&&(this[_0x4e14[2945]][_0x4e14[515]](),this[_0x4e14[2945]]=null);}};mxConstraintHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[862]]()};function mxRubberband(_0xa132x2){null!=_0xa132x2&&(this[_0x4e14[1179]]=_0xa132x2,this[_0x4e14[1179]][_0x4e14[1133]](this),this[_0x4e14[2730]]=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[2950]]()}),this[_0x4e14[1179]][_0x4e14[169]](mxEvent.PAN,this[_0x4e14[2730]]),mxClient[_0x4e14[80]]&&mxEvent[_0x4e14[169]](window,_0x4e14[2428],mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[515]]()})))}mxRubberband[_0x4e14[202]][_0x4e14[2951]]=20;mxRubberband[_0x4e14[202]][_0x4e14[984]]= !0;mxRubberband[_0x4e14[202]][_0x4e14[485]]=null;mxRubberband[_0x4e14[202]][_0x4e14[2952]]=null;mxRubberband[_0x4e14[202]][_0x4e14[2953]]=0;mxRubberband[_0x4e14[202]][_0x4e14[2954]]=0;mxRubberband[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxRubberband[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxRubberband[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&this[_0x4e14[994]]()&&this[_0x4e14[1179]][_0x4e14[994]]()&&(this[_0x4e14[1179]][_0x4e14[2579]](_0xa132x3[_0x4e14[727]]())||null==_0xa132x3[_0x4e14[248]]())){var _0xa132x4=mxUtils[_0x4e14[445]](this[_0x4e14[1179]][_0x4e14[526]]),_0xa132x5=mxUtils[_0x4e14[444]](this[_0x4e14[1179]][_0x4e14[526]]);_0xa132x5[_0x4e14[235]]-=_0xa132x4[_0x4e14[235]];_0xa132x5[_0x4e14[236]]-=_0xa132x4[_0x4e14[236]];this[_0x4e14[861]](_0xa132x3[_0x4e14[730]]()+_0xa132x5[_0x4e14[235]],_0xa132x3[_0x4e14[732]]()+_0xa132x5[_0x4e14[236]]);if(mxClient[_0x4e14[133]]&&!mxClient[_0x4e14[75]]&&!mxClient[_0x4e14[76]]){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[526]],_0xa132xa=function(_0xa132x2){_0xa132x2= new mxMouseEvent(_0xa132x2);var _0xa132x3=mxUtils[_0x4e14[2196]](_0xa132x9,_0xa132x2[_0x4e14[730]](),_0xa132x2[_0x4e14[732]]());_0xa132x2[_0x4e14[725]]=_0xa132x3[_0x4e14[235]];_0xa132x2[_0x4e14[726]]=_0xa132x3[_0x4e14[236]];return _0xa132x2;};this[_0x4e14[2955]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[788]](this[_0x4e14[1179]],_0xa132xa(_0xa132x2))});this[_0x4e14[981]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[789]](this[_0x4e14[1179]],_0xa132xa(_0xa132x2))});mxEvent[_0x4e14[169]](document,_0x4e14[752],this[_0x4e14[2955]]);mxEvent[_0x4e14[169]](document,_0x4e14[753],this[_0x4e14[981]]);};_0xa132x3[_0x4e14[722]](!1);}};mxRubberband[_0x4e14[202]][_0x4e14[861]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[2823]]= new mxPoint(_0xa132x2,_0xa132x3)};mxRubberband[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&null!=this[_0x4e14[2823]]){var _0xa132x4=mxUtils[_0x4e14[444]](this[_0x4e14[1179]][_0x4e14[526]]),_0xa132x5=mxUtils[_0x4e14[445]](this[_0x4e14[1179]][_0x4e14[526]]);_0xa132x4[_0x4e14[235]]-=_0xa132x5[_0x4e14[235]];_0xa132x4[_0x4e14[236]]-=_0xa132x5[_0x4e14[236]];var _0xa132x5=_0xa132x3[_0x4e14[730]]()+_0xa132x4[_0x4e14[235]],_0xa132x4=_0xa132x3[_0x4e14[732]]()+_0xa132x4[_0x4e14[236]],_0xa132x9=this[_0x4e14[2823]][_0x4e14[235]]-_0xa132x5,_0xa132xa=this[_0x4e14[2823]][_0x4e14[236]]-_0xa132x4,_0xa132x12=this[_0x4e14[1179]][_0x4e14[2353]];if(null!=this[_0x4e14[485]]||Math[_0x4e14[425]](_0xa132x9)>_0xa132x12||Math[_0x4e14[425]](_0xa132xa)>_0xa132x12){null==this[_0x4e14[485]]&&(this[_0x4e14[485]]=this[_0x4e14[2156]]()),mxUtils[_0x4e14[2440]](),this[_0x4e14[2729]](_0xa132x5,_0xa132x4),_0xa132x3[_0x4e14[722]]()};}};mxRubberband[_0x4e14[202]][_0x4e14[2156]]=function(){null==this[_0x4e14[2952]]&&(this[_0x4e14[2952]]=document[_0x4e14[55]](_0x4e14[485]),this[_0x4e14[2952]][_0x4e14[926]]=_0x4e14[2956],mxUtils[_0x4e14[254]](this[_0x4e14[2952]],this[_0x4e14[2951]]));this[_0x4e14[1179]][_0x4e14[526]][_0x4e14[62]](this[_0x4e14[2952]]);return this[_0x4e14[2952]];};mxRubberband[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=null!=this[_0x4e14[485]];this[_0x4e14[862]]();_0xa132x4&&(_0xa132x4= new mxRectangle(this[_0x4e14[235]],this[_0x4e14[236]],this[_0x4e14[117]],this[_0x4e14[119]]),this[_0x4e14[1179]][_0x4e14[2698]](_0xa132x4,_0xa132x3[_0x4e14[727]]()),_0xa132x3[_0x4e14[722]]());};mxRubberband[_0x4e14[202]][_0x4e14[862]]=function(){null!=this[_0x4e14[485]]&&this[_0x4e14[485]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[485]]);null!=this[_0x4e14[2955]]&&(mxEvent[_0x4e14[745]](document,_0x4e14[752],this[_0x4e14[2955]]),this[_0x4e14[2955]]=null);null!=this[_0x4e14[981]]&&(mxEvent[_0x4e14[745]](document,_0x4e14[753],this[_0x4e14[981]]),this[_0x4e14[981]]=null);this[_0x4e14[2954]]=this[_0x4e14[2953]]=0;this[_0x4e14[485]]=this[_0x4e14[2823]]=null;};mxRubberband[_0x4e14[202]][_0x4e14[2729]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[2953]]=_0xa132x2;this[_0x4e14[2954]]=_0xa132x3;this[_0x4e14[2950]]();};mxRubberband[_0x4e14[202]][_0x4e14[2950]]=function(){if(null!=this[_0x4e14[485]]){var _0xa132x2=this[_0x4e14[2953]]-this[_0x4e14[1179]][_0x4e14[1136]],_0xa132x3=this[_0x4e14[2954]]-this[_0x4e14[1179]][_0x4e14[1137]];this[_0x4e14[235]]=Math[_0x4e14[243]](this[_0x4e14[2823]][_0x4e14[235]],_0xa132x2);this[_0x4e14[236]]=Math[_0x4e14[243]](this[_0x4e14[2823]][_0x4e14[236]],_0xa132x3);this[_0x4e14[117]]=Math[_0x4e14[160]](this[_0x4e14[2823]][_0x4e14[235]],_0xa132x2)-this[_0x4e14[235]];this[_0x4e14[119]]=Math[_0x4e14[160]](this[_0x4e14[2823]][_0x4e14[236]],_0xa132x3)-this[_0x4e14[236]];_0xa132x2=mxClient[_0x4e14[47]]?this[_0x4e14[1179]][_0x4e14[1137]]:0;this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=this[_0x4e14[235]]+(mxClient[_0x4e14[47]]?this[_0x4e14[1179]][_0x4e14[1136]]:0)+_0x4e14[168];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=this[_0x4e14[236]]+_0xa132x2+_0x4e14[168];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[117]]=Math[_0x4e14[160]](1,this[_0x4e14[117]])+_0x4e14[168];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[119]]=Math[_0x4e14[160]](1,this[_0x4e14[119]])+_0x4e14[168];}};mxRubberband[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[2717]]||(this[_0x4e14[2717]]= !0,this[_0x4e14[1179]][_0x4e14[1148]](this),this[_0x4e14[1179]][_0x4e14[745]](this[_0x4e14[2730]]),this[_0x4e14[862]](),null!=this[_0x4e14[2952]]&&(this[_0x4e14[2952]]=null))};function mxVertexHandler(_0xa132x2){null!=_0xa132x2&&(this[_0x4e14[724]]=_0xa132x2,this[_0x4e14[176]]())}mxVertexHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxVertexHandler[_0x4e14[202]][_0x4e14[724]]=null;mxVertexHandler[_0x4e14[202]][_0x4e14[2957]]= !1;mxVertexHandler[_0x4e14[202]][_0x4e14[1983]]=null;mxVertexHandler[_0x4e14[202]][_0x4e14[2958]]= !0;mxVertexHandler[_0x4e14[202]][_0x4e14[2959]]=null;mxVertexHandler[_0x4e14[202]][_0x4e14[2353]]=0;mxVertexHandler[_0x4e14[202]][_0x4e14[2809]]= !1;mxVertexHandler[_0x4e14[202]][_0x4e14[2960]]= !0;mxVertexHandler[_0x4e14[202]][_0x4e14[176]]=function(){this[_0x4e14[1179]]=this[_0x4e14[724]][_0x4e14[441]][_0x4e14[1179]];this[_0x4e14[2961]]=this[_0x4e14[2962]](this[_0x4e14[724]]);this[_0x4e14[1562]]= new mxRectangle(this[_0x4e14[2961]][_0x4e14[235]],this[_0x4e14[2961]][_0x4e14[236]],this[_0x4e14[2961]][_0x4e14[117]],this[_0x4e14[2961]][_0x4e14[119]]);this[_0x4e14[2732]]=this[_0x4e14[2963]](this[_0x4e14[1562]]);this[_0x4e14[2732]][_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]];this[_0x4e14[2732]][_0x4e14[1229]]= !1;this[_0x4e14[2732]][_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]());this[_0x4e14[1179]][_0x4e14[1712]](this[_0x4e14[724]][_0x4e14[246]])&&(this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[2832]]);mxEvent[_0x4e14[2733]](this[_0x4e14[2732]][_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);if(0>=mxGraphHandler[_0x4e14[202]][_0x4e14[2795]]||this[_0x4e14[1179]][_0x4e14[2694]]()<mxGraphHandler[_0x4e14[202]][_0x4e14[2795]]){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[2657]](this[_0x4e14[724]][_0x4e14[246]]);this[_0x4e14[2964]]=[];if(_0xa132x2||this[_0x4e14[1179]][_0x4e14[2628]](this[_0x4e14[724]][_0x4e14[246]])&&2<=this[_0x4e14[724]][_0x4e14[117]]&&2<=this[_0x4e14[724]][_0x4e14[119]]){var _0xa132x3=0;_0xa132x2&&(this[_0x4e14[2957]]||(this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[936],_0xa132x3++)),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[2965],_0xa132x3++)),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[2966],_0xa132x3++)),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[2967],_0xa132x3++)),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[2968],_0xa132x3++)),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[2969],_0xa132x3++)),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[2970],_0xa132x3++))),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2735]](_0x4e14[2971],_0xa132x3++)));_0xa132x2=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1721]](this[_0x4e14[724]][_0x4e14[246]]);null!=_0xa132x2&&(!_0xa132x2[_0x4e14[1500]]&&!this[_0x4e14[1179]][_0x4e14[1730]](this[_0x4e14[724]][_0x4e14[246]])&&this[_0x4e14[1179]][_0x4e14[2628]](this[_0x4e14[724]][_0x4e14[246]]))&&(this[_0x4e14[2972]]=this[_0x4e14[2735]](mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2972]]));}else {this[_0x4e14[1179]][_0x4e14[1712]](this[_0x4e14[724]][_0x4e14[246]])&&(!this[_0x4e14[1179]][_0x4e14[2657]](this[_0x4e14[724]][_0x4e14[246]])&&2>this[_0x4e14[724]][_0x4e14[117]]&&2>this[_0x4e14[724]][_0x4e14[119]])&&(this[_0x4e14[2972]]=this[_0x4e14[2735]](mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2972]]))};};if(this[_0x4e14[2809]]&&(0>=mxGraphHandler[_0x4e14[202]][_0x4e14[2795]]||this[_0x4e14[1179]][_0x4e14[2694]]()<mxGraphHandler[_0x4e14[202]][_0x4e14[2795]])){this[_0x4e14[2973]]=this[_0x4e14[2735]](_0x4e14[356],mxEvent.ROTATION_HANDLE,mxConstants[_0x4e14[2974]]+3,mxConstants.HANDLE_FILLCOLOR),this[_0x4e14[2964]][_0x4e14[207]](this[_0x4e14[2973]])};this[_0x4e14[258]]();};mxVertexHandler[_0x4e14[202]][_0x4e14[2962]]=function(_0xa132x2){return  new mxRectangle(Math[_0x4e14[488]](_0xa132x2[_0x4e14[235]]),Math[_0x4e14[488]](_0xa132x2[_0x4e14[236]]),Math[_0x4e14[488]](_0xa132x2[_0x4e14[117]]),Math[_0x4e14[488]](_0xa132x2[_0x4e14[119]]))};mxVertexHandler[_0x4e14[202]][_0x4e14[2963]]=function(_0xa132x2){_0xa132x2= new mxRectangleShape(_0xa132x2,null,this[_0x4e14[2975]]());_0xa132x2[_0x4e14[1307]]=this[_0x4e14[2976]]();_0xa132x2[_0x4e14[1522]]=this[_0x4e14[2977]]();return _0xa132x2;};mxVertexHandler[_0x4e14[202]][_0x4e14[2975]]=function(){return mxConstants[_0x4e14[2978]]};mxVertexHandler[_0x4e14[202]][_0x4e14[2976]]=function(){return mxConstants[_0x4e14[2979]]};mxVertexHandler[_0x4e14[202]][_0x4e14[2977]]=function(){return mxConstants[_0x4e14[2980]]};mxVertexHandler[_0x4e14[202]][_0x4e14[2735]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){_0xa132x4=_0xa132x4||mxConstants[_0x4e14[2974]];_0xa132x4= new mxRectangle(0,0,_0xa132x4,_0xa132x4);_0xa132x5=this[_0x4e14[2981]](_0xa132x4,_0xa132x3,_0xa132x5);_0xa132x5[_0x4e14[1567]]()&&null!=this[_0x4e14[724]][_0x4e14[963]]&&this[_0x4e14[724]][_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==this[_0x4e14[1179]][_0x4e14[526]]?(_0xa132x5[_0x4e14[1562]][_0x4e14[119]]-=1,_0xa132x5[_0x4e14[1562]][_0x4e14[117]]-=1,_0xa132x5[_0x4e14[507]]=mxConstants[_0x4e14[1656]],_0xa132x5[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[526]])):(_0xa132x5[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[2334]]:mxConstants[_0x4e14[508]],_0xa132x5[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]()));mxEvent[_0x4e14[2733]](_0xa132x5[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);this[_0x4e14[1179]][_0x4e14[994]]()&&(_0xa132x5[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=_0xa132x2);this[_0x4e14[2982]](_0xa132x3)||(_0xa132x5[_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]);return _0xa132x5;};mxVertexHandler[_0x4e14[202]][_0x4e14[2982]]=function(_0xa132x2){return !0};mxVertexHandler[_0x4e14[202]][_0x4e14[2981]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return null!=this[_0x4e14[2959]]?(_0xa132x2[_0x4e14[117]]=this[_0x4e14[2959]][_0x4e14[117]],_0xa132x2[_0x4e14[119]]=this[_0x4e14[2959]][_0x4e14[119]], new mxImageShape(_0xa132x2,this[_0x4e14[2959]][_0x4e14[390]])):_0xa132x3==mxEvent[_0x4e14[2983]]? new mxEllipse(_0xa132x2,_0xa132x4||mxConstants[_0x4e14[2984]],mxConstants.HANDLE_STROKECOLOR): new mxRectangleShape(_0xa132x2,_0xa132x4||mxConstants[_0x4e14[2984]],mxConstants.HANDLE_STROKECOLOR)};mxVertexHandler[_0x4e14[202]][_0x4e14[2985]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null!=_0xa132x2&&(_0xa132x2[_0x4e14[1562]][_0x4e14[235]]=Math[_0x4e14[488]](_0xa132x3-_0xa132x2[_0x4e14[1562]][_0x4e14[117]]/2),_0xa132x2[_0x4e14[1562]][_0x4e14[236]]=Math[_0x4e14[488]](_0xa132x4-_0xa132x2[_0x4e14[1562]][_0x4e14[119]]/2),_0xa132x2[_0x4e14[258]]())};mxVertexHandler[_0x4e14[202]][_0x4e14[2986]]=function(_0xa132x2){if(_0xa132x2[_0x4e14[729]](this[_0x4e14[2973]])){return mxEvent[_0x4e14[2983]]};if(_0xa132x2[_0x4e14[729]](this[_0x4e14[2972]])){return mxEvent[_0x4e14[2987]]};if(null!=this[_0x4e14[2964]]){for(var _0xa132x3=this[_0x4e14[2353]],_0xa132x3=this[_0x4e14[2958]]&&(mxClient[_0x4e14[80]]||0<_0xa132x3)? new mxRectangle(_0xa132x2[_0x4e14[734]]()-_0xa132x3,_0xa132x2[_0x4e14[735]]()-_0xa132x3,2*_0xa132x3,2*_0xa132x3):null,_0xa132x4=0;_0xa132x4<this[_0x4e14[2964]][_0x4e14[67]];_0xa132x4++){if(_0xa132x2[_0x4e14[729]](this[_0x4e14[2964]][_0xa132x4])||null!=_0xa132x3&&mxUtils[_0x4e14[1825]](this[_0x4e14[2964]][_0xa132x4][_0x4e14[1562]],_0xa132x3)){return _0xa132x4}}};return null;};mxVertexHandler[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&this[_0x4e14[1179]][_0x4e14[994]]()&&!this[_0x4e14[1179]][_0x4e14[2579]](_0xa132x3[_0x4e14[727]]())&&(0<this[_0x4e14[2353]]||_0xa132x3[_0x4e14[248]]()==this[_0x4e14[724]])){var _0xa132x4=this[_0x4e14[2986]](_0xa132x3);null!=_0xa132x4&&(this[_0x4e14[861]](_0xa132x3[_0x4e14[730]](),_0xa132x3[_0x4e14[732]](),_0xa132x4),_0xa132x3[_0x4e14[722]]());}};mxVertexHandler[_0x4e14[202]][_0x4e14[861]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],_0xa132x2,_0xa132x3);this[_0x4e14[2739]]=_0xa132x2[_0x4e14[235]];this[_0x4e14[2740]]=_0xa132x2[_0x4e14[236]];this[_0x4e14[1983]]=_0xa132x4;this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]]=_0xa132x4==mxEvent[_0x4e14[2983]]?_0x4e14[497]:_0x4e14[130];this[_0x4e14[2988]]=this[_0x4e14[2963]](this[_0x4e14[1562]]);!(mxClient[_0x4e14[48]]&&0!=Number(this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]))&&null!=this[_0x4e14[724]][_0x4e14[963]]&&this[_0x4e14[724]][_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==this[_0x4e14[1179]][_0x4e14[526]]?(this[_0x4e14[2988]][_0x4e14[507]]=mxConstants[_0x4e14[1656]],this[_0x4e14[2988]][_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[526]])):(this[_0x4e14[2988]][_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]],this[_0x4e14[2988]][_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[1524]]()));};mxVertexHandler[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&null!=this[_0x4e14[1983]]){var _0xa132x4= new mxPoint(_0xa132x3[_0x4e14[734]](),_0xa132x3[_0x4e14[735]]()),_0xa132x5=this[_0x4e14[1179]][_0x4e14[1018]](_0xa132x3[_0x4e14[727]]()),_0xa132x9=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]];if(this[_0x4e14[1983]]==mxEvent[_0x4e14[2987]]){_0xa132x5&&(_0xa132x4[_0x4e14[235]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x4[_0x4e14[235]]/_0xa132x9)*_0xa132x9,_0xa132x4[_0x4e14[236]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x4[_0x4e14[236]]/_0xa132x9)*_0xa132x9),this[_0x4e14[2985]](this[_0x4e14[2964]][this[_0x4e14[2964]][_0x4e14[67]]-1],_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]])}else {if(this[_0x4e14[1983]]==mxEvent[_0x4e14[2983]]){var _0xa132xa=this[_0x4e14[724]][_0x4e14[235]]+this[_0x4e14[724]][_0x4e14[117]]/2-_0xa132x4[_0x4e14[235]],_0xa132x12=this[_0x4e14[724]][_0x4e14[236]]+this[_0x4e14[724]][_0x4e14[119]]/2-_0xa132x4[_0x4e14[236]];this[_0x4e14[2989]]=0!=_0xa132xa?180*Math[_0x4e14[2990]](_0xa132x12/_0xa132xa)/Math[_0x4e14[424]]+90:0>_0xa132x12?180:0;0<_0xa132xa&&(this[_0x4e14[2989]]-=180);this[_0x4e14[2960]]&&(_0xa132xa=_0xa132x4[_0x4e14[235]]-this[_0x4e14[724]][_0x4e14[241]](),_0xa132x12=_0xa132x4[_0x4e14[236]]-this[_0x4e14[724]][_0x4e14[242]](),_0xa132xa=Math[_0x4e14[425]](Math[_0x4e14[428]](_0xa132xa*_0xa132xa+_0xa132x12*_0xa132x12)-this[_0x4e14[724]][_0x4e14[119]]/2-20),_0xa132xa=Math[_0x4e14[160]](1,5*Math[_0x4e14[243]](3,Math[_0x4e14[160]](0,Math[_0x4e14[488]](80/Math[_0x4e14[425]](_0xa132xa))))),this[_0x4e14[2989]]=Math[_0x4e14[488]](this[_0x4e14[2989]]/_0xa132xa)*_0xa132xa);this[_0x4e14[2732]][_0x4e14[603]]=this[_0x4e14[2989]];this[_0x4e14[2732]][_0x4e14[258]]();}else {var _0xa132x13=mxUtils[_0x4e14[431]](this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]),_0xa132x14=Math[_0x4e14[426]](-_0xa132x13),_0xa132x15=Math[_0x4e14[427]](-_0xa132x13),_0xa132x16= new mxPoint(this[_0x4e14[724]][_0x4e14[241]](),this[_0x4e14[724]][_0x4e14[242]]()),_0xa132xa=_0xa132x4[_0x4e14[235]]-this[_0x4e14[2739]],_0xa132x12=_0xa132x4[_0x4e14[236]]-this[_0x4e14[2740]],_0xa132x4=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[513]],_0xa132x17=_0xa132x15*_0xa132xa+_0xa132x14*_0xa132x12,_0xa132xa=_0xa132x14*_0xa132xa-_0xa132x15*_0xa132x12;this[_0x4e14[1562]]=this[_0x4e14[2991]](this[_0x4e14[2961]],_0xa132xa,_0xa132x17,this[_0x4e14[1983]],_0xa132x5,_0xa132x9,_0xa132x4);_0xa132x14=Math[_0x4e14[426]](_0xa132x13);_0xa132x15=Math[_0x4e14[427]](_0xa132x13);_0xa132x12= new mxPoint(this[_0x4e14[1562]][_0x4e14[241]](),this[_0x4e14[1562]][_0x4e14[242]]());_0xa132xa=_0xa132x12[_0x4e14[235]]-_0xa132x16[_0x4e14[235]];_0xa132x12=_0xa132x12[_0x4e14[236]]-_0xa132x16[_0x4e14[236]];_0xa132x16=_0xa132x15*_0xa132xa+_0xa132x14*_0xa132x12-_0xa132x12;this[_0x4e14[1562]][_0x4e14[235]]+=_0xa132x14*_0xa132xa-_0xa132x15*_0xa132x12-_0xa132xa;this[_0x4e14[1562]][_0x4e14[236]]+=_0xa132x16;this[_0x4e14[2932]]();}};_0xa132x3[_0x4e14[722]]();}else {null!=this[_0x4e14[2986]](_0xa132x3)&&_0xa132x3[_0x4e14[722]](!1)}};mxVertexHandler[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){if(!_0xa132x3[_0x4e14[721]]()&&null!=this[_0x4e14[1983]]&&null!=this[_0x4e14[724]]){var _0xa132x4= new mxPoint(_0xa132x3[_0x4e14[734]](),_0xa132x3[_0x4e14[735]]());this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[473]]();try{if(this[_0x4e14[1983]]==mxEvent[_0x4e14[2983]]){null!=this[_0x4e14[2989]]&&this[_0x4e14[2992]](this[_0x4e14[724]][_0x4e14[246]],this[_0x4e14[2989]]-(this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||0))}else {var _0xa132x5=this[_0x4e14[1179]][_0x4e14[1018]](_0xa132x3[_0x4e14[727]]()),_0xa132x9=mxUtils[_0x4e14[431]](this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]),_0xa132xa=Math[_0x4e14[426]](-_0xa132x9),_0xa132x12=Math[_0x4e14[427]](-_0xa132x9),_0xa132x13=_0xa132x4[_0x4e14[235]]-this[_0x4e14[2739]],_0xa132x14=_0xa132x4[_0x4e14[236]]-this[_0x4e14[2740]],_0xa132x4=_0xa132x12*_0xa132x13+_0xa132xa*_0xa132x14,_0xa132x13=_0xa132xa*_0xa132x13-_0xa132x12*_0xa132x14,_0xa132x14=_0xa132x4,_0xa132x15=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]];this[_0x4e14[2526]](this[_0x4e14[724]][_0x4e14[246]],_0xa132x13/_0xa132x15,_0xa132x14/_0xa132x15,this[_0x4e14[1983]],_0xa132x5);}}finally{this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[476]]()};this[_0x4e14[862]]();_0xa132x3[_0x4e14[722]]();}};mxVertexHandler[_0x4e14[202]][_0x4e14[2992]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]();if(_0xa132x4[_0x4e14[1193]](_0xa132x2)){var _0xa132x5=_0xa132x2==this[_0x4e14[724]]?this[_0x4e14[724]]:this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x2);null!=_0xa132x5&&this[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_ROTATION,(_0xa132x5[_0x4e14[124]][mxConstants[_0x4e14[2278]]]||0)+_0xa132x3,[_0xa132x2]);if(this[_0x4e14[724]][_0x4e14[246]]!=_0xa132x2&&(_0xa132x5=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x2),null!=_0xa132x5&&!_0xa132x5[_0x4e14[1500]])){if(0!=_0xa132x3){var _0xa132x9=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1197]](_0xa132x2),_0xa132xa=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x9);if(!_0xa132x5[_0x4e14[1500]]&&null!=_0xa132xa){var _0xa132x12=mxUtils[_0x4e14[431]](_0xa132x3),_0xa132x9=Math[_0x4e14[426]](_0xa132x12),_0xa132x12=Math[_0x4e14[427]](_0xa132x12),_0xa132x13= new mxPoint(_0xa132x5[_0x4e14[241]](),_0xa132x5[_0x4e14[242]]()),_0xa132xa= new mxPoint(_0xa132xa[_0x4e14[117]]/2,_0xa132xa[_0x4e14[119]]/2),_0xa132x9=mxUtils[_0x4e14[432]](_0xa132x13,_0xa132x9,_0xa132x12,_0xa132xa),_0xa132x5=_0xa132x5[_0x4e14[238]]();_0xa132x5[_0x4e14[235]]=_0xa132x9[_0x4e14[235]]-_0xa132x5[_0x4e14[117]]/2;_0xa132x5[_0x4e14[236]]=_0xa132x9[_0x4e14[236]]-_0xa132x5[_0x4e14[119]]/2;_0xa132x4[_0x4e14[1724]](_0xa132x2,_0xa132x5);};}else {_0xa132x5=_0xa132x5[_0x4e14[238]](),_0xa132x5[_0x4e14[235]]+=dx,_0xa132x5[_0x4e14[236]]+=dy,_0xa132x4[_0x4e14[1724]](_0xa132x2,_0xa132x5)}};_0xa132x5=_0xa132x4[_0x4e14[262]](_0xa132x2);for(_0xa132x9=0;_0xa132x9<_0xa132x5;_0xa132x9++){this[_0x4e14[2992]](_0xa132x4[_0x4e14[263]](_0xa132x2,_0xa132x9),_0xa132x3)};};};mxVertexHandler[_0x4e14[202]][_0x4e14[862]]=function(){this[_0x4e14[1983]]=this[_0x4e14[2989]]=null;null!=this[_0x4e14[2988]]&&(this[_0x4e14[2988]][_0x4e14[515]](),this[_0x4e14[2988]]=null);null!=this[_0x4e14[2732]]&&(this[_0x4e14[2732]][_0x4e14[252]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[497],this[_0x4e14[2961]]=this[_0x4e14[2962]](this[_0x4e14[724]]),this[_0x4e14[1562]]= new mxRectangle(this[_0x4e14[2961]][_0x4e14[235]],this[_0x4e14[2961]][_0x4e14[236]],this[_0x4e14[2961]][_0x4e14[117]],this[_0x4e14[2961]][_0x4e14[119]]),this[_0x4e14[2932]]());};mxVertexHandler[_0x4e14[202]][_0x4e14[2526]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1721]](_0xa132x2);if(null!=_0xa132xa){if(_0xa132x5==mxEvent[_0x4e14[2987]]){_0xa132x5=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]],_0xa132x3=(this[_0x4e14[2972]][_0x4e14[1562]][_0x4e14[241]]()-this[_0x4e14[2739]])/_0xa132x5,_0xa132x4=(this[_0x4e14[2972]][_0x4e14[1562]][_0x4e14[242]]()-this[_0x4e14[2740]])/_0xa132x5,_0xa132xa=_0xa132xa[_0x4e14[238]](),null==_0xa132xa[_0x4e14[1368]]?_0xa132xa[_0x4e14[1368]]= new mxPoint(_0xa132x3,_0xa132x4):(_0xa132xa[_0x4e14[1368]][_0x4e14[235]]+=_0xa132x3,_0xa132xa[_0x4e14[1368]][_0x4e14[236]]+=_0xa132x4),this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1724]](_0xa132x2,_0xa132xa)}else {_0xa132x5=this[_0x4e14[2991]](_0xa132xa,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,1, new mxPoint(0,0));var _0xa132x12=mxUtils[_0x4e14[431]](this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]);if(0!=_0xa132x12){_0xa132x3=_0xa132x5[_0x4e14[241]]()-_0xa132xa[_0x4e14[241]]();_0xa132x4=_0xa132x5[_0x4e14[242]]()-_0xa132xa[_0x4e14[242]]();_0xa132x9=Math[_0x4e14[426]](_0xa132x12);var _0xa132x13=Math[_0x4e14[427]](_0xa132x12),_0xa132x12=_0xa132x9*_0xa132x3-_0xa132x13*_0xa132x4-_0xa132x3;_0xa132x3=_0xa132x13*_0xa132x3+_0xa132x9*_0xa132x4-_0xa132x4;_0xa132x4=_0xa132x5[_0x4e14[235]]-_0xa132xa[_0x4e14[235]];var _0xa132x14=_0xa132x5[_0x4e14[236]]-_0xa132xa[_0x4e14[236]],_0xa132x15=_0xa132x9*_0xa132x4-_0xa132x13*_0xa132x14;_0xa132x9=_0xa132x13*_0xa132x4+_0xa132x9*_0xa132x14;_0xa132x5[_0x4e14[235]]+=_0xa132x12;_0xa132x5[_0x4e14[236]]+=_0xa132x3;if(!this[_0x4e14[1179]][_0x4e14[1742]](_0xa132x2)&&(0!=_0xa132x12||0!=_0xa132x3)){_0xa132x4=_0xa132xa[_0x4e14[235]]-_0xa132x5[_0x4e14[235]]+_0xa132x15,_0xa132x14=_0xa132xa[_0x4e14[236]]-_0xa132x5[_0x4e14[236]]+_0xa132x9,this[_0x4e14[2993]](_0xa132x2,_0xa132x4,_0xa132x14)};};this[_0x4e14[1179]][_0x4e14[2526]](_0xa132x2,_0xa132x5);}};};mxVertexHandler[_0x4e14[202]][_0x4e14[2993]]=function(_0xa132x2,_0xa132x3,_0xa132x4){for(var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x9=_0xa132x5[_0x4e14[262]](_0xa132x2),_0xa132xa=0;_0xa132xa<_0xa132x9;_0xa132xa++){var _0xa132x12=_0xa132x5[_0x4e14[263]](_0xa132x2,_0xa132xa);if(_0xa132x5[_0x4e14[1193]](_0xa132x12)){var _0xa132x13=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x12);null!=_0xa132x13&&!_0xa132x13[_0x4e14[1500]]&&(_0xa132x13=_0xa132x13[_0x4e14[238]](),_0xa132x13[_0x4e14[235]]+=_0xa132x3,_0xa132x13[_0x4e14[236]]+=_0xa132x4,_0xa132x5[_0x4e14[1724]](_0xa132x12,_0xa132x13));};}};mxVertexHandler[_0x4e14[202]][_0x4e14[2991]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12){if(this[_0x4e14[2957]]){_0xa132x12=_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]+_0xa132x3;var _0xa132x13=_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]+_0xa132x4;_0xa132x9&&(_0xa132x12=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x12/_0xa132xa)*_0xa132xa,_0xa132x13=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x13/_0xa132xa)*_0xa132xa);_0xa132xa= new mxRectangle(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]],0,0);_0xa132xa[_0x4e14[99]]( new mxRectangle(_0xa132x12,_0xa132x13,0,0));return _0xa132xa;};var _0xa132x13=_0xa132x2[_0x4e14[235]]-_0xa132x12[_0x4e14[235]]*_0xa132xa,_0xa132x14=_0xa132x13+_0xa132x2[_0x4e14[117]],_0xa132x15=_0xa132x2[_0x4e14[236]]-_0xa132x12[_0x4e14[236]]*_0xa132xa;_0xa132x2=_0xa132x15+_0xa132x2[_0x4e14[119]];4<_0xa132x5?(_0xa132x2+=_0xa132x4,_0xa132x9&&(_0xa132x2=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2/_0xa132xa)*_0xa132xa)):3>_0xa132x5&&(_0xa132x15+=_0xa132x4,_0xa132x9&&(_0xa132x15=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x15/_0xa132xa)*_0xa132xa));if(0==_0xa132x5||3==_0xa132x5||5==_0xa132x5){_0xa132x13+=_0xa132x3,_0xa132x9&&(_0xa132x13=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x13/_0xa132xa)*_0xa132xa)}else {if(2==_0xa132x5||4==_0xa132x5||7==_0xa132x5){_0xa132x14+=_0xa132x3,_0xa132x9&&(_0xa132x14=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x14/_0xa132xa)*_0xa132xa)}};_0xa132x9=_0xa132x14-_0xa132x13;_0xa132x2-=_0xa132x15;0>_0xa132x9&&(_0xa132x13+=_0xa132x9,_0xa132x9=Math[_0x4e14[425]](_0xa132x9));0>_0xa132x2&&(_0xa132x15+=_0xa132x2,_0xa132x2=Math[_0x4e14[425]](_0xa132x2));return  new mxRectangle(_0xa132x13+_0xa132x12[_0x4e14[235]]*_0xa132xa,_0xa132x15+_0xa132x12[_0x4e14[236]]*_0xa132xa,_0xa132x9,_0xa132x2);};mxVertexHandler[_0x4e14[202]][_0x4e14[258]]=function(){this[_0x4e14[2961]]=this[_0x4e14[2962]](this[_0x4e14[724]]);this[_0x4e14[1562]]= new mxRectangle(this[_0x4e14[724]][_0x4e14[235]],this[_0x4e14[724]][_0x4e14[236]],this[_0x4e14[724]][_0x4e14[117]],this[_0x4e14[724]][_0x4e14[119]]);var _0xa132x2=this[_0x4e14[724]];if(null!=this[_0x4e14[2964]]){var _0xa132x3=_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]],_0xa132x4=_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]];if(this[_0x4e14[2957]]){this[_0x4e14[2985]](this[_0x4e14[2964]][0],_0xa132x3,_0xa132x4)}else {var _0xa132x5=_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]/2,_0xa132x9=_0xa132x2[_0x4e14[236]]+_0xa132x2[_0x4e14[119]]/2;if(1<this[_0x4e14[2964]][_0x4e14[67]]){var _0xa132xa=mxUtils[_0x4e14[431]](_0xa132x2[_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]),_0xa132x12=Math[_0x4e14[426]](_0xa132xa),_0xa132xa=Math[_0x4e14[427]](_0xa132xa),_0xa132x13= new mxPoint(_0xa132x2[_0x4e14[241]](),_0xa132x2[_0x4e14[242]]()),_0xa132x14=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]]),_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][0],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);_0xa132x14[_0x4e14[235]]=_0xa132x5;_0xa132x14[_0x4e14[236]]=_0xa132x2[_0x4e14[236]];_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][1],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);_0xa132x14[_0x4e14[235]]=_0xa132x3;_0xa132x14[_0x4e14[236]]=_0xa132x2[_0x4e14[236]];_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][2],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);_0xa132x14[_0x4e14[235]]=_0xa132x2[_0x4e14[235]];_0xa132x14[_0x4e14[236]]=_0xa132x9;_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][3],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);_0xa132x14[_0x4e14[235]]=_0xa132x3;_0xa132x14[_0x4e14[236]]=_0xa132x9;_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][4],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);_0xa132x14[_0x4e14[235]]=_0xa132x2[_0x4e14[235]];_0xa132x14[_0x4e14[236]]=_0xa132x4;_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][5],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);_0xa132x14[_0x4e14[235]]=_0xa132x5;_0xa132x14[_0x4e14[236]]=_0xa132x4;_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][6],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);_0xa132x14[_0x4e14[235]]=_0xa132x3;_0xa132x14[_0x4e14[236]]=_0xa132x4;_0xa132x14=mxUtils[_0x4e14[432]](_0xa132x14,_0xa132x12,_0xa132xa,_0xa132x13);this[_0x4e14[2985]](this[_0x4e14[2964]][7],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]);this[_0x4e14[2985]](this[_0x4e14[2964]][8],_0xa132x5+_0xa132x2[_0x4e14[2079]][_0x4e14[235]],_0xa132x9+_0xa132x2[_0x4e14[2079]][_0x4e14[236]]);}else {2<=this[_0x4e14[724]][_0x4e14[117]]&&2<=this[_0x4e14[724]][_0x4e14[119]]?this[_0x4e14[2985]](this[_0x4e14[2964]][0],_0xa132x5+_0xa132x2[_0x4e14[2079]][_0x4e14[235]],_0xa132x9+_0xa132x2[_0x4e14[2079]][_0x4e14[236]]):this[_0x4e14[2985]](this[_0x4e14[2964]][0],_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]])};};};null!=this[_0x4e14[2973]]&&(_0xa132xa=mxUtils[_0x4e14[431]](this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]),_0xa132x12=Math[_0x4e14[426]](_0xa132xa),_0xa132xa=Math[_0x4e14[427]](_0xa132xa),_0xa132x13= new mxPoint(this[_0x4e14[724]][_0x4e14[241]](),this[_0x4e14[724]][_0x4e14[242]]()),_0xa132x14=mxUtils[_0x4e14[432]]( new mxPoint(_0xa132x2[_0x4e14[235]]+_0xa132x2[_0x4e14[117]]/2,_0xa132x2[_0x4e14[236]]-16),_0xa132x12,_0xa132xa,_0xa132x13),this[_0x4e14[2985]](this[_0x4e14[2973]],_0xa132x14[_0x4e14[235]],_0xa132x14[_0x4e14[236]]));this[_0x4e14[2732]][_0x4e14[603]]=Number(this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]);this[_0x4e14[2932]]();};mxVertexHandler[_0x4e14[202]][_0x4e14[2932]]=function(){null!=this[_0x4e14[2988]]&&(this[_0x4e14[2988]][_0x4e14[1562]]=this[_0x4e14[1562]],this[_0x4e14[2988]][_0x4e14[252]][_0x4e14[265]]==this[_0x4e14[1179]][_0x4e14[526]]&&(this[_0x4e14[2988]][_0x4e14[1562]][_0x4e14[117]]=Math[_0x4e14[160]](0,this[_0x4e14[2988]][_0x4e14[1562]][_0x4e14[117]]-1),this[_0x4e14[2988]][_0x4e14[1562]][_0x4e14[119]]=Math[_0x4e14[160]](0,this[_0x4e14[2988]][_0x4e14[1562]][_0x4e14[119]]-1)),this[_0x4e14[2988]][_0x4e14[603]]=Number(this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]),this[_0x4e14[2988]][_0x4e14[258]]());this[_0x4e14[2732]][_0x4e14[1562]]=this[_0x4e14[1562]];this[_0x4e14[2732]][_0x4e14[258]]();};mxVertexHandler[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[2988]]&&(this[_0x4e14[2988]][_0x4e14[515]](),this[_0x4e14[2988]]=null);this[_0x4e14[2732]][_0x4e14[515]]();this[_0x4e14[2972]]=this[_0x4e14[2732]]=null;if(null!=this[_0x4e14[2964]]){for(var _0xa132x2=0;_0xa132x2<this[_0x4e14[2964]][_0x4e14[67]];_0xa132x2++){this[_0x4e14[2964]][_0xa132x2][_0x4e14[515]](),this[_0x4e14[2964]][_0xa132x2]=null}};};function mxEdgeHandler(_0xa132x2){null!=_0xa132x2&&(this[_0x4e14[724]]=_0xa132x2,this[_0x4e14[176]]())}mxEdgeHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[724]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[2885]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[2886]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[267]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[253]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[2994]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[2972]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[2797]]= !0;mxEdgeHandler[_0x4e14[202]][_0x4e14[2771]]= !1;mxEdgeHandler[_0x4e14[202]][_0x4e14[2995]]= !1;mxEdgeHandler[_0x4e14[202]][_0x4e14[574]]= !1;mxEdgeHandler[_0x4e14[202]][_0x4e14[2958]]= !0;mxEdgeHandler[_0x4e14[202]][_0x4e14[2996]]= !1;mxEdgeHandler[_0x4e14[202]][_0x4e14[2959]]=null;mxEdgeHandler[_0x4e14[202]][_0x4e14[2353]]=0;mxEdgeHandler[_0x4e14[202]][_0x4e14[176]]=function(){this[_0x4e14[1179]]=this[_0x4e14[724]][_0x4e14[441]][_0x4e14[1179]];this[_0x4e14[2885]]=this[_0x4e14[1689]]();this[_0x4e14[2886]]= new mxConstraintHandler(this[_0x4e14[1179]]);this[_0x4e14[1525]]=[];this[_0x4e14[2997]]=this[_0x4e14[2998]](this[_0x4e14[724]]);this[_0x4e14[253]]=this[_0x4e14[2963]](this[_0x4e14[2997]]);this[_0x4e14[253]][_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[2334]]:mxConstants[_0x4e14[508]];this[_0x4e14[253]][_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]());this[_0x4e14[253]][_0x4e14[1564]]=0;this[_0x4e14[253]][_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[2831]];mxEvent[_0x4e14[169]](this[_0x4e14[253]][_0x4e14[252]],_0x4e14[760],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[761]](_0xa132x2,this[_0x4e14[724]][_0x4e14[246]])}));mxEvent[_0x4e14[759]](this[_0x4e14[253]][_0x4e14[252]],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[2771]]&&this[_0x4e14[2999]](_0xa132x2)?this[_0x4e14[3000]](this[_0x4e14[724]],_0xa132x2):this[_0x4e14[1179]][_0x4e14[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xa132x2,this[_0x4e14[724]]))}),mxUtils[_0x4e14[885]](this,function(_0xa132x2){var _0xa132x4=this[_0x4e14[724]][_0x4e14[246]];if(null!=this[_0x4e14[1983]]){var _0xa132x5=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x2),mxEvent[_0x4e14[733]](_0xa132x2)),_0xa132x4=this[_0x4e14[1179]][_0x4e14[999]](_0xa132x5[_0x4e14[235]],_0xa132x5[_0x4e14[236]]);this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x4)&&this[_0x4e14[1179]][_0x4e14[2688]](_0xa132x4,_0xa132x5[_0x4e14[235]],_0xa132x5[_0x4e14[236]])&&(_0xa132x4=null);};this[_0x4e14[1179]][_0x4e14[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xa132x2,this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x4)));}),mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xa132x2,this[_0x4e14[724]]))}));this[_0x4e14[574]]=null!=this[_0x4e14[724]][_0x4e14[963]]&&this[_0x4e14[724]][_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==this[_0x4e14[1179]][_0x4e14[526]];if(!this[_0x4e14[574]]){var _0xa132x2=this[_0x4e14[724]][_0x4e14[2089]](!0);null!=_0xa132x2&&(this[_0x4e14[574]]=null!=_0xa132x2[_0x4e14[963]]&&_0xa132x2[_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==this[_0x4e14[1179]][_0x4e14[526]]);this[_0x4e14[574]]||(_0xa132x2=this[_0x4e14[724]][_0x4e14[2089]](!1),null!=_0xa132x2&&(this[_0x4e14[574]]=null!=_0xa132x2[_0x4e14[963]]&&_0xa132x2[_0x4e14[963]][_0x4e14[252]][_0x4e14[265]]==this[_0x4e14[1179]][_0x4e14[526]]));};if(this[_0x4e14[1179]][_0x4e14[2694]]()<mxGraphHandler[_0x4e14[202]][_0x4e14[2795]]||0>=mxGraphHandler[_0x4e14[202]][_0x4e14[2795]]){this[_0x4e14[2994]]=this[_0x4e14[3001]]()};this[_0x4e14[685]]= new mxPoint(this[_0x4e14[724]][_0x4e14[2079]][_0x4e14[235]],this[_0x4e14[724]][_0x4e14[2079]][_0x4e14[236]]);this[_0x4e14[2972]]= new mxRectangleShape( new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);this[_0x4e14[2972]][_0x4e14[1229]]= !1;this[_0x4e14[3002]](this[_0x4e14[2972]]);this[_0x4e14[2972]][_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[3003]];mxEvent[_0x4e14[2733]](this[_0x4e14[2972]][_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);this[_0x4e14[258]]();};mxEdgeHandler[_0x4e14[202]][_0x4e14[2999]]=function(_0xa132x2){return mxEvent[_0x4e14[774]](_0xa132x2)};mxEdgeHandler[_0x4e14[202]][_0x4e14[3004]]=function(_0xa132x2){return mxEvent[_0x4e14[774]](_0xa132x2)};mxEdgeHandler[_0x4e14[202]][_0x4e14[2998]]=function(_0xa132x2){return _0xa132x2[_0x4e14[439]]};mxEdgeHandler[_0x4e14[202]][_0x4e14[2963]]=function(_0xa132x2){_0xa132x2= new mxPolyline(_0xa132x2,this[_0x4e14[2975]]());_0xa132x2[_0x4e14[1307]]=this[_0x4e14[2976]]();_0xa132x2[_0x4e14[1522]]=this[_0x4e14[2977]]();return _0xa132x2;};mxEdgeHandler[_0x4e14[202]][_0x4e14[2975]]=function(){return mxConstants[_0x4e14[3005]]};mxEdgeHandler[_0x4e14[202]][_0x4e14[2976]]=function(){return mxConstants[_0x4e14[3006]]};mxEdgeHandler[_0x4e14[202]][_0x4e14[2977]]=function(){return mxConstants[_0x4e14[3007]]};mxEdgeHandler[_0x4e14[202]][_0x4e14[2907]]=function(_0xa132x2){return !0};mxEdgeHandler[_0x4e14[202]][_0x4e14[1689]]=function(){var _0xa132x2= new mxCellMarker(this[_0x4e14[1179]]),_0xa132x3=this;_0xa132x2[_0x4e14[736]]=function(_0xa132x2){var _0xa132x5=mxCellMarker[_0x4e14[202]][_0x4e14[736]][_0x4e14[183]](this,arguments);if(!_0xa132x3[_0x4e14[2907]](_0xa132x5)){return null};var _0xa132x9=_0xa132x3[_0x4e14[1179]][_0x4e14[502]]();if(_0xa132x5==_0xa132x3[_0x4e14[724]][_0x4e14[246]]||null!=_0xa132x5&&!_0xa132x3[_0x4e14[1179]][_0x4e14[2405]]&&_0xa132x9[_0x4e14[250]](_0xa132x5)){_0xa132x5=null};return _0xa132x5;};_0xa132x2[_0x4e14[2872]]=function(_0xa132x2){var _0xa132x5=_0xa132x3[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=_0xa132x3[_0x4e14[1179]][_0x4e14[441]][_0x4e14[2292]](_0xa132x2,_0xa132x3[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](_0xa132x5[_0x4e14[1709]](_0xa132x3[_0x4e14[724]][_0x4e14[246]],!_0xa132x3[_0x4e14[729]])),!_0xa132x3[_0x4e14[729]]),_0xa132x5=null!=_0xa132x5?_0xa132x5[_0x4e14[246]]:null;_0xa132x3[_0x4e14[267]]=_0xa132x3[_0x4e14[2909]](_0xa132x3[_0x4e14[729]]?_0xa132x2[_0x4e14[246]]:_0xa132x5,_0xa132x3[_0x4e14[729]]?_0xa132x5:_0xa132x2[_0x4e14[246]]);return null==_0xa132x3[_0x4e14[267]];};return _0xa132x2;};mxEdgeHandler[_0x4e14[202]][_0x4e14[2909]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[1179]][_0x4e14[2500]](this[_0x4e14[724]][_0x4e14[246]],_0xa132x2,_0xa132x3)};mxEdgeHandler[_0x4e14[202]][_0x4e14[3001]]=function(){for(var _0xa132x2=this[_0x4e14[724]][_0x4e14[246]],_0xa132x3=[],_0xa132x4=0;_0xa132x4<this[_0x4e14[2997]][_0x4e14[67]];_0xa132x4++){if(this[_0x4e14[3008]](_0xa132x4)){var _0xa132x5=_0xa132x4==this[_0x4e14[2997]][_0x4e14[67]]-1;if((_0xa132x5=0==_0xa132x4||_0xa132x5)||this[_0x4e14[1179]][_0x4e14[2662]](_0xa132x2)){var _0xa132x9=this[_0x4e14[3009]](_0xa132x4);this[_0x4e14[3002]](_0xa132x9);mxClient[_0x4e14[754]]&&_0xa132x9[_0x4e14[252]][_0x4e14[57]](_0x4e14[1377],_0x4e14[130]);if(this[_0x4e14[3010]](_0xa132x4)){if(mxClient[_0x4e14[754]]){var _0xa132xa=mxUtils[_0x4e14[885]](this,function(_0xa132x2){_0xa132x2=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x2),mxEvent[_0x4e14[733]](_0xa132x2));return this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[248]](this[_0x4e14[1179]][_0x4e14[999]](_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]]));});mxEvent[_0x4e14[2733]](_0xa132x9[_0x4e14[252]],this[_0x4e14[1179]],_0xa132xa);}else {_0xa132x9[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[3011]],mxEvent[_0x4e14[2733]](_0xa132x9[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]])}};_0xa132x3[_0x4e14[207]](_0xa132x9);_0xa132x5||(this[_0x4e14[1525]][_0x4e14[207]]( new mxPoint(0,0)),_0xa132x9[_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188]);};}};return _0xa132x3;};mxEdgeHandler[_0x4e14[202]][_0x4e14[3010]]=function(_0xa132x2){return !0};mxEdgeHandler[_0x4e14[202]][_0x4e14[3008]]=function(_0xa132x2){return !0};mxEdgeHandler[_0x4e14[202]][_0x4e14[3009]]=function(_0xa132x2){if(null!=this[_0x4e14[2959]]){return  new mxImageShape( new mxRectangle(0,0,this[_0x4e14[2959]][_0x4e14[117]],this[_0x4e14[2959]][_0x4e14[119]]),this[_0x4e14[2959]][_0x4e14[390]])};_0xa132x2=mxConstants[_0x4e14[2974]];this[_0x4e14[574]]&&(_0xa132x2-=1);return  new mxRectangleShape( new mxRectangle(0,0,_0xa132x2,_0xa132x2),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);};mxEdgeHandler[_0x4e14[202]][_0x4e14[3002]]=function(_0xa132x2){this[_0x4e14[574]]?(_0xa132x2[_0x4e14[507]]=mxConstants[_0x4e14[1656]],_0xa132x2[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[526]])):(_0xa132x2[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[2334]]:mxConstants[_0x4e14[508]],_0xa132x2[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]()))};mxEdgeHandler[_0x4e14[202]][_0x4e14[2986]]=function(_0xa132x2){if(null!=this[_0x4e14[2994]]){for(var _0xa132x3=this[_0x4e14[2353]],_0xa132x3=this[_0x4e14[2958]]&&(mxClient[_0x4e14[80]]||0<_0xa132x3)? new mxRectangle(_0xa132x2[_0x4e14[734]]()-_0xa132x3,_0xa132x2[_0x4e14[735]]()-_0xa132x3,2*_0xa132x3,2*_0xa132x3):null,_0xa132x4=0;_0xa132x4<this[_0x4e14[2994]][_0x4e14[67]];_0xa132x4++){if((_0xa132x2[_0x4e14[729]](this[_0x4e14[2994]][_0xa132x4])||null!=_0xa132x3&&mxUtils[_0x4e14[1825]](this[_0x4e14[2994]][_0xa132x4][_0x4e14[1562]],_0xa132x3))&&_0x4e14[188]!=this[_0x4e14[2994]][_0xa132x4][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]){return _0xa132x4}}};if(_0xa132x2[_0x4e14[729]](this[_0x4e14[2972]])&&_0x4e14[188]!=this[_0x4e14[2972]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]||_0xa132x2[_0x4e14[729]](this[_0x4e14[724]][_0x4e14[963]])){if(!mxClient[_0x4e14[75]]&&!mxClient[_0x4e14[76]]||_0x4e14[2822]!=_0xa132x2[_0x4e14[728]]()[_0x4e14[301]]){return mxEvent[_0x4e14[2987]]}};return null;};mxEdgeHandler[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=null,_0xa132x4=this[_0x4e14[2986]](_0xa132x3);null!=_0xa132x4&&(!_0xa132x3[_0x4e14[721]]()&&this[_0x4e14[1179]][_0x4e14[994]]()&&!this[_0x4e14[1179]][_0x4e14[2579]](_0xa132x3[_0x4e14[727]]()))&&(this[_0x4e14[2995]]&&this[_0x4e14[3004]](_0xa132x3[_0x4e14[727]]())?this[_0x4e14[3012]](this[_0x4e14[724]],_0xa132x4):(_0xa132x4!=mxEvent[_0x4e14[2987]]||this[_0x4e14[1179]][_0x4e14[2628]](_0xa132x3[_0x4e14[736]]()))&&this[_0x4e14[861]](_0xa132x3[_0x4e14[730]](),_0xa132x3[_0x4e14[732]](),_0xa132x4),_0xa132x3[_0x4e14[722]]());};mxEdgeHandler[_0x4e14[202]][_0x4e14[861]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[2739]]=_0xa132x2;this[_0x4e14[2740]]=_0xa132x3;this[_0x4e14[729]]=null==this[_0x4e14[2994]]?!1:0==_0xa132x4;this[_0x4e14[3013]]=null==this[_0x4e14[2994]]?!1:_0xa132x4==this[_0x4e14[2994]][_0x4e14[67]]-1;this[_0x4e14[3014]]=_0xa132x4==mxEvent[_0x4e14[2987]];if(this[_0x4e14[729]]||this[_0x4e14[3013]]){if(_0xa132x2=this[_0x4e14[724]][_0x4e14[246]],_0xa132x3=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[1709]](_0xa132x2,this[_0x4e14[729]]),null==_0xa132x3&&this[_0x4e14[1179]][_0x4e14[2661]](_0xa132x2,this[_0x4e14[729]])||null!=_0xa132x3&&this[_0x4e14[1179]][_0x4e14[2551]](_0xa132x2,_0xa132x3,this[_0x4e14[729]])){this[_0x4e14[1983]]=_0xa132x4}}else {this[_0x4e14[1983]]=_0xa132x4};};mxEdgeHandler[_0x4e14[202]][_0x4e14[3015]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[724]][_0x4e14[238]]()};mxEdgeHandler[_0x4e14[202]][_0x4e14[3016]]=function(){return this[_0x4e14[1179]][_0x4e14[1020]]*this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]]/2};mxEdgeHandler[_0x4e14[202]][_0x4e14[2689]]=function(_0xa132x2){var _0xa132x3= new mxPoint(_0xa132x2[_0x4e14[734]](),_0xa132x2[_0x4e14[735]]()),_0xa132x4=this[_0x4e14[3016]](),_0xa132x5=this[_0x4e14[1179]][_0x4e14[249]](),_0xa132x9=!1,_0xa132xa=!1;if(this[_0x4e14[2996]]&&0<_0xa132x4){var _0xa132x12=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x5=_0xa132x2[_0x4e14[235]];Math[_0x4e14[425]](_0xa132x3[_0x4e14[235]]-_0xa132x5)<_0xa132x4&&(_0xa132x3[_0x4e14[235]]=_0xa132x5,_0xa132x9= !0);_0xa132x2=_0xa132x2[_0x4e14[236]];Math[_0x4e14[425]](_0xa132x3[_0x4e14[236]]-_0xa132x2)<_0xa132x4&&(_0xa132x3[_0x4e14[236]]=_0xa132x2,_0xa132xa= !0);}},_0xa132x13=function(_0xa132x2){null!=_0xa132x2&&_0xa132x12[_0x4e14[239]](this, new mxPoint(_0xa132x5[_0x4e14[2230]](_0xa132x2),_0xa132x5[_0x4e14[2228]](_0xa132x2)))};_0xa132x13[_0x4e14[239]](this,this[_0x4e14[724]][_0x4e14[2089]](!0));_0xa132x13[_0x4e14[239]](this,this[_0x4e14[724]][_0x4e14[2089]](!1));if(null!=this[_0x4e14[2997]]){for(_0xa132x13=0;_0xa132x13<this[_0x4e14[2997]];_0xa132x13++){_0xa132x13!=this[_0x4e14[1983]]&&_0xa132x12[_0x4e14[239]](this,this[_0x4e14[2997]][_0xa132x13])}};};this[_0x4e14[1179]][_0x4e14[1018]](_0xa132x2[_0x4e14[727]]())&&(_0xa132x2=_0xa132x5[_0x4e14[255]],_0xa132x13=_0xa132x5[_0x4e14[513]],_0xa132x9||(_0xa132x3[_0x4e14[235]]=(this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x3[_0x4e14[235]]/_0xa132x2-_0xa132x13[_0x4e14[235]])+_0xa132x13[_0x4e14[235]])*_0xa132x2),_0xa132xa||(_0xa132x3[_0x4e14[236]]=(this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x3[_0x4e14[236]]/_0xa132x2-_0xa132x13[_0x4e14[236]])+_0xa132x13[_0x4e14[236]])*_0xa132x2));return _0xa132x3;};mxEdgeHandler[_0x4e14[202]][_0x4e14[3017]]=function(_0xa132x2){this[_0x4e14[2886]][_0x4e14[2729]](_0xa132x2,this[_0x4e14[729]]);this[_0x4e14[2885]][_0x4e14[2871]](_0xa132x2);_0xa132x2=this[_0x4e14[2885]][_0x4e14[2868]]();var _0xa132x3=null;null!=this[_0x4e14[2886]][_0x4e14[2919]]&&null!=this[_0x4e14[2886]][_0x4e14[2920]]&&this[_0x4e14[2885]][_0x4e14[862]]();null!=_0xa132x2?_0xa132x3=_0xa132x2:null!=this[_0x4e14[2886]][_0x4e14[2920]]&&null!=this[_0x4e14[2886]][_0x4e14[2919]]&&(_0xa132x3=this[_0x4e14[2886]][_0x4e14[2919]]);return _0xa132x3;};mxEdgeHandler[_0x4e14[202]][_0x4e14[3018]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[1198]](this[_0x4e14[724]][_0x4e14[246]]),_0xa132x3=null!=_0xa132x3[_0x4e14[1525]]?_0xa132x3[_0x4e14[1525]][_0x4e14[1853]]():null;!this[_0x4e14[729]]&&!this[_0x4e14[3013]]?(this[_0x4e14[2196]](_0xa132x2,!1),null==_0xa132x3?_0xa132x3=[_0xa132x2]:_0xa132x3[this[_0x4e14[1983]]-1]=_0xa132x2):this[_0x4e14[1179]][_0x4e14[2401]]&&(_0xa132x3=null);return _0xa132x3;};mxEdgeHandler[_0x4e14[202]][_0x4e14[3019]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[729]]?_0xa132x4:this[_0x4e14[724]][_0x4e14[2089]](!0),_0xa132x9=this[_0x4e14[3013]]?_0xa132x4:this[_0x4e14[724]][_0x4e14[2089]](!1),_0xa132xa=this[_0x4e14[1179]][_0x4e14[2288]](_0xa132x2,_0xa132x5,!0),_0xa132x12=this[_0x4e14[1179]][_0x4e14[2288]](_0xa132x2,_0xa132x9,!1),_0xa132x13=this[_0x4e14[2886]][_0x4e14[2920]];null==_0xa132x13&&(_0xa132x13= new mxConnectionConstraint);this[_0x4e14[729]]?_0xa132xa=_0xa132x13:this[_0x4e14[3013]]&&(_0xa132x12=_0xa132x13);(!this[_0x4e14[729]]||null!=_0xa132x5)&&_0xa132x2[_0x4e14[441]][_0x4e14[2289]](_0xa132x2,_0xa132x5,!0,_0xa132xa);(!this[_0x4e14[3013]]||null!=_0xa132x9)&&_0xa132x2[_0x4e14[441]][_0x4e14[2289]](_0xa132x2,_0xa132x9,!1,_0xa132x12);if((this[_0x4e14[729]]||this[_0x4e14[3013]])&&null==_0xa132x4){_0xa132x2[_0x4e14[2088]](_0xa132x3,this[_0x4e14[729]]),null==this[_0x4e14[2885]][_0x4e14[2869]]()&&(this[_0x4e14[267]]=this[_0x4e14[1179]][_0x4e14[2406]]?null:_0x4e14[110])};_0xa132x2[_0x4e14[441]][_0x4e14[2282]](_0xa132x2,this[_0x4e14[1525]],_0xa132x5,_0xa132x9);_0xa132x2[_0x4e14[441]][_0x4e14[2283]](_0xa132x2,_0xa132x5,_0xa132x9);};mxEdgeHandler[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){if(null!=this[_0x4e14[1983]]&&null!=this[_0x4e14[2885]]){var _0xa132x4=this[_0x4e14[2689]](_0xa132x3);if(this[_0x4e14[3014]]){this[_0x4e14[685]][_0x4e14[235]]=_0xa132x4[_0x4e14[235]],this[_0x4e14[685]][_0x4e14[236]]=_0xa132x4[_0x4e14[236]]}else {this[_0x4e14[1525]]=this[_0x4e14[3018]](_0xa132x4);var _0xa132x5=this[_0x4e14[729]]||this[_0x4e14[3013]]?this[_0x4e14[3017]](_0xa132x3):null,_0xa132x9=this[_0x4e14[3015]](_0xa132x4,null!=_0xa132x5?_0xa132x5[_0x4e14[246]]:null);this[_0x4e14[3019]](_0xa132x9,_0xa132x4,_0xa132x5);this[_0x4e14[3020]](null==this[_0x4e14[267]]?this[_0x4e14[2885]][_0x4e14[2853]]:this[_0x4e14[2885]][_0x4e14[2855]]);this[_0x4e14[2997]]=_0xa132x9[_0x4e14[439]];this[_0x4e14[1124]]= !0;};this[_0x4e14[2932]]();mxEvent[_0x4e14[722]](_0xa132x3[_0x4e14[727]]());_0xa132x3[_0x4e14[722]]();}else {mxClient[_0x4e14[80]]&&null!=this[_0x4e14[2986]](_0xa132x3)&&_0xa132x3[_0x4e14[722]](!1)}};mxEdgeHandler[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){if(null!=this[_0x4e14[1983]]&&null!=this[_0x4e14[2885]]){var _0xa132x4=this[_0x4e14[724]][_0x4e14[246]];if(_0xa132x3[_0x4e14[730]]()!=this[_0x4e14[2739]]||_0xa132x3[_0x4e14[732]]()!=this[_0x4e14[2740]]){if(null!=this[_0x4e14[267]]){0<this[_0x4e14[267]][_0x4e14[67]]&&this[_0x4e14[1179]][_0x4e14[2580]](this[_0x4e14[267]])}else {if(this[_0x4e14[3014]]){this[_0x4e14[3021]](this[_0x4e14[724]],this[_0x4e14[685]][_0x4e14[235]],this[_0x4e14[685]][_0x4e14[236]])}else {if(this[_0x4e14[729]]||this[_0x4e14[3013]]){var _0xa132x5=null;null!=this[_0x4e14[2886]][_0x4e14[2920]]&&null!=this[_0x4e14[2886]][_0x4e14[2919]]&&(_0xa132x5=this[_0x4e14[2886]][_0x4e14[2919]][_0x4e14[246]]);null==_0xa132x5&&this[_0x4e14[2885]][_0x4e14[2867]]()&&(_0xa132x5=this[_0x4e14[2885]][_0x4e14[2861]][_0x4e14[246]]);if(null!=_0xa132x5){_0xa132x4=this[_0x4e14[807]](_0xa132x4,_0xa132x5,this[_0x4e14[729]],this[_0x4e14[1179]][_0x4e14[2574]](_0xa132x3[_0x4e14[727]]())&&this[_0x4e14[2797]]&&this[_0x4e14[1179]][_0x4e14[2617]](),_0xa132x3)}else {if(this[_0x4e14[1179]][_0x4e14[2530]]()){_0xa132x5=this[_0x4e14[2997]][this[_0x4e14[729]]?0:this[_0x4e14[2997]][_0x4e14[67]]-1];_0xa132x5[_0x4e14[235]]=_0xa132x5[_0x4e14[235]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]]-this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[513]][_0x4e14[235]];_0xa132x5[_0x4e14[236]]=_0xa132x5[_0x4e14[236]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]]-this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[513]][_0x4e14[236]];var _0xa132x9=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1197]](_0xa132x4));null!=_0xa132x9&&(_0xa132x5[_0x4e14[235]]-=_0xa132x9[_0x4e14[2078]][_0x4e14[235]],_0xa132x5[_0x4e14[236]]-=_0xa132x9[_0x4e14[2078]][_0x4e14[236]]);_0xa132x5[_0x4e14[235]]-=this[_0x4e14[1179]][_0x4e14[1136]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]];_0xa132x5[_0x4e14[236]]-=this[_0x4e14[1179]][_0x4e14[1137]]/this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]];this[_0x4e14[3022]](_0xa132x4,_0xa132x5,this[_0x4e14[729]]);}};}else {this[_0x4e14[1124]]?this[_0x4e14[3023]](_0xa132x4,this[_0x4e14[1525]]):(this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[2263]](this[_0x4e14[724]][_0x4e14[246]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[2259]](this[_0x4e14[724]][_0x4e14[246]]))}}}};null!=this[_0x4e14[2885]]&&(this[_0x4e14[862]](),_0xa132x4!=this[_0x4e14[724]][_0x4e14[246]]&&this[_0x4e14[1179]][_0x4e14[2450]](_0xa132x4));_0xa132x3[_0x4e14[722]]();}};mxEdgeHandler[_0x4e14[202]][_0x4e14[862]]=function(){this[_0x4e14[1525]]=this[_0x4e14[685]]=this[_0x4e14[1983]]=this[_0x4e14[267]]=null;this[_0x4e14[3013]]=this[_0x4e14[729]]=this[_0x4e14[3014]]=this[_0x4e14[1124]]= !1;this[_0x4e14[2885]][_0x4e14[862]]();this[_0x4e14[2886]][_0x4e14[862]]();this[_0x4e14[3020]](mxConstants.EDGE_SELECTION_COLOR);this[_0x4e14[258]]();};mxEdgeHandler[_0x4e14[202]][_0x4e14[3020]]=function(_0xa132x2){null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[1336]]=_0xa132x2)};mxEdgeHandler[_0x4e14[202]][_0x4e14[2196]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[518]](),_0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[512]]();_0xa132x3&&(_0xa132x2[_0x4e14[235]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[235]]),_0xa132x2[_0x4e14[236]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[236]]));_0xa132x2[_0x4e14[235]]=Math[_0x4e14[488]](_0xa132x2[_0x4e14[235]]/_0xa132x4-_0xa132x5[_0x4e14[235]]);_0xa132x2[_0x4e14[236]]=Math[_0x4e14[488]](_0xa132x2[_0x4e14[236]]/_0xa132x4-_0xa132x5[_0x4e14[236]]);_0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1197]](this[_0x4e14[724]][_0x4e14[246]]));null!=_0xa132x4&&(_0xa132x2[_0x4e14[235]]-=_0xa132x4[_0x4e14[2078]][_0x4e14[235]],_0xa132x2[_0x4e14[236]]-=_0xa132x4[_0x4e14[2078]][_0x4e14[236]]);return _0xa132x2;};mxEdgeHandler[_0x4e14[202]][_0x4e14[3021]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x9=_0xa132x5[_0x4e14[1721]](_0xa132x2[_0x4e14[246]]);if(null!=_0xa132x9){var _0xa132x9=_0xa132x9[_0x4e14[238]](),_0xa132xa=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[2308]](_0xa132x2,_0xa132x3,_0xa132x4);_0xa132x9[_0x4e14[235]]=_0xa132xa[_0x4e14[235]];_0xa132x9[_0x4e14[236]]=_0xa132xa[_0x4e14[236]];var _0xa132x12=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]];_0xa132x9[_0x4e14[1368]]= new mxPoint(0,0);_0xa132xa=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[245]](_0xa132x2,_0xa132x9);_0xa132x9[_0x4e14[1368]]= new mxPoint((_0xa132x3-_0xa132xa[_0x4e14[235]])/_0xa132x12,(_0xa132x4-_0xa132xa[_0x4e14[236]])/_0xa132x12);_0xa132x5[_0x4e14[1724]](_0xa132x2[_0x4e14[246]],_0xa132x9);};};mxEdgeHandler[_0x4e14[202]][_0x4e14[807]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x9=this[_0x4e14[1179]][_0x4e14[502]]();var _0xa132xa=_0xa132x9[_0x4e14[1197]](_0xa132x2);_0xa132x9[_0x4e14[473]]();try{if(_0xa132x5){var _0xa132x12=_0xa132x2[_0x4e14[238]]();_0xa132x9[_0x4e14[99]](_0xa132xa,_0xa132x12,_0xa132x9[_0x4e14[262]](_0xa132xa));var _0xa132x13=_0xa132x9[_0x4e14[1709]](_0xa132x2,!_0xa132x4);this[_0x4e14[1179]][_0x4e14[851]](_0xa132x12,_0xa132x13,!_0xa132x4);_0xa132x2=_0xa132x12;};var _0xa132x14=this[_0x4e14[2886]][_0x4e14[2920]];null==_0xa132x14&&(_0xa132x14= new mxConnectionConstraint);this[_0x4e14[1179]][_0x4e14[851]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x14);}finally{_0xa132x9[_0x4e14[476]]()};return _0xa132x2;};mxEdgeHandler[_0x4e14[202]][_0x4e14[3022]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x9=_0xa132x5[_0x4e14[1721]](_0xa132x2);if(null!=_0xa132x9){_0xa132x5[_0x4e14[473]]();try{_0xa132x9=_0xa132x9[_0x4e14[238]](),_0xa132x9[_0x4e14[2007]](_0xa132x3,_0xa132x4),_0xa132x5[_0x4e14[1724]](_0xa132x2,_0xa132x9),this[_0x4e14[1179]][_0x4e14[851]](_0xa132x2,null,_0xa132x4, new mxConnectionConstraint)}finally{_0xa132x5[_0x4e14[476]]()};};};mxEdgeHandler[_0x4e14[202]][_0x4e14[3023]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x5=_0xa132x4[_0x4e14[1721]](_0xa132x2);null!=_0xa132x5&&(_0xa132x5=_0xa132x5[_0x4e14[238]](),_0xa132x5[_0x4e14[1525]]=_0xa132x3,_0xa132x4[_0x4e14[1724]](_0xa132x2,_0xa132x5));};mxEdgeHandler[_0x4e14[202]][_0x4e14[3000]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=mxUtils[_0x4e14[2196]](this[_0x4e14[1179]][_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x3),mxEvent[_0x4e14[733]](_0xa132x3)),_0xa132x5=this[_0x4e14[1179]][_0x4e14[1018]](_0xa132x3);this[_0x4e14[2196]](_0xa132x4,_0xa132x5);this[_0x4e14[3024]](_0xa132x2,_0xa132x4[_0x4e14[235]],_0xa132x4[_0x4e14[236]]);mxEvent[_0x4e14[722]](_0xa132x3);};mxEdgeHandler[_0x4e14[202]][_0x4e14[3024]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[1179]][_0x4e14[1198]](_0xa132x2[_0x4e14[246]]);_0xa132x3= new mxPoint(_0xa132x3,_0xa132x4);if(null!=_0xa132x5){_0xa132x5=_0xa132x5[_0x4e14[238]]();_0xa132x4=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[513]];var _0xa132x9=this[_0x4e14[1179]][_0x4e14[441]][_0x4e14[255]];_0xa132x4=mxUtils[_0x4e14[3025]](_0xa132x2,(_0xa132x3[_0x4e14[235]]+_0xa132x4[_0x4e14[235]])*_0xa132x9,(_0xa132x3[_0x4e14[236]]+_0xa132x4[_0x4e14[236]])*_0xa132x9);null==_0xa132x5[_0x4e14[1525]]?_0xa132x5[_0x4e14[1525]]=[_0xa132x3]:_0xa132x5[_0x4e14[1525]][_0x4e14[300]](_0xa132x4,0,_0xa132x3);this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1724]](_0xa132x2[_0x4e14[246]],_0xa132x5);this[_0x4e14[515]]();this[_0x4e14[176]]();};};mxEdgeHandler[_0x4e14[202]][_0x4e14[3012]]=function(_0xa132x2,_0xa132x3){if(0<_0xa132x3&&_0xa132x3<this[_0x4e14[2997]][_0x4e14[67]]-1){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[1198]](this[_0x4e14[724]][_0x4e14[246]]);null!=_0xa132x4&&null!=_0xa132x4[_0x4e14[1525]]&&(_0xa132x4=_0xa132x4[_0x4e14[238]](),_0xa132x4[_0x4e14[1525]][_0x4e14[300]](_0xa132x3-1,1),this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1724]](_0xa132x2[_0x4e14[246]],_0xa132x4),this[_0x4e14[515]](),this[_0x4e14[176]]());}};mxEdgeHandler[_0x4e14[202]][_0x4e14[3026]]=function(_0xa132x2){_0xa132x2=0==_0xa132x2;var _0xa132x3=this[_0x4e14[724]][_0x4e14[246]],_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1709]](_0xa132x3,_0xa132x2),_0xa132x5=mxConstants[_0x4e14[2984]];null!=_0xa132x4&&!this[_0x4e14[1179]][_0x4e14[2551]](_0xa132x3,_0xa132x4,_0xa132x2)||null==_0xa132x4&&!this[_0x4e14[1179]][_0x4e14[2661]](_0xa132x3,_0xa132x2)?_0xa132x5=mxConstants[_0x4e14[3027]]:null!=_0xa132x4&&this[_0x4e14[1179]][_0x4e14[2551]](_0xa132x3,_0xa132x4,_0xa132x2)&&(_0xa132x5=mxConstants[_0x4e14[3028]]);return _0xa132x5;};mxEdgeHandler[_0x4e14[202]][_0x4e14[258]]=function(){this[_0x4e14[2997]]=this[_0x4e14[724]][_0x4e14[439]][_0x4e14[1853]]();var _0xa132x2=this[_0x4e14[724]][_0x4e14[246]],_0xa132x3=mxConstants[_0x4e14[3029]];this[_0x4e14[685]]= new mxPoint(this[_0x4e14[724]][_0x4e14[2079]][_0x4e14[235]],this[_0x4e14[724]][_0x4e14[2079]][_0x4e14[236]]);this[_0x4e14[2972]][_0x4e14[1562]]= new mxRectangle(Math[_0x4e14[488]](this[_0x4e14[685]][_0x4e14[235]]-_0xa132x3/2),Math[_0x4e14[488]](this[_0x4e14[685]][_0x4e14[236]]-_0xa132x3/2),_0xa132x3,_0xa132x3);this[_0x4e14[2972]][_0x4e14[258]]();_0xa132x3=this[_0x4e14[1179]][_0x4e14[2183]](_0xa132x2);null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]&&this[_0x4e14[1179]][_0x4e14[2628]](_0xa132x2)?this[_0x4e14[2972]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189]:this[_0x4e14[2972]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188];if(null!=this[_0x4e14[2994]]&&0<this[_0x4e14[2994]][_0x4e14[67]]){var _0xa132x4=this[_0x4e14[2997]][_0x4e14[67]]-1,_0xa132x2=this[_0x4e14[2997]][0],_0xa132x5=this[_0x4e14[2997]][0][_0x4e14[236]],_0xa132x3=this[_0x4e14[2994]][0][_0x4e14[1562]];this[_0x4e14[2994]][0][_0x4e14[1562]]= new mxRectangle(Math[_0x4e14[488]](this[_0x4e14[2997]][0][_0x4e14[235]]-_0xa132x3[_0x4e14[117]]/2),Math[_0x4e14[488]](_0xa132x5-_0xa132x3[_0x4e14[119]]/2),_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]]);this[_0x4e14[2994]][0][_0x4e14[1334]]=this[_0x4e14[3026]](0);this[_0x4e14[2994]][0][_0x4e14[258]]();var _0xa132x5=this[_0x4e14[2997]][_0xa132x4],_0xa132x9=this[_0x4e14[2997]][_0xa132x4][_0x4e14[235]],_0xa132x4=this[_0x4e14[2997]][_0xa132x4][_0x4e14[236]],_0xa132xa=this[_0x4e14[2994]][_0x4e14[67]]-1,_0xa132x3=this[_0x4e14[2994]][_0xa132xa][_0x4e14[1562]];this[_0x4e14[2994]][_0xa132xa][_0x4e14[1562]]= new mxRectangle(Math[_0x4e14[488]](_0xa132x9-_0xa132x3[_0x4e14[117]]/2),Math[_0x4e14[488]](_0xa132x4-_0xa132x3[_0x4e14[119]]/2),_0xa132x3[_0x4e14[117]],_0xa132x3[_0x4e14[119]]);this[_0x4e14[2994]][_0xa132xa][_0x4e14[1334]]=this[_0x4e14[3026]](_0xa132xa);this[_0x4e14[2994]][_0xa132xa][_0x4e14[258]]();this[_0x4e14[3030]](_0xa132x2,_0xa132x5);};this[_0x4e14[2932]]();};mxEdgeHandler[_0x4e14[202]][_0x4e14[3030]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1721]](this[_0x4e14[724]][_0x4e14[246]])[_0x4e14[1525]];if(null!=_0xa132x4){null==this[_0x4e14[1525]]&&(this[_0x4e14[1525]]=[]);for(var _0xa132x5=1;_0xa132x5<this[_0x4e14[2994]][_0x4e14[67]]-1;_0xa132x5++){if(null!=this[_0x4e14[2994]][_0xa132x5]){if(null!=this[_0x4e14[2997]][_0xa132x5]){var _0xa132x9=this[_0x4e14[2997]][_0xa132x5][_0x4e14[235]],_0xa132xa=this[_0x4e14[2997]][_0xa132x5][_0x4e14[236]],_0xa132x12=this[_0x4e14[2994]][_0xa132x5][_0x4e14[1562]];this[_0x4e14[2994]][_0xa132x5][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[189];this[_0x4e14[2994]][_0xa132x5][_0x4e14[1562]]= new mxRectangle(Math[_0x4e14[488]](_0xa132x9-_0xa132x12[_0x4e14[117]]/2),Math[_0x4e14[488]](_0xa132xa-_0xa132x12[_0x4e14[119]]/2),_0xa132x12[_0x4e14[117]],_0xa132x12[_0x4e14[119]]);this[_0x4e14[2994]][_0xa132x5][_0x4e14[258]]();this[_0x4e14[1525]][_0xa132x5-1]=_0xa132x4[_0xa132x5-1];}else {this[_0x4e14[2994]][_0xa132x5][_0x4e14[515]](),this[_0x4e14[2994]][_0xa132x5]=null}}};};};mxEdgeHandler[_0x4e14[202]][_0x4e14[2932]]=function(){if(this[_0x4e14[3014]]){var _0xa132x2=mxConstants[_0x4e14[3029]],_0xa132x2= new mxRectangle(Math[_0x4e14[488]](this[_0x4e14[685]][_0x4e14[235]]-_0xa132x2/2),Math[_0x4e14[488]](this[_0x4e14[685]][_0x4e14[236]]-_0xa132x2/2),_0xa132x2,_0xa132x2);this[_0x4e14[2972]][_0x4e14[1562]]=_0xa132x2;this[_0x4e14[2972]][_0x4e14[258]]();}else {this[_0x4e14[253]][_0x4e14[1525]]=this[_0x4e14[2997]],this[_0x4e14[253]][_0x4e14[258]]()}};mxEdgeHandler[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[2885]]&&(this[_0x4e14[2885]][_0x4e14[515]](),this[_0x4e14[2885]]=null);null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[515]](),this[_0x4e14[253]]=null);null!=this[_0x4e14[2972]]&&(this[_0x4e14[2972]][_0x4e14[515]](),this[_0x4e14[2972]]=null);null!=this[_0x4e14[2886]]&&(this[_0x4e14[2886]][_0x4e14[515]](),this[_0x4e14[2886]]=null);if(null!=this[_0x4e14[2994]]){for(var _0xa132x2=0;_0xa132x2<this[_0x4e14[2994]][_0x4e14[67]];_0xa132x2++){null!=this[_0x4e14[2994]][_0xa132x2]&&(this[_0x4e14[2994]][_0xa132x2][_0x4e14[515]](),this[_0x4e14[2994]][_0xa132x2]=null)}};};function mxElbowEdgeHandler(_0xa132x2){mxEdgeHandler[_0x4e14[239]](this,_0xa132x2)}mxUtils[_0x4e14[1284]](mxElbowEdgeHandler,mxEdgeHandler);mxElbowEdgeHandler[_0x4e14[202]]= new mxEdgeHandler;mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[196]]=mxElbowEdgeHandler;mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3031]]= !0;mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3032]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[3033]:_0x4e14[110];mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3001]]=function(){var _0xa132x2=[],_0xa132x3=this[_0x4e14[3009]](0);this[_0x4e14[3002]](_0xa132x3);_0xa132x3[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[3011]];mxEvent[_0x4e14[2733]](_0xa132x3[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);_0xa132x2[_0x4e14[207]](_0xa132x3);mxClient[_0x4e14[754]]&&_0xa132x3[_0x4e14[252]][_0x4e14[57]](_0x4e14[1377],_0x4e14[130]);_0xa132x2[_0x4e14[207]](this[_0x4e14[3034]]());this[_0x4e14[1525]][_0x4e14[207]]( new mxPoint(0,0));_0xa132x3=this[_0x4e14[3009]](2);this[_0x4e14[3002]](_0xa132x3);_0xa132x3[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[3011]];mxEvent[_0x4e14[2733]](_0xa132x3[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);_0xa132x2[_0x4e14[207]](_0xa132x3);mxClient[_0x4e14[754]]&&_0xa132x3[_0x4e14[252]][_0x4e14[57]](_0x4e14[1377],_0x4e14[130]);return _0xa132x2;};mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3034]]=function(){var _0xa132x2=this[_0x4e14[3009]]();this[_0x4e14[3002]](_0xa132x2);var _0xa132x3=this[_0x4e14[3035]]();_0xa132x2[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=_0xa132x3;_0xa132x3=mxUtils[_0x4e14[885]](this,function(_0xa132x2){!mxEvent[_0x4e14[721]](_0xa132x2)&&this[_0x4e14[3031]]&&(this[_0x4e14[1179]][_0x4e14[854]](this[_0x4e14[724]][_0x4e14[246]],_0xa132x2),mxEvent[_0x4e14[722]](_0xa132x2))});mxEvent[_0x4e14[2733]](_0xa132x2[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]],null,null,null,_0xa132x3);this[_0x4e14[1179]][_0x4e14[2662]](this[_0x4e14[724]][_0x4e14[246]])||(_0xa132x2[_0x4e14[252]][_0x4e14[124]][_0x4e14[495]]=_0x4e14[130]);return _0xa132x2;};mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3035]]=function(){return this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2294]]]==mxEdgeStyle[_0x4e14[2570]]||this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2294]]]==mxConstants[_0x4e14[3036]]||(this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2294]]]==mxEdgeStyle[_0x4e14[2568]]||this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2294]]]==mxConstants[_0x4e14[3037]])&&this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2231]]]==mxConstants[_0x4e14[2232]]?_0x4e14[3038]:_0x4e14[3039]};mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[2597]]=function(_0xa132x2){var _0xa132x3=null;if(null!=this[_0x4e14[2994]]&&null!=this[_0x4e14[2994]][1]&&(_0xa132x2==this[_0x4e14[2994]][1][_0x4e14[252]]||_0xa132x2[_0x4e14[265]]==this[_0x4e14[2994]][1][_0x4e14[252]])){_0xa132x3=this[_0x4e14[3032]],_0xa132x3=mxResources[_0x4e14[203]](_0xa132x3)||_0xa132x3};return _0xa132x3;};mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[2196]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[518]](),_0xa132x5=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[512]](),_0xa132x9=this[_0x4e14[724]][_0x4e14[2078]];_0xa132x3&&(_0xa132x2[_0x4e14[235]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[235]]),_0xa132x2[_0x4e14[236]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x2[_0x4e14[236]]));_0xa132x2[_0x4e14[235]]=Math[_0x4e14[488]](_0xa132x2[_0x4e14[235]]/_0xa132x4-_0xa132x5[_0x4e14[235]]-_0xa132x9[_0x4e14[235]]);_0xa132x2[_0x4e14[236]]=Math[_0x4e14[488]](_0xa132x2[_0x4e14[236]]/_0xa132x4-_0xa132x5[_0x4e14[236]]-_0xa132x9[_0x4e14[236]]);};mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3030]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1721]](this[_0x4e14[724]][_0x4e14[246]])[_0x4e14[1525]],_0xa132x4=null!=_0xa132x4?_0xa132x4[0]:null,_0xa132x4=null==_0xa132x4? new mxPoint(_0xa132x2[_0x4e14[235]]+(_0xa132x3[_0x4e14[235]]-_0xa132x2[_0x4e14[235]])/2,_0xa132x2[_0x4e14[236]]+(_0xa132x3[_0x4e14[236]]-_0xa132x2[_0x4e14[236]])/2): new mxPoint(this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]]*(_0xa132x4[_0x4e14[235]]+this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[513]][_0x4e14[235]]+this[_0x4e14[724]][_0x4e14[2078]][_0x4e14[235]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]]*(_0xa132x4[_0x4e14[236]]+this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[513]][_0x4e14[236]]+this[_0x4e14[724]][_0x4e14[2078]][_0x4e14[236]])),_0xa132x5=this[_0x4e14[2994]][1][_0x4e14[1562]],_0xa132x9=_0xa132x5[_0x4e14[117]],_0xa132x5=_0xa132x5[_0x4e14[119]];null==this[_0x4e14[2959]]&&(_0xa132x5=_0xa132x9=mxConstants[_0x4e14[2974]]);var _0xa132xa= new mxRectangle(Math[_0x4e14[488]](_0xa132x4[_0x4e14[235]]-_0xa132x9/2),Math[_0x4e14[488]](_0xa132x4[_0x4e14[236]]-_0xa132x5/2),_0xa132x9,_0xa132x5);null==this[_0x4e14[2959]]&&(_0x4e14[188]!=this[_0x4e14[2972]][_0x4e14[252]][_0x4e14[124]][_0x4e14[187]]&&mxUtils[_0x4e14[1825]](_0xa132xa,this[_0x4e14[2972]][_0x4e14[1562]]))&&(_0xa132x9+=3,_0xa132x5+=3,_0xa132xa= new mxRectangle(Math[_0x4e14[488]](_0xa132x4[_0x4e14[235]]-_0xa132x9/2),Math[_0x4e14[488]](_0xa132x4[_0x4e14[236]]-_0xa132x5/2),_0xa132x9,_0xa132x5));this[_0x4e14[2994]][1][_0x4e14[1562]]=_0xa132xa;this[_0x4e14[2994]][1][_0x4e14[258]]();};function mxEdgeSegmentHandler(_0xa132x2){mxEdgeHandler[_0x4e14[239]](this,_0xa132x2)}mxUtils[_0x4e14[1284]](mxEdgeSegmentHandler,mxEdgeHandler);mxEdgeSegmentHandler[_0x4e14[202]]= new mxElbowEdgeHandler;mxEdgeSegmentHandler[_0x4e14[202]][_0x4e14[196]]=mxEdgeSegmentHandler;mxEdgeSegmentHandler[_0x4e14[202]][_0x4e14[3018]]=function(_0xa132x2){if(this[_0x4e14[729]]||this[_0x4e14[3013]]){return mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3018]][_0x4e14[183]](this,arguments)};this[_0x4e14[2196]](_0xa132x2,!1);var _0xa132x3=this[_0x4e14[724]][_0x4e14[439]],_0xa132x4=_0xa132x3[0][_0x4e14[238]]();this[_0x4e14[2196]](_0xa132x4,!1);for(var _0xa132x5=[],_0xa132x9=1;_0xa132x9<_0xa132x3[_0x4e14[67]];_0xa132x9++){var _0xa132xa=_0xa132x3[_0xa132x9][_0x4e14[238]]();this[_0x4e14[2196]](_0xa132xa,!1);_0xa132x9==this[_0x4e14[1983]]&&(_0xa132x4[_0x4e14[235]]==_0xa132xa[_0x4e14[235]]?(_0xa132x4[_0x4e14[235]]=_0xa132x2[_0x4e14[235]],_0xa132xa[_0x4e14[235]]=_0xa132x2[_0x4e14[235]]):(_0xa132x4[_0x4e14[236]]=_0xa132x2[_0x4e14[236]],_0xa132xa[_0x4e14[236]]=_0xa132x2[_0x4e14[236]]));_0xa132x9<_0xa132x3[_0x4e14[67]]-1&&_0xa132x5[_0x4e14[207]](_0xa132xa);_0xa132x4=_0xa132xa;};if(1==_0xa132x5[_0x4e14[67]]){if(_0xa132x4=this[_0x4e14[724]][_0x4e14[441]],_0xa132x9=this[_0x4e14[724]][_0x4e14[2089]](!0),_0xa132xa=this[_0x4e14[724]][_0x4e14[2089]](!1),null!=_0xa132xa&null!=_0xa132x9){var _0xa132x12=this[_0x4e14[724]][_0x4e14[2078]][_0x4e14[235]],_0xa132x13=this[_0x4e14[724]][_0x4e14[2078]][_0x4e14[236]];mxUtils[_0x4e14[442]](_0xa132xa,_0xa132x5[0][_0x4e14[235]]+_0xa132x12,_0xa132x5[0][_0x4e14[236]]+_0xa132x13)?_0xa132x3[1][_0x4e14[236]]==_0xa132x3[2][_0x4e14[236]]?_0xa132x5[0][_0x4e14[236]]=_0xa132x4[_0x4e14[2228]](_0xa132x9)-_0xa132x13:_0xa132x5[0][_0x4e14[235]]=_0xa132x4[_0x4e14[2230]](_0xa132x9)-_0xa132x12:mxUtils[_0x4e14[442]](_0xa132x9,_0xa132x5[0][_0x4e14[235]]+_0xa132x12,_0xa132x5[0][_0x4e14[236]]+_0xa132x13)&&(_0xa132x3[1][_0x4e14[236]]==_0xa132x3[0][_0x4e14[236]]?_0xa132x5[0][_0x4e14[236]]=_0xa132x4[_0x4e14[2228]](_0xa132xa)-_0xa132x13:_0xa132x5[0][_0x4e14[235]]=_0xa132x4[_0x4e14[2230]](_0xa132xa)-_0xa132x12);}}else {0==_0xa132x5[_0x4e14[67]]&&(_0xa132x5=[_0xa132x2])};return _0xa132x5;};mxEdgeSegmentHandler[_0x4e14[202]][_0x4e14[3001]]=function(){var _0xa132x2=[],_0xa132x3=this[_0x4e14[3009]](0);this[_0x4e14[3002]](_0xa132x3);_0xa132x3[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[3011]];mxEvent[_0x4e14[2733]](_0xa132x3[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);_0xa132x2[_0x4e14[207]](_0xa132x3);mxClient[_0x4e14[754]]&&_0xa132x3[_0x4e14[252]][_0x4e14[57]](_0x4e14[1377],_0x4e14[130]);var _0xa132x4=this[_0x4e14[724]][_0x4e14[439]];if(this[_0x4e14[1179]][_0x4e14[2662]](this[_0x4e14[724]][_0x4e14[246]])){null==this[_0x4e14[1525]]&&(this[_0x4e14[1525]]=[]);for(var _0xa132x5=0;_0xa132x5<_0xa132x4[_0x4e14[67]]-1;_0xa132x5++){_0xa132x3=this[_0x4e14[3034]](),_0xa132x2[_0x4e14[207]](_0xa132x3),_0xa132x3[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=0==_0xa132x4[_0xa132x5][_0x4e14[235]]-_0xa132x4[_0xa132x5+1][_0x4e14[235]]?_0x4e14[3039]:_0x4e14[3038],this[_0x4e14[1525]][_0x4e14[207]]( new mxPoint(0,0)),mxClient[_0x4e14[754]]&&_0xa132x3[_0x4e14[252]][_0x4e14[57]](_0x4e14[1377],_0x4e14[130])};};_0xa132x3=this[_0x4e14[3009]](_0xa132x4[_0x4e14[67]]);this[_0x4e14[3002]](_0xa132x3);_0xa132x3[_0x4e14[252]][_0x4e14[124]][_0x4e14[270]]=mxConstants[_0x4e14[3011]];mxEvent[_0x4e14[2733]](_0xa132x3[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);_0xa132x2[_0x4e14[207]](_0xa132x3);mxClient[_0x4e14[754]]&&_0xa132x3[_0x4e14[252]][_0x4e14[57]](_0x4e14[1377],_0x4e14[130]);return _0xa132x2;};mxEdgeSegmentHandler[_0x4e14[202]][_0x4e14[258]]=function(){this[_0x4e14[802]]();mxEdgeHandler[_0x4e14[202]][_0x4e14[258]][_0x4e14[183]](this,arguments);};mxEdgeSegmentHandler[_0x4e14[202]][_0x4e14[802]]=function(){if(null!=this[_0x4e14[2994]]){for(var _0xa132x2=0;_0xa132x2<this[_0x4e14[2994]][_0x4e14[67]];_0xa132x2++){null!=this[_0x4e14[2994]][_0xa132x2]&&(this[_0x4e14[2994]][_0xa132x2][_0x4e14[515]](),this[_0x4e14[2994]][_0xa132x2]=null)};this[_0x4e14[2994]]=this[_0x4e14[3001]]();}};mxEdgeSegmentHandler[_0x4e14[202]][_0x4e14[3030]]=function(_0xa132x2,_0xa132x3){if(this[_0x4e14[1179]][_0x4e14[2662]](this[_0x4e14[724]][_0x4e14[246]])){var _0xa132x4=mxConstants[_0x4e14[2974]],_0xa132x5=this[_0x4e14[724]][_0x4e14[439]];if(null!=_0xa132x5&&1<_0xa132x5[_0x4e14[67]]){for(var _0xa132x9=0;_0xa132x9<this[_0x4e14[724]][_0x4e14[439]][_0x4e14[67]]-1;_0xa132x9++){if(null!=this[_0x4e14[2994]][_0xa132x9+1]){_0xa132x2=_0xa132x5[_0xa132x9];_0xa132x3=_0xa132x5[_0xa132x9+1];var _0xa132xa= new mxPoint(_0xa132x2[_0x4e14[235]]+(_0xa132x3[_0x4e14[235]]-_0xa132x2[_0x4e14[235]])/2,_0xa132x2[_0x4e14[236]]+(_0xa132x3[_0x4e14[236]]-_0xa132x2[_0x4e14[236]])/2);this[_0x4e14[2994]][_0xa132x9+1][_0x4e14[1562]]= new mxRectangle(Math[_0x4e14[488]](_0xa132xa[_0x4e14[235]]-_0xa132x4/2),Math[_0x4e14[488]](_0xa132xa[_0x4e14[236]]-_0xa132x4/2),_0xa132x4,_0xa132x4);this[_0x4e14[2994]][_0xa132x9+1][_0x4e14[258]]();}}};}};mxEdgeSegmentHandler[_0x4e14[202]][_0x4e14[3023]]=function(_0xa132x2,_0xa132x3){_0xa132x3=[];var _0xa132x4=this[_0x4e14[2997]];if(1<_0xa132x4[_0x4e14[67]]){for(var _0xa132x5=_0xa132x4[0],_0xa132x9=_0xa132x4[1],_0xa132xa=2;_0xa132xa<_0xa132x4[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x4[_0xa132xa];if((Math[_0x4e14[488]](_0xa132x5[_0x4e14[235]])!=Math[_0x4e14[488]](_0xa132x9[_0x4e14[235]])||Math[_0x4e14[488]](_0xa132x9[_0x4e14[235]])!=Math[_0x4e14[488]](_0xa132x12[_0x4e14[235]]))&&(Math[_0x4e14[488]](_0xa132x5[_0x4e14[236]])!=Math[_0x4e14[488]](_0xa132x9[_0x4e14[236]])||Math[_0x4e14[488]](_0xa132x9[_0x4e14[236]])!=Math[_0x4e14[488]](_0xa132x12[_0x4e14[236]]))){_0xa132x5=_0xa132x9,_0xa132x9=_0xa132x9[_0x4e14[238]](),this[_0x4e14[2196]](_0xa132x9,!1),_0xa132x3[_0x4e14[207]](_0xa132x9)};_0xa132x9=_0xa132x12;}};mxElbowEdgeHandler[_0x4e14[202]][_0x4e14[3023]][_0x4e14[183]](this,arguments);};function mxKeyHandler(_0xa132x2,_0xa132x3){null!=_0xa132x2&&(this[_0x4e14[1179]]=_0xa132x2,this[_0x4e14[772]]=_0xa132x3||document[_0x4e14[158]],this[_0x4e14[3040]]=[],this[_0x4e14[3041]]=[],this[_0x4e14[3042]]=[],this[_0x4e14[3043]]=[],mxEvent[_0x4e14[169]](this[_0x4e14[772]],_0x4e14[2123],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[3044]](_0xa132x2)})),mxClient[_0x4e14[80]]&&mxEvent[_0x4e14[169]](window,_0x4e14[2428],mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[515]]()})))}mxKeyHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxKeyHandler[_0x4e14[202]][_0x4e14[772]]=null;mxKeyHandler[_0x4e14[202]][_0x4e14[3040]]=null;mxKeyHandler[_0x4e14[202]][_0x4e14[3041]]=null;mxKeyHandler[_0x4e14[202]][_0x4e14[3042]]=null;mxKeyHandler[_0x4e14[202]][_0x4e14[3043]]=null;mxKeyHandler[_0x4e14[202]][_0x4e14[984]]= !0;mxKeyHandler[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxKeyHandler[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxKeyHandler[_0x4e14[202]][_0x4e14[3045]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[3040]][_0xa132x2]=_0xa132x3};mxKeyHandler[_0x4e14[202]][_0x4e14[3046]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[3041]][_0xa132x2]=_0xa132x3};mxKeyHandler[_0x4e14[202]][_0x4e14[3047]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[3042]][_0xa132x2]=_0xa132x3};mxKeyHandler[_0x4e14[202]][_0x4e14[3048]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[3043]][_0xa132x2]=_0xa132x3};mxKeyHandler[_0x4e14[202]][_0x4e14[775]]=function(_0xa132x2){return mxEvent[_0x4e14[775]](_0xa132x2)};mxKeyHandler[_0x4e14[202]][_0x4e14[3049]]=function(_0xa132x2){return null!=_0xa132x2?this[_0x4e14[775]](_0xa132x2)?mxEvent[_0x4e14[774]](_0xa132x2)?this[_0x4e14[3043]][_0xa132x2[_0x4e14[2124]]]:this[_0x4e14[3042]][_0xa132x2[_0x4e14[2124]]]:mxEvent[_0x4e14[774]](_0xa132x2)?this[_0x4e14[3041]][_0xa132x2[_0x4e14[2124]]]:this[_0x4e14[3040]][_0xa132x2[_0x4e14[2124]]]:null};mxKeyHandler[_0x4e14[202]][_0x4e14[3050]]=function(_0xa132x2){_0xa132x2=mxEvent[_0x4e14[728]](_0xa132x2);if(_0xa132x2==this[_0x4e14[772]]||_0xa132x2[_0x4e14[265]]==this[_0x4e14[772]]||null!=this[_0x4e14[1179]][_0x4e14[2347]]&&_0xa132x2==this[_0x4e14[1179]][_0x4e14[2347]][_0x4e14[126]]){return !0};for(;null!=_0xa132x2;){if(_0xa132x2==this[_0x4e14[1179]][_0x4e14[526]]){return !0};_0xa132x2=_0xa132x2[_0x4e14[265]];};return !1;};mxKeyHandler[_0x4e14[202]][_0x4e14[3044]]=function(_0xa132x2){if(this[_0x4e14[1179]][_0x4e14[994]]()&&!mxEvent[_0x4e14[721]](_0xa132x2)&&this[_0x4e14[3050]](_0xa132x2)&&this[_0x4e14[994]]()){if(27==_0xa132x2[_0x4e14[2124]]){this[_0x4e14[859]](_0xa132x2)}else {if(!this[_0x4e14[1179]][_0x4e14[2203]]()){var _0xa132x3=this[_0x4e14[3049]](_0xa132x2);null!=_0xa132x3&&(_0xa132x3(_0xa132x2),mxEvent[_0x4e14[722]](_0xa132x2));}}}};mxKeyHandler[_0x4e14[202]][_0x4e14[859]]=function(_0xa132x2){this[_0x4e14[1179]][_0x4e14[2608]]()&&this[_0x4e14[1179]][_0x4e14[859]](_0xa132x2)};mxKeyHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[772]]=null};function mxTooltipHandler(_0xa132x2,_0xa132x3){null!=_0xa132x2&&(this[_0x4e14[1179]]=_0xa132x2,this[_0x4e14[1140]]=_0xa132x3||500,this[_0x4e14[1179]][_0x4e14[1133]](this))}mxTooltipHandler[_0x4e14[202]][_0x4e14[931]]=10005;mxTooltipHandler[_0x4e14[202]][_0x4e14[1179]]=null;mxTooltipHandler[_0x4e14[202]][_0x4e14[1140]]=null;mxTooltipHandler[_0x4e14[202]][_0x4e14[3051]]= !1;mxTooltipHandler[_0x4e14[202]][_0x4e14[984]]= !0;mxTooltipHandler[_0x4e14[202]][_0x4e14[994]]=function(){return this[_0x4e14[984]]};mxTooltipHandler[_0x4e14[202]][_0x4e14[995]]=function(_0xa132x2){this[_0x4e14[984]]=_0xa132x2};mxTooltipHandler[_0x4e14[202]][_0x4e14[2277]]=function(){return this[_0x4e14[3051]]};mxTooltipHandler[_0x4e14[202]][_0x4e14[3052]]=function(_0xa132x2){this[_0x4e14[3051]]=_0xa132x2};mxTooltipHandler[_0x4e14[202]][_0x4e14[176]]=function(){null!=document[_0x4e14[112]]&&(this[_0x4e14[485]]=document[_0x4e14[55]](_0x4e14[485]),this[_0x4e14[485]][_0x4e14[926]]=_0x4e14[3053],this[_0x4e14[485]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188],this[_0x4e14[485]][_0x4e14[124]][_0x4e14[931]]=this[_0x4e14[931]],document[_0x4e14[112]][_0x4e14[62]](this[_0x4e14[485]]),mxEvent[_0x4e14[169]](this[_0x4e14[485]],_0x4e14[751],mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[3054]]()})))};mxTooltipHandler[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[862]](_0xa132x3,!1);this[_0x4e14[3054]]();};mxTooltipHandler[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){if(_0xa132x3[_0x4e14[730]]()!=this[_0x4e14[1217]]||_0xa132x3[_0x4e14[732]]()!=this[_0x4e14[1218]]){this[_0x4e14[862]](_0xa132x3,!0),(this[_0x4e14[2277]]()||_0xa132x3[_0x4e14[248]]()!=this[_0x4e14[724]]||_0xa132x3[_0x4e14[728]]()!=this[_0x4e14[252]]&&(!this[_0x4e14[3055]]||null!=_0xa132x3[_0x4e14[248]]()&&this[_0x4e14[3055]]==(_0xa132x3[_0x4e14[729]](_0xa132x3[_0x4e14[248]]()[_0x4e14[253]])||!_0xa132x3[_0x4e14[729]](_0xa132x3[_0x4e14[248]]()[_0x4e14[963]]))))&&this[_0x4e14[3054]]()};this[_0x4e14[1217]]=_0xa132x3[_0x4e14[730]]();this[_0x4e14[1218]]=_0xa132x3[_0x4e14[732]]();};mxTooltipHandler[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[862]](_0xa132x3,!0);this[_0x4e14[3054]]();};mxTooltipHandler[_0x4e14[202]][_0x4e14[3056]]=function(){null!=this[_0x4e14[1123]]&&(window[_0x4e14[2924]](this[_0x4e14[1123]]),this[_0x4e14[1123]]=null)};mxTooltipHandler[_0x4e14[202]][_0x4e14[862]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[3056]]();if(_0xa132x3&&this[_0x4e14[994]]()&&null!=_0xa132x2[_0x4e14[248]]()&&(null==this[_0x4e14[485]]||_0x4e14[188]==this[_0x4e14[485]][_0x4e14[124]][_0x4e14[187]])){var _0xa132x4=_0xa132x2[_0x4e14[248]](),_0xa132x5=_0xa132x2[_0x4e14[728]](),_0xa132x9=_0xa132x2[_0x4e14[730]](),_0xa132xa=_0xa132x2[_0x4e14[732]](),_0xa132x12=_0xa132x2[_0x4e14[729]](_0xa132x4[_0x4e14[253]])||_0xa132x2[_0x4e14[729]](_0xa132x4[_0x4e14[963]]);this[_0x4e14[1123]]=window[_0x4e14[261]](mxUtils[_0x4e14[885]](this,function(){if(!this[_0x4e14[1179]][_0x4e14[2203]]()&&!this[_0x4e14[1179]][_0x4e14[2316]][_0x4e14[1031]]()){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[2595]](_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa);this[_0x4e14[539]](_0xa132x2,_0xa132x9,_0xa132xa);this[_0x4e14[724]]=_0xa132x4;this[_0x4e14[252]]=_0xa132x5;this[_0x4e14[3055]]=_0xa132x12;}}),this[_0x4e14[1140]]);};};mxTooltipHandler[_0x4e14[202]][_0x4e14[801]]=function(){this[_0x4e14[3056]]();this[_0x4e14[3054]]();};mxTooltipHandler[_0x4e14[202]][_0x4e14[3054]]=function(){null!=this[_0x4e14[485]]&&(this[_0x4e14[485]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[188])};mxTooltipHandler[_0x4e14[202]][_0x4e14[539]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){null==this[_0x4e14[485]]&&this[_0x4e14[176]]();var _0xa132x5=mxUtils[_0x4e14[444]]();this[_0x4e14[485]][_0x4e14[124]][_0x4e14[361]]=_0xa132x3+_0xa132x5[_0x4e14[235]]+_0x4e14[168];this[_0x4e14[485]][_0x4e14[124]][_0x4e14[125]]=_0xa132x4+mxConstants[_0x4e14[560]]+_0xa132x5[_0x4e14[236]]+_0x4e14[168];mxUtils[_0x4e14[1331]](_0xa132x2)?(this[_0x4e14[485]][_0x4e14[339]]=_0x4e14[110],this[_0x4e14[485]][_0x4e14[62]](_0xa132x2)):this[_0x4e14[485]][_0x4e14[339]]=_0xa132x2[_0x4e14[230]](/\n/g,_0x4e14[545]);this[_0x4e14[485]][_0x4e14[124]][_0x4e14[187]]=_0x4e14[110];mxUtils[_0x4e14[933]](this[_0x4e14[485]]);}};mxTooltipHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1179]][_0x4e14[1148]](this);mxEvent[_0x4e14[762]](this[_0x4e14[485]]);null!=this[_0x4e14[485]]&&null!=this[_0x4e14[485]][_0x4e14[265]]&&this[_0x4e14[485]][_0x4e14[265]][_0x4e14[266]](this[_0x4e14[485]]);this[_0x4e14[485]]=null;};function mxCellTracker(_0xa132x2,_0xa132x3,_0xa132x4){mxCellMarker[_0x4e14[239]](this,_0xa132x2,_0xa132x3);this[_0x4e14[1179]][_0x4e14[1133]](this);null!=_0xa132x4&&(this[_0x4e14[736]]=_0xa132x4);mxClient[_0x4e14[80]]&&mxEvent[_0x4e14[169]](window,_0x4e14[2428],mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[515]]()}));}mxUtils[_0x4e14[1284]](mxCellTracker,mxCellMarker);mxCellTracker[_0x4e14[202]][_0x4e14[787]]=function(_0xa132x2,_0xa132x3){};mxCellTracker[_0x4e14[202]][_0x4e14[788]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[994]]()&&this[_0x4e14[2871]](_0xa132x3)};mxCellTracker[_0x4e14[202]][_0x4e14[789]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[862]]()};mxCellTracker[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[2717]]||(this[_0x4e14[2717]]= !0,this[_0x4e14[1179]][_0x4e14[1148]](this),mxCellMarker[_0x4e14[202]][_0x4e14[515]][_0x4e14[183]](this))};function mxCellHighlight(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){null!=_0xa132x2&&(this[_0x4e14[1179]]=_0xa132x2,this[_0x4e14[2943]]=null!=_0xa132x3?_0xa132x3:mxConstants[_0x4e14[2854]],this[_0x4e14[610]]=null!=_0xa132x4?_0xa132x4:mxConstants[_0x4e14[3057]],this[_0x4e14[648]]=null!=_0xa132x5?_0xa132x5:!1,this[_0x4e14[3058]]=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[2950]]()}),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.SCALE,this[_0x4e14[3058]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.TRANSLATE,this[_0x4e14[3058]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x4e14[3058]]),this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[169]](mxEvent.CHANGE,this[_0x4e14[3058]]),this[_0x4e14[2877]]=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[801]]()}),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.DOWN,this[_0x4e14[2877]]),this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[169]](mxEvent.UP,this[_0x4e14[2877]]))}mxCellHighlight[_0x4e14[202]][_0x4e14[3059]]= !1;mxCellHighlight[_0x4e14[202]][_0x4e14[1179]]= !0;mxCellHighlight[_0x4e14[202]][_0x4e14[724]]=null;mxCellHighlight[_0x4e14[202]][_0x4e14[657]]=2;mxCellHighlight[_0x4e14[202]][_0x4e14[2877]]=null;mxCellHighlight[_0x4e14[202]][_0x4e14[2828]]=function(_0xa132x2){this[_0x4e14[2943]]=_0xa132x2;null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[1336]]=_0xa132x2);};mxCellHighlight[_0x4e14[202]][_0x4e14[3060]]=function(){this[_0x4e14[253]]=this[_0x4e14[2156]]();this[_0x4e14[2950]]();!this[_0x4e14[3059]]&&this[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]][_0x4e14[285]]!=this[_0x4e14[253]][_0x4e14[252]]&&this[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]][_0x4e14[950]](this[_0x4e14[253]][_0x4e14[252]],this[_0x4e14[253]][_0x4e14[252]][_0x4e14[265]][_0x4e14[285]]);};mxCellHighlight[_0x4e14[202]][_0x4e14[2156]]=function(){var _0xa132x2=null,_0xa132x2=this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[250]](this[_0x4e14[724]][_0x4e14[246]])? new mxPolyline(this[_0x4e14[724]][_0x4e14[439]],this[_0x4e14[2943]],this[_0x4e14[610]]): new mxRectangleShape( new mxRectangle,null,this[_0x4e14[2943]],this[_0x4e14[610]]);_0xa132x2[_0x4e14[507]]=this[_0x4e14[1179]][_0x4e14[507]]!=mxConstants[_0x4e14[508]]?mxConstants[_0x4e14[1523]]:mxConstants[_0x4e14[508]];_0xa132x2[_0x4e14[176]](this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[1524]]());mxEvent[_0x4e14[2733]](_0xa132x2[_0x4e14[252]],this[_0x4e14[1179]],this[_0x4e14[724]]);_0xa132x2[_0x4e14[1564]]=0;_0xa132x2[_0x4e14[1229]]= !1;_0xa132x2[_0x4e14[1522]]=this[_0x4e14[648]];return _0xa132x2;};mxCellHighlight[_0x4e14[202]][_0x4e14[2950]]=function(){if(null!=this[_0x4e14[724]]&&null!=this[_0x4e14[253]]){var _0xa132x2=0;this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[250]](this[_0x4e14[724]][_0x4e14[246]])?this[_0x4e14[253]][_0x4e14[1525]]=this[_0x4e14[724]][_0x4e14[439]]:(this[_0x4e14[253]][_0x4e14[1562]]= new mxRectangle(this[_0x4e14[724]][_0x4e14[235]]-this[_0x4e14[657]],this[_0x4e14[724]][_0x4e14[236]]-this[_0x4e14[657]],this[_0x4e14[724]][_0x4e14[117]]+2*this[_0x4e14[657]],this[_0x4e14[724]][_0x4e14[119]]+2*this[_0x4e14[657]]),_0xa132x2=Number(this[_0x4e14[724]][_0x4e14[124]][mxConstants[_0x4e14[2278]]]||_0x4e14[468]));null!=this[_0x4e14[724]][_0x4e14[253]]&&this[_0x4e14[253]][_0x4e14[1609]](this[_0x4e14[724]][_0x4e14[253]][_0x4e14[1610]]());0!=_0xa132x2&&(this[_0x4e14[253]][_0x4e14[603]]=_0xa132x2);this[_0x4e14[253]][_0x4e14[258]]();}};mxCellHighlight[_0x4e14[202]][_0x4e14[801]]=function(){this[_0x4e14[1016]](null)};mxCellHighlight[_0x4e14[202]][_0x4e14[1016]]=function(_0xa132x2){this[_0x4e14[724]]!=_0xa132x2&&(null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[515]](),this[_0x4e14[253]]=null),this[_0x4e14[724]]=_0xa132x2,null!=this[_0x4e14[724]]&&this[_0x4e14[3060]]())};mxCellHighlight[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[745]](this[_0x4e14[3058]]);this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[745]](this[_0x4e14[3058]]);this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[745]](this[_0x4e14[2877]]);this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[745]](this[_0x4e14[2877]]);null!=this[_0x4e14[253]]&&(this[_0x4e14[253]][_0x4e14[515]](),this[_0x4e14[253]]=null);};function mxDefaultKeyHandler(_0xa132x2){if(null!=_0xa132x2){this[_0x4e14[3061]]=_0xa132x2;this[_0x4e14[2458]]= new mxKeyHandler(_0xa132x2[_0x4e14[1179]]);var _0xa132x3=this[_0x4e14[2458]][_0x4e14[859]];this[_0x4e14[2458]][_0x4e14[859]]=function(_0xa132x4){_0xa132x3[_0x4e14[183]](this,arguments);_0xa132x2[_0x4e14[3062]]();_0xa132x2[_0x4e14[746]]( new mxEventObject(mxEvent.ESCAPE,_0x4e14[763],_0xa132x4));};}}mxDefaultKeyHandler[_0x4e14[202]][_0x4e14[3061]]=null;mxDefaultKeyHandler[_0x4e14[202]][_0x4e14[2458]]=null;mxDefaultKeyHandler[_0x4e14[202]][_0x4e14[3063]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[3061]][_0x4e14[350]](_0xa132x3)});_0xa132x4?this[_0x4e14[2458]][_0x4e14[3047]](_0xa132x2,_0xa132x5):this[_0x4e14[2458]][_0x4e14[3045]](_0xa132x2,_0xa132x5);};mxDefaultKeyHandler[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[2458]][_0x4e14[515]]();this[_0x4e14[2458]]=null;};function mxDefaultPopupMenu(_0xa132x2){this[_0x4e14[3064]]=_0xa132x2}mxDefaultPopupMenu[_0x4e14[202]][_0x4e14[88]]=null;mxDefaultPopupMenu[_0x4e14[202]][_0x4e14[3064]]=null;mxDefaultPopupMenu[_0x4e14[202]][_0x4e14[3065]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){if(null!=this[_0x4e14[3064]]){var _0xa132x9=this[_0x4e14[3066]](_0xa132x2,_0xa132x4,_0xa132x5);this[_0x4e14[3067]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,this[_0x4e14[3064]][_0x4e14[285]],null);}};mxDefaultPopupMenu[_0x4e14[202]][_0x4e14[3067]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12){for(var _0xa132x13=!1;null!=_0xa132xa;){if(_0x4e14[99]==_0xa132xa[_0x4e14[301]]){var _0xa132x14=_0xa132xa[_0x4e14[284]](_0x4e14[3068]);if(null==_0xa132x14||_0xa132x9[_0xa132x14]){var _0xa132x14=_0xa132xa[_0x4e14[284]](_0x4e14[3069]),_0xa132x14=mxResources[_0x4e14[203]](_0xa132x14)||_0xa132x14,_0xa132x15=mxUtils[_0x4e14[1545]](mxUtils[_0x4e14[329]](_0xa132xa)),_0xa132x16=_0xa132xa[_0x4e14[284]](_0x4e14[892]),_0xa132x17=_0xa132xa[_0x4e14[284]](_0x4e14[2916]),_0xa132x18=_0xa132xa[_0x4e14[284]](_0x4e14[3070]);_0xa132x13&&(_0xa132x3[_0x4e14[1051]](_0xa132x12),_0xa132x13= !1);null!=_0xa132x17&&this[_0x4e14[88]]&&(_0xa132x17=this[_0x4e14[88]]+_0xa132x17);_0xa132x14=this[_0x4e14[3071]](_0xa132x3,_0xa132x2,_0xa132x14,_0xa132x17,_0xa132x15,_0xa132x16,_0xa132x4,_0xa132x12,_0xa132x18);this[_0x4e14[3067]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa[_0x4e14[285]],_0xa132x14);};}else {_0x4e14[3072]==_0xa132xa[_0x4e14[301]]&&(_0xa132x13= !0)};_0xa132xa=_0xa132xa[_0x4e14[287]];}};mxDefaultPopupMenu[_0x4e14[202]][_0x4e14[3071]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa,_0xa132x12,_0xa132x13,_0xa132x14){return _0xa132x2[_0x4e14[1025]](_0xa132x4,_0xa132x5,function(_0xa132x2){_0x4e14[279]== typeof _0xa132x9&&_0xa132x9[_0x4e14[239]](_0xa132x3,_0xa132x3,_0xa132x12,_0xa132x2);null!=_0xa132xa&&_0xa132x3[_0x4e14[350]](_0xa132xa,_0xa132x12,_0xa132x2);},_0xa132x13,_0xa132x14)};mxDefaultPopupMenu[_0x4e14[202]][_0x4e14[3066]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x2[_0x4e14[1179]][_0x4e14[502]](),_0xa132x9=_0xa132x5[_0x4e14[262]](_0xa132x3),_0xa132xa=[];_0xa132xa[_0x4e14[3073]]=null==_0xa132x3;_0xa132xa[_0x4e14[3074]]=1<_0xa132x2[_0x4e14[1179]][_0x4e14[2694]]();_0xa132xa[_0x4e14[3075]]=_0xa132x5[_0x4e14[501]]()!=_0xa132x5[_0x4e14[1197]](_0xa132x2[_0x4e14[1179]][_0x4e14[902]]());_0xa132xa[_0x4e14[246]]=null!=_0xa132x3;_0xa132x5=null!=_0xa132x3&&1==_0xa132x2[_0x4e14[1179]][_0x4e14[2694]]();_0xa132xa[_0x4e14[3076]]=_0xa132x5&&0<_0xa132x9;_0xa132xa[_0x4e14[3077]]=_0xa132x5&&_0xa132x2[_0x4e14[1179]][_0x4e14[2516]](_0xa132x3,!1);_0xa132xa[_0x4e14[3078]]=_0xa132x5&&_0xa132x2[_0x4e14[1179]][_0x4e14[2516]](_0xa132x3,!0);_0xa132xa[_0x4e14[3079]]=_0xa132x5&&_0xa132x2[_0x4e14[1179]][_0x4e14[2553]](_0xa132x3);_0xa132xa[_0x4e14[3080]]=_0xa132xa[_0x4e14[3079]]&&0==_0xa132x9;_0xa132xa[_0x4e14[687]]=_0xa132x5&&_0xa132x2[_0x4e14[1179]][_0x4e14[1730]](_0xa132x3);_0xa132x9=this[_0x4e14[3064]][_0x4e14[64]](_0x4e14[3081]);for(_0xa132x5=0;_0xa132x5<_0xa132x9[_0x4e14[67]];_0xa132x5++){var _0xa132x12=mxUtils[_0x4e14[1545]](mxUtils[_0x4e14[329]](_0xa132x9[_0xa132x5])),_0xa132x13=_0xa132x9[_0xa132x5][_0x4e14[284]](_0x4e14[298]);null!=_0xa132x13&&_0x4e14[279]== typeof _0xa132x12&&(_0xa132xa[_0xa132x13]=_0xa132x12(_0xa132x2,_0xa132x3,_0xa132x4));};return _0xa132xa;};function mxDefaultToolbar(_0xa132x2,_0xa132x3){this[_0x4e14[3061]]=_0xa132x3;null!=_0xa132x2&&null!=_0xa132x3&&this[_0x4e14[176]](_0xa132x2);}mxDefaultToolbar[_0x4e14[202]][_0x4e14[3061]]=null;mxDefaultToolbar[_0x4e14[202]][_0x4e14[3082]]=null;mxDefaultToolbar[_0x4e14[202]][_0x4e14[2877]]=null;mxDefaultToolbar[_0x4e14[202]][_0x4e14[657]]=4;mxDefaultToolbar[_0x4e14[202]][_0x4e14[2804]]= !1;mxDefaultToolbar[_0x4e14[202]][_0x4e14[176]]=function(_0xa132x2){null!=_0xa132x2&&(this[_0x4e14[3082]]= new mxToolbar(_0xa132x2),this[_0x4e14[3082]][_0x4e14[169]](mxEvent.SELECT,mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x4){var _0xa132x5=_0xa132x4[_0x4e14[720]](_0x4e14[279]);this[_0x4e14[3061]][_0x4e14[3083]]=null!=_0xa132x5?mxUtils[_0x4e14[885]](this,function(){_0xa132x5[_0x4e14[183]](this,arguments);this[_0x4e14[3082]][_0x4e14[1050]]();}):null;})),this[_0x4e14[2877]]=mxUtils[_0x4e14[885]](this,function(){null!=this[_0x4e14[3082]]&&this[_0x4e14[3082]][_0x4e14[1050]](!0)}),this[_0x4e14[3061]][_0x4e14[1179]][_0x4e14[169]](mxEvent.DOUBLE_CLICK,this[_0x4e14[2877]]),this[_0x4e14[3061]][_0x4e14[169]](mxEvent.ESCAPE,this[_0x4e14[2877]]))};mxDefaultToolbar[_0x4e14[202]][_0x4e14[1025]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=mxUtils[_0x4e14[885]](this,function(){null!=_0xa132x4&&0<_0xa132x4[_0x4e14[67]]&&this[_0x4e14[3061]][_0x4e14[350]](_0xa132x4)});return this[_0x4e14[3082]][_0x4e14[1025]](_0xa132x2,_0xa132x3,_0xa132x9,_0xa132x5);};mxDefaultToolbar[_0x4e14[202]][_0x4e14[1051]]=function(_0xa132x2){_0xa132x2=_0xa132x2||mxClient[_0x4e14[88]]+_0x4e14[3084];this[_0x4e14[3082]][_0x4e14[1051]](_0xa132x2);};mxDefaultToolbar[_0x4e14[202]][_0x4e14[970]]=function(){return this[_0x4e14[3082]][_0x4e14[970]]()};mxDefaultToolbar[_0x4e14[202]][_0x4e14[1038]]=function(_0xa132x2){return this[_0x4e14[3082]][_0x4e14[1038]](_0xa132x2)};mxDefaultToolbar[_0x4e14[202]][_0x4e14[3085]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[3061]][_0x4e14[350]](_0xa132x4)});this[_0x4e14[972]](_0xa132x2,_0xa132x3,_0xa132x5);};mxDefaultToolbar[_0x4e14[202]][_0x4e14[972]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return this[_0x4e14[3082]][_0x4e14[972]](_0xa132x2,_0xa132x3,_0xa132x4)};mxDefaultToolbar[_0x4e14[202]][_0x4e14[1048]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){var _0xa132xa=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[3061]][_0x4e14[3086]](_0xa132x4);null!=_0xa132x9&&_0xa132x9(this[_0x4e14[3061]]);});return this[_0x4e14[3082]][_0x4e14[1042]](_0xa132x2,_0xa132x3,_0xa132xa,_0xa132x5);};mxDefaultToolbar[_0x4e14[202]][_0x4e14[3087]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9,_0xa132xa){var _0xa132x12=function(){return _0x4e14[279]== typeof _0xa132x4?_0xa132x4():null!=_0xa132x4?_0xa132x4[_0x4e14[238]]():null},_0xa132x13=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){_0x4e14[279]== typeof _0xa132x9?_0xa132x9(this[_0x4e14[3061]],_0xa132x12(),_0xa132x2,_0xa132x3):this[_0x4e14[1008]](_0xa132x12(),_0xa132x2,_0xa132x3);this[_0x4e14[3082]][_0x4e14[1050]]();mxEvent[_0x4e14[722]](_0xa132x2);});_0xa132x2=this[_0x4e14[3082]][_0x4e14[1048]](_0xa132x2,_0xa132x3,_0xa132x13,_0xa132x5,null,_0xa132xa);this[_0x4e14[3088]](_0xa132x2,function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x13(_0xa132x3,_0xa132x4)});return _0xa132x2;};mxDefaultToolbar[_0x4e14[202]][_0x4e14[1008]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[3061]][_0x4e14[1179]],_0xa132x9=_0xa132x5[_0x4e14[502]]();if(null==_0xa132x4||_0xa132x9[_0x4e14[250]](_0xa132x4)||!this[_0x4e14[2804]]||!_0xa132x5[_0x4e14[2565]](_0xa132x4)){for(;null!=_0xa132x4&&!_0xa132x5[_0x4e14[2685]](_0xa132x4,[_0xa132x2],_0xa132x3);){_0xa132x4=_0xa132x9[_0x4e14[1197]](_0xa132x4)};this[_0x4e14[1937]](_0xa132x2,_0xa132x3,_0xa132x4);}else {this[_0x4e14[807]](_0xa132x2,_0xa132x3,_0xa132x4)};};mxDefaultToolbar[_0x4e14[202]][_0x4e14[1937]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[3061]][_0x4e14[1179]];if(_0xa132x5[_0x4e14[2621]](_0xa132x2)){var _0xa132x9=mxEvent[_0x4e14[731]](_0xa132x3),_0xa132xa=mxEvent[_0x4e14[733]](_0xa132x3),_0xa132x9=mxUtils[_0x4e14[2196]](_0xa132x5[_0x4e14[526]],_0xa132x9,_0xa132xa);return _0xa132x5[_0x4e14[2655]]()&&_0xa132x5[_0x4e14[2686]](_0xa132x4,[_0xa132x2],_0xa132x3)?_0xa132x5[_0x4e14[853]](_0xa132x4,[_0xa132x2],null,_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]]):this[_0x4e14[3061]][_0x4e14[817]](_0xa132x4,_0xa132x2,_0xa132x9[_0x4e14[235]],_0xa132x9[_0x4e14[236]]);};return null;};mxDefaultToolbar[_0x4e14[202]][_0x4e14[807]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=this[_0x4e14[3061]][_0x4e14[1179]];var _0xa132x5=_0xa132x3[_0x4e14[502]]();if(null!=_0xa132x4&&_0xa132x3[_0x4e14[2565]](_0xa132x2)&&_0xa132x3[_0x4e14[2581]](null,_0xa132x4,_0xa132x2)){var _0xa132x9=null;_0xa132x5[_0x4e14[473]]();try{var _0xa132xa=_0xa132x5[_0x4e14[1721]](_0xa132x4),_0xa132x12=_0xa132x5[_0x4e14[1721]](_0xa132x2)[_0x4e14[238]]();_0xa132x12[_0x4e14[235]]=_0xa132xa[_0x4e14[235]]+(_0xa132xa[_0x4e14[117]]-_0xa132x12[_0x4e14[117]])/2;_0xa132x12[_0x4e14[236]]=_0xa132xa[_0x4e14[236]]+(_0xa132xa[_0x4e14[119]]-_0xa132x12[_0x4e14[119]])/2;var _0xa132x13=this[_0x4e14[657]]*_0xa132x3[_0x4e14[1020]],_0xa132x14=20*_0xa132x5[_0x4e14[1962]](_0xa132x4,!0);this[_0x4e14[3061]][_0x4e14[3089]]?_0xa132x12[_0x4e14[235]]+=(_0xa132x12[_0x4e14[117]]+_0xa132xa[_0x4e14[117]])/2+_0xa132x13+_0xa132x14:_0xa132x12[_0x4e14[236]]+=(_0xa132x12[_0x4e14[119]]+_0xa132xa[_0x4e14[119]])/2+_0xa132x13+_0xa132x14;_0xa132x2[_0x4e14[1724]](_0xa132x12);var _0xa132x15=_0xa132x5[_0x4e14[1197]](_0xa132x4);_0xa132x3[_0x4e14[2103]](_0xa132x2,_0xa132x15);_0xa132x3[_0x4e14[2509]](_0xa132x2);_0xa132x9=this[_0x4e14[3061]][_0x4e14[2503]](_0xa132x4,_0xa132x2);if(null==_0xa132x5[_0x4e14[1721]](_0xa132x9)){var _0xa132x16= new mxGeometry;_0xa132x16[_0x4e14[1500]]= !0;_0xa132x5[_0x4e14[1724]](_0xa132x9,_0xa132x16);};_0xa132x3[_0x4e14[2504]](_0xa132x9,_0xa132x15,_0xa132x4,_0xa132x2);}finally{_0xa132x5[_0x4e14[476]]()};_0xa132x3[_0x4e14[904]]([_0xa132x2,_0xa132x9]);_0xa132x3[_0x4e14[2564]](_0xa132x2);};};mxDefaultToolbar[_0x4e14[202]][_0x4e14[3088]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=document[_0x4e14[55]](_0x4e14[466]);_0xa132x4[_0x4e14[57]](_0x4e14[390],_0xa132x2[_0x4e14[284]](_0x4e14[390]));var _0xa132x5=mxUtils[_0x4e14[885]](this,function(_0xa132x9){_0xa132x4[_0x4e14[124]][_0x4e14[117]]=2*_0xa132x2[_0x4e14[359]]+_0x4e14[168];_0xa132x4[_0x4e14[124]][_0x4e14[119]]=2*_0xa132x2[_0x4e14[167]]+_0x4e14[168];mxUtils[_0x4e14[3090]](_0xa132x2,this[_0x4e14[3061]][_0x4e14[1179]],_0xa132x3,_0xa132x4);mxEvent[_0x4e14[745]](_0xa132x4,_0x4e14[219],_0xa132x5);});mxClient[_0x4e14[80]]?_0xa132x5():mxEvent[_0x4e14[169]](_0xa132x4,_0x4e14[219],_0xa132x5);};mxDefaultToolbar[_0x4e14[202]][_0x4e14[515]]=function(){null!=this[_0x4e14[2877]]&&(this[_0x4e14[3061]][_0x4e14[1179]][_0x4e14[745]](_0x4e14[760],this[_0x4e14[2877]]),this[_0x4e14[3061]][_0x4e14[745]](_0x4e14[859],this[_0x4e14[2877]]),this[_0x4e14[2877]]=null);null!=this[_0x4e14[3082]]&&(this[_0x4e14[3082]][_0x4e14[515]](),this[_0x4e14[3082]]=null);};function mxEditor(_0xa132x2){this[_0x4e14[3091]]=[];this[_0x4e14[3092]]();if(null!=document[_0x4e14[112]]){this[_0x4e14[3093]]=[];this[_0x4e14[3094]]= new mxDefaultPopupMenu;this[_0x4e14[3095]]= new mxUndoManager;this[_0x4e14[1179]]=this[_0x4e14[3096]]();this[_0x4e14[3082]]=this[_0x4e14[3097]]();this[_0x4e14[3098]]= new mxDefaultKeyHandler(this);this[_0x4e14[3099]](_0xa132x2);this[_0x4e14[1179]][_0x4e14[2180]]=this[_0x4e14[3100]];!mxClient[_0x4e14[3101]]&&null!=this[_0x4e14[1056]]&&(this[_0x4e14[812]]=this[_0x4e14[3102]]());if(null!=this[_0x4e14[1987]]){this[_0x4e14[1987]]()};mxClient[_0x4e14[80]]&&mxEvent[_0x4e14[169]](window,_0x4e14[2428],mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[515]]()}));};}mxLoadResources&&mxResources[_0x4e14[99]](mxClient[_0x4e14[86]]+_0x4e14[3103]);mxEditor[_0x4e14[202]]= new mxEventSource;mxEditor[_0x4e14[202]][_0x4e14[196]]=mxEditor;mxEditor[_0x4e14[202]][_0x4e14[3104]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[3105]:_0x4e14[110];mxEditor[_0x4e14[202]][_0x4e14[3106]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[3107]:_0x4e14[110];mxEditor[_0x4e14[202]][_0x4e14[3108]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[3109]:_0x4e14[110];mxEditor[_0x4e14[202]][_0x4e14[3110]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[716]:_0x4e14[110];mxEditor[_0x4e14[202]][_0x4e14[3111]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[3112]:_0x4e14[110];mxEditor[_0x4e14[202]][_0x4e14[3113]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[2719]:_0x4e14[110];mxEditor[_0x4e14[202]][_0x4e14[3114]]=_0x4e14[130]!=mxClient[_0x4e14[90]]?_0x4e14[2136]:_0x4e14[110];mxEditor[_0x4e14[202]][_0x4e14[2136]]=null;mxEditor[_0x4e14[202]][_0x4e14[1179]]=null;mxEditor[_0x4e14[202]][_0x4e14[2720]]=null;mxEditor[_0x4e14[202]][_0x4e14[3082]]=null;mxEditor[_0x4e14[202]][_0x4e14[812]]=null;mxEditor[_0x4e14[202]][_0x4e14[879]]=null;mxEditor[_0x4e14[202]][_0x4e14[3094]]=null;mxEditor[_0x4e14[202]][_0x4e14[3095]]=null;mxEditor[_0x4e14[202]][_0x4e14[3098]]=null;mxEditor[_0x4e14[202]][_0x4e14[3091]]=null;mxEditor[_0x4e14[202]][_0x4e14[3115]]=_0x4e14[1061];mxEditor[_0x4e14[202]][_0x4e14[3116]]= !1;mxEditor[_0x4e14[202]][_0x4e14[1157]]= !0;mxEditor[_0x4e14[202]][_0x4e14[3083]]=null;mxEditor[_0x4e14[202]][_0x4e14[3117]]= !1;mxEditor[_0x4e14[202]][_0x4e14[3118]]=null;mxEditor[_0x4e14[202]][_0x4e14[2075]]=null;mxEditor[_0x4e14[202]][_0x4e14[3119]]=null;mxEditor[_0x4e14[202]][_0x4e14[3120]]=null;mxEditor[_0x4e14[202]][_0x4e14[3121]]=null;mxEditor[_0x4e14[202]][_0x4e14[3122]]=null;mxEditor[_0x4e14[202]][_0x4e14[1069]]=_0x4e14[336];mxEditor[_0x4e14[202]][_0x4e14[3123]]=_0x4e14[338];mxEditor[_0x4e14[202]][_0x4e14[1070]]= !0;mxEditor[_0x4e14[202]][_0x4e14[3124]]=null;mxEditor[_0x4e14[202]][_0x4e14[3125]]=null;mxEditor[_0x4e14[202]][_0x4e14[1056]]=null;mxEditor[_0x4e14[202]][_0x4e14[1058]]=null;mxEditor[_0x4e14[202]][_0x4e14[1057]]=null;mxEditor[_0x4e14[202]][_0x4e14[3089]]= !1;mxEditor[_0x4e14[202]][_0x4e14[3126]]= !1;mxEditor[_0x4e14[202]][_0x4e14[3127]]=0;mxEditor[_0x4e14[202]][_0x4e14[3128]]= !1;mxEditor[_0x4e14[202]][_0x4e14[3129]]= !1;mxEditor[_0x4e14[202]][_0x4e14[3093]]=null;mxEditor[_0x4e14[202]][_0x4e14[3130]]=0;mxEditor[_0x4e14[202]][_0x4e14[3100]]=_0x4e14[604];mxEditor[_0x4e14[202]][_0x4e14[3112]]=null;mxEditor[_0x4e14[202]][_0x4e14[3131]]=null;mxEditor[_0x4e14[202]][_0x4e14[3132]]=20;mxEditor[_0x4e14[202]][_0x4e14[2719]]=null;mxEditor[_0x4e14[202]][_0x4e14[3133]]=null;mxEditor[_0x4e14[202]][_0x4e14[3134]]=null;mxEditor[_0x4e14[202]][_0x4e14[3135]]=300;mxEditor[_0x4e14[202]][_0x4e14[3136]]=260;mxEditor[_0x4e14[202]][_0x4e14[3137]]=240;mxEditor[_0x4e14[202]][_0x4e14[3138]]=null;mxEditor[_0x4e14[202]][_0x4e14[3139]]= !1;mxEditor[_0x4e14[202]][_0x4e14[3140]]= !1;mxEditor[_0x4e14[202]][_0x4e14[2113]]= !1;mxEditor[_0x4e14[202]][_0x4e14[2133]]=function(){return this[_0x4e14[2113]]};mxEditor[_0x4e14[202]][_0x4e14[2128]]=function(_0xa132x2){this[_0x4e14[2113]]=_0xa132x2};mxEditor[_0x4e14[202]][_0x4e14[3092]]=function(){this[_0x4e14[3071]](_0x4e14[815],function(_0xa132x2){_0xa132x2[_0x4e14[815]]()});this[_0x4e14[3071]](_0x4e14[540],function(_0xa132x2){( new mxPrintPreview(_0xa132x2[_0x4e14[1179]],1))[_0x4e14[392]]()});this[_0x4e14[3071]](_0x4e14[539],function(_0xa132x2){mxUtils[_0x4e14[539]](_0xa132x2[_0x4e14[1179]],null,10,10)});this[_0x4e14[3071]](_0x4e14[3141],function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[3142]]();if(null==_0xa132x3||mxClient[_0x4e14[3101]]){_0xa132x2[_0x4e14[350]](_0x4e14[539])}else {var _0xa132x4=mxUtils[_0x4e14[3143]](_0xa132x2[_0x4e14[1179]],1),_0xa132x4=mxUtils[_0x4e14[875]](_0xa132x4,_0x4e14[192]);mxUtils[_0x4e14[894]](_0xa132x3,_0xa132x2[_0x4e14[3123]]+_0x4e14[226]+encodeURIComponent(_0xa132x4),document,_0x4e14[3144]);};});this[_0x4e14[3071]](_0x4e14[802],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[802]]()});this[_0x4e14[3071]](_0x4e14[3145],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&mxClipboard[_0x4e14[3145]](_0xa132x2[_0x4e14[1179]])});this[_0x4e14[3071]](_0x4e14[149],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&mxClipboard[_0x4e14[149]](_0xa132x2[_0x4e14[1179]])});this[_0x4e14[3071]](_0x4e14[3146],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&mxClipboard[_0x4e14[3146]](_0xa132x2[_0x4e14[1179]])});this[_0x4e14[3071]](_0x4e14[3147],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[842]]()});this[_0x4e14[3071]](_0x4e14[1504],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2450]](_0xa132x2[_0x4e14[844]]())});this[_0x4e14[3071]](_0x4e14[3148],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[904]](_0xa132x2[_0x4e14[1179]][_0x4e14[845]]())});this[_0x4e14[3071]](_0x4e14[1997],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[846]]()});this[_0x4e14[3071]](_0x4e14[824],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[824]]()});this[_0x4e14[3071]](_0x4e14[825],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[825]]()});this[_0x4e14[3071]](_0x4e14[2558],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[2558]]()});this[_0x4e14[3071]](_0x4e14[2559],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[2559]]()});this[_0x4e14[3071]](_0x4e14[3149],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[2560]]()});this[_0x4e14[3071]](_0x4e14[933],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[933]]()});this[_0x4e14[3071]](_0x4e14[3150],function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[3150]](_0xa132x3)});this[_0x4e14[3071]](_0x4e14[2705],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2705]]()});this[_0x4e14[3071]](_0x4e14[3151],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2440]]()});this[_0x4e14[3071]](_0x4e14[2706],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2706]]()});this[_0x4e14[3071]](_0x4e14[2708],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2708]]()});this[_0x4e14[3071]](_0x4e14[1061],function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2453]](_0xa132x3)&&_0xa132x2[_0x4e14[1179]][_0x4e14[2451]](_0xa132x3)});this[_0x4e14[3071]](_0x4e14[3152],function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[840]](!0)});this[_0x4e14[3071]](_0x4e14[3153],function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[840]](!1)});this[_0x4e14[3071]](_0x4e14[2552],function(_0xa132x2,_0xa132x3){_0xa132x2[_0x4e14[1179]][_0x4e14[2552]](_0xa132x3)});this[_0x4e14[3071]](_0x4e14[2554],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[2554]]()});this[_0x4e14[3071]](_0x4e14[2442],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[2442]]()});this[_0x4e14[3071]](_0x4e14[3154],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2702]]()});this[_0x4e14[3071]](_0x4e14[3155],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2700]]()});this[_0x4e14[3071]](_0x4e14[3156],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2703]]()});this[_0x4e14[3071]](_0x4e14[3157],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2704]]()});this[_0x4e14[3071]](_0x4e14[2514],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[847]](!0)});this[_0x4e14[3071]](_0x4e14[3158],function(_0xa132x2){if(_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()){var _0xa132x3=_0xa132x2[_0x4e14[1179]][_0x4e14[1728]]();_0xa132x2[_0x4e14[1179]][_0x4e14[847]](!0,!1,_0xa132x3);}});this[_0x4e14[3071]](_0x4e14[3159],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[847]](!1)});this[_0x4e14[3071]](_0x4e14[3160],function(_0xa132x2){if(_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()){var _0xa132x3=_0xa132x2[_0x4e14[1179]][_0x4e14[1728]]();_0xa132x2[_0x4e14[1179]][_0x4e14[847]](!1,!1,_0xa132x3);}});this[_0x4e14[3071]](_0x4e14[1447],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)});this[_0x4e14[3071]](_0x4e14[1449],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)});this[_0x4e14[3071]](_0x4e14[355],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)});this[_0x4e14[3071]](_0x4e14[639],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)});this[_0x4e14[3071]](_0x4e14[3161],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[849]](mxConstants.ALIGN_LEFT)});this[_0x4e14[3071]](_0x4e14[3162],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[849]](mxConstants.ALIGN_CENTER)});this[_0x4e14[3071]](_0x4e14[3163],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[849]](mxConstants.ALIGN_RIGHT)});this[_0x4e14[3071]](_0x4e14[3164],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[849]](mxConstants.ALIGN_TOP)});this[_0x4e14[3071]](_0x4e14[3165],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[849]](mxConstants.ALIGN_MIDDLE)});this[_0x4e14[3071]](_0x4e14[3166],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[849]](mxConstants.ALIGN_BOTTOM)});this[_0x4e14[3071]](_0x4e14[3167],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)});this[_0x4e14[3071]](_0x4e14[3168],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)});this[_0x4e14[3071]](_0x4e14[3169],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)});this[_0x4e14[3071]](_0x4e14[3170],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)});this[_0x4e14[3071]](_0x4e14[3171],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)});this[_0x4e14[3071]](_0x4e14[3172],function(_0xa132x2){_0xa132x2[_0x4e14[1179]][_0x4e14[994]]()&&_0xa132x2[_0x4e14[1179]][_0x4e14[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)});this[_0x4e14[3071]](_0x4e14[499],function(_0xa132x2){var _0xa132x3=100*_0xa132x2[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x3=parseFloat(mxUtils[_0x4e14[3173]](mxResources[_0x4e14[203]](_0xa132x2[_0x4e14[3104]])||_0xa132x2[_0x4e14[3104]],_0xa132x3))/100;isNaN(_0xa132x3)||_0xa132x2[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[2262]](_0xa132x3);});this[_0x4e14[3071]](_0x4e14[3174],function(_0xa132x2){null!=_0xa132x2[_0x4e14[3112]]?_0xa132x2[_0x4e14[3112]][_0x4e14[175]](!_0xa132x2[_0x4e14[3112]][_0x4e14[174]]()):_0xa132x2[_0x4e14[3175]]()});this[_0x4e14[3071]](_0x4e14[3176],function(_0xa132x2){null!=_0xa132x2[_0x4e14[2719]]?_0xa132x2[_0x4e14[2719]][_0x4e14[175]](!_0xa132x2[_0x4e14[2719]][_0x4e14[174]]()):_0xa132x2[_0x4e14[3177]]()});this[_0x4e14[3071]](_0x4e14[3178],function(_0xa132x2){null==_0xa132x2[_0x4e14[2136]]?_0xa132x2[_0x4e14[3179]]():_0xa132x2[_0x4e14[2136]][_0x4e14[175]](!_0xa132x2[_0x4e14[2136]][_0x4e14[174]]())});this[_0x4e14[3071]](_0x4e14[3180],function(_0xa132x2){mxLog[_0x4e14[175]](!mxLog[_0x4e14[174]]())});};mxEditor[_0x4e14[202]][_0x4e14[3102]]=function(){var _0xa132x2=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[746]]( new mxEventObject(mxEvent.SESSION,_0x4e14[812],_0xa132x2))});return this[_0x4e14[807]](this[_0x4e14[1056]],this[_0x4e14[1057]],this[_0x4e14[1058]],_0xa132x2);};mxEditor[_0x4e14[202]][_0x4e14[3099]]=function(_0xa132x2){null!=_0xa132x2&&(( new mxCodec(_0xa132x2[_0x4e14[295]]))[_0x4e14[1093]](_0xa132x2,this),this[_0x4e14[3181]]())};mxEditor[_0x4e14[202]][_0x4e14[3182]]=function(){document[_0x4e14[3183]]=_0x4e14[3184]};mxEditor[_0x4e14[202]][_0x4e14[3181]]=function(){this[_0x4e14[1184]]=( new Date)[_0x4e14[178]]();this[_0x4e14[3095]][_0x4e14[200]]();this[_0x4e14[1183]]=0;this[_0x4e14[2128]](!1);};mxEditor[_0x4e14[202]][_0x4e14[3071]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[3091]][_0xa132x2]=_0xa132x3};mxEditor[_0x4e14[202]][_0x4e14[350]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[3091]][_0xa132x2];if(null!=_0xa132x5){try{var _0xa132x9=arguments;_0xa132x9[0]=this;_0xa132x5[_0x4e14[183]](this,_0xa132x9);}catch(f){throw mxUtils[_0x4e14[267]](_0x4e14[3185]+_0xa132x2+_0x4e14[3186]+f[_0x4e14[281]],280,!0),f}}else {mxUtils[_0x4e14[267]](_0x4e14[3187]+_0xa132x2,280,!0)};};mxEditor[_0x4e14[202]][_0x4e14[3188]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[3118]][_0xa132x2]=_0xa132x3};mxEditor[_0x4e14[202]][_0x4e14[3189]]=function(_0xa132x2){return this[_0x4e14[3118]][_0xa132x2]};mxEditor[_0x4e14[202]][_0x4e14[3096]]=function(){var _0xa132x2= new mxGraph(null,null,this[_0x4e14[2720]]);_0xa132x2[_0x4e14[2673]](!0);_0xa132x2[_0x4e14[2674]](!0);this[_0x4e14[3190]](_0xa132x2);this[_0x4e14[3191]](_0xa132x2);this[_0x4e14[3192]](_0xa132x2);this[_0x4e14[3193]](_0xa132x2);this[_0x4e14[3194]](_0xa132x2);_0xa132x2[_0x4e14[2316]][_0x4e14[1033]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x4,_0xa132x5){return this[_0x4e14[3195]](_0xa132x2,_0xa132x4,_0xa132x5)});_0xa132x2[_0x4e14[2433]][_0x4e14[1033]]=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x4){return this[_0x4e14[2503]](_0xa132x2,_0xa132x4)});this[_0x4e14[3196]](_0xa132x2);this[_0x4e14[3197]](_0xa132x2);return _0xa132x2;};mxEditor[_0x4e14[202]][_0x4e14[3196]]=function(_0xa132x2){_0xa132x2= new mxSwimlaneManager(_0xa132x2,!1);_0xa132x2[_0x4e14[1737]]=mxUtils[_0x4e14[885]](this,function(){return this[_0x4e14[3089]]});_0xa132x2[_0x4e14[994]]=mxUtils[_0x4e14[885]](this,function(){return this[_0x4e14[3128]]});return _0xa132x2;};mxEditor[_0x4e14[202]][_0x4e14[3197]]=function(_0xa132x2){var _0xa132x3= new mxLayoutManager(_0xa132x2),_0xa132x4=this;_0xa132x3[_0x4e14[2754]]=function(_0xa132x3){var _0xa132x9=null,_0xa132xa=_0xa132x4[_0x4e14[1179]][_0x4e14[502]]();if(null!=_0xa132xa[_0x4e14[1197]](_0xa132x3)){if(_0xa132x4[_0x4e14[3129]]&&_0xa132x2[_0x4e14[1730]](_0xa132x3)){null==_0xa132x4[_0x4e14[3198]]&&(_0xa132x4[_0x4e14[3198]]=_0xa132x4[_0x4e14[3199]]()),_0xa132x9=_0xa132x4[_0x4e14[3198]]}else {if(_0xa132x4[_0x4e14[3126]]&&(_0xa132x2[_0x4e14[2553]](_0xa132x3)||null==_0xa132xa[_0x4e14[1197]](_0xa132xa[_0x4e14[1197]](_0xa132x3)))){null==_0xa132x4[_0x4e14[3200]]&&(_0xa132x4[_0x4e14[3200]]=_0xa132x4[_0x4e14[3201]]()),_0xa132x9=_0xa132x4[_0x4e14[3200]]}}};return _0xa132x9;};return _0xa132x3;};mxEditor[_0x4e14[202]][_0x4e14[3202]]=function(_0xa132x2){null==this[_0x4e14[1179]][_0x4e14[526]]&&(this[_0x4e14[1179]][_0x4e14[176]](_0xa132x2),this[_0x4e14[3203]]= new mxRubberband(this[_0x4e14[1179]]),this[_0x4e14[1157]]&&mxEvent[_0x4e14[1157]](_0xa132x2),mxClient[_0x4e14[496]]&& new mxDivResizer(_0xa132x2))};mxEditor[_0x4e14[202]][_0x4e14[3190]]=function(_0xa132x2){_0xa132x2[_0x4e14[169]](mxEvent.DOUBLE_CLICK,mxUtils[_0x4e14[885]](this,function(_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x4[_0x4e14[720]](_0x4e14[246]);null!=_0xa132x5&&(_0xa132x2[_0x4e14[994]]()&&null!=this[_0x4e14[3115]])&&(this[_0x4e14[350]](this[_0x4e14[3115]],_0xa132x5),_0xa132x4[_0x4e14[722]]());}))};mxEditor[_0x4e14[202]][_0x4e14[3191]]=function(_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){var _0xa132x9=_0xa132x3[_0x4e14[720]](_0x4e14[1061]);this[_0x4e14[3095]][_0x4e14[1114]](_0xa132x9);});_0xa132x2[_0x4e14[502]]()[_0x4e14[169]](mxEvent.UNDO,_0xa132x3);_0xa132x2[_0x4e14[249]]()[_0x4e14[169]](mxEvent.UNDO,_0xa132x3);_0xa132x3=function(_0xa132x3,_0xa132x5){var _0xa132x9=_0xa132x5[_0x4e14[720]](_0x4e14[1061])[_0x4e14[1065]];_0xa132x2[_0x4e14[904]](_0xa132x2[_0x4e14[2436]](_0xa132x9));};this[_0x4e14[3095]][_0x4e14[169]](mxEvent.UNDO,_0xa132x3);this[_0x4e14[3095]][_0x4e14[169]](mxEvent.REDO,_0xa132x3);};mxEditor[_0x4e14[202]][_0x4e14[3192]]=function(_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[885]](this,function(_0xa132x2){this[_0x4e14[746]]( new mxEventObject(mxEvent.ROOT))});_0xa132x2[_0x4e14[249]]()[_0x4e14[169]](mxEvent.DOWN,_0xa132x3);_0xa132x2[_0x4e14[249]]()[_0x4e14[169]](mxEvent.UP,_0xa132x3);};mxEditor[_0x4e14[202]][_0x4e14[3193]]=function(_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[885]](this,function(_0xa132x3,_0xa132x5){this[_0x4e14[2128]](!0);!0==this[_0x4e14[3140]]&&_0xa132x2[_0x4e14[2585]]();for(var _0xa132x9=_0xa132x5[_0x4e14[720]](_0x4e14[1061])[_0x4e14[1065]],_0xa132xa=0;_0xa132xa<_0xa132x9[_0x4e14[67]];_0xa132xa++){var _0xa132x12=_0xa132x9[_0xa132xa];if(_0xa132x12 instanceof mxRootChange||_0xa132x12 instanceof mxValueChange&&_0xa132x12[_0x4e14[246]]==this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[813]]||_0xa132x12 instanceof mxCellAttributeChange&&_0xa132x12[_0x4e14[246]]==this[_0x4e14[1179]][_0x4e14[251]][_0x4e14[813]]){this[_0x4e14[746]]( new mxEventObject(mxEvent.ROOT));break;};};});_0xa132x2[_0x4e14[502]]()[_0x4e14[169]](mxEvent.CHANGE,_0xa132x3);};mxEditor[_0x4e14[202]][_0x4e14[3194]]=function(_0xa132x2){var _0xa132x3=this;_0xa132x2[_0x4e14[1133]]({mouseDown:function(_0xa132x2,_0xa132x5){if(null!=_0xa132x3[_0x4e14[3083]]&&!_0xa132x5[_0x4e14[737]]()&&(_0xa132x3[_0x4e14[3117]]||null==_0xa132x5[_0x4e14[248]]())){_0xa132x3[_0x4e14[1179]][_0x4e14[2440]](),_0xa132x3[_0x4e14[3083]](_0xa132x5[_0x4e14[727]](),_0xa132x5[_0x4e14[736]]()),this[_0x4e14[1142]]= !0,_0xa132x5[_0x4e14[722]]()}},mouseMove:function(_0xa132x2,_0xa132x3){this[_0x4e14[1142]]&&_0xa132x3[_0x4e14[722]]()},mouseUp:function(_0xa132x2,_0xa132x3){this[_0x4e14[1142]]&&(this[_0x4e14[1142]]= !1,_0xa132x3[_0x4e14[722]]())}});};mxEditor[_0x4e14[202]][_0x4e14[3201]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[1020]],_0xa132x3= new mxStackLayout(this[_0x4e14[1179]],!this[_0x4e14[3089]],this[_0x4e14[3127]],2*_0xa132x2,2*_0xa132x2);_0xa132x3[_0x4e14[1713]]=function(_0xa132x2){return !_0xa132x3[_0x4e14[1179]][_0x4e14[1730]](_0xa132x2)};return _0xa132x3;};mxEditor[_0x4e14[202]][_0x4e14[3199]]=function(){return  new mxCompactTreeLayout(this[_0x4e14[1179]],this[_0x4e14[3089]])};mxEditor[_0x4e14[202]][_0x4e14[3097]]=function(){return  new mxDefaultToolbar(null,this)};mxEditor[_0x4e14[202]][_0x4e14[3204]]=function(_0xa132x2){this[_0x4e14[3082]][_0x4e14[176]](_0xa132x2);mxClient[_0x4e14[496]]&& new mxDivResizer(_0xa132x2);};mxEditor[_0x4e14[202]][_0x4e14[3205]]=function(_0xa132x2){null==this[_0x4e14[879]]&&(this[_0x4e14[879]]=_0xa132x2,this[_0x4e14[169]](mxEvent.SAVE,mxUtils[_0x4e14[885]](this,function(){var _0xa132x2=( new Date)[_0x4e14[3206]]();this[_0x4e14[3207]]((mxResources[_0x4e14[203]](this[_0x4e14[3106]])||this[_0x4e14[3106]])+_0x4e14[3186]+_0xa132x2);})),this[_0x4e14[169]](mxEvent.OPEN,mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[3207]]((mxResources[_0x4e14[203]](this[_0x4e14[3108]])||this[_0x4e14[3108]])+_0x4e14[3186]+this[_0x4e14[3122]])})),mxClient[_0x4e14[496]]&& new mxDivResizer(_0xa132x2))};mxEditor[_0x4e14[202]][_0x4e14[3207]]=function(_0xa132x2){null!=this[_0x4e14[879]]&&null!=_0xa132x2&&(this[_0x4e14[879]][_0x4e14[339]]=_0xa132x2)};mxEditor[_0x4e14[202]][_0x4e14[3208]]=function(_0xa132x2){this[_0x4e14[169]](mxEvent.ROOT,mxUtils[_0x4e14[885]](this,function(_0xa132x3){_0xa132x2[_0x4e14[339]]=this[_0x4e14[3209]]()}));mxClient[_0x4e14[496]]&& new mxDivResizer(_0xa132x2);};mxEditor[_0x4e14[202]][_0x4e14[3210]]=function(_0xa132x2,_0xa132x3){null!=_0xa132x2&&( new mxCompactTreeLayout(this[_0x4e14[1179]],_0xa132x3))[_0x4e14[350]](_0xa132x2)};mxEditor[_0x4e14[202]][_0x4e14[3209]]=function(){for(var _0xa132x2=_0x4e14[110],_0xa132x3=this[_0x4e14[1179]],_0xa132x4=_0xa132x3[_0x4e14[2534]]();null!=_0xa132x4&&null!=_0xa132x3[_0x4e14[502]]()[_0x4e14[1197]](_0xa132x3[_0x4e14[502]]()[_0x4e14[1197]](_0xa132x4));){_0xa132x3[_0x4e14[2553]](_0xa132x4)&&(_0xa132x2=_0x4e14[3211]+_0xa132x3[_0x4e14[2454]](_0xa132x4)+_0xa132x2),_0xa132x4=_0xa132x3[_0x4e14[502]]()[_0x4e14[1197]](_0xa132x4)};return this[_0x4e14[3212]]()+_0xa132x2;};mxEditor[_0x4e14[202]][_0x4e14[3212]]=function(){var _0xa132x2=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[501]]();return this[_0x4e14[1179]][_0x4e14[2454]](_0xa132x2);};mxEditor[_0x4e14[202]][_0x4e14[824]]=function(){this[_0x4e14[3095]][_0x4e14[824]]()};mxEditor[_0x4e14[202]][_0x4e14[825]]=function(){this[_0x4e14[3095]][_0x4e14[825]]()};mxEditor[_0x4e14[202]][_0x4e14[844]]=function(){var _0xa132x2=null!=this[_0x4e14[3121]]?this[_0x4e14[3121]]:this[_0x4e14[1179]][_0x4e14[1020]];return this[_0x4e14[1179]][_0x4e14[844]](this[_0x4e14[3213]](),_0xa132x2);};mxEditor[_0x4e14[202]][_0x4e14[3213]]=function(){return this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1978]](this[_0x4e14[3120]])};mxEditor[_0x4e14[202]][_0x4e14[392]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[219]](_0xa132x2)[_0x4e14[875]]();this[_0x4e14[3214]](_0xa132x3[_0x4e14[158]]);this[_0x4e14[3122]]=_0xa132x2;this[_0x4e14[746]]( new mxEventObject(mxEvent.OPEN,_0x4e14[3122],_0xa132x2));}};mxEditor[_0x4e14[202]][_0x4e14[3214]]=function(_0xa132x2){( new mxCodec(_0xa132x2[_0x4e14[295]]))[_0x4e14[1093]](_0xa132x2,this[_0x4e14[1179]][_0x4e14[502]]());this[_0x4e14[3181]]();};mxEditor[_0x4e14[202]][_0x4e14[815]]=function(_0xa132x2,_0xa132x3){_0xa132x2=_0xa132x2||this[_0x4e14[3215]]();if(null!=_0xa132x2&&0<_0xa132x2[_0x4e14[67]]){var _0xa132x4=this[_0x4e14[3216]](_0xa132x3);this[_0x4e14[3217]](_0xa132x2,_0xa132x4);this[_0x4e14[2128]](!1);};this[_0x4e14[746]]( new mxEventObject(mxEvent.SAVE,_0x4e14[863],_0xa132x2));};mxEditor[_0x4e14[202]][_0x4e14[3217]]=function(_0xa132x2,_0xa132x3){this[_0x4e14[1070]]&&(_0xa132x3=encodeURIComponent(_0xa132x3));mxUtils[_0x4e14[814]](_0xa132x2,this[_0x4e14[3123]]+_0x4e14[226]+_0xa132x3,mxUtils[_0x4e14[885]](this,function(_0xa132x4){this[_0x4e14[746]]( new mxEventObject(mxEvent.POST,_0x4e14[870],_0xa132x4,_0x4e14[863],_0xa132x2,_0x4e14[410],_0xa132x3))}));};mxEditor[_0x4e14[202]][_0x4e14[3216]]=function(_0xa132x2){_0xa132x2=null!=_0xa132x2?_0xa132x2:this[_0x4e14[1069]];var _0xa132x3=( new mxCodec)[_0x4e14[514]](this[_0x4e14[1179]][_0x4e14[502]]());return mxUtils[_0x4e14[875]](_0xa132x3,_0xa132x2);};mxEditor[_0x4e14[202]][_0x4e14[3215]]=function(){return this[_0x4e14[3124]]};mxEditor[_0x4e14[202]][_0x4e14[3142]]=function(){return this[_0x4e14[3125]]};mxEditor[_0x4e14[202]][_0x4e14[807]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){var _0xa132x9=null;mxClient[_0x4e14[3101]]||(_0xa132x9= new mxSession(this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x2,_0xa132x3,_0xa132x4),_0xa132x9[_0x4e14[169]](mxEvent.RECEIVE,mxUtils[_0x4e14[885]](this,function(_0xa132x2,_0xa132x3){null!=_0xa132x3[_0x4e14[720]](_0x4e14[252])[_0x4e14[284]](_0x4e14[1088])&&this[_0x4e14[3181]]()})),_0xa132x9[_0x4e14[169]](mxEvent.DISCONNECT,_0xa132x5),_0xa132x9[_0x4e14[169]](mxEvent.CONNECT,_0xa132x5),_0xa132x9[_0x4e14[169]](mxEvent.NOTIFY,_0xa132x5),_0xa132x9[_0x4e14[169]](mxEvent.GET,_0xa132x5),_0xa132x9[_0x4e14[861]]());return _0xa132x9;};mxEditor[_0x4e14[202]][_0x4e14[3218]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=this[_0x4e14[1179]][_0x4e14[2434]]()[_0x4e14[2054]][_0xa132x3];this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[2434]]()[_0x4e14[2074]](_0xa132x3,this[_0x4e14[1179]][_0x4e14[2434]]()[_0x4e14[2054]][_0xa132x2]);this[_0x4e14[1179]][_0x4e14[2434]]()[_0x4e14[2074]](_0xa132x2,_0xa132x4);this[_0x4e14[1179]][_0x4e14[802]]();};mxEditor[_0x4e14[202]][_0x4e14[3150]]=function(_0xa132x2){_0xa132x2=_0xa132x2||this[_0x4e14[1179]][_0x4e14[2452]]();null==_0xa132x2&&(_0xa132x2=this[_0x4e14[1179]][_0x4e14[2534]](),null==_0xa132x2&&(_0xa132x2=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[501]]()));if(null!=_0xa132x2){this[_0x4e14[1179]][_0x4e14[2126]](!0);var _0xa132x3=mxUtils[_0x4e14[445]](this[_0x4e14[1179]][_0x4e14[526]]),_0xa132x4=_0xa132x3[_0x4e14[235]]+10,_0xa132x3=_0xa132x3[_0x4e14[236]];if(null!=this[_0x4e14[716]]&&!this[_0x4e14[3139]]){_0xa132x4=this[_0x4e14[716]][_0x4e14[730]](),_0xa132x3=this[_0x4e14[716]][_0x4e14[732]]()}else {var _0xa132x5=this[_0x4e14[1179]][_0x4e14[2555]](_0xa132x2);null!=_0xa132x5&&(_0xa132x4+=_0xa132x5[_0x4e14[235]]+Math[_0x4e14[243]](200,_0xa132x5[_0x4e14[117]]),_0xa132x3+=_0xa132x5[_0x4e14[236]]);};this[_0x4e14[3062]]();_0xa132x2=this[_0x4e14[3219]](_0xa132x2);null!=_0xa132x2&&(this[_0x4e14[716]]= new mxWindow(mxResources[_0x4e14[203]](this[_0x4e14[3110]])||this[_0x4e14[3110]],_0xa132x2,_0xa132x4,_0xa132x3,this[_0x4e14[3137]],this[_0x4e14[3138]],!1),this[_0x4e14[716]][_0x4e14[175]](!0));};};mxEditor[_0x4e14[202]][_0x4e14[3220]]=function(){return null!=this[_0x4e14[716]]};mxEditor[_0x4e14[202]][_0x4e14[3219]]=function(_0xa132x2){var _0xa132x3=this[_0x4e14[1179]][_0x4e14[502]](),_0xa132x4=_0xa132x3[_0x4e14[433]](_0xa132x2);if(mxUtils[_0x4e14[1331]](_0xa132x4)){var _0xa132x5= new mxForm(_0x4e14[716]);_0xa132x5[_0x4e14[961]](_0x4e14[3222],_0xa132x2[_0x4e14[1103]]())[_0x4e14[57]](_0x4e14[3221],_0x4e14[128]);var _0xa132x9=null,_0xa132xa=null,_0xa132x12=null,_0xa132x13=null,_0xa132x14=null;_0xa132x3[_0x4e14[1193]](_0xa132x2)&&(_0xa132x9=_0xa132x3[_0x4e14[1721]](_0xa132x2),null!=_0xa132x9&&(_0xa132xa=_0xa132x5[_0x4e14[961]](_0x4e14[125],_0xa132x9[_0x4e14[236]]),_0xa132x12=_0xa132x5[_0x4e14[961]](_0x4e14[361],_0xa132x9[_0x4e14[235]]),_0xa132x13=_0xa132x5[_0x4e14[961]](_0x4e14[117],_0xa132x9[_0x4e14[117]]),_0xa132x14=_0xa132x5[_0x4e14[961]](_0x4e14[119],_0xa132x9[_0x4e14[119]])));for(var _0xa132x15=_0xa132x3[_0x4e14[474]](_0xa132x2),_0xa132x16=_0xa132x5[_0x4e14[961]](_0x4e14[3223],_0xa132x15||_0x4e14[110]),_0xa132x17=_0xa132x4[_0x4e14[320]],_0xa132x18=[],_0xa132x4=0;_0xa132x4<_0xa132x17[_0x4e14[67]];_0xa132x4++){_0xa132x18[_0xa132x4]=_0xa132x5[_0x4e14[968]](_0xa132x17[_0xa132x4][_0x4e14[301]],_0xa132x17[_0xa132x4][_0x4e14[318]],_0x4e14[685]==_0xa132x17[_0xa132x4][_0x4e14[301]]?4:2)};_0xa132x4=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[3062]]();_0xa132x3[_0x4e14[473]]();try{null!=_0xa132x9&&(_0xa132x9=_0xa132x9[_0x4e14[238]](),_0xa132x9[_0x4e14[235]]=parseFloat(_0xa132x12[_0x4e14[131]]),_0xa132x9[_0x4e14[236]]=parseFloat(_0xa132xa[_0x4e14[131]]),_0xa132x9[_0x4e14[117]]=parseFloat(_0xa132x13[_0x4e14[131]]),_0xa132x9[_0x4e14[119]]=parseFloat(_0xa132x14[_0x4e14[131]]),_0xa132x3[_0x4e14[1724]](_0xa132x2,_0xa132x9));0<_0xa132x16[_0x4e14[131]][_0x4e14[67]]?_0xa132x3[_0x4e14[475]](_0xa132x2,_0xa132x16[_0x4e14[131]]):_0xa132x3[_0x4e14[475]](_0xa132x2,null);for(var _0xa132x4=0;_0xa132x4<_0xa132x17[_0x4e14[67]];_0xa132x4++){var _0xa132x5= new mxCellAttributeChange(_0xa132x2,_0xa132x17[_0xa132x4][_0x4e14[301]],_0xa132x18[_0xa132x4][_0x4e14[131]]);_0xa132x3[_0x4e14[350]](_0xa132x5);};this[_0x4e14[1179]][_0x4e14[2455]](_0xa132x2)&&this[_0x4e14[1179]][_0x4e14[858]](_0xa132x2);}finally{_0xa132x3[_0x4e14[476]]()};});_0xa132x15=mxUtils[_0x4e14[885]](this,function(){this[_0x4e14[3062]]()});_0xa132x5[_0x4e14[956]](_0xa132x4,_0xa132x15);return _0xa132x5[_0x4e14[116]];};return null;};mxEditor[_0x4e14[202]][_0x4e14[3062]]=function(){null!=this[_0x4e14[716]]&&(this[_0x4e14[716]][_0x4e14[515]](),this[_0x4e14[716]]=null)};mxEditor[_0x4e14[202]][_0x4e14[3175]]=function(){if(null==this[_0x4e14[3112]]){var _0xa132x2=document[_0x4e14[55]](_0x4e14[485]);_0xa132x2[_0x4e14[124]][_0x4e14[549]]=_0x4e14[952];_0xa132x2[_0x4e14[124]][_0x4e14[357]]=_0x4e14[550];var _0xa132x3=document[_0x4e14[112]][_0x4e14[159]],_0xa132x3= new mxWindow(mxResources[_0x4e14[203]](this[_0x4e14[3111]])||this[_0x4e14[3111]],_0xa132x2,_0xa132x3-220,this[_0x4e14[3132]],200);_0xa132x3[_0x4e14[164]](!0);_0xa132x3[_0x4e14[165]]= !1;var _0xa132x4=mxUtils[_0x4e14[885]](this,function(_0xa132x3){mxEvent[_0x4e14[762]](_0xa132x2);_0xa132x2[_0x4e14[339]]=_0x4e14[110];this[_0x4e14[3224]](_0xa132x2);});this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[169]](mxEvent.CHANGE,_0xa132x4);this[_0x4e14[1179]][_0x4e14[2435]]()[_0x4e14[169]](mxEvent.CHANGE,_0xa132x4);this[_0x4e14[1179]][_0x4e14[169]](mxEvent.ROOT,_0xa132x4);null!=this[_0x4e14[3131]]&&_0xa132x3[_0x4e14[951]](this[_0x4e14[3131]]);this[_0x4e14[3112]]=_0xa132x3;this[_0x4e14[3224]](_0xa132x2);};this[_0x4e14[3112]][_0x4e14[175]](!0);};mxEditor[_0x4e14[202]][_0x4e14[3225]]=function(_0xa132x2){null!=this[_0x4e14[3112]]&&(_0xa132x2=this[_0x4e14[3112]][_0x4e14[905]],mxEvent[_0x4e14[762]](_0xa132x2),_0xa132x2[_0x4e14[339]]=_0x4e14[110],this[_0x4e14[3224]](_0xa132x2))};mxEditor[_0x4e14[202]][_0x4e14[3224]]=function(_0xa132x2){};mxEditor[_0x4e14[202]][_0x4e14[3177]]=function(_0xa132x2){if(null==this[_0x4e14[2719]]){var _0xa132x3=document[_0x4e14[55]](_0x4e14[389]);_0xa132x3[_0x4e14[57]](_0x4e14[390],mxResources[_0x4e14[203]](_0x4e14[3134])||this[_0x4e14[3134]]);_0xa132x3[_0x4e14[57]](_0x4e14[119],_0x4e14[118]);_0xa132x3[_0x4e14[57]](_0x4e14[117],_0x4e14[118]);_0xa132x3[_0x4e14[57]](_0x4e14[3226],_0x4e14[468]);_0xa132x3[_0x4e14[124]][_0x4e14[1028]]=_0x4e14[1391];_0xa132x2=document[_0x4e14[112]][_0x4e14[159]];var _0xa132x4=document[_0x4e14[112]][_0x4e14[157]]||document[_0x4e14[158]][_0x4e14[157]],_0xa132x5= new mxWindow(mxResources[_0x4e14[203]](this[_0x4e14[3113]])||this[_0x4e14[3113]],_0xa132x3,(_0xa132x2-this[_0x4e14[3135]])/2,(_0xa132x4-this[_0x4e14[3136]])/3,this[_0x4e14[3135]],this[_0x4e14[3136]]);_0xa132x5[_0x4e14[161]](!0);_0xa132x5[_0x4e14[164]](!0);_0xa132x5[_0x4e14[165]]= !1;_0xa132x5[_0x4e14[163]](!0);null!=this[_0x4e14[3133]]&&_0xa132x5[_0x4e14[951]](this[_0x4e14[3133]]);mxClient[_0x4e14[133]]&&(_0xa132x2=function(_0xa132x2){_0xa132x3[_0x4e14[57]](_0x4e14[119],_0xa132x5[_0x4e14[485]][_0x4e14[167]]-26+_0x4e14[168])},_0xa132x5[_0x4e14[169]](mxEvent.RESIZE_END,_0xa132x2),_0xa132x5[_0x4e14[169]](mxEvent.MAXIMIZE,_0xa132x2),_0xa132x5[_0x4e14[169]](mxEvent.NORMALIZE,_0xa132x2),_0xa132x5[_0x4e14[169]](mxEvent.SHOW,_0xa132x2));this[_0x4e14[2719]]=_0xa132x5;};this[_0x4e14[2719]][_0x4e14[175]](!0);};mxEditor[_0x4e14[202]][_0x4e14[3179]]=function(){if(null==this[_0x4e14[2136]]){var _0xa132x2=document[_0x4e14[55]](_0x4e14[485]);_0xa132x2[_0x4e14[124]][_0x4e14[277]]=_0x4e14[188];_0xa132x2[_0x4e14[124]][_0x4e14[117]]=_0x4e14[118];_0xa132x2[_0x4e14[124]][_0x4e14[119]]=_0x4e14[118];_0xa132x2[_0x4e14[124]][_0x4e14[1537]]=_0x4e14[1391];_0xa132x2[_0x4e14[124]][_0x4e14[270]]=_0x4e14[582];var _0xa132x3= new mxWindow(mxResources[_0x4e14[203]](this[_0x4e14[3114]])||this[_0x4e14[3114]],_0xa132x2,600,480,200,200,!1),_0xa132x4= new mxOutline(this[_0x4e14[1179]],_0xa132x2);_0xa132x3[_0x4e14[164]](!0);_0xa132x3[_0x4e14[163]](!0);_0xa132x3[_0x4e14[165]]= !1;_0xa132x3[_0x4e14[169]](mxEvent.RESIZE_END,function(){_0xa132x4[_0x4e14[2729]]()});this[_0x4e14[2136]]=_0xa132x3;this[_0x4e14[2136]][_0x4e14[2136]]=_0xa132x4;};this[_0x4e14[2136]][_0x4e14[175]](!0);this[_0x4e14[2136]][_0x4e14[2136]][_0x4e14[2729]](!0);};mxEditor[_0x4e14[202]][_0x4e14[3086]]=function(_0xa132x2){_0x4e14[804]==_0xa132x2?(this[_0x4e14[1179]][_0x4e14[2316]][_0x4e14[2840]]= !1,this[_0x4e14[1179]][_0x4e14[1995]](!1)):_0x4e14[807]==_0xa132x2?(this[_0x4e14[1179]][_0x4e14[2316]][_0x4e14[2840]]= !1,this[_0x4e14[1179]][_0x4e14[1995]](!0)):_0x4e14[796]==_0xa132x2&&(this[_0x4e14[1179]][_0x4e14[2316]][_0x4e14[2840]]= !0,this[_0x4e14[1179]][_0x4e14[1995]](!1))};mxEditor[_0x4e14[202]][_0x4e14[3195]]=function(_0xa132x2,_0xa132x3,_0xa132x4){this[_0x4e14[3094]][_0x4e14[3065]](this,_0xa132x2,_0xa132x3,_0xa132x4)};mxEditor[_0x4e14[202]][_0x4e14[2503]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=null;if(null!=this[_0x4e14[2075]]){_0xa132x4=this[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[1978]](this[_0x4e14[2075]])}else {_0xa132x4= new mxCell(_0x4e14[110]);_0xa132x4[_0x4e14[1994]](!0);var _0xa132x5= new mxGeometry;_0xa132x5[_0x4e14[1500]]= !0;_0xa132x4[_0x4e14[1724]](_0xa132x5);};_0xa132x5=this[_0x4e14[2291]]();null!=_0xa132x5&&_0xa132x4[_0x4e14[475]](_0xa132x5);return _0xa132x4;};mxEditor[_0x4e14[202]][_0x4e14[2291]]=function(){return this[_0x4e14[3119]]};mxEditor[_0x4e14[202]][_0x4e14[3227]]=function(_0xa132x2){return null!=this[_0x4e14[3093]]&&0<this[_0x4e14[3093]][_0x4e14[67]]&&this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x2)?this[_0x4e14[3093]][this[_0x4e14[3130]]++ %this[_0x4e14[3093]][_0x4e14[67]]]:null};mxEditor[_0x4e14[202]][_0x4e14[3228]]=function(_0xa132x2){if(null!=this[_0x4e14[3100]]){var _0xa132x3=this[_0x4e14[3227]](_0xa132x2);null!=_0xa132x3&&_0xa132x2[_0x4e14[475]](_0xa132x2[_0x4e14[474]]()+_0x4e14[471]+this[_0x4e14[3100]]+_0x4e14[226]+_0xa132x3);}};mxEditor[_0x4e14[202]][_0x4e14[817]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){for(var _0xa132x9=this[_0x4e14[1179]][_0x4e14[502]]();null!=_0xa132x2&&!this[_0x4e14[1179]][_0x4e14[2685]](_0xa132x2);){_0xa132x2=_0xa132x9[_0x4e14[1197]](_0xa132x2)};_0xa132x2=null!=_0xa132x2?_0xa132x2:this[_0x4e14[1179]][_0x4e14[2461]](_0xa132x4,_0xa132x5);var _0xa132xa=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[255]],_0xa132x12=_0xa132x9[_0x4e14[1721]](_0xa132x3),_0xa132x13=_0xa132x9[_0x4e14[1721]](_0xa132x2);if(this[_0x4e14[1179]][_0x4e14[1730]](_0xa132x3)&&!this[_0x4e14[1179]][_0x4e14[2412]]){_0xa132x2=null}else {if(null==_0xa132x2&&this[_0x4e14[3116]]){return null};if(null!=_0xa132x2&&null!=_0xa132x13){var _0xa132x14=this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[248]](_0xa132x2);if(null!=_0xa132x14){if(_0xa132x4-=_0xa132x14[_0x4e14[2078]][_0x4e14[235]]*_0xa132xa,_0xa132x5-=_0xa132x14[_0x4e14[2078]][_0x4e14[236]]*_0xa132xa,this[_0x4e14[1179]][_0x4e14[3229]]){var _0xa132x13=_0xa132x12[_0x4e14[117]],_0xa132x15=_0xa132x12[_0x4e14[119]],_0xa132x16=_0xa132x14[_0x4e14[235]]+_0xa132x14[_0x4e14[117]];_0xa132x4+_0xa132x13>_0xa132x16&&(_0xa132x4-=_0xa132x4+_0xa132x13-_0xa132x16);_0xa132x16=_0xa132x14[_0x4e14[236]]+_0xa132x14[_0x4e14[119]];_0xa132x5+_0xa132x15>_0xa132x16&&(_0xa132x5-=_0xa132x5+_0xa132x15-_0xa132x16);}}else {null!=_0xa132x13&&(_0xa132x4-=_0xa132x13[_0x4e14[235]]*_0xa132xa,_0xa132x5-=_0xa132x13[_0x4e14[236]]*_0xa132xa)};};};_0xa132x12=_0xa132x12[_0x4e14[238]]();_0xa132x12[_0x4e14[235]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x4/_0xa132xa-this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[513]][_0x4e14[235]]-this[_0x4e14[1179]][_0x4e14[1020]]/2);_0xa132x12[_0x4e14[236]]=this[_0x4e14[1179]][_0x4e14[1021]](_0xa132x5/_0xa132xa-this[_0x4e14[1179]][_0x4e14[249]]()[_0x4e14[513]][_0x4e14[236]]-this[_0x4e14[1179]][_0x4e14[1020]]/2);_0xa132x3[_0x4e14[1724]](_0xa132x12);null==_0xa132x2&&(_0xa132x2=this[_0x4e14[1179]][_0x4e14[902]]());this[_0x4e14[3228]](_0xa132x3);this[_0x4e14[746]]( new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,_0x4e14[1988],_0xa132x3,_0x4e14[1101],_0xa132x2));_0xa132x9[_0x4e14[473]]();try{_0xa132x3=this[_0x4e14[1179]][_0x4e14[2103]](_0xa132x3,_0xa132x2),null!=_0xa132x3&&(this[_0x4e14[1179]][_0x4e14[2509]](_0xa132x3),this[_0x4e14[746]]( new mxEventObject(mxEvent.ADD_VERTEX,_0x4e14[1988],_0xa132x3)))}finally{_0xa132x9[_0x4e14[476]]()};null!=_0xa132x3&&(this[_0x4e14[1179]][_0x4e14[2450]](_0xa132x3),this[_0x4e14[1179]][_0x4e14[2564]](_0xa132x3),this[_0x4e14[746]]( new mxEventObject(mxEvent.AFTER_ADD_VERTEX,_0x4e14[1988],_0xa132x3)));return _0xa132x3;};mxEditor[_0x4e14[202]][_0x4e14[515]]=function(){this[_0x4e14[2717]]||(this[_0x4e14[2717]]= !0,null!=this[_0x4e14[3112]]&&this[_0x4e14[3112]][_0x4e14[515]](),null!=this[_0x4e14[2136]]&&this[_0x4e14[2136]][_0x4e14[515]](),null!=this[_0x4e14[716]]&&this[_0x4e14[716]][_0x4e14[515]](),null!=this[_0x4e14[3098]]&&this[_0x4e14[3098]][_0x4e14[515]](),null!=this[_0x4e14[3203]]&&this[_0x4e14[3203]][_0x4e14[515]](),null!=this[_0x4e14[3082]]&&this[_0x4e14[3082]][_0x4e14[515]](),null!=this[_0x4e14[1179]]&&this[_0x4e14[1179]][_0x4e14[515]](),this[_0x4e14[3118]]=this[_0x4e14[879]]=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[718]]();mxCodecRegistry[_0x4e14[3230]][_0xa132x3]=_0xa132x2;var _0xa132x4=mxUtils[_0x4e14[197]](_0xa132x2[_0x4e14[3231]][_0x4e14[196]]);_0xa132x4!=_0xa132x3&&mxCodecRegistry[_0x4e14[3232]](_0xa132x4,_0xa132x3);};return _0xa132x2;},addAlias:function(_0xa132x2,_0xa132x3){mxCodecRegistry[_0x4e14[3233]][_0xa132x2]=_0xa132x3},getCodec:function(_0xa132x2){var _0xa132x3=null;if(null!=_0xa132x2){var _0xa132x3=mxUtils[_0x4e14[197]](_0xa132x2),_0xa132x4=mxCodecRegistry[_0x4e14[3233]][_0xa132x3];null!=_0xa132x4&&(_0xa132x3=_0xa132x4);_0xa132x3=mxCodecRegistry[_0x4e14[3230]][_0xa132x3];if(null==_0xa132x3){try{_0xa132x3= new mxObjectCodec( new _0xa132x2),mxCodecRegistry[_0x4e14[3234]](_0xa132x3)}catch(d){}};};return _0xa132x3;}};function mxCodec(_0xa132x2){this[_0x4e14[395]]=_0xa132x2||mxUtils[_0x4e14[306]]();this[_0x4e14[68]]=[];}mxCodec[_0x4e14[202]][_0x4e14[395]]=null;mxCodec[_0x4e14[202]][_0x4e14[68]]=null;mxCodec[_0x4e14[202]][_0x4e14[3235]]= !1;mxCodec[_0x4e14[202]][_0x4e14[1104]]=function(_0xa132x2,_0xa132x3){return this[_0x4e14[68]][_0xa132x2]=_0xa132x3};mxCodec[_0x4e14[202]][_0x4e14[3236]]=function(_0xa132x2){var _0xa132x3=null;null!=_0xa132x2&&(_0xa132x3=this[_0x4e14[68]][_0xa132x2],null==_0xa132x3&&(_0xa132x3=this[_0x4e14[1060]](_0xa132x2),null==_0xa132x3&&(_0xa132x2=this[_0x4e14[1362]](_0xa132x2),null!=_0xa132x2&&(_0xa132x3=this[_0x4e14[1093]](_0xa132x2)))));return _0xa132x3;};mxCodec[_0x4e14[202]][_0x4e14[1060]]=function(_0xa132x2){return null};mxCodec[_0x4e14[202]][_0x4e14[1362]]=function(_0xa132x2,_0xa132x3){return mxUtils[_0x4e14[290]](this[_0x4e14[395]][_0x4e14[158]],null!=_0xa132x3?_0xa132x3:_0x4e14[1363],_0xa132x2)};mxCodec[_0x4e14[202]][_0x4e14[1103]]=function(_0xa132x2){var _0xa132x3=null;null!=_0xa132x2&&(_0xa132x3=this[_0x4e14[3237]](_0xa132x2),null==_0xa132x3&&_0xa132x2 instanceof mxCell&&(_0xa132x3=_0xa132x2[_0x4e14[1103]](),null==_0xa132x3&&(_0xa132x3=mxCellPath[_0x4e14[385]](_0xa132x2),0==_0xa132x3[_0x4e14[67]]&&(_0xa132x3=_0x4e14[813]))));return _0xa132x3;};mxCodec[_0x4e14[202]][_0x4e14[3237]]=function(_0xa132x2){return null};mxCodec[_0x4e14[202]][_0x4e14[514]]=function(_0xa132x2){var _0xa132x3=null;if(null!=_0xa132x2&&null!=_0xa132x2[_0x4e14[196]]){var _0xa132x4=mxCodecRegistry[_0x4e14[3238]](_0xa132x2[_0x4e14[196]]);null!=_0xa132x4?_0xa132x3=_0xa132x4[_0x4e14[514]](this,_0xa132x2):mxUtils[_0x4e14[1331]](_0xa132x2)?_0xa132x3=mxClient[_0x4e14[80]]?_0xa132x2[_0x4e14[511]](!0):this[_0x4e14[395]][_0x4e14[3239]](_0xa132x2,!0):mxLog[_0x4e14[283]](_0x4e14[3240]+mxUtils[_0x4e14[197]](_0xa132x2[_0x4e14[196]]));};return _0xa132x3;};mxCodec[_0x4e14[202]][_0x4e14[1093]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=null;if(null!=_0xa132x2&&_0xa132x2[_0x4e14[288]]==mxConstants[_0x4e14[289]]){var _0xa132x5=null;try{_0xa132x5=eval(_0xa132x2[_0x4e14[301]])}catch(e){};try{var _0xa132xa=mxCodecRegistry[_0x4e14[3238]](_0xa132x5);null!=_0xa132xa?_0xa132x4=_0xa132xa[_0x4e14[1093]](this,_0xa132x2,_0xa132x3):(_0xa132x4=_0xa132x2[_0x4e14[511]](!0),_0xa132x4[_0x4e14[1390]](_0x4e14[3069]));}catch(g){mxLog[_0x4e14[143]](_0x4e14[3241]+_0xa132x2[_0x4e14[301]]+_0x4e14[3186]+g[_0x4e14[281]])};};return _0xa132x4;};mxCodec[_0x4e14[202]][_0x4e14[3242]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3[_0x4e14[62]](this[_0x4e14[514]](_0xa132x2));if(null==_0xa132x4||_0xa132x4){_0xa132x4=_0xa132x2[_0x4e14[262]]();for(var _0xa132x5=0;_0xa132x5<_0xa132x4;_0xa132x5++){this[_0x4e14[3242]](_0xa132x2[_0x4e14[263]](_0xa132x5),_0xa132x3)};};};mxCodec[_0x4e14[202]][_0x4e14[3243]]=function(_0xa132x2){return null!=_0xa132x2&&_0x4e14[279]== typeof _0xa132x2[_0x4e14[3243]]?_0xa132x2[_0x4e14[3243]]():!1};mxCodec[_0x4e14[202]][_0x4e14[3244]]=function(_0xa132x2,_0xa132x3){_0xa132x3=null!=_0xa132x3?_0xa132x3:!0;var _0xa132x4=null;if(null!=_0xa132x2&&_0xa132x2[_0x4e14[288]]==mxConstants[_0x4e14[289]]){_0xa132x4=mxCodecRegistry[_0x4e14[3238]](_0xa132x2[_0x4e14[301]]);if(!this[_0x4e14[3243]](_0xa132x4)){for(var _0xa132x5=_0xa132x2[_0x4e14[285]];null!=_0xa132x5&&!this[_0x4e14[3243]](_0xa132x4);){_0xa132x4=mxCodecRegistry[_0x4e14[3238]](_0xa132x5[_0x4e14[301]]),_0xa132x5=_0xa132x5[_0x4e14[287]]}};this[_0x4e14[3243]](_0xa132x4)||(_0xa132x4=mxCodecRegistry[_0x4e14[3238]](mxCell));_0xa132x4=_0xa132x4[_0x4e14[1093]](this,_0xa132x2);_0xa132x3&&this[_0x4e14[3245]](_0xa132x4);};return _0xa132x4;};mxCodec[_0x4e14[202]][_0x4e14[3245]]=function(_0xa132x2){var _0xa132x3=_0xa132x2[_0x4e14[1101]],_0xa132x4=_0xa132x2[_0x4e14[1709]](!0),_0xa132x5=_0xa132x2[_0x4e14[1709]](!1);_0xa132x2[_0x4e14[1957]](null,!1);_0xa132x2[_0x4e14[1957]](null,!0);_0xa132x2[_0x4e14[1101]]=null;null!=_0xa132x3&&_0xa132x3[_0x4e14[1937]](_0xa132x2);null!=_0xa132x4&&_0xa132x4[_0x4e14[1960]](_0xa132x2,!0);null!=_0xa132x5&&_0xa132x5[_0x4e14[1960]](_0xa132x2,!1);};mxCodec[_0x4e14[202]][_0x4e14[57]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null!=_0xa132x3&&null!=_0xa132x4&&_0xa132x2[_0x4e14[57]](_0xa132x3,_0xa132x4)};function mxObjectCodec(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){this[_0x4e14[3231]]=_0xa132x2;this[_0x4e14[3246]]=null!=_0xa132x3?_0xa132x3:[];this[_0x4e14[3247]]=null!=_0xa132x4?_0xa132x4:[];this[_0x4e14[3248]]=null!=_0xa132x5?_0xa132x5:[];this[_0x4e14[3249]]={};for(var _0xa132x9 in this[_0x4e14[3248]]){this[_0x4e14[3249]][this[_0x4e14[3248]][_0xa132x9]]=_0xa132x9};}mxObjectCodec[_0x4e14[202]][_0x4e14[3231]]=null;mxObjectCodec[_0x4e14[202]][_0x4e14[3246]]=null;mxObjectCodec[_0x4e14[202]][_0x4e14[3247]]=null;mxObjectCodec[_0x4e14[202]][_0x4e14[3248]]=null;mxObjectCodec[_0x4e14[202]][_0x4e14[3249]]=null;mxObjectCodec[_0x4e14[202]][_0x4e14[718]]=function(){return mxUtils[_0x4e14[197]](this[_0x4e14[3231]][_0x4e14[196]])};mxObjectCodec[_0x4e14[202]][_0x4e14[3250]]=function(){return  new this[_0x4e14[3231]][_0x4e14[196]]};mxObjectCodec[_0x4e14[202]][_0x4e14[3251]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[3249]][_0xa132x2];null!=_0xa132x3&&(_0xa132x2=_0xa132x3);};return _0xa132x2;};mxObjectCodec[_0x4e14[202]][_0x4e14[3252]]=function(_0xa132x2){if(null!=_0xa132x2){var _0xa132x3=this[_0x4e14[3248]][_0xa132x2];null!=_0xa132x3&&(_0xa132x2=_0xa132x3);};return _0xa132x2;};mxObjectCodec[_0x4e14[202]][_0x4e14[3253]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){return _0xa132x3==mxObjectIdentity[_0x4e14[195]]||0<=mxUtils[_0x4e14[2]](this[_0x4e14[3246]],_0xa132x3)};mxObjectCodec[_0x4e14[202]][_0x4e14[3254]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){return 0<=mxUtils[_0x4e14[2]](this[_0x4e14[3247]],_0xa132x3)};mxObjectCodec[_0x4e14[202]][_0x4e14[514]]=function(_0xa132x2,_0xa132x3){var _0xa132x4=_0xa132x2[_0x4e14[395]][_0x4e14[55]](this[_0x4e14[718]]());_0xa132x3=this[_0x4e14[3255]](_0xa132x2,_0xa132x3,_0xa132x4);this[_0x4e14[3256]](_0xa132x2,_0xa132x3,_0xa132x4);return this[_0x4e14[3257]](_0xa132x2,_0xa132x3,_0xa132x4);};mxObjectCodec[_0x4e14[202]][_0x4e14[3256]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2[_0x4e14[57]](_0xa132x4,_0x4e14[1363],_0xa132x2[_0x4e14[1103]](_0xa132x3));for(var _0xa132x5 in _0xa132x3){var _0xa132x9=_0xa132x5,_0xa132xa=_0xa132x3[_0xa132x9];null!=_0xa132xa&&!this[_0x4e14[3253]](_0xa132x3,_0xa132x9,_0xa132xa,!0)&&(mxUtils[_0x4e14[1946]](_0xa132x9)&&(_0xa132x9=null),this[_0x4e14[3258]](_0xa132x2,_0xa132x3,_0xa132x9,_0xa132xa,_0xa132x4));};};mxObjectCodec[_0x4e14[202]][_0x4e14[3258]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){if(null!=_0xa132x5){if(this[_0x4e14[3254]](_0xa132x3,_0xa132x4,_0xa132x5,!0)){var _0xa132xa=_0xa132x2[_0x4e14[1103]](_0xa132x5);if(null==_0xa132xa){mxLog[_0x4e14[283]](_0x4e14[3259]+this[_0x4e14[718]]()+_0x4e14[87]+_0xa132x4+_0x4e14[226]+_0xa132x5);return;};_0xa132x5=_0xa132xa;};_0xa132xa=this[_0x4e14[3231]][_0xa132x4];if(null==_0xa132x4||_0xa132x2[_0x4e14[3235]]||_0xa132xa!=_0xa132x5){_0xa132x4=this[_0x4e14[3252]](_0xa132x4),this[_0x4e14[3260]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9)};}};mxObjectCodec[_0x4e14[202]][_0x4e14[3260]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0x4e14[194]!= typeof _0xa132x5?this[_0x4e14[3261]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9):this[_0x4e14[3262]](_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9)};mxObjectCodec[_0x4e14[202]][_0x4e14[3261]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x5=this[_0x4e14[3263]](_0xa132x5);null==_0xa132x4?(_0xa132x3=_0xa132x2[_0x4e14[395]][_0x4e14[55]](_0x4e14[99]),_0x4e14[279]== typeof _0xa132x5?_0xa132x3[_0x4e14[62]](_0xa132x2[_0x4e14[395]][_0x4e14[344]](_0xa132x5)):_0xa132x2[_0x4e14[57]](_0xa132x3,_0x4e14[131],_0xa132x5),_0xa132x9[_0x4e14[62]](_0xa132x3)):_0x4e14[279]!= typeof _0xa132x5&&_0xa132x2[_0x4e14[57]](_0xa132x9,_0xa132x4,_0xa132x5);};mxObjectCodec[_0x4e14[202]][_0x4e14[3262]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5,_0xa132x9){_0xa132x2=_0xa132x2[_0x4e14[514]](_0xa132x5);null!=_0xa132x2?(null!=_0xa132x4&&_0xa132x2[_0x4e14[57]](_0x4e14[3069],_0xa132x4),_0xa132x9[_0x4e14[62]](_0xa132x2)):mxLog[_0x4e14[283]](_0x4e14[3264]+this[_0x4e14[718]]()+_0x4e14[87]+_0xa132x4+_0x4e14[3186]+_0xa132x5);};mxObjectCodec[_0x4e14[202]][_0x4e14[3263]]=function(_0xa132x2){if(_0x4e14[82]== typeof _0xa132x2[_0x4e14[67]]&&(!0==_0xa132x2||!1==_0xa132x2)){_0xa132x2=!0==_0xa132x2?_0x4e14[500]:_0x4e14[468]};return _0xa132x2;};mxObjectCodec[_0x4e14[202]][_0x4e14[3265]]=function(_0xa132x2){mxUtils[_0x4e14[1946]](_0xa132x2)&&(_0xa132x2=parseFloat(_0xa132x2));return _0xa132x2;};mxObjectCodec[_0x4e14[202]][_0x4e14[3255]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x3};mxObjectCodec[_0x4e14[202]][_0x4e14[3257]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x4};mxObjectCodec[_0x4e14[202]][_0x4e14[1093]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x3[_0x4e14[284]](_0x4e14[1363]),_0xa132x9=_0xa132x2[_0x4e14[68]][_0xa132x5];null==_0xa132x9&&(_0xa132x9=_0xa132x4||this[_0x4e14[3250]](),null!=_0xa132x5&&_0xa132x2[_0x4e14[1104]](_0xa132x5,_0xa132x9));_0xa132x3=this[_0x4e14[3266]](_0xa132x2,_0xa132x3,_0xa132x9);this[_0x4e14[3267]](_0xa132x2,_0xa132x3,_0xa132x9);return this[_0x4e14[3268]](_0xa132x2,_0xa132x3,_0xa132x9);};mxObjectCodec[_0x4e14[202]][_0x4e14[3267]]=function(_0xa132x2,_0xa132x3,_0xa132x4){null!=_0xa132x3&&(this[_0x4e14[3269]](_0xa132x2,_0xa132x3,_0xa132x4),this[_0x4e14[3270]](_0xa132x2,_0xa132x3,_0xa132x4))};mxObjectCodec[_0x4e14[202]][_0x4e14[3269]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x3=_0xa132x3[_0x4e14[320]];if(null!=_0xa132x3){for(var _0xa132x5=0;_0xa132x5<_0xa132x3[_0x4e14[67]];_0xa132x5++){this[_0x4e14[3271]](_0xa132x2,_0xa132x3[_0xa132x5],_0xa132x4)}};};mxObjectCodec[_0x4e14[202]][_0x4e14[3271]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=_0xa132x3[_0x4e14[301]];if(_0x4e14[3069]!=_0xa132x5&&_0x4e14[1363]!=_0xa132x5){_0xa132x3=this[_0x4e14[3265]](_0xa132x3[_0x4e14[318]]);var _0xa132x9=this[_0x4e14[3251]](_0xa132x5);if(this[_0x4e14[3254]](_0xa132x4,_0xa132x9,_0xa132x3,!1)){_0xa132x2=_0xa132x2[_0x4e14[3236]](_0xa132x3);if(null==_0xa132x2){mxLog[_0x4e14[283]](_0x4e14[3272]+this[_0x4e14[718]]()+_0x4e14[87]+_0xa132x5+_0x4e14[226]+_0xa132x3);return;};_0xa132x3=_0xa132x2;};this[_0x4e14[3253]](_0xa132x4,_0xa132x5,_0xa132x3,!1)||(_0xa132x4[_0xa132x5]=_0xa132x3);};};mxObjectCodec[_0x4e14[202]][_0x4e14[3270]]=function(_0xa132x2,_0xa132x3,_0xa132x4){for(_0xa132x3=_0xa132x3[_0x4e14[285]];null!=_0xa132x3;){var _0xa132x5=_0xa132x3[_0x4e14[287]];_0xa132x3[_0x4e14[288]]==mxConstants[_0x4e14[289]]&&!this[_0x4e14[3273]](_0xa132x2,_0xa132x3,_0xa132x4)&&this[_0x4e14[3274]](_0xa132x2,_0xa132x3,_0xa132x4);_0xa132x3=_0xa132x5;}};mxObjectCodec[_0x4e14[202]][_0x4e14[3274]]=function(_0xa132x2,_0xa132x3,_0xa132x4){var _0xa132x5=this[_0x4e14[3251]](_0xa132x3[_0x4e14[284]](_0x4e14[3069]));if(null==_0xa132x5||!this[_0x4e14[3253]](_0xa132x4,_0xa132x5,_0xa132x3,!1)){var _0xa132x9=this[_0x4e14[3275]](_0xa132x4,_0xa132x5,_0xa132x3),_0xa132xa=null;_0x4e14[99]==_0xa132x3[_0x4e14[301]]?(_0xa132xa=_0xa132x3[_0x4e14[284]](_0x4e14[131]),null==_0xa132xa&&(_0xa132xa=mxUtils[_0x4e14[1545]](mxUtils[_0x4e14[329]](_0xa132x3)))):_0xa132xa=_0xa132x2[_0x4e14[1093]](_0xa132x3,_0xa132x9);this[_0x4e14[3276]](_0xa132x4,_0xa132x5,_0xa132xa,_0xa132x9);};};mxObjectCodec[_0x4e14[202]][_0x4e14[3275]]=function(_0xa132x2,_0xa132x3,_0xa132x4){_0xa132x2=_0xa132x2[_0xa132x3];_0xa132x2 instanceof Array&&0<_0xa132x2[_0x4e14[67]]&&(_0xa132x2=null);return _0xa132x2;};mxObjectCodec[_0x4e14[202]][_0x4e14[3276]]=function(_0xa132x2,_0xa132x3,_0xa132x4,_0xa132x5){null!=_0xa132x4&&_0xa132x4!=_0xa132x5&&(null!=_0xa132x3&&0<_0xa132x3[_0x4e14[67]]?_0xa132x2[_0xa132x3]=_0xa132x4:_0xa132x2[_0x4e14[207]](_0xa132x4))};mxObjectCodec[_0x4e14[202]][_0x4e14[3273]]=function(_0xa132x2,_0xa132x3,_0xa132x4){if(_0x4e14[3277]==_0xa132x3[_0x4e14[301]]){_0xa132x3=_0xa132x3[_0x4e14[284]](_0x4e14[298]);if(null!=_0xa132x3){try{var _0xa132x5=mxUtils[_0x4e14[219]](_0xa132x3)[_0x4e14[874]]();null!=_0xa132x5&&_0xa132x2[_0x4e14[1093]](_0xa132x5,_0xa132x4);}catch(e){}};return !0;};return !1;};mxObjectCodec[_0x4e14[202]][_0x4e14[3266]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x3};mxObjectCodec[_0x4e14[202]][_0x4e14[3268]]=function(_0xa132x2,_0xa132x3,_0xa132x4){return _0xa132x4};mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxCell,[_0x4e14[1954],_0x4e14[1842],_0x4e14[1211],_0x4e14[1991]],[_0x4e14[1101],_0x4e14[1097],_0x4e14[772]]);_0xa132x2[_0x4e14[3243]]=function(){return !0};_0xa132x2[_0x4e14[3253]]=function(_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9){return mxObjectCodec[_0x4e14[202]][_0x4e14[3253]][_0x4e14[183]](this,arguments)||_0xa132x9&&_0x4e14[131]==_0xa132x4&&_0xa132x5[_0x4e14[288]]==mxConstants[_0x4e14[289]]};_0xa132x2[_0x4e14[3257]]=function(_0xa132x2,_0xa132x4,_0xa132x5){if(null!=_0xa132x4[_0x4e14[131]]&&_0xa132x4[_0x4e14[131]][_0x4e14[288]]==mxConstants[_0x4e14[289]]){var _0xa132x9=_0xa132x5;_0xa132x5=mxClient[_0x4e14[80]]?_0xa132x4[_0x4e14[131]][_0x4e14[511]](!0):_0xa132x2[_0x4e14[395]][_0x4e14[3239]](_0xa132x4[_0x4e14[131]],!0);_0xa132x5[_0x4e14[62]](_0xa132x9);_0xa132x2=_0xa132x9[_0x4e14[284]](_0x4e14[1363]);_0xa132x5[_0x4e14[57]](_0x4e14[1363],_0xa132x2);_0xa132x9[_0x4e14[1390]](_0x4e14[1363]);};return _0xa132x5;};_0xa132x2[_0x4e14[3266]]=function(_0xa132x2,_0xa132x4,_0xa132x5){var _0xa132x9=_0xa132x4,_0xa132xa=this[_0x4e14[718]]();_0xa132x4[_0x4e14[301]]!=_0xa132xa?(_0xa132x9=_0xa132x4[_0x4e14[64]](_0xa132xa)[0],null!=_0xa132x9&&_0xa132x9[_0x4e14[265]]==_0xa132x4?(mxUtils[_0x4e14[3278]](_0xa132x9,!0),mxUtils[_0x4e14[3278]](_0xa132x9,!1),_0xa132x9[_0x4e14[265]][_0x4e14[266]](_0xa132x9)):_0xa132x9=null,_0xa132x5[_0x4e14[131]]=_0xa132x4[_0x4e14[511]](!0),_0xa132x4=_0xa132x5[_0x4e14[131]][_0x4e14[284]](_0x4e14[1363]),null!=_0xa132x4&&(_0xa132x5[_0x4e14[1945]](_0xa132x4),_0xa132x5[_0x4e14[131]][_0x4e14[1390]](_0x4e14[1363]))):_0xa132x5[_0x4e14[1945]](_0xa132x4[_0x4e14[284]](_0x4e14[1363]));if(null!=_0xa132x9){for(_0xa132x4=0;_0xa132x4<this[_0x4e14[3247]][_0x4e14[67]];_0xa132x4++){var _0xa132xa=this[_0x4e14[3247]][_0xa132x4],_0xa132x12=_0xa132x9[_0x4e14[284]](_0xa132xa);if(null!=_0xa132x12){_0xa132x9[_0x4e14[1390]](_0xa132xa);var _0xa132x13=_0xa132x2[_0x4e14[68]][_0xa132x12]||_0xa132x2[_0x4e14[1060]](_0xa132x12);null==_0xa132x13&&(_0xa132x12=_0xa132x2[_0x4e14[1362]](_0xa132x12),null!=_0xa132x12&&(_0xa132x13=(mxCodecRegistry[_0x4e14[3230]][_0xa132x12[_0x4e14[301]]]||this)[_0x4e14[1093]](_0xa132x2,_0xa132x12)));_0xa132x5[_0xa132xa]=_0xa132x13;};}};return _0xa132x9;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxGraphModel);_0xa132x2[_0x4e14[3256]]=function(_0xa132x2,_0xa132x4,_0xa132x5){var _0xa132x9=_0xa132x2[_0x4e14[395]][_0x4e14[55]](_0x4e14[813]);_0xa132x2[_0x4e14[3242]](_0xa132x4[_0x4e14[501]](),_0xa132x9);_0xa132x5[_0x4e14[62]](_0xa132x9);};_0xa132x2[_0x4e14[3274]]=function(_0xa132x2,_0xa132x4,_0xa132x5){_0x4e14[813]==_0xa132x4[_0x4e14[301]]?this[_0x4e14[3279]](_0xa132x2,_0xa132x4,_0xa132x5):mxObjectCodec[_0x4e14[202]][_0x4e14[3274]][_0x4e14[183]](this,arguments)};_0xa132x2[_0x4e14[3279]]=function(_0xa132x2,_0xa132x4,_0xa132x5){var _0xa132x9=null;for(_0xa132x4=_0xa132x4[_0x4e14[285]];null!=_0xa132x4;){var _0xa132xa=_0xa132x2[_0x4e14[3244]](_0xa132x4);null!=_0xa132xa&&null==_0xa132xa[_0x4e14[1197]]()&&(_0xa132x9=_0xa132xa);_0xa132x4=_0xa132x4[_0x4e14[287]];};null!=_0xa132x9&&_0xa132x5[_0x4e14[1927]](_0xa132x9);};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxRootChange,[_0x4e14[251],_0x4e14[257],_0x4e14[813]]);_0xa132x2[_0x4e14[3257]]=function(_0xa132x2,_0xa132x4,_0xa132x5){_0xa132x2[_0x4e14[3242]](_0xa132x4[_0x4e14[813]],_0xa132x5);return _0xa132x5;};_0xa132x2[_0x4e14[3266]]=function(_0xa132x2,_0xa132x4,_0xa132x5){if(null!=_0xa132x4[_0x4e14[285]]&&_0xa132x4[_0x4e14[285]][_0x4e14[288]]==mxConstants[_0x4e14[289]]){_0xa132x4=_0xa132x4[_0x4e14[511]](!0);var _0xa132x9=_0xa132x4[_0x4e14[285]];_0xa132x5[_0x4e14[813]]=_0xa132x2[_0x4e14[3244]](_0xa132x9,!1);_0xa132x5=_0xa132x9[_0x4e14[287]];_0xa132x9[_0x4e14[265]][_0x4e14[266]](_0xa132x9);for(_0xa132x9=_0xa132x5;null!=_0xa132x9;){_0xa132x5=_0xa132x9[_0x4e14[287]],_0xa132x2[_0x4e14[3244]](_0xa132x9),_0xa132x9[_0x4e14[265]][_0x4e14[266]](_0xa132x9),_0xa132x9=_0xa132x5};};return _0xa132x4;};_0xa132x2[_0x4e14[3268]]=function(_0xa132x2,_0xa132x4,_0xa132x5){_0xa132x5[_0x4e14[257]]=_0xa132x5[_0x4e14[813]];return _0xa132x5;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxChildChange,[_0x4e14[251],_0x4e14[247],_0x4e14[1982]],[_0x4e14[1101],_0x4e14[257]]);_0xa132x2[_0x4e14[3254]]=function(_0xa132x2,_0xa132x4,_0xa132x5,_0xa132x9){return _0x4e14[247]==_0xa132x4&&(null!=_0xa132x2[_0x4e14[257]]|| !_0xa132x9)?!0:0<=mxUtils[_0x4e14[2]](this[_0x4e14[3247]],_0xa132x4)};_0xa132x2[_0x4e14[3257]]=function(_0xa132x2,_0xa132x4,_0xa132x5){this[_0x4e14[3254]](_0xa132x4,_0x4e14[247],_0xa132x4[_0x4e14[247]],!0)?_0xa132x5[_0x4e14[57]](_0x4e14[247],_0xa132x2[_0x4e14[1103]](_0xa132x4[_0x4e14[247]])):_0xa132x2[_0x4e14[3242]](_0xa132x4[_0x4e14[247]],_0xa132x5);return _0xa132x5;};_0xa132x2[_0x4e14[3266]]=function(_0xa132x2,_0xa132x4,_0xa132x5){if(null!=_0xa132x4[_0x4e14[285]]&&_0xa132x4[_0x4e14[285]][_0x4e14[288]]==mxConstants[_0x4e14[289]]){_0xa132x4=_0xa132x4[_0x4e14[511]](!0);var _0xa132x9=_0xa132x4[_0x4e14[285]];_0xa132x5[_0x4e14[247]]=_0xa132x2[_0x4e14[3244]](_0xa132x9,!1);_0xa132x5=_0xa132x9[_0x4e14[287]];_0xa132x9[_0x4e14[265]][_0x4e14[266]](_0xa132x9);for(_0xa132x9=_0xa132x5;null!=_0xa132x9;){_0xa132x5=_0xa132x9[_0x4e14[287]];if(_0xa132x9[_0x4e14[288]]==mxConstants[_0x4e14[289]]){var _0xa132xa=_0xa132x9[_0x4e14[284]](_0x4e14[1363]);null==_0xa132x2[_0x4e14[1060]](_0xa132xa)&&_0xa132x2[_0x4e14[3244]](_0xa132x9);};_0xa132x9[_0x4e14[265]][_0x4e14[266]](_0xa132x9);_0xa132x9=_0xa132x5;};}else {_0xa132x9=_0xa132x4[_0x4e14[284]](_0x4e14[247]),_0xa132x5[_0x4e14[247]]=_0xa132x2[_0x4e14[3236]](_0xa132x9)};return _0xa132x4;};_0xa132x2[_0x4e14[3268]]=function(_0xa132x2,_0xa132x4,_0xa132x5){_0xa132x5[_0x4e14[247]][_0x4e14[1101]]=_0xa132x5[_0x4e14[257]];_0xa132x5[_0x4e14[257]]=_0xa132x5[_0x4e14[1101]];_0xa132x5[_0x4e14[1982]]=_0xa132x5[_0x4e14[1983]];return _0xa132x5;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxTerminalChange,[_0x4e14[251],_0x4e14[257]],[_0x4e14[246],_0x4e14[1984]]);_0xa132x2[_0x4e14[3268]]=function(_0xa132x2,_0xa132x4,_0xa132x5){_0xa132x5[_0x4e14[257]]=_0xa132x5[_0x4e14[1984]];return _0xa132x5;};return _0xa132x2;}());var mxGenericChangeCodec=function(_0xa132x2,_0xa132x3){var _0xa132x4= new mxObjectCodec(_0xa132x2,[_0x4e14[251],_0x4e14[257]],[_0x4e14[246]]);_0xa132x4[_0x4e14[3268]]=function(_0xa132x2,_0xa132x4,_0xa132xa){mxUtils[_0x4e14[1331]](_0xa132xa[_0x4e14[246]])&&(_0xa132xa[_0x4e14[246]]=_0xa132x2[_0x4e14[3244]](_0xa132xa[_0x4e14[246]],!1));_0xa132xa[_0x4e14[257]]=_0xa132xa[_0xa132x3];return _0xa132xa;};return _0xa132x4;};mxCodecRegistry[_0x4e14[3234]](mxGenericChangeCodec( new mxValueChange,_0x4e14[131]));mxCodecRegistry[_0x4e14[3234]](mxGenericChangeCodec( new mxStyleChange,_0x4e14[124]));mxCodecRegistry[_0x4e14[3234]](mxGenericChangeCodec( new mxGeometryChange,_0x4e14[256]));mxCodecRegistry[_0x4e14[3234]](mxGenericChangeCodec( new mxCollapseChange,_0x4e14[1985]));mxCodecRegistry[_0x4e14[3234]](mxGenericChangeCodec( new mxVisibleChange,_0x4e14[189]));mxCodecRegistry[_0x4e14[3234]](mxGenericChangeCodec( new mxCellAttributeChange,_0x4e14[131]));mxCodecRegistry[_0x4e14[3234]](function(){return  new mxObjectCodec( new mxGraph,_0x4e14[3280][_0x4e14[224]](_0x4e14[185]))}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxGraphView);_0xa132x2[_0x4e14[514]]=function(_0xa132x2,_0xa132x4){return this[_0x4e14[3242]](_0xa132x2,_0xa132x4,_0xa132x4[_0x4e14[1179]][_0x4e14[502]]()[_0x4e14[501]]())};_0xa132x2[_0x4e14[3242]]=function(_0xa132x2,_0xa132x4,_0xa132x5){var _0xa132x9=_0xa132x4[_0x4e14[1179]][_0x4e14[502]](),_0xa132xa=_0xa132x4[_0x4e14[248]](_0xa132x5),_0xa132x12=_0xa132x9[_0x4e14[1197]](_0xa132x5);if(null==_0xa132x12||null!=_0xa132xa){var _0xa132x13=_0xa132x9[_0x4e14[262]](_0xa132x5),_0xa132x14=_0xa132x4[_0x4e14[1179]][_0x4e14[1198]](_0xa132x5),_0xa132x15=null;_0xa132x12==_0xa132x9[_0x4e14[501]]()?_0xa132x15=_0x4e14[3281]:null==_0xa132x12?_0xa132x15=_0x4e14[1179]:_0xa132x9[_0x4e14[250]](_0xa132x5)?_0xa132x15=_0x4e14[1989]:0<_0xa132x13&&null!=_0xa132x14?_0xa132x15=_0x4e14[1504]:_0xa132x9[_0x4e14[1193]](_0xa132x5)&&(_0xa132x15=_0x4e14[1988]);if(null!=_0xa132x15){var _0xa132x16=_0xa132x2[_0x4e14[395]][_0x4e14[55]](_0xa132x15);null!=_0xa132x4[_0x4e14[1179]][_0x4e14[2183]](_0xa132x5)&&(_0xa132x16[_0x4e14[57]](_0x4e14[685],_0xa132x4[_0x4e14[1179]][_0x4e14[2183]](_0xa132x5)),_0xa132x4[_0x4e14[1179]][_0x4e14[2186]](_0xa132x5)&&_0xa132x16[_0x4e14[57]](_0x4e14[1428],!0));if(null==_0xa132x12){var _0xa132x17=_0xa132x4[_0x4e14[517]]();null!=_0xa132x17&&(_0xa132x16[_0x4e14[57]](_0x4e14[235],Math[_0x4e14[488]](_0xa132x17[_0x4e14[235]])),_0xa132x16[_0x4e14[57]](_0x4e14[236],Math[_0x4e14[488]](_0xa132x17[_0x4e14[236]])),_0xa132x16[_0x4e14[57]](_0x4e14[117],Math[_0x4e14[488]](_0xa132x17[_0x4e14[117]])),_0xa132x16[_0x4e14[57]](_0x4e14[119],Math[_0x4e14[488]](_0xa132x17[_0x4e14[119]])));_0xa132x16[_0x4e14[57]](_0x4e14[255],_0xa132x4[_0x4e14[255]]);}else {if(null!=_0xa132xa&&null!=_0xa132x14){for(_0xa132x17 in _0xa132xa[_0x4e14[124]]){_0xa132x12=_0xa132xa[_0x4e14[124]][_0xa132x17],_0x4e14[279]== typeof _0xa132x12&&_0x4e14[194]== typeof _0xa132x12&&(_0xa132x12=mxStyleRegistry[_0x4e14[718]](_0xa132x12)),null!=_0xa132x12&&(_0x4e14[279]!= typeof _0xa132x12&&_0x4e14[194]!= typeof _0xa132x12)&&_0xa132x16[_0x4e14[57]](_0xa132x17,_0xa132x12)};_0xa132x12=_0xa132xa[_0x4e14[439]];if(null!=_0xa132x12&&0<_0xa132x12[_0x4e14[67]]){_0xa132x14=Math[_0x4e14[488]](_0xa132x12[0][_0x4e14[235]])+_0x4e14[537]+Math[_0x4e14[488]](_0xa132x12[0][_0x4e14[236]]);for(_0xa132x17=1;_0xa132x17<_0xa132x12[_0x4e14[67]];_0xa132x17++){_0xa132x14+=_0x4e14[185]+Math[_0x4e14[488]](_0xa132x12[_0xa132x17][_0x4e14[235]])+_0x4e14[537]+Math[_0x4e14[488]](_0xa132x12[_0xa132x17][_0x4e14[236]])};_0xa132x16[_0x4e14[57]](_0x4e14[1525],_0xa132x14);}else {_0xa132x16[_0x4e14[57]](_0x4e14[235],Math[_0x4e14[488]](_0xa132xa[_0x4e14[235]])),_0xa132x16[_0x4e14[57]](_0x4e14[236],Math[_0x4e14[488]](_0xa132xa[_0x4e14[236]])),_0xa132x16[_0x4e14[57]](_0x4e14[117],Math[_0x4e14[488]](_0xa132xa[_0x4e14[117]])),_0xa132x16[_0x4e14[57]](_0x4e14[119],Math[_0x4e14[488]](_0xa132xa[_0x4e14[119]]))};_0xa132x17=_0xa132xa[_0x4e14[2079]];null!=_0xa132x17&&(0!=_0xa132x17[_0x4e14[235]]&&_0xa132x16[_0x4e14[57]](_0x4e14[1126],Math[_0x4e14[488]](_0xa132x17[_0x4e14[235]])),0!=_0xa132x17[_0x4e14[236]]&&_0xa132x16[_0x4e14[57]](_0x4e14[1125],Math[_0x4e14[488]](_0xa132x17[_0x4e14[236]])));}};for(_0xa132x17=0;_0xa132x17<_0xa132x13;_0xa132x17++){_0xa132xa=this[_0x4e14[3242]](_0xa132x2,_0xa132x4,_0xa132x9[_0x4e14[263]](_0xa132x5,_0xa132x17)),null!=_0xa132xa&&_0xa132x16[_0x4e14[62]](_0xa132xa)};};};return _0xa132x16;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxStylesheet);_0xa132x2[_0x4e14[514]]=function(_0xa132x2,_0xa132x4){var _0xa132x5=_0xa132x2[_0x4e14[395]][_0x4e14[55]](this[_0x4e14[718]]()),_0xa132x9;for(_0xa132x9 in _0xa132x4[_0x4e14[2054]]){var _0xa132xa=_0xa132x4[_0x4e14[2054]][_0xa132x9],_0xa132x12=_0xa132x2[_0x4e14[395]][_0x4e14[55]](_0x4e14[99]);if(null!=_0xa132x9){_0xa132x12[_0x4e14[57]](_0x4e14[3069],_0xa132x9);for(var _0xa132x13 in _0xa132xa){var _0xa132x14=this[_0x4e14[3282]](_0xa132x13,_0xa132xa[_0xa132x13]);if(null!=_0xa132x14){var _0xa132x15=_0xa132x2[_0x4e14[395]][_0x4e14[55]](_0x4e14[99]);_0xa132x15[_0x4e14[57]](_0x4e14[131],_0xa132x14);_0xa132x15[_0x4e14[57]](_0x4e14[3069],_0xa132x13);_0xa132x12[_0x4e14[62]](_0xa132x15);};};0<_0xa132x12[_0x4e14[271]][_0x4e14[67]]&&_0xa132x5[_0x4e14[62]](_0xa132x12);};};return _0xa132x5;};_0xa132x2[_0x4e14[3282]]=function(_0xa132x2,_0xa132x4){var _0xa132x5= typeof _0xa132x4;_0x4e14[279]==_0xa132x5?_0xa132x4=mxStyleRegistry[_0x4e14[718]](style[j]):_0x4e14[194]==_0xa132x5&&(_0xa132x4=null);return _0xa132x4;};_0xa132x2[_0x4e14[1093]]=function(_0xa132x2,_0xa132x4,_0xa132x5){_0xa132x5=_0xa132x5|| new this[_0x4e14[3231]][_0x4e14[196]];var _0xa132x9=_0xa132x4[_0x4e14[284]](_0x4e14[1363]);null!=_0xa132x9&&(_0xa132x2[_0x4e14[68]][_0xa132x9]=_0xa132x5);for(_0xa132x4=_0xa132x4[_0x4e14[285]];null!=_0xa132x4;){if(!this[_0x4e14[3273]](_0xa132x2,_0xa132x4,_0xa132x5)&&_0x4e14[99]==_0xa132x4[_0x4e14[301]]&&(_0xa132x9=_0xa132x4[_0x4e14[284]](_0x4e14[3069]),null!=_0xa132x9)){var _0xa132xa=_0xa132x4[_0x4e14[284]](_0x4e14[1284]),_0xa132x12=null!=_0xa132xa?mxUtils[_0x4e14[238]](_0xa132x5[_0x4e14[2054]][_0xa132xa]):null;null==_0xa132x12&&(null!=_0xa132xa&&mxLog[_0x4e14[283]](_0x4e14[3283]+_0xa132xa+_0x4e14[3284]),_0xa132x12={});for(_0xa132xa=_0xa132x4[_0x4e14[285]];null!=_0xa132xa;){if(_0xa132xa[_0x4e14[288]]==mxConstants[_0x4e14[289]]){var _0xa132x13=_0xa132xa[_0x4e14[284]](_0x4e14[3069]);if(_0x4e14[99]==_0xa132xa[_0x4e14[301]]){var _0xa132x14=mxUtils[_0x4e14[329]](_0xa132xa),_0xa132x15=null;null!=_0xa132x14&&0<_0xa132x14[_0x4e14[67]]?_0xa132x15=mxUtils[_0x4e14[1545]](_0xa132x14):(_0xa132x15=_0xa132xa[_0x4e14[284]](_0x4e14[131]),mxUtils[_0x4e14[1946]](_0xa132x15)&&(_0xa132x15=parseFloat(_0xa132x15)));null!=_0xa132x15&&(_0xa132x12[_0xa132x13]=_0xa132x15);}else {_0x4e14[205]==_0xa132xa[_0x4e14[301]]&& delete _0xa132x12[_0xa132x13]};};_0xa132xa=_0xa132xa[_0x4e14[287]];};_0xa132x5[_0x4e14[2074]](_0xa132x9,_0xa132x12);};_0xa132x4=_0xa132x4[_0x4e14[287]];};return _0xa132x5;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxDefaultKeyHandler);_0xa132x2[_0x4e14[514]]=function(_0xa132x2,_0xa132x4){return null};_0xa132x2[_0x4e14[1093]]=function(_0xa132x2,_0xa132x4,_0xa132x5){if(null!=_0xa132x5){for(_0xa132x4=_0xa132x4[_0x4e14[285]];null!=_0xa132x4;){if(!this[_0x4e14[3273]](_0xa132x2,_0xa132x4,_0xa132x5)&&_0x4e14[99]==_0xa132x4[_0x4e14[301]]){var _0xa132x9=_0xa132x4[_0x4e14[284]](_0x4e14[3069]),_0xa132xa=_0xa132x4[_0x4e14[284]](_0x4e14[892]),_0xa132x12=_0xa132x4[_0x4e14[284]](_0x4e14[2207]);_0xa132x5[_0x4e14[3063]](_0xa132x9,_0xa132xa,_0xa132x12);};_0xa132x4=_0xa132x4[_0x4e14[287]];}};return _0xa132x5;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxDefaultToolbar);_0xa132x2[_0x4e14[514]]=function(_0xa132x2,_0xa132x4){return null};_0xa132x2[_0x4e14[1093]]=function(_0xa132x2,_0xa132x4,_0xa132x5){if(null!=_0xa132x5){var _0xa132x9=_0xa132x5[_0x4e14[3061]];for(_0xa132x4=_0xa132x4[_0x4e14[285]];null!=_0xa132x4;){if(_0xa132x4[_0x4e14[288]]==mxConstants[_0x4e14[289]]&&!this[_0x4e14[3273]](_0xa132x2,_0xa132x4,_0xa132x5)){if(_0x4e14[3072]==_0xa132x4[_0x4e14[301]]){_0xa132x5[_0x4e14[1051]]()}else {if(_0x4e14[345]==_0xa132x4[_0x4e14[301]]){_0xa132x5[_0x4e14[3082]][_0x4e14[1052]]()}else {if(_0x4e14[1054]==_0xa132x4[_0x4e14[301]]){_0xa132x5[_0x4e14[3082]][_0x4e14[1053]]()}else {if(_0x4e14[99]==_0xa132x4[_0x4e14[301]]){var _0xa132xa=_0xa132x4[_0x4e14[284]](_0x4e14[3069]),_0xa132xa=mxResources[_0x4e14[203]](_0xa132xa)||_0xa132xa,_0xa132x12=_0xa132x4[_0x4e14[284]](_0x4e14[2916]),_0xa132x13=_0xa132x4[_0x4e14[284]](_0x4e14[3285]),_0xa132x14=_0xa132x4[_0x4e14[284]](_0x4e14[892]),_0xa132x15=_0xa132x4[_0x4e14[284]](_0x4e14[3286]),_0xa132x16=_0xa132x4[_0x4e14[284]](_0x4e14[3231]),_0xa132x17=_0x4e14[468]!=_0xa132x4[_0x4e14[284]](_0x4e14[3287]),_0xa132x18=mxUtils[_0x4e14[329]](_0xa132x4),_0xa132x19=null;if(null!=_0xa132x14){_0xa132x19=_0xa132x5[_0x4e14[1025]](_0xa132xa,_0xa132x12,_0xa132x14,_0xa132x13)}else {if(null!=_0xa132x15){var _0xa132x1a=mxUtils[_0x4e14[1545]](_0xa132x18),_0xa132x19=_0xa132x5[_0x4e14[1048]](_0xa132xa,_0xa132x12,_0xa132x15,_0xa132x13,_0xa132x1a)}else {if(null!=_0xa132x16||null!=_0xa132x18&&0<_0xa132x18[_0x4e14[67]]){_0xa132x19=_0xa132x9[_0x4e14[3118]][_0xa132x16],_0xa132x16=_0xa132x4[_0x4e14[284]](_0x4e14[124]),null!=_0xa132x19&&null!=_0xa132x16&&(_0xa132x19=_0xa132x19[_0x4e14[238]](),_0xa132x19[_0x4e14[475]](_0xa132x16)),_0xa132x16=null,null!=_0xa132x18&&0<_0xa132x18[_0x4e14[67]]&&(_0xa132x16=mxUtils[_0x4e14[1545]](_0xa132x18)),_0xa132x19=_0xa132x5[_0x4e14[3087]](_0xa132xa,_0xa132x12,_0xa132x19,_0xa132x13,_0xa132x16,_0xa132x17)}else {if(_0xa132x13=mxUtils[_0x4e14[1540]](_0xa132x4),0<_0xa132x13[_0x4e14[67]]){if(null==_0xa132x12){_0xa132x16=_0xa132x5[_0x4e14[1038]](_0xa132xa);for(_0xa132xa=0;_0xa132xa<_0xa132x13[_0x4e14[67]];_0xa132xa++){_0xa132x17=_0xa132x13[_0xa132xa],_0x4e14[3072]==_0xa132x17[_0x4e14[301]]?_0xa132x5[_0x4e14[972]](_0xa132x16,_0x4e14[3288]):_0x4e14[99]==_0xa132x17[_0x4e14[301]]&&(_0xa132x12=_0xa132x17[_0x4e14[284]](_0x4e14[3069]),_0xa132x17=_0xa132x17[_0x4e14[284]](_0x4e14[892]),_0xa132x5[_0x4e14[3085]](_0xa132x16,_0xa132x12,_0xa132x17))};}else {var _0xa132x1b=null,_0xa132x1c=_0xa132x5[_0x4e14[3087]](_0xa132xa,_0xa132x12,function(){var _0xa132x2=_0xa132x9[_0x4e14[3118]][_0xa132x1b[_0x4e14[131]]];if(null!=_0xa132x2){var _0xa132x2=_0xa132x2[_0x4e14[238]](),_0xa132x3=_0xa132x1b[_0x4e14[1040]][_0xa132x1b[_0x4e14[1039]]][_0x4e14[3289]];null!=_0xa132x3&&_0xa132x2[_0x4e14[475]](_0xa132x3);return _0xa132x2;};mxLog[_0x4e14[283]](_0x4e14[3290]+_0xa132x2+_0x4e14[3291]);return null;},null,null,_0xa132x17),_0xa132x1b=_0xa132x5[_0x4e14[970]]();mxEvent[_0x4e14[169]](_0xa132x1b,_0x4e14[826],function(){_0xa132x5[_0x4e14[3082]][_0x4e14[1047]](_0xa132x1c,function(_0xa132x2){_0xa132x2=mxUtils[_0x4e14[2196]](_0xa132x9[_0x4e14[1179]][_0x4e14[526]],mxEvent[_0x4e14[731]](_0xa132x2),mxEvent[_0x4e14[733]](_0xa132x2));return _0xa132x9[_0x4e14[817]](null,_0xa132x1a(),_0xa132x2[_0x4e14[235]],_0xa132x2[_0x4e14[236]]);});_0xa132x5[_0x4e14[3082]][_0x4e14[1023]]= !1;});for(_0xa132xa=0;_0xa132xa<_0xa132x13[_0x4e14[67]];_0xa132xa++){_0xa132x17=_0xa132x13[_0xa132xa],_0x4e14[3072]==_0xa132x17[_0x4e14[301]]?_0xa132x5[_0x4e14[972]](_0xa132x1b,_0x4e14[3288]):_0x4e14[99]==_0xa132x17[_0x4e14[301]]&&(_0xa132x12=_0xa132x17[_0x4e14[284]](_0x4e14[3069]),_0xa132x18=_0xa132x17[_0x4e14[284]](_0x4e14[3231]),_0xa132x5[_0x4e14[972]](_0xa132x1b,_0xa132x12,_0xa132x18||_0xa132x16)[_0x4e14[3289]]=_0xa132x17[_0x4e14[284]](_0x4e14[124]))};}}}}};null!=_0xa132x19&&(_0xa132x16=_0xa132x4[_0x4e14[284]](_0x4e14[1363]),null!=_0xa132x16&&0<_0xa132x16[_0x4e14[67]]&&_0xa132x19[_0x4e14[57]](_0x4e14[1363],_0xa132x16));}}}}};_0xa132x4=_0xa132x4[_0x4e14[287]];};};return _0xa132x5;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxDefaultPopupMenu);_0xa132x2[_0x4e14[514]]=function(_0xa132x2,_0xa132x4){return null};_0xa132x2[_0x4e14[1093]]=function(_0xa132x2,_0xa132x4,_0xa132x5){var _0xa132x9=_0xa132x4[_0x4e14[64]](_0x4e14[3277])[0];null!=_0xa132x9?this[_0x4e14[3273]](_0xa132x2,_0xa132x9,_0xa132x5):null!=_0xa132x5&&(_0xa132x5[_0x4e14[3064]]=_0xa132x4);return _0xa132x5;};return _0xa132x2;}());mxCodecRegistry[_0x4e14[3234]](function(){var _0xa132x2= new mxObjectCodec( new mxEditor,_0x4e14[3292][_0x4e14[224]](_0x4e14[185]));_0xa132x2[_0x4e14[3268]]=function(_0xa132x2,_0xa132x4,_0xa132x5){_0xa132x2=_0xa132x4[_0x4e14[284]](_0x4e14[2075]);null!=_0xa132x2&&(_0xa132x4[_0x4e14[1390]](_0x4e14[2075]),_0xa132x5[_0x4e14[2075]]=_0xa132x5[_0x4e14[3118]][_0xa132x2]);_0xa132x2=_0xa132x4[_0x4e14[284]](_0x4e14[3120]);null!=_0xa132x2&&(_0xa132x4[_0x4e14[1390]](_0x4e14[3120]),_0xa132x5[_0x4e14[3120]]=_0xa132x5[_0x4e14[3118]][_0xa132x2]);return _0xa132x5;};_0xa132x2[_0x4e14[3274]]=function(_0xa132x2,_0xa132x4,_0xa132x5){if(_0x4e14[3293]==_0xa132x4[_0x4e14[301]]){if(_0x4e14[3118]==_0xa132x4[_0x4e14[284]](_0x4e14[3069])){this[_0x4e14[3294]](_0xa132x2,_0xa132x4,_0xa132x5);return;}}else {if(_0x4e14[3295]==_0xa132x4[_0x4e14[301]]){this[_0x4e14[3296]](_0xa132x2,_0xa132x4,_0xa132x5);return;}};mxObjectCodec[_0x4e14[202]][_0x4e14[3274]][_0x4e14[183]](this,arguments);};_0xa132x2[_0x4e14[3296]]=function(_0xa132x2,_0xa132x4,_0xa132x5){for(_0xa132x2=_0xa132x4[_0x4e14[285]];null!=_0xa132x2;){if(_0x4e14[99]==_0xa132x2[_0x4e14[301]]){_0xa132x4=_0xa132x2[_0x4e14[284]](_0x4e14[3069]);var _0xa132x9=_0xa132x2[_0x4e14[284]](_0x4e14[980]),_0xa132xa=_0xa132x2[_0x4e14[284]](_0x4e14[124]),_0xa132x12=null;if(null!=_0xa132x9){_0xa132x12=document[_0x4e14[1362]](_0xa132x9),null!=_0xa132x12&&null!=_0xa132xa&&(_0xa132x12[_0x4e14[124]][_0x4e14[103]]+=_0x4e14[471]+_0xa132xa)}else {var _0xa132x9=parseInt(_0xa132x2[_0x4e14[284]](_0x4e14[235])),_0xa132x13=parseInt(_0xa132x2[_0x4e14[284]](_0x4e14[236])),_0xa132x14=_0xa132x2[_0x4e14[284]](_0x4e14[117]),_0xa132x15=_0xa132x2[_0x4e14[284]](_0x4e14[119]),_0xa132x12=document[_0x4e14[55]](_0x4e14[485]);_0xa132x12[_0x4e14[124]][_0x4e14[103]]=_0xa132xa;( new mxWindow(mxResources[_0x4e14[203]](_0xa132x4)||_0xa132x4,_0xa132x12,_0xa132x9,_0xa132x13,_0xa132x14,_0xa132x15,!1,!0))[_0x4e14[175]](!0);};_0x4e14[1179]==_0xa132x4?_0xa132x5[_0x4e14[3202]](_0xa132x12):_0x4e14[3082]==_0xa132x4?_0xa132x5[_0x4e14[3204]](_0xa132x12):_0x4e14[924]==_0xa132x4?_0xa132x5[_0x4e14[3208]](_0xa132x12):_0x4e14[879]==_0xa132x4?_0xa132x5[_0x4e14[3205]](_0xa132x12):_0x4e14[201]==_0xa132x4&&_0xa132x5[_0x4e14[3297]](_0xa132x12);}else {_0x4e14[3298]==_0xa132x2[_0x4e14[301]]?mxResources[_0x4e14[99]](_0xa132x2[_0x4e14[284]](_0x4e14[3299])):_0x4e14[94]==_0xa132x2[_0x4e14[301]]&&mxClient[_0x4e14[54]](_0x4e14[94],_0xa132x2[_0x4e14[284]](_0x4e14[298]))};_0xa132x2=_0xa132x2[_0x4e14[287]];}};_0xa132x2[_0x4e14[3294]]=function(_0xa132x2,_0xa132x4,_0xa132x5){null==_0xa132x5[_0x4e14[3118]]&&(_0xa132x5[_0x4e14[3118]]=[]);_0xa132x4=mxUtils[_0x4e14[1540]](_0xa132x4);for(var _0xa132x9=0;_0xa132x9<_0xa132x4[_0x4e14[67]];_0xa132x9++){for(var _0xa132xa=_0xa132x4[_0xa132x9][_0x4e14[284]](_0x4e14[3069]),_0xa132x12=_0xa132x4[_0xa132x9][_0x4e14[285]];null!=_0xa132x12&&1!=_0xa132x12[_0x4e14[288]];){_0xa132x12=_0xa132x12[_0x4e14[287]]};null!=_0xa132x12&&(_0xa132x5[_0x4e14[3118]][_0xa132xa]=_0xa132x2[_0x4e14[3244]](_0xa132x12));};};return _0xa132x2;}());
\ No newline at end of file
+var _0xa4d4=["\x32\x2E\x30\x2E\x30\x2E\x30","\x4D\x53\x49\x45","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x4D\x53\x49\x45\x20\x36","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x76","\x6F","\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F","\x4F\x70\x65\x72\x61\x2F","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x34\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x33\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x32\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x31\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x30\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x31\x2E","\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F","\x43\x68\x72\x6F\x6D\x65\x2F","\x46\x69\x72\x65\x66\x6F\x78\x2F","\x46\x69\x72\x65\x66\x6F\x78\x2F\x31\x2E","\x46\x69\x72\x65\x66\x6F\x78\x2F\x32\x2E","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F\x31\x2E","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F\x32\x2E","\x53\x65\x61\x4D\x6F\x6E\x6B\x65\x79\x2F","\x53\x65\x61\x4D\x6F\x6E\x6B\x65\x79\x2F\x31\x2E","\x49\x63\x65\x61\x70\x65\x2F","\x49\x63\x65\x61\x70\x65\x2F\x31\x2E","\x53\x65\x61\x6D\x6F\x6E\x6B\x65\x79\x2F","\x47\x61\x6C\x65\x6F\x6E\x2F","\x45\x70\x69\x70\x68\x61\x6E\x79\x2F","\x47\x65\x63\x6B\x6F\x2F","\x43\x61\x6D\x69\x6E\x6F\x2F\x31\x2E","\x45\x70\x69\x70\x68\x61\x6E\x79\x2F\x32\x2E","\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x32\x2E","\x4D\x49\x43\x52\x4F\x53\x4F\x46\x54\x20\x49\x4E\x54\x45\x52\x4E\x45\x54\x20\x45\x58\x50\x4C\x4F\x52\x45\x52","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x61\x70\x70\x4E\x61\x6D\x65","\x4D\x41\x43\x49\x4E\x54\x4F\x53\x48","\x49\x50\x41\x44","\x49\x50\x4F\x44","\x49\x50\x48\x4F\x4E\x45","\x41\x4E\x44\x52\x4F\x49\x44","\x68\x74\x74\x70\x3A\x2F\x2F","\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x73\x3A\x2F\x2F","\x49\x53\x5F\x56\x4D\x4C","\x49\x53\x5F\x53\x56\x47","\x49\x53\x5F\x49\x45\x36","\x3C\x6C\x69\x6E\x6B\x20\x72\x65\x6C\x3D\x22","\x22\x20\x68\x72\x65\x66\x3D\x22","\x22\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x22\x49\x53\x4F\x2D\x38\x38\x35\x39\x2D\x31\x22\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x2F\x3E","\x77\x72\x69\x74\x65","\x6C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x61\x72\x73\x65\x74","\x49\x53\x4F\x2D\x38\x38\x35\x39\x2D\x31","\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x63\x73\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x68\x65\x61\x64","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65","\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22","\x22\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E","\x6C\x65\x6E\x67\x74\x68","\x6F\x62\x6A\x65\x63\x74\x73","\x6D\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x4C\x69\x73\x74","\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x4F\x50","\x49\x53\x5F\x4F\x54","\x43\x53\x53\x5F\x50\x52\x45\x46\x49\x58","\x4F","\x49\x53\x5F\x53\x46","\x49\x53\x5F\x47\x43","\x57\x65\x62\x6B\x69\x74","\x49\x53\x5F\x4D\x54","\x4D\x6F\x7A","\x49\x53\x5F\x49\x45","\x6D\x73","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x2E\x74\x78\x74","\x2F","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x62\x61\x73\x65\x50\x61\x74\x68","\x2E","\x69\x6D\x61\x67\x65\x42\x61\x73\x65\x50\x61\x74\x68","\x2F\x69\x6D\x61\x67\x65\x73","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x75\x73\x65\x72\x4C\x61\x6E\x67\x75\x61\x67\x65","\x64\x65\x66\x61\x75\x6C\x74\x4C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x63\x73\x73\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2E\x63\x73\x73","\x6C\x61\x6E\x67\x75\x61\x67\x65\x73","\x75\x72\x6E\x3A\x73\x63\x68\x65\x6D\x61\x73\x2D\x6D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2D\x63\x6F\x6D\x3A\x76\x6D\x6C","\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C","\x61\x64\x64","\x6E\x61\x6D\x65\x73\x70\x61\x63\x65\x73","\x75\x72\x6E\x3A\x73\x63\x68\x65\x6D\x61\x73\x2D\x6D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2D\x63\x6F\x6D\x3A\x6F\x66\x66\x69\x63\x65\x3A\x6F\x66\x66\x69\x63\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65\x53\x68\x65\x65\x74","\x63\x73\x73\x54\x65\x78\x74","\x76\x5C\x3A\x2A\x7B\x62\x65\x68\x61\x76\x69\x6F\x72\x3A\x75\x72\x6C\x28\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C\x29\x7D\x6F\x5C\x3A\x2A\x7B\x62\x65\x68\x61\x76\x69\x6F\x72\x3A\x75\x72\x6C\x28\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C\x29\x7D","\x2F\x63\x73\x73\x2F\x65\x78\x70\x6C\x6F\x72\x65\x72\x2E\x63\x73\x73","\x6F\x6E\x75\x6E\x6C\x6F\x61\x64","\x64\x69\x73\x70\x6F\x73\x65","\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6E\x74","\x43\x6F\x6E\x73\x6F\x6C\x65","","\x77\x69\x6E\x64\x6F\x77","\x62\x6F\x64\x79","\x63\x6F\x6E\x73\x6F\x6C\x65\x4E\x61\x6D\x65","\x20\x2D\x20\x6D\x78\x47\x72\x61\x70\x68\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x74\x61\x62\x6C\x65","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x74\x62\x6F\x64\x79","\x74\x72","\x74\x64","\x76\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x73\x74\x79\x6C\x65","\x74\x6F\x70","\x74\x65\x78\x74\x61\x72\x65\x61","\x72\x65\x61\x64\x4F\x6E\x6C\x79","\x74\x72\x75\x65","\x72\x65\x73\x69\x7A\x65","\x6E\x6F\x6E\x65","\x76\x61\x6C\x75\x65","\x62\x75\x66\x66\x65\x72","\x49\x53\x5F\x4E\x53","\x42\x61\x63\x6B\x43\x6F\x6D\x70\x61\x74","\x63\x6F\x6D\x70\x61\x74\x4D\x6F\x64\x65","\x39\x39\x25","\x33\x30\x70\x78","\x49\x6E\x66\x6F","\x69\x6E\x66\x6F","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x44\x4F\x4D","\x67\x65\x74\x49\x6E\x6E\x65\x72\x48\x74\x6D\x6C","\x64\x65\x62\x75\x67","\x54\x72\x61\x63\x65","\x54\x52\x41\x43\x45","\x54\x72\x61\x63\x69\x6E\x67\x20\x65\x6E\x61\x62\x6C\x65\x64","\x54\x72\x61\x63\x69\x6E\x67\x20\x64\x69\x73\x61\x62\x6C\x65\x64","\x43\x6F\x70\x79","\x63\x6F\x70\x79","\x61\x6C\x65\x72\x74","\x53\x68\x6F\x77","\x70\x6F\x70\x75\x70","\x43\x6C\x65\x61\x72","\x6E\x75\x6D\x62\x65\x72","\x69\x6E\x6E\x65\x72\x57\x69\x64\x74\x68","\x69\x6E\x6E\x65\x72\x48\x65\x69\x67\x68\x74","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x6D\x61\x78","\x73\x65\x74\x4D\x61\x78\x69\x6D\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x53\x63\x72\x6F\x6C\x6C\x61\x62\x6C\x65","\x73\x65\x74\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x43\x6C\x6F\x73\x61\x62\x6C\x65","\x64\x65\x73\x74\x72\x6F\x79\x4F\x6E\x43\x6C\x6F\x73\x65","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x78","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x39\x32\x70\x78","\x77\x72\x69\x74\x65\x6C\x6E","\x62\x75\x74\x74\x6F\x6E","\x63\x6C\x69\x63\x6B","\x69\x73\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x56\x69\x73\x69\x62\x6C\x65","\x69\x6E\x69\x74","\x45\x6E\x74\x65\x72\x69\x6E\x67\x20","\x67\x65\x74\x54\x69\x6D\x65","\x20\x28","\x20\x6D\x73\x29","\x4C\x65\x61\x76\x69\x6E\x67\x20","\x44\x45\x42\x55\x47","\x61\x70\x70\x6C\x79","\x57\x41\x52\x4E","\x20","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x35","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x68\x69\x64\x64\x65\x6E","\x76\x69\x73\x69\x62\x6C\x65","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x0A","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x49\x64","\x6F\x62\x6A\x65\x63\x74","\x46\x49\x45\x4C\x44\x5F\x4E\x41\x4D\x45","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x67\x65\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E\x4E\x61\x6D\x65","\x23","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x6C\x65\x61\x72","\x6D\x61\x70","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x65\x74","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65","\x67\x65\x74\x4B\x65\x79\x73","\x70\x75\x73\x68","\x67\x65\x74\x56\x61\x6C\x75\x65\x73","\x76\x69\x73\x69\x74","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2D","\x6C\x6F\x61\x64\x53\x70\x65\x63\x69\x61\x6C\x42\x75\x6E\x64\x6C\x65","\x5F","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x4E\x4F\x4E\x45","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x6C\x6F\x61\x64","\x69\x73\x52\x65\x61\x64\x79","\x67\x65\x74\x54\x65\x78\x74","\x70\x61\x72\x73\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x42\x75\x6E\x64\x6C\x65","\x73\x70\x6C\x69\x74","\x63\x68\x61\x72\x41\x74","\x3D","\x63\x68\x61\x72\x43\x6F\x64\x65\x41\x74","\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x45\x6E\x63\x6F\x64\x65\x64","\x25","\x72\x65\x70\x6C\x61\x63\x65","\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x7B","\x7D","\x6A\x6F\x69\x6E","\x78","\x79","\x65\x71\x75\x61\x6C\x73","\x63\x6C\x6F\x6E\x65","\x63\x61\x6C\x6C","\x73\x65\x74\x52\x65\x63\x74","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x6D\x69\x6E","\x67\x72\x6F\x77","\x67\x65\x74\x50\x6F\x69\x6E\x74","\x63\x65\x6C\x6C","\x63\x68\x69\x6C\x64","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x69\x73\x45\x64\x67\x65","\x6D\x6F\x64\x65\x6C","\x6E\x6F\x64\x65","\x73\x68\x61\x70\x65","\x73\x65\x74\x4F\x70\x61\x63\x69\x74\x79","\x73\x63\x61\x6C\x65","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x72\x65\x76\x69\x6F\x75\x73","\x72\x65\x64\x72\x61\x77","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x61\x73\x63\x61\x64\x65\x4F\x70\x61\x63\x69\x74\x79","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x67\x65\x74\x45\x64\x67\x65\x73","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x65\x72\x72\x6F\x72","\x63\x6C\x6F\x73\x65","\x2F\x65\x72\x72\x6F\x72\x2E\x67\x69\x66","\x63\x75\x72\x73\x6F\x72","\x63\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65\x43\x75\x72\x73\x6F\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x53\x74\x79\x6C\x65","\x67\x65\x74\x43\x6F\x6D\x70\x75\x74\x65\x64\x53\x74\x79\x6C\x65","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x53\x74\x79\x6C\x65","\x73\x63\x72\x6F\x6C\x6C","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x76\x61\x72\x20\x5F\x6D\x78\x4A\x61\x76\x61\x53\x63\x72\x69\x70\x74\x45\x78\x70\x72\x65\x73\x73\x69\x6F\x6E\x3D","\x6D\x65\x73\x73\x61\x67\x65","\x20\x77\x68\x69\x6C\x65\x20\x65\x76\x61\x6C\x75\x61\x74\x69\x6E\x67\x20","\x77\x61\x72\x6E","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x66\x69\x6E\x64\x4E\x6F\x64\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x66\x69\x6E\x64\x4E\x6F\x64\x65\x42\x79\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x2F\x2F\x2A\x5B\x40","\x3D\x27","\x27\x5D","\x73\x65\x6C\x65\x63\x74\x53\x69\x6E\x67\x6C\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x69\x74\x65\x72\x61\x74\x65\x4E\x65\x78\x74","\x65\x76\x61\x6C\x75\x61\x74\x65","\x6E\x61\x6D\x65","\x28","\x73\x70\x6C\x69\x63\x65","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x41\x63\x74\x69\x76\x65\x58\x4F\x62\x6A\x65\x63\x74","\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x44\x4F\x4D","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x61\x73\x79\x6E\x63","\x66\x61\x6C\x73\x65","\x6C\x6F\x61\x64\x58\x4D\x4C","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x70\x61\x72\x73\x65\x46\x72\x6F\x6D\x53\x74\x72\x69\x6E\x67","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x65\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x52\x61\x6E\x67\x65\x73","\x20\x20","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x54\x45\x58\x54","\x6E\x6F\x64\x65\x56\x61\x6C\x75\x65","\x3C","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x3D\x22","\x22","\x3E\x0A","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x3C\x2F","\x2F\x3E\x0A","\x70\x72\x65\x76\x69\x6F\x75\x73\x53\x69\x62\x6C\x69\x6E\x67","\x67\x65\x74\x54\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74","\x74\x72\x69\x6D","\x26\x61\x6D\x70\x3B","\x26\x71\x75\x6F\x74\x3B","\x26\x23\x33\x39\x3B","\x26\x6C\x74\x3B","\x26\x67\x74\x3B","\x26\x23\x78\x61\x3B","\x74\x61\x67\x55\x72\x6E","\x78\x6D\x6C","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x73\x65\x72\x69\x61\x6C\x69\x7A\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x3E","\x6F\x75\x74\x65\x72\x48\x54\x4D\x4C","\x2F\x3E","\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4E\x6F\x64\x65","\x62\x72","\x70","\x66\x69\x6C\x74\x65\x72","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x41\x6C\x70\x68\x61\x49\x6D\x61\x67\x65\x4C\x6F\x61\x64\x65\x72\x28\x73\x72\x63\x3D\x27","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66\x27\x2C\x20\x73\x69\x7A\x69\x6E\x67\x4D\x65\x74\x68\x6F\x64\x3D\x27\x73\x63\x61\x6C\x65\x27\x29","\x65\x78\x65\x63\x75\x74\x65","\x73\x70\x61\x6E","\x63\x6F\x6C\x6F\x72","\x62\x6C\x75\x65","\x74\x65\x78\x74\x44\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x70\x6F\x69\x6E\x74\x65\x72","\x70\x61\x64\x64\x69\x6E\x67\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x55\x6E\x69\x76\x65\x72\x73\x61\x6C\x58\x50\x43\x6F\x6E\x6E\x65\x63\x74","\x65\x6E\x61\x62\x6C\x65\x50\x72\x69\x76\x69\x6C\x65\x67\x65","\x50\x72\x69\x76\x69\x6C\x65\x67\x65\x4D\x61\x6E\x61\x67\x65\x72","\x73\x65\x63\x75\x72\x69\x74\x79","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x72\x65\x61\x64\x20\x66\x69\x6C\x65\x20\x64\x65\x6E\x69\x65\x64\x2E","\x6E\x73\x49\x4C\x6F\x63\x61\x6C\x46\x69\x6C\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x73","\x63\x72\x65\x61\x74\x65\x49\x6E\x73\x74\x61\x6E\x63\x65","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x66\x69\x6C\x65\x2F\x6C\x6F\x63\x61\x6C\x3B\x31","\x63\x6C\x61\x73\x73\x65\x73","\x69\x6E\x69\x74\x57\x69\x74\x68\x50\x61\x74\x68","\x65\x78\x69\x73\x74\x73","\x46\x69\x6C\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E","\x6E\x73\x49\x46\x69\x6C\x65\x49\x6E\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x66\x69\x6C\x65\x2D\x69\x6E\x70\x75\x74\x2D\x73\x74\x72\x65\x61\x6D\x3B\x31","\x6E\x73\x49\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x49\x6E\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x69\x6E\x70\x75\x74\x73\x74\x72\x65\x61\x6D\x3B\x31","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x65\x61\x64","\x53\x63\x72\x69\x70\x74\x69\x6E\x67\x2E\x46\x69\x6C\x65\x53\x79\x73\x74\x65\x6D\x4F\x62\x6A\x65\x63\x74","\x72\x65\x61\x64\x41\x6C\x6C","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x77\x72\x69\x74\x65\x20\x66\x69\x6C\x65\x20\x64\x65\x6E\x69\x65\x64\x2E","\x63\x72\x65\x61\x74\x65","\x6E\x73\x49\x46\x69\x6C\x65\x4F\x75\x74\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x66\x69\x6C\x65\x2D\x6F\x75\x74\x70\x75\x74\x2D\x73\x74\x72\x65\x61\x6D\x3B\x31","\x66\x6C\x75\x73\x68","\x69\x66\x72\x61\x6D\x65","\x73\x72\x63","\x63\x6F\x6E\x74\x65\x6E\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6F\x70\x65\x6E","\x66\x6F\x63\x75\x73","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x73\x61\x76\x65\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x20\x64\x65\x6E\x69\x65\x64\x2E","\x64\x6F\x63\x75\x6D\x65\x6E\x74","\x63\x6F\x6E\x74\x65\x6E\x74\x57\x69\x6E\x64\x6F\x77","\x53\x61\x76\x65\x41\x73","\x65\x78\x65\x63\x43\x6F\x6D\x6D\x61\x6E\x64","\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x44\x61\x74\x61","\x54\x65\x78\x74","\x73\x65\x74\x44\x61\x74\x61","\x6E\x73\x49\x43\x6C\x69\x70\x62\x6F\x61\x72\x64","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x77\x69\x64\x67\x65\x74\x2F\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x3B\x31","\x6E\x73\x49\x54\x72\x61\x6E\x73\x66\x65\x72\x61\x62\x6C\x65","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x77\x69\x64\x67\x65\x74\x2F\x74\x72\x61\x6E\x73\x66\x65\x72\x61\x62\x6C\x65\x3B\x31","\x74\x65\x78\x74\x2F\x75\x6E\x69\x63\x6F\x64\x65","\x61\x64\x64\x44\x61\x74\x61\x46\x6C\x61\x76\x6F\x72","\x6E\x73\x49\x53\x75\x70\x70\x6F\x72\x74\x73\x53\x74\x72\x69\x6E\x67","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x73\x75\x70\x70\x6F\x72\x74\x73\x2D\x73\x74\x72\x69\x6E\x67\x3B\x31","\x64\x61\x74\x61","\x73\x65\x74\x54\x72\x61\x6E\x73\x66\x65\x72\x44\x61\x74\x61","\x6B\x47\x6C\x6F\x62\x61\x6C\x43\x6C\x69\x70\x62\x6F\x61\x72\x64","\x47\x45\x54","\x73\x65\x6E\x64","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x20\x3D\x20\x5B\x6E\x75\x6C\x6C\x5D\x0A","\x20\x3D\x3E\x20\x5B\x46\x75\x6E\x63\x74\x69\x6F\x6E\x5D\x0A","\x20\x3D\x3E\x20\x5B","\x5D\x0A","\x20\x3D\x20","\x50\x49","\x61\x62\x73","\x63\x6F\x73","\x73\x69\x6E","\x73\x71\x72\x74","\x61\x74\x61\x6E\x32","\x63\x65\x69\x6C","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x67\x65\x74\x56\x61\x6C\x75\x65","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x4E\x4F\x4E\x45","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x4E\x4F\x52\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x57\x45\x53\x54","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x53\x4F\x55\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x45\x41\x53\x54","\x61\x62\x73\x6F\x6C\x75\x74\x65\x50\x6F\x69\x6E\x74\x73","\x70\x74\x53\x65\x67\x44\x69\x73\x74\x53\x71","\x76\x69\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x73","\x6F\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x53\x63\x72\x6F\x6C\x6C\x4F\x72\x69\x67\x69\x6E","\x67\x65\x74\x4F\x66\x66\x73\x65\x74","\x5E\x5B","\x5C\x73","\x5D\x2B","\x67","\x5B","\x5D\x2B\x24","\x72\x74\x72\x69\x6D","\x6C\x74\x72\x69\x6D","\x30\x78","\x30\x58","\x61\x6E\x69\x6D\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x73","\x66\x61\x64\x65\x4F\x75\x74","\x69\x73\x56\x6D\x6C","\x61\x6C\x70\x68\x61\x28\x6F\x70\x61\x63\x69\x74\x79\x3D","\x29","\x6F\x70\x61\x63\x69\x74\x79","\x43\x53\x53\x31\x43\x6F\x6D\x70\x61\x74","\x56\x4D\x4C\x5F\x50\x52\x45\x46\x49\x58","\x3A\x69\x6D\x61\x67\x65","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30","\x63\x6F\x6D\x70\x61\x72\x65","\x73\x6F\x72\x74","\x3B","\x69\x6E\x64\x65\x78\x4F\x66\x53\x74\x79\x6C\x65\x6E\x61\x6D\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x65\x74\x53\x74\x79\x6C\x65\x46\x6C\x61\x67","\x3D\x30","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x64\x69\x76","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x72\x6F\x75\x6E\x64","\x6C\x69\x6E\x65\x48\x65\x69\x67\x68\x74","\x4C\x49\x4E\x45\x5F\x48\x45\x49\x47\x48\x54","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x7A\x6F\x6F\x6D","\x31","\x67\x65\x74\x52\x6F\x6F\x74","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x69\x73\x45\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x64\x72\x61\x77\x50\x61\x6E\x65","\x6F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x4E\x53","\x63\x61\x6E\x76\x61\x73","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x67\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x65\x6E\x63\x6F\x64\x65","\x64\x65\x73\x74\x72\x6F\x79","\x50\x41\x47\x45\x5F\x46\x4F\x52\x4D\x41\x54\x5F\x41\x34\x5F\x50\x4F\x52\x54\x52\x41\x49\x54","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x63\x61\x6C\x65","\x66\x6C\x6F\x6F\x72","\x3C\x68\x74\x6D\x6C\x3E\x3C\x68\x65\x61\x64\x3E","\x62\x61\x73\x65","\x3C\x73\x74\x79\x6C\x65\x3E","\x73\x74\x79\x6C\x65\x53\x68\x65\x65\x74\x73","\x3C\x2F\x73\x74\x79\x6C\x65\x3E\x3C\x2F\x68\x65\x61\x64\x3E","\x3C\x62\x6F\x64\x79\x3E","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x3C\x2F\x62\x6F\x64\x79\x3E","\x3C\x68\x74\x6D\x6C\x3E","\x44\x49\x56","\x3C\x68\x74\x6D\x6C","\x3C\x68\x65\x61\x64\x3E","\x67\x65\x74\x4F\x75\x74\x65\x72\x48\x74\x6D\x6C","\x3C\x2F\x68\x65\x61\x64\x3E","\x3C\x2F\x68\x74\x6D\x6C\x3E","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x68\x6F\x77","\x70\x72\x69\x6E\x74","\x36\x33\x36\x70\x78","\x34\x36\x30\x70\x78","\x70\x72\x65","\x26\x6E\x62\x73\x70\x3B","\x3C\x62\x72\x3E","\x50\x6F\x70\x75\x70\x20\x57\x69\x6E\x64\x6F\x77","\x3C\x70\x72\x65\x3E","\x3C\x2F\x70\x72\x65","\x70\x61\x64\x64\x69\x6E\x67","\x32\x30\x70\x78","\x65\x72\x72\x6F\x72\x49\x6D\x61\x67\x65","\x76\x61\x6C\x69\x67\x6E","\x62\x6F\x74\x74\x6F\x6D","\x6D\x69\x64\x64\x6C\x65","\xA0","\x65\x72\x72\x6F\x72\x52\x65\x73\x6F\x75\x72\x63\x65","\x66\x6C\x6F\x61\x74\x3A\x72\x69\x67\x68\x74","\x63\x6C\x6F\x73\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x72\x61\x67\x4F\x66\x66\x73\x65\x74","\x54\x4F\x4F\x4C\x54\x49\x50\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4F\x46\x46\x53\x45\x54","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74\x73","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x46\x6F\x72\x45\x76\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x45\x6C\x65\x6D\x65\x6E\x74","\x65\x78\x61\x63\x74","\x66\x61\x73\x74\x65\x72","\x66\x61\x73\x74\x65\x73\x74","\x73\x76\x67","\x76\x6D\x6C","\x6D\x69\x78\x65\x64\x48\x74\x6D\x6C","\x70\x72\x65\x66\x65\x72\x48\x74\x6D\x6C","\x73\x74\x72\x69\x63\x74\x48\x74\x6D\x6C","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x32\x30\x30\x30\x2F\x73\x76\x67","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x6C\x69\x6E\x6B","\x67\x72\x61\x79","\x23\x30\x30\x46\x46\x30\x30","\x23\x46\x46\x30\x30\x30\x30","\x6D\x6F\x76\x65","\x64\x65\x66\x61\x75\x6C\x74","\x23\x30\x30\x30\x30\x46\x46","\x23\x30\x30\x39\x39\x46\x46","\x62\x6C\x61\x63\x6B","\x79\x65\x6C\x6C\x6F\x77","\x23\x30\x30\x46\x46\x46\x46","\x23\x30\x30\x33\x33\x46\x46","\x41\x72\x69\x61\x6C\x2C\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x50\x6F\x72\x74","\x74\x61\x72\x67\x65\x74\x50\x6F\x72\x74","\x70\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C","\x65\x78\x69\x74\x58","\x65\x78\x69\x74\x59","\x65\x78\x69\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x65\x6E\x74\x72\x79\x58","\x65\x6E\x74\x72\x79\x59","\x65\x6E\x74\x72\x79\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x66\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74\x44\x69\x72\x65\x63\x74\x69\x6F\x6E","\x73\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x73\x65\x70\x61\x72\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x73\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x61\x6C\x69\x67\x6E","\x6C\x61\x62\x65\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x65\x72\x74\x69\x63\x61\x6C\x4C\x61\x62\x65\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x6D\x61\x67\x65\x41\x73\x70\x65\x63\x74","\x69\x6D\x61\x67\x65\x41\x6C\x69\x67\x6E","\x69\x6D\x61\x67\x65\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x67\x6C\x61\x73\x73","\x69\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65\x57\x69\x64\x74\x68","\x69\x6D\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x69\x6D\x61\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x69\x6D\x61\x67\x65\x42\x6F\x72\x64\x65\x72","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x6E\x6F\x4C\x61\x62\x65\x6C","\x6E\x6F\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x61\x62\x65\x6C\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x6C\x61\x62\x65\x6C\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x6C\x61\x62\x65\x6C\x50\x61\x64\x64\x69\x6E\x67","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x68\x61\x70\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x49\x6D\x61\x67\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x47\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x70\x61\x63\x69\x6E\x67","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x57\x69\x64\x74\x68","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x48\x65\x69\x67\x68\x74","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x44\x69\x72\x65\x63\x74\x69\x6F\x6E","\x73\x68\x61\x64\x6F\x77","\x73\x65\x67\x6D\x65\x6E\x74","\x65\x6E\x64\x41\x72\x72\x6F\x77","\x73\x74\x61\x72\x74\x41\x72\x72\x6F\x77","\x65\x6E\x64\x53\x69\x7A\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x69\x6E\x65","\x65\x6E\x64\x46\x69\x6C\x6C","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x64\x61\x73\x68\x65\x64","\x64\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x61\x72\x63\x53\x69\x7A\x65","\x73\x6D\x6F\x6F\x74\x68","\x73\x6F\x75\x72\x63\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x70\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x73\x70\x61\x63\x69\x6E\x67","\x73\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x73\x70\x61\x63\x69\x6E\x67\x4C\x65\x66\x74","\x73\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x73\x70\x61\x63\x69\x6E\x67\x52\x69\x67\x68\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x65\x6C\x62\x6F\x77","\x66\x6F\x6E\x74\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x66\x6F\x6C\x64\x61\x62\x6C\x65","\x65\x64\x69\x74\x61\x62\x6C\x65","\x62\x65\x6E\x64\x61\x62\x6C\x65","\x6D\x6F\x76\x61\x62\x6C\x65","\x72\x65\x73\x69\x7A\x61\x62\x6C\x65","\x63\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x64\x65\x6C\x65\x74\x61\x62\x6C\x65","\x65\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x6F\x6F\x70\x53\x74\x79\x6C\x65","\x72\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x58","\x72\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x59","\x72\x65\x63\x74\x61\x6E\x67\x6C\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x64\x6F\x75\x62\x6C\x65\x45\x6C\x6C\x69\x70\x73\x65","\x72\x68\x6F\x6D\x62\x75\x73","\x6C\x69\x6E\x65","\x61\x72\x72\x6F\x77","\x6C\x61\x62\x65\x6C","\x63\x79\x6C\x69\x6E\x64\x65\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x61\x63\x74\x6F\x72","\x63\x6C\x6F\x75\x64","\x74\x72\x69\x61\x6E\x67\x6C\x65","\x68\x65\x78\x61\x67\x6F\x6E","\x63\x6C\x61\x73\x73\x69\x63","\x62\x6C\x6F\x63\x6B","\x6F\x76\x61\x6C","\x64\x69\x61\x6D\x6F\x6E\x64","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x63\x65\x6E\x74\x65\x72","\x72\x69\x67\x68\x74","\x6E\x6F\x72\x74\x68","\x73\x6F\x75\x74\x68","\x65\x61\x73\x74","\x77\x65\x73\x74","\x76\x65\x72\x74\x69\x63\x61\x6C","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x6F\x6F\x70\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x73\x69\x64\x65\x54\x6F\x53\x69\x64\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x74\x6F\x70\x54\x6F\x42\x6F\x74\x74\x6F\x6D\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x65\x6C\x6C\x69\x70\x73\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x65\x63\x74\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x68\x6F\x6D\x62\x75\x73\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x74\x72\x69\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x63\x6F\x6E\x73\x75\x6D\x65\x64","\x67\x65\x74\x4E\x61\x6D\x65","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x63\x6F\x6E\x73\x75\x6D\x65","\x65\x76\x74","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x69\x73\x53\x6F\x75\x72\x63\x65","\x67\x65\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x59","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x72\x65\x74\x75\x72\x6E\x56\x61\x6C\x75\x65","\x73\x65\x74\x45\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x65\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x65\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x65\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x67\x65\x74\x45\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x6F\x6E","\x66","\x72\x65\x6D\x6F\x76\x65\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6E\x74","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x75\x63\x68\x73\x74\x61\x72\x74","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x72\x65\x6C\x65\x61\x73\x65","\x65\x76\x65\x6E\x74","\x64\x65\x74\x61\x69\x6C","\x77\x68\x65\x65\x6C\x44\x65\x6C\x74\x61","\x6D\x6F\x75\x73\x65\x77\x68\x65\x65\x6C","\x44\x4F\x4D\x4D\x6F\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B","\x73\x72\x63\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x61\x72\x67\x65\x74","\x69\x73\x52\x69\x67\x68\x74\x4D\x6F\x75\x73\x65\x42\x75\x74\x74\x6F\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x73\x68\x69\x66\x74\x4B\x65\x79","\x61\x6C\x74\x4B\x65\x79","\x63\x74\x72\x6C\x4B\x65\x79","\x6D\x65\x74\x61\x4B\x65\x79","\x74\x6F\x75\x63\x68\x65\x73","\x63\x68\x61\x6E\x67\x65\x64\x54\x6F\x75\x63\x68\x65\x73","\x63\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x4D\x61\x69\x6E\x45\x76\x65\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x59","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x63\x61\x6E\x63\x65\x6C\x42\x75\x62\x62\x6C\x65","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x63\x74\x69\x76\x61\x74\x65","\x72\x65\x73\x69\x7A\x65\x53\x74\x61\x72\x74","\x72\x65\x73\x69\x7A\x65\x45\x6E\x64","\x6D\x6F\x76\x65\x53\x74\x61\x72\x74","\x6D\x6F\x76\x65\x45\x6E\x64","\x70\x61\x6E\x53\x74\x61\x72\x74","\x70\x61\x6E","\x70\x61\x6E\x45\x6E\x64","\x6D\x69\x6E\x69\x6D\x69\x7A\x65","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x6D\x61\x78\x69\x6D\x69\x7A\x65","\x68\x69\x64\x65","\x72\x65\x66\x72\x65\x73\x68","\x73\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74","\x66\x69\x72\x65\x64","\x72\x65\x63\x65\x69\x76\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x75\x73\x70\x65\x6E\x64","\x72\x65\x73\x75\x6D\x65","\x6D\x61\x72\x6B","\x73\x65\x73\x73\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x6F\x73\x74","\x73\x61\x76\x65","\x62\x65\x66\x6F\x72\x65\x41\x64\x64\x56\x65\x72\x74\x65\x78","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x61\x66\x74\x65\x72\x41\x64\x64\x56\x65\x72\x74\x65\x78","\x64\x6F\x6E\x65","\x65\x78\x65\x63\x75\x74\x65\x64","\x73\x74\x61\x72\x74\x45\x64\x69\x74","\x65\x6E\x64\x45\x64\x69\x74","\x62\x65\x66\x6F\x72\x65\x55\x6E\x64\x6F","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x68\x61\x6E\x67\x65","\x6E\x6F\x74\x69\x66\x79","\x6C\x61\x79\x6F\x75\x74\x43\x65\x6C\x6C\x73","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x75\x70","\x64\x6F\x77\x6E","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x41\x64\x64\x65\x64","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x4D\x6F\x76\x65\x64","\x72\x65\x73\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x65\x64","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x54\x6F\x67\x67\x6C\x65\x64","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x4F\x72\x64\x65\x72\x65\x64","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x52\x65\x6D\x6F\x76\x65\x64","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x46\x6F\x6C\x64\x65\x64","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67","\x61\x64\x64\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x4F\x76\x65\x72\x6C\x61\x79","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x73\x63\x61\x70\x65","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B","\x73\x74\x61\x72\x74","\x72\x65\x73\x65\x74","\x75\x72\x6C","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x74\x68\x6F\x64","\x50\x4F\x53\x54","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x62\x69\x6E\x61\x72\x79","\x72\x65\x71\x75\x65\x73\x74","\x69\x73\x42\x69\x6E\x61\x72\x79","\x73\x65\x74\x42\x69\x6E\x61\x72\x79","\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x58\x6D\x6C","\x72\x65\x73\x70\x6F\x6E\x73\x65\x58\x4D\x4C","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73","\x58\x4D\x4C\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74","\x6F\x76\x65\x72\x72\x69\x64\x65\x4D\x69\x6D\x65\x54\x79\x70\x65","\x74\x65\x78\x74\x2F\x70\x6C\x61\x69\x6E\x3B\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x78\x2D\x75\x73\x65\x72\x2D\x64\x65\x66\x69\x6E\x65\x64","\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x48\x54\x54\x50","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x66\x6F\x72\x6D","\x61\x63\x74\x69\x6F\x6E","\x26","\x73\x75\x62\x6D\x69\x74","\x63\x65\x6C\x6C\x73","\x69\x6E\x73\x65\x72\x74\x43\x6F\x75\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x67\x65\x74\x45\x78\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x53\x54\x45\x50\x53\x49\x5A\x45","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x61\x78\x69\x6D\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x69\x6E\x69\x6D\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x4D\x69\x6E\x69\x6D\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x54\x69\x74\x6C\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x70\x6C\x61\x63\x65\x43\x68\x69\x6C\x64","\x63\x6C\x6F\x73\x65\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x6F\x73\x65\x2E\x67\x69\x66","\x6D\x69\x6E\x69\x6D\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6D\x69\x6E\x69\x6D\x69\x7A\x65\x2E\x67\x69\x66","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65\x2E\x67\x69\x66","\x6D\x61\x78\x69\x6D\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6D\x61\x78\x69\x6D\x69\x7A\x65\x2E\x67\x69\x66","\x72\x65\x73\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x72\x65\x73\x69\x7A\x65\x2E\x67\x69\x66","\x6D\x69\x6E\x69\x6D\x75\x6D\x53\x69\x7A\x65","\x74\x69\x74\x6C\x65","\x6D\x78\x57\x69\x6E\x64\x6F\x77","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x54\x69\x74\x6C\x65","\x50\x61\x6E\x65","\x63\x6F\x6E\x74\x65\x6E\x74\x57\x72\x61\x70\x70\x65\x72","\x61\x63\x74\x69\x76\x65\x57\x69\x6E\x64\x6F\x77","\x7A\x49\x6E\x64\x65\x78","\x70\x72\x65\x76\x69\x6F\x75\x73\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x69\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x32\x70\x78","\x6E\x77\x2D\x72\x65\x73\x69\x7A\x65","\x73\x65\x74\x53\x69\x7A\x65","\x72\x65\x6D\x6F\x76\x65\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x67\x65\x74\x4D\x69\x6E\x69\x6D\x75\x6D\x53\x69\x7A\x65","\x4D\x69\x6E\x69\x6D\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E\x52\x69\x67\x68\x74","\x31\x70\x78","\x4E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x4D\x61\x78\x69\x6D\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x30\x70\x78","\x73\x65\x74\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x63\x6C\x6F\x73\x65\x49\x6D\x67","\x43\x6C\x6F\x73\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x73\x65\x74\x49\x6D\x61\x67\x65","\x34\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x2D\x32\x70\x78","\x67\x65\x74\x54\x61\x62\x6C\x65","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E\x73","\x6F\x6B","\x4F\x4B","\x63\x61\x6E\x63\x65\x6C","\x43\x61\x6E\x63\x65\x6C","\x61\x64\x64\x54\x65\x78\x74","\x69\x6E\x70\x75\x74","\x74\x65\x78\x74","\x61\x64\x64\x46\x69\x65\x6C\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x62\x6F\x78","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x63\x68\x65\x63\x6B\x65\x64","\x61\x64\x64\x54\x65\x78\x74\x61\x72\x65\x61","\x72\x6F\x77\x73","\x61\x64\x64\x43\x6F\x6D\x62\x6F","\x6D\x75\x6C\x74\x69\x70\x6C\x65","\x61\x64\x64\x4F\x70\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64","\x72\x65\x73\x69\x7A\x65\x57\x69\x64\x74\x68","\x72\x65\x73\x69\x7A\x65\x48\x65\x69\x67\x68\x74","\x68\x61\x6E\x64\x6C\x69\x6E\x67\x52\x65\x73\x69\x7A\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x57\x69\x64\x74\x68","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x65\x6C\x65\x6D\x65\x6E\x74","\x64\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74","\x70\x72\x65\x76\x69\x65\x77\x45\x6C\x65\x6D\x65\x6E\x74","\x65\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x63\x75\x72\x72\x65\x6E\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x63\x75\x72\x72\x65\x6E\x74\x50\x6F\x69\x6E\x74","\x63\x75\x72\x72\x65\x6E\x74\x47\x75\x69\x64\x65","\x63\x75\x72\x72\x65\x6E\x74\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74\x5A\x49\x6E\x64\x65\x78","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74\x4F\x70\x61\x63\x69\x74\x79","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x73\x74\x61\x72\x74\x44\x72\x61\x67","\x6D\x6F\x75\x73\x65\x55\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x74\x6F\x70\x44\x72\x61\x67","\x67\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x73\x45\x76\x65\x6E\x74","\x64\x72\x61\x67\x45\x78\x69\x74","\x64\x72\x61\x67\x45\x6E\x74\x65\x72","\x64\x72\x61\x67\x4F\x76\x65\x72","\x64\x72\x6F\x70","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x67\x65\x74\x47\x75\x69\x64\x65\x53\x74\x61\x74\x65\x73","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x61\x75\x74\x6F\x45\x78\x74\x65\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x50\x6F\x69\x6E\x74\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x68\x69\x67\x68\x6C\x69\x67\x68\x74","\x33","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x6E\x61\x70","\x70\x72\x65\x76\x69\x65\x77\x4F\x66\x66\x73\x65\x74","\x6E\x6F\x52\x65\x73\x65\x74","\x75\x70\x64\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x4D\x6F\x64\x65","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x6F\x64\x65","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x49\x74\x65\x6D","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x6D\x65\x6E\x75","\x63\x75\x72\x72\x65\x6E\x74\x49\x6D\x67","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x53\x65\x6C\x65\x63\x74\x65\x64","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6D\x62\x6F\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6D\x62\x6F","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x43\x6F\x6D\x62\x6F","\x73\x65\x6C\x65\x63\x74\x65\x64\x49\x6E\x64\x65\x78","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x53\x77\x69\x74\x63\x68\x4D\x6F\x64\x65","\x69\x6E\x69\x74\x69\x61\x6C\x43\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x61\x6C\x74\x49\x63\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x4D\x6F\x64\x65","\x64\x65\x66\x61\x75\x6C\x74\x4D\x6F\x64\x65","\x73\x65\x6C\x65\x63\x74\x4D\x6F\x64\x65","\x61\x64\x64\x4D\x6F\x64\x65","\x64\x65\x66\x61\x75\x6C\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x72\x65\x73\x65\x74\x4D\x6F\x64\x65","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x61\x64\x64\x42\x72\x65\x61\x6B","\x61\x64\x64\x4C\x69\x6E\x65","\x68\x72","\x36\x70\x78","\x75\x72\x6C\x49\x6E\x69\x74","\x75\x72\x6C\x50\x6F\x6C\x6C","\x75\x72\x6C\x4E\x6F\x74\x69\x66\x79","\x63\x6F\x64\x65\x63","\x6C\x6F\x6F\x6B\x75\x70","\x65\x64\x69\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x73\x75\x73\x70\x65\x6E\x64\x65\x64","\x3C\x65\x64\x69\x74\x3E","\x63\x68\x61\x6E\x67\x65\x73","\x75\x6E\x64\x6F\x6E\x65","\x65\x6E\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65\x73","\x3C\x2F\x65\x64\x69\x74\x3E","\x6C\x69\x6E\x65\x66\x65\x65\x64","\x65\x73\x63\x61\x70\x65\x50\x6F\x73\x74\x44\x61\x74\x61","\x73\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74\x52\x65\x6D\x6F\x74\x65\x43\x68\x61\x6E\x67\x65\x73","\x73\x65\x6E\x74","\x72\x65\x63\x65\x69\x76\x65\x64","\x70\x6F\x6C\x6C\x69\x6E\x67","\x70\x6F\x6C\x6C","\x73\x74\x6F\x70","\x72\x65\x61\x73\x6F\x6E","\x6D\x78\x53\x65\x73\x73\x69\x6F\x6E\x2E\x6E\x6F\x74\x69\x66\x79\x3A\x20","\x20\x78\x6D\x6C\x3D","\x3C\x6D\x65\x73\x73\x61\x67\x65\x3E\x3C\x64\x65\x6C\x74\x61\x3E","\x3C\x2F\x64\x65\x6C\x74\x61\x3E\x3C\x2F\x6D\x65\x73\x73\x61\x67\x65\x3E","\x78\x6D\x6C\x3D","\x69\x73\x56\x61\x6C\x69\x64\x52\x65\x73\x70\x6F\x6E\x73\x65","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x3A\x20","\x52\x65\x73\x70\x6F\x6E\x73\x65\x20\x6E\x6F\x74\x20\x72\x65\x61\x64\x79","\x54\x72\x61\x6E\x73\x6D\x69\x73\x73\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x3C\x3F\x70\x68\x70","\x6E\x61\x6D\x65\x73\x70\x61\x63\x65","\x70\x72\x65\x66\x69\x78","\x70\x72\x6F\x63\x65\x73\x73\x53\x74\x61\x74\x65","\x64\x65\x6C\x74\x61","\x70\x72\x6F\x63\x65\x73\x73\x44\x65\x6C\x74\x61","\x64\x65\x63\x6F\x64\x65","\x70\x72\x6F\x63\x65\x73\x73\x45\x64\x69\x74","\x64\x65\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65\x73","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74","\x73\x6F\x75\x72\x63\x65","\x64\x65\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65","\x6D\x78\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x6D\x78\x43\x68\x69\x6C\x64\x43\x68\x61\x6E\x67\x65","\x70\x61\x72\x65\x6E\x74","\x63\x65\x6C\x6C\x52\x65\x6D\x6F\x76\x65\x64","\x67\x65\x74\x49\x64","\x70\x75\x74\x4F\x62\x6A\x65\x63\x74","\x73\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74","\x72\x65\x64\x6F\x6E\x65","\x69\x73\x45\x6D\x70\x74\x79","\x69\x73\x53\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74","\x64\x69\x65","\x68\x69\x73\x74\x6F\x72\x79","\x69\x6E\x64\x65\x78\x4F\x66\x4E\x65\x78\x74\x41\x64\x64","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x73\x68\x69\x66\x74","\x64\x61\x74\x61\x3A\x69\x6D\x61\x67\x65","\x69\x73\x52\x65\x6C\x61\x74\x69\x76\x65\x55\x72\x6C","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x2F\x2F","\x68\x6F\x73\x74","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x74\x68\x72\x65\x61\x64","\x61\x63\x74\x69\x76\x65","\x64\x79","\x64\x78","\x74\x30\x79","\x74\x30\x78","\x74\x64\x79","\x74\x64\x78","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x4D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x70\x61\x6E\x47\x72\x61\x70\x68","\x70\x61\x6E\x44\x78","\x70\x61\x6E\x44\x79","\x67\x65\x74\x44\x78","\x67\x65\x74\x44\x79","\x64\x65\x6C\x61\x79","\x73\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C","\x69\x73\x41\x63\x74\x69\x76\x65","\x70\x61\x6E\x54\x6F","\x68\x61\x6E\x64\x6C\x65\x4D\x6F\x75\x73\x65\x4F\x75\x74","\x64\x61\x6D\x70\x65\x72","\x63\x6C\x65\x61\x72\x49\x6E\x74\x65\x72\x76\x61\x6C","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x4D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x2F\x73\x75\x62\x6D\x65\x6E\x75\x2E\x67\x69\x66","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x6F\x70\x75\x70","\x69\x74\x65\x6D\x43\x6F\x75\x6E\x74","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x6C\x61\x62\x65\x6C\x73","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x64\x69\x73\x61\x62\x6C\x65\x43\x6F\x6E\x74\x65\x78\x74\x4D\x65\x6E\x75","\x69\x73\x4C\x65\x66\x74\x4D\x6F\x75\x73\x65\x42\x75\x74\x74\x6F\x6E","\x77\x69\x6C\x6C\x41\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x49\x74\x65\x6D\x73","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x63\x6F\x6E","\x20\x64\x69\x73\x61\x62\x6C\x65\x64","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x72\x65\x61\x74\x65\x53\x75\x62\x6D\x65\x6E\x75","\x65\x76\x65\x6E\x74\x52\x65\x63\x65\x69\x76\x65\x72","\x61\x63\x74\x69\x76\x65\x52\x6F\x77","\x68\x69\x64\x65\x53\x75\x62\x6D\x65\x6E\x75","\x73\x68\x6F\x77\x53\x75\x62\x6D\x65\x6E\x75","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x74\x65\x6D\x48\x6F\x76\x65\x72","\x30\x20\x30\x20\x30\x20\x30\x70\x78","\x63\x6F\x6C\x53\x70\x61\x6E","\x32","\x73\x68\x6F\x77\x4D\x65\x6E\x75","\x63\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x73\x65\x74\x47\x72\x61\x70\x68","\x67\x72\x61\x70\x68","\x61\x75\x74\x6F\x53\x61\x76\x65\x44\x65\x6C\x61\x79","\x61\x75\x74\x6F\x53\x61\x76\x65\x54\x68\x72\x6F\x74\x74\x6C\x65","\x61\x75\x74\x6F\x53\x61\x76\x65\x54\x68\x72\x65\x73\x68\x6F\x6C\x64","\x69\x67\x6E\x6F\x72\x65\x64\x43\x68\x61\x6E\x67\x65\x73","\x6C\x61\x73\x74\x53\x6E\x61\x70\x73\x68\x6F\x74","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x73\x74\x6F\x70\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x73\x74\x65\x70\x73","\x65\x61\x73\x65","\x73\x74\x65\x70","\x61\x6E\x69\x6D\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x44\x65\x6C\x74\x61","\x69\x73\x56\x65\x72\x74\x65\x78","\x6D\x6F\x76\x65\x53\x74\x61\x74\x65","\x73\x74\x6F\x70\x52\x65\x63\x75\x72\x73\x69\x6F\x6E","\x67\x65\x74\x4F\x72\x69\x67\x69\x6E\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x69\x6D\x61\x67\x65\x73","\x61\x6C\x74","\x70\x75\x74\x49\x6D\x61\x67\x65","\x67\x65\x74\x49\x6D\x61\x67\x65","\x66\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x6E\x63\x6C\x75\x64\x65\x4F\x76\x65\x72\x6C\x61\x79\x73","\x64\x72\x61\x77\x53\x74\x61\x74\x65","\x64\x72\x61\x77\x43\x65\x6C\x6C\x53\x74\x61\x74\x65","\x76\x69\x73\x69\x74\x53\x74\x61\x74\x65\x73\x52\x65\x63\x75\x72\x73\x69\x76\x65","\x64\x72\x61\x77\x4F\x76\x65\x72\x6C\x61\x79\x73","\x70\x61\x69\x6E\x74","\x72\x65\x73\x74\x6F\x72\x65","\x6F\x76\x65\x72\x6C\x61\x79\x73","\x63\x6F\x6E\x76\x65\x72\x74\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x72\x6C\x43\x6F\x6E\x76\x65\x72\x74\x65\x72","\x73\x74\x61\x74\x65\x73","\x70\x61\x74\x68","\x72\x6F\x74\x61\x74\x65\x48\x74\x6D\x6C","\x6C\x61\x73\x74\x58","\x6C\x61\x73\x74\x59","\x6D\x6F\x76\x65\x4F\x70","\x4D","\x6C\x69\x6E\x65\x4F\x70","\x4C","\x71\x75\x61\x64\x4F\x70","\x51","\x63\x75\x72\x76\x65\x4F\x70","\x43","\x63\x6C\x6F\x73\x65\x4F\x70","\x5A","\x70\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x33\x20\x33","\x66\x6C\x61\x74","\x6D\x69\x74\x65\x72","\x23\x30\x30\x30\x30\x30\x30","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x50\x41\x43\x49\x54\x59","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x46\x46\x53\x45\x54\x5F\x58","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x46\x46\x53\x45\x54\x5F\x59","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4F\x70","\x72\x6F\x74\x61\x74\x65\x50\x6F\x69\x6E\x74","\x70\x6F\x70","\x73\x65\x74\x41\x6C\x70\x68\x61","\x61\x6C\x70\x68\x61","\x73\x65\x74\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x47\x72\x61\x64\x69\x65\x6E\x74","\x66\x69\x6C\x6C\x41\x6C\x70\x68\x61","\x67\x72\x61\x64\x69\x65\x6E\x74\x41\x6C\x70\x68\x61","\x73\x65\x74\x53\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x53\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x65\x74\x44\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x73\x65\x74\x4C\x69\x6E\x65\x43\x61\x70","\x6C\x69\x6E\x65\x43\x61\x70","\x73\x65\x74\x4C\x69\x6E\x65\x4A\x6F\x69\x6E","\x6C\x69\x6E\x65\x4A\x6F\x69\x6E","\x73\x65\x74\x4D\x69\x74\x65\x72\x4C\x69\x6D\x69\x74","\x6D\x69\x74\x65\x72\x4C\x69\x6D\x69\x74","\x73\x65\x74\x46\x6F\x6E\x74\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x53\x69\x7A\x65","\x73\x65\x74\x46\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x73\x65\x74\x46\x6F\x6E\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x43\x6F\x6C\x6F\x72","\x73\x68\x61\x64\x6F\x77\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x41\x6C\x70\x68\x61","\x73\x68\x61\x64\x6F\x77\x41\x6C\x70\x68\x61","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x4F\x66\x66\x73\x65\x74","\x73\x68\x61\x64\x6F\x77\x44\x78","\x73\x68\x61\x64\x6F\x77\x44\x79","\x62\x65\x67\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x71\x75\x61\x64\x54\x6F","\x63\x75\x72\x76\x65\x54\x6F","\x61\x72\x63\x54\x6F","\x61\x72\x63\x54\x6F\x43\x75\x72\x76\x65\x73","\x65\x6E\x64","\x77\x72\x69\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x73","\x65\x78\x74\x65\x6E\x64","\x74\x65\x78\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6D\x70\x72\x65\x73\x73\x65\x64","\x66\x6F\x6E\x74\x66\x61\x6D\x69\x6C\x79","\x66\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x73\x69\x7A\x65","\x73\x68\x61\x64\x6F\x77\x63\x6F\x6C\x6F\x72","\x73\x68\x61\x64\x6F\x77\x61\x6C\x70\x68\x61","\x73\x68\x61\x64\x6F\x77\x6F\x66\x66\x73\x65\x74","\x74\x6F\x46\x69\x78\x65\x64","\x72\x6F\x74\x61\x74\x65","\x74\x68\x65\x74\x61","\x63\x78","\x63\x79","\x66\x69\x6C\x6C\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74","\x63\x31","\x63\x32","\x77","\x68","\x61\x6C\x70\x68\x61\x31","\x61\x6C\x70\x68\x61\x32","\x73\x74\x72\x6F\x6B\x65\x63\x6F\x6C\x6F\x72","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x64\x61\x73\x68\x70\x61\x74\x74\x65\x72\x6E","\x70\x61\x74\x74\x65\x72\x6E","\x6C\x69\x6E\x65\x63\x61\x70","\x63\x61\x70","\x6C\x69\x6E\x65\x6A\x6F\x69\x6E","\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74","\x6C\x69\x6D\x69\x74","\x66\x6F\x6E\x74\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x62\x6F\x72\x64\x65\x72\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x73\x74\x79\x6C\x65","\x72\x65\x63\x74","\x72\x6F\x75\x6E\x64\x72\x65\x63\x74","\x63\x6F\x6E\x76\x65\x72\x74","\x61\x73\x70\x65\x63\x74","\x71\x75\x61\x64","\x78\x31","\x79\x31","\x78\x32","\x79\x32","\x63\x75\x72\x76\x65","\x78\x33","\x79\x33","\x69\x73\x4E\x6F\x64\x65","\x73\x74\x72","\x77\x72\x61\x70","\x66\x69\x6C\x6C","\x63\x6C\x69\x70","\x73\x74\x72\x6F\x6B\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x66\x69\x6C\x6C\x73\x74\x72\x6F\x6B\x65","\x67\x72\x61\x64\x69\x65\x6E\x74\x73","\x64\x65\x66\x73","\x73\x74\x79\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x61\x74\x63\x68\x48\x74\x6D\x6C\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x66\x6F\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x72\x6F\x6B\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x72\x65\x66\x43\x6F\x75\x6E\x74","\x62\x6C\x6F\x63\x6B\x49\x6D\x61\x67\x65\x50\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x73\x76\x67\x7B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A","\x3B\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A","\x3B\x66\x69\x6C\x6C\x3A\x6E\x6F\x6E\x65\x3B\x73\x74\x72\x6F\x6B\x65\x2D\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74\x3A\x31\x30\x7D","\x4E\x53\x5F\x53\x56\x47","\x78\x6D\x6C\x6E\x73","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x64\x69\x65\x6E\x74\x49\x64","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x53\x4F\x55\x54\x48","\x73","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x45\x41\x53\x54","\x65","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4E\x4F\x52\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x57\x45\x53\x54","\x6D\x78\x2D\x67\x72\x61\x64\x69\x65\x6E\x74\x2D","\x67\x65\x74\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x69\x64","\x63\x72\x65\x61\x74\x65\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74","\x6C\x69\x6E\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6E\x74","\x30\x25","\x3B\x73\x74\x6F\x70\x2D\x6F\x70\x61\x63\x69\x74\x79\x3A","\x6F\x66\x66\x73\x65\x74","\x73\x74\x6F\x70\x2D\x63\x6F\x6C\x6F\x72\x3A","\x61\x64\x64\x4E\x6F\x64\x65","\x64","\x75\x70\x64\x61\x74\x65\x46\x69\x6C\x6C","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77","\x63\x72\x65\x61\x74\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x70\x6F\x69\x6E\x74\x65\x72\x2D\x65\x76\x65\x6E\x74\x73","\x61\x6C\x6C","\x66\x69\x6C\x6C\x2D\x6F\x70\x61\x63\x69\x74\x79","\x75\x72\x6C\x28\x23","\x73\x74\x72\x6F\x6B\x65\x2D\x6F\x70\x61\x63\x69\x74\x79","\x73\x74\x72\x6F\x6B\x65\x2D\x77\x69\x64\x74\x68","\x75\x70\x64\x61\x74\x65\x53\x74\x72\x6F\x6B\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x74\x72\x6F\x6B\x65\x2D\x64\x61\x73\x68\x61\x72\x72\x61\x79","\x63\x72\x65\x61\x74\x65\x44\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x73\x74\x72\x6F\x6B\x65\x2D\x6C\x69\x6E\x65\x6A\x6F\x69\x6E","\x62\x75\x74\x74","\x73\x74\x72\x6F\x6B\x65\x2D\x6C\x69\x6E\x65\x63\x61\x70","\x73\x74\x72\x6F\x6B\x65\x2D\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x68\x69\x74\x65","\x29\x73\x63\x61\x6C\x65\x28","\x29\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x72\x6F\x74\x61\x74\x65\x28","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x43\x78","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x43\x79","\x72\x78","\x72\x79","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x53","\x78\x6C\x69\x6E\x6B\x3A\x68\x72\x65\x66","\x70\x72\x65\x73\x65\x72\x76\x65\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6F","\x73\x63\x61\x6C\x65\x28","\x70\x6F\x69\x6E\x74\x65\x72\x2D\x65\x76\x65\x6E\x74\x73\x3A\x6E\x6F\x6E\x65","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A","\x70\x78\x3B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A","\x3B\x63\x6F\x6C\x6F\x72\x3A","\x3B\x6C\x69\x6E\x65\x2D\x68\x65\x69\x67\x68\x74\x3A","\x70\x78\x3B","\x46\x4F\x4E\x54\x5F\x42\x4F\x4C\x44","\x66\x6F\x6E\x74\x2D\x77\x65\x69\x67\x68\x74\x3A\x62\x6F\x6C\x64\x3B","\x46\x4F\x4E\x54\x5F\x49\x54\x41\x4C\x49\x43","\x66\x6F\x6E\x74\x2D\x73\x74\x79\x6C\x65\x3A\x69\x74\x61\x6C\x69\x63\x3B","\x46\x4F\x4E\x54\x5F\x55\x4E\x44\x45\x52\x4C\x49\x4E\x45","\x66\x6F\x6E\x74\x2D\x64\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E\x3A\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65\x3B","\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x63\x65\x6E\x74\x65\x72\x3B","\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x72\x69\x67\x68\x74\x3B","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A","\x62\x6F\x72\x64\x65\x72\x3A\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20","\x26\x61\x6D\x70\x3B\x67\x74\x3B","\x26\x61\x6D\x70\x3B\x6C\x74\x3B","\x3C\x64\x69\x76\x20\x78\x6D\x6C\x6E\x73\x3D\x22\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C\x22\x20\x73\x74\x79\x6C\x65\x3D\x22\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B","\x22\x3E","\x3C\x2F\x64\x69\x76\x3E","\x3C\x68\x72\x20\x2F\x3E","\x3C\x62\x72\x20\x2F\x3E","\x3C\x64\x69\x76\x20\x78\x6D\x6C\x6E\x73\x3D\x22\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C\x22\x20\x73\x74\x79\x6C\x65\x3D\x22","\x68\x74\x6D\x6C","\x76\x65\x72\x74\x69\x63\x61\x6C\x2D\x61\x6C\x69\x67\x6E\x3A\x74\x6F\x70\x3B","\x6F\x76\x65\x72\x66\x6C\x6F\x77\x3A\x68\x69\x64\x64\x65\x6E\x3B","\x6D\x61\x78\x2D\x68\x65\x69\x67\x68\x74\x3A","\x77\x69\x64\x74\x68\x3A","\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x6E\x6F\x72\x6D\x61\x6C\x3B","\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x6E\x6F\x77\x72\x61\x70\x3B","\x66\x6F\x72\x65\x69\x67\x6E\x4F\x62\x6A\x65\x63\x74","\x70\x6C\x61\x69\x6E\x54\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x43\x6C\x69\x70","\x6D\x78\x2D\x63\x6C\x69\x70\x2D","\x63\x6C\x69\x70\x50\x61\x74\x68","\x63\x6C\x69\x70\x2D\x70\x61\x74\x68","\x75\x70\x64\x61\x74\x65\x46\x6F\x6E\x74","\x74\x65\x78\x74\x2D\x61\x6E\x63\x68\x6F\x72","\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65","\x61\x64\x64\x54\x65\x78\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x2D\x77\x65\x69\x67\x68\x74","\x62\x6F\x6C\x64","\x66\x6F\x6E\x74\x2D\x73\x74\x79\x6C\x65","\x69\x74\x61\x6C\x69\x63","\x74\x65\x78\x74\x2D\x64\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x67\x65\x74\x42\x42\x6F\x78","\x66\x6F\x6E\x74\x57\x65\x69\x67\x68\x74","\x3C\x62\x72\x2F\x3E","\x6D\x6F\x64","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28\x30\x2E\x35\x2C\x20\x30\x2E\x35\x29","\x6D","\x6C","\x63","\x72\x6F\x74\x61\x74\x65\x64\x48\x74\x6D\x6C\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x76\x6D\x6C\x53\x63\x61\x6C\x65","\x20\x65","\x63\x6F\x6F\x72\x64\x73\x69\x7A\x65","\x73\x74\x72\x6F\x6B\x65\x77\x65\x69\x67\x68\x74","\x73\x74\x72\x6F\x6B\x65\x64","\x63\x72\x65\x61\x74\x65\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x46\x69\x6C\x6C","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x46\x69\x6C\x6C","\x66\x69\x6C\x6C\x65\x64","\x3A\x66\x69\x6C\x6C","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x74\x69\x6C\x65","\x63\x6F\x6C\x6F\x72\x32","\x66\x6C\x69\x70","\x61\x6E\x67\x6C\x65","\x4F\x46\x46\x49\x43\x45\x5F\x50\x52\x45\x46\x49\x58","\x3A\x6F\x70\x61\x63\x69\x74\x79\x32","\x3A\x73\x74\x72\x6F\x6B\x65","\x65\x6E\x64\x63\x61\x70","\x6A\x6F\x69\x6E\x73\x74\x79\x6C\x65","\x31\x30","\x64\x61\x73\x68\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x6D\x6C\x44\x61\x73\x68\x53\x74\x79\x6C\x65","\x64\x61\x73\x68","\x30\x20\x32","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77\x46\x69\x6C\x6C","\x3A\x73\x68\x61\x70\x65","\x63\x20","\x63\x72\x65\x61\x74\x65\x52\x65\x63\x74","\x3A\x72\x65\x63\x74","\x3A\x72\x6F\x75\x6E\x64\x72\x65\x63\x74","\x61\x72\x63\x73\x69\x7A\x65","\x3A\x6F\x76\x61\x6C","\x61\x74\x6D\x6F\x73\x74","\x69\x67\x6E\x6F\x72\x65","\x66\x72\x61\x6D\x65","\x31\x38\x30","\x66\x6F\x6E\x74\x44\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x3A\x67\x72\x6F\x75\x70","\x72\x65\x6C\x61\x74\x69\x76\x65","\x67\x65\x74\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74\x41\x73\x50\x6F\x69\x6E\x74","\x6E\x6F\x72\x6D\x61\x6C","\x6D\x61\x78\x48\x65\x69\x67\x68\x74","\x67\x72\x6F\x75\x70","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x4D\x61\x74\x72\x69\x78\x28\x4D\x31\x31\x3D","\x2C\x20\x4D\x31\x32\x3D","\x2C\x20\x4D\x32\x31\x3D","\x2C\x20\x4D\x32\x32\x3D","\x2C\x20\x73\x69\x7A\x69\x6E\x67\x4D\x65\x74\x68\x6F\x64\x3D\x27\x61\x75\x74\x6F\x20\x65\x78\x70\x61\x6E\x64\x27\x29","\x3A\x70\x61\x74\x68","\x74\x65\x78\x74\x70\x61\x74\x68\x6F\x6B","\x6D\x20","\x20\x6C\x20","\x3A\x74\x65\x78\x74\x70\x61\x74\x68","\x76\x2D\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A","\x73\x74\x72\x69\x6E\x67","\x73\x65\x74\x53\x74\x61\x74\x65\x73","\x67\x75\x69\x64\x65\x58","\x67\x75\x69\x64\x65\x59","\x67\x65\x74\x47\x75\x69\x64\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x63\x72\x65\x61\x74\x65\x47\x75\x69\x64\x65\x53\x68\x61\x70\x65","\x69\x73\x44\x61\x73\x68\x65\x64","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x70\x6F\x69\x6E\x74\x73","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x64\x65\x73\x63","\x70\x61\x72\x73\x65\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x61\x72\x73\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x63\x61\x6C\x69\x7A\x65\x64","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x77\x30","\x68\x30","\x62\x67\x4E\x6F\x64\x65","\x66\x67\x4E\x6F\x64\x65","\x66\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x70\x61\x72\x73\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x65\x76\x61\x6C\x75\x61\x74\x65\x54\x65\x78\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x65\x76\x61\x6C\x75\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x6F\x63\x61\x6C\x69\x7A\x65\x64","\x65\x76\x61\x6C","\x64\x72\x61\x77\x53\x68\x61\x70\x65","\x64\x72\x61\x77\x43\x68\x69\x6C\x64\x72\x65\x6E","\x63\x6F\x6D\x70\x75\x74\x65\x41\x73\x70\x65\x63\x74","\x69\x6E\x68\x65\x72\x69\x74","\x67\x65\x74\x4E\x75\x6D\x62\x65\x72","\x64\x72\x61\x77\x4E\x6F\x64\x65","\x66\x69\x78\x65\x64","\x61\x72\x63","\x78\x2D\x61\x78\x69\x73\x2D\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x6C\x61\x72\x67\x65\x2D\x61\x72\x63\x2D\x66\x6C\x61\x67","\x73\x77\x65\x65\x70\x2D\x66\x6C\x61\x67","\x52\x45\x43\x54\x41\x4E\x47\x4C\x45\x5F\x52\x4F\x55\x4E\x44\x49\x4E\x47\x5F\x46\x41\x43\x54\x4F\x52","\x61\x6C\x69\x67\x6E\x2D\x73\x68\x61\x70\x65","\x69\x6E\x63\x6C\x75\x64\x65\x2D\x73\x68\x61\x70\x65","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C","\x62\x6F\x75\x6E\x64\x73","\x62\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x73\x76\x67\x53\x74\x72\x6F\x6B\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x73\x74\x65\x6E\x63\x69\x6C\x50\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x69\x73\x50\x61\x72\x73\x65\x56\x6D\x6C","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x67\x65\x74\x53\x76\x67\x53\x63\x72\x65\x65\x6E\x4F\x66\x66\x73\x65\x74","\x63\x72\x65\x61\x74\x65\x53\x76\x67","\x63\x72\x65\x61\x74\x65\x48\x74\x6D\x6C","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x75\x70\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x73\x46\x72\x6F\x6D\x50\x6F\x69\x6E\x74\x73","\x63\x68\x65\x63\x6B\x42\x6F\x75\x6E\x64\x73","\x72\x65\x64\x72\x61\x77\x48\x74\x6D\x6C\x53\x68\x61\x70\x65","\x72\x65\x64\x72\x61\x77\x53\x68\x61\x70\x65","\x75\x70\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C\x47\x72\x6F\x75\x70","\x63\x72\x65\x61\x74\x65\x43\x61\x6E\x76\x61\x73","\x68\x61\x73\x43\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x6C\x61\x73\x74\x43\x68\x69\x6C\x64","\x62\x65\x66\x6F\x72\x65\x65\x6E\x64","\x69\x6E\x73\x65\x72\x74\x41\x64\x6A\x61\x63\x65\x6E\x74\x48\x54\x4D\x4C","\x61\x64\x64\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x46\x69\x6C\x74\x65\x72","\x64\x65\x73\x74\x72\x6F\x79\x43\x61\x6E\x76\x61\x73","\x75\x70\x64\x61\x74\x65\x56\x6D\x6C\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x78\x52\x65\x66\x43\x6F\x75\x6E\x74","\x6F\x6C\x64\x47\x72\x61\x64\x69\x65\x6E\x74\x73","\x72\x65\x6C\x65\x61\x73\x65\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74\x73","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x75\x70\x64\x61\x74\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x43\x61\x6E\x76\x61\x73","\x70\x61\x69\x6E\x74\x53\x74\x65\x6E\x63\x69\x6C\x53\x68\x61\x70\x65","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x67\x65\x74\x47\x72\x61\x64\x69\x65\x6E\x74\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x64\x64\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x63\x74\x61\x6E\x67\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x70\x61\x69\x6E\x74\x47\x6C\x61\x73\x73\x45\x66\x66\x65\x63\x74","\x23\x66\x66\x66\x66\x66\x66","\x69\x73\x52\x6F\x75\x6E\x64\x65\x64","\x73\x74\x65\x6E\x63\x69\x6C\x46\x6C\x69\x70\x48","\x73\x74\x65\x6E\x63\x69\x6C\x46\x6C\x69\x70\x56","\x73\x65\x74\x43\x75\x72\x73\x6F\x72","\x67\x65\x74\x43\x75\x72\x73\x6F\x72","\x63\x72\x65\x61\x74\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x61\x75\x67\x6D\x65\x6E\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x67\x65\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x67\x65\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x67\x65\x74\x54\x65\x78\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x76\x65\x72\x74\x69\x63\x61\x6C\x54\x65\x78\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28\x27","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66\x27\x29","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x6D\x61\x72\x6B\x65\x72\x73","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x46\x69\x6C\x74\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x43\x6F\x6C\x6F\x72\x73","\x62\x6F\x72\x64\x65\x72\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x73\x6F\x6C\x69\x64","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x64\x72\x6F\x70\x53\x68\x61\x64\x6F\x77\x20\x28\x4F\x66\x66\x58\x3D\x27","\x27\x2C\x20\x4F\x66\x66\x59\x3D\x27","\x27\x2C\x20\x43\x6F\x6C\x6F\x72\x3D\x27","\x27\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x67\x72\x61\x64\x69\x65\x6E\x74\x28\x73\x74\x61\x72\x74\x43\x6F\x6C\x6F\x72\x53\x74\x72\x3D\x27","\x27\x2C\x20\x65\x6E\x64\x43\x6F\x6C\x6F\x72\x53\x74\x72\x3D\x27","\x27\x2C\x20\x67\x72\x61\x64\x69\x65\x6E\x74\x54\x79\x70\x65\x3D\x27","\x70\x61\x69\x6E\x74\x4C\x69\x6E\x65","\x61\x72\x72\x6F\x77\x57\x69\x64\x74\x68","\x41\x52\x52\x4F\x57\x5F\x57\x49\x44\x54\x48","\x41\x52\x52\x4F\x57\x5F\x53\x50\x41\x43\x49\x4E\x47","\x41\x52\x52\x4F\x57\x5F\x53\x49\x5A\x45","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x53\x54\x59\x4C\x45","\x63\x6C\x69\x70\x70\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x4C\x65\x66\x74","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x52\x69\x67\x68\x74","\x72\x65\x70\x6C\x61\x63\x65\x4C\x69\x6E\x65\x66\x65\x65\x64\x73","\x69\x67\x6E\x6F\x72\x65\x43\x6C\x69\x70\x70\x65\x64\x53\x74\x72\x69\x6E\x67\x53\x69\x7A\x65","\x69\x67\x6E\x6F\x72\x65\x53\x74\x72\x69\x6E\x67\x53\x69\x7A\x65","\x74\x65\x78\x74\x44\x69\x76","\x75\x70\x64\x61\x74\x65\x53\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x75\x70\x64\x61\x74\x65\x56\x61\x6C\x75\x65","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x46\x69\x6C\x74\x65\x72","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x4F\x72\x69\x67\x69\x6E","\x25\x20","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x25\x2C","\x25\x29\x73\x63\x61\x6C\x65\x28","\x29\x20\x72\x6F\x74\x61\x74\x65\x28","\x64\x65\x67\x29","\x30\x25\x20\x30\x25","\x25\x29","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20","\x3C\x64\x69\x76\x20\x73\x74\x79\x6C\x65\x3D\x22\x7A\x6F\x6F\x6D\x3A\x31\x3B","\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x5F\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x3B\x70\x61\x64\x64\x69\x6E\x67\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x31\x70\x78\x3B\x70\x61\x64\x64\x69\x6E\x67\x2D\x72\x69\x67\x68\x74\x3A\x31\x70\x78\x3B\x6C\x69\x6E\x65\x2D\x68\x65\x69\x67\x68\x74\x3A","\x75\x70\x64\x61\x74\x65\x4D\x61\x72\x67\x69\x6E","\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x70\x72\x65\x73\x65\x72\x76\x65\x49\x6D\x61\x67\x65\x41\x73\x70\x65\x63\x74","\x69\x6D\x61\x67\x65\x46\x6C\x69\x70\x48","\x69\x6D\x61\x67\x65\x46\x6C\x69\x70\x56","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x72\x6F\x74\x61\x74\x69\x6F\x6E\x3D\x32\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x6D\x69\x72\x72\x6F\x72\x3D\x31\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x72\x6F\x74\x61\x74\x69\x6F\x6E\x3D\x32\x2C\x20\x6D\x69\x72\x72\x6F\x72\x3D\x31\x29","\x69\x6D\x61\x67\x65\x53\x69\x7A\x65","\x44\x45\x46\x41\x55\x4C\x54\x5F\x49\x4D\x41\x47\x45\x53\x49\x5A\x45","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x69\x7A\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72","\x70\x61\x69\x6E\x74\x49\x6D\x61\x67\x65","\x70\x61\x69\x6E\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72","\x67\x65\x74\x49\x6D\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x53\x54\x59\x4C\x45\x5F\x43\x55\x52\x56\x45\x44","\x70\x61\x69\x6E\x74\x43\x75\x72\x76\x65\x64\x4C\x69\x6E\x65","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x53\x49\x5A\x45","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x53\x49\x5A\x45","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x46\x49\x4C\x4C","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x46\x49\x4C\x4C","\x70\x61\x69\x6E\x74\x52\x6F\x75\x6E\x64\x65\x64\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x70\x61\x69\x6E\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x70\x61\x69\x6E\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x75\x73\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x6D\x6F\x76\x65\x43\x65\x6C\x6C","\x67\x65\x74\x47\x72\x61\x70\x68","\x67\x65\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x72\x61\x76\x65\x72\x73\x65","\x67\x65\x74\x45\x64\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x41\x74","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x69\x73\x56\x65\x72\x74\x65\x78\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x56\x65\x72\x74\x65\x78\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x45\x64\x67\x65\x49\x67\x6E\x6F\x72\x65\x64","\x73\x65\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x4F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x4F\x66\x66\x73\x65\x74","\x69\x73\x41\x6E\x63\x65\x73\x74\x6F\x72","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x65\x74\x45\x64\x67\x65\x50\x6F\x69\x6E\x74\x73","\x73\x65\x74\x52\x65\x6C\x61\x74\x69\x76\x65","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x65\x74\x56\x65\x72\x74\x65\x78\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x56\x65\x72\x74\x65\x78\x42\x6F\x75\x6E\x64\x73","\x61\x72\x72\x61\x6E\x67\x65\x47\x72\x6F\x75\x70\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x56\x65\x72\x74\x69\x63\x65\x73","\x67\x65\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78\x46\x72\x6F\x6D\x47\x65\x6F\x6D\x65\x74\x72\x79","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x67\x65\x74\x53\x74\x61\x72\x74\x53\x69\x7A\x65","\x78\x30","\x79\x30","\x6B\x65\x65\x70\x46\x69\x72\x73\x74\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x72\x65\x73\x69\x7A\x65\x50\x61\x72\x65\x6E\x74","\x72\x65\x73\x69\x7A\x65\x4C\x61\x73\x74","\x69\x73\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x67\x65\x74\x49\x6E\x64\x65\x78","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x53\x69\x7A\x65","\x69\x73\x4C\x61\x79\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x72\x65\x73\x69\x7A\x65\x56\x65\x72\x74\x69\x63\x65\x73","\x69\x6E\x76\x65\x72\x74","\x67\x72\x6F\x75\x70\x50\x61\x64\x64\x69\x6E\x67","\x70\x61\x72\x65\x6E\x74\x73\x43\x68\x61\x6E\x67\x65\x64","\x6D\x6F\x76\x65\x54\x72\x65\x65","\x6C\x65\x76\x65\x6C\x44\x69\x73\x74\x61\x6E\x63\x65","\x6E\x6F\x64\x65\x44\x69\x73\x74\x61\x6E\x63\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73","\x70\x72\x65\x66\x48\x6F\x7A\x45\x64\x67\x65\x53\x65\x70","\x70\x72\x65\x66\x56\x65\x72\x74\x45\x64\x67\x65\x4F\x66\x66","\x6D\x69\x6E\x45\x64\x67\x65\x4A\x65\x74\x74\x79","\x63\x68\x61\x6E\x6E\x65\x6C\x42\x75\x66\x66\x65\x72","\x65\x64\x67\x65\x52\x6F\x75\x74\x69\x6E\x67","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x54\x72\x65\x65\x52\x6F\x6F\x74\x73","\x64\x66\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x4C\x61\x79\x6F\x75\x74","\x6D\x6F\x76\x65\x4E\x6F\x64\x65","\x61\x64\x6A\x75\x73\x74\x50\x61\x72\x65\x6E\x74\x73","\x6C\x6F\x63\x61\x6C\x45\x64\x67\x65\x50\x72\x6F\x63\x65\x73\x73\x69\x6E\x67","\x6E\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x4E\x6F\x64\x65","\x61\x74\x74\x61\x63\x68\x50\x61\x72\x65\x6E\x74","\x6C\x61\x79\x6F\x75\x74\x4C\x65\x61\x66","\x6F\x66\x66\x73\x65\x74\x58","\x6F\x66\x66\x73\x65\x74\x59","\x75\x70\x70\x65\x72\x48\x65\x61\x64","\x63\x6F\x6E\x74\x6F\x75\x72","\x63\x72\x65\x61\x74\x65\x4C\x69\x6E\x65","\x6C\x6F\x77\x65\x72\x48\x65\x61\x64","\x75\x70\x70\x65\x72\x54\x61\x69\x6C","\x6C\x6F\x77\x65\x72\x54\x61\x69\x6C","\x6D\x65\x72\x67\x65","\x62\x72\x69\x64\x67\x65","\x73\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x70\x72\x6F\x63\x65\x73\x73\x4E\x6F\x64\x65\x4F\x75\x74\x67\x6F\x69\x6E\x67","\x67\x65\x74\x45\x64\x67\x65\x73\x42\x65\x74\x77\x65\x65\x6E","\x77\x65\x69\x67\x68\x74\x65\x64\x56\x61\x6C\x75\x65","\x6E\x75\x64\x67\x65","\x76\x69\x73\x69\x74\x65\x64","\x72\x61\x6E\x6B\x49\x6E\x64\x65\x78","\x75\x73\x65\x49\x6E\x70\x75\x74\x4F\x72\x69\x67\x69\x6E","\x64\x69\x73\x61\x62\x6C\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x66\x6F\x72\x63\x65\x43\x6F\x6E\x73\x74\x61\x6E\x74","\x66\x6F\x72\x63\x65\x43\x6F\x6E\x73\x74\x61\x6E\x74\x53\x71\x75\x61\x72\x65\x64","\x6D\x69\x6E\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74","\x6D\x61\x78\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74","\x6D\x69\x6E\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74\x53\x71\x75\x61\x72\x65\x64","\x69\x6E\x69\x74\x69\x61\x6C\x54\x65\x6D\x70","\x74\x65\x6D\x70\x65\x72\x61\x74\x75\x72\x65","\x6D\x61\x78\x49\x74\x65\x72\x61\x74\x69\x6F\x6E\x73","\x69\x74\x65\x72\x61\x74\x69\x6F\x6E","\x61\x6C\x6C\x6F\x77\x65\x64\x54\x6F\x52\x75\x6E","\x76\x65\x72\x74\x65\x78\x41\x72\x72\x61\x79","\x67\x65\x74\x42\x6F\x75\x6E\x64\x73","\x69\x6E\x64\x69\x63\x65\x73","\x64\x69\x73\x70\x58","\x64\x69\x73\x70\x59","\x63\x65\x6C\x6C\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x69\x73\x4D\x6F\x76\x65\x61\x62\x6C\x65","\x6E\x65\x69\x67\x68\x62\x6F\x75\x72\x73","\x72\x61\x64\x69\x75\x73","\x72\x61\x64\x69\x75\x73\x53\x71\x75\x61\x72\x65\x64","\x67\x65\x74\x4F\x70\x70\x6F\x73\x69\x74\x65\x73","\x72\x65\x73\x65\x74\x45\x64\x67\x65","\x63\x61\x6C\x63\x52\x65\x70\x75\x6C\x73\x69\x6F\x6E","\x63\x61\x6C\x63\x41\x74\x74\x72\x61\x63\x74\x69\x6F\x6E","\x63\x61\x6C\x63\x50\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x72\x65\x64\x75\x63\x65\x54\x65\x6D\x70\x65\x72\x61\x74\x75\x72\x65","\x72\x61\x6E\x64\x6F\x6D","\x6D\x6F\x76\x65\x43\x69\x72\x63\x6C\x65","\x67\x65\x74\x52\x61\x64\x69\x75\x73","\x63\x69\x72\x63\x6C\x65","\x66\x69\x6E\x64\x50\x61\x72\x61\x6C\x6C\x65\x6C\x73","\x67\x65\x74\x45\x64\x67\x65\x49\x64","\x72\x6F\x75\x74\x65","\x6C\x61\x79\x6F\x75\x74\x73","\x6D\x61\x73\x74\x65\x72","\x70\x6C\x61\x63\x65\x4C\x61\x62\x65\x6C\x73","\x61\x76\x6F\x69\x64","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x74\x65\x6D\x70","\x6D\x61\x78\x52\x61\x6E\x6B","\x6D\x69\x6E\x52\x61\x6E\x6B","\x6E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x70\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x4E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x65\x6E\x65\x72\x61\x6C\x50\x75\x72\x70\x6F\x73\x65\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x65\x74\x47\x65\x6E\x65\x72\x61\x6C\x50\x75\x72\x70\x6F\x73\x65\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x65\x74\x58","\x73\x65\x74\x59","\x63\x6F\x6E\x6E\x65\x63\x74\x73\x41\x73\x54\x61\x72\x67\x65\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x73\x41\x73\x53\x6F\x75\x72\x63\x65","\x68\x61\x73\x68\x43\x6F\x64\x65","\x67\x65\x74\x52\x61\x6E\x6B\x56\x61\x6C\x75\x65","\x67\x65\x74\x43\x6F\x72\x65\x43\x65\x6C\x6C","\x65\x64\x67\x65\x73","\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64","\x74\x69\x67\x68\x74\x65\x6E\x54\x6F\x53\x6F\x75\x72\x63\x65","\x72\x6F\x6F\x74\x73","\x76\x65\x72\x74\x65\x78\x4D\x61\x70\x70\x65\x72","\x65\x64\x67\x65\x4D\x61\x70\x70\x65\x72","\x53\x4F\x55\x52\x43\x45\x53\x43\x41\x4E\x53\x54\x41\x52\x54\x52\x41\x4E\x4B","\x63\x72\x65\x61\x74\x65\x49\x6E\x74\x65\x72\x6E\x61\x6C\x43\x65\x6C\x6C\x73","\x72\x61\x6E\x6B\x73","\x64\x66\x73\x43\x6F\x75\x6E\x74","\x69\x6E\x69\x74\x69\x61\x6C\x52\x61\x6E\x6B","\x73\x6C\x69\x63\x65","\x66\x69\x78\x52\x61\x6E\x6B\x73","\x65\x78\x74\x65\x6E\x64\x65\x64\x44\x66\x73","\x6E\x65\x73\x74\x65\x64\x42\x65\x73\x74\x52\x61\x6E\x6B\x73","\x63\x75\x72\x72\x65\x6E\x74\x42\x65\x73\x74\x43\x72\x6F\x73\x73\x69\x6E\x67\x73","\x69\x74\x65\x72\x61\x74\x69\x6F\x6E\x73\x57\x69\x74\x68\x6F\x75\x74\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74","\x6D\x61\x78\x4E\x6F\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x49\x74\x65\x72\x61\x74\x69\x6F\x6E\x73","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x43\x72\x6F\x73\x73\x69\x6E\x67\x73","\x77\x65\x69\x67\x68\x74\x65\x64\x4D\x65\x64\x69\x61\x6E","\x74\x72\x61\x6E\x73\x70\x6F\x73\x65","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x52\x61\x6E\x6B\x43\x72\x6F\x73\x73\x69\x6E\x67","\x6D\x65\x64\x69\x61\x6E\x52\x61\x6E\x6B","\x6D\x65\x64\x69\x61\x6E\x56\x61\x6C\x75\x65","\x6C\x65\x6E\x74\x68","\x67\x65\x74\x49\x6E\x63\x6F\x6D\x69\x6E\x67\x45\x64\x67\x65\x73","\x69\x6E\x74\x72\x61\x43\x65\x6C\x6C\x53\x70\x61\x63\x69\x6E\x67","\x69\x6E\x74\x65\x72\x52\x61\x6E\x6B\x43\x65\x6C\x6C\x53\x70\x61\x63\x69\x6E\x67","\x6F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x58","\x70\x61\x72\x61\x6C\x6C\x65\x6C\x45\x64\x67\x65\x53\x70\x61\x63\x69\x6E\x67","\x6A\x65\x74\x74\x79\x50\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6C\x69\x6D\x69\x74\x58","\x63\x75\x72\x72\x65\x6E\x74\x58\x44\x65\x6C\x74\x61","\x77\x69\x64\x65\x73\x74\x52\x61\x6E\x6B","\x72\x61\x6E\x6B\x54\x6F\x70\x59","\x72\x61\x6E\x6B\x42\x6F\x74\x74\x6F\x6D\x59","\x77\x69\x64\x65\x73\x74\x52\x61\x6E\x6B\x56\x61\x6C\x75\x65","\x72\x61\x6E\x6B\x57\x69\x64\x74\x68\x73","\x72\x61\x6E\x6B\x59","\x66\x69\x6E\x65\x54\x75\x6E\x69\x6E\x67","\x50\x4F\x4C\x59\x4C\x49\x4E\x45","\x6E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x61\x63\x68\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x61\x63\x68\x65","\x70\x72\x69\x6E\x74\x53\x74\x61\x74\x75\x73","\x3D\x3D\x3D\x3D\x3D\x3D\x43\x6F\x6F\x72\x64\x20\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x20\x64\x65\x62\x75\x67\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x52\x61\x6E\x6B\x20","\x20\x3A\x20","\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x69\x6E\x69\x74\x69\x61\x6C\x43\x6F\x6F\x72\x64\x73","\x6D\x69\x6E\x4E\x6F\x64\x65","\x6D\x65\x64\x69\x61\x6E\x50\x6F\x73","\x6D\x69\x6E\x50\x61\x74\x68","\x73\x65\x74\x43\x65\x6C\x6C\x4C\x6F\x63\x61\x74\x69\x6F\x6E\x73","\x6D\x65\x64\x69\x61\x6E\x58\x56\x61\x6C\x75\x65","\x72\x61\x6E\x6B\x4D\x65\x64\x69\x61\x6E\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x64\x57\x65\x69\x67\x68\x74\x65\x64\x56\x61\x6C\x75\x65","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x57\x69\x64\x65\x73\x74\x52\x61\x6E\x6B","\x72\x61\x6E\x6B\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x65\x64\x67\x65\x2E\x65\x64\x67\x65\x73\x20\x69\x73\x20\x6E\x75\x6C\x6C","\x41\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x63\x65\x6C\x6C\x20\x68\x61\x73\x20\x6E\x6F\x20\x62\x6F\x75\x6E\x64\x73","\x72\x65\x70\x6F\x73\x69\x74\x69\x6F\x6E\x56\x61\x6C\x69\x64","\x4D\x41\x58\x5F\x56\x41\x4C\x55\x45","\x4F\x52\x54\x48\x4F\x47\x4F\x4E\x41\x4C","\x43\x55\x52\x56\x45","\x73\x65\x74\x45\x64\x67\x65\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x73\x50\x6F\x72\x74","\x70\x72\x6F\x63\x65\x73\x73\x52\x65\x76\x65\x72\x73\x65\x64\x45\x64\x67\x65","\x64\x65\x74\x65\x72\x6D\x69\x6E\x69\x73\x74\x69\x63","\x6D\x6F\x76\x65\x50\x61\x72\x65\x6E\x74","\x70\x61\x72\x65\x6E\x74\x42\x6F\x72\x64\x65\x72","\x69\x6E\x74\x65\x72\x48\x69\x65\x72\x61\x72\x63\x68\x79\x53\x70\x61\x63\x69\x6E\x67","\x74\x72\x61\x76\x65\x72\x73\x65\x41\x6E\x63\x65\x73\x74\x6F\x72\x73","\x65\x64\x67\x65\x73\x43\x61\x63\x68\x65","\x72\x75\x6E","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x66\x69\x6E\x64\x52\x6F\x6F\x74\x73","\x63\x6F\x6E\x63\x61\x74","\x69\x73\x56\x61\x6C\x69\x64\x41\x6E\x63\x65\x73\x74\x6F\x72","\x66\x69\x6C\x74\x65\x72\x44\x65\x73\x63\x65\x6E\x64\x61\x6E\x74\x73","\x63\x79\x63\x6C\x65\x53\x74\x61\x67\x65","\x6C\x61\x79\x65\x72\x69\x6E\x67\x53\x74\x61\x67\x65","\x63\x72\x6F\x73\x73\x69\x6E\x67\x53\x74\x61\x67\x65","\x70\x6C\x61\x63\x65\x6D\x65\x6E\x74\x53\x74\x61\x67\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x64\x69\x74","\x73\x65\x74\x52\x6F\x6F\x74","\x6D\x61\x69\x6E\x74\x61\x69\x6E\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x49\x64\x73","\x70\x6F\x73\x74\x66\x69\x78","\x6E\x65\x78\x74\x49\x64","\x75\x70\x64\x61\x74\x65\x4C\x65\x76\x65\x6C","\x65\x6E\x64\x69\x6E\x67\x55\x70\x64\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x52\x6F\x6F\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x49\x64\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x49\x64\x73","\x69\x6E\x73\x65\x72\x74","\x66\x69\x6C\x74\x65\x72\x43\x65\x6C\x6C\x73","\x67\x65\x74\x44\x65\x73\x63\x65\x6E\x64\x61\x6E\x74\x73","\x72\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65\x64","\x63\x65\x6C\x6C\x41\x64\x64\x65\x64","\x69\x73\x52\x6F\x6F\x74","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65\x49\x64","\x73\x65\x74\x49\x64","\x69\x73\x4E\x75\x6D\x65\x72\x69\x63","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x4E\x65\x61\x72\x65\x73\x74\x43\x6F\x6D\x6D\x6F\x6E\x41\x6E\x63\x65\x73\x74\x6F\x72","\x67\x65\x74\x4F\x72\x69\x67\x69\x6E","\x50\x41\x54\x48\x5F\x53\x45\x50\x41\x52\x41\x54\x4F\x52","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x50\x61\x74\x68","\x70\x61\x72\x65\x6E\x74\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x43\x68\x69\x6C\x64\x72\x65\x6E","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x74\x65\x72\x6D\x69\x6E\x61\x6C\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x69\x6E\x73\x65\x72\x74\x45\x64\x67\x65","\x72\x65\x6D\x6F\x76\x65\x45\x64\x67\x65","\x67\x65\x74\x44\x69\x72\x65\x63\x74\x65\x64\x45\x64\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x4F\x75\x74\x67\x6F\x69\x6E\x67\x45\x64\x67\x65\x73","\x67\x65\x74\x54\x6F\x70\x6D\x6F\x73\x74\x43\x65\x6C\x6C\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x76\x61\x6C\x75\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x76\x61\x6C\x75\x65\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x6F\x6D\x65\x74\x72\x79\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x73\x74\x79\x6C\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x69\x73\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x73\x65\x74\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x76\x69\x73\x69\x62\x6C\x65\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x6D\x65\x72\x67\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x6D\x65\x72\x67\x65\x43\x68\x69\x6C\x64\x72\x65\x6E\x49\x6D\x70\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x73","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x49\x6D\x70\x6C","\x72\x65\x73\x74\x6F\x72\x65\x43\x6C\x6F\x6E\x65","\x63\x65\x6C\x6C\x43\x6C\x6F\x6E\x65\x64","\x70\x72\x65\x76\x69\x6F\x75\x73\x49\x6E\x64\x65\x78","\x69\x6E\x64\x65\x78","\x74\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x61\x74\x74\x72\x69\x62\x75\x74\x65","\x6F\x6E\x49\x6E\x69\x74","\x76\x65\x72\x74\x65\x78","\x65\x64\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x6D\x78\x54\x72\x61\x6E\x73\x69\x65\x6E\x74","\x69\x64\x20\x76\x61\x6C\x75\x65\x20\x70\x61\x72\x65\x6E\x74\x20\x73\x6F\x75\x72\x63\x65\x20\x74\x61\x72\x67\x65\x74\x20\x63\x68\x69\x6C\x64\x72\x65\x6E\x20\x65\x64\x67\x65\x73","\x73\x65\x74\x56\x65\x72\x74\x65\x78","\x73\x65\x74\x45\x64\x67\x65","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x50\x61\x72\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x49\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x6C\x6F\x6E\x65\x56\x61\x6C\x75\x65","\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x43\x4F\x4E\x54\x52\x4F\x4C\x5F\x50\x4F\x49\x4E\x54\x53","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65\x50\x6F\x69\x6E\x74","\x74\x61\x72\x67\x65\x74\x50\x6F\x69\x6E\x74","\x73\x77\x61\x70","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x74\x61\x6E","\x70\x6F\x77","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x50\x72\x69\x6E\x74\x65\x72\x2D\x66\x72\x69\x65\x6E\x64\x6C\x79\x20\x76\x65\x72\x73\x69\x6F\x6E","\x70\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x61\x75\x74\x6F\x4F\x72\x69\x67\x69\x6E","\x70\x72\x69\x6E\x74\x4F\x76\x65\x72\x6C\x61\x79\x73","\x77\x6E\x64","\x70\x61\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x57\x69\x6E\x64\x6F\x77","\x67\x65\x74\x44\x6F\x63\x74\x79\x70\x65","\x3C\x6D\x65\x74\x61\x20\x68\x74\x74\x70\x2D\x65\x71\x75\x69\x76\x3D\x22\x58\x2D\x55\x41\x2D\x43\x6F\x6D\x70\x61\x74\x69\x62\x6C\x65\x22\x20\x63\x6F\x6E\x74\x65\x6E\x74\x3D\x22\x49\x45\x3D\x38\x22\x3E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x4F\x76\x65\x72\x6C\x61\x79","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x77\x72\x69\x74\x65\x48\x65\x61\x64","\x3C\x62\x6F\x64\x79\x20\x63\x6C\x61\x73\x73\x3D\x22\x6D\x78\x50\x61\x67\x65\x22\x3E","\x63\x72\x65\x61\x74\x65\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x41\x66\x74\x65\x72","\x61\x6C\x77\x61\x79\x73","\x6D\x78\x50\x61\x67\x65\x42\x72\x65\x61\x6B","\x67\x65\x74\x43\x6F\x76\x65\x72\x50\x61\x67\x65\x73","\x67\x65\x74\x41\x70\x70\x65\x6E\x64\x69\x63\x65\x73","\x61\x64\x64\x47\x72\x61\x70\x68\x46\x72\x61\x67\x6D\x65\x6E\x74","\x72\x65\x6E\x64\x65\x72\x50\x61\x67\x65","\x6D\x78\x50\x61\x67\x65\x2D","\x3C\x74\x69\x74\x6C\x65\x3E","\x3C\x2F\x74\x69\x74\x6C\x65\x3E","\x3C\x73\x74\x79\x6C\x65\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x3E","\x40\x6D\x65\x64\x69\x61\x20\x70\x72\x69\x6E\x74\x20\x7B","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x7B\x20\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x6E\x6F\x6E\x65\x3B\x20\x7D","\x20\x20\x68\x72\x2E\x6D\x78\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x20\x7B\x20\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x6E\x6F\x6E\x65\x3B\x20\x7D","\x40\x6D\x65\x64\x69\x61\x20\x73\x63\x72\x65\x65\x6E\x20\x7B","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x7B\x20\x70\x6F\x73\x69\x74\x69\x6F\x6E\x3A\x20\x66\x69\x78\x65\x64\x3B\x20\x72\x69\x67\x68\x74\x3A\x20\x31\x30\x70\x78\x3B\x20\x74\x6F\x70\x3A\x20\x31\x30\x70\x78\x3B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x41\x72\x69\x61\x6C\x3B\x20\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A\x31\x30\x70\x74\x3B\x20\x62\x6F\x72\x64\x65\x72\x3A\x20\x73\x6F\x6C\x69\x64\x20\x31\x70\x78\x20\x64\x61\x72\x6B\x67\x72\x61\x79\x3B\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x3A\x20\x77\x68\x69\x74\x65\x3B\x20\x62\x6F\x72\x64\x65\x72\x2D\x63\x6F\x6C\x6C\x61\x70\x73\x65\x3A\x63\x6F\x6C\x6C\x61\x70\x73\x65\x3B\x20\x7D","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x74\x64\x20\x7B\x20\x62\x6F\x72\x64\x65\x72\x3A\x20\x73\x6F\x6C\x69\x64\x20\x31\x70\x78\x20\x67\x72\x61\x79\x3B\x20\x70\x61\x64\x64\x69\x6E\x67\x3A\x34\x70\x78\x3B\x20\x7D","\x20\x20\x62\x6F\x64\x79\x2E\x6D\x78\x50\x61\x67\x65\x20\x7B\x20\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x3A\x20\x67\x72\x61\x79\x3B\x20\x7D","\x3C\x2F\x73\x74\x79\x6C\x65\x3E","\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x61","\x23\x6D\x78\x50\x61\x67\x65\x2D","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x49\x6E\x73\x69\x64\x65","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x73\x74\x79\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x70\x75\x74\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x70\x75\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x53\x48\x41\x50\x45","\x53\x48\x41\x50\x45\x5F\x52\x45\x43\x54\x41\x4E\x47\x4C\x45","\x53\x54\x59\x4C\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x52\x65\x63\x74\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x53\x54\x59\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x43\x33\x44\x39\x46\x46","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x36\x34\x38\x32\x42\x39","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x43\x4F\x4C\x4F\x52","\x23\x37\x37\x34\x34\x30\x30","\x53\x48\x41\x50\x45\x5F\x43\x4F\x4E\x4E\x45\x43\x54\x4F\x52","\x23\x34\x34\x36\x32\x39\x39","\x64\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78","\x70\x75\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6F\x72\x69\x67\x69\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65\x4F\x66\x66\x73\x65\x74","\x69\x6E\x76\x61\x6C\x69\x64","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x64\x65\x72","\x6F\x72\x64\x65\x72\x43\x68\x61\x6E\x67\x65\x64","\x76\x69\x73\x69\x62\x6C\x65\x53\x6F\x75\x72\x63\x65\x53\x74\x61\x74\x65","\x76\x69\x73\x69\x62\x6C\x65\x54\x61\x72\x67\x65\x74\x53\x74\x61\x74\x65","\x74\x65\x72\x6D\x69\x6E\x61\x6C\x44\x69\x73\x74\x61\x6E\x63\x65","\x73\x65\x67\x6D\x65\x6E\x74\x73","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x42\x6F\x75\x6E\x64\x73","\x73\x65\x74\x41\x62\x73\x6F\x6C\x75\x74\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x73\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x64\x6F\x6E\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x69\x73\x53\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x68\x61\x6E\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x43\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x73","\x67\x65\x74\x46\x69\x72\x73\x74\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x61\x64\x64\x43\x65\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x61\x64\x64\x65\x64","\x72\x65\x6D\x6F\x76\x65\x64","\x6D\x78\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x68\x61\x6E\x67\x65\x2E\x65\x78\x65\x63\x75\x74\x65","\x65\x6E\x74\x65\x72","\x6C\x65\x61\x76\x65","\x65\x64\x69\x74\x69\x6E\x67\x43\x65\x6C\x6C","\x74\x72\x69\x67\x67\x65\x72","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x61\x75\x74\x6F\x53\x69\x7A\x65","\x65\x6D\x70\x74\x79\x4C\x61\x62\x65\x6C\x54\x65\x78\x74","\x74\x65\x78\x74\x4E\x6F\x64\x65","\x6D\x78\x43\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x63\x6F\x6C\x73","\x32\x30","\x34","\x62\x6C\x75\x72","\x66\x6F\x63\x75\x73\x4C\x6F\x73\x74","\x6B\x65\x79\x64\x6F\x77\x6E","\x6B\x65\x79\x43\x6F\x64\x65","\x69\x73\x45\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x73\x74\x6F\x70\x45\x64\x69\x74\x69\x6E\x67","\x63\x6C\x65\x61\x72\x4F\x6E\x43\x68\x61\x6E\x67\x65","\x73\x65\x74\x4D\x6F\x64\x69\x66\x69\x65\x64","\x6B\x65\x79\x70\x72\x65\x73\x73","\x69\x73\x4C\x61\x62\x65\x6C\x43\x6C\x69\x70\x70\x65\x64","\x69\x73\x57\x72\x61\x70\x70\x69\x6E\x67","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x69\x73\x4D\x6F\x64\x69\x66\x69\x65\x64","\x69\x73\x49\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x69\x73\x48\x69\x64\x65\x4C\x61\x62\x65\x6C","\x6F\x75\x74\x6C\x69\x6E\x65","\x67\x65\x74\x45\x64\x69\x74\x6F\x72\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x56\x61\x6C\x75\x65","\x67\x65\x74\x45\x6D\x70\x74\x79\x4C\x61\x62\x65\x6C\x54\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x44\x69\x76","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x56\x61\x6C\x75\x65","\x67\x65\x74\x45\x64\x69\x74\x69\x6E\x67\x56\x61\x6C\x75\x65","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x54\x4F\x50","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x52\x49\x47\x48\x54","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x42\x4F\x54\x54\x4F\x4D","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x4C\x45\x46\x54","\x67\x65\x74\x45\x64\x69\x74\x69\x6E\x67\x43\x65\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x64\x65\x66\x61\x75\x6C\x74\x54\x65\x78\x74\x53\x68\x61\x70\x65","\x6C\x65\x67\x61\x63\x79\x43\x6F\x6E\x74\x72\x6F\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72\x53\x68\x61\x70\x65","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x70\x65","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x53\x68\x61\x70\x65","\x6F\x72\x64\x65\x72\x65\x64","\x6B\x65\x65\x70\x45\x64\x67\x65\x73\x49\x6E\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x66\x69\x72\x73\x74\x45\x64\x67\x65","\x69\x6E\x73\x65\x72\x74\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x69\x6E\x73\x74\x61\x6C\x6C\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x67\x65\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x53\x74\x61\x74\x65\x49\x6E\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x69\x6E\x64\x50\x72\x65\x76\x69\x6F\x75\x73\x53\x74\x61\x74\x65\x49\x6E\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x72\x64\x65\x72","\x6F\x72\x64\x65\x72\x45\x64\x67\x65","\x6B\x65\x65\x70\x45\x64\x67\x65\x73\x49\x6E\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x53\x68\x61\x70\x65\x43\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x53\x68\x61\x70\x65","\x67\x65\x74\x53\x68\x61\x70\x65","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x68\x61\x70\x65","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x47\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x49\x6D\x61\x67\x65","\x70\x6F\x73\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x65\x53\x68\x61\x70\x65","\x72\x65\x73\x6F\x6C\x76\x65\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x6E\x64\x69\x63\x61\x74\x65\x64","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x67\x65\x74\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x54\x59\x4C\x45","\x53\x54\x59\x4C\x45\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x42\x41\x43\x4B\x47\x52\x4F\x55\x4E\x44\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x42\x4F\x52\x44\x45\x52\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x4F\x56\x45\x52\x46\x4C\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x41\x44\x44\x49\x4E\x47","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x4C\x61\x62\x65\x6C","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x69\x73\x4C\x61\x62\x65\x6C\x45\x76\x65\x6E\x74","\x49\x4D\x47","\x4E\x4F\x5F\x46\x4F","\x67\x65\x74\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x6F\x76\x65\x72\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x74\x72\x6F\x6C","\x67\x65\x74\x46\x6F\x6C\x64\x69\x6E\x67\x49\x6D\x61\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6E\x74\x72\x6F\x6C","\x69\x6E\x69\x74\x43\x6F\x6E\x74\x72\x6F\x6C","\x44\x49\x41\x4C\x45\x43\x54\x5F\x50\x52\x45\x46\x45\x52\x48\x54\x4D\x4C","\x69\x6E\x6E\x65\x72\x4E\x6F\x64\x65","\x69\x73\x53\x68\x61\x70\x65\x45\x76\x65\x6E\x74","\x67\x65\x73\x74\x75\x72\x65\x73\x74\x61\x72\x74","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x54\x69\x6D\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x67\x65\x73\x74\x75\x72\x65\x45\x6E\x61\x62\x6C\x65\x64","\x68\x61\x6E\x64\x6C\x65\x47\x65\x73\x74\x75\x72\x65","\x72\x65\x64\x72\x61\x77\x4C\x61\x62\x65\x6C","\x67\x65\x74\x4C\x61\x62\x65\x6C\x42\x6F\x75\x6E\x64\x73","\x69\x73\x43\x6C\x69\x70\x70\x69\x6E\x67","\x67\x65\x74\x54\x65\x78\x74\x53\x63\x61\x6C\x65","\x72\x6F\x74\x61\x74\x65\x4C\x61\x62\x65\x6C\x42\x6F\x75\x6E\x64\x73","\x72\x65\x64\x72\x61\x77\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x72\x65\x64\x72\x61\x77\x43\x6F\x6E\x74\x72\x6F\x6C","\x67\x65\x74\x43\x6F\x6E\x74\x72\x6F\x6C\x42\x6F\x75\x6E\x64\x73","\x65\x71\x75\x61\x6C\x45\x6E\x74\x72\x69\x65\x73","\x65\x71\x75\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x67\x65\x74\x50\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x67\x65\x74\x52\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x59","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D\x43\x6F\x6E\x74\x72\x6F\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x52\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x58","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x6F\x72\x74\x68\x42\x75\x66\x66\x65\x72","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x41\x4C\x4C","\x6C\x69\x6D\x69\x74\x73","\x76\x65\x72\x74\x65\x78\x53\x65\x70\x65\x72\x61\x74\x69\x6F\x6E\x73","\x72\x65\x76\x65\x72\x73\x65\x50\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x72\x6F\x75\x74\x65\x50\x61\x74\x74\x65\x72\x6E\x73","\x77\x61\x79\x50\x6F\x69\x6E\x74\x73\x31","\x64\x69\x72\x56\x65\x63\x74\x6F\x72\x73","\x54\x41\x52\x47\x45\x54\x5F\x4D\x41\x53\x4B","\x53\x4F\x55\x52\x43\x45\x5F\x4D\x41\x53\x4B","\x53\x49\x44\x45\x5F\x4D\x41\x53\x4B","\x43\x45\x4E\x54\x45\x52\x5F\x4D\x41\x53\x4B","\x76\x61\x6C\x75\x65\x73","\x70\x75\x74\x56\x61\x6C\x75\x65","\x67\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x45\x4D\x50\x54\x59\x5F\x50\x4F\x49\x4E\x54","\x75\x70\x64\x61\x74\x69\x6E\x67\x44\x6F\x63\x75\x6D\x65\x6E\x74\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x61\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x63\x61\x70\x74\x75\x72\x65\x44\x6F\x63\x75\x6D\x65\x6E\x74\x47\x65\x73\x74\x75\x72\x65","\x6F\x70\x74\x69\x6D\x69\x7A\x65\x56\x6D\x6C\x52\x65\x66\x6C\x6F\x77\x73","\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x73\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x73\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x53\x63\x61\x6C\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x65\x74\x53\x63\x61\x6C\x65","\x69\x6E\x76\x61\x6C\x69\x64\x61\x74\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x53\x74\x61\x74\x65","\x6D\x78\x47\x72\x61\x70\x68\x56\x69\x65\x77\x2E\x76\x61\x6C\x69\x64\x61\x74\x65","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x76\x61\x6C\x69\x64\x61\x74\x65\x50\x6F\x69\x6E\x74\x73","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x75\x70\x64\x61\x74\x65\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x4F\x66\x66\x73\x65\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x4F\x66\x66\x73\x65\x74\x46\x6F\x72\x43\x65\x6C\x6C","\x75\x70\x64\x61\x74\x65\x46\x69\x78\x65\x64\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x46\x6C\x6F\x61\x74\x69\x6E\x67\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x4F\x66\x66\x73\x65\x74","\x63\x68\x69\x6C\x64\x4D\x6F\x76\x65\x64","\x69\x73\x52\x65\x6E\x64\x65\x72\x69\x6E\x67","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x46\x69\x78\x65\x64\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x72\x74","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x6F\x70\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x69\x73\x41\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x75\x70\x64\x61\x74\x65\x46\x6C\x6F\x61\x74\x69\x6E\x67\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x4E\x65\x78\x74\x50\x6F\x69\x6E\x74","\x69\x73\x4F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x53\x4F\x55\x52\x43\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x54\x41\x52\x47\x45\x54\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x53\x4F\x55\x52\x43\x45\x5F\x50\x4F\x52\x54","\x53\x54\x59\x4C\x45\x5F\x54\x41\x52\x47\x45\x54\x5F\x50\x4F\x52\x54","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x55\x54\x49\x4E\x47\x5F\x43\x45\x4E\x54\x45\x52\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x55\x54\x49\x4E\x47\x5F\x43\x45\x4E\x54\x45\x52\x5F\x59","\x67\x65\x74\x52\x65\x6C\x61\x74\x69\x76\x65\x50\x6F\x69\x6E\x74","\x72\x65\x6C\x61\x74\x69\x76\x65\x43\x63\x77","\x73\x65\x74\x52\x65\x6E\x64\x65\x72\x69\x6E\x67","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x67\x65\x74\x53\x74\x61\x74\x65\x73","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x61\x74\x65\x73","\x69\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x63\x72\x6F\x6C\x6C\x45\x76\x65\x6E\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x65\x6E\x64\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x48\x74\x6D\x6C\x50\x61\x6E\x65","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x43\x61\x6E\x76\x61\x73\x53\x69\x7A\x65","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C\x50\x61\x6E\x65","\x63\x6F\x6F\x72\x64\x6F\x72\x69\x67\x69\x6E","\x30\x2C\x30","\x73\x74\x61\x74\x69\x63","\x69\x73\x55\x70","\x67\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65\x46\x6F\x72\x52\x6F\x6F\x74","\x55\x50","\x44\x4F\x57\x4E","\x6D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x72\x65\x6E\x64\x65\x72\x48\x69\x6E\x74","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x45\x58\x41\x43\x54","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x46\x41\x53\x54\x45\x53\x54","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x46\x41\x53\x54\x45\x52","\x44\x49\x41\x4C\x45\x43\x54\x5F\x4D\x49\x58\x45\x44\x48\x54\x4D\x4C","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x69\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x73\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x70\x68\x56\x69\x65\x77","\x67\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x67\x72\x61\x70\x68","\x45\x4D\x50\x54\x59\x5F\x41\x52\x52\x41\x59","\x63\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x70\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x54\x69\x6D\x65\x6F\x75\x74","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x59","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x64\x65\x66\x61\x75\x6C\x74\x4F\x76\x65\x72\x6C\x61\x70","\x64\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x65\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x65\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x65\x78\x70\x6F\x72\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x6D\x70\x6F\x72\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x63\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x65\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x76\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x64\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x74\x69\x6D\x65\x72\x41\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x67\x6E\x6F\x72\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x78\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x53\x69\x7A\x65","\x6D\x69\x6E\x69\x6D\x75\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x6D\x61\x78\x69\x6D\x75\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x72\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x61\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x54\x6F\x50\x72\x65\x66\x65\x72\x72\x65\x64\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x46\x61\x63\x74\x6F\x72","\x6B\x65\x65\x70\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x56\x69\x73\x69\x62\x6C\x65\x4F\x6E\x5A\x6F\x6F\x6D","\x63\x65\x6E\x74\x65\x72\x5A\x6F\x6F\x6D","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x52\x65\x73\x69\x7A\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x4D\x6F\x76\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x4C\x6F\x6F\x70","\x6D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x61\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x63\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x68\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x49\x6D\x61\x67\x65","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66","\x65\x78\x70\x61\x6E\x64\x65\x64\x49\x6D\x61\x67\x65","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66","\x77\x61\x72\x6E\x69\x6E\x67\x49\x6D\x61\x67\x65","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73\x2F\x77\x61\x72\x6E\x69\x6E\x67\x2E\x67\x69\x66","\x61\x6C\x72\x65\x61\x64\x79\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x61\x6C\x72\x65\x61\x64\x79\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x45\x78\x70\x61\x6E\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x2D\x65\x78\x70\x61\x6E\x64","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x75\x6E\x6C\x6F\x61\x64","\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x3C\x76\x3A\x67\x72\x6F\x75\x70\x20\x73\x74\x79\x6C\x65\x3D\x22\x44\x49\x53\x50\x4C\x41\x59\x3A\x20\x6E\x6F\x6E\x65\x3B\x22\x3E\x3C\x2F\x76\x3A\x67\x72\x6F\x75\x70\x3E","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x70\x72\x6F\x63\x65\x73\x73\x43\x68\x61\x6E\x67\x65","\x67\x65\x74\x52\x65\x6D\x6F\x76\x65\x64\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x72\x65\x6D\x6F\x76\x65\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C","\x68\x6F\x6D\x65","\x61\x64\x64\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x63\x6C\x65\x61\x72\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","\x3C\x66\x6F\x6E\x74\x20\x63\x6F\x6C\x6F\x72\x3D\x72\x65\x64\x3E","\x3C\x2F\x66\x6F\x6E\x74\x3E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x69\x73\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x65\x6C\x6C\x53\x69\x7A\x65\x55\x70\x64\x61\x74\x65\x64","\x68\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x41\x74","\x69\x73\x54\x6F\x67\x67\x6C\x65\x45\x76\x65\x6E\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x50\x61\x6E\x6E\x69\x6E\x67\x4D\x61\x6E\x61\x67\x65\x72","\x67\x65\x74\x42\x6F\x72\x64\x65\x72\x53\x69\x7A\x65\x73","\x74\x68\x69\x6E","\x6D\x65\x64\x69\x75\x6D","\x74\x68\x69\x63\x6B","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x70\x61\x64\x64\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x67\x65\x74\x50\x72\x65\x66\x65\x72\x72\x65\x64\x50\x61\x67\x65\x53\x69\x7A\x65","\x67\x65\x74\x42\x6F\x72\x64\x65\x72","\x64\x6F\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x73\x74\x50\x72\x6F\x63\x65\x73\x73\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x67\x65\x74\x49\x6D\x61\x67\x65\x46\x72\x6F\x6D\x42\x75\x6E\x64\x6C\x65\x73","\x64\x61\x74\x61\x3A\x69\x6D\x61\x67\x65\x2F","\x3B\x62\x61\x73\x65\x36\x34\x2C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x61\x64\x64\x49\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65","\x62\x61\x63\x6B","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x47\x72\x6F\x75\x70","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x65\x74\x42\x6F\x75\x6E\x64\x73\x46\x6F\x72\x47\x72\x6F\x75\x70","\x61\x64\x64\x41\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65","\x61\x64\x64\x45\x64\x67\x65","\x69\x73\x41\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64","\x67\x65\x74\x44\x65\x6C\x65\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x6E\x63\x6C\x75\x64\x65\x45\x64\x67\x65\x73","\x6E\x65\x77\x45\x64\x67\x65","\x67\x65\x74\x46\x6F\x6C\x64\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x72\x65\x63\x75\x72\x73\x65","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x73\x77\x61\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x41\x6C\x74\x65\x72\x6E\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x50\x72\x65\x66\x65\x72\x72\x65\x64\x53\x69\x7A\x65\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x41\x6C\x6C\x45\x64\x67\x65\x73","\x69\x67\x6E\x6F\x72\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x53\x48\x41\x50\x45\x5F\x4C\x41\x42\x45\x4C","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45\x5F\x57\x49\x44\x54\x48","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45\x5F\x48\x45\x49\x47\x48\x54","\x67\x65\x74\x53\x69\x7A\x65\x46\x6F\x72\x53\x74\x72\x69\x6E\x67","\x72\x65\x73\x69\x7A\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x69\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x69\x73\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x47\x72\x61\x70\x68","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x43\x65\x6C\x6C\x43\x6F\x6E\x74\x61\x69\x6E\x6D\x65\x6E\x74\x41\x72\x65\x61","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x67\x65\x74\x4D\x61\x78\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x70","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x59","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x59","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x70\x6F\x69\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x46\x4C\x49\x50\x48","\x53\x54\x59\x4C\x45\x5F\x46\x4C\x49\x50\x56","\x69\x73\x50\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x46\x6F\x72\x50\x6F\x72\x74","\x69\x73\x43\x65\x6C\x6C\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x67\x65\x74\x43\x65\x6C\x6C\x42\x6F\x75\x6E\x64\x73","\x73\x68\x69\x66\x74\x50\x72\x65\x76\x69\x65\x77\x31","\x73\x68\x69\x66\x74\x50\x72\x65\x76\x69\x65\x77\x32","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x7A\x6F\x6F\x6D\x41\x63\x74\x75\x61\x6C","\x7A\x6F\x6F\x6D\x54\x6F","\x73\x63\x72\x6F\x6C\x6C\x52\x65\x63\x74\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x7A\x6F\x6F\x6D\x54\x6F\x52\x65\x63\x74","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x4F\x52\x54\x48\x4F\x47\x4F\x4E\x41\x4C","\x53\x65\x67\x6D\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x45\x6C\x62\x6F\x77\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x53\x69\x64\x65\x54\x6F\x53\x69\x64\x65","\x54\x6F\x70\x54\x6F\x42\x6F\x74\x74\x6F\x6D","\x45\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x4F\x72\x74\x68\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x69\x73\x4C\x6F\x6F\x70","\x69\x73\x43\x6C\x6F\x6E\x65\x45\x76\x65\x6E\x74","\x49\x53\x5F\x4D\x41\x43","\x69\x73\x4D\x65\x74\x61\x44\x6F\x77\x6E","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x65\x64\x45\x76\x65\x6E\x74","\x69\x73\x46\x6F\x72\x63\x65\x4D\x61\x72\x71\x75\x65\x65\x45\x76\x65\x6E\x74","\x76\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x41\x6C\x65\x72\x74","\x69\x73\x45\x64\x67\x65\x56\x61\x6C\x69\x64","\x69\x73\x56\x61\x6C\x69\x64\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x63\x68\x65\x63\x6B","\x76\x61\x6C\x69\x64\x61\x74\x65\x45\x64\x67\x65","\x76\x61\x6C\x69\x64\x61\x74\x65\x47\x72\x61\x70\x68","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x61\x74\x74\x72","\x63\x6F\x75\x6E\x74\x45\x72\x72\x6F\x72","\x73\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x74\x6F\x53\x74\x72\x69\x6E\x67","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x73\x65\x74\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x4E\x6F\x64\x65","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x43\x75\x72\x73\x6F\x72\x46\x6F\x72\x43\x65\x6C\x6C","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x47\x52\x41\x44\x49\x45\x4E\x54\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x53\x48\x41\x50\x45","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x49\x4D\x41\x47\x45","\x73\x65\x74\x42\x6F\x72\x64\x65\x72","\x53\x48\x41\x50\x45\x5F\x53\x57\x49\x4D\x4C\x41\x4E\x45","\x69\x73\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x65\x74\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x73\x45\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x49\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x73\x65\x74\x45\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x69\x73\x43\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x73\x65\x74\x43\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x67\x65\x74\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x43\x65\x6C\x6C\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x43\x4C\x4F\x4E\x45\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x63\x61\x6E\x45\x78\x70\x6F\x72\x74\x43\x65\x6C\x6C","\x63\x61\x6E\x49\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x44\x45\x4C\x45\x54\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x69\x73\x4C\x61\x62\x65\x6C\x4D\x6F\x76\x61\x62\x6C\x65","\x67\x65\x74\x4D\x6F\x76\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x43\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x4D\x4F\x56\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x50\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x73\x65\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x69\x73\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x73\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x73\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x69\x73\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x65\x6C\x6C\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x52\x45\x53\x49\x5A\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x69\x73\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x42\x65\x6E\x64\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x42\x45\x4E\x44\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x45\x44\x49\x54\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x69\x73\x56\x61\x6C\x69\x64\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x53\x54\x59\x4C\x45\x5F\x41\x55\x54\x4F\x53\x49\x5A\x45","\x73\x65\x74\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x73\x65\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x69\x73\x41\x6C\x6C\x6F\x77\x4F\x76\x65\x72\x6C\x61\x70\x50\x61\x72\x65\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4C\x44\x41\x42\x4C\x45","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x68\x69\x74\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x43\x6F\x6E\x74\x65\x6E\x74","\x67\x65\x74\x50\x6F\x69\x6E\x74\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x73","\x67\x65\x74\x43\x65\x6C\x6C\x73\x42\x65\x79\x6F\x6E\x64","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x52\x65\x67\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x4E\x65\x78\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x50\x61\x72\x65\x6E\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x43\x68\x69\x6C\x64\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x58","\x6C\x61\x73\x74\x4D\x6F\x75\x73\x65\x58","\x6C\x61\x73\x74\x4D\x6F\x75\x73\x65\x59","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x64\x65\x73\x74\x72\x6F\x79\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70","\x68\x65\x6C\x70","\x67\x72\x61\x70\x68\x52\x65\x6E\x64\x65\x72\x48\x69\x6E\x74","\x73\x68\x6F\x77\x56\x69\x65\x77\x70\x6F\x72\x74","\x73\x69\x7A\x65\x72\x53\x69\x7A\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x68\x61\x70\x65\x2D\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x6F\x70\x74\x69\x6D\x69\x7A\x65\x53\x70\x65\x65\x64","\x69\x6D\x61\x67\x65\x2D\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x75\x70\x64\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x75\x70\x64\x61\x74\x65","\x70\x61\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x66\x72\x65\x73\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x72\x64\x65\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x73\x69\x7A\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x7A\x65\x72","\x73\x65\x74\x5A\x6F\x6F\x6D\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x53\x6F\x75\x72\x63\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x67\x65\x74\x4F\x75\x74\x6C\x69\x6E\x65\x4F\x66\x66\x73\x65\x74","\x73\x74\x61\x72\x74\x58","\x73\x74\x61\x72\x74\x59","\x64\x78\x30","\x64\x79\x30","\x6E","\x76\x61\x6C\x69\x64\x4E\x65\x69\x67\x68\x62\x6F\x72\x73","\x74\x79\x70\x65\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x4E\x65\x69\x67\x68\x62\x6F\x72\x73\x41\x6C\x6C\x6F\x77\x65\x64","\x63\x68\x65\x63\x6B\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x68\x65\x63\x6B\x4E\x65\x69\x67\x68\x62\x6F\x72\x73","\x63\x68\x65\x63\x6B\x54\x79\x70\x65","\x75\x6E\x64\x6F\x48\x61\x6E\x64\x6C\x65\x72","\x62\x75\x62\x62\x6C\x69\x6E\x67","\x69\x73\x42\x75\x62\x62\x6C\x69\x6E\x67","\x73\x65\x74\x42\x75\x62\x62\x6C\x69\x6E\x67","\x67\x65\x74\x4C\x61\x79\x6F\x75\x74","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x72\x65\x73\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x66\x6F\x6C\x64\x48\x61\x6E\x64\x6C\x65\x72","\x73\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x73\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x69\x73\x43\x65\x6C\x6C\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x53\x68\x69\x66\x74\x61\x62\x6C\x65","\x69\x73\x53\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x73\x65\x74\x53\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x73\x65\x74\x53\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x63\x65\x6C\x6C\x52\x65\x73\x69\x7A\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C\x73\x54\x6F\x53\x68\x69\x66\x74","\x73\x68\x69\x66\x74\x43\x65\x6C\x6C","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x61\x64\x64\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x41\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x52\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x65\x74\x41\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x52\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x41\x64\x64\x65\x64","\x72\x65\x73\x69\x7A\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x6F\x6C\x64\x42\x6F\x75\x6E\x64\x73","\x6F\x6C\x64\x53\x74\x61\x74\x65\x73","\x6F\x6C\x64\x53\x63\x61\x6C\x65","\x64\x65\x6C\x74\x61\x73","\x63\x6F\x75\x6E\x74","\x58","\x59","\x61\x64\x64\x45\x64\x67\x65\x73","\x72\x65\x73\x6F\x6C\x76\x65","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x53\x74\x61\x74\x65","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65\x53\x74\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x68\x61\x70\x65","\x6D\x61\x78\x43\x65\x6C\x6C\x73","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65","\x63\x75\x72\x72\x65\x6E\x74\x44\x78","\x63\x75\x72\x72\x65\x6E\x74\x44\x79","\x75\x70\x64\x61\x74\x65\x43\x75\x72\x73\x6F\x72","\x73\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x44\x72\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x4F\x6E\x4D\x6F\x76\x65","\x70\x72\x65\x76\x69\x65\x77\x43\x6F\x6C\x6F\x72","\x68\x74\x6D\x6C\x50\x72\x65\x76\x69\x65\x77","\x73\x63\x61\x6C\x65\x47\x72\x69\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x4D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x4D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x73\x65\x74\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x65\x6C\x6C\x57\x61\x73\x43\x6C\x69\x63\x6B\x65\x64","\x53\x45\x4C\x45\x43\x54","\x66\x69\x72\x73\x74","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x68\x61\x70\x65","\x70\x42\x6F\x75\x6E\x64\x73","\x75\x73\x65\x47\x75\x69\x64\x65\x73\x46\x6F\x72\x45\x76\x65\x6E\x74","\x73\x65\x74\x48\x69\x67\x68\x6C\x69\x67\x68\x74\x43\x6F\x6C\x6F\x72","\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x54\x41\x52\x47\x45\x54\x5F\x43\x4F\x4C\x4F\x52","\x43\x55\x52\x53\x4F\x52\x5F\x4D\x4F\x56\x41\x42\x4C\x45\x5F\x45\x44\x47\x45","\x43\x55\x52\x53\x4F\x52\x5F\x4D\x4F\x56\x41\x42\x4C\x45\x5F\x56\x45\x52\x54\x45\x58","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x64\x65\x73\x74\x72\x6F\x79\x53\x68\x61\x70\x65\x73","\x67\x75\x69\x64\x65\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x74\x72\x69\x67\x67\x65\x72\x58","\x74\x72\x69\x67\x67\x65\x72\x59","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4F\x6E\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x70\x72\x65\x76\x69\x65\x77\x45\x6E\x61\x62\x6C\x65\x64","\x75\x73\x65\x47\x72\x69\x64","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x70\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x76\x61\x6C\x69\x64\x43\x6F\x6C\x6F\x72","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x69\x6E\x76\x61\x6C\x69\x64\x43\x6F\x6C\x6F\x72","\x44\x45\x46\x41\x55\x4C\x54\x5F\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x68\x6F\x74\x73\x70\x6F\x74","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x68\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x76\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x6D\x61\x72\x6B\x65\x64\x53\x74\x61\x74\x65","\x73\x65\x74\x48\x6F\x74\x73\x70\x6F\x74","\x67\x65\x74\x48\x6F\x74\x73\x70\x6F\x74","\x73\x65\x74\x48\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x48\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x68\x61\x73\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x4D\x61\x72\x6B\x65\x64\x53\x74\x61\x74\x65","\x75\x6E\x6D\x61\x72\x6B","\x70\x72\x6F\x63\x65\x73\x73","\x69\x73\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x4D\x61\x72\x6B\x65\x72\x43\x6F\x6C\x6F\x72","\x6D\x61\x72\x6B\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65\x54\x6F\x4D\x61\x72\x6B","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73\x48\x6F\x74\x73\x70\x6F\x74","\x72\x65\x73\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x68\x61\x6E\x64\x6C\x65\x72\x73","\x6D\x61\x78\x48\x61\x6E\x64\x6C\x65\x72\x73","\x6D\x6F\x76\x65\x49\x63\x6F\x6E\x46\x72\x6F\x6E\x74","\x6D\x6F\x76\x65\x49\x63\x6F\x6E\x42\x61\x63\x6B","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x6D\x61\x72\x6B\x65\x72","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x48\x61\x6E\x64\x6C\x65\x72","\x77\x61\x79\x70\x6F\x69\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x45\x6E\x61\x62\x6C\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x44\x65\x6C\x61\x79","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x49\x6E\x50\x72\x6F\x67\x72\x65\x73\x73","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x56\x61\x6C\x69\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x69\x6E\x69\x74\x69\x61\x6C\x54\x6F\x75\x63\x68\x58","\x69\x6E\x69\x74\x69\x61\x6C\x54\x6F\x75\x63\x68\x59","\x69\x67\x6E\x6F\x72\x65\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x63\x6F\x6E\x4F\x66\x66\x73\x65\x74","\x65\x64\x67\x65\x53\x74\x61\x74\x65","\x64\x72\x69\x6C\x6C\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E\x43\x6F\x75\x6E\x74\x65\x72","\x6D\x6F\x76\x65\x50\x72\x65\x76\x69\x65\x77\x41\x77\x61\x79","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x63\x6F\x6E\x53\x74\x61\x74\x65","\x69\x63\x6F\x6E\x73","\x72\x65\x64\x72\x61\x77\x49\x63\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79\x49\x63\x6F\x6E\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x69\x73\x4D\x6F\x76\x65\x49\x63\x6F\x6E\x54\x6F\x46\x72\x6F\x6E\x74\x46\x6F\x72\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x49\x63\x6F\x6E\x73","\x43\x55\x52\x53\x4F\x52\x5F\x43\x4F\x4E\x4E\x45\x43\x54","\x63\x75\x72\x72\x65\x6E\x74\x53\x74\x61\x74\x65","\x69\x63\x6F\x6E","\x67\x65\x74\x49\x63\x6F\x6E\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x73\x53\x74\x61\x72\x74\x45\x76\x65\x6E\x74","\x63\x75\x72\x72\x65\x6E\x74\x46\x6F\x63\x75\x73","\x63\x75\x72\x72\x65\x6E\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x73\x6F\x75\x72\x63\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x77\x61\x79\x70\x6F\x69\x6E\x74\x73","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x73\x65\x6C\x65\x63\x74\x65\x64\x49\x63\x6F\x6E","\x69\x73\x49\x6D\x6D\x65\x64\x69\x61\x74\x65\x43\x6F\x6E\x6E\x65\x63\x74\x53\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x65\x43\x75\x72\x72\x65\x6E\x74\x53\x74\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x54\x61\x72\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x67\x65\x74\x53\x6F\x75\x72\x63\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x64\x72\x61\x77\x50\x72\x65\x76\x69\x65\x77","\x75\x70\x64\x61\x74\x65\x49\x63\x6F\x6E\x73","\x69\x73\x53\x74\x6F\x70\x45\x76\x65\x6E\x74","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x57\x69\x64\x74\x68","\x67\x65\x74\x45\x64\x67\x65\x43\x6F\x6C\x6F\x72","\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x63\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x70\x6F\x69\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x70\x6F\x69\x6E\x74\x2E\x67\x69\x66","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x43\x6F\x6C\x6F\x72","\x66\x6F\x63\x75\x73\x49\x63\x6F\x6E\x73","\x66\x6F\x63\x75\x73\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x66\x6F\x63\x75\x73\x50\x6F\x69\x6E\x74\x73","\x63\x75\x72\x72\x65\x6E\x74\x46\x6F\x63\x75\x73\x41\x72\x65\x61","\x67\x65\x74\x49\x6D\x61\x67\x65\x46\x6F\x72\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x69\x73\x45\x76\x65\x6E\x74\x49\x67\x6E\x6F\x72\x65\x64","\x72\x65\x70\x61\x69\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x73\x68\x61\x72\x65\x64\x44\x69\x76","\x63\x75\x72\x72\x65\x6E\x74\x58","\x63\x75\x72\x72\x65\x6E\x74\x59","\x64\x72\x61\x67\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x78\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x61\x6C\x6C\x6F\x77\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73\x43\x68\x65\x63\x6B","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x52\x61\x73\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x53\x68\x61\x70\x65","\x73\x69\x7A\x65\x72\x73","\x6E\x2D\x72\x65\x73\x69\x7A\x65","\x6E\x65\x2D\x72\x65\x73\x69\x7A\x65","\x77\x2D\x72\x65\x73\x69\x7A\x65","\x65\x2D\x72\x65\x73\x69\x7A\x65","\x73\x77\x2D\x72\x65\x73\x69\x7A\x65","\x73\x2D\x72\x65\x73\x69\x7A\x65","\x73\x65\x2D\x72\x65\x73\x69\x7A\x65","\x6C\x61\x62\x65\x6C\x53\x68\x61\x70\x65","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x53\x68\x61\x70\x65","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x53\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x44\x61\x73\x68\x65\x64","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x45\x44","\x63\x72\x65\x61\x74\x65\x53\x69\x7A\x65\x72\x53\x68\x61\x70\x65","\x69\x73\x53\x69\x7A\x65\x72\x56\x69\x73\x69\x62\x6C\x65","\x52\x4F\x54\x41\x54\x49\x4F\x4E\x5F\x48\x41\x4E\x44\x4C\x45","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45","\x70\x72\x65\x76\x69\x65\x77","\x63\x75\x72\x72\x65\x6E\x74\x41\x6C\x70\x68\x61","\x61\x74\x61\x6E","\x75\x6E\x69\x6F\x6E","\x72\x6F\x74\x61\x74\x65\x43\x65\x6C\x6C","\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x62\x65\x6E\x64\x73","\x72\x65\x6D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x61\x62\x73\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x50\x6F\x69\x6E\x74\x73","\x69\x73\x41\x64\x64\x50\x6F\x69\x6E\x74\x45\x76\x65\x6E\x74","\x61\x64\x64\x50\x6F\x69\x6E\x74","\x63\x72\x65\x61\x74\x65\x42\x65\x6E\x64\x73","\x69\x6E\x69\x74\x42\x65\x6E\x64","\x43\x55\x52\x53\x4F\x52\x5F\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45","\x69\x73\x52\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74\x45\x76\x65\x6E\x74","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x45\x44","\x69\x73\x48\x61\x6E\x64\x6C\x65\x56\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x53\x68\x61\x70\x65","\x69\x73\x48\x61\x6E\x64\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x43\x55\x52\x53\x4F\x52\x5F\x42\x45\x4E\x44\x5F\x48\x41\x4E\x44\x4C\x45","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x73\x54\x61\x72\x67\x65\x74","\x69\x73\x4C\x61\x62\x65\x6C","\x63\x6C\x6F\x6E\x65\x50\x72\x65\x76\x69\x65\x77\x53\x74\x61\x74\x65","\x67\x65\x74\x53\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x74\x61\x74\x65","\x73\x65\x74\x50\x72\x65\x76\x69\x65\x77\x43\x6F\x6C\x6F\x72","\x6D\x6F\x76\x65\x4C\x61\x62\x65\x6C","\x63\x68\x61\x6E\x67\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x63\x68\x61\x6E\x67\x65\x50\x6F\x69\x6E\x74\x73","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x66\x69\x6E\x64\x4E\x65\x61\x72\x65\x73\x74\x53\x65\x67\x6D\x65\x6E\x74","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x4C\x4F\x43\x4B\x45\x44\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x72\x65\x64\x72\x61\x77\x49\x6E\x6E\x65\x72\x42\x65\x6E\x64\x73","\x66\x6C\x69\x70\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B\x4F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B\x4F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x56\x69\x72\x74\x75\x61\x6C\x42\x65\x6E\x64","\x67\x65\x74\x43\x75\x72\x73\x6F\x72\x46\x6F\x72\x42\x65\x6E\x64","\x45\x44\x47\x45\x53\x54\x59\x4C\x45\x5F\x54\x4F\x50\x54\x4F\x42\x4F\x54\x54\x4F\x4D","\x45\x44\x47\x45\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x72\x6F\x77\x2D\x72\x65\x73\x69\x7A\x65","\x63\x6F\x6C\x2D\x72\x65\x73\x69\x7A\x65","\x6E\x6F\x72\x6D\x61\x6C\x4B\x65\x79\x73","\x73\x68\x69\x66\x74\x4B\x65\x79\x73","\x63\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79\x73","\x63\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79\x73","\x6B\x65\x79\x44\x6F\x77\x6E","\x62\x69\x6E\x64\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x67\x65\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x69\x73\x47\x72\x61\x70\x68\x45\x76\x65\x6E\x74","\x68\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x73\x65\x74\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x6D\x78\x54\x6F\x6F\x6C\x74\x69\x70","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x73\x74\x61\x74\x65\x53\x6F\x75\x72\x63\x65","\x72\x65\x73\x65\x74\x54\x69\x6D\x65\x72","\x48\x49\x47\x48\x4C\x49\x47\x48\x54\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x72\x65\x70\x61\x69\x6E\x74\x48\x61\x6E\x64\x6C\x65\x72","\x6B\x65\x65\x70\x4F\x6E\x54\x6F\x70","\x64\x72\x61\x77\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x65\x64\x69\x74\x6F\x72","\x68\x69\x64\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x62\x69\x6E\x64\x41\x63\x74\x69\x6F\x6E","\x63\x6F\x6E\x66\x69\x67","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x49\x74\x65\x6D\x73","\x69\x66","\x61\x73","\x69\x63\x6F\x6E\x43\x6C\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x73\x65\x70\x61\x72\x61\x74\x6F\x72","\x6E\x6F\x63\x65\x6C\x6C","\x6E\x63\x65\x6C\x6C\x73","\x6E\x6F\x74\x52\x6F\x6F\x74","\x6E\x6F\x6E\x45\x6D\x70\x74\x79","\x65\x78\x70\x61\x6E\x64\x61\x62\x6C\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x61\x62\x6C\x65","\x76\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x65\x6D\x70\x74\x79\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x62\x61\x72","\x69\x6E\x73\x65\x72\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x2F\x73\x65\x70\x61\x72\x61\x74\x6F\x72\x2E\x67\x69\x66","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x4F\x70\x74\x69\x6F\x6E","\x73\x65\x74\x4D\x6F\x64\x65","\x61\x64\x64\x50\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x56\x61\x6C\x75\x65\x73","\x70\x6F\x70\x75\x70\x48\x61\x6E\x64\x6C\x65\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x70\x68","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x6B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x61\x6D\x65","\x49\x53\x5F\x4C\x4F\x43\x41\x4C","\x63\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6F\x6E","\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x65\x64\x69\x74\x6F\x72","\x61\x73\x6B\x5A\x6F\x6F\x6D\x52\x65\x73\x6F\x75\x72\x63\x65","\x61\x73\x6B\x5A\x6F\x6F\x6D","\x6C\x61\x73\x74\x53\x61\x76\x65\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x6C\x61\x73\x74\x53\x61\x76\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x46\x69\x6C\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x46\x69\x6C\x65","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x74\x61\x73\x6B\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x74\x61\x73\x6B\x73","\x68\x65\x6C\x70\x52\x65\x73\x6F\x75\x72\x63\x65","\x6F\x75\x74\x6C\x69\x6E\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x62\x6C\x43\x6C\x69\x63\x6B\x41\x63\x74\x69\x6F\x6E","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x52\x65\x71\x75\x69\x72\x65\x64","\x66\x6F\x72\x63\x65\x64\x49\x6E\x73\x65\x72\x74\x69\x6E\x67","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x64\x65\x66\x61\x75\x6C\x74\x47\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x42\x6F\x72\x64\x65\x72\x53\x69\x7A\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x6F\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x4E\x61\x6D\x65","\x75\x72\x6C\x50\x6F\x73\x74","\x75\x72\x6C\x49\x6D\x61\x67\x65","\x6C\x61\x79\x6F\x75\x74\x44\x69\x61\x67\x72\x61\x6D","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x53\x70\x61\x63\x69\x6E\x67","\x6D\x61\x69\x6E\x74\x61\x69\x6E\x53\x77\x69\x6D\x6C\x61\x6E\x65\x73","\x6C\x61\x79\x6F\x75\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x73","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x49\x6E\x64\x65\x78","\x74\x61\x73\x6B\x73\x57\x69\x6E\x64\x6F\x77\x49\x6D\x61\x67\x65","\x74\x61\x73\x6B\x73\x54\x6F\x70","\x68\x65\x6C\x70\x57\x69\x6E\x64\x6F\x77\x49\x6D\x61\x67\x65","\x75\x72\x6C\x48\x65\x6C\x70","\x68\x65\x6C\x70\x57\x69\x64\x74\x68","\x68\x65\x6C\x70\x48\x65\x69\x67\x68\x74","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x57\x69\x64\x74\x68","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x48\x65\x69\x67\x68\x74","\x6D\x6F\x76\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x44\x69\x61\x6C\x6F\x67","\x76\x61\x6C\x69\x64\x61\x74\x69\x6E\x67","\x65\x78\x70\x6F\x72\x74\x49\x6D\x61\x67\x65","\x67\x65\x74\x55\x72\x6C\x49\x6D\x61\x67\x65","\x67\x65\x74\x56\x69\x65\x77\x58\x6D\x6C","\x5F\x62\x6C\x61\x6E\x6B","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x75\x6E\x67\x72\x6F\x75\x70","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x73\x68\x6F\x77\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x73\x65\x6C\x65\x63\x74\x4E\x6F\x6E\x65","\x74\x6F\x42\x61\x63\x6B","\x74\x6F\x46\x72\x6F\x6E\x74","\x73\x65\x6C\x65\x63\x74\x50\x72\x65\x76\x69\x6F\x75\x73","\x73\x65\x6C\x65\x63\x74\x4E\x65\x78\x74","\x73\x65\x6C\x65\x63\x74\x50\x61\x72\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x68\x69\x6C\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x41\x6C\x6C","\x65\x78\x70\x61\x6E\x64","\x65\x78\x70\x61\x6E\x64\x41\x6C\x6C","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x4C\x65\x66\x74","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x43\x65\x6E\x74\x65\x72","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x52\x69\x67\x68\x74","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x54\x6F\x70","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x4D\x69\x64\x64\x6C\x65","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x42\x6F\x74\x74\x6F\x6D","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x4C\x65\x66\x74","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x43\x65\x6E\x74\x65\x72","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x52\x69\x67\x68\x74","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x54\x6F\x70","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x4D\x69\x64\x64\x6C\x65","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x42\x6F\x74\x74\x6F\x6D","\x70\x72\x6F\x6D\x70\x74","\x74\x6F\x67\x67\x6C\x65\x54\x61\x73\x6B\x73","\x73\x68\x6F\x77\x54\x61\x73\x6B\x73","\x74\x6F\x67\x67\x6C\x65\x48\x65\x6C\x70","\x73\x68\x6F\x77\x48\x65\x6C\x70","\x74\x6F\x67\x67\x6C\x65\x4F\x75\x74\x6C\x69\x6E\x65","\x73\x68\x6F\x77\x4F\x75\x74\x6C\x69\x6E\x65","\x74\x6F\x67\x67\x6C\x65\x43\x6F\x6E\x73\x6F\x6C\x65","\x72\x65\x73\x65\x74\x48\x69\x73\x74\x6F\x72\x79","\x72\x65\x73\x65\x74\x46\x69\x72\x73\x74\x54\x69\x6D\x65","\x63\x6F\x6F\x6B\x69\x65","\x6D\x78\x67\x72\x61\x70\x68\x3D\x73\x65\x65\x6E\x3B\x20\x65\x78\x70\x69\x72\x65\x73\x3D\x46\x72\x69\x2C\x20\x32\x37\x20\x4A\x75\x6C\x20\x32\x30\x30\x31\x20\x30\x32\x3A\x34\x37\x3A\x31\x31\x20\x55\x54\x43\x3B\x20\x70\x61\x74\x68\x3D\x2F","\x43\x61\x6E\x6E\x6F\x74\x20\x65\x78\x65\x63\x75\x74\x65\x20","\x3A\x20","\x43\x61\x6E\x6E\x6F\x74\x20\x66\x69\x6E\x64\x20\x61\x63\x74\x69\x6F\x6E\x20","\x61\x64\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x62\x6C\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x55\x6E\x64\x6F\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x72\x69\x6C\x6C\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x49\x6E\x73\x65\x72\x74\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x63\x72\x65\x61\x74\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x4C\x61\x79\x6F\x75\x74\x4D\x61\x6E\x61\x67\x65\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x61\x79\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x61\x79\x6F\x75\x74","\x64\x69\x61\x67\x72\x61\x6D\x4C\x61\x79\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x44\x69\x61\x67\x72\x61\x6D\x4C\x61\x79\x6F\x75\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x72\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x73\x65\x74\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x74\x6F\x4C\x6F\x63\x61\x6C\x65\x53\x74\x72\x69\x6E\x67","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x54\x69\x74\x6C\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x74\x54\x69\x74\x6C\x65","\x74\x72\x65\x65\x4C\x61\x79\x6F\x75\x74","\x20\x3E\x20","\x67\x65\x74\x52\x6F\x6F\x74\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70","\x72\x65\x61\x64\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x55\x72\x6C\x50\x6F\x73\x74","\x77\x72\x69\x74\x65\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x70\x6F\x73\x74\x44\x69\x61\x67\x72\x61\x6D","\x73\x77\x61\x70\x53\x74\x79\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x69\x73\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x56\x69\x73\x69\x62\x6C\x65","\x72\x65\x61\x64\x6F\x6E\x6C\x79","\x49\x44","\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x61\x73\x6B\x73","\x72\x65\x66\x72\x65\x73\x68\x54\x61\x73\x6B\x73","\x66\x72\x61\x6D\x65\x42\x6F\x72\x64\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x43\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x65\x64\x4D\x6F\x76\x69\x6E\x67","\x63\x6F\x64\x65\x63\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x61\x64\x64\x41\x6C\x69\x61\x73","\x61\x6C\x69\x61\x73\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x65\x6E\x63\x6F\x64\x65\x44\x65\x66\x61\x75\x6C\x74\x73","\x67\x65\x74\x4F\x62\x6A\x65\x63\x74","\x72\x65\x66\x65\x72\x65\x6E\x63\x65","\x67\x65\x74\x43\x6F\x64\x65\x63","\x69\x6D\x70\x6F\x72\x74\x4E\x6F\x64\x65","\x6D\x78\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x63\x6F\x64\x65\x63\x20\x66\x6F\x72\x20","\x43\x61\x6E\x6E\x6F\x74\x20\x64\x65\x63\x6F\x64\x65\x20","\x65\x6E\x63\x6F\x64\x65\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x64\x65\x63","\x64\x65\x63\x6F\x64\x65\x43\x65\x6C\x6C","\x69\x6E\x73\x65\x72\x74\x49\x6E\x74\x6F\x47\x72\x61\x70\x68","\x65\x78\x63\x6C\x75\x64\x65","\x69\x64\x72\x65\x66\x73","\x6D\x61\x70\x70\x69\x6E\x67","\x72\x65\x76\x65\x72\x73\x65","\x63\x6C\x6F\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x4E\x61\x6D\x65","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x61\x6D\x65","\x69\x73\x45\x78\x63\x6C\x75\x64\x65\x64","\x69\x73\x52\x65\x66\x65\x72\x65\x6E\x63\x65","\x62\x65\x66\x6F\x72\x65\x45\x6E\x63\x6F\x64\x65","\x65\x6E\x63\x6F\x64\x65\x4F\x62\x6A\x65\x63\x74","\x61\x66\x74\x65\x72\x45\x6E\x63\x6F\x64\x65","\x65\x6E\x63\x6F\x64\x65\x56\x61\x6C\x75\x65","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x49\x44\x20\x66\x6F\x72\x20","\x77\x72\x69\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x72\x69\x74\x65\x50\x72\x69\x6D\x69\x74\x69\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x72\x69\x74\x65\x43\x6F\x6D\x70\x6C\x65\x78\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x58\x6D\x6C","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x6E\x6F\x64\x65\x20\x66\x6F\x72\x20","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x46\x72\x6F\x6D\x58\x6D\x6C","\x62\x65\x66\x6F\x72\x65\x44\x65\x63\x6F\x64\x65","\x64\x65\x63\x6F\x64\x65\x4E\x6F\x64\x65","\x61\x66\x74\x65\x72\x44\x65\x63\x6F\x64\x65","\x64\x65\x63\x6F\x64\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x63\x6F\x64\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x64\x65\x63\x6F\x64\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x64\x65\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x6F\x62\x6A\x65\x63\x74\x20\x66\x6F\x72\x20","\x70\x72\x6F\x63\x65\x73\x73\x49\x6E\x63\x6C\x75\x64\x65","\x64\x65\x63\x6F\x64\x65\x43\x68\x69\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x61\x64\x64\x4F\x62\x6A\x65\x63\x74\x56\x61\x6C\x75\x65","\x69\x6E\x63\x6C\x75\x64\x65","\x72\x65\x6D\x6F\x76\x65\x57\x68\x69\x74\x65\x73\x70\x61\x63\x65","\x64\x65\x63\x6F\x64\x65\x52\x6F\x6F\x74","\x67\x72\x61\x70\x68\x4C\x69\x73\x74\x65\x6E\x65\x72\x73\x20\x65\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x73\x20\x76\x69\x65\x77\x20\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72\x20\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72\x20\x65\x64\x69\x74\x6F\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x6C\x61\x79\x65\x72","\x67\x65\x74\x53\x74\x72\x69\x6E\x67\x56\x61\x6C\x75\x65","\x6D\x78\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74\x43\x6F\x64\x65\x63\x2E\x64\x65\x63\x6F\x64\x65\x3A\x20\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74\x20","\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x64","\x70\x72\x65\x73\x73\x65\x64\x49\x63\x6F\x6E","\x6D\x6F\x64\x65","\x74\x6F\x67\x67\x6C\x65","\x2D\x2D\x2D","\x63\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x54\x65\x6D\x70\x6C\x61\x74\x65\x20","\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6D\x6F\x64\x69\x66\x69\x65\x64\x20\x6C\x61\x73\x74\x53\x6E\x61\x70\x73\x68\x6F\x74\x20\x69\x67\x6E\x6F\x72\x65\x64\x43\x68\x61\x6E\x67\x65\x73\x20\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72\x20\x67\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x20\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x41\x72\x72\x61\x79","\x64\x65\x63\x6F\x64\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x75\x69","\x64\x65\x63\x6F\x64\x65\x55\x69","\x73\x65\x74\x4D\x61\x70\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x72\x65\x73\x6F\x75\x72\x63\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65"];var mxClient={VERSION:_0xa4d4[0],IS_IE:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[1]),IS_IE6:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[4]),IS_QUIRKS:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[1])&&(null==document[_0xa4d4[5]]||5==document[_0xa4d4[5]]),VML_PREFIX:_0xa4d4[6],OFFICE_PREFIX:_0xa4d4[7],IS_NS:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[8])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[1]),IS_OP:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[9]),IS_OT:0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[10])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[11])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[12])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[13])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[14])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[15]),IS_SF:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[16])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[17]),IS_GC:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[17]),IS_MT:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[18])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[19])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[20])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[21])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[22])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[23])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[24])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[25])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[26])&&0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[27]),IS_SVG:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[18])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[21])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[28])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[26])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[29])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[30])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[16])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[31])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[9]),NO_FO:0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[19])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[22])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[20])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[23])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[25])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[27])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[32])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[33])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[9])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[1])||0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[34]),IS_VML:_0xa4d4[35]==navigator[_0xa4d4[37]][_0xa4d4[36]](),IS_MAC:0<navigator[_0xa4d4[3]][_0xa4d4[36]]()[_0xa4d4[2]](_0xa4d4[38]),IS_TOUCH:0<navigator[_0xa4d4[3]][_0xa4d4[36]]()[_0xa4d4[2]](_0xa4d4[39])||0<navigator[_0xa4d4[3]][_0xa4d4[36]]()[_0xa4d4[2]](_0xa4d4[40])||0<navigator[_0xa4d4[3]][_0xa4d4[36]]()[_0xa4d4[2]](_0xa4d4[41])||0<navigator[_0xa4d4[3]][_0xa4d4[36]]()[_0xa4d4[2]](_0xa4d4[42]),IS_LOCAL:0>document[_0xa4d4[45]][_0xa4d4[44]][_0xa4d4[2]](_0xa4d4[43])&&0>document[_0xa4d4[45]][_0xa4d4[44]][_0xa4d4[2]](_0xa4d4[46]),isBrowserSupported:function(){return mxClient[_0xa4d4[47]]||mxClient[_0xa4d4[48]]},link:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=_0x7246x4||document;if(mxClient[_0xa4d4[49]]){_0x7246x4[_0xa4d4[53]](_0xa4d4[50]+_0x7246x2+_0xa4d4[51]+_0x7246x3+_0xa4d4[52])}else {var _0x7246x5=_0x7246x4[_0xa4d4[55]](_0xa4d4[54]);_0x7246x5[_0xa4d4[57]](_0xa4d4[56],_0x7246x2);_0x7246x5[_0xa4d4[57]](_0xa4d4[44],_0x7246x3);_0x7246x5[_0xa4d4[57]](_0xa4d4[58],_0xa4d4[59]);_0x7246x5[_0xa4d4[57]](_0xa4d4[60],_0xa4d4[61]);_0x7246x4[_0xa4d4[64]](_0xa4d4[63])[0][_0xa4d4[62]](_0x7246x5);};},include:function(_0x7246x2){document[_0xa4d4[53]](_0xa4d4[65]+_0x7246x2+_0xa4d4[66])},dispose:function(){for(var _0x7246x2=0;_0x7246x2<mxEvent[_0xa4d4[68]][_0xa4d4[67]];_0x7246x2++){null!=mxEvent[_0xa4d4[68]][_0x7246x2][_0xa4d4[69]]&&mxEvent[_0xa4d4[70]](mxEvent[_0xa4d4[68]][_0x7246x2])}}};mxClient[_0xa4d4[71]]&&mxClient[_0xa4d4[72]]?mxClient[_0xa4d4[73]]=_0xa4d4[74]:mxClient[_0xa4d4[75]]||mxClient[_0xa4d4[76]]?mxClient[_0xa4d4[73]]=_0xa4d4[77]:mxClient[_0xa4d4[78]]?mxClient[_0xa4d4[73]]=_0xa4d4[79]:mxClient[_0xa4d4[80]]&&9<=document[_0xa4d4[5]]&&(mxClient[_0xa4d4[73]]=_0xa4d4[81]);_0xa4d4[82]== typeof mxLoadResources&&(mxLoadResources= !0);_0xa4d4[82]== typeof mxResourceExtension&&(mxResourceExtension=_0xa4d4[83]);_0xa4d4[82]== typeof mxLoadStylesheets&&(mxLoadStylesheets= !0);_0xa4d4[82]!= typeof mxBasePath&&0<mxBasePath[_0xa4d4[67]]?(_0xa4d4[84]==mxBasePath[_0xa4d4[85]](mxBasePath[_0xa4d4[67]]-1)&&(mxBasePath=mxBasePath[_0xa4d4[85]](0,mxBasePath[_0xa4d4[67]]-1)),mxClient[_0xa4d4[86]]=mxBasePath):mxClient[_0xa4d4[86]]=_0xa4d4[87];_0xa4d4[82]!= typeof mxImageBasePath&&0<mxImageBasePath[_0xa4d4[67]]?(_0xa4d4[84]==mxImageBasePath[_0xa4d4[85]](mxImageBasePath[_0xa4d4[67]]-1)&&(mxImageBasePath=mxImageBasePath[_0xa4d4[85]](0,mxImageBasePath[_0xa4d4[67]]-1)),mxClient[_0xa4d4[88]]=mxImageBasePath):mxClient[_0xa4d4[88]]=mxClient[_0xa4d4[86]]+_0xa4d4[89];mxClient[_0xa4d4[90]]=_0xa4d4[82]!= typeof mxLanguage?mxLanguage:mxClient[_0xa4d4[80]]?navigator[_0xa4d4[91]]:navigator[_0xa4d4[90]];mxClient[_0xa4d4[92]]=_0xa4d4[82]!= typeof mxDefaultLanguage?mxDefaultLanguage:_0xa4d4[93];mxLoadStylesheets&&mxClient[_0xa4d4[54]](_0xa4d4[94],mxClient[_0xa4d4[86]]+_0xa4d4[95]);_0xa4d4[82]!= typeof mxLanguages&&(mxClient[_0xa4d4[96]]=mxLanguages);if(mxClient[_0xa4d4[80]]){if(9<=document[_0xa4d4[5]]){mxClient[_0xa4d4[47]]= !1,mxClient[_0xa4d4[48]]= !0}else {8==document[_0xa4d4[5]]?(document[_0xa4d4[100]][_0xa4d4[99]](mxClient.VML_PREFIX,_0xa4d4[97],_0xa4d4[98]),document[_0xa4d4[100]][_0xa4d4[99]](mxClient.OFFICE_PREFIX,_0xa4d4[101],_0xa4d4[98])):(document[_0xa4d4[100]][_0xa4d4[99]](mxClient.VML_PREFIX,_0xa4d4[97]),document[_0xa4d4[100]][_0xa4d4[99]](mxClient.OFFICE_PREFIX,_0xa4d4[101]));var ss=document[_0xa4d4[102]]();ss[_0xa4d4[103]]=_0xa4d4[104];mxLoadStylesheets&&mxClient[_0xa4d4[54]](_0xa4d4[94],mxClient[_0xa4d4[86]]+_0xa4d4[105]);};window[_0xa4d4[108]](_0xa4d4[106],mxClient[_0xa4d4[107]]);};var mxLog={consoleName:_0xa4d4[109],TRACE:!1,DEBUG:!0,WARN:!0,buffer:_0xa4d4[110],init:function(){if(null==mxLog[_0xa4d4[111]]&&null!=document[_0xa4d4[112]]){var _0x7246x2=mxLog[_0xa4d4[113]]+_0xa4d4[114]+mxClient[_0xa4d4[115]],_0x7246x3=document[_0xa4d4[55]](_0xa4d4[116]);_0x7246x3[_0xa4d4[57]](_0xa4d4[117],_0xa4d4[118]);_0x7246x3[_0xa4d4[57]](_0xa4d4[119],_0xa4d4[118]);var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[120]),_0x7246x5=document[_0xa4d4[55]](_0xa4d4[121]),_0x7246x9=document[_0xa4d4[55]](_0xa4d4[122]);_0x7246x9[_0xa4d4[124]][_0xa4d4[123]]=_0xa4d4[125];mxLog[_0xa4d4[126]]=document[_0xa4d4[55]](_0xa4d4[126]);mxLog[_0xa4d4[126]][_0xa4d4[57]](_0xa4d4[127],_0xa4d4[128]);mxLog[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[118];mxLog[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[129]]=_0xa4d4[130];mxLog[_0xa4d4[126]][_0xa4d4[131]]=mxLog[_0xa4d4[132]];mxLog[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[117]]=mxClient[_0xa4d4[133]]&&_0xa4d4[134]!=document[_0xa4d4[135]]?_0xa4d4[136]:_0xa4d4[118];_0x7246x9[_0xa4d4[62]](mxLog[_0xa4d4[126]]);_0x7246x5[_0xa4d4[62]](_0x7246x9);_0x7246x4[_0xa4d4[62]](_0x7246x5);_0x7246x5=document[_0xa4d4[55]](_0xa4d4[121]);mxLog[_0xa4d4[122]]=document[_0xa4d4[55]](_0xa4d4[122]);mxLog[_0xa4d4[122]][_0xa4d4[124]][_0xa4d4[123]]=_0xa4d4[125];mxLog[_0xa4d4[122]][_0xa4d4[57]](_0xa4d4[119],_0xa4d4[137]);_0x7246x5[_0xa4d4[62]](mxLog[_0xa4d4[122]]);_0x7246x4[_0xa4d4[62]](_0x7246x5);_0x7246x3[_0xa4d4[62]](_0x7246x4);mxLog[_0xa4d4[140]](_0xa4d4[138],function(_0x7246x2){mxLog[_0xa4d4[139]]()});mxLog[_0xa4d4[140]](_0xa4d4[141],function(_0x7246x2){_0x7246x2=mxUtils[_0xa4d4[142]](document[_0xa4d4[112]]);mxLog[_0xa4d4[143]](_0x7246x2);});mxLog[_0xa4d4[140]](_0xa4d4[144],function(_0x7246x2){mxLog[_0xa4d4[145]]=!mxLog[_0xa4d4[145]];mxLog[_0xa4d4[145]]?mxLog[_0xa4d4[143]](_0xa4d4[146]):mxLog[_0xa4d4[143]](_0xa4d4[147]);});mxLog[_0xa4d4[140]](_0xa4d4[148],function(_0x7246x2){try{mxUtils[_0xa4d4[149]](mxLog[_0xa4d4[126]][_0xa4d4[131]])}catch(_0x7246x3){mxUtils[_0xa4d4[150]](_0x7246x3)}});mxLog[_0xa4d4[140]](_0xa4d4[151],function(_0x7246x2){try{mxUtils[_0xa4d4[152]](mxLog[_0xa4d4[126]][_0xa4d4[131]])}catch(_0x7246x3){mxUtils[_0xa4d4[150]](_0x7246x3)}});mxLog[_0xa4d4[140]](_0xa4d4[153],function(_0x7246x2){mxLog[_0xa4d4[126]][_0xa4d4[131]]=_0xa4d4[110]});_0x7246x5=_0x7246x4=0;_0xa4d4[154]=== typeof window[_0xa4d4[155]]?(_0x7246x4=window[_0xa4d4[156]],_0x7246x5=window[_0xa4d4[155]]):(_0x7246x4=document[_0xa4d4[158]][_0xa4d4[157]]||document[_0xa4d4[112]][_0xa4d4[157]],_0x7246x5=document[_0xa4d4[112]][_0xa4d4[159]]);mxLog[_0xa4d4[111]]= new mxWindow(_0x7246x2,_0x7246x3,Math[_0xa4d4[160]](0,_0x7246x5-320),Math[_0xa4d4[160]](0,_0x7246x4-210),300,160);mxLog[_0xa4d4[111]][_0xa4d4[161]](!0);mxLog[_0xa4d4[111]][_0xa4d4[162]](!1);mxLog[_0xa4d4[111]][_0xa4d4[163]](!0);mxLog[_0xa4d4[111]][_0xa4d4[164]](!0);mxLog[_0xa4d4[111]][_0xa4d4[165]]= !1;if((mxClient[_0xa4d4[133]]||mxClient[_0xa4d4[80]])&&!mxClient[_0xa4d4[76]]&&!mxClient[_0xa4d4[75]]&&_0xa4d4[134]!=document[_0xa4d4[135]]){var _0x7246xa=mxLog[_0xa4d4[111]][_0xa4d4[166]](),_0x7246x2=function(_0x7246x2,_0x7246x3){mxLog[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[119]]=Math[_0xa4d4[160]](0,_0x7246xa[_0xa4d4[167]]-70)+_0xa4d4[168]};mxLog[_0xa4d4[111]][_0xa4d4[169]](mxEvent.RESIZE_END,_0x7246x2);mxLog[_0xa4d4[111]][_0xa4d4[169]](mxEvent.MAXIMIZE,_0x7246x2);mxLog[_0xa4d4[111]][_0xa4d4[169]](mxEvent.NORMALIZE,_0x7246x2);mxLog[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[170];};}},info:function(){mxLog[_0xa4d4[171]](mxUtils.toString(navigator))},addButton:function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[172]);mxUtils[_0xa4d4[53]](_0x7246x4,_0x7246x2);mxEvent[_0xa4d4[169]](_0x7246x4,_0xa4d4[173],_0x7246x3);mxLog[_0xa4d4[122]][_0xa4d4[62]](_0x7246x4);},isVisible:function(){return null!=mxLog[_0xa4d4[111]]?mxLog[_0xa4d4[111]][_0xa4d4[174]]():!1},show:function(){mxLog[_0xa4d4[175]](!0)},setVisible:function(_0x7246x2){null==mxLog[_0xa4d4[111]]&&mxLog[_0xa4d4[176]]();null!=mxLog[_0xa4d4[111]]&&mxLog[_0xa4d4[111]][_0xa4d4[175]](_0x7246x2);},enter:function(_0x7246x2){if(mxLog[_0xa4d4[145]]){return mxLog[_0xa4d4[171]](_0xa4d4[177]+_0x7246x2),( new Date)[_0xa4d4[178]]()}},leave:function(_0x7246x2,_0x7246x3){if(mxLog[_0xa4d4[145]]){var _0x7246x4=0!=_0x7246x3?_0xa4d4[179]+(( new Date)[_0xa4d4[178]]()-_0x7246x3)+_0xa4d4[180]:_0xa4d4[110];mxLog[_0xa4d4[171]](_0xa4d4[181]+_0x7246x2+_0x7246x4);}},debug:function(){mxLog[_0xa4d4[182]]&&mxLog[_0xa4d4[171]][_0xa4d4[183]](this,arguments)},warn:function(){mxLog[_0xa4d4[184]]&&mxLog[_0xa4d4[171]][_0xa4d4[183]](this,arguments)},write:function(){for(var _0x7246x2=_0xa4d4[110],_0x7246x3=0;_0x7246x3<arguments[_0xa4d4[67]];_0x7246x3++){_0x7246x2+=arguments[_0x7246x3],_0x7246x3<arguments[_0xa4d4[67]]-1&&(_0x7246x2+=_0xa4d4[185])};null!=mxLog[_0xa4d4[126]]?(mxLog[_0xa4d4[126]][_0xa4d4[131]]+=_0x7246x2,0<=navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[186])&&(mxLog[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],mxLog[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189]),mxLog[_0xa4d4[126]][_0xa4d4[190]]=mxLog[_0xa4d4[126]][_0xa4d4[191]]):mxLog[_0xa4d4[132]]+=_0x7246x2;},writeln:function(){for(var _0x7246x2=_0xa4d4[110],_0x7246x3=0;_0x7246x3<arguments[_0xa4d4[67]];_0x7246x3++){_0x7246x2+=arguments[_0x7246x3],_0x7246x3<arguments[_0xa4d4[67]]-1&&(_0x7246x2+=_0xa4d4[185])};mxLog[_0xa4d4[53]](_0x7246x2+_0xa4d4[192]);}},mxObjectIdentity={FIELD_NAME:_0xa4d4[193],counter:0,get:function(_0x7246x2){if(_0xa4d4[194]== typeof _0x7246x2&&null==_0x7246x2[mxObjectIdentity[_0xa4d4[195]]]){var _0x7246x3=mxUtils[_0xa4d4[197]](_0x7246x2[_0xa4d4[196]]);_0x7246x2[mxObjectIdentity[_0xa4d4[195]]]=_0x7246x3+_0xa4d4[198]+mxObjectIdentity[_0xa4d4[199]]++;};return _0x7246x2[mxObjectIdentity[_0xa4d4[195]]];},clear:function(_0x7246x2){_0xa4d4[194]== typeof _0x7246x2&& delete _0x7246x2[mxObjectIdentity[_0xa4d4[195]]]}};function mxDictionary(){this[_0xa4d4[200]]()}mxDictionary[_0xa4d4[202]][_0xa4d4[201]]=null;mxDictionary[_0xa4d4[202]][_0xa4d4[200]]=function(){this[_0xa4d4[201]]={}};mxDictionary[_0xa4d4[202]][_0xa4d4[203]]=function(_0x7246x2){_0x7246x2=mxObjectIdentity[_0xa4d4[203]](_0x7246x2);return this[_0xa4d4[201]][_0x7246x2];};mxDictionary[_0xa4d4[202]][_0xa4d4[204]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=mxObjectIdentity[_0xa4d4[203]](_0x7246x2),_0x7246x5=this[_0xa4d4[201]][_0x7246x4];this[_0xa4d4[201]][_0x7246x4]=_0x7246x3;return _0x7246x5;};mxDictionary[_0xa4d4[202]][_0xa4d4[205]]=function(_0x7246x2){_0x7246x2=mxObjectIdentity[_0xa4d4[203]](_0x7246x2);var _0x7246x3=this[_0xa4d4[201]][_0x7246x2];delete this[_0xa4d4[201]][_0x7246x2];return _0x7246x3;};mxDictionary[_0xa4d4[202]][_0xa4d4[206]]=function(){var _0x7246x2=[],_0x7246x3;for(_0x7246x3 in this[_0xa4d4[201]]){_0x7246x2[_0xa4d4[207]](_0x7246x3)};return _0x7246x2;};mxDictionary[_0xa4d4[202]][_0xa4d4[208]]=function(){var _0x7246x2=[],_0x7246x3;for(_0x7246x3 in this[_0xa4d4[201]]){_0x7246x2[_0xa4d4[207]](this[_0xa4d4[201]][_0x7246x3])};return _0x7246x2;};mxDictionary[_0xa4d4[202]][_0xa4d4[209]]=function(_0x7246x2){for(var _0x7246x3 in this[_0xa4d4[201]]){_0x7246x2(_0x7246x3,this[_0xa4d4[201]][_0x7246x3])}};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(_0x7246x2){return null!=mxClient[_0xa4d4[96]]?0<=mxUtils[_0xa4d4[2]](mxClient[_0xa4d4[96]],_0x7246x2):!0},getDefaultBundle:function(_0x7246x2,_0x7246x3){return mxResources[_0xa4d4[210]]||!mxResources[_0xa4d4[211]](_0x7246x3)?_0x7246x2+mxResources[_0xa4d4[212]]:null},getSpecialBundle:function(_0x7246x2,_0x7246x3){if(null==mxClient[_0xa4d4[96]]||!this[_0xa4d4[211]](_0x7246x3)){var _0x7246x4=_0x7246x3[_0xa4d4[2]](_0xa4d4[213]);0<_0x7246x4&&(_0x7246x3=_0x7246x3[_0xa4d4[85]](0,_0x7246x4));};return mxResources[_0xa4d4[214]]&&mxResources[_0xa4d4[211]](_0x7246x3)&&_0x7246x3!=mxClient[_0xa4d4[92]]?_0x7246x2+_0xa4d4[215]+_0x7246x3+mxResources[_0xa4d4[212]]:null;},add:function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:mxClient[_0xa4d4[90]][_0xa4d4[216]]();if(_0x7246x3!=mxConstants[_0xa4d4[217]]){var _0x7246x4=mxResources[_0xa4d4[218]](_0x7246x2,_0x7246x3);if(null!=_0x7246x4){try{var _0x7246x5=mxUtils[_0xa4d4[219]](_0x7246x4);_0x7246x5[_0xa4d4[220]]()&&mxResources[_0xa4d4[222]](_0x7246x5[_0xa4d4[221]]());}catch(e){}};_0x7246x4=mxResources[_0xa4d4[223]](_0x7246x2,_0x7246x3);if(null!=_0x7246x4){try{_0x7246x5=mxUtils[_0xa4d4[219]](_0x7246x4),_0x7246x5[_0xa4d4[220]]()&&mxResources[_0xa4d4[222]](_0x7246x5[_0xa4d4[221]]())}catch(f){}};};},parse:function(_0x7246x2){if(null!=_0x7246x2){_0x7246x2=_0x7246x2[_0xa4d4[224]](_0xa4d4[192]);for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3++){if(_0xa4d4[198]!=_0x7246x2[_0x7246x3][_0xa4d4[225]](0)){var _0x7246x4=_0x7246x2[_0x7246x3][_0xa4d4[2]](_0xa4d4[226]);if(0<_0x7246x4){var _0x7246x5=_0x7246x2[_0x7246x3][_0xa4d4[85]](0,_0x7246x4),_0x7246x9=_0x7246x2[_0x7246x3][_0xa4d4[67]];13==_0x7246x2[_0x7246x3][_0xa4d4[227]](_0x7246x9-1)&&_0x7246x9--;_0x7246x4=_0x7246x2[_0x7246x3][_0xa4d4[85]](_0x7246x4+1,_0x7246x9);this[_0xa4d4[228]]?(_0x7246x4=_0x7246x4[_0xa4d4[230]](/\\(?=u[a-fA-F\d]{4})/g,_0xa4d4[229]),mxResources[_0xa4d4[231]][_0x7246x5]=unescape(_0x7246x4)):mxResources[_0xa4d4[231]][_0x7246x5]=_0x7246x4;};}};}},get:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=mxResources[_0xa4d4[231]][_0x7246x2];null==_0x7246x2&&(_0x7246x2=_0x7246x4);if(null!=_0x7246x2&&null!=_0x7246x3){_0x7246x4=[];for(var _0x7246x5=null,_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=_0x7246x2[_0xa4d4[225]](_0x7246x9);_0xa4d4[232]==_0x7246xa?_0x7246x5=_0xa4d4[110]:null!=_0x7246x5&&_0xa4d4[233]==_0x7246xa?(_0x7246x5=parseInt(_0x7246x5)-1,0<=_0x7246x5&&_0x7246x5<_0x7246x3[_0xa4d4[67]]&&_0x7246x4[_0xa4d4[207]](_0x7246x3[_0x7246x5]),_0x7246x5=null):null!=_0x7246x5?_0x7246x5+=_0x7246xa:_0x7246x4[_0xa4d4[207]](_0x7246xa);};_0x7246x2=_0x7246x4[_0xa4d4[234]](_0xa4d4[110]);};return _0x7246x2;}};function mxPoint(_0x7246x2,_0x7246x3){this[_0xa4d4[235]]=null!=_0x7246x2?_0x7246x2:0;this[_0xa4d4[236]]=null!=_0x7246x3?_0x7246x3:0;}mxPoint[_0xa4d4[202]][_0xa4d4[235]]=null;mxPoint[_0xa4d4[202]][_0xa4d4[236]]=null;mxPoint[_0xa4d4[202]][_0xa4d4[237]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[235]]==this[_0xa4d4[235]]&&_0x7246x2[_0xa4d4[236]]==this[_0xa4d4[236]]};mxPoint[_0xa4d4[202]][_0xa4d4[238]]=function(){return mxUtils[_0xa4d4[238]](this)};function mxRectangle(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxPoint[_0xa4d4[239]](this,_0x7246x2,_0x7246x3);this[_0xa4d4[117]]=null!=_0x7246x4?_0x7246x4:0;this[_0xa4d4[119]]=null!=_0x7246x5?_0x7246x5:0;}mxRectangle[_0xa4d4[202]]= new mxPoint;mxRectangle[_0xa4d4[202]][_0xa4d4[196]]=mxRectangle;mxRectangle[_0xa4d4[202]][_0xa4d4[117]]=null;mxRectangle[_0xa4d4[202]][_0xa4d4[119]]=null;mxRectangle[_0xa4d4[202]][_0xa4d4[240]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[235]]=_0x7246x2;this[_0xa4d4[236]]=_0x7246x3;this[_0xa4d4[117]]=_0x7246x4;this[_0xa4d4[119]]=_0x7246x5;};mxRectangle[_0xa4d4[202]][_0xa4d4[241]]=function(){return this[_0xa4d4[235]]+this[_0xa4d4[117]]/2};mxRectangle[_0xa4d4[202]][_0xa4d4[242]]=function(){return this[_0xa4d4[236]]+this[_0xa4d4[119]]/2};mxRectangle[_0xa4d4[202]][_0xa4d4[99]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=Math[_0xa4d4[243]](this[_0xa4d4[235]],_0x7246x2[_0xa4d4[235]]),_0x7246x4=Math[_0xa4d4[243]](this[_0xa4d4[236]],_0x7246x2[_0xa4d4[236]]),_0x7246x5=Math[_0xa4d4[160]](this[_0xa4d4[235]]+this[_0xa4d4[117]],_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]);_0x7246x2=Math[_0xa4d4[160]](this[_0xa4d4[236]]+this[_0xa4d4[119]],_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]);this[_0xa4d4[235]]=_0x7246x3;this[_0xa4d4[236]]=_0x7246x4;this[_0xa4d4[117]]=_0x7246x5-_0x7246x3;this[_0xa4d4[119]]=_0x7246x2-_0x7246x4;}};mxRectangle[_0xa4d4[202]][_0xa4d4[244]]=function(_0x7246x2){this[_0xa4d4[235]]-=_0x7246x2;this[_0xa4d4[236]]-=_0x7246x2;this[_0xa4d4[117]]+=2*_0x7246x2;this[_0xa4d4[119]]+=2*_0x7246x2;};mxRectangle[_0xa4d4[202]][_0xa4d4[245]]=function(){return  new mxPoint(this[_0xa4d4[235]],this[_0xa4d4[236]])};mxRectangle[_0xa4d4[202]][_0xa4d4[237]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[235]]==this[_0xa4d4[235]]&&_0x7246x2[_0xa4d4[236]]==this[_0xa4d4[236]]&&_0x7246x2[_0xa4d4[117]]==this[_0xa4d4[117]]&&_0x7246x2[_0xa4d4[119]]==this[_0xa4d4[119]]};var mxEffects={animateChanges:function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=0,_0x7246x9=function(){for(var _0x7246x12=!1,_0x7246x13=0;_0x7246x13<_0x7246x3[_0xa4d4[67]];_0x7246x13++){var _0x7246x14=_0x7246x3[_0x7246x13];if(_0x7246x14 instanceof mxGeometryChange||_0x7246x14 instanceof mxTerminalChange||_0x7246x14 instanceof mxValueChange||_0x7246x14 instanceof mxChildChange||_0x7246x14 instanceof mxStyleChange){var _0x7246x15=_0x7246x2[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x14[_0xa4d4[246]]||_0x7246x14[_0xa4d4[247]],!1);if(null!=_0x7246x15){if(_0x7246x12= !0,_0x7246x14[_0xa4d4[196]]!=mxGeometryChange||_0x7246x2[_0xa4d4[251]][_0xa4d4[250]](_0x7246x14[_0xa4d4[246]])){mxUtils[_0xa4d4[254]](_0x7246x15[_0xa4d4[253]][_0xa4d4[252]],100*_0x7246x5/10)}else {var _0x7246x16=_0x7246x2[_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x17=(_0x7246x14[_0xa4d4[256]][_0xa4d4[235]]-_0x7246x14[_0xa4d4[257]][_0xa4d4[235]])*_0x7246x16,_0x7246x18=(_0x7246x14[_0xa4d4[256]][_0xa4d4[236]]-_0x7246x14[_0xa4d4[257]][_0xa4d4[236]])*_0x7246x16,_0x7246x19=(_0x7246x14[_0xa4d4[256]][_0xa4d4[117]]-_0x7246x14[_0xa4d4[257]][_0xa4d4[117]])*_0x7246x16,_0x7246x16=(_0x7246x14[_0xa4d4[256]][_0xa4d4[119]]-_0x7246x14[_0xa4d4[257]][_0xa4d4[119]])*_0x7246x16;0==_0x7246x5?(_0x7246x15[_0xa4d4[235]]-=_0x7246x17,_0x7246x15[_0xa4d4[236]]-=_0x7246x18,_0x7246x15[_0xa4d4[117]]-=_0x7246x19,_0x7246x15[_0xa4d4[119]]-=_0x7246x16):(_0x7246x15[_0xa4d4[235]]+=_0x7246x17/10,_0x7246x15[_0xa4d4[236]]+=_0x7246x18/10,_0x7246x15[_0xa4d4[117]]+=_0x7246x19/10,_0x7246x15[_0xa4d4[119]]+=_0x7246x16/10);_0x7246x2[_0xa4d4[259]][_0xa4d4[258]](_0x7246x15);mxEffects[_0xa4d4[260]](_0x7246x2,_0x7246x14[_0xa4d4[246]],100*_0x7246x5/10);}};};};10>_0x7246x5&&_0x7246x12?(_0x7246x5++,window[_0xa4d4[261]](_0x7246x9,_0x7246xa)):null!=_0x7246x4&&_0x7246x4();},_0x7246xa=30;_0x7246x9();},cascadeOpacity:function(_0x7246x2,_0x7246x3,_0x7246x4){for(var _0x7246x5=_0x7246x2[_0xa4d4[251]][_0xa4d4[262]](_0x7246x3),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){var _0x7246xa=_0x7246x2[_0xa4d4[251]][_0xa4d4[263]](_0x7246x3,_0x7246x9),_0x7246x12=_0x7246x2[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246xa);null!=_0x7246x12&&(mxUtils[_0xa4d4[254]](_0x7246x12[_0xa4d4[253]][_0xa4d4[252]],_0x7246x4),mxEffects[_0xa4d4[260]](_0x7246x2,_0x7246xa,_0x7246x4));};_0x7246x3=_0x7246x2[_0xa4d4[251]][_0xa4d4[264]](_0x7246x3);if(null!=_0x7246x3){for(_0x7246x9=0;_0x7246x9<_0x7246x3[_0xa4d4[67]];_0x7246x9++){_0x7246x5=_0x7246x2[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x3[_0x7246x9]),null!=_0x7246x5&&mxUtils[_0xa4d4[254]](_0x7246x5[_0xa4d4[253]][_0xa4d4[252]],_0x7246x4)}};},fadeOut:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x5=_0x7246x5||40;_0x7246x9=_0x7246x9||30;var _0x7246x12=_0x7246x3||100;mxUtils[_0xa4d4[254]](_0x7246x2,_0x7246x12);if(_0x7246xa||null==_0x7246xa){var _0x7246x13=function(){_0x7246x12=Math[_0xa4d4[160]](_0x7246x12-_0x7246x5,0);mxUtils[_0xa4d4[254]](_0x7246x2,_0x7246x12);0<_0x7246x12?window[_0xa4d4[261]](_0x7246x13,_0x7246x9):(_0x7246x2[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],_0x7246x4&&_0x7246x2[_0xa4d4[265]]&&_0x7246x2[_0xa4d4[265]][_0xa4d4[266]](_0x7246x2));};window[_0xa4d4[261]](_0x7246x13,_0x7246x9);}else {_0x7246x2[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],_0x7246x4&&_0x7246x2[_0xa4d4[265]]&&_0x7246x2[_0xa4d4[265]][_0xa4d4[266]](_0x7246x2)};}},mxUtils={errorResource:_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[267]:_0xa4d4[110],closeResource:_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[268]:_0xa4d4[110],errorImage:mxClient[_0xa4d4[88]]+_0xa4d4[269],removeCursors:function(_0x7246x2){null!=_0x7246x2[_0xa4d4[124]]&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[110]);_0x7246x2=_0x7246x2[_0xa4d4[271]];if(null!=_0x7246x2){for(var _0x7246x3=_0x7246x2[_0xa4d4[67]],_0x7246x4=0;_0x7246x4<_0x7246x3;_0x7246x4+=1){mxUtils[_0xa4d4[272]](_0x7246x2[_0x7246x4])}};},getCurrentStyle:function(){return mxClient[_0xa4d4[80]]?function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[273]]:null}:function(_0x7246x2){return null!=_0x7246x2?window[_0xa4d4[274]](_0x7246x2,_0xa4d4[110]):null}}(),hasScrollbars:function(_0x7246x2){_0x7246x2=mxUtils[_0xa4d4[275]](_0x7246x2);return null!=_0x7246x2&&(_0xa4d4[276]==_0x7246x2[_0xa4d4[277]]||_0xa4d4[278]==_0x7246x2[_0xa4d4[277]]);},bind:function(_0x7246x2,_0x7246x3){return function(){return _0x7246x3[_0xa4d4[183]](_0x7246x2,arguments)}},eval:function(_0x7246x2){var _0x7246x3=null;if(0<=_0x7246x2[_0xa4d4[2]](_0xa4d4[279])){try{eval(_0xa4d4[280]+_0x7246x2),_0x7246x3=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(c){mxLog[_0xa4d4[283]](c[_0xa4d4[281]]+_0xa4d4[282]+_0x7246x2)}}else {try{_0x7246x3=eval(_0x7246x2)}catch(d){mxLog[_0xa4d4[283]](d[_0xa4d4[281]]+_0xa4d4[282]+_0x7246x2)}};return _0x7246x3;},findNode:function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x2[_0xa4d4[284]](_0x7246x3);if(null!=_0x7246x5&&_0x7246x5==_0x7246x4){return _0x7246x2};for(_0x7246x2=_0x7246x2[_0xa4d4[285]];null!=_0x7246x2;){_0x7246x5=mxUtils[_0xa4d4[286]](_0x7246x2,_0x7246x3,_0x7246x4);if(null!=_0x7246x5){return _0x7246x5};_0x7246x2=_0x7246x2[_0xa4d4[287]];};return null;},findNodeByAttribute:function(){return 9<=document[_0xa4d4[5]]?function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=null;if(null!=_0x7246x2){if(_0x7246x2[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]&&_0x7246x2[_0xa4d4[284]](_0x7246x3)==_0x7246x4){_0x7246x5=_0x7246x2}else {for(_0x7246x2=_0x7246x2[_0xa4d4[285]];null!=_0x7246x2&&null==_0x7246x5;){_0x7246x5=mxUtils[_0xa4d4[290]](_0x7246x2,_0x7246x3,_0x7246x4),_0x7246x2=_0x7246x2[_0xa4d4[287]]}}};return _0x7246x5;}:mxClient[_0xa4d4[80]]?function(_0x7246x2,_0x7246x3,_0x7246x4){return null==_0x7246x2?null:_0x7246x2[_0xa4d4[295]][_0xa4d4[294]](_0xa4d4[291]+_0x7246x3+_0xa4d4[292]+_0x7246x4+_0xa4d4[293])}:function(_0x7246x2,_0x7246x3,_0x7246x4){return null==_0x7246x2?null:_0x7246x2[_0xa4d4[295]][_0xa4d4[297]](_0xa4d4[291]+_0x7246x3+_0xa4d4[292]+_0x7246x4+_0xa4d4[293],_0x7246x2[_0xa4d4[295]],null,XPathResult.ANY_TYPE,null)[_0xa4d4[296]]()}}(),getFunctionName:function(_0x7246x2){var _0x7246x3=null;if(null!=_0x7246x2){if(null!=_0x7246x2[_0xa4d4[298]]){_0x7246x3=_0x7246x2[_0xa4d4[298]]}else {_0x7246x2=_0x7246x2.toString();for(_0x7246x3=9;_0xa4d4[185]==_0x7246x2[_0xa4d4[225]](_0x7246x3);){_0x7246x3++};var _0x7246x4=_0x7246x2[_0xa4d4[2]](_0xa4d4[299],_0x7246x3),_0x7246x3=_0x7246x2[_0xa4d4[85]](_0x7246x3,_0x7246x4);}};return _0x7246x3;},indexOf:function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&null!=_0x7246x3){for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){if(_0x7246x2[_0x7246x4]==_0x7246x3){return _0x7246x4}}};return -1;},remove:function(_0x7246x2,_0x7246x3){var _0x7246x4=null;if(_0xa4d4[194]== typeof _0x7246x3){for(var _0x7246x5=mxUtils[_0xa4d4[2]](_0x7246x3,_0x7246x2);0<=_0x7246x5;){_0x7246x3[_0xa4d4[300]](_0x7246x5,1),_0x7246x4=_0x7246x2,_0x7246x5=mxUtils[_0xa4d4[2]](_0x7246x3,_0x7246x2)}};for(var _0x7246x9 in _0x7246x3){_0x7246x3[_0x7246x9]==_0x7246x2&&( delete _0x7246x3[_0x7246x9],_0x7246x4=_0x7246x2)};return _0x7246x4;},isNode:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){return null!=_0x7246x2&&!isNaN(_0x7246x2[_0xa4d4[288]])&&(null==_0x7246x3||_0x7246x2[_0xa4d4[301]][_0xa4d4[216]]()==_0x7246x3[_0xa4d4[216]]())?null==_0x7246x4||_0x7246x2[_0xa4d4[284]](_0x7246x4)==_0x7246x5:!1},getChildNodes:function(_0x7246x2,_0x7246x3){_0x7246x3=_0x7246x3||mxConstants[_0xa4d4[289]];for(var _0x7246x4=[],_0x7246x5=_0x7246x2[_0xa4d4[285]];null!=_0x7246x5;){_0x7246x5[_0xa4d4[288]]==_0x7246x3&&_0x7246x4[_0xa4d4[207]](_0x7246x5),_0x7246x5=_0x7246x5[_0xa4d4[287]]};return _0x7246x4;},createXmlDocument:function(){var _0x7246x2=null;document[_0xa4d4[302]]&&document[_0xa4d4[302]][_0xa4d4[303]]?_0x7246x2=document[_0xa4d4[302]][_0xa4d4[303]](_0xa4d4[110],_0xa4d4[110],null):window[_0xa4d4[304]]&&(_0x7246x2= new ActiveXObject(_0xa4d4[305]));return _0x7246x2;},parseXml:function(){return mxClient[_0xa4d4[80]]&&(_0xa4d4[82]=== typeof document[_0xa4d4[5]]||9>document[_0xa4d4[5]])?function(_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[306]]();_0x7246x3[_0xa4d4[307]]=_0xa4d4[308];_0x7246x3[_0xa4d4[309]](_0x7246x2);return _0x7246x3;}:function(_0x7246x2){return ( new DOMParser)[_0xa4d4[311]](_0x7246x2,_0xa4d4[310])}}(),clearSelection:function(){if(document[_0xa4d4[312]]){return function(){document[_0xa4d4[312]][_0xa4d4[313]]()}};if(window[_0xa4d4[314]]){return function(){window[_0xa4d4[314]]()[_0xa4d4[315]]()}};}(),getPrettyXml:function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=[];if(null!=_0x7246x2){if(_0x7246x3=_0x7246x3||_0xa4d4[316],_0x7246x4=_0x7246x4||_0xa4d4[110],_0x7246x2[_0xa4d4[288]]==mxConstants[_0xa4d4[317]]){_0x7246x5[_0xa4d4[207]](_0x7246x2[_0xa4d4[318]])}else {_0x7246x5[_0xa4d4[207]](_0x7246x4+_0xa4d4[319]+_0x7246x2[_0xa4d4[301]]);var _0x7246x9=_0x7246x2[_0xa4d4[320]];if(null!=_0x7246x9){for(var _0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=mxUtils[_0xa4d4[321]](_0x7246x9[_0x7246xa][_0xa4d4[318]]);_0x7246x5[_0xa4d4[207]](_0xa4d4[185]+_0x7246x9[_0x7246xa][_0xa4d4[301]]+_0xa4d4[322]+_0x7246x12+_0xa4d4[323]);}};_0x7246x9=_0x7246x2[_0xa4d4[285]];if(null!=_0x7246x9){for(_0x7246x5[_0xa4d4[207]](_0xa4d4[324]);null!=_0x7246x9;){_0x7246x5[_0xa4d4[207]](mxUtils[_0xa4d4[325]](_0x7246x9,_0x7246x3,_0x7246x4+_0x7246x3)),_0x7246x9=_0x7246x9[_0xa4d4[287]]};_0x7246x5[_0xa4d4[207]](_0x7246x4+_0xa4d4[326]+_0x7246x2[_0xa4d4[301]]+_0xa4d4[324]);}else {_0x7246x5[_0xa4d4[207]](_0xa4d4[327])};}};return _0x7246x5[_0xa4d4[234]](_0xa4d4[110]);},removeWhitespace:function(_0x7246x2,_0x7246x3){for(var _0x7246x4=_0x7246x3?_0x7246x2[_0xa4d4[328]]:_0x7246x2[_0xa4d4[287]];null!=_0x7246x4&&_0x7246x4[_0xa4d4[288]]==mxConstants[_0xa4d4[317]];){var _0x7246x5=_0x7246x3?_0x7246x4[_0xa4d4[328]]:_0x7246x4[_0xa4d4[287]],_0x7246x9=mxUtils[_0xa4d4[329]](_0x7246x4);0==mxUtils[_0xa4d4[330]](_0x7246x9)[_0xa4d4[67]]&&_0x7246x4[_0xa4d4[265]][_0xa4d4[266]](_0x7246x4);_0x7246x4=_0x7246x5;}},htmlEntities:function(_0x7246x2,_0x7246x3){_0x7246x2=(_0x7246x2||_0xa4d4[110])[_0xa4d4[230]](/&/g,_0xa4d4[331]);_0x7246x2=_0x7246x2[_0xa4d4[230]](/"/g,_0xa4d4[332]);_0x7246x2=_0x7246x2[_0xa4d4[230]](/\'/g,_0xa4d4[333]);_0x7246x2=_0x7246x2[_0xa4d4[230]](/</g,_0xa4d4[334]);_0x7246x2=_0x7246x2[_0xa4d4[230]](/>/g,_0xa4d4[335]);if(null==_0x7246x3||_0x7246x3){_0x7246x2=_0x7246x2[_0xa4d4[230]](/\n/g,_0xa4d4[336])};return _0x7246x2;},isVml:function(_0x7246x2){return null!=_0x7246x2&&_0xa4d4[97]==_0x7246x2[_0xa4d4[337]]},getXml:function(_0x7246x2,_0x7246x3){var _0x7246x4=_0xa4d4[110];null!=_0x7246x2&&(_0x7246x4=_0x7246x2[_0xa4d4[338]],_0x7246x4=null==_0x7246x4?_0x7246x2[_0xa4d4[339]]?_0x7246x2[_0xa4d4[339]]:( new XMLSerializer)[_0xa4d4[340]](_0x7246x2):_0x7246x4[_0xa4d4[230]](/\r\n\t[\t]*/g,_0xa4d4[110])[_0xa4d4[230]](/>\r\n/g,_0xa4d4[341])[_0xa4d4[230]](/\r\n/g,_0xa4d4[192]));return _0x7246x4=_0x7246x4[_0xa4d4[230]](/\n/g,_0x7246x3||_0xa4d4[336]);},getTextContent:function(_0x7246x2){var _0x7246x3=_0xa4d4[110];null!=_0x7246x2&&(null!=_0x7246x2[_0xa4d4[285]]&&(_0x7246x2=_0x7246x2[_0xa4d4[285]]),_0x7246x3=_0x7246x2[_0xa4d4[318]]||_0xa4d4[110]);return _0x7246x3;},getInnerHtml:function(){return mxClient[_0xa4d4[80]]?function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[339]]:_0xa4d4[110]}:function(_0x7246x2){return null!=_0x7246x2?( new XMLSerializer)[_0xa4d4[340]](_0x7246x2):_0xa4d4[110]}}(),getOuterHtml:function(){return mxClient[_0xa4d4[80]]?function(_0x7246x2){if(null!=_0x7246x2){if(null!=_0x7246x2[_0xa4d4[342]]){return _0x7246x2[_0xa4d4[342]]};var _0x7246x3=[];_0x7246x3[_0xa4d4[207]](_0xa4d4[319]+_0x7246x2[_0xa4d4[301]]);var _0x7246x4=_0x7246x2[_0xa4d4[320]];if(null!=_0x7246x4){for(var _0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=_0x7246x4[_0x7246x5][_0xa4d4[318]];null!=_0x7246x9&&0<_0x7246x9[_0xa4d4[67]]&&(_0x7246x3[_0xa4d4[207]](_0xa4d4[185]),_0x7246x3[_0xa4d4[207]](_0x7246x4[_0x7246x5][_0xa4d4[301]]),_0x7246x3[_0xa4d4[207]](_0xa4d4[322]),_0x7246x3[_0xa4d4[207]](_0x7246x9),_0x7246x3[_0xa4d4[207]](_0xa4d4[323]));}};0==_0x7246x2[_0xa4d4[339]][_0xa4d4[67]]?_0x7246x3[_0xa4d4[207]](_0xa4d4[343]):(_0x7246x3[_0xa4d4[207]](_0xa4d4[341]),_0x7246x3[_0xa4d4[207]](_0x7246x2[_0xa4d4[339]]),_0x7246x3[_0xa4d4[207]](_0xa4d4[326]+_0x7246x2[_0xa4d4[301]]+_0xa4d4[341]));return _0x7246x3[_0xa4d4[234]](_0xa4d4[110]);};return _0xa4d4[110];}:function(_0x7246x2){return null!=_0x7246x2?( new XMLSerializer)[_0xa4d4[340]](_0x7246x2):_0xa4d4[110]}}(),write:function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[295]][_0xa4d4[344]](_0x7246x3);null!=_0x7246x2&&_0x7246x2[_0xa4d4[62]](_0x7246x4);return _0x7246x4;},writeln:function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[295]][_0xa4d4[344]](_0x7246x3);null!=_0x7246x2&&(_0x7246x2[_0xa4d4[62]](_0x7246x4),_0x7246x2[_0xa4d4[62]](document[_0xa4d4[55]](_0xa4d4[345])));return _0x7246x4;},br:function(_0x7246x2,_0x7246x3){_0x7246x3=_0x7246x3||1;for(var _0x7246x4=null,_0x7246x5=0;_0x7246x5<_0x7246x3;_0x7246x5++){null!=_0x7246x2&&(_0x7246x4=_0x7246x2[_0xa4d4[295]][_0xa4d4[55]](_0xa4d4[345]),_0x7246x2[_0xa4d4[62]](_0x7246x4))};return _0x7246x4;},button:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:document;_0x7246x4=_0x7246x4[_0xa4d4[55]](_0xa4d4[172]);mxUtils[_0xa4d4[53]](_0x7246x4,_0x7246x2);mxEvent[_0xa4d4[169]](_0x7246x4,_0xa4d4[173],function(_0x7246x2){_0x7246x3(_0x7246x2)});return _0x7246x4;},para:function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[346]);mxUtils[_0xa4d4[53]](_0x7246x4,_0x7246x3);null!=_0x7246x2&&_0x7246x2[_0xa4d4[62]](_0x7246x4);return _0x7246x4;},addTransparentBackgroundFilter:function(_0x7246x2){_0x7246x2[_0xa4d4[124]][_0xa4d4[347]]+=_0xa4d4[348]+mxClient[_0xa4d4[88]]+_0xa4d4[349]},linkAction:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){return mxUtils[_0xa4d4[54]](_0x7246x2,_0x7246x3,function(){_0x7246x4[_0xa4d4[350]](_0x7246x5)},_0x7246x9)},linkInvoke:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){return mxUtils[_0xa4d4[54]](_0x7246x2,_0x7246x3,function(){_0x7246x4[_0x7246x5](_0x7246x9)},_0x7246xa)},link:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=document[_0xa4d4[55]](_0xa4d4[351]);_0x7246x9[_0xa4d4[124]][_0xa4d4[352]]=_0xa4d4[353];_0x7246x9[_0xa4d4[124]][_0xa4d4[354]]=_0xa4d4[355];_0x7246x9[_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[356];null!=_0x7246x5&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[357]]=_0x7246x5+_0xa4d4[168]);mxEvent[_0xa4d4[169]](_0x7246x9,_0xa4d4[173],_0x7246x4);mxUtils[_0xa4d4[53]](_0x7246x9,_0x7246x3);null!=_0x7246x2&&_0x7246x2[_0xa4d4[62]](_0x7246x9);return _0x7246x9;},fit:function(_0x7246x2){var _0x7246x3=parseInt(_0x7246x2[_0xa4d4[358]]),_0x7246x4=parseInt(_0x7246x2[_0xa4d4[359]]),_0x7246x5=document[_0xa4d4[112]],_0x7246x9=document[_0xa4d4[158]],_0x7246xa=(_0x7246x5[_0xa4d4[360]]||_0x7246x9[_0xa4d4[360]])+(_0x7246x5[_0xa4d4[159]]||_0x7246x9[_0xa4d4[159]]);_0x7246x3+_0x7246x4>_0x7246xa&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[160]](_0x7246x5[_0xa4d4[360]]||_0x7246x9[_0xa4d4[360]],_0x7246xa-_0x7246x4)+_0xa4d4[168]);_0x7246x3=parseInt(_0x7246x2[_0xa4d4[362]]);_0x7246x4=parseInt(_0x7246x2[_0xa4d4[167]]);_0x7246xa=(_0x7246x5[_0xa4d4[190]]||_0x7246x9[_0xa4d4[190]])+Math[_0xa4d4[160]](_0x7246x5[_0xa4d4[157]]||0,_0x7246x9[_0xa4d4[157]]);_0x7246x3+_0x7246x4>_0x7246xa&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[160]](_0x7246x5[_0xa4d4[190]]||_0x7246x9[_0xa4d4[190]],_0x7246xa-_0x7246x4)+_0xa4d4[168]);},open:function(_0x7246x2){if(mxClient[_0xa4d4[133]]){try{netscape[_0xa4d4[366]][_0xa4d4[365]][_0xa4d4[364]](_0xa4d4[363])}catch(b){return mxUtils[_0xa4d4[150]](_0xa4d4[367]),_0xa4d4[110]};var _0x7246x4=Components[_0xa4d4[372]][_0xa4d4[371]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[368]]);_0x7246x4[_0xa4d4[373]](_0x7246x2);if(!_0x7246x4[_0xa4d4[374]]()){return mxUtils[_0xa4d4[150]](_0xa4d4[375]),_0xa4d4[110]};_0x7246x2=Components[_0xa4d4[372]][_0xa4d4[377]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[376]]);_0x7246x2[_0xa4d4[176]](_0x7246x4,1,4,null);_0x7246x4=Components[_0xa4d4[372]][_0xa4d4[379]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[378]]);_0x7246x4[_0xa4d4[176]](_0x7246x2);return _0x7246x4[_0xa4d4[381]](_0x7246x4[_0xa4d4[380]]());};_0x7246x4=( new ActiveXObject(_0xa4d4[382])).OpenTextFile(_0x7246x2,1);_0x7246x2=_0x7246x4[_0xa4d4[383]]();_0x7246x4[_0xa4d4[268]]();return _0x7246x2;},save:function(_0x7246x2,_0x7246x3){if(mxClient[_0xa4d4[133]]){try{netscape[_0xa4d4[366]][_0xa4d4[365]][_0xa4d4[364]](_0xa4d4[363])}catch(c){mxUtils[_0xa4d4[150]](_0xa4d4[384]);return;};var _0x7246x5=Components[_0xa4d4[372]][_0xa4d4[371]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[368]]);_0x7246x5[_0xa4d4[373]](_0x7246x2);_0x7246x5[_0xa4d4[374]]()||_0x7246x5[_0xa4d4[385]](0,420);var _0x7246x9=Components[_0xa4d4[372]][_0xa4d4[387]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[386]]);_0x7246x9[_0xa4d4[176]](_0x7246x5,34,4,null);_0x7246x9[_0xa4d4[53]](_0x7246x3,_0x7246x3[_0xa4d4[67]]);_0x7246x9[_0xa4d4[388]]();_0x7246x9[_0xa4d4[268]]();}else {_0x7246x5=( new ActiveXObject(_0xa4d4[382])).CreateTextFile(_0x7246x2,!0),_0x7246x5.Write(_0x7246x3),_0x7246x5.Close()}},saveAs:function(_0x7246x2){var _0x7246x3=document[_0xa4d4[55]](_0xa4d4[389]);_0x7246x3[_0xa4d4[57]](_0xa4d4[390],_0xa4d4[110]);_0x7246x3[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x3);try{if(mxClient[_0xa4d4[133]]){var _0x7246x4=_0x7246x3[_0xa4d4[391]];_0x7246x4[_0xa4d4[392]]();_0x7246x4[_0xa4d4[53]](_0x7246x2);_0x7246x4[_0xa4d4[268]]();try{netscape[_0xa4d4[366]][_0xa4d4[365]][_0xa4d4[364]](_0xa4d4[363]),_0x7246x3[_0xa4d4[393]](),saveDocument(_0x7246x4)}catch(d){mxUtils[_0xa4d4[150]](_0xa4d4[394])};}else {_0x7246x4=_0x7246x3[_0xa4d4[396]][_0xa4d4[395]],_0x7246x4[_0xa4d4[53]](_0x7246x2),_0x7246x4[_0xa4d4[398]](_0xa4d4[397],!1,document[_0xa4d4[45]])}}finally{document[_0xa4d4[112]][_0xa4d4[266]](_0x7246x3)};},copy:function(_0x7246x2){if(window[_0xa4d4[399]]){window[_0xa4d4[399]][_0xa4d4[401]](_0xa4d4[400],_0x7246x2)}else {netscape[_0xa4d4[366]][_0xa4d4[365]][_0xa4d4[364]](_0xa4d4[363]);var _0x7246x3=Components[_0xa4d4[372]][_0xa4d4[403]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[402]]);if(_0x7246x3){var _0x7246x4=Components[_0xa4d4[372]][_0xa4d4[405]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[404]]);if(_0x7246x4){_0x7246x4[_0xa4d4[407]](_0xa4d4[406]);var _0x7246x5=Components[_0xa4d4[372]][_0xa4d4[409]][_0xa4d4[370]](Components[_0xa4d4[369]][_0xa4d4[408]]);_0x7246x5[_0xa4d4[410]]=_0x7246x2;_0x7246x4[_0xa4d4[411]](_0xa4d4[406],_0x7246x5,2*_0x7246x2[_0xa4d4[67]]);_0x7246x3[_0xa4d4[401]](_0x7246x4,null,Components[_0xa4d4[369]][_0xa4d4[402]][_0xa4d4[412]]);};};}},load:function(_0x7246x2){_0x7246x2= new mxXmlRequest(_0x7246x2,null,_0xa4d4[413],!1);_0x7246x2[_0xa4d4[414]]();return _0x7246x2;},get:function(_0x7246x2,_0x7246x3,_0x7246x4){return ( new mxXmlRequest(_0x7246x2,null,_0xa4d4[413]))[_0xa4d4[414]](_0x7246x3,_0x7246x4)},post:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){return ( new mxXmlRequest(_0x7246x2,_0x7246x3))[_0xa4d4[414]](_0x7246x4,_0x7246x5)},submit:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){return ( new mxXmlRequest(_0x7246x2,_0x7246x3))[_0xa4d4[415]](_0x7246x4,_0x7246x5)},loadInto:function(_0x7246x2,_0x7246x3,_0x7246x4){mxClient[_0xa4d4[80]]?_0x7246x3[_0xa4d4[416]]=function(){4==_0x7246x3[_0xa4d4[417]]&&_0x7246x4()}:_0x7246x3[_0xa4d4[418]](_0xa4d4[219],_0x7246x4,!1);_0x7246x3[_0xa4d4[219]](_0x7246x2);},getValue:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=null!=_0x7246x2?_0x7246x2[_0x7246x3]:null;null==_0x7246x2&&(_0x7246x2=_0x7246x4);return _0x7246x2;},getNumber:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=null!=_0x7246x2?_0x7246x2[_0x7246x3]:null;null==_0x7246x2&&(_0x7246x2=_0x7246x4||0);return Number(_0x7246x2);},getColor:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=null!=_0x7246x2?_0x7246x2[_0x7246x3]:null;null==_0x7246x2?_0x7246x2=_0x7246x4:_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);return _0x7246x2;},clone:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:!1;var _0x7246x5=null;if(null!=_0x7246x2&&_0xa4d4[279]== typeof _0x7246x2[_0xa4d4[196]]){var _0x7246x5= new _0x7246x2[_0xa4d4[196]],_0x7246x9;for(_0x7246x9 in _0x7246x2){if(_0x7246x9!=mxObjectIdentity[_0xa4d4[195]]&&(null==_0x7246x3||0>mxUtils[_0xa4d4[2]](_0x7246x3,_0x7246x9))){_0x7246x5[_0x7246x9]=!_0x7246x4&&_0xa4d4[194]== typeof _0x7246x2[_0x7246x9]?mxUtils[_0xa4d4[238]](_0x7246x2[_0x7246x9]):_0x7246x2[_0x7246x9]}};};return _0x7246x5;},equalPoints:function(_0x7246x2,_0x7246x3){if(null==_0x7246x2&&null!=_0x7246x3||null!=_0x7246x2&&null==_0x7246x3||null!=_0x7246x2&&null!=_0x7246x3&&_0x7246x2[_0xa4d4[67]]!=_0x7246x3[_0xa4d4[67]]){return !1};if(null!=_0x7246x2&&null!=_0x7246x3){for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){if(_0x7246x2[_0x7246x4]==_0x7246x3[_0x7246x4]||null!=_0x7246x2[_0x7246x4]&&!_0x7246x2[_0x7246x4][_0xa4d4[237]](_0x7246x3[_0x7246x4])){return !1}}};return !0;},equalEntries:function(_0x7246x2,_0x7246x3){if(null==_0x7246x2&&null!=_0x7246x3||null!=_0x7246x2&&null==_0x7246x3||null!=_0x7246x2&&null!=_0x7246x3&&_0x7246x2[_0xa4d4[67]]!=_0x7246x3[_0xa4d4[67]]){return !1};if(null!=_0x7246x2&&null!=_0x7246x3){for(var _0x7246x4 in _0x7246x2){if(_0x7246x2[_0x7246x4]!=_0x7246x3[_0x7246x4]){return !1}}};return !0;},extend:function(_0x7246x2,_0x7246x3){var _0x7246x4=function(){};_0x7246x4[_0xa4d4[202]]=_0x7246x3[_0xa4d4[202]];_0x7246x2[_0xa4d4[202]]= new _0x7246x4;_0x7246x2[_0xa4d4[202]][_0xa4d4[196]]=_0x7246x2;},toString:function(_0x7246x2){var _0x7246x3=_0xa4d4[110],_0x7246x4;for(_0x7246x4 in _0x7246x2){try{if(null==_0x7246x2[_0x7246x4]){_0x7246x3+=_0x7246x4+_0xa4d4[419]}else {if(_0xa4d4[279]== typeof _0x7246x2[_0x7246x4]){_0x7246x3+=_0x7246x4+_0xa4d4[420]}else {if(_0xa4d4[194]== typeof _0x7246x2[_0x7246x4]){var _0x7246x5=mxUtils[_0xa4d4[197]](_0x7246x2[_0x7246x4][_0xa4d4[196]]),_0x7246x3=_0x7246x3+(_0x7246x4+_0xa4d4[421]+_0x7246x5+_0xa4d4[422])}else {_0x7246x3+=_0x7246x4+_0xa4d4[423]+_0x7246x2[_0x7246x4]+_0xa4d4[192]}}}}catch(e){_0x7246x3+=_0x7246x4+_0xa4d4[226]+e[_0xa4d4[281]]}};return _0x7246x3;},toRadians:function(_0x7246x2){return Math[_0xa4d4[424]]*_0x7246x2/180},arcToCurves:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){_0x7246x13-=_0x7246x2;_0x7246x14-=_0x7246x3;if(0===_0x7246x4||0===_0x7246x5){return _0x7246x18};_0x7246x4=Math[_0xa4d4[425]](_0x7246x4);_0x7246x5=Math[_0xa4d4[425]](_0x7246x5);var _0x7246x15=-_0x7246x13/2,_0x7246x16=-_0x7246x14/2,_0x7246x17=Math[_0xa4d4[426]](_0x7246x9*Math[_0xa4d4[424]]/180),_0x7246x18=Math[_0xa4d4[427]](_0x7246x9*Math[_0xa4d4[424]]/180);_0x7246x9=_0x7246x17*_0x7246x15+_0x7246x18*_0x7246x16;var _0x7246x15=-1*_0x7246x18*_0x7246x15+_0x7246x17*_0x7246x16,_0x7246x16=_0x7246x9*_0x7246x9,_0x7246x19=_0x7246x15*_0x7246x15,_0x7246x1a=_0x7246x4*_0x7246x4,_0x7246x1b=_0x7246x5*_0x7246x5,_0x7246x1c=_0x7246x16/_0x7246x1a+_0x7246x19/_0x7246x1b;1<_0x7246x1c?(_0x7246x4*=Math[_0xa4d4[428]](_0x7246x1c),_0x7246x5*=Math[_0xa4d4[428]](_0x7246x1c),_0x7246xa=0):(_0x7246x1c=1,_0x7246xa===_0x7246x12&&(_0x7246x1c= -1),_0x7246xa=_0x7246x1c*Math[_0xa4d4[428]]((_0x7246x1a*_0x7246x1b-_0x7246x1a*_0x7246x19-_0x7246x1b*_0x7246x16)/(_0x7246x1a*_0x7246x19+_0x7246x1b*_0x7246x16)));_0x7246x16=_0x7246xa*_0x7246x4*_0x7246x15/_0x7246x5;_0x7246x19=-1*_0x7246xa*_0x7246x5*_0x7246x9/_0x7246x4;_0x7246x13=_0x7246x17*_0x7246x16-_0x7246x18*_0x7246x19+_0x7246x13/2;_0x7246x14=_0x7246x18*_0x7246x16+_0x7246x17*_0x7246x19+_0x7246x14/2;_0x7246x1a=Math[_0xa4d4[429]]((_0x7246x15-_0x7246x19)/_0x7246x5,(_0x7246x9-_0x7246x16)/_0x7246x4)-Math[_0xa4d4[429]](0,1);_0x7246xa=0<=_0x7246x1a?_0x7246x1a:2*Math[_0xa4d4[424]]+_0x7246x1a;_0x7246x1a=Math[_0xa4d4[429]]((-_0x7246x15-_0x7246x19)/_0x7246x5,(-_0x7246x9-_0x7246x16)/_0x7246x4)-Math[_0xa4d4[429]]((_0x7246x15-_0x7246x19)/_0x7246x5,(_0x7246x9-_0x7246x16)/_0x7246x4);_0x7246x9=0<=_0x7246x1a?_0x7246x1a:2*Math[_0xa4d4[424]]+_0x7246x1a;0==_0x7246x12&&0<_0x7246x9?_0x7246x9-=2*Math[_0xa4d4[424]]:0!=_0x7246x12&&0>_0x7246x9&&(_0x7246x9+=2*Math[_0xa4d4[424]]);_0x7246x12=2*_0x7246x9/Math[_0xa4d4[424]];_0x7246x12=Math[_0xa4d4[430]](0>_0x7246x12?-1*_0x7246x12:_0x7246x12);_0x7246x9/=_0x7246x12;_0x7246x15=8/3*Math[_0xa4d4[427]](_0x7246x9/4)*Math[_0xa4d4[427]](_0x7246x9/4)/Math[_0xa4d4[427]](_0x7246x9/2);_0x7246x16=_0x7246x17*_0x7246x4;_0x7246x17*=_0x7246x5;_0x7246x4*=_0x7246x18;_0x7246x5*=_0x7246x18;for(var _0x7246x1d=Math[_0xa4d4[426]](_0x7246xa),_0x7246x1e=Math[_0xa4d4[427]](_0x7246xa),_0x7246x19=-_0x7246x15*(_0x7246x16*_0x7246x1e+_0x7246x5*_0x7246x1d),_0x7246x1a=-_0x7246x15*(_0x7246x4*_0x7246x1e-_0x7246x17*_0x7246x1d),_0x7246x1c=_0x7246x1b=0,_0x7246x18=[],_0x7246x1f=0;_0x7246x1f<_0x7246x12;++_0x7246x1f){_0x7246xa+=_0x7246x9;var _0x7246x1d=Math[_0xa4d4[426]](_0x7246xa),_0x7246x1e=Math[_0xa4d4[427]](_0x7246xa),_0x7246x1b=_0x7246x16*_0x7246x1d-_0x7246x5*_0x7246x1e+_0x7246x13,_0x7246x1c=_0x7246x4*_0x7246x1d+_0x7246x17*_0x7246x1e+_0x7246x14,_0x7246x20=-_0x7246x15*(_0x7246x16*_0x7246x1e+_0x7246x5*_0x7246x1d),_0x7246x1d=-_0x7246x15*(_0x7246x4*_0x7246x1e-_0x7246x17*_0x7246x1d),_0x7246x1e=6*_0x7246x1f;_0x7246x18[_0x7246x1e]=Number(_0x7246x19+_0x7246x2);_0x7246x18[_0x7246x1e+1]=Number(_0x7246x1a+_0x7246x3);_0x7246x18[_0x7246x1e+2]=Number(_0x7246x1b-_0x7246x20+_0x7246x2);_0x7246x18[_0x7246x1e+3]=Number(_0x7246x1c-_0x7246x1d+_0x7246x3);_0x7246x18[_0x7246x1e+4]=Number(_0x7246x1b+_0x7246x2);_0x7246x18[_0x7246x1e+5]=Number(_0x7246x1c+_0x7246x3);_0x7246x19=_0x7246x1b+_0x7246x20;_0x7246x1a=_0x7246x1c+_0x7246x1d;};return _0x7246x18;},getBoundingBox:function(_0x7246x2,_0x7246x3){var _0x7246x4=null;if(null!=_0x7246x2&&null!=_0x7246x3&&0!=_0x7246x3){var _0x7246x5=mxUtils[_0xa4d4[431]](_0x7246x3),_0x7246x4=Math[_0xa4d4[426]](_0x7246x5),_0x7246x9=Math[_0xa4d4[427]](_0x7246x5),_0x7246xa= new mxPoint(_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]/2,_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]/2),_0x7246x12= new mxPoint(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]),_0x7246x5= new mxPoint(_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]],_0x7246x2[_0xa4d4[236]]),_0x7246x13= new mxPoint(_0x7246x5[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]),_0x7246x14= new mxPoint(_0x7246x2[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]]),_0x7246x12=mxUtils[_0xa4d4[432]](_0x7246x12,_0x7246x4,_0x7246x9,_0x7246xa),_0x7246x5=mxUtils[_0xa4d4[432]](_0x7246x5,_0x7246x4,_0x7246x9,_0x7246xa),_0x7246x13=mxUtils[_0xa4d4[432]](_0x7246x13,_0x7246x4,_0x7246x9,_0x7246xa),_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x4,_0x7246x9,_0x7246xa),_0x7246x4= new mxRectangle(_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]],0,0);_0x7246x4[_0xa4d4[99]]( new mxRectangle(_0x7246x5[_0xa4d4[235]],_0x7246x5[_0xa4d4[236]],0,0));_0x7246x4[_0xa4d4[99]]( new mxRectangle(_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]],0,0));_0x7246x4[_0xa4d4[99]]( new mxRectangle(_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]],0,0));};return _0x7246x4;},getRotatedPoint:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x5=null!=_0x7246x5?_0x7246x5: new mxPoint;var _0x7246x9=_0x7246x2[_0xa4d4[235]]-_0x7246x5[_0xa4d4[235]];_0x7246x2=_0x7246x2[_0xa4d4[236]]-_0x7246x5[_0xa4d4[236]];return  new mxPoint(_0x7246x9*_0x7246x3-_0x7246x2*_0x7246x4+_0x7246x5[_0xa4d4[235]],_0x7246x2*_0x7246x3+_0x7246x9*_0x7246x4+_0x7246x5[_0xa4d4[236]]);},getPortConstraints:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x2=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==_0x7246x2){return _0x7246x5};_0x7246x5=_0x7246x2.toString();_0x7246x2=mxConstants[_0xa4d4[434]];0<=_0x7246x5[_0xa4d4[2]](mxConstants.DIRECTION_NORTH)&&(_0x7246x2|=mxConstants[_0xa4d4[435]]);0<=_0x7246x5[_0xa4d4[2]](mxConstants.DIRECTION_WEST)&&(_0x7246x2|=mxConstants[_0xa4d4[436]]);0<=_0x7246x5[_0xa4d4[2]](mxConstants.DIRECTION_SOUTH)&&(_0x7246x2|=mxConstants[_0xa4d4[437]]);0<=_0x7246x5[_0xa4d4[2]](mxConstants.DIRECTION_EAST)&&(_0x7246x2|=mxConstants[_0xa4d4[438]]);return _0x7246x2;},reversePortConstraints:function(_0x7246x2){var _0x7246x3=0,_0x7246x3=(_0x7246x2&mxConstants[_0xa4d4[436]])<<3,_0x7246x3=_0x7246x3|(_0x7246x2&mxConstants[_0xa4d4[435]])<<1,_0x7246x3=_0x7246x3|(_0x7246x2&mxConstants[_0xa4d4[437]])>>1;return _0x7246x3|=(_0x7246x2&mxConstants[_0xa4d4[438]])>>3;},findNearestSegment:function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=-1;if(0<_0x7246x2[_0xa4d4[439]][_0xa4d4[67]]){for(var _0x7246x9=_0x7246x2[_0xa4d4[439]][0],_0x7246xa=null,_0x7246x12=1;_0x7246x12<_0x7246x2[_0xa4d4[439]][_0xa4d4[67]];_0x7246x12++){var _0x7246x13=_0x7246x2[_0xa4d4[439]][_0x7246x12],_0x7246x9=mxUtils[_0xa4d4[440]](_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]],_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]],_0x7246x3,_0x7246x4);if(null==_0x7246xa||_0x7246x9<_0x7246xa){_0x7246xa=_0x7246x9,_0x7246x5=_0x7246x12-1};_0x7246x9=_0x7246x13;}};return _0x7246x5;},rectangleIntersectsSegment:function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x2[_0xa4d4[236]],_0x7246x9=_0x7246x2[_0xa4d4[235]],_0x7246xa=_0x7246x5+_0x7246x2[_0xa4d4[119]],_0x7246x12=_0x7246x9+_0x7246x2[_0xa4d4[117]];_0x7246x2=_0x7246x3[_0xa4d4[235]];var _0x7246x13=_0x7246x4[_0xa4d4[235]];_0x7246x3[_0xa4d4[235]]>_0x7246x4[_0xa4d4[235]]&&(_0x7246x2=_0x7246x4[_0xa4d4[235]],_0x7246x13=_0x7246x3[_0xa4d4[235]]);_0x7246x13>_0x7246x12&&(_0x7246x13=_0x7246x12);_0x7246x2<_0x7246x9&&(_0x7246x2=_0x7246x9);if(_0x7246x2>_0x7246x13){return !1};var _0x7246x9=_0x7246x3[_0xa4d4[236]],_0x7246x12=_0x7246x4[_0xa4d4[236]],_0x7246x14=_0x7246x4[_0xa4d4[235]]-_0x7246x3[_0xa4d4[235]];1E-7<Math[_0xa4d4[425]](_0x7246x14)&&(_0x7246x4=(_0x7246x4[_0xa4d4[236]]-_0x7246x3[_0xa4d4[236]])/_0x7246x14,_0x7246x3=_0x7246x3[_0xa4d4[236]]-_0x7246x4*_0x7246x3[_0xa4d4[235]],_0x7246x9=_0x7246x4*_0x7246x2+_0x7246x3,_0x7246x12=_0x7246x4*_0x7246x13+_0x7246x3);_0x7246x9>_0x7246x12&&(_0x7246x3=_0x7246x12,_0x7246x12=_0x7246x9,_0x7246x9=_0x7246x3);_0x7246x12>_0x7246xa&&(_0x7246x12=_0x7246xa);_0x7246x9<_0x7246x5&&(_0x7246x9=_0x7246x5);return _0x7246x9>_0x7246x12?!1:!0;},contains:function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x2[_0xa4d4[235]]<=_0x7246x3&&_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]>=_0x7246x3&&_0x7246x2[_0xa4d4[236]]<=_0x7246x4&&_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]>=_0x7246x4},intersects:function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[117]],_0x7246x5=_0x7246x2[_0xa4d4[119]],_0x7246x9=_0x7246x3[_0xa4d4[117]],_0x7246xa=_0x7246x3[_0xa4d4[119]];if(0>=_0x7246x9||0>=_0x7246xa||0>=_0x7246x4||0>=_0x7246x5){return !1};var _0x7246x12=_0x7246x2[_0xa4d4[235]],_0x7246x13=_0x7246x2[_0xa4d4[236]],_0x7246x14=_0x7246x3[_0xa4d4[235]],_0x7246x15=_0x7246x3[_0xa4d4[236]],_0x7246x9=_0x7246x9+_0x7246x14,_0x7246xa=_0x7246xa+_0x7246x15,_0x7246x4=_0x7246x4+_0x7246x12,_0x7246x5=_0x7246x5+_0x7246x13;return (_0x7246x9<_0x7246x14||_0x7246x9>_0x7246x12)&&(_0x7246xa<_0x7246x15||_0x7246xa>_0x7246x13)&&(_0x7246x4<_0x7246x12||_0x7246x4>_0x7246x14)&&(_0x7246x5<_0x7246x13||_0x7246x5>_0x7246x15);},intersectsHotspot:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x5=null!=_0x7246x5?_0x7246x5:1;_0x7246x9=null!=_0x7246x9?_0x7246x9:0;_0x7246xa=null!=_0x7246xa?_0x7246xa:0;if(0<_0x7246x5){var _0x7246x12=_0x7246x2[_0xa4d4[241]](),_0x7246x13=_0x7246x2[_0xa4d4[242]](),_0x7246x14=_0x7246x2[_0xa4d4[117]],_0x7246x15=_0x7246x2[_0xa4d4[119]],_0x7246x16=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_STARTSIZE)*_0x7246x2[_0xa4d4[441]][_0xa4d4[255]];0<_0x7246x16&&(mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_HORIZONTAL,!0)?(_0x7246x13=_0x7246x2[_0xa4d4[236]]+_0x7246x16/2,_0x7246x15=_0x7246x16):(_0x7246x12=_0x7246x2[_0xa4d4[235]]+_0x7246x16/2,_0x7246x14=_0x7246x16));_0x7246x14=Math[_0xa4d4[160]](_0x7246x9,_0x7246x14*_0x7246x5);_0x7246x15=Math[_0xa4d4[160]](_0x7246x9,_0x7246x15*_0x7246x5);0<_0x7246xa&&(_0x7246x14=Math[_0xa4d4[243]](_0x7246x14,_0x7246xa),_0x7246x15=Math[_0xa4d4[243]](_0x7246x15,_0x7246xa));_0x7246x5= new mxRectangle(_0x7246x12-_0x7246x14/2,_0x7246x13-_0x7246x15/2,_0x7246x14,_0x7246x15);_0x7246x12=mxUtils[_0xa4d4[431]](mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ROTATION)||0);0!=_0x7246x12&&(_0x7246x9=Math[_0xa4d4[426]](-_0x7246x12),_0x7246xa=Math[_0xa4d4[427]](-_0x7246x12),_0x7246x12= new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]()),_0x7246x2=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x3,_0x7246x4),_0x7246x9,_0x7246xa,_0x7246x12),_0x7246x3=_0x7246x2[_0xa4d4[235]],_0x7246x4=_0x7246x2[_0xa4d4[236]]);return mxUtils[_0xa4d4[442]](_0x7246x5,_0x7246x3,_0x7246x4);};return !0;},getOffset:function(_0x7246x2,_0x7246x3){var _0x7246x4=0,_0x7246x5=0;if(null!=_0x7246x3&&_0x7246x3){var _0x7246x9=document[_0xa4d4[112]],_0x7246xa=document[_0xa4d4[158]],_0x7246x4=_0x7246x4+(_0x7246x9[_0xa4d4[360]]||_0x7246xa[_0xa4d4[360]]),_0x7246x5=_0x7246x5+(_0x7246x9[_0xa4d4[190]]||_0x7246xa[_0xa4d4[190]])};for(;_0x7246x2[_0xa4d4[443]];){_0x7246x4+=_0x7246x2[_0xa4d4[358]],_0x7246x5+=_0x7246x2[_0xa4d4[362]],_0x7246x2=_0x7246x2[_0xa4d4[443]]};return  new mxPoint(_0x7246x4,_0x7246x5);},getScrollOrigin:function(_0x7246x2){for(var _0x7246x3=document[_0xa4d4[112]],_0x7246x4=document[_0xa4d4[158]],_0x7246x5= new mxPoint(_0x7246x3[_0xa4d4[360]]||_0x7246x4[_0xa4d4[360]],_0x7246x3[_0xa4d4[190]]||_0x7246x4[_0xa4d4[190]]);null!=_0x7246x2&&_0x7246x2!=_0x7246x3&&_0x7246x2!=_0x7246x4;){!isNaN(_0x7246x2[_0xa4d4[360]])&&!isNaN(_0x7246x2[_0xa4d4[190]])&&(_0x7246x5[_0xa4d4[235]]+=_0x7246x2[_0xa4d4[360]],_0x7246x5[_0xa4d4[236]]+=_0x7246x2[_0xa4d4[190]]),_0x7246x2=_0x7246x2[_0xa4d4[265]]};return _0x7246x5;},convertPoint:function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=mxUtils[_0xa4d4[444]](_0x7246x2);_0x7246x2=mxUtils[_0xa4d4[445]](_0x7246x2);_0x7246x2[_0xa4d4[235]]-=_0x7246x5[_0xa4d4[235]];_0x7246x2[_0xa4d4[236]]-=_0x7246x5[_0xa4d4[236]];return  new mxPoint(_0x7246x3-_0x7246x2[_0xa4d4[235]],_0x7246x4-_0x7246x2[_0xa4d4[236]]);},ltrim:function(_0x7246x2,_0x7246x3){return _0x7246x2[_0xa4d4[230]](RegExp(_0xa4d4[446]+(_0x7246x3||_0xa4d4[447])+_0xa4d4[448],_0xa4d4[449]),_0xa4d4[110])},rtrim:function(_0x7246x2,_0x7246x3){return _0x7246x2[_0xa4d4[230]](RegExp(_0xa4d4[450]+(_0x7246x3||_0xa4d4[447])+_0xa4d4[451],_0xa4d4[449]),_0xa4d4[110])},trim:function(_0x7246x2,_0x7246x3){return mxUtils[_0xa4d4[453]](mxUtils[_0xa4d4[452]](_0x7246x2,_0x7246x3),_0x7246x3)},isNumeric:function(_0x7246x2){return null!=_0x7246x2&&(null==_0x7246x2[_0xa4d4[67]]||0<_0x7246x2[_0xa4d4[67]]&&0>_0x7246x2[_0xa4d4[2]](_0xa4d4[454])&&0>_0x7246x2[_0xa4d4[2]](_0xa4d4[455]))&&!isNaN(_0x7246x2)},mod:function(_0x7246x2,_0x7246x3){return (_0x7246x2%_0x7246x3+_0x7246x3)%_0x7246x3},intersection:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13){var _0x7246x14=(_0x7246x13-_0x7246xa)*(_0x7246x4-_0x7246x2)-(_0x7246x12-_0x7246x9)*(_0x7246x5-_0x7246x3);_0x7246x12=((_0x7246x12-_0x7246x9)*(_0x7246x3-_0x7246xa)-(_0x7246x13-_0x7246xa)*(_0x7246x2-_0x7246x9))/_0x7246x14;_0x7246x9=((_0x7246x4-_0x7246x2)*(_0x7246x3-_0x7246xa)-(_0x7246x5-_0x7246x3)*(_0x7246x2-_0x7246x9))/_0x7246x14;return 0<=_0x7246x12&&1>=_0x7246x12&&0<=_0x7246x9&&1>=_0x7246x9? new mxPoint(_0x7246x2+_0x7246x12*(_0x7246x4-_0x7246x2),_0x7246x3+_0x7246x12*(_0x7246x5-_0x7246x3)):null;},ptSegDistSq:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x4-=_0x7246x2;_0x7246x5-=_0x7246x3;_0x7246x9-=_0x7246x2;_0x7246xa-=_0x7246x3;0>=_0x7246x9*_0x7246x4+_0x7246xa*_0x7246x5?_0x7246x4=0:(_0x7246x9=_0x7246x4-_0x7246x9,_0x7246xa=_0x7246x5-_0x7246xa,_0x7246x2=_0x7246x9*_0x7246x4+_0x7246xa*_0x7246x5,_0x7246x4=0>=_0x7246x2?0:_0x7246x2*_0x7246x2/(_0x7246x4*_0x7246x4+_0x7246x5*_0x7246x5));_0x7246x9=_0x7246x9*_0x7246x9+_0x7246xa*_0x7246xa-_0x7246x4;0>_0x7246x9&&(_0x7246x9=0);return _0x7246x9;},relativeCcw:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x4-=_0x7246x2;_0x7246x5-=_0x7246x3;_0x7246x9-=_0x7246x2;_0x7246xa-=_0x7246x3;_0x7246x2=_0x7246x9*_0x7246x5-_0x7246xa*_0x7246x4;0==_0x7246x2&&(_0x7246x2=_0x7246x9*_0x7246x4+_0x7246xa*_0x7246x5,0<_0x7246x2&&(_0x7246x2=(_0x7246x9-_0x7246x4)*_0x7246x4+(_0x7246xa-_0x7246x5)*_0x7246x5,0>_0x7246x2&&(_0x7246x2=0)));return 0>_0x7246x2?-1:0<_0x7246x2?1:0;},animateChanges:function(_0x7246x2,_0x7246x3){mxEffects[_0xa4d4[456]][_0xa4d4[183]](this,arguments)},cascadeOpacity:function(_0x7246x2,_0x7246x3,_0x7246x4){mxEffects[_0xa4d4[260]][_0xa4d4[183]](this,arguments)},fadeOut:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){mxEffects[_0xa4d4[457]][_0xa4d4[183]](this,arguments)},setOpacity:function(_0x7246x2,_0x7246x3){mxUtils[_0xa4d4[458]](_0x7246x2)?_0x7246x2[_0xa4d4[124]][_0xa4d4[347]]=100<=_0x7246x3?null:_0xa4d4[459]+_0x7246x3/5+_0xa4d4[460]:mxClient[_0xa4d4[80]]&&(_0xa4d4[82]=== typeof document[_0xa4d4[5]]||9>document[_0xa4d4[5]])?_0x7246x2[_0xa4d4[124]][_0xa4d4[347]]=100<=_0x7246x3?null:_0xa4d4[459]+_0x7246x3+_0xa4d4[460]:_0x7246x2[_0xa4d4[124]][_0xa4d4[461]]=_0x7246x3/100},createImage:function(_0x7246x2){var _0x7246x3=null;mxClient[_0xa4d4[49]]&&_0xa4d4[462]!=document[_0xa4d4[135]]?(_0x7246x3=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[464]),_0x7246x3[_0xa4d4[57]](_0xa4d4[390],_0x7246x2),_0x7246x3[_0xa4d4[124]][_0xa4d4[465]]=_0xa4d4[130]):(_0x7246x3=document[_0xa4d4[55]](_0xa4d4[466]),_0x7246x3[_0xa4d4[57]](_0xa4d4[390],_0x7246x2),_0x7246x3[_0xa4d4[57]](_0xa4d4[467],_0xa4d4[468]));return _0x7246x3;},sortCells:function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;var _0x7246x4= new mxDictionary;_0x7246x2[_0xa4d4[470]](function(_0x7246x2,_0x7246x9){var _0x7246xa=_0x7246x4[_0xa4d4[203]](_0x7246x2);null==_0x7246xa&&(_0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2)[_0xa4d4[224]](mxCellPath.PATH_SEPARATOR),_0x7246x4[_0xa4d4[204]](_0x7246x2,_0x7246xa));var _0x7246x12=_0x7246x4[_0xa4d4[203]](_0x7246x9);null==_0x7246x12&&(_0x7246x12=mxCellPath[_0xa4d4[385]](_0x7246x9)[_0xa4d4[224]](mxCellPath.PATH_SEPARATOR),_0x7246x4[_0xa4d4[204]](_0x7246x9,_0x7246x12));_0x7246xa=mxCellPath[_0xa4d4[469]](_0x7246xa,_0x7246x12);return 0==_0x7246xa?0:0<_0x7246xa==_0x7246x3?1:-1;});return _0x7246x2;},getStylename:function(_0x7246x2){return null!=_0x7246x2&&(_0x7246x2=_0x7246x2[_0xa4d4[224]](_0xa4d4[471])[0],0>_0x7246x2[_0xa4d4[2]](_0xa4d4[226]))?_0x7246x2:_0xa4d4[110]},getStylenames:function(_0x7246x2){var _0x7246x3=[];if(null!=_0x7246x2){_0x7246x2=_0x7246x2[_0xa4d4[224]](_0xa4d4[471]);for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){0>_0x7246x2[_0x7246x4][_0xa4d4[2]](_0xa4d4[226])&&_0x7246x3[_0xa4d4[207]](_0x7246x2[_0x7246x4])};};return _0x7246x3;},indexOfStylename:function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&null!=_0x7246x3){for(var _0x7246x4=_0x7246x2[_0xa4d4[224]](_0xa4d4[471]),_0x7246x5=0,_0x7246x9=0;_0x7246x9<_0x7246x4[_0xa4d4[67]];_0x7246x9++){if(_0x7246x4[_0x7246x9]==_0x7246x3){return _0x7246x5};_0x7246x5+=_0x7246x4[_0x7246x9][_0xa4d4[67]]+1;}};return -1;},addStylename:function(_0x7246x2,_0x7246x3){0>mxUtils[_0xa4d4[472]](_0x7246x2,_0x7246x3)&&(null==_0x7246x2?_0x7246x2=_0xa4d4[110]:0<_0x7246x2[_0xa4d4[67]]&&_0xa4d4[471]!=_0x7246x2[_0xa4d4[225]](_0x7246x2[_0xa4d4[67]]-1)&&(_0x7246x2+=_0xa4d4[471]),_0x7246x2+=_0x7246x3);return _0x7246x2;},removeStylename:function(_0x7246x2,_0x7246x3){var _0x7246x4=[];if(null!=_0x7246x2){for(var _0x7246x5=_0x7246x2[_0xa4d4[224]](_0xa4d4[471]),_0x7246x9=0;_0x7246x9<_0x7246x5[_0xa4d4[67]];_0x7246x9++){_0x7246x5[_0x7246x9]!=_0x7246x3&&_0x7246x4[_0xa4d4[207]](_0x7246x5[_0x7246x9])}};return _0x7246x4[_0xa4d4[234]](_0xa4d4[471]);},removeAllStylenames:function(_0x7246x2){var _0x7246x3=[];if(null!=_0x7246x2){_0x7246x2=_0x7246x2[_0xa4d4[224]](_0xa4d4[471]);for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){0<=_0x7246x2[_0x7246x4][_0xa4d4[2]](_0xa4d4[226])&&_0x7246x3[_0xa4d4[207]](_0x7246x2[_0x7246x4])};};return _0x7246x3[_0xa4d4[234]](_0xa4d4[471]);},setCellStyles:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]){_0x7246x2[_0xa4d4[473]]();try{for(var _0x7246x9=0;_0x7246x9<_0x7246x3[_0xa4d4[67]];_0x7246x9++){if(null!=_0x7246x3[_0x7246x9]){var _0x7246xa=mxUtils[_0xa4d4[475]](_0x7246x2[_0xa4d4[474]](_0x7246x3[_0x7246x9]),_0x7246x4,_0x7246x5);_0x7246x2[_0xa4d4[475]](_0x7246x3[_0x7246x9],_0x7246xa);}}}finally{_0x7246x2[_0xa4d4[476]]()};}},setStyle:function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=null!=_0x7246x4&&(_0xa4d4[82]== typeof _0x7246x4[_0xa4d4[67]]||0<_0x7246x4[_0xa4d4[67]]);if(null==_0x7246x2||0==_0x7246x2[_0xa4d4[67]]){_0x7246x5&&(_0x7246x2=_0x7246x3+_0xa4d4[226]+_0x7246x4)}else {var _0x7246x9=_0x7246x2[_0xa4d4[2]](_0x7246x3+_0xa4d4[226]);0>_0x7246x9?_0x7246x5&&(_0x7246x5=_0xa4d4[471]==_0x7246x2[_0xa4d4[225]](_0x7246x2[_0xa4d4[67]]-1)?_0xa4d4[110]:_0xa4d4[471],_0x7246x2=_0x7246x2+_0x7246x5+_0x7246x3+_0xa4d4[226]+_0x7246x4):(_0x7246x3=_0x7246x5?_0x7246x3+_0xa4d4[226]+_0x7246x4:_0xa4d4[110],_0x7246x4=_0x7246x2[_0xa4d4[2]](_0xa4d4[471],_0x7246x9),_0x7246x5||_0x7246x4++,_0x7246x2=_0x7246x2[_0xa4d4[85]](0,_0x7246x9)+_0x7246x3+(_0x7246x4>_0x7246x9?_0x7246x2[_0xa4d4[85]](_0x7246x4):_0xa4d4[110]));};return _0x7246x2;},setCellStyleFlags:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]){_0x7246x2[_0xa4d4[473]]();try{for(var _0x7246xa=0;_0x7246xa<_0x7246x3[_0xa4d4[67]];_0x7246xa++){if(null!=_0x7246x3[_0x7246xa]){var _0x7246x12=mxUtils[_0xa4d4[477]](_0x7246x2[_0xa4d4[474]](_0x7246x3[_0x7246xa]),_0x7246x4,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[475]](_0x7246x3[_0x7246xa],_0x7246x12);}}}finally{_0x7246x2[_0xa4d4[476]]()};}},setStyleFlag:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null==_0x7246x2||0==_0x7246x2[_0xa4d4[67]]){_0x7246x2=_0x7246x5||null==_0x7246x5?_0x7246x3+_0xa4d4[226]+_0x7246x4:_0x7246x3+_0xa4d4[478]}else {var _0x7246x9=_0x7246x2[_0xa4d4[2]](_0x7246x3+_0xa4d4[226]);if(0>_0x7246x9){_0x7246x9=_0xa4d4[471]==_0x7246x2[_0xa4d4[225]](_0x7246x2[_0xa4d4[67]]-1)?_0xa4d4[110]:_0xa4d4[471],_0x7246x2=_0x7246x5||null==_0x7246x5?_0x7246x2+_0x7246x9+_0x7246x3+_0xa4d4[226]+_0x7246x4:_0x7246x2+_0x7246x9+_0x7246x3+_0xa4d4[478]}else {var _0x7246xa=_0x7246x2[_0xa4d4[2]](_0xa4d4[471],_0x7246x9),_0x7246x12=_0xa4d4[110],_0x7246x12=0>_0x7246xa?_0x7246x2[_0xa4d4[85]](_0x7246x9+_0x7246x3[_0xa4d4[67]]+1):_0x7246x2[_0xa4d4[85]](_0x7246x9+_0x7246x3[_0xa4d4[67]]+1,_0x7246xa),_0x7246x12=null==_0x7246x5?parseInt(_0x7246x12)^_0x7246x4:_0x7246x5?parseInt(_0x7246x12)|_0x7246x4:parseInt(_0x7246x12)& ~_0x7246x4;_0x7246x2=_0x7246x2[_0xa4d4[85]](0,_0x7246x9)+_0x7246x3+_0xa4d4[226]+_0x7246x12+(0<=_0x7246xa?_0x7246x2[_0xa4d4[85]](_0x7246xa):_0xa4d4[110]);};};return _0x7246x2;},getAlignmentAsPoint:function(_0x7246x2,_0x7246x3){var _0x7246x4=0,_0x7246x5=0;_0x7246x2==mxConstants[_0xa4d4[479]]?_0x7246x4= -0.5:_0x7246x2==mxConstants[_0xa4d4[480]]&&(_0x7246x4= -1);_0x7246x3==mxConstants[_0xa4d4[481]]?_0x7246x5= -0.5:_0x7246x3==mxConstants[_0xa4d4[482]]&&(_0x7246x5= -1);return  new mxPoint(_0x7246x4,_0x7246x5);},getSizeForString:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=null!=_0x7246x3?_0x7246x3:mxConstants[_0xa4d4[483]];_0x7246x4=null!=_0x7246x4?_0x7246x4:mxConstants[_0xa4d4[484]];var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x5[_0xa4d4[124]][_0xa4d4[486]]=_0x7246x4;_0x7246x5[_0xa4d4[124]][_0xa4d4[487]]=Math[_0xa4d4[488]](_0x7246x3)+_0xa4d4[168];_0x7246x5[_0xa4d4[124]][_0xa4d4[489]]=Math[_0xa4d4[488]](_0x7246x3*mxConstants[_0xa4d4[490]])+_0xa4d4[168];_0x7246x5[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x5[_0xa4d4[124]][_0xa4d4[493]]=_0xa4d4[494];_0x7246x5[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];_0x7246x5[_0xa4d4[124]][_0xa4d4[495]]=mxClient[_0xa4d4[496]]?_0xa4d4[497]:_0xa4d4[498];_0x7246x5[_0xa4d4[124]][_0xa4d4[499]]=_0xa4d4[500];_0x7246x5[_0xa4d4[339]]=_0x7246x2;document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x5);_0x7246x2= new mxRectangle(0,0,_0x7246x5[_0xa4d4[359]],_0x7246x5[_0xa4d4[167]]);document[_0xa4d4[112]][_0xa4d4[266]](_0x7246x5);return _0x7246x2;},getViewXml:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x5=null!=_0x7246x5?_0x7246x5:0;_0x7246x9=null!=_0x7246x9?_0x7246x9:0;_0x7246x3=null!=_0x7246x3?_0x7246x3:1;null==_0x7246x4&&(_0x7246x4=[_0x7246x2[_0xa4d4[502]]()[_0xa4d4[501]]()]);var _0x7246xa=_0x7246x2[_0xa4d4[249]](),_0x7246x12=null,_0x7246x13=_0x7246xa[_0xa4d4[503]]();_0x7246xa[_0xa4d4[504]](!1);var _0x7246x14=_0x7246xa[_0xa4d4[505]],_0x7246x15=_0x7246xa[_0xa4d4[506]];_0x7246x2[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?(_0x7246xa[_0xa4d4[505]]=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[449]),_0x7246xa[_0xa4d4[510]][_0xa4d4[62]](_0x7246xa[_0xa4d4[505]]),_0x7246xa[_0xa4d4[506]]=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[449])):(_0x7246xa[_0xa4d4[505]]=_0x7246xa[_0xa4d4[505]][_0xa4d4[511]](!1),_0x7246xa[_0xa4d4[510]][_0xa4d4[62]](_0x7246xa[_0xa4d4[505]]),_0x7246xa[_0xa4d4[506]]=_0x7246xa[_0xa4d4[506]][_0xa4d4[511]](!1));_0x7246xa[_0xa4d4[510]][_0xa4d4[62]](_0x7246xa[_0xa4d4[506]]);var _0x7246x16=_0x7246xa[_0xa4d4[512]]();_0x7246xa[_0xa4d4[513]]= new mxPoint(_0x7246x5,_0x7246x9);_0x7246x3= new mxTemporaryCellStates(_0x7246x2[_0xa4d4[249]](),_0x7246x3,_0x7246x4);try{_0x7246x12=( new mxCodec)[_0xa4d4[514]](_0x7246x2[_0xa4d4[249]]())}finally{_0x7246x3[_0xa4d4[515]](),_0x7246xa[_0xa4d4[513]]=_0x7246x16,_0x7246xa[_0xa4d4[510]][_0xa4d4[266]](_0x7246xa[_0xa4d4[505]]),_0x7246xa[_0xa4d4[510]][_0xa4d4[266]](_0x7246xa[_0xa4d4[506]]),_0x7246xa[_0xa4d4[505]]=_0x7246x14,_0x7246xa[_0xa4d4[506]]=_0x7246x15,_0x7246xa[_0xa4d4[504]](_0x7246x13)};return _0x7246x12;},getScaleForPageCount:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(1>_0x7246x2){return 1};_0x7246x4=null!=_0x7246x4?_0x7246x4:mxConstants[_0xa4d4[516]];_0x7246x5=null!=_0x7246x5?_0x7246x5:0;var _0x7246x9=_0x7246x4[_0xa4d4[117]]-2*_0x7246x5;_0x7246x4=_0x7246x4[_0xa4d4[119]]-2*_0x7246x5;_0x7246x5=_0x7246x3[_0xa4d4[517]]()[_0xa4d4[238]]();_0x7246x3=_0x7246x3[_0xa4d4[249]]()[_0xa4d4[518]]();_0x7246x5[_0xa4d4[117]]/=_0x7246x3;_0x7246x5[_0xa4d4[119]]/=_0x7246x3;_0x7246x3=_0x7246x5[_0xa4d4[117]];_0x7246x4=_0x7246x3/_0x7246x5[_0xa4d4[119]]/(_0x7246x9/_0x7246x4);_0x7246x5=Math[_0xa4d4[428]](_0x7246x2);var _0x7246xa=Math[_0xa4d4[428]](_0x7246x4);_0x7246x4=_0x7246x5*_0x7246xa;_0x7246x5/=_0x7246xa;if(1>_0x7246x4&&_0x7246x5>_0x7246x2){var _0x7246x12=_0x7246x5/_0x7246x2;_0x7246x5=_0x7246x2;_0x7246x4/=_0x7246x12;};1>_0x7246x5&&_0x7246x4>_0x7246x2&&(_0x7246x12=_0x7246x4/_0x7246x2,_0x7246x4=_0x7246x2,_0x7246x5/=_0x7246x12);_0x7246x12=Math[_0xa4d4[430]](_0x7246x4)*Math[_0xa4d4[430]](_0x7246x5);for(_0x7246xa=0;_0x7246x12>_0x7246x2;){var _0x7246x12=Math[_0xa4d4[519]](_0x7246x4)/_0x7246x4,_0x7246x13=Math[_0xa4d4[519]](_0x7246x5)/_0x7246x5;1==_0x7246x12&&(_0x7246x12=Math[_0xa4d4[519]](_0x7246x4-1)/_0x7246x4);1==_0x7246x13&&(_0x7246x13=Math[_0xa4d4[519]](_0x7246x5-1)/_0x7246x5);_0x7246x12=_0x7246x12>_0x7246x13?_0x7246x12:_0x7246x13;_0x7246x4*=_0x7246x12;_0x7246x5*=_0x7246x12;_0x7246x12=Math[_0xa4d4[430]](_0x7246x4)*Math[_0xa4d4[430]](_0x7246x5);_0x7246xa++;if(10<_0x7246xa){break};};return 0.99999*(_0x7246x9*_0x7246x4/_0x7246x3);},show:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x4=null!=_0x7246x4?_0x7246x4:0;_0x7246x5=null!=_0x7246x5?_0x7246x5:0;null==_0x7246x3?_0x7246x3=window[_0xa4d4[392]]()[_0xa4d4[395]]:_0x7246x3[_0xa4d4[392]]();var _0x7246x9=_0x7246x2[_0xa4d4[517]]();_0x7246x4=-_0x7246x9[_0xa4d4[235]]+_0x7246x4;_0x7246x5=-_0x7246x9[_0xa4d4[236]]+_0x7246x5;if(mxClient[_0xa4d4[80]]){for(var _0x7246x9=_0xa4d4[520],_0x7246xa=document[_0xa4d4[64]](_0xa4d4[521]),_0x7246x12=0;_0x7246x12<_0x7246xa[_0xa4d4[67]];_0x7246x12++){_0x7246x9+=_0x7246xa[_0x7246x12][_0xa4d4[342]]};_0x7246x9+=_0xa4d4[522];for(_0x7246x12=0;_0x7246x12<document[_0xa4d4[523]][_0xa4d4[67]];_0x7246x12++){try{_0x7246x9+=document[_0xa4d4[523]](_0x7246x12)[_0xa4d4[103]]}catch(h){}};_0x7246x9+=_0xa4d4[524];_0x7246x9+=_0xa4d4[525];_0x7246x9+=_0x7246x2[_0xa4d4[526]][_0xa4d4[339]];_0x7246x9+=_0xa4d4[527];_0x7246x9+=_0xa4d4[528];_0x7246x3[_0xa4d4[171]](_0x7246x9);_0x7246x3[_0xa4d4[268]]();_0x7246x2=_0x7246x3[_0xa4d4[112]][_0xa4d4[64]](_0xa4d4[529])[0];null!=_0x7246x2&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492],_0x7246x2[_0xa4d4[124]][_0xa4d4[361]]=_0x7246x4+_0xa4d4[168],_0x7246x2[_0xa4d4[124]][_0xa4d4[125]]=_0x7246x5+_0xa4d4[168]);}else {_0x7246x3[_0xa4d4[171]](_0xa4d4[530]);_0x7246x3[_0xa4d4[171]](_0xa4d4[531]);_0x7246xa=document[_0xa4d4[64]](_0xa4d4[521]);for(_0x7246x12=0;_0x7246x12<_0x7246xa[_0xa4d4[67]];_0x7246x12++){_0x7246x3[_0xa4d4[171]](mxUtils[_0xa4d4[532]](_0x7246xa[_0x7246x12]))};_0x7246xa=document[_0xa4d4[64]](_0xa4d4[54]);for(_0x7246x12=0;_0x7246x12<_0x7246xa[_0xa4d4[67]];_0x7246x12++){_0x7246x3[_0xa4d4[171]](mxUtils[_0xa4d4[532]](_0x7246xa[_0x7246x12]))};_0x7246xa=document[_0xa4d4[64]](_0xa4d4[124]);for(_0x7246x12=0;_0x7246x12<_0x7246xa[_0xa4d4[67]];_0x7246x12++){_0x7246x3[_0xa4d4[171]](mxUtils[_0xa4d4[532]](_0x7246xa[_0x7246x12]))};_0x7246x3[_0xa4d4[171]](_0xa4d4[533]);_0x7246x3[_0xa4d4[171]](_0xa4d4[534]);_0x7246x3[_0xa4d4[268]]();null==_0x7246x3[_0xa4d4[112]]&&_0x7246x3[_0xa4d4[158]][_0xa4d4[62]](_0x7246x3[_0xa4d4[55]](_0xa4d4[112]));_0x7246x3[_0xa4d4[112]][_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[278];for(_0x7246x2=_0x7246x2[_0xa4d4[526]][_0xa4d4[285]];null!=_0x7246x2;){_0x7246x12=_0x7246x2[_0xa4d4[511]](!0),_0x7246x3[_0xa4d4[112]][_0xa4d4[62]](_0x7246x12),_0x7246x2=_0x7246x2[_0xa4d4[287]]};_0x7246x2=_0x7246x3[_0xa4d4[64]](_0xa4d4[449])[0];null!=_0x7246x2&&(_0x7246x2[_0xa4d4[57]](_0xa4d4[535],_0xa4d4[536]+_0x7246x4+_0xa4d4[537]+_0x7246x5+_0xa4d4[460]),_0x7246x4=_0x7246x2[_0xa4d4[538]],_0x7246x4[_0xa4d4[57]](_0xa4d4[117],_0x7246x9[_0xa4d4[117]]+Math[_0xa4d4[160]](_0x7246x9[_0xa4d4[235]],0)+3),_0x7246x4[_0xa4d4[57]](_0xa4d4[119],_0x7246x9[_0xa4d4[119]]+Math[_0xa4d4[160]](_0x7246x9[_0xa4d4[236]],0)+3));};mxUtils[_0xa4d4[272]](_0x7246x3[_0xa4d4[112]]);return _0x7246x3;},printScreen:function(_0x7246x2){var _0x7246x3=window[_0xa4d4[392]]();mxUtils[_0xa4d4[539]](_0x7246x2,_0x7246x3[_0xa4d4[395]]);_0x7246x2=function(){_0x7246x3[_0xa4d4[393]]();_0x7246x3[_0xa4d4[540]]();_0x7246x3[_0xa4d4[268]]();};mxClient[_0xa4d4[76]]?_0x7246x3[_0xa4d4[261]](_0x7246x2,500):_0x7246x2();},popup:function(_0x7246x2,_0x7246x3){if(_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x4[_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[276];_0x7246x4[_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[541];_0x7246x4[_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[542];var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[543]);_0x7246x5[_0xa4d4[339]]=mxUtils[_0xa4d4[321]](_0x7246x2,!1)[_0xa4d4[230]](/\n/g,_0xa4d4[545])[_0xa4d4[230]](/ /g,_0xa4d4[544]);_0x7246x4[_0xa4d4[62]](_0x7246x5);_0x7246x4= new mxWindow(_0xa4d4[546],_0x7246x4,document[_0xa4d4[112]][_0xa4d4[159]]/2-320,(document[_0xa4d4[112]][_0xa4d4[157]]||document[_0xa4d4[158]][_0xa4d4[157]])/2-240,640,480,!1,!0);_0x7246x4[_0xa4d4[164]](!0);_0x7246x4[_0xa4d4[175]](!0);}else {mxClient[_0xa4d4[133]]?(_0x7246x4=window[_0xa4d4[392]](),_0x7246x4[_0xa4d4[395]][_0xa4d4[171]](_0xa4d4[547]+mxUtils[_0xa4d4[321]](_0x7246x2)+_0xa4d4[548]),_0x7246x4[_0xa4d4[395]][_0xa4d4[268]]()):(_0x7246x4=window[_0xa4d4[392]](),_0x7246x5=_0x7246x4[_0xa4d4[395]][_0xa4d4[55]](_0xa4d4[543]),_0x7246x5[_0xa4d4[339]]=mxUtils[_0xa4d4[321]](_0x7246x2,!1)[_0xa4d4[230]](/\n/g,_0xa4d4[545])[_0xa4d4[230]](/ /g,_0xa4d4[544]),_0x7246x4[_0xa4d4[395]][_0xa4d4[112]][_0xa4d4[62]](_0x7246x5))}},alert:function(_0x7246x2){alert(_0x7246x2)},prompt:function(_0x7246x2,_0x7246x3){return prompt(_0x7246x2,_0x7246x3)},confirm:function(_0x7246x2){return confirm(_0x7246x2)},error:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x9[_0xa4d4[124]][_0xa4d4[549]]=_0xa4d4[550];var _0x7246xa=document[_0xa4d4[55]](_0xa4d4[466]);_0x7246xa[_0xa4d4[57]](_0xa4d4[390],_0x7246x5||mxUtils[_0xa4d4[551]]);_0x7246xa[_0xa4d4[57]](_0xa4d4[552],_0xa4d4[553]);_0x7246xa[_0xa4d4[124]][_0xa4d4[123]]=_0xa4d4[554];_0x7246x9[_0xa4d4[62]](_0x7246xa);_0x7246x9[_0xa4d4[62]](document[_0xa4d4[344]](_0xa4d4[555]));_0x7246x9[_0xa4d4[62]](document[_0xa4d4[344]](_0xa4d4[555]));_0x7246x9[_0xa4d4[62]](document[_0xa4d4[344]](_0xa4d4[555]));mxUtils[_0xa4d4[53]](_0x7246x9,_0x7246x2);_0x7246x2=document[_0xa4d4[112]][_0xa4d4[159]];_0x7246x5=document[_0xa4d4[112]][_0xa4d4[157]]||document[_0xa4d4[158]][_0xa4d4[157]];var _0x7246x12= new mxWindow(mxResources[_0xa4d4[203]](mxUtils[_0xa4d4[556]])||mxUtils[_0xa4d4[556]],_0x7246x9,(_0x7246x2-_0x7246x3)/2,_0x7246x5/4,_0x7246x3,null,!1,!0);_0x7246x4&&(mxUtils[_0xa4d4[345]](_0x7246x9),_0x7246x3=document[_0xa4d4[55]](_0xa4d4[346]),_0x7246x4=document[_0xa4d4[55]](_0xa4d4[172]),mxClient[_0xa4d4[80]]?_0x7246x4[_0xa4d4[124]][_0xa4d4[103]]=_0xa4d4[557]:_0x7246x4[_0xa4d4[57]](_0xa4d4[124],_0xa4d4[557]),mxEvent[_0xa4d4[169]](_0x7246x4,_0xa4d4[173],function(_0x7246x2){_0x7246x12[_0xa4d4[515]]()}),mxUtils[_0xa4d4[53]](_0x7246x4,mxResources[_0xa4d4[203]](mxUtils[_0xa4d4[558]])||mxUtils[_0xa4d4[558]]),_0x7246x3[_0xa4d4[62]](_0x7246x4),_0x7246x9[_0xa4d4[62]](_0x7246x3),mxUtils[_0xa4d4[345]](_0x7246x9),_0x7246x12[_0xa4d4[164]](!0));_0x7246x12[_0xa4d4[175]](!0);return _0x7246x12;},makeDraggable:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15){_0x7246x2= new mxDragSource(_0x7246x2,_0x7246x4);_0x7246x2[_0xa4d4[559]]= new mxPoint(null!=_0x7246x9?_0x7246x9:0,null!=_0x7246xa?_0x7246xa:mxConstants[_0xa4d4[560]]);_0x7246x2[_0xa4d4[561]]=_0x7246x12;_0x7246x2[_0xa4d4[562]](!1);null!=_0x7246x14&&(_0x7246x2[_0xa4d4[563]]=_0x7246x14);null!=_0x7246x15&&(_0x7246x2[_0xa4d4[564]]=_0x7246x15);_0x7246x2[_0xa4d4[565]]=function(_0x7246x2){return _0xa4d4[279]== typeof _0x7246x3?_0x7246x3(_0x7246x2):_0x7246x3};null!=_0x7246x5&&(_0x7246x2[_0xa4d4[566]]=function(){return _0x7246x5[_0xa4d4[511]](!0)},_0x7246x13&&(_0x7246x2[_0xa4d4[567]]=function(_0x7246x2){var _0x7246x3=_0x7246x5[_0xa4d4[511]](!0),_0x7246x4=parseInt(_0x7246x3[_0xa4d4[124]][_0xa4d4[117]]),_0x7246x9=parseInt(_0x7246x3[_0xa4d4[124]][_0xa4d4[119]]);_0x7246x3[_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[488]](_0x7246x4*_0x7246x2[_0xa4d4[441]][_0xa4d4[255]])+_0xa4d4[168];_0x7246x3[_0xa4d4[124]][_0xa4d4[119]]=Math[_0xa4d4[488]](_0x7246x9*_0x7246x2[_0xa4d4[441]][_0xa4d4[255]])+_0xa4d4[168];return _0x7246x3;}));return _0x7246x2;}},mxConstants={DEFAULT_HOTSPOT:0.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:_0xa4d4[568],RENDERING_HINT_FASTER:_0xa4d4[569],RENDERING_HINT_FASTEST:_0xa4d4[570],DIALECT_SVG:_0xa4d4[571],DIALECT_VML:_0xa4d4[572],DIALECT_MIXEDHTML:_0xa4d4[573],DIALECT_PREFERHTML:_0xa4d4[574],DIALECT_STRICTHTML:_0xa4d4[575],NS_SVG:_0xa4d4[576],NS_XHTML:_0xa4d4[577],NS_XLINK:_0xa4d4[578],SHADOWCOLOR:_0xa4d4[579],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:_0xa4d4[580],DEFAULT_INVALID_COLOR:_0xa4d4[581],HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:_0xa4d4[582],CURSOR_MOVABLE_EDGE:_0xa4d4[582],CURSOR_LABEL_HANDLE:_0xa4d4[583],CURSOR_BEND_HANDLE:_0xa4d4[356],CURSOR_CONNECT:_0xa4d4[356],HIGHLIGHT_COLOR:_0xa4d4[580],CONNECT_TARGET_COLOR:_0xa4d4[584],INVALID_CONNECT_TARGET_COLOR:_0xa4d4[581],DROP_TARGET_COLOR:_0xa4d4[584],VALID_COLOR:_0xa4d4[580],INVALID_COLOR:_0xa4d4[581],EDGE_SELECTION_COLOR:_0xa4d4[580],VERTEX_SELECTION_COLOR:_0xa4d4[580],VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:_0xa4d4[581],GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:_0xa4d4[585],OUTLINE_STROKEWIDTH:mxClient[_0xa4d4[80]]?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:_0xa4d4[580],HANDLE_STROKECOLOR:_0xa4d4[586],LABEL_HANDLE_FILLCOLOR:_0xa4d4[587],CONNECT_HANDLE_FILLCOLOR:_0xa4d4[584],LOCKED_HANDLE_FILLCOLOR:_0xa4d4[581],OUTLINE_HANDLE_FILLCOLOR:_0xa4d4[588],OUTLINE_HANDLE_STROKECOLOR:_0xa4d4[589],DEFAULT_FONTFAMILY:_0xa4d4[590],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:0.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:_0xa4d4[130],STYLE_PERIMETER:_0xa4d4[591],STYLE_SOURCE_PORT:_0xa4d4[592],STYLE_TARGET_PORT:_0xa4d4[593],STYLE_PORT_CONSTRAINT:_0xa4d4[594],STYLE_OPACITY:_0xa4d4[461],STYLE_TEXT_OPACITY:_0xa4d4[595],STYLE_OVERFLOW:_0xa4d4[277],STYLE_ORTHOGONAL:_0xa4d4[596],STYLE_EXIT_X:_0xa4d4[597],STYLE_EXIT_Y:_0xa4d4[598],STYLE_EXIT_PERIMETER:_0xa4d4[599],STYLE_ENTRY_X:_0xa4d4[600],STYLE_ENTRY_Y:_0xa4d4[601],STYLE_ENTRY_PERIMETER:_0xa4d4[602],STYLE_WHITE_SPACE:_0xa4d4[493],STYLE_ROTATION:_0xa4d4[603],STYLE_FILLCOLOR:_0xa4d4[604],STYLE_SWIMLANE_FILLCOLOR:_0xa4d4[605],STYLE_GRADIENTCOLOR:_0xa4d4[606],STYLE_GRADIENT_DIRECTION:_0xa4d4[607],STYLE_STROKECOLOR:_0xa4d4[608],STYLE_SEPARATORCOLOR:_0xa4d4[609],STYLE_STROKEWIDTH:_0xa4d4[610],STYLE_ALIGN:_0xa4d4[611],STYLE_VERTICAL_ALIGN:_0xa4d4[123],STYLE_LABEL_POSITION:_0xa4d4[612],STYLE_VERTICAL_LABEL_POSITION:_0xa4d4[613],STYLE_IMAGE_ASPECT:_0xa4d4[614],STYLE_IMAGE_ALIGN:_0xa4d4[615],STYLE_IMAGE_VERTICAL_ALIGN:_0xa4d4[616],STYLE_GLASS:_0xa4d4[617],STYLE_IMAGE:_0xa4d4[618],STYLE_IMAGE_WIDTH:_0xa4d4[619],STYLE_IMAGE_HEIGHT:_0xa4d4[620],STYLE_IMAGE_BACKGROUND:_0xa4d4[621],STYLE_IMAGE_BORDER:_0xa4d4[622],STYLE_FLIPH:_0xa4d4[623],STYLE_FLIPV:_0xa4d4[624],STYLE_NOLABEL:_0xa4d4[625],STYLE_NOEDGESTYLE:_0xa4d4[626],STYLE_LABEL_BACKGROUNDCOLOR:_0xa4d4[627],STYLE_LABEL_BORDERCOLOR:_0xa4d4[628],STYLE_LABEL_PADDING:_0xa4d4[629],STYLE_INDICATOR_SHAPE:_0xa4d4[630],STYLE_INDICATOR_IMAGE:_0xa4d4[631],STYLE_INDICATOR_COLOR:_0xa4d4[632],STYLE_INDICATOR_STROKECOLOR:_0xa4d4[633],STYLE_INDICATOR_GRADIENTCOLOR:_0xa4d4[634],STYLE_INDICATOR_SPACING:_0xa4d4[635],STYLE_INDICATOR_WIDTH:_0xa4d4[636],STYLE_INDICATOR_HEIGHT:_0xa4d4[637],STYLE_INDICATOR_DIRECTION:_0xa4d4[638],STYLE_SHADOW:_0xa4d4[639],STYLE_SEGMENT:_0xa4d4[640],STYLE_ENDARROW:_0xa4d4[641],STYLE_STARTARROW:_0xa4d4[642],STYLE_ENDSIZE:_0xa4d4[643],STYLE_STARTSIZE:_0xa4d4[644],STYLE_SWIMLANE_LINE:_0xa4d4[645],STYLE_ENDFILL:_0xa4d4[646],STYLE_STARTFILL:_0xa4d4[647],STYLE_DASHED:_0xa4d4[648],STYLE_DASH_PATTERN:_0xa4d4[649],STYLE_ROUNDED:_0xa4d4[650],STYLE_CURVED:_0xa4d4[651],STYLE_ARCSIZE:_0xa4d4[652],STYLE_SMOOTH:_0xa4d4[653],STYLE_SOURCE_PERIMETER_SPACING:_0xa4d4[654],STYLE_TARGET_PERIMETER_SPACING:_0xa4d4[655],STYLE_PERIMETER_SPACING:_0xa4d4[656],STYLE_SPACING:_0xa4d4[657],STYLE_SPACING_TOP:_0xa4d4[658],STYLE_SPACING_LEFT:_0xa4d4[659],STYLE_SPACING_BOTTOM:_0xa4d4[660],STYLE_SPACING_RIGHT:_0xa4d4[661],STYLE_HORIZONTAL:_0xa4d4[662],STYLE_DIRECTION:_0xa4d4[663],STYLE_ELBOW:_0xa4d4[664],STYLE_FONTCOLOR:_0xa4d4[665],STYLE_FONTFAMILY:_0xa4d4[486],STYLE_FONTSIZE:_0xa4d4[487],STYLE_FONTSTYLE:_0xa4d4[666],STYLE_AUTOSIZE:_0xa4d4[667],STYLE_FOLDABLE:_0xa4d4[668],STYLE_EDITABLE:_0xa4d4[669],STYLE_BENDABLE:_0xa4d4[670],STYLE_MOVABLE:_0xa4d4[671],STYLE_RESIZABLE:_0xa4d4[672],STYLE_CLONEABLE:_0xa4d4[673],STYLE_DELETABLE:_0xa4d4[674],STYLE_SHAPE:_0xa4d4[253],STYLE_EDGE:_0xa4d4[675],STYLE_LOOP:_0xa4d4[676],STYLE_ROUTING_CENTER_X:_0xa4d4[677],STYLE_ROUTING_CENTER_Y:_0xa4d4[678],FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:_0xa4d4[679],SHAPE_ELLIPSE:_0xa4d4[680],SHAPE_DOUBLE_ELLIPSE:_0xa4d4[681],SHAPE_RHOMBUS:_0xa4d4[682],SHAPE_LINE:_0xa4d4[683],SHAPE_IMAGE:_0xa4d4[618],SHAPE_ARROW:_0xa4d4[684],SHAPE_LABEL:_0xa4d4[685],SHAPE_CYLINDER:_0xa4d4[686],SHAPE_SWIMLANE:_0xa4d4[687],SHAPE_CONNECTOR:_0xa4d4[688],SHAPE_ACTOR:_0xa4d4[689],SHAPE_CLOUD:_0xa4d4[690],SHAPE_TRIANGLE:_0xa4d4[691],SHAPE_HEXAGON:_0xa4d4[692],ARROW_CLASSIC:_0xa4d4[693],ARROW_BLOCK:_0xa4d4[694],ARROW_OPEN:_0xa4d4[392],ARROW_OVAL:_0xa4d4[695],ARROW_DIAMOND:_0xa4d4[696],ARROW_DIAMOND_THIN:_0xa4d4[697],ALIGN_LEFT:_0xa4d4[361],ALIGN_CENTER:_0xa4d4[698],ALIGN_RIGHT:_0xa4d4[699],ALIGN_TOP:_0xa4d4[125],ALIGN_MIDDLE:_0xa4d4[554],ALIGN_BOTTOM:_0xa4d4[553],DIRECTION_NORTH:_0xa4d4[700],DIRECTION_SOUTH:_0xa4d4[701],DIRECTION_EAST:_0xa4d4[702],DIRECTION_WEST:_0xa4d4[703],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:_0xa4d4[704],ELBOW_HORIZONTAL:_0xa4d4[662],EDGESTYLE_ELBOW:_0xa4d4[705],EDGESTYLE_ENTITY_RELATION:_0xa4d4[706],EDGESTYLE_LOOP:_0xa4d4[707],EDGESTYLE_SIDETOSIDE:_0xa4d4[708],EDGESTYLE_TOPTOBOTTOM:_0xa4d4[709],EDGESTYLE_ORTHOGONAL:_0xa4d4[710],EDGESTYLE_SEGMENT:_0xa4d4[711],PERIMETER_ELLIPSE:_0xa4d4[712],PERIMETER_RECTANGLE:_0xa4d4[713],PERIMETER_RHOMBUS:_0xa4d4[714],PERIMETER_TRIANGLE:_0xa4d4[715]};function mxEventObject(_0x7246x2){this[_0xa4d4[298]]=_0x7246x2;this[_0xa4d4[716]]=[];for(var _0x7246x3=1;_0x7246x3<arguments[_0xa4d4[67]];_0x7246x3+=2){null!=arguments[_0x7246x3+1]&&(this[_0xa4d4[716]][arguments[_0x7246x3]]=arguments[_0x7246x3+1])};}mxEventObject[_0xa4d4[202]][_0xa4d4[298]]=null;mxEventObject[_0xa4d4[202]][_0xa4d4[716]]=null;mxEventObject[_0xa4d4[202]][_0xa4d4[717]]= !1;mxEventObject[_0xa4d4[202]][_0xa4d4[718]]=function(){return this[_0xa4d4[298]]};mxEventObject[_0xa4d4[202]][_0xa4d4[719]]=function(){return this[_0xa4d4[716]]};mxEventObject[_0xa4d4[202]][_0xa4d4[720]]=function(_0x7246x2){return this[_0xa4d4[716]][_0x7246x2]};mxEventObject[_0xa4d4[202]][_0xa4d4[721]]=function(){return this[_0xa4d4[717]]};mxEventObject[_0xa4d4[202]][_0xa4d4[722]]=function(){this[_0xa4d4[717]]= !0};function mxMouseEvent(_0x7246x2,_0x7246x3){this[_0xa4d4[723]]=_0x7246x2;this[_0xa4d4[724]]=_0x7246x3;}mxMouseEvent[_0xa4d4[202]][_0xa4d4[717]]= !1;mxMouseEvent[_0xa4d4[202]][_0xa4d4[723]]=null;mxMouseEvent[_0xa4d4[202]][_0xa4d4[725]]=null;mxMouseEvent[_0xa4d4[202]][_0xa4d4[726]]=null;mxMouseEvent[_0xa4d4[202]][_0xa4d4[724]]=null;mxMouseEvent[_0xa4d4[202]][_0xa4d4[727]]=function(){return this[_0xa4d4[723]]};mxMouseEvent[_0xa4d4[202]][_0xa4d4[728]]=function(){return mxEvent[_0xa4d4[728]](this[_0xa4d4[723]])};mxMouseEvent[_0xa4d4[202]][_0xa4d4[729]]=function(_0x7246x2){if(null!=_0x7246x2){for(var _0x7246x3=this[_0xa4d4[728]]();null!=_0x7246x3;){if(_0x7246x3==_0x7246x2[_0xa4d4[252]]){return !0};_0x7246x3=_0x7246x3[_0xa4d4[265]];}};return !1;};mxMouseEvent[_0xa4d4[202]][_0xa4d4[730]]=function(){return mxEvent[_0xa4d4[731]](this[_0xa4d4[727]]())};mxMouseEvent[_0xa4d4[202]][_0xa4d4[732]]=function(){return mxEvent[_0xa4d4[733]](this[_0xa4d4[727]]())};mxMouseEvent[_0xa4d4[202]][_0xa4d4[734]]=function(){return this[_0xa4d4[725]]};mxMouseEvent[_0xa4d4[202]][_0xa4d4[735]]=function(){return this[_0xa4d4[726]]};mxMouseEvent[_0xa4d4[202]][_0xa4d4[248]]=function(){return this[_0xa4d4[724]]};mxMouseEvent[_0xa4d4[202]][_0xa4d4[736]]=function(){var _0x7246x2=this[_0xa4d4[248]]();return null!=_0x7246x2?_0x7246x2[_0xa4d4[246]]:null;};mxMouseEvent[_0xa4d4[202]][_0xa4d4[737]]=function(){return mxEvent[_0xa4d4[737]](this[_0xa4d4[727]]())};mxMouseEvent[_0xa4d4[202]][_0xa4d4[721]]=function(){return this[_0xa4d4[717]]};mxMouseEvent[_0xa4d4[202]][_0xa4d4[722]]=function(_0x7246x2){(null!=_0x7246x2?_0x7246x2:1)&&this[_0xa4d4[723]][_0xa4d4[738]]&&this[_0xa4d4[723]][_0xa4d4[738]]();this[_0xa4d4[723]][_0xa4d4[739]]= !1;this[_0xa4d4[717]]= !0;};function mxEventSource(_0x7246x2){this[_0xa4d4[740]](_0x7246x2)}mxEventSource[_0xa4d4[202]][_0xa4d4[741]]=null;mxEventSource[_0xa4d4[202]][_0xa4d4[742]]= !0;mxEventSource[_0xa4d4[202]][_0xa4d4[743]]=null;mxEventSource[_0xa4d4[202]][_0xa4d4[503]]=function(){return this[_0xa4d4[742]]};mxEventSource[_0xa4d4[202]][_0xa4d4[504]]=function(_0x7246x2){this[_0xa4d4[742]]=_0x7246x2};mxEventSource[_0xa4d4[202]][_0xa4d4[744]]=function(){return this[_0xa4d4[743]]};mxEventSource[_0xa4d4[202]][_0xa4d4[740]]=function(_0x7246x2){this[_0xa4d4[743]]=_0x7246x2};mxEventSource[_0xa4d4[202]][_0xa4d4[169]]=function(_0x7246x2,_0x7246x3){null==this[_0xa4d4[741]]&&(this[_0xa4d4[741]]=[]);this[_0xa4d4[741]][_0xa4d4[207]](_0x7246x2);this[_0xa4d4[741]][_0xa4d4[207]](_0x7246x3);};mxEventSource[_0xa4d4[202]][_0xa4d4[745]]=function(_0x7246x2){if(null!=this[_0xa4d4[741]]){for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[741]][_0xa4d4[67]];){this[_0xa4d4[741]][_0x7246x3+1]==_0x7246x2?this[_0xa4d4[741]][_0xa4d4[300]](_0x7246x3,2):_0x7246x3+=2}}};mxEventSource[_0xa4d4[202]][_0xa4d4[746]]=function(_0x7246x2,_0x7246x3){if(null!=this[_0xa4d4[741]]&&this[_0xa4d4[503]]()){null==_0x7246x2&&(_0x7246x2= new mxEventObject);null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[744]]());null==_0x7246x3&&(_0x7246x3=this);for(var _0x7246x4=[_0x7246x3,_0x7246x2],_0x7246x5=0;_0x7246x5<this[_0xa4d4[741]][_0xa4d4[67]];_0x7246x5+=2){var _0x7246x9=this[_0xa4d4[741]][_0x7246x5];(null==_0x7246x9||_0x7246x9==_0x7246x2[_0xa4d4[718]]())&&this[_0xa4d4[741]][_0x7246x5+1][_0xa4d4[183]](this,_0x7246x4);};}};var mxEvent={objects:[],addListener:function(){var _0x7246x2=function(_0x7246x2,_0x7246x4,_0x7246x5){null==_0x7246x2[_0xa4d4[69]]&&(_0x7246x2[_0xa4d4[69]]=[],mxEvent[_0xa4d4[68]][_0xa4d4[207]](_0x7246x2));_0x7246x2[_0xa4d4[69]][_0xa4d4[207]]({name:_0x7246x4,f:_0x7246x5});};return window[_0xa4d4[418]]?function(_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3[_0xa4d4[418]](_0x7246x4,_0x7246x5,!1);_0x7246x2(_0x7246x3,_0x7246x4,_0x7246x5);}:function(_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3[_0xa4d4[108]](_0xa4d4[747]+_0x7246x4,_0x7246x5);_0x7246x2(_0x7246x3,_0x7246x4,_0x7246x5);};}(),removeListener:function(){var _0x7246x2=function(_0x7246x2,_0x7246x4,_0x7246x5){if(null!=_0x7246x2[_0xa4d4[69]]){_0x7246x4=_0x7246x2[_0xa4d4[69]][_0xa4d4[67]];for(var _0x7246x9=0;_0x7246x9<_0x7246x4;_0x7246x9++){if(_0x7246x2[_0xa4d4[69]][_0x7246x9][_0xa4d4[748]]==_0x7246x5){_0x7246x2[_0xa4d4[69]][_0xa4d4[300]](_0x7246x9,1);break;}};0==_0x7246x2[_0xa4d4[69]][_0xa4d4[67]]&&(_0x7246x2[_0xa4d4[69]]=null);}};return window[_0xa4d4[749]]?function(_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3[_0xa4d4[749]](_0x7246x4,_0x7246x5,!1);_0x7246x2(_0x7246x3,_0x7246x4,_0x7246x5);}:function(_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3[_0xa4d4[750]](_0xa4d4[747]+_0x7246x4,_0x7246x5);_0x7246x2(_0x7246x3,_0x7246x4,_0x7246x5);};}(),removeAllListeners:function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[69]];if(null!=_0x7246x3){for(;0<_0x7246x3[_0xa4d4[67]];){var _0x7246x4=_0x7246x3[0];mxEvent[_0xa4d4[745]](_0x7246x2,_0x7246x4[_0xa4d4[298]],_0x7246x4[_0xa4d4[748]]);}};},addGestureListeners:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){null!=_0x7246x3&&mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[751],_0x7246x3);null!=_0x7246x4&&mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[752],_0x7246x4);null!=_0x7246x5&&mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[753],_0x7246x5);mxClient[_0xa4d4[754]]&&(null!=_0x7246x3&&mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[755],_0x7246x3),null!=_0x7246x4&&mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[756],_0x7246x4),null!=_0x7246x5&&mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[757],_0x7246x5));},removeGestureListeners:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){null!=_0x7246x3&&mxEvent[_0xa4d4[745]](_0x7246x2,_0xa4d4[751],_0x7246x3);null!=_0x7246x4&&mxEvent[_0xa4d4[745]](_0x7246x2,_0xa4d4[752],_0x7246x4);null!=_0x7246x5&&mxEvent[_0xa4d4[745]](_0x7246x2,_0xa4d4[753],_0x7246x5);mxClient[_0xa4d4[754]]&&(null!=_0x7246x3&&mxEvent[_0xa4d4[745]](_0x7246x2,_0xa4d4[755],_0x7246x3),null!=_0x7246x4&&mxEvent[_0xa4d4[745]](_0x7246x2,_0xa4d4[756],_0x7246x4),null!=_0x7246x5&&mxEvent[_0xa4d4[745]](_0x7246x2,_0xa4d4[757],_0x7246x5));},redirectMouseEvents:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12){var _0x7246x13=function(_0x7246x2){return _0xa4d4[279]== typeof _0x7246x4?_0x7246x4(_0x7246x2):_0x7246x4};mxEvent[_0xa4d4[759]](_0x7246x2,function(_0x7246x2){null!=_0x7246x5?_0x7246x5(_0x7246x2):mxEvent[_0xa4d4[721]](_0x7246x2)||_0x7246x3[_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x2,_0x7246x13(_0x7246x2)))},function(_0x7246x2){null!=_0x7246x9?_0x7246x9(_0x7246x2):mxEvent[_0xa4d4[721]](_0x7246x2)||_0x7246x3[_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x2,_0x7246x13(_0x7246x2)))},function(_0x7246x2){null!=_0x7246xa?_0x7246xa(_0x7246x2):mxEvent[_0xa4d4[721]](_0x7246x2)||_0x7246x3[_0xa4d4[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7246x2,_0x7246x13(_0x7246x2)))});mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[760],function(_0x7246x2){if(null!=_0x7246x12){_0x7246x12(_0x7246x2)}else {if(!mxEvent[_0xa4d4[721]](_0x7246x2)){var _0x7246x4=_0x7246x13(_0x7246x2);_0x7246x3[_0xa4d4[761]](_0x7246x2,null!=_0x7246x4?_0x7246x4[_0xa4d4[246]]:null);}}});},release:function(_0x7246x2){if(null!=_0x7246x2&&(mxEvent[_0xa4d4[70]](_0x7246x2),_0x7246x2=_0x7246x2[_0xa4d4[271]],null!=_0x7246x2)){for(var _0x7246x3=_0x7246x2[_0xa4d4[67]],_0x7246x4=0;_0x7246x4<_0x7246x3;_0x7246x4+=1){mxEvent[_0xa4d4[762]](_0x7246x2[_0x7246x4])}}},addMouseWheelListener:function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=function(_0x7246x3){null==_0x7246x3&&(_0x7246x3=window[_0xa4d4[763]]);var _0x7246x5=0,_0x7246x5=mxClient[_0xa4d4[133]]&&!mxClient[_0xa4d4[75]]&&!mxClient[_0xa4d4[76]]?-_0x7246x3[_0xa4d4[764]]/2:_0x7246x3[_0xa4d4[765]]/120;0!=_0x7246x5&&_0x7246x2(_0x7246x3,0<_0x7246x5);};mxClient[_0xa4d4[133]]?mxEvent[_0xa4d4[169]](window,mxClient[_0xa4d4[75]]||mxClient[_0xa4d4[76]]?_0xa4d4[766]:_0xa4d4[767],_0x7246x3):mxEvent[_0xa4d4[169]](document,_0xa4d4[766],_0x7246x3);}},disableContextMenu:function(){return mxClient[_0xa4d4[80]]&&(_0xa4d4[82]=== typeof document[_0xa4d4[5]]||9>document[_0xa4d4[5]])?function(_0x7246x2){mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[768],function(){return !1})}:function(_0x7246x2){_0x7246x2[_0xa4d4[57]](_0xa4d4[769],_0xa4d4[770])}}(),getSource:function(_0x7246x2){return null!=_0x7246x2[_0xa4d4[771]]?_0x7246x2[_0xa4d4[771]]:_0x7246x2[_0xa4d4[772]]},isConsumed:function(_0x7246x2){return null!=_0x7246x2[_0xa4d4[721]]&&_0x7246x2[_0xa4d4[721]]},isLeftMouseButton:function(_0x7246x2){return _0x7246x2[_0xa4d4[172]]==(mxClient[_0xa4d4[80]]&&(_0xa4d4[82]=== typeof document[_0xa4d4[5]]||9>document[_0xa4d4[5]])?1:0)},isRightMouseButton:function(_0x7246x2){return 2==_0x7246x2[_0xa4d4[172]]},isPopupTrigger:function(_0x7246x2){return mxEvent[_0xa4d4[773]](_0x7246x2)||mxEvent[_0xa4d4[774]](_0x7246x2)&&!mxEvent[_0xa4d4[775]](_0x7246x2)},isShiftDown:function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[776]]:!1},isAltDown:function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[777]]:!1},isControlDown:function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[778]]:!1},isMetaDown:function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[779]]:!1},getMainEvent:function(_0x7246x2){(_0xa4d4[755]==_0x7246x2[_0xa4d4[60]]||_0xa4d4[756]==_0x7246x2[_0xa4d4[60]])&&null!=_0x7246x2[_0xa4d4[780]]&&null!=_0x7246x2[_0xa4d4[780]][0]?_0x7246x2=_0x7246x2[_0xa4d4[780]][0]:_0xa4d4[757]==_0x7246x2[_0xa4d4[60]]&&(null!=_0x7246x2[_0xa4d4[781]]&&null!=_0x7246x2[_0xa4d4[781]][0])&&(_0x7246x2=_0x7246x2[_0xa4d4[781]][0]);return _0x7246x2;},getClientX:function(_0x7246x2){return mxEvent[_0xa4d4[783]](_0x7246x2)[_0xa4d4[782]]},getClientY:function(_0x7246x2){return mxEvent[_0xa4d4[783]](_0x7246x2)[_0xa4d4[784]]},consume:function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;if(null!=_0x7246x3?_0x7246x3:1){_0x7246x2[_0xa4d4[738]]?(_0x7246x4&&_0x7246x2[_0xa4d4[785]](),_0x7246x2[_0xa4d4[738]]()):_0x7246x4&&(_0x7246x2[_0xa4d4[786]]= !0)};_0x7246x2[_0xa4d4[721]]= !0;_0x7246x2[_0xa4d4[739]]= !1;},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:_0xa4d4[787],MOUSE_MOVE:_0xa4d4[788],MOUSE_UP:_0xa4d4[789],ACTIVATE:_0xa4d4[790],RESIZE_START:_0xa4d4[791],RESIZE:_0xa4d4[129],RESIZE_END:_0xa4d4[792],MOVE_START:_0xa4d4[793],MOVE:_0xa4d4[582],MOVE_END:_0xa4d4[794],PAN_START:_0xa4d4[795],PAN:_0xa4d4[796],PAN_END:_0xa4d4[797],MINIMIZE:_0xa4d4[798],NORMALIZE:_0xa4d4[799],MAXIMIZE:_0xa4d4[800],HIDE:_0xa4d4[801],SHOW:_0xa4d4[539],CLOSE:_0xa4d4[268],DESTROY:_0xa4d4[515],REFRESH:_0xa4d4[802],SIZE:_0xa4d4[803],SELECT:_0xa4d4[804],FIRED:_0xa4d4[805],GET:_0xa4d4[203],RECEIVE:_0xa4d4[806],CONNECT:_0xa4d4[807],DISCONNECT:_0xa4d4[808],SUSPEND:_0xa4d4[809],RESUME:_0xa4d4[810],MARK:_0xa4d4[811],SESSION:_0xa4d4[812],ROOT:_0xa4d4[813],POST:_0xa4d4[814],OPEN:_0xa4d4[392],SAVE:_0xa4d4[815],BEFORE_ADD_VERTEX:_0xa4d4[816],ADD_VERTEX:_0xa4d4[817],AFTER_ADD_VERTEX:_0xa4d4[818],DONE:_0xa4d4[819],EXECUTE:_0xa4d4[350],EXECUTED:_0xa4d4[820],BEGIN_UPDATE:_0xa4d4[473],START_EDIT:_0xa4d4[821],END_UPDATE:_0xa4d4[476],END_EDIT:_0xa4d4[822],BEFORE_UNDO:_0xa4d4[823],UNDO:_0xa4d4[824],REDO:_0xa4d4[825],CHANGE:_0xa4d4[826],NOTIFY:_0xa4d4[827],LAYOUT_CELLS:_0xa4d4[828],CLICK:_0xa4d4[173],SCALE:_0xa4d4[255],TRANSLATE:_0xa4d4[513],SCALE_AND_TRANSLATE:_0xa4d4[829],UP:_0xa4d4[830],DOWN:_0xa4d4[831],ADD:_0xa4d4[99],REMOVE:_0xa4d4[205],CLEAR:_0xa4d4[200],ADD_CELLS:_0xa4d4[832],CELLS_ADDED:_0xa4d4[833],MOVE_CELLS:_0xa4d4[834],CELLS_MOVED:_0xa4d4[835],RESIZE_CELLS:_0xa4d4[836],CELLS_RESIZED:_0xa4d4[837],TOGGLE_CELLS:_0xa4d4[838],CELLS_TOGGLED:_0xa4d4[839],ORDER_CELLS:_0xa4d4[840],CELLS_ORDERED:_0xa4d4[841],REMOVE_CELLS:_0xa4d4[842],CELLS_REMOVED:_0xa4d4[843],GROUP_CELLS:_0xa4d4[844],UNGROUP_CELLS:_0xa4d4[845],REMOVE_CELLS_FROM_PARENT:_0xa4d4[846],FOLD_CELLS:_0xa4d4[847],CELLS_FOLDED:_0xa4d4[848],ALIGN_CELLS:_0xa4d4[849],LABEL_CHANGED:_0xa4d4[850],CONNECT_CELL:_0xa4d4[851],CELL_CONNECTED:_0xa4d4[852],SPLIT_EDGE:_0xa4d4[853],FLIP_EDGE:_0xa4d4[854],START_EDITING:_0xa4d4[855],ADD_OVERLAY:_0xa4d4[856],REMOVE_OVERLAY:_0xa4d4[857],UPDATE_CELL_SIZE:_0xa4d4[858],ESCAPE:_0xa4d4[859],CLICK:_0xa4d4[173],DOUBLE_CLICK:_0xa4d4[860],START:_0xa4d4[861],RESET:_0xa4d4[862]};function mxXmlRequest(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[863]]=_0x7246x2;this[_0xa4d4[864]]=_0x7246x3;this[_0xa4d4[865]]=_0x7246x4||_0xa4d4[866];this[_0xa4d4[307]]=null!=_0x7246x5?_0x7246x5:!0;this[_0xa4d4[867]]=_0x7246x9;this[_0xa4d4[868]]=_0x7246xa;}mxXmlRequest[_0xa4d4[202]][_0xa4d4[863]]=null;mxXmlRequest[_0xa4d4[202]][_0xa4d4[864]]=null;mxXmlRequest[_0xa4d4[202]][_0xa4d4[865]]=null;mxXmlRequest[_0xa4d4[202]][_0xa4d4[307]]=null;mxXmlRequest[_0xa4d4[202]][_0xa4d4[869]]= !1;mxXmlRequest[_0xa4d4[202]][_0xa4d4[867]]=null;mxXmlRequest[_0xa4d4[202]][_0xa4d4[868]]=null;mxXmlRequest[_0xa4d4[202]][_0xa4d4[870]]=null;mxXmlRequest[_0xa4d4[202]][_0xa4d4[871]]=function(){return this[_0xa4d4[869]]};mxXmlRequest[_0xa4d4[202]][_0xa4d4[872]]=function(_0x7246x2){this[_0xa4d4[869]]=_0x7246x2};mxXmlRequest[_0xa4d4[202]][_0xa4d4[221]]=function(){return this[_0xa4d4[870]][_0xa4d4[873]]};mxXmlRequest[_0xa4d4[202]][_0xa4d4[220]]=function(){return 4==this[_0xa4d4[870]][_0xa4d4[417]]};mxXmlRequest[_0xa4d4[202]][_0xa4d4[874]]=function(){var _0x7246x2=this[_0xa4d4[875]]();return null!=_0x7246x2?_0x7246x2[_0xa4d4[158]]:null;};mxXmlRequest[_0xa4d4[202]][_0xa4d4[875]]=function(){var _0x7246x2=this[_0xa4d4[870]][_0xa4d4[876]];if(9<=document[_0xa4d4[5]]||null==_0x7246x2||null==_0x7246x2[_0xa4d4[158]]){_0x7246x2=mxUtils[_0xa4d4[877]](this[_0xa4d4[870]][_0xa4d4[873]])};return _0x7246x2;};mxXmlRequest[_0xa4d4[202]][_0xa4d4[221]]=function(){return this[_0xa4d4[870]][_0xa4d4[873]]};mxXmlRequest[_0xa4d4[202]][_0xa4d4[878]]=function(){return this[_0xa4d4[870]][_0xa4d4[879]]};mxXmlRequest[_0xa4d4[202]][_0xa4d4[385]]=function(){if(window[_0xa4d4[880]]){return function(){var _0x7246x2= new XMLHttpRequest;this[_0xa4d4[871]]()&&_0x7246x2[_0xa4d4[881]]&&_0x7246x2[_0xa4d4[881]](_0xa4d4[882]);return _0x7246x2;}};if(_0xa4d4[82]!= typeof ActiveXObject){return function(){return  new ActiveXObject(_0xa4d4[883])}};}();mxXmlRequest[_0xa4d4[202]][_0xa4d4[414]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[870]]=this[_0xa4d4[385]]();null!=this[_0xa4d4[870]]&&(null!=_0x7246x2&&(this[_0xa4d4[870]][_0xa4d4[416]]=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[220]]()&&(_0x7246x2(this),this[_0xa4d4[884]]=null)})),this[_0xa4d4[870]][_0xa4d4[392]](this[_0xa4d4[865]],this[_0xa4d4[863]],this[_0xa4d4[307]],this[_0xa4d4[867]],this[_0xa4d4[868]]),this[_0xa4d4[886]](this[_0xa4d4[870]],this[_0xa4d4[864]]),this[_0xa4d4[870]][_0xa4d4[414]](this[_0xa4d4[864]]));};mxXmlRequest[_0xa4d4[202]][_0xa4d4[886]]=function(_0x7246x2,_0x7246x3){null!=_0x7246x3&&_0x7246x2[_0xa4d4[889]](_0xa4d4[887],_0xa4d4[888])};mxXmlRequest[_0xa4d4[202]][_0xa4d4[415]]=function(_0x7246x2,_0x7246x3){_0x7246x2=_0x7246x2||document;var _0x7246x4=null;_0x7246x2==document&&(_0x7246x4=window[_0xa4d4[890]],window[_0xa4d4[890]]=null);var _0x7246x5=_0x7246x2[_0xa4d4[55]](_0xa4d4[891]);_0x7246x5[_0xa4d4[57]](_0xa4d4[865],this[_0xa4d4[865]]);_0x7246x5[_0xa4d4[57]](_0xa4d4[892],this[_0xa4d4[863]]);null!=_0x7246x3&&_0x7246x5[_0xa4d4[57]](_0xa4d4[772],_0x7246x3);_0x7246x5[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130];_0x7246x5[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];for(var _0x7246x9=0<this[_0xa4d4[864]][_0xa4d4[2]](_0xa4d4[893])?this[_0xa4d4[864]][_0xa4d4[224]](_0xa4d4[893]):this[_0xa4d4[864]][_0xa4d4[224]](),_0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x9[_0x7246xa][_0xa4d4[2]](_0xa4d4[226]);if(0<_0x7246x12){var _0x7246x13=_0x7246x9[_0x7246xa][_0xa4d4[85]](0,_0x7246x12),_0x7246x14=_0x7246x9[_0x7246xa][_0xa4d4[85]](_0x7246x12+1),_0x7246x12=_0x7246x2[_0xa4d4[55]](_0xa4d4[126]);_0x7246x12[_0xa4d4[57]](_0xa4d4[298],_0x7246x13);_0x7246x14=_0x7246x14[_0xa4d4[230]](/\n/g,_0xa4d4[336]);_0x7246x13=_0x7246x2[_0xa4d4[344]](_0x7246x14);_0x7246x12[_0xa4d4[62]](_0x7246x13);_0x7246x5[_0xa4d4[62]](_0x7246x12);};};_0x7246x2[_0xa4d4[112]][_0xa4d4[62]](_0x7246x5);_0x7246x5[_0xa4d4[894]]();_0x7246x2[_0xa4d4[112]][_0xa4d4[266]](_0x7246x5);null!=_0x7246x4&&(window[_0xa4d4[890]]=_0x7246x4);};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard[_0xa4d4[895]]},cut:function(_0x7246x2,_0x7246x3){_0x7246x3=mxClipboard[_0xa4d4[149]](_0x7246x2,_0x7246x3);mxClipboard[_0xa4d4[896]]=0;mxClipboard[_0xa4d4[842]](_0x7246x2,_0x7246x3);return _0x7246x3;},removeCells:function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[842]](_0x7246x3)},copy:function(_0x7246x2,_0x7246x3){_0x7246x3=_0x7246x3||_0x7246x2[_0xa4d4[897]]();var _0x7246x4=_0x7246x2[_0xa4d4[898]](_0x7246x3);mxClipboard[_0xa4d4[896]]=1;mxClipboard[_0xa4d4[895]]=_0x7246x2[_0xa4d4[899]](_0x7246x4);return _0x7246x4;},paste:function(_0x7246x2){if(null!=mxClipboard[_0xa4d4[895]]){var _0x7246x3=_0x7246x2[_0xa4d4[900]](mxClipboard[_0xa4d4[895]]),_0x7246x4=mxClipboard[_0xa4d4[896]]*mxClipboard[_0xa4d4[901]],_0x7246x5=_0x7246x2[_0xa4d4[902]](),_0x7246x3=_0x7246x2[_0xa4d4[903]](_0x7246x3,_0x7246x4,_0x7246x4,_0x7246x5);mxClipboard[_0xa4d4[896]]++;_0x7246x2[_0xa4d4[904]](_0x7246x3);}}};function mxWindow(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15){null!=_0x7246x3&&(_0x7246x12=null!=_0x7246x12?_0x7246x12:!0,this[_0xa4d4[905]]=_0x7246x3,this[_0xa4d4[176]](_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x15),this[_0xa4d4[906]](),this[_0xa4d4[907]](),this[_0xa4d4[908]](),this[_0xa4d4[909]](_0x7246x12),this[_0xa4d4[910]](_0x7246x2),(null==_0x7246x13||_0x7246x13)&&this[_0xa4d4[911]](),null!=_0x7246x14&&null!=_0x7246x14[_0xa4d4[265]]?_0x7246x14[_0xa4d4[265]][_0xa4d4[912]](this[_0xa4d4[485]],_0x7246x14):document[_0xa4d4[112]][_0xa4d4[62]](this[_0xa4d4[485]]))}mxWindow[_0xa4d4[202]]= new mxEventSource;mxWindow[_0xa4d4[202]][_0xa4d4[196]]=mxWindow;mxWindow[_0xa4d4[202]][_0xa4d4[913]]=mxClient[_0xa4d4[88]]+_0xa4d4[914];mxWindow[_0xa4d4[202]][_0xa4d4[915]]=mxClient[_0xa4d4[88]]+_0xa4d4[916];mxWindow[_0xa4d4[202]][_0xa4d4[917]]=mxClient[_0xa4d4[88]]+_0xa4d4[918];mxWindow[_0xa4d4[202]][_0xa4d4[919]]=mxClient[_0xa4d4[88]]+_0xa4d4[920];mxWindow[_0xa4d4[202]][_0xa4d4[921]]=mxClient[_0xa4d4[88]]+_0xa4d4[922];mxWindow[_0xa4d4[202]][_0xa4d4[189]]= !1;mxWindow[_0xa4d4[202]][_0xa4d4[905]]= !1;mxWindow[_0xa4d4[202]][_0xa4d4[923]]= new mxRectangle(0,0,50,40);mxWindow[_0xa4d4[202]][_0xa4d4[924]]= !1;mxWindow[_0xa4d4[202]][_0xa4d4[905]]= !1;mxWindow[_0xa4d4[202]][_0xa4d4[165]]= !0;mxWindow[_0xa4d4[202]][_0xa4d4[176]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x9=null!=_0x7246x9?_0x7246x9:_0xa4d4[925];this[_0xa4d4[485]]=document[_0xa4d4[55]](_0xa4d4[485]);this[_0xa4d4[485]][_0xa4d4[926]]=_0x7246x9;this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2+_0xa4d4[168];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x3+_0xa4d4[168];this[_0xa4d4[116]]=document[_0xa4d4[55]](_0xa4d4[116]);this[_0xa4d4[116]][_0xa4d4[926]]=_0x7246x9;null!=_0x7246x4&&(mxClient[_0xa4d4[80]]||(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x4+_0xa4d4[168]),this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x4+_0xa4d4[168]);null!=_0x7246x5&&(mxClient[_0xa4d4[80]]||(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x5+_0xa4d4[168]),this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x5+_0xa4d4[168]);_0x7246x2=document[_0xa4d4[55]](_0xa4d4[120]);_0x7246x3=document[_0xa4d4[55]](_0xa4d4[121]);this[_0xa4d4[924]]=document[_0xa4d4[55]](_0xa4d4[122]);this[_0xa4d4[924]][_0xa4d4[926]]=_0x7246x9+_0xa4d4[927];_0x7246x3[_0xa4d4[62]](this[_0xa4d4[924]]);_0x7246x2[_0xa4d4[62]](_0x7246x3);_0x7246x3=document[_0xa4d4[55]](_0xa4d4[121]);this[_0xa4d4[122]]=document[_0xa4d4[55]](_0xa4d4[122]);this[_0xa4d4[122]][_0xa4d4[926]]=_0x7246x9+_0xa4d4[928];this[_0xa4d4[929]]=document[_0xa4d4[55]](_0xa4d4[485]);this[_0xa4d4[929]][_0xa4d4[926]]=_0x7246x9+_0xa4d4[928];this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[118];this[_0xa4d4[929]][_0xa4d4[62]](this[_0xa4d4[905]]);if(mxClient[_0xa4d4[80]]||_0xa4d4[529]!=this[_0xa4d4[905]][_0xa4d4[301]][_0xa4d4[36]]()){this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[118]};this[_0xa4d4[122]][_0xa4d4[62]](this[_0xa4d4[929]]);_0x7246x3[_0xa4d4[62]](this[_0xa4d4[122]]);_0x7246x2[_0xa4d4[62]](_0x7246x3);this[_0xa4d4[116]][_0xa4d4[62]](_0x7246x2);this[_0xa4d4[485]][_0xa4d4[62]](this[_0xa4d4[116]]);_0x7246x9=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[790]]()});mxEvent[_0xa4d4[169]](this[_0xa4d4[924]],_0xa4d4[751],_0x7246x9);mxEvent[_0xa4d4[169]](this[_0xa4d4[116]],_0xa4d4[751],_0x7246x9);mxClient[_0xa4d4[754]]&&(mxEvent[_0xa4d4[169]](this[_0xa4d4[924]],_0xa4d4[755],_0x7246x9),mxEvent[_0xa4d4[169]](this[_0xa4d4[116]],_0xa4d4[755],_0x7246x9));this[_0xa4d4[801]]();};mxWindow[_0xa4d4[202]][_0xa4d4[910]]=function(_0x7246x2){for(var _0x7246x3=this[_0xa4d4[924]][_0xa4d4[285]];null!=_0x7246x3;){var _0x7246x4=_0x7246x3[_0xa4d4[287]];_0x7246x3[_0xa4d4[288]]==mxConstants[_0xa4d4[317]]&&_0x7246x3[_0xa4d4[265]][_0xa4d4[266]](_0x7246x3);_0x7246x3=_0x7246x4;};mxUtils[_0xa4d4[53]](this[_0xa4d4[924]],_0x7246x2||_0xa4d4[110]);};mxWindow[_0xa4d4[202]][_0xa4d4[162]]=function(_0x7246x2){0>navigator[_0xa4d4[3]][_0xa4d4[2]](_0xa4d4[186])&&(this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[277]]=_0x7246x2?_0xa4d4[278]:_0xa4d4[188])};mxWindow[_0xa4d4[202]][_0xa4d4[790]]=function(){if(mxWindow[_0xa4d4[930]]!=this){var _0x7246x2=mxUtils[_0xa4d4[275]](this[_0xa4d4[166]]()),_0x7246x2=null!=_0x7246x2?_0x7246x2[_0xa4d4[931]]:3;if(mxWindow[_0xa4d4[930]]){var _0x7246x3=mxWindow[_0xa4d4[930]][_0xa4d4[166]]();null!=_0x7246x3&&null!=_0x7246x3[_0xa4d4[124]]&&(_0x7246x3[_0xa4d4[124]][_0xa4d4[931]]=_0x7246x2);};_0x7246x3=mxWindow[_0xa4d4[930]];this[_0xa4d4[166]]()[_0xa4d4[124]][_0xa4d4[931]]=parseInt(_0x7246x2)+1;mxWindow[_0xa4d4[930]]=this;this[_0xa4d4[746]]( new mxEventObject(mxEvent.ACTIVATE,_0xa4d4[932],_0x7246x3));}};mxWindow[_0xa4d4[202]][_0xa4d4[166]]=function(){return this[_0xa4d4[485]]};mxWindow[_0xa4d4[202]][_0xa4d4[933]]=function(){mxUtils[_0xa4d4[933]](this[_0xa4d4[485]])};mxWindow[_0xa4d4[202]][_0xa4d4[934]]=function(){return null!=this[_0xa4d4[129]]?_0xa4d4[130]!=this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[495]]:!1};mxWindow[_0xa4d4[202]][_0xa4d4[163]]=function(_0x7246x2){_0x7246x2?null==this[_0xa4d4[129]]?(this[_0xa4d4[129]]=document[_0xa4d4[55]](_0xa4d4[466]),this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492],this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[553]]=_0xa4d4[935],this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[699]]=_0xa4d4[935],this[_0xa4d4[129]][_0xa4d4[57]](_0xa4d4[390],mxClient[_0xa4d4[88]]+_0xa4d4[922]),this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[936],mxEvent[_0xa4d4[759]](this[_0xa4d4[129]],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[790]]();var _0x7246x4=mxEvent[_0xa4d4[731]](_0x7246x2),_0x7246x5=mxEvent[_0xa4d4[733]](_0x7246x2),_0x7246x9=this[_0xa4d4[485]][_0xa4d4[359]],_0x7246xa=this[_0xa4d4[485]][_0xa4d4[167]],_0x7246x12=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){var _0x7246x3=mxEvent[_0xa4d4[731]](_0x7246x2)-_0x7246x4,_0x7246x12=mxEvent[_0xa4d4[733]](_0x7246x2)-_0x7246x5;this[_0xa4d4[937]](_0x7246x9+_0x7246x3,_0x7246xa+_0x7246x12);this[_0xa4d4[746]]( new mxEventObject(mxEvent.RESIZE,_0xa4d4[763],_0x7246x2));mxEvent[_0xa4d4[722]](_0x7246x2);}),_0x7246x13=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){mxEvent[_0xa4d4[938]](document,null,_0x7246x12,_0x7246x13);this[_0xa4d4[746]]( new mxEventObject(mxEvent.RESIZE_END,_0xa4d4[763],_0x7246x2));mxEvent[_0xa4d4[722]](_0x7246x2);});mxEvent[_0xa4d4[759]](document,null,_0x7246x12,_0x7246x13);this[_0xa4d4[746]]( new mxEventObject(mxEvent.RESIZE_START,_0xa4d4[763],_0x7246x2));mxEvent[_0xa4d4[722]](_0x7246x2);}),null,null),this[_0xa4d4[485]][_0xa4d4[62]](this[_0xa4d4[129]])):this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497]:null!=this[_0xa4d4[129]]&&(this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130])};mxWindow[_0xa4d4[202]][_0xa4d4[937]]=function(_0x7246x2,_0x7246x3){_0x7246x2=Math[_0xa4d4[160]](this[_0xa4d4[923]][_0xa4d4[117]],_0x7246x2);_0x7246x3=Math[_0xa4d4[160]](this[_0xa4d4[923]][_0xa4d4[119]],_0x7246x3);mxClient[_0xa4d4[80]]||(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2+_0xa4d4[168],this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3+_0xa4d4[168]);this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2+_0xa4d4[168];this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3+_0xa4d4[168];mxClient[_0xa4d4[80]]||(this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[485]][_0xa4d4[167]]-this[_0xa4d4[924]][_0xa4d4[167]]-2+_0xa4d4[168]);};mxWindow[_0xa4d4[202]][_0xa4d4[909]]=function(_0x7246x2){this[_0xa4d4[798]][_0xa4d4[124]][_0xa4d4[495]]=_0x7246x2?_0xa4d4[110]:_0xa4d4[130]};mxWindow[_0xa4d4[202]][_0xa4d4[939]]=function(){return  new mxRectangle(0,0,0,this[_0xa4d4[924]][_0xa4d4[167]])};mxWindow[_0xa4d4[202]][_0xa4d4[907]]=function(){this[_0xa4d4[798]]=document[_0xa4d4[55]](_0xa4d4[466]);this[_0xa4d4[798]][_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[915]]);this[_0xa4d4[798]][_0xa4d4[57]](_0xa4d4[611],_0xa4d4[699]);this[_0xa4d4[798]][_0xa4d4[57]](_0xa4d4[924],_0xa4d4[940]);this[_0xa4d4[798]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[356];this[_0xa4d4[798]][_0xa4d4[124]][_0xa4d4[941]]=_0xa4d4[942];this[_0xa4d4[798]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130];this[_0xa4d4[924]][_0xa4d4[62]](this[_0xa4d4[798]]);var _0x7246x2=!1,_0x7246x3=null,_0x7246x4=null,_0x7246x5=mxUtils[_0xa4d4[885]](this,function(_0x7246x5){this[_0xa4d4[790]]();if(_0x7246x2){_0x7246x2= !1,this[_0xa4d4[798]][_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[915]]),this[_0xa4d4[798]][_0xa4d4[57]](_0xa4d4[924],_0xa4d4[940]),this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[110],this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[495]]=_0x7246x3,mxClient[_0xa4d4[80]]||(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x4),this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x4,null!=this[_0xa4d4[129]]&&(this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110]),this[_0xa4d4[746]]( new mxEventObject(mxEvent.NORMALIZE,_0xa4d4[763],_0x7246x5))}else {_0x7246x2= !0;this[_0xa4d4[798]][_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[917]]);this[_0xa4d4[798]][_0xa4d4[57]](_0xa4d4[924],_0xa4d4[943]);this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130];_0x7246x3=this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[495]];this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130];_0x7246x4=this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]];var _0x7246xa=this[_0xa4d4[939]]();0<_0x7246xa[_0xa4d4[119]]&&(mxClient[_0xa4d4[80]]||(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246xa[_0xa4d4[119]]+_0xa4d4[168]),this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246xa[_0xa4d4[119]]+_0xa4d4[168]);0<_0x7246xa[_0xa4d4[117]]&&(mxClient[_0xa4d4[80]]||(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246xa[_0xa4d4[117]]+_0xa4d4[168]),this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246xa[_0xa4d4[117]]+_0xa4d4[168]);null!=this[_0xa4d4[129]]&&(this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]);this[_0xa4d4[746]]( new mxEventObject(mxEvent.MINIMIZE,_0xa4d4[763],_0x7246x5));};mxEvent[_0xa4d4[722]](_0x7246x5);});mxEvent[_0xa4d4[169]](this[_0xa4d4[798]],_0xa4d4[751],_0x7246x5);mxClient[_0xa4d4[754]]&&mxEvent[_0xa4d4[169]](this[_0xa4d4[798]],_0xa4d4[755],_0x7246x5);};mxWindow[_0xa4d4[202]][_0xa4d4[161]]=function(_0x7246x2){this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[495]]=_0x7246x2?_0xa4d4[110]:_0xa4d4[130]};mxWindow[_0xa4d4[202]][_0xa4d4[906]]=function(){this[_0xa4d4[800]]=document[_0xa4d4[55]](_0xa4d4[466]);this[_0xa4d4[800]][_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[919]]);this[_0xa4d4[800]][_0xa4d4[57]](_0xa4d4[611],_0xa4d4[699]);this[_0xa4d4[800]][_0xa4d4[57]](_0xa4d4[924],_0xa4d4[944]);this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[583];this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[945]]=_0xa4d4[942];this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[356];this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130];this[_0xa4d4[924]][_0xa4d4[62]](this[_0xa4d4[800]]);var _0x7246x2=!1,_0x7246x3=null,_0x7246x4=null,_0x7246x5=null,_0x7246x9=null,_0x7246xa=mxUtils[_0xa4d4[885]](this,function(_0x7246xa){this[_0xa4d4[790]]();if(_0xa4d4[130]!=this[_0xa4d4[800]][_0xa4d4[124]][_0xa4d4[495]]){if(_0x7246x2){_0x7246x2= !1;this[_0xa4d4[800]][_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[919]]);this[_0xa4d4[800]][_0xa4d4[57]](_0xa4d4[924],_0xa4d4[944]);this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[110];this[_0xa4d4[798]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x3+_0xa4d4[168];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x4+_0xa4d4[168];if(!mxClient[_0xa4d4[80]]&&(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x5,this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x9,_0x7246x13=mxUtils[_0xa4d4[275]](this[_0xa4d4[929]]),_0xa4d4[278]==_0x7246x13[_0xa4d4[277]]||null!=this[_0xa4d4[129]])){this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[485]][_0xa4d4[167]]-this[_0xa4d4[924]][_0xa4d4[167]]-2+_0xa4d4[168]};this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x5;this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x9;null!=this[_0xa4d4[129]]&&(this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110]);this[_0xa4d4[746]]( new mxEventObject(mxEvent.NORMALIZE,_0xa4d4[763],_0x7246xa));}else {_0x7246x2= !0;this[_0xa4d4[800]][_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[917]]);this[_0xa4d4[800]][_0xa4d4[57]](_0xa4d4[924],_0xa4d4[943]);this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[110];this[_0xa4d4[798]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];_0x7246x3=parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]);_0x7246x4=parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]);_0x7246x5=this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]];_0x7246x9=this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[117]];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0xa4d4[946];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=_0xa4d4[946];mxClient[_0xa4d4[80]]||(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=document[_0xa4d4[112]][_0xa4d4[157]]-2+_0xa4d4[168],this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[117]]=document[_0xa4d4[112]][_0xa4d4[159]]-2+_0xa4d4[168]);this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[117]]=document[_0xa4d4[112]][_0xa4d4[159]]-2+_0xa4d4[168];this[_0xa4d4[116]][_0xa4d4[124]][_0xa4d4[119]]=document[_0xa4d4[112]][_0xa4d4[157]]-2+_0xa4d4[168];null!=this[_0xa4d4[129]]&&(this[_0xa4d4[129]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]);if(!mxClient[_0xa4d4[80]]){var _0x7246x13=mxUtils[_0xa4d4[275]](this[_0xa4d4[929]]);if(_0xa4d4[278]==_0x7246x13[_0xa4d4[277]]||null!=this[_0xa4d4[129]]){this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[485]][_0xa4d4[167]]-this[_0xa4d4[924]][_0xa4d4[167]]-2+_0xa4d4[168]};};this[_0xa4d4[746]]( new mxEventObject(mxEvent.MAXIMIZE,_0xa4d4[763],_0x7246xa));};mxEvent[_0xa4d4[722]](_0x7246xa);};});mxEvent[_0xa4d4[759]](this[_0xa4d4[800]],_0x7246xa);mxEvent[_0xa4d4[169]](this[_0xa4d4[924]],_0xa4d4[760],_0x7246xa);};mxWindow[_0xa4d4[202]][_0xa4d4[911]]=function(){this[_0xa4d4[924]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[582];mxEvent[_0xa4d4[759]](this[_0xa4d4[924]],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){var _0x7246x3=mxEvent[_0xa4d4[731]](_0x7246x2),_0x7246x4=mxEvent[_0xa4d4[733]](_0x7246x2),_0x7246x5=this[_0xa4d4[730]](),_0x7246x9=this[_0xa4d4[732]](),_0x7246xa=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){var _0x7246xa=mxEvent[_0xa4d4[731]](_0x7246x2)-_0x7246x3,_0x7246x12=mxEvent[_0xa4d4[733]](_0x7246x2)-_0x7246x4;this[_0xa4d4[947]](_0x7246x5+_0x7246xa,_0x7246x9+_0x7246x12);this[_0xa4d4[746]]( new mxEventObject(mxEvent.MOVE,_0xa4d4[763],_0x7246x2));mxEvent[_0xa4d4[722]](_0x7246x2);}),_0x7246x12=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){mxEvent[_0xa4d4[938]](document,null,_0x7246xa,_0x7246x12);this[_0xa4d4[746]]( new mxEventObject(mxEvent.MOVE_END,_0xa4d4[763],_0x7246x2));mxEvent[_0xa4d4[722]](_0x7246x2);});mxEvent[_0xa4d4[759]](document,null,_0x7246xa,_0x7246x12);this[_0xa4d4[746]]( new mxEventObject(mxEvent.MOVE_START,_0xa4d4[763],_0x7246x2));mxEvent[_0xa4d4[722]](_0x7246x2);}));};mxWindow[_0xa4d4[202]][_0xa4d4[947]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2+_0xa4d4[168];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x3+_0xa4d4[168];};mxWindow[_0xa4d4[202]][_0xa4d4[730]]=function(){return parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]])};mxWindow[_0xa4d4[202]][_0xa4d4[732]]=function(){return parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]])};mxWindow[_0xa4d4[202]][_0xa4d4[908]]=function(){this[_0xa4d4[948]]=document[_0xa4d4[55]](_0xa4d4[466]);this[_0xa4d4[948]][_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[913]]);this[_0xa4d4[948]][_0xa4d4[57]](_0xa4d4[611],_0xa4d4[699]);this[_0xa4d4[948]][_0xa4d4[57]](_0xa4d4[924],_0xa4d4[949]);this[_0xa4d4[948]][_0xa4d4[124]][_0xa4d4[945]]=_0xa4d4[935];this[_0xa4d4[948]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[356];this[_0xa4d4[948]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130];this[_0xa4d4[924]][_0xa4d4[950]](this[_0xa4d4[948]],this[_0xa4d4[924]][_0xa4d4[285]]);mxEvent[_0xa4d4[759]](this[_0xa4d4[948]],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[746]]( new mxEventObject(mxEvent.CLOSE,_0xa4d4[763],_0x7246x2));this[_0xa4d4[165]]?this[_0xa4d4[515]]():this[_0xa4d4[175]](!1);mxEvent[_0xa4d4[722]](_0x7246x2);}));};mxWindow[_0xa4d4[202]][_0xa4d4[951]]=function(_0x7246x2){this[_0xa4d4[618]]=document[_0xa4d4[55]](_0xa4d4[466]);this[_0xa4d4[618]][_0xa4d4[57]](_0xa4d4[390],_0x7246x2);this[_0xa4d4[618]][_0xa4d4[57]](_0xa4d4[611],_0xa4d4[361]);this[_0xa4d4[618]][_0xa4d4[124]][_0xa4d4[941]]=_0xa4d4[952];this[_0xa4d4[618]][_0xa4d4[124]][_0xa4d4[945]]=_0xa4d4[946];this[_0xa4d4[618]][_0xa4d4[124]][_0xa4d4[953]]=_0xa4d4[954];this[_0xa4d4[924]][_0xa4d4[950]](this[_0xa4d4[618]],this[_0xa4d4[924]][_0xa4d4[285]]);};mxWindow[_0xa4d4[202]][_0xa4d4[164]]=function(_0x7246x2){this[_0xa4d4[948]][_0xa4d4[124]][_0xa4d4[495]]=_0x7246x2?_0xa4d4[110]:_0xa4d4[130]};mxWindow[_0xa4d4[202]][_0xa4d4[174]]=function(){return null!=this[_0xa4d4[485]]?_0xa4d4[188]!=this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[187]]:!1};mxWindow[_0xa4d4[202]][_0xa4d4[175]]=function(_0x7246x2){null!=this[_0xa4d4[485]]&&this[_0xa4d4[174]]()!=_0x7246x2&&(_0x7246x2?this[_0xa4d4[539]]():this[_0xa4d4[801]]())};mxWindow[_0xa4d4[202]][_0xa4d4[539]]=function(){this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110];this[_0xa4d4[790]]();var _0x7246x2=mxUtils[_0xa4d4[275]](this[_0xa4d4[929]]);if(!mxClient[_0xa4d4[80]]&&(_0xa4d4[278]==_0x7246x2[_0xa4d4[277]]||null!=this[_0xa4d4[129]])){this[_0xa4d4[929]][_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[485]][_0xa4d4[167]]-this[_0xa4d4[924]][_0xa4d4[167]]-2+_0xa4d4[168]};this[_0xa4d4[746]]( new mxEventObject(mxEvent.SHOW));};mxWindow[_0xa4d4[202]][_0xa4d4[801]]=function(){this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];this[_0xa4d4[746]]( new mxEventObject(mxEvent.HIDE));};mxWindow[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[746]]( new mxEventObject(mxEvent.DESTROY));null!=this[_0xa4d4[485]]&&(mxEvent[_0xa4d4[762]](this[_0xa4d4[485]]),this[_0xa4d4[485]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[485]]),this[_0xa4d4[485]]=null);this[_0xa4d4[929]]=this[_0xa4d4[905]]=this[_0xa4d4[924]]=null;};function mxForm(_0x7246x2){this[_0xa4d4[116]]=document[_0xa4d4[55]](_0xa4d4[116]);this[_0xa4d4[116]][_0xa4d4[926]]=_0x7246x2;this[_0xa4d4[112]]=document[_0xa4d4[55]](_0xa4d4[120]);this[_0xa4d4[116]][_0xa4d4[62]](this[_0xa4d4[112]]);}mxForm[_0xa4d4[202]][_0xa4d4[116]]=null;mxForm[_0xa4d4[202]][_0xa4d4[112]]= !1;mxForm[_0xa4d4[202]][_0xa4d4[955]]=function(){return this[_0xa4d4[116]]};mxForm[_0xa4d4[202]][_0xa4d4[956]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[121]),_0x7246x5=document[_0xa4d4[55]](_0xa4d4[122]);_0x7246x4[_0xa4d4[62]](_0x7246x5);var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[122]),_0x7246x9=document[_0xa4d4[55]](_0xa4d4[172]);mxUtils[_0xa4d4[53]](_0x7246x9,mxResources[_0xa4d4[203]](_0xa4d4[957])||_0xa4d4[958]);_0x7246x5[_0xa4d4[62]](_0x7246x9);mxEvent[_0xa4d4[169]](_0x7246x9,_0xa4d4[173],function(){_0x7246x2()});_0x7246x9=document[_0xa4d4[55]](_0xa4d4[172]);mxUtils[_0xa4d4[53]](_0x7246x9,mxResources[_0xa4d4[203]](_0xa4d4[959])||_0xa4d4[960]);_0x7246x5[_0xa4d4[62]](_0x7246x9);mxEvent[_0xa4d4[169]](_0x7246x9,_0xa4d4[173],function(){_0x7246x3()});_0x7246x4[_0xa4d4[62]](_0x7246x5);this[_0xa4d4[112]][_0xa4d4[62]](_0x7246x4);};mxForm[_0xa4d4[202]][_0xa4d4[961]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[962]);_0x7246x4[_0xa4d4[57]](_0xa4d4[60],_0xa4d4[963]);_0x7246x4[_0xa4d4[131]]=_0x7246x3;return this[_0xa4d4[964]](_0x7246x2,_0x7246x4);};mxForm[_0xa4d4[202]][_0xa4d4[965]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[962]);_0x7246x4[_0xa4d4[57]](_0xa4d4[60],_0xa4d4[966]);this[_0xa4d4[964]](_0x7246x2,_0x7246x4);_0x7246x3&&(_0x7246x4[_0xa4d4[967]]= !0);return _0x7246x4;};mxForm[_0xa4d4[202]][_0xa4d4[968]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[126]);mxClient[_0xa4d4[133]]&&_0x7246x4--;_0x7246x5[_0xa4d4[57]](_0xa4d4[969],_0x7246x4||2);_0x7246x5[_0xa4d4[131]]=_0x7246x3;return this[_0xa4d4[964]](_0x7246x2,_0x7246x5);};mxForm[_0xa4d4[202]][_0xa4d4[970]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[804]);null!=_0x7246x4&&_0x7246x5[_0xa4d4[57]](_0xa4d4[803],_0x7246x4);_0x7246x3&&_0x7246x5[_0xa4d4[57]](_0xa4d4[971],_0xa4d4[128]);return this[_0xa4d4[964]](_0x7246x2,_0x7246x5);};mxForm[_0xa4d4[202]][_0xa4d4[972]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=document[_0xa4d4[55]](_0xa4d4[973]);mxUtils[_0xa4d4[171]](_0x7246x9,_0x7246x3);_0x7246x9[_0xa4d4[57]](_0xa4d4[131],_0x7246x4);_0x7246x5&&_0x7246x9[_0xa4d4[57]](_0xa4d4[974],_0x7246x5);_0x7246x2[_0xa4d4[62]](_0x7246x9);};mxForm[_0xa4d4[202]][_0xa4d4[964]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[121]),_0x7246x5=document[_0xa4d4[55]](_0xa4d4[122]);mxUtils[_0xa4d4[53]](_0x7246x5,_0x7246x2);_0x7246x4[_0xa4d4[62]](_0x7246x5);_0x7246x5=document[_0xa4d4[55]](_0xa4d4[122]);_0x7246x5[_0xa4d4[62]](_0x7246x3);_0x7246x4[_0xa4d4[62]](_0x7246x5);this[_0xa4d4[112]][_0xa4d4[62]](_0x7246x4);return _0x7246x3;};function mxImage(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[390]]=_0x7246x2;this[_0xa4d4[117]]=_0x7246x3;this[_0xa4d4[119]]=_0x7246x4;}mxImage[_0xa4d4[202]][_0xa4d4[390]]=null;mxImage[_0xa4d4[202]][_0xa4d4[117]]=null;mxImage[_0xa4d4[202]][_0xa4d4[119]]=null;function mxDivResizer(_0x7246x2,_0x7246x3){if(_0xa4d4[485]==_0x7246x2[_0xa4d4[301]][_0xa4d4[216]]()){null==_0x7246x3&&(_0x7246x3=window);this[_0xa4d4[485]]=_0x7246x2;var _0x7246x4=mxUtils[_0xa4d4[275]](_0x7246x2);null!=_0x7246x4&&(this[_0xa4d4[975]]=_0xa4d4[278]==_0x7246x4[_0xa4d4[117]],this[_0xa4d4[976]]=_0xa4d4[278]==_0x7246x4[_0xa4d4[119]]);mxEvent[_0xa4d4[169]](_0x7246x3,_0xa4d4[129],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[977]]||(this[_0xa4d4[977]]= !0,this[_0xa4d4[129]](),this[_0xa4d4[977]]= !1)}));this[_0xa4d4[129]]();}}mxDivResizer[_0xa4d4[202]][_0xa4d4[975]]= !0;mxDivResizer[_0xa4d4[202]][_0xa4d4[976]]= !0;mxDivResizer[_0xa4d4[202]][_0xa4d4[977]]= !1;mxDivResizer[_0xa4d4[202]][_0xa4d4[129]]=function(){var _0x7246x2=this[_0xa4d4[978]](),_0x7246x3=this[_0xa4d4[979]](),_0x7246x4=parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]),_0x7246x5=parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[699]]),_0x7246x9=parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]),_0x7246xa=parseInt(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[553]]);this[_0xa4d4[975]]&&(!isNaN(_0x7246x4)&&!isNaN(_0x7246x5)&&0<=_0x7246x4&&0<=_0x7246x5&&0<_0x7246x2-_0x7246x5-_0x7246x4)&&(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2-_0x7246x5-_0x7246x4+_0xa4d4[168]);this[_0xa4d4[976]]&&(!isNaN(_0x7246x9)&&!isNaN(_0x7246xa)&&0<=_0x7246x9&&0<=_0x7246xa&&0<_0x7246x3-_0x7246x9-_0x7246xa)&&(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3-_0x7246x9-_0x7246xa+_0xa4d4[168]);};mxDivResizer[_0xa4d4[202]][_0xa4d4[978]]=function(){return document[_0xa4d4[112]][_0xa4d4[159]]};mxDivResizer[_0xa4d4[202]][_0xa4d4[979]]=function(){return document[_0xa4d4[112]][_0xa4d4[157]]};function mxDragSource(_0x7246x2,_0x7246x3){this[_0xa4d4[980]]=_0x7246x2;this[_0xa4d4[981]]=_0x7246x3;mxEvent[_0xa4d4[759]](_0x7246x2,mxUtils[_0xa4d4[885]](this,this[_0xa4d4[787]]));}mxDragSource[_0xa4d4[202]][_0xa4d4[980]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[981]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[559]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[982]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[983]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[984]]= !0;mxDragSource[_0xa4d4[202]][_0xa4d4[985]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[986]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[987]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[988]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[989]]=null;mxDragSource[_0xa4d4[202]][_0xa4d4[561]]= !0;mxDragSource[_0xa4d4[202]][_0xa4d4[990]]= !0;mxDragSource[_0xa4d4[202]][_0xa4d4[991]]= !0;mxDragSource[_0xa4d4[202]][_0xa4d4[563]]= !0;mxDragSource[_0xa4d4[202]][_0xa4d4[992]]=100;mxDragSource[_0xa4d4[202]][_0xa4d4[993]]=70;mxDragSource[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxDragSource[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxDragSource[_0xa4d4[202]][_0xa4d4[996]]=function(){return this[_0xa4d4[990]]};mxDragSource[_0xa4d4[202]][_0xa4d4[562]]=function(_0x7246x2){this[_0xa4d4[990]]=_0x7246x2};mxDragSource[_0xa4d4[202]][_0xa4d4[997]]=function(){return this[_0xa4d4[991]]};mxDragSource[_0xa4d4[202]][_0xa4d4[998]]=function(_0x7246x2){this[_0xa4d4[991]]=_0x7246x2};mxDragSource[_0xa4d4[202]][_0xa4d4[565]]=function(_0x7246x2){return null};mxDragSource[_0xa4d4[202]][_0xa4d4[564]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x2[_0xa4d4[999]](_0x7246x3,_0x7246x4)};mxDragSource[_0xa4d4[202]][_0xa4d4[566]]=function(_0x7246x2){return this[_0xa4d4[980]][_0xa4d4[511]](!0)};mxDragSource[_0xa4d4[202]][_0xa4d4[567]]=function(_0x7246x2){return null};mxDragSource[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2){this[_0xa4d4[984]]&&(!mxEvent[_0xa4d4[721]](_0x7246x2)&&null==this[_0xa4d4[1000]])&&(this[_0xa4d4[1001]](_0x7246x2),this[_0xa4d4[1000]]=mxUtils[_0xa4d4[885]](this,this[_0xa4d4[788]]),this[_0xa4d4[1002]]=mxUtils[_0xa4d4[885]](this,this[_0xa4d4[789]]),mxEvent[_0xa4d4[759]](document,null,this[_0xa4d4[1000]],this[_0xa4d4[1002]]),mxEvent[_0xa4d4[722]](_0x7246x2,!0,!1))};mxDragSource[_0xa4d4[202]][_0xa4d4[1001]]=function(_0x7246x2){this[_0xa4d4[982]]=this[_0xa4d4[566]](_0x7246x2);this[_0xa4d4[982]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];this[_0xa4d4[982]][_0xa4d4[124]][_0xa4d4[931]]=this[_0xa4d4[992]];mxUtils[_0xa4d4[254]](this[_0xa4d4[982]],this[_0xa4d4[993]]);};mxDragSource[_0xa4d4[202]][_0xa4d4[1003]]=function(_0x7246x2){null!=this[_0xa4d4[982]]&&(null!=this[_0xa4d4[982]][_0xa4d4[265]]&&this[_0xa4d4[982]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[982]]),this[_0xa4d4[982]]=null)};mxDragSource[_0xa4d4[202]][_0xa4d4[1004]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=mxEvent[_0xa4d4[731]](_0x7246x3),_0x7246x5=mxEvent[_0xa4d4[733]](_0x7246x3),_0x7246x9=mxUtils[_0xa4d4[445]](_0x7246x2[_0xa4d4[526]]),_0x7246xa=mxUtils[_0xa4d4[444]]();return _0x7246x4>=_0x7246x9[_0xa4d4[235]]-_0x7246xa[_0xa4d4[235]]&&_0x7246x5>=_0x7246x9[_0xa4d4[236]]-_0x7246xa[_0xa4d4[236]]&&_0x7246x4<=_0x7246x9[_0xa4d4[235]]-_0x7246xa[_0xa4d4[235]]+_0x7246x2[_0xa4d4[526]][_0xa4d4[359]]&&_0x7246x5<=_0x7246x9[_0xa4d4[236]]-_0x7246xa[_0xa4d4[236]]+_0x7246x2[_0xa4d4[526]][_0xa4d4[167]];};mxDragSource[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[565]](_0x7246x2);null!=_0x7246x3&&!this[_0xa4d4[1004]](_0x7246x3,_0x7246x2)&&(_0x7246x3=null);_0x7246x3!=this[_0xa4d4[985]]&&(null!=this[_0xa4d4[985]]&&this[_0xa4d4[1005]](this[_0xa4d4[985]]),this[_0xa4d4[985]]=_0x7246x3,null!=this[_0xa4d4[985]]&&this[_0xa4d4[1006]](this[_0xa4d4[985]]));null!=this[_0xa4d4[985]]&&this[_0xa4d4[1007]](this[_0xa4d4[985]],_0x7246x2);if(null!=this[_0xa4d4[982]]&&(null==this[_0xa4d4[983]]||_0xa4d4[189]!=this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[187]])){var _0x7246x3=mxEvent[_0xa4d4[731]](_0x7246x2),_0x7246x4=mxEvent[_0xa4d4[733]](_0x7246x2);null==this[_0xa4d4[982]][_0xa4d4[265]]&&document[_0xa4d4[112]][_0xa4d4[62]](this[_0xa4d4[982]]);this[_0xa4d4[982]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189];null!=this[_0xa4d4[559]]&&(_0x7246x3+=this[_0xa4d4[559]][_0xa4d4[235]],_0x7246x4+=this[_0xa4d4[559]][_0xa4d4[236]]);_0x7246x3+=document[_0xa4d4[112]][_0xa4d4[360]]||document[_0xa4d4[158]][_0xa4d4[360]];_0x7246x4+=document[_0xa4d4[112]][_0xa4d4[190]]||document[_0xa4d4[158]][_0xa4d4[190]];this[_0xa4d4[982]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x3+_0xa4d4[168];this[_0xa4d4[982]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x4+_0xa4d4[168];}else {null!=this[_0xa4d4[982]]&&(this[_0xa4d4[982]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188])};mxEvent[_0xa4d4[722]](_0x7246x2);};mxDragSource[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2){if(null!=this[_0xa4d4[985]]){if(null!=this[_0xa4d4[987]]&&(null==this[_0xa4d4[983]]||_0xa4d4[188]!=this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[187]])){var _0x7246x3=this[_0xa4d4[985]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x4=this[_0xa4d4[985]][_0xa4d4[441]][_0xa4d4[513]];this[_0xa4d4[1008]](this[_0xa4d4[985]],_0x7246x2,this[_0xa4d4[986]],this[_0xa4d4[987]][_0xa4d4[235]]/_0x7246x3-_0x7246x4[_0xa4d4[235]],this[_0xa4d4[987]][_0xa4d4[236]]/_0x7246x3-_0x7246x4[_0xa4d4[236]]);};this[_0xa4d4[1005]](this[_0xa4d4[985]]);};this[_0xa4d4[1003]](_0x7246x2);mxEvent[_0xa4d4[938]](document,null,this[_0xa4d4[1000]],this[_0xa4d4[1002]]);this[_0xa4d4[985]]=this[_0xa4d4[1002]]=this[_0xa4d4[1000]]=null;mxEvent[_0xa4d4[722]](_0x7246x2);};mxDragSource[_0xa4d4[202]][_0xa4d4[1006]]=function(_0x7246x2){_0x7246x2[_0xa4d4[1009]]= !0;this[_0xa4d4[983]]=this[_0xa4d4[567]](_0x7246x2);this[_0xa4d4[996]]()&&null!=this[_0xa4d4[983]]&&(this[_0xa4d4[988]]= new mxGuide(_0x7246x2,_0x7246x2[_0xa4d4[1011]][_0xa4d4[1010]]()));this[_0xa4d4[563]]&&(this[_0xa4d4[989]]= new mxCellHighlight(_0x7246x2,mxConstants.DROP_TARGET_COLOR));};mxDragSource[_0xa4d4[202]][_0xa4d4[1005]]=function(_0x7246x2){this[_0xa4d4[987]]=this[_0xa4d4[986]]=null;_0x7246x2[_0xa4d4[1009]]= !1;null!=this[_0xa4d4[983]]&&(null!=this[_0xa4d4[983]][_0xa4d4[265]]&&this[_0xa4d4[983]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[983]]),this[_0xa4d4[983]]=null);null!=this[_0xa4d4[988]]&&(this[_0xa4d4[988]][_0xa4d4[515]](),this[_0xa4d4[988]]=null);null!=this[_0xa4d4[989]]&&(this[_0xa4d4[989]][_0xa4d4[515]](),this[_0xa4d4[989]]=null);};mxDragSource[_0xa4d4[202]][_0xa4d4[1007]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=mxUtils[_0xa4d4[445]](_0x7246x2[_0xa4d4[526]]),_0x7246x5=mxUtils[_0xa4d4[444]](_0x7246x2[_0xa4d4[526]]),_0x7246x9=mxEvent[_0xa4d4[731]](_0x7246x3)-_0x7246x4[_0xa4d4[235]]+_0x7246x5[_0xa4d4[235]],_0x7246x4=mxEvent[_0xa4d4[733]](_0x7246x3)-_0x7246x4[_0xa4d4[236]]+_0x7246x5[_0xa4d4[236]];_0x7246x2[_0xa4d4[1012]]&&(null==this[_0xa4d4[561]]||this[_0xa4d4[561]])&&_0x7246x2[_0xa4d4[1014]](_0x7246x9,_0x7246x4,_0x7246x2[_0xa4d4[1013]]);null!=this[_0xa4d4[989]]&&_0x7246x2[_0xa4d4[1015]]()&&(this[_0xa4d4[986]]=this[_0xa4d4[564]](_0x7246x2,_0x7246x9,_0x7246x4),_0x7246x5=_0x7246x2[_0xa4d4[249]]()[_0xa4d4[248]](this[_0xa4d4[986]]),this[_0xa4d4[989]][_0xa4d4[1016]](_0x7246x5));if(null!=this[_0xa4d4[983]]){null==this[_0xa4d4[983]][_0xa4d4[265]]&&(_0x7246x2[_0xa4d4[526]][_0xa4d4[62]](this[_0xa4d4[983]]),this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[931]]=_0xa4d4[1017],this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492]);var _0x7246x5=this[_0xa4d4[997]]()&&_0x7246x2[_0xa4d4[1018]](_0x7246x3),_0x7246xa=!0;if(null!=this[_0xa4d4[988]]&&this[_0xa4d4[988]][_0xa4d4[1019]](_0x7246x3)){var _0x7246xa=parseInt(this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[117]]),_0x7246x12=parseInt(this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[119]]),_0x7246xa= new mxRectangle(0,0,_0x7246xa,_0x7246x12),_0x7246x4= new mxPoint(_0x7246x9,_0x7246x4),_0x7246x4=this[_0xa4d4[988]][_0xa4d4[582]](_0x7246xa,_0x7246x4,_0x7246x5),_0x7246xa=!1,_0x7246x9=_0x7246x4[_0xa4d4[235]],_0x7246x4=_0x7246x4[_0xa4d4[236]]}else {if(_0x7246x5){var _0x7246x5=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],_0x7246x12=_0x7246x2[_0xa4d4[441]][_0xa4d4[513]],_0x7246x13=_0x7246x2[_0xa4d4[1020]]/2,_0x7246x9=(_0x7246x2[_0xa4d4[1021]](_0x7246x9/_0x7246x5-_0x7246x12[_0xa4d4[235]]-_0x7246x13)+_0x7246x12[_0xa4d4[235]])*_0x7246x5,_0x7246x4=(_0x7246x2[_0xa4d4[1021]](_0x7246x4/_0x7246x5-_0x7246x12[_0xa4d4[236]]-_0x7246x13)+_0x7246x12[_0xa4d4[236]])*_0x7246x5}};null!=this[_0xa4d4[988]]&&_0x7246xa&&this[_0xa4d4[988]][_0xa4d4[801]]();null!=this[_0xa4d4[1022]]&&(_0x7246x9+=this[_0xa4d4[1022]][_0xa4d4[235]],_0x7246x4+=this[_0xa4d4[1022]][_0xa4d4[236]]);this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[488]](_0x7246x9)+_0xa4d4[168];this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[488]](_0x7246x4)+_0xa4d4[168];this[_0xa4d4[983]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189];};this[_0xa4d4[987]]= new mxPoint(_0x7246x9,_0x7246x4);};mxDragSource[_0xa4d4[202]][_0xa4d4[1008]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){this[_0xa4d4[981]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[526]][_0xa4d4[393]]();};function mxToolbar(_0x7246x2){this[_0xa4d4[526]]=_0x7246x2}mxToolbar[_0xa4d4[202]]= new mxEventSource;mxToolbar[_0xa4d4[202]][_0xa4d4[196]]=mxToolbar;mxToolbar[_0xa4d4[202]][_0xa4d4[526]]=null;mxToolbar[_0xa4d4[202]][_0xa4d4[984]]= !0;mxToolbar[_0xa4d4[202]][_0xa4d4[1023]]= !1;mxToolbar[_0xa4d4[202]][_0xa4d4[1024]]= !0;mxToolbar[_0xa4d4[202]][_0xa4d4[1025]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){var _0x7246x12=document[_0xa4d4[55]](null!=_0x7246x3?_0xa4d4[466]:_0xa4d4[172]),_0x7246x13=_0x7246x9||(null!=_0x7246xa?_0xa4d4[1026]:_0xa4d4[1027]);_0x7246x12[_0xa4d4[926]]=_0x7246x13;_0x7246x12[_0xa4d4[57]](_0xa4d4[390],_0x7246x3);null!=_0x7246x2&&(null!=_0x7246x3?_0x7246x12[_0xa4d4[57]](_0xa4d4[924],_0x7246x2):mxUtils[_0xa4d4[53]](_0x7246x12,_0x7246x2));this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x12);null!=_0x7246x4&&(mxEvent[_0xa4d4[169]](_0x7246x12,_0xa4d4[173],_0x7246x4),mxClient[_0xa4d4[754]]&&mxEvent[_0xa4d4[169]](_0x7246x12,_0xa4d4[757],_0x7246x4));_0x7246x2=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){null!=_0x7246x5?_0x7246x12[_0xa4d4[57]](_0xa4d4[390],_0x7246x3):_0x7246x12[_0xa4d4[124]][_0xa4d4[1028]]=_0xa4d4[110]});mxEvent[_0xa4d4[759]](_0x7246x12,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){null!=_0x7246x5?_0x7246x12[_0xa4d4[57]](_0xa4d4[390],_0x7246x5):_0x7246x12[_0xa4d4[124]][_0xa4d4[1028]]=_0xa4d4[579];if(null!=_0x7246xa){null==this[_0xa4d4[1029]]&&(this[_0xa4d4[1029]]= new mxPopupMenu,this[_0xa4d4[1029]][_0xa4d4[176]]());var _0x7246x3=this[_0xa4d4[1030]];this[_0xa4d4[1029]][_0xa4d4[1031]]()&&this[_0xa4d4[1029]][_0xa4d4[1032]]();_0x7246x3!=_0x7246x12&&(this[_0xa4d4[1030]]=_0x7246x12,this[_0xa4d4[1029]][_0xa4d4[1033]]=_0x7246xa,_0x7246x3= new mxPoint(_0x7246x12[_0xa4d4[358]],_0x7246x12[_0xa4d4[362]]+_0x7246x12[_0xa4d4[167]]),this[_0xa4d4[1029]][_0xa4d4[152]](_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]],null,_0x7246x2),this[_0xa4d4[1029]][_0xa4d4[1031]]()&&(_0x7246x12[_0xa4d4[926]]=_0x7246x13+_0xa4d4[1034],this[_0xa4d4[1029]][_0xa4d4[1032]]=function(){mxPopupMenu[_0xa4d4[202]][_0xa4d4[1032]][_0xa4d4[183]](this);_0x7246x12[_0xa4d4[926]]=_0x7246x13;this[_0xa4d4[1030]]=null;}));};}),null,_0x7246x2);mxEvent[_0xa4d4[169]](_0x7246x12,_0xa4d4[1035],_0x7246x2);return _0x7246x12;};mxToolbar[_0xa4d4[202]][_0xa4d4[970]]=function(_0x7246x2){var _0x7246x3=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x3[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497];_0x7246x3[_0xa4d4[926]]=_0xa4d4[1036];var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[804]);_0x7246x4[_0xa4d4[926]]=_0x7246x2||_0xa4d4[1037];_0x7246x3[_0xa4d4[62]](_0x7246x4);this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x3);return _0x7246x4;};mxToolbar[_0xa4d4[202]][_0xa4d4[1038]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[804]);_0x7246x4[_0xa4d4[926]]=_0x7246x3||_0xa4d4[1037];this[_0xa4d4[972]](_0x7246x4,_0x7246x2,null);mxEvent[_0xa4d4[169]](_0x7246x4,_0xa4d4[826],function(_0x7246x2){var _0x7246x3=_0x7246x4[_0xa4d4[1040]][_0x7246x4[_0xa4d4[1039]]];_0x7246x4[_0xa4d4[1039]]=0;null!=_0x7246x3[_0xa4d4[1041]]&&_0x7246x3[_0xa4d4[1041]](_0x7246x2);});this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x4);return _0x7246x4;};mxToolbar[_0xa4d4[202]][_0xa4d4[972]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[973]);mxUtils[_0xa4d4[171]](_0x7246x5,_0x7246x3);_0xa4d4[279]== typeof _0x7246x4?_0x7246x5[_0xa4d4[1041]]=_0x7246x4:_0x7246x5[_0xa4d4[57]](_0xa4d4[131],_0x7246x4);_0x7246x2[_0xa4d4[62]](_0x7246x5);return _0x7246x5;};mxToolbar[_0xa4d4[202]][_0xa4d4[1042]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=document[_0xa4d4[55]](_0xa4d4[466]);_0x7246xa[_0xa4d4[1043]]=_0x7246x9||_0xa4d4[1026];_0x7246xa[_0xa4d4[926]]=_0x7246xa[_0xa4d4[1043]];_0x7246xa[_0xa4d4[57]](_0xa4d4[390],_0x7246x3);_0x7246xa[_0xa4d4[1044]]=_0x7246x5;null!=_0x7246x2&&_0x7246xa[_0xa4d4[57]](_0xa4d4[924],_0x7246x2);mxEvent[_0xa4d4[169]](_0x7246xa,_0xa4d4[173],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){_0x7246x2=this[_0xa4d4[1045]][_0xa4d4[1044]];null!=_0x7246x2?(this[_0xa4d4[1045]][_0xa4d4[1044]]=this[_0xa4d4[1045]][_0xa4d4[284]](_0xa4d4[390]),this[_0xa4d4[1045]][_0xa4d4[57]](_0xa4d4[390],_0x7246x2)):this[_0xa4d4[1045]][_0xa4d4[926]]=this[_0xa4d4[1045]][_0xa4d4[1043]];this[_0xa4d4[1024]]&&(this[_0xa4d4[1046]]=_0x7246xa);this[_0xa4d4[1045]]=_0x7246xa;_0x7246x2=_0x7246xa[_0xa4d4[1044]];null!=_0x7246x2?(_0x7246xa[_0xa4d4[1044]]=_0x7246xa[_0xa4d4[284]](_0xa4d4[390]),_0x7246xa[_0xa4d4[57]](_0xa4d4[390],_0x7246x2)):_0x7246xa[_0xa4d4[926]]=_0x7246xa[_0xa4d4[1043]]+_0xa4d4[1034];this[_0xa4d4[746]]( new mxEventObject(mxEvent.SELECT));_0x7246x4();}));this[_0xa4d4[526]][_0xa4d4[62]](_0x7246xa);null==this[_0xa4d4[1046]]&&(this[_0xa4d4[1046]]=_0x7246xa,this[_0xa4d4[1047]](_0x7246xa),_0x7246x4());return _0x7246xa;};mxToolbar[_0xa4d4[202]][_0xa4d4[1048]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246xa=null!=_0x7246xa?_0x7246xa:!0;var _0x7246x12=document[_0xa4d4[55]](null!=_0x7246x3?_0xa4d4[466]:_0xa4d4[172]);_0x7246x12[_0xa4d4[1043]]=_0x7246x9||_0xa4d4[1026];_0x7246x12[_0xa4d4[926]]=_0x7246x12[_0xa4d4[1043]];_0x7246x12[_0xa4d4[57]](_0xa4d4[390],_0x7246x3);_0x7246x12[_0xa4d4[1044]]=_0x7246x5;null!=_0x7246x2&&_0x7246x12[_0xa4d4[57]](_0xa4d4[924],_0x7246x2);this[_0xa4d4[984]]&&_0x7246xa&&(mxEvent[_0xa4d4[169]](_0x7246x12,_0xa4d4[173],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1047]](_0x7246x12,_0x7246x4);this[_0xa4d4[1023]]= !1;})),mxEvent[_0xa4d4[169]](_0x7246x12,_0xa4d4[760],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1047]](_0x7246x12,_0x7246x4);this[_0xa4d4[1023]]= !0;})),null==this[_0xa4d4[1046]]&&(this[_0xa4d4[1046]]=_0x7246x12,this[_0xa4d4[1049]]=_0x7246x4,this[_0xa4d4[1047]](_0x7246x12,_0x7246x4)));this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x12);return _0x7246x12;};mxToolbar[_0xa4d4[202]][_0xa4d4[1047]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1045]]!=_0x7246x2){if(null!=this[_0xa4d4[1045]]){var _0x7246x4=this[_0xa4d4[1045]][_0xa4d4[1044]];null!=_0x7246x4?(this[_0xa4d4[1045]][_0xa4d4[1044]]=this[_0xa4d4[1045]][_0xa4d4[284]](_0xa4d4[390]),this[_0xa4d4[1045]][_0xa4d4[57]](_0xa4d4[390],_0x7246x4)):this[_0xa4d4[1045]][_0xa4d4[926]]=this[_0xa4d4[1045]][_0xa4d4[1043]];};this[_0xa4d4[1045]]=_0x7246x2;_0x7246x4=this[_0xa4d4[1045]][_0xa4d4[1044]];null!=_0x7246x4?(this[_0xa4d4[1045]][_0xa4d4[1044]]=this[_0xa4d4[1045]][_0xa4d4[284]](_0xa4d4[390]),this[_0xa4d4[1045]][_0xa4d4[57]](_0xa4d4[390],_0x7246x4)):this[_0xa4d4[1045]][_0xa4d4[926]]=this[_0xa4d4[1045]][_0xa4d4[1043]]+_0xa4d4[1034];this[_0xa4d4[746]]( new mxEventObject(mxEvent.SELECT,_0xa4d4[279],_0x7246x3));}};mxToolbar[_0xa4d4[202]][_0xa4d4[1050]]=function(_0x7246x2){(_0x7246x2||!this[_0xa4d4[1023]])&&this[_0xa4d4[1045]]!=this[_0xa4d4[1046]]&&this[_0xa4d4[1047]](this[_0xa4d4[1046]],this[_0xa4d4[1049]])};mxToolbar[_0xa4d4[202]][_0xa4d4[1051]]=function(_0x7246x2){return this[_0xa4d4[1025]](null,_0x7246x2,null)};mxToolbar[_0xa4d4[202]][_0xa4d4[1052]]=function(){mxUtils[_0xa4d4[345]](this[_0xa4d4[526]])};mxToolbar[_0xa4d4[202]][_0xa4d4[1053]]=function(){var _0x7246x2=document[_0xa4d4[55]](_0xa4d4[1054]);_0x7246x2[_0xa4d4[124]][_0xa4d4[941]]=_0xa4d4[1055];_0x7246x2[_0xa4d4[57]](_0xa4d4[803],_0xa4d4[500]);this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x2);};mxToolbar[_0xa4d4[202]][_0xa4d4[515]]=function(){mxEvent[_0xa4d4[762]](this[_0xa4d4[526]]);this[_0xa4d4[1045]]=this[_0xa4d4[1049]]=this[_0xa4d4[1046]]=this[_0xa4d4[526]]=null;null!=this[_0xa4d4[1029]]&&this[_0xa4d4[1029]][_0xa4d4[515]]();};function mxSession(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[1056]]=_0x7246x3;this[_0xa4d4[1057]]=_0x7246x4;this[_0xa4d4[1058]]=_0x7246x5;null!=_0x7246x2&&(this[_0xa4d4[1059]]= new mxCodec,this[_0xa4d4[1059]][_0xa4d4[1060]]=function(_0x7246x3){return _0x7246x2[_0xa4d4[736]](_0x7246x3)});_0x7246x2[_0xa4d4[169]](mxEvent.NOTIFY,mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x3[_0xa4d4[720]](_0xa4d4[1061]);(null!=_0x7246x4&&this[_0xa4d4[143]]||this[_0xa4d4[1062]]&&!this[_0xa4d4[1063]])&&this[_0xa4d4[827]](_0xa4d4[1064]+this[_0xa4d4[1067]](_0x7246x4[_0xa4d4[1065]],_0x7246x4[_0xa4d4[1066]])+_0xa4d4[1068]);}));}mxSession[_0xa4d4[202]]= new mxEventSource;mxSession[_0xa4d4[202]][_0xa4d4[196]]=mxSession;mxSession[_0xa4d4[202]][_0xa4d4[251]]=null;mxSession[_0xa4d4[202]][_0xa4d4[1056]]=null;mxSession[_0xa4d4[202]][_0xa4d4[1057]]=null;mxSession[_0xa4d4[202]][_0xa4d4[1058]]=null;mxSession[_0xa4d4[202]][_0xa4d4[1059]]=null;mxSession[_0xa4d4[202]][_0xa4d4[1069]]=_0xa4d4[336];mxSession[_0xa4d4[202]][_0xa4d4[1070]]= !0;mxSession[_0xa4d4[202]][_0xa4d4[1071]]= !0;mxSession[_0xa4d4[202]][_0xa4d4[1072]]=0;mxSession[_0xa4d4[202]][_0xa4d4[1073]]=0;mxSession[_0xa4d4[202]][_0xa4d4[143]]= !1;mxSession[_0xa4d4[202]][_0xa4d4[1062]]= !1;mxSession[_0xa4d4[202]][_0xa4d4[1063]]= !1;mxSession[_0xa4d4[202]][_0xa4d4[1074]]= !1;mxSession[_0xa4d4[202]][_0xa4d4[861]]=function(){this[_0xa4d4[143]]?(this[_0xa4d4[1062]]= !0,this[_0xa4d4[746]]( new mxEventObject(mxEvent.CONNECT))):this[_0xa4d4[1062]]||this[_0xa4d4[203]](this[_0xa4d4[1056]],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1062]]= !0;this[_0xa4d4[746]]( new mxEventObject(mxEvent.CONNECT));this[_0xa4d4[1075]]();}))};mxSession[_0xa4d4[202]][_0xa4d4[809]]=function(){this[_0xa4d4[1062]]&&!this[_0xa4d4[1063]]&&(this[_0xa4d4[1063]]= !0,this[_0xa4d4[746]]( new mxEventObject(mxEvent.SUSPEND)))};mxSession[_0xa4d4[202]][_0xa4d4[810]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[1062]]&&this[_0xa4d4[1063]]&&(this[_0xa4d4[1063]]= !1,this[_0xa4d4[746]]( new mxEventObject(mxEvent.RESUME)),this[_0xa4d4[1074]]||this[_0xa4d4[1075]]())};mxSession[_0xa4d4[202]][_0xa4d4[1076]]=function(_0x7246x2){this[_0xa4d4[1062]]&&(this[_0xa4d4[1062]]= !1);this[_0xa4d4[746]]( new mxEventObject(mxEvent.DISCONNECT,_0xa4d4[1077],_0x7246x2));};mxSession[_0xa4d4[202]][_0xa4d4[1075]]=function(){this[_0xa4d4[1062]]&&!this[_0xa4d4[1063]]&&null!=this[_0xa4d4[1057]]?(this[_0xa4d4[1074]]= !0,this[_0xa4d4[203]](this[_0xa4d4[1057]],mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[1075]]()}))):this[_0xa4d4[1074]]= !1};mxSession[_0xa4d4[202]][_0xa4d4[827]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]&&(null!=this[_0xa4d4[1058]]&&(this[_0xa4d4[143]]?(mxLog[_0xa4d4[539]](),mxLog[_0xa4d4[143]](_0xa4d4[1078]+this[_0xa4d4[1058]]+_0xa4d4[1079]+_0x7246x2)):(_0x7246x2=_0xa4d4[1080]+_0x7246x2+_0xa4d4[1081],this[_0xa4d4[1070]]&&(_0x7246x2=encodeURIComponent(_0x7246x2)),mxUtils[_0xa4d4[814]](this[_0xa4d4[1058]],_0xa4d4[1082]+_0x7246x2,_0x7246x3,_0x7246x4))),this[_0xa4d4[1072]]+=_0x7246x2[_0xa4d4[67]],this[_0xa4d4[746]]( new mxEventObject(mxEvent.NOTIFY,_0xa4d4[863],this[_0xa4d4[1058]],_0xa4d4[338],_0x7246x2)))};mxSession[_0xa4d4[202]][_0xa4d4[203]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(_0xa4d4[82]!= typeof mxUtils){var _0x7246x5=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){null!=_0x7246x4?_0x7246x4(_0x7246x2):this[_0xa4d4[1076]](_0x7246x2)});mxUtils[_0xa4d4[203]](_0x7246x2,mxUtils[_0xa4d4[885]](this,function(_0x7246x4){if(_0xa4d4[82]!= typeof mxUtils){if(_0x7246x4[_0xa4d4[220]]()&&404!=_0x7246x4[_0xa4d4[878]]()){if(this[_0xa4d4[1073]]+=_0x7246x4[_0xa4d4[221]]()[_0xa4d4[67]],this[_0xa4d4[746]]( new mxEventObject(mxEvent.GET,_0xa4d4[863],_0x7246x2,_0xa4d4[870],_0x7246x4)),this[_0xa4d4[1083]](_0x7246x4)){if(0<_0x7246x4[_0xa4d4[221]]()[_0xa4d4[67]]){var _0x7246xa=_0x7246x4[_0xa4d4[874]]();null==_0x7246xa?_0x7246x5(_0xa4d4[1084]+_0x7246x4[_0xa4d4[221]]()):this[_0xa4d4[806]](_0x7246xa);};null!=_0x7246x3&&_0x7246x3(_0x7246x4);}}else {_0x7246x5(_0xa4d4[1085])}}}),function(_0x7246x2){_0x7246x5(_0xa4d4[1086])});}};mxSession[_0xa4d4[202]][_0xa4d4[1083]]=function(_0x7246x2){return 0>_0x7246x2[_0xa4d4[221]]()[_0xa4d4[2]](_0xa4d4[1087])};mxSession[_0xa4d4[202]][_0xa4d4[1067]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=_0xa4d4[110],_0x7246x5=_0x7246x3?-1:1,_0x7246x9=_0x7246x3?_0x7246x2[_0xa4d4[67]]-1:0;0<=_0x7246x9&&_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9+=_0x7246x5){var _0x7246xa=this[_0xa4d4[1059]][_0xa4d4[514]](_0x7246x2[_0x7246x9]),_0x7246x4=_0x7246x4+mxUtils[_0xa4d4[875]](_0x7246xa,this[_0xa4d4[1069]])};return _0x7246x4;};mxSession[_0xa4d4[202]][_0xa4d4[806]]=function(_0x7246x2){if(null!=_0x7246x2&&_0x7246x2[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){var _0x7246x3=_0x7246x2[_0xa4d4[284]](_0xa4d4[1088]);null!=_0x7246x3&&(this[_0xa4d4[251]][_0xa4d4[1089]]=_0x7246x3+_0xa4d4[213]);for(_0x7246x3=_0x7246x2[_0xa4d4[285]];null!=_0x7246x3;){var _0x7246x4=_0x7246x3[_0xa4d4[301]][_0xa4d4[216]]();_0xa4d4[724]==_0x7246x4?this[_0xa4d4[1090]](_0x7246x3):_0xa4d4[1091]==_0x7246x4&&this[_0xa4d4[1092]](_0x7246x3);_0x7246x3=_0x7246x3[_0xa4d4[287]];};this[_0xa4d4[746]]( new mxEventObject(mxEvent.RECEIVE,_0xa4d4[252],_0x7246x2));}};mxSession[_0xa4d4[202]][_0xa4d4[1090]]=function(_0x7246x2){( new mxCodec(_0x7246x2[_0xa4d4[295]]))[_0xa4d4[1093]](_0x7246x2[_0xa4d4[285]],this[_0xa4d4[251]])};mxSession[_0xa4d4[202]][_0xa4d4[1092]]=function(_0x7246x2){for(_0x7246x2=_0x7246x2[_0xa4d4[285]];null!=_0x7246x2;){_0xa4d4[1061]==_0x7246x2[_0xa4d4[301]]&&this[_0xa4d4[1094]](_0x7246x2),_0x7246x2=_0x7246x2[_0xa4d4[287]]}};mxSession[_0xa4d4[202]][_0xa4d4[1094]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[1095]](_0x7246x2);if(0<_0x7246x2[_0xa4d4[67]]){var _0x7246x3=this[_0xa4d4[1096]](_0x7246x2);this[_0xa4d4[251]][_0xa4d4[746]]( new mxEventObject(mxEvent.CHANGE,_0xa4d4[1061],_0x7246x3,_0xa4d4[1065],_0x7246x2));this[_0xa4d4[251]][_0xa4d4[746]]( new mxEventObject(mxEvent.UNDO,_0xa4d4[1061],_0x7246x3));this[_0xa4d4[746]]( new mxEventObject(mxEvent.FIRED,_0xa4d4[1061],_0x7246x3));};};mxSession[_0xa4d4[202]][_0xa4d4[1096]]=function(_0x7246x2){var _0x7246x3= new mxUndoableEdit(this[_0xa4d4[251]],this[_0xa4d4[1071]]);_0x7246x3[_0xa4d4[1065]]=_0x7246x2;_0x7246x3[_0xa4d4[827]]=function(){_0x7246x3[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.CHANGE,_0xa4d4[1061],_0x7246x3,_0xa4d4[1065],_0x7246x3[_0xa4d4[1065]]));_0x7246x3[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.NOTIFY,_0xa4d4[1061],_0x7246x3,_0xa4d4[1065],_0x7246x3[_0xa4d4[1065]]));};return _0x7246x3;};mxSession[_0xa4d4[202]][_0xa4d4[1095]]=function(_0x7246x2){this[_0xa4d4[1059]][_0xa4d4[395]]=_0x7246x2[_0xa4d4[295]];var _0x7246x3=[];for(_0x7246x2=_0x7246x2[_0xa4d4[285]];null!=_0x7246x2;){var _0x7246x4=this[_0xa4d4[1098]](_0x7246x2);null!=_0x7246x4&&_0x7246x3[_0xa4d4[207]](_0x7246x4);_0x7246x2=_0x7246x2[_0xa4d4[287]];};return _0x7246x3;};mxSession[_0xa4d4[202]][_0xa4d4[1098]]=function(_0x7246x2){var _0x7246x3=null;_0x7246x2[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]&&(_0x7246x3=_0xa4d4[1099]==_0x7246x2[_0xa4d4[301]]?( new mxCodec(_0x7246x2[_0xa4d4[295]]))[_0xa4d4[1093]](_0x7246x2):this[_0xa4d4[1059]][_0xa4d4[1093]](_0x7246x2),null!=_0x7246x3&&(_0x7246x3[_0xa4d4[251]]=this[_0xa4d4[251]],_0x7246x3[_0xa4d4[350]](),_0xa4d4[1100]==_0x7246x2[_0xa4d4[301]]&&null==_0x7246x3[_0xa4d4[1101]]&&this[_0xa4d4[1102]](_0x7246x3[_0xa4d4[247]])));return _0x7246x3;};mxSession[_0xa4d4[202]][_0xa4d4[1102]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1059]][_0xa4d4[1104]](_0x7246x2[_0xa4d4[1103]](),_0x7246x2);for(var _0x7246x4=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2),_0x7246x5=0;_0x7246x5<_0x7246x4;_0x7246x5++){this[_0xa4d4[1102]](this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,_0x7246x5))};};function mxUndoableEdit(_0x7246x2,_0x7246x3){this[_0xa4d4[1097]]=_0x7246x2;this[_0xa4d4[1065]]=[];this[_0xa4d4[1105]]=null!=_0x7246x3?_0x7246x3:!0;}mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1097]]=null;mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1065]]=null;mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1105]]=null;mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1066]]= !1;mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1106]]= !1;mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1107]]=function(){return 0==this[_0xa4d4[1065]][_0xa4d4[67]]};mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1108]]=function(){return this[_0xa4d4[1105]]};mxUndoableEdit[_0xa4d4[202]][_0xa4d4[99]]=function(_0x7246x2){this[_0xa4d4[1065]][_0xa4d4[207]](_0x7246x2)};mxUndoableEdit[_0xa4d4[202]][_0xa4d4[827]]=function(){};mxUndoableEdit[_0xa4d4[202]][_0xa4d4[1109]]=function(){};mxUndoableEdit[_0xa4d4[202]][_0xa4d4[824]]=function(){if(!this[_0xa4d4[1066]]){this[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.START_EDIT));for(var _0x7246x2=this[_0xa4d4[1065]][_0xa4d4[67]]-1;0<=_0x7246x2;_0x7246x2--){var _0x7246x3=this[_0xa4d4[1065]][_0x7246x2];null!=_0x7246x3[_0xa4d4[350]]?_0x7246x3[_0xa4d4[350]]():null!=_0x7246x3[_0xa4d4[824]]&&_0x7246x3[_0xa4d4[824]]();this[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.EXECUTED,_0xa4d4[826],_0x7246x3));};this[_0xa4d4[1066]]= !0;this[_0xa4d4[1106]]= !1;this[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.END_EDIT));};this[_0xa4d4[827]]();};mxUndoableEdit[_0xa4d4[202]][_0xa4d4[825]]=function(){if(!this[_0xa4d4[1106]]){this[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.START_EDIT));for(var _0x7246x2=this[_0xa4d4[1065]][_0xa4d4[67]],_0x7246x3=0;_0x7246x3<_0x7246x2;_0x7246x3++){var _0x7246x4=this[_0xa4d4[1065]][_0x7246x3];null!=_0x7246x4[_0xa4d4[350]]?_0x7246x4[_0xa4d4[350]]():null!=_0x7246x4[_0xa4d4[825]]&&_0x7246x4[_0xa4d4[825]]();this[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.EXECUTED,_0xa4d4[826],_0x7246x4));};this[_0xa4d4[1066]]= !1;this[_0xa4d4[1106]]= !0;this[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.END_EDIT));};this[_0xa4d4[827]]();};function mxUndoManager(_0x7246x2){this[_0xa4d4[803]]=null!=_0x7246x2?_0x7246x2:100;this[_0xa4d4[200]]();}mxUndoManager[_0xa4d4[202]]= new mxEventSource;mxUndoManager[_0xa4d4[202]][_0xa4d4[196]]=mxUndoManager;mxUndoManager[_0xa4d4[202]][_0xa4d4[803]]=null;mxUndoManager[_0xa4d4[202]][_0xa4d4[1110]]=null;mxUndoManager[_0xa4d4[202]][_0xa4d4[1111]]=0;mxUndoManager[_0xa4d4[202]][_0xa4d4[1107]]=function(){return 0==this[_0xa4d4[1110]][_0xa4d4[67]]};mxUndoManager[_0xa4d4[202]][_0xa4d4[200]]=function(){this[_0xa4d4[1110]]=[];this[_0xa4d4[1111]]=0;this[_0xa4d4[746]]( new mxEventObject(mxEvent.CLEAR));};mxUndoManager[_0xa4d4[202]][_0xa4d4[1112]]=function(){return 0<this[_0xa4d4[1111]]};mxUndoManager[_0xa4d4[202]][_0xa4d4[824]]=function(){for(;0<this[_0xa4d4[1111]];){var _0x7246x2=this[_0xa4d4[1110]][--this[_0xa4d4[1111]]];_0x7246x2[_0xa4d4[824]]();if(_0x7246x2[_0xa4d4[1108]]()){this[_0xa4d4[746]]( new mxEventObject(mxEvent.UNDO,_0xa4d4[1061],_0x7246x2));break;};}};mxUndoManager[_0xa4d4[202]][_0xa4d4[1113]]=function(){return this[_0xa4d4[1111]]<this[_0xa4d4[1110]][_0xa4d4[67]]};mxUndoManager[_0xa4d4[202]][_0xa4d4[825]]=function(){for(var _0x7246x2=this[_0xa4d4[1110]][_0xa4d4[67]];this[_0xa4d4[1111]]<_0x7246x2;){var _0x7246x3=this[_0xa4d4[1110]][this[_0xa4d4[1111]]++];_0x7246x3[_0xa4d4[825]]();if(_0x7246x3[_0xa4d4[1108]]()){this[_0xa4d4[746]]( new mxEventObject(mxEvent.REDO,_0xa4d4[1061],_0x7246x3));break;};}};mxUndoManager[_0xa4d4[202]][_0xa4d4[1114]]=function(_0x7246x2){this[_0xa4d4[330]]();0<this[_0xa4d4[803]]&&this[_0xa4d4[803]]==this[_0xa4d4[1110]][_0xa4d4[67]]&&this[_0xa4d4[1110]][_0xa4d4[1115]]();this[_0xa4d4[1110]][_0xa4d4[207]](_0x7246x2);this[_0xa4d4[1111]]=this[_0xa4d4[1110]][_0xa4d4[67]];this[_0xa4d4[746]]( new mxEventObject(mxEvent.ADD,_0xa4d4[1061],_0x7246x2));};mxUndoManager[_0xa4d4[202]][_0xa4d4[330]]=function(){if(this[_0xa4d4[1110]][_0xa4d4[67]]>this[_0xa4d4[1111]]){for(var _0x7246x2=this[_0xa4d4[1110]][_0xa4d4[300]](this[_0xa4d4[1111]],this[_0xa4d4[1110]][_0xa4d4[67]]-this[_0xa4d4[1111]]),_0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3++){_0x7246x2[_0x7246x3][_0xa4d4[1109]]()}}};var mxUrlConverter=function(_0x7246x2){var _0x7246x3=!0,_0x7246x4=null,_0x7246x5=null;return {isEnabled:function(){return _0x7246x3},setEnabled:function(_0x7246x2){_0x7246x3=_0x7246x2},getBaseUrl:function(){return _0x7246x4},setBaseUrl:function(_0x7246x2){_0x7246x4=_0x7246x2},getBaseDomain:function(){return _0x7246x4},setBaseDomain:function(_0x7246x2){_0x7246x4=_0x7246x2},isRelativeUrl:function(_0x7246x2){return _0xa4d4[43]!=_0x7246x2[_0xa4d4[85]](0,7)&&_0xa4d4[46]!=_0x7246x2[_0xa4d4[85]](0,8)&&_0xa4d4[1116]!=_0x7246x2[_0xa4d4[85]](0,10)},convert:function(_0x7246x2){if(_0x7246x3&&this[_0xa4d4[1117]](_0x7246x2)){if(null==_0x7246x4){_0x7246x5=location[_0xa4d4[1118]]+_0xa4d4[1119]+location[_0xa4d4[1120]];_0x7246x4=_0x7246x5+location[_0xa4d4[1121]];var _0x7246xa=_0x7246x4[_0xa4d4[1122]](_0xa4d4[84]);0<_0x7246xa&&(_0x7246x4=_0x7246x4[_0xa4d4[85]](0,_0x7246xa+1));};_0x7246x2=_0xa4d4[84]==_0x7246x2[_0xa4d4[225]](0)?_0x7246x5+_0x7246x2:_0x7246x4+_0x7246x2;};return _0x7246x2;}};};function mxPanningManager(_0x7246x2){this[_0xa4d4[1123]]=null;this[_0xa4d4[1124]]= !1;this[_0xa4d4[1125]]=this[_0xa4d4[1126]]=this[_0xa4d4[1127]]=this[_0xa4d4[1128]]=this[_0xa4d4[1129]]=this[_0xa4d4[1130]]=0;this[_0xa4d4[1131]]= !1;this[_0xa4d4[190]]=this[_0xa4d4[360]]=0;this[_0xa4d4[1132]]={mouseDown:function(_0x7246x2,_0x7246x3){},mouseMove:function(_0x7246x2,_0x7246x3){},mouseUp:mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){this[_0xa4d4[1124]]&&this[_0xa4d4[1076]]()})};_0x7246x2[_0xa4d4[1133]](this[_0xa4d4[1132]]);mxEvent[_0xa4d4[169]](document,_0xa4d4[753],mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[1124]]&&this[_0xa4d4[1076]]()}));var _0x7246x3=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[1131]]=mxUtils[_0xa4d4[1134]](_0x7246x2[_0xa4d4[526]]);this[_0xa4d4[360]]=_0x7246x2[_0xa4d4[526]][_0xa4d4[360]];this[_0xa4d4[190]]=_0x7246x2[_0xa4d4[526]][_0xa4d4[190]];return window[_0xa4d4[1141]](mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[1130]]-=this[_0xa4d4[1126]];this[_0xa4d4[1129]]-=this[_0xa4d4[1125]];if(this[_0xa4d4[1131]]){var _0x7246x3=-_0x7246x2[_0xa4d4[526]][_0xa4d4[360]]-Math[_0xa4d4[430]](this[_0xa4d4[1126]]),_0x7246x5=-_0x7246x2[_0xa4d4[526]][_0xa4d4[190]]-Math[_0xa4d4[430]](this[_0xa4d4[1125]]);_0x7246x2[_0xa4d4[1135]](_0x7246x3,_0x7246x5);_0x7246x2[_0xa4d4[1136]]=this[_0xa4d4[360]]-_0x7246x2[_0xa4d4[526]][_0xa4d4[360]];_0x7246x2[_0xa4d4[1137]]=this[_0xa4d4[190]]-_0x7246x2[_0xa4d4[526]][_0xa4d4[190]];_0x7246x2[_0xa4d4[746]]( new mxEventObject(mxEvent.PAN));}else {_0x7246x2[_0xa4d4[1135]](this[_0xa4d4[1138]](),this[_0xa4d4[1139]]())};}),this[_0xa4d4[1140]]);});this[_0xa4d4[1142]]=function(){return active};this[_0xa4d4[1138]]=function(){return Math[_0xa4d4[488]](this[_0xa4d4[1130]])};this[_0xa4d4[1139]]=function(){return Math[_0xa4d4[488]](this[_0xa4d4[1129]])};this[_0xa4d4[861]]=function(){this[_0xa4d4[1128]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]];this[_0xa4d4[1127]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]];this[_0xa4d4[1124]]= !0;};this[_0xa4d4[1143]]=function(_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[1124]]||this[_0xa4d4[861]]();this[_0xa4d4[360]]=_0x7246x2[_0xa4d4[526]][_0xa4d4[360]];this[_0xa4d4[190]]=_0x7246x2[_0xa4d4[526]][_0xa4d4[190]];_0x7246xa=null!=_0x7246xa?_0x7246xa:0;var _0x7246x12=_0x7246x2[_0xa4d4[526]];this[_0xa4d4[1126]]=_0x7246x4+(null!=_0x7246x9?_0x7246x9:0)-_0x7246x12[_0xa4d4[360]]-_0x7246x12[_0xa4d4[159]];0>this[_0xa4d4[1126]]&&Math[_0xa4d4[425]](this[_0xa4d4[1126]])<this[_0xa4d4[467]]?this[_0xa4d4[1126]]=this[_0xa4d4[467]]+this[_0xa4d4[1126]]:this[_0xa4d4[1126]]=this[_0xa4d4[1144]]?Math[_0xa4d4[160]](this[_0xa4d4[1126]],0):0;0==this[_0xa4d4[1126]]&&(this[_0xa4d4[1126]]=_0x7246x4-_0x7246x12[_0xa4d4[360]],this[_0xa4d4[1126]]=0<this[_0xa4d4[1126]]&&this[_0xa4d4[1126]]<this[_0xa4d4[467]]?this[_0xa4d4[1126]]-this[_0xa4d4[467]]:this[_0xa4d4[1144]]?Math[_0xa4d4[243]](0,this[_0xa4d4[1126]]):0);this[_0xa4d4[1125]]=_0x7246x5+_0x7246xa-_0x7246x12[_0xa4d4[190]]-_0x7246x12[_0xa4d4[157]];0>this[_0xa4d4[1125]]&&Math[_0xa4d4[425]](this[_0xa4d4[1125]])<this[_0xa4d4[467]]?this[_0xa4d4[1125]]=this[_0xa4d4[467]]+this[_0xa4d4[1125]]:this[_0xa4d4[1125]]=this[_0xa4d4[1144]]?Math[_0xa4d4[160]](this[_0xa4d4[1125]],0):0;0==this[_0xa4d4[1125]]&&(this[_0xa4d4[1125]]=_0x7246x5-_0x7246x12[_0xa4d4[190]],this[_0xa4d4[1125]]=0<this[_0xa4d4[1125]]&&this[_0xa4d4[1125]]<this[_0xa4d4[467]]?this[_0xa4d4[1125]]-this[_0xa4d4[467]]:this[_0xa4d4[1144]]?Math[_0xa4d4[243]](0,this[_0xa4d4[1125]]):0);0!=this[_0xa4d4[1126]]||0!=this[_0xa4d4[1125]]?(this[_0xa4d4[1126]]*=this[_0xa4d4[1145]],this[_0xa4d4[1125]]*=this[_0xa4d4[1145]],null==this[_0xa4d4[1123]]&&(this[_0xa4d4[1123]]=_0x7246x3())):null!=this[_0xa4d4[1123]]&&(window[_0xa4d4[1146]](this[_0xa4d4[1123]]),this[_0xa4d4[1123]]=null);};this[_0xa4d4[1076]]=function(){if(this[_0xa4d4[1124]]){if(this[_0xa4d4[1124]]= !1,null!=this[_0xa4d4[1123]]&&(window[_0xa4d4[1146]](this[_0xa4d4[1123]]),this[_0xa4d4[1123]]=null),this[_0xa4d4[1129]]=this[_0xa4d4[1130]]=0,this[_0xa4d4[1131]]){_0x7246x2[_0xa4d4[1136]]=0,_0x7246x2[_0xa4d4[1137]]=0,_0x7246x2[_0xa4d4[746]]( new mxEventObject(mxEvent.PAN))}else {var _0x7246x3=_0x7246x2[_0xa4d4[1136]],_0x7246x5=_0x7246x2[_0xa4d4[1137]];if(0!=_0x7246x3||0!=_0x7246x5){_0x7246x2[_0xa4d4[1135]](0,0),_0x7246x2[_0xa4d4[441]][_0xa4d4[1147]](this[_0xa4d4[1128]]+_0x7246x3/_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],this[_0xa4d4[1127]]+_0x7246x5/_0x7246x2[_0xa4d4[441]][_0xa4d4[255]])};}}};this[_0xa4d4[515]]=function(){_0x7246x2[_0xa4d4[1148]](this[_0xa4d4[1132]])};}mxPanningManager[_0xa4d4[202]][_0xa4d4[1145]]=1/6;mxPanningManager[_0xa4d4[202]][_0xa4d4[1140]]=10;mxPanningManager[_0xa4d4[202]][_0xa4d4[1144]]= !0;mxPanningManager[_0xa4d4[202]][_0xa4d4[467]]=0;function mxPopupMenu(_0x7246x2){this[_0xa4d4[1033]]=_0x7246x2;null!=_0x7246x2&&this[_0xa4d4[176]]();}mxPopupMenu[_0xa4d4[202]]= new mxEventSource;mxPopupMenu[_0xa4d4[202]][_0xa4d4[196]]=mxPopupMenu;mxPopupMenu[_0xa4d4[202]][_0xa4d4[1149]]=mxClient[_0xa4d4[88]]+_0xa4d4[1150];mxPopupMenu[_0xa4d4[202]][_0xa4d4[931]]=10006;mxPopupMenu[_0xa4d4[202]][_0xa4d4[1033]]=null;mxPopupMenu[_0xa4d4[202]][_0xa4d4[1151]]= !1;mxPopupMenu[_0xa4d4[202]][_0xa4d4[984]]= !0;mxPopupMenu[_0xa4d4[202]][_0xa4d4[1152]]=0;mxPopupMenu[_0xa4d4[202]][_0xa4d4[1153]]= !1;mxPopupMenu[_0xa4d4[202]][_0xa4d4[1154]]= !1;mxPopupMenu[_0xa4d4[202]][_0xa4d4[1155]]= !0;mxPopupMenu[_0xa4d4[202]][_0xa4d4[176]]=function(){this[_0xa4d4[116]]=document[_0xa4d4[55]](_0xa4d4[116]);this[_0xa4d4[116]][_0xa4d4[926]]=_0xa4d4[1156];this[_0xa4d4[120]]=document[_0xa4d4[55]](_0xa4d4[120]);this[_0xa4d4[116]][_0xa4d4[62]](this[_0xa4d4[120]]);this[_0xa4d4[485]]=document[_0xa4d4[55]](_0xa4d4[485]);this[_0xa4d4[485]][_0xa4d4[926]]=_0xa4d4[1156];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[931]]=this[_0xa4d4[931]];this[_0xa4d4[485]][_0xa4d4[62]](this[_0xa4d4[116]]);mxEvent[_0xa4d4[1157]](this[_0xa4d4[485]]);};mxPopupMenu[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxPopupMenu[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxPopupMenu[_0xa4d4[202]][_0xa4d4[737]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[737]]()||this[_0xa4d4[1151]]&&mxEvent[_0xa4d4[1158]](_0x7246x2[_0xa4d4[727]]())};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1025]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x5=_0x7246x5||this;this[_0xa4d4[1152]]++;_0x7246x5[_0xa4d4[1159]]&&(_0x7246x5[_0xa4d4[1160]]&&this[_0xa4d4[1051]](_0x7246x5,!0),_0x7246x5[_0xa4d4[1159]]= !1);_0x7246x5[_0xa4d4[1160]]= !0;var _0x7246x12=document[_0xa4d4[55]](_0xa4d4[121]);_0x7246x12[_0xa4d4[926]]=_0xa4d4[1161];var _0x7246x13=document[_0xa4d4[55]](_0xa4d4[122]);_0x7246x13[_0xa4d4[926]]=_0xa4d4[1162];null!=_0x7246x3?(_0x7246x9=document[_0xa4d4[55]](_0xa4d4[466]),_0x7246x9[_0xa4d4[390]]=_0x7246x3,_0x7246x13[_0xa4d4[62]](_0x7246x9)):null!=_0x7246x9&&(_0x7246x3=document[_0xa4d4[55]](_0xa4d4[485]),_0x7246x3[_0xa4d4[926]]=_0x7246x9,_0x7246x13[_0xa4d4[62]](_0x7246x3));_0x7246x12[_0xa4d4[62]](_0x7246x13);this[_0xa4d4[1155]]&&(_0x7246x13=document[_0xa4d4[55]](_0xa4d4[122]),_0x7246x13[_0xa4d4[926]]=_0xa4d4[1161]+(null!=_0x7246xa&&!_0x7246xa?_0xa4d4[1163]:_0xa4d4[110]),mxUtils[_0xa4d4[53]](_0x7246x13,_0x7246x2),_0x7246x13[_0xa4d4[611]]=_0xa4d4[361],_0x7246x12[_0xa4d4[62]](_0x7246x13),_0x7246x2=document[_0xa4d4[55]](_0xa4d4[122]),_0x7246x2[_0xa4d4[926]]=_0xa4d4[1161]+(null!=_0x7246xa&&!_0x7246xa?_0xa4d4[1163]:_0xa4d4[110]),_0x7246x2[_0xa4d4[124]][_0xa4d4[1164]]=_0xa4d4[1055],_0x7246x2[_0xa4d4[124]][_0xa4d4[1165]]=_0xa4d4[699],_0x7246x12[_0xa4d4[62]](_0x7246x2),null==_0x7246x5[_0xa4d4[485]]&&this[_0xa4d4[1166]](_0x7246x5));_0x7246x5[_0xa4d4[120]][_0xa4d4[62]](_0x7246x12);if(null==_0x7246xa||_0x7246xa){mxEvent[_0xa4d4[759]](_0x7246x12,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1167]]=_0x7246x12;_0x7246x5[_0xa4d4[1168]]!=_0x7246x12&&_0x7246x5[_0xa4d4[1168]]!=_0x7246x5&&(null!=_0x7246x5[_0xa4d4[1168]]&&null!=_0x7246x5[_0xa4d4[1168]][_0xa4d4[485]][_0xa4d4[265]]&&this[_0xa4d4[1169]](_0x7246x5),null!=_0x7246x12[_0xa4d4[485]]&&(this[_0xa4d4[1170]](_0x7246x5,_0x7246x12),_0x7246x5[_0xa4d4[1168]]=_0x7246x12));mxEvent[_0xa4d4[722]](_0x7246x2);}),mxUtils[_0xa4d4[885]](this,function(_0x7246x2){_0x7246x5[_0xa4d4[1168]]!=_0x7246x12&&_0x7246x5[_0xa4d4[1168]]!=_0x7246x5&&(null!=_0x7246x5[_0xa4d4[1168]]&&null!=_0x7246x5[_0xa4d4[1168]][_0xa4d4[485]][_0xa4d4[265]]&&this[_0xa4d4[1169]](_0x7246x5),this[_0xa4d4[1153]]&&null!=_0x7246x12[_0xa4d4[485]]&&(this[_0xa4d4[1170]](_0x7246x5,_0x7246x12),_0x7246x5[_0xa4d4[1168]]=_0x7246x12));_0x7246x12[_0xa4d4[926]]=_0xa4d4[1171];}),mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1167]]==_0x7246x12&&(_0x7246x5[_0xa4d4[1168]]!=_0x7246x12&&this[_0xa4d4[1032]](),null!=_0x7246x4&&_0x7246x4(_0x7246x2));this[_0xa4d4[1167]]=null;mxEvent[_0xa4d4[722]](_0x7246x2);})),mxEvent[_0xa4d4[169]](_0x7246x12,_0xa4d4[1035],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){_0x7246x12[_0xa4d4[926]]=_0xa4d4[1161]}))};return _0x7246x12;};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1166]]=function(_0x7246x2){_0x7246x2[_0xa4d4[116]]=document[_0xa4d4[55]](_0xa4d4[116]);_0x7246x2[_0xa4d4[116]][_0xa4d4[926]]=_0xa4d4[1156];_0x7246x2[_0xa4d4[120]]=document[_0xa4d4[55]](_0xa4d4[120]);_0x7246x2[_0xa4d4[116]][_0xa4d4[62]](_0x7246x2[_0xa4d4[120]]);_0x7246x2[_0xa4d4[485]]=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x2[_0xa4d4[485]][_0xa4d4[926]]=_0xa4d4[1156];_0x7246x2[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x2[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497];_0x7246x2[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[931]]=this[_0xa4d4[931]];_0x7246x2[_0xa4d4[485]][_0xa4d4[62]](_0x7246x2[_0xa4d4[116]]);var _0x7246x3=document[_0xa4d4[55]](_0xa4d4[466]);_0x7246x3[_0xa4d4[57]](_0xa4d4[390],this[_0xa4d4[1149]]);td=_0x7246x2[_0xa4d4[285]][_0xa4d4[287]][_0xa4d4[287]];td[_0xa4d4[62]](_0x7246x3);};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1170]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x3[_0xa4d4[485]]){_0x7246x3[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2[_0xa4d4[485]][_0xa4d4[358]]+_0x7246x3[_0xa4d4[358]]+_0x7246x3[_0xa4d4[359]]-1+_0xa4d4[168];_0x7246x3[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x2[_0xa4d4[485]][_0xa4d4[362]]+_0x7246x3[_0xa4d4[362]]+_0xa4d4[168];document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x3[_0xa4d4[485]]);var _0x7246x4=parseInt(_0x7246x3[_0xa4d4[485]][_0xa4d4[358]]),_0x7246x5=parseInt(_0x7246x3[_0xa4d4[485]][_0xa4d4[359]]),_0x7246x9=document[_0xa4d4[112]],_0x7246xa=document[_0xa4d4[158]];if(_0x7246x4+_0x7246x5>(_0x7246x9[_0xa4d4[360]]||_0x7246xa[_0xa4d4[360]])+(_0x7246x9[_0xa4d4[159]]||_0x7246xa[_0xa4d4[159]])){_0x7246x3[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2[_0xa4d4[485]][_0xa4d4[358]]-_0x7246x5+(mxClient[_0xa4d4[80]]?6:-6)+_0xa4d4[168]};mxUtils[_0xa4d4[933]](_0x7246x3[_0xa4d4[485]]);}};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1051]]=function(_0x7246x2,_0x7246x3){_0x7246x2=_0x7246x2||this;if(this[_0xa4d4[1154]]&& !_0x7246x3){_0x7246x2[_0xa4d4[1159]]= !0}else {if(null!=_0x7246x2[_0xa4d4[120]]){_0x7246x2[_0xa4d4[1159]]= !1;var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[121]),_0x7246x5=document[_0xa4d4[55]](_0xa4d4[122]);_0x7246x5[_0xa4d4[926]]=_0xa4d4[1162];_0x7246x5[_0xa4d4[124]][_0xa4d4[549]]=_0xa4d4[1172];_0x7246x4[_0xa4d4[62]](_0x7246x5);_0x7246x5=document[_0xa4d4[55]](_0xa4d4[122]);_0x7246x5[_0xa4d4[124]][_0xa4d4[549]]=_0xa4d4[1172];_0x7246x5[_0xa4d4[57]](_0xa4d4[1173],_0xa4d4[1174]);var _0x7246x9=document[_0xa4d4[55]](_0xa4d4[1054]);_0x7246x9[_0xa4d4[57]](_0xa4d4[803],_0xa4d4[500]);_0x7246x5[_0xa4d4[62]](_0x7246x9);_0x7246x4[_0xa4d4[62]](_0x7246x5);_0x7246x2[_0xa4d4[120]][_0xa4d4[62]](_0x7246x4);}};};mxPopupMenu[_0xa4d4[202]][_0xa4d4[152]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=this[_0xa4d4[485]]&&null!=this[_0xa4d4[120]]&&null!=this[_0xa4d4[1033]]){this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2+_0xa4d4[168];for(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x3+_0xa4d4[168];null!=this[_0xa4d4[120]][_0xa4d4[285]];){mxEvent[_0xa4d4[762]](this[_0xa4d4[120]][_0xa4d4[285]]),this[_0xa4d4[120]][_0xa4d4[266]](this[_0xa4d4[120]][_0xa4d4[285]])};this[_0xa4d4[1152]]=0;this[_0xa4d4[1033]](this,_0x7246x4,_0x7246x5);0<this[_0xa4d4[1152]]&&(this[_0xa4d4[1175]](),this[_0xa4d4[746]]( new mxEventObject(mxEvent.SHOW)));}};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1031]]=function(){return null!=this[_0xa4d4[485]]&&this[_0xa4d4[485]][_0xa4d4[265]]==document[_0xa4d4[112]]};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1175]]=function(){9<=document[_0xa4d4[5]]&&(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[347]]=_0xa4d4[130]);document[_0xa4d4[112]][_0xa4d4[62]](this[_0xa4d4[485]]);mxUtils[_0xa4d4[933]](this[_0xa4d4[485]]);};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1032]]=function(){null!=this[_0xa4d4[485]]&&(null!=this[_0xa4d4[485]][_0xa4d4[265]]&&this[_0xa4d4[485]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[485]]),this[_0xa4d4[1169]](this),this[_0xa4d4[1160]]= !1)};mxPopupMenu[_0xa4d4[202]][_0xa4d4[1169]]=function(_0x7246x2){null!=_0x7246x2[_0xa4d4[1168]]&&(this[_0xa4d4[1169]](_0x7246x2[_0xa4d4[1168]]),null!=_0x7246x2[_0xa4d4[1168]][_0xa4d4[485]][_0xa4d4[265]]&&_0x7246x2[_0xa4d4[1168]][_0xa4d4[485]][_0xa4d4[265]][_0xa4d4[266]](_0x7246x2[_0xa4d4[1168]][_0xa4d4[485]]),_0x7246x2[_0xa4d4[1168]]=null)};mxPopupMenu[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[485]]&&(mxEvent[_0xa4d4[762]](this[_0xa4d4[485]]),null!=this[_0xa4d4[485]][_0xa4d4[265]]&&this[_0xa4d4[485]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[485]]),this[_0xa4d4[485]]=null)};function mxAutoSaveManager(_0x7246x2){this[_0xa4d4[1176]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x4){this[_0xa4d4[994]]()&&this[_0xa4d4[1177]](_0x7246x4[_0xa4d4[720]](_0xa4d4[1061])[_0xa4d4[1065]])});this[_0xa4d4[1178]](_0x7246x2);}mxAutoSaveManager[_0xa4d4[202]]= new mxEventSource;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[196]]=mxAutoSaveManager;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1179]]=null;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1180]]=10;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1181]]=2;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1182]]=5;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1183]]=0;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1184]]=0;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[984]]= !0;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1176]]=null;mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1178]]=function(_0x7246x2){null!=this[_0xa4d4[1179]]&&this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[745]](this[_0xa4d4[1176]]);this[_0xa4d4[1179]]=_0x7246x2;null!=this[_0xa4d4[1179]]&&this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.CHANGE,this[_0xa4d4[1176]]);};mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[815]]=function(){};mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[1177]]=function(_0x7246x2){_0x7246x2=(( new Date)[_0xa4d4[178]]()-this[_0xa4d4[1184]])/1E3;_0x7246x2>this[_0xa4d4[1180]]||this[_0xa4d4[1183]]>=this[_0xa4d4[1182]]&&_0x7246x2>this[_0xa4d4[1181]]?(this[_0xa4d4[815]](),this[_0xa4d4[862]]()):this[_0xa4d4[1183]]++;};mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[862]]=function(){this[_0xa4d4[1184]]=( new Date)[_0xa4d4[178]]();this[_0xa4d4[1183]]=0;};mxAutoSaveManager[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1178]](null)};function mxAnimation(_0x7246x2){this[_0xa4d4[1140]]=null!=_0x7246x2?_0x7246x2:20}mxAnimation[_0xa4d4[202]]= new mxEventSource;mxAnimation[_0xa4d4[202]][_0xa4d4[196]]=mxAnimation;mxAnimation[_0xa4d4[202]][_0xa4d4[1140]]=null;mxAnimation[_0xa4d4[202]][_0xa4d4[1123]]=null;mxAnimation[_0xa4d4[202]][_0xa4d4[1185]]=function(){null==this[_0xa4d4[1123]]&&(this[_0xa4d4[1123]]=window[_0xa4d4[1141]](mxUtils[_0xa4d4[885]](this,this[_0xa4d4[1186]]),this[_0xa4d4[1140]]))};mxAnimation[_0xa4d4[202]][_0xa4d4[1186]]=function(){this[_0xa4d4[746]]( new mxEventObject(mxEvent.EXECUTE))};mxAnimation[_0xa4d4[202]][_0xa4d4[1187]]=function(){null!=this[_0xa4d4[1123]]&&(window[_0xa4d4[1146]](this[_0xa4d4[1123]]),this[_0xa4d4[1123]]=null,this[_0xa4d4[746]]( new mxEventObject(mxEvent.DONE)))};function mxMorphing(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxAnimation[_0xa4d4[239]](this,_0x7246x5);this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[1188]]=null!=_0x7246x3?_0x7246x3:6;this[_0xa4d4[1189]]=null!=_0x7246x4?_0x7246x4:1.5;}mxMorphing[_0xa4d4[202]]= new mxAnimation;mxMorphing[_0xa4d4[202]][_0xa4d4[196]]=mxMorphing;mxMorphing[_0xa4d4[202]][_0xa4d4[1179]]=null;mxMorphing[_0xa4d4[202]][_0xa4d4[1188]]=null;mxMorphing[_0xa4d4[202]][_0xa4d4[1190]]=0;mxMorphing[_0xa4d4[202]][_0xa4d4[1189]]=null;mxMorphing[_0xa4d4[202]][_0xa4d4[895]]=null;mxMorphing[_0xa4d4[202]][_0xa4d4[1186]]=function(){var _0x7246x2= new mxCellStatePreview(this[_0xa4d4[1179]]);if(null!=this[_0xa4d4[895]]){for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[895]][_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[1191]](cells[_0x7246x3],_0x7246x2,!1)}}else {this[_0xa4d4[1191]](this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[501]](),_0x7246x2,!0)};this[_0xa4d4[539]](_0x7246x2);(_0x7246x2[_0xa4d4[1107]]()||this[_0xa4d4[1190]]++ >=this[_0xa4d4[1188]])&&this[_0xa4d4[1187]]();};mxMorphing[_0xa4d4[202]][_0xa4d4[539]]=function(_0x7246x2){_0x7246x2[_0xa4d4[539]]()};mxMorphing[_0xa4d4[202]][_0xa4d4[1191]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2),_0x7246x9=null;if(null!=_0x7246x5&&(_0x7246x9=this[_0xa4d4[1192]](_0x7246x5),this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x2)&&(0!=_0x7246x9[_0xa4d4[235]]||0!=_0x7246x9[_0xa4d4[236]]))){var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[512]](),_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[518]]();_0x7246x9[_0xa4d4[235]]+=_0x7246xa[_0xa4d4[235]]*_0x7246x12;_0x7246x9[_0xa4d4[236]]+=_0x7246xa[_0xa4d4[236]]*_0x7246x12;_0x7246x3[_0xa4d4[1194]](_0x7246x5,-_0x7246x9[_0xa4d4[235]]/this[_0xa4d4[1189]],-_0x7246x9[_0xa4d4[236]]/this[_0xa4d4[1189]]);};if(_0x7246x4&&!this[_0xa4d4[1195]](_0x7246x5,_0x7246x9)){_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[262]](_0x7246x2);for(_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){this[_0xa4d4[1191]](this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[263]](_0x7246x2,_0x7246x9),_0x7246x3,_0x7246x4)};};};mxMorphing[_0xa4d4[202]][_0xa4d4[1195]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x3&&(0!=_0x7246x3[_0xa4d4[235]]||0!=_0x7246x3[_0xa4d4[236]])};mxMorphing[_0xa4d4[202]][_0xa4d4[1192]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1196]](_0x7246x2[_0xa4d4[246]]),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[512]](),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[518]]();_0x7246x2= new mxPoint(_0x7246x2[_0xa4d4[235]]/_0x7246x5-_0x7246x4[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]/_0x7246x5-_0x7246x4[_0xa4d4[236]]);return  new mxPoint((_0x7246x3[_0xa4d4[235]]-_0x7246x2[_0xa4d4[235]])*_0x7246x5,(_0x7246x3[_0xa4d4[236]]-_0x7246x2[_0xa4d4[236]])*_0x7246x5);};mxMorphing[_0xa4d4[202]][_0xa4d4[1196]]=function(_0x7246x2){var _0x7246x3=null;null!=_0x7246x2&&(_0x7246x3=this[_0xa4d4[1196]](this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x2)),_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x2),null!=_0x7246x2&&(_0x7246x3[_0xa4d4[235]]+=_0x7246x2[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]+=_0x7246x2[_0xa4d4[236]]));null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[512]](),_0x7246x3= new mxPoint(-_0x7246x3[_0xa4d4[235]],-_0x7246x3[_0xa4d4[236]]));return _0x7246x3;};function mxImageBundle(_0x7246x2){this[_0xa4d4[1199]]=[];this[_0xa4d4[1200]]=null!=_0x7246x2?_0x7246x2:!1;}mxImageBundle[_0xa4d4[202]][_0xa4d4[1199]]=null;mxImageBundle[_0xa4d4[202]][_0xa4d4[1199]]=null;mxImageBundle[_0xa4d4[202]][_0xa4d4[1201]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[1199]][_0x7246x2]={value:_0x7246x3,fallback:_0x7246x4}};mxImageBundle[_0xa4d4[202]][_0xa4d4[1202]]=function(_0x7246x2){var _0x7246x3=null;null!=_0x7246x2&&(_0x7246x2=this[_0xa4d4[1199]][_0x7246x2],null!=_0x7246x2&&(_0x7246x3=this[_0xa4d4[1200]]?_0x7246x2[_0xa4d4[1203]]:_0x7246x2[_0xa4d4[131]]));return _0x7246x3;};function mxImageExport(){}mxImageExport[_0xa4d4[202]][_0xa4d4[1204]]= !1;mxImageExport[_0xa4d4[202]][_0xa4d4[1205]]=function(_0x7246x2,_0x7246x3){null!=_0x7246x2&&(this[_0xa4d4[1207]](_0x7246x2,_0x7246x3,this[_0xa4d4[1206]]),this[_0xa4d4[1204]]&&this[_0xa4d4[1207]](_0x7246x2,_0x7246x3,this[_0xa4d4[1208]]))};mxImageExport[_0xa4d4[202]][_0xa4d4[1207]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(null!=_0x7246x2){_0x7246x4(_0x7246x2,_0x7246x3);for(var _0x7246x5=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246x9=_0x7246x5[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2[_0xa4d4[246]]),_0x7246xa=0;_0x7246xa<_0x7246x9;_0x7246xa++){var _0x7246x12=_0x7246x5[_0xa4d4[441]][_0xa4d4[248]](_0x7246x5[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2[_0xa4d4[246]],_0x7246xa));this[_0xa4d4[1207]](_0x7246x12,_0x7246x3,_0x7246x4);};}};mxImageExport[_0xa4d4[202]][_0xa4d4[1206]]=function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[253]] instanceof mxShape&&(_0x7246x3[_0xa4d4[815]](),_0x7246x2[_0xa4d4[253]][_0xa4d4[1209]](_0x7246x3),_0x7246x3[_0xa4d4[1210]]());null!=_0x7246x2[_0xa4d4[963]]&&(_0x7246x3[_0xa4d4[815]](),_0x7246x2[_0xa4d4[963]][_0xa4d4[1209]](_0x7246x3),_0x7246x3[_0xa4d4[1210]]());};mxImageExport[_0xa4d4[202]][_0xa4d4[1208]]=function(_0x7246x2,_0x7246x3){null!=_0x7246x2[_0xa4d4[1211]]&&_0x7246x2[_0xa4d4[1211]][_0xa4d4[209]](function(_0x7246x2,_0x7246x5){_0x7246x5 instanceof mxShape&&_0x7246x5[_0xa4d4[1209]](_0x7246x3)})};function mxAbstractCanvas2D(){this[_0xa4d4[1212]]=this[_0xa4d4[1213]]();this[_0xa4d4[862]]();}mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[724]]=null;mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1214]]=null;mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1215]]=null;mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1216]]= !0;mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1217]]=0;mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1218]]=0;mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1219]]=_0xa4d4[1220];mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1221]]=_0xa4d4[1222];mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1223]]=_0xa4d4[1224];mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1225]]=_0xa4d4[1226];mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1227]]=_0xa4d4[1228];mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1229]]= !1;mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1213]]=function(){return  new mxUrlConverter};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[862]]=function(){this[_0xa4d4[724]]=this[_0xa4d4[1230]]();this[_0xa4d4[1214]]=[];};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1230]]=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:_0xa4d4[1231],lineCap:_0xa4d4[1232],lineJoin:_0xa4d4[1233],miterLimit:10,fontColor:_0xa4d4[1234],fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants[_0xa4d4[483]],fontFamily:mxConstants[_0xa4d4[484]],fontStyle:0,shadow:!1,shadowColor:mxConstants[_0xa4d4[1235]],shadowAlpha:mxConstants[_0xa4d4[1236]],shadowDx:mxConstants[_0xa4d4[1237]],shadowDy:mxConstants[_0xa4d4[1238]],rotation:0,rotationCx:0,rotationCy:0}};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1239]]=function(_0x7246x2){return Math[_0xa4d4[488]](parseFloat(_0x7246x2))};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1240]]=function(){if(null!=this[_0xa4d4[1215]]&&(this[_0xa4d4[1215]][_0xa4d4[207]](arguments[0]),2<arguments[_0xa4d4[67]])){for(var _0x7246x2=this[_0xa4d4[724]],_0x7246x3=2;_0x7246x3<arguments[_0xa4d4[67]];_0x7246x3+=2){this[_0xa4d4[1217]]=arguments[_0x7246x3-1],this[_0xa4d4[1218]]=arguments[_0x7246x3],this[_0xa4d4[1215]][_0xa4d4[207]](this[_0xa4d4[1239]]((this[_0xa4d4[1217]]+_0x7246x2[_0xa4d4[1126]])*_0x7246x2[_0xa4d4[255]])),this[_0xa4d4[1215]][_0xa4d4[207]](this[_0xa4d4[1239]]((this[_0xa4d4[1218]]+_0x7246x2[_0xa4d4[1125]])*_0x7246x2[_0xa4d4[255]]))}}};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1241]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x4*=Math[_0xa4d4[424]]/180;return mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x2,_0x7246x3),Math[_0xa4d4[426]](_0x7246x4),Math[_0xa4d4[427]](_0x7246x4), new mxPoint(_0x7246x5,_0x7246x9));};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[815]]=function(){this[_0xa4d4[1214]][_0xa4d4[207]](this[_0xa4d4[724]]);this[_0xa4d4[724]]=mxUtils[_0xa4d4[238]](this[_0xa4d4[724]]);};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1210]]=function(){this[_0xa4d4[724]]=this[_0xa4d4[1214]][_0xa4d4[1242]]()};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[255]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[255]]*=_0x7246x2;this[_0xa4d4[724]][_0xa4d4[610]]*=_0x7246x2;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[513]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[724]][_0xa4d4[1126]]+=_0x7246x2;this[_0xa4d4[724]][_0xa4d4[1125]]+=_0x7246x3;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1243]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[1244]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1245]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);this[_0xa4d4[724]][_0xa4d4[604]]=_0x7246x2;this[_0xa4d4[724]][_0xa4d4[606]]=null;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1246]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){_0x7246x4=this[_0xa4d4[724]];_0x7246x4[_0xa4d4[604]]=_0x7246x2;_0x7246x4[_0xa4d4[1247]]=null!=_0x7246x13?_0x7246x13:1;_0x7246x4[_0xa4d4[606]]=_0x7246x3;_0x7246x4[_0xa4d4[1248]]=null!=_0x7246x14?_0x7246x14:1;_0x7246x4[_0xa4d4[607]]=_0x7246x12;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1249]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);this[_0xa4d4[724]][_0xa4d4[608]]=_0x7246x2;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1250]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[610]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1251]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[648]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1252]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[649]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1253]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[1254]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1255]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[1256]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1257]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[1258]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1259]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);this[_0xa4d4[724]][_0xa4d4[665]]=_0x7246x2;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1260]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);this[_0xa4d4[724]][_0xa4d4[1261]]=_0x7246x2;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1262]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);this[_0xa4d4[724]][_0xa4d4[1263]]=_0x7246x2;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1264]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[487]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1265]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[486]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1266]]=function(_0x7246x2){null==_0x7246x2&&(_0x7246x2=0);this[_0xa4d4[724]][_0xa4d4[666]]=_0x7246x2;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1267]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[639]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1268]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);this[_0xa4d4[724]][_0xa4d4[1269]]=_0x7246x2;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1270]]=function(_0x7246x2){this[_0xa4d4[724]][_0xa4d4[1271]]=_0x7246x2};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1272]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[724]][_0xa4d4[1273]]=_0x7246x2;this[_0xa4d4[724]][_0xa4d4[1274]]=_0x7246x3;};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1275]]=function(){this[_0xa4d4[1218]]=this[_0xa4d4[1217]]=0;this[_0xa4d4[1215]]=[];};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1276]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1240]](this[_0xa4d4[1219]],_0x7246x2,_0x7246x3)};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1277]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1240]](this[_0xa4d4[1221]],_0x7246x2,_0x7246x3)};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1278]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[1240]](this[_0xa4d4[1223]],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5)};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1279]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[1240]](this[_0xa4d4[1225]],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa)};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1280]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12){_0x7246x2=mxUtils[_0xa4d4[1281]](this[_0xa4d4[1217]],this[_0xa4d4[1218]],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12);for(_0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3+=6){this[_0xa4d4[1279]](_0x7246x2[_0x7246x3],_0x7246x2[_0x7246x3+1],_0x7246x2[_0x7246x3+2],_0x7246x2[_0x7246x3+3],_0x7246x2[_0x7246x3+4],_0x7246x2[_0x7246x3+5])};};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[268]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[1240]](this[_0xa4d4[1227]])};mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1282]]=function(){};function mxXmlCanvas2D(_0x7246x2){mxAbstractCanvas2D[_0xa4d4[239]](this);this[_0xa4d4[813]]=_0x7246x2;this[_0xa4d4[1283]]();}mxUtils[_0xa4d4[1284]](mxXmlCanvas2D,mxAbstractCanvas2D);mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1285]]= !0;mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1286]]= !0;mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1283]]=function(){var _0x7246x2;_0x7246x2=this[_0xa4d4[55]](_0xa4d4[1287]);_0x7246x2[_0xa4d4[57]](_0xa4d4[1288],mxConstants.DEFAULT_FONTFAMILY);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x2);_0x7246x2=this[_0xa4d4[55]](_0xa4d4[1289]);_0x7246x2[_0xa4d4[57]](_0xa4d4[803],mxConstants.DEFAULT_FONTSIZE);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x2);_0x7246x2=this[_0xa4d4[55]](_0xa4d4[1290]);_0x7246x2[_0xa4d4[57]](_0xa4d4[352],mxConstants.SHADOWCOLOR);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x2);_0x7246x2=this[_0xa4d4[55]](_0xa4d4[1291]);_0x7246x2[_0xa4d4[57]](_0xa4d4[1244],mxConstants.SHADOW_OPACITY);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x2);_0x7246x2=this[_0xa4d4[55]](_0xa4d4[1292]);_0x7246x2[_0xa4d4[57]](_0xa4d4[1126],mxConstants.SHADOW_OFFSET_X);_0x7246x2[_0xa4d4[57]](_0xa4d4[1125],mxConstants.SHADOW_OFFSET_Y);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x2);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1239]]=function(_0x7246x2){return parseFloat(parseFloat(_0x7246x2)[_0xa4d4[1293]](2))};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[55]]=function(_0x7246x2){return this[_0xa4d4[813]][_0xa4d4[295]][_0xa4d4[55]](_0x7246x2)};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[815]]=function(){this[_0xa4d4[1286]]&&mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[815]][_0xa4d4[183]](this,arguments);this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[55]](_0xa4d4[815]));};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1210]]=function(){this[_0xa4d4[1286]]&&mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1210]][_0xa4d4[183]](this,arguments);this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[55]](_0xa4d4[1210]));};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[255]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[255]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1243]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[255]);_0x7246x3[_0xa4d4[57]](_0xa4d4[255],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[513]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[55]](_0xa4d4[513]);_0x7246x4[_0xa4d4[57]](_0xa4d4[1126],this[_0xa4d4[1239]](_0x7246x2));_0x7246x4[_0xa4d4[57]](_0xa4d4[1125],this[_0xa4d4[1239]](_0x7246x3));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x4);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1294]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=this[_0xa4d4[55]](_0xa4d4[1294]);if(0!=_0x7246x2||_0x7246x3||_0x7246x4){_0x7246xa[_0xa4d4[57]](_0xa4d4[1295],this[_0xa4d4[1239]](_0x7246x2)),_0x7246xa[_0xa4d4[57]](_0xa4d4[623],_0x7246x3?_0xa4d4[500]:_0xa4d4[468]),_0x7246xa[_0xa4d4[57]](_0xa4d4[624],_0x7246x4?_0xa4d4[500]:_0xa4d4[468]),_0x7246xa[_0xa4d4[57]](_0xa4d4[1296],this[_0xa4d4[1239]](_0x7246x5)),_0x7246xa[_0xa4d4[57]](_0xa4d4[1297],this[_0xa4d4[1239]](_0x7246x9)),this[_0xa4d4[813]][_0xa4d4[62]](_0x7246xa)};};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1243]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1244]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1243]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1244]);_0x7246x3[_0xa4d4[57]](_0xa4d4[1244],this[_0xa4d4[1239]](_0x7246x2));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1245]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[604]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1245]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1298]);_0x7246x3[_0xa4d4[57]](_0xa4d4[352],null!=_0x7246x2?_0x7246x2:mxConstants[_0xa4d4[217]]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1246]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){if(null!=_0x7246x2&&null!=_0x7246x3){mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1246]][_0xa4d4[183]](this,arguments);var _0x7246x15=this[_0xa4d4[55]](_0xa4d4[1299]);_0x7246x15[_0xa4d4[57]](_0xa4d4[1300],_0x7246x2);_0x7246x15[_0xa4d4[57]](_0xa4d4[1301],_0x7246x3);_0x7246x15[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x4));_0x7246x15[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x5));_0x7246x15[_0xa4d4[57]](_0xa4d4[1302],this[_0xa4d4[1239]](_0x7246x9));_0x7246x15[_0xa4d4[57]](_0xa4d4[1303],this[_0xa4d4[1239]](_0x7246xa));null!=_0x7246x12&&_0x7246x15[_0xa4d4[57]](_0xa4d4[663],_0x7246x12);null!=_0x7246x13&&_0x7246x15[_0xa4d4[57]](_0xa4d4[1304],_0x7246x13);null!=_0x7246x14&&_0x7246x15[_0xa4d4[57]](_0xa4d4[1305],_0x7246x14);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x15);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1249]]=function(_0x7246x2){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[608]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1249]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1306]);_0x7246x3[_0xa4d4[57]](_0xa4d4[352],null!=_0x7246x2?_0x7246x2:mxConstants[_0xa4d4[217]]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1250]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[610]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1250]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1307]);_0x7246x3[_0xa4d4[57]](_0xa4d4[117],this[_0xa4d4[1239]](_0x7246x2));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1251]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[648]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1251]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[648]);_0x7246x3[_0xa4d4[57]](_0xa4d4[648],_0x7246x2?_0xa4d4[500]:_0xa4d4[468]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1252]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[649]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1252]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1308]);_0x7246x3[_0xa4d4[57]](_0xa4d4[1309],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1253]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1254]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1253]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1310]);_0x7246x3[_0xa4d4[57]](_0xa4d4[1311],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1255]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1256]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1255]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1312]);_0x7246x3[_0xa4d4[57]](_0xa4d4[234],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1257]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1258]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1257]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1313]);_0x7246x3[_0xa4d4[57]](_0xa4d4[1314],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1259]]=function(_0x7246x2){if(this[_0xa4d4[1285]]){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[665]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1259]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1315]);_0x7246x3[_0xa4d4[57]](_0xa4d4[352],null!=_0x7246x2?_0x7246x2:mxConstants[_0xa4d4[217]]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1260]]=function(_0x7246x2){if(this[_0xa4d4[1285]]){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1261]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1260]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1316]);_0x7246x3[_0xa4d4[57]](_0xa4d4[352],null!=_0x7246x2?_0x7246x2:mxConstants[_0xa4d4[217]]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1262]]=function(_0x7246x2){if(this[_0xa4d4[1285]]){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1263]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1262]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1317]);_0x7246x3[_0xa4d4[57]](_0xa4d4[352],null!=_0x7246x2?_0x7246x2:mxConstants[_0xa4d4[217]]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1264]]=function(_0x7246x2){if(this[_0xa4d4[1285]]){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[487]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1264]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1289]);_0x7246x3[_0xa4d4[57]](_0xa4d4[803],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1265]]=function(_0x7246x2){if(this[_0xa4d4[1285]]){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[486]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1265]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1287]);_0x7246x3[_0xa4d4[57]](_0xa4d4[1288],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1266]]=function(_0x7246x2){if(this[_0xa4d4[1285]]){null==_0x7246x2&&(_0x7246x2=0);if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[666]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1266]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1318]);_0x7246x3[_0xa4d4[57]](_0xa4d4[124],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1267]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[639]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1267]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[639]);_0x7246x3[_0xa4d4[57]](_0xa4d4[984],_0x7246x2?_0xa4d4[500]:_0xa4d4[468]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1268]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){_0x7246x2==mxConstants[_0xa4d4[217]]&&(_0x7246x2=null);if(this[_0xa4d4[724]][_0xa4d4[1269]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1268]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1290]);_0x7246x3[_0xa4d4[57]](_0xa4d4[352],null!=_0x7246x2?_0x7246x2:mxConstants[_0xa4d4[217]]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1270]]=function(_0x7246x2){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1271]]==_0x7246x2){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1270]][_0xa4d4[183]](this,arguments);};var _0x7246x3=this[_0xa4d4[55]](_0xa4d4[1291]);_0x7246x3[_0xa4d4[57]](_0xa4d4[1244],_0x7246x2);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x3);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1272]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1286]]){if(this[_0xa4d4[724]][_0xa4d4[1273]]==_0x7246x2&&this[_0xa4d4[724]][_0xa4d4[1274]]==_0x7246x3){return };mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1272]][_0xa4d4[183]](this,arguments);};var _0x7246x4=this[_0xa4d4[55]](_0xa4d4[1292]);_0x7246x4[_0xa4d4[57]](_0xa4d4[1126],_0x7246x2);_0x7246x4[_0xa4d4[57]](_0xa4d4[1125],_0x7246x3);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x4);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1319]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=this[_0xa4d4[55]](_0xa4d4[1319]);_0x7246x9[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2));_0x7246x9[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3));_0x7246x9[_0xa4d4[57]](_0xa4d4[1302],this[_0xa4d4[1239]](_0x7246x4));_0x7246x9[_0xa4d4[57]](_0xa4d4[1303],this[_0xa4d4[1239]](_0x7246x5));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x9);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1320]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){var _0x7246x12=this[_0xa4d4[55]](_0xa4d4[1320]);_0x7246x12[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2));_0x7246x12[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3));_0x7246x12[_0xa4d4[57]](_0xa4d4[1302],this[_0xa4d4[1239]](_0x7246x4));_0x7246x12[_0xa4d4[57]](_0xa4d4[1303],this[_0xa4d4[1239]](_0x7246x5));_0x7246x12[_0xa4d4[57]](_0xa4d4[1126],this[_0xa4d4[1239]](_0x7246x9));_0x7246x12[_0xa4d4[57]](_0xa4d4[1125],this[_0xa4d4[1239]](_0x7246xa));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x12);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[680]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=this[_0xa4d4[55]](_0xa4d4[680]);_0x7246x9[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2));_0x7246x9[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3));_0x7246x9[_0xa4d4[57]](_0xa4d4[1302],this[_0xa4d4[1239]](_0x7246x4));_0x7246x9[_0xa4d4[57]](_0xa4d4[1303],this[_0xa4d4[1239]](_0x7246x5));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x9);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[618]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13){_0x7246x9=this[_0xa4d4[1212]][_0xa4d4[1321]](_0x7246x9);var _0x7246x14=this[_0xa4d4[55]](_0xa4d4[618]);_0x7246x14[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2));_0x7246x14[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3));_0x7246x14[_0xa4d4[57]](_0xa4d4[1302],this[_0xa4d4[1239]](_0x7246x4));_0x7246x14[_0xa4d4[57]](_0xa4d4[1303],this[_0xa4d4[1239]](_0x7246x5));_0x7246x14[_0xa4d4[57]](_0xa4d4[390],_0x7246x9);_0x7246x14[_0xa4d4[57]](_0xa4d4[1322],_0x7246xa?_0xa4d4[500]:_0xa4d4[468]);_0x7246x14[_0xa4d4[57]](_0xa4d4[623],_0x7246x12?_0xa4d4[500]:_0xa4d4[468]);_0x7246x14[_0xa4d4[57]](_0xa4d4[624],_0x7246x13?_0xa4d4[500]:_0xa4d4[468]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x14);};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1275]]=function(){this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[55]](_0xa4d4[1275]));this[_0xa4d4[1218]]=this[_0xa4d4[1217]]=0;};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1276]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[55]](_0xa4d4[582]);_0x7246x4[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2));_0x7246x4[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x4);this[_0xa4d4[1217]]=_0x7246x2;this[_0xa4d4[1218]]=_0x7246x3;};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1277]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[55]](_0xa4d4[683]);_0x7246x4[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2));_0x7246x4[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x4);this[_0xa4d4[1217]]=_0x7246x2;this[_0xa4d4[1218]]=_0x7246x3;};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1278]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=this[_0xa4d4[55]](_0xa4d4[1323]);_0x7246x9[_0xa4d4[57]](_0xa4d4[1324],this[_0xa4d4[1239]](_0x7246x2));_0x7246x9[_0xa4d4[57]](_0xa4d4[1325],this[_0xa4d4[1239]](_0x7246x3));_0x7246x9[_0xa4d4[57]](_0xa4d4[1326],this[_0xa4d4[1239]](_0x7246x4));_0x7246x9[_0xa4d4[57]](_0xa4d4[1327],this[_0xa4d4[1239]](_0x7246x5));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x9);this[_0xa4d4[1217]]=_0x7246x4;this[_0xa4d4[1218]]=_0x7246x5;};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1279]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){var _0x7246x12=this[_0xa4d4[55]](_0xa4d4[1328]);_0x7246x12[_0xa4d4[57]](_0xa4d4[1324],this[_0xa4d4[1239]](_0x7246x2));_0x7246x12[_0xa4d4[57]](_0xa4d4[1325],this[_0xa4d4[1239]](_0x7246x3));_0x7246x12[_0xa4d4[57]](_0xa4d4[1326],this[_0xa4d4[1239]](_0x7246x4));_0x7246x12[_0xa4d4[57]](_0xa4d4[1327],this[_0xa4d4[1239]](_0x7246x5));_0x7246x12[_0xa4d4[57]](_0xa4d4[1329],this[_0xa4d4[1239]](_0x7246x9));_0x7246x12[_0xa4d4[57]](_0xa4d4[1330],this[_0xa4d4[1239]](_0x7246xa));this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x12);this[_0xa4d4[1217]]=_0x7246x9;this[_0xa4d4[1218]]=_0x7246xa;};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[268]]=function(){this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[55]](_0xa4d4[268]))};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[963]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){if(this[_0xa4d4[1285]]&&null!=_0x7246x9){mxUtils[_0xa4d4[1331]](_0x7246x9)&&(_0x7246x9=mxUtils[_0xa4d4[532]](_0x7246x9));var _0x7246x18=this[_0xa4d4[55]](_0xa4d4[963]);_0x7246x18[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2));_0x7246x18[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3));_0x7246x18[_0xa4d4[57]](_0xa4d4[1302],this[_0xa4d4[1239]](_0x7246x4));_0x7246x18[_0xa4d4[57]](_0xa4d4[1303],this[_0xa4d4[1239]](_0x7246x5));_0x7246x18[_0xa4d4[57]](_0xa4d4[1332],_0x7246x9);null!=_0x7246xa&&_0x7246x18[_0xa4d4[57]](_0xa4d4[611],_0x7246xa);null!=_0x7246x12&&_0x7246x18[_0xa4d4[57]](_0xa4d4[552],_0x7246x12);_0x7246x18[_0xa4d4[57]](_0xa4d4[1333],_0x7246x13?_0xa4d4[500]:_0xa4d4[468]);null==_0x7246x14&&(_0x7246x14=_0xa4d4[110]);_0x7246x18[_0xa4d4[57]](_0xa4d4[1239],_0x7246x14);null!=_0x7246x15&&_0x7246x18[_0xa4d4[57]](_0xa4d4[1334],_0x7246x15?_0xa4d4[500]:_0xa4d4[468]);null!=_0x7246x16&&_0x7246x18[_0xa4d4[57]](_0xa4d4[1335],_0x7246x16?_0xa4d4[500]:_0xa4d4[468]);null!=_0x7246x17&&_0x7246x18[_0xa4d4[57]](_0xa4d4[603],_0x7246x17);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x18);}};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1336]]=function(){this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[55]](_0xa4d4[1336]))};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1334]]=function(){this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[55]](_0xa4d4[1334]))};mxXmlCanvas2D[_0xa4d4[202]][_0xa4d4[1337]]=function(){this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[55]](_0xa4d4[1338]))};function mxSvgCanvas2D(_0x7246x2,_0x7246x3){mxAbstractCanvas2D[_0xa4d4[239]](this);this[_0xa4d4[813]]=_0x7246x2;this[_0xa4d4[1339]]=[];this[_0xa4d4[1340]]=null;this[_0xa4d4[1341]]=null!=_0x7246x3?_0x7246x3:!1;var _0x7246x4=null;if(_0x7246x2[_0xa4d4[295]]!=document){for(_0x7246x4=_0x7246x2;null!=_0x7246x4&&_0xa4d4[571]!=_0x7246x4[_0xa4d4[301]];){_0x7246x4=_0x7246x4[_0xa4d4[265]]}};null!=_0x7246x4&&(0<_0x7246x4[_0xa4d4[64]](_0xa4d4[1340])[_0xa4d4[67]]&&(this[_0xa4d4[1340]]=_0x7246x4[_0xa4d4[64]](_0xa4d4[1340])[0]),null==this[_0xa4d4[1340]]&&(this[_0xa4d4[1340]]=this[_0xa4d4[55]](_0xa4d4[1340]),null!=_0x7246x4[_0xa4d4[285]]?_0x7246x4[_0xa4d4[950]](this[_0xa4d4[1340]],_0x7246x4[_0xa4d4[285]]):_0x7246x4[_0xa4d4[62]](this[_0xa4d4[1340]])),this[_0xa4d4[1341]]&&this[_0xa4d4[1340]][_0xa4d4[62]](this[_0xa4d4[1342]]()));}mxUtils[_0xa4d4[1284]](mxSvgCanvas2D,mxAbstractCanvas2D);mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[252]]=null;mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1343]]= !0;mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1285]]= !0;mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1344]]= !0;mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1345]]=0;mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1346]]=0;mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1347]]= !1;mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[862]]=function(){mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[862]][_0xa4d4[183]](this,arguments);this[_0xa4d4[1339]]=[];};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1342]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[55]](_0xa4d4[124]);_0x7246x2[_0xa4d4[57]](_0xa4d4[60],_0xa4d4[61]);mxUtils[_0xa4d4[53]](_0x7246x2,_0xa4d4[1348]+mxConstants[_0xa4d4[484]]+_0xa4d4[1349]+mxConstants[_0xa4d4[483]]+_0xa4d4[1350]);return _0x7246x2;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[55]]=function(_0x7246x2,_0x7246x3){if(null!=this[_0xa4d4[813]][_0xa4d4[295]][_0xa4d4[509]]){return this[_0xa4d4[813]][_0xa4d4[295]][_0xa4d4[509]](_0x7246x3||mxConstants[_0xa4d4[1351]],_0x7246x2)};var _0x7246x4=this[_0xa4d4[813]][_0xa4d4[295]][_0xa4d4[55]](_0x7246x2);null!=_0x7246x3&&_0x7246x4[_0xa4d4[57]](_0xa4d4[1352],_0x7246x3);return _0x7246x4;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1353]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0xa4d4[198]==_0x7246x2[_0xa4d4[225]](0)&&(_0x7246x2=_0x7246x2[_0xa4d4[85]](1));_0xa4d4[198]==_0x7246x3[_0xa4d4[225]](0)&&(_0x7246x3=_0x7246x3[_0xa4d4[85]](1));_0x7246x2=_0x7246x2[_0xa4d4[216]]()+_0xa4d4[213]+_0x7246x4;_0x7246x3=_0x7246x3[_0xa4d4[216]]()+_0xa4d4[213]+_0x7246x5;_0x7246x4=null;null==_0x7246x9||_0x7246x9==mxConstants[_0xa4d4[1354]]?_0x7246x4=_0xa4d4[1355]:_0x7246x9==mxConstants[_0xa4d4[1356]]?_0x7246x4=_0xa4d4[1357]:(_0x7246x5=_0x7246x2,_0x7246x2=_0x7246x3,_0x7246x3=_0x7246x5,_0x7246x9==mxConstants[_0xa4d4[1358]]?_0x7246x4=_0xa4d4[1355]:_0x7246x9==mxConstants[_0xa4d4[1359]]&&(_0x7246x4=_0xa4d4[1357]));return _0xa4d4[1360]+_0x7246x2+_0xa4d4[213]+_0x7246x3+_0xa4d4[213]+_0x7246x4;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1361]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=this[_0xa4d4[1353]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),_0x7246x12=this[_0xa4d4[1339]][_0x7246xa];if(null==_0x7246x12){var _0x7246x13=this[_0xa4d4[813]][_0xa4d4[538]],_0x7246x14=0,_0x7246x15=_0x7246xa+_0xa4d4[213]+_0x7246x14;if(null!=_0x7246x13){for(_0x7246x12=_0x7246x13[_0xa4d4[295]][_0xa4d4[1362]](_0x7246x15);null!=_0x7246x12&&_0x7246x12[_0xa4d4[538]]!=_0x7246x13;){_0x7246x15=_0x7246xa+_0xa4d4[213]+_0x7246x14++,_0x7246x12=_0x7246x13[_0xa4d4[295]][_0xa4d4[1362]](_0x7246x15)}}else {_0x7246x15=_0xa4d4[1363]+++this[_0xa4d4[1346]]};null==_0x7246x12&&(_0x7246x12=this[_0xa4d4[1364]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),_0x7246x12[_0xa4d4[57]](_0xa4d4[1363],_0x7246x15),null!=this[_0xa4d4[1340]]?this[_0xa4d4[1340]][_0xa4d4[62]](_0x7246x12):_0x7246x13[_0xa4d4[62]](_0x7246x12));this[_0xa4d4[1339]][_0x7246xa]=_0x7246x12;};return _0x7246x12[_0xa4d4[284]](_0xa4d4[1363]);};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1364]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=this[_0xa4d4[55]](_0xa4d4[1365]);_0x7246xa[_0xa4d4[57]](_0xa4d4[1324],_0xa4d4[1366]);_0x7246xa[_0xa4d4[57]](_0xa4d4[1325],_0xa4d4[1366]);_0x7246xa[_0xa4d4[57]](_0xa4d4[1326],_0xa4d4[1366]);_0x7246xa[_0xa4d4[57]](_0xa4d4[1327],_0xa4d4[1366]);null==_0x7246x9||_0x7246x9==mxConstants[_0xa4d4[1354]]?_0x7246xa[_0xa4d4[57]](_0xa4d4[1327],_0xa4d4[118]):_0x7246x9==mxConstants[_0xa4d4[1356]]?_0x7246xa[_0xa4d4[57]](_0xa4d4[1326],_0xa4d4[118]):_0x7246x9==mxConstants[_0xa4d4[1358]]?_0x7246xa[_0xa4d4[57]](_0xa4d4[1325],_0xa4d4[118]):_0x7246x9==mxConstants[_0xa4d4[1359]]&&_0x7246xa[_0xa4d4[57]](_0xa4d4[1324],_0xa4d4[118]);_0x7246x4=1>_0x7246x4?_0xa4d4[1367]+_0x7246x4:_0xa4d4[110];_0x7246x9=this[_0xa4d4[55]](_0xa4d4[1076]);_0x7246x9[_0xa4d4[57]](_0xa4d4[1368],_0xa4d4[1366]);_0x7246x9[_0xa4d4[57]](_0xa4d4[124],_0xa4d4[1369]+_0x7246x2+_0x7246x4);_0x7246xa[_0xa4d4[62]](_0x7246x9);_0x7246x4=1>_0x7246x5?_0xa4d4[1367]+_0x7246x5:_0xa4d4[110];_0x7246x9=this[_0xa4d4[55]](_0xa4d4[1076]);_0x7246x9[_0xa4d4[57]](_0xa4d4[1368],_0xa4d4[118]);_0x7246x9[_0xa4d4[57]](_0xa4d4[124],_0xa4d4[1369]+_0x7246x3+_0x7246x4);_0x7246xa[_0xa4d4[62]](_0x7246x9);return _0x7246xa;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1370]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[252]],_0x7246x5=this[_0xa4d4[724]];if(null!=_0x7246x4){if(_0xa4d4[1215]==_0x7246x4[_0xa4d4[301]]){if(null!=this[_0xa4d4[1215]]&&0<this[_0xa4d4[1215]][_0xa4d4[67]]){_0x7246x4[_0xa4d4[57]](_0xa4d4[1371],this[_0xa4d4[1215]][_0xa4d4[234]](_0xa4d4[185]))}else {return }};_0x7246x2&&null!=_0x7246x5[_0xa4d4[604]]?this[_0xa4d4[1372]]():this[_0xa4d4[1341]]||(_0xa4d4[680]==_0x7246x4[_0xa4d4[301]]&&mxClient[_0xa4d4[133]]&&!mxClient[_0xa4d4[76]]&&!mxClient[_0xa4d4[75]]?_0x7246x4[_0xa4d4[57]](_0xa4d4[1334],_0xa4d4[1373]):_0x7246x4[_0xa4d4[57]](_0xa4d4[1334],_0xa4d4[130]),_0x7246x2= !1);_0x7246x3&&null!=_0x7246x5[_0xa4d4[608]]?this[_0xa4d4[1374]]():this[_0xa4d4[1341]]||_0x7246x4[_0xa4d4[57]](_0xa4d4[1336],_0xa4d4[130]);null!=_0x7246x5[_0xa4d4[535]]&&0<_0x7246x5[_0xa4d4[535]][_0xa4d4[67]]&&_0x7246x4[_0xa4d4[57]](_0xa4d4[535],_0x7246x5[_0xa4d4[535]]);_0x7246x5[_0xa4d4[639]]&&this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[1375]](_0x7246x4));0<this[_0xa4d4[1345]]&&!_0x7246x2&&this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[1376]](_0x7246x4));this[_0xa4d4[1229]]&&(_0xa4d4[1215]!=_0x7246x4[_0xa4d4[301]]||this[_0xa4d4[1215]][this[_0xa4d4[1215]][_0xa4d4[67]]-1]==this[_0xa4d4[1227]])&&_0x7246x4[_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[1378]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x4);};};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1372]]=function(){var _0x7246x2=this[_0xa4d4[724]];1>_0x7246x2[_0xa4d4[1244]]&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1379],_0x7246x2[_0xa4d4[1244]]);null!=_0x7246x2[_0xa4d4[604]]&&(null!=_0x7246x2[_0xa4d4[606]]?(_0x7246x2=this[_0xa4d4[1361]](_0x7246x2[_0xa4d4[604]],_0x7246x2[_0xa4d4[606]],_0x7246x2[_0xa4d4[1247]],_0x7246x2[_0xa4d4[1248]],_0x7246x2[_0xa4d4[607]]),this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1334],_0xa4d4[1380]+_0x7246x2+_0xa4d4[460])):this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1334],_0x7246x2[_0xa4d4[604]][_0xa4d4[216]]()));};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1374]]=function(){var _0x7246x2=this[_0xa4d4[724]];this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1336],_0x7246x2[_0xa4d4[608]][_0xa4d4[216]]());1>_0x7246x2[_0xa4d4[1244]]&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1381],_0x7246x2[_0xa4d4[1244]]);var _0x7246x3=Math[_0xa4d4[160]](1,this[_0xa4d4[1239]](_0x7246x2[_0xa4d4[610]]*_0x7246x2[_0xa4d4[255]]));1!=_0x7246x3&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1382],_0x7246x3);_0xa4d4[1215]==this[_0xa4d4[252]][_0xa4d4[301]]&&this[_0xa4d4[1383]]();_0x7246x2[_0xa4d4[648]]&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1384],this[_0xa4d4[1385]](_0x7246x3));};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1383]]=function(){var _0x7246x2=this[_0xa4d4[724]];null!=_0x7246x2[_0xa4d4[1256]]&&_0xa4d4[1233]!=_0x7246x2[_0xa4d4[1256]]&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1386],_0x7246x2[_0xa4d4[1256]]);if(null!=_0x7246x2[_0xa4d4[1254]]){var _0x7246x3=_0x7246x2[_0xa4d4[1254]];_0xa4d4[1232]==_0x7246x3&&(_0x7246x3=_0xa4d4[1387]);_0xa4d4[1387]!=_0x7246x3&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1388],_0x7246x3);};null!=_0x7246x2[_0xa4d4[1258]]&&(!this[_0xa4d4[1341]]||10!=_0x7246x2[_0xa4d4[1258]])&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1389],_0x7246x2[_0xa4d4[1258]]);};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1385]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[724]][_0xa4d4[649]][_0xa4d4[224]](_0xa4d4[185]),_0x7246x4=[];if(0<_0x7246x3[_0xa4d4[67]]){for(var _0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){_0x7246x4[_0x7246x5]=Number(_0x7246x3[_0x7246x5])*_0x7246x2}};return _0x7246x4[_0xa4d4[234]](_0xa4d4[185]);};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1376]]=function(_0x7246x2){_0x7246x2=_0x7246x2[_0xa4d4[511]](!0);var _0x7246x3=parseFloat(_0x7246x2[_0xa4d4[284]](_0xa4d4[1382])||1)+this[_0xa4d4[1345]];_0x7246x2[_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[1336]);_0x7246x2[_0xa4d4[57]](_0xa4d4[187],_0xa4d4[188]);_0x7246x2[_0xa4d4[1390]](_0xa4d4[1384]);_0x7246x2[_0xa4d4[57]](_0xa4d4[1382],_0x7246x3);_0x7246x2[_0xa4d4[57]](_0xa4d4[1334],_0xa4d4[130]);_0x7246x2[_0xa4d4[57]](_0xa4d4[1336],mxClient[_0xa4d4[71]]?_0xa4d4[130]:_0xa4d4[1391]);return _0x7246x2;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1375]]=function(_0x7246x2){_0x7246x2=_0x7246x2[_0xa4d4[511]](!0);var _0x7246x3=this[_0xa4d4[724]];_0xa4d4[130]!=_0x7246x2[_0xa4d4[284]](_0xa4d4[1334])&&_0x7246x2[_0xa4d4[57]](_0xa4d4[1334],_0x7246x3[_0xa4d4[1269]]);_0xa4d4[130]!=_0x7246x2[_0xa4d4[284]](_0xa4d4[1336])&&_0x7246x2[_0xa4d4[57]](_0xa4d4[1336],_0x7246x3[_0xa4d4[1269]]);_0x7246x2[_0xa4d4[57]](_0xa4d4[535],_0xa4d4[536]+this[_0xa4d4[1239]](_0x7246x3[_0xa4d4[1273]]*_0x7246x3[_0xa4d4[255]])+_0xa4d4[537]+this[_0xa4d4[1239]](_0x7246x3[_0xa4d4[1274]]*_0x7246x3[_0xa4d4[255]])+_0xa4d4[460]+(_0x7246x3[_0xa4d4[535]]||_0xa4d4[110]));_0x7246x2[_0xa4d4[57]](_0xa4d4[461],_0x7246x3[_0xa4d4[1271]]);return _0x7246x2;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1294]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(0!=_0x7246x2||_0x7246x3||_0x7246x4){var _0x7246xa=this[_0xa4d4[724]];_0x7246x5+=_0x7246xa[_0xa4d4[1126]];_0x7246x9+=_0x7246xa[_0xa4d4[1125]];_0x7246x5*=_0x7246xa[_0xa4d4[255]];_0x7246x9*=_0x7246xa[_0xa4d4[255]];_0x7246xa[_0xa4d4[535]]=_0x7246xa[_0xa4d4[535]]||_0xa4d4[110];if(_0x7246x3&&_0x7246x4){_0x7246x2+=180}else {if(_0x7246x3^_0x7246x4){var _0x7246x12=_0x7246x3?_0x7246x5:0,_0x7246x13=_0x7246x3?-1:1,_0x7246x14=_0x7246x4?_0x7246x9:0,_0x7246x15=_0x7246x4?-1:1;_0x7246xa[_0xa4d4[535]]+=_0xa4d4[536]+this[_0xa4d4[1239]](_0x7246x12)+_0xa4d4[537]+this[_0xa4d4[1239]](_0x7246x14)+_0xa4d4[1392]+this[_0xa4d4[1239]](_0x7246x13)+_0xa4d4[537]+this[_0xa4d4[1239]](_0x7246x15)+_0xa4d4[1393]+this[_0xa4d4[1239]](-_0x7246x12)+_0xa4d4[537]+this[_0xa4d4[1239]](-_0x7246x14)+_0xa4d4[460];}};if(_0x7246x3?!_0x7246x4:_0x7246x4){_0x7246x2*= -1};0!=_0x7246x2&&(_0x7246xa[_0xa4d4[535]]+=_0xa4d4[1394]+this[_0xa4d4[1239]](_0x7246x2)+_0xa4d4[537]+this[_0xa4d4[1239]](_0x7246x5)+_0xa4d4[537]+this[_0xa4d4[1239]](_0x7246x9)+_0xa4d4[460]);_0x7246xa[_0xa4d4[603]]+=_0x7246x2;_0x7246xa[_0xa4d4[1395]]=_0x7246x5;_0x7246xa[_0xa4d4[1396]]=_0x7246x9;}};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1275]]=function(){mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1275]][_0xa4d4[183]](this,arguments);this[_0xa4d4[252]]=this[_0xa4d4[55]](_0xa4d4[1215]);};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1319]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=this[_0xa4d4[724]],_0x7246xa=this[_0xa4d4[55]](_0xa4d4[1319]);_0x7246xa[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]]((_0x7246x2+_0x7246x9[_0xa4d4[1126]])*_0x7246x9[_0xa4d4[255]]));_0x7246xa[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]]((_0x7246x3+_0x7246x9[_0xa4d4[1125]])*_0x7246x9[_0xa4d4[255]]));_0x7246xa[_0xa4d4[57]](_0xa4d4[117],this[_0xa4d4[1239]](_0x7246x4*_0x7246x9[_0xa4d4[255]]));_0x7246xa[_0xa4d4[57]](_0xa4d4[119],this[_0xa4d4[1239]](_0x7246x5*_0x7246x9[_0xa4d4[255]]));this[_0xa4d4[252]]=_0x7246xa;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1320]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[1319]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5);0<_0x7246x9&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1397],this[_0xa4d4[1239]](_0x7246x9*this[_0xa4d4[724]][_0xa4d4[255]]));0<_0x7246xa&&this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1398],this[_0xa4d4[1239]](_0x7246xa*this[_0xa4d4[724]][_0xa4d4[255]]));};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[680]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=this[_0xa4d4[724]],_0x7246xa=this[_0xa4d4[55]](_0xa4d4[680]);_0x7246xa[_0xa4d4[57]](_0xa4d4[1296],Math[_0xa4d4[488]]((_0x7246x2+_0x7246x4/2+_0x7246x9[_0xa4d4[1126]])*_0x7246x9[_0xa4d4[255]]));_0x7246xa[_0xa4d4[57]](_0xa4d4[1297],Math[_0xa4d4[488]]((_0x7246x3+_0x7246x5/2+_0x7246x9[_0xa4d4[1125]])*_0x7246x9[_0xa4d4[255]]));_0x7246xa[_0xa4d4[57]](_0xa4d4[1397],_0x7246x4/2*_0x7246x9[_0xa4d4[255]]);_0x7246xa[_0xa4d4[57]](_0xa4d4[1398],_0x7246x5/2*_0x7246x9[_0xa4d4[255]]);this[_0xa4d4[252]]=_0x7246xa;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[618]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13){_0x7246x9=this[_0xa4d4[1212]][_0xa4d4[1321]](_0x7246x9);_0x7246xa=null!=_0x7246xa?_0x7246xa:!0;_0x7246x12=null!=_0x7246x12?_0x7246x12:!1;_0x7246x13=null!=_0x7246x13?_0x7246x13:!1;var _0x7246x14=this[_0xa4d4[724]];_0x7246x2+=_0x7246x14[_0xa4d4[1126]];_0x7246x3+=_0x7246x14[_0xa4d4[1125]];var _0x7246x15=this[_0xa4d4[55]](_0xa4d4[618]);_0x7246x15[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2*_0x7246x14[_0xa4d4[255]]));_0x7246x15[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3*_0x7246x14[_0xa4d4[255]]));_0x7246x15[_0xa4d4[57]](_0xa4d4[117],this[_0xa4d4[1239]](_0x7246x4*_0x7246x14[_0xa4d4[255]]));_0x7246x15[_0xa4d4[57]](_0xa4d4[119],this[_0xa4d4[1239]](_0x7246x5*_0x7246x14[_0xa4d4[255]]));null==_0x7246x15[_0xa4d4[1399]]?_0x7246x15[_0xa4d4[57]](_0xa4d4[1400],_0x7246x9):_0x7246x15[_0xa4d4[1399]](mxConstants.NS_XLINK,_0xa4d4[44],_0x7246x9);_0x7246xa||_0x7246x15[_0xa4d4[57]](_0xa4d4[1401],_0xa4d4[130]);1>_0x7246x14[_0xa4d4[1244]]&&_0x7246x15[_0xa4d4[57]](_0xa4d4[461],_0x7246x14[_0xa4d4[1244]]);_0x7246x9=this[_0xa4d4[724]][_0xa4d4[535]]||_0xa4d4[110];if(_0x7246x12||_0x7246x13){var _0x7246x16=_0x7246xa=1,_0x7246x17=0,_0x7246x18=0;_0x7246x12&&(_0x7246xa= -1,_0x7246x17=-_0x7246x4-2*_0x7246x2);_0x7246x13&&(_0x7246x16= -1,_0x7246x18=-_0x7246x5-2*_0x7246x3);_0x7246x9+=_0xa4d4[1402]+_0x7246xa+_0xa4d4[537]+_0x7246x16+_0xa4d4[1393]+_0x7246x17+_0xa4d4[537]+_0x7246x18+_0xa4d4[460];};0<_0x7246x9[_0xa4d4[67]]&&_0x7246x15[_0xa4d4[57]](_0xa4d4[535],_0x7246x9);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x15);this[_0xa4d4[1347]]&&(_0x7246x15[_0xa4d4[57]](_0xa4d4[124],_0xa4d4[1403]),_0x7246x15=this[_0xa4d4[55]](_0xa4d4[1319]),_0x7246x15[_0xa4d4[57]](_0xa4d4[187],_0xa4d4[188]),_0x7246x15[_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[1334]),_0x7246x15[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2*_0x7246x14[_0xa4d4[255]])),_0x7246x15[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x3*_0x7246x14[_0xa4d4[255]])),_0x7246x15[_0xa4d4[57]](_0xa4d4[117],this[_0xa4d4[1239]](_0x7246x4*_0x7246x14[_0xa4d4[255]])),_0x7246x15[_0xa4d4[57]](_0xa4d4[119],this[_0xa4d4[1239]](_0x7246x5*_0x7246x14[_0xa4d4[255]])),this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x15));};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1404]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x4=this[_0xa4d4[724]];_0x7246x5=_0xa4d4[1405]+Math[_0xa4d4[488]](_0x7246x4[_0xa4d4[487]])+_0xa4d4[1406]+_0x7246x4[_0xa4d4[486]]+_0xa4d4[1407]+_0x7246x4[_0xa4d4[665]]+_0xa4d4[1408]+Math[_0xa4d4[488]](_0x7246x4[_0xa4d4[487]]*mxConstants[_0xa4d4[490]])+_0xa4d4[1409]+_0x7246x5;(_0x7246x4[_0xa4d4[666]]&mxConstants[_0xa4d4[1410]])==mxConstants[_0xa4d4[1410]]&&(_0x7246x5+=_0xa4d4[1411]);(_0x7246x4[_0xa4d4[666]]&mxConstants[_0xa4d4[1412]])==mxConstants[_0xa4d4[1412]]&&(_0x7246x5+=_0xa4d4[1413]);(_0x7246x4[_0xa4d4[666]]&mxConstants[_0xa4d4[1414]])==mxConstants[_0xa4d4[1414]]&&(_0x7246x5+=_0xa4d4[1415]);_0x7246x3==mxConstants[_0xa4d4[479]]?_0x7246x5+=_0xa4d4[1416]:_0x7246x3==mxConstants[_0xa4d4[480]]&&(_0x7246x5+=_0xa4d4[1417]);_0x7246x3=_0xa4d4[110];null!=_0x7246x4[_0xa4d4[1261]]&&(_0x7246x3+=_0xa4d4[1418]+_0x7246x4[_0xa4d4[1261]]+_0xa4d4[471]);null!=_0x7246x4[_0xa4d4[1263]]&&(_0x7246x3+=_0xa4d4[1419]+_0x7246x4[_0xa4d4[1263]]+_0xa4d4[471]);mxUtils[_0xa4d4[1331]](_0x7246x2)||(_0x7246x4=document[_0xa4d4[55]](_0xa4d4[126]),_0x7246x4[_0xa4d4[339]]=_0x7246x2[_0xa4d4[230]](/&lt;/g,_0xa4d4[1421])[_0xa4d4[230]](/&gt;/g,_0xa4d4[1420])[_0xa4d4[230]](/</g,_0xa4d4[334])[_0xa4d4[230]](/>/g,_0xa4d4[335]),_0x7246x2=_0x7246x4[_0xa4d4[131]],_0x7246x9?_0x7246x5+=_0x7246x3:0<_0x7246x3[_0xa4d4[67]]&&(_0x7246x2=_0xa4d4[1422]+_0x7246x3+_0xa4d4[1423]+_0x7246x2+_0xa4d4[1424]));if(!mxClient[_0xa4d4[80]]&&document[_0xa4d4[509]]){return _0x7246x9=document[_0xa4d4[509]](_0xa4d4[577],_0xa4d4[485]),_0x7246x9[_0xa4d4[57]](_0xa4d4[124],_0x7246x5),mxUtils[_0xa4d4[1331]](_0x7246x2)?this[_0xa4d4[813]][_0xa4d4[295]]!=document?_0x7246x9[_0xa4d4[62]](_0x7246x2[_0xa4d4[511]](!0)):_0x7246x9[_0xa4d4[62]](_0x7246x2):_0x7246x9[_0xa4d4[339]]=_0x7246x2,_0x7246x9};mxUtils[_0xa4d4[1331]](_0x7246x2)&&this[_0xa4d4[813]][_0xa4d4[295]]!=document&&(_0x7246x2=_0x7246x2[_0xa4d4[342]]);_0x7246x2=_0x7246x2[_0xa4d4[230]](/<br>/g,_0xa4d4[1426])[_0xa4d4[230]](/<hr>/g,_0xa4d4[1425]);return mxUtils[_0xa4d4[877]](_0xa4d4[1427]+_0x7246x5+_0xa4d4[1423]+_0x7246x2+_0xa4d4[1424])[_0xa4d4[158]];};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[963]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){if(this[_0xa4d4[1285]]&&null!=_0x7246x9){_0x7246x17=null!=_0x7246x17?_0x7246x17:0;var _0x7246x18=this[_0xa4d4[724]];_0x7246x2+=_0x7246x18[_0xa4d4[1126]];_0x7246x3+=_0x7246x18[_0xa4d4[1125]];if(this[_0xa4d4[1344]]&&_0xa4d4[1428]==_0x7246x14){var _0x7246x19=_0xa4d4[1429];_0x7246x16?(_0x7246x19+=_0xa4d4[1430],0<_0x7246x5&&(_0x7246x19+=_0xa4d4[1431]+Math[_0xa4d4[488]](_0x7246x5)+_0xa4d4[1409]),0<_0x7246x4&&(_0x7246x19+=_0xa4d4[1432]+Math[_0xa4d4[488]](_0x7246x4)+_0xa4d4[1409])):_0x7246x15&&(_0x7246x19+=_0xa4d4[1432]+Math[_0xa4d4[488]](_0x7246x4)+_0xa4d4[1409],0<_0x7246x5&&(_0x7246x19+=_0xa4d4[1431]+Math[_0xa4d4[488]](_0x7246x5)+_0xa4d4[1409]));_0x7246x13?(!_0x7246x16&&0<_0x7246x4&&(_0x7246x19+=_0xa4d4[1432]+Math[_0xa4d4[488]](_0x7246x4)+_0xa4d4[1409]),_0x7246x19+=_0xa4d4[1433]):_0x7246x19+=_0xa4d4[1434];_0x7246x13=this[_0xa4d4[55]](_0xa4d4[449]);1>_0x7246x18[_0xa4d4[1244]]&&_0x7246x13[_0xa4d4[57]](_0xa4d4[461],_0x7246x18[_0xa4d4[1244]]);_0x7246x14=this[_0xa4d4[55]](_0xa4d4[1435]);_0x7246x14[_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[1378]);_0x7246x19=this[_0xa4d4[1404]](_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x19,_0x7246x15);if(null!=_0x7246x19){_0x7246x13[_0xa4d4[62]](_0x7246x14);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x13);var _0x7246x1a=0;if(mxClient[_0xa4d4[80]]&&!mxClient[_0xa4d4[48]]){var _0x7246x1b=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x1b[_0xa4d4[124]][_0xa4d4[103]]=_0x7246x19[_0xa4d4[284]](_0xa4d4[124]);_0x7246x1b[_0xa4d4[124]][_0xa4d4[495]]=mxClient[_0xa4d4[496]]?_0xa4d4[497]:_0xa4d4[498];_0x7246x1b[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];_0x7246x1b[_0xa4d4[339]]=mxUtils[_0xa4d4[1331]](_0x7246x9)?_0x7246x9[_0xa4d4[342]]:_0x7246x9;document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x1b);_0x7246x1a=_0x7246x1b[_0xa4d4[359]];_0x7246x5=mxClient[_0xa4d4[496]]&&0<_0x7246x5&&_0x7246x16?Math[_0xa4d4[243]](_0x7246x5,_0x7246x1b[_0xa4d4[167]]+2):_0x7246x1b[_0xa4d4[167]];_0x7246x1b[_0xa4d4[265]][_0xa4d4[266]](_0x7246x1b);_0x7246x14[_0xa4d4[62]](_0x7246x19);}else {this[_0xa4d4[813]][_0xa4d4[295]]!=document?(_0x7246x19[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x19),_0x7246x1a=_0x7246x19[_0xa4d4[359]],_0x7246x5=_0x7246x19[_0xa4d4[167]],_0x7246x14[_0xa4d4[62]](_0x7246x19),_0x7246x19[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110]):(_0x7246x14[_0xa4d4[62]](_0x7246x19),_0x7246x1a=_0x7246x19[_0xa4d4[359]],_0x7246x5=_0x7246x19[_0xa4d4[167]])};_0x7246x4=_0x7246x15?Math[_0xa4d4[160]](_0x7246x4,_0x7246x1a):_0x7246x1a;1>_0x7246x18[_0xa4d4[1244]]&&_0x7246x13[_0xa4d4[57]](_0xa4d4[461],_0x7246x18[_0xa4d4[1244]]);_0x7246x15=_0x7246x9=0;_0x7246xa==mxConstants[_0xa4d4[479]]?_0x7246x9-=_0x7246x4/2:_0x7246xa==mxConstants[_0xa4d4[480]]&&(_0x7246x9-=_0x7246x4);_0x7246x2+=_0x7246x9;_0x7246x12==mxConstants[_0xa4d4[481]]?_0x7246x15-=_0x7246x5/2:_0x7246x12==mxConstants[_0xa4d4[482]]&&(_0x7246x15-=_0x7246x5);_0x7246x3+=_0x7246x15;_0x7246xa=1!=_0x7246x18[_0xa4d4[255]]?_0xa4d4[1402]+_0x7246x18[_0xa4d4[255]]+_0xa4d4[460]:_0xa4d4[110];0!=_0x7246x18[_0xa4d4[603]]&&this[_0xa4d4[1216]]?(_0x7246xa+=_0xa4d4[1394]+_0x7246x18[_0xa4d4[603]]+_0xa4d4[537]+_0x7246x4/2+_0xa4d4[537]+_0x7246x5/2+_0xa4d4[460],_0x7246x3=this[_0xa4d4[1241]]((_0x7246x2+_0x7246x4/2)*_0x7246x18[_0xa4d4[255]],(_0x7246x3+_0x7246x5/2)*_0x7246x18[_0xa4d4[255]],_0x7246x18[_0xa4d4[603]],_0x7246x18[_0xa4d4[1395]],_0x7246x18[_0xa4d4[1396]]),_0x7246x2=_0x7246x3[_0xa4d4[235]]-_0x7246x4*_0x7246x18[_0xa4d4[255]]/2,_0x7246x3=_0x7246x3[_0xa4d4[236]]-_0x7246x5*_0x7246x18[_0xa4d4[255]]/2):(_0x7246x2*=_0x7246x18[_0xa4d4[255]],_0x7246x3*=_0x7246x18[_0xa4d4[255]]);0!=_0x7246x17&&(_0x7246xa+=_0xa4d4[1394]+_0x7246x17+_0xa4d4[537]+-_0x7246x9+_0xa4d4[537]+-_0x7246x15+_0xa4d4[460]);_0x7246x13[_0xa4d4[57]](_0xa4d4[535],_0xa4d4[536]+Math[_0xa4d4[488]](_0x7246x2)+_0xa4d4[537]+Math[_0xa4d4[488]](_0x7246x3)+_0xa4d4[460]+_0x7246xa);_0x7246x14[_0xa4d4[57]](_0xa4d4[117],Math[_0xa4d4[488]](Math[_0xa4d4[160]](1,_0x7246x4)));_0x7246x14[_0xa4d4[57]](_0xa4d4[119],Math[_0xa4d4[488]](Math[_0xa4d4[160]](1,_0x7246x5)));};}else {this[_0xa4d4[1436]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x15,_0x7246x16,_0x7246x17)};}};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1437]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x2=Math[_0xa4d4[488]](_0x7246x2);_0x7246x3=Math[_0xa4d4[488]](_0x7246x3);_0x7246x4=Math[_0xa4d4[488]](_0x7246x4);_0x7246x5=Math[_0xa4d4[488]](_0x7246x5);for(var _0x7246x9=_0xa4d4[1438]+_0x7246x2+_0xa4d4[213]+_0x7246x3+_0xa4d4[213]+_0x7246x4+_0xa4d4[213]+_0x7246x5,_0x7246xa=0,_0x7246x12=_0x7246x9+_0xa4d4[213]+_0x7246xa;null!=document[_0xa4d4[1362]](_0x7246x12);){_0x7246x12=_0x7246x9+_0xa4d4[213]+ ++_0x7246xa};clip=this[_0xa4d4[55]](_0xa4d4[1439]);clip[_0xa4d4[57]](_0xa4d4[1363],_0x7246x12);_0x7246x9=this[_0xa4d4[55]](_0xa4d4[1319]);_0x7246x9[_0xa4d4[57]](_0xa4d4[235],_0x7246x2);_0x7246x9[_0xa4d4[57]](_0xa4d4[236],_0x7246x3);_0x7246x9[_0xa4d4[57]](_0xa4d4[117],_0x7246x4);_0x7246x9[_0xa4d4[57]](_0xa4d4[119],_0x7246x5);clip[_0xa4d4[62]](_0x7246x9);return clip;};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1436]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16){_0x7246x16=null!=_0x7246x16?_0x7246x16:0;_0x7246x13=this[_0xa4d4[724]];var _0x7246x17=Math[_0xa4d4[488]](_0x7246x13[_0xa4d4[487]]),_0x7246x18=this[_0xa4d4[55]](_0xa4d4[449]),_0x7246x19=_0x7246x13[_0xa4d4[535]]||_0xa4d4[110];0!=_0x7246x16&&(_0x7246x19+=_0xa4d4[1394]+_0x7246x16+_0xa4d4[537]+this[_0xa4d4[1239]](_0x7246x2*_0x7246x13[_0xa4d4[255]])+_0xa4d4[537]+this[_0xa4d4[1239]](_0x7246x3*_0x7246x13[_0xa4d4[255]])+_0xa4d4[460]);if(_0x7246x15&&0<_0x7246x4&&0<_0x7246x5){var _0x7246x1a=_0x7246x2;_0x7246x16=_0x7246x3;_0x7246xa==mxConstants[_0xa4d4[479]]?_0x7246x1a-=_0x7246x4/2:_0x7246xa==mxConstants[_0xa4d4[480]]&&(_0x7246x1a-=_0x7246x4);_0x7246x12==mxConstants[_0xa4d4[481]]?_0x7246x16-=_0x7246x5/2:_0x7246x12==mxConstants[_0xa4d4[482]]&&(_0x7246x16-=_0x7246x5);_0x7246x16=this[_0xa4d4[1437]](_0x7246x1a*_0x7246x13[_0xa4d4[255]]-2,_0x7246x16*_0x7246x13[_0xa4d4[255]]-2,_0x7246x4*_0x7246x13[_0xa4d4[255]]+4,_0x7246x5*_0x7246x13[_0xa4d4[255]]+4);null!=this[_0xa4d4[1340]]?this[_0xa4d4[1340]][_0xa4d4[62]](_0x7246x16):this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x16);_0x7246x18[_0xa4d4[57]](_0xa4d4[1440],_0xa4d4[1380]+_0x7246x16[_0xa4d4[284]](_0xa4d4[1363])+_0xa4d4[460]);};this[_0xa4d4[1441]](_0x7246x18,_0x7246xa);_0x7246x16=_0x7246xa==mxConstants[_0xa4d4[480]]?_0xa4d4[1282]:_0x7246xa==mxConstants[_0xa4d4[479]]?_0xa4d4[554]:_0xa4d4[861];_0xa4d4[861]!=_0x7246x16&&_0x7246x18[_0xa4d4[57]](_0xa4d4[1442],_0x7246x16);(!this[_0xa4d4[1341]]||_0x7246x17!=mxConstants[_0xa4d4[483]])&&_0x7246x18[_0xa4d4[57]](_0xa4d4[1443],Math[_0xa4d4[488]](_0x7246x17*_0x7246x13[_0xa4d4[255]])+_0xa4d4[168]);0<_0x7246x19[_0xa4d4[67]]&&_0x7246x18[_0xa4d4[57]](_0xa4d4[535],_0x7246x19);1>_0x7246x13[_0xa4d4[1244]]&&_0x7246x18[_0xa4d4[57]](_0xa4d4[461],_0x7246x13[_0xa4d4[1244]]);var _0x7246x19=_0x7246x9[_0xa4d4[224]](_0xa4d4[192]),_0x7246x1a=Math[_0xa4d4[488]](_0x7246x17*mxConstants[_0xa4d4[490]]),_0x7246x1b=_0x7246x17+(_0x7246x19[_0xa4d4[67]]-1)*_0x7246x1a;_0x7246x16=_0x7246x3+_0x7246x17-1;_0x7246x12==mxConstants[_0xa4d4[481]]?(_0x7246x5=(this[_0xa4d4[1343]]&&_0x7246x15&&0<_0x7246x5?Math[_0xa4d4[243]](_0x7246x1b,_0x7246x5):_0x7246x1b)/2,_0x7246x16-=_0x7246x5+1):_0x7246x12==mxConstants[_0xa4d4[482]]&&(_0x7246x5=this[_0xa4d4[1343]]&&_0x7246x15&&0<_0x7246x5?Math[_0xa4d4[243]](_0x7246x1b,_0x7246x5):_0x7246x1b,_0x7246x16-=_0x7246x5+2);for(_0x7246x5=0;_0x7246x5<_0x7246x19[_0xa4d4[67]];_0x7246x5++){0<_0x7246x19[_0x7246x5][_0xa4d4[67]]&&0<mxUtils[_0xa4d4[330]](_0x7246x19[_0x7246x5])[_0xa4d4[67]]&&(_0x7246x15=this[_0xa4d4[55]](_0xa4d4[963]),_0x7246x15[_0xa4d4[57]](_0xa4d4[235],this[_0xa4d4[1239]](_0x7246x2*_0x7246x13[_0xa4d4[255]])),_0x7246x15[_0xa4d4[57]](_0xa4d4[236],this[_0xa4d4[1239]](_0x7246x16*_0x7246x13[_0xa4d4[255]])),mxUtils[_0xa4d4[53]](_0x7246x15,_0x7246x19[_0x7246x5]),_0x7246x18[_0xa4d4[62]](_0x7246x15)),_0x7246x16+=_0x7246x1a};this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x18);this[_0xa4d4[1444]](_0x7246x18,_0x7246x9,_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x1b,_0x7246xa,_0x7246x12,_0x7246x14);};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1441]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[724]];_0x7246x2[_0xa4d4[57]](_0xa4d4[1334],_0x7246x3[_0xa4d4[665]]);(!this[_0xa4d4[1341]]||_0x7246x3[_0xa4d4[486]]!=mxConstants[_0xa4d4[484]])&&_0x7246x2[_0xa4d4[57]](_0xa4d4[1445],_0x7246x3[_0xa4d4[486]]);(_0x7246x3[_0xa4d4[666]]&mxConstants[_0xa4d4[1410]])==mxConstants[_0xa4d4[1410]]&&_0x7246x2[_0xa4d4[57]](_0xa4d4[1446],_0xa4d4[1447]);(_0x7246x3[_0xa4d4[666]]&mxConstants[_0xa4d4[1412]])==mxConstants[_0xa4d4[1412]]&&_0x7246x2[_0xa4d4[57]](_0xa4d4[1448],_0xa4d4[1449]);(_0x7246x3[_0xa4d4[666]]&mxConstants[_0xa4d4[1414]])==mxConstants[_0xa4d4[1414]]&&_0x7246x2[_0xa4d4[57]](_0xa4d4[1450],_0xa4d4[355]);};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1444]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){var _0x7246x15=this[_0xa4d4[724]];if(null!=_0x7246x15[_0xa4d4[1261]]||null!=_0x7246x15[_0xa4d4[1263]]){var _0x7246x16=null;_0x7246x14?(_0x7246x12==mxConstants[_0xa4d4[479]]?_0x7246x4-=_0x7246x9/2:_0x7246x12==mxConstants[_0xa4d4[480]]&&(_0x7246x4-=_0x7246x9),_0x7246x13==mxConstants[_0xa4d4[481]]?_0x7246x5-=_0x7246xa/2:_0x7246x13==mxConstants[_0xa4d4[482]]&&(_0x7246x5-=_0x7246xa),_0x7246x16= new mxRectangle((_0x7246x4+1)*_0x7246x15[_0xa4d4[255]],_0x7246x5*_0x7246x15[_0xa4d4[255]],(_0x7246x9-2)*_0x7246x15[_0xa4d4[255]],(_0x7246xa+2)*_0x7246x15[_0xa4d4[255]])):null!=_0x7246x2[_0xa4d4[1451]]&&this[_0xa4d4[813]][_0xa4d4[295]]==document?(_0x7246x16=_0x7246x2[_0xa4d4[1451]](),_0x7246x3=mxClient[_0xa4d4[80]]&&mxClient[_0xa4d4[48]],_0x7246x16= new mxRectangle(_0x7246x16[_0xa4d4[235]],_0x7246x16[_0xa4d4[236]]+(_0x7246x3?0:1),_0x7246x16[_0xa4d4[117]],_0x7246x16[_0xa4d4[119]]+(_0x7246x3?1:0))):(_0x7246x16=document[_0xa4d4[55]](_0xa4d4[485]),_0x7246x16[_0xa4d4[124]][_0xa4d4[489]]=Math[_0xa4d4[488]](_0x7246x15[_0xa4d4[487]]*mxConstants[_0xa4d4[490]])+_0xa4d4[168],_0x7246x16[_0xa4d4[124]][_0xa4d4[487]]=Math[_0xa4d4[488]](_0x7246x15[_0xa4d4[487]])+_0xa4d4[168],_0x7246x16[_0xa4d4[124]][_0xa4d4[486]]=_0x7246x15[_0xa4d4[486]],_0x7246x16[_0xa4d4[124]][_0xa4d4[493]]=_0xa4d4[494],_0x7246x16[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492],_0x7246x16[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],_0x7246x16[_0xa4d4[124]][_0xa4d4[495]]=mxClient[_0xa4d4[496]]?_0xa4d4[497]:_0xa4d4[498],_0x7246x16[_0xa4d4[124]][_0xa4d4[499]]=_0xa4d4[500],(_0x7246x15[_0xa4d4[666]]&mxConstants[_0xa4d4[1410]])==mxConstants[_0xa4d4[1410]]&&(_0x7246x16[_0xa4d4[124]][_0xa4d4[1452]]=_0xa4d4[1447]),(_0x7246x15[_0xa4d4[666]]&mxConstants[_0xa4d4[1412]])==mxConstants[_0xa4d4[1412]]&&(_0x7246x16[_0xa4d4[124]][_0xa4d4[666]]=_0xa4d4[1449]),_0x7246x3=mxUtils[_0xa4d4[321]](_0x7246x3,!1),_0x7246x16[_0xa4d4[339]]=_0x7246x3[_0xa4d4[230]](/\n/g,_0xa4d4[1453]),document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x16),_0x7246x9=_0x7246x16[_0xa4d4[359]],_0x7246xa=_0x7246x16[_0xa4d4[167]],_0x7246x16[_0xa4d4[265]][_0xa4d4[266]](_0x7246x16),_0x7246x12==mxConstants[_0xa4d4[479]]?_0x7246x4-=_0x7246x9/2:_0x7246x12==mxConstants[_0xa4d4[480]]&&(_0x7246x4-=_0x7246x9),_0x7246x13==mxConstants[_0xa4d4[481]]?_0x7246x5-=_0x7246xa/2:_0x7246x13==mxConstants[_0xa4d4[482]]&&(_0x7246x5-=_0x7246xa),_0x7246x16= new mxRectangle((_0x7246x4+1)*_0x7246x15[_0xa4d4[255]],(_0x7246x5+2)*_0x7246x15[_0xa4d4[255]],_0x7246x9*_0x7246x15[_0xa4d4[255]],(_0x7246xa+1)*_0x7246x15[_0xa4d4[255]]));null!=_0x7246x16&&(_0x7246x3=this[_0xa4d4[55]](_0xa4d4[1319]),_0x7246x3[_0xa4d4[57]](_0xa4d4[1334],_0x7246x15[_0xa4d4[1261]]||_0xa4d4[130]),_0x7246x3[_0xa4d4[57]](_0xa4d4[1336],_0x7246x15[_0xa4d4[1263]]||_0xa4d4[130]),_0x7246x3[_0xa4d4[57]](_0xa4d4[235],Math[_0xa4d4[519]](_0x7246x16[_0xa4d4[235]]-1)),_0x7246x3[_0xa4d4[57]](_0xa4d4[236],Math[_0xa4d4[519]](_0x7246x16[_0xa4d4[236]]-1)),_0x7246x3[_0xa4d4[57]](_0xa4d4[117],Math[_0xa4d4[430]](_0x7246x16[_0xa4d4[117]]+2)),_0x7246x3[_0xa4d4[57]](_0xa4d4[119],Math[_0xa4d4[430]](_0x7246x16[_0xa4d4[119]])),_0x7246x15=null!=_0x7246x15[_0xa4d4[1263]]?Math[_0xa4d4[160]](1,this[_0xa4d4[1239]](_0x7246x15[_0xa4d4[255]])):0,_0x7246x3[_0xa4d4[57]](_0xa4d4[1382],_0x7246x15),this[_0xa4d4[813]][_0xa4d4[295]]==document&&1==mxUtils[_0xa4d4[1454]](_0x7246x15,2)&&_0x7246x3[_0xa4d4[57]](_0xa4d4[535],_0xa4d4[1455]),_0x7246x2[_0xa4d4[950]](_0x7246x3,_0x7246x2[_0xa4d4[285]]));};};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1336]]=function(){this[_0xa4d4[1370]](!1,!0)};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1334]]=function(){this[_0xa4d4[1370]](!0,!1)};mxSvgCanvas2D[_0xa4d4[202]][_0xa4d4[1337]]=function(){this[_0xa4d4[1370]](!0,!0)};var mxVmlCanvas2D=function(_0x7246x2){mxAbstractCanvas2D[_0xa4d4[239]](this);this[_0xa4d4[813]]=_0x7246x2;};mxUtils[_0xa4d4[1284]](mxVmlCanvas2D,mxAbstractCanvas2D);mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[252]]=null;mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1285]]= !0;mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1219]]=_0xa4d4[1456];mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1221]]=_0xa4d4[1457];mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1225]]=_0xa4d4[1458];mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1227]]=_0xa4d4[235];mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1459]]=_0xa4d4[110];mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1460]]=1;mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1370]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[252]],_0x7246x5=this[_0xa4d4[724]];if(null!=_0x7246x4){if(_0xa4d4[253]==_0x7246x4[_0xa4d4[301]]){if(null!=this[_0xa4d4[1215]]&&0<this[_0xa4d4[1215]][_0xa4d4[67]]){_0x7246x4[_0xa4d4[1215]]=this[_0xa4d4[1215]][_0xa4d4[234]](_0xa4d4[185])+_0xa4d4[1461],_0x7246x4[_0xa4d4[124]][_0xa4d4[117]]=this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[117]],_0x7246x4[_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[119]],_0x7246x4[_0xa4d4[1462]]=parseInt(_0x7246x4[_0xa4d4[124]][_0xa4d4[117]])+_0xa4d4[185]+parseInt(_0x7246x4[_0xa4d4[124]][_0xa4d4[119]])}else {return }};_0x7246x4[_0xa4d4[1463]]=this[_0xa4d4[1239]](Math[_0xa4d4[160]](1,_0x7246x5[_0xa4d4[610]]*_0x7246x5[_0xa4d4[255]]/this[_0xa4d4[1460]]))+_0xa4d4[168];_0x7246x5[_0xa4d4[639]]&&this[_0xa4d4[813]][_0xa4d4[62]](this[_0xa4d4[1375]](_0x7246x4,_0x7246x2&&null!=_0x7246x5[_0xa4d4[604]],_0x7246x3&&null!=_0x7246x5[_0xa4d4[608]]));_0x7246x3&&null!=_0x7246x5[_0xa4d4[608]]?(_0x7246x4[_0xa4d4[1464]]=_0xa4d4[128],_0x7246x4[_0xa4d4[1306]]=_0x7246x5[_0xa4d4[608]]):_0x7246x4[_0xa4d4[1464]]=_0xa4d4[308];_0x7246x4[_0xa4d4[62]](this[_0xa4d4[1465]]());_0x7246x2&&null!=_0x7246x5[_0xa4d4[604]]?_0x7246x4[_0xa4d4[62]](this[_0xa4d4[1466]]()):this[_0xa4d4[1229]]&&(_0xa4d4[253]!=_0x7246x4[_0xa4d4[301]]||this[_0xa4d4[1215]][this[_0xa4d4[1215]][_0xa4d4[67]]-1]==this[_0xa4d4[1227]])?_0x7246x4[_0xa4d4[62]](this[_0xa4d4[1467]]()):_0x7246x4[_0xa4d4[1468]]=_0xa4d4[308];this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x4);};};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1467]]=function(){var _0x7246x2=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1469]);_0x7246x2[_0xa4d4[390]]=mxClient[_0xa4d4[88]]+_0xa4d4[1470];_0x7246x2[_0xa4d4[60]]=_0xa4d4[1471];return _0x7246x2;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1466]]=function(){var _0x7246x2=this[_0xa4d4[724]],_0x7246x3=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1469]);_0x7246x3[_0xa4d4[352]]=_0x7246x2[_0xa4d4[604]];if(null!=_0x7246x2[_0xa4d4[606]]){_0x7246x3[_0xa4d4[60]]=_0xa4d4[1299];_0x7246x3[_0xa4d4[865]]=_0xa4d4[130];_0x7246x3[_0xa4d4[1472]]=_0x7246x2[_0xa4d4[606]];var _0x7246x4=180-_0x7246x2[_0xa4d4[603]],_0x7246x4=_0x7246x2[_0xa4d4[607]]==mxConstants[_0xa4d4[1359]]?_0x7246x4-(90+(_0xa4d4[235]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]?180:0)):_0x7246x2[_0xa4d4[607]]==mxConstants[_0xa4d4[1356]]?_0x7246x4+(90+(_0xa4d4[235]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]?180:0)):_0x7246x2[_0xa4d4[607]]==mxConstants[_0xa4d4[1358]]?_0x7246x4-(180+(_0xa4d4[236]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]?-180:0)):_0x7246x4+(_0xa4d4[236]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]?-180:0);if(_0xa4d4[235]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]||_0xa4d4[236]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]){_0x7246x4*= -1};_0x7246x3[_0xa4d4[1474]]=mxUtils[_0xa4d4[1454]](_0x7246x4,360);_0x7246x3[_0xa4d4[461]]=100*_0x7246x2[_0xa4d4[1244]]*_0x7246x2[_0xa4d4[1247]]+_0xa4d4[229];_0x7246x3[_0xa4d4[57]](mxClient[_0xa4d4[1475]]+_0xa4d4[1476],100*_0x7246x2[_0xa4d4[1244]]*_0x7246x2[_0xa4d4[1248]]+_0xa4d4[229]);}else {1>_0x7246x2[_0xa4d4[1244]]&&(_0x7246x3[_0xa4d4[461]]=100*_0x7246x2[_0xa4d4[1244]]+_0xa4d4[229])};return _0x7246x3;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1465]]=function(){var _0x7246x2=this[_0xa4d4[724]],_0x7246x3=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1477]);_0x7246x3[_0xa4d4[1478]]=_0x7246x2[_0xa4d4[1254]]||_0xa4d4[1232];_0x7246x3[_0xa4d4[1479]]=_0x7246x2[_0xa4d4[1256]]||_0xa4d4[1233];_0x7246x3[_0xa4d4[1313]]=_0x7246x2[_0xa4d4[1258]]||_0xa4d4[1480];1>_0x7246x2[_0xa4d4[1244]]&&(_0x7246x3[_0xa4d4[461]]=100*_0x7246x2[_0xa4d4[1244]]+_0xa4d4[229]);_0x7246x2[_0xa4d4[648]]&&(_0x7246x3[_0xa4d4[1481]]=this[_0xa4d4[1482]]());return _0x7246x3;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1482]]=function(){var _0x7246x2=_0xa4d4[1483];if(null!=this[_0xa4d4[724]][_0xa4d4[649]]){var _0x7246x3=this[_0xa4d4[724]][_0xa4d4[649]][_0xa4d4[224]](_0xa4d4[185]);0<_0x7246x3[_0xa4d4[67]]&&1==_0x7246x3[0]&&(_0x7246x2=_0xa4d4[1484]);};return _0x7246x2;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1375]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[724]],_0x7246x9=-_0x7246x5[_0xa4d4[603]]*(Math[_0xa4d4[424]]/180),_0x7246xa=Math[_0xa4d4[426]](_0x7246x9),_0x7246x9=Math[_0xa4d4[427]](_0x7246x9),_0x7246x12=_0x7246x5[_0xa4d4[1273]]*_0x7246x5[_0xa4d4[255]],_0x7246x13=_0x7246x5[_0xa4d4[1274]]*_0x7246x5[_0xa4d4[255]];_0xa4d4[235]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]?_0x7246x12*= -1:_0xa4d4[236]==this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]&&(_0x7246x13*= -1);var _0x7246x14=_0x7246x2[_0xa4d4[511]](!0);_0x7246x14[_0xa4d4[124]][_0xa4d4[945]]=Math[_0xa4d4[488]](_0x7246x12*_0x7246xa-_0x7246x13*_0x7246x9)+_0xa4d4[168];_0x7246x14[_0xa4d4[124]][_0xa4d4[953]]=Math[_0xa4d4[488]](_0x7246x12*_0x7246x9+_0x7246x13*_0x7246xa)+_0xa4d4[168];8==document[_0xa4d4[5]]&&(_0x7246x14[_0xa4d4[1463]]=_0x7246x2[_0xa4d4[1463]],_0xa4d4[253]==_0x7246x2[_0xa4d4[301]]&&(_0x7246x14[_0xa4d4[1215]]=this[_0xa4d4[1215]][_0xa4d4[234]](_0xa4d4[185])+_0xa4d4[1461],_0x7246x14[_0xa4d4[124]][_0xa4d4[117]]=this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[117]],_0x7246x14[_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[119]],_0x7246x14[_0xa4d4[1462]]=parseInt(_0x7246x2[_0xa4d4[124]][_0xa4d4[117]])+_0xa4d4[185]+parseInt(_0x7246x2[_0xa4d4[124]][_0xa4d4[119]])));_0x7246x4?(_0x7246x14[_0xa4d4[1306]]=_0x7246x5[_0xa4d4[1269]],_0x7246x14[_0xa4d4[62]](this[_0xa4d4[1485]]())):_0x7246x14[_0xa4d4[1464]]=_0xa4d4[308];_0x7246x3?_0x7246x14[_0xa4d4[62]](this[_0xa4d4[1486]]()):_0x7246x14[_0xa4d4[1468]]=_0xa4d4[308];return _0x7246x14;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1486]]=function(){var _0x7246x2=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1469]);_0x7246x2[_0xa4d4[352]]=this[_0xa4d4[724]][_0xa4d4[1269]];_0x7246x2[_0xa4d4[461]]=100*this[_0xa4d4[724]][_0xa4d4[1244]]*this[_0xa4d4[724]][_0xa4d4[1271]]+_0xa4d4[229];return _0x7246x2;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1485]]=function(){var _0x7246x2=this[_0xa4d4[1465]]();_0x7246x2[_0xa4d4[461]]=100*this[_0xa4d4[724]][_0xa4d4[1244]]*this[_0xa4d4[724]][_0xa4d4[1271]]+_0xa4d4[229];return _0x7246x2;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1294]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x3&&_0x7246x4?_0x7246x2+=180:_0x7246x3?this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]=_0xa4d4[235]:_0x7246x4&&(this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[1473]]=_0xa4d4[236]);if(_0x7246x3?!_0x7246x4:_0x7246x4){_0x7246x2*= -1};this[_0xa4d4[813]][_0xa4d4[124]][_0xa4d4[603]]=_0x7246x2;this[_0xa4d4[724]][_0xa4d4[603]]+=_0x7246x2;this[_0xa4d4[724]][_0xa4d4[1395]]=_0x7246x5;this[_0xa4d4[724]][_0xa4d4[1396]]=_0x7246x9;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1275]]=function(){mxAbstractCanvas2D[_0xa4d4[202]][_0xa4d4[1275]][_0xa4d4[183]](this,arguments);this[_0xa4d4[252]]=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1487]);this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1278]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=this[_0xa4d4[724]],_0x7246xa=(this[_0xa4d4[1217]]+_0x7246x9[_0xa4d4[1126]])*_0x7246x9[_0xa4d4[255]],_0x7246x12=(this[_0xa4d4[1218]]+_0x7246x9[_0xa4d4[1125]])*_0x7246x9[_0xa4d4[255]];_0x7246x2=(_0x7246x2+_0x7246x9[_0xa4d4[1126]])*_0x7246x9[_0xa4d4[255]];_0x7246x3=(_0x7246x3+_0x7246x9[_0xa4d4[1125]])*_0x7246x9[_0xa4d4[255]];_0x7246x4=(_0x7246x4+_0x7246x9[_0xa4d4[1126]])*_0x7246x9[_0xa4d4[255]];_0x7246x5=(_0x7246x5+_0x7246x9[_0xa4d4[1125]])*_0x7246x9[_0xa4d4[255]];var _0x7246x12=_0x7246x12+2/3*(_0x7246x3-_0x7246x12),_0x7246x13=_0x7246x4+2/3*(_0x7246x2-_0x7246x4);_0x7246x3=_0x7246x5+2/3*(_0x7246x3-_0x7246x5);this[_0xa4d4[1215]][_0xa4d4[207]](_0xa4d4[1488]+this[_0xa4d4[1239]](_0x7246xa+2/3*(_0x7246x2-_0x7246xa))+_0xa4d4[185]+this[_0xa4d4[1239]](_0x7246x12)+_0xa4d4[185]+this[_0xa4d4[1239]](_0x7246x13)+_0xa4d4[185]+this[_0xa4d4[1239]](_0x7246x3)+_0xa4d4[185]+this[_0xa4d4[1239]](_0x7246x4)+_0xa4d4[185]+this[_0xa4d4[1239]](_0x7246x5));this[_0xa4d4[1217]]=_0x7246x4/_0x7246x9[_0xa4d4[255]]-_0x7246x9[_0xa4d4[1126]];this[_0xa4d4[1218]]=_0x7246x5/_0x7246x9[_0xa4d4[255]]-_0x7246x9[_0xa4d4[1125]];};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1489]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=this[_0xa4d4[724]];_0x7246x2=document[_0xa4d4[55]](_0x7246x2);_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x2[_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[1239]]((_0x7246x3+_0x7246xa[_0xa4d4[1126]])*_0x7246xa[_0xa4d4[255]])+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[1239]]((_0x7246x4+_0x7246xa[_0xa4d4[1125]])*_0x7246xa[_0xa4d4[255]])+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[117]]=this[_0xa4d4[1239]](_0x7246x5*_0x7246xa[_0xa4d4[255]])+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[1239]](_0x7246x9*_0x7246xa[_0xa4d4[255]])+_0xa4d4[168];return _0x7246x2;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1319]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[252]]=this[_0xa4d4[1489]](mxClient[_0xa4d4[463]]+_0xa4d4[1490],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5)};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1320]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[252]]=this[_0xa4d4[1489]](mxClient[_0xa4d4[463]]+_0xa4d4[1491],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5);this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1492],Math[_0xa4d4[160]](100*_0x7246x9/_0x7246x4,100*_0x7246xa/_0x7246x5)+_0xa4d4[229]);};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[680]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[252]]=this[_0xa4d4[1489]](mxClient[_0xa4d4[463]]+_0xa4d4[1493],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5)};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[618]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13){var _0x7246x14=null;_0x7246xa?(_0x7246x14=this[_0xa4d4[1489]](mxClient[_0xa4d4[463]]+_0xa4d4[1490],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5),_0x7246x14[_0xa4d4[1464]]=_0xa4d4[308],_0x7246x2=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1469]),_0x7246x2[_0xa4d4[1322]]=_0x7246xa?_0xa4d4[1494]:_0xa4d4[1495],_0x7246x2[_0xa4d4[1294]]=_0xa4d4[128],_0x7246x2[_0xa4d4[60]]=_0xa4d4[1496],_0x7246x2[_0xa4d4[390]]=_0x7246x9,_0x7246x14[_0xa4d4[62]](_0x7246x2)):(_0x7246x14=this[_0xa4d4[1489]](mxClient[_0xa4d4[463]]+_0xa4d4[464],_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5),_0x7246x14[_0xa4d4[390]]=_0x7246x9);_0x7246x12&&_0x7246x13?_0x7246x14[_0xa4d4[124]][_0xa4d4[603]]=_0xa4d4[1497]:_0x7246x12?_0x7246x14[_0xa4d4[124]][_0xa4d4[1473]]=_0xa4d4[235]:_0x7246x13&&(_0x7246x14[_0xa4d4[124]][_0xa4d4[1473]]=_0xa4d4[236]);1>this[_0xa4d4[724]][_0xa4d4[1244]]&&(_0x7246x14[_0xa4d4[124]][_0xa4d4[347]]+=_0xa4d4[459]+100*this[_0xa4d4[724]][_0xa4d4[1244]]+_0xa4d4[460]);this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x14);};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1404]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x4=document[_0xa4d4[55]](_0xa4d4[485]);var _0x7246x9=this[_0xa4d4[724]],_0x7246xa=_0xa4d4[110];null!=_0x7246x9[_0xa4d4[1261]]&&(_0x7246xa+=_0xa4d4[1418]+_0x7246x9[_0xa4d4[1261]]+_0xa4d4[471]);null!=_0x7246x9[_0xa4d4[1263]]&&(_0x7246xa+=_0xa4d4[1419]+_0x7246x9[_0xa4d4[1263]]+_0xa4d4[471]);mxUtils[_0xa4d4[1331]](_0x7246x2)?_0x7246x4[_0xa4d4[62]](_0x7246x2):0<_0x7246xa[_0xa4d4[67]]&&!_0x7246x5?(_0x7246x5=document[_0xa4d4[55]](_0xa4d4[485]),_0x7246x5[_0xa4d4[124]][_0xa4d4[103]]=_0x7246xa,_0x7246x5[_0xa4d4[124]][_0xa4d4[495]]=mxClient[_0xa4d4[496]]?_0xa4d4[497]:_0xa4d4[498],_0x7246x5[_0xa4d4[124]][_0xa4d4[499]]=_0xa4d4[500],_0x7246x5[_0xa4d4[339]]=_0x7246x2,_0x7246x4[_0xa4d4[62]](_0x7246x5)):(_0x7246x4[_0xa4d4[124]][_0xa4d4[103]]=_0x7246xa,_0x7246x4[_0xa4d4[339]]=_0x7246x2);_0x7246x2=_0x7246x4[_0xa4d4[124]];_0x7246x2[_0xa4d4[487]]=Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[487]]/this[_0xa4d4[1460]])+_0xa4d4[168];_0x7246x2[_0xa4d4[486]]=_0x7246x9[_0xa4d4[486]];_0x7246x2[_0xa4d4[352]]=_0x7246x9[_0xa4d4[665]];_0x7246x2[_0xa4d4[123]]=_0xa4d4[125];_0x7246x2[_0xa4d4[1165]]=_0x7246x3||_0xa4d4[361];_0x7246x2[_0xa4d4[489]]=Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[487]]*mxConstants[_0xa4d4[490]]/this[_0xa4d4[1460]])+_0xa4d4[168];(_0x7246x9[_0xa4d4[666]]&mxConstants[_0xa4d4[1410]])==mxConstants[_0xa4d4[1410]]&&(_0x7246x2[_0xa4d4[1452]]=_0xa4d4[1447]);(_0x7246x9[_0xa4d4[666]]&mxConstants[_0xa4d4[1412]])==mxConstants[_0xa4d4[1412]]&&(_0x7246x2[_0xa4d4[666]]=_0xa4d4[1449]);(_0x7246x9[_0xa4d4[666]]&mxConstants[_0xa4d4[1414]])==mxConstants[_0xa4d4[1414]]&&(_0x7246x2[_0xa4d4[1498]]=_0xa4d4[355]);return _0x7246x4;};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[963]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){if(this[_0xa4d4[1285]]&&null!=_0x7246x9){var _0x7246x18=this[_0xa4d4[724]];if(_0xa4d4[1428]==_0x7246x14){null!=_0x7246x18[_0xa4d4[603]]&&(_0x7246x3=this[_0xa4d4[1241]](_0x7246x2,_0x7246x3,_0x7246x18[_0xa4d4[603]],_0x7246x18[_0xa4d4[1395]],_0x7246x18[_0xa4d4[1396]]),_0x7246x2=_0x7246x3[_0xa4d4[235]],_0x7246x3=_0x7246x3[_0xa4d4[236]]);8==document[_0xa4d4[5]]?(_0x7246x2+=_0x7246x18[_0xa4d4[1126]],_0x7246x3+=_0x7246x18[_0xa4d4[1125]]):(_0x7246x2*=_0x7246x18[_0xa4d4[255]],_0x7246x3*=_0x7246x18[_0xa4d4[255]]);_0x7246x14=8==document[_0xa4d4[5]]?document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1499]):document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x14[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x14[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497];_0x7246x14[_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[1239]](_0x7246x2)+_0xa4d4[168];_0x7246x14[_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[1239]](_0x7246x3)+_0xa4d4[168];_0x7246x14[_0xa4d4[124]][_0xa4d4[499]]=_0x7246x18[_0xa4d4[255]];var _0x7246x19=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x19[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[1500];_0x7246x19[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497];var _0x7246x1a=mxUtils[_0xa4d4[1501]](_0x7246xa,_0x7246x12),_0x7246x1b=_0x7246x1a[_0xa4d4[235]],_0x7246x1a=_0x7246x1a[_0xa4d4[236]];_0x7246x9=this[_0xa4d4[1404]](_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x15);_0x7246xa=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x13?(!_0x7246x16&&0<_0x7246x4&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[488]](_0x7246x4)+_0xa4d4[168]),_0x7246x9[_0xa4d4[124]][_0xa4d4[493]]=_0xa4d4[1502]):_0x7246x9[_0xa4d4[124]][_0xa4d4[493]]=_0xa4d4[494];_0x7246x13=_0x7246x18[_0xa4d4[603]]+(_0x7246x17||0);this[_0xa4d4[1216]]&&0!=_0x7246x13?(_0x7246xa[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497],_0x7246xa[_0xa4d4[124]][_0xa4d4[499]]=_0xa4d4[500],_0x7246xa[_0xa4d4[62]](_0x7246x9),8==document[_0xa4d4[5]]&&_0xa4d4[529]!=this[_0xa4d4[813]][_0xa4d4[301]]?(_0x7246x19[_0xa4d4[62]](_0x7246xa),_0x7246x14[_0xa4d4[62]](_0x7246x19)):_0x7246x14[_0xa4d4[62]](_0x7246xa)):8==document[_0xa4d4[5]]?(_0x7246x19[_0xa4d4[62]](_0x7246x9),_0x7246x14[_0xa4d4[62]](_0x7246x19)):(_0x7246x9[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497],_0x7246x14[_0xa4d4[62]](_0x7246x9));_0xa4d4[529]!=this[_0xa4d4[813]][_0xa4d4[301]]?(_0x7246x17=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1490]),_0x7246x17[_0xa4d4[1464]]=_0xa4d4[308],_0x7246x17[_0xa4d4[1468]]=_0xa4d4[308],_0x7246x17[_0xa4d4[62]](_0x7246x14),this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x17)):this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x14);_0x7246x16?(_0x7246x9[_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[188],0<_0x7246x4&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[488]](_0x7246x4)+_0xa4d4[168]),0<_0x7246x5&&8==document[_0xa4d4[5]]&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[1503]]=Math[_0xa4d4[488]](_0x7246x5)+_0xa4d4[168])):_0x7246x15&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[117]]=_0x7246x4+_0xa4d4[168],0<_0x7246x5&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[1503]]=Math[_0xa4d4[488]](_0x7246x5)+_0xa4d4[168]));if(this[_0xa4d4[1216]]&&0!=_0x7246x13){_0x7246x4=_0x7246x13*(Math[_0xa4d4[424]]/180);_0x7246x13=parseFloat(parseFloat(Math[_0xa4d4[426]](_0x7246x4))[_0xa4d4[1293]](8));_0x7246x17=parseFloat(parseFloat(Math[_0xa4d4[427]](-_0x7246x4))[_0xa4d4[1293]](8));_0x7246x4%=2*Math[_0xa4d4[424]];0>_0x7246x4&&(_0x7246x4+=2*Math[_0xa4d4[424]]);_0x7246x4%=Math[_0xa4d4[424]];_0x7246x4>Math[_0xa4d4[424]]/2&&(_0x7246x4=Math[_0xa4d4[424]]-_0x7246x4);_0x7246x12=Math[_0xa4d4[426]](_0x7246x4);var _0x7246x1c=Math[_0xa4d4[427]](_0x7246x4);8==document[_0xa4d4[5]]&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[498],_0x7246xa[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[498],_0x7246x19[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[498]);_0x7246x9[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x9);_0x7246x4=_0x7246x9[_0xa4d4[359]];_0x7246x19=_0x7246x9[_0xa4d4[167]];if(mxClient[_0xa4d4[496]]&&(_0x7246x16||_0x7246x15)&&_0x7246x19>_0x7246x5){_0x7246x19=_0x7246x5,_0x7246x9[_0xa4d4[124]][_0xa4d4[119]]=_0x7246x19+_0xa4d4[168]};_0x7246x5=_0x7246x19;_0x7246x16=(_0x7246x5-_0x7246x5*_0x7246x12+_0x7246x4* -_0x7246x1c)/2-_0x7246x17*_0x7246x4*(_0x7246x1b+0.5)+_0x7246x13*_0x7246x5*(_0x7246x1a+0.5);_0x7246x15=(_0x7246x4-_0x7246x4*_0x7246x12+_0x7246x5* -_0x7246x1c)/2+_0x7246x13*_0x7246x4*(_0x7246x1b+0.5)+_0x7246x17*_0x7246x5*(_0x7246x1a+0.5);_0xa4d4[1504]==_0x7246x14[_0xa4d4[301]]&&_0xa4d4[529]==this[_0xa4d4[813]][_0xa4d4[301]]?(_0x7246x1b=document[_0xa4d4[55]](_0xa4d4[485]),_0x7246x1b[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[498],_0x7246x1b[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492],_0x7246x1b[_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[1239]](_0x7246x2+(_0x7246x15-_0x7246x4/2)*_0x7246x18[_0xa4d4[255]])+_0xa4d4[168],_0x7246x1b[_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[1239]](_0x7246x3+(_0x7246x16-_0x7246x5/2)*_0x7246x18[_0xa4d4[255]])+_0xa4d4[168],_0x7246x14[_0xa4d4[265]][_0xa4d4[62]](_0x7246x1b),_0x7246x1b[_0xa4d4[62]](_0x7246x14)):(_0x7246x18=8==document[_0xa4d4[5]]?1:_0x7246x18[_0xa4d4[255]],_0x7246x14[_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[1239]](_0x7246x2+(_0x7246x15-_0x7246x4/2)*_0x7246x18)+_0xa4d4[168],_0x7246x14[_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[1239]](_0x7246x3+(_0x7246x16-_0x7246x5/2)*_0x7246x18)+_0xa4d4[168]);_0x7246xa[_0xa4d4[124]][_0xa4d4[347]]=_0xa4d4[1505]+_0x7246x13+_0xa4d4[1506]+_0x7246x17+_0xa4d4[1507]+-_0x7246x17+_0xa4d4[1508]+_0x7246x13+_0xa4d4[1509];_0x7246xa[_0xa4d4[124]][_0xa4d4[1028]]=this[_0xa4d4[1459]];1>this[_0xa4d4[724]][_0xa4d4[1244]]&&(_0x7246xa[_0xa4d4[124]][_0xa4d4[347]]+=_0xa4d4[459]+100*this[_0xa4d4[724]][_0xa4d4[1244]]+_0xa4d4[460]);_0x7246x9[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110];_0x7246xa[_0xa4d4[62]](_0x7246x9);}else {8!=document[_0xa4d4[5]]?(_0x7246x9[_0xa4d4[124]][_0xa4d4[123]]=_0xa4d4[125],1>this[_0xa4d4[724]][_0xa4d4[1244]]&&(_0x7246x14[_0xa4d4[124]][_0xa4d4[347]]=_0xa4d4[459]+100*this[_0xa4d4[724]][_0xa4d4[1244]]+_0xa4d4[460]),_0x7246x18=_0x7246x9[_0xa4d4[265]],_0x7246x9[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x9),_0x7246x4=_0x7246x9[_0xa4d4[359]],_0x7246x19=_0x7246x9[_0xa4d4[167]],mxClient[_0xa4d4[496]]&&(_0x7246x16&&_0x7246x19>_0x7246x5)&&(_0x7246x19=_0x7246x5,_0x7246x9[_0xa4d4[124]][_0xa4d4[119]]=_0x7246x19+_0xa4d4[168]),_0x7246x5=_0x7246x19,_0x7246x9[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110],_0x7246x18[_0xa4d4[62]](_0x7246x9),_0x7246x14[_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[1239]](_0x7246x2+_0x7246x4*_0x7246x1b*this[_0xa4d4[724]][_0xa4d4[255]])+_0xa4d4[168],_0x7246x14[_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[1239]](_0x7246x3+_0x7246x5*_0x7246x1a*this[_0xa4d4[724]][_0xa4d4[255]])+_0xa4d4[168]):(1>this[_0xa4d4[724]][_0xa4d4[1244]]&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[347]]=_0xa4d4[459]+100*this[_0xa4d4[724]][_0xa4d4[1244]]+_0xa4d4[460]),_0x7246x19[_0xa4d4[124]][_0xa4d4[361]]=100*_0x7246x1b+_0xa4d4[229],_0x7246x19[_0xa4d4[124]][_0xa4d4[125]]=100*_0x7246x1a+_0xa4d4[229])};}else {this[_0xa4d4[1436]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,mxUtils[_0xa4d4[321]](_0x7246x9,!1),_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17)};}};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1436]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){_0x7246x5=this[_0xa4d4[724]];_0x7246x2=(_0x7246x2+_0x7246x5[_0xa4d4[1126]])*_0x7246x5[_0xa4d4[255]];_0x7246x3=(_0x7246x3+_0x7246x5[_0xa4d4[1125]])*_0x7246x5[_0xa4d4[255]];_0x7246x4=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1487]);_0x7246x4[_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[942];_0x7246x4[_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[942];_0x7246x4[_0xa4d4[1464]]=_0xa4d4[308];_0x7246x15=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1469]);_0x7246x15[_0xa4d4[352]]=_0x7246x5[_0xa4d4[665]];_0x7246x15[_0xa4d4[461]]=100*_0x7246x5[_0xa4d4[1244]]+_0xa4d4[229];_0x7246x4[_0xa4d4[62]](_0x7246x15);_0x7246x15=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1510]);_0x7246x15[_0xa4d4[1511]]=_0xa4d4[128];_0x7246x15[_0xa4d4[6]]=_0xa4d4[1512]+this[_0xa4d4[1239]](0)+_0xa4d4[185]+this[_0xa4d4[1239]](0)+_0xa4d4[1513]+this[_0xa4d4[1239]](1)+_0xa4d4[185]+this[_0xa4d4[1239]](0);_0x7246x4[_0xa4d4[62]](_0x7246x15);_0x7246x15=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1514]);_0x7246x15[_0xa4d4[124]][_0xa4d4[103]]=_0xa4d4[1515]+_0x7246xa;_0x7246x15[_0xa4d4[124]][_0xa4d4[611]]=_0x7246xa;_0x7246x15[_0xa4d4[124]][_0xa4d4[486]]=_0x7246x5[_0xa4d4[486]];_0x7246x15[_0xa4d4[1516]]=_0x7246x9;_0x7246x15[_0xa4d4[747]]=_0xa4d4[128];_0x7246xa=Math[_0xa4d4[488]](_0x7246x5[_0xa4d4[487]]*_0x7246x5[_0xa4d4[255]]/this[_0xa4d4[1460]]);_0x7246x15[_0xa4d4[124]][_0xa4d4[487]]=_0x7246xa+_0xa4d4[168];(_0x7246x5[_0xa4d4[666]]&mxConstants[_0xa4d4[1410]])==mxConstants[_0xa4d4[1410]]&&(_0x7246x15[_0xa4d4[124]][_0xa4d4[1452]]=_0xa4d4[1447]);(_0x7246x5[_0xa4d4[666]]&mxConstants[_0xa4d4[1412]])==mxConstants[_0xa4d4[1412]]&&(_0x7246x15[_0xa4d4[124]][_0xa4d4[666]]=_0xa4d4[1449]);(_0x7246x5[_0xa4d4[666]]&mxConstants[_0xa4d4[1414]])==mxConstants[_0xa4d4[1414]]&&(_0x7246x15[_0xa4d4[124]][_0xa4d4[354]]=_0xa4d4[355]);_0x7246x9=_0x7246x9[_0xa4d4[224]](_0xa4d4[192]);_0x7246x5=_0x7246xa+(_0x7246x9[_0xa4d4[67]]-1)*_0x7246xa*mxConstants[_0xa4d4[490]];_0x7246xa=_0x7246x9=0;_0x7246x12==mxConstants[_0xa4d4[482]]?_0x7246xa=-_0x7246x5/2:_0x7246x12!=mxConstants[_0xa4d4[481]]&&(_0x7246xa=_0x7246x5/2);null!=_0x7246x17&&(_0x7246x4[_0xa4d4[124]][_0xa4d4[603]]=_0x7246x17,_0x7246x12=_0x7246x17*(Math[_0xa4d4[424]]/180),_0x7246x9=Math[_0xa4d4[427]](_0x7246x12)*_0x7246xa,_0x7246xa*=Math[_0xa4d4[426]](_0x7246x12));_0x7246x4[_0xa4d4[62]](_0x7246x15);_0x7246x4[_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[1239]](_0x7246x2-_0x7246x9)+_0xa4d4[168];_0x7246x4[_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[1239]](_0x7246x3+_0x7246xa)+_0xa4d4[168];this[_0xa4d4[813]][_0xa4d4[62]](_0x7246x4);};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1336]]=function(){this[_0xa4d4[1370]](!1,!0)};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1334]]=function(){this[_0xa4d4[1370]](!0,!1)};mxVmlCanvas2D[_0xa4d4[202]][_0xa4d4[1337]]=function(){this[_0xa4d4[1370]](!0,!0)};function mxGuide(_0x7246x2,_0x7246x3){this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[1517]](_0x7246x3);}mxGuide[_0xa4d4[202]][_0xa4d4[1179]]=null;mxGuide[_0xa4d4[202]][_0xa4d4[1214]]=null;mxGuide[_0xa4d4[202]][_0xa4d4[662]]= !0;mxGuide[_0xa4d4[202]][_0xa4d4[704]]= !0;mxGuide[_0xa4d4[202]][_0xa4d4[1518]]=null;mxGuide[_0xa4d4[202]][_0xa4d4[1519]]=null;mxGuide[_0xa4d4[202]][_0xa4d4[1517]]=function(_0x7246x2){this[_0xa4d4[1214]]=_0x7246x2};mxGuide[_0xa4d4[202]][_0xa4d4[1019]]=function(_0x7246x2){return !0};mxGuide[_0xa4d4[202]][_0xa4d4[1520]]=function(){return this[_0xa4d4[1179]][_0xa4d4[1020]]*this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]]/2};mxGuide[_0xa4d4[202]][_0xa4d4[1521]]=function(_0x7246x2){_0x7246x2= new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);_0x7246x2[_0xa4d4[1522]]= !0;return _0x7246x2;};mxGuide[_0xa4d4[202]][_0xa4d4[582]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(null!=this[_0xa4d4[1214]]&&(this[_0xa4d4[662]]||this[_0xa4d4[704]])&&null!=_0x7246x2&&null!=_0x7246x3){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[513]],_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246xa=_0x7246x3[_0xa4d4[235]],_0x7246x12=_0x7246x3[_0xa4d4[236]],_0x7246x13=!1,_0x7246x14=!1,_0x7246x15=this[_0xa4d4[1520]](),_0x7246x16=_0x7246x15,_0x7246x17=_0x7246x15,_0x7246x15=_0x7246x2[_0xa4d4[238]]();_0x7246x15[_0xa4d4[235]]+=_0x7246x3[_0xa4d4[235]];_0x7246x15[_0xa4d4[236]]+=_0x7246x3[_0xa4d4[236]];var _0x7246x18=_0x7246x15[_0xa4d4[235]],_0x7246x19=_0x7246x15[_0xa4d4[235]]+_0x7246x15[_0xa4d4[117]],_0x7246x1a=_0x7246x15[_0xa4d4[241]](),_0x7246x1b=_0x7246x15[_0xa4d4[236]],_0x7246x1c=_0x7246x15[_0xa4d4[236]]+_0x7246x15[_0xa4d4[119]],_0x7246x1d=_0x7246x15[_0xa4d4[242]]();_0x7246x3=function(_0x7246x3){_0x7246x3+=this[_0xa4d4[1179]][_0xa4d4[1136]];var _0x7246x4=!1;Math[_0xa4d4[425]](_0x7246x3-_0x7246x1a)<_0x7246x16?(_0x7246xa=_0x7246x3-_0x7246x2[_0xa4d4[241]](),_0x7246x16=Math[_0xa4d4[425]](_0x7246x3-_0x7246x1a),_0x7246x4= !0):Math[_0xa4d4[425]](_0x7246x3-_0x7246x18)<_0x7246x16?(_0x7246xa=_0x7246x3-_0x7246x2[_0xa4d4[235]],_0x7246x16=Math[_0xa4d4[425]](_0x7246x3-_0x7246x18),_0x7246x4= !0):Math[_0xa4d4[425]](_0x7246x3-_0x7246x19)<_0x7246x16&&(_0x7246xa=_0x7246x3-_0x7246x2[_0xa4d4[235]]-_0x7246x2[_0xa4d4[117]],_0x7246x16=Math[_0xa4d4[425]](_0x7246x3-_0x7246x19),_0x7246x4= !0);if(_0x7246x4){null==this[_0xa4d4[1518]]&&(this[_0xa4d4[1518]]=this[_0xa4d4[1521]](!0),this[_0xa4d4[1518]][_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]],this[_0xa4d4[1518]][_0xa4d4[1229]]= !1,this[_0xa4d4[1518]][_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]()));var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[526]];_0x7246x3-=this[_0xa4d4[1179]][_0xa4d4[1136]];this[_0xa4d4[1518]][_0xa4d4[1525]]=[ new mxPoint(_0x7246x3,-this[_0xa4d4[1179]][_0xa4d4[1137]]), new mxPoint(_0x7246x3,_0x7246x5[_0xa4d4[191]]-3-this[_0xa4d4[1179]][_0xa4d4[1137]])];};_0x7246x13=_0x7246x13||_0x7246x4;};for(var _0x7246x15=function(_0x7246x3){_0x7246x3+=this[_0xa4d4[1179]][_0xa4d4[1137]];var _0x7246x4=!1;Math[_0xa4d4[425]](_0x7246x3-_0x7246x1d)<_0x7246x17?(_0x7246x12=_0x7246x3-_0x7246x2[_0xa4d4[242]](),_0x7246x17=Math[_0xa4d4[425]](_0x7246x3-_0x7246x1d),_0x7246x4= !0):Math[_0xa4d4[425]](_0x7246x3-_0x7246x1b)<_0x7246x17?(_0x7246x12=_0x7246x3-_0x7246x2[_0xa4d4[236]],_0x7246x17=Math[_0xa4d4[425]](_0x7246x3-_0x7246x1b),_0x7246x4= !0):Math[_0xa4d4[425]](_0x7246x3-_0x7246x1c)<_0x7246x17&&(_0x7246x12=_0x7246x3-_0x7246x2[_0xa4d4[236]]-_0x7246x2[_0xa4d4[119]],_0x7246x17=Math[_0xa4d4[425]](_0x7246x3-_0x7246x1c),_0x7246x4= !0);if(_0x7246x4){null==this[_0xa4d4[1519]]&&(this[_0xa4d4[1519]]=this[_0xa4d4[1521]](!1),this[_0xa4d4[1519]][_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]],this[_0xa4d4[1519]][_0xa4d4[1229]]= !1,this[_0xa4d4[1519]][_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]()));var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[526]];_0x7246x3-=this[_0xa4d4[1179]][_0xa4d4[1137]];this[_0xa4d4[1519]][_0xa4d4[1525]]=[ new mxPoint(-this[_0xa4d4[1179]][_0xa4d4[1136]],_0x7246x3), new mxPoint(_0x7246x5[_0xa4d4[1526]]-3-this[_0xa4d4[1179]][_0xa4d4[1136]],_0x7246x3)];};_0x7246x14=_0x7246x14||_0x7246x4;},_0x7246x1e=0;_0x7246x1e<this[_0xa4d4[1214]][_0xa4d4[67]];_0x7246x1e++){var _0x7246x1f=this[_0xa4d4[1214]][_0x7246x1e];null!=_0x7246x1f&&(this[_0xa4d4[662]]&&(_0x7246x3[_0xa4d4[239]](this,_0x7246x1f[_0xa4d4[241]]()),_0x7246x3[_0xa4d4[239]](this,_0x7246x1f[_0xa4d4[235]]),_0x7246x3[_0xa4d4[239]](this,_0x7246x1f[_0xa4d4[235]]+_0x7246x1f[_0xa4d4[117]])),this[_0xa4d4[704]]&&(_0x7246x15[_0xa4d4[239]](this,_0x7246x1f[_0xa4d4[242]]()),_0x7246x15[_0xa4d4[239]](this,_0x7246x1f[_0xa4d4[236]]),_0x7246x15[_0xa4d4[239]](this,_0x7246x1f[_0xa4d4[236]]+_0x7246x1f[_0xa4d4[119]])));};!_0x7246x13&&null!=this[_0xa4d4[1518]]?this[_0xa4d4[1518]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]:null!=this[_0xa4d4[1518]]&&(this[_0xa4d4[1518]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189],this[_0xa4d4[1518]][_0xa4d4[258]]());!_0x7246x14&&null!=this[_0xa4d4[1519]]?this[_0xa4d4[1519]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]:null!=this[_0xa4d4[1519]]&&(this[_0xa4d4[1519]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189],this[_0xa4d4[1519]][_0xa4d4[258]]());_0x7246x4&&(_0x7246x13||(_0x7246x4=_0x7246x2[_0xa4d4[235]]-(this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[235]]/_0x7246x9-_0x7246x5[_0xa4d4[235]])+_0x7246x5[_0xa4d4[235]])*_0x7246x9,_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246xa/_0x7246x9)*_0x7246x9-_0x7246x4),_0x7246x14||(_0x7246x5=_0x7246x2[_0xa4d4[236]]-(this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[236]]/_0x7246x9-_0x7246x5[_0xa4d4[236]])+_0x7246x5[_0xa4d4[236]])*_0x7246x9,_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x12/_0x7246x9)*_0x7246x9-_0x7246x5));_0x7246x3= new mxPoint(_0x7246xa,_0x7246x12);};return _0x7246x3;};mxGuide[_0xa4d4[202]][_0xa4d4[801]]=function(){null!=this[_0xa4d4[1518]]&&(this[_0xa4d4[1518]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]);null!=this[_0xa4d4[1519]]&&(this[_0xa4d4[1519]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]);};mxGuide[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[1518]]&&(this[_0xa4d4[1518]][_0xa4d4[515]](),this[_0xa4d4[1518]]=null);null!=this[_0xa4d4[1519]]&&(this[_0xa4d4[1519]][_0xa4d4[515]](),this[_0xa4d4[1519]]=null);};function mxStencil(_0x7246x2){this[_0xa4d4[1527]]=_0x7246x2;this[_0xa4d4[1528]]();this[_0xa4d4[1529]]();}mxStencil[_0xa4d4[1530]]= !1;mxStencil[_0xa4d4[202]][_0xa4d4[1527]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1531]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1322]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1532]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1533]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1534]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1535]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1307]]=null;mxStencil[_0xa4d4[202]][_0xa4d4[1528]]=function(){this[_0xa4d4[1535]]=this[_0xa4d4[1527]][_0xa4d4[64]](_0xa4d4[1536])[0];this[_0xa4d4[1534]]=this[_0xa4d4[1527]][_0xa4d4[64]](_0xa4d4[1537])[0];this[_0xa4d4[1532]]=Number(this[_0xa4d4[1527]][_0xa4d4[284]](_0xa4d4[1302])||100);this[_0xa4d4[1533]]=Number(this[_0xa4d4[1527]][_0xa4d4[284]](_0xa4d4[1303])||100);var _0x7246x2=this[_0xa4d4[1527]][_0xa4d4[284]](_0xa4d4[1322]);this[_0xa4d4[1322]]=null!=_0x7246x2?_0x7246x2:_0xa4d4[1538];_0x7246x2=this[_0xa4d4[1527]][_0xa4d4[284]](_0xa4d4[1307]);this[_0xa4d4[1307]]=null!=_0x7246x2?_0x7246x2:_0xa4d4[500];};mxStencil[_0xa4d4[202]][_0xa4d4[1529]]=function(){var _0x7246x2=this[_0xa4d4[1527]][_0xa4d4[64]](_0xa4d4[1539])[0];if(null!=_0x7246x2&&(_0x7246x2=mxUtils[_0xa4d4[1540]](_0x7246x2),null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]])){this[_0xa4d4[1531]]=[];for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[1531]][_0xa4d4[207]](this[_0xa4d4[1541]](_0x7246x2[_0x7246x3]))};};};mxStencil[_0xa4d4[202]][_0xa4d4[1541]]=function(_0x7246x2){var _0x7246x3=Number(_0x7246x2[_0xa4d4[284]](_0xa4d4[235])),_0x7246x4=Number(_0x7246x2[_0xa4d4[284]](_0xa4d4[236]));_0x7246x2=_0xa4d4[500]==_0x7246x2[_0xa4d4[284]](_0xa4d4[591]);return  new mxConnectionConstraint( new mxPoint(_0x7246x3,_0x7246x4),_0x7246x2);};mxStencil[_0xa4d4[202]][_0xa4d4[1542]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=this[_0xa4d4[1543]](_0x7246x2,_0x7246x3,_0x7246x4);_0x7246x2=_0x7246x2[_0xa4d4[284]](_0xa4d4[1544]);if(mxStencil[_0xa4d4[1530]]&&null==_0x7246x2||_0xa4d4[500]==_0x7246x2){_0x7246x3=mxResources[_0xa4d4[203]](_0x7246x3)};return _0x7246x3;};mxStencil[_0xa4d4[202]][_0xa4d4[1543]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=_0x7246x2[_0xa4d4[284]](_0x7246x3);null==_0x7246x3&&(_0x7246x2=mxUtils[_0xa4d4[329]](_0x7246x2),null!=_0x7246x2&&(_0x7246x2=mxUtils[_0xa4d4[1545]](_0x7246x2),_0xa4d4[279]== typeof _0x7246x2&&(_0x7246x3=_0x7246x2(_0x7246x4))));return _0x7246x3;};mxStencil[_0xa4d4[202]][_0xa4d4[1546]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[1547]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,this[_0xa4d4[1534]],!1);this[_0xa4d4[1547]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,this[_0xa4d4[1535]],!0);};mxStencil[_0xa4d4[202]][_0xa4d4[1547]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13){if(null!=_0x7246x12){var _0x7246x14=mxUtils[_0xa4d4[433]](_0x7246x3[_0xa4d4[124]],mxConstants.STYLE_DIRECTION,null);_0x7246x4=this[_0xa4d4[1548]](_0x7246x3[_0xa4d4[124]],_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x14);_0x7246x5=Math[_0xa4d4[243]](_0x7246x4[_0xa4d4[117]],_0x7246x4[_0xa4d4[119]]);_0x7246x5=_0xa4d4[1549]==this[_0xa4d4[1307]]?Number(mxUtils[_0xa4d4[1550]](_0x7246x3[_0xa4d4[124]],mxConstants.STYLE_STROKEWIDTH,1)):Number(this[_0xa4d4[1307]])*_0x7246x5;_0x7246x2[_0xa4d4[1250]](_0x7246x5);for(_0x7246x12=_0x7246x12[_0xa4d4[285]];null!=_0x7246x12;){_0x7246x12[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]&&this[_0xa4d4[1551]](_0x7246x2,_0x7246x3,_0x7246x12,_0x7246x4,_0x7246x13),_0x7246x12=_0x7246x12[_0xa4d4[287]]};}};mxStencil[_0xa4d4[202]][_0xa4d4[1548]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x2=_0x7246x3;_0x7246x3=_0x7246x5/this[_0xa4d4[1532]];var _0x7246x12=_0x7246x9/this[_0xa4d4[1533]];if(_0x7246xa=_0xa4d4[700]==_0x7246xa||_0xa4d4[701]==_0x7246xa){_0x7246x12=_0x7246x5/this[_0xa4d4[1533]];_0x7246x3=_0x7246x9/this[_0xa4d4[1532]];var _0x7246x13=(_0x7246x5-_0x7246x9)/2;_0x7246x2+=_0x7246x13;_0x7246x4-=_0x7246x13;};_0xa4d4[1552]==this[_0xa4d4[1322]]&&(_0x7246x3=_0x7246x12=Math[_0xa4d4[243]](_0x7246x3,_0x7246x12),_0x7246xa?(_0x7246x2+=(_0x7246x9-this[_0xa4d4[1532]]*_0x7246x3)/2,_0x7246x4+=(_0x7246x5-this[_0xa4d4[1533]]*_0x7246x12)/2):(_0x7246x2+=(_0x7246x5-this[_0xa4d4[1532]]*_0x7246x3)/2,_0x7246x4+=(_0x7246x9-this[_0xa4d4[1533]]*_0x7246x12)/2));return  new mxRectangle(_0x7246x2,_0x7246x4,_0x7246x3,_0x7246x12);};mxStencil[_0xa4d4[202]][_0xa4d4[1551]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=_0x7246x4[_0xa4d4[301]],_0x7246x12=_0x7246x5[_0xa4d4[235]],_0x7246x13=_0x7246x5[_0xa4d4[236]],_0x7246x14=_0x7246x5[_0xa4d4[117]],_0x7246x15=_0x7246x5[_0xa4d4[119]],_0x7246x16=Math[_0xa4d4[243]](_0x7246x14,_0x7246x15);if(_0xa4d4[815]==_0x7246xa){_0x7246x2[_0xa4d4[815]]()}else {if(_0xa4d4[1210]==_0x7246xa){_0x7246x2[_0xa4d4[1210]]()}else {if(_0xa4d4[1215]==_0x7246xa){_0x7246x2[_0xa4d4[1275]]();for(_0x7246x4=_0x7246x4[_0xa4d4[285]];null!=_0x7246x4;){_0x7246x4[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]&&this[_0xa4d4[1551]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),_0x7246x4=_0x7246x4[_0xa4d4[287]]};}else {if(_0xa4d4[268]==_0x7246xa){_0x7246x2[_0xa4d4[268]]()}else {if(_0xa4d4[582]==_0x7246xa){_0x7246x2[_0xa4d4[1276]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15)}else {if(_0xa4d4[683]==_0x7246xa){_0x7246x2[_0xa4d4[1277]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15)}else {if(_0xa4d4[1323]==_0x7246xa){_0x7246x2[_0xa4d4[1278]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1324]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1325]))*_0x7246x15,_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1326]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1327]))*_0x7246x15)}else {if(_0xa4d4[1328]==_0x7246xa){_0x7246x2[_0xa4d4[1279]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1324]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1325]))*_0x7246x15,_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1326]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1327]))*_0x7246x15,_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1329]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1330]))*_0x7246x15)}else {if(_0xa4d4[1553]==_0x7246xa){_0x7246x2[_0xa4d4[1280]](Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1397]))*_0x7246x14,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1398]))*_0x7246x15,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1554])),Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1555])),Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1556])),_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15)}else {if(_0xa4d4[1319]==_0x7246xa){_0x7246x2[_0xa4d4[1319]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1302]))*_0x7246x14,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1303]))*_0x7246x15)}else {if(_0xa4d4[1320]==_0x7246xa){_0x7246x3=_0x7246x4[_0xa4d4[284]](_0xa4d4[1492]),0==_0x7246x3&&(_0x7246x3=100*mxConstants[_0xa4d4[1557]]),_0x7246x16=Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1302]))*_0x7246x14,_0x7246x5=Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1303]))*_0x7246x15,_0x7246x3=Number(_0x7246x3)/100,_0x7246x3=Math[_0xa4d4[243]](_0x7246x16*_0x7246x3,_0x7246x5*_0x7246x3),_0x7246x2[_0xa4d4[1320]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15,_0x7246x16,_0x7246x5,_0x7246x3,_0x7246x3)}else {if(_0xa4d4[680]==_0x7246xa){_0x7246x2[_0xa4d4[680]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1302]))*_0x7246x14,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1303]))*_0x7246x15)}else {if(_0xa4d4[618]==_0x7246xa){_0x7246x3=this[_0xa4d4[1543]](_0x7246x4,_0xa4d4[390],_0x7246x3),_0x7246x2[_0xa4d4[618]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1302]))*_0x7246x14,Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1303]))*_0x7246x15,_0x7246x3,!1,_0xa4d4[500]==_0x7246x4[_0xa4d4[284]](_0xa4d4[623]),_0xa4d4[500]==_0x7246x4[_0xa4d4[284]](_0xa4d4[624]))}else {if(_0xa4d4[963]==_0x7246xa){_0x7246x16=this[_0xa4d4[1542]](_0x7246x4,_0xa4d4[1332],_0x7246x3);_0x7246x5=_0xa4d4[500]==_0x7246x4[_0xa4d4[284]](_0xa4d4[704])?-90:0;if(_0xa4d4[468]==_0x7246x4[_0xa4d4[284]](_0xa4d4[1558])){var _0x7246x17=_0x7246x3[_0xa4d4[603]],_0x7246x18=1==mxUtils[_0xa4d4[433]](_0x7246x3[_0xa4d4[124]],mxConstants.STYLE_FLIPH,0);_0x7246x3=1==mxUtils[_0xa4d4[433]](_0x7246x3[_0xa4d4[124]],mxConstants.STYLE_FLIPV,0);_0x7246x5=_0x7246x18&&_0x7246x3?_0x7246x5-_0x7246x17:_0x7246x18||_0x7246x3?_0x7246x5+_0x7246x17:_0x7246x5-_0x7246x17;};_0x7246x5-=_0x7246x4[_0xa4d4[284]](_0xa4d4[603]);_0x7246x2[_0xa4d4[963]](_0x7246x12+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15,0,0,_0x7246x16,_0x7246x4[_0xa4d4[284]](_0xa4d4[611])||_0xa4d4[361],_0x7246x4[_0xa4d4[284]](_0xa4d4[552])||_0xa4d4[125],!1,_0xa4d4[110],!1,!1,_0x7246x5);}else {if(_0xa4d4[1559]==_0x7246xa){_0x7246x17=mxStencilRegistry[_0xa4d4[1560]](_0x7246x4[_0xa4d4[284]](_0xa4d4[298])),null!=_0x7246x17&&(_0x7246x12+=Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[235]))*_0x7246x14,_0x7246x13+=Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[236]))*_0x7246x15,_0x7246x16=Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1302]))*_0x7246x14,_0x7246x5=Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1303]))*_0x7246x15,_0x7246x17[_0xa4d4[1546]](_0x7246x2,_0x7246x3,_0x7246x12,_0x7246x13,_0x7246x16,_0x7246x5))}else {if(_0xa4d4[1338]==_0x7246xa){_0x7246x2[_0xa4d4[1337]]()}else {if(_0xa4d4[1334]==_0x7246xa){_0x7246x2[_0xa4d4[1334]]()}else {if(_0xa4d4[1336]==_0x7246xa){_0x7246x2[_0xa4d4[1336]]()}else {if(_0xa4d4[1307]==_0x7246xa){_0x7246x2[_0xa4d4[1250]](Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[117]))*_0x7246x16)}else {if(_0xa4d4[648]==_0x7246xa){_0x7246x2[_0xa4d4[1251]](_0xa4d4[500]==_0x7246x4[_0xa4d4[284]](_0xa4d4[648]))}else {if(_0xa4d4[1308]==_0x7246xa){if(_0x7246x4=_0x7246x4[_0xa4d4[284]](_0xa4d4[1309]),null!=_0x7246x4){_0x7246x4=_0x7246x4[_0xa4d4[224]](_0xa4d4[185]);_0x7246x14=[];for(_0x7246x15=0;_0x7246x15<_0x7246x4[_0xa4d4[67]];_0x7246x15++){0<_0x7246x4[_0x7246x15][_0xa4d4[67]]&&_0x7246x14[_0xa4d4[207]](Number(_0x7246x4[_0x7246x15])*_0x7246x16)};_0x7246x4=_0x7246x14[_0xa4d4[234]](_0xa4d4[185]);_0x7246x2[_0xa4d4[1252]](_0x7246x4);}}else {_0xa4d4[1306]==_0x7246xa?_0x7246x2[_0xa4d4[1249]](_0x7246x4[_0xa4d4[284]](_0xa4d4[352])):_0xa4d4[1310]==_0x7246xa?_0x7246x2[_0xa4d4[1253]](_0x7246x4[_0xa4d4[284]](_0xa4d4[1311])):_0xa4d4[1312]==_0x7246xa?_0x7246x2[_0xa4d4[1255]](_0x7246x4[_0xa4d4[284]](_0xa4d4[234])):_0xa4d4[1313]==_0x7246xa?_0x7246x2[_0xa4d4[1257]](Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[1314]))):_0xa4d4[1298]==_0x7246xa?_0x7246x2[_0xa4d4[1245]](_0x7246x4[_0xa4d4[284]](_0xa4d4[352])):_0xa4d4[1244]==_0x7246xa?_0x7246x2[_0xa4d4[1243]](_0x7246x4[_0xa4d4[284]](_0xa4d4[1244])):_0xa4d4[1315]==_0x7246xa?_0x7246x2[_0xa4d4[1259]](_0x7246x4[_0xa4d4[284]](_0xa4d4[352])):_0xa4d4[1318]==_0x7246xa?_0x7246x2[_0xa4d4[1266]](_0x7246x4[_0xa4d4[284]](_0xa4d4[124])):_0xa4d4[1287]==_0x7246xa?_0x7246x2[_0xa4d4[1265]](_0x7246x4[_0xa4d4[284]](_0xa4d4[1288])):_0xa4d4[1289]==_0x7246xa&&_0x7246x2[_0xa4d4[1264]](Number(_0x7246x4[_0xa4d4[284]](_0xa4d4[803]))*_0x7246x16)}}}}}}}}}}}}}}}}}}}}};_0x7246x9&&(_0xa4d4[1338]==_0x7246xa||_0xa4d4[1334]==_0x7246xa||_0xa4d4[1336]==_0x7246xa)&&_0x7246x2[_0xa4d4[1267]](!1);};function mxShape(_0x7246x2){this[_0xa4d4[1561]]=_0x7246x2;this[_0xa4d4[1307]]=1;this[_0xa4d4[603]]=0;this[_0xa4d4[461]]=100;this[_0xa4d4[624]]=this[_0xa4d4[623]]= !1;}mxShape[_0xa4d4[202]][_0xa4d4[507]]=null;mxShape[_0xa4d4[202]][_0xa4d4[255]]=1;mxShape[_0xa4d4[202]][_0xa4d4[1562]]=null;mxShape[_0xa4d4[202]][_0xa4d4[1525]]=null;mxShape[_0xa4d4[202]][_0xa4d4[252]]=null;mxShape[_0xa4d4[202]][_0xa4d4[124]]=null;mxShape[_0xa4d4[202]][_0xa4d4[124]]=null;mxShape[_0xa4d4[202]][_0xa4d4[1563]]=null;mxShape[_0xa4d4[202]][_0xa4d4[1561]]=null;mxShape[_0xa4d4[202]][_0xa4d4[1564]]=6;mxShape[_0xa4d4[202]][_0xa4d4[1229]]= !0;mxShape[_0xa4d4[202]][_0xa4d4[1565]]= !1;mxShape[_0xa4d4[202]][_0xa4d4[1460]]=1;mxShape[_0xa4d4[202]][_0xa4d4[176]]=function(_0x7246x2){null==this[_0xa4d4[252]]&&(this[_0xa4d4[252]]=this[_0xa4d4[385]](_0x7246x2),null!=_0x7246x2&&_0x7246x2[_0xa4d4[62]](this[_0xa4d4[252]]))};mxShape[_0xa4d4[202]][_0xa4d4[1566]]=function(){return !0};mxShape[_0xa4d4[202]][_0xa4d4[1567]]=function(){return !1};mxShape[_0xa4d4[202]][_0xa4d4[1568]]=function(){return 1==mxUtils[_0xa4d4[1454]](Math[_0xa4d4[160]](1,Math[_0xa4d4[488]](this[_0xa4d4[1307]]*this[_0xa4d4[255]])),2)?0.5:0};mxShape[_0xa4d4[202]][_0xa4d4[385]]=function(_0x7246x2){var _0x7246x3=null;return _0x7246x3=null!=_0x7246x2[_0xa4d4[538]]?this[_0xa4d4[1569]](_0x7246x2):8==document[_0xa4d4[5]]||this[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]||this[_0xa4d4[507]]!=mxConstants[_0xa4d4[1523]]&&this[_0xa4d4[1567]]()?this[_0xa4d4[1570]](_0x7246x2):this[_0xa4d4[1571]](_0x7246x2);};mxShape[_0xa4d4[202]][_0xa4d4[1569]]=function(){return document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[449])};mxShape[_0xa4d4[202]][_0xa4d4[1571]]=function(){var _0x7246x2=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1499]);_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];return _0x7246x2;};mxShape[_0xa4d4[202]][_0xa4d4[1570]]=function(){var _0x7246x2=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];return _0x7246x2;};mxShape[_0xa4d4[202]][_0xa4d4[1572]]=function(){this[_0xa4d4[258]]()};mxShape[_0xa4d4[202]][_0xa4d4[258]]=function(){this[_0xa4d4[1573]]();this[_0xa4d4[1574]]()?(this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110],_0xa4d4[529]==this[_0xa4d4[252]][_0xa4d4[301]]&&this[_0xa4d4[1567]]()?this[_0xa4d4[1575]]():this[_0xa4d4[1576]](),this[_0xa4d4[1577]]()):(this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],this[_0xa4d4[1563]]=null);};mxShape[_0xa4d4[202]][_0xa4d4[1573]]=function(){var _0x7246x2=this[_0xa4d4[1525]];if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]&&null!=_0x7246x2[0]){this[_0xa4d4[1562]]= new mxRectangle(Number(_0x7246x2[0][_0xa4d4[235]]),Number(_0x7246x2[0][_0xa4d4[236]]),1,1);for(var _0x7246x3=1;_0x7246x3<this[_0xa4d4[1525]][_0xa4d4[67]];_0x7246x3++){null!=_0x7246x2[_0x7246x3]&&this[_0xa4d4[1562]][_0xa4d4[99]]( new mxRectangle(Number(_0x7246x2[_0x7246x3][_0xa4d4[235]]),Number(_0x7246x2[_0x7246x3][_0xa4d4[236]]),1,1))};};};mxShape[_0xa4d4[202]][_0xa4d4[1574]]=function(){return null!=this[_0xa4d4[1562]]&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[235]])&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[236]])&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[117]])&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[119]])&&0<this[_0xa4d4[1562]][_0xa4d4[117]]&&0<this[_0xa4d4[1562]][_0xa4d4[119]]};mxShape[_0xa4d4[202]][_0xa4d4[1578]]=function(){var _0x7246x2=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1499]);_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x2[_0xa4d4[124]][_0xa4d4[117]]=this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[117]];_0x7246x2[_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[119]];return _0x7246x2;};mxShape[_0xa4d4[202]][_0xa4d4[1576]]=function(){var _0x7246x2=this[_0xa4d4[1579]]();for(_0x7246x2[_0xa4d4[1229]]=this[_0xa4d4[1229]];this[_0xa4d4[252]][_0xa4d4[1580]]();){this[_0xa4d4[252]][_0xa4d4[266]](this[_0xa4d4[252]][_0xa4d4[1581]])};this[_0xa4d4[1209]](_0x7246x2);this[_0xa4d4[252]]!=_0x7246x2[_0xa4d4[813]]&&this[_0xa4d4[252]][_0xa4d4[1583]](_0xa4d4[1582],_0x7246x2[_0xa4d4[813]][_0xa4d4[342]]);_0xa4d4[529]==this[_0xa4d4[252]][_0xa4d4[301]]&&8==document[_0xa4d4[5]]&&(this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[347]]=_0xa4d4[110],(null==this[_0xa4d4[1561]]||!this[_0xa4d4[1565]])&&mxUtils[_0xa4d4[1584]](this[_0xa4d4[252]]));this[_0xa4d4[1585]](_0x7246x2);};mxShape[_0xa4d4[202]][_0xa4d4[1579]]=function(){var _0x7246x2=null,_0x7246x3=null;if(null!=this[_0xa4d4[252]][_0xa4d4[538]]){_0x7246x2= new mxSvgCanvas2D(this[_0xa4d4[252]],!1),_0x7246x2[_0xa4d4[1345]]=this[_0xa4d4[1564]],_0x7246x2[_0xa4d4[1347]]=mxClient[_0xa4d4[133]]&&!mxClient[_0xa4d4[75]]&&!mxClient[_0xa4d4[76]],_0x7246x3=this[_0xa4d4[1568]](),0!=_0x7246x3?this[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[535],_0xa4d4[536]+_0x7246x3+_0xa4d4[537]+_0x7246x3+_0xa4d4[460]):this[_0xa4d4[252]][_0xa4d4[1390]](_0xa4d4[535])}else {this[_0xa4d4[1586]]();var _0x7246x4=Math[_0xa4d4[160]](1,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[117]])),_0x7246x5=Math[_0xa4d4[160]](1,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[119]])),_0x7246x3=8==document[_0xa4d4[5]]&&this[_0xa4d4[1566]]()?this[_0xa4d4[1578]]():this[_0xa4d4[252]],_0x7246x2= new mxVmlCanvas2D(_0x7246x3,!1);_0xa4d4[110]!=_0x7246x3[_0xa4d4[337]]&&(_0x7246x3[_0xa4d4[1462]]=_0x7246x4*this[_0xa4d4[1460]]+_0xa4d4[537]+_0x7246x5*this[_0xa4d4[1460]],_0x7246x2[_0xa4d4[255]](this[_0xa4d4[1460]]),_0x7246x2[_0xa4d4[1460]]=this[_0xa4d4[1460]]);_0x7246x3=this[_0xa4d4[255]];_0x7246x2[_0xa4d4[513]](-Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]]/_0x7246x3),-Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]]/_0x7246x3));};return _0x7246x2;};mxShape[_0xa4d4[202]][_0xa4d4[1586]]=function(){this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]])+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]])+_0xa4d4[168];var _0x7246x2=Math[_0xa4d4[160]](1,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[117]])),_0x7246x3=Math[_0xa4d4[160]](1,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[119]]));this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[189];};mxShape[_0xa4d4[202]][_0xa4d4[1585]]=function(_0x7246x2){if(_0x7246x2 instanceof mxSvgCanvas2D){for(var _0x7246x3 in _0x7246x2[_0xa4d4[1339]]){var _0x7246x4=_0x7246x2[_0xa4d4[1339]][_0x7246x3];_0x7246x4[_0xa4d4[1587]]=(_0x7246x4[_0xa4d4[1587]]||0)+1;};this[_0xa4d4[1589]](this[_0xa4d4[1588]]);this[_0xa4d4[1588]]=_0x7246x2[_0xa4d4[1339]];}};mxShape[_0xa4d4[202]][_0xa4d4[1209]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[255]],_0x7246x4=this[_0xa4d4[1562]][_0xa4d4[235]]/_0x7246x3,_0x7246x5=this[_0xa4d4[1562]][_0xa4d4[236]]/_0x7246x3,_0x7246x9=this[_0xa4d4[1562]][_0xa4d4[117]]/_0x7246x3,_0x7246xa=this[_0xa4d4[1562]][_0xa4d4[119]]/_0x7246x3;if(this[_0xa4d4[1590]]()){var _0x7246x12=(_0x7246x9-_0x7246xa)/2,_0x7246x4=_0x7246x4+_0x7246x12,_0x7246x5=_0x7246x5-_0x7246x12,_0x7246x12=_0x7246x9,_0x7246x9=_0x7246xa,_0x7246xa=_0x7246x12};this[_0xa4d4[1591]](_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa);this[_0xa4d4[1592]](_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa);if(null!=this[_0xa4d4[1561]]){this[_0xa4d4[1593]](_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa)}else {if(_0x7246x2[_0xa4d4[1250]](this[_0xa4d4[1307]]),null!=this[_0xa4d4[1525]]){_0x7246x4=[];for(_0x7246x5=0;_0x7246x5<this[_0xa4d4[1525]][_0xa4d4[67]];_0x7246x5++){_0x7246x4[_0xa4d4[207]]( new mxPoint(this[_0xa4d4[1525]][_0x7246x5][_0xa4d4[235]]/_0x7246x3,this[_0xa4d4[1525]][_0x7246x5][_0xa4d4[236]]/_0x7246x3))};this[_0xa4d4[1594]](_0x7246x2,_0x7246x4);}else {this[_0xa4d4[1595]](_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa)}};};mxShape[_0xa4d4[202]][_0xa4d4[1592]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=null;null!=this[_0xa4d4[124]]&&(_0x7246xa=this[_0xa4d4[124]][_0xa4d4[649]]);_0x7246x2[_0xa4d4[1243]](this[_0xa4d4[461]]/100);null!=this[_0xa4d4[1596]]&&_0x7246x2[_0xa4d4[1267]](this[_0xa4d4[1596]]);null!=this[_0xa4d4[1522]]&&_0x7246x2[_0xa4d4[1251]](this[_0xa4d4[1522]]);null!=_0x7246xa&&_0x7246x2[_0xa4d4[1252]](_0x7246xa);null!=this[_0xa4d4[1299]]?(_0x7246x3=this[_0xa4d4[1597]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),_0x7246x2[_0xa4d4[1246]](this[_0xa4d4[1334]],this[_0xa4d4[1299]],_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]],_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]],this[_0xa4d4[607]])):_0x7246x2[_0xa4d4[1245]](this[_0xa4d4[1334]]);_0x7246x2[_0xa4d4[1249]](this[_0xa4d4[1336]]);};mxShape[_0xa4d4[202]][_0xa4d4[1597]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){return  new mxRectangle(_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9)};mxShape[_0xa4d4[202]][_0xa4d4[1591]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[255]](this[_0xa4d4[255]]);_0x7246x2[_0xa4d4[1294]](this[_0xa4d4[1598]](),this[_0xa4d4[623]],this[_0xa4d4[624]],_0x7246x3+_0x7246x5/2,_0x7246x4+_0x7246x9/2);};mxShape[_0xa4d4[202]][_0xa4d4[1593]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){this[_0xa4d4[1565]]&&(this[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?this[_0xa4d4[1599]](this[_0xa4d4[252]],_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9):8!=document[_0xa4d4[5]]&&this[_0xa4d4[1600]](this[_0xa4d4[252]]));this[_0xa4d4[1561]][_0xa4d4[1546]](_0x7246x2,this,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);};mxShape[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){this[_0xa4d4[1601]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[1267]](!1);this[_0xa4d4[1602]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);};mxShape[_0xa4d4[202]][_0xa4d4[1601]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){};mxShape[_0xa4d4[202]][_0xa4d4[1602]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){};mxShape[_0xa4d4[202]][_0xa4d4[1594]]=function(_0x7246x2,_0x7246x3){};mxShape[_0xa4d4[202]][_0xa4d4[1603]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0xa4d4[1557]])/100;return Math[_0xa4d4[243]](_0x7246x2*_0x7246x4,_0x7246x3*_0x7246x4);};mxShape[_0xa4d4[202]][_0xa4d4[1604]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){var _0x7246x12=Math[_0xa4d4[430]](this[_0xa4d4[1307]]/2);_0x7246x2[_0xa4d4[1246]](_0xa4d4[1605],_0xa4d4[1605],_0x7246x3,_0x7246x4,_0x7246x5,0.6*_0x7246x9,_0xa4d4[701],0.9,0.1);_0x7246x2[_0xa4d4[1275]]();_0x7246xa+=2*_0x7246x12;this[_0xa4d4[1606]]?(_0x7246x2[_0xa4d4[1276]](_0x7246x3-_0x7246x12+_0x7246xa,_0x7246x4-_0x7246x12),_0x7246x2[_0xa4d4[1278]](_0x7246x3-_0x7246x12,_0x7246x4-_0x7246x12,_0x7246x3-_0x7246x12,_0x7246x4-_0x7246x12+_0x7246xa),_0x7246x2[_0xa4d4[1277]](_0x7246x3-_0x7246x12,_0x7246x4+0.4*_0x7246x9),_0x7246x2[_0xa4d4[1278]](_0x7246x3+0.5*_0x7246x5,_0x7246x4+0.7*_0x7246x9,_0x7246x3+_0x7246x5+_0x7246x12,_0x7246x4+0.4*_0x7246x9),_0x7246x2[_0xa4d4[1277]](_0x7246x3+_0x7246x5+_0x7246x12,_0x7246x4-_0x7246x12+_0x7246xa),_0x7246x2[_0xa4d4[1278]](_0x7246x3+_0x7246x5+_0x7246x12,_0x7246x4-_0x7246x12,_0x7246x3+_0x7246x5+_0x7246x12-_0x7246xa,_0x7246x4-_0x7246x12)):(_0x7246x2[_0xa4d4[1276]](_0x7246x3-_0x7246x12,_0x7246x4-_0x7246x12),_0x7246x2[_0xa4d4[1277]](_0x7246x3-_0x7246x12,_0x7246x4+0.4*_0x7246x9),_0x7246x2[_0xa4d4[1278]](_0x7246x3+0.5*_0x7246x5,_0x7246x4+0.7*_0x7246x9,_0x7246x3+_0x7246x5+_0x7246x12,_0x7246x4+0.4*_0x7246x9),_0x7246x2[_0xa4d4[1277]](_0x7246x3+_0x7246x5+_0x7246x12,_0x7246x4-_0x7246x12));_0x7246x2[_0xa4d4[268]]();_0x7246x2[_0xa4d4[1334]]();};mxShape[_0xa4d4[202]][_0xa4d4[183]]=function(_0x7246x2){this[_0xa4d4[724]]=_0x7246x2;this[_0xa4d4[124]]=_0x7246x2[_0xa4d4[124]];if(null!=this[_0xa4d4[124]]){this[_0xa4d4[1334]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_FILLCOLOR,this[_0xa4d4[1334]]);this[_0xa4d4[1299]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_GRADIENTCOLOR,this[_0xa4d4[1299]]);this[_0xa4d4[607]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_GRADIENT_DIRECTION,this[_0xa4d4[607]]);this[_0xa4d4[461]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_OPACITY,this[_0xa4d4[461]]);this[_0xa4d4[1336]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_STROKECOLOR,this[_0xa4d4[1336]]);this[_0xa4d4[1307]]=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_STROKEWIDTH,this[_0xa4d4[1307]]);this[_0xa4d4[657]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_SPACING,this[_0xa4d4[657]]);this[_0xa4d4[644]]=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_STARTSIZE,this[_0xa4d4[644]]);this[_0xa4d4[643]]=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_ENDSIZE,this[_0xa4d4[643]]);this[_0xa4d4[642]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_STARTARROW,this[_0xa4d4[642]]);this[_0xa4d4[641]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ENDARROW,this[_0xa4d4[641]]);this[_0xa4d4[603]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ROTATION,this[_0xa4d4[603]]);this[_0xa4d4[663]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_DIRECTION,this[_0xa4d4[663]]);this[_0xa4d4[623]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_FLIPH,0);this[_0xa4d4[624]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_FLIPV,0);null!=this[_0xa4d4[1561]]&&(this[_0xa4d4[623]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],_0xa4d4[1607],0)||this[_0xa4d4[623]],this[_0xa4d4[624]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],_0xa4d4[1608],0)||this[_0xa4d4[624]]);if(_0xa4d4[700]==this[_0xa4d4[663]]||_0xa4d4[701]==this[_0xa4d4[663]]){_0x7246x2=this[_0xa4d4[623]],this[_0xa4d4[623]]=this[_0xa4d4[624]],this[_0xa4d4[624]]=_0x7246x2};this[_0xa4d4[1596]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_SHADOW,this[_0xa4d4[1596]]);this[_0xa4d4[1522]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_DASHED,this[_0xa4d4[1522]]);this[_0xa4d4[1606]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ROUNDED,this[_0xa4d4[1606]]);this[_0xa4d4[617]]=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_GLASS,this[_0xa4d4[617]]);_0xa4d4[130]==this[_0xa4d4[1334]]&&(this[_0xa4d4[1334]]=null);_0xa4d4[130]==this[_0xa4d4[1299]]&&(this[_0xa4d4[1299]]=null);_0xa4d4[130]==this[_0xa4d4[1336]]&&(this[_0xa4d4[1336]]=null);};};mxShape[_0xa4d4[202]][_0xa4d4[1609]]=function(_0x7246x2){null==_0x7246x2&&(_0x7246x2=_0xa4d4[110]);this[_0xa4d4[270]]=_0x7246x2;null!=this[_0xa4d4[252]]&&(this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=_0x7246x2);};mxShape[_0xa4d4[202]][_0xa4d4[1610]]=function(){return this[_0xa4d4[270]]};mxShape[_0xa4d4[202]][_0xa4d4[1577]]=function(){if(null!=this[_0xa4d4[1562]]){var _0x7246x2=this[_0xa4d4[1611]]();if(null!=_0x7246x2){this[_0xa4d4[1612]](_0x7246x2);var _0x7246x3=this[_0xa4d4[1598]]();0!=_0x7246x3&&(_0x7246x2=mxUtils[_0xa4d4[1613]](_0x7246x2,_0x7246x3));_0x7246x2[_0xa4d4[235]]=Math[_0xa4d4[519]](_0x7246x2[_0xa4d4[235]]);_0x7246x2[_0xa4d4[236]]=Math[_0xa4d4[519]](_0x7246x2[_0xa4d4[236]]);_0x7246x2[_0xa4d4[117]]=Math[_0xa4d4[430]](_0x7246x2[_0xa4d4[117]]);_0x7246x2[_0xa4d4[119]]=Math[_0xa4d4[430]](_0x7246x2[_0xa4d4[119]]);};this[_0xa4d4[1563]]=_0x7246x2;}};mxShape[_0xa4d4[202]][_0xa4d4[1611]]=function(){var _0x7246x2=this[_0xa4d4[1562]][_0xa4d4[238]]();if(this[_0xa4d4[1590]]()){var _0x7246x3=(_0x7246x2[_0xa4d4[117]]-_0x7246x2[_0xa4d4[119]])/2;_0x7246x2[_0xa4d4[235]]+=_0x7246x3;_0x7246x2[_0xa4d4[236]]-=_0x7246x3;_0x7246x3=_0x7246x2[_0xa4d4[117]];_0x7246x2[_0xa4d4[117]]=_0x7246x2[_0xa4d4[119]];_0x7246x2[_0xa4d4[119]]=_0x7246x3;};return _0x7246x2;};mxShape[_0xa4d4[202]][_0xa4d4[1612]]=function(_0x7246x2){this[_0xa4d4[1596]]&&(_0x7246x2[_0xa4d4[117]]+=Math[_0xa4d4[430]](mxConstants[_0xa4d4[1237]]*this[_0xa4d4[255]]),_0x7246x2[_0xa4d4[119]]+=Math[_0xa4d4[430]](mxConstants[_0xa4d4[1238]]*this[_0xa4d4[255]]));var _0x7246x3=Math[_0xa4d4[430]](this[_0xa4d4[1307]]*this[_0xa4d4[255]]);_0x7246x2[_0xa4d4[244]](Math[_0xa4d4[430]](_0x7246x3/2));};mxShape[_0xa4d4[202]][_0xa4d4[1590]]=function(){return null==this[_0xa4d4[1561]]&&(_0xa4d4[700]==this[_0xa4d4[663]]||_0xa4d4[701]==this[_0xa4d4[663]])};mxShape[_0xa4d4[202]][_0xa4d4[1614]]=function(){return null!=this[_0xa4d4[603]]?this[_0xa4d4[603]]:0};mxShape[_0xa4d4[202]][_0xa4d4[1615]]=function(){var _0x7246x2=this[_0xa4d4[1614]]();1!=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_HORIZONTAL,1)&&(_0x7246x2+=mxText[_0xa4d4[202]][_0xa4d4[1616]]);return _0x7246x2;};mxShape[_0xa4d4[202]][_0xa4d4[1598]]=function(){var _0x7246x2=this[_0xa4d4[1614]]();null!=this[_0xa4d4[663]]&&(_0xa4d4[700]==this[_0xa4d4[663]]?_0x7246x2+=270:_0xa4d4[703]==this[_0xa4d4[663]]?_0x7246x2+=180:_0xa4d4[701]==this[_0xa4d4[663]]&&(_0x7246x2+=90));return _0x7246x2;};mxShape[_0xa4d4[202]][_0xa4d4[1599]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[1319]);_0x7246x2[_0xa4d4[57]](_0xa4d4[235],_0x7246x3);_0x7246x2[_0xa4d4[57]](_0xa4d4[236],_0x7246x4);_0x7246x2[_0xa4d4[57]](_0xa4d4[117],_0x7246x5);_0x7246x2[_0xa4d4[57]](_0xa4d4[119],_0x7246x9);_0x7246x2[_0xa4d4[57]](_0xa4d4[1334],_0xa4d4[130]);_0x7246x2[_0xa4d4[57]](_0xa4d4[1336],_0xa4d4[130]);_0x7246x2[_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[1378]);this[_0xa4d4[252]][_0xa4d4[62]](_0x7246x2);};mxShape[_0xa4d4[202]][_0xa4d4[1600]]=function(_0x7246x2){_0x7246x2[_0xa4d4[124]][_0xa4d4[1617]]=_0xa4d4[1618]+mxClient[_0xa4d4[88]]+_0xa4d4[1619]};mxShape[_0xa4d4[202]][_0xa4d4[1589]]=function(_0x7246x2){if(null!=_0x7246x2){for(var _0x7246x3 in _0x7246x2){var _0x7246x4=_0x7246x2[_0x7246x3];_0x7246x4[_0xa4d4[1587]]=(_0x7246x4[_0xa4d4[1587]]||0)-1;0==_0x7246x4[_0xa4d4[1587]]&&null!=_0x7246x4[_0xa4d4[265]]&&_0x7246x4[_0xa4d4[265]][_0xa4d4[266]](_0x7246x4);}}};mxShape[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[252]]&&(mxEvent[_0xa4d4[762]](this[_0xa4d4[252]]),null!=this[_0xa4d4[252]][_0xa4d4[265]]&&this[_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[252]]),this[_0xa4d4[252]]=null);this[_0xa4d4[1589]](this[_0xa4d4[1588]]);this[_0xa4d4[1588]]=null;};var mxStencilRegistry={stencils:[],addStencil:function(_0x7246x2,_0x7246x3){mxStencilRegistry[_0xa4d4[1620]][_0x7246x2]=_0x7246x3},getStencil:function(_0x7246x2){return mxStencilRegistry[_0xa4d4[1620]][_0x7246x2]}},mxMarker={markers:[],addMarker:function(_0x7246x2,_0x7246x3){mxMarker[_0xa4d4[1621]][_0x7246x2]=_0x7246x3},createMarker:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15){var _0x7246x16=mxMarker[_0xa4d4[1621]][_0x7246x4];return null!=_0x7246x16?_0x7246x16(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15):null;}};(function(){function _0x7246x2(_0x7246x2,_0x7246x3,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){_0x7246x3=1.118*_0x7246x12*_0x7246x16;_0x7246x15=1.118*_0x7246x13*_0x7246x16;_0x7246x12*=_0x7246x14+_0x7246x16;_0x7246x13*=_0x7246x14+_0x7246x16;var _0x7246x18=_0x7246xa[_0xa4d4[238]]();_0x7246x18[_0xa4d4[235]]-=_0x7246x3;_0x7246x18[_0xa4d4[236]]-=_0x7246x15;_0x7246x14=_0x7246x9!=mxConstants[_0xa4d4[1622]]?1:0.75;_0x7246xa[_0xa4d4[235]]+=-_0x7246x12*_0x7246x14-_0x7246x3;_0x7246xa[_0xa4d4[236]]+=-_0x7246x13*_0x7246x14-_0x7246x15;return function(){_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x18[_0xa4d4[235]],_0x7246x18[_0xa4d4[236]]);_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]]-_0x7246x12-_0x7246x13/2,_0x7246x18[_0xa4d4[236]]-_0x7246x13+_0x7246x12/2);_0x7246x9==mxConstants[_0xa4d4[1622]]&&_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]]-3*_0x7246x12/4,_0x7246x18[_0xa4d4[236]]-3*_0x7246x13/4);_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]]+_0x7246x13/2-_0x7246x12,_0x7246x18[_0xa4d4[236]]-_0x7246x13-_0x7246x12/2);_0x7246x2[_0xa4d4[268]]();_0x7246x17?_0x7246x2[_0xa4d4[1337]]():_0x7246x2[_0xa4d4[1336]]();};}function _0x7246x3(_0x7246x2,_0x7246x3,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){_0x7246x15=_0x7246x9==mxConstants[_0xa4d4[1623]]?0.7071:0.9862;_0x7246x3=_0x7246x12*_0x7246x16*_0x7246x15;_0x7246x15*=_0x7246x13*_0x7246x16;_0x7246x12*=_0x7246x14+_0x7246x16;_0x7246x13*=_0x7246x14+_0x7246x16;var _0x7246x18=_0x7246xa[_0xa4d4[238]]();_0x7246x18[_0xa4d4[235]]-=_0x7246x3;_0x7246x18[_0xa4d4[236]]-=_0x7246x15;_0x7246xa[_0xa4d4[235]]+=-_0x7246x12-_0x7246x3;_0x7246xa[_0xa4d4[236]]+=-_0x7246x13-_0x7246x15;var _0x7246x19=_0x7246x9==mxConstants[_0xa4d4[1623]]?2:3.4;return function(){_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x18[_0xa4d4[235]],_0x7246x18[_0xa4d4[236]]);_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]]-_0x7246x12/2-_0x7246x13/_0x7246x19,_0x7246x18[_0xa4d4[236]]+_0x7246x12/_0x7246x19-_0x7246x13/2);_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]]-_0x7246x12,_0x7246x18[_0xa4d4[236]]-_0x7246x13);_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]]-_0x7246x12/2+_0x7246x13/_0x7246x19,_0x7246x18[_0xa4d4[236]]-_0x7246x13/2-_0x7246x12/_0x7246x19);_0x7246x2[_0xa4d4[268]]();_0x7246x17?_0x7246x2[_0xa4d4[1337]]():_0x7246x2[_0xa4d4[1336]]();};}mxMarker[_0xa4d4[1624]](_0xa4d4[693],_0x7246x2);mxMarker[_0xa4d4[1624]](_0xa4d4[694],_0x7246x2);mxMarker[_0xa4d4[1624]](_0xa4d4[392],function(_0x7246x2,_0x7246x3,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){_0x7246x3=1.118*_0x7246x12*_0x7246x16;_0x7246x9=1.118*_0x7246x13*_0x7246x16;_0x7246x12*=_0x7246x14+_0x7246x16;_0x7246x13*=_0x7246x14+_0x7246x16;var _0x7246x18=_0x7246xa[_0xa4d4[238]]();_0x7246x18[_0xa4d4[235]]-=_0x7246x3;_0x7246x18[_0xa4d4[236]]-=_0x7246x9;_0x7246xa[_0xa4d4[235]]+=2* -_0x7246x3;_0x7246xa[_0xa4d4[236]]+=2* -_0x7246x9;return function(){_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x18[_0xa4d4[235]]-_0x7246x12-_0x7246x13/2,_0x7246x18[_0xa4d4[236]]-_0x7246x13+_0x7246x12/2);_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]],_0x7246x18[_0xa4d4[236]]);_0x7246x2[_0xa4d4[1277]](_0x7246x18[_0xa4d4[235]]+_0x7246x13/2-_0x7246x12,_0x7246x18[_0xa4d4[236]]-_0x7246x13-_0x7246x12/2);_0x7246x2[_0xa4d4[1336]]();};});mxMarker[_0xa4d4[1624]](_0xa4d4[695],function(_0x7246x2,_0x7246x3,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17){var _0x7246x18=_0x7246x14/2,_0x7246x19=_0x7246xa[_0xa4d4[238]]();_0x7246xa[_0xa4d4[235]]-=_0x7246x12*_0x7246x18;_0x7246xa[_0xa4d4[236]]-=_0x7246x13*_0x7246x18;return function(){_0x7246x2[_0xa4d4[680]](_0x7246x19[_0xa4d4[235]]-_0x7246x18,_0x7246x19[_0xa4d4[236]]-_0x7246x18,_0x7246x14,_0x7246x14);_0x7246x17?_0x7246x2[_0xa4d4[1337]]():_0x7246x2[_0xa4d4[1336]]();};});mxMarker[_0xa4d4[1624]](_0xa4d4[696],_0x7246x3);mxMarker[_0xa4d4[1624]](_0xa4d4[697],_0x7246x3);})();function mxActor(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxActor,mxShape);mxActor[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[513]](_0x7246x3,_0x7246x4);_0x7246x2[_0xa4d4[1275]]();this[_0xa4d4[1625]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[1337]]();};mxActor[_0xa4d4[202]][_0xa4d4[1625]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x3=_0x7246x5/3;_0x7246x2[_0xa4d4[1276]](0,_0x7246x9);_0x7246x2[_0xa4d4[1279]](0,3*_0x7246x9/5,0,2*_0x7246x9/5,_0x7246x5/2,2*_0x7246x9/5);_0x7246x2[_0xa4d4[1279]](_0x7246x5/2-_0x7246x3,2*_0x7246x9/5,_0x7246x5/2-_0x7246x3,0,_0x7246x5/2,0);_0x7246x2[_0xa4d4[1279]](_0x7246x5/2+_0x7246x3,0,_0x7246x5/2+_0x7246x3,2*_0x7246x9/5,_0x7246x5/2,2*_0x7246x9/5);_0x7246x2[_0xa4d4[1279]](_0x7246x5,2*_0x7246x9/5,_0x7246x5,3*_0x7246x9/5,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[268]]();};function mxCloud(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxActor[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxCloud,mxActor);mxCloud[_0xa4d4[202]][_0xa4d4[1625]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[1276]](0.25*_0x7246x5,0.25*_0x7246x9);_0x7246x2[_0xa4d4[1279]](0.05*_0x7246x5,0.25*_0x7246x9,0,0.5*_0x7246x9,0.16*_0x7246x5,0.55*_0x7246x9);_0x7246x2[_0xa4d4[1279]](0,0.66*_0x7246x9,0.18*_0x7246x5,0.9*_0x7246x9,0.31*_0x7246x5,0.8*_0x7246x9);_0x7246x2[_0xa4d4[1279]](0.4*_0x7246x5,_0x7246x9,0.7*_0x7246x5,_0x7246x9,0.8*_0x7246x5,0.8*_0x7246x9);_0x7246x2[_0xa4d4[1279]](_0x7246x5,0.8*_0x7246x9,_0x7246x5,0.6*_0x7246x9,0.875*_0x7246x5,0.5*_0x7246x9);_0x7246x2[_0xa4d4[1279]](_0x7246x5,0.3*_0x7246x9,0.8*_0x7246x5,0.1*_0x7246x9,0.625*_0x7246x5,0.2*_0x7246x9);_0x7246x2[_0xa4d4[1279]](0.5*_0x7246x5,0.05*_0x7246x9,0.3*_0x7246x5,0.05*_0x7246x9,0.25*_0x7246x5,0.25*_0x7246x9);_0x7246x2[_0xa4d4[268]]();};function mxRectangleShape(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxRectangleShape,mxShape);mxRectangleShape[_0xa4d4[202]][_0xa4d4[1567]]=function(){return !this[_0xa4d4[1606]]&&!this[_0xa4d4[617]]&&0==this[_0xa4d4[603]]};mxRectangleShape[_0xa4d4[202]][_0xa4d4[1601]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(this[_0xa4d4[1606]]){var _0x7246xa=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0xa4d4[1557]])/100,_0x7246xa=Math[_0xa4d4[243]](_0x7246x5*_0x7246xa,_0x7246x9*_0x7246xa);_0x7246x2[_0xa4d4[1320]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246xa);}else {_0x7246x2[_0xa4d4[1319]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9)};_0x7246x2[_0xa4d4[1337]]();};mxRectangleShape[_0xa4d4[202]][_0xa4d4[1602]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){this[_0xa4d4[617]]&&this[_0xa4d4[1604]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,this[_0xa4d4[1603]](_0x7246x5+this[_0xa4d4[1307]],_0x7246x9+this[_0xa4d4[1307]]))};mxRectangleShape[_0xa4d4[202]][_0xa4d4[1575]]=function(){this[_0xa4d4[1626]](this[_0xa4d4[252]]);this[_0xa4d4[1627]](this[_0xa4d4[252]]);this[_0xa4d4[1628]](this[_0xa4d4[252]]);};mxRectangleShape[_0xa4d4[202]][_0xa4d4[1626]]=function(_0x7246x2){var _0x7246x3=9<=document[_0xa4d4[5]]?0:Math[_0xa4d4[430]](this[_0xa4d4[1307]]*this[_0xa4d4[255]]);_0x7246x2[_0xa4d4[124]][_0xa4d4[1629]]=Math[_0xa4d4[160]](1,_0x7246x3)+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[188];_0x7246x2[_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]]-_0x7246x3/2)+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]]-_0x7246x3/2)+_0xa4d4[168];_0xa4d4[462]==document[_0xa4d4[135]]&&(_0x7246x3= -_0x7246x3);_0x7246x2[_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[488]](Math[_0xa4d4[160]](0,this[_0xa4d4[1562]][_0xa4d4[117]]+_0x7246x3))+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[119]]=Math[_0xa4d4[488]](Math[_0xa4d4[160]](0,this[_0xa4d4[1562]][_0xa4d4[119]]+_0x7246x3))+_0xa4d4[168];};mxRectangleShape[_0xa4d4[202]][_0xa4d4[1628]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1336]];null!=_0x7246x3&&_0x7246x3!=mxConstants[_0xa4d4[217]]?(_0x7246x2[_0xa4d4[124]][_0xa4d4[1630]]=_0x7246x3,this[_0xa4d4[1522]]?_0x7246x2[_0xa4d4[124]][_0xa4d4[465]]=_0xa4d4[648]:0<this[_0xa4d4[1307]]&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[465]]=_0xa4d4[1631]),_0x7246x2[_0xa4d4[124]][_0xa4d4[1629]]=Math[_0xa4d4[160]](1,Math[_0xa4d4[430]](this[_0xa4d4[1307]]*this[_0xa4d4[255]]))+_0xa4d4[168]):_0x7246x2[_0xa4d4[124]][_0xa4d4[1629]]=_0xa4d4[946];_0x7246x3=this[_0xa4d4[1334]];null!=_0x7246x3&&_0x7246x3!=mxConstants[_0xa4d4[217]]?(_0x7246x2[_0xa4d4[124]][_0xa4d4[1028]]=_0x7246x3,_0x7246x2[_0xa4d4[124]][_0xa4d4[1617]]=_0xa4d4[130]):this[_0xa4d4[1229]]?_0x7246x2[_0xa4d4[124]][_0xa4d4[1028]]=_0xa4d4[1373]:8==document[_0xa4d4[5]]?mxUtils[_0xa4d4[1584]](_0x7246x2):this[_0xa4d4[1600]](_0x7246x2);};mxRectangleShape[_0xa4d4[202]][_0xa4d4[1627]]=function(_0x7246x2){var _0x7246x3=_0xa4d4[110];100>this[_0xa4d4[461]]&&(_0x7246x3+=_0xa4d4[459]+this[_0xa4d4[461]]+_0xa4d4[460]);this[_0xa4d4[1596]]&&(_0x7246x3+=_0xa4d4[1632]+Math[_0xa4d4[488]](mxConstants[_0xa4d4[1237]]*this[_0xa4d4[255]])+_0xa4d4[1633]+Math[_0xa4d4[488]](mxConstants[_0xa4d4[1238]]*this[_0xa4d4[255]])+_0xa4d4[1634]+mxConstants[_0xa4d4[1235]]+_0xa4d4[1635]);if(this[_0xa4d4[1299]]){var _0x7246x4=this[_0xa4d4[1334]],_0x7246x5=this[_0xa4d4[1299]],_0x7246x9=_0xa4d4[468],_0x7246xa={east:0,south:1,west:2,north:3},_0x7246x12=null!=this[_0xa4d4[663]]?_0x7246xa[this[_0xa4d4[663]]]:0;null!=this[_0xa4d4[607]]&&(_0x7246x12=mxUtils[_0xa4d4[1454]](_0x7246x12+_0x7246xa[this[_0xa4d4[607]]]-1,4));1==_0x7246x12?(_0x7246x9=_0xa4d4[500],_0x7246xa=_0x7246x4,_0x7246x4=_0x7246x5,_0x7246x5=_0x7246xa):2==_0x7246x12?(_0x7246xa=_0x7246x4,_0x7246x4=_0x7246x5,_0x7246x5=_0x7246xa):3==_0x7246x12&&(_0x7246x9=_0xa4d4[500]);_0x7246x3+=_0xa4d4[1636]+_0x7246x4+_0xa4d4[1637]+_0x7246x5+_0xa4d4[1638]+_0x7246x9+_0xa4d4[1635];};_0x7246x2[_0xa4d4[124]][_0xa4d4[347]]=_0x7246x3;};function mxEllipse(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxEllipse,mxShape);mxEllipse[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[680]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[1337]]();};function mxDoubleEllipse(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxDoubleEllipse,mxShape);mxDoubleEllipse[_0xa4d4[202]][_0xa4d4[1460]]=10;mxDoubleEllipse[_0xa4d4[202]][_0xa4d4[1601]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[680]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[1337]]();};mxDoubleEllipse[_0xa4d4[202]][_0xa4d4[1602]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=Math[_0xa4d4[243]](4,Math[_0xa4d4[243]](_0x7246x5/5,_0x7246x9/5));_0x7246x5-=2*_0x7246xa;_0x7246x9-=2*_0x7246xa;0<_0x7246x5&&0<_0x7246x9&&_0x7246x2[_0xa4d4[680]](_0x7246x3+_0x7246xa,_0x7246x4+_0x7246xa,_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[1336]]();};function mxRhombus(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxRhombus,mxShape);mxRhombus[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=_0x7246x5/2,_0x7246x12=_0x7246x9/2;_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x3+_0x7246xa,_0x7246x4);_0x7246x2[_0xa4d4[1277]](_0x7246x3+_0x7246x5,_0x7246x4+_0x7246x12);_0x7246x2[_0xa4d4[1277]](_0x7246x3+_0x7246xa,_0x7246x4+_0x7246x9);_0x7246x2[_0xa4d4[1277]](_0x7246x3,_0x7246x4+_0x7246x12);_0x7246x2[_0xa4d4[268]]();_0x7246x2[_0xa4d4[1337]]();};function mxPolyline(_0x7246x2,_0x7246x3,_0x7246x4){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1525]]=_0x7246x2;this[_0xa4d4[1336]]=_0x7246x3;this[_0xa4d4[1307]]=null!=_0x7246x4?_0x7246x4:1;}mxUtils[_0xa4d4[1284]](mxPolyline,mxShape);mxPolyline[_0xa4d4[202]][_0xa4d4[1614]]=function(){return 0};mxPolyline[_0xa4d4[202]][_0xa4d4[1594]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1639]](_0x7246x2,_0x7246x3,this[_0xa4d4[1606]])};mxPolyline[_0xa4d4[202]][_0xa4d4[1639]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,_0x7246x9=_0x7246x3[0],_0x7246xa=_0x7246x3[_0x7246x3[_0xa4d4[67]]-1];_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]]);for(var _0x7246x12=1;_0x7246x12<_0x7246x3[_0xa4d4[67]]-1;_0x7246x12++){var _0x7246x13=_0x7246x3[_0x7246x12],_0x7246x14=_0x7246x9[_0xa4d4[235]]-_0x7246x13[_0xa4d4[235]],_0x7246x9=_0x7246x9[_0xa4d4[236]]-_0x7246x13[_0xa4d4[236]];if(_0x7246x4&&_0x7246x12<_0x7246x3[_0xa4d4[67]]-1&&(0!=_0x7246x14||0!=_0x7246x9)){var _0x7246x15=Math[_0xa4d4[428]](_0x7246x14*_0x7246x14+_0x7246x9*_0x7246x9),_0x7246x14=_0x7246x14*Math[_0xa4d4[243]](_0x7246x5,_0x7246x15/2)/_0x7246x15,_0x7246x9=_0x7246x9*Math[_0xa4d4[243]](_0x7246x5,_0x7246x15/2)/_0x7246x15;_0x7246x2[_0xa4d4[1277]](_0x7246x13[_0xa4d4[235]]+_0x7246x14,_0x7246x13[_0xa4d4[236]]+_0x7246x9);_0x7246x9=_0x7246x3[_0x7246x12+1];_0x7246x14=_0x7246x9[_0xa4d4[235]]-_0x7246x13[_0xa4d4[235]];_0x7246x9=_0x7246x9[_0xa4d4[236]]-_0x7246x13[_0xa4d4[236]];_0x7246x15=Math[_0xa4d4[160]](1,Math[_0xa4d4[428]](_0x7246x14*_0x7246x14+_0x7246x9*_0x7246x9));_0x7246x14=_0x7246x14*Math[_0xa4d4[243]](_0x7246x5,_0x7246x15/2)/_0x7246x15;_0x7246x9=_0x7246x9*Math[_0xa4d4[243]](_0x7246x5,_0x7246x15/2)/_0x7246x15;_0x7246x14=_0x7246x13[_0xa4d4[235]]+_0x7246x14;_0x7246x9=_0x7246x13[_0xa4d4[236]]+_0x7246x9;_0x7246x2[_0xa4d4[1278]](_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]],_0x7246x14,_0x7246x9);_0x7246x13= new mxPoint(_0x7246x14,_0x7246x9);}else {_0x7246x2[_0xa4d4[1277]](_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]])};_0x7246x9=_0x7246x13;};_0x7246x2[_0xa4d4[1277]](_0x7246xa[_0xa4d4[235]],_0x7246xa[_0xa4d4[236]]);_0x7246x2[_0xa4d4[1336]]();};function mxArrow(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1525]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;this[_0xa4d4[1640]]=null!=_0x7246x9?_0x7246x9:mxConstants[_0xa4d4[1641]];this[_0xa4d4[657]]=null!=_0x7246xa?_0x7246xa:mxConstants[_0xa4d4[1642]];this[_0xa4d4[643]]=null!=_0x7246x12?_0x7246x12:mxConstants[_0xa4d4[1643]];}mxUtils[_0xa4d4[1284]](mxArrow,mxShape);mxArrow[_0xa4d4[202]][_0xa4d4[1594]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=mxConstants[_0xa4d4[1642]],_0x7246x5=mxConstants[_0xa4d4[1641]],_0x7246x9=mxConstants[_0xa4d4[1643]],_0x7246xa=_0x7246x3[0],_0x7246x12=_0x7246x3[_0x7246x3[_0xa4d4[67]]-1],_0x7246x13=_0x7246x12[_0xa4d4[235]]-_0x7246xa[_0xa4d4[235]],_0x7246x14=_0x7246x12[_0xa4d4[236]]-_0x7246xa[_0xa4d4[236]],_0x7246x15=Math[_0xa4d4[428]](_0x7246x13*_0x7246x13+_0x7246x14*_0x7246x14),_0x7246x16=_0x7246x15-2*_0x7246x4-_0x7246x9,_0x7246x13=_0x7246x13/_0x7246x15,_0x7246x14=_0x7246x14/_0x7246x15,_0x7246x15=_0x7246x5*_0x7246x14/3,_0x7246x5=-_0x7246x5*_0x7246x13/3,_0x7246x9=_0x7246xa[_0xa4d4[235]]-_0x7246x15/2+_0x7246x4*_0x7246x13,_0x7246xa=_0x7246xa[_0xa4d4[236]]-_0x7246x5/2+_0x7246x4*_0x7246x14,_0x7246x17=_0x7246x9+_0x7246x15,_0x7246x18=_0x7246xa+_0x7246x5,_0x7246x19=_0x7246x17+_0x7246x16*_0x7246x13,_0x7246x16=_0x7246x18+_0x7246x16*_0x7246x14,_0x7246x1a=_0x7246x19+_0x7246x15,_0x7246x1b=_0x7246x16+_0x7246x5,_0x7246x1c=_0x7246x1a-3*_0x7246x15,_0x7246x1d=_0x7246x1b-3*_0x7246x5;_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x9,_0x7246xa);_0x7246x2[_0xa4d4[1277]](_0x7246x17,_0x7246x18);_0x7246x2[_0xa4d4[1277]](_0x7246x19,_0x7246x16);_0x7246x2[_0xa4d4[1277]](_0x7246x1a,_0x7246x1b);_0x7246x2[_0xa4d4[1277]](_0x7246x12[_0xa4d4[235]]-_0x7246x4*_0x7246x13,_0x7246x12[_0xa4d4[236]]-_0x7246x4*_0x7246x14);_0x7246x2[_0xa4d4[1277]](_0x7246x1c,_0x7246x1d);_0x7246x2[_0xa4d4[1277]](_0x7246x1c+_0x7246x15,_0x7246x1d+_0x7246x5);_0x7246x2[_0xa4d4[268]]();_0x7246x2[_0xa4d4[1337]]();};function mxText(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15,_0x7246x16,_0x7246x17,_0x7246x18,_0x7246x19,_0x7246x1a,_0x7246x1b,_0x7246x1c,_0x7246x1d,_0x7246x1e,_0x7246x1f){mxShape[_0xa4d4[239]](this);this[_0xa4d4[131]]=_0x7246x2;this[_0xa4d4[1562]]=_0x7246x3;this[_0xa4d4[352]]=null!=_0x7246x9?_0x7246x9:_0xa4d4[586];this[_0xa4d4[611]]=null!=_0x7246x4?_0x7246x4:_0xa4d4[110];this[_0xa4d4[552]]=null!=_0x7246x5?_0x7246x5:_0xa4d4[110];this[_0xa4d4[1288]]=null!=_0x7246xa?_0x7246xa:mxConstants[_0xa4d4[484]];this[_0xa4d4[803]]=null!=_0x7246x12?_0x7246x12:mxConstants[_0xa4d4[483]];this[_0xa4d4[666]]=null!=_0x7246x13?_0x7246x13:mxConstants[_0xa4d4[1644]];this[_0xa4d4[657]]=parseInt(_0x7246x14||2);this[_0xa4d4[658]]=this[_0xa4d4[657]]+parseInt(_0x7246x15||0);this[_0xa4d4[661]]=this[_0xa4d4[657]]+parseInt(_0x7246x16||0);this[_0xa4d4[660]]=this[_0xa4d4[657]]+parseInt(_0x7246x17||0);this[_0xa4d4[659]]=this[_0xa4d4[657]]+parseInt(_0x7246x18||0);this[_0xa4d4[662]]=null!=_0x7246x19?_0x7246x19:!0;this[_0xa4d4[1537]]=_0x7246x1a;this[_0xa4d4[467]]=_0x7246x1b;this[_0xa4d4[1333]]=null!=_0x7246x1c?_0x7246x1c:!1;this[_0xa4d4[1645]]=null!=_0x7246x1d?_0x7246x1d:!1;this[_0xa4d4[277]]=null!=_0x7246x1e?_0x7246x1e:_0xa4d4[189];this[_0xa4d4[629]]=null!=_0x7246x1f?_0x7246x1f:0;this[_0xa4d4[603]]=0;}mxUtils[_0xa4d4[1284]](mxText,mxShape);mxText[_0xa4d4[202]][_0xa4d4[1646]]=0;mxText[_0xa4d4[202]][_0xa4d4[1647]]=0;mxText[_0xa4d4[202]][_0xa4d4[1648]]=0;mxText[_0xa4d4[202]][_0xa4d4[1649]]=0;mxText[_0xa4d4[202]][_0xa4d4[1650]]= !0;mxText[_0xa4d4[202]][_0xa4d4[1616]]= -90;mxText[_0xa4d4[202]][_0xa4d4[1651]]= !0;mxText[_0xa4d4[202]][_0xa4d4[1652]]= !1;mxText[_0xa4d4[202]][_0xa4d4[1566]]=function(){return !1};mxText[_0xa4d4[202]][_0xa4d4[1567]]=function(){return 8!=document[_0xa4d4[5]]};mxText[_0xa4d4[202]][_0xa4d4[1568]]=function(){return 0};mxText[_0xa4d4[202]][_0xa4d4[1574]]=function(){return null!=this[_0xa4d4[1562]]&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[235]])&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[236]])&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[117]])&&!isNaN(this[_0xa4d4[1562]][_0xa4d4[119]])};mxText[_0xa4d4[202]][_0xa4d4[1577]]=function(){var _0x7246x2=this[_0xa4d4[252]];8==document[_0xa4d4[5]]&&null!=_0x7246x2[_0xa4d4[285]]&&(_0x7246x2=_0x7246x2[_0xa4d4[285]],null!=_0x7246x2[_0xa4d4[285]]&&(_0x7246x2=_0x7246x2[_0xa4d4[285]]));this[_0xa4d4[1563]]=this[_0xa4d4[1562]][_0xa4d4[238]]();var _0x7246x3=this[_0xa4d4[1615]]();if(!this[_0xa4d4[1652]]&&null!=_0x7246x2&&_0xa4d4[1334]!=this[_0xa4d4[277]]&&(!this[_0xa4d4[1645]]||!this[_0xa4d4[1651]])){var _0x7246x4=null,_0x7246x5=null;if(null!=_0x7246x2[_0xa4d4[538]]){if(null!=_0x7246x2[_0xa4d4[285]]&&null!=_0x7246x2[_0xa4d4[285]][_0xa4d4[285]]&&_0xa4d4[1435]==_0x7246x2[_0xa4d4[285]][_0xa4d4[285]][_0xa4d4[301]]){_0x7246x2=_0x7246x2[_0xa4d4[285]][_0xa4d4[285]],_0x7246x4=this[_0xa4d4[1333]]?this[_0xa4d4[1562]][_0xa4d4[117]]:parseInt(_0x7246x2[_0xa4d4[284]](_0xa4d4[117]))*this[_0xa4d4[255]],_0x7246x5=parseInt(_0x7246x2[_0xa4d4[284]](_0xa4d4[119]))*this[_0xa4d4[255]]}else {_0x7246x3=_0x7246x2[_0xa4d4[1451]]();if(0==_0x7246x3[_0xa4d4[117]]&&0==_0x7246x3[_0xa4d4[119]]){return };this[_0xa4d4[1563]]= new mxRectangle(_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]],_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]);_0x7246x3=0;}}else {_0x7246x5=this[_0xa4d4[724]][_0xa4d4[441]][_0xa4d4[1653]],null!=this[_0xa4d4[359]]&&null!=this[_0xa4d4[167]]?(_0x7246x4=this[_0xa4d4[1333]]?this[_0xa4d4[1562]][_0xa4d4[117]]:this[_0xa4d4[359]]*this[_0xa4d4[255]],_0x7246x5=this[_0xa4d4[167]]*this[_0xa4d4[255]]):null!=_0x7246x5?(this[_0xa4d4[1441]](_0x7246x5),this[_0xa4d4[1654]](_0x7246x5),mxUtils[_0xa4d4[1331]](this[_0xa4d4[131]])?_0x7246x5[_0xa4d4[339]]=this[_0xa4d4[131]][_0xa4d4[342]]:(_0x7246x4=this[_0xa4d4[1650]]?this[_0xa4d4[131]][_0xa4d4[230]](/\n/g,_0xa4d4[1453]):this[_0xa4d4[131]],_0x7246x5[_0xa4d4[339]]=_0x7246x4),_0x7246x4=this[_0xa4d4[1333]]?this[_0xa4d4[1562]][_0xa4d4[117]]:_0x7246x5[_0xa4d4[359]]*this[_0xa4d4[255]],_0x7246x5=_0x7246x5[_0xa4d4[167]]*this[_0xa4d4[255]]):(_0x7246x4=this[_0xa4d4[1333]]?this[_0xa4d4[1562]][_0xa4d4[117]]:_0x7246x2[_0xa4d4[359]]*this[_0xa4d4[255]],_0x7246x5=_0x7246x2[_0xa4d4[167]]*this[_0xa4d4[255]])};null!=_0x7246x4&&null!=_0x7246x5&&(this[_0xa4d4[1563]]= new mxRectangle(this[_0xa4d4[1562]][_0xa4d4[235]]+this[_0xa4d4[1655]][_0xa4d4[235]]*_0x7246x4,this[_0xa4d4[1562]][_0xa4d4[236]]+this[_0xa4d4[1655]][_0xa4d4[236]]*_0x7246x5,_0x7246x4,_0x7246x5));}else {this[_0xa4d4[1563]][_0xa4d4[235]]+=this[_0xa4d4[1655]][_0xa4d4[235]]*this[_0xa4d4[1563]][_0xa4d4[117]],this[_0xa4d4[1563]][_0xa4d4[236]]+=this[_0xa4d4[1655]][_0xa4d4[236]]*this[_0xa4d4[1563]][_0xa4d4[119]]};null!=this[_0xa4d4[1563]]&&(0!=_0x7246x3&&(_0x7246x3=mxUtils[_0xa4d4[1613]](this[_0xa4d4[1563]],_0x7246x3),this[_0xa4d4[1563]][_0xa4d4[235]]=_0x7246x3[_0xa4d4[235]],this[_0xa4d4[1563]][_0xa4d4[236]]=_0x7246x3[_0xa4d4[236]],mxClient[_0xa4d4[496]]||(this[_0xa4d4[1563]][_0xa4d4[117]]=_0x7246x3[_0xa4d4[117]],this[_0xa4d4[1563]][_0xa4d4[119]]=_0x7246x3[_0xa4d4[119]])),this[_0xa4d4[1563]][_0xa4d4[235]]=Math[_0xa4d4[519]](this[_0xa4d4[1563]][_0xa4d4[235]]),this[_0xa4d4[1563]][_0xa4d4[236]]=Math[_0xa4d4[519]](this[_0xa4d4[1563]][_0xa4d4[236]]),this[_0xa4d4[1563]][_0xa4d4[117]]=Math[_0xa4d4[430]](this[_0xa4d4[1563]][_0xa4d4[117]]),this[_0xa4d4[1563]][_0xa4d4[119]]=Math[_0xa4d4[430]](this[_0xa4d4[1563]][_0xa4d4[119]]));};mxText[_0xa4d4[202]][_0xa4d4[1598]]=function(){return 0};mxText[_0xa4d4[202]][_0xa4d4[1615]]=function(){return null!=this[_0xa4d4[724]]&&null!=this[_0xa4d4[724]][_0xa4d4[253]]?this[_0xa4d4[724]][_0xa4d4[253]][_0xa4d4[1615]]():0};mxText[_0xa4d4[202]][_0xa4d4[1590]]=function(){return !this[_0xa4d4[662]]&&null!=this[_0xa4d4[724]]&&this[_0xa4d4[724]][_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1193]](this[_0xa4d4[724]][_0xa4d4[246]])};mxText[_0xa4d4[202]][_0xa4d4[1592]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){mxShape[_0xa4d4[202]][_0xa4d4[1592]][_0xa4d4[183]](this,arguments);_0x7246x2[_0xa4d4[1259]](this[_0xa4d4[352]]);_0x7246x2[_0xa4d4[1260]](this[_0xa4d4[1537]]);_0x7246x2[_0xa4d4[1262]](this[_0xa4d4[467]]);_0x7246x2[_0xa4d4[1265]](this[_0xa4d4[1288]]);_0x7246x2[_0xa4d4[1264]](this[_0xa4d4[803]]);_0x7246x2[_0xa4d4[1266]](this[_0xa4d4[666]]);};mxText[_0xa4d4[202]][_0xa4d4[1586]]=function(){this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]])+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]])+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[942];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[942];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[189];};mxText[_0xa4d4[202]][_0xa4d4[1209]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[255]],_0x7246x4=this[_0xa4d4[1562]][_0xa4d4[235]]/_0x7246x3,_0x7246x5=this[_0xa4d4[1562]][_0xa4d4[236]]/_0x7246x3,_0x7246x9=this[_0xa4d4[1562]][_0xa4d4[117]]/_0x7246x3,_0x7246x3=this[_0xa4d4[1562]][_0xa4d4[119]]/_0x7246x3;this[_0xa4d4[1591]](_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246x3);this[_0xa4d4[1592]](_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246x3);var _0x7246xa=mxUtils[_0xa4d4[1331]](this[_0xa4d4[131]])||this[_0xa4d4[507]]==mxConstants[_0xa4d4[1656]],_0x7246x12=_0x7246xa||_0x7246x2 instanceof mxVmlCanvas2D?_0xa4d4[1428]:_0xa4d4[110],_0x7246x13=this[_0xa4d4[131]];!_0x7246xa&&_0xa4d4[1428]==_0x7246x12&&(_0x7246x13=mxUtils[_0xa4d4[321]](_0x7246x13,!1));_0x7246x13=!mxUtils[_0xa4d4[1331]](this[_0xa4d4[131]])&&this[_0xa4d4[1650]]&&_0xa4d4[1428]==_0x7246x12?_0x7246x13[_0xa4d4[230]](/\n/g,_0xa4d4[1453]):_0x7246x13;_0x7246x2[_0xa4d4[963]](_0x7246x4,_0x7246x5,_0x7246x9,_0x7246x3,_0x7246x13,this[_0xa4d4[611]],this[_0xa4d4[552]],this[_0xa4d4[1333]],_0x7246x12,_0xa4d4[1334]==this[_0xa4d4[277]],this[_0xa4d4[1645]],this[_0xa4d4[1615]]());};mxText[_0xa4d4[202]][_0xa4d4[1575]]=function(){var _0x7246x2=this[_0xa4d4[252]][_0xa4d4[124]];_0x7246x2[_0xa4d4[461]]=1>this[_0xa4d4[461]]?this[_0xa4d4[461]]:_0xa4d4[110];_0x7246x2[_0xa4d4[277]]=_0xa4d4[110];_0x7246x2[_0xa4d4[117]]=_0xa4d4[110];_0x7246x2[_0xa4d4[119]]=_0xa4d4[110];this[_0xa4d4[1441]](this[_0xa4d4[252]]);this[_0xa4d4[1654]](this[_0xa4d4[252]]);this[_0xa4d4[1657]]();this[_0xa4d4[167]]=this[_0xa4d4[359]]=null;null!=mxClient[_0xa4d4[73]]?this[_0xa4d4[1658]]():this[_0xa4d4[1659]]();};mxText[_0xa4d4[202]][_0xa4d4[1658]]=function(){var _0x7246x2=this[_0xa4d4[1615]](),_0x7246x3=this[_0xa4d4[252]][_0xa4d4[124]],_0x7246x4=this[_0xa4d4[1655]][_0xa4d4[235]],_0x7246x5=this[_0xa4d4[1655]][_0xa4d4[236]];0!=_0x7246x2?(_0x7246x3[mxClient[_0xa4d4[73]]+_0xa4d4[1660]]=100*-_0x7246x4+_0xa4d4[1661]+100*-_0x7246x5+_0xa4d4[229],_0x7246x3[mxClient[_0xa4d4[73]]+_0xa4d4[1662]]=_0xa4d4[536]+100*_0x7246x4+_0xa4d4[1663]+100*_0x7246x5+_0xa4d4[1664]+this[_0xa4d4[255]]+_0xa4d4[1665]+_0x7246x2+_0xa4d4[1666]):(_0x7246x3[mxClient[_0xa4d4[73]]+_0xa4d4[1660]]=_0xa4d4[1667],_0x7246x3[mxClient[_0xa4d4[73]]+_0xa4d4[1662]]=_0xa4d4[1402]+this[_0xa4d4[255]]+_0xa4d4[1393]+100*_0x7246x4+_0xa4d4[1663]+100*_0x7246x5+_0xa4d4[1668]);_0x7246x3[_0xa4d4[361]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]])+_0xa4d4[168];_0x7246x3[_0xa4d4[125]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]])+_0xa4d4[168];};mxText[_0xa4d4[202]][_0xa4d4[1659]]=function(){var _0x7246x2=this[_0xa4d4[252]][_0xa4d4[124]],_0x7246x3=this[_0xa4d4[1655]][_0xa4d4[235]],_0x7246x4=this[_0xa4d4[1655]][_0xa4d4[236]],_0x7246x5=this[_0xa4d4[255]];_0x7246x2[_0xa4d4[347]]=_0xa4d4[110];var _0x7246x9=0,_0x7246xa=0,_0x7246x12=null!=this[_0xa4d4[724]]?this[_0xa4d4[724]][_0xa4d4[441]][_0xa4d4[1653]]:null;if(null!=_0x7246x12){_0x7246x12[_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[110];_0x7246x12[_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[110];_0x7246x12[_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[110];this[_0xa4d4[1441]](_0x7246x12);this[_0xa4d4[1654]](_0x7246x12);if(mxUtils[_0xa4d4[1331]](this[_0xa4d4[131]])){_0x7246x12[_0xa4d4[339]]=this[_0xa4d4[131]][_0xa4d4[342]]}else {var _0x7246x13=this[_0xa4d4[131]];this[_0xa4d4[507]]!=mxConstants[_0xa4d4[1656]]&&(_0x7246x13=mxUtils[_0xa4d4[321]](_0x7246x13,!1));_0x7246x13=this[_0xa4d4[1650]]?_0x7246x13[_0xa4d4[230]](/\n/g,_0xa4d4[1453]):_0x7246x13;_0x7246x12[_0xa4d4[339]]=_0x7246x13;};_0x7246x9=_0x7246x12[_0xa4d4[359]]+2;_0x7246xa=_0x7246x12[_0xa4d4[167]]+2;}else {_0x7246x9=this[_0xa4d4[252]][_0xa4d4[359]],_0x7246xa=this[_0xa4d4[252]][_0xa4d4[167]]+1};this[_0xa4d4[359]]=_0x7246x9;this[_0xa4d4[167]]=_0x7246xa;_0x7246x12=this[_0xa4d4[1562]][_0xa4d4[117]]/_0x7246x5;_0x7246x13=this[_0xa4d4[1562]][_0xa4d4[119]]/_0x7246x5;mxClient[_0xa4d4[496]]&&(this[_0xa4d4[1645]]||_0xa4d4[1334]==this[_0xa4d4[277]])&&0<_0x7246x13?(_0x7246x13=Math[_0xa4d4[243]](_0x7246x13,_0x7246xa),_0x7246x2[_0xa4d4[119]]=Math[_0xa4d4[488]](_0x7246x13+1)+_0xa4d4[168]):_0x7246x13=_0x7246xa;_0xa4d4[1334]!=this[_0xa4d4[277]]&&(mxClient[_0xa4d4[496]]&&(this[_0xa4d4[1645]]||this[_0xa4d4[1333]])&&0<_0x7246x12?(_0x7246x12=Math[_0xa4d4[243]](_0x7246x12,_0x7246x9),_0x7246x2[_0xa4d4[117]]=Math[_0xa4d4[488]](_0x7246x12)+_0xa4d4[168]):_0x7246x12=_0x7246x9);var _0x7246x13=_0x7246x13*_0x7246x5,_0x7246x12=_0x7246x12*_0x7246x5,_0x7246x9=this[_0xa4d4[1615]]()*(Math[_0xa4d4[424]]/180),_0x7246xa=parseFloat(parseFloat(Math[_0xa4d4[426]](_0x7246x9))[_0xa4d4[1293]](8)),_0x7246x14=parseFloat(parseFloat(Math[_0xa4d4[427]](-_0x7246x9))[_0xa4d4[1293]](8)),_0x7246x9=_0x7246x9%(2*Math[_0xa4d4[424]]);0>_0x7246x9&&(_0x7246x9+=2*Math[_0xa4d4[424]]);_0x7246x9%=Math[_0xa4d4[424]];_0x7246x9>Math[_0xa4d4[424]]/2&&(_0x7246x9=Math[_0xa4d4[424]]-_0x7246x9);var _0x7246x15=Math[_0xa4d4[426]](_0x7246x9),_0x7246x16=Math[_0xa4d4[427]](-_0x7246x9),_0x7246x3=_0x7246x12* -(_0x7246x3+0.5),_0x7246x4=_0x7246x13* -(_0x7246x4+0.5),_0x7246x17=(_0x7246x13-_0x7246x13*_0x7246x15+_0x7246x12*_0x7246x16)/2+_0x7246x14*_0x7246x3-_0x7246xa*_0x7246x4;0!=_0x7246x9&&(_0x7246x2[_0xa4d4[347]]=_0xa4d4[1505]+_0x7246xa+_0xa4d4[1506]+_0x7246x14+_0xa4d4[1507]+-_0x7246x14+_0xa4d4[1508]+_0x7246xa+_0xa4d4[1509]);_0x7246x2[_0xa4d4[499]]=_0x7246x5;_0x7246x2[_0xa4d4[361]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]]+((_0x7246x12-_0x7246x12*_0x7246x15+_0x7246x13*_0x7246x16)/2-_0x7246xa*_0x7246x3-_0x7246x14*_0x7246x4)-_0x7246x12/2)+_0xa4d4[168];_0x7246x2[_0xa4d4[125]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]]+_0x7246x17-_0x7246x13/2)+_0xa4d4[168];};mxText[_0xa4d4[202]][_0xa4d4[1657]]=function(){if(mxUtils[_0xa4d4[1331]](this[_0xa4d4[131]])){this[_0xa4d4[252]][_0xa4d4[339]]=_0xa4d4[110],this[_0xa4d4[252]][_0xa4d4[62]](this[_0xa4d4[131]])}else {var _0x7246x2=this[_0xa4d4[131]];this[_0xa4d4[507]]!=mxConstants[_0xa4d4[1656]]&&(_0x7246x2=mxUtils[_0xa4d4[321]](_0x7246x2,!1));var _0x7246x2=this[_0xa4d4[1650]]?_0x7246x2[_0xa4d4[230]](/\n/g,_0xa4d4[1453]):_0x7246x2,_0x7246x3=null!=this[_0xa4d4[1537]]&&this[_0xa4d4[1537]]!=mxConstants[_0xa4d4[217]]?this[_0xa4d4[1537]]:null,_0x7246x4=null!=this[_0xa4d4[467]]&&this[_0xa4d4[467]]!=mxConstants[_0xa4d4[217]]?this[_0xa4d4[467]]:null;if(null!=_0x7246x3||null!=_0x7246x4){if(_0xa4d4[1334]==this[_0xa4d4[277]]){null!=_0x7246x3&&(this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[1028]]=_0x7246x3),null!=_0x7246x4&&(this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[467]]=_0xa4d4[1669]+_0x7246x4)}else {var _0x7246x5=_0xa4d4[110];null!=_0x7246x3&&(_0x7246x5+=_0xa4d4[1418]+_0x7246x3+_0xa4d4[471]);null!=_0x7246x4&&(_0x7246x5+=_0xa4d4[1419]+_0x7246x4+_0xa4d4[471]);_0x7246x2=_0xa4d4[1670]+_0x7246x5+_0xa4d4[1671]+this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[489]]+_0xa4d4[1423]+_0x7246x2+_0xa4d4[1424];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[489]]=_0xa4d4[110];}};this[_0xa4d4[252]][_0xa4d4[339]]=_0x7246x2;}};mxText[_0xa4d4[202]][_0xa4d4[1441]]=function(_0x7246x2){_0x7246x2=_0x7246x2[_0xa4d4[124]];_0x7246x2[_0xa4d4[489]]=Math[_0xa4d4[488]](this[_0xa4d4[803]]*mxConstants[_0xa4d4[490]])+_0xa4d4[168];_0x7246x2[_0xa4d4[487]]=Math[_0xa4d4[488]](this[_0xa4d4[803]])+_0xa4d4[168];_0x7246x2[_0xa4d4[486]]=this[_0xa4d4[1288]];_0x7246x2[_0xa4d4[123]]=_0xa4d4[125];_0x7246x2[_0xa4d4[352]]=this[_0xa4d4[352]];_0x7246x2[_0xa4d4[1452]]=(this[_0xa4d4[666]]&mxConstants[_0xa4d4[1410]])==mxConstants[_0xa4d4[1410]]?_0xa4d4[1447]:_0xa4d4[110];_0x7246x2[_0xa4d4[666]]=(this[_0xa4d4[666]]&mxConstants[_0xa4d4[1412]])==mxConstants[_0xa4d4[1412]]?_0xa4d4[1449]:_0xa4d4[110];_0x7246x2[_0xa4d4[1498]]=(this[_0xa4d4[666]]&mxConstants[_0xa4d4[1414]])==mxConstants[_0xa4d4[1414]]?_0xa4d4[355]:_0xa4d4[110];_0x7246x2[_0xa4d4[1165]]=this[_0xa4d4[611]]==mxConstants[_0xa4d4[479]]?_0xa4d4[698]:this[_0xa4d4[611]]==mxConstants[_0xa4d4[480]]?_0xa4d4[699]:_0xa4d4[361];};mxText[_0xa4d4[202]][_0xa4d4[1654]]=function(_0x7246x2){var _0x7246x3=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[117]]/this[_0xa4d4[255]]),_0x7246x4=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[119]]/this[_0xa4d4[255]]);_0x7246x2=_0x7246x2[_0xa4d4[124]];this[_0xa4d4[1645]]?(_0x7246x2[_0xa4d4[277]]=_0xa4d4[188],0<_0x7246x4&&(_0x7246x2[_0xa4d4[1503]]=_0x7246x4+_0xa4d4[168]),0<_0x7246x3&&(_0x7246x2[_0xa4d4[117]]=_0x7246x3+_0xa4d4[168])):_0xa4d4[1334]==this[_0xa4d4[277]]&&(_0x7246x2[_0xa4d4[117]]=_0x7246x3+_0xa4d4[168],0<_0x7246x4&&(_0x7246x2[_0xa4d4[1503]]=_0x7246x4+_0xa4d4[168]));this[_0xa4d4[1333]]?(!this[_0xa4d4[1645]]&&0<_0x7246x3&&(_0x7246x2[_0xa4d4[117]]=_0x7246x3+_0xa4d4[168]),_0x7246x2[_0xa4d4[493]]=_0xa4d4[1502]):_0x7246x2[_0xa4d4[493]]=_0xa4d4[494];};mxText[_0xa4d4[202]][_0xa4d4[1672]]=function(){this[_0xa4d4[1655]]=mxUtils[_0xa4d4[1501]](this[_0xa4d4[611]],this[_0xa4d4[552]])};mxText[_0xa4d4[202]][_0xa4d4[1673]]=function(){var _0x7246x2=0,_0x7246x3=0,_0x7246x2=this[_0xa4d4[611]]==mxConstants[_0xa4d4[479]]?(this[_0xa4d4[659]]-this[_0xa4d4[661]])/2:this[_0xa4d4[611]]==mxConstants[_0xa4d4[480]]?-this[_0xa4d4[661]]-this[_0xa4d4[1649]]:this[_0xa4d4[659]]+this[_0xa4d4[1648]],_0x7246x3=this[_0xa4d4[552]]==mxConstants[_0xa4d4[481]]?(this[_0xa4d4[658]]-this[_0xa4d4[660]])/2:this[_0xa4d4[552]]==mxConstants[_0xa4d4[482]]?-this[_0xa4d4[660]]-this[_0xa4d4[1647]]:this[_0xa4d4[658]]+this[_0xa4d4[1646]];return  new mxPoint(_0x7246x2,_0x7246x3);};function mxTriangle(){mxActor[_0xa4d4[239]](this)}mxUtils[_0xa4d4[1284]](mxTriangle,mxActor);mxTriangle[_0xa4d4[202]][_0xa4d4[1625]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[1276]](0,0);_0x7246x2[_0xa4d4[1277]](_0x7246x5,0.5*_0x7246x9);_0x7246x2[_0xa4d4[1277]](0,_0x7246x9);_0x7246x2[_0xa4d4[268]]();};function mxHexagon(){mxActor[_0xa4d4[239]](this)}mxUtils[_0xa4d4[1284]](mxHexagon,mxActor);mxHexagon[_0xa4d4[202]][_0xa4d4[1625]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[1276]](0.25*_0x7246x5,0);_0x7246x2[_0xa4d4[1277]](0.75*_0x7246x5,0);_0x7246x2[_0xa4d4[1277]](_0x7246x5,0.5*_0x7246x9);_0x7246x2[_0xa4d4[1277]](0.75*_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[1277]](0.25*_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[1277]](0,0.5*_0x7246x9);_0x7246x2[_0xa4d4[268]]();};function mxLine(_0x7246x2,_0x7246x3,_0x7246x4){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1336]]=_0x7246x3;this[_0xa4d4[1307]]=null!=_0x7246x4?_0x7246x4:1;}mxUtils[_0xa4d4[1284]](mxLine,mxShape);mxLine[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x4+=_0x7246x9/2;_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x3,_0x7246x4);_0x7246x2[_0xa4d4[1277]](_0x7246x3+_0x7246x5,_0x7246x4);_0x7246x2[_0xa4d4[1336]]();};function mxImageShape(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[618]]=_0x7246x3;this[_0xa4d4[1334]]=_0x7246x4;this[_0xa4d4[1336]]=_0x7246x5;this[_0xa4d4[1307]]=null!=_0x7246x9?_0x7246x9:1;this[_0xa4d4[639]]= !1;}mxUtils[_0xa4d4[1284]](mxImageShape,mxRectangleShape);mxImageShape[_0xa4d4[202]][_0xa4d4[1674]]= !0;mxImageShape[_0xa4d4[202]][_0xa4d4[1568]]=function(){return !mxClient[_0xa4d4[80]]?0.5:0};mxImageShape[_0xa4d4[202]][_0xa4d4[183]]=function(_0x7246x2){mxShape[_0xa4d4[202]][_0xa4d4[183]][_0xa4d4[183]](this,arguments);this[_0xa4d4[1299]]=this[_0xa4d4[1336]]=this[_0xa4d4[1334]]=null;null!=this[_0xa4d4[124]]&&(this[_0xa4d4[1334]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_BACKGROUND),this[_0xa4d4[1336]]=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_BORDER),this[_0xa4d4[1674]]=1==mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_ASPECT,1),this[_0xa4d4[623]]=this[_0xa4d4[623]]||1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],_0xa4d4[1675],0),this[_0xa4d4[624]]=this[_0xa4d4[624]]||1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],_0xa4d4[1676],0));};mxImageShape[_0xa4d4[202]][_0xa4d4[1567]]=function(){return !this[_0xa4d4[1674]]};mxImageShape[_0xa4d4[202]][_0xa4d4[1570]]=function(){var _0x7246x2=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];return _0x7246x2;};mxImageShape[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=this[_0xa4d4[618]]){var _0x7246xa=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_BACKGROUND,null),_0x7246x12=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_BORDER,null);if(null!=_0x7246xa||null!=_0x7246x12){_0x7246x2[_0xa4d4[1245]](_0x7246xa),_0x7246x2[_0xa4d4[1249]](_0x7246x12),_0x7246x2[_0xa4d4[1319]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),_0x7246x2[_0xa4d4[1337]]()};_0x7246x2[_0xa4d4[618]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,this[_0xa4d4[618]],this[_0xa4d4[1674]],!1,!1);}else {mxRectangleShape[_0xa4d4[202]][_0xa4d4[1601]][_0xa4d4[183]](this,arguments)}};mxImageShape[_0xa4d4[202]][_0xa4d4[1575]]=function(){this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]])+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]])+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[160]](0,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[117]]))+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[119]]=Math[_0xa4d4[160]](0,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[119]]))+_0xa4d4[168];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[1028]]=this[_0xa4d4[1334]]||_0xa4d4[110];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[1630]]=this[_0xa4d4[1336]]||_0xa4d4[110];this[_0xa4d4[252]][_0xa4d4[339]]=_0xa4d4[110];if(null!=this[_0xa4d4[618]]){var _0x7246x2=document[_0xa4d4[55]](mxClient[_0xa4d4[49]]||null==mxClient[_0xa4d4[73]]&&0!=this[_0xa4d4[603]]?mxClient[_0xa4d4[463]]+_0xa4d4[464]:_0xa4d4[466]);_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x2[_0xa4d4[390]]=this[_0xa4d4[618]];var _0x7246x3=100>this[_0xa4d4[461]]?_0xa4d4[459]+this[_0xa4d4[461]]+_0xa4d4[460]:_0xa4d4[110];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[347]]=_0x7246x3;this[_0xa4d4[623]]&&this[_0xa4d4[624]]?_0x7246x3+=_0xa4d4[1677]:this[_0xa4d4[623]]?_0x7246x3+=_0xa4d4[1678]:this[_0xa4d4[624]]&&(_0x7246x3+=_0xa4d4[1679]);_0x7246x2[_0xa4d4[124]][_0xa4d4[347]]!=_0x7246x3&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[347]]=_0x7246x3);_0xa4d4[618]==_0x7246x2[_0xa4d4[301]]?_0x7246x2[_0xa4d4[124]][_0xa4d4[603]]=this[_0xa4d4[603]]:_0x7246x2[_0xa4d4[124]][mxClient[_0xa4d4[73]]+_0xa4d4[1662]]=_0xa4d4[1394]+this[_0xa4d4[603]]+_0xa4d4[1666];_0x7246x2[_0xa4d4[124]][_0xa4d4[117]]=this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[117]];_0x7246x2[_0xa4d4[124]][_0xa4d4[119]]=this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[119]];this[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[1617]]=_0xa4d4[110];this[_0xa4d4[252]][_0xa4d4[62]](_0x7246x2);}else {this[_0xa4d4[1600]](this[_0xa4d4[252]])};};function mxLabel(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxRectangleShape[_0xa4d4[239]](this,_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5)}mxUtils[_0xa4d4[1284]](mxLabel,mxRectangleShape);mxLabel[_0xa4d4[202]][_0xa4d4[1680]]=mxConstants[_0xa4d4[1681]];mxLabel[_0xa4d4[202]][_0xa4d4[657]]=2;mxLabel[_0xa4d4[202]][_0xa4d4[1682]]=10;mxLabel[_0xa4d4[202]][_0xa4d4[635]]=2;mxLabel[_0xa4d4[202]][_0xa4d4[176]]=function(_0x7246x2){mxShape[_0xa4d4[202]][_0xa4d4[176]][_0xa4d4[183]](this,arguments);null!=this[_0xa4d4[632]]&&null!=this[_0xa4d4[630]]&&(this[_0xa4d4[1683]]= new this[_0xa4d4[630]],this[_0xa4d4[1683]][_0xa4d4[507]]=this[_0xa4d4[507]],this[_0xa4d4[1683]][_0xa4d4[1562]]=this[_0xa4d4[1562]],this[_0xa4d4[1683]][_0xa4d4[1334]]=this[_0xa4d4[632]],this[_0xa4d4[1683]][_0xa4d4[1336]]=this[_0xa4d4[632]],this[_0xa4d4[1683]][_0xa4d4[1299]]=this[_0xa4d4[634]],this[_0xa4d4[1683]][_0xa4d4[663]]=this[_0xa4d4[638]],this[_0xa4d4[1683]][_0xa4d4[176]](this[_0xa4d4[252]]));};mxLabel[_0xa4d4[202]][_0xa4d4[258]]=function(){null!=this[_0xa4d4[1683]]&&(this[_0xa4d4[1683]][_0xa4d4[1334]]=this[_0xa4d4[632]],this[_0xa4d4[1683]][_0xa4d4[1336]]=this[_0xa4d4[632]],this[_0xa4d4[1683]][_0xa4d4[1299]]=this[_0xa4d4[634]],this[_0xa4d4[1683]][_0xa4d4[663]]=this[_0xa4d4[638]]);mxShape[_0xa4d4[202]][_0xa4d4[258]][_0xa4d4[183]](this,arguments);};mxLabel[_0xa4d4[202]][_0xa4d4[1567]]=function(){return mxRectangleShape[_0xa4d4[202]][_0xa4d4[1567]][_0xa4d4[183]](this,arguments)&&null==this[_0xa4d4[632]]&&null==this[_0xa4d4[630]]};mxLabel[_0xa4d4[202]][_0xa4d4[1602]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){this[_0xa4d4[1684]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);this[_0xa4d4[1685]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);mxRectangleShape[_0xa4d4[202]][_0xa4d4[1602]][_0xa4d4[183]](this,arguments);};mxLabel[_0xa4d4[202]][_0xa4d4[1684]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){null!=this[_0xa4d4[618]]&&(_0x7246x3=this[_0xa4d4[1686]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),_0x7246x2[_0xa4d4[618]](_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]],_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]],this[_0xa4d4[618]],!1,!1,!1))};mxLabel[_0xa4d4[202]][_0xa4d4[1686]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),_0x7246xa=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0x7246x12=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),_0x7246x13=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),_0x7246x14=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_SPACING,this[_0xa4d4[657]])+5;_0x7246x2=_0x7246x9==mxConstants[_0xa4d4[479]]?_0x7246x2+(_0x7246x4-_0x7246x12)/2:_0x7246x9==mxConstants[_0xa4d4[480]]?_0x7246x2+(_0x7246x4-_0x7246x12-_0x7246x14):_0x7246x2+_0x7246x14;_0x7246x3=_0x7246xa==mxConstants[_0xa4d4[1687]]?_0x7246x3+_0x7246x14:_0x7246xa==mxConstants[_0xa4d4[482]]?_0x7246x3+(_0x7246x5-_0x7246x13-_0x7246x14):_0x7246x3+(_0x7246x5-_0x7246x13)/2;return  new mxRectangle(_0x7246x2,_0x7246x3,_0x7246x12,_0x7246x13);};mxLabel[_0xa4d4[202]][_0xa4d4[1685]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){null!=this[_0xa4d4[1683]]?(this[_0xa4d4[1683]][_0xa4d4[1562]]=this[_0xa4d4[1688]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),this[_0xa4d4[1683]][_0xa4d4[1209]](_0x7246x2)):null!=this[_0xa4d4[631]]&&(_0x7246x3=this[_0xa4d4[1688]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9),_0x7246x2[_0xa4d4[618]](_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]],_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]],this[_0xa4d4[631]],!1,!1,!1))};mxLabel[_0xa4d4[202]][_0xa4d4[1688]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),_0x7246xa=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0x7246x12=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_INDICATOR_WIDTH,this[_0xa4d4[1682]]),_0x7246x13=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_INDICATOR_HEIGHT,this[_0xa4d4[1682]]),_0x7246x14=this[_0xa4d4[657]]+5;_0x7246x2=_0x7246x9==mxConstants[_0xa4d4[480]]?_0x7246x2+(_0x7246x4-_0x7246x12-_0x7246x14):_0x7246x9==mxConstants[_0xa4d4[479]]?_0x7246x2+(_0x7246x4-_0x7246x12)/2:_0x7246x2+_0x7246x14;_0x7246x3=_0x7246xa==mxConstants[_0xa4d4[482]]?_0x7246x3+(_0x7246x5-_0x7246x13-_0x7246x14):_0x7246xa==mxConstants[_0xa4d4[1687]]?_0x7246x3+_0x7246x14:_0x7246x3+(_0x7246x5-_0x7246x13)/2;return  new mxRectangle(_0x7246x2,_0x7246x3,_0x7246x12,_0x7246x13);};mxLabel[_0xa4d4[202]][_0xa4d4[1575]]=function(){for(mxRectangleShape[_0xa4d4[202]][_0xa4d4[1575]][_0xa4d4[183]](this,arguments);this[_0xa4d4[252]][_0xa4d4[1580]]();){this[_0xa4d4[252]][_0xa4d4[266]](this[_0xa4d4[252]][_0xa4d4[1581]])};if(null!=this[_0xa4d4[618]]){var _0x7246x2=document[_0xa4d4[55]](_0xa4d4[466]);_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[1500];_0x7246x2[_0xa4d4[57]](_0xa4d4[467],_0xa4d4[468]);var _0x7246x3=this[_0xa4d4[1686]](this[_0xa4d4[1562]][_0xa4d4[235]],this[_0xa4d4[1562]][_0xa4d4[236]],this[_0xa4d4[1562]][_0xa4d4[117]],this[_0xa4d4[1562]][_0xa4d4[119]]);_0x7246x3[_0xa4d4[235]]-=this[_0xa4d4[1562]][_0xa4d4[235]];_0x7246x3[_0xa4d4[236]]-=this[_0xa4d4[1562]][_0xa4d4[236]];_0x7246x2[_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[488]](_0x7246x3[_0xa4d4[235]])+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[488]](_0x7246x3[_0xa4d4[236]])+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[488]](_0x7246x3[_0xa4d4[117]])+_0xa4d4[168];_0x7246x2[_0xa4d4[124]][_0xa4d4[119]]=Math[_0xa4d4[488]](_0x7246x3[_0xa4d4[119]])+_0xa4d4[168];_0x7246x2[_0xa4d4[390]]=this[_0xa4d4[618]];this[_0xa4d4[252]][_0xa4d4[62]](_0x7246x2);};};function mxCylinder(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxCylinder,mxShape);mxCylinder[_0xa4d4[202]][_0xa4d4[1503]]=40;mxCylinder[_0xa4d4[202]][_0xa4d4[1564]]=0;mxCylinder[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[513]](_0x7246x3,_0x7246x4);_0x7246x2[_0xa4d4[1275]]();this[_0xa4d4[1625]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,!1);_0x7246x2[_0xa4d4[1337]]();_0x7246x2[_0xa4d4[1267]](!1);_0x7246x2[_0xa4d4[1275]]();this[_0xa4d4[1625]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,!0);_0x7246x2[_0xa4d4[1336]]();};mxCylinder[_0xa4d4[202]][_0xa4d4[1625]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x3=Math[_0xa4d4[243]](this[_0xa4d4[1503]],Math[_0xa4d4[488]](_0x7246x9/5));if(_0x7246xa&&null!=this[_0xa4d4[1334]]||!_0x7246xa&&null==this[_0xa4d4[1334]]){_0x7246x2[_0xa4d4[1276]](0,_0x7246x3),_0x7246x2[_0xa4d4[1279]](0,2*_0x7246x3,_0x7246x5,2*_0x7246x3,_0x7246x5,_0x7246x3),_0x7246xa||(_0x7246x2[_0xa4d4[1336]](),_0x7246x2[_0xa4d4[1275]]())};_0x7246xa||(_0x7246x2[_0xa4d4[1276]](0,_0x7246x3),_0x7246x2[_0xa4d4[1279]](0,-_0x7246x3/3,_0x7246x5,-_0x7246x3/3,_0x7246x5,_0x7246x3),_0x7246x2[_0xa4d4[1277]](_0x7246x5,_0x7246x9-_0x7246x3),_0x7246x2[_0xa4d4[1279]](_0x7246x5,_0x7246x9+_0x7246x3/3,0,_0x7246x9+_0x7246x3/3,0,_0x7246x9-_0x7246x3),_0x7246x2[_0xa4d4[268]]());};function mxConnector(_0x7246x2,_0x7246x3,_0x7246x4){mxPolyline[_0xa4d4[239]](this,_0x7246x2,_0x7246x3,_0x7246x4)}mxUtils[_0xa4d4[1284]](mxConnector,mxPolyline);mxConnector[_0xa4d4[202]][_0xa4d4[1594]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1689]](_0x7246x2,_0x7246x3,!0),_0x7246x5=this[_0xa4d4[1689]](_0x7246x2,_0x7246x3,!1);null==this[_0xa4d4[124]]||1!=this[_0xa4d4[124]][mxConstants[_0xa4d4[1690]]]?this[_0xa4d4[1639]](_0x7246x2,_0x7246x3,this[_0xa4d4[1606]]):this[_0xa4d4[1691]](_0x7246x2,_0x7246x3);_0x7246x2[_0xa4d4[1245]](this[_0xa4d4[1336]]);_0x7246x2[_0xa4d4[1267]](!1);_0x7246x2[_0xa4d4[1251]](!1);null!=_0x7246x4&&_0x7246x4();null!=_0x7246x5&&_0x7246x5();};mxConnector[_0xa4d4[202]][_0xa4d4[1691]]=function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[1275]]();var _0x7246x4=_0x7246x3[0],_0x7246x5=_0x7246x3[_0xa4d4[67]];_0x7246x2[_0xa4d4[1276]](_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]);for(_0x7246x4=1;_0x7246x4<_0x7246x5-2;_0x7246x4++){var _0x7246x9=_0x7246x3[_0x7246x4],_0x7246xa=_0x7246x3[_0x7246x4+1];_0x7246x2[_0xa4d4[1278]](_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]],(_0x7246x9[_0xa4d4[235]]+_0x7246xa[_0xa4d4[235]])/2,(_0x7246x9[_0xa4d4[236]]+_0x7246xa[_0xa4d4[236]])/2);};_0x7246x9=_0x7246x3[_0x7246x5-2];_0x7246xa=_0x7246x3[_0x7246x5-1];_0x7246x2[_0xa4d4[1278]](_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]],_0x7246xa[_0xa4d4[235]],_0x7246xa[_0xa4d4[236]]);_0x7246x2[_0xa4d4[1336]]();};mxConnector[_0xa4d4[202]][_0xa4d4[1689]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x3[_0xa4d4[67]],_0x7246x9=_0x7246x4?_0x7246x3[1]:_0x7246x3[_0x7246x5-2];_0x7246x3=_0x7246x4?_0x7246x3[0]:_0x7246x3[_0x7246x5-1];var _0x7246x5=_0x7246x3[_0xa4d4[235]]-_0x7246x9[_0xa4d4[235]],_0x7246xa=_0x7246x3[_0xa4d4[236]]-_0x7246x9[_0xa4d4[236]],_0x7246x12=Math[_0xa4d4[160]](1,Math[_0xa4d4[428]](_0x7246x5*_0x7246x5+_0x7246xa*_0x7246xa)),_0x7246x9=_0x7246x5/_0x7246x12,_0x7246x5=_0x7246xa/_0x7246x12,_0x7246xa=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],_0x7246x4?mxConstants[_0xa4d4[1692]]:mxConstants[_0xa4d4[1693]],mxConstants.DEFAULT_MARKERSIZE),_0x7246x12=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],_0x7246x4?mxConstants[_0xa4d4[1694]]:mxConstants[_0xa4d4[1695]]);return mxMarker[_0xa4d4[1689]](_0x7246x2,this,_0x7246x12,_0x7246x3,_0x7246x9,_0x7246x5,_0x7246xa,_0x7246x4,this[_0xa4d4[1307]],0!=this[_0xa4d4[124]][_0x7246x4?mxConstants[_0xa4d4[1696]]:mxConstants[_0xa4d4[1697]]]);};mxConnector[_0xa4d4[202]][_0xa4d4[1612]]=function(_0x7246x2){mxShape[_0xa4d4[202]][_0xa4d4[1612]][_0xa4d4[183]](this,arguments);var _0x7246x3=0;mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants[_0xa4d4[217]]&&(_0x7246x3=mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants[_0xa4d4[217]]&&(_0x7246x3=Math[_0xa4d4[160]](_0x7246x3,mxUtils[_0xa4d4[1550]](this[_0xa4d4[124]],mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1);_0x7246x2[_0xa4d4[244]](Math[_0xa4d4[430]](_0x7246x3*this[_0xa4d4[255]]));};function mxSwimlane(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxShape[_0xa4d4[239]](this);this[_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[1334]]=_0x7246x3;this[_0xa4d4[1336]]=_0x7246x4;this[_0xa4d4[1307]]=null!=_0x7246x5?_0x7246x5:1;}mxUtils[_0xa4d4[1284]](mxSwimlane,mxShape);mxSwimlane[_0xa4d4[202]][_0xa4d4[1680]]=16;mxSwimlane[_0xa4d4[202]][_0xa4d4[1597]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2=Math[_0xa4d4[243]](_0x7246x9,mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return  new mxRectangle(_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x2);};mxSwimlane[_0xa4d4[202]][_0xa4d4[1614]]=function(){var _0x7246x2=mxShape[_0xa4d4[202]][_0xa4d4[1614]][_0xa4d4[183]](this,arguments);1!=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_HORIZONTAL,1)&&(_0x7246x2+=mxText[_0xa4d4[202]][_0xa4d4[1616]]);return _0x7246x2;};mxSwimlane[_0xa4d4[202]][_0xa4d4[1615]]=function(){return this[_0xa4d4[1614]]()};mxSwimlane[_0xa4d4[202]][_0xa4d4[1590]]=function(){return mxShape[_0xa4d4[202]][_0xa4d4[1590]][_0xa4d4[183]](this,arguments)||1!=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_HORIZONTAL,1)};mxSwimlane[_0xa4d4[202]][_0xa4d4[1603]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0xa4d4[1557]])/100;return 3*_0x7246x4*_0x7246x2;};mxSwimlane[_0xa4d4[202]][_0xa4d4[1595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=Math[_0xa4d4[243]](_0x7246x9,mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),_0x7246x12=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),_0x7246x13=1==mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_SWIMLANE_LINE,1),_0x7246x14=0;_0x7246x2[_0xa4d4[513]](_0x7246x3,_0x7246x4);this[_0xa4d4[1606]]?(_0x7246x14=this[_0xa4d4[1603]](_0x7246x5,_0x7246x9,_0x7246xa),this[_0xa4d4[1698]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x14,_0x7246x12,_0x7246x13)):this[_0xa4d4[1699]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13);_0x7246x12=mxUtils[_0xa4d4[433]](this[_0xa4d4[124]],mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);this[_0xa4d4[1700]](_0x7246x2,_0x7246x5,_0x7246xa,_0x7246x9,_0x7246x12);null!=this[_0xa4d4[618]]&&(_0x7246x9=this[_0xa4d4[1686]](_0x7246x3,_0x7246xa,_0x7246x5,_0x7246x9),_0x7246x2[_0xa4d4[618]](_0x7246x9[_0xa4d4[235]]-_0x7246x3,_0x7246x9[_0xa4d4[236]]-_0x7246x4,_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]],this[_0xa4d4[618]],!1,!1,!1));this[_0xa4d4[617]]&&(_0x7246x2[_0xa4d4[1267]](!1),this[_0xa4d4[1604]](_0x7246x2,0,0,_0x7246x5,_0x7246xa,_0x7246x14));};mxSwimlane[_0xa4d4[202]][_0xa4d4[1699]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13){_0x7246x12!=mxConstants[_0xa4d4[217]]&&(_0x7246x2[_0xa4d4[815]](),_0x7246x2[_0xa4d4[1245]](_0x7246x12),_0x7246x2[_0xa4d4[1319]](0,0,_0x7246x5,_0x7246x9),_0x7246x2[_0xa4d4[1337]](),_0x7246x2[_0xa4d4[1210]](),_0x7246x2[_0xa4d4[1267]](!1));_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](0,_0x7246xa);_0x7246x2[_0xa4d4[1277]](0,0);_0x7246x2[_0xa4d4[1277]](_0x7246x5,0);_0x7246x2[_0xa4d4[1277]](_0x7246x5,_0x7246xa);_0x7246x13&&_0x7246x2[_0xa4d4[268]]();_0x7246x2[_0xa4d4[1337]]();_0x7246xa<_0x7246x9&&_0x7246x12==mxConstants[_0xa4d4[217]]&&(_0x7246x2[_0xa4d4[1229]]= !1,_0x7246x2[_0xa4d4[1275]](),_0x7246x2[_0xa4d4[1276]](0,_0x7246xa),_0x7246x2[_0xa4d4[1277]](0,_0x7246x9),_0x7246x2[_0xa4d4[1277]](_0x7246x5,_0x7246x9),_0x7246x2[_0xa4d4[1277]](_0x7246x5,_0x7246xa),_0x7246x2[_0xa4d4[1336]]());};mxSwimlane[_0xa4d4[202]][_0xa4d4[1698]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){_0x7246x13!=mxConstants[_0xa4d4[217]]&&(_0x7246x2[_0xa4d4[815]](),_0x7246x2[_0xa4d4[1245]](_0x7246x13),_0x7246x2[_0xa4d4[1320]](0,0,_0x7246x5,_0x7246x9,_0x7246x12,_0x7246x12),_0x7246x2[_0xa4d4[1337]](),_0x7246x2[_0xa4d4[1210]](),_0x7246x2[_0xa4d4[1267]](!1));_0x7246x2[_0xa4d4[1275]]();_0x7246x2[_0xa4d4[1276]](_0x7246x5,_0x7246xa);_0x7246x2[_0xa4d4[1277]](_0x7246x5,_0x7246x12);_0x7246x2[_0xa4d4[1278]](_0x7246x5,0,_0x7246x5-Math[_0xa4d4[243]](_0x7246x5/2,_0x7246x12),0);_0x7246x2[_0xa4d4[1277]](Math[_0xa4d4[243]](_0x7246x5/2,_0x7246x12),0);_0x7246x2[_0xa4d4[1278]](0,0,0,_0x7246x12);_0x7246x2[_0xa4d4[1277]](0,_0x7246xa);_0x7246x14&&_0x7246x2[_0xa4d4[268]]();_0x7246x2[_0xa4d4[1337]]();_0x7246xa<_0x7246x9&&_0x7246x13==mxConstants[_0xa4d4[217]]&&(_0x7246x2[_0xa4d4[1229]]= !1,_0x7246x2[_0xa4d4[1275]](),_0x7246x2[_0xa4d4[1276]](0,_0x7246xa),_0x7246x2[_0xa4d4[1277]](0,_0x7246x9-_0x7246x12),_0x7246x2[_0xa4d4[1278]](0,_0x7246x9,Math[_0xa4d4[243]](_0x7246x5/2,_0x7246x12),_0x7246x9),_0x7246x2[_0xa4d4[1277]](_0x7246x5-Math[_0xa4d4[243]](_0x7246x5/2,_0x7246x12),_0x7246x9),_0x7246x2[_0xa4d4[1278]](_0x7246x5,_0x7246x9,_0x7246x5,_0x7246x9-_0x7246x12),_0x7246x2[_0xa4d4[1277]](_0x7246x5,_0x7246xa),_0x7246x2[_0xa4d4[1336]]());};mxSwimlane[_0xa4d4[202]][_0xa4d4[1700]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x9!=mxConstants[_0xa4d4[217]]&&(_0x7246x2[_0xa4d4[1249]](_0x7246x9),_0x7246x2[_0xa4d4[1251]](!0),_0x7246x2[_0xa4d4[1275]](),_0x7246x2[_0xa4d4[1276]](_0x7246x3,_0x7246x4),_0x7246x2[_0xa4d4[1277]](_0x7246x3,_0x7246x5),_0x7246x2[_0xa4d4[1336]](),_0x7246x2[_0xa4d4[1251]](!1))};mxSwimlane[_0xa4d4[202]][_0xa4d4[1686]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){return  new mxRectangle(_0x7246x2+_0x7246x4-this[_0xa4d4[1680]],_0x7246x3,this[_0xa4d4[1680]],this[_0xa4d4[1680]])};function mxGraphLayout(_0x7246x2){this[_0xa4d4[1179]]=_0x7246x2}mxGraphLayout[_0xa4d4[202]][_0xa4d4[1179]]=null;mxGraphLayout[_0xa4d4[202]][_0xa4d4[1701]]= !0;mxGraphLayout[_0xa4d4[202]][_0xa4d4[1101]]=null;mxGraphLayout[_0xa4d4[202]][_0xa4d4[1702]]=function(_0x7246x2,_0x7246x3,_0x7246x4){};mxGraphLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1703]]=function(){return this[_0xa4d4[1179]]};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1704]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x3);_0x7246x3=null!=_0x7246x4?_0x7246x4[_0xa4d4[124]]:this[_0xa4d4[1179]][_0xa4d4[1705]](_0x7246x3);return null!=_0x7246x3?_0x7246x3[_0x7246x2]:null;};mxGraphLayout[_0xa4d4[1706]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=_0x7246x4&&null!=_0x7246x2){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;_0x7246x9=_0x7246x9||[];var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2);if(null==_0x7246x9[_0x7246xa]&&(_0x7246x9[_0x7246xa]=_0x7246x2,_0x7246x5=_0x7246x4(_0x7246x2,_0x7246x5),null==_0x7246x5||_0x7246x5)){if(_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1707]](_0x7246x2),0<_0x7246x5){for(_0x7246xa=0;_0x7246xa<_0x7246x5;_0x7246xa++){var _0x7246x12=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1708]](_0x7246x2,_0x7246xa),_0x7246x13=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1709]](_0x7246x12,!0)==_0x7246x2;if(!_0x7246x3||_0x7246x13){_0x7246x13=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[1710]](_0x7246x12,!_0x7246x13),this[_0xa4d4[1706]](_0x7246x13,_0x7246x3,_0x7246x4,_0x7246x12,_0x7246x9)};}}};}};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1711]]=function(_0x7246x2){return this[_0xa4d4[1179]][_0xa4d4[1712]](_0x7246x2)};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1713]]=function(_0x7246x2){return !this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x2)||!this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x2)};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1715]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]();return !_0x7246x3[_0xa4d4[250]](_0x7246x2)||!this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x2)||null==_0x7246x3[_0xa4d4[1709]](_0x7246x2,!0)||null==_0x7246x3[_0xa4d4[1709]](_0x7246x2,!1);};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1716]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_NOEDGESTYLE,_0x7246x3?_0xa4d4[468]:_0xa4d4[500],[_0x7246x2])};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1718]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_ORTHOGONAL,_0x7246x3?_0xa4d4[500]:_0xa4d4[468],[_0x7246x2])};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1719]]=function(_0x7246x2){var _0x7246x3= new mxPoint;if(null!=_0x7246x2&&_0x7246x2!=this[_0xa4d4[1101]]){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]();if(_0x7246x4[_0xa4d4[1720]](this[_0xa4d4[1101]],_0x7246x2)){for(var _0x7246x5=_0x7246x4[_0xa4d4[1721]](_0x7246x2);_0x7246x2!=this[_0xa4d4[1101]];){_0x7246x3[_0xa4d4[235]]+=_0x7246x5[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]+=_0x7246x5[_0xa4d4[236]],_0x7246x2=_0x7246x4[_0xa4d4[1197]](_0x7246x2),_0x7246x5=_0x7246x4[_0xa4d4[1721]](_0x7246x2)}};};return _0x7246x3;};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1722]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[251]],_0x7246x5=_0x7246x4[_0xa4d4[1721]](_0x7246x2);null==_0x7246x5?(_0x7246x5= new mxGeometry,_0x7246x5[_0xa4d4[1723]](!0)):_0x7246x5=_0x7246x5[_0xa4d4[238]]();if(null!=this[_0xa4d4[1101]]&&null!=_0x7246x3){for(var _0x7246x9=_0x7246x4[_0xa4d4[1197]](_0x7246x2),_0x7246x9=this[_0xa4d4[1719]](_0x7246x9),_0x7246xa=0;_0x7246xa<_0x7246x3[_0xa4d4[67]];_0x7246xa++){_0x7246x3[_0x7246xa][_0xa4d4[235]]-=_0x7246x9[_0xa4d4[235]],_0x7246x3[_0x7246xa][_0xa4d4[236]]-=_0x7246x9[_0xa4d4[236]]}};_0x7246x5[_0xa4d4[1525]]=_0x7246x3;_0x7246x4[_0xa4d4[1724]](_0x7246x2,_0x7246x5);}};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1725]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x9=_0x7246x5[_0xa4d4[1721]](_0x7246x2),_0x7246xa=null;if(null!=_0x7246x9){_0x7246xa= new mxRectangle(_0x7246x3,_0x7246x4,_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]]);if(this[_0xa4d4[1701]]){var _0x7246x12=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);if(null!=_0x7246x12&&null!=_0x7246x12[_0xa4d4[963]]&&null!=_0x7246x12[_0xa4d4[963]][_0xa4d4[1563]]){var _0x7246x13=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x14=_0x7246x12[_0xa4d4[963]][_0xa4d4[1563]];_0x7246x12[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[235]]<_0x7246x12[_0xa4d4[235]]&&(_0x7246x3+=(_0x7246x12[_0xa4d4[235]]-_0x7246x14[_0xa4d4[235]])/_0x7246x13,_0x7246xa[_0xa4d4[117]]=_0x7246x14[_0xa4d4[117]]);_0x7246x12[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[236]]<_0x7246x12[_0xa4d4[236]]&&(_0x7246x4+=(_0x7246x12[_0xa4d4[236]]-_0x7246x14[_0xa4d4[236]])/_0x7246x13,_0x7246xa[_0xa4d4[119]]=_0x7246x14[_0xa4d4[119]]);};};null!=this[_0xa4d4[1101]]&&(_0x7246x12=_0x7246x5[_0xa4d4[1197]](_0x7246x2),null!=_0x7246x12&&_0x7246x12!=this[_0xa4d4[1101]]&&(_0x7246x12=this[_0xa4d4[1719]](_0x7246x12),_0x7246x3-=_0x7246x12[_0xa4d4[235]],_0x7246x4-=_0x7246x12[_0xa4d4[236]]));if(_0x7246x9[_0xa4d4[235]]!=_0x7246x3||_0x7246x9[_0xa4d4[236]]!=_0x7246x4){_0x7246x9=_0x7246x9[_0xa4d4[238]](),_0x7246x9[_0xa4d4[235]]=_0x7246x3,_0x7246x9[_0xa4d4[236]]=_0x7246x4,_0x7246x5[_0xa4d4[1724]](_0x7246x2,_0x7246x9)};};return _0x7246xa;};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1726]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1721]](_0x7246x2);if(this[_0xa4d4[1701]]){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);if(null!=_0x7246x4&&null!=_0x7246x4[_0xa4d4[963]]&&null!=_0x7246x4[_0xa4d4[963]][_0xa4d4[1563]]){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x9=_0x7246x4[_0xa4d4[963]][_0xa4d4[1563]],_0x7246xa=Math[_0xa4d4[160]](_0x7246x4[_0xa4d4[235]]-_0x7246x9[_0xa4d4[235]],0)/_0x7246x5,_0x7246x12=Math[_0xa4d4[160]](_0x7246x4[_0xa4d4[236]]-_0x7246x9[_0xa4d4[236]],0)/_0x7246x5,_0x7246x13=Math[_0xa4d4[160]](_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]]-(_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]),0)/_0x7246x5,_0x7246x4=Math[_0xa4d4[160]](_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]]-(_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]),0)/_0x7246x5,_0x7246x3= new mxRectangle(_0x7246x3[_0xa4d4[235]]-_0x7246xa,_0x7246x3[_0xa4d4[236]]-_0x7246x12,_0x7246x3[_0xa4d4[117]]+_0x7246xa+_0x7246x13,_0x7246x3[_0xa4d4[119]]+_0x7246x12+_0x7246x4)};};null!=this[_0xa4d4[1101]]&&(_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x2),_0x7246x3=_0x7246x3[_0xa4d4[238]](),null!=_0x7246x2&&_0x7246x2!=this[_0xa4d4[1101]]&&(_0x7246x2=this[_0xa4d4[1719]](_0x7246x2),_0x7246x3[_0xa4d4[235]]+=_0x7246x2[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]+=_0x7246x2[_0xa4d4[236]]));return  new mxRectangle(_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]],_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]);};mxGraphLayout[_0xa4d4[202]][_0xa4d4[1727]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[473]]();try{for(var _0x7246x4=_0x7246x2[_0xa4d4[67]]-1;0<=_0x7246x4;_0x7246x4--){var _0x7246x5=_0x7246x2[_0x7246x4],_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[1728]](_0x7246x5),_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[1729]](_0x7246x9),_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x5),_0x7246x13=0,_0x7246x14=0;if(this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x5)){var _0x7246x15=this[_0xa4d4[1179]][_0xa4d4[1731]](_0x7246x5),_0x7246x13=_0x7246x15[_0xa4d4[117]],_0x7246x14=_0x7246x15[_0xa4d4[119]]};null!=_0x7246xa&&null!=_0x7246x12&&(_0x7246x12=_0x7246x12[_0xa4d4[238]](),_0x7246x12[_0xa4d4[235]]=_0x7246x12[_0xa4d4[235]]+_0x7246xa[_0xa4d4[235]]-_0x7246x3-_0x7246x13,_0x7246x12[_0xa4d4[236]]=_0x7246x12[_0xa4d4[236]]+_0x7246xa[_0xa4d4[236]]-_0x7246x3-_0x7246x14,_0x7246x12[_0xa4d4[117]]=_0x7246xa[_0xa4d4[117]]+2*_0x7246x3+_0x7246x13,_0x7246x12[_0xa4d4[119]]=_0x7246xa[_0xa4d4[119]]+2*_0x7246x3+_0x7246x14,this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1724]](_0x7246x5,_0x7246x12),this[_0xa4d4[1179]][_0xa4d4[834]](_0x7246x9,_0x7246x3+_0x7246x13-_0x7246xa[_0xa4d4[235]],_0x7246x3+_0x7246x14-_0x7246xa[_0xa4d4[236]]));}}finally{this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[476]]()};};function mxStackLayout(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2);this[_0xa4d4[662]]=null!=_0x7246x3?_0x7246x3:!0;this[_0xa4d4[657]]=null!=_0x7246x4?_0x7246x4:0;this[_0xa4d4[1732]]=null!=_0x7246x5?_0x7246x5:0;this[_0xa4d4[1733]]=null!=_0x7246x9?_0x7246x9:0;this[_0xa4d4[467]]=null!=_0x7246xa?_0x7246xa:0;}mxStackLayout[_0xa4d4[202]]= new mxGraphLayout;mxStackLayout[_0xa4d4[202]][_0xa4d4[196]]=mxStackLayout;mxStackLayout[_0xa4d4[202]][_0xa4d4[662]]=null;mxStackLayout[_0xa4d4[202]][_0xa4d4[657]]=null;mxStackLayout[_0xa4d4[202]][_0xa4d4[1732]]=null;mxStackLayout[_0xa4d4[202]][_0xa4d4[1733]]=null;mxStackLayout[_0xa4d4[202]][_0xa4d4[467]]=0;mxStackLayout[_0xa4d4[202]][_0xa4d4[1734]]= !1;mxStackLayout[_0xa4d4[202]][_0xa4d4[1334]]= !1;mxStackLayout[_0xa4d4[202]][_0xa4d4[1735]]= !1;mxStackLayout[_0xa4d4[202]][_0xa4d4[1736]]= !1;mxStackLayout[_0xa4d4[202]][_0xa4d4[1333]]=null;mxStackLayout[_0xa4d4[202]][_0xa4d4[1737]]=function(){return this[_0xa4d4[662]]};mxStackLayout[_0xa4d4[202]][_0xa4d4[1702]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x9=_0x7246x5[_0xa4d4[1197]](_0x7246x2),_0x7246xa=this[_0xa4d4[1737]]();if(null!=_0x7246x2&&null!=_0x7246x9){var _0x7246x12=0,_0x7246x13=0,_0x7246x14=_0x7246x5[_0xa4d4[262]](_0x7246x9);_0x7246x3=_0x7246xa?_0x7246x3:_0x7246x4;_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x9);null!=_0x7246x12&&(_0x7246x3-=_0x7246xa?_0x7246x12[_0xa4d4[235]]:_0x7246x12[_0xa4d4[236]]);for(_0x7246x12=0;_0x7246x12<_0x7246x14;_0x7246x12++){if(_0x7246x4=_0x7246x5[_0xa4d4[263]](_0x7246x9,_0x7246x12),_0x7246x4!=_0x7246x2&&(_0x7246x4=_0x7246x5[_0xa4d4[1721]](_0x7246x4),null!=_0x7246x4)){_0x7246x4=_0x7246xa?_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]/2:_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]/2;if(_0x7246x13<_0x7246x3&&_0x7246x4>_0x7246x3){break };_0x7246x13=_0x7246x4;}};_0x7246xa=_0x7246x9[_0xa4d4[1738]](_0x7246x2);_0x7246xa=Math[_0xa4d4[160]](0,_0x7246x12-(_0x7246x12>_0x7246xa?1:0));_0x7246x5[_0xa4d4[99]](_0x7246x9,_0x7246x2,_0x7246xa);};};mxStackLayout[_0xa4d4[202]][_0xa4d4[1739]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x4=_0x7246x3[_0xa4d4[1721]](_0x7246x2);if(null!=this[_0xa4d4[1179]][_0xa4d4[526]]&&(null==_0x7246x4&&_0x7246x3[_0xa4d4[1740]](_0x7246x2)||_0x7246x2==this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1741]])){_0x7246x4= new mxRectangle(0,0,this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[359]]-1,this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[167]]-1)};return _0x7246x4;};mxStackLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[1737]](),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=this[_0xa4d4[1739]](_0x7246x2),_0x7246x9=0;null!=_0x7246x5&&(_0x7246x9=_0x7246x3?_0x7246x5[_0xa4d4[119]]:_0x7246x5[_0xa4d4[117]]);var _0x7246x9=_0x7246x9-(2*this[_0xa4d4[657]]+2*this[_0xa4d4[467]]),_0x7246xa=this[_0xa4d4[1732]]+this[_0xa4d4[467]],_0x7246x12=this[_0xa4d4[1733]]+this[_0xa4d4[467]];if(this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x2)){var _0x7246x13=this[_0xa4d4[1179]][_0xa4d4[1705]](_0x7246x2),_0x7246x14=mxUtils[_0xa4d4[433]](_0x7246x13,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),_0x7246x13=mxUtils[_0xa4d4[433]](_0x7246x13,mxConstants.STYLE_HORIZONTAL,!0);_0x7246x3==_0x7246x13&&(_0x7246x9-=_0x7246x14);_0x7246x3?_0x7246x12+=_0x7246x14:_0x7246xa+=_0x7246x14;};_0x7246x4[_0xa4d4[473]]();try{for(var _0x7246x14=0,_0x7246x13=null,_0x7246x15=_0x7246x4[_0xa4d4[262]](_0x7246x2),_0x7246x16=0;_0x7246x16<_0x7246x15;_0x7246x16++){var _0x7246x17=_0x7246x4[_0xa4d4[263]](_0x7246x2,_0x7246x16);if(!this[_0xa4d4[1713]](_0x7246x17)&&this[_0xa4d4[1711]](_0x7246x17)){var _0x7246x18=_0x7246x4[_0xa4d4[1721]](_0x7246x17);if(null!=_0x7246x18){_0x7246x18=_0x7246x18[_0xa4d4[238]]();if(null!=this[_0xa4d4[1333]]&&null!=_0x7246x13&&(_0x7246x3&&_0x7246x13[_0xa4d4[235]]+_0x7246x13[_0xa4d4[117]]+_0x7246x18[_0xa4d4[117]]+2*this[_0xa4d4[657]]>this[_0xa4d4[1333]]||!_0x7246x3&&_0x7246x13[_0xa4d4[236]]+_0x7246x13[_0xa4d4[119]]+_0x7246x18[_0xa4d4[119]]+2*this[_0xa4d4[657]]>this[_0xa4d4[1333]])){_0x7246x13=null,_0x7246x3?_0x7246x12+=_0x7246x14+this[_0xa4d4[657]]:_0x7246xa+=_0x7246x14+this[_0xa4d4[657]],_0x7246x14=0};_0x7246x14=Math[_0xa4d4[160]](_0x7246x14,_0x7246x3?_0x7246x18[_0xa4d4[119]]:_0x7246x18[_0xa4d4[117]]);null!=_0x7246x13?_0x7246x3?_0x7246x18[_0xa4d4[235]]=_0x7246x13[_0xa4d4[235]]+_0x7246x13[_0xa4d4[117]]+this[_0xa4d4[657]]:_0x7246x18[_0xa4d4[236]]=_0x7246x13[_0xa4d4[236]]+_0x7246x13[_0xa4d4[119]]+this[_0xa4d4[657]]:this[_0xa4d4[1734]]||(_0x7246x3?_0x7246x18[_0xa4d4[235]]=_0x7246xa:_0x7246x18[_0xa4d4[236]]=_0x7246x12);_0x7246x3?_0x7246x18[_0xa4d4[236]]=_0x7246x12:_0x7246x18[_0xa4d4[235]]=_0x7246xa;this[_0xa4d4[1334]]&&0<_0x7246x9&&(_0x7246x3?_0x7246x18[_0xa4d4[119]]=_0x7246x9:_0x7246x18[_0xa4d4[117]]=_0x7246x9);_0x7246x4[_0xa4d4[1724]](_0x7246x17,_0x7246x18);_0x7246x13=_0x7246x18;};};};this[_0xa4d4[1735]]&&null!=_0x7246x5&&null!=_0x7246x13&&!this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x2)?(_0x7246x5=_0x7246x5[_0xa4d4[238]](),_0x7246x3?_0x7246x5[_0xa4d4[117]]=_0x7246x13[_0xa4d4[235]]+_0x7246x13[_0xa4d4[117]]+this[_0xa4d4[657]]:_0x7246x5[_0xa4d4[119]]=_0x7246x13[_0xa4d4[236]]+_0x7246x13[_0xa4d4[119]]+this[_0xa4d4[657]],_0x7246x4[_0xa4d4[1724]](_0x7246x2,_0x7246x5)):this[_0xa4d4[1736]]&&(null!=_0x7246x5&&null!=_0x7246x13)&&(_0x7246x3?_0x7246x13[_0xa4d4[117]]=_0x7246x5[_0xa4d4[117]]-_0x7246x13[_0xa4d4[235]]-this[_0xa4d4[657]]:_0x7246x13[_0xa4d4[119]]=_0x7246x5[_0xa4d4[119]]-_0x7246x13[_0xa4d4[236]]-this[_0xa4d4[657]]);}finally{_0x7246x4[_0xa4d4[476]]()};}};function mxPartitionLayout(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2);this[_0xa4d4[662]]=null!=_0x7246x3?_0x7246x3:!0;this[_0xa4d4[657]]=_0x7246x4||0;this[_0xa4d4[467]]=_0x7246x5||0;}mxPartitionLayout[_0xa4d4[202]]= new mxGraphLayout;mxPartitionLayout[_0xa4d4[202]][_0xa4d4[196]]=mxPartitionLayout;mxPartitionLayout[_0xa4d4[202]][_0xa4d4[662]]=null;mxPartitionLayout[_0xa4d4[202]][_0xa4d4[657]]=null;mxPartitionLayout[_0xa4d4[202]][_0xa4d4[467]]=null;mxPartitionLayout[_0xa4d4[202]][_0xa4d4[1743]]= !0;mxPartitionLayout[_0xa4d4[202]][_0xa4d4[1737]]=function(){return this[_0xa4d4[662]]};mxPartitionLayout[_0xa4d4[202]][_0xa4d4[1702]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]();var _0x7246x5=_0x7246x4[_0xa4d4[1197]](_0x7246x2);if(null!=_0x7246x2&&null!=_0x7246x5){for(var _0x7246x9=0,_0x7246xa=0,_0x7246x12=_0x7246x4[_0xa4d4[262]](_0x7246x5),_0x7246x9=0;_0x7246x9<_0x7246x12;_0x7246x9++){var _0x7246x13=_0x7246x4[_0xa4d4[263]](_0x7246x5,_0x7246x9),_0x7246x13=this[_0xa4d4[1726]](_0x7246x13);if(null!=_0x7246x13){_0x7246x13=_0x7246x13[_0xa4d4[235]]+_0x7246x13[_0xa4d4[117]]/2;if(_0x7246xa<_0x7246x3&&_0x7246x13>_0x7246x3){break };_0x7246xa=_0x7246x13;};};_0x7246x3=_0x7246x5[_0xa4d4[1738]](_0x7246x2);_0x7246x3=Math[_0xa4d4[160]](0,_0x7246x9-(_0x7246x9>_0x7246x3?1:0));_0x7246x4[_0xa4d4[99]](_0x7246x5,_0x7246x2,_0x7246x3);};};mxPartitionLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1737]](),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=_0x7246x4[_0xa4d4[1721]](_0x7246x2);if(null!=this[_0xa4d4[1179]][_0xa4d4[526]]&&(null==_0x7246x5&&_0x7246x4[_0xa4d4[1740]](_0x7246x2)||_0x7246x2==this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1741]])){_0x7246x5= new mxRectangle(0,0,this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[359]]-1,this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[167]]-1)};if(null!=_0x7246x5){for(var _0x7246x9=[],_0x7246xa=_0x7246x4[_0xa4d4[262]](_0x7246x2),_0x7246x12=0;_0x7246x12<_0x7246xa;_0x7246x12++){var _0x7246x13=_0x7246x4[_0xa4d4[263]](_0x7246x2,_0x7246x12);!this[_0xa4d4[1713]](_0x7246x13)&&this[_0xa4d4[1711]](_0x7246x13)&&_0x7246x9[_0xa4d4[207]](_0x7246x13);};_0x7246xa=_0x7246x9[_0xa4d4[67]];if(0<_0x7246xa){var _0x7246x14=this[_0xa4d4[467]],_0x7246x15=this[_0xa4d4[467]],_0x7246x16=_0x7246x3?_0x7246x5[_0xa4d4[119]]:_0x7246x5[_0xa4d4[117]],_0x7246x16=_0x7246x16-2*this[_0xa4d4[467]];_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x2)?this[_0xa4d4[1179]][_0xa4d4[1731]](_0x7246x2): new mxRectangle;_0x7246x16-=_0x7246x3?_0x7246x2[_0xa4d4[119]]:_0x7246x2[_0xa4d4[117]];_0x7246x14+=_0x7246x2[_0xa4d4[117]];_0x7246x15+=_0x7246x2[_0xa4d4[119]];_0x7246x2=this[_0xa4d4[467]]+(_0x7246xa-1)*this[_0xa4d4[657]];_0x7246x5=_0x7246x3?(_0x7246x5[_0xa4d4[117]]-_0x7246x14-_0x7246x2)/_0x7246xa:(_0x7246x5[_0xa4d4[119]]-_0x7246x15-_0x7246x2)/_0x7246xa;if(0<_0x7246x5){_0x7246x4[_0xa4d4[473]]();try{for(_0x7246x12=0;_0x7246x12<_0x7246xa;_0x7246x12++){var _0x7246x13=_0x7246x9[_0x7246x12],_0x7246x17=_0x7246x4[_0xa4d4[1721]](_0x7246x13);null!=_0x7246x17&&(_0x7246x17=_0x7246x17[_0xa4d4[238]](),_0x7246x17[_0xa4d4[235]]=_0x7246x14,_0x7246x17[_0xa4d4[236]]=_0x7246x15,_0x7246x3?(this[_0xa4d4[1743]]&&(_0x7246x17[_0xa4d4[117]]=_0x7246x5,_0x7246x17[_0xa4d4[119]]=_0x7246x16),_0x7246x14+=_0x7246x5+this[_0xa4d4[657]]):(this[_0xa4d4[1743]]&&(_0x7246x17[_0xa4d4[119]]=_0x7246x5,_0x7246x17[_0xa4d4[117]]=_0x7246x16),_0x7246x15+=_0x7246x5+this[_0xa4d4[657]]),_0x7246x4[_0xa4d4[1724]](_0x7246x13,_0x7246x17));}}finally{_0x7246x4[_0xa4d4[476]]()};};};};};function mxCompactTreeLayout(_0x7246x2,_0x7246x3,_0x7246x4){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2);this[_0xa4d4[662]]=null!=_0x7246x3?_0x7246x3:!0;this[_0xa4d4[1744]]=null!=_0x7246x4?_0x7246x4:!1;}mxCompactTreeLayout[_0xa4d4[202]]= new mxGraphLayout;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[196]]=mxCompactTreeLayout;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[662]]=null;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1744]]=null;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1735]]= !0;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1745]]=10;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1746]]=null;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1747]]= !1;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1748]]=10;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1749]]=20;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1750]]= !0;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1751]]=5;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1752]]=4;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1753]]=8;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1754]]=4;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1755]]= !0;mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1713]]=function(_0x7246x2){return mxGraphLayout[_0xa4d4[202]][_0xa4d4[1713]][_0xa4d4[183]](this,arguments)||0==this[_0xa4d4[1179]][_0xa4d4[1756]](_0x7246x2)[_0xa4d4[67]]};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1737]]=function(){return this[_0xa4d4[662]]};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1101]]=_0x7246x2;var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]();if(null==_0x7246x3){if(0<this[_0xa4d4[1179]][_0xa4d4[264]](_0x7246x2,_0x7246x4[_0xa4d4[1197]](_0x7246x2),this[_0xa4d4[1744]],!this[_0xa4d4[1744]],!1)[_0xa4d4[67]]){_0x7246x3=_0x7246x2}else {var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1757]](_0x7246x2,!0,this[_0xa4d4[1744]]);if(0<_0x7246x5[_0xa4d4[67]]){for(var _0x7246x9=0;_0x7246x9<_0x7246x5[_0xa4d4[67]];_0x7246x9++){if(!this[_0xa4d4[1713]](_0x7246x5[_0x7246x9])&&0<this[_0xa4d4[1179]][_0xa4d4[264]](_0x7246x5[_0x7246x9],null,this[_0xa4d4[1744]],!this[_0xa4d4[1744]],!1)[_0xa4d4[67]]){_0x7246x3=_0x7246x5[_0x7246x9];break;}}};}};if(null!=_0x7246x3){this[_0xa4d4[1746]]=this[_0xa4d4[1735]]?{}:null;_0x7246x4[_0xa4d4[473]]();try{var _0x7246xa=this[_0xa4d4[1758]](_0x7246x3,_0x7246x2);if(null!=_0x7246xa){this[_0xa4d4[1759]](_0x7246xa);var _0x7246x12=this[_0xa4d4[1179]][_0xa4d4[1020]],_0x7246x5=_0x7246x12;if(!this[_0xa4d4[1747]]){var _0x7246x13=this[_0xa4d4[1726]](_0x7246x3);null!=_0x7246x13&&(_0x7246x12=_0x7246x13[_0xa4d4[235]],_0x7246x5=_0x7246x13[_0xa4d4[236]]);};_0x7246x13=null;_0x7246x13=this[_0xa4d4[1737]]()?this[_0xa4d4[1760]](_0x7246xa,_0x7246x12,_0x7246x5):this[_0xa4d4[1761]](_0x7246xa,null,_0x7246x12,_0x7246x5);if(null!=_0x7246x13){var _0x7246x14=_0x7246x9=0;0>_0x7246x13[_0xa4d4[235]]&&(_0x7246x9=Math[_0xa4d4[425]](_0x7246x12-_0x7246x13[_0xa4d4[235]]));0>_0x7246x13[_0xa4d4[236]]&&(_0x7246x14=Math[_0xa4d4[425]](_0x7246x5-_0x7246x13[_0xa4d4[236]]));(0!=_0x7246x9||0!=_0x7246x14)&&this[_0xa4d4[1762]](_0x7246xa,_0x7246x9,_0x7246x14);this[_0xa4d4[1735]]&&this[_0xa4d4[1763]]();this[_0xa4d4[1755]]&&this[_0xa4d4[1764]](_0x7246xa);};};}finally{_0x7246x4[_0xa4d4[476]]()};};};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1762]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2[_0xa4d4[235]]+=_0x7246x3;_0x7246x2[_0xa4d4[236]]+=_0x7246x4;this[_0xa4d4[183]](_0x7246x2);for(_0x7246x2=_0x7246x2[_0xa4d4[247]];null!=_0x7246x2;){this[_0xa4d4[1762]](_0x7246x2,_0x7246x3,_0x7246x4),_0x7246x2=_0x7246x2[_0xa4d4[1765]]};};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1758]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:[];var _0x7246x5=mxCellPath[_0xa4d4[385]](_0x7246x2),_0x7246x9=null;if(null!=_0x7246x2&&null==_0x7246x4[_0x7246x5]&&!this[_0xa4d4[1713]](_0x7246x2)){_0x7246x4[_0x7246x5]=_0x7246x2;var _0x7246x9=this[_0xa4d4[1766]](_0x7246x2),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246xa=null;_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[264]](_0x7246x2,_0x7246x3,this[_0xa4d4[1744]],!this[_0xa4d4[1744]],!1,!0);for(var _0x7246x12=this[_0xa4d4[1179]][_0xa4d4[249]](),_0x7246x13=0;_0x7246x13<_0x7246x2[_0xa4d4[67]];_0x7246x13++){var _0x7246x14=_0x7246x2[_0x7246x13];if(!this[_0xa4d4[1715]](_0x7246x14)){this[_0xa4d4[1750]]&&this[_0xa4d4[1722]](_0x7246x14,null);this[_0xa4d4[1755]]&&(this[_0xa4d4[1716]](_0x7246x14,!1),this[_0xa4d4[1722]](_0x7246x14,null));var _0x7246x15=_0x7246x12[_0xa4d4[248]](_0x7246x14),_0x7246x14=null!=_0x7246x15?_0x7246x15[_0xa4d4[1710]](this[_0xa4d4[1744]]):_0x7246x12[_0xa4d4[1710]](_0x7246x14,this[_0xa4d4[1744]]),_0x7246x15=this[_0xa4d4[1758]](_0x7246x14,_0x7246x3,_0x7246x4);null!=_0x7246x15&&null!=_0x7246x5[_0xa4d4[1721]](_0x7246x14)&&(null==_0x7246xa?_0x7246x9[_0xa4d4[247]]=_0x7246x15:_0x7246xa[_0xa4d4[1765]]=_0x7246x15,_0x7246xa=_0x7246x15);};};};return _0x7246x9;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1759]]=function(_0x7246x2){if(null!=_0x7246x2){for(var _0x7246x3=_0x7246x2[_0xa4d4[247]];null!=_0x7246x3;){this[_0xa4d4[1759]](_0x7246x3),_0x7246x3=_0x7246x3[_0xa4d4[1765]]};null!=_0x7246x2[_0xa4d4[247]]?this[_0xa4d4[1767]](_0x7246x2,this[_0xa4d4[234]](_0x7246x2)):this[_0xa4d4[1768]](_0x7246x2);}};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1760]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x2[_0xa4d4[235]]+=_0x7246x3+_0x7246x2[_0xa4d4[1769]];_0x7246x2[_0xa4d4[236]]+=_0x7246x4+_0x7246x2[_0xa4d4[1770]];_0x7246x5=this[_0xa4d4[183]](_0x7246x2,_0x7246x5);_0x7246x3=_0x7246x2[_0xa4d4[247]];if(null!=_0x7246x3){_0x7246x5=this[_0xa4d4[1760]](_0x7246x3,_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],_0x7246x5);_0x7246x4=_0x7246x2[_0xa4d4[236]]+_0x7246x3[_0xa4d4[1770]];for(var _0x7246x9=_0x7246x3[_0xa4d4[1765]];null!=_0x7246x9;){_0x7246x5=this[_0xa4d4[1760]](_0x7246x9,_0x7246x2[_0xa4d4[235]]+_0x7246x3[_0xa4d4[1769]],_0x7246x4,_0x7246x5),_0x7246x4+=_0x7246x9[_0xa4d4[1770]],_0x7246x9=_0x7246x9[_0xa4d4[1765]]};};return _0x7246x5;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1761]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[235]]+=_0x7246x4+_0x7246x2[_0xa4d4[1770]];_0x7246x2[_0xa4d4[236]]+=_0x7246x5+_0x7246x2[_0xa4d4[1769]];_0x7246x9=this[_0xa4d4[183]](_0x7246x2,_0x7246x9);_0x7246x3=_0x7246x2[_0xa4d4[247]];if(null!=_0x7246x3){_0x7246x9=this[_0xa4d4[1761]](_0x7246x3,_0x7246x2,_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],_0x7246x9);_0x7246x4=_0x7246x2[_0xa4d4[235]]+_0x7246x3[_0xa4d4[1770]];for(_0x7246x5=_0x7246x3[_0xa4d4[1765]];null!=_0x7246x5;){_0x7246x9=this[_0xa4d4[1761]](_0x7246x5,_0x7246x2,_0x7246x4,_0x7246x2[_0xa4d4[236]]+_0x7246x3[_0xa4d4[1769]],_0x7246x9),_0x7246x4+=_0x7246x5[_0xa4d4[1770]],_0x7246x5=_0x7246x5[_0xa4d4[1765]]};};return _0x7246x9;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1767]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1749]]+this[_0xa4d4[1748]],_0x7246x5=(_0x7246x3-_0x7246x2[_0xa4d4[117]])/2-this[_0xa4d4[1749]],_0x7246x9=_0x7246x5+_0x7246x2[_0xa4d4[117]]+2*this[_0xa4d4[1749]]-_0x7246x3;_0x7246x2[_0xa4d4[247]][_0xa4d4[1769]]=_0x7246x4+_0x7246x2[_0xa4d4[119]];_0x7246x2[_0xa4d4[247]][_0xa4d4[1770]]=_0x7246x9;_0x7246x2[_0xa4d4[1772]][_0xa4d4[1771]]=this[_0xa4d4[1773]](_0x7246x2[_0xa4d4[119]],0,this[_0xa4d4[1773]](_0x7246x4,_0x7246x9,_0x7246x2[_0xa4d4[1772]][_0xa4d4[1771]]));_0x7246x2[_0xa4d4[1772]][_0xa4d4[1774]]=this[_0xa4d4[1773]](_0x7246x2[_0xa4d4[119]],0,this[_0xa4d4[1773]](_0x7246x4,_0x7246x5,_0x7246x2[_0xa4d4[1772]][_0xa4d4[1774]]));};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1768]]=function(_0x7246x2){var _0x7246x3=2*this[_0xa4d4[1749]];_0x7246x2[_0xa4d4[1772]][_0xa4d4[1775]]=this[_0xa4d4[1773]](_0x7246x2[_0xa4d4[119]]+_0x7246x3,0);_0x7246x2[_0xa4d4[1772]][_0xa4d4[1771]]=_0x7246x2[_0xa4d4[1772]][_0xa4d4[1775]];_0x7246x2[_0xa4d4[1772]][_0xa4d4[1776]]=this[_0xa4d4[1773]](0,-_0x7246x2[_0xa4d4[117]]-_0x7246x3);_0x7246x2[_0xa4d4[1772]][_0xa4d4[1774]]=this[_0xa4d4[1773]](_0x7246x2[_0xa4d4[119]]+_0x7246x3,0,_0x7246x2[_0xa4d4[1772]][_0xa4d4[1776]]);};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[234]]=function(_0x7246x2){var _0x7246x3=2*this[_0xa4d4[1749]],_0x7246x4=_0x7246x2[_0xa4d4[247]];_0x7246x2[_0xa4d4[1772]]=_0x7246x4[_0xa4d4[1772]];for(var _0x7246x5=_0x7246x4[_0xa4d4[117]]+_0x7246x3,_0x7246x9=_0x7246x5,_0x7246x4=_0x7246x4[_0xa4d4[1765]];null!=_0x7246x4;){var _0x7246xa=this[_0xa4d4[1777]](_0x7246x2[_0xa4d4[1772]],_0x7246x4[_0xa4d4[1772]]);_0x7246x4[_0xa4d4[1770]]=_0x7246xa+_0x7246x5;_0x7246x4[_0xa4d4[1769]]=0;_0x7246x5=_0x7246x4[_0xa4d4[117]]+_0x7246x3;_0x7246x9+=_0x7246xa+_0x7246x5;_0x7246x4=_0x7246x4[_0xa4d4[1765]];};return _0x7246x9;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1777]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=0,_0x7246x5=0,_0x7246x9=0,_0x7246xa=_0x7246x2[_0xa4d4[1774]],_0x7246x12=_0x7246x3[_0xa4d4[1771]];null!=_0x7246x12&&null!=_0x7246xa;){var _0x7246x13=this[_0xa4d4[1368]](_0x7246x4,_0x7246x5,_0x7246x12[_0xa4d4[1126]],_0x7246x12[_0xa4d4[1125]],_0x7246xa[_0xa4d4[1126]],_0x7246xa[_0xa4d4[1125]]),_0x7246x5=_0x7246x5+_0x7246x13,_0x7246x9=_0x7246x9+_0x7246x13;_0x7246x4+_0x7246x12[_0xa4d4[1126]]<=_0x7246xa[_0xa4d4[1126]]?(_0x7246x4+=_0x7246x12[_0xa4d4[1126]],_0x7246x5+=_0x7246x12[_0xa4d4[1125]],_0x7246x12=_0x7246x12[_0xa4d4[1765]]):(_0x7246x4-=_0x7246xa[_0xa4d4[1126]],_0x7246x5-=_0x7246xa[_0xa4d4[1125]],_0x7246xa=_0x7246xa[_0xa4d4[1765]]);};null!=_0x7246x12?(_0x7246x4=this[_0xa4d4[1778]](_0x7246x2[_0xa4d4[1775]],0,0,_0x7246x12,_0x7246x4,_0x7246x5),_0x7246x2[_0xa4d4[1775]]=null!=_0x7246x4[_0xa4d4[1765]]?_0x7246x3[_0xa4d4[1775]]:_0x7246x4,_0x7246x2[_0xa4d4[1776]]=_0x7246x3[_0xa4d4[1776]]):(_0x7246x4=this[_0xa4d4[1778]](_0x7246x3[_0xa4d4[1776]],_0x7246x4,_0x7246x5,_0x7246xa,0,0),null==_0x7246x4[_0xa4d4[1765]]&&(_0x7246x2[_0xa4d4[1776]]=_0x7246x4));_0x7246x2[_0xa4d4[1774]]=_0x7246x3[_0xa4d4[1774]];return _0x7246x9;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1368]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){var _0x7246x12=0;if(_0x7246x9<=_0x7246x2||0>=_0x7246x2+_0x7246x4){return 0};_0x7246x12=0<_0x7246x9*_0x7246x5-_0x7246x4*_0x7246xa?0>_0x7246x2?_0x7246x2*_0x7246x5/_0x7246x4-_0x7246x3:0<_0x7246x2?_0x7246x2*_0x7246xa/_0x7246x9-_0x7246x3:-_0x7246x3:_0x7246x9<_0x7246x2+_0x7246x4?_0x7246xa-(_0x7246x3+(_0x7246x9-_0x7246x2)*_0x7246x5/_0x7246x4):_0x7246x9>_0x7246x2+_0x7246x4?(_0x7246x4+_0x7246x2)*_0x7246xa/_0x7246x9-(_0x7246x3+_0x7246x5):_0x7246xa-(_0x7246x3+_0x7246x5);return 0<_0x7246x12?_0x7246x12:0;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1778]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x3=_0x7246x9+_0x7246x5[_0xa4d4[1126]]-_0x7246x3;_0x7246x9=_0x7246x9=0;0==_0x7246x5[_0xa4d4[1126]]?_0x7246x9=_0x7246x5[_0xa4d4[1125]]:(_0x7246x9=_0x7246x3*_0x7246x5[_0xa4d4[1125]],_0x7246x9/=_0x7246x5[_0xa4d4[1126]]);_0x7246x3=this[_0xa4d4[1773]](_0x7246x3,_0x7246x9,_0x7246x5[_0xa4d4[1765]]);_0x7246x2[_0xa4d4[1765]]=this[_0xa4d4[1773]](0,_0x7246xa+_0x7246x5[_0xa4d4[1125]]-_0x7246x9-_0x7246x4,_0x7246x3);return _0x7246x3;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1766]]=function(_0x7246x2){var _0x7246x3={};_0x7246x3[_0xa4d4[246]]=_0x7246x2;_0x7246x3[_0xa4d4[235]]=0;_0x7246x3[_0xa4d4[236]]=0;_0x7246x3[_0xa4d4[117]]=0;_0x7246x3[_0xa4d4[119]]=0;_0x7246x2=this[_0xa4d4[1726]](_0x7246x2);null!=_0x7246x2&&(this[_0xa4d4[1737]]()?(_0x7246x3[_0xa4d4[117]]=_0x7246x2[_0xa4d4[119]],_0x7246x3[_0xa4d4[119]]=_0x7246x2[_0xa4d4[117]]):(_0x7246x3[_0xa4d4[117]]=_0x7246x2[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]=_0x7246x2[_0xa4d4[119]]));_0x7246x3[_0xa4d4[1769]]=0;_0x7246x3[_0xa4d4[1770]]=0;_0x7246x3[_0xa4d4[1772]]={};return _0x7246x3;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[183]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=_0x7246x2[_0xa4d4[246]],_0x7246x9=_0x7246x4[_0xa4d4[1721]](_0x7246x5);null!=_0x7246x5&&null!=_0x7246x9&&(this[_0xa4d4[1711]](_0x7246x5)&&(_0x7246x9=this[_0xa4d4[1725]](_0x7246x5,_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]),this[_0xa4d4[1735]]&&(_0x7246x4=_0x7246x4[_0xa4d4[1197]](_0x7246x5),_0x7246x5=mxCellPath[_0xa4d4[385]](_0x7246x4),null==this[_0xa4d4[1746]][_0x7246x5]&&(this[_0xa4d4[1746]][_0x7246x5]=_0x7246x4))),_0x7246x3=null==_0x7246x3? new mxRectangle(_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]],_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]]): new mxRectangle(Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[235]],_0x7246x9[_0xa4d4[235]]),Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[236]],_0x7246x9[_0xa4d4[236]]),Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]],_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]]),Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]],_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]])));return _0x7246x3;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1773]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5={};_0x7246x5[_0xa4d4[1126]]=_0x7246x2;_0x7246x5[_0xa4d4[1125]]=_0x7246x3;_0x7246x5[_0xa4d4[1765]]=_0x7246x4;return _0x7246x5;};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1763]]=function(){var _0x7246x2=[],_0x7246x3;for(_0x7246x3 in this[_0xa4d4[1746]]){_0x7246x2[_0xa4d4[207]](this[_0xa4d4[1746]][_0x7246x3])};this[_0xa4d4[1727]](mxUtils[_0xa4d4[1779]](_0x7246x2,!0),this[_0xa4d4[1745]]);};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1764]]=function(_0x7246x2){this[_0xa4d4[1780]](_0x7246x2);for(_0x7246x2=_0x7246x2[_0xa4d4[247]];null!=_0x7246x2;){this[_0xa4d4[1764]](_0x7246x2),_0x7246x2=_0x7246x2[_0xa4d4[1765]]};};mxCompactTreeLayout[_0xa4d4[202]][_0xa4d4[1780]]=function(_0x7246x2){for(var _0x7246x3=_0x7246x2[_0xa4d4[247]],_0x7246x4=_0x7246x2[_0xa4d4[246]],_0x7246x5=0,_0x7246x9=[];null!=_0x7246x3;){_0x7246x5++;var _0x7246xa=_0x7246x3[_0xa4d4[235]];this[_0xa4d4[662]]&&(_0x7246xa=_0x7246x3[_0xa4d4[236]]);_0x7246x9[_0xa4d4[207]]( new WeightedCellSorter(_0x7246x3,_0x7246xa));_0x7246x3=_0x7246x3[_0xa4d4[1765]];};_0x7246x9[_0xa4d4[470]](WeightedCellSorter[_0xa4d4[202]][_0xa4d4[469]]);var _0x7246xa=_0x7246x2[_0xa4d4[117]],_0x7246x12=(_0x7246x5+1)*this[_0xa4d4[1751]];_0x7246xa>_0x7246x12+2*this[_0xa4d4[1751]]&&(_0x7246xa-=2*this[_0xa4d4[1751]]);_0x7246x2=_0x7246xa/_0x7246x5;_0x7246x3=_0x7246x2/2;_0x7246xa>_0x7246x12+2*this[_0xa4d4[1751]]&&(_0x7246x3+=this[_0xa4d4[1751]]);for(var _0x7246xa=this[_0xa4d4[1753]]-this[_0xa4d4[1752]],_0x7246x12=0,_0x7246x13=this[_0xa4d4[1726]](_0x7246x4),_0x7246x14=0;_0x7246x14<_0x7246x9[_0xa4d4[67]];_0x7246x14++){for(var _0x7246x15=_0x7246x9[_0x7246x14][_0xa4d4[246]][_0xa4d4[246]],_0x7246x16=this[_0xa4d4[1726]](_0x7246x15),_0x7246x15=this[_0xa4d4[1179]][_0xa4d4[1781]](_0x7246x4,_0x7246x15,!1),_0x7246x17=[],_0x7246x18=0,_0x7246x19=0,_0x7246x1a=0;_0x7246x1a<_0x7246x15[_0xa4d4[67]];_0x7246x1a++){this[_0xa4d4[662]]?(_0x7246x18=_0x7246x13[_0xa4d4[235]]+_0x7246x13[_0xa4d4[117]],_0x7246x19=_0x7246x13[_0xa4d4[236]]+_0x7246x3,_0x7246x17[_0xa4d4[207]]( new mxPoint(_0x7246x18,_0x7246x19)),_0x7246x18=_0x7246x13[_0xa4d4[235]]+_0x7246x13[_0xa4d4[117]]+_0x7246xa,_0x7246x17[_0xa4d4[207]]( new mxPoint(_0x7246x18,_0x7246x19)),_0x7246x19=_0x7246x16[_0xa4d4[236]]+_0x7246x16[_0xa4d4[119]]/2):(_0x7246x18=_0x7246x13[_0xa4d4[235]]+_0x7246x3,_0x7246x19=_0x7246x13[_0xa4d4[236]]+_0x7246x13[_0xa4d4[119]],_0x7246x17[_0xa4d4[207]]( new mxPoint(_0x7246x18,_0x7246x19)),_0x7246x19=_0x7246x13[_0xa4d4[236]]+_0x7246x13[_0xa4d4[119]]+_0x7246xa,_0x7246x17[_0xa4d4[207]]( new mxPoint(_0x7246x18,_0x7246x19)),_0x7246x18=_0x7246x16[_0xa4d4[235]]+_0x7246x16[_0xa4d4[117]]/2),_0x7246x17[_0xa4d4[207]]( new mxPoint(_0x7246x18,_0x7246x19)),this[_0xa4d4[1722]](_0x7246x15[_0x7246x1a],_0x7246x17)};_0x7246x14<_0x7246x5/2?_0x7246xa+=this[_0xa4d4[1752]]:_0x7246x14>_0x7246x5/2&&(_0x7246xa-=this[_0xa4d4[1752]]);_0x7246x3+=_0x7246x2;_0x7246x12=Math[_0xa4d4[160]](_0x7246x12,_0x7246xa);};};function WeightedCellSorter(_0x7246x2,_0x7246x3){this[_0xa4d4[246]]=_0x7246x2;this[_0xa4d4[1782]]=_0x7246x3;}WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1782]]=0;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1783]]= !1;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1784]]= !1;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1785]]=null;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[246]]=null;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[469]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2&&null!=_0x7246x3?_0x7246x3[_0xa4d4[1782]]>_0x7246x2[_0xa4d4[1782]]?1:_0x7246x3[_0xa4d4[1782]]<_0x7246x2[_0xa4d4[1782]]?-1:_0x7246x3[_0xa4d4[1783]]?1:-1:0};function mxFastOrganicLayout(_0x7246x2){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2)}mxFastOrganicLayout[_0xa4d4[202]]= new mxGraphLayout;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[196]]=mxFastOrganicLayout;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1786]]= !0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1750]]= !0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1787]]= !0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1788]]=50;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1789]]=0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1790]]=2;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1791]]=500;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1792]]=4;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1793]]=200;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1794]]=0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1795]]=0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1796]]=0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1797]]= !0;mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1713]]=function(_0x7246x2){return mxGraphLayout[_0xa4d4[202]][_0xa4d4[1713]][_0xa4d4[183]](this,arguments)||0==this[_0xa4d4[1179]][_0xa4d4[1756]](_0x7246x2)[_0xa4d4[67]]};mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]();this[_0xa4d4[1798]]=[];for(var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1728]](_0x7246x2),_0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]];_0x7246x5++){this[_0xa4d4[1713]](_0x7246x4[_0x7246x5])||this[_0xa4d4[1798]][_0xa4d4[207]](_0x7246x4[_0x7246x5])};var _0x7246x9=this[_0xa4d4[1786]]?this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[1799]](this[_0xa4d4[1798]]):null,_0x7246xa=this[_0xa4d4[1798]][_0xa4d4[67]];this[_0xa4d4[1800]]=[];this[_0xa4d4[1801]]=[];this[_0xa4d4[1802]]=[];this[_0xa4d4[1803]]=[];this[_0xa4d4[1804]]=[];this[_0xa4d4[1805]]=[];this[_0xa4d4[1806]]=[];this[_0xa4d4[1807]]=[];0.0010>this[_0xa4d4[1788]]&&(this[_0xa4d4[1788]]=0.0010);this[_0xa4d4[1789]]=this[_0xa4d4[1788]]*this[_0xa4d4[1788]];for(_0x7246x5=0;_0x7246x5<this[_0xa4d4[1798]][_0xa4d4[67]];_0x7246x5++){var _0x7246x12=this[_0xa4d4[1798]][_0x7246x5];this[_0xa4d4[1803]][_0x7246x5]=[];var _0x7246x13=mxCellPath[_0xa4d4[385]](_0x7246x12);this[_0xa4d4[1800]][_0x7246x13]=_0x7246x5;var _0x7246x14=this[_0xa4d4[1726]](_0x7246x12),_0x7246x15=_0x7246x14[_0xa4d4[117]],_0x7246x16=_0x7246x14[_0xa4d4[119]],_0x7246x17=_0x7246x14[_0xa4d4[235]],_0x7246x18=_0x7246x14[_0xa4d4[236]];this[_0xa4d4[1803]][_0x7246x5][0]=_0x7246x17+_0x7246x15/2;this[_0xa4d4[1803]][_0x7246x5][1]=_0x7246x18+_0x7246x16/2;this[_0xa4d4[1806]][_0x7246x5]=Math[_0xa4d4[243]](_0x7246x15,_0x7246x16);this[_0xa4d4[1807]][_0x7246x5]=this[_0xa4d4[1806]][_0x7246x5]*this[_0xa4d4[1806]][_0x7246x5];};_0x7246x3[_0xa4d4[473]]();try{for(_0x7246x5=0;_0x7246x5<_0x7246xa;_0x7246x5++){this[_0xa4d4[1801]][_0x7246x5]=0;this[_0xa4d4[1802]][_0x7246x5]=0;this[_0xa4d4[1804]][_0x7246x5]=this[_0xa4d4[1711]](this[_0xa4d4[1798]][_0x7246x5]);var _0x7246x19=this[_0xa4d4[1179]][_0xa4d4[1756]](this[_0xa4d4[1798]][_0x7246x5],_0x7246x2),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1808]](_0x7246x19,this[_0xa4d4[1798]][_0x7246x5]);this[_0xa4d4[1805]][_0x7246x5]=[];for(_0x7246x15=0;_0x7246x15<_0x7246x4[_0xa4d4[67]];_0x7246x15++){this[_0xa4d4[1750]]&&this[_0xa4d4[1179]][_0xa4d4[1809]](_0x7246x19[_0x7246x15]);this[_0xa4d4[1787]]&&this[_0xa4d4[1716]](_0x7246x19[_0x7246x15],!1);var _0x7246x13=mxCellPath[_0xa4d4[385]](_0x7246x4[_0x7246x15]),_0x7246x1a=this[_0xa4d4[1800]][_0x7246x13];this[_0xa4d4[1805]][_0x7246x5][_0x7246x15]=null!=_0x7246x1a?_0x7246x1a:_0x7246x5;};};this[_0xa4d4[1794]]=this[_0xa4d4[1793]];0==this[_0xa4d4[1795]]&&(this[_0xa4d4[1795]]=20*Math[_0xa4d4[428]](_0x7246xa));for(this[_0xa4d4[1796]]=0;this[_0xa4d4[1796]]<this[_0xa4d4[1795]];this[_0xa4d4[1796]]++){if(!this[_0xa4d4[1797]]){return };this[_0xa4d4[1810]]();this[_0xa4d4[1811]]();this[_0xa4d4[1812]]();this[_0xa4d4[1813]]();};_0x7246x2=_0x7246x4=null;for(_0x7246x5=0;_0x7246x5<this[_0xa4d4[1798]][_0xa4d4[67]];_0x7246x5++){_0x7246x12=this[_0xa4d4[1798]][_0x7246x5],this[_0xa4d4[1711]](_0x7246x12)&&(_0x7246x14=this[_0xa4d4[1726]](_0x7246x12),null!=_0x7246x14&&(this[_0xa4d4[1803]][_0x7246x5][0]-=_0x7246x14[_0xa4d4[117]]/2,this[_0xa4d4[1803]][_0x7246x5][1]-=_0x7246x14[_0xa4d4[119]]/2,_0x7246x17=this[_0xa4d4[1179]][_0xa4d4[1021]](this[_0xa4d4[1803]][_0x7246x5][0]),_0x7246x18=this[_0xa4d4[1179]][_0xa4d4[1021]](this[_0xa4d4[1803]][_0x7246x5][1]),this[_0xa4d4[1725]](_0x7246x12,_0x7246x17,_0x7246x18),_0x7246x4=null==_0x7246x4?_0x7246x17:Math[_0xa4d4[243]](_0x7246x4,_0x7246x17),_0x7246x2=null==_0x7246x2?_0x7246x18:Math[_0xa4d4[243]](_0x7246x2,_0x7246x18)))};_0x7246x5=-(_0x7246x4||0)+1;_0x7246x12=-(_0x7246x2||0)+1;null!=_0x7246x9&&(_0x7246x5+=_0x7246x9[_0xa4d4[235]],_0x7246x12+=_0x7246x9[_0xa4d4[236]]);this[_0xa4d4[1179]][_0xa4d4[834]](this[_0xa4d4[1798]],_0x7246x5,_0x7246x12);}finally{_0x7246x3[_0xa4d4[476]]()};};mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1812]]=function(){for(var _0x7246x2=0;_0x7246x2<this[_0xa4d4[1798]][_0xa4d4[67]];_0x7246x2++){if(this[_0xa4d4[1804]][_0x7246x2]){var _0x7246x3=Math[_0xa4d4[428]](this[_0xa4d4[1801]][_0x7246x2]*this[_0xa4d4[1801]][_0x7246x2]+this[_0xa4d4[1802]][_0x7246x2]*this[_0xa4d4[1802]][_0x7246x2]);0.0010>_0x7246x3&&(_0x7246x3=0.0010);var _0x7246x4=this[_0xa4d4[1801]][_0x7246x2]/_0x7246x3*Math[_0xa4d4[243]](_0x7246x3,this[_0xa4d4[1794]]),_0x7246x3=this[_0xa4d4[1802]][_0x7246x2]/_0x7246x3*Math[_0xa4d4[243]](_0x7246x3,this[_0xa4d4[1794]]);this[_0xa4d4[1801]][_0x7246x2]=0;this[_0xa4d4[1802]][_0x7246x2]=0;this[_0xa4d4[1803]][_0x7246x2][0]+=_0x7246x4;this[_0xa4d4[1803]][_0x7246x2][1]+=_0x7246x3;}}};mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1811]]=function(){for(var _0x7246x2=0;_0x7246x2<this[_0xa4d4[1798]][_0xa4d4[67]];_0x7246x2++){for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1805]][_0x7246x2][_0xa4d4[67]];_0x7246x3++){var _0x7246x4=this[_0xa4d4[1805]][_0x7246x2][_0x7246x3];if(_0x7246x2!=_0x7246x4&&this[_0xa4d4[1804]][_0x7246x2]&&this[_0xa4d4[1804]][_0x7246x4]){var _0x7246x5=this[_0xa4d4[1803]][_0x7246x2][0]-this[_0xa4d4[1803]][_0x7246x4][0],_0x7246x9=this[_0xa4d4[1803]][_0x7246x2][1]-this[_0xa4d4[1803]][_0x7246x4][1],_0x7246xa=_0x7246x5*_0x7246x5+_0x7246x9*_0x7246x9-this[_0xa4d4[1807]][_0x7246x2]-this[_0xa4d4[1807]][_0x7246x4];_0x7246xa<this[_0xa4d4[1792]]&&(_0x7246xa=this[_0xa4d4[1792]]);var _0x7246x12=Math[_0xa4d4[428]](_0x7246xa),_0x7246xa=_0x7246xa/this[_0xa4d4[1788]],_0x7246x5=_0x7246x5/_0x7246x12*_0x7246xa,_0x7246x9=_0x7246x9/_0x7246x12*_0x7246xa;this[_0xa4d4[1801]][_0x7246x2]-=_0x7246x5;this[_0xa4d4[1802]][_0x7246x2]-=_0x7246x9;this[_0xa4d4[1801]][_0x7246x4]+=_0x7246x5;this[_0xa4d4[1802]][_0x7246x4]+=_0x7246x9;};}}};mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1810]]=function(){for(var _0x7246x2=this[_0xa4d4[1798]][_0xa4d4[67]],_0x7246x3=0;_0x7246x3<_0x7246x2;_0x7246x3++){for(var _0x7246x4=_0x7246x3;_0x7246x4<_0x7246x2;_0x7246x4++){if(!this[_0xa4d4[1797]]){return };if(_0x7246x4!=_0x7246x3&&this[_0xa4d4[1804]][_0x7246x3]&&this[_0xa4d4[1804]][_0x7246x4]){var _0x7246x5=this[_0xa4d4[1803]][_0x7246x3][0]-this[_0xa4d4[1803]][_0x7246x4][0],_0x7246x9=this[_0xa4d4[1803]][_0x7246x3][1]-this[_0xa4d4[1803]][_0x7246x4][1];0==_0x7246x5&&(_0x7246x5=0.01+Math[_0xa4d4[1814]]());0==_0x7246x9&&(_0x7246x9=0.01+Math[_0xa4d4[1814]]());var _0x7246xa=Math[_0xa4d4[428]](_0x7246x5*_0x7246x5+_0x7246x9*_0x7246x9),_0x7246x12=_0x7246xa-this[_0xa4d4[1806]][_0x7246x3]-this[_0xa4d4[1806]][_0x7246x4];_0x7246x12>this[_0xa4d4[1791]]||(_0x7246x12<this[_0xa4d4[1790]]&&(_0x7246x12=this[_0xa4d4[1790]]),_0x7246x12=this[_0xa4d4[1789]]/_0x7246x12,_0x7246x5=_0x7246x5/_0x7246xa*_0x7246x12,_0x7246x9=_0x7246x9/_0x7246xa*_0x7246x12,this[_0xa4d4[1801]][_0x7246x3]+=_0x7246x5,this[_0xa4d4[1802]][_0x7246x3]+=_0x7246x9,this[_0xa4d4[1801]][_0x7246x4]-=_0x7246x5,this[_0xa4d4[1802]][_0x7246x4]-=_0x7246x9);};}}};mxFastOrganicLayout[_0xa4d4[202]][_0xa4d4[1813]]=function(){this[_0xa4d4[1794]]=this[_0xa4d4[1793]]*(1-this[_0xa4d4[1796]]/this[_0xa4d4[1795]])};function mxCircleLayout(_0x7246x2,_0x7246x3){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2);this[_0xa4d4[1806]]=null!=_0x7246x3?_0x7246x3:100;}mxCircleLayout[_0xa4d4[202]]= new mxGraphLayout;mxCircleLayout[_0xa4d4[202]][_0xa4d4[196]]=mxCircleLayout;mxCircleLayout[_0xa4d4[202]][_0xa4d4[1806]]=null;mxCircleLayout[_0xa4d4[202]][_0xa4d4[1815]]= !1;mxCircleLayout[_0xa4d4[202]][_0xa4d4[1732]]=0;mxCircleLayout[_0xa4d4[202]][_0xa4d4[1733]]=0;mxCircleLayout[_0xa4d4[202]][_0xa4d4[1750]]= !0;mxCircleLayout[_0xa4d4[202]][_0xa4d4[1787]]= !0;mxCircleLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]();_0x7246x3[_0xa4d4[473]]();try{for(var _0x7246x4=0,_0x7246x5=null,_0x7246x9=null,_0x7246xa=[],_0x7246x12=_0x7246x3[_0xa4d4[262]](_0x7246x2),_0x7246x13=0;_0x7246x13<_0x7246x12;_0x7246x13++){var _0x7246x14=_0x7246x3[_0xa4d4[263]](_0x7246x2,_0x7246x13);if(this[_0xa4d4[1713]](_0x7246x14)){this[_0xa4d4[1715]](_0x7246x14)||(this[_0xa4d4[1750]]&&this[_0xa4d4[1179]][_0xa4d4[1809]](_0x7246x14),this[_0xa4d4[1787]]&&this[_0xa4d4[1716]](_0x7246x14,!1))}else {_0x7246xa[_0xa4d4[207]](_0x7246x14);var _0x7246x15=this[_0xa4d4[1726]](_0x7246x14),_0x7246x5=null==_0x7246x5?_0x7246x15[_0xa4d4[236]]:Math[_0xa4d4[243]](_0x7246x5,_0x7246x15[_0xa4d4[236]]),_0x7246x9=null==_0x7246x9?_0x7246x15[_0xa4d4[235]]:Math[_0xa4d4[243]](_0x7246x9,_0x7246x15[_0xa4d4[235]]),_0x7246x4=Math[_0xa4d4[160]](_0x7246x4,Math[_0xa4d4[160]](_0x7246x15[_0xa4d4[117]],_0x7246x15[_0xa4d4[119]]));};};var _0x7246x16=this[_0xa4d4[1816]](_0x7246xa[_0xa4d4[67]],_0x7246x4);this[_0xa4d4[1815]]&&(_0x7246x9=this[_0xa4d4[1732]],_0x7246x5=this[_0xa4d4[1733]]);this[_0xa4d4[1817]](_0x7246xa,_0x7246x16,_0x7246x9,_0x7246x5);}finally{_0x7246x3[_0xa4d4[476]]()};};mxCircleLayout[_0xa4d4[202]][_0xa4d4[1816]]=function(_0x7246x2,_0x7246x3){return Math[_0xa4d4[160]](_0x7246x2*_0x7246x3/Math[_0xa4d4[424]],this[_0xa4d4[1806]])};mxCircleLayout[_0xa4d4[202]][_0xa4d4[1817]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){for(var _0x7246x9=_0x7246x2[_0xa4d4[67]],_0x7246xa=2*Math[_0xa4d4[424]]/_0x7246x9,_0x7246x12=0;_0x7246x12<_0x7246x9;_0x7246x12++){this[_0xa4d4[1711]](_0x7246x2[_0x7246x12])&&this[_0xa4d4[1725]](_0x7246x2[_0x7246x12],_0x7246x4+_0x7246x3+_0x7246x3*Math[_0xa4d4[427]](_0x7246x12*_0x7246xa),_0x7246x5+_0x7246x3+_0x7246x3*Math[_0xa4d4[426]](_0x7246x12*_0x7246xa))}};function mxParallelEdgeLayout(_0x7246x2){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2)}mxParallelEdgeLayout[_0xa4d4[202]]= new mxGraphLayout;mxParallelEdgeLayout[_0xa4d4[202]][_0xa4d4[196]]=mxParallelEdgeLayout;mxParallelEdgeLayout[_0xa4d4[202]][_0xa4d4[657]]=20;mxParallelEdgeLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[1818]](_0x7246x2);this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x3 in _0x7246x2){var _0x7246x4=_0x7246x2[_0x7246x3];1<_0x7246x4[_0xa4d4[67]]&&this[_0xa4d4[1759]](_0x7246x4);}}finally{this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[476]]()};};mxParallelEdgeLayout[_0xa4d4[202]][_0xa4d4[1818]]=function(_0x7246x2){for(var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x4=[],_0x7246x5=_0x7246x3[_0xa4d4[262]](_0x7246x2),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){var _0x7246xa=_0x7246x3[_0xa4d4[263]](_0x7246x2,_0x7246x9);if(!this[_0xa4d4[1715]](_0x7246xa)){var _0x7246x12=this[_0xa4d4[1819]](_0x7246xa);null!=_0x7246x12&&(null==_0x7246x4[_0x7246x12]&&(_0x7246x4[_0x7246x12]=[]),_0x7246x4[_0x7246x12][_0xa4d4[207]](_0x7246xa));};};return _0x7246x4;};mxParallelEdgeLayout[_0xa4d4[202]][_0xa4d4[1819]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[249]](),_0x7246x4=_0x7246x3[_0xa4d4[248]](_0x7246x2),_0x7246x5=null!=_0x7246x4?_0x7246x4[_0xa4d4[1710]](!0):_0x7246x3[_0xa4d4[1710]](_0x7246x2,!0);_0x7246x2=null!=_0x7246x4?_0x7246x4[_0xa4d4[1710]](!1):_0x7246x3[_0xa4d4[1710]](_0x7246x2,!1);return null!=_0x7246x5&&null!=_0x7246x2?(_0x7246x5=mxCellPath[_0xa4d4[385]](_0x7246x5),_0x7246x2=mxCellPath[_0xa4d4[385]](_0x7246x2),_0x7246x5>_0x7246x2?_0x7246x2+_0xa4d4[213]+_0x7246x5:_0x7246x5+_0xa4d4[213]+_0x7246x2):null;};mxParallelEdgeLayout[_0xa4d4[202]][_0xa4d4[1759]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[0],_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=_0x7246x4[_0xa4d4[1721]](_0x7246x4[_0xa4d4[1709]](_0x7246x3,!0)),_0x7246x9=_0x7246x4[_0xa4d4[1721]](_0x7246x4[_0xa4d4[1709]](_0x7246x3,!1));if(_0x7246x5==_0x7246x9){for(var _0x7246x3=_0x7246x5[_0xa4d4[235]]+_0x7246x5[_0xa4d4[117]]+this[_0xa4d4[657]],_0x7246x4=_0x7246x5[_0xa4d4[236]]+_0x7246x5[_0xa4d4[119]]/2,_0x7246xa=0;_0x7246xa<_0x7246x2[_0xa4d4[67]];_0x7246xa++){this[_0xa4d4[1820]](_0x7246x2[_0x7246xa],_0x7246x3,_0x7246x4),_0x7246x3+=this[_0xa4d4[657]]}}else {if(null!=_0x7246x5&&null!=_0x7246x9){for(var _0x7246x3=_0x7246x5[_0xa4d4[235]]+_0x7246x5[_0xa4d4[117]]/2,_0x7246x4=_0x7246x5[_0xa4d4[236]]+_0x7246x5[_0xa4d4[119]]/2,_0x7246xa=_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]]/2-_0x7246x3,_0x7246x12=_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]]/2-_0x7246x4,_0x7246x9=Math[_0xa4d4[428]](_0x7246xa*_0x7246xa+_0x7246x12*_0x7246x12),_0x7246x5=_0x7246x12*this[_0xa4d4[657]]/_0x7246x9,_0x7246x9=_0x7246xa*this[_0xa4d4[657]]/_0x7246x9,_0x7246x3=_0x7246x3+_0x7246xa/2+_0x7246x5*(_0x7246x2[_0xa4d4[67]]-1)/2,_0x7246x4=_0x7246x4+_0x7246x12/2-_0x7246x9*(_0x7246x2[_0xa4d4[67]]-1)/2,_0x7246xa=0;_0x7246xa<_0x7246x2[_0xa4d4[67]];_0x7246xa++){this[_0xa4d4[1820]](_0x7246x2[_0x7246xa],_0x7246x3,_0x7246x4),_0x7246x3-=_0x7246x5,_0x7246x4+=_0x7246x9}}};};mxParallelEdgeLayout[_0xa4d4[202]][_0xa4d4[1820]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[1179]][_0xa4d4[1712]](_0x7246x2)&&this[_0xa4d4[1722]](_0x7246x2,[ new mxPoint(_0x7246x3,_0x7246x4)])};function mxCompositeLayout(_0x7246x2,_0x7246x3,_0x7246x4){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2);this[_0xa4d4[1821]]=_0x7246x3;this[_0xa4d4[1822]]=_0x7246x4;}mxCompositeLayout[_0xa4d4[202]]= new mxGraphLayout;mxCompositeLayout[_0xa4d4[202]][_0xa4d4[196]]=mxCompositeLayout;mxCompositeLayout[_0xa4d4[202]][_0xa4d4[1821]]=null;mxCompositeLayout[_0xa4d4[202]][_0xa4d4[1822]]=null;mxCompositeLayout[_0xa4d4[202]][_0xa4d4[1702]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null!=this[_0xa4d4[1822]]?this[_0xa4d4[1822]][_0xa4d4[582]][_0xa4d4[183]](this[_0xa4d4[1822]],arguments):this[_0xa4d4[1821]][0][_0xa4d4[582]][_0xa4d4[183]](this[_0xa4d4[1821]][0],arguments)};mxCompositeLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]();_0x7246x3[_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<this[_0xa4d4[1821]][_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[1821]][_0x7246x4][_0xa4d4[350]][_0xa4d4[183]](this[_0xa4d4[1821]][_0x7246x4],arguments)}}finally{_0x7246x3[_0xa4d4[476]]()};};function mxEdgeLabelLayout(_0x7246x2,_0x7246x3){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2)}mxEdgeLabelLayout[_0xa4d4[202]]= new mxGraphLayout;mxEdgeLabelLayout[_0xa4d4[202]][_0xa4d4[196]]=mxEdgeLabelLayout;mxEdgeLabelLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){for(var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[441]],_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=[],_0x7246x9=[],_0x7246xa=_0x7246x4[_0xa4d4[262]](_0x7246x2),_0x7246x12=0;_0x7246x12<_0x7246xa;_0x7246x12++){var _0x7246x13=_0x7246x4[_0xa4d4[263]](_0x7246x2,_0x7246x12),_0x7246x14=_0x7246x3[_0xa4d4[248]](_0x7246x13);null!=_0x7246x14&&(this[_0xa4d4[1713]](_0x7246x13)?this[_0xa4d4[1715]](_0x7246x13)||_0x7246x5[_0xa4d4[207]](_0x7246x14):_0x7246x9[_0xa4d4[207]](_0x7246x14));};this[_0xa4d4[1823]](_0x7246x9,_0x7246x5);};mxEdgeLabelLayout[_0xa4d4[202]][_0xa4d4[1823]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]();_0x7246x4[_0xa4d4[473]]();try{for(var _0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=_0x7246x3[_0x7246x5];if(null!=_0x7246x9&&null!=_0x7246x9[_0xa4d4[963]]&&null!=_0x7246x9[_0xa4d4[963]][_0xa4d4[1563]]){for(var _0x7246xa=0;_0x7246xa<_0x7246x2[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x2[_0x7246xa];null!=_0x7246x12&&this[_0xa4d4[1824]](_0x7246x9,_0x7246x12);}};}}finally{_0x7246x4[_0xa4d4[476]]()};};mxEdgeLabelLayout[_0xa4d4[202]][_0xa4d4[1824]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]];if(mxUtils[_0xa4d4[1825]](_0x7246x5,_0x7246x3)){var _0x7246x9=-_0x7246x5[_0xa4d4[236]]-_0x7246x5[_0xa4d4[119]]+_0x7246x3[_0xa4d4[236]],_0x7246xa=-_0x7246x5[_0xa4d4[236]]+_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]],_0x7246x9=Math[_0xa4d4[425]](_0x7246x9)<Math[_0xa4d4[425]](_0x7246xa)?_0x7246x9:_0x7246xa,_0x7246xa=-_0x7246x5[_0xa4d4[235]]-_0x7246x5[_0xa4d4[117]]+_0x7246x3[_0xa4d4[235]],_0x7246x5=-_0x7246x5[_0xa4d4[235]]+_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]],_0x7246x5=Math[_0xa4d4[425]](_0x7246xa)<Math[_0xa4d4[425]](_0x7246x5)?_0x7246xa:_0x7246x5;Math[_0xa4d4[425]](_0x7246x5)<Math[_0xa4d4[425]](_0x7246x9)?_0x7246x9=0:_0x7246x5=0;_0x7246xa=_0x7246x4[_0xa4d4[1721]](_0x7246x2[_0xa4d4[246]]);null!=_0x7246xa&&(_0x7246xa=_0x7246xa[_0xa4d4[238]](),null!=_0x7246xa[_0xa4d4[1368]]?(_0x7246xa[_0xa4d4[1368]][_0xa4d4[235]]+=_0x7246x5,_0x7246xa[_0xa4d4[1368]][_0xa4d4[236]]+=_0x7246x9):_0x7246xa[_0xa4d4[1368]]= new mxPoint(_0x7246x5,_0x7246x9),_0x7246x4[_0xa4d4[1724]](_0x7246x2[_0xa4d4[246]],_0x7246xa));};};function mxGraphAbstractHierarchyCell(){this[_0xa4d4[235]]=[];this[_0xa4d4[236]]=[];this[_0xa4d4[1826]]=[];}mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1827]]= -1;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1828]]= -1;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[235]]=null;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[236]]=null;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[117]]=0;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[119]]=0;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1829]]=null;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1830]]=null;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1826]]=null;mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1831]]=function(_0x7246x2){return null};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1832]]=function(_0x7246x2){return null};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[250]]=function(){return !1};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1193]]=function(){return !1};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1833]]=function(_0x7246x2){return null};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1834]]=function(_0x7246x2,_0x7246x3){return null};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1835]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1193]]()?this[_0xa4d4[235]][0]=_0x7246x3:this[_0xa4d4[250]]()&&(this[_0xa4d4[235]][_0x7246x2-this[_0xa4d4[1828]]-1]=_0x7246x3)};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[730]]=function(_0x7246x2){return this[_0xa4d4[1193]]()?this[_0xa4d4[235]][0]:this[_0xa4d4[250]]()?this[_0xa4d4[235]][_0x7246x2-this[_0xa4d4[1828]]-1]:0};mxGraphAbstractHierarchyCell[_0xa4d4[202]][_0xa4d4[1836]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1193]]()?this[_0xa4d4[236]][0]=_0x7246x3:this[_0xa4d4[250]]()&&(this[_0xa4d4[236]][_0x7246x2-this[_0xa4d4[1828]]-1]=_0x7246x3)};function mxGraphHierarchyNode(_0x7246x2){mxGraphAbstractHierarchyCell[_0xa4d4[183]](this,arguments);this[_0xa4d4[246]]=_0x7246x2;}mxGraphHierarchyNode[_0xa4d4[202]]= new mxGraphAbstractHierarchyCell;mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[196]]=mxGraphHierarchyNode;mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[246]]=null;mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1837]]=[];mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1838]]=[];mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1839]]= !1;mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1840]]=function(_0x7246x2){return this[_0xa4d4[1827]]};mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1831]]=function(_0x7246x2){if(null==this[_0xa4d4[1829]]){this[_0xa4d4[1829]]=[];this[_0xa4d4[1829]][0]=[];for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1837]][_0xa4d4[67]];_0x7246x3++){var _0x7246x4=this[_0xa4d4[1837]][_0x7246x3];-1==_0x7246x4[_0xa4d4[1827]]||_0x7246x4[_0xa4d4[1827]]==_0x7246x2+1?this[_0xa4d4[1829]][0][_0xa4d4[207]](_0x7246x4[_0xa4d4[1097]]):this[_0xa4d4[1829]][0][_0xa4d4[207]](_0x7246x4);};};return this[_0xa4d4[1829]][0];};mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1832]]=function(_0x7246x2){if(null==this[_0xa4d4[1830]]){this[_0xa4d4[1830]]=[];this[_0xa4d4[1830]][0]=[];for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1838]][_0xa4d4[67]];_0x7246x3++){var _0x7246x4=this[_0xa4d4[1838]][_0x7246x3];-1==_0x7246x4[_0xa4d4[1828]]||_0x7246x4[_0xa4d4[1828]]==_0x7246x2-1?this[_0xa4d4[1830]][0][_0xa4d4[207]](_0x7246x4[_0xa4d4[772]]):this[_0xa4d4[1830]][0][_0xa4d4[207]](_0x7246x4);};};return this[_0xa4d4[1830]][0];};mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1193]]=function(){return !0};mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1833]]=function(_0x7246x2){return this[_0xa4d4[1826]][0]};mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1834]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1826]][0]=_0x7246x3};mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1720]]=function(_0x7246x2){if(null!=_0x7246x2&&null!=this[_0xa4d4[1839]]&&null!=_0x7246x2[_0xa4d4[1839]]&&this[_0xa4d4[1839]][_0xa4d4[67]]<_0x7246x2[_0xa4d4[1839]][_0xa4d4[67]]){if(this[_0xa4d4[1839]]==_0x7246x2[_0xa4d4[1839]]){return !0};if(null==this[_0xa4d4[1839]]||null==this[_0xa4d4[1839]]){return !1};for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1839]][_0xa4d4[67]];_0x7246x3++){if(this[_0xa4d4[1839]][_0x7246x3]!=_0x7246x2[_0xa4d4[1839]][_0x7246x3]){return !1}};return !0;};return !1;};mxGraphHierarchyNode[_0xa4d4[202]][_0xa4d4[1841]]=function(){return this[_0xa4d4[246]]};function mxGraphHierarchyEdge(_0x7246x2){mxGraphAbstractHierarchyCell[_0xa4d4[183]](this,arguments);this[_0xa4d4[1842]]=_0x7246x2;}mxGraphHierarchyEdge[_0xa4d4[202]]= new mxGraphAbstractHierarchyCell;mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[196]]=mxGraphHierarchyEdge;mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1842]]=null;mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1097]]=null;mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[772]]=null;mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1843]]= !1;mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1744]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[1097]];this[_0xa4d4[1097]]=this[_0xa4d4[772]];this[_0xa4d4[772]]=_0x7246x2;this[_0xa4d4[1843]]=!this[_0xa4d4[1843]];};mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1831]]=function(_0x7246x2){if(null==this[_0xa4d4[1829]]){this[_0xa4d4[1829]]=[];for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1826]][_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[1829]][_0x7246x3]=[],_0x7246x3==this[_0xa4d4[1826]][_0xa4d4[67]]-1?this[_0xa4d4[1829]][_0x7246x3][_0xa4d4[207]](this[_0xa4d4[1097]]):this[_0xa4d4[1829]][_0x7246x3][_0xa4d4[207]](this)};};return this[_0xa4d4[1829]][_0x7246x2-this[_0xa4d4[1828]]-1];};mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1832]]=function(_0x7246x2){if(null==this[_0xa4d4[1830]]){this[_0xa4d4[1830]]=[];for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1826]][_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[1830]][_0x7246x3]=[],0==_0x7246x3?this[_0xa4d4[1830]][_0x7246x3][_0xa4d4[207]](this[_0xa4d4[772]]):this[_0xa4d4[1830]][_0x7246x3][_0xa4d4[207]](this)};};return this[_0xa4d4[1830]][_0x7246x2-this[_0xa4d4[1828]]-1];};mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[250]]=function(){return !0};mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1833]]=function(_0x7246x2){return this[_0xa4d4[1826]][_0x7246x2-this[_0xa4d4[1828]]-1]};mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1834]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1826]][_0x7246x2-this[_0xa4d4[1828]]-1]=_0x7246x3};mxGraphHierarchyEdge[_0xa4d4[202]][_0xa4d4[1841]]=function(){return null!=this[_0xa4d4[1842]]&&0<this[_0xa4d4[1842]][_0xa4d4[67]]?this[_0xa4d4[1842]][0]:null};function mxGraphHierarchyModel(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2[_0xa4d4[1703]]();this[_0xa4d4[1844]]=_0x7246x9;this[_0xa4d4[1845]]=_0x7246x4;this[_0xa4d4[1101]]=_0x7246x5;this[_0xa4d4[1846]]={};this[_0xa4d4[1847]]={};this[_0xa4d4[1827]]=0;_0x7246x4=[];null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[1728]](_0x7246x5));this[_0xa4d4[1827]]=this[_0xa4d4[1848]];this[_0xa4d4[1849]](_0x7246x2,_0x7246x3,_0x7246x4);for(_0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){_0x7246x9=_0x7246x4[_0x7246x5][_0xa4d4[1838]];for(var _0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x9[_0x7246xa],_0x7246x13=_0x7246x12[_0xa4d4[1842]];if(null!=_0x7246x13&&0<_0x7246x13[_0xa4d4[67]]){var _0x7246x13=_0x7246x13[0],_0x7246x14=_0x7246x2[_0xa4d4[1710]](_0x7246x13,!1),_0x7246x14=mxCellPath[_0xa4d4[385]](_0x7246x14),_0x7246x14=this[_0xa4d4[1846]][_0x7246x14];_0x7246x4[_0x7246x5]==_0x7246x14&&(_0x7246x14=_0x7246x2[_0xa4d4[1710]](_0x7246x13,!0),_0x7246x14=mxCellPath[_0xa4d4[385]](_0x7246x14),_0x7246x14=this[_0xa4d4[1846]][_0x7246x14]);null!=_0x7246x14&&_0x7246x4[_0x7246x5]!=_0x7246x14&&(_0x7246x12[_0xa4d4[772]]=_0x7246x14,0==_0x7246x14[_0xa4d4[1837]][_0xa4d4[67]]&&(_0x7246x14[_0xa4d4[1837]]=[]),0>mxUtils[_0xa4d4[2]](_0x7246x14[_0xa4d4[1837]],_0x7246x12)&&_0x7246x14[_0xa4d4[1837]][_0xa4d4[207]](_0x7246x12));};};_0x7246x4[_0x7246x5][_0xa4d4[1826]][0]=1;};}mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1827]]=null;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1846]]=null;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1847]]=null;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1850]]=null;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1845]]=null;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1101]]=null;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1851]]=0;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1848]]=1E8;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1844]]= !1;mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1849]]=function(_0x7246x2,_0x7246x3,_0x7246x4){for(var _0x7246x5=_0x7246x2[_0xa4d4[1703]](),_0x7246x9=0;_0x7246x9<_0x7246x3[_0xa4d4[67]];_0x7246x9++){_0x7246x4[_0x7246x9]= new mxGraphHierarchyNode(_0x7246x3[_0x7246x9]);var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x3[_0x7246x9]);this[_0xa4d4[1846]][_0x7246xa]=_0x7246x4[_0x7246x9];_0x7246xa=_0x7246x2[_0xa4d4[264]](_0x7246x3[_0x7246x9]);_0x7246x4[_0x7246x9][_0xa4d4[1838]]=[];for(var _0x7246x12=0;_0x7246x12<_0x7246xa[_0xa4d4[67]];_0x7246x12++){var _0x7246x13=_0x7246x2[_0xa4d4[1710]](_0x7246xa[_0x7246x12],!1);if(_0x7246x13!=_0x7246x3[_0x7246x9]&&_0x7246x13!=_0x7246x3[_0x7246x9]&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1193]](_0x7246x13)&&!_0x7246x2[_0xa4d4[1713]](_0x7246x13)){var _0x7246x14=_0x7246x2[_0xa4d4[1781]](_0x7246x3[_0x7246x9],_0x7246x13,!1),_0x7246x15=_0x7246x2[_0xa4d4[1781]](_0x7246x3[_0x7246x9],_0x7246x13,!0),_0x7246x13=mxCellPath[_0xa4d4[385]](_0x7246x14[0]);if(null!=_0x7246x14&&0<_0x7246x14[_0xa4d4[67]]&&null==this[_0xa4d4[1847]][_0x7246x13]&&2*_0x7246x15[_0xa4d4[67]]>=_0x7246x14[_0xa4d4[67]]){for(var _0x7246x15= new mxGraphHierarchyEdge(_0x7246x14),_0x7246x16=0;_0x7246x16<_0x7246x14[_0xa4d4[67]];_0x7246x16++){var _0x7246x17=_0x7246x14[_0x7246x16],_0x7246x13=mxCellPath[_0xa4d4[385]](_0x7246x17);this[_0xa4d4[1847]][_0x7246x13]=_0x7246x15;_0x7246x5[_0xa4d4[1809]](_0x7246x17);_0x7246x2[_0xa4d4[1787]]&&(_0x7246x2[_0xa4d4[1716]](_0x7246x17,!1),_0x7246x2[_0xa4d4[1718]](_0x7246x17,!0));};_0x7246x15[_0xa4d4[1097]]=_0x7246x4[_0x7246x9];0>mxUtils[_0xa4d4[2]](_0x7246x4[_0x7246x9][_0xa4d4[1838]],_0x7246x15)&&_0x7246x4[_0x7246x9][_0xa4d4[1838]][_0xa4d4[207]](_0x7246x15);};};};_0x7246x4[_0x7246x9][_0xa4d4[1826]][0]=0;}};mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1852]]=function(){var _0x7246x2=[];if(null!=this[_0xa4d4[1845]]){for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1845]][_0xa4d4[67]];_0x7246x3++){var _0x7246x4=mxCellPath[_0xa4d4[385]](this[_0xa4d4[1845]][_0x7246x3]),_0x7246x4=this[_0xa4d4[1846]][_0x7246x4];null!=_0x7246x4&&_0x7246x2[_0xa4d4[207]](_0x7246x4);}};for(var _0x7246x5 in this[_0xa4d4[1846]]){_0x7246x4=this[_0xa4d4[1846]][_0x7246x5],_0x7246x4[_0xa4d4[1826]][0]= -1};for(var _0x7246x9=_0x7246x2[_0xa4d4[1853]]();0<_0x7246x2[_0xa4d4[67]];){var _0x7246x4=_0x7246x2[0],_0x7246xa,_0x7246x12;_0x7246xa=_0x7246x4[_0xa4d4[1837]];_0x7246x12=_0x7246x4[_0xa4d4[1838]];for(var _0x7246x13=!0,_0x7246x14=this[_0xa4d4[1848]],_0x7246x3=0;_0x7246x3<_0x7246xa[_0xa4d4[67]];_0x7246x3++){var _0x7246x15=_0x7246xa[_0x7246x3];if(5270620==_0x7246x15[_0xa4d4[1826]][0]){_0x7246x15=_0x7246x15[_0xa4d4[1097]],_0x7246x14=Math[_0xa4d4[243]](_0x7246x14,_0x7246x15[_0xa4d4[1826]][0]-1)}else {_0x7246x13= !1;break;};};if(_0x7246x13){_0x7246x4[_0xa4d4[1826]][0]=_0x7246x14;this[_0xa4d4[1827]]=Math[_0xa4d4[243]](this[_0xa4d4[1827]],_0x7246x14);if(null!=_0x7246x12){for(_0x7246x3=0;_0x7246x3<_0x7246x12[_0xa4d4[67]];_0x7246x3++){_0x7246x15=_0x7246x12[_0x7246x3],_0x7246x15[_0xa4d4[1826]][0]=5270620,_0x7246x15=_0x7246x15[_0xa4d4[772]],-1==_0x7246x15[_0xa4d4[1826]][0]&&(_0x7246x2[_0xa4d4[207]](_0x7246x15),_0x7246x15[_0xa4d4[1826]][0]= -2)}};_0x7246x2[_0xa4d4[1115]]();}else {if(_0x7246x3=_0x7246x2[_0xa4d4[1115]](),_0x7246x2[_0xa4d4[207]](_0x7246x4),_0x7246x3==_0x7246x4&&1==_0x7246x2[_0xa4d4[67]]){break}};};for(_0x7246x5 in this[_0xa4d4[1846]]){_0x7246x4=this[_0xa4d4[1846]][_0x7246x5],_0x7246x4[_0xa4d4[1826]][0]-=this[_0xa4d4[1827]]};for(_0x7246x3=0;_0x7246x3<_0x7246x9[_0xa4d4[67]];_0x7246x3++){_0x7246x4=_0x7246x9[_0x7246x3];_0x7246x2=0;_0x7246xa=_0x7246x4[_0xa4d4[1838]];for(_0x7246x5=0;_0x7246x5<_0x7246xa[_0xa4d4[67]];_0x7246x5++){_0x7246x15=_0x7246xa[_0x7246x5],_0x7246x15=_0x7246x15[_0xa4d4[772]],_0x7246x4[_0xa4d4[1826]][0]=Math[_0xa4d4[160]](_0x7246x2,_0x7246x15[_0xa4d4[1826]][0]+1),_0x7246x2=_0x7246x4[_0xa4d4[1826]][0]};};this[_0xa4d4[1827]]=this[_0xa4d4[1848]]-this[_0xa4d4[1827]];};mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1854]]=function(){var _0x7246x2=[];this[_0xa4d4[1850]]=[];for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[1827]]+1;_0x7246x3++){_0x7246x2[_0x7246x3]=[],this[_0xa4d4[1850]][_0x7246x3]=_0x7246x2[_0x7246x3]};var _0x7246x4=null;if(null!=this[_0xa4d4[1845]]){for(var _0x7246x5=this[_0xa4d4[1845]],_0x7246x4=[],_0x7246x3=0;_0x7246x3<_0x7246x5[_0xa4d4[67]];_0x7246x3++){var _0x7246x9=mxCellPath[_0xa4d4[385]](_0x7246x5[_0x7246x3]);_0x7246x4[_0x7246x3]=this[_0xa4d4[1846]][_0x7246x9];}};this[_0xa4d4[209]](function(_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246x15){0==_0x7246x15&&(0>_0x7246x4[_0xa4d4[1827]]&&0>_0x7246x4[_0xa4d4[1828]])&&(_0x7246x2[_0x7246x4[_0xa4d4[1826]][0]][_0xa4d4[207]](_0x7246x4),_0x7246x4[_0xa4d4[1827]]=_0x7246x4[_0xa4d4[1826]][0],_0x7246x4[_0xa4d4[1828]]=_0x7246x4[_0xa4d4[1826]][0],_0x7246x4[_0xa4d4[1826]][0]=_0x7246x2[_0x7246x4[_0xa4d4[1827]]][_0xa4d4[67]]-1);if(null!=_0x7246x3&&null!=_0x7246x5&&1<_0x7246x3[_0xa4d4[1827]]-_0x7246x4[_0xa4d4[1827]]){_0x7246x5[_0xa4d4[1827]]=_0x7246x3[_0xa4d4[1827]];_0x7246x5[_0xa4d4[1828]]=_0x7246x4[_0xa4d4[1827]];_0x7246x5[_0xa4d4[1826]]=[];_0x7246x5[_0xa4d4[235]]=[];_0x7246x5[_0xa4d4[236]]=[];for(_0x7246x3=_0x7246x5[_0xa4d4[1828]]+1;_0x7246x3<_0x7246x5[_0xa4d4[1827]];_0x7246x3++){_0x7246x2[_0x7246x3][_0xa4d4[207]](_0x7246x5),_0x7246x5[_0xa4d4[1834]](_0x7246x3,_0x7246x2[_0x7246x3][_0xa4d4[67]]-1)};};},_0x7246x4,!1,null);};mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[209]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x3){for(var _0x7246x9=0;_0x7246x9<_0x7246x3[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=_0x7246x3[_0x7246x9];null!=_0x7246xa&&(null==_0x7246x5&&(_0x7246x5={}),_0x7246x4?(_0x7246xa[_0xa4d4[1839]]=[],_0x7246xa[_0xa4d4[1839]][0]=this[_0xa4d4[1851]],_0x7246xa[_0xa4d4[1839]][1]=_0x7246x9,this[_0xa4d4[1855]](null,_0x7246xa,null,_0x7246x2,_0x7246x5,_0x7246xa[_0xa4d4[1839]],_0x7246x9,0)):this[_0xa4d4[1758]](null,_0x7246xa,null,_0x7246x2,_0x7246x5,0));};this[_0xa4d4[1851]]++;}};mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1758]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){if(null!=_0x7246x3){var _0x7246x12=mxCellPath[_0xa4d4[385]](_0x7246x3[_0xa4d4[246]]);if(null==_0x7246x9[_0x7246x12]){_0x7246x9[_0x7246x12]=_0x7246x3;_0x7246x5(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246xa,0);_0x7246x2=_0x7246x3[_0xa4d4[1838]][_0xa4d4[1853]]();for(_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){_0x7246x12=_0x7246x2[_0x7246x4],this[_0xa4d4[1758]](_0x7246x3,_0x7246x12[_0xa4d4[772]],_0x7246x12,_0x7246x5,_0x7246x9,_0x7246xa+1)};}else {_0x7246x5(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246xa,1)};}};mxGraphHierarchyModel[_0xa4d4[202]][_0xa4d4[1855]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13){if(null!=_0x7246x3){if(null!=_0x7246x2&&(null==_0x7246x3[_0xa4d4[1839]]||_0x7246x3[_0xa4d4[1839]][0]!=_0x7246x2[_0xa4d4[1839]][0])){_0x7246xa=_0x7246x2[_0xa4d4[1839]][_0xa4d4[67]]+1,_0x7246x3[_0xa4d4[1839]]=_0x7246x2[_0xa4d4[1839]][_0xa4d4[1853]](),_0x7246x3[_0xa4d4[1839]][_0x7246xa-1]=_0x7246x12};_0x7246x12=mxCellPath[_0xa4d4[385]](_0x7246x3[_0xa4d4[246]]);if(null==_0x7246x9[_0x7246x12]){_0x7246x9[_0x7246x12]=_0x7246x3;_0x7246x5(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x13,0);_0x7246x2=_0x7246x3[_0xa4d4[1838]][_0xa4d4[1853]]();for(_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){_0x7246x12=_0x7246x2[_0x7246x4],this[_0xa4d4[1855]](_0x7246x3,_0x7246x12[_0xa4d4[772]],_0x7246x12,_0x7246x5,_0x7246x9,_0x7246x3[_0xa4d4[1839]],_0x7246x4,_0x7246x13+1)};}else {_0x7246x5(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x13,1)};}};function mxHierarchicalLayoutStage(){}mxHierarchicalLayoutStage[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){};function mxMedianHybridCrossingReduction(_0x7246x2){this[_0xa4d4[1759]]=_0x7246x2}mxMedianHybridCrossingReduction[_0xa4d4[202]]= new mxHierarchicalLayoutStage;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[196]]=mxMedianHybridCrossingReduction;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1759]]=null;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1795]]=24;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1856]]=null;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1857]]=0;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1858]]=0;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1859]]=2;mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[1759]][_0xa4d4[502]]();this[_0xa4d4[1856]]=[];for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[1850]][_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[1856]][_0x7246x3]=_0x7246x2[_0xa4d4[1850]][_0x7246x3][_0xa4d4[1853]]()};for(var _0x7246x4=0,_0x7246x5=this[_0xa4d4[1860]](_0x7246x2),_0x7246x3=0;_0x7246x3<this[_0xa4d4[1795]]&&_0x7246x4<this[_0xa4d4[1859]];_0x7246x3++){this[_0xa4d4[1861]](_0x7246x3,_0x7246x2);this[_0xa4d4[1862]](_0x7246x3,_0x7246x2);var _0x7246x9=this[_0xa4d4[1860]](_0x7246x2);if(_0x7246x9<_0x7246x5){_0x7246x5=_0x7246x9;for(_0x7246x9=_0x7246x4=0;_0x7246x9<this[_0xa4d4[1856]][_0xa4d4[67]];_0x7246x9++){for(var _0x7246xa=_0x7246x2[_0xa4d4[1850]][_0x7246x9],_0x7246x12=0;_0x7246x12<_0x7246xa[_0xa4d4[67]];_0x7246x12++){var _0x7246x13=_0x7246xa[_0x7246x12];this[_0xa4d4[1856]][_0x7246x9][_0x7246x13[_0xa4d4[1833]](_0x7246x9)]=_0x7246x13;}};}else {_0x7246x4++;for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[1856]][_0xa4d4[67]];_0x7246x9++){_0x7246xa=_0x7246x2[_0xa4d4[1850]][_0x7246x9];for(_0x7246x12=0;_0x7246x12<_0x7246xa[_0xa4d4[67]];_0x7246x12++){_0x7246x13=_0x7246xa[_0x7246x12],_0x7246x13[_0xa4d4[1834]](_0x7246x9,_0x7246x12)};};};if(0==_0x7246x5){break};};_0x7246x4=[];_0x7246x5=[];for(_0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[1827]]+1;_0x7246x3++){_0x7246x5[_0x7246x3]=[],_0x7246x4[_0x7246x3]=_0x7246x5[_0x7246x3]};for(_0x7246x3=0;_0x7246x3<this[_0xa4d4[1856]][_0xa4d4[67]];_0x7246x3++){for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[1856]][_0x7246x3][_0xa4d4[67]];_0x7246x9++){_0x7246x5[_0x7246x3][_0xa4d4[207]](this[_0xa4d4[1856]][_0x7246x3][_0x7246x9])}};_0x7246x2[_0xa4d4[1850]]=_0x7246x4;};mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1860]]=function(_0x7246x2){for(var _0x7246x3=_0x7246x2[_0xa4d4[1850]][_0xa4d4[67]],_0x7246x4=0,_0x7246x5=1;_0x7246x5<_0x7246x3;_0x7246x5++){_0x7246x4+=this[_0xa4d4[1863]](_0x7246x5,_0x7246x2)};return _0x7246x4;};mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1863]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=0,_0x7246x5=_0x7246x3[_0xa4d4[1850]][_0x7246x2],_0x7246x9=_0x7246x5[_0xa4d4[67]],_0x7246xa=_0x7246x3[_0xa4d4[1850]][_0x7246x2-1][_0xa4d4[67]],_0x7246x12=[],_0x7246x13=0;_0x7246x13<_0x7246x9;_0x7246x13++){_0x7246x12[_0x7246x13]=[]};for(_0x7246x13=0;_0x7246x13<_0x7246x5[_0xa4d4[67]];_0x7246x13++){for(var _0x7246x14=_0x7246x5[_0x7246x13],_0x7246x15=_0x7246x14[_0xa4d4[1833]](_0x7246x2),_0x7246x16=_0x7246x14[_0xa4d4[1832]](_0x7246x2),_0x7246x14=0;_0x7246x14<_0x7246x16[_0xa4d4[67]];_0x7246x14++){var _0x7246x17=_0x7246x16[_0x7246x14][_0xa4d4[1833]](_0x7246x2-1);_0x7246x12[_0x7246x15][_0x7246x17]=201207;}};for(_0x7246x13=0;_0x7246x13<_0x7246x9;_0x7246x13++){for(_0x7246x14=0;_0x7246x14<_0x7246xa;_0x7246x14++){if(201207==_0x7246x12[_0x7246x13][_0x7246x14]){for(_0x7246x5=_0x7246x13+1;_0x7246x5<_0x7246x9;_0x7246x5++){for(_0x7246x15=0;_0x7246x15<_0x7246x14;_0x7246x15++){201207==_0x7246x12[_0x7246x5][_0x7246x15]&&_0x7246x4++}};for(_0x7246x5=0;_0x7246x5<_0x7246x13;_0x7246x5++){for(_0x7246x15=_0x7246x14+1;_0x7246x15<_0x7246xa;_0x7246x15++){201207==_0x7246x12[_0x7246x5][_0x7246x15]&&_0x7246x4++}};}}};return _0x7246x4/2;};mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1862]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=!0,_0x7246x5=0;_0x7246x4&&10>_0x7246x5++;){for(var _0x7246x9=1==_0x7246x2%2&&1==_0x7246x5%2,_0x7246x4=!1,_0x7246xa=0;_0x7246xa<_0x7246x3[_0xa4d4[1850]][_0xa4d4[67]];_0x7246xa++){for(var _0x7246x12=_0x7246x3[_0xa4d4[1850]][_0x7246xa],_0x7246x13=[],_0x7246x14=0;_0x7246x14<_0x7246x12[_0xa4d4[67]];_0x7246x14++){var _0x7246x15=_0x7246x12[_0x7246x14],_0x7246x16=_0x7246x15[_0xa4d4[1833]](_0x7246xa);0>_0x7246x16&&(_0x7246x16=_0x7246x14);_0x7246x13[_0x7246x16]=_0x7246x15;};for(var _0x7246x17=_0x7246x16=_0x7246x15=null,_0x7246x18=null,_0x7246x19=null,_0x7246x1a=null,_0x7246x1b=null,_0x7246x1c=null,_0x7246x1d=null,_0x7246x1e=null,_0x7246x14=0;_0x7246x14<_0x7246x12[_0xa4d4[67]]-1;_0x7246x14++){if(0==_0x7246x14){for(var _0x7246x1d=_0x7246x13[_0x7246x14],_0x7246x15=_0x7246x1d[_0xa4d4[1831]](_0x7246xa),_0x7246x16=_0x7246x1d[_0xa4d4[1832]](_0x7246xa),_0x7246x19=[],_0x7246x1a=[],_0x7246x1f=0;_0x7246x1f<_0x7246x15[_0xa4d4[67]];_0x7246x1f++){_0x7246x19[_0x7246x1f]=_0x7246x15[_0x7246x1f][_0xa4d4[1833]](_0x7246xa+1)};for(_0x7246x1f=0;_0x7246x1f<_0x7246x16[_0xa4d4[67]];_0x7246x1f++){_0x7246x1a[_0x7246x1f]=_0x7246x16[_0x7246x1f][_0xa4d4[1833]](_0x7246xa-1)};}else {_0x7246x15=_0x7246x17,_0x7246x16=_0x7246x18,_0x7246x19=_0x7246x1b,_0x7246x1a=_0x7246x1c,_0x7246x1d=_0x7246x1e};_0x7246x1e=_0x7246x13[_0x7246x14+1];_0x7246x17=_0x7246x1e[_0xa4d4[1831]](_0x7246xa);_0x7246x18=_0x7246x1e[_0xa4d4[1832]](_0x7246xa);_0x7246x1b=[];_0x7246x1c=[];for(_0x7246x1f=0;_0x7246x1f<_0x7246x17[_0xa4d4[67]];_0x7246x1f++){_0x7246x1b[_0x7246x1f]=_0x7246x17[_0x7246x1f][_0xa4d4[1833]](_0x7246xa+1)};for(_0x7246x1f=0;_0x7246x1f<_0x7246x18[_0xa4d4[67]];_0x7246x1f++){_0x7246x1c[_0x7246x1f]=_0x7246x18[_0x7246x1f][_0xa4d4[1833]](_0x7246xa-1)};for(var _0x7246x20=0,_0x7246x62=0,_0x7246x1f=0;_0x7246x1f<_0x7246x19[_0xa4d4[67]];_0x7246x1f++){for(var _0x7246x63=0;_0x7246x63<_0x7246x1b[_0xa4d4[67]];_0x7246x63++){_0x7246x19[_0x7246x1f]>_0x7246x1b[_0x7246x63]&&_0x7246x20++,_0x7246x19[_0x7246x1f]<_0x7246x1b[_0x7246x63]&&_0x7246x62++}};for(_0x7246x1f=0;_0x7246x1f<_0x7246x1a[_0xa4d4[67]];_0x7246x1f++){for(_0x7246x63=0;_0x7246x63<_0x7246x1c[_0xa4d4[67]];_0x7246x63++){_0x7246x1a[_0x7246x1f]>_0x7246x1c[_0x7246x63]&&_0x7246x20++,_0x7246x1a[_0x7246x1f]<_0x7246x1c[_0x7246x63]&&_0x7246x62++}};if(_0x7246x62<_0x7246x20||_0x7246x62==_0x7246x20&&_0x7246x9){_0x7246x17=_0x7246x1d[_0xa4d4[1833]](_0x7246xa),_0x7246x1d[_0xa4d4[1834]](_0x7246xa,_0x7246x1e[_0xa4d4[1833]](_0x7246xa)),_0x7246x1e[_0xa4d4[1834]](_0x7246xa,_0x7246x17),_0x7246x17=_0x7246x15,_0x7246x18=_0x7246x16,_0x7246x1b=_0x7246x19,_0x7246x1c=_0x7246x1a,_0x7246x1e=_0x7246x1d,_0x7246x9||(_0x7246x4= !0)};};}}};mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1861]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=0==_0x7246x2%2;if(_0x7246x4){for(var _0x7246x5=_0x7246x3[_0xa4d4[1827]]-1;0<=_0x7246x5;_0x7246x5--){this[_0xa4d4[1864]](_0x7246x5,_0x7246x4)}}else {for(_0x7246x5=1;_0x7246x5<_0x7246x3[_0xa4d4[1827]];_0x7246x5++){this[_0xa4d4[1864]](_0x7246x5,_0x7246x4)}};};mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1864]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=this[_0xa4d4[1856]][_0x7246x2][_0xa4d4[67]],_0x7246x5=[],_0x7246x9=[],_0x7246xa=0;_0x7246xa<_0x7246x4;_0x7246xa++){var _0x7246x12=this[_0xa4d4[1856]][_0x7246x2][_0x7246xa],_0x7246x13= new MedianCellSorter;_0x7246x13[_0xa4d4[246]]=_0x7246x12;var _0x7246x14;_0x7246x14=_0x7246x3?_0x7246x12[_0xa4d4[1831]](_0x7246x2):_0x7246x12[_0xa4d4[1832]](_0x7246x2);var _0x7246x15;_0x7246x15=_0x7246x3?_0x7246x2+1:_0x7246x2-1;null!=_0x7246x14&&0!=_0x7246x14[_0xa4d4[67]]?(_0x7246x13[_0xa4d4[1865]]=this[_0xa4d4[1865]](_0x7246x14,_0x7246x15),_0x7246x5[_0xa4d4[207]](_0x7246x13)):_0x7246x9[_0x7246x12[_0xa4d4[1833]](_0x7246x2)]= !0;};_0x7246x5[_0xa4d4[470]](MedianCellSorter[_0xa4d4[202]][_0xa4d4[469]]);for(_0x7246xa=0;_0x7246xa<_0x7246x4;_0x7246xa++){null==_0x7246x9[_0x7246xa]&&(_0x7246x12=_0x7246x5[_0xa4d4[1115]]()[_0xa4d4[246]],_0x7246x12[_0xa4d4[1834]](_0x7246x2,_0x7246xa))};};mxMedianHybridCrossingReduction[_0xa4d4[202]][_0xa4d4[1865]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=[],_0x7246x5=0,_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=_0x7246x2[_0x7246x9];_0x7246x4[_0x7246x5++]=_0x7246xa[_0xa4d4[1833]](_0x7246x3);};_0x7246x4[_0xa4d4[470]](function(_0x7246x2,_0x7246x3){return _0x7246x2-_0x7246x3});if(1==_0x7246x5%2){return _0x7246x4[Math[_0xa4d4[519]](_0x7246x5/2)]};if(2==_0x7246x5){return (_0x7246x4[0]+_0x7246x4[1])/2};_0x7246x9=_0x7246x5/2;_0x7246xa=_0x7246x4[_0x7246x9-1]-_0x7246x4[0];_0x7246x5=_0x7246x4[_0x7246x5-1]-_0x7246x4[_0x7246x9];return (_0x7246x4[_0x7246x9-1]*_0x7246x5+_0x7246x4[_0x7246x9]*_0x7246xa)/(_0x7246xa+_0x7246x5);};function MedianCellSorter(){}MedianCellSorter[_0xa4d4[202]][_0xa4d4[1865]]=0;MedianCellSorter[_0xa4d4[202]][_0xa4d4[246]]= !1;MedianCellSorter[_0xa4d4[202]][_0xa4d4[469]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2&&null!=_0x7246x3?_0x7246x3[_0xa4d4[1865]]>_0x7246x2[_0xa4d4[1865]]?-1:_0x7246x3[_0xa4d4[1865]]<_0x7246x2[_0xa4d4[1865]]?1:0:0};function mxMinimumCycleRemover(_0x7246x2){this[_0xa4d4[1759]]=_0x7246x2}mxMinimumCycleRemover[_0xa4d4[202]]= new mxHierarchicalLayoutStage;mxMinimumCycleRemover[_0xa4d4[202]][_0xa4d4[196]]=mxMinimumCycleRemover;mxMinimumCycleRemover[_0xa4d4[202]][_0xa4d4[1759]]=null;mxMinimumCycleRemover[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1759]][_0xa4d4[502]](),_0x7246x4={},_0x7246x5=mxUtils[_0xa4d4[238]](_0x7246x3[_0xa4d4[1846]],null,!0),_0x7246x9=null;if(null!=_0x7246x3[_0xa4d4[1845]]){var _0x7246xa=_0x7246x3[_0xa4d4[1845]],_0x7246x9=[];for(_0x7246x2=0;_0x7246x2<_0x7246xa[_0xa4d4[67]];_0x7246x2++){var _0x7246x12=mxCellPath[_0xa4d4[385]](_0x7246xa[_0x7246x2]);_0x7246x9[_0x7246x2]=_0x7246x3[_0xa4d4[1846]][_0x7246x12];};};_0x7246x3[_0xa4d4[209]](function(_0x7246x2,_0x7246x3,_0x7246x9,_0x7246xa,_0x7246x12){_0x7246x3[_0xa4d4[1720]](_0x7246x2)&&(_0x7246x9[_0xa4d4[1744]](),mxUtils[_0xa4d4[205]](_0x7246x9,_0x7246x2[_0xa4d4[1838]]),_0x7246x2[_0xa4d4[1837]][_0xa4d4[207]](_0x7246x9),mxUtils[_0xa4d4[205]](_0x7246x9,_0x7246x3[_0xa4d4[1837]]),_0x7246x3[_0xa4d4[1838]][_0xa4d4[207]](_0x7246x9));_0x7246x2=mxCellPath[_0xa4d4[385]](_0x7246x3[_0xa4d4[246]]);_0x7246x4[_0x7246x2]=_0x7246x3;delete _0x7246x5[_0x7246x2];},_0x7246x9,!0,null);_0x7246x9=null;0<_0x7246x5[_0xa4d4[1866]]&&(_0x7246x9=mxUtils[_0xa4d4[238]](_0x7246x5,null,!0));_0x7246x2=mxUtils[_0xa4d4[238]](_0x7246x4,null,!0);_0x7246x3[_0xa4d4[209]](function(_0x7246x2,_0x7246x3,_0x7246x9,_0x7246xa,_0x7246x12){_0x7246x3[_0xa4d4[1720]](_0x7246x2)&&(_0x7246x9[_0xa4d4[1744]](),mxUtils[_0xa4d4[205]](_0x7246x9,_0x7246x2[_0xa4d4[1838]]),_0x7246x3[_0xa4d4[1838]][_0xa4d4[207]](_0x7246x9),_0x7246x2[_0xa4d4[1837]][_0xa4d4[207]](_0x7246x9),mxUtils[_0xa4d4[205]](_0x7246x9,_0x7246x3[_0xa4d4[1837]]));_0x7246x2=mxCellPath[_0xa4d4[385]](_0x7246x3[_0xa4d4[246]]);_0x7246x4[_0x7246x2]=_0x7246x3;delete _0x7246x5[_0x7246x2];},_0x7246x5,!0,_0x7246x2);_0x7246xa=this[_0xa4d4[1759]][_0xa4d4[1703]]();if(null!=_0x7246x9&&0<_0x7246x9[_0xa4d4[67]]){_0x7246x3=_0x7246x3[_0xa4d4[1845]];for(_0x7246x2=0;_0x7246x2<_0x7246x9[_0xa4d4[67]];_0x7246x2++){_0x7246x12=_0x7246x9[_0x7246x2][_0xa4d4[246]],0==_0x7246xa[_0xa4d4[1867]](_0x7246x12)[_0xa4d4[67]]&&_0x7246x3[_0xa4d4[207]](_0x7246x12)};};};function mxCoordinateAssignment(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[1759]]=_0x7246x2;this[_0xa4d4[1868]]=_0x7246x3;this[_0xa4d4[1869]]=_0x7246x4;this[_0xa4d4[1870]]=_0x7246x5;this[_0xa4d4[1871]]=_0x7246x9;this[_0xa4d4[1872]]=_0x7246xa;}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxCoordinateAssignment[_0xa4d4[202]]= new mxHierarchicalLayoutStage;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[196]]=mxCoordinateAssignment;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1759]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1868]]=30;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1869]]=100;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1872]]=10;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1795]]=8;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1751]]=5;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1752]]=2;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1753]]=12;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1754]]=4;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1873]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1870]]=mxConstants[_0xa4d4[1358]];mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1871]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1874]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1875]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1876]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1877]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1878]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1879]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1880]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1881]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1882]]= !0;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[675]]=mxHierarchicalEdgeStyle[_0xa4d4[1883]];mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1884]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1885]]=null;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1745]]=10;mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1886]]=function(){var _0x7246x2=this[_0xa4d4[1759]][_0xa4d4[502]]();mxLog[_0xa4d4[539]]();mxLog[_0xa4d4[171]](_0xa4d4[1887]);for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[1850]][_0xa4d4[67]];_0x7246x3++){mxLog[_0xa4d4[53]](_0xa4d4[1888],_0x7246x3,_0xa4d4[1889]);for(var _0x7246x4=_0x7246x2[_0xa4d4[1850]][_0x7246x3],_0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]];_0x7246x5++){mxLog[_0xa4d4[53]](_0x7246x4[_0x7246x5][_0xa4d4[1833]](_0x7246x3),_0xa4d4[316])};mxLog[_0xa4d4[171]]();};mxLog[_0xa4d4[171]](_0xa4d4[1890]);};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){this[_0xa4d4[1873]]=[];_0x7246x2=this[_0xa4d4[1759]][_0xa4d4[502]]();this[_0xa4d4[1875]]=0;this[_0xa4d4[1891]](this[_0xa4d4[1759]][_0xa4d4[1703]](),_0x7246x2);this[_0xa4d4[1882]]&&this[_0xa4d4[1892]](_0x7246x2);var _0x7246x3=1E8;if(this[_0xa4d4[1882]]){for(var _0x7246x4=0;_0x7246x4<this[_0xa4d4[1795]];_0x7246x4++){0!=_0x7246x4&&(this[_0xa4d4[1893]](_0x7246x4,_0x7246x2),this[_0xa4d4[1892]](_0x7246x2));if(this[_0xa4d4[1875]]<_0x7246x3){for(var _0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[1850]][_0xa4d4[67]];_0x7246x5++){for(var _0x7246x9=_0x7246x2[_0xa4d4[1850]][_0x7246x5],_0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x9[_0x7246xa];_0x7246x12[_0xa4d4[1835]](_0x7246x5,_0x7246x12[_0xa4d4[1833]](_0x7246x5));}};_0x7246x3=this[_0xa4d4[1875]];}else {for(_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[1850]][_0xa4d4[67]];_0x7246x5++){_0x7246x9=_0x7246x2[_0xa4d4[1850]][_0x7246x5];for(_0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){_0x7246x12=_0x7246x9[_0x7246xa],_0x7246x12[_0xa4d4[1834]](_0x7246x5,_0x7246x12[_0xa4d4[730]](_0x7246x5))};}};this[_0xa4d4[1894]](this[_0xa4d4[1759]][_0xa4d4[1703]](),_0x7246x2);this[_0xa4d4[1875]]=0;}};this[_0xa4d4[1895]](this[_0xa4d4[1759]][_0xa4d4[1703]](),_0x7246x2);};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1892]]=function(_0x7246x2){for(var _0x7246x3=[],_0x7246x4=[],_0x7246x5=[],_0x7246x9=0;_0x7246x9<=_0x7246x2[_0xa4d4[1827]];_0x7246x9++){_0x7246x5[_0x7246x9]=_0x7246x2[_0xa4d4[1850]][_0x7246x9];for(var _0x7246xa=0;_0x7246xa<_0x7246x5[_0x7246x9][_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x5[_0x7246x9][_0x7246xa],_0x7246x13= new WeightedCellSorter(_0x7246x12,_0x7246x9);_0x7246x13[_0xa4d4[1785]]=_0x7246xa;_0x7246x13[_0xa4d4[1784]]= !0;_0x7246x3[_0xa4d4[207]](_0x7246x13);_0x7246x12=mxCellPath[_0xa4d4[385]](_0x7246x12[_0xa4d4[1841]]());_0x7246x4[_0x7246x12]=_0x7246x13;};};_0x7246x2=10*_0x7246x3[_0xa4d4[67]];for(_0x7246xa=0;0<_0x7246x3[_0xa4d4[67]]&&_0x7246xa<=_0x7246x2;){var _0x7246x13=_0x7246x3[_0xa4d4[1115]](),_0x7246x9=_0x7246x13[_0xa4d4[246]],_0x7246x14=_0x7246x13[_0xa4d4[1782]],_0x7246x15=parseInt(_0x7246x13[_0xa4d4[1785]]),_0x7246x12=_0x7246x9[_0xa4d4[1831]](_0x7246x14),_0x7246x16=_0x7246x9[_0xa4d4[1832]](_0x7246x14),_0x7246x17=_0x7246x12[_0xa4d4[67]],_0x7246x18=_0x7246x16[_0xa4d4[67]],_0x7246x19=this[_0xa4d4[1896]](_0x7246x12,_0x7246x14+1),_0x7246x1a=this[_0xa4d4[1896]](_0x7246x16,_0x7246x14-1),_0x7246x1b=_0x7246x17+_0x7246x18,_0x7246x1c=_0x7246x9[_0xa4d4[1833]](_0x7246x14),_0x7246x1d=_0x7246x1c;0<_0x7246x1b&&(_0x7246x1d=(_0x7246x19*_0x7246x17+_0x7246x1a*_0x7246x18)/_0x7246x1b);_0x7246x17= !1;_0x7246x1d<_0x7246x1c-1?0==_0x7246x15?(_0x7246x9[_0xa4d4[1834]](_0x7246x14,_0x7246x1d),_0x7246x17= !0):(_0x7246x15=_0x7246x5[_0x7246x14][_0x7246x15-1],_0x7246x1c=_0x7246x15[_0xa4d4[1833]](_0x7246x14),_0x7246x1c=_0x7246x1c+_0x7246x15[_0xa4d4[117]]/2+this[_0xa4d4[1868]]+_0x7246x9[_0xa4d4[117]]/2,_0x7246x1c<_0x7246x1d?(_0x7246x9[_0xa4d4[1834]](_0x7246x14,_0x7246x1d),_0x7246x17= !0):_0x7246x1c<_0x7246x9[_0xa4d4[1833]](_0x7246x14)-1&&(_0x7246x9[_0xa4d4[1834]](_0x7246x14,_0x7246x1c),_0x7246x17= !0)):_0x7246x1d>_0x7246x1c+1&&(_0x7246x15==_0x7246x5[_0x7246x14][_0xa4d4[67]]-1?(_0x7246x9[_0xa4d4[1834]](_0x7246x14,_0x7246x1d),_0x7246x17= !0):(_0x7246x15=_0x7246x5[_0x7246x14][_0x7246x15+1],_0x7246x1c=_0x7246x15[_0xa4d4[1833]](_0x7246x14),_0x7246x1c=_0x7246x1c-_0x7246x15[_0xa4d4[117]]/2-this[_0xa4d4[1868]]-_0x7246x9[_0xa4d4[117]]/2,_0x7246x1c>_0x7246x1d?(_0x7246x9[_0xa4d4[1834]](_0x7246x14,_0x7246x1d),_0x7246x17= !0):_0x7246x1c>_0x7246x9[_0xa4d4[1833]](_0x7246x14)+1&&(_0x7246x9[_0xa4d4[1834]](_0x7246x14,_0x7246x1c),_0x7246x17= !0)));if(_0x7246x17){for(_0x7246x9=0;_0x7246x9<_0x7246x12[_0xa4d4[67]];_0x7246x9++){_0x7246x14=_0x7246x12[_0x7246x9],_0x7246x14=mxCellPath[_0xa4d4[385]](_0x7246x14[_0xa4d4[1841]]()),_0x7246x14=_0x7246x4[_0x7246x14],null!=_0x7246x14&&!1==_0x7246x14[_0xa4d4[1784]]&&(_0x7246x14[_0xa4d4[1784]]= !0,_0x7246x3[_0xa4d4[207]](_0x7246x14))};for(_0x7246x9=0;_0x7246x9<_0x7246x16[_0xa4d4[67]];_0x7246x9++){_0x7246x14=_0x7246x16[_0x7246x9],_0x7246x14=mxCellPath[_0xa4d4[385]](_0x7246x14[_0xa4d4[1841]]()),_0x7246x14=_0x7246x4[_0x7246x14],null!=_0x7246x14&&!1==_0x7246x14[_0xa4d4[1784]]&&(_0x7246x14[_0xa4d4[1784]]= !0,_0x7246x3[_0xa4d4[207]](_0x7246x14))};};_0x7246x13[_0xa4d4[1784]]= !1;_0x7246xa++;};};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1893]]=function(_0x7246x2,_0x7246x3){if(0==_0x7246x2%2){for(var _0x7246x4=_0x7246x3[_0xa4d4[1827]];0<_0x7246x4;_0x7246x4--){this[_0xa4d4[1897]](_0x7246x4-1,_0x7246x3,_0x7246x4)}}else {for(_0x7246x4=0;_0x7246x4<_0x7246x3[_0xa4d4[1827]]-1;_0x7246x4++){this[_0xa4d4[1897]](_0x7246x4+1,_0x7246x3,_0x7246x4)}}};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1897]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=_0x7246x3[_0xa4d4[1850]][_0x7246x2];for(var _0x7246x5=[],_0x7246x9=[],_0x7246xa=0;_0x7246xa<_0x7246x3[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x3[_0x7246xa];_0x7246x5[_0x7246xa]= new WeightedCellSorter;_0x7246x5[_0x7246xa][_0xa4d4[246]]=_0x7246x12;_0x7246x5[_0x7246xa][_0xa4d4[1785]]=_0x7246xa;var _0x7246x13=mxCellPath[_0xa4d4[385]](_0x7246x12[_0xa4d4[1841]]());_0x7246x9[_0x7246x13]=_0x7246x5[_0x7246xa];var _0x7246x14=null,_0x7246x14=_0x7246x4<_0x7246x2?_0x7246x12[_0xa4d4[1832]](_0x7246x2):_0x7246x12[_0xa4d4[1831]](_0x7246x2);_0x7246x5[_0x7246xa][_0xa4d4[1782]]=this[_0xa4d4[1898]](_0x7246x12,_0x7246x14);};_0x7246x5[_0xa4d4[470]](WeightedCellSorter[_0xa4d4[202]][_0xa4d4[469]]);for(_0x7246xa=0;_0x7246xa<_0x7246x5[_0xa4d4[67]];_0x7246xa++){_0x7246x13=0;_0x7246x12=_0x7246x5[_0x7246xa][_0xa4d4[246]];_0x7246x13=0;_0x7246x14=_0x7246x4<_0x7246x2?_0x7246x12[_0xa4d4[1832]](_0x7246x2)[_0xa4d4[1853]]():_0x7246x12[_0xa4d4[1831]](_0x7246x2)[_0xa4d4[1853]]();null!=_0x7246x14&&(_0x7246x13=_0x7246x14[_0xa4d4[67]],_0x7246x13=0<_0x7246x13?this[_0xa4d4[1896]](_0x7246x14,_0x7246x4):_0x7246x12[_0xa4d4[1833]](_0x7246x2));for(var _0x7246x15=0,_0x7246x14=-1E8,_0x7246x16=_0x7246x5[_0x7246xa][_0xa4d4[1785]]-1;0<=_0x7246x16;){var _0x7246x17=mxCellPath[_0xa4d4[385]](_0x7246x3[_0x7246x16][_0xa4d4[1841]]()),_0x7246x17=_0x7246x9[_0x7246x17];if(null!=_0x7246x17){var _0x7246x18=_0x7246x17[_0xa4d4[246]];_0x7246x17[_0xa4d4[1784]]?(_0x7246x14=_0x7246x18[_0xa4d4[1833]](_0x7246x2)+_0x7246x18[_0xa4d4[117]]/2+this[_0xa4d4[1868]]+_0x7246x15+_0x7246x12[_0xa4d4[117]]/2,_0x7246x16= -1):(_0x7246x15+=_0x7246x18[_0xa4d4[117]]+this[_0xa4d4[1868]],_0x7246x16--);};};_0x7246x15=0;_0x7246x18=1E8;for(_0x7246x16=_0x7246x5[_0x7246xa][_0xa4d4[1785]]+1;_0x7246x16<_0x7246x5[_0xa4d4[67]];){if(_0x7246x17=mxCellPath[_0xa4d4[385]](_0x7246x3[_0x7246x16][_0xa4d4[1841]]()),_0x7246x17=_0x7246x9[_0x7246x17],null!=_0x7246x17){var _0x7246x19=_0x7246x17[_0xa4d4[246]];_0x7246x17[_0xa4d4[1784]]?(_0x7246x18=_0x7246x19[_0xa4d4[1833]](_0x7246x2)-_0x7246x19[_0xa4d4[117]]/2-this[_0xa4d4[1868]]-_0x7246x15-_0x7246x12[_0xa4d4[117]]/2,_0x7246x16=_0x7246x5[_0xa4d4[67]]):(_0x7246x15+=_0x7246x19[_0xa4d4[117]]+this[_0xa4d4[1868]],_0x7246x16++);}};_0x7246x13>=_0x7246x14&&_0x7246x13<=_0x7246x18?_0x7246x12[_0xa4d4[1834]](_0x7246x2,_0x7246x13):_0x7246x13<_0x7246x14?(_0x7246x12[_0xa4d4[1834]](_0x7246x2,_0x7246x14),this[_0xa4d4[1875]]+=_0x7246x14-_0x7246x13):_0x7246x13>_0x7246x18&&(_0x7246x12[_0xa4d4[1834]](_0x7246x2,_0x7246x18),this[_0xa4d4[1875]]+=_0x7246x13-_0x7246x18);_0x7246x5[_0x7246xa][_0xa4d4[1784]]= !0;};};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1898]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=0,_0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=_0x7246x3[_0x7246x5];_0x7246x2[_0xa4d4[1193]]()&&_0x7246x9[_0xa4d4[1193]]()?_0x7246x4++:_0x7246x4=_0x7246x2[_0xa4d4[250]]()&&_0x7246x9[_0xa4d4[250]]()?_0x7246x4+8:_0x7246x4+2;};return _0x7246x4;};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1896]]=function(_0x7246x2,_0x7246x3){if(0==_0x7246x2[_0xa4d4[67]]){return 0};for(var _0x7246x4=[],_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){_0x7246x4[_0x7246x5]=_0x7246x2[_0x7246x5][_0xa4d4[1833]](_0x7246x3)};_0x7246x4[_0xa4d4[470]](function(_0x7246x2,_0x7246x3){return _0x7246x2-_0x7246x3});if(1==_0x7246x2[_0xa4d4[67]]%2){return _0x7246x4[Math[_0xa4d4[519]](_0x7246x2[_0xa4d4[67]]/2)]};_0x7246x5=_0x7246x2[_0xa4d4[67]]/2;return (_0x7246x4[_0x7246x5-1]+_0x7246x4[_0x7246x5])/2;};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1891]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1899]](_0x7246x2,_0x7246x3);for(var _0x7246x4=this[_0xa4d4[1876]];0<=_0x7246x4;_0x7246x4--){_0x7246x4<_0x7246x3[_0xa4d4[1827]]&&this[_0xa4d4[1900]](_0x7246x4,_0x7246x2,_0x7246x3)};for(_0x7246x4=this[_0xa4d4[1876]]+1;_0x7246x4<=_0x7246x3[_0xa4d4[1827]];_0x7246x4++){0<_0x7246x4&&this[_0xa4d4[1900]](_0x7246x4,_0x7246x2,_0x7246x3)};};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1900]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=_0x7246x4[_0xa4d4[1850]][_0x7246x2];_0x7246x4=0;for(var _0x7246x5=this[_0xa4d4[1871]]+(this[_0xa4d4[1879]]-this[_0xa4d4[1880]][_0x7246x2])/2,_0x7246x9=!1,_0x7246xa=0;_0x7246xa<_0x7246x3[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x3[_0x7246xa];if(_0x7246x12[_0xa4d4[1193]]()){var _0x7246x13=this[_0xa4d4[1759]][_0xa4d4[1726]](_0x7246x12[_0xa4d4[246]]);null!=_0x7246x13?this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1358]]||this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1354]]?(_0x7246x12[_0xa4d4[117]]=_0x7246x13[_0xa4d4[117]],_0x7246x12[_0xa4d4[119]]=_0x7246x13[_0xa4d4[119]]):(_0x7246x12[_0xa4d4[117]]=_0x7246x13[_0xa4d4[119]],_0x7246x12[_0xa4d4[119]]=_0x7246x13[_0xa4d4[117]]):_0x7246x9= !0;_0x7246x4=Math[_0xa4d4[160]](_0x7246x4,_0x7246x12[_0xa4d4[119]]);}else {_0x7246x12[_0xa4d4[250]]()&&(_0x7246x13=1,null!=_0x7246x12[_0xa4d4[1842]]?_0x7246x13=_0x7246x12[_0xa4d4[1842]][_0xa4d4[67]]:mxLog[_0xa4d4[283]](_0xa4d4[1901]),_0x7246x12[_0xa4d4[117]]=(_0x7246x13-1)*this[_0xa4d4[1872]])};_0x7246x5+=_0x7246x12[_0xa4d4[117]]/2;_0x7246x12[_0xa4d4[1835]](_0x7246x2,_0x7246x5);_0x7246x12[_0xa4d4[1834]](_0x7246x2,_0x7246x5);_0x7246x5+=_0x7246x12[_0xa4d4[117]]/2;_0x7246x5+=this[_0xa4d4[1868]];};!0==_0x7246x9&&mxLog[_0xa4d4[283]](_0xa4d4[1902]);};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1899]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=-this[_0xa4d4[1869]],_0x7246x5=0;this[_0xa4d4[1880]]=[];this[_0xa4d4[1881]]=[];for(var _0x7246x9=_0x7246x3[_0xa4d4[1827]];0<=_0x7246x9;_0x7246x9--){for(var _0x7246xa=0,_0x7246x12=_0x7246x3[_0xa4d4[1850]][_0x7246x9],_0x7246x13=this[_0xa4d4[1871]],_0x7246x14=!1,_0x7246x15=0;_0x7246x15<_0x7246x12[_0xa4d4[67]];_0x7246x15++){var _0x7246x16=_0x7246x12[_0x7246x15];if(_0x7246x16[_0xa4d4[1193]]()){var _0x7246x17=this[_0xa4d4[1759]][_0xa4d4[1726]](_0x7246x16[_0xa4d4[246]]);null!=_0x7246x17?this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1358]]||this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1354]]?(_0x7246x16[_0xa4d4[117]]=_0x7246x17[_0xa4d4[117]],_0x7246x16[_0xa4d4[119]]=_0x7246x17[_0xa4d4[119]]):(_0x7246x16[_0xa4d4[117]]=_0x7246x17[_0xa4d4[119]],_0x7246x16[_0xa4d4[119]]=_0x7246x17[_0xa4d4[117]]):_0x7246x14= !0;_0x7246xa=Math[_0xa4d4[160]](_0x7246xa,_0x7246x16[_0xa4d4[119]]);}else {_0x7246x16[_0xa4d4[250]]()&&(_0x7246x17=1,null!=_0x7246x16[_0xa4d4[1842]]?_0x7246x17=_0x7246x16[_0xa4d4[1842]][_0xa4d4[67]]:mxLog[_0xa4d4[283]](_0xa4d4[1901]),_0x7246x16[_0xa4d4[117]]=(_0x7246x17-1)*this[_0xa4d4[1872]])};_0x7246x13+=_0x7246x16[_0xa4d4[117]]/2;_0x7246x16[_0xa4d4[1835]](_0x7246x9,_0x7246x13);_0x7246x16[_0xa4d4[1834]](_0x7246x9,_0x7246x13);_0x7246x13+=_0x7246x16[_0xa4d4[117]]/2;_0x7246x13+=this[_0xa4d4[1868]];_0x7246x13>this[_0xa4d4[1879]]&&(this[_0xa4d4[1879]]=_0x7246x13,this[_0xa4d4[1876]]=_0x7246x9);this[_0xa4d4[1880]][_0x7246x9]=_0x7246x13;};!0==_0x7246x14&&mxLog[_0xa4d4[283]](_0xa4d4[1902]);this[_0xa4d4[1881]][_0x7246x9]=_0x7246x4;_0x7246x13=_0x7246xa/2+_0x7246x5/2+this[_0xa4d4[1869]];_0x7246x5=_0x7246xa;_0x7246x4=this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1358]]||this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1359]]?_0x7246x4+_0x7246x13:_0x7246x4-_0x7246x13;for(_0x7246x15=0;_0x7246x15<_0x7246x12[_0xa4d4[67]];_0x7246x15++){_0x7246x12[_0x7246x15][_0xa4d4[1836]](_0x7246x9,_0x7246x4)};};};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1894]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x3[_0xa4d4[1847]],_0x7246x5;for(_0x7246x5 in _0x7246x4){var _0x7246x9=_0x7246x4[_0x7246x5];if(!(1>_0x7246x9[_0xa4d4[1827]]-_0x7246x9[_0xa4d4[1828]]-1)){for(var _0x7246xa=_0x7246x9[_0xa4d4[1833]](_0x7246x9[_0xa4d4[1828]]+1),_0x7246x12=!0,_0x7246x13=0,_0x7246x14=_0x7246x9[_0xa4d4[1828]]+2;_0x7246x14<_0x7246x9[_0xa4d4[1827]];_0x7246x14++){var _0x7246x15=_0x7246x9[_0xa4d4[1833]](_0x7246x14);_0x7246xa!=_0x7246x15?(_0x7246x12= !1,_0x7246xa=_0x7246x15):_0x7246x13++;};if(!_0x7246x12){for(var _0x7246x12=_0x7246xa=0,_0x7246x15=[],_0x7246x16=[],_0x7246x17=_0x7246x9[_0xa4d4[1833]](_0x7246x9[_0xa4d4[1828]]+1),_0x7246x14=_0x7246x9[_0xa4d4[1828]]+1;_0x7246x14<_0x7246x9[_0xa4d4[1827]]-1;_0x7246x14++){var _0x7246x18=_0x7246x9[_0xa4d4[730]](_0x7246x14+1);_0x7246x17==_0x7246x18?(_0x7246x15[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-1]=_0x7246x17,_0x7246xa++):this[_0xa4d4[1903]](_0x7246x3,_0x7246x9,_0x7246x14+1,_0x7246x17)?(_0x7246x15[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-1]=_0x7246x17,_0x7246xa++):_0x7246x17=_0x7246x15[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-1]=_0x7246x18;};_0x7246x17=_0x7246x9[_0xa4d4[730]](_0x7246x14);for(_0x7246x14=_0x7246x9[_0xa4d4[1827]]-1;_0x7246x14>_0x7246x9[_0xa4d4[1828]]+1;_0x7246x14--){_0x7246x18=_0x7246x9[_0xa4d4[730]](_0x7246x14-1),_0x7246x17==_0x7246x18?(_0x7246x16[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-2]=_0x7246x17,_0x7246x12++):this[_0xa4d4[1903]](_0x7246x3,_0x7246x9,_0x7246x14-1,_0x7246x17)?(_0x7246x16[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-2]=_0x7246x17,_0x7246x12++):(_0x7246x16[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-2]=_0x7246x9[_0xa4d4[730]](_0x7246x14-1),_0x7246x17=_0x7246x18)};if(_0x7246x12>_0x7246x13||_0x7246xa>_0x7246x13){if(_0x7246x12>=_0x7246xa){for(_0x7246x14=_0x7246x9[_0xa4d4[1827]]-2;_0x7246x14>_0x7246x9[_0xa4d4[1828]];_0x7246x14--){_0x7246x9[_0xa4d4[1835]](_0x7246x14,_0x7246x16[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-1])}}else {if(_0x7246xa>_0x7246x12){for(_0x7246x14=_0x7246x9[_0xa4d4[1828]]+2;_0x7246x14<_0x7246x9[_0xa4d4[1827]];_0x7246x14++){_0x7246x9[_0xa4d4[1835]](_0x7246x14,_0x7246x15[_0x7246x14-_0x7246x9[_0xa4d4[1828]]-2])}}}};};};};};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1903]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x2=_0x7246x2[_0xa4d4[1850]][_0x7246x4];for(var _0x7246x9=-1,_0x7246xa=0;_0x7246xa<_0x7246x2[_0xa4d4[67]];_0x7246xa++){if(_0x7246x3==_0x7246x2[_0x7246xa]){_0x7246x9=_0x7246xa;break;}};if(0>_0x7246x9){return !1};_0x7246xa=_0x7246x3[_0xa4d4[1833]](_0x7246x4);if(_0x7246x5<_0x7246xa){if(0==_0x7246x9){return !0};_0x7246x2=_0x7246x2[_0x7246x9-1];_0x7246x4=_0x7246x2[_0xa4d4[1833]](_0x7246x4);_0x7246x4=_0x7246x4+_0x7246x2[_0xa4d4[117]]/2+this[_0xa4d4[1868]]+_0x7246x3[_0xa4d4[117]]/2;if(!(_0x7246x4<=_0x7246x5)){return !1};}else {if(_0x7246x5>_0x7246xa){if(_0x7246x9==_0x7246x2[_0xa4d4[67]]-1){return !0};_0x7246x2=_0x7246x2[_0x7246x9+1];_0x7246x4=_0x7246x2[_0xa4d4[1833]](_0x7246x4);_0x7246x4=_0x7246x4-_0x7246x2[_0xa4d4[117]]/2-this[_0xa4d4[1868]]-_0x7246x3[_0xa4d4[117]]/2;if(!(_0x7246x4>=_0x7246x5)){return !1};}};return !0;};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1895]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1877]]=[];this[_0xa4d4[1878]]=[];for(var _0x7246x4=0;_0x7246x4<_0x7246x3[_0xa4d4[1850]][_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[1877]][_0x7246x4]=Number[_0xa4d4[1904]],this[_0xa4d4[1878]][_0x7246x4]=0};_0x7246x4=null;this[_0xa4d4[1759]][_0xa4d4[1735]]&&(_0x7246x4={});var _0x7246x5=_0x7246x3[_0xa4d4[1847]],_0x7246x9=_0x7246x3[_0xa4d4[1846]],_0x7246xa;for(_0x7246xa in _0x7246x9){var _0x7246x12=_0x7246x9[_0x7246xa];this[_0xa4d4[1725]](_0x7246x12);if(this[_0xa4d4[1759]][_0xa4d4[1735]]){var _0x7246x12=_0x7246x2[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x12[_0xa4d4[246]]),_0x7246x13=mxCellPath[_0xa4d4[385]](_0x7246x12);null==_0x7246x4[_0x7246x13]&&(_0x7246x4[_0x7246x13]=_0x7246x12);};};this[_0xa4d4[1759]][_0xa4d4[1735]]&&null!=_0x7246x4&&this[_0xa4d4[1763]](_0x7246x4);(this[_0xa4d4[675]]==mxHierarchicalEdgeStyle[_0xa4d4[1905]]||this[_0xa4d4[675]]==mxHierarchicalEdgeStyle[_0xa4d4[1883]]||this[_0xa4d4[675]]==mxHierarchicalEdgeStyle[_0xa4d4[1906]])&&this[_0xa4d4[1764]](_0x7246x3);for(_0x7246xa in _0x7246x5){this[_0xa4d4[1907]](_0x7246x5[_0x7246xa])};};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1763]]=function(_0x7246x2){var _0x7246x3=[],_0x7246x4;for(_0x7246x4 in _0x7246x2){_0x7246x3[_0xa4d4[207]](_0x7246x2[_0x7246x4])};this[_0xa4d4[1759]][_0xa4d4[1727]](mxUtils[_0xa4d4[1779]](_0x7246x3,!0),this[_0xa4d4[1745]]);};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1764]]=function(_0x7246x2){for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[1850]][_0xa4d4[67]];_0x7246x3++){for(var _0x7246x4=_0x7246x2[_0xa4d4[1850]][_0x7246x3],_0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=_0x7246x4[_0x7246x5];if(_0x7246x9[_0xa4d4[1193]]()){for(var _0x7246xa=_0x7246x9[_0xa4d4[1832]](_0x7246x3),_0x7246x12=_0x7246x3-1,_0x7246x13=0;2>_0x7246x13;_0x7246x13++){if(-1<_0x7246x12&&_0x7246x12<_0x7246x2[_0xa4d4[1850]][_0xa4d4[67]]&&null!=_0x7246xa&&0<_0x7246xa[_0xa4d4[67]]){for(var _0x7246x14=[],_0x7246x15=0;_0x7246x15<_0x7246xa[_0xa4d4[67]];_0x7246x15++){var _0x7246x16= new WeightedCellSorter(_0x7246xa[_0x7246x15],_0x7246xa[_0x7246x15][_0xa4d4[730]](_0x7246x12));_0x7246x14[_0xa4d4[207]](_0x7246x16);};_0x7246x14[_0xa4d4[470]](WeightedCellSorter[_0xa4d4[202]][_0xa4d4[469]]);for(var _0x7246x16=_0x7246x9[_0xa4d4[235]][0]-_0x7246x9[_0xa4d4[117]]/2,_0x7246x17=_0x7246x16+_0x7246x9[_0xa4d4[117]],_0x7246x18=_0x7246xa=0,_0x7246x12=[],_0x7246x15=0;_0x7246x15<_0x7246x14[_0xa4d4[67]];_0x7246x15++){var _0x7246x19=_0x7246x14[_0x7246x15][_0xa4d4[246]],_0x7246x1a;if(_0x7246x19[_0xa4d4[1193]]()){_0x7246x1a=0==_0x7246x13?_0x7246x9[_0xa4d4[1838]]:_0x7246x9[_0xa4d4[1837]];for(var _0x7246x1b=0;_0x7246x1b<_0x7246x1a[_0xa4d4[67]];_0x7246x1b++){if(_0x7246x1a[_0x7246x1b][_0xa4d4[1097]]==_0x7246x19||_0x7246x1a[_0x7246x1b][_0xa4d4[772]]==_0x7246x19){_0x7246xa+=_0x7246x1a[_0x7246x1b][_0xa4d4[1842]][_0xa4d4[67]],_0x7246x18++,_0x7246x12[_0xa4d4[207]](_0x7246x1a[_0x7246x1b])}};}else {_0x7246xa+=_0x7246x19[_0xa4d4[1842]][_0xa4d4[67]],_0x7246x18++,_0x7246x12[_0xa4d4[207]](_0x7246x19)};};_0x7246x9[_0xa4d4[117]]>(_0x7246xa+1)*this[_0xa4d4[1751]]+2*this[_0xa4d4[1751]]&&(_0x7246x16+=this[_0xa4d4[1751]],_0x7246x17-=this[_0xa4d4[1751]]);_0x7246x14=(_0x7246x17-_0x7246x16)/_0x7246xa;_0x7246x16+=_0x7246x14/2;_0x7246x17=this[_0xa4d4[1753]]-this[_0xa4d4[1752]];for(_0x7246x15=_0x7246x18=0;_0x7246x15<_0x7246x12[_0xa4d4[67]];_0x7246x15++){_0x7246x19=_0x7246x12[_0x7246x15][_0xa4d4[1842]][_0xa4d4[67]];_0x7246x1b=mxCellPath[_0xa4d4[385]](_0x7246x12[_0x7246x15][_0xa4d4[1842]][0]);_0x7246x1a=this[_0xa4d4[1873]][_0x7246x1b];null==_0x7246x1a&&(_0x7246x1a=[],this[_0xa4d4[1873]][_0x7246x1b]=_0x7246x1a);_0x7246x15<_0x7246xa/2?_0x7246x17+=this[_0xa4d4[1752]]:_0x7246x15>_0x7246xa/2&&(_0x7246x17-=this[_0xa4d4[1752]]);for(_0x7246x1b=0;_0x7246x1b<_0x7246x19;_0x7246x1b++){_0x7246x1a[4*_0x7246x1b+2*_0x7246x13]=_0x7246x16,_0x7246x16+=_0x7246x14,_0x7246x1a[4*_0x7246x1b+2*_0x7246x13+1]=_0x7246x17};_0x7246x18=Math[_0xa4d4[160]](_0x7246x18,_0x7246x17);};};_0x7246xa=_0x7246x9[_0xa4d4[1831]](_0x7246x3);_0x7246x12=_0x7246x3+1;}};}}};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1907]]=function(_0x7246x2){var _0x7246x3=0;if(101207!=_0x7246x2[_0xa4d4[1826]][0]){var _0x7246x4=_0x7246x2[_0xa4d4[1827]],_0x7246x5=_0x7246x2[_0xa4d4[1828]];_0x7246x4==_0x7246x5&&(_0x7246x4=_0x7246x2[_0xa4d4[1097]][_0xa4d4[1827]],_0x7246x5=_0x7246x2[_0xa4d4[772]][_0xa4d4[1828]]);for(var _0x7246x9=0,_0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2[_0xa4d4[1842]][0]),_0x7246xa=this[_0xa4d4[1873]][_0x7246xa],_0x7246x12=_0x7246x2[_0xa4d4[1843]]?_0x7246x2[_0xa4d4[772]][_0xa4d4[246]]:_0x7246x2[_0xa4d4[1097]][_0xa4d4[246]],_0x7246x13=this[_0xa4d4[1759]][_0xa4d4[1179]],_0x7246x14=0;_0x7246x14<_0x7246x2[_0xa4d4[1842]][_0xa4d4[67]];_0x7246x14++){var _0x7246x15=_0x7246x2[_0xa4d4[1842]][_0x7246x14],_0x7246x16=this[_0xa4d4[1759]][_0xa4d4[1710]](_0x7246x15,!0),_0x7246x17=_0x7246x13[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x15,!0),_0x7246x18=[],_0x7246x19=_0x7246x2[_0xa4d4[1843]];_0x7246x16!=_0x7246x12&&(_0x7246x19= !_0x7246x19);if(null!=_0x7246xa){var _0x7246x1a=_0x7246x19?2:0,_0x7246x1b=_0x7246x19?this[_0xa4d4[1877]][_0x7246x5]:this[_0xa4d4[1878]][_0x7246x4],_0x7246x1c=_0x7246xa[4*_0x7246x9+1+_0x7246x1a];_0x7246x19&&(_0x7246x1c= -_0x7246x1c);_0x7246x1b+=_0x7246x1c;_0x7246x1a=_0x7246xa[4*_0x7246x9+_0x7246x1a];_0x7246x17=_0x7246x13[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x15,!0);this[_0xa4d4[1759]][_0xa4d4[1908]](_0x7246x17)&&_0x7246x13[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x17)==_0x7246x16&&(_0x7246x1a=_0x7246x13[_0xa4d4[441]][_0xa4d4[248]](_0x7246x17),_0x7246x1a=null!=_0x7246x1a?_0x7246x1a[_0xa4d4[235]]:_0x7246x16[_0xa4d4[256]][_0xa4d4[235]]+_0x7246x2[_0xa4d4[1097]][_0xa4d4[117]]*_0x7246x17[_0xa4d4[256]][_0xa4d4[235]]);this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1358]]||this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1354]]?(_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1a,_0x7246x1b)),this[_0xa4d4[675]]==mxHierarchicalEdgeStyle[_0xa4d4[1906]]&&_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1a,_0x7246x1b+_0x7246x1c))):(_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1b,_0x7246x1a)),this[_0xa4d4[675]]==mxHierarchicalEdgeStyle[_0xa4d4[1906]]&&_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1b+_0x7246x1c,_0x7246x1a)));};_0x7246x1a=_0x7246x2[_0xa4d4[235]][_0xa4d4[67]]-1;_0x7246x1b=_0x7246x1c= -1;_0x7246x16=_0x7246x2[_0xa4d4[1827]]-1;_0x7246x19&&(_0x7246x1a=0,_0x7246x1c=_0x7246x2[_0xa4d4[235]][_0xa4d4[67]],_0x7246x1b=1,_0x7246x16=_0x7246x2[_0xa4d4[1828]]+1);for(;_0x7246x2[_0xa4d4[1827]]!=_0x7246x2[_0xa4d4[1828]]&&_0x7246x1a!=_0x7246x1c;_0x7246x1a+=_0x7246x1b){var _0x7246x17=_0x7246x2[_0xa4d4[235]][_0x7246x1a]+_0x7246x3,_0x7246x1d=(this[_0xa4d4[1877]][_0x7246x16]+this[_0xa4d4[1878]][_0x7246x16+1])/2,_0x7246x1e=(this[_0xa4d4[1877]][_0x7246x16-1]+this[_0xa4d4[1878]][_0x7246x16])/2;if(_0x7246x19){var _0x7246x1f=_0x7246x1d,_0x7246x1d=_0x7246x1e,_0x7246x1e=_0x7246x1f};this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1358]]||this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1354]]?(_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x17,_0x7246x1d)),_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x17,_0x7246x1e))):(_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1d,_0x7246x17)),_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1e,_0x7246x17)));this[_0xa4d4[1874]]=Math[_0xa4d4[160]](this[_0xa4d4[1874]],_0x7246x17);_0x7246x16+=_0x7246x1b;};null!=_0x7246xa&&(_0x7246x1a=_0x7246x19?2:0,_0x7246x1b=_0x7246x19?this[_0xa4d4[1878]][_0x7246x4]:this[_0xa4d4[1877]][_0x7246x5],_0x7246x1c=_0x7246xa[4*_0x7246x9+3-_0x7246x1a],_0x7246x19&&(_0x7246x1c= -_0x7246x1c),_0x7246x1b-=_0x7246x1c,_0x7246x1a=_0x7246xa[4*_0x7246x9+2-_0x7246x1a],_0x7246x19=_0x7246x13[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x15,!1),_0x7246x16=this[_0xa4d4[1759]][_0xa4d4[1710]](_0x7246x15,!1),this[_0xa4d4[1759]][_0xa4d4[1908]](_0x7246x19)&&_0x7246x13[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x19)==_0x7246x16&&(_0x7246x1a=_0x7246x13[_0xa4d4[441]][_0xa4d4[248]](_0x7246x19),_0x7246x1a=null!=_0x7246x1a?_0x7246x1a[_0xa4d4[235]]:_0x7246x16[_0xa4d4[256]][_0xa4d4[235]]+_0x7246x2[_0xa4d4[772]][_0xa4d4[117]]*_0x7246x19[_0xa4d4[256]][_0xa4d4[235]]),this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1358]]||this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1354]]?(this[_0xa4d4[675]]==mxHierarchicalEdgeStyle[_0xa4d4[1906]]&&_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1a,_0x7246x1b-_0x7246x1c)),_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1a,_0x7246x1b))):(this[_0xa4d4[675]]==mxHierarchicalEdgeStyle[_0xa4d4[1906]]&&_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1b-_0x7246x1c,_0x7246x1a)),_0x7246x18[_0xa4d4[207]]( new mxPoint(_0x7246x1b,_0x7246x1a))));_0x7246x2[_0xa4d4[1843]]&&this[_0xa4d4[1909]](_0x7246x2,_0x7246x15);this[_0xa4d4[1759]][_0xa4d4[1722]](_0x7246x15,_0x7246x18);_0x7246x3=0==_0x7246x3?this[_0xa4d4[1872]]:0<_0x7246x3?-_0x7246x3:-_0x7246x3+this[_0xa4d4[1872]];_0x7246x9++;};_0x7246x2[_0xa4d4[1826]][0]=101207;};};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1725]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[246]],_0x7246x4=_0x7246x2[_0xa4d4[235]][0]-_0x7246x2[_0xa4d4[117]]/2,_0x7246x5=_0x7246x2[_0xa4d4[236]][0]-_0x7246x2[_0xa4d4[119]]/2;this[_0xa4d4[1877]][_0x7246x2[_0xa4d4[1828]]]=Math[_0xa4d4[243]](this[_0xa4d4[1877]][_0x7246x2[_0xa4d4[1828]]],_0x7246x5);this[_0xa4d4[1878]][_0x7246x2[_0xa4d4[1828]]]=Math[_0xa4d4[160]](this[_0xa4d4[1878]][_0x7246x2[_0xa4d4[1828]]],_0x7246x5+_0x7246x2[_0xa4d4[119]]);this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1358]]||this[_0xa4d4[1870]]==mxConstants[_0xa4d4[1354]]?this[_0xa4d4[1759]][_0xa4d4[1725]](_0x7246x3,_0x7246x4,_0x7246x5):this[_0xa4d4[1759]][_0xa4d4[1725]](_0x7246x3,_0x7246x5,_0x7246x4);this[_0xa4d4[1874]]=Math[_0xa4d4[160]](this[_0xa4d4[1874]],_0x7246x4+_0x7246x2[_0xa4d4[117]]);};mxCoordinateAssignment[_0xa4d4[202]][_0xa4d4[1909]]=function(_0x7246x2,_0x7246x3){};function WeightedCellSorter(_0x7246x2,_0x7246x3){this[_0xa4d4[246]]=_0x7246x2;this[_0xa4d4[1782]]=_0x7246x3;}WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1782]]=0;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1783]]= !1;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1784]]= !1;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[1785]]=null;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[246]]=null;WeightedCellSorter[_0xa4d4[202]][_0xa4d4[469]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2&&null!=_0x7246x3?_0x7246x3[_0xa4d4[1782]]>_0x7246x2[_0xa4d4[1782]]?-1:_0x7246x3[_0xa4d4[1782]]<_0x7246x2[_0xa4d4[1782]]?1:_0x7246x3[_0xa4d4[1783]]?-1:1:0};function mxHierarchicalLayout(_0x7246x2,_0x7246x3,_0x7246x4){mxGraphLayout[_0xa4d4[239]](this,_0x7246x2);this[_0xa4d4[1870]]=null!=_0x7246x3?_0x7246x3:mxConstants[_0xa4d4[1358]];this[_0xa4d4[1910]]=null!=_0x7246x4?_0x7246x4:!0;}mxHierarchicalLayout[_0xa4d4[202]]= new mxGraphLayout;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[196]]=mxHierarchicalLayout;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1845]]=null;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1735]]= !1;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1911]]= !1;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1912]]=0;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1868]]=30;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1869]]=100;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1913]]=60;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1872]]=10;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1870]]=mxConstants[_0xa4d4[1358]];mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1882]]= !0;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1844]]= !0;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1787]]= !0;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1914]]= !0;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[251]]=null;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1915]]=null;mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[502]]=function(){return this[_0xa4d4[251]]};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1101]]=_0x7246x2;var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[251]];this[_0xa4d4[1915]]={};if(!(null==_0x7246x3&&null==_0x7246x2)){if(null!=_0x7246x3&&null!=_0x7246x2){for(var _0x7246x5=[],_0x7246x9=0;_0x7246x9<_0x7246x3[_0xa4d4[67]];_0x7246x9++){_0x7246x4[_0xa4d4[1720]](_0x7246x2,_0x7246x3[_0x7246x9])&&_0x7246x5[_0xa4d4[207]](_0x7246x3[_0x7246x9])};this[_0xa4d4[1845]]=_0x7246x5;}else {this[_0xa4d4[1845]]=_0x7246x3};_0x7246x4[_0xa4d4[473]]();try{this[_0xa4d4[1916]](_0x7246x2),this[_0xa4d4[1735]]&&!this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x2)&&this[_0xa4d4[1179]][_0xa4d4[1917]]([_0x7246x2],this[_0xa4d4[1912]],this[_0xa4d4[1911]])}finally{_0x7246x4[_0xa4d4[476]]()};};};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1918]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=[];if(null!=_0x7246x2&&null!=_0x7246x3){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[251]],_0x7246x9=null,_0x7246xa=-1E5,_0x7246x12;for(_0x7246x12 in _0x7246x3){var _0x7246x13=_0x7246x3[_0x7246x12];if(_0x7246x5[_0xa4d4[1193]](_0x7246x13)&&this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x13)){for(var _0x7246x14=this[_0xa4d4[264]](_0x7246x13),_0x7246x15=0,_0x7246x16=0,_0x7246x17=0;_0x7246x17<_0x7246x14[_0xa4d4[67]];_0x7246x17++){this[_0xa4d4[1710]](_0x7246x14[_0x7246x17],!0)==_0x7246x13?_0x7246x15++:_0x7246x16++};0==_0x7246x16&&0<_0x7246x15&&_0x7246x4[_0xa4d4[207]](_0x7246x13);_0x7246x14=_0x7246x15-_0x7246x16;_0x7246x14>_0x7246xa&&(_0x7246xa=_0x7246x14,_0x7246x9=_0x7246x13);};};0==_0x7246x4[_0xa4d4[67]]&&null!=_0x7246x9&&_0x7246x4[_0xa4d4[207]](_0x7246x9);};return _0x7246x4;};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[264]]=function(_0x7246x2){var _0x7246x3=mxCellPath[_0xa4d4[385]](_0x7246x2);if(null!=this[_0xa4d4[1915]][_0x7246x3]){return this[_0xa4d4[1915]][_0x7246x3]};for(var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[251]],_0x7246x5=[],_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x2),_0x7246xa=_0x7246x4[_0xa4d4[262]](_0x7246x2),_0x7246x12=0;_0x7246x12<_0x7246xa;_0x7246x12++){var _0x7246x13=_0x7246x4[_0xa4d4[263]](_0x7246x2,_0x7246x12);if(this[_0xa4d4[1908]](_0x7246x13)){_0x7246x5=_0x7246x5[_0xa4d4[1919]](_0x7246x4[_0xa4d4[264]](_0x7246x13,!0,!0))}else {if(_0x7246x9||!this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x13)){_0x7246x5=_0x7246x5[_0xa4d4[1919]](_0x7246x4[_0xa4d4[264]](_0x7246x13,!0,!0))}};};_0x7246x5=_0x7246x5[_0xa4d4[1919]](_0x7246x4[_0xa4d4[264]](_0x7246x2,!0,!0));_0x7246x4=[];for(_0x7246x12=0;_0x7246x12<_0x7246x5[_0xa4d4[67]];_0x7246x12++){_0x7246x9=this[_0xa4d4[1710]](_0x7246x5[_0x7246x12],!0),_0x7246xa=this[_0xa4d4[1710]](_0x7246x5[_0x7246x12],!1),(_0x7246x9==_0x7246xa||_0x7246x9!=_0x7246xa&&(_0x7246xa==_0x7246x2&&(null==this[_0xa4d4[1101]]||this[_0xa4d4[1179]][_0xa4d4[1920]](_0x7246x9,this[_0xa4d4[1101]],this[_0xa4d4[1914]]))||_0x7246x9==_0x7246x2&&(null==this[_0xa4d4[1101]]||this[_0xa4d4[1179]][_0xa4d4[1920]](_0x7246xa,this[_0xa4d4[1101]],this[_0xa4d4[1914]]))))&&_0x7246x4[_0xa4d4[207]](_0x7246x5[_0x7246x12])};return this[_0xa4d4[1915]][_0x7246x3]=_0x7246x4;};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1710]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x4=null!=_0x7246x4?_0x7246x4[_0xa4d4[1710]](_0x7246x3):this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[1710]](_0x7246x2,_0x7246x3);this[_0xa4d4[1908]](_0x7246x4)&&(_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1197]](_0x7246x4));return _0x7246x4;};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1916]]=function(_0x7246x2){var _0x7246x3=[],_0x7246x4=[];if(null==this[_0xa4d4[1845]]&&null!=_0x7246x2){var _0x7246x5={};this[_0xa4d4[1921]](_0x7246x2,_0x7246x5);this[_0xa4d4[1845]]=[];var _0x7246x9=!0,_0x7246xa;for(_0x7246xa in _0x7246x5){if(null!=_0x7246x5[_0x7246xa]){_0x7246x9= !1;break;}};for(;!_0x7246x9;){for(var _0x7246x12=this[_0xa4d4[1918]](_0x7246x2,_0x7246x5),_0x7246x9=0;_0x7246x9<_0x7246x12[_0xa4d4[67]];_0x7246x9++){var _0x7246x13=[];_0x7246x3[_0xa4d4[207]](_0x7246x13);this[_0xa4d4[1706]](_0x7246x12[_0x7246x9],!0,null,_0x7246x4,_0x7246x13,_0x7246x3,_0x7246x5);};for(_0x7246x9=0;_0x7246x9<_0x7246x12[_0xa4d4[67]];_0x7246x9++){this[_0xa4d4[1845]][_0xa4d4[207]](_0x7246x12[_0x7246x9])};_0x7246x9= !0;for(_0x7246xa in _0x7246x5){if(null!=_0x7246x5[_0x7246xa]){_0x7246x9= !1;break;}};};}else {for(_0x7246x9=0;_0x7246x9<roots[_0xa4d4[67]];_0x7246x9++){_0x7246x13=[],_0x7246x3[_0xa4d4[207]](_0x7246x13),traverse(roots[_0xa4d4[203]](_0x7246x9),!0,null,_0x7246x4,_0x7246x13,_0x7246x3,null)}};for(_0x7246x9=_0x7246x4=0;_0x7246x9<_0x7246x3[_0xa4d4[67]];_0x7246x9++){_0x7246x13=_0x7246x3[_0x7246x9];_0x7246x5=[];for(_0x7246xa in _0x7246x13){_0x7246x5[_0xa4d4[207]](_0x7246x13[_0x7246xa])};this[_0xa4d4[251]]= new mxGraphHierarchyModel(this,_0x7246x5,this[_0xa4d4[1845]],_0x7246x2,this[_0xa4d4[1844]]);this[_0xa4d4[1922]](_0x7246x2);this[_0xa4d4[1923]]();this[_0xa4d4[1924]](_0x7246x2);_0x7246x4=this[_0xa4d4[1925]](_0x7246x4,_0x7246x2);};};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1921]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[251]];_0x7246x4[_0xa4d4[1193]](_0x7246x2)&&(_0x7246x2!=this[_0xa4d4[1101]]&&this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x2))&&(_0x7246x3[mxCellPath[_0xa4d4[385]](_0x7246x2)]=_0x7246x2);if(this[_0xa4d4[1914]]||_0x7246x2==this[_0xa4d4[1101]]&&this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x2)){for(var _0x7246x5=_0x7246x4[_0xa4d4[262]](_0x7246x2),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){var _0x7246xa=_0x7246x4[_0xa4d4[263]](_0x7246x2,_0x7246x9);this[_0xa4d4[1908]](_0x7246xa)||this[_0xa4d4[1921]](_0x7246xa,_0x7246x3);}};};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1908]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[256]][_0xa4d4[1500]]?!0:!1};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1781]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:!1;for(var _0x7246x5=this[_0xa4d4[264]](_0x7246x2),_0x7246x9=[],_0x7246xa=0;_0x7246xa<_0x7246x5[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=this[_0xa4d4[1710]](_0x7246x5[_0x7246xa],!0),_0x7246x13=this[_0xa4d4[1710]](_0x7246x5[_0x7246xa],!1);(_0x7246x12==_0x7246x2&&_0x7246x13==_0x7246x3||!_0x7246x4&&_0x7246x12==_0x7246x3&&_0x7246x13==_0x7246x2)&&_0x7246x9[_0xa4d4[207]](_0x7246x5[_0x7246xa]);};return _0x7246x9;};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1706]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12){if(null!=_0x7246x2&&null!=_0x7246x5){var _0x7246x13=mxCellPath[_0xa4d4[385]](_0x7246x2);if(null==_0x7246x5[_0x7246x13]&&(null==_0x7246x12||null!=_0x7246x12[_0x7246x13])){null==_0x7246x9[_0x7246x13]&&(_0x7246x9[_0x7246x13]=_0x7246x2);null==_0x7246x5[_0x7246x13]&&(_0x7246x5[_0x7246x13]=_0x7246x2);delete _0x7246x12[_0x7246x13];var _0x7246x14=this[_0xa4d4[264]](_0x7246x2);for(_0x7246x4=0;_0x7246x4<_0x7246x14[_0xa4d4[67]];_0x7246x4++){if(_0x7246x13=this[_0xa4d4[1710]](_0x7246x14[_0x7246x4],!0)==_0x7246x2,!_0x7246x3||_0x7246x13){_0x7246x13=this[_0xa4d4[1710]](_0x7246x14[_0x7246x4],!_0x7246x13),_0x7246x9=this[_0xa4d4[1706]](_0x7246x13,_0x7246x3,_0x7246x14[_0x7246x4],_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12)}};}else {if(null==_0x7246x9[_0x7246x13]){for(_0x7246x4=0;_0x7246x4<_0x7246xa[_0xa4d4[67]];_0x7246x4++){if(_0x7246x2=_0x7246xa[_0x7246x4],null!=_0x7246x2[_0x7246x13]){for(_0x7246x14 in _0x7246x9){_0x7246x2[_0x7246x14]=_0x7246x9[_0x7246x14]};_0x7246xa[_0xa4d4[1242]]();return _0x7246x2;}}}};};return _0x7246x9;};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1922]]=function(_0x7246x2){( new mxMinimumCycleRemover(this))[_0xa4d4[350]](_0x7246x2)};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1923]]=function(){this[_0xa4d4[251]][_0xa4d4[1852]]();this[_0xa4d4[251]][_0xa4d4[1854]]();};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1924]]=function(_0x7246x2){( new mxMedianHybridCrossingReduction(this))[_0xa4d4[350]](_0x7246x2)};mxHierarchicalLayout[_0xa4d4[202]][_0xa4d4[1925]]=function(_0x7246x2,_0x7246x3){var _0x7246x4= new mxCoordinateAssignment(this,this[_0xa4d4[1868]],this[_0xa4d4[1869]],this[_0xa4d4[1870]],_0x7246x2,this[_0xa4d4[1872]]);_0x7246x4[_0xa4d4[1882]]=this[_0xa4d4[1882]];_0x7246x4[_0xa4d4[350]](_0x7246x3);return _0x7246x4[_0xa4d4[1874]]+this[_0xa4d4[1913]];};function mxGraphModel(_0x7246x2){this[_0xa4d4[1926]]=this[_0xa4d4[1096]]();null!=_0x7246x2?this[_0xa4d4[1927]](_0x7246x2):this[_0xa4d4[200]]();}mxGraphModel[_0xa4d4[202]]= new mxEventSource;mxGraphModel[_0xa4d4[202]][_0xa4d4[196]]=mxGraphModel;mxGraphModel[_0xa4d4[202]][_0xa4d4[813]]=null;mxGraphModel[_0xa4d4[202]][_0xa4d4[895]]=null;mxGraphModel[_0xa4d4[202]][_0xa4d4[1928]]= !0;mxGraphModel[_0xa4d4[202]][_0xa4d4[1929]]= !0;mxGraphModel[_0xa4d4[202]][_0xa4d4[1089]]=_0xa4d4[110];mxGraphModel[_0xa4d4[202]][_0xa4d4[1930]]=_0xa4d4[110];mxGraphModel[_0xa4d4[202]][_0xa4d4[1931]]=0;mxGraphModel[_0xa4d4[202]][_0xa4d4[1926]]=null;mxGraphModel[_0xa4d4[202]][_0xa4d4[1932]]=0;mxGraphModel[_0xa4d4[202]][_0xa4d4[1933]]= !1;mxGraphModel[_0xa4d4[202]][_0xa4d4[200]]=function(){this[_0xa4d4[1927]](this[_0xa4d4[1934]]())};mxGraphModel[_0xa4d4[202]][_0xa4d4[1935]]=function(){return this[_0xa4d4[1929]]};mxGraphModel[_0xa4d4[202]][_0xa4d4[1936]]=function(_0x7246x2){this[_0xa4d4[1929]]=_0x7246x2};mxGraphModel[_0xa4d4[202]][_0xa4d4[1934]]=function(){var _0x7246x2= new mxCell;_0x7246x2[_0xa4d4[1937]]( new mxCell);return _0x7246x2;};mxGraphModel[_0xa4d4[202]][_0xa4d4[736]]=function(_0x7246x2){return null!=this[_0xa4d4[895]]?this[_0xa4d4[895]][_0x7246x2]:null};mxGraphModel[_0xa4d4[202]][_0xa4d4[1938]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=null;if(null!=_0x7246x2){for(var _0x7246x4=[],_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){_0x7246x3(_0x7246x2[_0x7246x5])&&_0x7246x4[_0xa4d4[207]](_0x7246x2[_0x7246x5])}};return _0x7246x4;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1939]]=function(_0x7246x2){return this[_0xa4d4[1921]](null,_0x7246x2)};mxGraphModel[_0xa4d4[202]][_0xa4d4[1921]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=[];_0x7246x3=_0x7246x3||this[_0xa4d4[501]]();(null==_0x7246x2||_0x7246x2(_0x7246x3))&&_0x7246x4[_0xa4d4[207]](_0x7246x3);for(var _0x7246x5=this[_0xa4d4[262]](_0x7246x3),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){var _0x7246xa=this[_0xa4d4[263]](_0x7246x3,_0x7246x9),_0x7246x4=_0x7246x4[_0xa4d4[1919]](this[_0xa4d4[1921]](_0x7246x2,_0x7246xa))};return _0x7246x4;};mxGraphModel[_0xa4d4[202]][_0xa4d4[501]]=function(_0x7246x2){var _0x7246x3=_0x7246x2||this[_0xa4d4[813]];if(null!=_0x7246x2){for(;null!=_0x7246x2;){_0x7246x3=_0x7246x2,_0x7246x2=this[_0xa4d4[1197]](_0x7246x2)}};return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1927]]=function(_0x7246x2){this[_0xa4d4[350]]( new mxRootChange(this,_0x7246x2));return _0x7246x2;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1940]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[813]];this[_0xa4d4[813]]=_0x7246x2;this[_0xa4d4[1931]]=0;this[_0xa4d4[895]]=null;this[_0xa4d4[1941]](_0x7246x2);return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1942]]=function(_0x7246x2){return null!=_0x7246x2&&this[_0xa4d4[813]]==_0x7246x2};mxGraphModel[_0xa4d4[202]][_0xa4d4[1740]]=function(_0x7246x2){return this[_0xa4d4[1942]](this[_0xa4d4[1197]](_0x7246x2))};mxGraphModel[_0xa4d4[202]][_0xa4d4[1720]]=function(_0x7246x2,_0x7246x3){for(;null!=_0x7246x3&&_0x7246x3!=_0x7246x2;){_0x7246x3=this[_0xa4d4[1197]](_0x7246x3)};return _0x7246x3==_0x7246x2;};mxGraphModel[_0xa4d4[202]][_0xa4d4[442]]=function(_0x7246x2){return this[_0xa4d4[1720]](this[_0xa4d4[813]],_0x7246x2)};mxGraphModel[_0xa4d4[202]][_0xa4d4[1197]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1197]]():null};mxGraphModel[_0xa4d4[202]][_0xa4d4[99]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(_0x7246x3!=_0x7246x2&&null!=_0x7246x2&&null!=_0x7246x3){null==_0x7246x4&&(_0x7246x4=this[_0xa4d4[262]](_0x7246x2));var _0x7246x5=_0x7246x2!=this[_0xa4d4[1197]](_0x7246x3);this[_0xa4d4[350]]( new mxChildChange(this,_0x7246x2,_0x7246x3,_0x7246x4));this[_0xa4d4[1928]]&&_0x7246x5&&this[_0xa4d4[1943]](_0x7246x3);};return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1941]]=function(_0x7246x2){if(null!=_0x7246x2){null==_0x7246x2[_0xa4d4[1103]]()&&this[_0xa4d4[1929]]&&_0x7246x2[_0xa4d4[1945]](this[_0xa4d4[1944]](_0x7246x2));if(null!=_0x7246x2[_0xa4d4[1103]]()){var _0x7246x3=this[_0xa4d4[736]](_0x7246x2[_0xa4d4[1103]]());if(_0x7246x3!=_0x7246x2){for(;null!=_0x7246x3;){_0x7246x2[_0xa4d4[1945]](this[_0xa4d4[1944]](_0x7246x2)),_0x7246x3=this[_0xa4d4[736]](_0x7246x2[_0xa4d4[1103]]())};null==this[_0xa4d4[895]]&&(this[_0xa4d4[895]]={});this[_0xa4d4[895]][_0x7246x2[_0xa4d4[1103]]()]=_0x7246x2;};};mxUtils[_0xa4d4[1946]](_0x7246x2[_0xa4d4[1103]]())&&(this[_0xa4d4[1931]]=Math[_0xa4d4[160]](this[_0xa4d4[1931]],_0x7246x2[_0xa4d4[1103]]()));for(var _0x7246x3=this[_0xa4d4[262]](_0x7246x2),_0x7246x4=0;_0x7246x4<_0x7246x3;_0x7246x4++){this[_0xa4d4[1941]](this[_0xa4d4[263]](_0x7246x2,_0x7246x4))};}};mxGraphModel[_0xa4d4[202]][_0xa4d4[1944]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[1931]];this[_0xa4d4[1931]]++;return this[_0xa4d4[1089]]+_0x7246x2+this[_0xa4d4[1930]];};mxGraphModel[_0xa4d4[202]][_0xa4d4[1943]]=function(_0x7246x2,_0x7246x3){_0x7246x3=_0x7246x3||this[_0xa4d4[501]](_0x7246x2);for(var _0x7246x4=this[_0xa4d4[262]](_0x7246x2),_0x7246x5=0;_0x7246x5<_0x7246x4;_0x7246x5++){var _0x7246x9=this[_0xa4d4[263]](_0x7246x2,_0x7246x5);this[_0xa4d4[1943]](_0x7246x9,_0x7246x3);};_0x7246x9=this[_0xa4d4[1707]](_0x7246x2);_0x7246x4=[];for(_0x7246x5=0;_0x7246x5<_0x7246x9;_0x7246x5++){_0x7246x4[_0xa4d4[207]](this[_0xa4d4[1708]](_0x7246x2,_0x7246x5))};for(_0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]];_0x7246x5++){_0x7246x9=_0x7246x4[_0x7246x5],this[_0xa4d4[1720]](_0x7246x3,_0x7246x9)&&this[_0xa4d4[1947]](_0x7246x9,_0x7246x3)};};mxGraphModel[_0xa4d4[202]][_0xa4d4[1947]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=this[_0xa4d4[1709]](_0x7246x2,!0),_0x7246x5=this[_0xa4d4[1709]](_0x7246x2,!1),_0x7246x9=null;null!=_0x7246x4&&!this[_0xa4d4[250]](_0x7246x4)&&null!=_0x7246x4[_0xa4d4[256]]&&_0x7246x4[_0xa4d4[256]][_0xa4d4[1500]];){_0x7246x4=this[_0xa4d4[1197]](_0x7246x4)};for(;null!=_0x7246x5&&!this[_0xa4d4[250]](_0x7246x5)&&null!=_0x7246x5[_0xa4d4[256]]&&_0x7246x5[_0xa4d4[256]][_0xa4d4[1500]];){_0x7246x5=this[_0xa4d4[1197]](_0x7246x5)};if(this[_0xa4d4[1720]](_0x7246x3,_0x7246x4)&&this[_0xa4d4[1720]](_0x7246x3,_0x7246x5)&&(_0x7246x9=_0x7246x4==_0x7246x5?this[_0xa4d4[1197]](_0x7246x4):this[_0xa4d4[1948]](_0x7246x4,_0x7246x5),null!=_0x7246x9&&(this[_0xa4d4[1197]](_0x7246x9)!=this[_0xa4d4[813]]||this[_0xa4d4[1720]](_0x7246x9,_0x7246x2))&&this[_0xa4d4[1197]](_0x7246x2)!=_0x7246x9)){_0x7246x4=this[_0xa4d4[1721]](_0x7246x2);if(null!=_0x7246x4){var _0x7246xa=this[_0xa4d4[1949]](this[_0xa4d4[1197]](_0x7246x2)),_0x7246x12=this[_0xa4d4[1949]](_0x7246x9),_0x7246x5=_0x7246x12[_0xa4d4[235]]-_0x7246xa[_0xa4d4[235]],_0x7246xa=_0x7246x12[_0xa4d4[236]]-_0x7246xa[_0xa4d4[236]],_0x7246x4=_0x7246x4[_0xa4d4[238]]();_0x7246x4[_0xa4d4[513]](-_0x7246x5,-_0x7246xa);this[_0xa4d4[1724]](_0x7246x2,_0x7246x4);};this[_0xa4d4[99]](_0x7246x9,_0x7246x2,this[_0xa4d4[262]](_0x7246x9));};};mxGraphModel[_0xa4d4[202]][_0xa4d4[1949]]=function(_0x7246x2){var _0x7246x3=null;null!=_0x7246x2?(_0x7246x3=this[_0xa4d4[1949]](this[_0xa4d4[1197]](_0x7246x2)),this[_0xa4d4[250]](_0x7246x2)||(_0x7246x2=this[_0xa4d4[1721]](_0x7246x2),null!=_0x7246x2&&(_0x7246x3[_0xa4d4[235]]+=_0x7246x2[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]+=_0x7246x2[_0xa4d4[236]]))):_0x7246x3= new mxPoint;return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1948]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&null!=_0x7246x3){var _0x7246x4=mxCellPath[_0xa4d4[385]](_0x7246x3);if(null!=_0x7246x4&&0<_0x7246x4[_0xa4d4[67]]){var _0x7246x5=_0x7246x2,_0x7246x9=mxCellPath[_0xa4d4[385]](_0x7246x5);if(_0x7246x4[_0xa4d4[67]]<_0x7246x9[_0xa4d4[67]]){var _0x7246x5=_0x7246x3,_0x7246xa=_0x7246x9,_0x7246x9=_0x7246x4,_0x7246x4=_0x7246xa};for(;null!=_0x7246x5;){_0x7246xa=this[_0xa4d4[1197]](_0x7246x5);if(0==_0x7246x4[_0xa4d4[2]](_0x7246x9+mxCellPath[_0xa4d4[1950]])&&null!=_0x7246xa){return _0x7246x5};_0x7246x9=mxCellPath[_0xa4d4[1951]](_0x7246x9);_0x7246x5=_0x7246xa;};};};return null;};mxGraphModel[_0xa4d4[202]][_0xa4d4[205]]=function(_0x7246x2){_0x7246x2==this[_0xa4d4[813]]?this[_0xa4d4[1927]](null):null!=this[_0xa4d4[1197]](_0x7246x2)&&this[_0xa4d4[350]]( new mxChildChange(this,null,_0x7246x2));return _0x7246x2;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1102]]=function(_0x7246x2){if(null!=_0x7246x2&&null!=this[_0xa4d4[895]]){for(var _0x7246x3=this[_0xa4d4[262]](_0x7246x2)-1;0<=_0x7246x3;_0x7246x3--){this[_0xa4d4[1102]](this[_0xa4d4[263]](_0x7246x2,_0x7246x3))};null!=this[_0xa4d4[895]]&&null!=_0x7246x2[_0xa4d4[1103]]()&& delete this[_0xa4d4[895]][_0x7246x2[_0xa4d4[1103]]()];}};mxGraphModel[_0xa4d4[202]][_0xa4d4[1952]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1197]](_0x7246x2);null!=_0x7246x3?(_0x7246x3!=_0x7246x5||_0x7246x5[_0xa4d4[1738]](_0x7246x2)!=_0x7246x4)&&_0x7246x3[_0xa4d4[1937]](_0x7246x2,_0x7246x4):null!=_0x7246x5&&(_0x7246x4=_0x7246x5[_0xa4d4[1738]](_0x7246x2),_0x7246x5[_0xa4d4[205]](_0x7246x4));!this[_0xa4d4[442]](_0x7246x5)&&null!=_0x7246x3?this[_0xa4d4[1941]](_0x7246x2):null==_0x7246x3&&this[_0xa4d4[1102]](_0x7246x2);return _0x7246x5;};mxGraphModel[_0xa4d4[202]][_0xa4d4[262]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[262]]():0};mxGraphModel[_0xa4d4[202]][_0xa4d4[263]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2?_0x7246x2[_0xa4d4[263]](_0x7246x3):null};mxGraphModel[_0xa4d4[202]][_0xa4d4[1953]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1954]]:null};mxGraphModel[_0xa4d4[202]][_0xa4d4[1728]]=function(_0x7246x2){return this[_0xa4d4[1955]](_0x7246x2,!0,!1)};mxGraphModel[_0xa4d4[202]][_0xa4d4[1956]]=function(_0x7246x2){return this[_0xa4d4[1955]](_0x7246x2,!1,!0)};mxGraphModel[_0xa4d4[202]][_0xa4d4[1955]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;_0x7246x4=null!=_0x7246x4?_0x7246x4:!1;for(var _0x7246x5=this[_0xa4d4[262]](_0x7246x2),_0x7246x9=[],_0x7246xa=0;_0x7246xa<_0x7246x5;_0x7246xa++){var _0x7246x12=this[_0xa4d4[263]](_0x7246x2,_0x7246xa);(!_0x7246x4&&!_0x7246x3||_0x7246x4&&this[_0xa4d4[250]](_0x7246x12)||_0x7246x3&&this[_0xa4d4[1193]](_0x7246x12))&&_0x7246x9[_0xa4d4[207]](_0x7246x12);};return _0x7246x9;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1709]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1709]](_0x7246x3):null};mxGraphModel[_0xa4d4[202]][_0xa4d4[1957]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x3!=this[_0xa4d4[1709]](_0x7246x2,_0x7246x4);this[_0xa4d4[350]]( new mxTerminalChange(this,_0x7246x2,_0x7246x3,_0x7246x4));this[_0xa4d4[1928]]&&_0x7246x5&&this[_0xa4d4[1947]](_0x7246x2,this[_0xa4d4[501]]());return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1958]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[473]]();try{this[_0xa4d4[1957]](_0x7246x2,_0x7246x3,!0),this[_0xa4d4[1957]](_0x7246x2,_0x7246x4,!1)}finally{this[_0xa4d4[476]]()};};mxGraphModel[_0xa4d4[202]][_0xa4d4[1959]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1709]](_0x7246x2,_0x7246x4);null!=_0x7246x3?_0x7246x3[_0xa4d4[1960]](_0x7246x2,_0x7246x4):null!=_0x7246x5&&_0x7246x5[_0xa4d4[1961]](_0x7246x2,_0x7246x4);return _0x7246x5;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1707]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1707]]():0};mxGraphModel[_0xa4d4[202]][_0xa4d4[1708]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1708]](_0x7246x3):null};mxGraphModel[_0xa4d4[202]][_0xa4d4[1962]]=function(_0x7246x2,_0x7246x3,_0x7246x4){for(var _0x7246x5=0,_0x7246x9=this[_0xa4d4[1707]](_0x7246x2),_0x7246xa=0;_0x7246xa<_0x7246x9;_0x7246xa++){var _0x7246x12=this[_0xa4d4[1708]](_0x7246x2,_0x7246xa);_0x7246x12!=_0x7246x4&&this[_0xa4d4[1709]](_0x7246x12,_0x7246x3)==_0x7246x2&&_0x7246x5++;};return _0x7246x5;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1756]]=function(_0x7246x2){return this[_0xa4d4[264]](_0x7246x2,!0,!0,!1)};mxGraphModel[_0xa4d4[202]][_0xa4d4[1867]]=function(_0x7246x2){return this[_0xa4d4[264]](_0x7246x2,!0,!1,!1)};mxGraphModel[_0xa4d4[202]][_0xa4d4[1963]]=function(_0x7246x2){return this[_0xa4d4[264]](_0x7246x2,!1,!0,!1)};mxGraphModel[_0xa4d4[202]][_0xa4d4[264]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;_0x7246x5=null!=_0x7246x5?_0x7246x5:!0;for(var _0x7246x9=this[_0xa4d4[1707]](_0x7246x2),_0x7246xa=[],_0x7246x12=0;_0x7246x12<_0x7246x9;_0x7246x12++){var _0x7246x13=this[_0xa4d4[1708]](_0x7246x2,_0x7246x12),_0x7246x14=this[_0xa4d4[1709]](_0x7246x13,!0),_0x7246x15=this[_0xa4d4[1709]](_0x7246x13,!1);(_0x7246x5&&_0x7246x14==_0x7246x15||_0x7246x14!=_0x7246x15&&(_0x7246x3&&_0x7246x15==_0x7246x2||_0x7246x4&&_0x7246x14==_0x7246x2))&&_0x7246xa[_0xa4d4[207]](_0x7246x13);};return _0x7246xa;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1781]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:!1;var _0x7246x5=this[_0xa4d4[1707]](_0x7246x2),_0x7246x9=this[_0xa4d4[1707]](_0x7246x3),_0x7246xa=_0x7246x2,_0x7246x12=_0x7246x5;_0x7246x9<_0x7246x5&&(_0x7246x12=_0x7246x9,_0x7246xa=_0x7246x3);_0x7246x5=[];for(_0x7246x9=0;_0x7246x9<_0x7246x12;_0x7246x9++){var _0x7246x13=this[_0xa4d4[1708]](_0x7246xa,_0x7246x9),_0x7246x14=this[_0xa4d4[1709]](_0x7246x13,!0),_0x7246x15=this[_0xa4d4[1709]](_0x7246x13,!1),_0x7246x16=_0x7246x15==_0x7246x2&&_0x7246x14==_0x7246x3;(_0x7246x14==_0x7246x2&&_0x7246x15==_0x7246x3||!_0x7246x4&&_0x7246x16)&&_0x7246x5[_0xa4d4[207]](_0x7246x13);};return _0x7246x5;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1808]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;_0x7246x5=null!=_0x7246x5?_0x7246x5:!0;var _0x7246x9=[];if(null!=_0x7246x2){for(var _0x7246xa=0;_0x7246xa<_0x7246x2[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=this[_0xa4d4[1709]](_0x7246x2[_0x7246xa],!0),_0x7246x13=this[_0xa4d4[1709]](_0x7246x2[_0x7246xa],!1);_0x7246x12==_0x7246x3&&null!=_0x7246x13&&_0x7246x13!=_0x7246x3&&_0x7246x5?_0x7246x9[_0xa4d4[207]](_0x7246x13):_0x7246x13==_0x7246x3&&(null!=_0x7246x12&&_0x7246x12!=_0x7246x3&&_0x7246x4)&&_0x7246x9[_0xa4d4[207]](_0x7246x12);}};return _0x7246x9;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1964]]=function(_0x7246x2){for(var _0x7246x3=[],_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){for(var _0x7246x5=_0x7246x2[_0x7246x4],_0x7246x9=!0,_0x7246xa=this[_0xa4d4[1197]](_0x7246x5);null!=_0x7246xa;){if(0<=mxUtils[_0xa4d4[2]](_0x7246x2,_0x7246xa)){_0x7246x9= !1;break;};_0x7246xa=this[_0xa4d4[1197]](_0x7246xa);};_0x7246x9&&_0x7246x3[_0xa4d4[207]](_0x7246x5);};return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1193]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1193]]():!1};mxGraphModel[_0xa4d4[202]][_0xa4d4[250]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[250]]():!1};mxGraphModel[_0xa4d4[202]][_0xa4d4[1965]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1965]]():!1};mxGraphModel[_0xa4d4[202]][_0xa4d4[433]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[433]]():null};mxGraphModel[_0xa4d4[202]][_0xa4d4[1966]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[350]]( new mxValueChange(this,_0x7246x2,_0x7246x3));return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1967]]=function(_0x7246x2,_0x7246x3){return _0x7246x2[_0xa4d4[1968]](_0x7246x3)};mxGraphModel[_0xa4d4[202]][_0xa4d4[1721]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1721]]():null};mxGraphModel[_0xa4d4[202]][_0xa4d4[1724]]=function(_0x7246x2,_0x7246x3){_0x7246x3!=this[_0xa4d4[1721]](_0x7246x2)&&this[_0xa4d4[350]]( new mxGeometryChange(this,_0x7246x2,_0x7246x3));return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1969]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1721]](_0x7246x2);_0x7246x2[_0xa4d4[1724]](_0x7246x3);return _0x7246x4;};mxGraphModel[_0xa4d4[202]][_0xa4d4[474]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[474]]():null};mxGraphModel[_0xa4d4[202]][_0xa4d4[475]]=function(_0x7246x2,_0x7246x3){_0x7246x3!=this[_0xa4d4[474]](_0x7246x2)&&this[_0xa4d4[350]]( new mxStyleChange(this,_0x7246x2,_0x7246x3));return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1970]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[474]](_0x7246x2);_0x7246x2[_0xa4d4[475]](_0x7246x3);return _0x7246x4;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1971]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[1971]]():!1};mxGraphModel[_0xa4d4[202]][_0xa4d4[1972]]=function(_0x7246x2,_0x7246x3){_0x7246x3!=this[_0xa4d4[1971]](_0x7246x2)&&this[_0xa4d4[350]]( new mxCollapseChange(this,_0x7246x2,_0x7246x3));return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1973]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1971]](_0x7246x2);_0x7246x2[_0xa4d4[1972]](_0x7246x3);return _0x7246x4;};mxGraphModel[_0xa4d4[202]][_0xa4d4[174]]=function(_0x7246x2){return null!=_0x7246x2?_0x7246x2[_0xa4d4[174]]():!1};mxGraphModel[_0xa4d4[202]][_0xa4d4[175]]=function(_0x7246x2,_0x7246x3){_0x7246x3!=this[_0xa4d4[174]](_0x7246x2)&&this[_0xa4d4[350]]( new mxVisibleChange(this,_0x7246x2,_0x7246x3));return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1974]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[174]](_0x7246x2);_0x7246x2[_0xa4d4[175]](_0x7246x3);return _0x7246x4;};mxGraphModel[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2){_0x7246x2[_0xa4d4[350]]();this[_0xa4d4[473]]();this[_0xa4d4[1926]][_0xa4d4[99]](_0x7246x2);this[_0xa4d4[746]]( new mxEventObject(mxEvent.EXECUTE,_0xa4d4[826],_0x7246x2));this[_0xa4d4[746]]( new mxEventObject(mxEvent.EXECUTED,_0xa4d4[826],_0x7246x2));this[_0xa4d4[476]]();};mxGraphModel[_0xa4d4[202]][_0xa4d4[473]]=function(){this[_0xa4d4[1932]]++;this[_0xa4d4[746]]( new mxEventObject(mxEvent.BEGIN_UPDATE));1==this[_0xa4d4[1932]]&&this[_0xa4d4[746]]( new mxEventObject(mxEvent.START_EDIT));};mxGraphModel[_0xa4d4[202]][_0xa4d4[476]]=function(){this[_0xa4d4[1932]]--;0==this[_0xa4d4[1932]]&&this[_0xa4d4[746]]( new mxEventObject(mxEvent.END_EDIT));if(!this[_0xa4d4[1933]]){this[_0xa4d4[1933]]=0==this[_0xa4d4[1932]];this[_0xa4d4[746]]( new mxEventObject(mxEvent.END_UPDATE,_0xa4d4[1061],this[_0xa4d4[1926]]));try{if(this[_0xa4d4[1933]]&&!this[_0xa4d4[1926]][_0xa4d4[1107]]()){this[_0xa4d4[746]]( new mxEventObject(mxEvent.BEFORE_UNDO,_0xa4d4[1061],this[_0xa4d4[1926]]));var _0x7246x2=this[_0xa4d4[1926]];this[_0xa4d4[1926]]=this[_0xa4d4[1096]]();_0x7246x2[_0xa4d4[827]]();this[_0xa4d4[746]]( new mxEventObject(mxEvent.UNDO,_0xa4d4[1061],_0x7246x2));}}finally{this[_0xa4d4[1933]]= !1};};};mxGraphModel[_0xa4d4[202]][_0xa4d4[1096]]=function(){var _0x7246x2= new mxUndoableEdit(this,!0);_0x7246x2[_0xa4d4[827]]=function(){_0x7246x2[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.CHANGE,_0xa4d4[1061],_0x7246x2,_0xa4d4[1065],_0x7246x2[_0xa4d4[1065]]));_0x7246x2[_0xa4d4[1097]][_0xa4d4[746]]( new mxEventObject(mxEvent.NOTIFY,_0xa4d4[1061],_0x7246x2,_0xa4d4[1065],_0x7246x2[_0xa4d4[1065]]));};return _0x7246x2;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1975]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;this[_0xa4d4[473]]();try{var _0x7246x5={};this[_0xa4d4[1976]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5);for(var _0x7246x9 in _0x7246x5){var _0x7246xa=_0x7246x5[_0x7246x9],_0x7246x12=this[_0xa4d4[1709]](_0x7246xa,!0);null!=_0x7246x12&&(_0x7246x12=_0x7246x5[mxCellPath[_0xa4d4[385]](_0x7246x12)],this[_0xa4d4[1957]](_0x7246xa,_0x7246x12,!0));_0x7246x12=this[_0xa4d4[1709]](_0x7246xa,!1);null!=_0x7246x12&&(_0x7246x12=_0x7246x5[mxCellPath[_0xa4d4[385]](_0x7246x12)],this[_0xa4d4[1957]](_0x7246xa,_0x7246x12,!1));};}finally{this[_0xa4d4[476]]()};};mxGraphModel[_0xa4d4[202]][_0xa4d4[1976]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[473]]();try{for(var _0x7246x9=_0x7246x2[_0xa4d4[262]](),_0x7246xa=0;_0x7246xa<_0x7246x9;_0x7246xa++){var _0x7246x12=_0x7246x2[_0xa4d4[263]](_0x7246xa);if(_0xa4d4[279]== typeof _0x7246x12[_0xa4d4[1103]]){var _0x7246x13=_0x7246x12[_0xa4d4[1103]](),_0x7246x14=null!=_0x7246x13&&(!this[_0xa4d4[250]](_0x7246x12)|| !_0x7246x4)?this[_0xa4d4[736]](_0x7246x13):null;if(null==_0x7246x14){var _0x7246x15=_0x7246x12[_0xa4d4[238]]();_0x7246x15[_0xa4d4[1945]](_0x7246x13);_0x7246x15[_0xa4d4[1957]](_0x7246x12[_0xa4d4[1709]](!0),!0);_0x7246x15[_0xa4d4[1957]](_0x7246x12[_0xa4d4[1709]](!1),!1);_0x7246x14=_0x7246x3[_0xa4d4[1937]](_0x7246x15);this[_0xa4d4[1941]](_0x7246x14);};_0x7246x5[mxCellPath[_0xa4d4[385]](_0x7246x12)]=_0x7246x14;this[_0xa4d4[1976]](_0x7246x12,_0x7246x14,_0x7246x4,_0x7246x5);};}}finally{this[_0xa4d4[476]]()};};mxGraphModel[_0xa4d4[202]][_0xa4d4[1977]]=function(_0x7246x2){var _0x7246x3=[];if(null!=_0x7246x2){for(var _0x7246x4={},_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=this[_0xa4d4[1197]](_0x7246x2[_0x7246x5]);if(null!=_0x7246x9){var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x9);null==_0x7246x4[_0x7246xa]&&(_0x7246x4[_0x7246xa]=_0x7246x9,_0x7246x3[_0xa4d4[207]](_0x7246x9));};}};return _0x7246x3;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1978]]=function(_0x7246x2){return null!=_0x7246x2?this[_0xa4d4[899]]([_0x7246x2],!0)[0]:null};mxGraphModel[_0xa4d4[202]][_0xa4d4[899]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4={},_0x7246x5=[],_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){null!=_0x7246x2[_0x7246x9]?_0x7246x5[_0xa4d4[207]](this[_0xa4d4[1979]](_0x7246x2[_0x7246x9],_0x7246x4,_0x7246x3)):_0x7246x5[_0xa4d4[207]](null)};for(_0x7246x9=0;_0x7246x9<_0x7246x5[_0xa4d4[67]];_0x7246x9++){null!=_0x7246x5[_0x7246x9]&&this[_0xa4d4[1980]](_0x7246x5[_0x7246x9],_0x7246x2[_0x7246x9],_0x7246x4)};return _0x7246x5;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1979]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1981]](_0x7246x2);_0x7246x3[mxObjectIdentity[_0xa4d4[203]](_0x7246x2)]=_0x7246x5;if(_0x7246x4){_0x7246x4=this[_0xa4d4[262]](_0x7246x2);for(var _0x7246x9=0;_0x7246x9<_0x7246x4;_0x7246x9++){var _0x7246xa=this[_0xa4d4[1979]](this[_0xa4d4[263]](_0x7246x2,_0x7246x9),_0x7246x3,!0);_0x7246x5[_0xa4d4[1937]](_0x7246xa);};};return _0x7246x5;};mxGraphModel[_0xa4d4[202]][_0xa4d4[1981]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[238]]()};mxGraphModel[_0xa4d4[202]][_0xa4d4[1980]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1709]](_0x7246x3,!0);null!=_0x7246x5&&(_0x7246x5=_0x7246x4[mxObjectIdentity[_0xa4d4[203]](_0x7246x5)],null!=_0x7246x5&&_0x7246x5[_0xa4d4[1960]](_0x7246x2,!0));_0x7246x5=this[_0xa4d4[1709]](_0x7246x3,!1);null!=_0x7246x5&&(_0x7246x5=_0x7246x4[mxObjectIdentity[_0xa4d4[203]](_0x7246x5)],null!=_0x7246x5&&_0x7246x5[_0xa4d4[1960]](_0x7246x2,!1));for(var _0x7246x5=this[_0xa4d4[262]](_0x7246x2),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){this[_0xa4d4[1980]](this[_0xa4d4[263]](_0x7246x2,_0x7246x9),this[_0xa4d4[263]](_0x7246x3,_0x7246x9),_0x7246x4)};};function mxRootChange(_0x7246x2,_0x7246x3){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[257]]=this[_0xa4d4[813]]=_0x7246x3;}mxRootChange[_0xa4d4[202]][_0xa4d4[350]]=function(){this[_0xa4d4[813]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=this[_0xa4d4[251]][_0xa4d4[1940]](this[_0xa4d4[257]]);};function mxChildChange(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[257]]=this[_0xa4d4[1101]]=_0x7246x3;this[_0xa4d4[247]]=_0x7246x4;this[_0xa4d4[1982]]=this[_0xa4d4[1983]]=_0x7246x5;}mxChildChange[_0xa4d4[202]][_0xa4d4[350]]=function(){var _0x7246x2=this[_0xa4d4[251]][_0xa4d4[1197]](this[_0xa4d4[247]]),_0x7246x3=null!=_0x7246x2?_0x7246x2[_0xa4d4[1738]](this[_0xa4d4[247]]):0;null==this[_0xa4d4[257]]&&this[_0xa4d4[807]](this[_0xa4d4[247]],!1);_0x7246x2=this[_0xa4d4[251]][_0xa4d4[1952]](this[_0xa4d4[247]],this[_0xa4d4[257]],this[_0xa4d4[1982]]);null!=this[_0xa4d4[257]]&&this[_0xa4d4[807]](this[_0xa4d4[247]],!0);this[_0xa4d4[1101]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=_0x7246x2;this[_0xa4d4[1983]]=this[_0xa4d4[1982]];this[_0xa4d4[1982]]=_0x7246x3;};mxChildChange[_0xa4d4[202]][_0xa4d4[807]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;var _0x7246x4=_0x7246x2[_0xa4d4[1709]](!0),_0x7246x5=_0x7246x2[_0xa4d4[1709]](!1);null!=_0x7246x4&&(_0x7246x3?this[_0xa4d4[251]][_0xa4d4[1959]](_0x7246x2,_0x7246x4,!0):this[_0xa4d4[251]][_0xa4d4[1959]](_0x7246x2,null,!0));null!=_0x7246x5&&(_0x7246x3?this[_0xa4d4[251]][_0xa4d4[1959]](_0x7246x2,_0x7246x5,!1):this[_0xa4d4[251]][_0xa4d4[1959]](_0x7246x2,null,!1));_0x7246x2[_0xa4d4[1957]](_0x7246x4,!0);_0x7246x2[_0xa4d4[1957]](_0x7246x5,!1);_0x7246x4=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2);for(_0x7246x5=0;_0x7246x5<_0x7246x4;_0x7246x5++){this[_0xa4d4[807]](this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,_0x7246x5),_0x7246x3)};};function mxTerminalChange(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[246]]=_0x7246x3;this[_0xa4d4[257]]=this[_0xa4d4[1984]]=_0x7246x4;this[_0xa4d4[1097]]=_0x7246x5;}mxTerminalChange[_0xa4d4[202]][_0xa4d4[350]]=function(){this[_0xa4d4[1984]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=this[_0xa4d4[251]][_0xa4d4[1959]](this[_0xa4d4[246]],this[_0xa4d4[257]],this[_0xa4d4[1097]]);};function mxValueChange(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[246]]=_0x7246x3;this[_0xa4d4[257]]=this[_0xa4d4[131]]=_0x7246x4;}mxValueChange[_0xa4d4[202]][_0xa4d4[350]]=function(){this[_0xa4d4[131]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=this[_0xa4d4[251]][_0xa4d4[1967]](this[_0xa4d4[246]],this[_0xa4d4[257]]);};function mxStyleChange(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[246]]=_0x7246x3;this[_0xa4d4[257]]=this[_0xa4d4[124]]=_0x7246x4;}mxStyleChange[_0xa4d4[202]][_0xa4d4[350]]=function(){this[_0xa4d4[124]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=this[_0xa4d4[251]][_0xa4d4[1970]](this[_0xa4d4[246]],this[_0xa4d4[257]]);};function mxGeometryChange(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[246]]=_0x7246x3;this[_0xa4d4[257]]=this[_0xa4d4[256]]=_0x7246x4;}mxGeometryChange[_0xa4d4[202]][_0xa4d4[350]]=function(){this[_0xa4d4[256]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=this[_0xa4d4[251]][_0xa4d4[1969]](this[_0xa4d4[246]],this[_0xa4d4[257]]);};function mxCollapseChange(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[246]]=_0x7246x3;this[_0xa4d4[257]]=this[_0xa4d4[1985]]=_0x7246x4;}mxCollapseChange[_0xa4d4[202]][_0xa4d4[350]]=function(){this[_0xa4d4[1985]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=this[_0xa4d4[251]][_0xa4d4[1973]](this[_0xa4d4[246]],this[_0xa4d4[257]]);};function mxVisibleChange(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[251]]=_0x7246x2;this[_0xa4d4[246]]=_0x7246x3;this[_0xa4d4[257]]=this[_0xa4d4[189]]=_0x7246x4;}mxVisibleChange[_0xa4d4[202]][_0xa4d4[350]]=function(){this[_0xa4d4[189]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=this[_0xa4d4[251]][_0xa4d4[1974]](this[_0xa4d4[246]],this[_0xa4d4[257]]);};function mxCellAttributeChange(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[246]]=_0x7246x2;this[_0xa4d4[1986]]=_0x7246x3;this[_0xa4d4[257]]=this[_0xa4d4[131]]=_0x7246x4;}mxCellAttributeChange[_0xa4d4[202]][_0xa4d4[350]]=function(){var _0x7246x2=this[_0xa4d4[246]][_0xa4d4[284]](this[_0xa4d4[1986]]);null==this[_0xa4d4[257]]?this[_0xa4d4[246]][_0xa4d4[131]][_0xa4d4[1390]](this[_0xa4d4[1986]]):this[_0xa4d4[246]][_0xa4d4[57]](this[_0xa4d4[1986]],this[_0xa4d4[257]]);this[_0xa4d4[257]]=_0x7246x2;};function mxCell(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[131]]=_0x7246x2;this[_0xa4d4[1724]](_0x7246x3);this[_0xa4d4[475]](_0x7246x4);if(null!=this[_0xa4d4[1987]]){this[_0xa4d4[1987]]()};}mxCell[_0xa4d4[202]][_0xa4d4[1363]]=null;mxCell[_0xa4d4[202]][_0xa4d4[131]]=null;mxCell[_0xa4d4[202]][_0xa4d4[256]]=null;mxCell[_0xa4d4[202]][_0xa4d4[124]]=null;mxCell[_0xa4d4[202]][_0xa4d4[1988]]= !1;mxCell[_0xa4d4[202]][_0xa4d4[1989]]= !1;mxCell[_0xa4d4[202]][_0xa4d4[1990]]= !0;mxCell[_0xa4d4[202]][_0xa4d4[189]]= !0;mxCell[_0xa4d4[202]][_0xa4d4[1985]]= !1;mxCell[_0xa4d4[202]][_0xa4d4[1101]]=null;mxCell[_0xa4d4[202]][_0xa4d4[1097]]=null;mxCell[_0xa4d4[202]][_0xa4d4[772]]=null;mxCell[_0xa4d4[202]][_0xa4d4[1954]]=null;mxCell[_0xa4d4[202]][_0xa4d4[1842]]=null;mxCell[_0xa4d4[202]][_0xa4d4[1991]]=_0xa4d4[1992][_0xa4d4[224]](_0xa4d4[185]);mxCell[_0xa4d4[202]][_0xa4d4[1103]]=function(){return this[_0xa4d4[1363]]};mxCell[_0xa4d4[202]][_0xa4d4[1945]]=function(_0x7246x2){this[_0xa4d4[1363]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[433]]=function(){return this[_0xa4d4[131]]};mxCell[_0xa4d4[202]][_0xa4d4[1966]]=function(_0x7246x2){this[_0xa4d4[131]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[1968]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[433]]();this[_0xa4d4[1966]](_0x7246x2);return _0x7246x3;};mxCell[_0xa4d4[202]][_0xa4d4[1721]]=function(){return this[_0xa4d4[256]]};mxCell[_0xa4d4[202]][_0xa4d4[1724]]=function(_0x7246x2){this[_0xa4d4[256]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[474]]=function(){return this[_0xa4d4[124]]};mxCell[_0xa4d4[202]][_0xa4d4[475]]=function(_0x7246x2){this[_0xa4d4[124]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[1193]]=function(){return this[_0xa4d4[1988]]};mxCell[_0xa4d4[202]][_0xa4d4[1993]]=function(_0x7246x2){this[_0xa4d4[1988]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[250]]=function(){return this[_0xa4d4[1989]]};mxCell[_0xa4d4[202]][_0xa4d4[1994]]=function(_0x7246x2){this[_0xa4d4[1989]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[1965]]=function(){return this[_0xa4d4[1990]]};mxCell[_0xa4d4[202]][_0xa4d4[1995]]=function(_0x7246x2){this[_0xa4d4[1990]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[174]]=function(){return this[_0xa4d4[189]]};mxCell[_0xa4d4[202]][_0xa4d4[175]]=function(_0x7246x2){this[_0xa4d4[189]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[1971]]=function(){return this[_0xa4d4[1985]]};mxCell[_0xa4d4[202]][_0xa4d4[1972]]=function(_0x7246x2){this[_0xa4d4[1985]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[1197]]=function(){return this[_0xa4d4[1101]]};mxCell[_0xa4d4[202]][_0xa4d4[1996]]=function(_0x7246x2){this[_0xa4d4[1101]]=_0x7246x2};mxCell[_0xa4d4[202]][_0xa4d4[1709]]=function(_0x7246x2){return _0x7246x2?this[_0xa4d4[1097]]:this[_0xa4d4[772]]};mxCell[_0xa4d4[202]][_0xa4d4[1957]]=function(_0x7246x2,_0x7246x3){_0x7246x3?this[_0xa4d4[1097]]=_0x7246x2:this[_0xa4d4[772]]=_0x7246x2;return _0x7246x2;};mxCell[_0xa4d4[202]][_0xa4d4[262]]=function(){return null==this[_0xa4d4[1954]]?0:this[_0xa4d4[1954]][_0xa4d4[67]]};mxCell[_0xa4d4[202]][_0xa4d4[1738]]=function(_0x7246x2){return mxUtils[_0xa4d4[2]](this[_0xa4d4[1954]],_0x7246x2)};mxCell[_0xa4d4[202]][_0xa4d4[263]]=function(_0x7246x2){return null==this[_0xa4d4[1954]]?null:this[_0xa4d4[1954]][_0x7246x2]};mxCell[_0xa4d4[202]][_0xa4d4[1937]]=function(_0x7246x2,_0x7246x3){null!=_0x7246x2&&(null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[262]](),_0x7246x2[_0xa4d4[1197]]()==this&&_0x7246x3--),_0x7246x2[_0xa4d4[1997]](),_0x7246x2[_0xa4d4[1996]](this),null==this[_0xa4d4[1954]]?(this[_0xa4d4[1954]]=[],this[_0xa4d4[1954]][_0xa4d4[207]](_0x7246x2)):this[_0xa4d4[1954]][_0xa4d4[300]](_0x7246x3,0,_0x7246x2));return _0x7246x2;};mxCell[_0xa4d4[202]][_0xa4d4[205]]=function(_0x7246x2){var _0x7246x3=null;null!=this[_0xa4d4[1954]]&&0<=_0x7246x2&&(_0x7246x3=this[_0xa4d4[263]](_0x7246x2),null!=_0x7246x3&&(this[_0xa4d4[1954]][_0xa4d4[300]](_0x7246x2,1),_0x7246x3[_0xa4d4[1996]](null)));return _0x7246x3;};mxCell[_0xa4d4[202]][_0xa4d4[1997]]=function(){if(null!=this[_0xa4d4[1101]]){var _0x7246x2=this[_0xa4d4[1101]][_0xa4d4[1738]](this);this[_0xa4d4[1101]][_0xa4d4[205]](_0x7246x2);}};mxCell[_0xa4d4[202]][_0xa4d4[1707]]=function(){return null==this[_0xa4d4[1842]]?0:this[_0xa4d4[1842]][_0xa4d4[67]]};mxCell[_0xa4d4[202]][_0xa4d4[1998]]=function(_0x7246x2){return mxUtils[_0xa4d4[2]](this[_0xa4d4[1842]],_0x7246x2)};mxCell[_0xa4d4[202]][_0xa4d4[1708]]=function(_0x7246x2){return null==this[_0xa4d4[1842]]?null:this[_0xa4d4[1842]][_0x7246x2]};mxCell[_0xa4d4[202]][_0xa4d4[1960]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&(_0x7246x2[_0xa4d4[1999]](_0x7246x3),_0x7246x2[_0xa4d4[1957]](this,_0x7246x3),null==this[_0xa4d4[1842]]||_0x7246x2[_0xa4d4[1709]](!_0x7246x3)!=this||0>mxUtils[_0xa4d4[2]](this[_0xa4d4[1842]],_0x7246x2))){null==this[_0xa4d4[1842]]&&(this[_0xa4d4[1842]]=[]),this[_0xa4d4[1842]][_0xa4d4[207]](_0x7246x2)};return _0x7246x2;};mxCell[_0xa4d4[202]][_0xa4d4[1961]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2){if(_0x7246x2[_0xa4d4[1709]](!_0x7246x3)!=this&&null!=this[_0xa4d4[1842]]){var _0x7246x4=this[_0xa4d4[1998]](_0x7246x2);0<=_0x7246x4&&this[_0xa4d4[1842]][_0xa4d4[300]](_0x7246x4,1);};_0x7246x2[_0xa4d4[1957]](null,_0x7246x3);};return _0x7246x2;};mxCell[_0xa4d4[202]][_0xa4d4[1999]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1709]](_0x7246x2);null!=_0x7246x3&&_0x7246x3[_0xa4d4[1961]](this,_0x7246x2);};mxCell[_0xa4d4[202]][_0xa4d4[284]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[433]]();return (null!=_0x7246x4&&_0x7246x4[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]?_0x7246x4[_0xa4d4[284]](_0x7246x2):null)||_0x7246x3;};mxCell[_0xa4d4[202]][_0xa4d4[57]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[433]]();null!=_0x7246x4&&_0x7246x4[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]&&_0x7246x4[_0xa4d4[57]](_0x7246x2,_0x7246x3);};mxCell[_0xa4d4[202]][_0xa4d4[238]]=function(){var _0x7246x2=mxUtils[_0xa4d4[238]](this,this[_0xa4d4[1991]]);_0x7246x2[_0xa4d4[1966]](this[_0xa4d4[2000]]());return _0x7246x2;};mxCell[_0xa4d4[202]][_0xa4d4[2000]]=function(){var _0x7246x2=this[_0xa4d4[433]]();null!=_0x7246x2&&(_0xa4d4[279]== typeof _0x7246x2[_0xa4d4[238]]?_0x7246x2=_0x7246x2[_0xa4d4[238]]():isNaN(_0x7246x2[_0xa4d4[288]])||(_0x7246x2=_0x7246x2[_0xa4d4[511]](!0)));return _0x7246x2;};function mxGeometry(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxRectangle[_0xa4d4[239]](this,_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5)}mxGeometry[_0xa4d4[202]]= new mxRectangle;mxGeometry[_0xa4d4[202]][_0xa4d4[196]]=mxGeometry;mxGeometry[_0xa4d4[202]][_0xa4d4[2001]]= !0;mxGeometry[_0xa4d4[202]][_0xa4d4[2002]]=null;mxGeometry[_0xa4d4[202]][_0xa4d4[2003]]=null;mxGeometry[_0xa4d4[202]][_0xa4d4[2004]]=null;mxGeometry[_0xa4d4[202]][_0xa4d4[1525]]=null;mxGeometry[_0xa4d4[202]][_0xa4d4[1368]]=null;mxGeometry[_0xa4d4[202]][_0xa4d4[1500]]= !1;mxGeometry[_0xa4d4[202]][_0xa4d4[2005]]=function(){if(null!=this[_0xa4d4[2002]]){var _0x7246x2= new mxRectangle(this[_0xa4d4[235]],this[_0xa4d4[236]],this[_0xa4d4[117]],this[_0xa4d4[119]]);this[_0xa4d4[235]]=this[_0xa4d4[2002]][_0xa4d4[235]];this[_0xa4d4[236]]=this[_0xa4d4[2002]][_0xa4d4[236]];this[_0xa4d4[117]]=this[_0xa4d4[2002]][_0xa4d4[117]];this[_0xa4d4[119]]=this[_0xa4d4[2002]][_0xa4d4[119]];this[_0xa4d4[2002]]=_0x7246x2;}};mxGeometry[_0xa4d4[202]][_0xa4d4[2006]]=function(_0x7246x2){return _0x7246x2?this[_0xa4d4[2003]]:this[_0xa4d4[2004]]};mxGeometry[_0xa4d4[202]][_0xa4d4[2007]]=function(_0x7246x2,_0x7246x3){_0x7246x3?this[_0xa4d4[2003]]=_0x7246x2:this[_0xa4d4[2004]]=_0x7246x2;return _0x7246x2;};mxGeometry[_0xa4d4[202]][_0xa4d4[513]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[238]]();this[_0xa4d4[1500]]||(this[_0xa4d4[235]]+=_0x7246x2,this[_0xa4d4[236]]+=_0x7246x3);null!=this[_0xa4d4[2003]]&&(this[_0xa4d4[2003]][_0xa4d4[235]]+=_0x7246x2,this[_0xa4d4[2003]][_0xa4d4[236]]+=_0x7246x3);null!=this[_0xa4d4[2004]]&&(this[_0xa4d4[2004]][_0xa4d4[235]]+=_0x7246x2,this[_0xa4d4[2004]][_0xa4d4[236]]+=_0x7246x3);if(this[_0xa4d4[2001]]&&null!=this[_0xa4d4[1525]]){for(var _0x7246x4=this[_0xa4d4[1525]][_0xa4d4[67]],_0x7246x5=0;_0x7246x5<_0x7246x4;_0x7246x5++){var _0x7246x9=this[_0xa4d4[1525]][_0x7246x5];null!=_0x7246x9&&(_0x7246x9[_0xa4d4[235]]+=_0x7246x2,_0x7246x9[_0xa4d4[236]]+=_0x7246x3);}};};var mxCellPath={PATH_SEPARATOR:_0xa4d4[87],create:function(_0x7246x2){var _0x7246x3=_0xa4d4[110];if(null!=_0x7246x2){for(var _0x7246x4=_0x7246x2[_0xa4d4[1197]]();null!=_0x7246x4;){_0x7246x3=_0x7246x4[_0xa4d4[1738]](_0x7246x2)+mxCellPath[_0xa4d4[1950]]+_0x7246x3,_0x7246x2=_0x7246x4,_0x7246x4=_0x7246x2[_0xa4d4[1197]]()}};_0x7246x2=_0x7246x3[_0xa4d4[67]];1<_0x7246x2&&(_0x7246x3=_0x7246x3[_0xa4d4[85]](0,_0x7246x2-1));return _0x7246x3;},getParentPath:function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[1122]](mxCellPath.PATH_SEPARATOR);if(0<=_0x7246x3){return _0x7246x2[_0xa4d4[85]](0,_0x7246x3)};if(0<_0x7246x2[_0xa4d4[67]]){return _0xa4d4[110]};};return null;},resolve:function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2;if(null!=_0x7246x3){for(var _0x7246x5=_0x7246x3[_0xa4d4[224]](mxCellPath.PATH_SEPARATOR),_0x7246x9=0;_0x7246x9<_0x7246x5[_0xa4d4[67]];_0x7246x9++){_0x7246x4=_0x7246x4[_0xa4d4[263]](parseInt(_0x7246x5[_0x7246x9]))}};return _0x7246x4;},compare:function(_0x7246x2,_0x7246x3){for(var _0x7246x4=Math[_0xa4d4[243]](_0x7246x2[_0xa4d4[67]],_0x7246x3[_0xa4d4[67]]),_0x7246x5=0,_0x7246x9=0;_0x7246x9<_0x7246x4;_0x7246x9++){if(_0x7246x2[_0x7246x9]!=_0x7246x3[_0x7246x9]){0==_0x7246x2[_0x7246x9][_0xa4d4[67]]||0==_0x7246x3[_0x7246x9][_0xa4d4[67]]?_0x7246x5=_0x7246x2[_0x7246x9]==_0x7246x3[_0x7246x9]?0:_0x7246x2[_0x7246x9]>_0x7246x3[_0x7246x9]?1:-1:(_0x7246x4=parseInt(_0x7246x2[_0x7246x9]),_0x7246x9=parseInt(_0x7246x3[_0x7246x9]),_0x7246x5=_0x7246x4==_0x7246x9?0:_0x7246x4>_0x7246x9?1:-1);break;}};0==_0x7246x5&&(_0x7246x4=_0x7246x2[_0xa4d4[67]],_0x7246x9=_0x7246x3[_0xa4d4[67]],_0x7246x4!=_0x7246x9&&(_0x7246x5=_0x7246x4>_0x7246x9?1:-1));return _0x7246x5;}},mxPerimeter={RectanglePerimeter:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3=_0x7246x2[_0xa4d4[241]]();var _0x7246x9=_0x7246x2[_0xa4d4[242]](),_0x7246xa=Math[_0xa4d4[429]](_0x7246x4[_0xa4d4[236]]-_0x7246x9,_0x7246x4[_0xa4d4[235]]-_0x7246x3),_0x7246x12= new mxPoint(0,0),_0x7246x13=Math[_0xa4d4[424]],_0x7246x14=Math[_0xa4d4[424]]/2-_0x7246xa,_0x7246x15=Math[_0xa4d4[429]](_0x7246x2[_0xa4d4[119]],_0x7246x2[_0xa4d4[117]]);_0x7246xa<-_0x7246x13+_0x7246x15||_0x7246xa>_0x7246x13-_0x7246x15?(_0x7246x12[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]]=_0x7246x9-_0x7246x2[_0xa4d4[117]]*Math[_0xa4d4[2008]](_0x7246xa)/2):_0x7246xa<-_0x7246x15?(_0x7246x12[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]],_0x7246x12[_0xa4d4[235]]=_0x7246x3-_0x7246x2[_0xa4d4[119]]*Math[_0xa4d4[2008]](_0x7246x14)/2):_0x7246xa<_0x7246x15?(_0x7246x12[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]],_0x7246x12[_0xa4d4[236]]=_0x7246x9+_0x7246x2[_0xa4d4[117]]*Math[_0xa4d4[2008]](_0x7246xa)/2):(_0x7246x12[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]],_0x7246x12[_0xa4d4[235]]=_0x7246x3+_0x7246x2[_0xa4d4[119]]*Math[_0xa4d4[2008]](_0x7246x14)/2);_0x7246x5&&(_0x7246x4[_0xa4d4[235]]>=_0x7246x2[_0xa4d4[235]]&&_0x7246x4[_0xa4d4[235]]<=_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]?_0x7246x12[_0xa4d4[235]]=_0x7246x4[_0xa4d4[235]]:_0x7246x4[_0xa4d4[236]]>=_0x7246x2[_0xa4d4[236]]&&_0x7246x4[_0xa4d4[236]]<=_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]&&(_0x7246x12[_0xa4d4[236]]=_0x7246x4[_0xa4d4[236]]),_0x7246x4[_0xa4d4[235]]<_0x7246x2[_0xa4d4[235]]?_0x7246x12[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]]:_0x7246x4[_0xa4d4[235]]>_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]&&(_0x7246x12[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]),_0x7246x4[_0xa4d4[236]]<_0x7246x2[_0xa4d4[236]]?_0x7246x12[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]]:_0x7246x4[_0xa4d4[236]]>_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]&&(_0x7246x12[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]));return _0x7246x12;},EllipsePerimeter:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=_0x7246x2[_0xa4d4[235]],_0x7246xa=_0x7246x2[_0xa4d4[236]],_0x7246x12=_0x7246x2[_0xa4d4[117]]/2,_0x7246x13=_0x7246x2[_0xa4d4[119]]/2,_0x7246x14=_0x7246x9+_0x7246x12,_0x7246x15=_0x7246xa+_0x7246x13;_0x7246x3=_0x7246x4[_0xa4d4[235]];_0x7246x4=_0x7246x4[_0xa4d4[236]];var _0x7246x16=parseInt(_0x7246x3-_0x7246x14),_0x7246x17=parseInt(_0x7246x4-_0x7246x15);if(0==_0x7246x16&&0!=_0x7246x17){return  new mxPoint(_0x7246x14,_0x7246x15+_0x7246x13*_0x7246x17/Math[_0xa4d4[425]](_0x7246x17))};if(0==_0x7246x16&&0==_0x7246x17){return  new mxPoint(_0x7246x3,_0x7246x4)};if(_0x7246x5){if(_0x7246x4>=_0x7246xa&&_0x7246x4<=_0x7246xa+_0x7246x2[_0xa4d4[119]]){return _0x7246x2=_0x7246x4-_0x7246x15,_0x7246x2=Math[_0xa4d4[428]](_0x7246x12*_0x7246x12*(1-_0x7246x2*_0x7246x2/(_0x7246x13*_0x7246x13)))||0,_0x7246x3<=_0x7246x9&&(_0x7246x2= -_0x7246x2), new mxPoint(_0x7246x14+_0x7246x2,_0x7246x4)};if(_0x7246x3>=_0x7246x9&&_0x7246x3<=_0x7246x9+_0x7246x2[_0xa4d4[117]]){return _0x7246x2=_0x7246x3-_0x7246x14,_0x7246x2=Math[_0xa4d4[428]](_0x7246x13*_0x7246x13*(1-_0x7246x2*_0x7246x2/(_0x7246x12*_0x7246x12)))||0,_0x7246x4<=_0x7246xa&&(_0x7246x2= -_0x7246x2), new mxPoint(_0x7246x3,_0x7246x15+_0x7246x2)};};_0x7246x9=_0x7246x17/_0x7246x16;_0x7246x15-=_0x7246x9*_0x7246x14;_0x7246xa=_0x7246x12*_0x7246x12*_0x7246x9*_0x7246x9+_0x7246x13*_0x7246x13;_0x7246x2=-2*_0x7246x14*_0x7246xa;_0x7246x13=Math[_0xa4d4[428]](_0x7246x2*_0x7246x2-4*_0x7246xa*(_0x7246x12*_0x7246x12*_0x7246x9*_0x7246x9*_0x7246x14*_0x7246x14+_0x7246x13*_0x7246x13*_0x7246x14*_0x7246x14-_0x7246x12*_0x7246x12*_0x7246x13*_0x7246x13));_0x7246x12=(-_0x7246x2+_0x7246x13)/(2*_0x7246xa);_0x7246x13=(-_0x7246x2-_0x7246x13)/(2*_0x7246xa);_0x7246x14=_0x7246x9*_0x7246x12+_0x7246x15;_0x7246x15=_0x7246x9*_0x7246x13+_0x7246x15;_0x7246x9=Math[_0xa4d4[428]](Math[_0xa4d4[2009]](_0x7246x12-_0x7246x3,2)+Math[_0xa4d4[2009]](_0x7246x14-_0x7246x4,2));_0x7246x3=Math[_0xa4d4[428]](Math[_0xa4d4[2009]](_0x7246x13-_0x7246x3,2)+Math[_0xa4d4[2009]](_0x7246x15-_0x7246x4,2));_0x7246xa=_0x7246x4=0;_0x7246x9<_0x7246x3?(_0x7246x4=_0x7246x12,_0x7246xa=_0x7246x14):(_0x7246x4=_0x7246x13,_0x7246xa=_0x7246x15);return  new mxPoint(_0x7246x4,_0x7246xa);},RhombusPerimeter:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3=_0x7246x2[_0xa4d4[235]];var _0x7246x9=_0x7246x2[_0xa4d4[236]],_0x7246xa=_0x7246x2[_0xa4d4[117]];_0x7246x2=_0x7246x2[_0xa4d4[119]];var _0x7246x12=_0x7246x3+_0x7246xa/2,_0x7246x13=_0x7246x9+_0x7246x2/2,_0x7246x14=_0x7246x4[_0xa4d4[235]];_0x7246x4=_0x7246x4[_0xa4d4[236]];if(_0x7246x12==_0x7246x14){return _0x7246x13>_0x7246x4? new mxPoint(_0x7246x12,_0x7246x9): new mxPoint(_0x7246x12,_0x7246x9+_0x7246x2)};if(_0x7246x13==_0x7246x4){return _0x7246x12>_0x7246x14? new mxPoint(_0x7246x3,_0x7246x13): new mxPoint(_0x7246x3+_0x7246xa,_0x7246x13)};var _0x7246x15=_0x7246x12,_0x7246x16=_0x7246x13;_0x7246x5&&(_0x7246x14>=_0x7246x3&&_0x7246x14<=_0x7246x3+_0x7246xa?_0x7246x15=_0x7246x14:_0x7246x4>=_0x7246x9&&_0x7246x4<=_0x7246x9+_0x7246x2&&(_0x7246x16=_0x7246x4));return _0x7246x14<_0x7246x12?_0x7246x4<_0x7246x13?mxUtils[_0xa4d4[2010]](_0x7246x14,_0x7246x4,_0x7246x15,_0x7246x16,_0x7246x12,_0x7246x9,_0x7246x3,_0x7246x13):mxUtils[_0xa4d4[2010]](_0x7246x14,_0x7246x4,_0x7246x15,_0x7246x16,_0x7246x12,_0x7246x9+_0x7246x2,_0x7246x3,_0x7246x13):_0x7246x4<_0x7246x13?mxUtils[_0xa4d4[2010]](_0x7246x14,_0x7246x4,_0x7246x15,_0x7246x16,_0x7246x12,_0x7246x9,_0x7246x3+_0x7246xa,_0x7246x13):mxUtils[_0xa4d4[2010]](_0x7246x14,_0x7246x4,_0x7246x15,_0x7246x16,_0x7246x12,_0x7246x9+_0x7246x2,_0x7246x3+_0x7246xa,_0x7246x13);},TrianglePerimeter:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]][mxConstants[_0xa4d4[2011]]]:null;var _0x7246x9=_0x7246x3==mxConstants[_0xa4d4[1358]]||_0x7246x3==mxConstants[_0xa4d4[1354]],_0x7246xa=_0x7246x2[_0xa4d4[235]],_0x7246x12=_0x7246x2[_0xa4d4[236]],_0x7246x13=_0x7246x2[_0xa4d4[117]];_0x7246x2=_0x7246x2[_0xa4d4[119]];var _0x7246x14=_0x7246xa+_0x7246x13/2,_0x7246x15=_0x7246x12+_0x7246x2/2,_0x7246x16= new mxPoint(_0x7246xa,_0x7246x12),_0x7246x17= new mxPoint(_0x7246xa+_0x7246x13,_0x7246x15),_0x7246x18= new mxPoint(_0x7246xa,_0x7246x12+_0x7246x2);_0x7246x3==mxConstants[_0xa4d4[1358]]?(_0x7246x16=_0x7246x18,_0x7246x17= new mxPoint(_0x7246x14,_0x7246x12),_0x7246x18= new mxPoint(_0x7246xa+_0x7246x13,_0x7246x12+_0x7246x2)):_0x7246x3==mxConstants[_0xa4d4[1354]]?(_0x7246x17= new mxPoint(_0x7246x14,_0x7246x12+_0x7246x2),_0x7246x18= new mxPoint(_0x7246xa+_0x7246x13,_0x7246x12)):_0x7246x3==mxConstants[_0xa4d4[1359]]&&(_0x7246x16= new mxPoint(_0x7246xa+_0x7246x13,_0x7246x12),_0x7246x17= new mxPoint(_0x7246xa,_0x7246x15),_0x7246x18= new mxPoint(_0x7246xa+_0x7246x13,_0x7246x12+_0x7246x2));var _0x7246x19=_0x7246x4[_0xa4d4[235]]-_0x7246x14,_0x7246x1a=_0x7246x4[_0xa4d4[236]]-_0x7246x15,_0x7246x19=_0x7246x9?Math[_0xa4d4[429]](_0x7246x19,_0x7246x1a):Math[_0xa4d4[429]](_0x7246x1a,_0x7246x19),_0x7246x1b=_0x7246x9?Math[_0xa4d4[429]](_0x7246x13,_0x7246x2):Math[_0xa4d4[429]](_0x7246x2,_0x7246x13),_0x7246x1a=!1,_0x7246x1a=_0x7246x3==mxConstants[_0xa4d4[1358]]||_0x7246x3==mxConstants[_0xa4d4[1359]]?_0x7246x19>-_0x7246x1b&&_0x7246x19<_0x7246x1b:_0x7246x19<-Math[_0xa4d4[424]]+_0x7246x1b||_0x7246x19>Math[_0xa4d4[424]]-_0x7246x1b,_0x7246x1b=null;_0x7246x1a?_0x7246x1b=_0x7246x5&&(_0x7246x9&&_0x7246x4[_0xa4d4[235]]>=_0x7246x16[_0xa4d4[235]]&&_0x7246x4[_0xa4d4[235]]<=_0x7246x18[_0xa4d4[235]]||!_0x7246x9&&_0x7246x4[_0xa4d4[236]]>=_0x7246x16[_0xa4d4[236]]&&_0x7246x4[_0xa4d4[236]]<=_0x7246x18[_0xa4d4[236]])?_0x7246x9? new mxPoint(_0x7246x4[_0xa4d4[235]],_0x7246x16[_0xa4d4[236]]): new mxPoint(_0x7246x16[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]):_0x7246x3==mxConstants[_0xa4d4[1358]]? new mxPoint(_0x7246xa+_0x7246x13/2+_0x7246x2*Math[_0xa4d4[2008]](_0x7246x19)/2,_0x7246x12+_0x7246x2):_0x7246x3==mxConstants[_0xa4d4[1354]]? new mxPoint(_0x7246xa+_0x7246x13/2-_0x7246x2*Math[_0xa4d4[2008]](_0x7246x19)/2,_0x7246x12):_0x7246x3==mxConstants[_0xa4d4[1359]]? new mxPoint(_0x7246xa+_0x7246x13,_0x7246x12+_0x7246x2/2+_0x7246x13*Math[_0xa4d4[2008]](_0x7246x19)/2): new mxPoint(_0x7246xa,_0x7246x12+_0x7246x2/2-_0x7246x13*Math[_0xa4d4[2008]](_0x7246x19)/2):(_0x7246x5&&(_0x7246x5= new mxPoint(_0x7246x14,_0x7246x15),_0x7246x4[_0xa4d4[236]]>=_0x7246x12&&_0x7246x4[_0xa4d4[236]]<=_0x7246x12+_0x7246x2?(_0x7246x5[_0xa4d4[235]]=_0x7246x9?_0x7246x14:_0x7246x3==mxConstants[_0xa4d4[1359]]?_0x7246xa+_0x7246x13:_0x7246xa,_0x7246x5[_0xa4d4[236]]=_0x7246x4[_0xa4d4[236]]):_0x7246x4[_0xa4d4[235]]>=_0x7246xa&&_0x7246x4[_0xa4d4[235]]<=_0x7246xa+_0x7246x13&&(_0x7246x5[_0xa4d4[235]]=_0x7246x4[_0xa4d4[235]],_0x7246x5[_0xa4d4[236]]=!_0x7246x9?_0x7246x15:_0x7246x3==mxConstants[_0xa4d4[1358]]?_0x7246x12+_0x7246x2:_0x7246x12),_0x7246x14=_0x7246x5[_0xa4d4[235]],_0x7246x15=_0x7246x5[_0xa4d4[236]]),_0x7246x1b=_0x7246x9&&_0x7246x4[_0xa4d4[235]]<=_0x7246xa+_0x7246x13/2||!_0x7246x9&&_0x7246x4[_0xa4d4[236]]<=_0x7246x12+_0x7246x2/2?mxUtils[_0xa4d4[2010]](_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]],_0x7246x14,_0x7246x15,_0x7246x16[_0xa4d4[235]],_0x7246x16[_0xa4d4[236]],_0x7246x17[_0xa4d4[235]],_0x7246x17[_0xa4d4[236]]):mxUtils[_0xa4d4[2010]](_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]],_0x7246x14,_0x7246x15,_0x7246x17[_0xa4d4[235]],_0x7246x17[_0xa4d4[236]],_0x7246x18[_0xa4d4[235]],_0x7246x18[_0xa4d4[236]]));null==_0x7246x1b&&(_0x7246x1b= new mxPoint(_0x7246x14,_0x7246x15));return _0x7246x1b;}};function mxPrintPreview(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[255]]=null!=_0x7246x3?_0x7246x3:1/_0x7246x2[_0xa4d4[2012]];this[_0xa4d4[467]]=null!=_0x7246x5?_0x7246x5:0;this[_0xa4d4[2013]]=null!=_0x7246x4?_0x7246x4:_0x7246x2[_0xa4d4[2013]];this[_0xa4d4[924]]=null!=_0x7246x13?_0x7246x13:_0xa4d4[2014];this[_0xa4d4[1732]]=null!=_0x7246x9?_0x7246x9:0;this[_0xa4d4[1733]]=null!=_0x7246xa?_0x7246xa:0;this[_0xa4d4[1630]]=_0x7246x12;this[_0xa4d4[2015]]=null!=_0x7246x14?_0x7246x14:!0;}mxPrintPreview[_0xa4d4[202]][_0xa4d4[1179]]=null;mxPrintPreview[_0xa4d4[202]][_0xa4d4[2013]]=null;mxPrintPreview[_0xa4d4[202]][_0xa4d4[255]]=null;mxPrintPreview[_0xa4d4[202]][_0xa4d4[467]]=0;mxPrintPreview[_0xa4d4[202]][_0xa4d4[1732]]=0;mxPrintPreview[_0xa4d4[202]][_0xa4d4[1733]]=0;mxPrintPreview[_0xa4d4[202]][_0xa4d4[2016]]= !0;mxPrintPreview[_0xa4d4[202]][_0xa4d4[2017]]= !1;mxPrintPreview[_0xa4d4[202]][_0xa4d4[1630]]=null;mxPrintPreview[_0xa4d4[202]][_0xa4d4[924]]=null;mxPrintPreview[_0xa4d4[202]][_0xa4d4[2015]]=null;mxPrintPreview[_0xa4d4[202]][_0xa4d4[2018]]=null;mxPrintPreview[_0xa4d4[202]][_0xa4d4[2019]]=0;mxPrintPreview[_0xa4d4[202]][_0xa4d4[2020]]=function(){return this[_0xa4d4[2018]]};mxPrintPreview[_0xa4d4[202]][_0xa4d4[2021]]=function(){var _0x7246x2=_0xa4d4[110];8==document[_0xa4d4[5]]&&(_0x7246x2=_0xa4d4[2022]);return _0x7246x2;};mxPrintPreview[_0xa4d4[202]][_0xa4d4[392]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[2023]],_0x7246x4=null;try{this[_0xa4d4[2017]]&&(this[_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[2023]]=function(_0x7246x2,_0x7246x3){_0x7246x3[_0xa4d4[176]](_0x7246x2[_0xa4d4[441]][_0xa4d4[2024]]())});if(null==this[_0xa4d4[2018]]){this[_0xa4d4[2018]]=window[_0xa4d4[392]]();var _0x7246x5=this[_0xa4d4[2018]][_0xa4d4[395]],_0x7246x9=this[_0xa4d4[2021]]();null!=_0x7246x9&&0<_0x7246x9[_0xa4d4[67]]&&_0x7246x5[_0xa4d4[171]](_0x7246x9);_0x7246x5[_0xa4d4[171]](_0xa4d4[528]);_0x7246x5[_0xa4d4[171]](_0xa4d4[531]);this[_0xa4d4[2025]](_0x7246x5,_0x7246x2);_0x7246x5[_0xa4d4[171]](_0xa4d4[533]);_0x7246x5[_0xa4d4[171]](_0xa4d4[2026]);mxClient[_0xa4d4[54]](_0xa4d4[94],mxClient[_0xa4d4[86]]+_0xa4d4[95],_0x7246x5);mxClient[_0xa4d4[47]]&&(_0x7246x5[_0xa4d4[100]][_0xa4d4[99]](_0xa4d4[6],_0xa4d4[97]),_0x7246x5[_0xa4d4[100]][_0xa4d4[99]](_0xa4d4[7],_0xa4d4[101]),_0x7246x5[_0xa4d4[102]]()[_0xa4d4[103]]=_0xa4d4[104],mxClient[_0xa4d4[54]](_0xa4d4[94],mxClient[_0xa4d4[86]]+_0xa4d4[105],_0x7246x5));var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[517]]()[_0xa4d4[238]](),_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[518]](),_0x7246x13=_0x7246x12/this[_0xa4d4[255]],_0x7246x14=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[512]]();this[_0xa4d4[2016]]||(this[_0xa4d4[1732]]=-_0x7246x14[_0xa4d4[235]]*this[_0xa4d4[255]],this[_0xa4d4[1733]]=-_0x7246x14[_0xa4d4[236]]*this[_0xa4d4[255]],_0x7246xa[_0xa4d4[117]]+=_0x7246xa[_0xa4d4[235]],_0x7246xa[_0xa4d4[119]]+=_0x7246xa[_0xa4d4[236]],_0x7246xa[_0xa4d4[235]]=0,this[_0xa4d4[467]]=_0x7246xa[_0xa4d4[236]]=0);_0x7246xa[_0xa4d4[117]]/=_0x7246x13;_0x7246xa[_0xa4d4[119]]/=_0x7246x13;var _0x7246x15=this[_0xa4d4[2013]][_0xa4d4[117]]-2*this[_0xa4d4[467]],_0x7246x16=this[_0xa4d4[2013]][_0xa4d4[119]]-2*this[_0xa4d4[467]],_0x7246x17=Math[_0xa4d4[160]](1,Math[_0xa4d4[430]]((_0x7246xa[_0xa4d4[117]]+this[_0xa4d4[1732]])/_0x7246x15)),_0x7246x18=Math[_0xa4d4[160]](1,Math[_0xa4d4[430]]((_0x7246xa[_0xa4d4[119]]+this[_0xa4d4[1733]])/_0x7246x16));this[_0xa4d4[2019]]=_0x7246x17*_0x7246x18;var _0x7246x19=mxUtils[_0xa4d4[885]](this,function(){if(this[_0xa4d4[2015]]&&(1<_0x7246x18||1<_0x7246x17)){var _0x7246x2=this[_0xa4d4[2027]](_0x7246x18,_0x7246x17);_0x7246x5[_0xa4d4[112]][_0xa4d4[62]](_0x7246x2);if(mxClient[_0xa4d4[80]]){_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];var _0x7246x3=function(){_0x7246x2[_0xa4d4[124]][_0xa4d4[125]]=_0x7246x5[_0xa4d4[112]][_0xa4d4[190]]+10+_0xa4d4[168]};mxEvent[_0xa4d4[169]](this[_0xa4d4[2018]],_0xa4d4[276],function(_0x7246x2){_0x7246x3()});mxEvent[_0xa4d4[169]](this[_0xa4d4[2018]],_0xa4d4[129],function(_0x7246x2){_0x7246x3()});};}});_0x7246x2=function(_0x7246x2,_0x7246x3){null!=this[_0xa4d4[1630]]&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[1630]]=this[_0xa4d4[1630]],_0x7246x2[_0xa4d4[124]][_0xa4d4[465]]=_0xa4d4[1631],_0x7246x2[_0xa4d4[124]][_0xa4d4[1629]]=_0xa4d4[942]);_0x7246x2[_0xa4d4[124]][_0xa4d4[1537]]=_0xa4d4[1391];_0x7246x3&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[2028]]=_0xa4d4[2029]);mxClient[_0xa4d4[80]]?(_0x7246x5[_0xa4d4[171]](_0x7246x2[_0xa4d4[342]]),_0x7246x2[_0xa4d4[265]][_0xa4d4[266]](_0x7246x2)):(_0x7246x2[_0xa4d4[265]][_0xa4d4[266]](_0x7246x2),_0x7246x5[_0xa4d4[112]][_0xa4d4[62]](_0x7246x2));if(_0x7246x3){var _0x7246x4=_0x7246x5[_0xa4d4[55]](_0xa4d4[1054]);_0x7246x4[_0xa4d4[926]]=_0xa4d4[2030];_0x7246x5[_0xa4d4[112]][_0xa4d4[62]](_0x7246x4);};};var _0x7246x1a=this[_0xa4d4[2031]](this[_0xa4d4[2013]][_0xa4d4[117]],this[_0xa4d4[2013]][_0xa4d4[119]]);if(null!=_0x7246x1a){for(var _0x7246x1b=0;_0x7246x1b<_0x7246x1a[_0xa4d4[67]];_0x7246x1b++){_0x7246x2(_0x7246x1a[_0x7246x1b],!0)}};for(var _0x7246x1c=this[_0xa4d4[2032]](this[_0xa4d4[2013]][_0xa4d4[117]],this[_0xa4d4[2013]][_0xa4d4[119]]),_0x7246x1b=0;_0x7246x1b<_0x7246x18;_0x7246x1b++){for(var _0x7246x1d=_0x7246x1b*_0x7246x16/this[_0xa4d4[255]]-this[_0xa4d4[1733]]/this[_0xa4d4[255]]+(_0x7246xa[_0xa4d4[236]]-_0x7246x14[_0xa4d4[236]]*_0x7246x12)/_0x7246x12,_0x7246x1a=0;_0x7246x1a<_0x7246x17;_0x7246x1a++){if(null==this[_0xa4d4[2018]]){return null};var _0x7246x1e=_0x7246x1a*_0x7246x15/this[_0xa4d4[255]]-this[_0xa4d4[1732]]/this[_0xa4d4[255]]+(_0x7246xa[_0xa4d4[235]]-_0x7246x14[_0xa4d4[235]]*_0x7246x12)/_0x7246x12,_0x7246x1f=_0x7246x1b*_0x7246x17+_0x7246x1a+1,_0x7246x4=this[_0xa4d4[2034]](this[_0xa4d4[2013]][_0xa4d4[117]],this[_0xa4d4[2013]][_0xa4d4[119]],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2033]](-_0x7246x1e,-_0x7246x1d,this[_0xa4d4[255]],_0x7246x1f,_0x7246x2)}));_0x7246x4[_0xa4d4[57]](_0xa4d4[1363],_0xa4d4[2035]+_0x7246x1f);_0x7246x2(_0x7246x4,null!=_0x7246x1c||_0x7246x1b<_0x7246x18-1||_0x7246x1a<_0x7246x17-1);}};if(null!=_0x7246x1c){for(_0x7246x1b=0;_0x7246x1b<_0x7246x1c[_0xa4d4[67]];_0x7246x1b++){_0x7246x2(_0x7246x1c[_0x7246x1b],_0x7246x1b<_0x7246x1c[_0xa4d4[67]])}};_0x7246x5[_0xa4d4[171]](_0xa4d4[527]);_0x7246x5[_0xa4d4[171]](_0xa4d4[534]);_0x7246x5[_0xa4d4[268]]();_0x7246x19();mxEvent[_0xa4d4[762]](_0x7246x5[_0xa4d4[112]]);};this[_0xa4d4[2018]][_0xa4d4[393]]();}catch(y){null!=_0x7246x4&&null!=_0x7246x4[_0xa4d4[265]]&&_0x7246x4[_0xa4d4[265]][_0xa4d4[266]](_0x7246x4)}finally{this[_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[2023]]=_0x7246x3};return this[_0xa4d4[2018]];};mxPrintPreview[_0xa4d4[202]][_0xa4d4[2025]]=function(_0x7246x2,_0x7246x3){null!=this[_0xa4d4[924]]&&_0x7246x2[_0xa4d4[171]](_0xa4d4[2036]+this[_0xa4d4[924]]+_0xa4d4[2037]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2038]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2039]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2040]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2041]);_0x7246x2[_0xa4d4[171]](_0xa4d4[233]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2042]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2043]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2044]);_0x7246x2[_0xa4d4[171]](_0xa4d4[2045]);_0x7246x2[_0xa4d4[171]](_0xa4d4[233]);null!=_0x7246x3&&_0x7246x2[_0xa4d4[171]](_0x7246x3);_0x7246x2[_0xa4d4[171]](_0xa4d4[2046]);};mxPrintPreview[_0xa4d4[202]][_0xa4d4[2027]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[2018]][_0xa4d4[395]],_0x7246x5=_0x7246x4[_0xa4d4[55]](_0xa4d4[116]);_0x7246x5[_0xa4d4[926]]=_0xa4d4[2047];_0x7246x5[_0xa4d4[57]](_0xa4d4[467],_0xa4d4[468]);for(var _0x7246x9=_0x7246x4[_0xa4d4[55]](_0xa4d4[120]),_0x7246xa=0;_0x7246xa<_0x7246x2;_0x7246xa++){for(var _0x7246x12=_0x7246x4[_0xa4d4[55]](_0xa4d4[121]),_0x7246x13=0;_0x7246x13<_0x7246x3;_0x7246x13++){var _0x7246x14=_0x7246xa*_0x7246x3+_0x7246x13+1,_0x7246x15=_0x7246x4[_0xa4d4[55]](_0xa4d4[122]);if(!mxClient[_0xa4d4[133]]||mxClient[_0xa4d4[75]]||mxClient[_0xa4d4[76]]){var _0x7246x16=_0x7246x4[_0xa4d4[55]](_0xa4d4[2048]);_0x7246x16[_0xa4d4[57]](_0xa4d4[44],_0xa4d4[2049]+_0x7246x14);mxUtils[_0xa4d4[53]](_0x7246x16,_0x7246x14,_0x7246x4);_0x7246x15[_0xa4d4[62]](_0x7246x16);}else {mxUtils[_0xa4d4[53]](_0x7246x15,_0x7246x14,_0x7246x4)};_0x7246x12[_0xa4d4[62]](_0x7246x15);};_0x7246x9[_0xa4d4[62]](_0x7246x12);};_0x7246x5[_0xa4d4[62]](_0x7246x9);return _0x7246x5;};mxPrintPreview[_0xa4d4[202]][_0xa4d4[2034]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[485]);try{_0x7246x5[_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2+_0xa4d4[168];_0x7246x5[_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3+_0xa4d4[168];_0x7246x5[_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[188];_0x7246x5[_0xa4d4[124]][_0xa4d4[2050]]=_0xa4d4[1824];_0x7246x5[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[1500];var _0x7246x9=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x9[_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[467]]+_0xa4d4[168];_0x7246x9[_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[467]]+_0xa4d4[168];_0x7246x9[_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2-2*this[_0xa4d4[467]]+_0xa4d4[168];_0x7246x9[_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3-2*this[_0xa4d4[467]]+_0xa4d4[168];_0x7246x9[_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[188];this[_0xa4d4[1179]][_0xa4d4[507]]==mxConstants[_0xa4d4[1523]]&&(_0x7246x9[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492]);_0x7246x5[_0xa4d4[62]](_0x7246x9);document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x5);_0x7246x4(_0x7246x9);}catch(f){throw _0x7246x5[_0xa4d4[265]][_0xa4d4[266]](_0x7246x5),f};return _0x7246x5;};mxPrintPreview[_0xa4d4[202]][_0xa4d4[2033]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]();var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[526]];this[_0xa4d4[1179]][_0xa4d4[526]]=_0x7246x9;var _0x7246x12=_0x7246x5[_0xa4d4[2051]](),_0x7246x13=_0x7246x5[_0xa4d4[2052]](),_0x7246x14=_0x7246x5[_0xa4d4[2024]](),_0x7246x15=_0x7246x5[_0xa4d4[1524]]();this[_0xa4d4[1179]][_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?_0x7246x5[_0xa4d4[1569]]():this[_0xa4d4[1179]][_0xa4d4[507]]==mxConstants[_0xa4d4[1523]]?_0x7246x5[_0xa4d4[1571]]():_0x7246x5[_0xa4d4[1570]]();var _0x7246x16=_0x7246x5[_0xa4d4[503]]();_0x7246x5[_0xa4d4[504]](!1);var _0x7246x17=this[_0xa4d4[1179]][_0xa4d4[994]]();this[_0xa4d4[1179]][_0xa4d4[995]](!1);var _0x7246x18=_0x7246x5[_0xa4d4[512]]();_0x7246x5[_0xa4d4[513]]= new mxPoint(_0x7246x2,_0x7246x3);_0x7246x2=null;try{var _0x7246x19=[this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[501]]()];_0x7246x2= new mxTemporaryCellStates(_0x7246x5,_0x7246x4,_0x7246x19);}finally{if(mxClient[_0xa4d4[80]]){_0x7246x5[_0xa4d4[506]][_0xa4d4[339]]=_0xa4d4[110]}else {for(_0x7246x4=_0x7246x9[_0xa4d4[285]];null!=_0x7246x4;){_0x7246x19=_0x7246x4[_0xa4d4[287]],_0x7246x3=_0x7246x4[_0xa4d4[301]][_0xa4d4[216]](),_0xa4d4[571]==_0x7246x3?(_0x7246x4[_0xa4d4[57]](_0xa4d4[117],parseInt(_0x7246x9[_0xa4d4[124]][_0xa4d4[117]])),_0x7246x4[_0xa4d4[57]](_0xa4d4[119],parseInt(_0x7246x9[_0xa4d4[124]][_0xa4d4[119]]))):_0xa4d4[583]!=_0x7246x4[_0xa4d4[124]][_0xa4d4[270]]&&_0xa4d4[116]!=_0x7246x3&&_0x7246x4[_0xa4d4[265]][_0xa4d4[266]](_0x7246x4),_0x7246x4=_0x7246x19}};_0x7246x5[_0xa4d4[506]][_0xa4d4[265]][_0xa4d4[266]](_0x7246x5[_0xa4d4[506]]);this[_0xa4d4[1179]][_0xa4d4[995]](_0x7246x17);this[_0xa4d4[1179]][_0xa4d4[526]]=_0x7246xa;_0x7246x5[_0xa4d4[510]]=_0x7246x12;_0x7246x5[_0xa4d4[2053]]=_0x7246x13;_0x7246x5[_0xa4d4[505]]=_0x7246x14;_0x7246x5[_0xa4d4[506]]=_0x7246x15;_0x7246x5[_0xa4d4[513]]=_0x7246x18;_0x7246x2[_0xa4d4[515]]();_0x7246x5[_0xa4d4[504]](_0x7246x16);};};mxPrintPreview[_0xa4d4[202]][_0xa4d4[2031]]=function(){return null};mxPrintPreview[_0xa4d4[202]][_0xa4d4[2032]]=function(){return null};mxPrintPreview[_0xa4d4[202]][_0xa4d4[540]]=function(){var _0x7246x2=this[_0xa4d4[392]]();null!=_0x7246x2&&_0x7246x2[_0xa4d4[540]]();};mxPrintPreview[_0xa4d4[202]][_0xa4d4[268]]=function(){null!=this[_0xa4d4[2018]]&&(this[_0xa4d4[2018]][_0xa4d4[268]](),this[_0xa4d4[2018]]=null)};function mxStylesheet(){this[_0xa4d4[2054]]={};this[_0xa4d4[2056]](this[_0xa4d4[2055]]());this[_0xa4d4[2058]](this[_0xa4d4[2057]]());}mxStylesheet[_0xa4d4[202]][_0xa4d4[2055]]=function(){var _0x7246x2={};_0x7246x2[mxConstants[_0xa4d4[2059]]]=mxConstants[_0xa4d4[2060]];_0x7246x2[mxConstants[_0xa4d4[2061]]]=mxPerimeter[_0xa4d4[2062]];_0x7246x2[mxConstants[_0xa4d4[2063]]]=mxConstants[_0xa4d4[481]];_0x7246x2[mxConstants[_0xa4d4[2064]]]=mxConstants[_0xa4d4[479]];_0x7246x2[mxConstants[_0xa4d4[2065]]]=_0xa4d4[2066];_0x7246x2[mxConstants[_0xa4d4[2067]]]=_0xa4d4[2068];_0x7246x2[mxConstants[_0xa4d4[2069]]]=_0xa4d4[2070];return _0x7246x2;};mxStylesheet[_0xa4d4[202]][_0xa4d4[2057]]=function(){var _0x7246x2={};_0x7246x2[mxConstants[_0xa4d4[2059]]]=mxConstants[_0xa4d4[2071]];_0x7246x2[mxConstants[_0xa4d4[1695]]]=mxConstants[_0xa4d4[1622]];_0x7246x2[mxConstants[_0xa4d4[2063]]]=mxConstants[_0xa4d4[481]];_0x7246x2[mxConstants[_0xa4d4[2064]]]=mxConstants[_0xa4d4[479]];_0x7246x2[mxConstants[_0xa4d4[2067]]]=_0xa4d4[2068];_0x7246x2[mxConstants[_0xa4d4[2069]]]=_0xa4d4[2072];return _0x7246x2;};mxStylesheet[_0xa4d4[202]][_0xa4d4[2056]]=function(_0x7246x2){this[_0xa4d4[2074]](_0xa4d4[2073],_0x7246x2)};mxStylesheet[_0xa4d4[202]][_0xa4d4[2058]]=function(_0x7246x2){this[_0xa4d4[2074]](_0xa4d4[2075],_0x7246x2)};mxStylesheet[_0xa4d4[202]][_0xa4d4[2076]]=function(){return this[_0xa4d4[2054]][_0xa4d4[2073]]};mxStylesheet[_0xa4d4[202]][_0xa4d4[2077]]=function(){return this[_0xa4d4[2054]][_0xa4d4[2075]]};mxStylesheet[_0xa4d4[202]][_0xa4d4[2074]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[2054]][_0x7246x2]=_0x7246x3};mxStylesheet[_0xa4d4[202]][_0xa4d4[1705]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x3;if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){for(var _0x7246x5=_0x7246x2[_0xa4d4[224]](_0xa4d4[471]),_0x7246x4=null!=_0x7246x4&&_0xa4d4[471]!=_0x7246x2[_0xa4d4[225]](0)?mxUtils[_0xa4d4[238]](_0x7246x4):{},_0x7246x9=0;_0x7246x9<_0x7246x5[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=_0x7246x5[_0x7246x9],_0x7246x12=_0x7246xa[_0xa4d4[2]](_0xa4d4[226]);if(0<=_0x7246x12){var _0x7246x13=_0x7246xa[_0xa4d4[85]](0,_0x7246x12),_0x7246xa=_0x7246xa[_0xa4d4[85]](_0x7246x12+1);_0x7246xa==mxConstants[_0xa4d4[217]]? delete _0x7246x4[_0x7246x13]:mxUtils[_0xa4d4[1946]](_0x7246xa)?_0x7246x4[_0x7246x13]=parseFloat(_0x7246xa):_0x7246x4[_0x7246x13]=_0x7246xa;}else {if(_0x7246xa=this[_0xa4d4[2054]][_0x7246xa],null!=_0x7246xa){for(_0x7246x13 in _0x7246xa){_0x7246x4[_0x7246x13]=_0x7246xa[_0x7246x13]}}};}};return _0x7246x4;};function mxCellState(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[441]]=_0x7246x2;this[_0xa4d4[246]]=_0x7246x3;this[_0xa4d4[124]]=_0x7246x4;this[_0xa4d4[2078]]= new mxPoint;this[_0xa4d4[2079]]= new mxPoint;}mxCellState[_0xa4d4[202]]= new mxRectangle;mxCellState[_0xa4d4[202]][_0xa4d4[196]]=mxCellState;mxCellState[_0xa4d4[202]][_0xa4d4[441]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[246]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[124]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[2080]]= !0;mxCellState[_0xa4d4[202]][_0xa4d4[2081]]= !1;mxCellState[_0xa4d4[202]][_0xa4d4[2082]]= !1;mxCellState[_0xa4d4[202]][_0xa4d4[2078]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[439]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[2079]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[2083]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[2084]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[2085]]=0;mxCellState[_0xa4d4[202]][_0xa4d4[67]]=0;mxCellState[_0xa4d4[202]][_0xa4d4[2086]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[253]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[963]]=null;mxCellState[_0xa4d4[202]][_0xa4d4[2087]]=function(_0x7246x2,_0x7246x3){_0x7246x2=_0x7246x2||0;_0x7246x3=null!=_0x7246x3?_0x7246x3: new mxRectangle(this[_0xa4d4[235]],this[_0xa4d4[236]],this[_0xa4d4[117]],this[_0xa4d4[119]]);if(null!=this[_0xa4d4[253]]&&null!=this[_0xa4d4[253]][_0xa4d4[1561]]){var _0x7246x4=this[_0xa4d4[253]][_0xa4d4[1561]][_0xa4d4[1548]](this[_0xa4d4[124]],_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]],_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]);_0x7246x3[_0xa4d4[235]]=_0x7246x4[_0xa4d4[235]];_0x7246x3[_0xa4d4[236]]=_0x7246x4[_0xa4d4[236]];_0x7246x3[_0xa4d4[117]]=this[_0xa4d4[253]][_0xa4d4[1561]][_0xa4d4[1532]]*_0x7246x4[_0xa4d4[117]];_0x7246x3[_0xa4d4[119]]=this[_0xa4d4[253]][_0xa4d4[1561]][_0xa4d4[1533]]*_0x7246x4[_0xa4d4[119]];};0!=_0x7246x2&&_0x7246x3[_0xa4d4[244]](_0x7246x2);return _0x7246x3;};mxCellState[_0xa4d4[202]][_0xa4d4[2088]]=function(_0x7246x2,_0x7246x3){_0x7246x3?(null==this[_0xa4d4[439]]&&(this[_0xa4d4[439]]=[]),0==this[_0xa4d4[439]][_0xa4d4[67]]?this[_0xa4d4[439]][_0xa4d4[207]](_0x7246x2):this[_0xa4d4[439]][0]=_0x7246x2):null==this[_0xa4d4[439]]?(this[_0xa4d4[439]]=[],this[_0xa4d4[439]][_0xa4d4[207]](null),this[_0xa4d4[439]][_0xa4d4[207]](_0x7246x2)):1==this[_0xa4d4[439]][_0xa4d4[67]]?this[_0xa4d4[439]][_0xa4d4[207]](_0x7246x2):this[_0xa4d4[439]][this[_0xa4d4[439]][_0xa4d4[67]]-1]=_0x7246x2};mxCellState[_0xa4d4[202]][_0xa4d4[1609]]=function(_0x7246x2){null!=this[_0xa4d4[253]]&&this[_0xa4d4[253]][_0xa4d4[1609]](_0x7246x2);null!=this[_0xa4d4[963]]&&this[_0xa4d4[963]][_0xa4d4[1609]](_0x7246x2);};mxCellState[_0xa4d4[202]][_0xa4d4[1710]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[2089]](_0x7246x2);return null!=_0x7246x2?_0x7246x2[_0xa4d4[246]]:null;};mxCellState[_0xa4d4[202]][_0xa4d4[2089]]=function(_0x7246x2){return _0x7246x2?this[_0xa4d4[2083]]:this[_0xa4d4[2084]]};mxCellState[_0xa4d4[202]][_0xa4d4[2090]]=function(_0x7246x2,_0x7246x3){_0x7246x3?this[_0xa4d4[2083]]=_0x7246x2:this[_0xa4d4[2084]]=_0x7246x2};mxCellState[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[515]](this)};mxCellState[_0xa4d4[202]][_0xa4d4[238]]=function(){var _0x7246x2= new mxCellState(this[_0xa4d4[441]],this[_0xa4d4[246]],this[_0xa4d4[124]]);if(null!=this[_0xa4d4[439]]){_0x7246x2[_0xa4d4[439]]=[];for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[439]][_0xa4d4[67]];_0x7246x3++){_0x7246x2[_0xa4d4[439]][_0x7246x3]=this[_0xa4d4[439]][_0x7246x3][_0xa4d4[238]]()};};null!=this[_0xa4d4[2078]]&&(_0x7246x2[_0xa4d4[2078]]=this[_0xa4d4[2078]][_0xa4d4[238]]());null!=this[_0xa4d4[2079]]&&(_0x7246x2[_0xa4d4[2079]]=this[_0xa4d4[2079]][_0xa4d4[238]]());null!=this[_0xa4d4[1563]]&&(_0x7246x2[_0xa4d4[1563]]=this[_0xa4d4[1563]][_0xa4d4[238]]());_0x7246x2[_0xa4d4[2085]]=this[_0xa4d4[2085]];_0x7246x2[_0xa4d4[2086]]=this[_0xa4d4[2086]];_0x7246x2[_0xa4d4[67]]=this[_0xa4d4[67]];_0x7246x2[_0xa4d4[235]]=this[_0xa4d4[235]];_0x7246x2[_0xa4d4[236]]=this[_0xa4d4[236]];_0x7246x2[_0xa4d4[117]]=this[_0xa4d4[117]];_0x7246x2[_0xa4d4[119]]=this[_0xa4d4[119]];return _0x7246x2;};function mxGraphSelectionModel(_0x7246x2){this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[895]]=[];}mxGraphSelectionModel[_0xa4d4[202]]= new mxEventSource;mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[196]]=mxGraphSelectionModel;mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2091]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[819]:_0xa4d4[110];mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2092]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[2093]:_0xa4d4[110];mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[1179]]=null;mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2094]]= !1;mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2095]]=function(){return this[_0xa4d4[2094]]};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2096]]=function(_0x7246x2){this[_0xa4d4[2094]]=_0x7246x2};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2097]]=function(_0x7246x2){return null!=_0x7246x2?0<=mxUtils[_0xa4d4[2]](this[_0xa4d4[895]],_0x7246x2):!1};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[1107]]=function(){return 0==this[_0xa4d4[895]][_0xa4d4[67]]};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[200]]=function(){this[_0xa4d4[2098]](null,this[_0xa4d4[895]])};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2099]]=function(_0x7246x2){null!=_0x7246x2&&this[_0xa4d4[2100]]([_0x7246x2])};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2100]]=function(_0x7246x2){if(null!=_0x7246x2){this[_0xa4d4[2094]]&&(_0x7246x2=[this[_0xa4d4[2101]](_0x7246x2)]);for(var _0x7246x3=[],_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[1179]][_0xa4d4[2102]](_0x7246x2[_0x7246x4])&&_0x7246x3[_0xa4d4[207]](_0x7246x2[_0x7246x4])};this[_0xa4d4[2098]](_0x7246x3,this[_0xa4d4[895]]);}};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2101]]=function(_0x7246x2){if(null!=_0x7246x2){for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3++){if(this[_0xa4d4[1179]][_0xa4d4[2102]](_0x7246x2[_0x7246x3])){return _0x7246x2[_0x7246x3]}}};return null;};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2103]]=function(_0x7246x2){null!=_0x7246x2&&this[_0xa4d4[832]]([_0x7246x2])};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[832]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=null;this[_0xa4d4[2094]]&&(_0x7246x3=this[_0xa4d4[895]],_0x7246x2=[this[_0xa4d4[2101]](_0x7246x2)]);for(var _0x7246x4=[],_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){!this[_0xa4d4[2097]](_0x7246x2[_0x7246x5])&&this[_0xa4d4[1179]][_0xa4d4[2102]](_0x7246x2[_0x7246x5])&&_0x7246x4[_0xa4d4[207]](_0x7246x2[_0x7246x5])};this[_0xa4d4[2098]](_0x7246x4,_0x7246x3);}};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2104]]=function(_0x7246x2){null!=_0x7246x2&&this[_0xa4d4[842]]([_0x7246x2])};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[842]]=function(_0x7246x2){if(null!=_0x7246x2){for(var _0x7246x3=[],_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[2097]](_0x7246x2[_0x7246x4])&&_0x7246x3[_0xa4d4[207]](_0x7246x2[_0x7246x4])};this[_0xa4d4[2098]](null,_0x7246x3);}};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[2098]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]&&null!=_0x7246x2[0]||null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]&&null!=_0x7246x3[0]){var _0x7246x4= new mxSelectionChange(this,_0x7246x2,_0x7246x3);_0x7246x4[_0xa4d4[350]]();var _0x7246x5= new mxUndoableEdit(this,!1);_0x7246x5[_0xa4d4[99]](_0x7246x4);this[_0xa4d4[746]]( new mxEventObject(mxEvent.UNDO,_0xa4d4[1061],_0x7246x5));}};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[1941]]=function(_0x7246x2){null!=_0x7246x2&&!this[_0xa4d4[2097]](_0x7246x2)&&this[_0xa4d4[895]][_0xa4d4[207]](_0x7246x2)};mxGraphSelectionModel[_0xa4d4[202]][_0xa4d4[1102]]=function(_0x7246x2){null!=_0x7246x2&&(_0x7246x2=mxUtils[_0xa4d4[2]](this[_0xa4d4[895]],_0x7246x2),0<=_0x7246x2&&this[_0xa4d4[895]][_0xa4d4[300]](_0x7246x2,1))};function mxSelectionChange(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[2105]]=_0x7246x2;this[_0xa4d4[2106]]=null!=_0x7246x3?_0x7246x3[_0xa4d4[1853]]():null;this[_0xa4d4[2107]]=null!=_0x7246x4?_0x7246x4[_0xa4d4[1853]]():null;}mxSelectionChange[_0xa4d4[202]][_0xa4d4[350]]=function(){var _0x7246x2=mxLog[_0xa4d4[2109]](_0xa4d4[2108]);window[_0xa4d4[879]]=mxResources[_0xa4d4[203]](this[_0xa4d4[2105]][_0xa4d4[2092]])||this[_0xa4d4[2105]][_0xa4d4[2092]];if(null!=this[_0xa4d4[2107]]){for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[2107]][_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[2105]][_0xa4d4[1102]](this[_0xa4d4[2107]][_0x7246x3])}};if(null!=this[_0xa4d4[2106]]){for(_0x7246x3=0;_0x7246x3<this[_0xa4d4[2106]][_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[2105]][_0xa4d4[1941]](this[_0xa4d4[2106]][_0x7246x3])}};_0x7246x3=this[_0xa4d4[2106]];this[_0xa4d4[2106]]=this[_0xa4d4[2107]];this[_0xa4d4[2107]]=_0x7246x3;window[_0xa4d4[879]]=mxResources[_0xa4d4[203]](this[_0xa4d4[2105]][_0xa4d4[2091]])||this[_0xa4d4[2105]][_0xa4d4[2091]];mxLog[_0xa4d4[2110]](_0xa4d4[2108],_0x7246x2);this[_0xa4d4[2105]][_0xa4d4[746]]( new mxEventObject(mxEvent.CHANGE,_0xa4d4[2106],this[_0xa4d4[2106]],_0xa4d4[2107],this[_0xa4d4[2107]]));};function mxCellEditor(_0x7246x2){this[_0xa4d4[1179]]=_0x7246x2}mxCellEditor[_0xa4d4[202]][_0xa4d4[1179]]=null;mxCellEditor[_0xa4d4[202]][_0xa4d4[126]]=null;mxCellEditor[_0xa4d4[202]][_0xa4d4[2111]]=null;mxCellEditor[_0xa4d4[202]][_0xa4d4[2112]]=null;mxCellEditor[_0xa4d4[202]][_0xa4d4[2113]]= !1;mxCellEditor[_0xa4d4[202]][_0xa4d4[2114]]= !0;mxCellEditor[_0xa4d4[202]][_0xa4d4[2115]]=_0xa4d4[110];mxCellEditor[_0xa4d4[202]][_0xa4d4[2116]]=_0xa4d4[110];mxCellEditor[_0xa4d4[202]][_0xa4d4[176]]=function(){this[_0xa4d4[126]]=document[_0xa4d4[55]](_0xa4d4[126]);this[_0xa4d4[126]][_0xa4d4[926]]=_0xa4d4[2117];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[189];this[_0xa4d4[126]][_0xa4d4[57]](_0xa4d4[2118],_0xa4d4[2119]);this[_0xa4d4[126]][_0xa4d4[57]](_0xa4d4[969],_0xa4d4[2120]);mxClient[_0xa4d4[133]]&&(this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[129]]=_0xa4d4[130]);mxEvent[_0xa4d4[169]](this[_0xa4d4[126]],_0xa4d4[2121],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2122]]()}));mxEvent[_0xa4d4[169]](this[_0xa4d4[126]],_0xa4d4[2123],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){mxEvent[_0xa4d4[721]](_0x7246x2)||(113==_0x7246x2[_0xa4d4[2124]]||this[_0xa4d4[1179]][_0xa4d4[2125]]()&&13==_0x7246x2[_0xa4d4[2124]]&&!mxEvent[_0xa4d4[775]](_0x7246x2)&&!mxEvent[_0xa4d4[774]](_0x7246x2)?(this[_0xa4d4[1179]][_0xa4d4[2126]](!1),mxEvent[_0xa4d4[722]](_0x7246x2)):27==_0x7246x2[_0xa4d4[2124]]?(this[_0xa4d4[1179]][_0xa4d4[2126]](!0),mxEvent[_0xa4d4[722]](_0x7246x2)):(this[_0xa4d4[2127]]&&(this[_0xa4d4[2127]]= !1,this[_0xa4d4[126]][_0xa4d4[131]]=_0xa4d4[110]),this[_0xa4d4[2128]](!0)))}));mxEvent[_0xa4d4[169]](this[_0xa4d4[126]],_0xa4d4[2129],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2114]]&&!mxEvent[_0xa4d4[721]](_0x7246x2)&&setTimeout(mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[129]]()}),0)}));};mxCellEditor[_0xa4d4[202]][_0xa4d4[129]]=function(){if(null!=this[_0xa4d4[1653]]){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](this[_0xa4d4[2111]]),_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[2130]](_0x7246x2[_0xa4d4[246]]),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[2131]](_0x7246x2[_0xa4d4[246]]);if(this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]])){this[_0xa4d4[1562]][_0xa4d4[235]]=_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]],this[_0xa4d4[1562]][_0xa4d4[236]]=_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]],this[_0xa4d4[1562]][_0xa4d4[117]]=0,this[_0xa4d4[1562]][_0xa4d4[119]]=0}else {if(null!=this[_0xa4d4[1562]]){this[_0xa4d4[1562]][_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]];this[_0xa4d4[1562]][_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]];this[_0xa4d4[1562]][_0xa4d4[117]]=_0x7246x2[_0xa4d4[117]];this[_0xa4d4[1562]][_0xa4d4[119]]=_0x7246x2[_0xa4d4[119]];var _0x7246x5=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);_0x7246x5==mxConstants[_0xa4d4[2132]]?this[_0xa4d4[1562]][_0xa4d4[235]]-=_0x7246x2[_0xa4d4[117]]:_0x7246x5==mxConstants[_0xa4d4[480]]&&(this[_0xa4d4[1562]][_0xa4d4[235]]+=_0x7246x2[_0xa4d4[117]]);_0x7246x5=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);_0x7246x5==mxConstants[_0xa4d4[1687]]?this[_0xa4d4[1562]][_0xa4d4[236]]-=_0x7246x2[_0xa4d4[119]]:_0x7246x5==mxConstants[_0xa4d4[482]]&&(this[_0xa4d4[1562]][_0xa4d4[236]]+=_0x7246x2[_0xa4d4[119]]);}};_0x7246x5=this[_0xa4d4[126]][_0xa4d4[131]];if(_0xa4d4[192]==_0x7246x5[_0xa4d4[225]](_0x7246x5[_0xa4d4[67]]-1)||_0xa4d4[110]==_0x7246x5){_0x7246x5+=_0xa4d4[544]};_0x7246x5=mxUtils[_0xa4d4[321]](_0x7246x5,!1);_0x7246x4?(this[_0xa4d4[1653]][_0xa4d4[124]][_0xa4d4[493]]=_0xa4d4[1502],this[_0xa4d4[1653]][_0xa4d4[124]][_0xa4d4[117]]=this[_0xa4d4[1562]][_0xa4d4[117]]+_0xa4d4[168]):_0x7246x5=_0x7246x5[_0xa4d4[230]](/ /g,_0xa4d4[544]);_0x7246x5=_0x7246x5[_0xa4d4[230]](/\n/g,_0xa4d4[1453]);this[_0xa4d4[1653]][_0xa4d4[339]]=_0x7246x5;var _0x7246x5=this[_0xa4d4[1653]][_0xa4d4[359]]+30,_0x7246x9=this[_0xa4d4[1653]][_0xa4d4[167]]+16,_0x7246x5=Math[_0xa4d4[160]](_0x7246x5,40),_0x7246x9=Math[_0xa4d4[160]](_0x7246x9,20);_0x7246x3&&(_0x7246x5=Math[_0xa4d4[243]](this[_0xa4d4[1562]][_0xa4d4[117]]-4,_0x7246x5),_0x7246x9=Math[_0xa4d4[243]](this[_0xa4d4[1562]][_0xa4d4[119]],_0x7246x9));var _0x7246xa=null!=_0x7246x2[_0xa4d4[963]]?_0x7246x2[_0xa4d4[963]][_0xa4d4[1655]]:null;null==_0x7246xa&&(_0x7246xa=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),_0x7246x2=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0x7246xa=mxUtils[_0xa4d4[1501]](_0x7246xa,_0x7246x2));if(null!=_0x7246xa){if(_0x7246x3|| !_0x7246x4){this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[361]]=Math[_0xa4d4[160]](0,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[235]]-_0x7246xa[_0xa4d4[235]]*this[_0xa4d4[1562]][_0xa4d4[117]]+_0x7246xa[_0xa4d4[235]]*_0x7246x5)-3)+_0xa4d4[168]};this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[125]]=Math[_0xa4d4[160]](0,Math[_0xa4d4[488]](this[_0xa4d4[1562]][_0xa4d4[236]]-_0x7246xa[_0xa4d4[236]]*this[_0xa4d4[1562]][_0xa4d4[119]]+_0x7246xa[_0xa4d4[236]]*_0x7246x9)+4)+_0xa4d4[168];};if(_0x7246x3|| !_0x7246x4){this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x5+_0xa4d4[168]};this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x9+_0xa4d4[168];}};mxCellEditor[_0xa4d4[202]][_0xa4d4[2133]]=function(){return this[_0xa4d4[2113]]};mxCellEditor[_0xa4d4[202]][_0xa4d4[2128]]=function(_0x7246x2){this[_0xa4d4[2113]]=_0x7246x2};mxCellEditor[_0xa4d4[202]][_0xa4d4[2122]]=function(){this[_0xa4d4[2126]](!this[_0xa4d4[1179]][_0xa4d4[2134]]())};mxCellEditor[_0xa4d4[202]][_0xa4d4[855]]=function(_0x7246x2,_0x7246x3){null==this[_0xa4d4[126]]&&this[_0xa4d4[176]]();this[_0xa4d4[2126]](!0);var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);if(null!=_0x7246x4){this[_0xa4d4[2111]]=_0x7246x2;this[_0xa4d4[2112]]=_0x7246x3;this[_0xa4d4[2116]]=null;null!=_0x7246x4[_0xa4d4[963]]&&this[_0xa4d4[2135]](_0x7246x4)&&(this[_0xa4d4[2116]]=_0x7246x4[_0xa4d4[963]][_0xa4d4[252]],this[_0xa4d4[2116]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]);var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x5=mxUtils[_0xa4d4[433]](_0x7246x4[_0xa4d4[124]],mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*_0x7246x5,_0x7246x9=mxUtils[_0xa4d4[433]](_0x7246x4[_0xa4d4[124]],mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),_0x7246xa=mxUtils[_0xa4d4[433]](_0x7246x4[_0xa4d4[124]],mxConstants.STYLE_FONTCOLOR,_0xa4d4[586]),_0x7246x12=mxUtils[_0xa4d4[433]](_0x7246x4[_0xa4d4[124]],mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),_0x7246x13=(mxUtils[_0xa4d4[433]](_0x7246x4[_0xa4d4[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0xa4d4[1410]])==mxConstants[_0xa4d4[1410]],_0x7246x14=(mxUtils[_0xa4d4[433]](_0x7246x4[_0xa4d4[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0xa4d4[1412]])==mxConstants[_0xa4d4[1412]],_0x7246x15=(mxUtils[_0xa4d4[433]](_0x7246x4[_0xa4d4[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0xa4d4[1414]])==mxConstants[_0xa4d4[1414]];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[487]]=Math[_0xa4d4[488]](_0x7246x5)+_0xa4d4[168];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[489]]=Math[_0xa4d4[488]](_0x7246x5*mxConstants[_0xa4d4[490]])+_0xa4d4[168];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[486]]=_0x7246x9;this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[1165]]=_0x7246x12;this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[352]]=_0x7246xa;this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[1452]]=_0x7246x13?_0xa4d4[1447]:_0xa4d4[1502];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[666]]=_0x7246x14?_0xa4d4[1449]:_0xa4d4[110];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[354]]=_0x7246x15?_0xa4d4[355]:_0xa4d4[110];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[278];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[2136]]=_0xa4d4[130];this[_0xa4d4[1562]]=_0x7246x5=this[_0xa4d4[2137]](_0x7246x4);this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x5[_0xa4d4[235]]+_0xa4d4[168];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x5[_0xa4d4[236]]+_0xa4d4[168];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[117]]=_0x7246x5[_0xa4d4[117]]+_0xa4d4[168];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x5[_0xa4d4[119]]+_0xa4d4[168];this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[931]]=5;_0x7246x4=this[_0xa4d4[2138]](_0x7246x4,_0x7246x3);null==_0x7246x4||0==_0x7246x4[_0xa4d4[67]]?(_0x7246x4=this[_0xa4d4[2139]](),this[_0xa4d4[2127]]= !0):this[_0xa4d4[2127]]= !1;this[_0xa4d4[2128]](!1);this[_0xa4d4[126]][_0xa4d4[131]]=_0x7246x4;this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[62]](this[_0xa4d4[126]]);_0xa4d4[130]!=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[495]]&&(this[_0xa4d4[2114]]&&(this[_0xa4d4[1653]]=this[_0xa4d4[2140]](),document[_0xa4d4[112]][_0xa4d4[62]](this[_0xa4d4[1653]]),this[_0xa4d4[129]]()),this[_0xa4d4[126]][_0xa4d4[393]](),this[_0xa4d4[126]][_0xa4d4[804]]());};};mxCellEditor[_0xa4d4[202]][_0xa4d4[2140]]=function(){var _0x7246x2=document[_0xa4d4[55]](_0xa4d4[485]),_0x7246x3=_0x7246x2[_0xa4d4[124]];_0x7246x3[_0xa4d4[491]]=_0xa4d4[492];_0x7246x3[_0xa4d4[493]]=_0xa4d4[494];_0x7246x3[_0xa4d4[187]]=_0xa4d4[188];_0x7246x3[_0xa4d4[495]]=mxClient[_0xa4d4[496]]?_0xa4d4[497]:_0xa4d4[498];_0x7246x3[_0xa4d4[499]]=_0xa4d4[500];_0x7246x3[_0xa4d4[123]]=_0xa4d4[125];_0x7246x3[_0xa4d4[489]]=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[489]];_0x7246x3[_0xa4d4[487]]=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[487]];_0x7246x3[_0xa4d4[486]]=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[486]];_0x7246x3[_0xa4d4[1452]]=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[1452]];_0x7246x3[_0xa4d4[1165]]=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[1165]];_0x7246x3[_0xa4d4[666]]=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[666]];_0x7246x3[_0xa4d4[354]]=this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[354]];return _0x7246x2;};mxCellEditor[_0xa4d4[202]][_0xa4d4[2126]]=function(_0x7246x2){null!=this[_0xa4d4[2111]]&&(null!=this[_0xa4d4[2116]]&&(this[_0xa4d4[2116]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189],this[_0xa4d4[2116]]=null),!_0x7246x2&&this[_0xa4d4[2133]]()&&this[_0xa4d4[1179]][_0xa4d4[850]](this[_0xa4d4[2111]],this[_0xa4d4[2141]](),this[_0xa4d4[2112]]),null!=this[_0xa4d4[1653]]&&(document[_0xa4d4[112]][_0xa4d4[266]](this[_0xa4d4[1653]]),this[_0xa4d4[1653]]=null),this[_0xa4d4[1562]]=this[_0xa4d4[2112]]=this[_0xa4d4[2111]]=null,this[_0xa4d4[126]][_0xa4d4[2121]](),this[_0xa4d4[126]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[126]]))};mxCellEditor[_0xa4d4[202]][_0xa4d4[2138]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[1179]][_0xa4d4[2142]](_0x7246x2[_0xa4d4[246]],_0x7246x3)};mxCellEditor[_0xa4d4[202]][_0xa4d4[2141]]=function(){return this[_0xa4d4[126]][_0xa4d4[131]][_0xa4d4[230]](/\r/g,_0xa4d4[110])};mxCellEditor[_0xa4d4[202]][_0xa4d4[2135]]=function(_0x7246x2){return !0};mxCellEditor[_0xa4d4[202]][_0xa4d4[939]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]];return  new mxRectangle(0,0,null==_0x7246x2[_0xa4d4[963]]?30:_0x7246x2[_0xa4d4[963]][_0xa4d4[803]]*_0x7246x3+20,_0xa4d4[361]==this[_0xa4d4[126]][_0xa4d4[124]][_0xa4d4[1165]]?120:40);};mxCellEditor[_0xa4d4[202]][_0xa4d4[2137]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x5=this[_0xa4d4[939]](_0x7246x2),_0x7246x9=_0x7246x5[_0xa4d4[117]],_0x7246x5=_0x7246x5[_0xa4d4[119]],_0x7246xa=parseInt(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2143]]]||2)*_0x7246x4,_0x7246x12=parseInt(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2144]]]||0)*_0x7246x4+_0x7246xa,_0x7246x13=parseInt(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2145]]]||0)*_0x7246x4+_0x7246xa,_0x7246x14=parseInt(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2146]]]||0)*_0x7246x4+_0x7246xa,_0x7246x4=parseInt(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2147]]]||0)*_0x7246x4+_0x7246xa,_0x7246x13= new mxRectangle(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],Math[_0xa4d4[160]](_0x7246x9,_0x7246x2[_0xa4d4[117]]-_0x7246x4-_0x7246x13),Math[_0xa4d4[160]](_0x7246x5,_0x7246x2[_0xa4d4[119]]-_0x7246x12-_0x7246x14));_0x7246x3?(_0x7246x13[_0xa4d4[235]]=_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]],_0x7246x13[_0xa4d4[236]]=_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]],null!=_0x7246x2[_0xa4d4[963]]&&null!=_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]]&&(0<_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[235]]&&(_0x7246x13[_0xa4d4[235]]=_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[235]]),0<_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[236]]&&(_0x7246x13[_0xa4d4[236]]=_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[236]]))):null!=_0x7246x2[_0xa4d4[963]]&&null!=_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]]&&(_0x7246x13[_0xa4d4[235]]=Math[_0xa4d4[243]](_0x7246x13[_0xa4d4[235]],_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[235]]),_0x7246x13[_0xa4d4[236]]=Math[_0xa4d4[243]](_0x7246x13[_0xa4d4[236]],_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[236]]));_0x7246x13[_0xa4d4[235]]+=_0x7246x4;_0x7246x13[_0xa4d4[236]]+=_0x7246x12;null!=_0x7246x2[_0xa4d4[963]]&&null!=_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]]&&(_0x7246x3?(_0x7246x13[_0xa4d4[117]]=Math[_0xa4d4[160]](_0x7246x9,_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[117]]),_0x7246x13[_0xa4d4[119]]=Math[_0xa4d4[160]](_0x7246x5,_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[119]])):(_0x7246x13[_0xa4d4[117]]=Math[_0xa4d4[160]](_0x7246x13[_0xa4d4[117]],_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[117]]),_0x7246x13[_0xa4d4[119]]=Math[_0xa4d4[160]](_0x7246x13[_0xa4d4[119]],_0x7246x2[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[119]])));this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x2[_0xa4d4[246]])&&(_0x7246x3=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),_0x7246x3==mxConstants[_0xa4d4[2132]]?_0x7246x13[_0xa4d4[235]]-=_0x7246x2[_0xa4d4[117]]:_0x7246x3==mxConstants[_0xa4d4[480]]&&(_0x7246x13[_0xa4d4[235]]+=_0x7246x2[_0xa4d4[117]]),_0x7246x3=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),_0x7246x3==mxConstants[_0xa4d4[1687]]?_0x7246x13[_0xa4d4[236]]-=_0x7246x2[_0xa4d4[119]]:_0x7246x3==mxConstants[_0xa4d4[482]]&&(_0x7246x13[_0xa4d4[236]]+=_0x7246x2[_0xa4d4[119]]));return _0x7246x13;};mxCellEditor[_0xa4d4[202]][_0xa4d4[2139]]=function(_0x7246x2){return this[_0xa4d4[2115]]};mxCellEditor[_0xa4d4[202]][_0xa4d4[2148]]=function(){return this[_0xa4d4[2111]]};mxCellEditor[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[126]]&&(mxEvent[_0xa4d4[762]](this[_0xa4d4[126]]),null!=this[_0xa4d4[126]][_0xa4d4[265]]&&this[_0xa4d4[126]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[126]]),this[_0xa4d4[126]]=null)};function mxCellRenderer(){}mxCellRenderer[_0xa4d4[202]][_0xa4d4[2149]]=mxConnector;mxCellRenderer[_0xa4d4[202]][_0xa4d4[2150]]=mxRectangleShape;mxCellRenderer[_0xa4d4[202]][_0xa4d4[2151]]=mxText;mxCellRenderer[_0xa4d4[202]][_0xa4d4[2152]]= !0;mxCellRenderer[_0xa4d4[202]][_0xa4d4[2153]]={};mxCellRenderer[_0xa4d4[2154]]=function(_0x7246x2,_0x7246x3){mxCellRenderer[_0xa4d4[202]][_0xa4d4[2153]][_0x7246x2]=_0x7246x3};mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_LINE,mxLine);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer[_0xa4d4[2154]](mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer[_0xa4d4[202]][_0xa4d4[2155]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]();if(null!=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[526]]&&null==_0x7246x2[_0xa4d4[253]]&&_0x7246x2[_0xa4d4[246]]!=_0x7246x2[_0xa4d4[441]][_0xa4d4[1741]]&&(_0x7246x4[_0xa4d4[1193]](_0x7246x2[_0xa4d4[246]])||_0x7246x4[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]))){if(this[_0xa4d4[2156]](_0x7246x2),null!=_0x7246x2[_0xa4d4[253]]&&(null==_0x7246x3||_0x7246x3)){this[_0xa4d4[2157]](_0x7246x2),_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2158]]||_0x7246x4[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]])?_0x7246x2[_0xa4d4[2081]]= !0:_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2159]]&&null!=this[_0xa4d4[2160]]&&(this[_0xa4d4[2160]][_0xa4d4[265]]==_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]]?this[_0xa4d4[2161]](_0x7246x2,this[_0xa4d4[2160]]):this[_0xa4d4[2160]]=null),_0x7246x2[_0xa4d4[253]][_0xa4d4[255]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],this[_0xa4d4[2162]](_0x7246x2),this[_0xa4d4[2163]](_0x7246x2)}};};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2157]]=function(_0x7246x2){_0x7246x2[_0xa4d4[253]][_0xa4d4[176]](_0x7246x2[_0xa4d4[441]][_0xa4d4[2024]]())};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2164]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=null,_0x7246x5=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246x9=_0x7246x5[_0xa4d4[502]](),_0x7246xa=_0x7246x2[_0xa4d4[246]],_0x7246x12=_0x7246x9[_0xa4d4[1197]](_0x7246xa);null!=_0x7246x12&&null==_0x7246x4;){_0x7246x4=this[_0xa4d4[2165]](_0x7246x5,_0x7246x12,_0x7246xa,_0x7246x3),_0x7246xa=_0x7246x12,_0x7246x12=_0x7246x9[_0xa4d4[1197]](_0x7246xa)};return _0x7246x4;};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2165]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=null,_0x7246xa=_0x7246x2[_0xa4d4[502]]();for(_0x7246x4=null!=_0x7246x4?_0x7246x3[_0xa4d4[1738]](_0x7246x4)-1:_0x7246xa[_0xa4d4[262]](_0x7246x3)-1;0<=_0x7246x4&&null==_0x7246x9;_0x7246x4--){_0x7246x9=this[_0xa4d4[2165]](_0x7246x2,_0x7246xa[_0xa4d4[263]](_0x7246x3,_0x7246x4),null,_0x7246x5)};if(null==_0x7246x9&&(_0x7246x9=_0x7246x2[_0xa4d4[441]][_0xa4d4[248]](_0x7246x3),null!=_0x7246x9&&(null==_0x7246x9[_0xa4d4[253]]||null==_0x7246x9[_0xa4d4[253]][_0xa4d4[252]]||_0x7246x9[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]]!=_0x7246x5))){_0x7246x9=null};return _0x7246x9;};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2166]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]],_0x7246x4=this[_0xa4d4[2164]](_0x7246x2,_0x7246x3),_0x7246x5=_0x7246x3[_0xa4d4[285]];null!=_0x7246x4&&(_0x7246x5=_0x7246x4[_0xa4d4[253]][_0xa4d4[252]],null!=_0x7246x4[_0xa4d4[963]]&&(null!=_0x7246x4[_0xa4d4[963]][_0xa4d4[252]]&&_0x7246x4[_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==_0x7246x3)&&(_0x7246x5=_0x7246x4[_0xa4d4[963]][_0xa4d4[252]]),_0x7246x5=_0x7246x5[_0xa4d4[287]]);this[_0xa4d4[2161]](_0x7246x2,_0x7246x5);};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2167]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[441]],_0x7246x4=_0x7246x3[_0xa4d4[1179]][_0xa4d4[502]]();if(_0x7246x3[_0xa4d4[1179]][_0xa4d4[2159]]){if(null==this[_0xa4d4[2160]]||null==this[_0xa4d4[2160]][_0xa4d4[265]]||this[_0xa4d4[2160]][_0xa4d4[265]]!=_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]]){this[_0xa4d4[2160]]=_0x7246x2[_0xa4d4[253]][_0xa4d4[252]]}}else {if(_0x7246x3[_0xa4d4[1179]][_0xa4d4[2168]]){var _0x7246x5=_0x7246x2[_0xa4d4[253]][_0xa4d4[252]],_0x7246x9=_0x7246x5[_0xa4d4[265]],_0x7246x4=_0x7246x4[_0xa4d4[1197]](_0x7246x2[_0xa4d4[246]]),_0x7246x3=_0x7246x3[_0xa4d4[248]](_0x7246x4),_0x7246x9=null!=_0x7246x3&&null!=_0x7246x3[_0xa4d4[253]]&&null!=_0x7246x3[_0xa4d4[253]][_0xa4d4[252]]?_0x7246x3[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[287]]:_0x7246x9[_0xa4d4[285]];null!=_0x7246x9&&_0x7246x9!=_0x7246x5&&this[_0xa4d4[2161]](_0x7246x2,_0x7246x9);}};};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2161]]=function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[950]](_0x7246x2[_0xa4d4[253]][_0xa4d4[252]],_0x7246x3);null!=_0x7246x2[_0xa4d4[963]]&&(null!=_0x7246x2[_0xa4d4[963]][_0xa4d4[252]]&&_0x7246x2[_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]])&&_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[950]](_0x7246x2[_0xa4d4[963]][_0xa4d4[252]],_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[287]]);};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2156]]=function(_0x7246x2){if(null!=_0x7246x2[_0xa4d4[124]]){var _0x7246x3=mxStencilRegistry[_0xa4d4[1560]](_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2059]]]);null!=_0x7246x3?_0x7246x2[_0xa4d4[253]]= new mxShape(_0x7246x3):(_0x7246x3=this[_0xa4d4[2169]](_0x7246x2),_0x7246x2[_0xa4d4[253]]= new _0x7246x3);_0x7246x2[_0xa4d4[253]][_0xa4d4[1525]]=_0x7246x2[_0xa4d4[439]];_0x7246x2[_0xa4d4[253]][_0xa4d4[1562]]= new mxRectangle(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],_0x7246x2[_0xa4d4[117]],_0x7246x2[_0xa4d4[119]]);_0x7246x2[_0xa4d4[253]][_0xa4d4[507]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[507]];this[_0xa4d4[2170]](_0x7246x2);}};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2171]]=function(_0x7246x2){return null!=_0x7246x2?mxCellRenderer[_0xa4d4[202]][_0xa4d4[2153]][_0x7246x2]:null};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2169]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[2171]](_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2059]]]);null==_0x7246x3&&(_0x7246x3=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]])?this[_0xa4d4[2149]]:this[_0xa4d4[2150]]);return _0x7246x3;};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2170]]=function(_0x7246x2){_0x7246x2[_0xa4d4[253]][_0xa4d4[183]](_0x7246x2);_0x7246x2[_0xa4d4[253]][_0xa4d4[618]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[1202]](_0x7246x2);_0x7246x2[_0xa4d4[253]][_0xa4d4[630]]=this[_0xa4d4[2171]](_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2172]](_0x7246x2));_0x7246x2[_0xa4d4[253]][_0xa4d4[632]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2173]](_0x7246x2);_0x7246x2[_0xa4d4[253]][_0xa4d4[634]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2174]](_0x7246x2);_0x7246x2[_0xa4d4[253]][_0xa4d4[638]]=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2175]]];_0x7246x2[_0xa4d4[253]][_0xa4d4[631]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2176]](_0x7246x2);this[_0xa4d4[2177]](_0x7246x2);};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2177]]=function(_0x7246x2){null!=_0x7246x2[_0xa4d4[253]]&&(this[_0xa4d4[2178]](_0x7246x2,_0xa4d4[632],mxConstants.STYLE_FILLCOLOR),this[_0xa4d4[2178]](_0x7246x2,_0xa4d4[634],mxConstants.STYLE_GRADIENTCOLOR),this[_0xa4d4[2178]](_0x7246x2,_0xa4d4[1334],mxConstants.STYLE_FILLCOLOR),this[_0xa4d4[2178]](_0x7246x2,_0xa4d4[1336],mxConstants.STYLE_STROKECOLOR),this[_0xa4d4[2178]](_0x7246x2,_0xa4d4[1299],mxConstants.STYLE_GRADIENTCOLOR))};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2178]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x2[_0xa4d4[253]][_0x7246x3],_0x7246x9=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246xa=null;_0xa4d4[1549]==_0x7246x5?_0x7246xa=_0x7246x9[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0xa4d4[246]]):_0xa4d4[687]==_0x7246x5?(_0x7246xa=null!=_0x7246x9[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2[_0xa4d4[246]],!1)?_0x7246x9[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2[_0xa4d4[246]],!1):_0x7246x2[_0xa4d4[246]],_0x7246xa=_0x7246x9[_0xa4d4[2179]](_0x7246xa),_0x7246x4=_0x7246x9[_0xa4d4[2180]]):_0xa4d4[2181]==_0x7246x5&&(_0x7246x2[_0xa4d4[253]][_0x7246x3]=_0x7246x2[_0xa4d4[253]][_0xa4d4[632]]);null!=_0x7246xa&&(_0x7246x5=_0x7246x9[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246xa),_0x7246x2[_0xa4d4[253]][_0x7246x3]=null,null!=_0x7246x5&&(_0x7246x2[_0xa4d4[253]][_0x7246x3]=null!=_0x7246x5[_0xa4d4[253]]&&_0xa4d4[632]!=_0x7246x3?_0x7246x5[_0xa4d4[253]][_0x7246x3]:_0x7246x5[_0xa4d4[124]][_0x7246x4]));};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2182]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2183]](_0x7246x2[_0xa4d4[246]])};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2184]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]];_0x7246x4[_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]);if(0<_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2185]]]||null==_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2185]]]){var _0x7246x5=_0x7246x4[_0xa4d4[2186]](_0x7246x2[_0xa4d4[246]])||null!=_0x7246x3&&mxUtils[_0xa4d4[1331]](_0x7246x3);_0x7246x2[_0xa4d4[963]]= new this[_0xa4d4[2151]](_0x7246x3, new mxRectangle,_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2064]]]||mxConstants[_0xa4d4[479]],_0x7246x4[_0xa4d4[2187]](_0x7246x2),_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2069]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2188]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2185]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2189]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2143]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2144]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2145]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2146]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2147]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2190]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2191]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2192]]],_0x7246x4[_0xa4d4[2131]](_0x7246x2[_0xa4d4[246]])&&_0x7246x4[_0xa4d4[2186]](_0x7246x2[_0xa4d4[246]]),_0x7246x4[_0xa4d4[2130]](_0x7246x2[_0xa4d4[246]]),_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2193]]],_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2194]]]);_0x7246x2[_0xa4d4[963]][_0xa4d4[461]]=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_TEXT_OPACITY,100);_0x7246x2[_0xa4d4[963]][_0xa4d4[507]]=_0x7246x5?mxConstants[_0xa4d4[1656]]:_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[507]];_0x7246x2[_0xa4d4[963]][_0xa4d4[724]]=_0x7246x2;this[_0xa4d4[2195]](_0x7246x2);var _0x7246x9=!1,_0x7246xa=function(_0x7246x3){var _0x7246x5=_0x7246x2;if(mxClient[_0xa4d4[754]]||_0x7246x9){_0x7246x5=mxEvent[_0xa4d4[731]](_0x7246x3),_0x7246x3=mxEvent[_0xa4d4[733]](_0x7246x3),_0x7246x3=mxUtils[_0xa4d4[2196]](_0x7246x4[_0xa4d4[526]],_0x7246x5,_0x7246x3),_0x7246x5=_0x7246x4[_0xa4d4[441]][_0xa4d4[248]](_0x7246x4[_0xa4d4[999]](_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]))};return _0x7246x5;};mxEvent[_0xa4d4[759]](_0x7246x2[_0xa4d4[963]][_0xa4d4[252]],mxUtils[_0xa4d4[885]](this,function(_0x7246x3){this[_0xa4d4[2197]](_0x7246x2,_0x7246x3)&&(_0x7246x4[_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x3,_0x7246x2)),_0x7246x9=_0x7246x4[_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]&&_0xa4d4[2198]==mxEvent[_0xa4d4[728]](_0x7246x3)[_0xa4d4[301]])}),mxUtils[_0xa4d4[885]](this,function(_0x7246x3){this[_0xa4d4[2197]](_0x7246x2,_0x7246x3)&&_0x7246x4[_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x3,_0x7246xa(_0x7246x3)))}),mxUtils[_0xa4d4[885]](this,function(_0x7246x3){this[_0xa4d4[2197]](_0x7246x2,_0x7246x3)&&(_0x7246x4[_0xa4d4[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7246x3,_0x7246xa(_0x7246x3))),_0x7246x9= !1)}));mxEvent[_0xa4d4[169]](_0x7246x2[_0xa4d4[963]][_0xa4d4[252]],_0xa4d4[760],mxUtils[_0xa4d4[885]](this,function(_0x7246x3){this[_0xa4d4[2197]](_0x7246x2,_0x7246x3)&&(_0x7246x4[_0xa4d4[761]](_0x7246x3,_0x7246x2[_0xa4d4[246]]),mxEvent[_0xa4d4[722]](_0x7246x3))}));};};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2195]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]];_0x7246x2[_0xa4d4[963]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]&&(mxClient[_0xa4d4[48]]&&mxClient[_0xa4d4[2199]]?_0x7246x2[_0xa4d4[963]][_0xa4d4[176]](_0x7246x3[_0xa4d4[526]]):mxUtils[_0xa4d4[458]](_0x7246x2[_0xa4d4[441]][_0xa4d4[2024]]())&&(null!=_0x7246x2[_0xa4d4[253]][_0xa4d4[685]]?_0x7246x2[_0xa4d4[963]][_0xa4d4[176]](_0x7246x2[_0xa4d4[253]][_0xa4d4[685]]):_0x7246x2[_0xa4d4[963]][_0xa4d4[176]](_0x7246x2[_0xa4d4[253]][_0xa4d4[252]])));null==_0x7246x2[_0xa4d4[963]][_0xa4d4[252]]&&(_0x7246x2[_0xa4d4[963]][_0xa4d4[176]](_0x7246x2[_0xa4d4[441]][_0xa4d4[2024]]()),null!=_0x7246x2[_0xa4d4[253]]&&null!=_0x7246x2[_0xa4d4[963]]&&_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[950]](_0x7246x2[_0xa4d4[963]][_0xa4d4[252]],_0x7246x2[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[287]]));};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2162]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2200]](_0x7246x2[_0xa4d4[246]]),_0x7246x4=null;if(null!=_0x7246x3){for(var _0x7246x4= new mxDictionary,_0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=null!=_0x7246x2[_0xa4d4[1211]]?_0x7246x2[_0xa4d4[1211]][_0xa4d4[205]](_0x7246x3[_0x7246x5]):null;null==_0x7246x9&&(_0x7246x9= new mxImageShape( new mxRectangle,_0x7246x3[_0x7246x5][_0xa4d4[618]][_0xa4d4[390]]),_0x7246x9[_0xa4d4[507]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[507]],_0x7246x9[_0xa4d4[1674]]= !1,_0x7246x9[_0xa4d4[2201]]=_0x7246x3[_0x7246x5],this[_0xa4d4[2023]](_0x7246x2,_0x7246x9),this[_0xa4d4[2202]](_0x7246x2,_0x7246x3[_0x7246x5],_0x7246x9),null!=_0x7246x3[_0x7246x5][_0xa4d4[270]]&&(_0x7246x9[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=_0x7246x3[_0x7246x5][_0xa4d4[270]]));_0x7246x4[_0xa4d4[204]](_0x7246x3[_0x7246x5],_0x7246x9);}};null!=_0x7246x2[_0xa4d4[1211]]&&_0x7246x2[_0xa4d4[1211]][_0xa4d4[209]](function(_0x7246x2,_0x7246x3){_0x7246x3[_0xa4d4[515]]()});_0x7246x2[_0xa4d4[1211]]=_0x7246x4;};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2023]]=function(_0x7246x2,_0x7246x3){_0x7246x3[_0xa4d4[176]](_0x7246x2[_0xa4d4[441]][_0xa4d4[1524]]())};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2202]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]];mxEvent[_0xa4d4[169]](_0x7246x4[_0xa4d4[252]],_0xa4d4[173],function(_0x7246x4){_0x7246x5[_0xa4d4[2203]]()&&_0x7246x5[_0xa4d4[2126]](!_0x7246x5[_0xa4d4[2134]]());_0x7246x3[_0xa4d4[746]]( new mxEventObject(mxEvent.CLICK,_0xa4d4[763],_0x7246x4,_0xa4d4[246],_0x7246x2[_0xa4d4[246]]));});mxEvent[_0xa4d4[759]](_0x7246x4[_0xa4d4[252]],function(_0x7246x2){mxEvent[_0xa4d4[722]](_0x7246x2)},function(_0x7246x3){_0x7246x5[_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x3,_0x7246x2))});mxClient[_0xa4d4[754]]&&mxEvent[_0xa4d4[169]](_0x7246x4[_0xa4d4[252]],_0xa4d4[757],function(_0x7246x4){_0x7246x3[_0xa4d4[746]]( new mxEventObject(mxEvent.CLICK,_0xa4d4[763],_0x7246x4,_0xa4d4[246],_0x7246x2[_0xa4d4[246]]))});};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2204]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246x4=_0x7246x3[_0xa4d4[2205]](_0x7246x2);if(_0x7246x3[_0xa4d4[2206]]&&null!=_0x7246x4){if(null==_0x7246x2[_0xa4d4[2207]]){var _0x7246x5= new mxRectangle(0,0,_0x7246x4[_0xa4d4[117]],_0x7246x4[_0xa4d4[119]]);_0x7246x2[_0xa4d4[2207]]= new mxImageShape(_0x7246x5,_0x7246x4[_0xa4d4[390]]);_0x7246x2[_0xa4d4[2207]][_0xa4d4[1674]]= !1;_0x7246x2[_0xa4d4[2207]][_0xa4d4[507]]=_0x7246x3[_0xa4d4[507]];this[_0xa4d4[2208]](_0x7246x2,_0x7246x2[_0xa4d4[2207]],!0,function(_0x7246x4){if(_0x7246x3[_0xa4d4[994]]()){var _0x7246x5=!_0x7246x3[_0xa4d4[1742]](_0x7246x2[_0xa4d4[246]]);_0x7246x3[_0xa4d4[847]](_0x7246x5,!1,[_0x7246x2[_0xa4d4[246]]]);mxEvent[_0xa4d4[722]](_0x7246x4);}});}}else {null!=_0x7246x2[_0xa4d4[2207]]&&(_0x7246x2[_0xa4d4[2207]][_0xa4d4[515]](),_0x7246x2[_0xa4d4[2207]]=null)};};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2208]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]];_0x7246x9[_0xa4d4[2186]](_0x7246x2[_0xa4d4[246]])&&mxClient[_0xa4d4[2199]]&&_0x7246x9[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?(_0x7246x3[_0xa4d4[507]]=mxConstants[_0xa4d4[2209]],_0x7246x3[_0xa4d4[176]](_0x7246x9[_0xa4d4[526]]),_0x7246x3[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[931]]=1):_0x7246x3[_0xa4d4[176]](_0x7246x2[_0xa4d4[441]][_0xa4d4[1524]]());_0x7246x3=_0x7246x3[_0xa4d4[2210]]||_0x7246x3[_0xa4d4[252]];_0x7246x5&&(_0x7246x9[_0xa4d4[994]]()&&(_0x7246x3[_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[356]),mxEvent[_0xa4d4[169]](_0x7246x3,_0xa4d4[173],_0x7246x5));_0x7246x4&&mxEvent[_0xa4d4[759]](_0x7246x3,function(_0x7246x3){_0x7246x9[_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x3,_0x7246x2));mxEvent[_0xa4d4[722]](_0x7246x3);},function(_0x7246x3){_0x7246x9[_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x3,_0x7246x2))});return _0x7246x3;};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2211]]=function(_0x7246x2,_0x7246x3){return !0};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2197]]=function(_0x7246x2,_0x7246x3){return !0};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2163]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246x4=function(_0x7246x4){var _0x7246x5=_0x7246x2;if(_0x7246x3[_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]&&_0xa4d4[2198]==mxEvent[_0xa4d4[728]](_0x7246x4)[_0xa4d4[301]]||mxClient[_0xa4d4[754]]){_0x7246x5=mxEvent[_0xa4d4[731]](_0x7246x4),_0x7246x4=mxEvent[_0xa4d4[733]](_0x7246x4),_0x7246x4=mxUtils[_0xa4d4[2196]](_0x7246x3[_0xa4d4[526]],_0x7246x5,_0x7246x4),_0x7246x5=_0x7246x3[_0xa4d4[441]][_0xa4d4[248]](_0x7246x3[_0xa4d4[999]](_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]))};return _0x7246x5;},_0x7246x5=!1;mxEvent[_0xa4d4[169]](_0x7246x2[_0xa4d4[253]][_0xa4d4[252]],_0xa4d4[2212],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){_0x7246x3[_0xa4d4[2213]]=0;_0x7246x5= !0;mxEvent[_0xa4d4[722]](_0x7246x2);}));mxEvent[_0xa4d4[759]](_0x7246x2[_0xa4d4[253]][_0xa4d4[252]],mxUtils[_0xa4d4[885]](this,function(_0x7246x4){this[_0xa4d4[2211]](_0x7246x2,_0x7246x4)&&!_0x7246x5?_0x7246x3[_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x4,null!=_0x7246x2[_0xa4d4[253]]&&mxEvent[_0xa4d4[728]](_0x7246x4)==_0x7246x2[_0xa4d4[253]][_0xa4d4[905]]?null:_0x7246x2)):_0x7246x5&&mxEvent[_0xa4d4[722]](_0x7246x4)}),mxUtils[_0xa4d4[885]](this,function(_0x7246x9){this[_0xa4d4[2211]](_0x7246x2,_0x7246x9)&&!_0x7246x5?_0x7246x3[_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x9,null!=_0x7246x2[_0xa4d4[253]]&&mxEvent[_0xa4d4[728]](_0x7246x9)==_0x7246x2[_0xa4d4[253]][_0xa4d4[905]]?null:_0x7246x4(_0x7246x9))):_0x7246x5&&mxEvent[_0xa4d4[722]](_0x7246x9)}),mxUtils[_0xa4d4[885]](this,function(_0x7246x9){this[_0xa4d4[2211]](_0x7246x2,_0x7246x9)&&!_0x7246x5?_0x7246x3[_0xa4d4[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7246x9,null!=_0x7246x2[_0xa4d4[253]]&&mxEvent[_0xa4d4[728]](_0x7246x9)==_0x7246x2[_0xa4d4[253]][_0xa4d4[905]]?null:_0x7246x4(_0x7246x9))):_0x7246x5&&mxEvent[_0xa4d4[722]](_0x7246x9)}));var _0x7246x9=mxClient[_0xa4d4[754]]?_0xa4d4[2214]:_0xa4d4[760];mxEvent[_0xa4d4[169]](_0x7246x2[_0xa4d4[253]][_0xa4d4[252]],_0x7246x9,mxUtils[_0xa4d4[885]](this,function(_0x7246x4){_0x7246x5= !1;_0xa4d4[2214]==_0x7246x9?(_0x7246x3[_0xa4d4[2213]]=0,_0x7246x3[_0xa4d4[2215]]&&(_0x7246x3[_0xa4d4[2216]](_0x7246x2,_0x7246x4),mxEvent[_0xa4d4[722]](_0x7246x4))):this[_0xa4d4[2211]](_0x7246x2,_0x7246x4)&&(_0x7246x3[_0xa4d4[761]](_0x7246x4,null!=_0x7246x2[_0xa4d4[253]]&&mxEvent[_0xa4d4[728]](_0x7246x4)==_0x7246x2[_0xa4d4[253]][_0xa4d4[905]]?null:_0x7246x2[_0xa4d4[246]]),mxEvent[_0xa4d4[722]](_0x7246x4));}));};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2217]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[2182]](_0x7246x2);if(null==_0x7246x2[_0xa4d4[963]]&&null!=_0x7246x4&&(mxUtils[_0xa4d4[1331]](_0x7246x4)||0<_0x7246x4[_0xa4d4[67]])){this[_0xa4d4[2184]](_0x7246x2,_0x7246x4)}else {if(null!=_0x7246x2[_0xa4d4[963]]&&(null==_0x7246x4||0==_0x7246x4[_0xa4d4[67]])){_0x7246x2[_0xa4d4[963]][_0xa4d4[515]](),_0x7246x2[_0xa4d4[963]]=null}};if(null!=_0x7246x2[_0xa4d4[963]]){var _0x7246x5=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246x9=_0x7246x5[_0xa4d4[2131]](_0x7246x2[_0xa4d4[246]]),_0x7246x5=_0x7246x5[_0xa4d4[2130]](_0x7246x2[_0xa4d4[246]]),_0x7246xa=this[_0xa4d4[2218]](_0x7246x2);if(_0x7246x3||_0x7246x2[_0xa4d4[963]][_0xa4d4[131]]!=_0x7246x4||_0x7246x2[_0xa4d4[963]][_0xa4d4[2131]]!=_0x7246x9||_0x7246x2[_0xa4d4[963]][_0xa4d4[2219]]!=_0x7246x5||_0x7246x2[_0xa4d4[963]][_0xa4d4[255]]!=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]]||!_0x7246x2[_0xa4d4[963]][_0xa4d4[1562]][_0xa4d4[237]](_0x7246xa)){_0x7246x2[_0xa4d4[963]][_0xa4d4[131]]=_0x7246x4,_0x7246x2[_0xa4d4[963]][_0xa4d4[1562]]=_0x7246xa,_0x7246x2[_0xa4d4[963]][_0xa4d4[255]]=this[_0xa4d4[2220]](_0x7246x2),_0x7246x2[_0xa4d4[963]][_0xa4d4[2131]]=_0x7246x9,_0x7246x2[_0xa4d4[963]][_0xa4d4[2219]]=_0x7246x5,_0x7246x2[_0xa4d4[963]][_0xa4d4[258]]()};};};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2220]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[441]][_0xa4d4[255]]};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2218]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246x4=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],_0x7246x5=_0x7246x3[_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]),_0x7246x9= new mxRectangle(_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]],_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]]);_0x7246x2[_0xa4d4[963]][_0xa4d4[1672]]();_0x7246x5?(_0x7246x5=_0x7246x2[_0xa4d4[963]][_0xa4d4[1673]](),_0x7246x9[_0xa4d4[235]]+=_0x7246x5[_0xa4d4[235]]*_0x7246x4,_0x7246x9[_0xa4d4[236]]+=_0x7246x5[_0xa4d4[236]]*_0x7246x4,_0x7246x3=_0x7246x3[_0xa4d4[1198]](_0x7246x2[_0xa4d4[246]]),null!=_0x7246x3&&(_0x7246x9[_0xa4d4[117]]=Math[_0xa4d4[160]](0,_0x7246x2[_0xa4d4[963]][_0xa4d4[1655]][_0xa4d4[235]]*_0x7246x3[_0xa4d4[117]]*_0x7246x4-_0x7246x2[_0xa4d4[963]][_0xa4d4[659]]*_0x7246x4-_0x7246x2[_0xa4d4[963]][_0xa4d4[661]]*_0x7246x4),_0x7246x9[_0xa4d4[119]]=Math[_0xa4d4[160]](0,_0x7246x2[_0xa4d4[963]][_0xa4d4[1655]][_0xa4d4[236]]*_0x7246x3[_0xa4d4[119]]*_0x7246x4-_0x7246x2[_0xa4d4[963]][_0xa4d4[658]]*_0x7246x4-_0x7246x2[_0xa4d4[963]][_0xa4d4[660]]*_0x7246x4))):(_0x7246x2[_0xa4d4[963]][_0xa4d4[1590]]()&&(_0x7246x5=_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[235]]=_0x7246x9[_0xa4d4[236]],_0x7246x9[_0xa4d4[236]]=_0x7246x5),_0x7246x9[_0xa4d4[235]]+=_0x7246x2[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]]+=_0x7246x2[_0xa4d4[236]],_0x7246x9[_0xa4d4[117]]=Math[_0xa4d4[160]](1,_0x7246x2[_0xa4d4[117]]),_0x7246x9[_0xa4d4[119]]=Math[_0xa4d4[160]](1,_0x7246x2[_0xa4d4[119]]),_0x7246x3[_0xa4d4[1730]](_0x7246x2[_0xa4d4[246]])&&(_0x7246x3=_0x7246x3[_0xa4d4[1731]](_0x7246x2[_0xa4d4[246]]),0<_0x7246x3[_0xa4d4[117]]?(_0x7246x5=Math[_0xa4d4[243]](_0x7246x9[_0xa4d4[117]],_0x7246x3[_0xa4d4[117]]*_0x7246x4),_0x7246x2[_0xa4d4[253]][_0xa4d4[623]]&&(_0x7246x9[_0xa4d4[235]]+=_0x7246x9[_0xa4d4[117]]-_0x7246x5),_0x7246x9[_0xa4d4[117]]=_0x7246x5):0<_0x7246x3[_0xa4d4[119]]&&(_0x7246x5=Math[_0xa4d4[243]](_0x7246x9[_0xa4d4[119]],_0x7246x3[_0xa4d4[119]]*_0x7246x4),_0x7246x2[_0xa4d4[253]][_0xa4d4[624]]&&(_0x7246x9[_0xa4d4[236]]+=_0x7246x9[_0xa4d4[119]]-_0x7246x5),_0x7246x9[_0xa4d4[119]]=_0x7246x5)),this[_0xa4d4[2221]](_0x7246x2,_0x7246x9));return _0x7246x9;};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2221]]=function(_0x7246x2,_0x7246x3){if(_0x7246x2[_0xa4d4[963]][_0xa4d4[1590]]()){var _0x7246x4=(_0x7246x2[_0xa4d4[117]]-_0x7246x2[_0xa4d4[119]])/2;_0x7246x3[_0xa4d4[235]]+=_0x7246x4;_0x7246x3[_0xa4d4[236]]-=_0x7246x4;_0x7246x4=_0x7246x3[_0xa4d4[117]];_0x7246x3[_0xa4d4[117]]=_0x7246x3[_0xa4d4[119]];_0x7246x3[_0xa4d4[119]]=_0x7246x4;};_0x7246x3[_0xa4d4[235]]-=_0x7246x2[_0xa4d4[963]][_0xa4d4[1655]][_0xa4d4[235]]*_0x7246x3[_0xa4d4[117]];_0x7246x3[_0xa4d4[236]]-=_0x7246x2[_0xa4d4[963]][_0xa4d4[1655]][_0xa4d4[236]]*_0x7246x3[_0xa4d4[119]];if(_0xa4d4[1334]!=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2193]]]){var _0x7246x4=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],_0x7246x5=_0x7246x2[_0xa4d4[963]][_0xa4d4[1673]]();_0x7246x3[_0xa4d4[235]]+=_0x7246x5[_0xa4d4[235]]*_0x7246x4;_0x7246x3[_0xa4d4[236]]+=_0x7246x5[_0xa4d4[236]]*_0x7246x4;_0x7246x3[_0xa4d4[117]]=Math[_0xa4d4[160]](0,_0x7246x3[_0xa4d4[117]]-_0x7246x2[_0xa4d4[963]][_0xa4d4[659]]*_0x7246x4-_0x7246x2[_0xa4d4[963]][_0xa4d4[661]]*_0x7246x4);_0x7246x3[_0xa4d4[119]]=Math[_0xa4d4[160]](0,_0x7246x3[_0xa4d4[119]]-_0x7246x2[_0xa4d4[963]][_0xa4d4[658]]*_0x7246x4-_0x7246x2[_0xa4d4[963]][_0xa4d4[660]]*_0x7246x4);};var _0x7246x9=_0x7246x2[_0xa4d4[963]][_0xa4d4[1615]]();if(0!=_0x7246x9&&(null!=_0x7246x2&&_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1193]](_0x7246x2[_0xa4d4[246]]))&&(_0x7246x4=_0x7246x2[_0xa4d4[241]](),_0x7246x5=_0x7246x2[_0xa4d4[242]](),_0x7246x3[_0xa4d4[235]]!=_0x7246x4||_0x7246x3[_0xa4d4[236]]!=_0x7246x5)){_0x7246x9*=Math[_0xa4d4[424]]/180,pt=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]),Math[_0xa4d4[426]](_0x7246x9),Math[_0xa4d4[427]](_0x7246x9), new mxPoint(_0x7246x4,_0x7246x5)),_0x7246x3[_0xa4d4[235]]=pt[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]=pt[_0xa4d4[236]]};};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2222]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[2162]](_0x7246x2);if(null!=_0x7246x2[_0xa4d4[1211]]){var _0x7246x4=mxUtils[_0xa4d4[1454]](mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ROTATION,0),90),_0x7246x5=mxUtils[_0xa4d4[431]](_0x7246x4),_0x7246x9=Math[_0xa4d4[426]](_0x7246x5),_0x7246xa=Math[_0xa4d4[427]](_0x7246x5);_0x7246x2[_0xa4d4[1211]][_0xa4d4[209]](function(_0x7246x5,_0x7246x13){var _0x7246x14=_0x7246x13[_0xa4d4[2201]][_0xa4d4[1799]](_0x7246x2);if(!_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]])&&null!=_0x7246x2[_0xa4d4[253]]&&0!=_0x7246x4){var _0x7246x15=_0x7246x14[_0xa4d4[241]](),_0x7246x16=_0x7246x14[_0xa4d4[242]](),_0x7246x16=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x15,_0x7246x16),_0x7246x9,_0x7246xa, new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]())),_0x7246x15=_0x7246x16[_0xa4d4[235]],_0x7246x16=_0x7246x16[_0xa4d4[236]];_0x7246x14[_0xa4d4[235]]=Math[_0xa4d4[488]](_0x7246x15-_0x7246x14[_0xa4d4[117]]/2);_0x7246x14[_0xa4d4[236]]=Math[_0xa4d4[488]](_0x7246x16-_0x7246x14[_0xa4d4[119]]/2);};if(_0x7246x3||null==_0x7246x13[_0xa4d4[1562]]||_0x7246x13[_0xa4d4[255]]!=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]]||!_0x7246x13[_0xa4d4[1562]][_0xa4d4[237]](_0x7246x14)){_0x7246x13[_0xa4d4[1562]]=_0x7246x14,_0x7246x13[_0xa4d4[255]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],_0x7246x13[_0xa4d4[258]]()};});};};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2223]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2[_0xa4d4[2207]]){var _0x7246x4=this[_0xa4d4[2224]](_0x7246x2),_0x7246x5=this[_0xa4d4[2152]]?mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ROTATION,0):_0x7246x2[_0xa4d4[253]][_0xa4d4[1615]](),_0x7246x9=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]];if(_0x7246x3||_0x7246x2[_0xa4d4[2207]][_0xa4d4[255]]!=_0x7246x9||!_0x7246x2[_0xa4d4[2207]][_0xa4d4[1562]][_0xa4d4[237]](_0x7246x4)||_0x7246x2[_0xa4d4[2207]][_0xa4d4[603]]!=_0x7246x5){_0x7246x2[_0xa4d4[2207]][_0xa4d4[603]]=_0x7246x5,_0x7246x2[_0xa4d4[2207]][_0xa4d4[1562]]=_0x7246x4,_0x7246x2[_0xa4d4[2207]][_0xa4d4[255]]=_0x7246x9,_0x7246x2[_0xa4d4[2207]][_0xa4d4[258]]()};}};mxCellRenderer[_0xa4d4[202]][_0xa4d4[2224]]=function(_0x7246x2){if(null!=_0x7246x2[_0xa4d4[2207]]){var _0x7246x3=_0x7246x2[_0xa4d4[2207]][_0xa4d4[255]],_0x7246x4=_0x7246x2[_0xa4d4[2207]][_0xa4d4[1562]][_0xa4d4[117]]/_0x7246x3,_0x7246x3=_0x7246x2[_0xa4d4[2207]][_0xa4d4[1562]][_0xa4d4[119]]/_0x7246x3,_0x7246x5=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],_0x7246x9=_0x7246x2[_0xa4d4[241]](),_0x7246xa=_0x7246x2[_0xa4d4[242]]();if(!_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]])&&(_0x7246x9=_0x7246x2[_0xa4d4[235]]+_0x7246x4*_0x7246x5,_0x7246xa=_0x7246x2[_0xa4d4[236]]+_0x7246x3*_0x7246x5,null!=_0x7246x2[_0xa4d4[253]])){var _0x7246x12=_0x7246x2[_0xa4d4[253]][_0xa4d4[1598]]();if(this[_0xa4d4[2152]]){_0x7246x12=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ROTATION,0)}else {if(_0x7246x2[_0xa4d4[253]][_0xa4d4[1590]]()){var _0x7246x13=(_0x7246x2[_0xa4d4[117]]-_0x7246x2[_0xa4d4[119]])/2,_0x7246x9=_0x7246x9+_0x7246x13,_0x7246xa=_0x7246xa-_0x7246x13}};0!=_0x7246x12&&(_0x7246x13=mxUtils[_0xa4d4[431]](_0x7246x12),_0x7246x12=Math[_0xa4d4[426]](_0x7246x13),_0x7246x13=Math[_0xa4d4[427]](_0x7246x13),_0x7246xa=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x9,_0x7246xa),_0x7246x12,_0x7246x13, new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]())),_0x7246x9=_0x7246xa[_0xa4d4[235]],_0x7246xa=_0x7246xa[_0xa4d4[236]]);};return _0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]), new mxRectangle(Math[_0xa4d4[488]](_0x7246x9-_0x7246x4/2*_0x7246x5),Math[_0xa4d4[488]](_0x7246xa-_0x7246x3/2*_0x7246x5),Math[_0xa4d4[488]](_0x7246x4*_0x7246x5),Math[_0xa4d4[488]](_0x7246x3*_0x7246x5));};return null;};mxCellRenderer[_0xa4d4[202]][_0xa4d4[258]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(null!=_0x7246x2[_0xa4d4[253]]){var _0x7246x5=!1;_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]);reconfigure=null!=_0x7246x3?_0x7246x3:!1;this[_0xa4d4[2204]](_0x7246x2);if(_0x7246x2[_0xa4d4[2082]]||_0x7246x2[_0xa4d4[2081]]){_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2158]]?this[_0xa4d4[2166]](_0x7246x2):this[_0xa4d4[2167]](_0x7246x2)};if(_0x7246x2[_0xa4d4[2082]]||!mxUtils[_0xa4d4[2225]](_0x7246x2[_0xa4d4[253]][_0xa4d4[124]],_0x7246x2[_0xa4d4[124]])){this[_0xa4d4[2170]](_0x7246x2),_0x7246x3= !0};delete _0x7246x2[_0xa4d4[2081]];delete _0x7246x2[_0xa4d4[2082]];if(_0x7246x3||null==_0x7246x2[_0xa4d4[253]][_0xa4d4[1562]]||_0x7246x2[_0xa4d4[253]][_0xa4d4[255]]!=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]]||!_0x7246x2[_0xa4d4[253]][_0xa4d4[1562]][_0xa4d4[237]](_0x7246x2)||!mxUtils[_0xa4d4[2226]](_0x7246x2[_0xa4d4[253]][_0xa4d4[1525]],_0x7246x2[_0xa4d4[439]])){_0x7246x5= !0,_0x7246x2[_0xa4d4[253]][_0xa4d4[1525]]=null!=_0x7246x2[_0xa4d4[439]]?_0x7246x2[_0xa4d4[439]][_0xa4d4[1853]]():null,_0x7246x2[_0xa4d4[253]][_0xa4d4[1562]]= new mxRectangle(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],_0x7246x2[_0xa4d4[117]],_0x7246x2[_0xa4d4[119]]),_0x7246x2[_0xa4d4[253]][_0xa4d4[255]]=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],null==_0x7246x4||_0x7246x4?_0x7246x2[_0xa4d4[253]][_0xa4d4[258]]():_0x7246x2[_0xa4d4[253]][_0xa4d4[1577]]()};if(null==_0x7246x4||_0x7246x4){this[_0xa4d4[2217]](_0x7246x2,_0x7246x5),this[_0xa4d4[2222]](_0x7246x2,_0x7246x5),this[_0xa4d4[2223]](_0x7246x2,_0x7246x5)};}};mxCellRenderer[_0xa4d4[202]][_0xa4d4[515]]=function(_0x7246x2){null!=_0x7246x2[_0xa4d4[253]]&&(null!=_0x7246x2[_0xa4d4[963]]&&(_0x7246x2[_0xa4d4[963]][_0xa4d4[515]](),_0x7246x2[_0xa4d4[963]]=null),null!=_0x7246x2[_0xa4d4[1211]]&&(_0x7246x2[_0xa4d4[1211]][_0xa4d4[209]](function(_0x7246x2,_0x7246x4){_0x7246x4[_0xa4d4[515]]()}),_0x7246x2[_0xa4d4[1211]]=null),null!=_0x7246x2[_0xa4d4[2207]]&&(_0x7246x2[_0xa4d4[2207]][_0xa4d4[515]](),_0x7246x2[_0xa4d4[2207]]=null),_0x7246x2[_0xa4d4[253]][_0xa4d4[515]](),_0x7246x2[_0xa4d4[253]]=null)};var mxEdgeStyle={EntityRelation:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=_0x7246x2[_0xa4d4[441]],_0x7246x12=_0x7246xa[_0xa4d4[1179]];_0x7246x5=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*_0x7246xa[_0xa4d4[255]];var _0x7246x13=_0x7246x2[_0xa4d4[439]],_0x7246x14=_0x7246x13[0],_0x7246x15=_0x7246x13[_0x7246x13[_0xa4d4[67]]-1],_0x7246x13=!1;if(null!=_0x7246x14){_0x7246x3= new mxCellState,_0x7246x3[_0xa4d4[235]]=_0x7246x14[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]=_0x7246x14[_0xa4d4[236]]}else {if(null!=_0x7246x3){var _0x7246x16=mxUtils[_0xa4d4[2227]](_0x7246x3,_0x7246x2,!0,mxConstants.DIRECTION_MASK_NONE);_0x7246x16!=mxConstants[_0xa4d4[434]]?_0x7246x13=_0x7246x16==mxConstants[_0xa4d4[436]]:(_0x7246x14=_0x7246x12[_0xa4d4[1198]](_0x7246x3[_0xa4d4[246]]),_0x7246x14[_0xa4d4[1500]]?_0x7246x13=0.5>=_0x7246x14[_0xa4d4[235]]:null!=_0x7246x4&&(_0x7246x13=_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]<_0x7246x3[_0xa4d4[235]]));}else {return }};_0x7246x14= !0;null!=_0x7246x15?(_0x7246x4= new mxCellState,_0x7246x4[_0xa4d4[235]]=_0x7246x15[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]=_0x7246x15[_0xa4d4[236]]):null!=_0x7246x4&&(_0x7246x16=mxUtils[_0xa4d4[2227]](_0x7246x4,_0x7246x2,!1,mxConstants.DIRECTION_MASK_NONE),_0x7246x16!=mxConstants[_0xa4d4[434]]?_0x7246x14=_0x7246x16==mxConstants[_0xa4d4[436]]:(_0x7246x2=_0x7246x12[_0xa4d4[1198]](_0x7246x4[_0xa4d4[246]]),_0x7246x2[_0xa4d4[1500]]?_0x7246x14=0.5>=_0x7246x2[_0xa4d4[235]]:null!=_0x7246x3&&(_0x7246x14=_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]]<_0x7246x4[_0xa4d4[235]])));null!=_0x7246x3&&null!=_0x7246x4&&(_0x7246x2=_0x7246x13?_0x7246x3[_0xa4d4[235]]:_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]],_0x7246x3=_0x7246xa[_0xa4d4[2228]](_0x7246x3),_0x7246x12=_0x7246x14?_0x7246x4[_0xa4d4[235]]:_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]],_0x7246x4=_0x7246xa[_0xa4d4[2228]](_0x7246x4),_0x7246xa= new mxPoint(_0x7246x2+(_0x7246x13?-_0x7246x5:_0x7246x5),_0x7246x3),_0x7246x15= new mxPoint(_0x7246x12+(_0x7246x14?-_0x7246x5:_0x7246x5),_0x7246x4),_0x7246x13==_0x7246x14?(_0x7246x5=_0x7246x13?Math[_0xa4d4[243]](_0x7246x2,_0x7246x12)-_0x7246x5:Math[_0xa4d4[160]](_0x7246x2,_0x7246x12)+_0x7246x5,_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x5,_0x7246x3)),_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x5,_0x7246x4))):(_0x7246xa[_0xa4d4[235]]<_0x7246x15[_0xa4d4[235]]==_0x7246x13?(_0x7246x5=_0x7246x3+(_0x7246x4-_0x7246x3)/2,_0x7246x9[_0xa4d4[207]](_0x7246xa),_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246xa[_0xa4d4[235]],_0x7246x5)),_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x15[_0xa4d4[235]],_0x7246x5))):_0x7246x9[_0xa4d4[207]](_0x7246xa),_0x7246x9[_0xa4d4[207]](_0x7246x15)));},Loop:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=_0x7246x3){_0x7246x4=_0x7246x2[_0xa4d4[441]];var _0x7246xa=_0x7246x4[_0xa4d4[1179]];_0x7246x5=null!=_0x7246x5&&0<_0x7246x5[_0xa4d4[67]]?_0x7246x5[0]:null;null!=_0x7246x5&&(_0x7246x5=_0x7246x4[_0xa4d4[2229]](_0x7246x2,_0x7246x5),mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x5[_0xa4d4[235]],_0x7246x5[_0xa4d4[236]])&&(_0x7246x5=null));var _0x7246x12=0,_0x7246x13=0,_0x7246x14=0,_0x7246x15=0,_0x7246xa=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_SEGMENT,_0x7246xa[_0xa4d4[1020]])*_0x7246x4[_0xa4d4[255]];_0x7246x2=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);_0x7246x2==mxConstants[_0xa4d4[1358]]||_0x7246x2==mxConstants[_0xa4d4[1354]]?(_0x7246x12=_0x7246x4[_0xa4d4[2230]](_0x7246x3),_0x7246x13=_0x7246xa):(_0x7246x14=_0x7246x4[_0xa4d4[2228]](_0x7246x3),_0x7246x15=_0x7246xa);null==_0x7246x5||_0x7246x5[_0xa4d4[235]]<_0x7246x3[_0xa4d4[235]]||_0x7246x5[_0xa4d4[235]]>_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]]?null!=_0x7246x5?(_0x7246x12=_0x7246x5[_0xa4d4[235]],_0x7246x15=Math[_0xa4d4[160]](Math[_0xa4d4[425]](_0x7246x14-_0x7246x5[_0xa4d4[236]]),_0x7246x15)):_0x7246x2==mxConstants[_0xa4d4[1358]]?_0x7246x14=_0x7246x3[_0xa4d4[236]]-2*_0x7246x13:_0x7246x2==mxConstants[_0xa4d4[1354]]?_0x7246x14=_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]]+2*_0x7246x13:_0x7246x12=_0x7246x2==mxConstants[_0xa4d4[1356]]?_0x7246x3[_0xa4d4[235]]-2*_0x7246x15:_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]]+2*_0x7246x15:null!=_0x7246x5&&(_0x7246x12=_0x7246x4[_0xa4d4[2230]](_0x7246x3),_0x7246x13=Math[_0xa4d4[160]](Math[_0xa4d4[425]](_0x7246x12-_0x7246x5[_0xa4d4[235]]),_0x7246x15),_0x7246x14=_0x7246x5[_0xa4d4[236]],_0x7246x15=0);_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x12-_0x7246x13,_0x7246x14-_0x7246x15));_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x12+_0x7246x13,_0x7246x14+_0x7246x15));}},ElbowConnector:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=null!=_0x7246x5&&0<_0x7246x5[_0xa4d4[67]]?_0x7246x5[0]:null,_0x7246x12=!1,_0x7246x13=!1;if(null!=_0x7246x3&&null!=_0x7246x4){if(null!=_0x7246xa){var _0x7246x14=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[235]],_0x7246x4[_0xa4d4[235]]),_0x7246x15=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]],_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]),_0x7246x13=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[236]],_0x7246x4[_0xa4d4[236]]),_0x7246x16=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]],_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]),_0x7246xa=_0x7246x2[_0xa4d4[441]][_0xa4d4[2229]](_0x7246x2,_0x7246xa),_0x7246x12=_0x7246xa[_0xa4d4[236]]<_0x7246x13||_0x7246xa[_0xa4d4[236]]>_0x7246x16,_0x7246x13=_0x7246xa[_0xa4d4[235]]<_0x7246x14||_0x7246xa[_0xa4d4[235]]>_0x7246x15}else {_0x7246x14=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[235]],_0x7246x4[_0xa4d4[235]]),_0x7246x15=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]],_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]),_0x7246x12=_0x7246x14==_0x7246x15,_0x7246x12||(_0x7246x13=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[236]],_0x7246x4[_0xa4d4[236]]),_0x7246x16=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]],_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]),_0x7246x13=_0x7246x13==_0x7246x16)}};!_0x7246x13&&(_0x7246x12||_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2231]]]==mxConstants[_0xa4d4[2232]])?mxEdgeStyle.TopToBottom(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9):mxEdgeStyle.SideToSide(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9);},SideToSide:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=_0x7246x2[_0xa4d4[441]];_0x7246x5=null!=_0x7246x5&&0<_0x7246x5[_0xa4d4[67]]?_0x7246x5[0]:null;var _0x7246x12=_0x7246x2[_0xa4d4[439]],_0x7246x13=_0x7246x12[0],_0x7246x12=_0x7246x12[_0x7246x12[_0xa4d4[67]]-1];null!=_0x7246x5&&(_0x7246x5=_0x7246xa[_0xa4d4[2229]](_0x7246x2,_0x7246x5));null!=_0x7246x13&&(_0x7246x3= new mxCellState,_0x7246x3[_0xa4d4[235]]=_0x7246x13[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]=_0x7246x13[_0xa4d4[236]]);null!=_0x7246x12&&(_0x7246x4= new mxCellState,_0x7246x4[_0xa4d4[235]]=_0x7246x12[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]=_0x7246x12[_0xa4d4[236]]);null!=_0x7246x3&&null!=_0x7246x4&&(_0x7246x2=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[235]],_0x7246x4[_0xa4d4[235]]),_0x7246x13=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]],_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]),_0x7246x2=null!=_0x7246x5?_0x7246x5[_0xa4d4[235]]:_0x7246x13+(_0x7246x2-_0x7246x13)/2,_0x7246x13=_0x7246xa[_0xa4d4[2228]](_0x7246x3),_0x7246xa=_0x7246xa[_0xa4d4[2228]](_0x7246x4),null!=_0x7246x5&&(_0x7246x5[_0xa4d4[236]]>=_0x7246x3[_0xa4d4[236]]&&_0x7246x5[_0xa4d4[236]]<=_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]]&&(_0x7246x13=_0x7246x5[_0xa4d4[236]]),_0x7246x5[_0xa4d4[236]]>=_0x7246x4[_0xa4d4[236]]&&_0x7246x5[_0xa4d4[236]]<=_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]&&(_0x7246xa=_0x7246x5[_0xa4d4[236]])),!mxUtils[_0xa4d4[442]](_0x7246x4,_0x7246x2,_0x7246x13)&&!mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x2,_0x7246x13)&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x2,_0x7246x13)),!mxUtils[_0xa4d4[442]](_0x7246x4,_0x7246x2,_0x7246xa)&&!mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x2,_0x7246xa)&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x2,_0x7246xa)),1==_0x7246x9[_0xa4d4[67]]&&(null!=_0x7246x5?!mxUtils[_0xa4d4[442]](_0x7246x4,_0x7246x2,_0x7246x5[_0xa4d4[236]])&&!mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x2,_0x7246x5[_0xa4d4[236]])&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x2,_0x7246x5[_0xa4d4[236]])):(_0x7246xa=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[236]],_0x7246x4[_0xa4d4[236]]),_0x7246x3=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]],_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]),_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x2,_0x7246xa+(_0x7246x3-_0x7246xa)/2)))));},TopToBottom:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=_0x7246x2[_0xa4d4[441]];_0x7246x5=null!=_0x7246x5&&0<_0x7246x5[_0xa4d4[67]]?_0x7246x5[0]:null;var _0x7246x12=_0x7246x2[_0xa4d4[439]],_0x7246x13=_0x7246x12[0],_0x7246x12=_0x7246x12[_0x7246x12[_0xa4d4[67]]-1];null!=_0x7246x5&&(_0x7246x5=_0x7246xa[_0xa4d4[2229]](_0x7246x2,_0x7246x5));null!=_0x7246x13&&(_0x7246x3= new mxCellState,_0x7246x3[_0xa4d4[235]]=_0x7246x13[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]=_0x7246x13[_0xa4d4[236]]);null!=_0x7246x12&&(_0x7246x4= new mxCellState,_0x7246x4[_0xa4d4[235]]=_0x7246x12[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]=_0x7246x12[_0xa4d4[236]]);null!=_0x7246x3&&null!=_0x7246x4&&(_0x7246x13=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[236]],_0x7246x4[_0xa4d4[236]]),_0x7246x12=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]],_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]),_0x7246x2=_0x7246xa[_0xa4d4[2230]](_0x7246x3),null!=_0x7246x5&&(_0x7246x5[_0xa4d4[235]]>=_0x7246x3[_0xa4d4[235]]&&_0x7246x5[_0xa4d4[235]]<=_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]])&&(_0x7246x2=_0x7246x5[_0xa4d4[235]]),_0x7246x13=null!=_0x7246x5?_0x7246x5[_0xa4d4[236]]:_0x7246x12+(_0x7246x13-_0x7246x12)/2,!mxUtils[_0xa4d4[442]](_0x7246x4,_0x7246x2,_0x7246x13)&&!mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x2,_0x7246x13)&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x2,_0x7246x13)),_0x7246x2=null!=_0x7246x5&&_0x7246x5[_0xa4d4[235]]>=_0x7246x4[_0xa4d4[235]]&&_0x7246x5[_0xa4d4[235]]<=_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]?_0x7246x5[_0xa4d4[235]]:_0x7246xa[_0xa4d4[2230]](_0x7246x4),!mxUtils[_0xa4d4[442]](_0x7246x4,_0x7246x2,_0x7246x13)&&!mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x2,_0x7246x13)&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x2,_0x7246x13)),1==_0x7246x9[_0xa4d4[67]]&&(null!=_0x7246x5&&1==_0x7246x9[_0xa4d4[67]]?!mxUtils[_0xa4d4[442]](_0x7246x4,_0x7246x5[_0xa4d4[235]],_0x7246x13)&&!mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x5[_0xa4d4[235]],_0x7246x13)&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x5[_0xa4d4[235]],_0x7246x13)):(_0x7246xa=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[235]],_0x7246x4[_0xa4d4[235]]),_0x7246x3=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]],_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]),_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246xa+(_0x7246x3-_0x7246xa)/2,_0x7246x13)))));},SegmentConnector:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=_0x7246x2[_0xa4d4[439]],_0x7246x12=!0,_0x7246x13=null,_0x7246x14=_0x7246xa[0];null==_0x7246x14&&null!=_0x7246x3?_0x7246x14= new mxPoint(_0x7246x2[_0xa4d4[441]][_0xa4d4[2230]](_0x7246x3),_0x7246x2[_0xa4d4[441]][_0xa4d4[2228]](_0x7246x3)):null!=_0x7246x14&&(_0x7246x14=_0x7246x14[_0xa4d4[238]]());var _0x7246x15=_0x7246xa[_0xa4d4[67]]-1;if(null!=_0x7246x5&&0<_0x7246x5[_0xa4d4[67]]){for(var _0x7246x13=_0x7246x2[_0xa4d4[441]][_0xa4d4[2229]](_0x7246x2,_0x7246x5[0]),_0x7246x16=_0x7246x3,_0x7246x17=_0x7246xa[0],_0x7246x18=!1,_0x7246x19=!1,_0x7246x18=_0x7246x13,_0x7246x1a=_0x7246x5[_0xa4d4[67]],_0x7246x1b=0;2>_0x7246x1b;_0x7246x1b++){var _0x7246x1c=null!=_0x7246x17&&_0x7246x17[_0xa4d4[235]]==_0x7246x18[_0xa4d4[235]],_0x7246x1d=null!=_0x7246x17&&_0x7246x17[_0xa4d4[236]]==_0x7246x18[_0xa4d4[236]],_0x7246x1e=null!=_0x7246x16&&_0x7246x18[_0xa4d4[236]]>=_0x7246x16[_0xa4d4[236]]&&_0x7246x18[_0xa4d4[236]]<=_0x7246x16[_0xa4d4[236]]+_0x7246x16[_0xa4d4[119]],_0x7246x16=null!=_0x7246x16&&_0x7246x18[_0xa4d4[235]]>=_0x7246x16[_0xa4d4[235]]&&_0x7246x18[_0xa4d4[235]]<=_0x7246x16[_0xa4d4[235]]+_0x7246x16[_0xa4d4[117]],_0x7246x18=_0x7246x1d||null==_0x7246x17&&_0x7246x1e,_0x7246x19=_0x7246x1c||null==_0x7246x17&&_0x7246x16;if(null!=_0x7246x17&&!_0x7246x1d&&!_0x7246x1c&&(_0x7246x1e||_0x7246x16)){_0x7246x12=_0x7246x1e?!1:!0;break;};if(_0x7246x19||_0x7246x18){_0x7246x12=_0x7246x18;1==_0x7246x1b&&(_0x7246x12=0==_0x7246x5[_0xa4d4[67]]%2?_0x7246x18:_0x7246x19);break;};_0x7246x16=_0x7246x4;_0x7246x17=_0x7246xa[_0x7246x15];_0x7246x18=_0x7246x2[_0xa4d4[441]][_0xa4d4[2229]](_0x7246x2,_0x7246x5[_0x7246x1a-1]);};_0x7246x12&&(null!=_0x7246xa[0]&&_0x7246xa[0][_0xa4d4[236]]!=_0x7246x13[_0xa4d4[236]]||null==_0x7246xa[0]&&null!=_0x7246x3&&(_0x7246x13[_0xa4d4[236]]<_0x7246x3[_0xa4d4[236]]||_0x7246x13[_0xa4d4[236]]>_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]]))?_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x14[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]])):!_0x7246x12&&(null!=_0x7246xa[0]&&_0x7246xa[0][_0xa4d4[235]]!=_0x7246x13[_0xa4d4[235]]||null==_0x7246xa[0]&&null!=_0x7246x3&&(_0x7246x13[_0xa4d4[235]]<_0x7246x3[_0xa4d4[235]]||_0x7246x13[_0xa4d4[235]]>_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]]))&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x13[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]));_0x7246x12?_0x7246x14[_0xa4d4[236]]=_0x7246x13[_0xa4d4[236]]:_0x7246x14[_0xa4d4[235]]=_0x7246x13[_0xa4d4[235]];for(_0x7246x1b=0;_0x7246x1b<_0x7246x5[_0xa4d4[67]];_0x7246x1b++){_0x7246x12= !_0x7246x12,_0x7246x13=_0x7246x2[_0xa4d4[441]][_0xa4d4[2229]](_0x7246x2,_0x7246x5[_0x7246x1b]),_0x7246x12?_0x7246x14[_0xa4d4[236]]=_0x7246x13[_0xa4d4[236]]:_0x7246x14[_0xa4d4[235]]=_0x7246x13[_0xa4d4[235]],_0x7246x9[_0xa4d4[207]](_0x7246x14[_0xa4d4[238]]())};}else {_0x7246x13=_0x7246x14,_0x7246x12= !0};_0x7246x14=_0x7246xa[_0x7246x15];null==_0x7246x14&&null!=_0x7246x4&&(_0x7246x14= new mxPoint(_0x7246x2[_0xa4d4[441]][_0xa4d4[2230]](_0x7246x4),_0x7246x2[_0xa4d4[441]][_0xa4d4[2228]](_0x7246x4)));_0x7246x12&&(null!=_0x7246xa[_0x7246x15]&&_0x7246xa[_0x7246x15][_0xa4d4[236]]!=_0x7246x13[_0xa4d4[236]]||null==_0x7246xa[_0x7246x15]&&null!=_0x7246x4&&(_0x7246x13[_0xa4d4[236]]<_0x7246x4[_0xa4d4[236]]||_0x7246x13[_0xa4d4[236]]>_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]))?_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x14[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]])):!_0x7246x12&&(null!=_0x7246xa[_0x7246x15]&&_0x7246xa[_0x7246x15][_0xa4d4[235]]!=_0x7246x13[_0xa4d4[235]]||null==_0x7246xa[_0x7246x15]&&null!=_0x7246x4&&(_0x7246x13[_0xa4d4[235]]<_0x7246x4[_0xa4d4[235]]||_0x7246x13[_0xa4d4[235]]>_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]))&&_0x7246x9[_0xa4d4[207]]( new mxPoint(_0x7246x13[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]));if(null==_0x7246xa[0]&&null!=_0x7246x3){for(;1<_0x7246x9[_0xa4d4[67]]&&mxUtils[_0xa4d4[442]](_0x7246x3,_0x7246x9[1][_0xa4d4[235]],_0x7246x9[1][_0xa4d4[236]]);){_0x7246x9=_0x7246x9[_0xa4d4[300]](1,1)}};if(null==_0x7246xa[_0x7246x15]&&null!=_0x7246x4){for(;1<_0x7246x9[_0xa4d4[67]]&&mxUtils[_0xa4d4[442]](_0x7246x4,_0x7246x9[_0x7246x9[_0xa4d4[67]]-1][_0xa4d4[235]],_0x7246x9[_0x7246x9[_0xa4d4[67]]-1][_0xa4d4[236]]);){_0x7246x9=_0x7246x9[_0xa4d4[300]](_0x7246x9[_0xa4d4[67]]-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(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]],_0x7246x12=null==_0x7246x3?!1:_0x7246xa[_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x3[_0xa4d4[246]]),_0x7246xa=null==_0x7246x4?!1:_0x7246xa[_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x4[_0xa4d4[246]]);if(null!=_0x7246x5&&0<_0x7246x5[_0xa4d4[67]]||_0x7246x12||_0x7246xa){mxEdgeStyle.SegmentConnector(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9)}else {_0x7246x5=_0x7246x2[_0xa4d4[439]];var _0x7246x13=_0x7246x5[0],_0x7246x14=_0x7246x5[_0x7246x5[_0xa4d4[67]]-1];_0x7246x5=null!=_0x7246x3?_0x7246x3[_0xa4d4[235]]:_0x7246x13[_0xa4d4[235]];var _0x7246x12=null!=_0x7246x3?_0x7246x3[_0xa4d4[236]]:_0x7246x13[_0xa4d4[236]],_0x7246x15=null!=_0x7246x3?_0x7246x3[_0xa4d4[117]]:1,_0x7246x16=null!=_0x7246x3?_0x7246x3[_0xa4d4[119]]:1,_0x7246x17=null!=_0x7246x4?_0x7246x4[_0xa4d4[235]]:_0x7246x14[_0xa4d4[235]],_0x7246x18=null!=_0x7246x4?_0x7246x4[_0xa4d4[236]]:_0x7246x14[_0xa4d4[236]],_0x7246x19=null!=_0x7246x4?_0x7246x4[_0xa4d4[117]]:1,_0x7246x1a=null!=_0x7246x4?_0x7246x4[_0xa4d4[119]]:1,_0x7246xa=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]]*mxEdgeStyle[_0xa4d4[2233]],_0x7246x1b=[mxConstants[_0xa4d4[2234]],mxConstants[_0xa4d4[2234]]];null!=_0x7246x3&&(_0x7246x1b[0]=mxUtils[_0xa4d4[2227]](_0x7246x3,_0x7246x2,!0,mxConstants.DIRECTION_MASK_ALL));null!=_0x7246x4&&(_0x7246x1b[1]=mxUtils[_0xa4d4[2227]](_0x7246x4,_0x7246x2,!1,mxConstants.DIRECTION_MASK_ALL));_0x7246x2=[0,0];_0x7246x5=[[_0x7246x5,_0x7246x12,_0x7246x15,_0x7246x16],[_0x7246x17,_0x7246x18,_0x7246x19,_0x7246x1a]];for(_0x7246x15=0;2>_0x7246x15;_0x7246x15++){mxEdgeStyle[_0xa4d4[2235]][_0x7246x15][1]=_0x7246x5[_0x7246x15][0]-_0x7246xa,mxEdgeStyle[_0xa4d4[2235]][_0x7246x15][2]=_0x7246x5[_0x7246x15][1]-_0x7246xa,mxEdgeStyle[_0xa4d4[2235]][_0x7246x15][4]=_0x7246x5[_0x7246x15][0]+_0x7246x5[_0x7246x15][2]+_0x7246xa,mxEdgeStyle[_0xa4d4[2235]][_0x7246x15][8]=_0x7246x5[_0x7246x15][1]+_0x7246x5[_0x7246x15][3]+_0x7246xa};_0x7246x15=_0x7246x5[0][0]+_0x7246x5[0][2]/2-(_0x7246x5[1][0]+_0x7246x5[1][2]/2);_0x7246x16=_0x7246x5[0][1]+_0x7246x5[0][3]/2-(_0x7246x5[1][1]+_0x7246x5[1][3]/2);_0x7246x12=0;0>_0x7246x15?_0x7246x12=0>_0x7246x16?2:1:0>=_0x7246x16&&(_0x7246x12=3,0==_0x7246x15&&(_0x7246x12=2));_0x7246x16=null;null!=_0x7246x3&&(_0x7246x16=_0x7246x13);_0x7246x3=[[0.5,0.5],[0.5,0.5]];for(_0x7246x15=0;2>_0x7246x15;_0x7246x15++){null!=_0x7246x16&&(_0x7246x3[_0x7246x15][0]=(_0x7246x16[_0xa4d4[235]]-_0x7246x5[_0x7246x15][0])/_0x7246x5[_0x7246x15][2],0.01>_0x7246x3[_0x7246x15][0]?_0x7246x2[_0x7246x15]=mxConstants[_0xa4d4[436]]:0.99<_0x7246x3[_0x7246x15][0]&&(_0x7246x2[_0x7246x15]=mxConstants[_0xa4d4[438]]),_0x7246x3[_0x7246x15][1]=(_0x7246x16[_0xa4d4[236]]-_0x7246x5[_0x7246x15][1])/_0x7246x5[_0x7246x15][3],0.01>_0x7246x3[_0x7246x15][1]?_0x7246x2[_0x7246x15]=mxConstants[_0xa4d4[435]]:0.99<_0x7246x3[_0x7246x15][1]&&(_0x7246x2[_0x7246x15]=mxConstants[_0xa4d4[437]])),_0x7246x16=null,null!=_0x7246x4&&(_0x7246x16=_0x7246x14)};_0x7246x15=_0x7246x5[0][1]-(_0x7246x5[1][1]+_0x7246x5[1][3]);_0x7246x16=_0x7246x5[0][0]-(_0x7246x5[1][0]+_0x7246x5[1][2]);_0x7246x17=_0x7246x5[1][1]-(_0x7246x5[0][1]+_0x7246x5[0][3]);_0x7246x18=_0x7246x5[1][0]-(_0x7246x5[0][0]+_0x7246x5[0][2]);mxEdgeStyle[_0xa4d4[2236]][1]=Math[_0xa4d4[160]](_0x7246x16-2*_0x7246xa,0);mxEdgeStyle[_0xa4d4[2236]][2]=Math[_0xa4d4[160]](_0x7246x15-2*_0x7246xa,0);mxEdgeStyle[_0xa4d4[2236]][4]=Math[_0xa4d4[160]](_0x7246x17-2*_0x7246xa,0);mxEdgeStyle[_0xa4d4[2236]][3]=Math[_0xa4d4[160]](_0x7246x18-2*_0x7246xa,0);_0x7246x4=[];_0x7246x13=[];_0x7246x14=[];_0x7246x13[0]=_0x7246x16>=_0x7246x18?mxConstants[_0xa4d4[436]]:mxConstants[_0xa4d4[438]];_0x7246x14[0]=_0x7246x15>=_0x7246x17?mxConstants[_0xa4d4[435]]:mxConstants[_0xa4d4[437]];_0x7246x13[1]=mxUtils[_0xa4d4[2237]](_0x7246x13[0]);_0x7246x14[1]=mxUtils[_0xa4d4[2237]](_0x7246x14[0]);_0x7246x16=_0x7246x16>=_0x7246x18?_0x7246x16:_0x7246x18;_0x7246x17=_0x7246x15>=_0x7246x17?_0x7246x15:_0x7246x17;_0x7246x18=[[0,0],[0,0]];_0x7246x19= !1;for(_0x7246x15=0;2>_0x7246x15;_0x7246x15++){0==_0x7246x2[_0x7246x15]&&(0==(_0x7246x13[_0x7246x15]&_0x7246x1b[_0x7246x15])&&(_0x7246x13[_0x7246x15]=mxUtils[_0xa4d4[2237]](_0x7246x13[_0x7246x15])),0==(_0x7246x14[_0x7246x15]&_0x7246x1b[_0x7246x15])&&(_0x7246x14[_0x7246x15]=mxUtils[_0xa4d4[2237]](_0x7246x14[_0x7246x15])),_0x7246x18[_0x7246x15][0]=_0x7246x14[_0x7246x15],_0x7246x18[_0x7246x15][1]=_0x7246x13[_0x7246x15])};_0x7246x17>2*_0x7246xa&&_0x7246x16>2*_0x7246xa&&(0<(_0x7246x13[0]&_0x7246x1b[0])&&0<(_0x7246x14[1]&_0x7246x1b[1])?(_0x7246x18[0][0]=_0x7246x13[0],_0x7246x18[0][1]=_0x7246x14[0],_0x7246x18[1][0]=_0x7246x14[1],_0x7246x18[1][1]=_0x7246x13[1],_0x7246x19= !0):0<(_0x7246x14[0]&_0x7246x1b[0])&&0<(_0x7246x13[1]&_0x7246x1b[1])&&(_0x7246x18[0][0]=_0x7246x14[0],_0x7246x18[0][1]=_0x7246x13[0],_0x7246x18[1][0]=_0x7246x13[1],_0x7246x18[1][1]=_0x7246x14[1],_0x7246x19= !0));_0x7246x17>2*_0x7246xa&&!_0x7246x19&&(_0x7246x18[0][0]=_0x7246x14[0],_0x7246x18[0][1]=_0x7246x13[0],_0x7246x18[1][0]=_0x7246x14[1],_0x7246x18[1][1]=_0x7246x13[1],_0x7246x19= !0);_0x7246x16>2*_0x7246xa&&!_0x7246x19&&(_0x7246x18[0][0]=_0x7246x13[0],_0x7246x18[0][1]=_0x7246x14[0],_0x7246x18[1][0]=_0x7246x13[1],_0x7246x18[1][1]=_0x7246x14[1]);for(_0x7246x15=0;2>_0x7246x15;_0x7246x15++){if(0==_0x7246x2[_0x7246x15]&&(0==(_0x7246x18[_0x7246x15][0]&_0x7246x1b[_0x7246x15])&&(_0x7246x18[_0x7246x15][0]=_0x7246x18[_0x7246x15][1]),_0x7246x4[_0x7246x15]=_0x7246x18[_0x7246x15][0]&_0x7246x1b[_0x7246x15],_0x7246x4[_0x7246x15]|=(_0x7246x18[_0x7246x15][1]&_0x7246x1b[_0x7246x15])<<8,_0x7246x4[_0x7246x15]|=(_0x7246x18[1-_0x7246x15][_0x7246x15]&_0x7246x1b[_0x7246x15])<<16,_0x7246x4[_0x7246x15]|=(_0x7246x18[1-_0x7246x15][1-_0x7246x15]&_0x7246x1b[_0x7246x15])<<24,0==(_0x7246x4[_0x7246x15]&15)&&(_0x7246x4[_0x7246x15]<<=8),0==(_0x7246x4[_0x7246x15]&3840)&&(_0x7246x4[_0x7246x15]=_0x7246x4[_0x7246x15]&15|_0x7246x4[_0x7246x15]>>8),0==(_0x7246x4[_0x7246x15]&983040)&&(_0x7246x4[_0x7246x15]=_0x7246x4[_0x7246x15]&65535|(_0x7246x4[_0x7246x15]&251658240)>>8),_0x7246x2[_0x7246x15]=_0x7246x4[_0x7246x15]&15,_0x7246x1b[_0x7246x15]==mxConstants[_0xa4d4[436]]||_0x7246x1b[_0x7246x15]==mxConstants[_0xa4d4[435]]||_0x7246x1b[_0x7246x15]==mxConstants[_0xa4d4[438]]||_0x7246x1b[_0x7246x15]==mxConstants[_0xa4d4[437]])){_0x7246x2[_0x7246x15]=_0x7246x1b[_0x7246x15]}};_0x7246x15=_0x7246x2[0]==mxConstants[_0xa4d4[438]]?3:_0x7246x2[0];_0x7246x1b=_0x7246x2[1]==mxConstants[_0xa4d4[438]]?3:_0x7246x2[1];_0x7246x15-=_0x7246x12;_0x7246x1b-=_0x7246x12;1>_0x7246x15&&(_0x7246x15+=4);1>_0x7246x1b&&(_0x7246x1b+=4);_0x7246x1b=mxEdgeStyle[_0xa4d4[2238]][_0x7246x15-1][_0x7246x1b-1];mxEdgeStyle[_0xa4d4[2239]][0][0]=_0x7246x5[0][0];mxEdgeStyle[_0xa4d4[2239]][0][1]=_0x7246x5[0][1];switch(_0x7246x2[0]){case mxConstants[_0xa4d4[436]]:mxEdgeStyle[_0xa4d4[2239]][0][0]-=_0x7246xa;mxEdgeStyle[_0xa4d4[2239]][0][1]+=_0x7246x3[0][1]*_0x7246x5[0][3];break ;;case mxConstants[_0xa4d4[437]]:mxEdgeStyle[_0xa4d4[2239]][0][0]+=_0x7246x3[0][0]*_0x7246x5[0][2];mxEdgeStyle[_0xa4d4[2239]][0][1]+=_0x7246x5[0][3]+_0x7246xa;break ;;case mxConstants[_0xa4d4[438]]:mxEdgeStyle[_0xa4d4[2239]][0][0]+=_0x7246x5[0][2]+_0x7246xa;mxEdgeStyle[_0xa4d4[2239]][0][1]+=_0x7246x3[0][1]*_0x7246x5[0][3];break ;;case mxConstants[_0xa4d4[435]]:mxEdgeStyle[_0xa4d4[2239]][0][0]+=_0x7246x3[0][0]*_0x7246x5[0][2],mxEdgeStyle[_0xa4d4[2239]][0][1]-=_0x7246xa;;};_0x7246xa=0;_0x7246x13=_0x7246x4=0<(_0x7246x2[0]&(mxConstants[_0xa4d4[438]]|mxConstants[_0xa4d4[436]]))?0:1;for(_0x7246x15=_0x7246x14=0;_0x7246x15<_0x7246x1b[_0xa4d4[67]];_0x7246x15++){_0x7246x14=_0x7246x1b[_0x7246x15]&15;_0x7246x1a=_0x7246x14==mxConstants[_0xa4d4[438]]?3:_0x7246x14;_0x7246x1a+=_0x7246x12;4<_0x7246x1a&&(_0x7246x1a-=4);_0x7246x16=mxEdgeStyle[_0xa4d4[2240]][_0x7246x1a-1];_0x7246x14=0<_0x7246x1a%2?0:1;_0x7246x14!=_0x7246x4&&(_0x7246xa++,mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][0]=mxEdgeStyle[_0xa4d4[2239]][_0x7246xa-1][0],mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][1]=mxEdgeStyle[_0xa4d4[2239]][_0x7246xa-1][1]);var _0x7246x1c=0<(_0x7246x1b[_0x7246x15]&mxEdgeStyle[_0xa4d4[2241]]),_0x7246x19=0<(_0x7246x1b[_0x7246x15]&mxEdgeStyle[_0xa4d4[2242]]),_0x7246x17=(_0x7246x1b[_0x7246x15]&mxEdgeStyle[_0xa4d4[2243]])>>5,_0x7246x17=_0x7246x17<<_0x7246x12;15<_0x7246x17&&(_0x7246x17>>=4);_0x7246x18=0<(_0x7246x1b[_0x7246x15]&mxEdgeStyle[_0xa4d4[2244]]);(_0x7246x19||_0x7246x1c)&&9>_0x7246x17?(_0x7246x1a=0,_0x7246x19=_0x7246x19?0:1,_0x7246x1a=_0x7246x18&&0==_0x7246x14?_0x7246x5[_0x7246x19][0]+_0x7246x3[_0x7246x19][0]*_0x7246x5[_0x7246x19][2]:_0x7246x18?_0x7246x5[_0x7246x19][1]+_0x7246x3[_0x7246x19][1]*_0x7246x5[_0x7246x19][3]:mxEdgeStyle[_0xa4d4[2235]][_0x7246x19][_0x7246x17],0==_0x7246x14?(_0x7246x17=(_0x7246x1a-mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][0])*_0x7246x16[0],0<_0x7246x17&&(mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][0]+=_0x7246x16[0]*_0x7246x17)):(_0x7246x17=(_0x7246x1a-mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][1])*_0x7246x16[1],0<_0x7246x17&&(mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][1]+=_0x7246x16[1]*_0x7246x17))):_0x7246x18&&(mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][0]+=_0x7246x16[0]*Math[_0xa4d4[425]](mxEdgeStyle[_0xa4d4[2236]][_0x7246x1a]/2),mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][1]+=_0x7246x16[1]*Math[_0xa4d4[425]](mxEdgeStyle[_0xa4d4[2236]][_0x7246x1a]/2));0<_0x7246xa&&mxEdgeStyle[_0xa4d4[2239]][_0x7246xa][_0x7246x14]==mxEdgeStyle[_0xa4d4[2239]][_0x7246xa-1][_0x7246x14]?_0x7246xa--:_0x7246x4=_0x7246x14;};for(_0x7246x15=0;_0x7246x15<=_0x7246xa&& !(_0x7246x15==_0x7246xa&&((0<(_0x7246x2[1]&(mxConstants[_0xa4d4[438]]|mxConstants[_0xa4d4[436]]))?0:1)==_0x7246x13?0:1)!=(_0x7246xa+1)%2);_0x7246x15++){_0x7246x9[_0xa4d4[207]]( new mxPoint(mxEdgeStyle[_0xa4d4[2239]][_0x7246x15][0],mxEdgeStyle[_0xa4d4[2239]][_0x7246x15][1]))};};},getRoutePattern:function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=_0x7246x2[0]==mxConstants[_0xa4d4[438]]?3:_0x7246x2[0];_0x7246x2=_0x7246x2[1]==mxConstants[_0xa4d4[438]]?3:_0x7246x2[1];_0x7246x9-=_0x7246x3;_0x7246x2-=_0x7246x3;1>_0x7246x9&&(_0x7246x9+=4);1>_0x7246x2&&(_0x7246x2+=4);_0x7246x3=routePatterns[_0x7246x9-1][_0x7246x2-1];if(0==_0x7246x4||0==_0x7246x5){null!=inlineRoutePatterns[_0x7246x9-1][_0x7246x2-1]&&(_0x7246x3=inlineRoutePatterns[_0x7246x9-1][_0x7246x2-1])};return _0x7246x3;}},mxStyleRegistry={values:[],putValue:function(_0x7246x2,_0x7246x3){mxStyleRegistry[_0xa4d4[2245]][_0x7246x2]=_0x7246x3},getValue:function(_0x7246x2){return mxStyleRegistry[_0xa4d4[2245]][_0x7246x2]},getName:function(_0x7246x2){for(var _0x7246x3 in mxStyleRegistry[_0xa4d4[2245]]){if(mxStyleRegistry[_0xa4d4[2245]][_0x7246x3]==_0x7246x2){return _0x7246x3}};return null;}};mxStyleRegistry[_0xa4d4[2246]](mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry[_0xa4d4[2246]](mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation);mxStyleRegistry[_0xa4d4[2246]](mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry[_0xa4d4[2246]](mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);mxStyleRegistry[_0xa4d4[2246]](mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry[_0xa4d4[2246]](mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry[_0xa4d4[2246]](mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry[_0xa4d4[2246]](mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter);mxStyleRegistry[_0xa4d4[2246]](mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter);mxStyleRegistry[_0xa4d4[2246]](mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter);mxStyleRegistry[_0xa4d4[2246]](mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter);function mxGraphView(_0x7246x2){this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[513]]= new mxPoint;this[_0xa4d4[2247]]= new mxRectangle;this[_0xa4d4[1214]]= new mxDictionary;}mxGraphView[_0xa4d4[202]]= new mxEventSource;mxGraphView[_0xa4d4[202]][_0xa4d4[196]]=mxGraphView;mxGraphView[_0xa4d4[202]][_0xa4d4[2248]]= new mxPoint;mxGraphView[_0xa4d4[202]][_0xa4d4[2091]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[819]:_0xa4d4[110];mxGraphView[_0xa4d4[202]][_0xa4d4[2249]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[2250]:_0xa4d4[110];mxGraphView[_0xa4d4[202]][_0xa4d4[2251]]= !1;mxGraphView[_0xa4d4[202]][_0xa4d4[2252]]= !0;mxGraphView[_0xa4d4[202]][_0xa4d4[2253]]= !0;mxGraphView[_0xa4d4[202]][_0xa4d4[2254]]= !0;mxGraphView[_0xa4d4[202]][_0xa4d4[1179]]=null;mxGraphView[_0xa4d4[202]][_0xa4d4[1741]]=null;mxGraphView[_0xa4d4[202]][_0xa4d4[2247]]=null;mxGraphView[_0xa4d4[202]][_0xa4d4[255]]=1;mxGraphView[_0xa4d4[202]][_0xa4d4[513]]=null;mxGraphView[_0xa4d4[202]][_0xa4d4[2255]]= !1;mxGraphView[_0xa4d4[202]][_0xa4d4[517]]=function(){return this[_0xa4d4[2247]]};mxGraphView[_0xa4d4[202]][_0xa4d4[2256]]=function(_0x7246x2){this[_0xa4d4[2247]]=_0x7246x2};mxGraphView[_0xa4d4[202]][_0xa4d4[1799]]=function(_0x7246x2){var _0x7246x3=null;if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){for(var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){if(_0x7246x4[_0xa4d4[1193]](_0x7246x2[_0x7246x5])||_0x7246x4[_0xa4d4[250]](_0x7246x2[_0x7246x5])){var _0x7246x9=this[_0xa4d4[248]](_0x7246x2[_0x7246x5]);null!=_0x7246x9&&(null==_0x7246x3?_0x7246x3= new mxRectangle(_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]],_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]]):_0x7246x3[_0xa4d4[99]](_0x7246x9));}}};return _0x7246x3;};mxGraphView[_0xa4d4[202]][_0xa4d4[2257]]=function(_0x7246x2){if(this[_0xa4d4[1741]]!=_0x7246x2){var _0x7246x3= new mxCurrentRootChange(this,_0x7246x2);_0x7246x3[_0xa4d4[350]]();var _0x7246x4= new mxUndoableEdit(this,!1);_0x7246x4[_0xa4d4[99]](_0x7246x3);this[_0xa4d4[746]]( new mxEventObject(mxEvent.UNDO,_0xa4d4[1061],_0x7246x4));this[_0xa4d4[1179]][_0xa4d4[2258]]();};return _0x7246x2;};mxGraphView[_0xa4d4[202]][_0xa4d4[829]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[255]],_0x7246x9= new mxPoint(this[_0xa4d4[513]][_0xa4d4[235]],this[_0xa4d4[513]][_0xa4d4[236]]);if(this[_0xa4d4[255]]!=_0x7246x2||this[_0xa4d4[513]][_0xa4d4[235]]!=_0x7246x3||this[_0xa4d4[513]][_0xa4d4[236]]!=_0x7246x4){this[_0xa4d4[255]]=_0x7246x2,this[_0xa4d4[513]][_0xa4d4[235]]=_0x7246x3,this[_0xa4d4[513]][_0xa4d4[236]]=_0x7246x4,this[_0xa4d4[503]]()&&(this[_0xa4d4[2259]](),this[_0xa4d4[1179]][_0xa4d4[2258]]())};this[_0xa4d4[746]]( new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,_0xa4d4[255],_0x7246x2,_0xa4d4[2260],_0x7246x5,_0xa4d4[513],this[_0xa4d4[513]],_0xa4d4[2261],_0x7246x9));};mxGraphView[_0xa4d4[202]][_0xa4d4[518]]=function(){return this[_0xa4d4[255]]};mxGraphView[_0xa4d4[202]][_0xa4d4[2262]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[255]];this[_0xa4d4[255]]!=_0x7246x2&&(this[_0xa4d4[255]]=_0x7246x2,this[_0xa4d4[503]]()&&(this[_0xa4d4[2259]](),this[_0xa4d4[1179]][_0xa4d4[2258]]()));this[_0xa4d4[746]]( new mxEventObject(mxEvent.SCALE,_0xa4d4[255],_0x7246x2,_0xa4d4[2260],_0x7246x3));};mxGraphView[_0xa4d4[202]][_0xa4d4[512]]=function(){return this[_0xa4d4[513]]};mxGraphView[_0xa4d4[202]][_0xa4d4[1147]]=function(_0x7246x2,_0x7246x3){var _0x7246x4= new mxPoint(this[_0xa4d4[513]][_0xa4d4[235]],this[_0xa4d4[513]][_0xa4d4[236]]);if(this[_0xa4d4[513]][_0xa4d4[235]]!=_0x7246x2||this[_0xa4d4[513]][_0xa4d4[236]]!=_0x7246x3){this[_0xa4d4[513]][_0xa4d4[235]]=_0x7246x2,this[_0xa4d4[513]][_0xa4d4[236]]=_0x7246x3,this[_0xa4d4[503]]()&&(this[_0xa4d4[2259]](),this[_0xa4d4[1179]][_0xa4d4[2258]]())};this[_0xa4d4[746]]( new mxEventObject(mxEvent.TRANSLATE,_0xa4d4[513],this[_0xa4d4[513]],_0xa4d4[2261],_0x7246x4));};mxGraphView[_0xa4d4[202]][_0xa4d4[802]]=function(){null!=this[_0xa4d4[1741]]&&this[_0xa4d4[200]]();this[_0xa4d4[2259]]();};mxGraphView[_0xa4d4[202]][_0xa4d4[2259]]=function(){this[_0xa4d4[2263]]();this[_0xa4d4[2264]]();};mxGraphView[_0xa4d4[202]][_0xa4d4[200]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]]();_0x7246x2=_0x7246x2||_0x7246x5[_0xa4d4[501]]();_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;this[_0xa4d4[2265]](_0x7246x2);if(_0x7246x4&&(_0x7246x3||_0x7246x2!=this[_0xa4d4[1741]])){_0x7246x4=_0x7246x5[_0xa4d4[262]](_0x7246x2);for(var _0x7246x9=0;_0x7246x9<_0x7246x4;_0x7246x9++){this[_0xa4d4[200]](_0x7246x5[_0xa4d4[263]](_0x7246x2,_0x7246x9),_0x7246x3)};}else {this[_0xa4d4[2263]](_0x7246x2)};};mxGraphView[_0xa4d4[202]][_0xa4d4[2263]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[502]]();_0x7246x2=_0x7246x2||_0x7246x9[_0xa4d4[501]]();_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;_0x7246x5=null!=_0x7246x5?_0x7246x5:!1;var _0x7246xa=this[_0xa4d4[248]](_0x7246x2);null!=_0x7246xa&&(_0x7246xa[_0xa4d4[2080]]= !0,_0x7246x5&&(_0x7246xa[_0xa4d4[2082]]= !0));if(_0x7246x3){for(var _0x7246x12=_0x7246x9[_0xa4d4[262]](_0x7246x2),_0x7246xa=0;_0x7246xa<_0x7246x12;_0x7246xa++){var _0x7246x13=_0x7246x9[_0xa4d4[263]](_0x7246x2,_0x7246xa);this[_0xa4d4[2263]](_0x7246x13,_0x7246x3,_0x7246x4,_0x7246x5);}};if(_0x7246x4){_0x7246x5=_0x7246x9[_0xa4d4[1707]](_0x7246x2);for(_0x7246xa=0;_0x7246xa<_0x7246x5;_0x7246xa++){this[_0xa4d4[2263]](_0x7246x9[_0xa4d4[1708]](_0x7246x2,_0x7246xa),_0x7246x3,_0x7246x4)};};};mxGraphView[_0xa4d4[202]][_0xa4d4[2264]]=function(_0x7246x2){var _0x7246x3=mxLog[_0xa4d4[2109]](_0xa4d4[2266]);window[_0xa4d4[879]]=mxResources[_0xa4d4[203]](this[_0xa4d4[2249]])||this[_0xa4d4[2249]];var _0x7246x4=null;if(this[_0xa4d4[2253]]&&null!=this[_0xa4d4[510]]&&null==this[_0xa4d4[1653]]&&(8==document[_0xa4d4[5]]||mxClient[_0xa4d4[496]])){_0x7246x4=this[_0xa4d4[510]][_0xa4d4[124]][_0xa4d4[495]];this[_0xa4d4[510]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130];var _0x7246x5=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x5[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x5[_0xa4d4[124]][_0xa4d4[493]]=_0xa4d4[494];_0x7246x5[_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];_0x7246x5[_0xa4d4[124]][_0xa4d4[495]]=mxClient[_0xa4d4[496]]?_0xa4d4[497]:_0xa4d4[498];_0x7246x5[_0xa4d4[124]][_0xa4d4[499]]=_0xa4d4[500];document[_0xa4d4[112]][_0xa4d4[62]](_0x7246x5);this[_0xa4d4[1653]]=_0x7246x5;};_0x7246x2=_0x7246x2||(null!=this[_0xa4d4[1741]]?this[_0xa4d4[1741]]:this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[501]]());this[_0xa4d4[2267]](null,_0x7246x2);_0x7246x2=this[_0xa4d4[2268]](null,_0x7246x2);null==_0x7246x2&&(_0x7246x2= new mxRectangle);this[_0xa4d4[2256]](_0x7246x2);this[_0xa4d4[2269]]();null!=_0x7246x4&&(this[_0xa4d4[510]][_0xa4d4[124]][_0xa4d4[495]]=_0x7246x4,document[_0xa4d4[112]][_0xa4d4[266]](this[_0xa4d4[1653]]),this[_0xa4d4[1653]]=null);window[_0xa4d4[879]]=mxResources[_0xa4d4[203]](this[_0xa4d4[2091]])||this[_0xa4d4[2091]];mxLog[_0xa4d4[2110]](_0xa4d4[2266],_0x7246x3);};mxGraphView[_0xa4d4[202]][_0xa4d4[2270]]=function(_0x7246x2){return  new mxRectangleShape(_0x7246x2,_0xa4d4[1391],_0xa4d4[586])};mxGraphView[_0xa4d4[202]][_0xa4d4[2269]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[2271]]();if(null!=_0x7246x2){if(null==this[_0xa4d4[1617]]||this[_0xa4d4[1617]][_0xa4d4[618]]!=_0x7246x2[_0xa4d4[390]]){null!=this[_0xa4d4[1617]]&&this[_0xa4d4[1617]][_0xa4d4[515]]();var _0x7246x3= new mxRectangle(0,0,1,1);this[_0xa4d4[1617]]= new mxImageShape(_0x7246x3,_0x7246x2[_0xa4d4[390]]);this[_0xa4d4[1617]][_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]];this[_0xa4d4[1617]][_0xa4d4[176]](this[_0xa4d4[2053]]);this[_0xa4d4[1617]][_0xa4d4[258]]();};this[_0xa4d4[2272]](this[_0xa4d4[1617]],_0x7246x2);}else {null!=this[_0xa4d4[1617]]&&(this[_0xa4d4[1617]][_0xa4d4[515]](),this[_0xa4d4[1617]]=null)};this[_0xa4d4[1179]][_0xa4d4[2273]]?(_0x7246x3=this[_0xa4d4[2274]](),null==this[_0xa4d4[2275]]?(this[_0xa4d4[2275]]=this[_0xa4d4[2270]](_0x7246x3),this[_0xa4d4[2275]][_0xa4d4[255]]=this[_0xa4d4[255]],this[_0xa4d4[2275]][_0xa4d4[1596]]= !0,this[_0xa4d4[2275]][_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]],this[_0xa4d4[2275]][_0xa4d4[176]](this[_0xa4d4[2053]]),this[_0xa4d4[2275]][_0xa4d4[258]](),mxEvent[_0xa4d4[169]](this[_0xa4d4[2275]][_0xa4d4[252]],_0xa4d4[760],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[761]](_0x7246x2)})),mxEvent[_0xa4d4[759]](this[_0xa4d4[2275]][_0xa4d4[252]],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x2))}),mxUtils[_0xa4d4[885]](this,function(_0x7246x2){null!=this[_0xa4d4[1179]][_0xa4d4[2276]]&&this[_0xa4d4[1179]][_0xa4d4[2276]][_0xa4d4[2277]]()&&this[_0xa4d4[1179]][_0xa4d4[2276]][_0xa4d4[801]]();this[_0xa4d4[1179]][_0xa4d4[1009]]&&!mxEvent[_0xa4d4[721]](_0x7246x2)&&this[_0xa4d4[1179]][_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x2));}),mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7246x2))}))):(this[_0xa4d4[2275]][_0xa4d4[255]]=this[_0xa4d4[255]],this[_0xa4d4[2275]][_0xa4d4[1562]]=_0x7246x3,this[_0xa4d4[2275]][_0xa4d4[258]]())):null!=this[_0xa4d4[2275]]&&(this[_0xa4d4[2275]][_0xa4d4[515]](),this[_0xa4d4[2275]]=null);};mxGraphView[_0xa4d4[202]][_0xa4d4[2274]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[2013]],_0x7246x3=this[_0xa4d4[255]]*this[_0xa4d4[1179]][_0xa4d4[2012]];return  new mxRectangle(this[_0xa4d4[255]]*this[_0xa4d4[513]][_0xa4d4[235]],this[_0xa4d4[255]]*this[_0xa4d4[513]][_0xa4d4[236]],_0x7246x2[_0xa4d4[117]]*_0x7246x3,_0x7246x2[_0xa4d4[119]]*_0x7246x3);};mxGraphView[_0xa4d4[202]][_0xa4d4[2272]]=function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[255]]=this[_0xa4d4[255]];_0x7246x2[_0xa4d4[1562]][_0xa4d4[235]]=this[_0xa4d4[255]]*this[_0xa4d4[513]][_0xa4d4[235]];_0x7246x2[_0xa4d4[1562]][_0xa4d4[236]]=this[_0xa4d4[255]]*this[_0xa4d4[513]][_0xa4d4[236]];_0x7246x2[_0xa4d4[1562]][_0xa4d4[117]]=this[_0xa4d4[255]]*_0x7246x3[_0xa4d4[117]];_0x7246x2[_0xa4d4[1562]][_0xa4d4[119]]=this[_0xa4d4[255]]*_0x7246x3[_0xa4d4[119]];_0x7246x2[_0xa4d4[258]]();};mxGraphView[_0xa4d4[202]][_0xa4d4[2267]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=this[_0xa4d4[248]](_0x7246x3,!0);if(null!=_0x7246x5&&_0x7246x5[_0xa4d4[2080]]){if(this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x3)){if(_0x7246x3!=this[_0xa4d4[1741]]&&null!=_0x7246x2){_0x7246x5[_0xa4d4[2079]][_0xa4d4[235]]=0;_0x7246x5[_0xa4d4[2079]][_0xa4d4[236]]=0;_0x7246x5[_0xa4d4[2078]][_0xa4d4[235]]=_0x7246x2[_0xa4d4[2078]][_0xa4d4[235]];_0x7246x5[_0xa4d4[2078]][_0xa4d4[236]]=_0x7246x2[_0xa4d4[2078]][_0xa4d4[236]];var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x3);if(null!=_0x7246x9){if(!_0x7246x4[_0xa4d4[250]](_0x7246x3)){var _0x7246xa=_0x7246x9[_0xa4d4[1368]]||this[_0xa4d4[2248]];_0x7246x9[_0xa4d4[1500]]?(_0x7246x5[_0xa4d4[2078]][_0xa4d4[235]]+=_0x7246x9[_0xa4d4[235]]*_0x7246x2[_0xa4d4[117]]/this[_0xa4d4[255]]+_0x7246xa[_0xa4d4[235]],_0x7246x5[_0xa4d4[2078]][_0xa4d4[236]]+=_0x7246x9[_0xa4d4[236]]*_0x7246x2[_0xa4d4[119]]/this[_0xa4d4[255]]+_0x7246xa[_0xa4d4[236]]):(_0x7246x5[_0xa4d4[2079]][_0xa4d4[235]]=this[_0xa4d4[255]]*_0x7246xa[_0xa4d4[235]],_0x7246x5[_0xa4d4[2079]][_0xa4d4[236]]=this[_0xa4d4[255]]*_0x7246xa[_0xa4d4[236]],_0x7246x5[_0xa4d4[2078]][_0xa4d4[235]]+=_0x7246x9[_0xa4d4[235]],_0x7246x5[_0xa4d4[2078]][_0xa4d4[236]]+=_0x7246x9[_0xa4d4[236]]);};_0x7246x5[_0xa4d4[235]]=this[_0xa4d4[255]]*(this[_0xa4d4[513]][_0xa4d4[235]]+_0x7246x5[_0xa4d4[2078]][_0xa4d4[235]]);_0x7246x5[_0xa4d4[236]]=this[_0xa4d4[255]]*(this[_0xa4d4[513]][_0xa4d4[236]]+_0x7246x5[_0xa4d4[2078]][_0xa4d4[236]]);_0x7246x5[_0xa4d4[117]]=this[_0xa4d4[255]]*_0x7246x9[_0xa4d4[117]];_0x7246x5[_0xa4d4[119]]=this[_0xa4d4[255]]*_0x7246x9[_0xa4d4[119]];if(_0x7246x4[_0xa4d4[1193]](_0x7246x3)){if(_0x7246x9[_0xa4d4[1500]]&&(_0x7246xa=mxUtils[_0xa4d4[431]](_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]),0!=_0x7246xa)){var _0x7246x9=Math[_0xa4d4[426]](_0x7246xa),_0x7246xa=Math[_0xa4d4[427]](_0x7246xa),_0x7246x12= new mxPoint(_0x7246x5[_0xa4d4[241]](),_0x7246x5[_0xa4d4[242]]()),_0x7246x13= new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]()),_0x7246x9=mxUtils[_0xa4d4[432]](_0x7246x12,_0x7246x9,_0x7246xa,_0x7246x13);_0x7246x5[_0xa4d4[235]]=_0x7246x9[_0xa4d4[235]]-_0x7246x5[_0xa4d4[117]]/2;_0x7246x5[_0xa4d4[236]]=_0x7246x9[_0xa4d4[236]]-_0x7246x5[_0xa4d4[119]]/2;};this[_0xa4d4[2279]](_0x7246x5);};};}}else {this[_0xa4d4[2265]](_0x7246x3)};_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[2280]](_0x7246x3);null!=_0x7246xa&&(_0x7246x5[_0xa4d4[2078]][_0xa4d4[235]]+=_0x7246xa[_0xa4d4[235]],_0x7246x5[_0xa4d4[2078]][_0xa4d4[236]]+=_0x7246xa[_0xa4d4[236]]);};if(null!=_0x7246x5&&(!this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x3)||_0x7246x3==this[_0xa4d4[1741]])){_0x7246x9=_0x7246x4[_0xa4d4[262]](_0x7246x3);for(_0x7246xa=0;_0x7246xa<_0x7246x9;_0x7246xa++){_0x7246x12=_0x7246x4[_0xa4d4[263]](_0x7246x3,_0x7246xa),this[_0xa4d4[2267]](_0x7246x5,_0x7246x12)};};};mxGraphView[_0xa4d4[202]][_0xa4d4[2279]]=function(_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);_0x7246x3==mxConstants[_0xa4d4[2132]]?_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]]-=_0x7246x2[_0xa4d4[117]]:_0x7246x3==mxConstants[_0xa4d4[480]]&&(_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]]+=_0x7246x2[_0xa4d4[117]]);_0x7246x3=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);_0x7246x3==mxConstants[_0xa4d4[1687]]?_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]]-=_0x7246x2[_0xa4d4[119]]:_0x7246x3==mxConstants[_0xa4d4[482]]&&(_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]]+=_0x7246x2[_0xa4d4[119]]);};mxGraphView[_0xa4d4[202]][_0xa4d4[2268]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=this[_0xa4d4[248]](_0x7246x3),_0x7246x9=null;if(null!=_0x7246x5){if(_0x7246x5[_0xa4d4[2080]]){var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x3);if(null!=_0x7246xa&&_0x7246x4[_0xa4d4[250]](_0x7246x3)){var _0x7246x12=this[_0xa4d4[248]](this[_0xa4d4[1710]](_0x7246x3,!0));_0x7246x5[_0xa4d4[2090]](_0x7246x12,!0);if(null!=_0x7246x12&&_0x7246x4[_0xa4d4[250]](_0x7246x12[_0xa4d4[246]])&&!_0x7246x4[_0xa4d4[1720]](_0x7246x12[_0xa4d4[246]],_0x7246x3)){var _0x7246x13=this[_0xa4d4[248]](_0x7246x4[_0xa4d4[1197]](_0x7246x12[_0xa4d4[246]]));this[_0xa4d4[2268]](_0x7246x13,_0x7246x12[_0xa4d4[246]]);};var _0x7246x14=this[_0xa4d4[248]](this[_0xa4d4[1710]](_0x7246x3,!1));_0x7246x5[_0xa4d4[2090]](_0x7246x14,!1);null!=_0x7246x14&&(_0x7246x4[_0xa4d4[250]](_0x7246x14[_0xa4d4[246]])&&!_0x7246x4[_0xa4d4[1720]](_0x7246x14[_0xa4d4[246]],_0x7246x3))&&(_0x7246x13=this[_0xa4d4[248]](_0x7246x4[_0xa4d4[1197]](_0x7246x14[_0xa4d4[246]])),this[_0xa4d4[2268]](_0x7246x13,_0x7246x14[_0xa4d4[246]]));this[_0xa4d4[2281]](_0x7246x5,_0x7246x12,_0x7246x14);this[_0xa4d4[2282]](_0x7246x5,_0x7246xa[_0xa4d4[1525]],_0x7246x12,_0x7246x14);this[_0xa4d4[2283]](_0x7246x5,_0x7246x12,_0x7246x14);this[_0xa4d4[2284]](_0x7246x5);this[_0xa4d4[2285]](_0x7246x5);}else {null!=_0x7246xa&&(_0x7246xa[_0xa4d4[1500]]&&null!=_0x7246x2&&_0x7246x4[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]))&&(_0x7246xa=this[_0xa4d4[245]](_0x7246x2,_0x7246xa),null!=_0x7246xa&&(_0x7246x5[_0xa4d4[235]]=_0x7246xa[_0xa4d4[235]],_0x7246x5[_0xa4d4[236]]=_0x7246xa[_0xa4d4[236]],_0x7246xa[_0xa4d4[235]]=_0x7246xa[_0xa4d4[235]]/this[_0xa4d4[255]]-this[_0xa4d4[513]][_0xa4d4[235]],_0x7246xa[_0xa4d4[236]]=_0x7246xa[_0xa4d4[236]]/this[_0xa4d4[255]]-this[_0xa4d4[513]][_0xa4d4[236]],_0x7246x5[_0xa4d4[2078]]=_0x7246xa,this[_0xa4d4[2286]](_0x7246x2,_0x7246x5)))};_0x7246x5[_0xa4d4[2080]]= !1;_0x7246x3!=this[_0xa4d4[1741]]&&this[_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[258]](_0x7246x5,!1,this[_0xa4d4[2287]]());};if(_0x7246x4[_0xa4d4[250]](_0x7246x3)||_0x7246x4[_0xa4d4[1193]](_0x7246x3)){null!=_0x7246x5[_0xa4d4[253]]&&null!=_0x7246x5[_0xa4d4[253]][_0xa4d4[1563]]&&(_0x7246x9=_0x7246x5[_0xa4d4[253]][_0xa4d4[1563]][_0xa4d4[238]]()),null!=_0x7246x5[_0xa4d4[963]]&&!this[_0xa4d4[1179]][_0xa4d4[2130]](_0x7246x5[_0xa4d4[246]])&&null!=_0x7246x5[_0xa4d4[963]][_0xa4d4[1563]]&&(null!=_0x7246x9?_0x7246x9[_0xa4d4[99]](_0x7246x5[_0xa4d4[963]][_0xa4d4[1563]]):_0x7246x9=_0x7246x5[_0xa4d4[963]][_0xa4d4[1563]][_0xa4d4[238]]())};};if(null!=_0x7246x5&&(!this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x3)||_0x7246x3==this[_0xa4d4[1741]])){_0x7246xa=_0x7246x4[_0xa4d4[262]](_0x7246x3);for(_0x7246x12=0;_0x7246x12<_0x7246xa;_0x7246x12++){_0x7246x13=_0x7246x4[_0xa4d4[263]](_0x7246x3,_0x7246x12),_0x7246x13=this[_0xa4d4[2268]](_0x7246x5,_0x7246x13),null!=_0x7246x13&&(null==_0x7246x9?_0x7246x9=_0x7246x13:_0x7246x9[_0xa4d4[99]](_0x7246x13))};};return _0x7246x9;};mxGraphView[_0xa4d4[202]][_0xa4d4[2286]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x3[_0xa4d4[246]];if(!this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x4)||_0x7246x4==this[_0xa4d4[1741]]){for(var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x9=_0x7246x5[_0xa4d4[262]](_0x7246x4),_0x7246xa=0;_0x7246xa<_0x7246x9;_0x7246xa++){this[_0xa4d4[2267]](_0x7246x3,_0x7246x5[_0xa4d4[263]](_0x7246x4,_0x7246xa))}};};mxGraphView[_0xa4d4[202]][_0xa4d4[2281]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[2289]](_0x7246x2,_0x7246x3,!0,this[_0xa4d4[1179]][_0xa4d4[2288]](_0x7246x2,_0x7246x3,!0));this[_0xa4d4[2289]](_0x7246x2,_0x7246x4,!1,this[_0xa4d4[1179]][_0xa4d4[2288]](_0x7246x2,_0x7246x4,!1));};mxGraphView[_0xa4d4[202]][_0xa4d4[2289]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=null;null!=_0x7246x5&&(_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[2290]](_0x7246x3,_0x7246x5));if(null==_0x7246x9&&null==_0x7246x3){_0x7246x3=this[_0xa4d4[255]];_0x7246x5=this[_0xa4d4[513]];var _0x7246xa=_0x7246x2[_0xa4d4[2078]],_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x2[_0xa4d4[246]])[_0xa4d4[2006]](_0x7246x4);null!=_0x7246x9&&(_0x7246x9= new mxPoint(_0x7246x3*(_0x7246x5[_0xa4d4[235]]+_0x7246x9[_0xa4d4[235]]+_0x7246xa[_0xa4d4[235]]),_0x7246x3*(_0x7246x5[_0xa4d4[236]]+_0x7246x9[_0xa4d4[236]]+_0x7246xa[_0xa4d4[236]])));};_0x7246x2[_0xa4d4[2088]](_0x7246x9,_0x7246x4);};mxGraphView[_0xa4d4[202]][_0xa4d4[2282]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x2){var _0x7246x9=[];_0x7246x9[_0xa4d4[207]](_0x7246x2[_0xa4d4[439]][0]);var _0x7246xa=this[_0xa4d4[2291]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5);if(null!=_0x7246xa){_0x7246x4=this[_0xa4d4[2292]](_0x7246x2,_0x7246x4,!0),_0x7246x5=this[_0xa4d4[2292]](_0x7246x2,_0x7246x5,!1),_0x7246xa(_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x3,_0x7246x9)}else {if(null!=_0x7246x3){for(_0x7246xa=0;_0x7246xa<_0x7246x3[_0xa4d4[67]];_0x7246xa++){null!=_0x7246x3[_0x7246xa]&&(_0x7246x5=mxUtils[_0xa4d4[238]](_0x7246x3[_0x7246xa]),_0x7246x9[_0xa4d4[207]](this[_0xa4d4[2229]](_0x7246x2,_0x7246x5)))}}};_0x7246x3=_0x7246x2[_0xa4d4[439]];_0x7246x9[_0xa4d4[207]](_0x7246x3[_0x7246x3[_0xa4d4[67]]-1]);_0x7246x2[_0xa4d4[439]]=_0x7246x9;}};mxGraphView[_0xa4d4[202]][_0xa4d4[2229]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[2078]];return  new mxPoint(this[_0xa4d4[255]]*(_0x7246x3[_0xa4d4[235]]+this[_0xa4d4[513]][_0xa4d4[235]]+_0x7246x4[_0xa4d4[235]]),this[_0xa4d4[255]]*(_0x7246x3[_0xa4d4[236]]+this[_0xa4d4[513]][_0xa4d4[236]]+_0x7246x4[_0xa4d4[236]]));};mxGraphView[_0xa4d4[202]][_0xa4d4[2291]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x2=null!=_0x7246x4&&_0x7246x4==_0x7246x5?mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_LOOP,this[_0xa4d4[1179]][_0xa4d4[2293]]):!mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_NOEDGESTYLE,!1)?_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2294]]]:null;_0xa4d4[1516]== typeof _0x7246x2&&(_0x7246x3=mxStyleRegistry[_0xa4d4[433]](_0x7246x2),null==_0x7246x3&&this[_0xa4d4[2295]]()&&(_0x7246x3=mxUtils[_0xa4d4[1545]](_0x7246x2)),_0x7246x2=_0x7246x3);return _0xa4d4[279]== typeof _0x7246x2?_0x7246x2:null;};mxGraphView[_0xa4d4[202]][_0xa4d4[2283]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x2[_0xa4d4[439]],_0x7246x9=_0x7246x5[0];null==_0x7246x5[_0x7246x5[_0xa4d4[67]]-1]&&null!=_0x7246x4&&this[_0xa4d4[2296]](_0x7246x2,_0x7246x4,_0x7246x3,!1);null==_0x7246x9&&null!=_0x7246x3&&this[_0xa4d4[2296]](_0x7246x2,_0x7246x3,_0x7246x4,!0);};mxGraphView[_0xa4d4[202]][_0xa4d4[2296]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3=this[_0xa4d4[2292]](_0x7246x2,_0x7246x3,_0x7246x5);var _0x7246x9=this[_0xa4d4[2297]](_0x7246x2,_0x7246x4,_0x7246x5),_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[2298]](_0x7246x2);_0x7246x4=mxUtils[_0xa4d4[431]](Number(_0x7246x3[_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]));var _0x7246x12= new mxPoint(_0x7246x3[_0xa4d4[241]](),_0x7246x3[_0xa4d4[242]]());if(0!=_0x7246x4){var _0x7246x13=Math[_0xa4d4[426]](-_0x7246x4),_0x7246x14=Math[_0xa4d4[427]](-_0x7246x4),_0x7246x9=mxUtils[_0xa4d4[432]](_0x7246x9,_0x7246x13,_0x7246x14,_0x7246x12)};_0x7246x13=parseFloat(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2299]]]||0);_0x7246x13+=parseFloat(_0x7246x2[_0xa4d4[124]][_0x7246x5?mxConstants[_0xa4d4[2300]]:mxConstants[_0xa4d4[2301]]]||0);_0x7246x3=this[_0xa4d4[2302]](_0x7246x3,_0x7246x9,0==_0x7246x4&&_0x7246xa,_0x7246x13);0!=_0x7246x4&&(_0x7246x13=Math[_0xa4d4[426]](_0x7246x4),_0x7246x14=Math[_0xa4d4[427]](_0x7246x4),_0x7246x3=mxUtils[_0xa4d4[432]](_0x7246x3,_0x7246x13,_0x7246x14,_0x7246x12));_0x7246x2[_0xa4d4[2088]](_0x7246x3,_0x7246x5);};mxGraphView[_0xa4d4[202]][_0xa4d4[2292]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],_0x7246x4?mxConstants[_0xa4d4[2303]]:mxConstants[_0xa4d4[2304]]);null!=_0x7246x2&&(_0x7246x2=this[_0xa4d4[248]](this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[736]](_0x7246x2)),null!=_0x7246x2&&(_0x7246x3=_0x7246x2));return _0x7246x3;};mxGraphView[_0xa4d4[202]][_0xa4d4[2302]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=null;if(null!=_0x7246x2){var _0x7246xa=this[_0xa4d4[2305]](_0x7246x2);if(null!=_0x7246xa&&null!=_0x7246x3&&(_0x7246x5=this[_0xa4d4[2087]](_0x7246x2,_0x7246x5),0<_0x7246x5[_0xa4d4[117]]||0<_0x7246x5[_0xa4d4[119]])){_0x7246x9=_0x7246xa(_0x7246x5,_0x7246x2,_0x7246x3,_0x7246x4)};null==_0x7246x9&&(_0x7246x9=this[_0xa4d4[245]](_0x7246x2));};return _0x7246x9;};mxGraphView[_0xa4d4[202]][_0xa4d4[2230]]=function(_0x7246x2){var _0x7246x3=null!=_0x7246x2[_0xa4d4[124]]?parseFloat(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2306]]])||0:0;return _0x7246x2[_0xa4d4[241]]()+_0x7246x3*_0x7246x2[_0xa4d4[117]];};mxGraphView[_0xa4d4[202]][_0xa4d4[2228]]=function(_0x7246x2){var _0x7246x3=null!=_0x7246x2[_0xa4d4[124]]?parseFloat(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2307]]])||0:0;return _0x7246x2[_0xa4d4[242]]()+_0x7246x3*_0x7246x2[_0xa4d4[119]];};mxGraphView[_0xa4d4[202]][_0xa4d4[2087]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:0;null!=_0x7246x2&&(_0x7246x3+=parseFloat(_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2299]]]||0));return _0x7246x2[_0xa4d4[2087]](_0x7246x3*this[_0xa4d4[255]]);};mxGraphView[_0xa4d4[202]][_0xa4d4[2305]]=function(_0x7246x2){_0x7246x2=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2061]]];if(_0xa4d4[1516]== typeof _0x7246x2){var _0x7246x3=mxStyleRegistry[_0xa4d4[433]](_0x7246x2);null==_0x7246x3&&this[_0xa4d4[2295]]()&&(_0x7246x3=mxUtils[_0xa4d4[1545]](_0x7246x2));_0x7246x2=_0x7246x3;};return _0xa4d4[279]== typeof _0x7246x2?_0x7246x2:null;};mxGraphView[_0xa4d4[202]][_0xa4d4[2297]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=_0x7246x2[_0xa4d4[439]];var _0x7246x5=null;if(null!=_0x7246x2&&(_0x7246x4||2<_0x7246x2[_0xa4d4[67]]||null==_0x7246x3)){_0x7246x5=_0x7246x2[_0xa4d4[67]],_0x7246x5=_0x7246x2[_0x7246x4?Math[_0xa4d4[243]](1,_0x7246x5-1):Math[_0xa4d4[160]](0,_0x7246x5-2)]};null==_0x7246x5&&null!=_0x7246x3&&(_0x7246x5= new mxPoint(_0x7246x3[_0xa4d4[241]](),_0x7246x3[_0xa4d4[242]]()));return _0x7246x5;};mxGraphView[_0xa4d4[202]][_0xa4d4[1710]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=_0x7246x4[_0xa4d4[1709]](_0x7246x2,_0x7246x3),_0x7246x9=_0x7246x5;null!=_0x7246x5&&_0x7246x5!=this[_0xa4d4[1741]];){if(!this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x9)||this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x5)){_0x7246x9=_0x7246x5};_0x7246x5=_0x7246x4[_0xa4d4[1197]](_0x7246x5);};_0x7246x4[_0xa4d4[1197]](_0x7246x9)==_0x7246x4[_0xa4d4[501]]()&&(_0x7246x9=null);return _0x7246x9;};mxGraphView[_0xa4d4[202]][_0xa4d4[2284]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[439]];_0x7246x2[_0xa4d4[67]]=0;if(null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]){var _0x7246x4=_0x7246x3[0],_0x7246x5=_0x7246x3[_0x7246x3[_0xa4d4[67]]-1];if(null==_0x7246x4||null==_0x7246x5){_0x7246x2[_0xa4d4[246]]!=this[_0xa4d4[1741]]&&this[_0xa4d4[200]](_0x7246x2[_0xa4d4[246]],!0)}else {if(_0x7246x4[_0xa4d4[235]]!=_0x7246x5[_0xa4d4[235]]||_0x7246x4[_0xa4d4[236]]!=_0x7246x5[_0xa4d4[236]]){var _0x7246x9=_0x7246x5[_0xa4d4[235]]-_0x7246x4[_0xa4d4[235]],_0x7246xa=_0x7246x5[_0xa4d4[236]]-_0x7246x4[_0xa4d4[236]];_0x7246x2[_0xa4d4[2085]]=Math[_0xa4d4[428]](_0x7246x9*_0x7246x9+_0x7246xa*_0x7246xa);}else {_0x7246x2[_0xa4d4[2085]]=0};var _0x7246x5=0,_0x7246x12=[],_0x7246xa=_0x7246x4;if(null!=_0x7246xa){for(var _0x7246x4=_0x7246xa[_0xa4d4[235]],_0x7246x13=_0x7246xa[_0xa4d4[236]],_0x7246x14=_0x7246x4,_0x7246x15=_0x7246x13,_0x7246x16=1;_0x7246x16<_0x7246x3[_0xa4d4[67]];_0x7246x16++){var _0x7246x17=_0x7246x3[_0x7246x16];null!=_0x7246x17&&(_0x7246x9=_0x7246xa[_0xa4d4[235]]-_0x7246x17[_0xa4d4[235]],_0x7246xa=_0x7246xa[_0xa4d4[236]]-_0x7246x17[_0xa4d4[236]],_0x7246x9=Math[_0xa4d4[428]](_0x7246x9*_0x7246x9+_0x7246xa*_0x7246xa),_0x7246x12[_0xa4d4[207]](_0x7246x9),_0x7246x5+=_0x7246x9,_0x7246xa=_0x7246x17,_0x7246x4=Math[_0xa4d4[243]](_0x7246xa[_0xa4d4[235]],_0x7246x4),_0x7246x13=Math[_0xa4d4[243]](_0x7246xa[_0xa4d4[236]],_0x7246x13),_0x7246x14=Math[_0xa4d4[160]](_0x7246xa[_0xa4d4[235]],_0x7246x14),_0x7246x15=Math[_0xa4d4[160]](_0x7246xa[_0xa4d4[236]],_0x7246x15));};_0x7246x2[_0xa4d4[67]]=_0x7246x5;_0x7246x2[_0xa4d4[2086]]=_0x7246x12;_0x7246x2[_0xa4d4[235]]=_0x7246x4;_0x7246x2[_0xa4d4[236]]=_0x7246x13;_0x7246x2[_0xa4d4[117]]=Math[_0xa4d4[160]](1,_0x7246x14-_0x7246x4);_0x7246x2[_0xa4d4[119]]=Math[_0xa4d4[160]](1,_0x7246x15-_0x7246x13);};};};};mxGraphView[_0xa4d4[202]][_0xa4d4[245]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[241]](),_0x7246x5=_0x7246x2[_0xa4d4[242]]();if(null!=_0x7246x2[_0xa4d4[2086]]&&(null==_0x7246x3||_0x7246x3[_0xa4d4[1500]])){for(var _0x7246x9=_0x7246x2[_0xa4d4[439]][_0xa4d4[67]],_0x7246xa=((null!=_0x7246x3?_0x7246x3[_0xa4d4[235]]/2:0)+0.5)*_0x7246x2[_0xa4d4[67]],_0x7246x12=_0x7246x2[_0xa4d4[2086]][0],_0x7246x13=0,_0x7246x14=1;_0x7246xa>_0x7246x13+_0x7246x12&&_0x7246x14<_0x7246x9-1;){_0x7246x13+=_0x7246x12,_0x7246x12=_0x7246x2[_0xa4d4[2086]][_0x7246x14++]};_0x7246x9=0==_0x7246x12?0:(_0x7246xa-_0x7246x13)/_0x7246x12;_0x7246xa=_0x7246x2[_0xa4d4[439]][_0x7246x14-1];_0x7246x14=_0x7246x2[_0xa4d4[439]][_0x7246x14];if(null!=_0x7246xa&&null!=_0x7246x14){_0x7246x13=_0x7246x4=_0x7246x5=0;if(null!=_0x7246x3){var _0x7246x5=_0x7246x3[_0xa4d4[236]],_0x7246x15=_0x7246x3[_0xa4d4[1368]];null!=_0x7246x15&&(_0x7246x4=_0x7246x15[_0xa4d4[235]],_0x7246x13=_0x7246x15[_0xa4d4[236]]);};_0x7246x15=_0x7246x14[_0xa4d4[235]]-_0x7246xa[_0xa4d4[235]];_0x7246x14=_0x7246x14[_0xa4d4[236]]-_0x7246xa[_0xa4d4[236]];_0x7246x4=_0x7246xa[_0xa4d4[235]]+_0x7246x15*_0x7246x9+((0==_0x7246x12?0:_0x7246x14/_0x7246x12)*_0x7246x5+_0x7246x4)*this[_0xa4d4[255]];_0x7246x5=_0x7246xa[_0xa4d4[236]]+_0x7246x14*_0x7246x9-((0==_0x7246x12?0:_0x7246x15/_0x7246x12)*_0x7246x5-_0x7246x13)*this[_0xa4d4[255]];};}else {null!=_0x7246x3&&(_0x7246x15=_0x7246x3[_0xa4d4[1368]],null!=_0x7246x15&&(_0x7246x4+=_0x7246x15[_0xa4d4[235]],_0x7246x5+=_0x7246x15[_0xa4d4[236]]))};return  new mxPoint(_0x7246x4,_0x7246x5);};mxGraphView[_0xa4d4[202]][_0xa4d4[2308]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1721]](_0x7246x2[_0xa4d4[246]]);if(null!=_0x7246x5){var _0x7246x9=_0x7246x2[_0xa4d4[439]][_0xa4d4[67]];if(_0x7246x5[_0xa4d4[1500]]&&1<_0x7246x9){for(var _0x7246x5=_0x7246x2[_0xa4d4[67]],_0x7246xa=_0x7246x2[_0xa4d4[2086]],_0x7246x12=_0x7246x2[_0xa4d4[439]][0],_0x7246x13=_0x7246x2[_0xa4d4[439]][1],_0x7246x14=mxUtils[_0xa4d4[440]](_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]],_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]],_0x7246x3,_0x7246x4),_0x7246x15=0,_0x7246x16=0,_0x7246x17=0,_0x7246x18=2;_0x7246x18<_0x7246x9;_0x7246x18++){_0x7246x16+=_0x7246xa[_0x7246x18-2],_0x7246x13=_0x7246x2[_0xa4d4[439]][_0x7246x18],_0x7246x12=mxUtils[_0xa4d4[440]](_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]],_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]],_0x7246x3,_0x7246x4),_0x7246x12<=_0x7246x14&&(_0x7246x14=_0x7246x12,_0x7246x15=_0x7246x18-1,_0x7246x17=_0x7246x16),_0x7246x12=_0x7246x13};_0x7246x9=_0x7246xa[_0x7246x15];_0x7246x12=_0x7246x2[_0xa4d4[439]][_0x7246x15];_0x7246x13=_0x7246x2[_0xa4d4[439]][_0x7246x15+1];_0x7246x14=_0x7246x13[_0xa4d4[235]];_0x7246xa=_0x7246x13[_0xa4d4[236]];_0x7246x2=_0x7246x12[_0xa4d4[235]]-_0x7246x14;_0x7246x15=_0x7246x12[_0xa4d4[236]]-_0x7246xa;_0x7246x14=_0x7246x3-_0x7246x14;_0x7246xa=_0x7246x4-_0x7246xa;_0x7246x14=_0x7246x2-_0x7246x14;_0x7246xa=_0x7246x15-_0x7246xa;_0x7246xa=_0x7246x14*_0x7246x2+_0x7246xa*_0x7246x15;_0x7246x2=Math[_0xa4d4[428]](0>=_0x7246xa?0:_0x7246xa*_0x7246xa/(_0x7246x2*_0x7246x2+_0x7246x15*_0x7246x15));_0x7246x2>_0x7246x9&&(_0x7246x2=_0x7246x9);_0x7246x9=Math[_0xa4d4[428]](mxUtils[_0xa4d4[440]](_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]],_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]],_0x7246x3,_0x7246x4));-1==mxUtils[_0xa4d4[2309]](_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]],_0x7246x13[_0xa4d4[235]],_0x7246x13[_0xa4d4[236]],_0x7246x3,_0x7246x4)&&(_0x7246x9= -_0x7246x9);return  new mxPoint(-2*((_0x7246x5/2-_0x7246x17-_0x7246x2)/_0x7246x5),_0x7246x9/this[_0xa4d4[255]]);};};return  new mxPoint;};mxGraphView[_0xa4d4[202]][_0xa4d4[2285]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[439]];_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]]=_0x7246x2[_0xa4d4[241]]();_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]]=_0x7246x2[_0xa4d4[242]]();if(null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]&&null!=_0x7246x2[_0xa4d4[2086]]){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x2[_0xa4d4[246]]);if(_0x7246x4[_0xa4d4[1500]]){var _0x7246x5=this[_0xa4d4[245]](_0x7246x2,_0x7246x4);null!=_0x7246x5&&(_0x7246x2[_0xa4d4[2079]]=_0x7246x5);}else {var _0x7246x5=_0x7246x3[0],_0x7246x9=_0x7246x3[_0x7246x3[_0xa4d4[67]]-1];if(null!=_0x7246x5&&null!=_0x7246x9){var _0x7246x3=_0x7246x9[_0xa4d4[235]]-_0x7246x5[_0xa4d4[235]],_0x7246xa=_0x7246x9[_0xa4d4[236]]-_0x7246x5[_0xa4d4[236]],_0x7246x12=_0x7246x9=0,_0x7246x4=_0x7246x4[_0xa4d4[1368]];null!=_0x7246x4&&(_0x7246x9=_0x7246x4[_0xa4d4[235]],_0x7246x12=_0x7246x4[_0xa4d4[236]]);_0x7246x4=_0x7246x5[_0xa4d4[236]]+_0x7246xa/2+_0x7246x12*this[_0xa4d4[255]];_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]]=_0x7246x5[_0xa4d4[235]]+_0x7246x3/2+_0x7246x9*this[_0xa4d4[255]];_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]]=_0x7246x4;};};};};mxGraphView[_0xa4d4[202]][_0xa4d4[248]]=function(_0x7246x2,_0x7246x3){_0x7246x3=_0x7246x3|| !1;var _0x7246x4=null;null!=_0x7246x2&&(_0x7246x4=this[_0xa4d4[1214]][_0xa4d4[203]](_0x7246x2),this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x2)&&(null==_0x7246x4&&_0x7246x3&&this[_0xa4d4[1179]][_0xa4d4[1714]](_0x7246x2)?(_0x7246x4=this[_0xa4d4[1230]](_0x7246x2),this[_0xa4d4[1214]][_0xa4d4[204]](_0x7246x2,_0x7246x4)):_0x7246x3&&(null!=_0x7246x4&&this[_0xa4d4[2255]])&&(_0x7246x4[_0xa4d4[124]]=this[_0xa4d4[1179]][_0xa4d4[1705]](_0x7246x2))));return _0x7246x4;};mxGraphView[_0xa4d4[202]][_0xa4d4[2287]]=function(){return this[_0xa4d4[2254]]};mxGraphView[_0xa4d4[202]][_0xa4d4[2310]]=function(_0x7246x2){this[_0xa4d4[2254]]=_0x7246x2};mxGraphView[_0xa4d4[202]][_0xa4d4[2295]]=function(){return this[_0xa4d4[2251]]};mxGraphView[_0xa4d4[202]][_0xa4d4[2311]]=function(_0x7246x2){this[_0xa4d4[2251]]=_0x7246x2};mxGraphView[_0xa4d4[202]][_0xa4d4[2312]]=function(){return this[_0xa4d4[1214]]};mxGraphView[_0xa4d4[202]][_0xa4d4[1517]]=function(_0x7246x2){this[_0xa4d4[1214]]=_0x7246x2};mxGraphView[_0xa4d4[202]][_0xa4d4[2313]]=function(_0x7246x2){if(null==_0x7246x2){return this[_0xa4d4[1214]]};for(var _0x7246x3=[],_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){var _0x7246x5=this[_0xa4d4[248]](_0x7246x2[_0x7246x4]);null!=_0x7246x5&&_0x7246x3[_0xa4d4[207]](_0x7246x5);};return _0x7246x3;};mxGraphView[_0xa4d4[202]][_0xa4d4[2265]]=function(_0x7246x2){var _0x7246x3=null;null!=_0x7246x2&&(_0x7246x3=this[_0xa4d4[1214]][_0xa4d4[205]](_0x7246x2),null!=_0x7246x3&&(this[_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[515]](_0x7246x3),_0x7246x3[_0xa4d4[515]]()));return _0x7246x3;};mxGraphView[_0xa4d4[202]][_0xa4d4[1230]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[1705]](_0x7246x2);_0x7246x2= new mxCellState(this,_0x7246x2,_0x7246x3);this[_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[2155]](_0x7246x2,this[_0xa4d4[2287]]());return _0x7246x2;};mxGraphView[_0xa4d4[202]][_0xa4d4[2051]]=function(){return this[_0xa4d4[510]]};mxGraphView[_0xa4d4[202]][_0xa4d4[2052]]=function(){return this[_0xa4d4[2053]]};mxGraphView[_0xa4d4[202]][_0xa4d4[2024]]=function(){return this[_0xa4d4[505]]};mxGraphView[_0xa4d4[202]][_0xa4d4[1524]]=function(){return this[_0xa4d4[506]]};mxGraphView[_0xa4d4[202]][_0xa4d4[2314]]=function(_0x7246x2){_0x7246x2=mxEvent[_0xa4d4[728]](_0x7246x2);return _0x7246x2==this[_0xa4d4[1179]][_0xa4d4[526]]||_0x7246x2[_0xa4d4[265]]==this[_0xa4d4[2053]]||null!=_0x7246x2[_0xa4d4[265]]&&_0x7246x2[_0xa4d4[265]][_0xa4d4[265]]==this[_0xa4d4[2053]]||_0x7246x2==this[_0xa4d4[510]][_0xa4d4[265]]||_0x7246x2==this[_0xa4d4[510]]||_0x7246x2==this[_0xa4d4[2053]]||_0x7246x2==this[_0xa4d4[505]]||_0x7246x2==this[_0xa4d4[506]];};mxGraphView[_0xa4d4[202]][_0xa4d4[2315]]=function(_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[445]](this[_0xa4d4[1179]][_0xa4d4[526]]);_0x7246x2= new mxPoint(_0x7246x2[_0xa4d4[782]]-_0x7246x3[_0xa4d4[235]],_0x7246x2[_0xa4d4[784]]-_0x7246x3[_0xa4d4[236]]);var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[359]],_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[159]];if(_0x7246x3>_0x7246x4&&_0x7246x2[_0xa4d4[235]]>_0x7246x4+2&&_0x7246x2[_0xa4d4[235]]<=_0x7246x3){return !0};_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[167]];_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[157]];return _0x7246x3>_0x7246x4&&_0x7246x2[_0xa4d4[236]]>_0x7246x4+2&&_0x7246x2[_0xa4d4[236]]<=_0x7246x3?!0:!1;};mxGraphView[_0xa4d4[202]][_0xa4d4[176]]=function(){this[_0xa4d4[2163]]();var _0x7246x2=this[_0xa4d4[1179]];_0x7246x2[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?this[_0xa4d4[1569]]():_0x7246x2[_0xa4d4[507]]==mxConstants[_0xa4d4[1523]]?this[_0xa4d4[1571]]():this[_0xa4d4[1570]]();};mxGraphView[_0xa4d4[202]][_0xa4d4[2163]]=function(){var _0x7246x2=this[_0xa4d4[1179]],_0x7246x3=_0x7246x2[_0xa4d4[526]];if(null!=_0x7246x3){mxEvent[_0xa4d4[759]](_0x7246x3,mxUtils[_0xa4d4[885]](this,function(_0x7246x3){mxClient[_0xa4d4[754]]&&_0x7246x2[_0xa4d4[2203]]()&&_0x7246x2[_0xa4d4[2126]](!_0x7246x2[_0xa4d4[2134]]());this[_0xa4d4[2314]](_0x7246x3)&&(!mxClient[_0xa4d4[80]]&&!mxClient[_0xa4d4[76]]&&!mxClient[_0xa4d4[71]]&&!mxClient[_0xa4d4[75]]||!this[_0xa4d4[2315]](_0x7246x3))&&_0x7246x2[_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x3));}),mxUtils[_0xa4d4[885]](this,function(_0x7246x3){this[_0xa4d4[2314]](_0x7246x3)&&_0x7246x2[_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x3))}),mxUtils[_0xa4d4[885]](this,function(_0x7246x3){this[_0xa4d4[2314]](_0x7246x3)&&_0x7246x2[_0xa4d4[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7246x3))}));mxEvent[_0xa4d4[169]](_0x7246x3,_0xa4d4[760],mxUtils[_0xa4d4[885]](this,function(_0x7246x3){_0x7246x2[_0xa4d4[761]](_0x7246x3)}));var _0x7246x4=function(_0x7246x4){var _0x7246x9=null;mxClient[_0xa4d4[754]]&&(_0x7246x9=mxEvent[_0xa4d4[731]](_0x7246x4),_0x7246x4=mxEvent[_0xa4d4[733]](_0x7246x4),_0x7246x4=mxUtils[_0xa4d4[2196]](_0x7246x3,_0x7246x9,_0x7246x4),_0x7246x9=_0x7246x2[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2[_0xa4d4[999]](_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]])));return _0x7246x9;};_0x7246x2[_0xa4d4[1133]]({mouseDown:function(_0x7246x3,_0x7246x4){_0x7246x2[_0xa4d4[2316]][_0xa4d4[1032]]()},mouseMove:function(){},mouseUp:function(){}});this[_0xa4d4[2317]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x3){null!=_0x7246x2[_0xa4d4[2276]]&&_0x7246x2[_0xa4d4[2276]][_0xa4d4[2277]]()&&_0x7246x2[_0xa4d4[2276]][_0xa4d4[801]]();this[_0xa4d4[2252]]&&(_0x7246x2[_0xa4d4[1009]]&&!mxEvent[_0xa4d4[721]](_0x7246x3))&&_0x7246x2[_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x3,_0x7246x4(_0x7246x3)));});this[_0xa4d4[2318]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x3){this[_0xa4d4[2252]]&&_0x7246x2[_0xa4d4[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7246x3))});mxEvent[_0xa4d4[759]](document,null,this[_0xa4d4[2317]],this[_0xa4d4[2318]]);};};mxGraphView[_0xa4d4[202]][_0xa4d4[1570]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[526]];null!=_0x7246x2&&(this[_0xa4d4[510]]=this[_0xa4d4[2319]](_0xa4d4[118],_0xa4d4[118]),this[_0xa4d4[2053]]=this[_0xa4d4[2319]](_0xa4d4[942],_0xa4d4[942]),this[_0xa4d4[505]]=this[_0xa4d4[2319]](_0xa4d4[942],_0xa4d4[942]),this[_0xa4d4[506]]=this[_0xa4d4[2319]](_0xa4d4[942],_0xa4d4[942]),this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[2053]]),this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[505]]),this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[506]]),_0x7246x2[_0xa4d4[62]](this[_0xa4d4[510]]),mxClient[_0xa4d4[496]]&&(_0x7246x2=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){_0x7246x2=this[_0xa4d4[517]]();this[_0xa4d4[2320]](_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]+this[_0xa4d4[1179]][_0xa4d4[467]],_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]+this[_0xa4d4[1179]][_0xa4d4[467]]);}),mxEvent[_0xa4d4[169]](window,_0xa4d4[129],_0x7246x2)));};mxGraphView[_0xa4d4[202]][_0xa4d4[2320]]=function(_0x7246x2,_0x7246x3){if(null!=this[_0xa4d4[1179]][_0xa4d4[526]]){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[167]];this[_0xa4d4[510]][_0xa4d4[124]][_0xa4d4[117]]=this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[359]]<_0x7246x2?_0x7246x2+_0xa4d4[168]:_0xa4d4[118];this[_0xa4d4[510]][_0xa4d4[124]][_0xa4d4[119]]=_0x7246x4<_0x7246x3?_0x7246x3+_0xa4d4[168]:_0xa4d4[118];}};mxGraphView[_0xa4d4[202]][_0xa4d4[2319]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[529]);null!=_0x7246x2&&null!=_0x7246x3?(_0x7246x4[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492],_0x7246x4[_0xa4d4[124]][_0xa4d4[361]]=_0xa4d4[946],_0x7246x4[_0xa4d4[124]][_0xa4d4[125]]=_0xa4d4[946],_0x7246x4[_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2,_0x7246x4[_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3):_0x7246x4[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[1500];return _0x7246x4;};mxGraphView[_0xa4d4[202]][_0xa4d4[1571]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[526]];if(null!=_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[359]],_0x7246x4=_0x7246x2[_0xa4d4[167]];this[_0xa4d4[510]]=this[_0xa4d4[2321]](_0x7246x3,_0x7246x4);this[_0xa4d4[2053]]=this[_0xa4d4[2321]](_0x7246x3,_0x7246x4);this[_0xa4d4[505]]=this[_0xa4d4[2321]](_0x7246x3,_0x7246x4);this[_0xa4d4[506]]=this[_0xa4d4[2321]](_0x7246x3,_0x7246x4);this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[2053]]);this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[505]]);this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[506]]);_0x7246x2[_0xa4d4[62]](this[_0xa4d4[510]]);};};mxGraphView[_0xa4d4[202]][_0xa4d4[2321]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](mxClient[_0xa4d4[463]]+_0xa4d4[1499]);_0x7246x4[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];_0x7246x4[_0xa4d4[124]][_0xa4d4[361]]=_0xa4d4[946];_0x7246x4[_0xa4d4[124]][_0xa4d4[125]]=_0xa4d4[946];_0x7246x4[_0xa4d4[124]][_0xa4d4[117]]=_0x7246x2+_0xa4d4[168];_0x7246x4[_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3+_0xa4d4[168];_0x7246x4[_0xa4d4[57]](_0xa4d4[1462],_0x7246x2+_0xa4d4[537]+_0x7246x3);_0x7246x4[_0xa4d4[57]](_0xa4d4[2322],_0xa4d4[2323]);return _0x7246x4;};mxGraphView[_0xa4d4[202]][_0xa4d4[1569]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[526]];this[_0xa4d4[510]]=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[449]);this[_0xa4d4[2053]]=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[449]);this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[2053]]);this[_0xa4d4[505]]=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[449]);this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[505]]);this[_0xa4d4[506]]=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[449]);this[_0xa4d4[510]][_0xa4d4[62]](this[_0xa4d4[506]]);var _0x7246x3=document[_0xa4d4[509]](mxConstants.NS_SVG,_0xa4d4[571]);_0x7246x3[_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[118];_0x7246x3[_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[118];_0x7246x3[_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[694];_0x7246x3[_0xa4d4[62]](this[_0xa4d4[510]]);null!=_0x7246x2&&(_0x7246x2[_0xa4d4[62]](_0x7246x3),_0xa4d4[2324]==mxUtils[_0xa4d4[275]](_0x7246x2)[_0xa4d4[491]]&&(_0x7246x2[_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[1500]));};mxGraphView[_0xa4d4[202]][_0xa4d4[515]]=function(){var _0x7246x2=null!=this[_0xa4d4[510]]?this[_0xa4d4[510]][_0xa4d4[538]]:null;null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[510]]);null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[265]]&&(this[_0xa4d4[200]](this[_0xa4d4[1741]],!0),mxEvent[_0xa4d4[938]](document,null,this[_0xa4d4[2317]],this[_0xa4d4[2318]]),mxEvent[_0xa4d4[762]](this[_0xa4d4[1179]][_0xa4d4[526]]),_0x7246x2[_0xa4d4[265]][_0xa4d4[266]](_0x7246x2),this[_0xa4d4[506]]=this[_0xa4d4[505]]=this[_0xa4d4[2053]]=this[_0xa4d4[510]]=this[_0xa4d4[2318]]=this[_0xa4d4[2317]]=null);};function mxCurrentRootChange(_0x7246x2,_0x7246x3){this[_0xa4d4[441]]=_0x7246x2;this[_0xa4d4[257]]=this[_0xa4d4[813]]=_0x7246x3;this[_0xa4d4[2325]]=null==_0x7246x3;if(!this[_0xa4d4[2325]]){for(var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[1741]],_0x7246x5=this[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]();null!=_0x7246x4;){if(_0x7246x4==_0x7246x3){this[_0xa4d4[2325]]= !0;break;};_0x7246x4=_0x7246x5[_0xa4d4[1197]](_0x7246x4);}};}mxCurrentRootChange[_0xa4d4[202]][_0xa4d4[350]]=function(){var _0x7246x2=this[_0xa4d4[441]][_0xa4d4[1741]];this[_0xa4d4[441]][_0xa4d4[1741]]=this[_0xa4d4[257]];this[_0xa4d4[257]]=_0x7246x2;_0x7246x2=this[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[2326]](this[_0xa4d4[441]][_0xa4d4[1741]]);null!=_0x7246x2&&(this[_0xa4d4[441]][_0xa4d4[513]]= new mxPoint(-_0x7246x2[_0xa4d4[235]],-_0x7246x2[_0xa4d4[236]]));this[_0xa4d4[441]][_0xa4d4[746]]( new mxEventObject(this[_0xa4d4[2325]]?mxEvent[_0xa4d4[2327]]:mxEvent[_0xa4d4[2328]],_0xa4d4[813],this[_0xa4d4[441]][_0xa4d4[1741]],_0xa4d4[257],this[_0xa4d4[257]]));this[_0xa4d4[2325]]?(this[_0xa4d4[441]][_0xa4d4[200]](this[_0xa4d4[441]][_0xa4d4[1741]],!0),this[_0xa4d4[441]][_0xa4d4[2264]]()):this[_0xa4d4[441]][_0xa4d4[802]]();this[_0xa4d4[2325]]=!this[_0xa4d4[2325]];};function mxGraph(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[2329]]=null;this[_0xa4d4[2330]]=_0x7246x4;this[_0xa4d4[507]]=mxClient[_0xa4d4[48]]?mxConstants[_0xa4d4[508]]:_0x7246x4==mxConstants[_0xa4d4[2331]]&&mxClient[_0xa4d4[47]]?mxConstants[_0xa4d4[1523]]:_0x7246x4==mxConstants[_0xa4d4[2332]]?mxConstants[_0xa4d4[1656]]:_0x7246x4==mxConstants[_0xa4d4[2333]]?mxConstants[_0xa4d4[2209]]:mxConstants[_0xa4d4[2334]];this[_0xa4d4[251]]=null!=_0x7246x3?_0x7246x3: new mxGraphModel;this[_0xa4d4[2335]]=[];this[_0xa4d4[2336]]=[];this[_0xa4d4[259]]=this[_0xa4d4[2337]]();this[_0xa4d4[2339]](this[_0xa4d4[2338]]());this[_0xa4d4[2341]](null!=_0x7246x5?_0x7246x5:this[_0xa4d4[2340]]());this[_0xa4d4[441]]=this[_0xa4d4[2342]]();this[_0xa4d4[2343]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){this[_0xa4d4[1177]](_0x7246x3[_0xa4d4[720]](_0xa4d4[1061])[_0xa4d4[1065]])});this[_0xa4d4[251]][_0xa4d4[169]](mxEvent.CHANGE,this[_0xa4d4[2343]]);this[_0xa4d4[2344]]();null!=_0x7246x2&&this[_0xa4d4[176]](_0x7246x2);this[_0xa4d4[441]][_0xa4d4[2259]]();}mxLoadResources&&mxResources[_0xa4d4[99]](mxClient[_0xa4d4[86]]+_0xa4d4[2345]);mxGraph[_0xa4d4[202]]= new mxEventSource;mxGraph[_0xa4d4[202]][_0xa4d4[196]]=mxGraph;mxGraph[_0xa4d4[202]][_0xa4d4[2346]]=[];mxGraph[_0xa4d4[202]][_0xa4d4[2329]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[1009]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[251]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[441]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[94]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2105]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2347]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[259]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2335]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2330]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[507]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[1020]]=10;mxGraph[_0xa4d4[202]][_0xa4d4[991]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2348]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2349]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2350]]=700;mxGraph[_0xa4d4[202]][_0xa4d4[2351]]=25;mxGraph[_0xa4d4[202]][_0xa4d4[2352]]=0;mxGraph[_0xa4d4[202]][_0xa4d4[2352]]=0;mxGraph[_0xa4d4[202]][_0xa4d4[2213]]=0;mxGraph[_0xa4d4[202]][_0xa4d4[2215]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2353]]=4;mxGraph[_0xa4d4[202]][_0xa4d4[2354]]=0.5;mxGraph[_0xa4d4[202]][_0xa4d4[2355]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2356]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[1617]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2273]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2357]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2358]]=_0xa4d4[579];mxGraph[_0xa4d4[202]][_0xa4d4[2359]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2360]]=20;mxGraph[_0xa4d4[202]][_0xa4d4[2361]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2013]]=mxConstants[_0xa4d4[516]];mxGraph[_0xa4d4[202]][_0xa4d4[2012]]=1.5;mxGraph[_0xa4d4[202]][_0xa4d4[984]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2362]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2363]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2364]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2365]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2366]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2367]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2368]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2369]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2206]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2370]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2371]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2372]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2373]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2374]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2375]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2376]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2377]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2378]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2379]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2380]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2381]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[1012]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2382]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2383]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2384]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[1013]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2385]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2386]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2387]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2388]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2389]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[467]]=0;mxGraph[_0xa4d4[202]][_0xa4d4[2158]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2159]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2168]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2390]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2391]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2392]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2393]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2394]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2395]]=1.2;mxGraph[_0xa4d4[202]][_0xa4d4[2396]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2397]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2398]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2399]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2400]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2401]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2402]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2293]]=mxEdgeStyle[_0xa4d4[2403]];mxGraph[_0xa4d4[202]][_0xa4d4[2404]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2405]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2406]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2407]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2408]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2409]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2410]]= !1;mxGraph[_0xa4d4[202]][_0xa4d4[2411]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2412]]= !0;mxGraph[_0xa4d4[202]][_0xa4d4[2180]]=mxConstants[_0xa4d4[2065]];mxGraph[_0xa4d4[202]][_0xa4d4[2336]]=null;mxGraph[_0xa4d4[202]][_0xa4d4[2413]]=0.1;mxGraph[_0xa4d4[202]][_0xa4d4[2414]]=8;mxGraph[_0xa4d4[202]][_0xa4d4[1136]]=0;mxGraph[_0xa4d4[202]][_0xa4d4[1137]]=0;mxGraph[_0xa4d4[202]][_0xa4d4[2415]]= new mxImage(mxClient[_0xa4d4[88]]+_0xa4d4[2416],9,9);mxGraph[_0xa4d4[202]][_0xa4d4[2417]]= new mxImage(mxClient[_0xa4d4[88]]+_0xa4d4[2418],9,9);mxGraph[_0xa4d4[202]][_0xa4d4[2419]]= new mxImage(_0xa4d4[2420],16,16);mxGraph[_0xa4d4[202]][_0xa4d4[2421]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[2422]:_0xa4d4[110];mxGraph[_0xa4d4[202]][_0xa4d4[2423]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[2424]:_0xa4d4[110];mxGraph[_0xa4d4[202]][_0xa4d4[2425]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[2426]:_0xa4d4[110];mxGraph[_0xa4d4[202]][_0xa4d4[176]]=function(_0x7246x2){this[_0xa4d4[526]]=_0x7246x2;this[_0xa4d4[2347]]=this[_0xa4d4[2427]]();this[_0xa4d4[441]][_0xa4d4[176]]();this[_0xa4d4[2258]]();mxClient[_0xa4d4[80]]&&(mxEvent[_0xa4d4[169]](window,_0xa4d4[2428],mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[515]]()})),mxEvent[_0xa4d4[169]](_0x7246x2,_0xa4d4[2429],mxUtils[_0xa4d4[885]](this,function(){return this[_0xa4d4[2203]]()})));8==document[_0xa4d4[5]]&&_0x7246x2[_0xa4d4[1583]](_0xa4d4[1582],_0xa4d4[2430]);};mxGraph[_0xa4d4[202]][_0xa4d4[2344]]=function(_0x7246x2){this[_0xa4d4[2276]]= new mxTooltipHandler(this);this[_0xa4d4[2276]][_0xa4d4[995]](!1);this[_0xa4d4[2316]]= new mxPanningHandler(this);this[_0xa4d4[2316]][_0xa4d4[2431]]= !1;this[_0xa4d4[2432]]= new mxSelectionCellsHandler(this);this[_0xa4d4[2433]]= new mxConnectionHandler(this);this[_0xa4d4[2433]][_0xa4d4[995]](!1);this[_0xa4d4[1011]]= new mxGraphHandler(this);};mxGraph[_0xa4d4[202]][_0xa4d4[2338]]=function(){return  new mxGraphSelectionModel(this)};mxGraph[_0xa4d4[202]][_0xa4d4[2340]]=function(){return  new mxStylesheet};mxGraph[_0xa4d4[202]][_0xa4d4[2342]]=function(){return  new mxGraphView(this)};mxGraph[_0xa4d4[202]][_0xa4d4[2337]]=function(){return  new mxCellRenderer};mxGraph[_0xa4d4[202]][_0xa4d4[2427]]=function(){return  new mxCellEditor(this)};mxGraph[_0xa4d4[202]][_0xa4d4[502]]=function(){return this[_0xa4d4[251]]};mxGraph[_0xa4d4[202]][_0xa4d4[249]]=function(){return this[_0xa4d4[441]]};mxGraph[_0xa4d4[202]][_0xa4d4[2434]]=function(){return this[_0xa4d4[94]]};mxGraph[_0xa4d4[202]][_0xa4d4[2341]]=function(_0x7246x2){this[_0xa4d4[94]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2435]]=function(){return this[_0xa4d4[2105]]};mxGraph[_0xa4d4[202]][_0xa4d4[2339]]=function(_0x7246x2){this[_0xa4d4[2105]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2436]]=function(_0x7246x2){for(var _0x7246x3=[],_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){var _0x7246x5=_0x7246x2[_0x7246x4];if(_0x7246x5[_0xa4d4[196]]!=mxRootChange){var _0x7246x9=null;_0x7246x5 instanceof mxChildChange&&null==_0x7246x5[_0xa4d4[257]]?_0x7246x9=_0x7246x5[_0xa4d4[247]]:null!=_0x7246x5[_0xa4d4[246]]&&_0x7246x5[_0xa4d4[246]] instanceof mxCell&&(_0x7246x9=_0x7246x5[_0xa4d4[246]]);null!=_0x7246x9&&0>mxUtils[_0xa4d4[2]](_0x7246x3,_0x7246x9)&&_0x7246x3[_0xa4d4[207]](_0x7246x9);};};return this[_0xa4d4[502]]()[_0xa4d4[1964]](_0x7246x3);};mxGraph[_0xa4d4[202]][_0xa4d4[1177]]=function(_0x7246x2){for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3++){this[_0xa4d4[2437]](_0x7246x2[_0x7246x3])};this[_0xa4d4[2439]](this[_0xa4d4[2438]](_0x7246x2));this[_0xa4d4[441]][_0xa4d4[2264]]();this[_0xa4d4[2258]]();};mxGraph[_0xa4d4[202]][_0xa4d4[2438]]=function(_0x7246x2){for(var _0x7246x3=[],_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){var _0x7246x5=_0x7246x2[_0x7246x4];if(_0x7246x5 instanceof mxRootChange){break }else {_0x7246x5 instanceof mxChildChange?null!=_0x7246x5[_0xa4d4[257]]&&null==_0x7246x5[_0xa4d4[1101]]&&(_0x7246x3=_0x7246x3[_0xa4d4[1919]](this[_0xa4d4[251]][_0xa4d4[1939]](_0x7246x5[_0xa4d4[247]]))):_0x7246x5 instanceof mxVisibleChange&&(_0x7246x3=_0x7246x3[_0xa4d4[1919]](this[_0xa4d4[251]][_0xa4d4[1939]](_0x7246x5[_0xa4d4[246]])))};};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2437]]=function(_0x7246x2){if(_0x7246x2 instanceof mxRootChange){this[_0xa4d4[2440]](),this[_0xa4d4[2441]](_0x7246x2[_0xa4d4[257]]),this[_0xa4d4[2398]]&&(this[_0xa4d4[441]][_0xa4d4[255]]=1,this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]]=0,this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]=0),this[_0xa4d4[746]]( new mxEventObject(mxEvent.ROOT))}else {if(_0x7246x2 instanceof mxChildChange){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0xa4d4[247]]);null!=_0x7246x3?this[_0xa4d4[441]][_0xa4d4[2263]](_0x7246x2[_0xa4d4[247]],!0,!1,null!=_0x7246x2[_0xa4d4[257]]):(this[_0xa4d4[2441]](_0x7246x2[_0xa4d4[247]]),this[_0xa4d4[441]][_0xa4d4[1741]]==_0x7246x2[_0xa4d4[247]]&&this[_0xa4d4[2442]]());_0x7246x3!=_0x7246x2[_0xa4d4[257]]&&(null!=_0x7246x3&&this[_0xa4d4[441]][_0xa4d4[2263]](_0x7246x3,!1,!1),null!=_0x7246x2[_0xa4d4[257]]&&this[_0xa4d4[441]][_0xa4d4[2263]](_0x7246x2[_0xa4d4[257]],!1,!1));}else {_0x7246x2 instanceof mxTerminalChange||_0x7246x2 instanceof mxGeometryChange?this[_0xa4d4[441]][_0xa4d4[2263]](_0x7246x2[_0xa4d4[246]]):_0x7246x2 instanceof mxValueChange?this[_0xa4d4[441]][_0xa4d4[2263]](_0x7246x2[_0xa4d4[246]],!1,!1):_0x7246x2 instanceof mxStyleChange?(this[_0xa4d4[441]][_0xa4d4[2263]](_0x7246x2[_0xa4d4[246]],!0,!0,!1),this[_0xa4d4[441]][_0xa4d4[2265]](_0x7246x2[_0xa4d4[246]])):null!=_0x7246x2[_0xa4d4[246]]&&_0x7246x2[_0xa4d4[246]] instanceof mxCell&&this[_0xa4d4[2441]](_0x7246x2[_0xa4d4[246]])}}};mxGraph[_0xa4d4[202]][_0xa4d4[2441]]=function(_0x7246x2){for(var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2),_0x7246x4=0;_0x7246x4<_0x7246x3;_0x7246x4++){this[_0xa4d4[2441]](this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,_0x7246x4))};this[_0xa4d4[441]][_0xa4d4[2265]](_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[2443]]=function(_0x7246x2,_0x7246x3){null==_0x7246x2[_0xa4d4[1211]]&&(_0x7246x2[_0xa4d4[1211]]=[]);_0x7246x2[_0xa4d4[1211]][_0xa4d4[207]](_0x7246x3);var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);null!=_0x7246x4&&this[_0xa4d4[259]][_0xa4d4[258]](_0x7246x4);this[_0xa4d4[746]]( new mxEventObject(mxEvent.ADD_OVERLAY,_0xa4d4[246],_0x7246x2,_0xa4d4[2201],_0x7246x3));return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2200]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[1211]]};mxGraph[_0xa4d4[202]][_0xa4d4[2444]]=function(_0x7246x2,_0x7246x3){if(null==_0x7246x3){this[_0xa4d4[2445]](_0x7246x2)}else {var _0x7246x4=mxUtils[_0xa4d4[2]](_0x7246x2[_0xa4d4[1211]],_0x7246x3);0<=_0x7246x4?(_0x7246x2[_0xa4d4[1211]][_0xa4d4[300]](_0x7246x4,1),0==_0x7246x2[_0xa4d4[1211]][_0xa4d4[67]]&&(_0x7246x2[_0xa4d4[1211]]=null),_0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),null!=_0x7246x4&&this[_0xa4d4[259]][_0xa4d4[258]](_0x7246x4),this[_0xa4d4[746]]( new mxEventObject(mxEvent.REMOVE_OVERLAY,_0xa4d4[246],_0x7246x2,_0xa4d4[2201],_0x7246x3))):_0x7246x3=null;};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2445]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[1211]];if(null!=_0x7246x3){_0x7246x2[_0xa4d4[1211]]=null;var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);null!=_0x7246x4&&this[_0xa4d4[259]][_0xa4d4[258]](_0x7246x4);for(_0x7246x4=0;_0x7246x4<_0x7246x3[_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[746]]( new mxEventObject(mxEvent.REMOVE_OVERLAY,_0xa4d4[246],_0x7246x2,_0xa4d4[2201],_0x7246x3[_0x7246x4]))};};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2446]]=function(_0x7246x2){_0x7246x2=null!=_0x7246x2?_0x7246x2:this[_0xa4d4[251]][_0xa4d4[501]]();this[_0xa4d4[2445]](_0x7246x2);for(var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2),_0x7246x4=0;_0x7246x4<_0x7246x3;_0x7246x4++){var _0x7246x5=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,_0x7246x4);this[_0xa4d4[2446]](_0x7246x5);};};mxGraph[_0xa4d4[202]][_0xa4d4[2447]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]){return _0x7246x4=null!=_0x7246x4?_0x7246x4:this[_0xa4d4[2419]],_0x7246x3= new mxCellOverlay(_0x7246x4,_0xa4d4[2448]+_0x7246x3+_0xa4d4[2449]),_0x7246x5&&_0x7246x3[_0xa4d4[169]](mxEvent.CLICK,mxUtils[_0xa4d4[885]](this,function(_0x7246x3,_0x7246x4){this[_0xa4d4[994]]()&&this[_0xa4d4[2450]](_0x7246x2)})),this[_0xa4d4[2443]](_0x7246x2,_0x7246x3)};this[_0xa4d4[2445]](_0x7246x2);return null;};mxGraph[_0xa4d4[202]][_0xa4d4[855]]=function(_0x7246x2){this[_0xa4d4[2451]](null,_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2451]]=function(_0x7246x2,_0x7246x3){null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[2452]](),null!=_0x7246x2&&!this[_0xa4d4[2453]](_0x7246x2)&&(_0x7246x2=null));null!=_0x7246x2&&(this[_0xa4d4[746]]( new mxEventObject(mxEvent.START_EDITING,_0xa4d4[246],_0x7246x2,_0xa4d4[763],_0x7246x3)),this[_0xa4d4[2347]][_0xa4d4[855]](_0x7246x2,_0x7246x3));};mxGraph[_0xa4d4[202]][_0xa4d4[2142]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[2454]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2126]]=function(_0x7246x2){this[_0xa4d4[2347]][_0xa4d4[2126]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[850]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[2456]](_0x7246x2,_0x7246x3,this[_0xa4d4[2455]](_0x7246x2)),this[_0xa4d4[746]]( new mxEventObject(mxEvent.LABEL_CHANGED,_0xa4d4[246],_0x7246x2,_0xa4d4[131],_0x7246x3,_0xa4d4[763],_0x7246x4))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2456]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[251]][_0xa4d4[1966]](_0x7246x2,_0x7246x3),_0x7246x4&&this[_0xa4d4[2457]](_0x7246x2,!1)}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};};mxGraph[_0xa4d4[202]][_0xa4d4[859]]=function(_0x7246x2){this[_0xa4d4[2126]](!0);this[_0xa4d4[2433]][_0xa4d4[862]]();this[_0xa4d4[1011]][_0xa4d4[862]]();_0x7246x2=this[_0xa4d4[897]]();for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3++){var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2[_0x7246x3]);null!=_0x7246x4&&null!=_0x7246x4[_0xa4d4[2458]]&&_0x7246x4[_0xa4d4[2458]][_0xa4d4[862]]();};};mxGraph[_0xa4d4[202]][_0xa4d4[173]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[727]](),_0x7246x4=_0x7246x2[_0xa4d4[736]](),_0x7246x5= new mxEventObject(mxEvent.CLICK,_0xa4d4[763],_0x7246x3,_0xa4d4[246],_0x7246x4);_0x7246x2[_0xa4d4[721]]()&&_0x7246x5[_0xa4d4[722]]();this[_0xa4d4[746]](_0x7246x5);this[_0xa4d4[994]]()&&(!mxEvent[_0xa4d4[721]](_0x7246x3)&&!_0x7246x5[_0xa4d4[721]]())&&(null!=_0x7246x4?this[_0xa4d4[2459]](_0x7246x4,_0x7246x3):(_0x7246x4=null,this[_0xa4d4[2460]]()&&(_0x7246x4=this[_0xa4d4[2461]](_0x7246x2[_0xa4d4[734]](),_0x7246x2[_0xa4d4[735]]())),null!=_0x7246x4?this[_0xa4d4[2459]](_0x7246x4,_0x7246x3):this[_0xa4d4[2462]](_0x7246x3)||this[_0xa4d4[2440]]()));};mxGraph[_0xa4d4[202]][_0xa4d4[761]]=function(_0x7246x2,_0x7246x3){var _0x7246x4= new mxEventObject(mxEvent.DOUBLE_CLICK,_0xa4d4[763],_0x7246x2,_0xa4d4[246],_0x7246x3);this[_0xa4d4[746]](_0x7246x4);this[_0xa4d4[994]]()&&(!mxEvent[_0xa4d4[721]](_0x7246x2)&&!_0x7246x4[_0xa4d4[721]]()&&null!=_0x7246x3&&this[_0xa4d4[2453]](_0x7246x3))&&this[_0xa4d4[2451]](_0x7246x3,_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[1014]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(!this[_0xa4d4[2382]]&&(this[_0xa4d4[2384]]||mxUtils[_0xa4d4[1134]](this[_0xa4d4[526]]))){var _0x7246x9=this[_0xa4d4[526]];_0x7246x5=null!=_0x7246x5?_0x7246x5:20;if(_0x7246x2>=_0x7246x9[_0xa4d4[360]]&&_0x7246x3>=_0x7246x9[_0xa4d4[190]]&&_0x7246x2<=_0x7246x9[_0xa4d4[360]]+_0x7246x9[_0xa4d4[159]]&&_0x7246x3<=_0x7246x9[_0xa4d4[190]]+_0x7246x9[_0xa4d4[157]]){var _0x7246xa=_0x7246x9[_0xa4d4[360]]+_0x7246x9[_0xa4d4[159]]-_0x7246x2;if(_0x7246xa<_0x7246x5){if(_0x7246x2=_0x7246x9[_0xa4d4[360]],_0x7246x9[_0xa4d4[360]]+=_0x7246x5-_0x7246xa,_0x7246x4&&_0x7246x2==_0x7246x9[_0xa4d4[360]]){if(this[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]){_0x7246x2=this[_0xa4d4[441]][_0xa4d4[2024]]()[_0xa4d4[538]];var _0x7246x12=this[_0xa4d4[526]][_0xa4d4[1526]]+_0x7246x5-_0x7246xa;}else {_0x7246x12=Math[_0xa4d4[160]](_0x7246x9[_0xa4d4[159]],_0x7246x9[_0xa4d4[1526]])+_0x7246x5-_0x7246xa,_0x7246x2=this[_0xa4d4[441]][_0xa4d4[2051]]()};_0x7246x2[_0xa4d4[124]][_0xa4d4[117]]=_0x7246x12+_0xa4d4[168];_0x7246x9[_0xa4d4[360]]+=_0x7246x5-_0x7246xa;}}else {_0x7246xa=_0x7246x2-_0x7246x9[_0xa4d4[360]],_0x7246xa<_0x7246x5&&(_0x7246x9[_0xa4d4[360]]-=_0x7246x5-_0x7246xa)};_0x7246xa=_0x7246x9[_0xa4d4[190]]+_0x7246x9[_0xa4d4[157]]-_0x7246x3;_0x7246xa<_0x7246x5?(_0x7246x2=_0x7246x9[_0xa4d4[190]],_0x7246x9[_0xa4d4[190]]+=_0x7246x5-_0x7246xa,_0x7246x2==_0x7246x9[_0xa4d4[190]]&&_0x7246x4&&(this[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?(_0x7246x2=this[_0xa4d4[441]][_0xa4d4[2024]]()[_0xa4d4[538]],_0x7246x3=this[_0xa4d4[526]][_0xa4d4[191]]+_0x7246x5-_0x7246xa):(_0x7246x3=Math[_0xa4d4[160]](_0x7246x9[_0xa4d4[157]],_0x7246x9[_0xa4d4[191]])+_0x7246x5-_0x7246xa,_0x7246x2=this[_0xa4d4[441]][_0xa4d4[2051]]()),_0x7246x2[_0xa4d4[124]][_0xa4d4[119]]=_0x7246x3+_0xa4d4[168],_0x7246x9[_0xa4d4[190]]+=_0x7246x5-_0x7246xa)):(_0x7246xa=_0x7246x3-_0x7246x9[_0xa4d4[190]],_0x7246xa<_0x7246x5&&(_0x7246x9[_0xa4d4[190]]-=_0x7246x5-_0x7246xa));};}else {this[_0xa4d4[2383]]&&!this[_0xa4d4[2316]][_0xa4d4[1124]]&&(null==this[_0xa4d4[2463]]&&(this[_0xa4d4[2463]]=this[_0xa4d4[2464]]()),this[_0xa4d4[2463]][_0xa4d4[1143]](_0x7246x2+this[_0xa4d4[1136]],_0x7246x3+this[_0xa4d4[1137]]))}};mxGraph[_0xa4d4[202]][_0xa4d4[2464]]=function(){return  new mxPanningManager(this)};mxGraph[_0xa4d4[202]][_0xa4d4[2465]]=function(){function _0x7246x2(_0x7246x2){var _0x7246x3=0,_0x7246x3=_0xa4d4[2466]==_0x7246x2?2:_0xa4d4[2467]==_0x7246x2?4:_0xa4d4[2468]==_0x7246x2?6:parseInt(_0x7246x2);isNaN(_0x7246x3)&&(_0x7246x3=0);return _0x7246x3;}var _0x7246x3=mxUtils[_0xa4d4[275]](this[_0xa4d4[526]]),_0x7246x4= new mxRectangle;_0x7246x4[_0xa4d4[235]]=_0x7246x2(_0x7246x3[_0xa4d4[2469]])+parseInt(_0x7246x3[_0xa4d4[357]]||0);_0x7246x4[_0xa4d4[236]]=_0x7246x2(_0x7246x3[_0xa4d4[2470]])+parseInt(_0x7246x3[_0xa4d4[2471]]||0);_0x7246x4[_0xa4d4[117]]=_0x7246x2(_0x7246x3[_0xa4d4[2472]])+parseInt(_0x7246x3[_0xa4d4[1164]]||0);_0x7246x4[_0xa4d4[119]]=_0x7246x2(_0x7246x3[_0xa4d4[2473]])+parseInt(_0x7246x3[_0xa4d4[2474]]||0);return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[2475]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=this[_0xa4d4[441]][_0xa4d4[255]];var _0x7246x5=this[_0xa4d4[441]][_0xa4d4[513]],_0x7246x9=this[_0xa4d4[2013]],_0x7246xa=_0x7246x2*this[_0xa4d4[2012]],_0x7246x9= new mxRectangle(0,0,_0x7246x9[_0xa4d4[117]]*_0x7246xa,_0x7246x9[_0xa4d4[119]]*_0x7246xa);_0x7246x3=this[_0xa4d4[2357]]?Math[_0xa4d4[430]](_0x7246x3/_0x7246x9[_0xa4d4[117]]):1;_0x7246x4=this[_0xa4d4[2357]]?Math[_0xa4d4[430]](_0x7246x4/_0x7246x9[_0xa4d4[119]]):1;return  new mxRectangle(0,0,_0x7246x3*_0x7246x9[_0xa4d4[117]]+2+_0x7246x5[_0xa4d4[235]]/_0x7246x2,_0x7246x4*_0x7246x9[_0xa4d4[119]]+2+_0x7246x5[_0xa4d4[236]]/_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[2258]]=function(){var _0x7246x2=this[_0xa4d4[517]]();if(null!=this[_0xa4d4[526]]){var _0x7246x3=this[_0xa4d4[2476]](),_0x7246x4=Math[_0xa4d4[160]](0,_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]+1+_0x7246x3),_0x7246x3=Math[_0xa4d4[160]](0,_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]+1+_0x7246x3);null!=this[_0xa4d4[2387]]&&(_0x7246x4=Math[_0xa4d4[160]](_0x7246x4,this[_0xa4d4[2387]][_0xa4d4[117]]),_0x7246x3=Math[_0xa4d4[160]](_0x7246x3,this[_0xa4d4[2387]][_0xa4d4[119]]));this[_0xa4d4[2389]]&&this[_0xa4d4[2477]](_0x7246x4,_0x7246x3);if(this[_0xa4d4[2361]]||!mxClient[_0xa4d4[80]]&&this[_0xa4d4[2273]]){var _0x7246x5=this[_0xa4d4[2475]](_0x7246x2,_0x7246x4,_0x7246x3);null!=_0x7246x5&&(_0x7246x4=_0x7246x5[_0xa4d4[117]],_0x7246x3=_0x7246x5[_0xa4d4[119]]);};null!=this[_0xa4d4[2386]]&&(_0x7246x4=Math[_0xa4d4[160]](_0x7246x4,this[_0xa4d4[2386]][_0xa4d4[117]]*this[_0xa4d4[441]][_0xa4d4[255]]),_0x7246x3=Math[_0xa4d4[160]](_0x7246x3,this[_0xa4d4[2386]][_0xa4d4[119]]*this[_0xa4d4[441]][_0xa4d4[255]]));_0x7246x4=Math[_0xa4d4[430]](_0x7246x4-1);_0x7246x3=Math[_0xa4d4[430]](_0x7246x3-1);this[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?(_0x7246x5=this[_0xa4d4[441]][_0xa4d4[2024]]()[_0xa4d4[538]],_0x7246x5[_0xa4d4[124]][_0xa4d4[2478]]=Math[_0xa4d4[160]](1,_0x7246x4)+_0xa4d4[168],_0x7246x5[_0xa4d4[124]][_0xa4d4[2479]]=Math[_0xa4d4[160]](1,_0x7246x3)+_0xa4d4[168],_0x7246x5[_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[118],_0x7246x5[_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[118]):mxClient[_0xa4d4[496]]?this[_0xa4d4[441]][_0xa4d4[2320]](Math[_0xa4d4[160]](1,_0x7246x4),Math[_0xa4d4[160]](1,_0x7246x3)):(this[_0xa4d4[441]][_0xa4d4[510]][_0xa4d4[124]][_0xa4d4[2478]]=Math[_0xa4d4[160]](1,_0x7246x4)+_0xa4d4[168],this[_0xa4d4[441]][_0xa4d4[510]][_0xa4d4[124]][_0xa4d4[2479]]=Math[_0xa4d4[160]](1,_0x7246x3)+_0xa4d4[168]);this[_0xa4d4[2480]](this[_0xa4d4[2357]],_0x7246x4-1,_0x7246x3-1);};this[_0xa4d4[746]]( new mxEventObject(mxEvent.SIZE,_0xa4d4[1562],_0x7246x2));};mxGraph[_0xa4d4[202]][_0xa4d4[2477]]=function(_0x7246x2,_0x7246x3){if(mxClient[_0xa4d4[80]]){if(mxClient[_0xa4d4[496]]){var _0x7246x4=this[_0xa4d4[2465]]();_0x7246x2+=Math[_0xa4d4[160]](2,_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]+1);_0x7246x3+=Math[_0xa4d4[160]](2,_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]+1);}else {9<=document[_0xa4d4[5]]?(_0x7246x2+=3,_0x7246x3+=5):(_0x7246x2+=1,_0x7246x3+=1)}}else {_0x7246x3+=1};null!=this[_0xa4d4[2388]]&&(_0x7246x2=Math[_0xa4d4[243]](this[_0xa4d4[2388]][_0xa4d4[117]],_0x7246x2),_0x7246x3=Math[_0xa4d4[243]](this[_0xa4d4[2388]][_0xa4d4[119]],_0x7246x3));this[_0xa4d4[526]][_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[430]](_0x7246x2)+_0xa4d4[168];this[_0xa4d4[526]][_0xa4d4[124]][_0xa4d4[119]]=Math[_0xa4d4[430]](_0x7246x3)+_0xa4d4[168];};mxGraph[_0xa4d4[202]][_0xa4d4[2480]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x9=this[_0xa4d4[441]][_0xa4d4[513]],_0x7246xa=this[_0xa4d4[2013]],_0x7246x12=_0x7246x5*this[_0xa4d4[2012]],_0x7246x9= new mxRectangle(_0x7246x5*_0x7246x9[_0xa4d4[235]],_0x7246x5*_0x7246x9[_0xa4d4[236]],_0x7246xa[_0xa4d4[117]]*_0x7246x12,_0x7246xa[_0xa4d4[119]]*_0x7246x12);_0x7246x2=_0x7246x2&&Math[_0xa4d4[243]](_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]])>this[_0xa4d4[2360]];_0x7246x9[_0xa4d4[235]]=mxUtils[_0xa4d4[1454]](_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[117]]);_0x7246x9[_0xa4d4[236]]=mxUtils[_0xa4d4[1454]](_0x7246x9[_0xa4d4[236]],_0x7246x9[_0xa4d4[119]]);_0x7246xa=_0x7246x2?Math[_0xa4d4[430]]((_0x7246x3-_0x7246x9[_0xa4d4[235]])/_0x7246x9[_0xa4d4[117]]):0;_0x7246x2=_0x7246x2?Math[_0xa4d4[430]]((_0x7246x4-_0x7246x9[_0xa4d4[236]])/_0x7246x9[_0xa4d4[119]]):0;null==this[_0xa4d4[2481]]&&0<_0x7246xa&&(this[_0xa4d4[2481]]=[]);if(null!=this[_0xa4d4[2481]]){for(_0x7246x12=0;_0x7246x12<=_0x7246xa;_0x7246x12++){var _0x7246x13=[ new mxPoint(_0x7246x9[_0xa4d4[235]]+_0x7246x12*_0x7246x9[_0xa4d4[117]],1), new mxPoint(_0x7246x9[_0xa4d4[235]]+_0x7246x12*_0x7246x9[_0xa4d4[117]],_0x7246x4)];null!=this[_0xa4d4[2481]][_0x7246x12]?(this[_0xa4d4[2481]][_0x7246x12][_0xa4d4[255]]=1,this[_0xa4d4[2481]][_0x7246x12][_0xa4d4[1525]]=_0x7246x13,this[_0xa4d4[2481]][_0x7246x12][_0xa4d4[258]]()):(_0x7246x13= new mxPolyline(_0x7246x13,this[_0xa4d4[2358]],this[_0xa4d4[255]]),_0x7246x13[_0xa4d4[507]]=this[_0xa4d4[507]],_0x7246x13[_0xa4d4[1522]]=this[_0xa4d4[2359]],_0x7246x13[_0xa4d4[255]]=_0x7246x5,_0x7246x13[_0xa4d4[176]](this[_0xa4d4[441]][_0xa4d4[2053]]),_0x7246x13[_0xa4d4[258]](),this[_0xa4d4[2481]][_0x7246x12]=_0x7246x13);};for(_0x7246x12=_0x7246xa;_0x7246x12<this[_0xa4d4[2481]][_0xa4d4[67]];_0x7246x12++){this[_0xa4d4[2481]][_0x7246x12][_0xa4d4[515]]()};this[_0xa4d4[2481]][_0xa4d4[300]](_0x7246xa,this[_0xa4d4[2481]][_0xa4d4[67]]-_0x7246xa);};null==this[_0xa4d4[2482]]&&0<_0x7246x2&&(this[_0xa4d4[2482]]=[]);if(null!=this[_0xa4d4[2482]]){for(_0x7246x12=0;_0x7246x12<=_0x7246x2;_0x7246x12++){_0x7246x13=[ new mxPoint(1,_0x7246x9[_0xa4d4[236]]+_0x7246x12*_0x7246x9[_0xa4d4[119]]), new mxPoint(_0x7246x3,_0x7246x9[_0xa4d4[236]]+_0x7246x12*_0x7246x9[_0xa4d4[119]])],null!=this[_0xa4d4[2482]][_0x7246x12]?(this[_0xa4d4[2482]][_0x7246x12][_0xa4d4[255]]=1,this[_0xa4d4[2482]][_0x7246x12][_0xa4d4[1525]]=_0x7246x13,this[_0xa4d4[2482]][_0x7246x12][_0xa4d4[258]]()):(_0x7246x13= new mxPolyline(_0x7246x13,this[_0xa4d4[2358]],_0x7246x5),_0x7246x13[_0xa4d4[507]]=this[_0xa4d4[507]],_0x7246x13[_0xa4d4[1522]]=this[_0xa4d4[2359]],_0x7246x13[_0xa4d4[255]]=_0x7246x5,_0x7246x13[_0xa4d4[176]](this[_0xa4d4[441]][_0xa4d4[2053]]),_0x7246x13[_0xa4d4[258]](),this[_0xa4d4[2482]][_0x7246x12]=_0x7246x13)};for(_0x7246x12=_0x7246x2;_0x7246x12<this[_0xa4d4[2482]][_0xa4d4[67]];_0x7246x12++){this[_0xa4d4[2482]][_0x7246x12][_0xa4d4[515]]()};this[_0xa4d4[2482]][_0xa4d4[300]](_0x7246x2,this[_0xa4d4[2482]][_0xa4d4[67]]-_0x7246x2);};};mxGraph[_0xa4d4[202]][_0xa4d4[1705]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[474]](_0x7246x2),_0x7246x4=null,_0x7246x4=this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)?this[_0xa4d4[94]][_0xa4d4[2077]]():this[_0xa4d4[94]][_0xa4d4[2076]]();null!=_0x7246x3&&(_0x7246x4=this[_0xa4d4[2483]](this[_0xa4d4[94]][_0xa4d4[1705]](_0x7246x3,_0x7246x4)));null==_0x7246x4&&(_0x7246x4=mxGraph[_0xa4d4[202]][_0xa4d4[2346]]);return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[2483]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=_0x7246x2[mxConstants[_0xa4d4[2484]]],_0x7246x4=this[_0xa4d4[2485]](_0x7246x3);null!=_0x7246x4?_0x7246x2[mxConstants[_0xa4d4[2484]]]=_0x7246x4:_0x7246x4=_0x7246x3;null!=_0x7246x4&&_0xa4d4[2486]==_0x7246x4[_0xa4d4[85]](0,11)&&(_0x7246x3=_0x7246x4[_0xa4d4[2]](_0xa4d4[537]),0<_0x7246x3&&(_0x7246x4=_0x7246x4[_0xa4d4[85]](0,_0x7246x3)+_0xa4d4[2487]+_0x7246x4[_0xa4d4[85]](_0x7246x3+1)),_0x7246x2[mxConstants[_0xa4d4[2484]]]=_0x7246x4);};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2488]]=function(_0x7246x2,_0x7246x3){_0x7246x3=_0x7246x3||this[_0xa4d4[897]]();if(null!=_0x7246x3){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<_0x7246x3[_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[251]][_0xa4d4[475]](_0x7246x3[_0x7246x4],_0x7246x2)}}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};};};mxGraph[_0xa4d4[202]][_0xa4d4[2489]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=_0x7246x4||this[_0xa4d4[2452]]();this[_0xa4d4[2490]](_0x7246x2,_0x7246x3,[_0x7246x4]);};mxGraph[_0xa4d4[202]][_0xa4d4[2490]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;_0x7246x4=_0x7246x4||this[_0xa4d4[897]]();if(null!=_0x7246x4&&0<_0x7246x4[_0xa4d4[67]]){var _0x7246x5=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x4[0]),_0x7246x5=null!=_0x7246x5?_0x7246x5[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x4[0]);null!=_0x7246x5&&(_0x7246x3=mxUtils[_0xa4d4[433]](_0x7246x5,_0x7246x2,_0x7246x3)?0:1,this[_0xa4d4[1717]](_0x7246x2,_0x7246x3,_0x7246x4));};};mxGraph[_0xa4d4[202]][_0xa4d4[1717]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=_0x7246x4||this[_0xa4d4[897]]();mxUtils[_0xa4d4[1717]](this[_0xa4d4[251]],_0x7246x4,_0x7246x2,_0x7246x3);};mxGraph[_0xa4d4[202]][_0xa4d4[2491]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[2492]](_0x7246x2,_0x7246x3,null,_0x7246x4)};mxGraph[_0xa4d4[202]][_0xa4d4[2492]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x5=_0x7246x5||this[_0xa4d4[897]]();if(null!=_0x7246x5&&0<_0x7246x5[_0xa4d4[67]]){if(null==_0x7246x4){var _0x7246x9=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x5[0]),_0x7246x9=null!=_0x7246x9?_0x7246x9[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x5[0]);null!=_0x7246x9&&(_0x7246x4=(parseInt(_0x7246x9[_0x7246x2]||0)&_0x7246x3)!=_0x7246x3);};mxUtils[_0xa4d4[2492]](this[_0xa4d4[251]],_0x7246x5,_0x7246x2,_0x7246x3,_0x7246x4);};};mxGraph[_0xa4d4[202]][_0xa4d4[849]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[897]]());if(null!=_0x7246x3&&1<_0x7246x3[_0xa4d4[67]]){if(null==_0x7246x4){for(var _0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=this[_0xa4d4[1198]](_0x7246x3[_0x7246x5]);if(null!=_0x7246x9&&!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x3[_0x7246x5])){if(null==_0x7246x4){if(_0x7246x2==mxConstants[_0xa4d4[479]]){_0x7246x4=_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]]/2;break;}else {if(_0x7246x2==mxConstants[_0xa4d4[480]]){_0x7246x4=_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]]}else {if(_0x7246x2==mxConstants[_0xa4d4[1687]]){_0x7246x4=_0x7246x9[_0xa4d4[236]]}else {if(_0x7246x2==mxConstants[_0xa4d4[481]]){_0x7246x4=_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]]/2;break;}else {_0x7246x4=_0x7246x2==mxConstants[_0xa4d4[482]]?_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]]:_0x7246x9[_0xa4d4[235]]}}}}}else {_0x7246x4=_0x7246x2==mxConstants[_0xa4d4[480]]?Math[_0xa4d4[160]](_0x7246x4,_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]]):_0x7246x2==mxConstants[_0xa4d4[1687]]?Math[_0xa4d4[243]](_0x7246x4,_0x7246x9[_0xa4d4[236]]):_0x7246x2==mxConstants[_0xa4d4[482]]?Math[_0xa4d4[160]](_0x7246x4,_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]]):Math[_0xa4d4[243]](_0x7246x4,_0x7246x9[_0xa4d4[235]])}};}};if(null!=_0x7246x4){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(_0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){_0x7246x9=this[_0xa4d4[1198]](_0x7246x3[_0x7246x5]),null!=_0x7246x9&&!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x3[_0x7246x5])&&(_0x7246x9=_0x7246x9[_0xa4d4[238]](),_0x7246x2==mxConstants[_0xa4d4[479]]?_0x7246x9[_0xa4d4[235]]=_0x7246x4-_0x7246x9[_0xa4d4[117]]/2:_0x7246x2==mxConstants[_0xa4d4[480]]?_0x7246x9[_0xa4d4[235]]=_0x7246x4-_0x7246x9[_0xa4d4[117]]:_0x7246x2==mxConstants[_0xa4d4[1687]]?_0x7246x9[_0xa4d4[236]]=_0x7246x4:_0x7246x2==mxConstants[_0xa4d4[481]]?_0x7246x9[_0xa4d4[236]]=_0x7246x4-_0x7246x9[_0xa4d4[119]]/2:_0x7246x2==mxConstants[_0xa4d4[482]]?_0x7246x9[_0xa4d4[236]]=_0x7246x4-_0x7246x9[_0xa4d4[119]]:_0x7246x9[_0xa4d4[235]]=_0x7246x4,this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x3[_0x7246x5],_0x7246x9))};this[_0xa4d4[746]]( new mxEventObject(mxEvent.ALIGN_CELLS,_0xa4d4[611],_0x7246x2,_0xa4d4[895],_0x7246x3));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};};};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[854]]=function(_0x7246x2){if(null!=_0x7246x2&&null!=this[_0xa4d4[2356]]){this[_0xa4d4[251]][_0xa4d4[473]]();try{var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[474]](_0x7246x2);null==_0x7246x3||0==_0x7246x3[_0xa4d4[67]]?this[_0xa4d4[251]][_0xa4d4[475]](_0x7246x2,this[_0xa4d4[2356]]):this[_0xa4d4[251]][_0xa4d4[475]](_0x7246x2,null);this[_0xa4d4[1809]](_0x7246x2);this[_0xa4d4[746]]( new mxEventObject(mxEvent.FLIP_EDGE,_0xa4d4[1989],_0x7246x2));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2493]]=function(_0x7246x2){this[_0xa4d4[2336]][_0xa4d4[207]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2494]]=function(_0x7246x2){for(var _0x7246x3=[],_0x7246x4=0;_0x7246x4<this[_0xa4d4[2336]][_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[2336]][_0x7246x4]!=_0x7246x2&&_0x7246x3[_0xa4d4[207]](this[_0xa4d4[2336]][_0x7246x4])};this[_0xa4d4[2336]]=_0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2485]]=function(_0x7246x2){if(null!=_0x7246x2){for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[2336]][_0xa4d4[67]];_0x7246x3++){var _0x7246x4=this[_0xa4d4[2336]][_0x7246x3][_0xa4d4[1202]](_0x7246x2);if(null!=_0x7246x4){return _0x7246x4};}};return null;};mxGraph[_0xa4d4[202]][_0xa4d4[840]]=function(_0x7246x2,_0x7246x3){null==_0x7246x3&&(_0x7246x3=mxUtils[_0xa4d4[1779]](this[_0xa4d4[897]](),!0));this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[841]](_0x7246x3,_0x7246x2),this[_0xa4d4[746]]( new mxEventObject(mxEvent.ORDER_CELLS,_0xa4d4[2495],_0x7246x2,_0xa4d4[895],_0x7246x3))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[841]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){var _0x7246x5=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0x7246x4]);_0x7246x3?this[_0xa4d4[251]][_0xa4d4[99]](_0x7246x5,_0x7246x2[_0x7246x4],_0x7246x4):this[_0xa4d4[251]][_0xa4d4[99]](_0x7246x5,_0x7246x2[_0x7246x4],this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x5)-1);};this[_0xa4d4[746]]( new mxEventObject(mxEvent.CELLS_ORDERED,_0xa4d4[2495],_0x7246x3,_0xa4d4[895],_0x7246x2));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[844]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null==_0x7246x4&&(_0x7246x4=mxUtils[_0xa4d4[1779]](this[_0xa4d4[897]](),!0));_0x7246x4=this[_0xa4d4[2496]](_0x7246x4);null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[2497]](_0x7246x4));var _0x7246x5=this[_0xa4d4[2498]](_0x7246x2,_0x7246x4,_0x7246x3);if(0<_0x7246x4[_0xa4d4[67]]&&null!=_0x7246x5){var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2);null==_0x7246x9&&(_0x7246x9=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x4[0]));this[_0xa4d4[251]][_0xa4d4[473]]();try{null==this[_0xa4d4[1198]](_0x7246x2)&&this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2, new mxGeometry);var _0x7246xa=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x9);this[_0xa4d4[833]]([_0x7246x2],_0x7246x9,_0x7246xa,null,null,!1);_0x7246xa=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2);this[_0xa4d4[833]](_0x7246x4,_0x7246x2,_0x7246xa,null,null,!1,!1);this[_0xa4d4[835]](_0x7246x4,-_0x7246x5[_0xa4d4[235]],-_0x7246x5[_0xa4d4[236]],!1,!0);this[_0xa4d4[837]]([_0x7246x2],[_0x7246x5]);this[_0xa4d4[746]]( new mxEventObject(mxEvent.GROUP_CELLS,_0xa4d4[1504],_0x7246x2,_0xa4d4[467],_0x7246x3,_0xa4d4[895],_0x7246x4));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2496]]=function(_0x7246x2){var _0x7246x3=[];if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){var _0x7246x4=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[0]);_0x7246x3[_0xa4d4[207]](_0x7246x2[0]);for(var _0x7246x5=1;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0x7246x5])==_0x7246x4&&_0x7246x3[_0xa4d4[207]](_0x7246x2[_0x7246x5])};};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2498]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=this[_0xa4d4[1729]](_0x7246x3);null!=_0x7246x3&&(this[_0xa4d4[1730]](_0x7246x2)&&(_0x7246x2=this[_0xa4d4[1731]](_0x7246x2),_0x7246x3[_0xa4d4[235]]-=_0x7246x2[_0xa4d4[117]],_0x7246x3[_0xa4d4[236]]-=_0x7246x2[_0xa4d4[119]],_0x7246x3[_0xa4d4[117]]+=_0x7246x2[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]+=_0x7246x2[_0xa4d4[119]]),_0x7246x3[_0xa4d4[235]]-=_0x7246x4,_0x7246x3[_0xa4d4[236]]-=_0x7246x4,_0x7246x3[_0xa4d4[117]]+=2*_0x7246x4,_0x7246x3[_0xa4d4[119]]+=2*_0x7246x4);return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2497]]=function(_0x7246x2){_0x7246x2= new mxCell(_0xa4d4[110]);_0x7246x2[_0xa4d4[1993]](!0);_0x7246x2[_0xa4d4[1995]](!1);return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[845]]=function(_0x7246x2){var _0x7246x3=[];if(null==_0x7246x2){_0x7246x2=this[_0xa4d4[897]]();for(var _0x7246x4=[],_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){0<this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2[_0x7246x5])&&_0x7246x4[_0xa4d4[207]](_0x7246x2[_0x7246x5])};_0x7246x2=_0x7246x4;};if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[1953]](_0x7246x2[_0x7246x5]);if(null!=_0x7246x9&&0<_0x7246x9[_0xa4d4[67]]){var _0x7246x9=_0x7246x9[_0xa4d4[1853]](),_0x7246xa=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0x7246x5]),_0x7246x12=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246xa);this[_0xa4d4[833]](_0x7246x9,_0x7246xa,_0x7246x12,null,null,!0);_0x7246x3=_0x7246x3[_0xa4d4[1919]](_0x7246x9);};};this[_0xa4d4[843]](this[_0xa4d4[2499]](_0x7246x2));this[_0xa4d4[746]]( new mxEventObject(mxEvent.UNGROUP_CELLS,_0xa4d4[895],_0x7246x2));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[846]]=function(_0x7246x2){null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[897]]());this[_0xa4d4[251]][_0xa4d4[473]]();try{var _0x7246x3=this[_0xa4d4[902]](),_0x7246x4=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x3);this[_0xa4d4[833]](_0x7246x2,_0x7246x3,_0x7246x4,null,null,!0);this[_0xa4d4[746]]( new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,_0xa4d4[895],_0x7246x2));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[1917]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[897]]());_0x7246x3=null!=_0x7246x3?_0x7246x3:0;_0x7246x4=null!=_0x7246x4?_0x7246x4:!1;this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=this[_0xa4d4[1198]](_0x7246x2[_0x7246x5]);if(null!=_0x7246x9){var _0x7246xa=this[_0xa4d4[1955]](_0x7246x2[_0x7246x5]);if(null!=_0x7246xa&&0<_0x7246xa[_0xa4d4[67]]){var _0x7246x12=this[_0xa4d4[1729]](_0x7246xa);if(0<_0x7246x12[_0xa4d4[117]]&&0<_0x7246x12[_0xa4d4[119]]){var _0x7246x13=this[_0xa4d4[1730]](_0x7246x2[_0x7246x5])?this[_0xa4d4[1731]](_0x7246x2[_0x7246x5]): new mxRectangle,_0x7246x9=_0x7246x9[_0xa4d4[238]]();_0x7246x4&&(_0x7246x9[_0xa4d4[235]]+=_0x7246x12[_0xa4d4[235]]-_0x7246x13[_0xa4d4[117]]-_0x7246x3,_0x7246x9[_0xa4d4[236]]+=_0x7246x12[_0xa4d4[236]]-_0x7246x13[_0xa4d4[119]]-_0x7246x3);_0x7246x9[_0xa4d4[117]]=_0x7246x12[_0xa4d4[117]]+_0x7246x13[_0xa4d4[117]]+2*_0x7246x3;_0x7246x9[_0xa4d4[119]]=_0x7246x12[_0xa4d4[119]]+_0x7246x13[_0xa4d4[119]]+2*_0x7246x3;this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2[_0x7246x5],_0x7246x9);this[_0xa4d4[834]](_0x7246xa,-_0x7246x12[_0xa4d4[235]]+_0x7246x13[_0xa4d4[117]]+_0x7246x3,-_0x7246x12[_0xa4d4[236]]+_0x7246x13[_0xa4d4[119]]+_0x7246x3);};};};}}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[899]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;var _0x7246x4=null;if(null!=_0x7246x2){for(var _0x7246x5={},_0x7246x4=[],_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2[_0x7246x9]);_0x7246x5[_0x7246xa]=_0x7246x2[_0x7246x9];_0x7246x4[_0xa4d4[207]](_0x7246x2[_0x7246x9]);};if(0<_0x7246x4[_0xa4d4[67]]){for(var _0x7246xa=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x12=this[_0xa4d4[441]][_0xa4d4[513]],_0x7246x4=this[_0xa4d4[251]][_0xa4d4[899]](_0x7246x2,!0),_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){if(!_0x7246x3&&this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x4[_0x7246x9])&&null!=this[_0xa4d4[2500]](_0x7246x4[_0x7246x9],this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x4[_0x7246x9],!0),this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x4[_0x7246x9],!1))){_0x7246x4[_0x7246x9]=null}else {var _0x7246x13=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x4[_0x7246x9]);if(null!=_0x7246x13){var _0x7246x14=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2[_0x7246x9]),_0x7246x15=this[_0xa4d4[441]][_0xa4d4[248]](this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0x7246x9]));if(null!=_0x7246x14&&null!=_0x7246x15){var _0x7246x16=_0x7246x15[_0xa4d4[2078]][_0xa4d4[235]],_0x7246x15=_0x7246x15[_0xa4d4[2078]][_0xa4d4[236]];if(this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x4[_0x7246x9])){for(var _0x7246x14=_0x7246x14[_0xa4d4[439]],_0x7246x17=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2[_0x7246x9],!0),_0x7246x18=mxCellPath[_0xa4d4[385]](_0x7246x17);null!=_0x7246x17&&null==_0x7246x5[_0x7246x18];){_0x7246x17=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x17),_0x7246x18=mxCellPath[_0xa4d4[385]](_0x7246x17)};null==_0x7246x17&&_0x7246x13[_0xa4d4[2007]]( new mxPoint(_0x7246x14[0][_0xa4d4[235]]/_0x7246xa-_0x7246x12[_0xa4d4[235]],_0x7246x14[0][_0xa4d4[236]]/_0x7246xa-_0x7246x12[_0xa4d4[236]]),!0);_0x7246x17=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2[_0x7246x9],!1);for(_0x7246x18=mxCellPath[_0xa4d4[385]](_0x7246x17);null!=_0x7246x17&&null==_0x7246x5[_0x7246x18];){_0x7246x17=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x17),_0x7246x18=mxCellPath[_0xa4d4[385]](_0x7246x17)};null==_0x7246x17&&(_0x7246x17=_0x7246x14[_0xa4d4[67]]-1,_0x7246x13[_0xa4d4[2007]]( new mxPoint(_0x7246x14[_0x7246x17][_0xa4d4[235]]/_0x7246xa-_0x7246x12[_0xa4d4[235]],_0x7246x14[_0x7246x17][_0xa4d4[236]]/_0x7246xa-_0x7246x12[_0xa4d4[236]]),!1));_0x7246x13=_0x7246x13[_0xa4d4[1525]];if(null!=_0x7246x13){for(_0x7246x14=0;_0x7246x14<_0x7246x13[_0xa4d4[67]];_0x7246x14++){_0x7246x13[_0x7246x14][_0xa4d4[235]]+=_0x7246x16,_0x7246x13[_0x7246x14][_0xa4d4[236]]+=_0x7246x15}};}else {_0x7246x13[_0xa4d4[235]]+=_0x7246x16,_0x7246x13[_0xa4d4[236]]+=_0x7246x15};};};}}}else {_0x7246x4=[]};};return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[2501]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){_0x7246x3=this[_0xa4d4[2502]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14);return this[_0xa4d4[2103]](_0x7246x3,_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[2502]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){_0x7246x2= new mxGeometry(_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12);_0x7246x2[_0xa4d4[1500]]=null!=_0x7246x14?_0x7246x14:!1;_0x7246x4= new mxCell(_0x7246x4,_0x7246x2,_0x7246x13);_0x7246x4[_0xa4d4[1945]](_0x7246x3);_0x7246x4[_0xa4d4[1993]](!0);_0x7246x4[_0xa4d4[1995]](!0);return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[1960]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x3=this[_0xa4d4[2503]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa);return this[_0xa4d4[2504]](_0x7246x3,_0x7246x2,_0x7246x5,_0x7246x9);};mxGraph[_0xa4d4[202]][_0xa4d4[2503]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x2= new mxCell(_0x7246x4, new mxGeometry,_0x7246xa);_0x7246x2[_0xa4d4[1945]](_0x7246x3);_0x7246x2[_0xa4d4[1994]](!0);_0x7246x2[_0xa4d4[256]][_0xa4d4[1500]]= !0;return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2504]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){return this[_0xa4d4[2103]](_0x7246x2,_0x7246x3,_0x7246x9,_0x7246x4,_0x7246x5)};mxGraph[_0xa4d4[202]][_0xa4d4[2103]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){return this[_0xa4d4[832]]([_0x7246x2],_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9)[0]};mxGraph[_0xa4d4[202]][_0xa4d4[832]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[902]]());null==_0x7246x4&&(_0x7246x4=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x3));this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[833]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,!1,!0),this[_0xa4d4[746]]( new mxEventObject(mxEvent.ADD_CELLS,_0xa4d4[895],_0x7246x2,_0xa4d4[1101],_0x7246x3,_0xa4d4[1983],_0x7246x4,_0xa4d4[1097],_0x7246x5,_0xa4d4[772],_0x7246x9))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[833]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12){if(null!=_0x7246x2&&null!=_0x7246x3&&null!=_0x7246x4){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x13=_0x7246xa?this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x3):null,_0x7246x14=null!=_0x7246x13?_0x7246x13[_0xa4d4[2078]]:null,_0x7246x15= new mxPoint(0,0),_0x7246x13=0;_0x7246x13<_0x7246x2[_0xa4d4[67]];_0x7246x13++){if(null==_0x7246x2[_0x7246x13]){_0x7246x4--}else {var _0x7246x16=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0x7246x13]);if(null!=_0x7246x14&&_0x7246x2[_0x7246x13]!=_0x7246x3&&_0x7246x3!=_0x7246x16){var _0x7246x17=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x16),_0x7246x18=null!=_0x7246x17?_0x7246x17[_0xa4d4[2078]]:_0x7246x15,_0x7246x19=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2[_0x7246x13]);if(null!=_0x7246x19){var _0x7246x1a=_0x7246x18[_0xa4d4[235]]-_0x7246x14[_0xa4d4[235]],_0x7246x1b=_0x7246x18[_0xa4d4[236]]-_0x7246x14[_0xa4d4[236]],_0x7246x19=_0x7246x19[_0xa4d4[238]]();_0x7246x19[_0xa4d4[513]](_0x7246x1a,_0x7246x1b);!_0x7246x19[_0xa4d4[1500]]&&(this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x2[_0x7246x13])&&!this[_0xa4d4[2505]]())&&(_0x7246x19[_0xa4d4[235]]=Math[_0xa4d4[160]](0,_0x7246x19[_0xa4d4[235]]),_0x7246x19[_0xa4d4[236]]=Math[_0xa4d4[160]](0,_0x7246x19[_0xa4d4[236]]));this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2[_0x7246x13],_0x7246x19);};};_0x7246x3==_0x7246x16&&_0x7246x4+_0x7246x13>this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x3)&&_0x7246x4--;this[_0xa4d4[251]][_0xa4d4[99]](_0x7246x3,_0x7246x2[_0x7246x13],_0x7246x4+_0x7246x13);this[_0xa4d4[2506]]()&&this[_0xa4d4[2507]](_0x7246x2[_0x7246x13])&&this[_0xa4d4[2508]](_0x7246x2[_0x7246x13]);(null==_0x7246x12||_0x7246x12)&&this[_0xa4d4[2509]](_0x7246x2[_0x7246x13]);null!=_0x7246x5&&this[_0xa4d4[852]](_0x7246x2[_0x7246x13],_0x7246x5,!0);null!=_0x7246x9&&this[_0xa4d4[852]](_0x7246x2[_0x7246x13],_0x7246x9,!1);}};this[_0xa4d4[746]]( new mxEventObject(mxEvent.CELLS_ADDED,_0xa4d4[895],_0x7246x2,_0xa4d4[1101],_0x7246x3,_0xa4d4[1983],_0x7246x4,_0xa4d4[1097],_0x7246x5,_0xa4d4[772],_0x7246x9,_0xa4d4[492],_0x7246xa));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[842]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[2510]](this[_0xa4d4[897]]()));_0x7246x3&&(_0x7246x2=this[_0xa4d4[2510]](this[_0xa4d4[2499]](_0x7246x2)));this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[843]](_0x7246x2),this[_0xa4d4[746]]( new mxEventObject(mxEvent.REMOVE_CELLS,_0xa4d4[895],_0x7246x2,_0xa4d4[2511],_0x7246x3))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[843]]=function(_0x7246x2){if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x4=this[_0xa4d4[441]][_0xa4d4[513]];this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x5={},_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2[_0x7246x9]);_0x7246x5[_0x7246xa]=_0x7246x2[_0x7246x9];};for(_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){for(var _0x7246x12=this[_0xa4d4[1756]](_0x7246x2[_0x7246x9]),_0x7246x13=0;_0x7246x13<_0x7246x12[_0xa4d4[67]];_0x7246x13++){if(_0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x12[_0x7246x13]),null==_0x7246x5[_0x7246xa]){var _0x7246x14=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x12[_0x7246x13]);if(null!=_0x7246x14){var _0x7246x15=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x12[_0x7246x13]);if(null!=_0x7246x15){var _0x7246x14=_0x7246x14[_0xa4d4[238]](),_0x7246x16=_0x7246x15[_0xa4d4[1710]](!0)==_0x7246x2[_0x7246x9],_0x7246x17=_0x7246x15[_0xa4d4[439]],_0x7246x18=_0x7246x16?0:_0x7246x17[_0xa4d4[67]]-1;_0x7246x14[_0xa4d4[2007]]( new mxPoint(_0x7246x17[_0x7246x18][_0xa4d4[235]]/_0x7246x3-_0x7246x4[_0xa4d4[235]],_0x7246x17[_0x7246x18][_0xa4d4[236]]/_0x7246x3-_0x7246x4[_0xa4d4[236]]),_0x7246x16);this[_0xa4d4[251]][_0xa4d4[1957]](_0x7246x12[_0x7246x13],null,_0x7246x16);this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x12[_0x7246x13],_0x7246x14);};};}};this[_0xa4d4[251]][_0xa4d4[205]](_0x7246x2[_0x7246x9]);};this[_0xa4d4[746]]( new mxEventObject(mxEvent.CELLS_REMOVED,_0xa4d4[895],_0x7246x2));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[853]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x5=_0x7246x5||0;_0x7246x9=_0x7246x9||0;null==_0x7246x4&&(_0x7246x4=this[_0xa4d4[899]]([_0x7246x2])[0]);var _0x7246xa=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2),_0x7246x12=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!0);this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[835]](_0x7246x3,_0x7246x5,_0x7246x9,!1,!1),this[_0xa4d4[833]](_0x7246x3,_0x7246xa,this[_0xa4d4[251]][_0xa4d4[262]](_0x7246xa),null,null,!0),this[_0xa4d4[833]]([_0x7246x4],_0x7246xa,this[_0xa4d4[251]][_0xa4d4[262]](_0x7246xa),_0x7246x12,_0x7246x3[0],!1),this[_0xa4d4[852]](_0x7246x2,_0x7246x3[0],!0),this[_0xa4d4[746]]( new mxEventObject(mxEvent.SPLIT_EDGE,_0xa4d4[1989],_0x7246x2,_0xa4d4[895],_0x7246x3,_0xa4d4[2512],_0x7246x4,_0xa4d4[1126],_0x7246x5,_0xa4d4[1125],_0x7246x9))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[838]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[897]]());_0x7246x4&&(_0x7246x3=this[_0xa4d4[2499]](_0x7246x3));this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[839]](_0x7246x3,_0x7246x2),this[_0xa4d4[746]]( new mxEventObject(mxEvent.TOGGLE_CELLS,_0xa4d4[539],_0x7246x2,_0xa4d4[895],_0x7246x3,_0xa4d4[2511],_0x7246x4))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[839]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[251]][_0xa4d4[175]](_0x7246x2[_0x7246x4],_0x7246x3)}}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[847]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;null==_0x7246x4&&(_0x7246x4=this[_0xa4d4[2513]](this[_0xa4d4[897]](),_0x7246x2));this[_0xa4d4[2126]](!1);this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[848]](_0x7246x4,_0x7246x2,_0x7246x3,_0x7246x5),this[_0xa4d4[746]]( new mxEventObject(mxEvent.FOLD_CELLS,_0xa4d4[2514],_0x7246x2,_0xa4d4[2515],_0x7246x3,_0xa4d4[895],_0x7246x4))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[848]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){if((!_0x7246x5||this[_0xa4d4[2516]](_0x7246x2[_0x7246x9],_0x7246x3))&&_0x7246x3!=this[_0xa4d4[1742]](_0x7246x2[_0x7246x9])){if(this[_0xa4d4[251]][_0xa4d4[1972]](_0x7246x2[_0x7246x9],_0x7246x3),this[_0xa4d4[2517]](_0x7246x2[_0x7246x9],_0x7246x3),this[_0xa4d4[2507]](_0x7246x2[_0x7246x9])&&this[_0xa4d4[2508]](_0x7246x2[_0x7246x9]),_0x7246x4){var _0x7246xa=this[_0xa4d4[251]][_0xa4d4[1953]](_0x7246x2[_0x7246x9]);this[_0xa4d4[847]](_0x7246xa,_0x7246x3,_0x7246x4);}}};this[_0xa4d4[746]]( new mxEventObject(mxEvent.CELLS_FOLDED,_0xa4d4[895],_0x7246x2,_0xa4d4[2514],_0x7246x3,_0xa4d4[2515],_0x7246x4));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[2517]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2){var _0x7246x4=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2);null!=_0x7246x4&&(_0x7246x4=_0x7246x4[_0xa4d4[238]](),this[_0xa4d4[2518]](_0x7246x2,_0x7246x4,_0x7246x3),_0x7246x4[_0xa4d4[2005]](),this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2,_0x7246x4));}};mxGraph[_0xa4d4[202]][_0xa4d4[2518]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(null!=_0x7246x2&&null!=_0x7246x3){_0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x4=null!=_0x7246x4?_0x7246x4[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);if(null==_0x7246x3[_0xa4d4[2002]]){var _0x7246x5=_0x7246x3;this[_0xa4d4[2394]]&&(_0x7246x2=this[_0xa4d4[2519]](_0x7246x2),null!=_0x7246x2&&(_0x7246x5=_0x7246x2,_0x7246x2=mxUtils[_0xa4d4[433]](_0x7246x4,mxConstants.STYLE_STARTSIZE),0<_0x7246x2&&(_0x7246x5[_0xa4d4[119]]=Math[_0xa4d4[160]](_0x7246x5[_0xa4d4[119]],_0x7246x2))));_0x7246x3[_0xa4d4[2002]]= new mxRectangle(0,0,_0x7246x5[_0xa4d4[117]],_0x7246x5[_0xa4d4[119]]);};if(null!=_0x7246x3[_0xa4d4[2002]]){_0x7246x3[_0xa4d4[2002]][_0xa4d4[235]]=_0x7246x3[_0xa4d4[235]];_0x7246x3[_0xa4d4[2002]][_0xa4d4[236]]=_0x7246x3[_0xa4d4[236]];var _0x7246x9=mxUtils[_0xa4d4[431]](_0x7246x4[mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]);0!=_0x7246x9&&(_0x7246x2=_0x7246x3[_0xa4d4[2002]][_0xa4d4[241]]()-_0x7246x3[_0xa4d4[241]](),_0x7246x4=_0x7246x3[_0xa4d4[2002]][_0xa4d4[242]]()-_0x7246x3[_0xa4d4[242]](),_0x7246x5=Math[_0xa4d4[426]](_0x7246x9),_0x7246x9=Math[_0xa4d4[427]](_0x7246x9),_0x7246x3[_0xa4d4[2002]][_0xa4d4[235]]+=_0x7246x5*_0x7246x2-_0x7246x9*_0x7246x4-_0x7246x2,_0x7246x3[_0xa4d4[2002]][_0xa4d4[236]]+=_0x7246x9*_0x7246x2+_0x7246x5*_0x7246x4-_0x7246x4);};}};mxGraph[_0xa4d4[202]][_0xa4d4[2499]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[1853]]();return _0x7246x3=_0x7246x3[_0xa4d4[1919]](this[_0xa4d4[2520]](_0x7246x2));};mxGraph[_0xa4d4[202]][_0xa4d4[2520]]=function(_0x7246x2){var _0x7246x3=[];if(null!=_0x7246x2){for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){for(var _0x7246x5=this[_0xa4d4[251]][_0xa4d4[1707]](_0x7246x2[_0x7246x4]),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){_0x7246x3[_0xa4d4[207]](this[_0xa4d4[251]][_0xa4d4[1708]](_0x7246x2[_0x7246x4],_0x7246x9))};_0x7246x5=this[_0xa4d4[251]][_0xa4d4[1953]](_0x7246x2[_0x7246x4]);_0x7246x3=_0x7246x3[_0xa4d4[1919]](this[_0xa4d4[2520]](_0x7246x5));}};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[858]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[2457]](_0x7246x2,_0x7246x3),this[_0xa4d4[746]]( new mxEventObject(mxEvent.UPDATE_CELL_SIZE,_0xa4d4[246],_0x7246x2,_0xa4d4[2521],_0x7246x3))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2457]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2){this[_0xa4d4[251]][_0xa4d4[473]]();try{var _0x7246x4=this[_0xa4d4[2519]](_0x7246x2),_0x7246x5=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2);if(null!=_0x7246x4&&null!=_0x7246x5){var _0x7246x9=this[_0xa4d4[1742]](_0x7246x2),_0x7246x5=_0x7246x5[_0xa4d4[238]]();if(this[_0xa4d4[1730]](_0x7246x2)){var _0x7246xa=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x12=null!=_0x7246xa?_0x7246xa[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2),_0x7246x13=this[_0xa4d4[251]][_0xa4d4[474]](_0x7246x2);null==_0x7246x13&&(_0x7246x13=_0xa4d4[110]);mxUtils[_0xa4d4[433]](_0x7246x12,mxConstants.STYLE_HORIZONTAL,!0)?(_0x7246x13=mxUtils[_0xa4d4[475]](_0x7246x13,mxConstants.STYLE_STARTSIZE,_0x7246x4[_0xa4d4[119]]+8),_0x7246x9&&(_0x7246x5[_0xa4d4[119]]=_0x7246x4[_0xa4d4[119]]+8),_0x7246x5[_0xa4d4[117]]=_0x7246x4[_0xa4d4[117]]):(_0x7246x13=mxUtils[_0xa4d4[475]](_0x7246x13,mxConstants.STYLE_STARTSIZE,_0x7246x4[_0xa4d4[117]]+8),_0x7246x9&&(_0x7246x5[_0xa4d4[117]]=_0x7246x4[_0xa4d4[117]]+8),_0x7246x5[_0xa4d4[119]]=_0x7246x4[_0xa4d4[119]]);this[_0xa4d4[251]][_0xa4d4[475]](_0x7246x2,_0x7246x13);}else {_0x7246x5[_0xa4d4[117]]=_0x7246x4[_0xa4d4[117]],_0x7246x5[_0xa4d4[119]]=_0x7246x4[_0xa4d4[119]]};if(!_0x7246x3&& !_0x7246x9){var _0x7246x14=this[_0xa4d4[441]][_0xa4d4[1799]](this[_0xa4d4[251]][_0xa4d4[1953]](_0x7246x2));if(null!=_0x7246x14){var _0x7246x15=this[_0xa4d4[441]][_0xa4d4[513]],_0x7246x16=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x17=(_0x7246x14[_0xa4d4[236]]+_0x7246x14[_0xa4d4[119]])/_0x7246x16-_0x7246x5[_0xa4d4[236]]-_0x7246x15[_0xa4d4[236]];_0x7246x5[_0xa4d4[117]]=Math[_0xa4d4[160]](_0x7246x5[_0xa4d4[117]],(_0x7246x14[_0xa4d4[235]]+_0x7246x14[_0xa4d4[117]])/_0x7246x16-_0x7246x5[_0xa4d4[235]]-_0x7246x15[_0xa4d4[235]]);_0x7246x5[_0xa4d4[119]]=Math[_0xa4d4[160]](_0x7246x5[_0xa4d4[119]],_0x7246x17);};};this[_0xa4d4[837]]([_0x7246x2],[_0x7246x5]);};}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[2519]]=function(_0x7246x2){var _0x7246x3=null;if(null!=_0x7246x2){var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x5=null!=_0x7246x4?_0x7246x4[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);if(null!=_0x7246x5&&!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)){var _0x7246x9=_0x7246x5[mxConstants[_0xa4d4[2185]]]||mxConstants[_0xa4d4[483]],_0x7246xa=0,_0x7246x3=0;if((null!=this[_0xa4d4[1202]](_0x7246x4)||null!=_0x7246x5[mxConstants[_0xa4d4[2484]]])&&_0x7246x5[mxConstants[_0xa4d4[2059]]]==mxConstants[_0xa4d4[2522]]){_0x7246x5[mxConstants[_0xa4d4[2063]]]==mxConstants[_0xa4d4[481]]&&(_0x7246xa+=parseFloat(_0x7246x5[mxConstants[_0xa4d4[2523]]])||mxLabel[_0xa4d4[202]][_0xa4d4[1680]]),_0x7246x5[mxConstants[_0xa4d4[2064]]]!=mxConstants[_0xa4d4[479]]&&(_0x7246x3+=parseFloat(_0x7246x5[mxConstants[_0xa4d4[2524]]])||mxLabel[_0xa4d4[202]][_0xa4d4[1680]])};_0x7246xa+=2*(_0x7246x5[mxConstants[_0xa4d4[2143]]]||0);_0x7246xa+=_0x7246x5[mxConstants[_0xa4d4[2147]]]||0;_0x7246xa+=_0x7246x5[mxConstants[_0xa4d4[2145]]]||0;_0x7246x3+=2*(_0x7246x5[mxConstants[_0xa4d4[2143]]]||0);_0x7246x3+=_0x7246x5[mxConstants[_0xa4d4[2144]]]||0;_0x7246x3+=_0x7246x5[mxConstants[_0xa4d4[2146]]]||0;_0x7246x4=this[_0xa4d4[2205]](_0x7246x4);null!=_0x7246x4&&(_0x7246xa+=_0x7246x4[_0xa4d4[117]]+8);_0x7246x4=this[_0xa4d4[2183]](_0x7246x2);null!=_0x7246x4&&0<_0x7246x4[_0xa4d4[67]]?(this[_0xa4d4[2186]](_0x7246x2)||(_0x7246x4=_0x7246x4[_0xa4d4[230]](/\n/g,_0xa4d4[545])),_0x7246x9=mxUtils[_0xa4d4[2525]](_0x7246x4,_0x7246x9,_0x7246x5[mxConstants[_0xa4d4[2188]]]),_0x7246x2=_0x7246x9[_0xa4d4[117]]+_0x7246xa,_0x7246x3=_0x7246x9[_0xa4d4[119]]+_0x7246x3,mxUtils[_0xa4d4[433]](_0x7246x5,mxConstants.STYLE_HORIZONTAL,!0)||(_0x7246x5=_0x7246x3,_0x7246x3=_0x7246x2,_0x7246x2=_0x7246x5),this[_0xa4d4[991]]&&(_0x7246x2=this[_0xa4d4[1021]](_0x7246x2+this[_0xa4d4[1020]]/2),_0x7246x3=this[_0xa4d4[1021]](_0x7246x3+this[_0xa4d4[1020]]/2)),_0x7246x3= new mxRectangle(0,0,_0x7246x2,_0x7246x3)):(_0x7246x5=4*this[_0xa4d4[1020]],_0x7246x3= new mxRectangle(0,0,_0x7246x5,_0x7246x5));};};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2216]]=function(_0x7246x2,_0x7246x3){if(0.2<Math[_0xa4d4[425]](1-_0x7246x3[_0xa4d4[255]])){var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x5=this[_0xa4d4[441]][_0xa4d4[513]],_0x7246x9=_0x7246x2[_0xa4d4[117]]*_0x7246x3[_0xa4d4[255]],_0x7246xa=_0x7246x2[_0xa4d4[119]]*_0x7246x3[_0xa4d4[255]],_0x7246x12=_0x7246x2[_0xa4d4[236]]-(_0x7246xa-_0x7246x2[_0xa4d4[119]])/2,_0x7246x4= new mxRectangle(this[_0xa4d4[1021]]((_0x7246x2[_0xa4d4[235]]-(_0x7246x9-_0x7246x2[_0xa4d4[117]])/2)/_0x7246x4)-_0x7246x5[_0xa4d4[235]],this[_0xa4d4[1021]](_0x7246x12/_0x7246x4)-_0x7246x5[_0xa4d4[236]],this[_0xa4d4[1021]](_0x7246x9/_0x7246x4),this[_0xa4d4[1021]](_0x7246xa/_0x7246x4));this[_0xa4d4[2526]](_0x7246x2[_0xa4d4[246]],_0x7246x4);}};mxGraph[_0xa4d4[202]][_0xa4d4[2526]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[836]]([_0x7246x2],[_0x7246x3])[0]};mxGraph[_0xa4d4[202]][_0xa4d4[836]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[251]][_0xa4d4[473]]();try{this[_0xa4d4[837]](_0x7246x2,_0x7246x3),this[_0xa4d4[746]]( new mxEventObject(mxEvent.RESIZE_CELLS,_0xa4d4[895],_0x7246x2,_0xa4d4[1562],_0x7246x3))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[837]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&null!=_0x7246x3&&_0x7246x2[_0xa4d4[67]]==_0x7246x3[_0xa4d4[67]]){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){var _0x7246x5=_0x7246x3[_0x7246x4],_0x7246x9=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2[_0x7246x4]);if(null!=_0x7246x9&&(_0x7246x9[_0xa4d4[235]]!=_0x7246x5[_0xa4d4[235]]||_0x7246x9[_0xa4d4[236]]!=_0x7246x5[_0xa4d4[236]]||_0x7246x9[_0xa4d4[117]]!=_0x7246x5[_0xa4d4[117]]||_0x7246x9[_0xa4d4[119]]!=_0x7246x5[_0xa4d4[119]])){_0x7246x9=_0x7246x9[_0xa4d4[238]]();if(_0x7246x9[_0xa4d4[1500]]){var _0x7246xa=_0x7246x9[_0xa4d4[1368]];null!=_0x7246xa&&(_0x7246xa[_0xa4d4[235]]+=_0x7246x5[_0xa4d4[235]]-_0x7246x9[_0xa4d4[235]],_0x7246xa[_0xa4d4[236]]+=_0x7246x5[_0xa4d4[236]]-_0x7246x9[_0xa4d4[236]]);}else {_0x7246x9[_0xa4d4[235]]=_0x7246x5[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]]=_0x7246x5[_0xa4d4[236]]};_0x7246x9[_0xa4d4[117]]=_0x7246x5[_0xa4d4[117]];_0x7246x9[_0xa4d4[119]]=_0x7246x5[_0xa4d4[119]];!_0x7246x9[_0xa4d4[1500]]&&(this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x2[_0x7246x4])&&!this[_0xa4d4[2505]]())&&(_0x7246x9[_0xa4d4[235]]=Math[_0xa4d4[160]](0,_0x7246x9[_0xa4d4[235]]),_0x7246x9[_0xa4d4[236]]=Math[_0xa4d4[160]](0,_0x7246x9[_0xa4d4[236]]));this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2[_0x7246x4],_0x7246x9);this[_0xa4d4[2507]](_0x7246x2[_0x7246x4])&&this[_0xa4d4[2508]](_0x7246x2[_0x7246x4]);};};this[_0xa4d4[2399]]&&this[_0xa4d4[1750]](_0x7246x2);this[_0xa4d4[746]]( new mxEventObject(mxEvent.CELLS_RESIZED,_0xa4d4[895],_0x7246x2,_0xa4d4[1562],_0x7246x3));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[2508]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2),_0x7246x4=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x3);if(null!=_0x7246x3&&(null!=_0x7246x4&&!this[_0xa4d4[1742]](_0x7246x3))&&(_0x7246x2=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2),null!=_0x7246x2&&(_0x7246x4[_0xa4d4[117]]<_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]||_0x7246x4[_0xa4d4[119]]<_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]))){_0x7246x4=_0x7246x4[_0xa4d4[238]](),_0x7246x4[_0xa4d4[117]]=Math[_0xa4d4[160]](_0x7246x4[_0xa4d4[117]],_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]),_0x7246x4[_0xa4d4[119]]=Math[_0xa4d4[160]](_0x7246x4[_0xa4d4[119]],_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]),this[_0xa4d4[837]]([_0x7246x3],[_0x7246x4])};}};mxGraph[_0xa4d4[202]][_0xa4d4[903]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){return this[_0xa4d4[834]](_0x7246x2,_0x7246x3,_0x7246x4,!0,_0x7246x5,_0x7246x9)};mxGraph[_0xa4d4[202]][_0xa4d4[834]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x3=null!=_0x7246x3?_0x7246x3:0;_0x7246x4=null!=_0x7246x4?_0x7246x4:0;_0x7246x5=null!=_0x7246x5?_0x7246x5:!1;if(null!=_0x7246x2&&(0!=_0x7246x3||0!=_0x7246x4||_0x7246x5||null!=_0x7246x9)){this[_0xa4d4[251]][_0xa4d4[473]]();try{_0x7246x5&&(_0x7246x2=this[_0xa4d4[899]](_0x7246x2,this[_0xa4d4[2527]]()),null==_0x7246x9&&(_0x7246x9=this[_0xa4d4[902]]()));var _0x7246x12=this[_0xa4d4[2505]]();null!=_0x7246x9&&this[_0xa4d4[2528]](!0);this[_0xa4d4[835]](_0x7246x2,_0x7246x3,_0x7246x4,!_0x7246x5&&this[_0xa4d4[2529]]()&&this[_0xa4d4[2530]](),null==_0x7246x9);this[_0xa4d4[2528]](_0x7246x12);if(null!=_0x7246x9){var _0x7246x13=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x9);this[_0xa4d4[833]](_0x7246x2,_0x7246x9,_0x7246x13,null,null,!0);};this[_0xa4d4[746]]( new mxEventObject(mxEvent.MOVE_CELLS,_0xa4d4[895],_0x7246x2,_0xa4d4[1126],_0x7246x3,_0xa4d4[1125],_0x7246x4,_0xa4d4[238],_0x7246x5,_0xa4d4[772],_0x7246x9,_0xa4d4[763],_0x7246xa));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[835]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=_0x7246x2&&(0!=_0x7246x3||0!=_0x7246x4)){this[_0xa4d4[251]][_0xa4d4[473]]();try{_0x7246x5&&this[_0xa4d4[2531]](_0x7246x2);for(var _0x7246xa=0;_0x7246xa<_0x7246x2[_0xa4d4[67]];_0x7246xa++){this[_0xa4d4[2532]](_0x7246x2[_0x7246xa],_0x7246x3,_0x7246x4),_0x7246x9&&this[_0xa4d4[2509]](_0x7246x2[_0x7246xa])};this[_0xa4d4[2400]]&&this[_0xa4d4[1750]](_0x7246x2);this[_0xa4d4[746]]( new mxEventObject(mxEvent.CELLS_MOVED,_0xa4d4[895],_0x7246x2,_0xa4d4[1126],_0x7246x4,_0xa4d4[1125],_0x7246x4,_0xa4d4[808],_0x7246x5));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[2532]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2);null!=_0x7246x5&&(_0x7246x5=_0x7246x5[_0xa4d4[238]](),_0x7246x5[_0xa4d4[513]](_0x7246x3,_0x7246x4),!_0x7246x5[_0xa4d4[1500]]&&(this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x2)&&!this[_0xa4d4[2505]]())&&(_0x7246x5[_0xa4d4[235]]=Math[_0xa4d4[160]](0,_0x7246x5[_0xa4d4[235]]),_0x7246x5[_0xa4d4[236]]=Math[_0xa4d4[160]](0,_0x7246x5[_0xa4d4[236]])),_0x7246x5[_0xa4d4[1500]]&&!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)&&(null==_0x7246x5[_0xa4d4[1368]]?_0x7246x5[_0xa4d4[1368]]= new mxPoint(_0x7246x3,_0x7246x4):(_0x7246x5[_0xa4d4[1368]][_0xa4d4[235]]+=_0x7246x3,_0x7246x5[_0xa4d4[1368]][_0xa4d4[236]]+=_0x7246x4)),this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2,_0x7246x5));};mxGraph[_0xa4d4[202]][_0xa4d4[2533]]=function(_0x7246x2){if(null!=_0x7246x2&&!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2);if(_0x7246x3==this[_0xa4d4[902]]()||_0x7246x3==this[_0xa4d4[2534]]()){return this[_0xa4d4[2535]]()};if(null!=_0x7246x3&&_0x7246x3!=this[_0xa4d4[902]]()){var _0x7246x4=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x3);if(null!=_0x7246x4){var _0x7246x5=_0x7246x2=0,_0x7246x9=_0x7246x4[_0xa4d4[117]],_0x7246x4=_0x7246x4[_0xa4d4[119]];this[_0xa4d4[1730]](_0x7246x3)&&(_0x7246x3=this[_0xa4d4[1731]](_0x7246x3),_0x7246x2=_0x7246x3[_0xa4d4[117]],_0x7246x9-=_0x7246x3[_0xa4d4[117]],_0x7246x5=_0x7246x3[_0xa4d4[119]],_0x7246x4-=_0x7246x3[_0xa4d4[119]]);return  new mxRectangle(_0x7246x2,_0x7246x5,_0x7246x9,_0x7246x4);};};};return null;};mxGraph[_0xa4d4[202]][_0xa4d4[2535]]=function(){return this[_0xa4d4[2385]]};mxGraph[_0xa4d4[202]][_0xa4d4[2509]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2),_0x7246x4=this[_0xa4d4[2536]](_0x7246x2)?this[_0xa4d4[2533]](_0x7246x2):this[_0xa4d4[2535]]();if(null!=_0x7246x3&&null!=_0x7246x4&&!_0x7246x3[_0xa4d4[1500]]&&(_0x7246x3[_0xa4d4[235]]<_0x7246x4[_0xa4d4[235]]||_0x7246x3[_0xa4d4[236]]<_0x7246x4[_0xa4d4[236]]||_0x7246x4[_0xa4d4[117]]<_0x7246x3[_0xa4d4[235]]+_0x7246x3[_0xa4d4[117]]||_0x7246x4[_0xa4d4[119]]<_0x7246x3[_0xa4d4[236]]+_0x7246x3[_0xa4d4[119]])){_0x7246x2=this[_0xa4d4[2537]](_0x7246x2),0<_0x7246x4[_0xa4d4[117]]&&(_0x7246x3[_0xa4d4[235]]=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[235]],_0x7246x4[_0xa4d4[235]]+_0x7246x4[_0xa4d4[117]]-(1-_0x7246x2)*_0x7246x3[_0xa4d4[117]])),0<_0x7246x4[_0xa4d4[119]]&&(_0x7246x3[_0xa4d4[236]]=Math[_0xa4d4[243]](_0x7246x3[_0xa4d4[236]],_0x7246x4[_0xa4d4[236]]+_0x7246x4[_0xa4d4[119]]-(1-_0x7246x2)*_0x7246x3[_0xa4d4[119]])),_0x7246x3[_0xa4d4[235]]=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[235]],_0x7246x4[_0xa4d4[235]]-_0x7246x3[_0xa4d4[117]]*_0x7246x2),_0x7246x3[_0xa4d4[236]]=Math[_0xa4d4[160]](_0x7246x3[_0xa4d4[236]],_0x7246x4[_0xa4d4[236]]-_0x7246x3[_0xa4d4[119]]*_0x7246x2)};}};mxGraph[_0xa4d4[202]][_0xa4d4[1750]]=function(_0x7246x2){if(null!=_0x7246x2){for(var _0x7246x3={},_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){var _0x7246x5=mxCellPath[_0xa4d4[385]](_0x7246x2[_0x7246x4]);_0x7246x3[_0x7246x5]=_0x7246x2[_0x7246x4];};this[_0xa4d4[251]][_0xa4d4[473]]();try{for(_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[264]](_0x7246x2[_0x7246x4]);if(null!=_0x7246x9){for(_0x7246x5=0;_0x7246x5<_0x7246x9[_0xa4d4[67]];_0x7246x5++){var _0x7246xa=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x9[_0x7246x5]),_0x7246x12=null!=_0x7246xa?_0x7246xa[_0xa4d4[1710]](!0):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x9[_0x7246x5],!0),_0x7246x13=null!=_0x7246xa?_0x7246xa[_0xa4d4[1710]](!1):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x9[_0x7246x5],!1),_0x7246x14=mxCellPath[_0xa4d4[385]](_0x7246x12),_0x7246x15=mxCellPath[_0xa4d4[385]](_0x7246x13);(null==_0x7246x3[_0x7246x14]||null==_0x7246x3[_0x7246x15])&&this[_0xa4d4[1809]](_0x7246x9[_0x7246x5]);}};this[_0xa4d4[1750]](this[_0xa4d4[251]][_0xa4d4[1953]](_0x7246x2[_0x7246x4]));}}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[1809]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2);null!=_0x7246x3&&(null!=_0x7246x3[_0xa4d4[1525]]&&0<_0x7246x3[_0xa4d4[1525]][_0xa4d4[67]])&&(_0x7246x3=_0x7246x3[_0xa4d4[238]](),_0x7246x3[_0xa4d4[1525]]=[],this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2,_0x7246x3));return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2538]]=function(_0x7246x2,_0x7246x3){return null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[253]]&&null!=_0x7246x2[_0xa4d4[253]][_0xa4d4[1561]]?_0x7246x2[_0xa4d4[253]][_0xa4d4[1561]][_0xa4d4[1531]]:null};mxGraph[_0xa4d4[202]][_0xa4d4[2288]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=null;var _0x7246x5=_0x7246x2[_0xa4d4[124]][_0x7246x4?mxConstants[_0xa4d4[2539]]:mxConstants[_0xa4d4[2540]]];if(null!=_0x7246x5){var _0x7246x9=_0x7246x2[_0xa4d4[124]][_0x7246x4?mxConstants[_0xa4d4[2541]]:mxConstants[_0xa4d4[2542]]];null!=_0x7246x9&&(_0x7246x3= new mxPoint(parseFloat(_0x7246x5),parseFloat(_0x7246x9)));};_0x7246x5= !1;null!=_0x7246x3&&(_0x7246x5=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],_0x7246x4?mxConstants[_0xa4d4[2543]]:mxConstants[_0xa4d4[2544]],!0));return  new mxConnectionConstraint(_0x7246x3,_0x7246x5);};mxGraph[_0xa4d4[202]][_0xa4d4[2545]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x5){this[_0xa4d4[251]][_0xa4d4[473]]();try{null==_0x7246x5||null==_0x7246x5[_0xa4d4[2546]]?(this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2539]]:mxConstants[_0xa4d4[2540]],null,[_0x7246x2]),this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2541]]:mxConstants[_0xa4d4[2542]],null,[_0x7246x2]),this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2543]]:mxConstants[_0xa4d4[2544]],null,[_0x7246x2])):null!=_0x7246x5[_0xa4d4[2546]]&&(this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2539]]:mxConstants[_0xa4d4[2540]],_0x7246x5[_0xa4d4[2546]][_0xa4d4[235]],[_0x7246x2]),this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2541]]:mxConstants[_0xa4d4[2542]],_0x7246x5[_0xa4d4[2546]][_0xa4d4[236]],[_0x7246x2]),_0x7246x5[_0xa4d4[591]]?this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2543]]:mxConstants[_0xa4d4[2544]],null,[_0x7246x2]):this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2543]]:mxConstants[_0xa4d4[2544]],_0xa4d4[468],[_0x7246x2]))}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[2290]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=null;if(null!=_0x7246x2){var _0x7246x5=this[_0xa4d4[441]][_0xa4d4[2087]](_0x7246x2),_0x7246x9= new mxPoint(_0x7246x5[_0xa4d4[241]](),_0x7246x5[_0xa4d4[242]]()),_0x7246xa=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2011]]],_0x7246x12=0;if(null!=_0x7246xa&&(_0xa4d4[700]==_0x7246xa?_0x7246x12+=270:_0xa4d4[703]==_0x7246xa?_0x7246x12+=180:_0xa4d4[701]==_0x7246xa&&(_0x7246x12+=90),_0xa4d4[700]==_0x7246xa||_0xa4d4[701]==_0x7246xa)){_0x7246x5[_0xa4d4[235]]+=_0x7246x5[_0xa4d4[117]]/2-_0x7246x5[_0xa4d4[119]]/2;_0x7246x5[_0xa4d4[236]]+=_0x7246x5[_0xa4d4[119]]/2-_0x7246x5[_0xa4d4[117]]/2;var _0x7246x13=_0x7246x5[_0xa4d4[117]];_0x7246x5[_0xa4d4[117]]=_0x7246x5[_0xa4d4[119]];_0x7246x5[_0xa4d4[119]]=_0x7246x13;};if(null!=_0x7246x3[_0xa4d4[2546]]){var _0x7246x14=_0x7246x4=1,_0x7246x15=0,_0x7246x16=0;if(this[_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x2[_0xa4d4[246]])){var _0x7246x17=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2547]]],_0x7246x18=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2548]]];null!=_0x7246x2[_0xa4d4[253]][_0xa4d4[1561]]&&(_0x7246x17=1==mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],_0xa4d4[1607],0)||_0x7246x17,_0x7246x18=1==mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],_0xa4d4[1608],0)||_0x7246x18);if(_0xa4d4[700]==_0x7246xa||_0xa4d4[701]==_0x7246xa){_0x7246x13=_0x7246x17,_0x7246x17=_0x7246x18,_0x7246x18=_0x7246x13};_0x7246x17&&(_0x7246x4= -1,_0x7246x15=-_0x7246x5[_0xa4d4[117]]);_0x7246x18&&(_0x7246x14= -1,_0x7246x16=-_0x7246x5[_0xa4d4[119]]);};_0x7246x4= new mxPoint(_0x7246x5[_0xa4d4[235]]+_0x7246x3[_0xa4d4[2546]][_0xa4d4[235]]*_0x7246x5[_0xa4d4[117]]*_0x7246x4-_0x7246x15,_0x7246x5[_0xa4d4[236]]+_0x7246x3[_0xa4d4[2546]][_0xa4d4[236]]*_0x7246x5[_0xa4d4[119]]*_0x7246x14-_0x7246x16);};_0x7246xa=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||0;_0x7246x3[_0xa4d4[591]]?(0!=_0x7246x12&&null!=_0x7246x4&&(_0x7246x13=_0x7246x5=0,90==_0x7246x12?_0x7246x13=1:180==_0x7246x12?_0x7246x5= -1:270==_0x7246xa&&(_0x7246x13= -1),_0x7246x4=mxUtils[_0xa4d4[432]](_0x7246x4,_0x7246x5,_0x7246x13,_0x7246x9)),null!=_0x7246x4&&_0x7246x3[_0xa4d4[591]]&&(_0x7246x4=this[_0xa4d4[441]][_0xa4d4[2302]](_0x7246x2,_0x7246x4,!1))):_0x7246xa+=_0x7246x12;0!=_0x7246xa&&null!=_0x7246x4&&(_0x7246x12=mxUtils[_0xa4d4[431]](_0x7246xa),_0x7246x5=Math[_0xa4d4[426]](_0x7246x12),_0x7246x13=Math[_0xa4d4[427]](_0x7246x12),_0x7246x4=mxUtils[_0xa4d4[432]](_0x7246x4,_0x7246x5,_0x7246x13,_0x7246x9));};return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[851]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[251]][_0xa4d4[473]]();try{var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,_0x7246x4);this[_0xa4d4[852]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5);this[_0xa4d4[746]]( new mxEventObject(mxEvent.CONNECT_CELL,_0xa4d4[1989],_0x7246x2,_0xa4d4[1984],_0x7246x3,_0xa4d4[1097],_0x7246x4,_0xa4d4[257],_0x7246x9));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[852]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x2){this[_0xa4d4[251]][_0xa4d4[473]]();try{var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,_0x7246x4);this[_0xa4d4[2545]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5);this[_0xa4d4[2549]]()&&(_0x7246x5=null,this[_0xa4d4[1908]](_0x7246x3)&&(_0x7246x5=_0x7246x3[_0xa4d4[1103]](),_0x7246x3=this[_0xa4d4[2550]](_0x7246x3,_0x7246x4)),this[_0xa4d4[1717]](_0x7246x4?mxConstants[_0xa4d4[2303]]:mxConstants[_0xa4d4[2304]],_0x7246x5,[_0x7246x2]));this[_0xa4d4[251]][_0xa4d4[1957]](_0x7246x2,_0x7246x3,_0x7246x4);this[_0xa4d4[2401]]&&this[_0xa4d4[1809]](_0x7246x2);this[_0xa4d4[746]]( new mxEventObject(mxEvent.CELL_CONNECTED,_0xa4d4[1989],_0x7246x2,_0xa4d4[1984],_0x7246x3,_0xa4d4[1097],_0x7246x4,_0xa4d4[257],_0x7246x9));}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[2531]]=function(_0x7246x2){if(null!=_0x7246x2){this[_0xa4d4[251]][_0xa4d4[473]]();try{for(var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x4=this[_0xa4d4[441]][_0xa4d4[513]],_0x7246x5={},_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2[_0x7246x9]);_0x7246x5[_0x7246xa]=_0x7246x2[_0x7246x9];};for(_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){if(this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2[_0x7246x9])){var _0x7246x12=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2[_0x7246x9]);if(null!=_0x7246x12){var _0x7246x13=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2[_0x7246x9]),_0x7246x14=this[_0xa4d4[441]][_0xa4d4[248]](this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2[_0x7246x9]));if(null!=_0x7246x13&&null!=_0x7246x14){var _0x7246x12=_0x7246x12[_0xa4d4[238]](),_0x7246x15=-_0x7246x14[_0xa4d4[2078]][_0xa4d4[235]],_0x7246x16=-_0x7246x14[_0xa4d4[2078]][_0xa4d4[236]],_0x7246x17=_0x7246x13[_0xa4d4[439]],_0x7246x18=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2[_0x7246x9],!0);if(null!=_0x7246x18&&this[_0xa4d4[2551]](_0x7246x2[_0x7246x9],_0x7246x18,!0)){for(var _0x7246x19=mxCellPath[_0xa4d4[385]](_0x7246x18);null!=_0x7246x18&&null==_0x7246x5[_0x7246x19];){_0x7246x18=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x18),_0x7246x19=mxCellPath[_0xa4d4[385]](_0x7246x18)};null==_0x7246x18&&(_0x7246x12[_0xa4d4[2007]]( new mxPoint(_0x7246x17[0][_0xa4d4[235]]/_0x7246x3-_0x7246x4[_0xa4d4[235]]+_0x7246x15,_0x7246x17[0][_0xa4d4[236]]/_0x7246x3-_0x7246x4[_0xa4d4[236]]+_0x7246x16),!0),this[_0xa4d4[251]][_0xa4d4[1957]](_0x7246x2[_0x7246x9],null,!0));};var _0x7246x1a=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2[_0x7246x9],!1);if(null!=_0x7246x1a&&this[_0xa4d4[2551]](_0x7246x2[_0x7246x9],_0x7246x1a,!1)){for(var _0x7246x1b=mxCellPath[_0xa4d4[385]](_0x7246x1a);null!=_0x7246x1a&&null==_0x7246x5[_0x7246x1b];){_0x7246x1a=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x1a),_0x7246x1b=mxCellPath[_0xa4d4[385]](_0x7246x1a)};if(null==_0x7246x1a){var _0x7246x1c=_0x7246x17[_0xa4d4[67]]-1;_0x7246x12[_0xa4d4[2007]]( new mxPoint(_0x7246x17[_0x7246x1c][_0xa4d4[235]]/_0x7246x3-_0x7246x4[_0xa4d4[235]]+_0x7246x15,_0x7246x17[_0x7246x1c][_0xa4d4[236]]/_0x7246x3-_0x7246x4[_0xa4d4[236]]+_0x7246x16),!1);this[_0xa4d4[251]][_0xa4d4[1957]](_0x7246x2[_0x7246x9],null,!1);};};this[_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2[_0x7246x9],_0x7246x12);};};}};}finally{this[_0xa4d4[251]][_0xa4d4[476]]()};}};mxGraph[_0xa4d4[202]][_0xa4d4[2534]]=function(){return this[_0xa4d4[441]][_0xa4d4[1741]]};mxGraph[_0xa4d4[202]][_0xa4d4[2326]]=function(_0x7246x2){return null};mxGraph[_0xa4d4[202]][_0xa4d4[1908]]=function(_0x7246x2){return !1};mxGraph[_0xa4d4[202]][_0xa4d4[2550]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2280]]=function(_0x7246x2){return null};mxGraph[_0xa4d4[202]][_0xa4d4[2552]]=function(_0x7246x2){_0x7246x2=_0x7246x2||this[_0xa4d4[2452]]();null!=_0x7246x2&&this[_0xa4d4[2553]](_0x7246x2)&&(this[_0xa4d4[441]][_0xa4d4[2257]](_0x7246x2),this[_0xa4d4[2440]]());};mxGraph[_0xa4d4[202]][_0xa4d4[2554]]=function(){var _0x7246x2=this[_0xa4d4[251]][_0xa4d4[501]](),_0x7246x3=this[_0xa4d4[2534]]();if(null!=_0x7246x3){for(var _0x7246x4=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x3);_0x7246x4!=_0x7246x2&&!this[_0xa4d4[2553]](_0x7246x4)&&this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x4)!=_0x7246x2;){_0x7246x4=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x4)};_0x7246x4==_0x7246x2||this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x4)==_0x7246x2?this[_0xa4d4[441]][_0xa4d4[2257]](null):this[_0xa4d4[441]][_0xa4d4[2257]](_0x7246x4);null!=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x3)&&this[_0xa4d4[2450]](_0x7246x3);};};mxGraph[_0xa4d4[202]][_0xa4d4[2442]]=function(){var _0x7246x2=this[_0xa4d4[2534]]();null!=_0x7246x2&&(this[_0xa4d4[441]][_0xa4d4[2257]](null),null!=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2)&&this[_0xa4d4[2450]](_0x7246x2));};mxGraph[_0xa4d4[202]][_0xa4d4[2553]]=function(_0x7246x2){return null!=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[517]]=function(){return this[_0xa4d4[441]][_0xa4d4[517]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2555]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=[_0x7246x2];_0x7246x3&&(_0x7246x5=_0x7246x5[_0xa4d4[1919]](this[_0xa4d4[251]][_0xa4d4[264]](_0x7246x2)));_0x7246x5=this[_0xa4d4[441]][_0xa4d4[1799]](_0x7246x5);if(_0x7246x4){_0x7246x4=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2);for(var _0x7246x9=0;_0x7246x9<_0x7246x4;_0x7246x9++){var _0x7246xa=this[_0xa4d4[2555]](this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,_0x7246x9),_0x7246x3,!0);null!=_0x7246x5?_0x7246x5[_0xa4d4[99]](_0x7246xa):_0x7246x5=_0x7246xa;};};return _0x7246x5;};mxGraph[_0xa4d4[202]][_0xa4d4[1729]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;var _0x7246x4=null;if(null!=_0x7246x2){for(var _0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){if(_0x7246x3||this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x2[_0x7246x5])){var _0x7246x9=this[_0xa4d4[1198]](_0x7246x2[_0x7246x5]);if(null!=_0x7246x9){var _0x7246xa=_0x7246x9[_0xa4d4[1525]];if(null!=_0x7246xa&&0<_0x7246xa[_0xa4d4[67]]){for(var _0x7246x12= new mxRectangle(_0x7246xa[0][_0xa4d4[235]],_0x7246xa[0][_0xa4d4[236]],0,0),_0x7246x13=function(_0x7246x2){null!=_0x7246x2&&_0x7246x12[_0xa4d4[99]]( new mxRectangle(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],0,0))},_0x7246x14=1;_0x7246x14<_0x7246xa[_0xa4d4[67]];_0x7246x14++){_0x7246x13(_0x7246xa[_0x7246x14])};_0x7246x13(_0x7246x9[_0xa4d4[2006]](!0));_0x7246x13(_0x7246x9[_0xa4d4[2006]](!1));};null==_0x7246x4?_0x7246x4= new mxRectangle(_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]],_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]]):_0x7246x4[_0xa4d4[99]](_0x7246x9);};}}};return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[802]]=function(_0x7246x2){this[_0xa4d4[441]][_0xa4d4[200]](_0x7246x2,null==_0x7246x2);this[_0xa4d4[441]][_0xa4d4[2264]]();this[_0xa4d4[2258]]();this[_0xa4d4[746]]( new mxEventObject(mxEvent.REFRESH));};mxGraph[_0xa4d4[202]][_0xa4d4[1021]]=function(_0x7246x2){this[_0xa4d4[991]]&&(_0x7246x2=Math[_0xa4d4[488]](_0x7246x2/this[_0xa4d4[1020]])*this[_0xa4d4[1020]]);return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[1135]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[2365]]&&mxUtils[_0xa4d4[1134]](this[_0xa4d4[526]])){this[_0xa4d4[526]][_0xa4d4[360]]= -_0x7246x2,this[_0xa4d4[526]][_0xa4d4[190]]= -_0x7246x3}else {var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[2051]]();if(this[_0xa4d4[507]]==mxConstants[_0xa4d4[508]]){if(0==_0x7246x2&&0==_0x7246x3){if(mxClient[_0xa4d4[80]]?_0x7246x4[_0xa4d4[57]](_0xa4d4[535],_0xa4d4[536]+_0x7246x2+_0xa4d4[537]+_0x7246x3+_0xa4d4[460]):_0x7246x4[_0xa4d4[1390]](_0xa4d4[535]),null!=this[_0xa4d4[2556]]){for(var _0x7246x5=this[_0xa4d4[2556]][_0xa4d4[285]];null!=_0x7246x5;){var _0x7246x9=_0x7246x5[_0xa4d4[287]];this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x5);_0x7246x5=_0x7246x9;};this[_0xa4d4[2556]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[2556]]);this[_0xa4d4[2556]]=null;this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x4[_0xa4d4[265]]);for(_0x7246x5=this[_0xa4d4[2557]][_0xa4d4[285]];null!=_0x7246x5;){_0x7246x9=_0x7246x5[_0xa4d4[287]],this[_0xa4d4[526]][_0xa4d4[62]](_0x7246x5),_0x7246x5=_0x7246x9};this[_0xa4d4[2557]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[2557]]);this[_0xa4d4[2557]]=null;}}else {_0x7246x4[_0xa4d4[57]](_0xa4d4[535],_0xa4d4[536]+_0x7246x2+_0xa4d4[537]+_0x7246x3+_0xa4d4[460]);if(null==this[_0xa4d4[2556]]){this[_0xa4d4[2556]]=document[_0xa4d4[55]](_0xa4d4[485]);this[_0xa4d4[2556]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];this[_0xa4d4[2556]][_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[189];this[_0xa4d4[2557]]=document[_0xa4d4[55]](_0xa4d4[485]);this[_0xa4d4[2557]][_0xa4d4[124]][_0xa4d4[491]]=_0xa4d4[492];this[_0xa4d4[2557]][_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[189];for(var _0x7246xa=this[_0xa4d4[2556]],_0x7246x5=this[_0xa4d4[526]][_0xa4d4[285]];null!=_0x7246x5;){_0x7246x9=_0x7246x5[_0xa4d4[287]],_0x7246x5!=_0x7246x4[_0xa4d4[265]]?_0x7246xa[_0xa4d4[62]](_0x7246x5):_0x7246xa=this[_0xa4d4[2557]],_0x7246x5=_0x7246x9};this[_0xa4d4[526]][_0xa4d4[950]](this[_0xa4d4[2556]],_0x7246x4[_0xa4d4[265]]);this[_0xa4d4[526]][_0xa4d4[62]](this[_0xa4d4[2557]]);};this[_0xa4d4[2556]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2+_0xa4d4[168];this[_0xa4d4[2556]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x3+_0xa4d4[168];this[_0xa4d4[2557]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2+_0xa4d4[168];this[_0xa4d4[2557]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x3+_0xa4d4[168];}}else {_0x7246x4[_0xa4d4[124]][_0xa4d4[361]]=_0x7246x2+_0xa4d4[168],_0x7246x4[_0xa4d4[124]][_0xa4d4[125]]=_0x7246x3+_0xa4d4[168]};this[_0xa4d4[1136]]=_0x7246x2;this[_0xa4d4[1137]]=_0x7246x3;this[_0xa4d4[746]]( new mxEventObject(mxEvent.PAN));}};mxGraph[_0xa4d4[202]][_0xa4d4[2558]]=function(){this[_0xa4d4[499]](this[_0xa4d4[2395]])};mxGraph[_0xa4d4[202]][_0xa4d4[2559]]=function(){this[_0xa4d4[499]](1/this[_0xa4d4[2395]])};mxGraph[_0xa4d4[202]][_0xa4d4[2560]]=function(){1==this[_0xa4d4[441]][_0xa4d4[255]]?this[_0xa4d4[441]][_0xa4d4[1147]](0,0):(this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]]=0,this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]=0,this[_0xa4d4[441]][_0xa4d4[2262]](1))};mxGraph[_0xa4d4[202]][_0xa4d4[2561]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[499]](_0x7246x2/this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x3)};mxGraph[_0xa4d4[202]][_0xa4d4[499]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:this[_0xa4d4[2397]];var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[255]]*_0x7246x2,_0x7246x5=this[_0xa4d4[441]][_0xa4d4[248]](this[_0xa4d4[2452]]());if(this[_0xa4d4[2396]]&&null!=_0x7246x5){_0x7246x5= new mxRectangle(_0x7246x5[_0xa4d4[235]]*_0x7246x2,_0x7246x5[_0xa4d4[236]]*_0x7246x2,_0x7246x5[_0xa4d4[117]]*_0x7246x2,_0x7246x5[_0xa4d4[119]]*_0x7246x2),this[_0xa4d4[441]][_0xa4d4[255]]=_0x7246x4,this[_0xa4d4[2562]](_0x7246x5)||(this[_0xa4d4[441]][_0xa4d4[2259]](),this[_0xa4d4[441]][_0xa4d4[2262]](_0x7246x4))}else {if(_0x7246x3&&!mxUtils[_0xa4d4[1134]](this[_0xa4d4[526]])){var _0x7246x5=this[_0xa4d4[526]][_0xa4d4[359]],_0x7246x9=this[_0xa4d4[526]][_0xa4d4[167]];if(1<_0x7246x2){var _0x7246xa=(_0x7246x2-1)/(2*_0x7246x4),_0x7246x5=_0x7246x5* -_0x7246xa,_0x7246x9=_0x7246x9* -_0x7246xa}else {_0x7246xa=(1/_0x7246x2-1)/(2*this[_0xa4d4[441]][_0xa4d4[255]]),_0x7246x5*=_0x7246xa,_0x7246x9*=_0x7246xa};this[_0xa4d4[441]][_0xa4d4[829]](_0x7246x4,this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]]+_0x7246x5,this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]+_0x7246x9);}else {this[_0xa4d4[441]][_0xa4d4[2262]](_0x7246x4),mxUtils[_0xa4d4[1134]](this[_0xa4d4[526]])&&(_0x7246x9=_0x7246x5=0,_0x7246x3&&(_0x7246x5=this[_0xa4d4[526]][_0xa4d4[359]]*(_0x7246x2-1)/2,_0x7246x9=this[_0xa4d4[526]][_0xa4d4[167]]*(_0x7246x2-1)/2),this[_0xa4d4[526]][_0xa4d4[360]]=Math[_0xa4d4[488]](this[_0xa4d4[526]][_0xa4d4[360]]*_0x7246x2+_0x7246x5),this[_0xa4d4[526]][_0xa4d4[190]]=Math[_0xa4d4[488]](this[_0xa4d4[526]][_0xa4d4[190]]*_0x7246x2+_0x7246x9))}};};mxGraph[_0xa4d4[202]][_0xa4d4[2563]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[526]][_0xa4d4[159]]/_0x7246x2[_0xa4d4[117]]/(this[_0xa4d4[526]][_0xa4d4[157]]/_0x7246x2[_0xa4d4[119]]);_0x7246x2[_0xa4d4[235]]=Math[_0xa4d4[160]](0,_0x7246x2[_0xa4d4[235]]);_0x7246x2[_0xa4d4[236]]=Math[_0xa4d4[160]](0,_0x7246x2[_0xa4d4[236]]);var _0x7246x4=Math[_0xa4d4[243]](this[_0xa4d4[526]][_0xa4d4[1526]],_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]),_0x7246x5=Math[_0xa4d4[243]](this[_0xa4d4[526]][_0xa4d4[191]],_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]);_0x7246x2[_0xa4d4[117]]=_0x7246x4-_0x7246x2[_0xa4d4[235]];_0x7246x2[_0xa4d4[119]]=_0x7246x5-_0x7246x2[_0xa4d4[236]];1>_0x7246x3?(_0x7246x3=_0x7246x2[_0xa4d4[119]]/_0x7246x3,_0x7246x4=(_0x7246x3-_0x7246x2[_0xa4d4[119]])/2,_0x7246x2[_0xa4d4[119]]=_0x7246x3,_0x7246x3=Math[_0xa4d4[243]](_0x7246x2[_0xa4d4[236]],_0x7246x4),_0x7246x2[_0xa4d4[236]]-=_0x7246x3,_0x7246x5=Math[_0xa4d4[243]](this[_0xa4d4[526]][_0xa4d4[191]],_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]),_0x7246x2[_0xa4d4[119]]=_0x7246x5-_0x7246x2[_0xa4d4[236]]):(_0x7246x3*=_0x7246x2[_0xa4d4[117]],_0x7246x4=(_0x7246x3-_0x7246x2[_0xa4d4[117]])/2,_0x7246x2[_0xa4d4[117]]=_0x7246x3,_0x7246x3=Math[_0xa4d4[243]](_0x7246x2[_0xa4d4[235]],_0x7246x4),_0x7246x2[_0xa4d4[235]]-=_0x7246x3,_0x7246x4=Math[_0xa4d4[243]](this[_0xa4d4[526]][_0xa4d4[1526]],_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]),_0x7246x2[_0xa4d4[117]]=_0x7246x4-_0x7246x2[_0xa4d4[235]]);_0x7246x3=this[_0xa4d4[526]][_0xa4d4[159]]/_0x7246x2[_0xa4d4[117]];_0x7246x4=this[_0xa4d4[441]][_0xa4d4[255]]*_0x7246x3;mxUtils[_0xa4d4[1134]](this[_0xa4d4[526]])?(this[_0xa4d4[441]][_0xa4d4[2262]](_0x7246x4),this[_0xa4d4[526]][_0xa4d4[360]]=Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[235]]*_0x7246x3),this[_0xa4d4[526]][_0xa4d4[190]]=Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[236]]*_0x7246x3)):this[_0xa4d4[441]][_0xa4d4[829]](_0x7246x4,this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]]-_0x7246x2[_0xa4d4[235]]/this[_0xa4d4[441]][_0xa4d4[255]],this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]-_0x7246x2[_0xa4d4[236]]/this[_0xa4d4[441]][_0xa4d4[255]]);};mxGraph[_0xa4d4[202]][_0xa4d4[933]]=function(_0x7246x2,_0x7246x3){if(null!=this[_0xa4d4[526]]){_0x7246x2=null!=_0x7246x2?_0x7246x2:0;_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;var _0x7246x4=this[_0xa4d4[526]][_0xa4d4[159]],_0x7246x5=this[_0xa4d4[526]][_0xa4d4[157]],_0x7246x9=this[_0xa4d4[441]][_0xa4d4[517]]();_0x7246x3&&(null!=_0x7246x9[_0xa4d4[235]]&&null!=_0x7246x9[_0xa4d4[236]])&&(_0x7246x9[_0xa4d4[117]]+=_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[119]]+=_0x7246x9[_0xa4d4[236]],_0x7246x9[_0xa4d4[235]]=0,_0x7246x9[_0xa4d4[236]]=0);var _0x7246xa=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x12=_0x7246x9[_0xa4d4[117]]/_0x7246xa,_0x7246x13=_0x7246x9[_0xa4d4[119]]/_0x7246xa;null!=this[_0xa4d4[1617]]&&(_0x7246x12=Math[_0xa4d4[160]](_0x7246x12,this[_0xa4d4[1617]][_0xa4d4[117]]-_0x7246x9[_0xa4d4[235]]/_0x7246xa),_0x7246x13=Math[_0xa4d4[160]](_0x7246x13,this[_0xa4d4[1617]][_0xa4d4[119]]-_0x7246x9[_0xa4d4[236]]/_0x7246xa));var _0x7246x14=_0x7246x3?_0x7246x2:2*_0x7246x2,_0x7246x4=Math[_0xa4d4[519]](100*Math[_0xa4d4[243]](_0x7246x4/(_0x7246x12+_0x7246x14),_0x7246x5/(_0x7246x13+_0x7246x14)))/100;null!=this[_0xa4d4[2413]]&&(_0x7246x4=Math[_0xa4d4[160]](_0x7246x4,this[_0xa4d4[2413]]));null!=this[_0xa4d4[2414]]&&(_0x7246x4=Math[_0xa4d4[243]](_0x7246x4,this[_0xa4d4[2414]]));_0x7246x3?this[_0xa4d4[441]][_0xa4d4[255]]!=_0x7246x4&&this[_0xa4d4[441]][_0xa4d4[2262]](_0x7246x4):mxUtils[_0xa4d4[1134]](this[_0xa4d4[526]])?(this[_0xa4d4[441]][_0xa4d4[2262]](_0x7246x4),null!=_0x7246x9[_0xa4d4[235]]&&(this[_0xa4d4[526]][_0xa4d4[360]]=Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[235]]/_0x7246xa)*_0x7246x4-_0x7246x2-Math[_0xa4d4[160]](0,(this[_0xa4d4[526]][_0xa4d4[159]]-_0x7246x12*_0x7246x4)/2)),null!=_0x7246x9[_0xa4d4[236]]&&(this[_0xa4d4[526]][_0xa4d4[190]]=Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[236]]/_0x7246xa)*_0x7246x4-_0x7246x2-Math[_0xa4d4[160]](0,(this[_0xa4d4[526]][_0xa4d4[157]]-_0x7246x13*_0x7246x4)/2))):this[_0xa4d4[441]][_0xa4d4[829]](_0x7246x4,null!=_0x7246x9[_0xa4d4[235]]?Math[_0xa4d4[519]](this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]]-_0x7246x9[_0xa4d4[235]]/_0x7246xa+_0x7246x2+1):_0x7246x2,null!=_0x7246x9[_0xa4d4[236]]?Math[_0xa4d4[519]](this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]-_0x7246x9[_0xa4d4[236]]/_0x7246xa+_0x7246x2+1):_0x7246x2);};return this[_0xa4d4[441]][_0xa4d4[255]];};mxGraph[_0xa4d4[202]][_0xa4d4[2564]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=-this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]],_0x7246x5=-this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]],_0x7246x9=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);null!=_0x7246x9&&(_0x7246x4= new mxRectangle(_0x7246x4+_0x7246x9[_0xa4d4[235]],_0x7246x5+_0x7246x9[_0xa4d4[236]],_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]]),_0x7246x3&&null!=this[_0xa4d4[526]]&&(_0x7246x5=this[_0xa4d4[526]][_0xa4d4[159]],_0x7246x9=this[_0xa4d4[526]][_0xa4d4[157]],_0x7246x4[_0xa4d4[235]]=_0x7246x4[_0xa4d4[241]]()-_0x7246x5/2,_0x7246x4[_0xa4d4[117]]=_0x7246x5,_0x7246x4[_0xa4d4[236]]=_0x7246x4[_0xa4d4[242]]()-_0x7246x9/2,_0x7246x4[_0xa4d4[119]]=_0x7246x9),this[_0xa4d4[2562]](_0x7246x4)&&this[_0xa4d4[441]][_0xa4d4[1147]](this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]],this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]));};mxGraph[_0xa4d4[202]][_0xa4d4[2562]]=function(_0x7246x2){var _0x7246x3=!1;if(null!=_0x7246x2){var _0x7246x4=this[_0xa4d4[526]][_0xa4d4[359]],_0x7246x5=this[_0xa4d4[526]][_0xa4d4[167]],_0x7246x9=Math[_0xa4d4[243]](_0x7246x4,_0x7246x2[_0xa4d4[117]]),_0x7246xa=Math[_0xa4d4[243]](_0x7246x5,_0x7246x2[_0xa4d4[119]]);if(mxUtils[_0xa4d4[1134]](this[_0xa4d4[526]])){_0x7246x4=this[_0xa4d4[526]];_0x7246x2[_0xa4d4[235]]+=this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]];_0x7246x2[_0xa4d4[236]]+=this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]];var _0x7246x12=_0x7246x4[_0xa4d4[360]]-_0x7246x2[_0xa4d4[235]],_0x7246x5=Math[_0xa4d4[160]](_0x7246x12-_0x7246x4[_0xa4d4[360]],0);0<_0x7246x12?_0x7246x4[_0xa4d4[360]]-=_0x7246x12+2:(_0x7246x12=_0x7246x2[_0xa4d4[235]]+_0x7246x9-_0x7246x4[_0xa4d4[360]]-_0x7246x4[_0xa4d4[159]],0<_0x7246x12&&(_0x7246x4[_0xa4d4[360]]+=_0x7246x12+2));_0x7246x9=_0x7246x4[_0xa4d4[190]]-_0x7246x2[_0xa4d4[236]];_0x7246x12=Math[_0xa4d4[160]](0,_0x7246x9-_0x7246x4[_0xa4d4[190]]);0<_0x7246x9?_0x7246x4[_0xa4d4[190]]-=_0x7246x9+2:(_0x7246x9=_0x7246x2[_0xa4d4[236]]+_0x7246xa-_0x7246x4[_0xa4d4[190]]-_0x7246x4[_0xa4d4[157]],0<_0x7246x9&&(_0x7246x4[_0xa4d4[190]]+=_0x7246x9+2));!this[_0xa4d4[2365]]&&(0!=_0x7246x5||0!=_0x7246x12)&&this[_0xa4d4[441]][_0xa4d4[1147]](_0x7246x5,_0x7246x12);}else {var _0x7246x12=-this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]],_0x7246x13=-this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]],_0x7246x14=this[_0xa4d4[441]][_0xa4d4[255]];_0x7246x2[_0xa4d4[235]]+_0x7246x9>_0x7246x12+_0x7246x4&&(this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]]-=(_0x7246x2[_0xa4d4[235]]+_0x7246x9-_0x7246x4-_0x7246x12)/_0x7246x14,_0x7246x3= !0);_0x7246x2[_0xa4d4[236]]+_0x7246xa>_0x7246x13+_0x7246x5&&(this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]-=(_0x7246x2[_0xa4d4[236]]+_0x7246xa-_0x7246x5-_0x7246x13)/_0x7246x14,_0x7246x3= !0);_0x7246x2[_0xa4d4[235]]<_0x7246x12&&(this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]]+=(_0x7246x12-_0x7246x2[_0xa4d4[235]])/_0x7246x14,_0x7246x3= !0);_0x7246x2[_0xa4d4[236]]<_0x7246x13&&(this[_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]]+=(_0x7246x13-_0x7246x2[_0xa4d4[236]])/_0x7246x14,_0x7246x3= !0);_0x7246x3&&(this[_0xa4d4[441]][_0xa4d4[802]](),null!=this[_0xa4d4[2432]]&&this[_0xa4d4[2432]][_0xa4d4[802]]());};};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[1198]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[1714]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[174]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[1742]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1971]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2565]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1965]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2298]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2566]]];if(null!=_0x7246x3){return _0x7246x3};_0x7246x2=this[_0xa4d4[441]][_0xa4d4[2291]](_0x7246x2);return _0x7246x2==mxEdgeStyle[_0xa4d4[2567]]||_0x7246x2==mxEdgeStyle[_0xa4d4[2568]]||_0x7246x2==mxEdgeStyle[_0xa4d4[2569]]||_0x7246x2==mxEdgeStyle[_0xa4d4[2570]]||_0x7246x2==mxEdgeStyle[_0xa4d4[2571]]||_0x7246x2==mxEdgeStyle[_0xa4d4[2572]];};mxGraph[_0xa4d4[202]][_0xa4d4[2573]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[2089]](!0);_0x7246x2=_0x7246x2[_0xa4d4[2089]](!1);return null!=_0x7246x3&&_0x7246x3==_0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2574]]=function(_0x7246x2){return mxEvent[_0xa4d4[775]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2462]]=function(_0x7246x2){return mxClient[_0xa4d4[2575]]?mxEvent[_0xa4d4[2576]](_0x7246x2):mxEvent[_0xa4d4[775]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[1018]]=function(_0x7246x2){return null!=_0x7246x2&&!mxEvent[_0xa4d4[2577]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2578]]=function(_0x7246x2){return mxEvent[_0xa4d4[774]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2579]]=function(_0x7246x2){return mxEvent[_0xa4d4[2577]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2580]]=function(_0x7246x2){mxUtils[_0xa4d4[150]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2581]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return null==this[_0xa4d4[2500]](_0x7246x2,_0x7246x3,_0x7246x4)};mxGraph[_0xa4d4[202]][_0xa4d4[2500]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(null!=_0x7246x2&&!this[_0xa4d4[2530]]()&&(null==_0x7246x3||null==_0x7246x4)){return _0xa4d4[110]};if(null!=_0x7246x2&&null==this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!0)&&null==this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!1)){return null};if(!this[_0xa4d4[2402]]&&_0x7246x3==_0x7246x4&&null!=_0x7246x3||!this[_0xa4d4[2582]](_0x7246x3,_0x7246x4)){return _0xa4d4[110]};if(null!=_0x7246x3&&null!=_0x7246x4){var _0x7246x5=_0xa4d4[110];if(!this[_0xa4d4[2404]]){var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[1781]](_0x7246x3,_0x7246x4,!0);if(1<_0x7246x9[_0xa4d4[67]]||1==_0x7246x9[_0xa4d4[67]]&&_0x7246x9[0]!=_0x7246x2){_0x7246x5+=(mxResources[_0xa4d4[203]](this[_0xa4d4[2421]])||this[_0xa4d4[2421]])+_0xa4d4[192]};};var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[1962]](_0x7246x3,!0,_0x7246x2),_0x7246xa=this[_0xa4d4[251]][_0xa4d4[1962]](_0x7246x4,!1,_0x7246x2);if(null!=this[_0xa4d4[2335]]){for(var _0x7246x12=0;_0x7246x12<this[_0xa4d4[2335]][_0xa4d4[67]];_0x7246x12++){var _0x7246x13=this[_0xa4d4[2335]][_0x7246x12][_0xa4d4[2583]](this,_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x9,_0x7246xa);null!=_0x7246x13&&(_0x7246x5+=_0x7246x13);}};_0x7246x13=this[_0xa4d4[2584]](_0x7246x2,_0x7246x3,_0x7246x4);null!=_0x7246x13&&(_0x7246x5+=_0x7246x13);return 0<_0x7246x5[_0xa4d4[67]]?_0x7246x5:null;};return this[_0xa4d4[2406]]?null:_0xa4d4[110];};mxGraph[_0xa4d4[202]][_0xa4d4[2584]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return null};mxGraph[_0xa4d4[202]][_0xa4d4[2585]]=function(_0x7246x2,_0x7246x3){_0x7246x2=null!=_0x7246x2?_0x7246x2:this[_0xa4d4[251]][_0xa4d4[501]]();_0x7246x3=null!=_0x7246x3?_0x7246x3:{};for(var _0x7246x4=!0,_0x7246x5=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){var _0x7246xa=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,_0x7246x9),_0x7246x12=_0x7246x3;this[_0xa4d4[2553]](_0x7246xa)&&(_0x7246x12={});_0x7246x12=this[_0xa4d4[2585]](_0x7246xa,_0x7246x12);null!=_0x7246x12?this[_0xa4d4[2447]](_0x7246xa,_0x7246x12[_0xa4d4[230]](/\n/g,_0xa4d4[545])):this[_0xa4d4[2447]](_0x7246xa,null);_0x7246x4=_0x7246x4&&null==_0x7246x12;};_0x7246x5=_0xa4d4[110];this[_0xa4d4[1742]](_0x7246x2)&&!_0x7246x4&&(_0x7246x5+=(mxResources[_0xa4d4[203]](this[_0xa4d4[2423]])||this[_0xa4d4[2423]])+_0xa4d4[192]);_0x7246x5=this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)?_0x7246x5+(this[_0xa4d4[2500]](_0x7246x2,this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!0),this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!1))||_0xa4d4[110]):_0x7246x5+(this[_0xa4d4[2586]](_0x7246x2)||_0xa4d4[110]);_0x7246x9=this[_0xa4d4[2587]](_0x7246x2,_0x7246x3);null!=_0x7246x9&&(_0x7246x5+=_0x7246x9);null==this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2)&&this[_0xa4d4[441]][_0xa4d4[2264]]();return 0<_0x7246x5[_0xa4d4[67]]||!_0x7246x4?_0x7246x5:null;};mxGraph[_0xa4d4[202]][_0xa4d4[2586]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[1962]](_0x7246x2,!0),_0x7246x4=this[_0xa4d4[251]][_0xa4d4[1962]](_0x7246x2,!1);_0x7246x2=this[_0xa4d4[251]][_0xa4d4[433]](_0x7246x2);var _0x7246x5=_0xa4d4[110];if(null!=this[_0xa4d4[2335]]){for(var _0x7246x9=0;_0x7246x9<this[_0xa4d4[2335]][_0xa4d4[67]];_0x7246x9++){var _0x7246xa=this[_0xa4d4[2335]][_0x7246x9];if(_0x7246xa[_0xa4d4[1097]]&&mxUtils[_0xa4d4[1331]](_0x7246x2,_0x7246xa[_0xa4d4[60]],_0x7246xa[_0xa4d4[2588]],_0x7246xa[_0xa4d4[131]])&&(0==_0x7246xa[_0xa4d4[160]]&&0<_0x7246x3||1==_0x7246xa[_0xa4d4[243]]&&0==_0x7246x3||1==_0x7246xa[_0xa4d4[160]]&&1<_0x7246x3)){_0x7246x5+=_0x7246xa[_0xa4d4[2589]]+_0xa4d4[192]}else {if(!_0x7246xa[_0xa4d4[1097]]&&mxUtils[_0xa4d4[1331]](_0x7246x2,_0x7246xa[_0xa4d4[60]],_0x7246xa[_0xa4d4[2588]],_0x7246xa[_0xa4d4[131]])&&(0==_0x7246xa[_0xa4d4[160]]&&0<_0x7246x4||1==_0x7246xa[_0xa4d4[243]]&&0==_0x7246x4||1==_0x7246xa[_0xa4d4[160]]&&1<_0x7246x4)){_0x7246x5+=_0x7246xa[_0xa4d4[2589]]+_0xa4d4[192]}};}};return 0<_0x7246x5[_0xa4d4[67]]?_0x7246x5:null;};mxGraph[_0xa4d4[202]][_0xa4d4[2587]]=function(_0x7246x2,_0x7246x3){return null};mxGraph[_0xa4d4[202]][_0xa4d4[2271]]=function(){return this[_0xa4d4[1617]]};mxGraph[_0xa4d4[202]][_0xa4d4[2590]]=function(_0x7246x2){this[_0xa4d4[1617]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2205]]=function(_0x7246x2){if(null!=_0x7246x2&&this[_0xa4d4[2206]]&&!this[_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]])){var _0x7246x3=this[_0xa4d4[1742]](_0x7246x2[_0xa4d4[246]]);if(this[_0xa4d4[2516]](_0x7246x2[_0xa4d4[246]],!_0x7246x3)){return _0x7246x3?this[_0xa4d4[2415]]:this[_0xa4d4[2417]]};};return null;};mxGraph[_0xa4d4[202]][_0xa4d4[2454]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[251]][_0xa4d4[433]](_0x7246x2);if(null!=_0x7246x2){if(mxUtils[_0xa4d4[1331]](_0x7246x2)){return _0x7246x2[_0xa4d4[301]]};if(_0xa4d4[279]== typeof _0x7246x2[_0xa4d4[2591]]){return _0x7246x2.toString()};};return _0xa4d4[110];};mxGraph[_0xa4d4[202]][_0xa4d4[2183]]=function(_0x7246x2){var _0x7246x3=_0xa4d4[110];if(this[_0xa4d4[2409]]&&null!=_0x7246x2){var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x4=null!=_0x7246x4?_0x7246x4[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);mxUtils[_0xa4d4[433]](_0x7246x4,mxConstants.STYLE_NOLABEL,!1)||(_0x7246x3=this[_0xa4d4[2454]](_0x7246x2));};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[2186]]=function(_0x7246x2){return this[_0xa4d4[2592]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2592]]=function(){return this[_0xa4d4[2410]]};mxGraph[_0xa4d4[202]][_0xa4d4[2593]]=function(_0x7246x2){this[_0xa4d4[2410]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2131]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x2=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return null!=_0x7246x2?_0xa4d4[1333]==_0x7246x2[mxConstants[_0xa4d4[2594]]]:!1;};mxGraph[_0xa4d4[202]][_0xa4d4[2130]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x2=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return null!=_0x7246x2?_0xa4d4[188]==_0x7246x2[mxConstants[_0xa4d4[2193]]]:!1;};mxGraph[_0xa4d4[202]][_0xa4d4[2595]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=null;if(null!=_0x7246x2){if(null!=_0x7246x2[_0xa4d4[2207]]&&(_0x7246x3==_0x7246x2[_0xa4d4[2207]][_0xa4d4[252]]||_0x7246x3[_0xa4d4[265]]==_0x7246x2[_0xa4d4[2207]][_0xa4d4[252]])){_0x7246x9=this[_0xa4d4[2425]],_0x7246x9=mxResources[_0xa4d4[203]](_0x7246x9)||_0x7246x9};null==_0x7246x9&&null!=_0x7246x2[_0xa4d4[1211]]&&_0x7246x2[_0xa4d4[1211]][_0xa4d4[209]](function(_0x7246x2,_0x7246x4){if(null==_0x7246x9&&(_0x7246x3==_0x7246x4[_0xa4d4[252]]||_0x7246x3[_0xa4d4[265]]==_0x7246x4[_0xa4d4[252]])){_0x7246x9=_0x7246x4[_0xa4d4[2201]].toString()}});null==_0x7246x9&&(_0x7246x4=this[_0xa4d4[2432]][_0xa4d4[2596]](_0x7246x2[_0xa4d4[246]]),null!=_0x7246x4&&_0xa4d4[279]== typeof _0x7246x4[_0xa4d4[2597]]&&(_0x7246x9=_0x7246x4[_0xa4d4[2597]](_0x7246x3)));null==_0x7246x9&&(_0x7246x9=this[_0xa4d4[2598]](_0x7246x2[_0xa4d4[246]]));};return _0x7246x9;};mxGraph[_0xa4d4[202]][_0xa4d4[2598]]=function(_0x7246x2){var _0x7246x3=null;return _0x7246x3=null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[2595]]?_0x7246x2[_0xa4d4[2595]]():this[_0xa4d4[2454]](_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[2599]]=function(_0x7246x2){return null};mxGraph[_0xa4d4[202]][_0xa4d4[1731]]=function(_0x7246x2){var _0x7246x3= new mxRectangle,_0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x2=null!=_0x7246x4?_0x7246x4[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);null!=_0x7246x2&&(_0x7246x4=parseInt(mxUtils[_0xa4d4[433]](_0x7246x2,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils[_0xa4d4[433]](_0x7246x2,mxConstants.STYLE_HORIZONTAL,!0)?_0x7246x3[_0xa4d4[119]]=_0x7246x4:_0x7246x3[_0xa4d4[117]]=_0x7246x4);return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[1202]]=function(_0x7246x2){return null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[124]]?_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2484]]]:null};mxGraph[_0xa4d4[202]][_0xa4d4[2187]]=function(_0x7246x2){return null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[124]]?_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2063]]]||mxConstants[_0xa4d4[481]]:null};mxGraph[_0xa4d4[202]][_0xa4d4[2173]]=function(_0x7246x2){return null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[124]]?_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2600]]]:null};mxGraph[_0xa4d4[202]][_0xa4d4[2174]]=function(_0x7246x2){return null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[124]]?_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2601]]]:null};mxGraph[_0xa4d4[202]][_0xa4d4[2172]]=function(_0x7246x2){return null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[124]]?_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2602]]]:null};mxGraph[_0xa4d4[202]][_0xa4d4[2176]]=function(_0x7246x2){return null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[124]]?_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2603]]]:null};mxGraph[_0xa4d4[202]][_0xa4d4[2476]]=function(){return this[_0xa4d4[467]]};mxGraph[_0xa4d4[202]][_0xa4d4[2604]]=function(_0x7246x2){this[_0xa4d4[467]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[1730]]=function(_0x7246x2){if(null!=_0x7246x2&&this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2)!=this[_0xa4d4[251]][_0xa4d4[501]]()){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x3=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);if(null!=_0x7246x3&&!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)){return _0x7246x3[mxConstants[_0xa4d4[2059]]]==mxConstants[_0xa4d4[2605]]};};return !1;};mxGraph[_0xa4d4[202]][_0xa4d4[2606]]=function(){return this[_0xa4d4[2389]]};mxGraph[_0xa4d4[202]][_0xa4d4[2607]]=function(_0x7246x2){this[_0xa4d4[2389]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxGraph[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2608]]=function(){return this[_0xa4d4[2362]]};mxGraph[_0xa4d4[202]][_0xa4d4[2609]]=function(_0x7246x2){this[_0xa4d4[2362]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2134]]=function(){return this[_0xa4d4[2363]]};mxGraph[_0xa4d4[202]][_0xa4d4[2610]]=function(_0x7246x2){this[_0xa4d4[2363]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2125]]=function(){return this[_0xa4d4[2364]]};mxGraph[_0xa4d4[202]][_0xa4d4[2611]]=function(_0x7246x2){this[_0xa4d4[2364]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2612]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2);return this[_0xa4d4[2613]]()||null!=_0x7246x3&&this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x2)&&_0x7246x3[_0xa4d4[1500]];};mxGraph[_0xa4d4[202]][_0xa4d4[2613]]=function(){return this[_0xa4d4[2368]]};mxGraph[_0xa4d4[202]][_0xa4d4[2614]]=function(_0x7246x2){this[_0xa4d4[2368]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2615]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1938]](_0x7246x2,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){return this[_0xa4d4[2616]](_0x7246x2)}))};mxGraph[_0xa4d4[202]][_0xa4d4[2616]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x2=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return this[_0xa4d4[2617]]()&&0!=_0x7246x2[mxConstants[_0xa4d4[2618]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2617]]=function(){return this[_0xa4d4[2369]]};mxGraph[_0xa4d4[202]][_0xa4d4[2619]]=function(_0x7246x2){this[_0xa4d4[2369]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[898]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1938]](_0x7246x2,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){return this[_0xa4d4[2620]](_0x7246x2)}))};mxGraph[_0xa4d4[202]][_0xa4d4[2620]]=function(_0x7246x2){return this[_0xa4d4[2366]]};mxGraph[_0xa4d4[202]][_0xa4d4[900]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1938]](_0x7246x2,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){return this[_0xa4d4[2621]](_0x7246x2)}))};mxGraph[_0xa4d4[202]][_0xa4d4[2621]]=function(_0x7246x2){return this[_0xa4d4[2367]]};mxGraph[_0xa4d4[202]][_0xa4d4[2102]]=function(_0x7246x2){return this[_0xa4d4[2622]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2622]]=function(){return this[_0xa4d4[2379]]};mxGraph[_0xa4d4[202]][_0xa4d4[2623]]=function(_0x7246x2){this[_0xa4d4[2379]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2510]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1938]](_0x7246x2,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){return this[_0xa4d4[2624]](_0x7246x2)}))};mxGraph[_0xa4d4[202]][_0xa4d4[2624]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x2=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return this[_0xa4d4[2625]]()&&0!=_0x7246x2[mxConstants[_0xa4d4[2626]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2625]]=function(){return this[_0xa4d4[2371]]};mxGraph[_0xa4d4[202]][_0xa4d4[2627]]=function(_0x7246x2){this[_0xa4d4[2371]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2628]]=function(_0x7246x2){return !this[_0xa4d4[2612]](_0x7246x2)&&(this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)&&this[_0xa4d4[2373]]||this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x2)&&this[_0xa4d4[2374]])};mxGraph[_0xa4d4[202]][_0xa4d4[2629]]=function(_0x7246x2){return this[_0xa4d4[251]][_0xa4d4[1938]](_0x7246x2,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){return this[_0xa4d4[1712]](_0x7246x2)}))};mxGraph[_0xa4d4[202]][_0xa4d4[1712]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x3=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return this[_0xa4d4[2630]]()&&!this[_0xa4d4[2612]](_0x7246x2)&&0!=_0x7246x3[mxConstants[_0xa4d4[2631]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2630]]=function(){return this[_0xa4d4[2372]]};mxGraph[_0xa4d4[202]][_0xa4d4[2632]]=function(_0x7246x2){this[_0xa4d4[2372]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[997]]=function(){return this[_0xa4d4[991]]};mxGraph[_0xa4d4[202]][_0xa4d4[998]]=function(_0x7246x2){this[_0xa4d4[991]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2549]]=function(){return this[_0xa4d4[2348]]};mxGraph[_0xa4d4[202]][_0xa4d4[2633]]=function(_0x7246x2){this[_0xa4d4[2348]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2634]]=function(){return this[_0xa4d4[1020]]};mxGraph[_0xa4d4[202]][_0xa4d4[2635]]=function(_0x7246x2){this[_0xa4d4[1020]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2636]]=function(){return this[_0xa4d4[2353]]};mxGraph[_0xa4d4[202]][_0xa4d4[2637]]=function(_0x7246x2){this[_0xa4d4[2353]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2638]]=function(){return this[_0xa4d4[2374]]};mxGraph[_0xa4d4[202]][_0xa4d4[2639]]=function(_0x7246x2){this[_0xa4d4[2374]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2640]]=function(){return this[_0xa4d4[2373]]};mxGraph[_0xa4d4[202]][_0xa4d4[2641]]=function(_0x7246x2){this[_0xa4d4[2373]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2642]]=function(){return this[_0xa4d4[2412]]};mxGraph[_0xa4d4[202]][_0xa4d4[2643]]=function(_0x7246x2){this[_0xa4d4[2412]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2460]]=function(){return this[_0xa4d4[2411]]};mxGraph[_0xa4d4[202]][_0xa4d4[2644]]=function(_0x7246x2){this[_0xa4d4[2411]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2645]]=function(){return this[_0xa4d4[2404]]};mxGraph[_0xa4d4[202]][_0xa4d4[2646]]=function(_0x7246x2){this[_0xa4d4[2404]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2647]]=function(){return this[_0xa4d4[2402]]};mxGraph[_0xa4d4[202]][_0xa4d4[2648]]=function(_0x7246x2){this[_0xa4d4[2406]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2530]]=function(){return this[_0xa4d4[2406]]};mxGraph[_0xa4d4[202]][_0xa4d4[2649]]=function(_0x7246x2){this[_0xa4d4[2405]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2650]]=function(){return this[_0xa4d4[2405]]};mxGraph[_0xa4d4[202]][_0xa4d4[2651]]=function(_0x7246x2){this[_0xa4d4[2407]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2527]]=function(){return this[_0xa4d4[2407]]};mxGraph[_0xa4d4[202]][_0xa4d4[2652]]=function(_0x7246x2){this[_0xa4d4[2402]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2529]]=function(){return this[_0xa4d4[2408]]};mxGraph[_0xa4d4[202]][_0xa4d4[2653]]=function(_0x7246x2){this[_0xa4d4[2408]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[1015]]=function(){return this[_0xa4d4[2375]]};mxGraph[_0xa4d4[202]][_0xa4d4[2654]]=function(_0x7246x2){this[_0xa4d4[2375]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2655]]=function(){return this[_0xa4d4[2376]]};mxGraph[_0xa4d4[202]][_0xa4d4[2656]]=function(_0x7246x2){this[_0xa4d4[2376]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2657]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x3=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return this[_0xa4d4[2658]]()&&!this[_0xa4d4[2612]](_0x7246x2)&&0!=_0x7246x3[mxConstants[_0xa4d4[2659]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2658]]=function(){return this[_0xa4d4[2377]]};mxGraph[_0xa4d4[202]][_0xa4d4[2660]]=function(_0x7246x2){this[_0xa4d4[2377]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2661]]=function(_0x7246x2,_0x7246x3){return !0};mxGraph[_0xa4d4[202]][_0xa4d4[2662]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x3=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return this[_0xa4d4[2663]]()&&!this[_0xa4d4[2612]](_0x7246x2)&&0!=_0x7246x3[mxConstants[_0xa4d4[2664]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2663]]=function(){return this[_0xa4d4[2378]]};mxGraph[_0xa4d4[202]][_0xa4d4[2665]]=function(_0x7246x2){this[_0xa4d4[2378]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2453]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x3=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return this[_0xa4d4[2666]]()&&!this[_0xa4d4[2612]](_0x7246x2)&&0!=_0x7246x3[mxConstants[_0xa4d4[2667]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2666]]=function(){return this[_0xa4d4[2370]]};mxGraph[_0xa4d4[202]][_0xa4d4[2668]]=function(_0x7246x2){this[_0xa4d4[2370]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2551]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return this[_0xa4d4[2669]]()&&!this[_0xa4d4[2612]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2669]]=function(){return this[_0xa4d4[2380]]};mxGraph[_0xa4d4[202]][_0xa4d4[2670]]=function(_0x7246x2){this[_0xa4d4[2380]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2671]]=function(_0x7246x2){return null==_0x7246x2&&this[_0xa4d4[2406]]||null!=_0x7246x2&&(!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)||this[_0xa4d4[2405]])&&this[_0xa4d4[2565]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2672]]=function(_0x7246x2){return this[_0xa4d4[2671]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2582]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[2671]](_0x7246x2)&&this[_0xa4d4[2672]](_0x7246x3)};mxGraph[_0xa4d4[202]][_0xa4d4[1995]]=function(_0x7246x2){this[_0xa4d4[2433]][_0xa4d4[995]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[1965]]=function(_0x7246x2){return this[_0xa4d4[2433]][_0xa4d4[994]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2673]]=function(_0x7246x2){this[_0xa4d4[2276]][_0xa4d4[995]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2674]]=function(_0x7246x2){this[_0xa4d4[2316]][_0xa4d4[2431]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2203]]=function(_0x7246x2){if(null!=this[_0xa4d4[2347]]){var _0x7246x3=this[_0xa4d4[2347]][_0xa4d4[2148]]();return null==_0x7246x2?null!=_0x7246x3:_0x7246x2==_0x7246x3;};return !1;};mxGraph[_0xa4d4[202]][_0xa4d4[2455]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x2=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return this[_0xa4d4[2675]]()||1==_0x7246x2[mxConstants[_0xa4d4[2676]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2675]]=function(){return this[_0xa4d4[2381]]};mxGraph[_0xa4d4[202]][_0xa4d4[2677]]=function(_0x7246x2){this[_0xa4d4[2381]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2507]]=function(_0x7246x2){return !this[_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2)&&this[_0xa4d4[2678]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2678]]=function(){return this[_0xa4d4[2392]]};mxGraph[_0xa4d4[202]][_0xa4d4[2679]]=function(_0x7246x2){this[_0xa4d4[2392]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2506]]=function(){return this[_0xa4d4[2393]]};mxGraph[_0xa4d4[202]][_0xa4d4[2680]]=function(_0x7246x2){this[_0xa4d4[2393]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2536]]=function(_0x7246x2){return this[_0xa4d4[2681]]()&&!this[_0xa4d4[502]]()[_0xa4d4[250]](this[_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x2))};mxGraph[_0xa4d4[202]][_0xa4d4[2681]]=function(){return this[_0xa4d4[2391]]};mxGraph[_0xa4d4[202]][_0xa4d4[2682]]=function(_0x7246x2){this[_0xa4d4[2391]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2505]]=function(){return this[_0xa4d4[2390]]};mxGraph[_0xa4d4[202]][_0xa4d4[2528]]=function(_0x7246x2){this[_0xa4d4[2390]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2537]]=function(_0x7246x2){return this[_0xa4d4[2683]](_0x7246x2)?this[_0xa4d4[2354]]:0};mxGraph[_0xa4d4[202]][_0xa4d4[2683]]=function(_0x7246x2){return !1};mxGraph[_0xa4d4[202]][_0xa4d4[2513]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[251]][_0xa4d4[1938]](_0x7246x2,mxUtils[_0xa4d4[885]](this,function(_0x7246x2){return this[_0xa4d4[2516]](_0x7246x2,_0x7246x3)}))};mxGraph[_0xa4d4[202]][_0xa4d4[2516]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2),_0x7246x4=null!=_0x7246x4?_0x7246x4[_0xa4d4[124]]:this[_0xa4d4[1705]](_0x7246x2);return 0<this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2)&&0!=_0x7246x4[mxConstants[_0xa4d4[2684]]];};mxGraph[_0xa4d4[202]][_0xa4d4[2685]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return null!=_0x7246x2&&(this[_0xa4d4[2655]]()&&this[_0xa4d4[2686]](_0x7246x2,_0x7246x3,_0x7246x4)||!this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)&&(this[_0xa4d4[1730]](_0x7246x2)||0<this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2)&&!this[_0xa4d4[1742]](_0x7246x2)))};mxGraph[_0xa4d4[202]][_0xa4d4[2686]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2)&&null!=_0x7246x3&&1==_0x7246x3[_0xa4d4[67]]&&this[_0xa4d4[2565]](_0x7246x3[0])&&null==this[_0xa4d4[2500]](_0x7246x2,this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!0),_0x7246x3[0])?(_0x7246x4=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!0),_0x7246x2=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,!1),!this[_0xa4d4[251]][_0xa4d4[1720]](_0x7246x3[0],_0x7246x4)&&!this[_0xa4d4[251]][_0xa4d4[1720]](_0x7246x3[0],_0x7246x2)):!1};mxGraph[_0xa4d4[202]][_0xa4d4[564]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(!this[_0xa4d4[2642]]()){for(var _0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){if(this[_0xa4d4[1730]](_0x7246x2[_0x7246x5])){return null}}};_0x7246x5=mxUtils[_0xa4d4[2196]](this[_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x3),mxEvent[_0xa4d4[733]](_0x7246x3));_0x7246x5[_0xa4d4[235]]-=this[_0xa4d4[1136]];_0x7246x5[_0xa4d4[236]]-=this[_0xa4d4[1137]];_0x7246x5=this[_0xa4d4[2461]](_0x7246x5[_0xa4d4[235]],_0x7246x5[_0xa4d4[236]]);if(null==_0x7246x4){_0x7246x4=_0x7246x5}else {if(null!=_0x7246x5){for(var _0x7246x9=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x5);null!=_0x7246x9&&this[_0xa4d4[1730]](_0x7246x9)&&_0x7246x9!=_0x7246x4;){_0x7246x9=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x9)};_0x7246x9==_0x7246x4&&(_0x7246x4=_0x7246x5);}};for(;null!=_0x7246x4&&!this[_0xa4d4[2685]](_0x7246x4,_0x7246x2,_0x7246x3)&&!this[_0xa4d4[251]][_0xa4d4[1740]](_0x7246x4);){_0x7246x4=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x4)};return !this[_0xa4d4[251]][_0xa4d4[1740]](_0x7246x4)&&0>mxUtils[_0xa4d4[2]](_0x7246x2,_0x7246x4)?_0x7246x4:null;};mxGraph[_0xa4d4[202]][_0xa4d4[902]]=function(){var _0x7246x2=this[_0xa4d4[2355]];null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[2534]](),null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[251]][_0xa4d4[501]](),_0x7246x2=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,0)));return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2687]]=function(_0x7246x2){this[_0xa4d4[2355]]=_0x7246x2};mxGraph[_0xa4d4[202]][_0xa4d4[2179]]=function(_0x7246x2){for(;null!=_0x7246x2&&!this[_0xa4d4[1730]](_0x7246x2);){_0x7246x2=this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2)};return _0x7246x2;};mxGraph[_0xa4d4[202]][_0xa4d4[2461]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=_0x7246x4||this[_0xa4d4[902]]();if(null!=_0x7246x4){for(var _0x7246x5=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x4),_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){var _0x7246xa=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x4,_0x7246x9),_0x7246x12=this[_0xa4d4[2461]](_0x7246x2,_0x7246x3,_0x7246xa);if(null!=_0x7246x12){return _0x7246x12};if(this[_0xa4d4[1730]](_0x7246xa)&&(_0x7246x12=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246xa),this[_0xa4d4[1825]](_0x7246x12,_0x7246x2,_0x7246x3))){return _0x7246xa};}};return null;};mxGraph[_0xa4d4[202]][_0xa4d4[999]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x5=null!=_0x7246x5?_0x7246x5:!0;_0x7246x9=null!=_0x7246x9?_0x7246x9:!0;_0x7246x4=null!=_0x7246x4?_0x7246x4:this[_0xa4d4[902]]();if(null!=_0x7246x4){for(var _0x7246xa=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x4)-1;0<=_0x7246xa;_0x7246xa--){var _0x7246x12=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x4,_0x7246xa),_0x7246x13=this[_0xa4d4[999]](_0x7246x2,_0x7246x3,_0x7246x12,_0x7246x5,_0x7246x9);if(null!=_0x7246x13){return _0x7246x13};if(this[_0xa4d4[1714]](_0x7246x12)&&(_0x7246x9&&this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x12)||_0x7246x5&&this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x12))){if(_0x7246x13=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x12),this[_0xa4d4[1825]](_0x7246x13,_0x7246x2,_0x7246x3)){return _0x7246x12}};}};return null;};mxGraph[_0xa4d4[202]][_0xa4d4[1825]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(null!=_0x7246x2){var _0x7246x5=_0x7246x2[_0xa4d4[439]];if(null!=_0x7246x5){_0x7246x2=this[_0xa4d4[2353]]*this[_0xa4d4[2353]];for(var _0x7246x9=_0x7246x5[0],_0x7246xa=1;_0x7246xa<_0x7246x5[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x5[_0x7246xa];if(mxUtils[_0xa4d4[440]](_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]],_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]],_0x7246x3,_0x7246x4)<=_0x7246x2){return !0};_0x7246x9=_0x7246x12;};}else {if(_0x7246x9=mxUtils[_0xa4d4[431]](mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ROTATION)||0),0!=_0x7246x9&&(_0x7246x5=Math[_0xa4d4[426]](-_0x7246x9),_0x7246x9=Math[_0xa4d4[427]](-_0x7246x9),_0x7246xa= new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]()),_0x7246x9=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x3,_0x7246x4),_0x7246x5,_0x7246x9,_0x7246xa),_0x7246x3=_0x7246x9[_0xa4d4[235]],_0x7246x4=_0x7246x9[_0xa4d4[236]]),mxUtils[_0xa4d4[442]](_0x7246x2,_0x7246x3,_0x7246x4)){return !0}};};return !1;};mxGraph[_0xa4d4[202]][_0xa4d4[2688]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);_0x7246x2=this[_0xa4d4[1731]](_0x7246x2);if(null!=_0x7246x5){var _0x7246x9=this[_0xa4d4[249]]()[_0xa4d4[518]]();_0x7246x3-=_0x7246x5[_0xa4d4[235]];_0x7246x4-=_0x7246x5[_0xa4d4[236]];if(0<_0x7246x2[_0xa4d4[117]]&&0<_0x7246x3&&_0x7246x3>_0x7246x2[_0xa4d4[117]]*_0x7246x9||0<_0x7246x2[_0xa4d4[119]]&&0<_0x7246x4&&_0x7246x4>_0x7246x2[_0xa4d4[119]]*_0x7246x9){return !0};};return !1;};mxGraph[_0xa4d4[202]][_0xa4d4[1728]]=function(_0x7246x2){return this[_0xa4d4[1955]](_0x7246x2,!0,!1)};mxGraph[_0xa4d4[202]][_0xa4d4[1956]]=function(_0x7246x2){return this[_0xa4d4[1955]](_0x7246x2,!1,!0)};mxGraph[_0xa4d4[202]][_0xa4d4[1955]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=null!=_0x7246x2?_0x7246x2:this[_0xa4d4[902]]();_0x7246x2=this[_0xa4d4[251]][_0xa4d4[1955]](_0x7246x2,null!=_0x7246x3?_0x7246x3:!1,null!=_0x7246x4?_0x7246x4:!1);_0x7246x3=[];for(_0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[1714]](_0x7246x2[_0x7246x4])&&_0x7246x3[_0xa4d4[207]](_0x7246x2[_0x7246x4])};return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[1756]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[264]](_0x7246x2,_0x7246x3,!0,!0,!1)};mxGraph[_0xa4d4[202]][_0xa4d4[1867]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[264]](_0x7246x2,_0x7246x3,!0,!1,!1)};mxGraph[_0xa4d4[202]][_0xa4d4[1963]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[264]](_0x7246x2,_0x7246x3,!1,!0,!1)};mxGraph[_0xa4d4[202]][_0xa4d4[264]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;_0x7246x5=null!=_0x7246x5?_0x7246x5:!0;_0x7246x9=null!=_0x7246x9?_0x7246x9:!0;_0x7246xa=null!=_0x7246xa?_0x7246xa:!1;for(var _0x7246x12=[],_0x7246x13=this[_0xa4d4[1742]](_0x7246x2),_0x7246x14=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x2),_0x7246x15=0;_0x7246x15<_0x7246x14;_0x7246x15++){var _0x7246x16=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x2,_0x7246x15);if(_0x7246x13||!this[_0xa4d4[1714]](_0x7246x16)){_0x7246x12=_0x7246x12[_0xa4d4[1919]](this[_0xa4d4[251]][_0xa4d4[264]](_0x7246x16,_0x7246x4,_0x7246x5))};};_0x7246x12=_0x7246x12[_0xa4d4[1919]](this[_0xa4d4[251]][_0xa4d4[264]](_0x7246x2,_0x7246x4,_0x7246x5));_0x7246x13=[];for(_0x7246x15=0;_0x7246x15<_0x7246x12[_0xa4d4[67]];_0x7246x15++){_0x7246x16=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x12[_0x7246x15]),_0x7246x14=null!=_0x7246x16?_0x7246x16[_0xa4d4[1710]](!0):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x12[_0x7246x15],!0),_0x7246x16=null!=_0x7246x16?_0x7246x16[_0xa4d4[1710]](!1):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x12[_0x7246x15],!1),(_0x7246x9&&_0x7246x14==_0x7246x16||_0x7246x14!=_0x7246x16&&(_0x7246x4&&_0x7246x16==_0x7246x2&&(null==_0x7246x3||this[_0xa4d4[1920]](_0x7246x14,_0x7246x3,_0x7246xa))||_0x7246x5&&_0x7246x14==_0x7246x2&&(null==_0x7246x3||this[_0xa4d4[1920]](_0x7246x16,_0x7246x3,_0x7246xa))))&&_0x7246x13[_0xa4d4[207]](_0x7246x12[_0x7246x15])};return _0x7246x13;};mxGraph[_0xa4d4[202]][_0xa4d4[1920]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x4?this[_0xa4d4[251]][_0xa4d4[1720]](_0x7246x3,_0x7246x2):this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x2)==_0x7246x3};mxGraph[_0xa4d4[202]][_0xa4d4[1808]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x4=null!=_0x7246x4?_0x7246x4:!0;_0x7246x5=null!=_0x7246x5?_0x7246x5:!0;var _0x7246x9=[],_0x7246xa={};if(null!=_0x7246x2){for(var _0x7246x12=0;_0x7246x12<_0x7246x2[_0xa4d4[67]];_0x7246x12++){var _0x7246x13=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x2[_0x7246x12]),_0x7246x14=null!=_0x7246x13?_0x7246x13[_0xa4d4[1710]](!0):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x2[_0x7246x12],!0),_0x7246x13=null!=_0x7246x13?_0x7246x13[_0xa4d4[1710]](!1):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x2[_0x7246x12],!1);if(_0x7246x14==_0x7246x3&&null!=_0x7246x13&&_0x7246x13!=_0x7246x3&&_0x7246x5){var _0x7246x15=mxCellPath[_0xa4d4[385]](_0x7246x13);null==_0x7246xa[_0x7246x15]&&(_0x7246xa[_0x7246x15]=_0x7246x13,_0x7246x9[_0xa4d4[207]](_0x7246x13));}else {_0x7246x13==_0x7246x3&&(null!=_0x7246x14&&_0x7246x14!=_0x7246x3&&_0x7246x4)&&(_0x7246x15=mxCellPath[_0xa4d4[385]](_0x7246x14),null==_0x7246xa[_0x7246x15]&&(_0x7246xa[_0x7246x15]=_0x7246x14,_0x7246x9[_0xa4d4[207]](_0x7246x14)))};}};return _0x7246x9;};mxGraph[_0xa4d4[202]][_0xa4d4[1781]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null!=_0x7246x4?_0x7246x4:!1;for(var _0x7246x5=this[_0xa4d4[264]](_0x7246x2),_0x7246x9=[],_0x7246xa=0;_0x7246xa<_0x7246x5[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x5[_0x7246xa]),_0x7246x13=null!=_0x7246x12?_0x7246x12[_0xa4d4[1710]](!0):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x5[_0x7246xa],!0),_0x7246x12=null!=_0x7246x12?_0x7246x12[_0xa4d4[1710]](!1):this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x5[_0x7246xa],!1);(_0x7246x13==_0x7246x2&&_0x7246x12==_0x7246x3||!_0x7246x4&&_0x7246x13==_0x7246x3&&_0x7246x12==_0x7246x2)&&_0x7246x9[_0xa4d4[207]](_0x7246x5[_0x7246xa]);};return _0x7246x9;};mxGraph[_0xa4d4[202]][_0xa4d4[2689]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=mxUtils[_0xa4d4[2196]](this[_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x2),mxEvent[_0xa4d4[733]](_0x7246x2)),_0x7246x5=this[_0xa4d4[441]][_0xa4d4[255]],_0x7246x9=this[_0xa4d4[441]][_0xa4d4[513]],_0x7246xa=!1!=_0x7246x3?this[_0xa4d4[1020]]/2:0;_0x7246x4[_0xa4d4[235]]=this[_0xa4d4[1021]](_0x7246x4[_0xa4d4[235]]/_0x7246x5-_0x7246x9[_0xa4d4[235]]-_0x7246xa);_0x7246x4[_0xa4d4[236]]=this[_0xa4d4[1021]](_0x7246x4[_0xa4d4[236]]/_0x7246x5-_0x7246x9[_0xa4d4[236]]-_0x7246xa);return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[2690]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246xa=null!=_0x7246xa?_0x7246xa:[];if(0<_0x7246x4||0<_0x7246x5){var _0x7246x12=_0x7246x2+_0x7246x4,_0x7246x13=_0x7246x3+_0x7246x5;_0x7246x9=_0x7246x9||this[_0xa4d4[902]]();if(null!=_0x7246x9){for(var _0x7246x14=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x9),_0x7246x15=0;_0x7246x15<_0x7246x14;_0x7246x15++){var _0x7246x16=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x9,_0x7246x15),_0x7246x17=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x16);if(this[_0xa4d4[1714]](_0x7246x16)&&null!=_0x7246x17){var _0x7246x18=_0x7246x17,_0x7246x17=mxUtils[_0xa4d4[433]](_0x7246x17[_0xa4d4[124]],mxConstants.STYLE_ROTATION)||0;0!=_0x7246x17&&(_0x7246x18=mxUtils[_0xa4d4[1613]](_0x7246x18,_0x7246x17));_0x7246x18[_0xa4d4[235]]>=_0x7246x2&&_0x7246x18[_0xa4d4[236]]+_0x7246x18[_0xa4d4[119]]<=_0x7246x13&&_0x7246x18[_0xa4d4[236]]>=_0x7246x3&&_0x7246x18[_0xa4d4[235]]+_0x7246x18[_0xa4d4[117]]<=_0x7246x12?_0x7246xa[_0xa4d4[207]](_0x7246x16):this[_0xa4d4[2690]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x16,_0x7246xa);};}};};return _0x7246xa;};mxGraph[_0xa4d4[202]][_0xa4d4[2691]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=[];if(_0x7246x5||_0x7246x9){if(null==_0x7246x4&&(_0x7246x4=this[_0xa4d4[902]]()),null!=_0x7246x4){for(var _0x7246x12=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x4),_0x7246x13=0;_0x7246x13<_0x7246x12;_0x7246x13++){var _0x7246x14=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x4,_0x7246x13),_0x7246x15=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x14);this[_0xa4d4[1714]](_0x7246x14)&&null!=_0x7246x15&&(!_0x7246x5||_0x7246x15[_0xa4d4[235]]>=_0x7246x2)&&(!_0x7246x9||_0x7246x15[_0xa4d4[236]]>=_0x7246x3)&&_0x7246xa[_0xa4d4[207]](_0x7246x14);}}};return _0x7246xa;};mxGraph[_0xa4d4[202]][_0xa4d4[1757]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=null!=_0x7246x3?_0x7246x3:!1;_0x7246x4=null!=_0x7246x4?_0x7246x4:!1;var _0x7246x5=[];if(null!=_0x7246x2){for(var _0x7246x9=this[_0xa4d4[502]](),_0x7246xa=_0x7246x9[_0xa4d4[262]](_0x7246x2),_0x7246x12=null,_0x7246x13=0,_0x7246x14=0;_0x7246x14<_0x7246xa;_0x7246x14++){var _0x7246x15=_0x7246x9[_0xa4d4[263]](_0x7246x2,_0x7246x14);if(this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x15)&&this[_0xa4d4[1714]](_0x7246x15)){for(var _0x7246x16=this[_0xa4d4[1756]](_0x7246x15,_0x7246x3?_0x7246x2:null),_0x7246x17=0,_0x7246x18=0,_0x7246x19=0;_0x7246x19<_0x7246x16[_0xa4d4[67]];_0x7246x19++){this[_0xa4d4[441]][_0xa4d4[1710]](_0x7246x16[_0x7246x19],!0)==_0x7246x15?_0x7246x17++:_0x7246x18++};(_0x7246x4&&0==_0x7246x17&&0<_0x7246x18||!_0x7246x4&&0==_0x7246x18&&0<_0x7246x17)&&_0x7246x5[_0xa4d4[207]](_0x7246x15);_0x7246x16=_0x7246x4?_0x7246x18-_0x7246x17:_0x7246x17-_0x7246x18;_0x7246x16>_0x7246x13&&(_0x7246x13=_0x7246x16,_0x7246x12=_0x7246x15);};};0==_0x7246x5[_0xa4d4[67]]&&null!=_0x7246x12&&_0x7246x5[_0xa4d4[207]](_0x7246x12);};return _0x7246x5;};mxGraph[_0xa4d4[202]][_0xa4d4[1706]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=_0x7246x4&&null!=_0x7246x2){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;_0x7246x9=_0x7246x9||[];var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2);if(null==_0x7246x9[_0x7246xa]&&(_0x7246x9[_0x7246xa]=_0x7246x2,_0x7246x5=_0x7246x4(_0x7246x2,_0x7246x5),null==_0x7246x5||_0x7246x5)){if(_0x7246x5=this[_0xa4d4[251]][_0xa4d4[1707]](_0x7246x2),0<_0x7246x5){for(_0x7246xa=0;_0x7246xa<_0x7246x5;_0x7246xa++){var _0x7246x12=this[_0xa4d4[251]][_0xa4d4[1708]](_0x7246x2,_0x7246xa),_0x7246x13=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x12,!0)==_0x7246x2;if(!_0x7246x3||_0x7246x13){_0x7246x13=this[_0xa4d4[251]][_0xa4d4[1709]](_0x7246x12,!_0x7246x13),this[_0xa4d4[1706]](_0x7246x13,_0x7246x3,_0x7246x4,_0x7246x12,_0x7246x9)};}}};}};mxGraph[_0xa4d4[202]][_0xa4d4[2692]]=function(_0x7246x2){return this[_0xa4d4[2435]]()[_0xa4d4[2097]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2693]]=function(){return this[_0xa4d4[2435]]()[_0xa4d4[1107]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2440]]=function(){return this[_0xa4d4[2435]]()[_0xa4d4[200]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2694]]=function(){return this[_0xa4d4[2435]]()[_0xa4d4[895]][_0xa4d4[67]]};mxGraph[_0xa4d4[202]][_0xa4d4[2452]]=function(){return this[_0xa4d4[2435]]()[_0xa4d4[895]][0]};mxGraph[_0xa4d4[202]][_0xa4d4[897]]=function(){return this[_0xa4d4[2435]]()[_0xa4d4[895]][_0xa4d4[1853]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2450]]=function(_0x7246x2){this[_0xa4d4[2435]]()[_0xa4d4[2099]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[904]]=function(_0x7246x2){this[_0xa4d4[2435]]()[_0xa4d4[2100]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2695]]=function(_0x7246x2){this[_0xa4d4[2435]]()[_0xa4d4[2103]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2696]]=function(_0x7246x2){this[_0xa4d4[2435]]()[_0xa4d4[832]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2697]]=function(_0x7246x2){this[_0xa4d4[2435]]()[_0xa4d4[2104]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2439]]=function(_0x7246x2){this[_0xa4d4[2435]]()[_0xa4d4[842]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2698]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[2690]](_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],_0x7246x2[_0xa4d4[117]],_0x7246x2[_0xa4d4[119]]);this[_0xa4d4[2699]](_0x7246x4,_0x7246x3);return _0x7246x4;};mxGraph[_0xa4d4[202]][_0xa4d4[2700]]=function(){this[_0xa4d4[2701]](!0)};mxGraph[_0xa4d4[202]][_0xa4d4[2702]]=function(){this[_0xa4d4[2701]]()};mxGraph[_0xa4d4[202]][_0xa4d4[2703]]=function(){this[_0xa4d4[2701]](!1,!0)};mxGraph[_0xa4d4[202]][_0xa4d4[2704]]=function(){this[_0xa4d4[2701]](!1,!1,!0)};mxGraph[_0xa4d4[202]][_0xa4d4[2701]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[2105]],_0x7246x9=0<_0x7246x5[_0xa4d4[895]][_0xa4d4[67]]?_0x7246x5[_0xa4d4[895]][0]:null;1<_0x7246x5[_0xa4d4[895]][_0xa4d4[67]]&&_0x7246x5[_0xa4d4[200]]();var _0x7246x5=null!=_0x7246x9?this[_0xa4d4[251]][_0xa4d4[1197]](_0x7246x9):this[_0xa4d4[902]](),_0x7246xa=this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x5);null==_0x7246x9&&0<_0x7246xa?(_0x7246x2=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x5,0),this[_0xa4d4[2450]](_0x7246x2)):(null==_0x7246x9||_0x7246x3)&&null!=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x5)&&null!=this[_0xa4d4[251]][_0xa4d4[1721]](_0x7246x5)?this[_0xa4d4[2534]]()!=_0x7246x5&&this[_0xa4d4[2450]](_0x7246x5):null!=_0x7246x9&&_0x7246x4?0<this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x9)&&(_0x7246x2=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x9,0),this[_0xa4d4[2450]](_0x7246x2)):0<_0x7246xa&&(_0x7246x3=_0x7246x5[_0xa4d4[1738]](_0x7246x9),_0x7246x2?(_0x7246x3++,_0x7246x2=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x5,_0x7246x3%_0x7246xa)):(_0x7246x3--,_0x7246x2=this[_0xa4d4[251]][_0xa4d4[263]](_0x7246x5,0>_0x7246x3?_0x7246xa-1:_0x7246x3)),this[_0xa4d4[2450]](_0x7246x2));};mxGraph[_0xa4d4[202]][_0xa4d4[2705]]=function(_0x7246x2){_0x7246x2=_0x7246x2||this[_0xa4d4[902]]();_0x7246x2=this[_0xa4d4[251]][_0xa4d4[1953]](_0x7246x2);null!=_0x7246x2&&this[_0xa4d4[904]](_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[2706]]=function(_0x7246x2){this[_0xa4d4[2707]](!0,!1,_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2708]]=function(_0x7246x2){this[_0xa4d4[2707]](!1,!0,_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2707]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=_0x7246x4||this[_0xa4d4[902]]();var _0x7246x5=mxUtils[_0xa4d4[885]](this,function(_0x7246x4){return null!=this[_0xa4d4[441]][_0xa4d4[248]](_0x7246x4)&&0==this[_0xa4d4[251]][_0xa4d4[262]](_0x7246x4)&&(this[_0xa4d4[251]][_0xa4d4[1193]](_0x7246x4)&&_0x7246x2||this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x4)&&_0x7246x3)});_0x7246x4=this[_0xa4d4[251]][_0xa4d4[1921]](_0x7246x5,_0x7246x4);this[_0xa4d4[904]](_0x7246x4);};mxGraph[_0xa4d4[202]][_0xa4d4[2459]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[2692]](_0x7246x2);this[_0xa4d4[2462]](_0x7246x3)?_0x7246x4?this[_0xa4d4[2697]](_0x7246x2):this[_0xa4d4[2695]](_0x7246x2):(!_0x7246x4||1!=this[_0xa4d4[2694]]())&&this[_0xa4d4[2450]](_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[2699]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[2462]](_0x7246x3)?this[_0xa4d4[2696]](_0x7246x2):this[_0xa4d4[904]](_0x7246x2)};mxGraph[_0xa4d4[202]][_0xa4d4[2709]]=function(_0x7246x2){var _0x7246x3=null;null!=_0x7246x2&&(this[_0xa4d4[251]][_0xa4d4[250]](_0x7246x2[_0xa4d4[246]])?(_0x7246x3=this[_0xa4d4[441]][_0xa4d4[2291]](_0x7246x2),_0x7246x3=this[_0xa4d4[2573]](_0x7246x2)||_0x7246x3==mxEdgeStyle[_0xa4d4[2568]]||_0x7246x3==mxEdgeStyle[_0xa4d4[2569]]||_0x7246x3==mxEdgeStyle[_0xa4d4[2570]]? new mxElbowEdgeHandler(_0x7246x2):_0x7246x3==mxEdgeStyle[_0xa4d4[2567]]||_0x7246x3==mxEdgeStyle[_0xa4d4[2572]]? new mxEdgeSegmentHandler(_0x7246x2): new mxEdgeHandler(_0x7246x2)):_0x7246x3= new mxVertexHandler(_0x7246x2));return _0x7246x3;};mxGraph[_0xa4d4[202]][_0xa4d4[1133]]=function(_0x7246x2){null==this[_0xa4d4[2329]]&&(this[_0xa4d4[2329]]=[]);this[_0xa4d4[2329]][_0xa4d4[207]](_0x7246x2);};mxGraph[_0xa4d4[202]][_0xa4d4[1148]]=function(_0x7246x2){if(null!=this[_0xa4d4[2329]]){for(var _0x7246x3=0;_0x7246x3<this[_0xa4d4[2329]][_0xa4d4[67]];_0x7246x3++){if(this[_0xa4d4[2329]][_0x7246x3]==_0x7246x2){this[_0xa4d4[2329]][_0xa4d4[300]](_0x7246x3,1);break;}}}};mxGraph[_0xa4d4[202]][_0xa4d4[2710]]=function(_0x7246x2){if(null==_0x7246x2[_0xa4d4[725]]||null==_0x7246x2[_0xa4d4[726]]){var _0x7246x3=mxUtils[_0xa4d4[2196]](this[_0xa4d4[526]],_0x7246x2[_0xa4d4[730]](),_0x7246x2[_0xa4d4[732]]());_0x7246x2[_0xa4d4[725]]=_0x7246x3[_0xa4d4[235]]-this[_0xa4d4[1136]];_0x7246x2[_0xa4d4[726]]=_0x7246x3[_0xa4d4[236]]-this[_0xa4d4[1137]];}};mxGraph[_0xa4d4[202]][_0xa4d4[758]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null==_0x7246x4&&(_0x7246x4=this);this[_0xa4d4[2710]](_0x7246x3);_0x7246x2==mxEvent[_0xa4d4[2711]]&&(this[_0xa4d4[1009]]= !0);if(mxClient[_0xa4d4[754]]&&this[_0xa4d4[2349]]&&_0x7246x2==mxEvent[_0xa4d4[2711]]){var _0x7246x5=( new Date)[_0xa4d4[178]]();_0x7246x5-this[_0xa4d4[2213]]<this[_0xa4d4[2350]]&&Math[_0xa4d4[425]](this[_0xa4d4[2712]]-_0x7246x3[_0xa4d4[730]]())<this[_0xa4d4[2351]]&&Math[_0xa4d4[425]](this[_0xa4d4[2352]]-_0x7246x3[_0xa4d4[732]]())<this[_0xa4d4[2351]]?(this[_0xa4d4[2213]]=0,this[_0xa4d4[761]](_0x7246x3[_0xa4d4[727]](),_0x7246x3[_0xa4d4[736]]()),_0x7246x3[_0xa4d4[727]]()[_0xa4d4[786]]= !0):(this[_0xa4d4[2712]]=_0x7246x3[_0xa4d4[730]](),this[_0xa4d4[2352]]=_0x7246x3[_0xa4d4[732]](),this[_0xa4d4[2213]]=_0x7246x5);};_0x7246x5=2!=_0x7246x3[_0xa4d4[727]]()[_0xa4d4[764]];if(mxClient[_0xa4d4[80]]&&_0xa4d4[462]==document[_0xa4d4[135]]){if(null!=this[_0xa4d4[2713]]&&Math[_0xa4d4[425]](this[_0xa4d4[2713]]-_0x7246x3[_0xa4d4[730]]())>this[_0xa4d4[2351]]||null!=this[_0xa4d4[2714]]&&Math[_0xa4d4[425]](this[_0xa4d4[2714]]-_0x7246x3[_0xa4d4[732]]())>this[_0xa4d4[2351]]){_0x7246x5= !0};_0x7246x2==mxEvent[_0xa4d4[2715]]&&(this[_0xa4d4[2713]]=_0x7246x3[_0xa4d4[730]](),this[_0xa4d4[2714]]=_0x7246x3[_0xa4d4[732]]());};if((_0x7246x2!=mxEvent[_0xa4d4[2715]]||this[_0xa4d4[1009]])&&_0x7246x5){if(_0x7246x2==mxEvent[_0xa4d4[2715]]&&(this[_0xa4d4[1009]]= !1),!this[_0xa4d4[2203]]()&&(mxClient[_0xa4d4[71]]||mxClient[_0xa4d4[75]]||mxClient[_0xa4d4[76]]||mxClient[_0xa4d4[80]]&&mxClient[_0xa4d4[48]]||_0x7246x3[_0xa4d4[727]]()[_0xa4d4[772]]!=this[_0xa4d4[526]])){_0x7246x2==mxEvent[_0xa4d4[2716]]&&(this[_0xa4d4[1009]]&&this[_0xa4d4[1012]])&&this[_0xa4d4[1014]](_0x7246x3[_0xa4d4[734]](),_0x7246x3[_0xa4d4[735]](),this[_0xa4d4[1013]]);if(null!=this[_0xa4d4[2329]]){_0x7246x4=[_0x7246x4,_0x7246x3];_0x7246x3[_0xa4d4[727]]()[_0xa4d4[739]]= !0;for(_0x7246x5=0;_0x7246x5<this[_0xa4d4[2329]][_0xa4d4[67]];_0x7246x5++){var _0x7246x9=this[_0xa4d4[2329]][_0x7246x5];_0x7246x2==mxEvent[_0xa4d4[2711]]?_0x7246x9[_0xa4d4[787]][_0xa4d4[183]](_0x7246x9,_0x7246x4):_0x7246x2==mxEvent[_0xa4d4[2716]]?_0x7246x9[_0xa4d4[788]][_0xa4d4[183]](_0x7246x9,_0x7246x4):_0x7246x2==mxEvent[_0xa4d4[2715]]&&_0x7246x9[_0xa4d4[789]][_0xa4d4[183]](_0x7246x9,_0x7246x4);};};_0x7246x2==mxEvent[_0xa4d4[2715]]&&this[_0xa4d4[173]](_0x7246x3);}}else {_0x7246x2==mxEvent[_0xa4d4[2715]]&&(this[_0xa4d4[1009]]= !1)};};mxGraph[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[2717]]||(this[_0xa4d4[2717]]= !0,null!=this[_0xa4d4[2276]]&&this[_0xa4d4[2276]][_0xa4d4[515]](),null!=this[_0xa4d4[2432]]&&this[_0xa4d4[2432]][_0xa4d4[515]](),null!=this[_0xa4d4[2316]]&&this[_0xa4d4[2316]][_0xa4d4[515]](),null!=this[_0xa4d4[2433]]&&this[_0xa4d4[2433]][_0xa4d4[515]](),null!=this[_0xa4d4[1011]]&&this[_0xa4d4[1011]][_0xa4d4[515]](),null!=this[_0xa4d4[2347]]&&this[_0xa4d4[2347]][_0xa4d4[515]](),null!=this[_0xa4d4[441]]&&this[_0xa4d4[441]][_0xa4d4[515]](),null!=this[_0xa4d4[251]]&&null!=this[_0xa4d4[2343]]&&(this[_0xa4d4[251]][_0xa4d4[745]](this[_0xa4d4[2343]]),this[_0xa4d4[2343]]=null),this[_0xa4d4[526]]=null)};function mxCellOverlay(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){this[_0xa4d4[618]]=_0x7246x2;this[_0xa4d4[2718]]=_0x7246x3;this[_0xa4d4[611]]=null!=_0x7246x4?_0x7246x4:this[_0xa4d4[611]];this[_0xa4d4[123]]=null!=_0x7246x5?_0x7246x5:this[_0xa4d4[123]];this[_0xa4d4[1368]]=null!=_0x7246x9?_0x7246x9: new mxPoint;this[_0xa4d4[270]]=null!=_0x7246xa?_0x7246xa:_0xa4d4[2719];}mxCellOverlay[_0xa4d4[202]]= new mxEventSource;mxCellOverlay[_0xa4d4[202]][_0xa4d4[196]]=mxCellOverlay;mxCellOverlay[_0xa4d4[202]][_0xa4d4[618]]=null;mxCellOverlay[_0xa4d4[202]][_0xa4d4[2718]]=null;mxCellOverlay[_0xa4d4[202]][_0xa4d4[611]]=mxConstants[_0xa4d4[480]];mxCellOverlay[_0xa4d4[202]][_0xa4d4[123]]=mxConstants[_0xa4d4[482]];mxCellOverlay[_0xa4d4[202]][_0xa4d4[1368]]=null;mxCellOverlay[_0xa4d4[202]][_0xa4d4[270]]=null;mxCellOverlay[_0xa4d4[202]][_0xa4d4[2354]]=0.5;mxCellOverlay[_0xa4d4[202]][_0xa4d4[1799]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[441]][_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x2[_0xa4d4[246]]),_0x7246x4=_0x7246x2[_0xa4d4[441]][_0xa4d4[255]],_0x7246x5=null,_0x7246x9=this[_0xa4d4[618]][_0xa4d4[117]],_0x7246xa=this[_0xa4d4[618]][_0xa4d4[119]];_0x7246x3?(_0x7246x3=_0x7246x2[_0xa4d4[439]],1==_0x7246x3[_0xa4d4[67]]%2?_0x7246x5=_0x7246x3[Math[_0xa4d4[519]](_0x7246x3[_0xa4d4[67]]/2)]:(_0x7246x5=_0x7246x3[_0xa4d4[67]]/2,_0x7246x2=_0x7246x3[_0x7246x5-1],_0x7246x3=_0x7246x3[_0x7246x5],_0x7246x5= new mxPoint(_0x7246x2[_0xa4d4[235]]+(_0x7246x3[_0xa4d4[235]]-_0x7246x2[_0xa4d4[235]])/2,_0x7246x2[_0xa4d4[236]]+(_0x7246x3[_0xa4d4[236]]-_0x7246x2[_0xa4d4[236]])/2))):(_0x7246x5= new mxPoint,_0x7246x5[_0xa4d4[235]]=this[_0xa4d4[611]]==mxConstants[_0xa4d4[2132]]?_0x7246x2[_0xa4d4[235]]:this[_0xa4d4[611]]==mxConstants[_0xa4d4[479]]?_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]/2:_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]],_0x7246x5[_0xa4d4[236]]=this[_0xa4d4[123]]==mxConstants[_0xa4d4[1687]]?_0x7246x2[_0xa4d4[236]]:this[_0xa4d4[123]]==mxConstants[_0xa4d4[481]]?_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]/2:_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]);return  new mxRectangle(Math[_0xa4d4[488]](_0x7246x5[_0xa4d4[235]]-(_0x7246x9*this[_0xa4d4[2354]]-this[_0xa4d4[1368]][_0xa4d4[235]])*_0x7246x4),Math[_0xa4d4[488]](_0x7246x5[_0xa4d4[236]]-(_0x7246xa*this[_0xa4d4[2354]]-this[_0xa4d4[1368]][_0xa4d4[236]])*_0x7246x4),_0x7246x9*_0x7246x4,_0x7246xa*_0x7246x4);};mxCellOverlay[_0xa4d4[202]][_0xa4d4[2591]]=function(){return this[_0xa4d4[2718]]};function mxOutline(_0x7246x2,_0x7246x3){this[_0xa4d4[1097]]=_0x7246x2;null!=_0x7246x3&&this[_0xa4d4[176]](_0x7246x3);}mxOutline[_0xa4d4[202]][_0xa4d4[1097]]=null;mxOutline[_0xa4d4[202]][_0xa4d4[2136]]=null;mxOutline[_0xa4d4[202]][_0xa4d4[2720]]=mxConstants[_0xa4d4[2333]];mxOutline[_0xa4d4[202]][_0xa4d4[984]]= !0;mxOutline[_0xa4d4[202]][_0xa4d4[2721]]= !0;mxOutline[_0xa4d4[202]][_0xa4d4[467]]=10;mxOutline[_0xa4d4[202]][_0xa4d4[2722]]=8;mxOutline[_0xa4d4[202]][_0xa4d4[2723]]= !1;mxOutline[_0xa4d4[202]][_0xa4d4[2724]]=null;mxOutline[_0xa4d4[202]][_0xa4d4[1063]]= !1;mxOutline[_0xa4d4[202]][_0xa4d4[176]]=function(_0x7246x2){this[_0xa4d4[2136]]= new mxGraph(_0x7246x2,this[_0xa4d4[1097]][_0xa4d4[502]](),this[_0xa4d4[2720]],this[_0xa4d4[1097]][_0xa4d4[2434]]());this[_0xa4d4[2136]][_0xa4d4[2206]]= !1;this[_0xa4d4[2136]][_0xa4d4[1012]]= !1;var _0x7246x3=this[_0xa4d4[2136]][_0xa4d4[1177]];this[_0xa4d4[2136]][_0xa4d4[1177]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){!this[_0xa4d4[1063]]&&null!=this[_0xa4d4[2136]]&&_0x7246x3[_0xa4d4[183]](this[_0xa4d4[2136]],arguments)});mxClient[_0xa4d4[48]]&&(_0x7246x2=this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[2051]]()[_0xa4d4[265]],_0x7246x2[_0xa4d4[57]](_0xa4d4[2725],_0xa4d4[2726]),_0x7246x2[_0xa4d4[57]](_0xa4d4[2727],_0xa4d4[2726]));this[_0xa4d4[2136]][_0xa4d4[2409]]= !1;this[_0xa4d4[2136]][_0xa4d4[995]](!1);this[_0xa4d4[2728]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){!this[_0xa4d4[1063]]&&!this[_0xa4d4[1124]]&&this[_0xa4d4[2729]]()});this[_0xa4d4[1097]][_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.CHANGE,this[_0xa4d4[2728]]);this[_0xa4d4[2136]][_0xa4d4[1133]](this);_0x7246x2=this[_0xa4d4[1097]][_0xa4d4[249]]();_0x7246x2[_0xa4d4[169]](mxEvent.SCALE,this[_0xa4d4[2728]]);_0x7246x2[_0xa4d4[169]](mxEvent.TRANSLATE,this[_0xa4d4[2728]]);_0x7246x2[_0xa4d4[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0xa4d4[2728]]);_0x7246x2[_0xa4d4[169]](mxEvent.DOWN,this[_0xa4d4[2728]]);_0x7246x2[_0xa4d4[169]](mxEvent.UP,this[_0xa4d4[2728]]);mxEvent[_0xa4d4[169]](this[_0xa4d4[1097]][_0xa4d4[526]],_0xa4d4[276],this[_0xa4d4[2728]]);this[_0xa4d4[2730]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2723]]&&this[_0xa4d4[2728]][_0xa4d4[183]](this,arguments)});this[_0xa4d4[1097]][_0xa4d4[169]](mxEvent.PAN,this[_0xa4d4[2730]]);this[_0xa4d4[2731]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2136]][_0xa4d4[2341]](this[_0xa4d4[1097]][_0xa4d4[2434]]());this[_0xa4d4[2136]][_0xa4d4[802]]();});this[_0xa4d4[1097]][_0xa4d4[169]](mxEvent.REFRESH,this[_0xa4d4[2731]]);this[_0xa4d4[1562]]= new mxRectangle(0,0,0,0);this[_0xa4d4[2732]]= new mxRectangleShape(this[_0xa4d4[1562]],null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH);this[_0xa4d4[2732]][_0xa4d4[507]]=this[_0xa4d4[2136]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]];this[_0xa4d4[2732]][_0xa4d4[176]](this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[1524]]());mxEvent[_0xa4d4[2733]](this[_0xa4d4[2732]][_0xa4d4[252]],this[_0xa4d4[2136]]);this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[1537]]=_0xa4d4[110];this[_0xa4d4[2734]]=this[_0xa4d4[2735]]();this[_0xa4d4[2734]][_0xa4d4[176]](this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[1524]]());this[_0xa4d4[984]]&&(this[_0xa4d4[2734]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[356]);mxEvent[_0xa4d4[169]](this[_0xa4d4[2734]][_0xa4d4[252]],mxClient[_0xa4d4[754]]?_0xa4d4[755]:_0xa4d4[751],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2136]][_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x2))}));this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]]=this[_0xa4d4[2721]]?_0xa4d4[110]:_0xa4d4[130];this[_0xa4d4[2734]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]]=this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]];this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[582];this[_0xa4d4[2729]](!1);};mxOutline[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxOutline[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxOutline[_0xa4d4[202]][_0xa4d4[2736]]=function(_0x7246x2){this[_0xa4d4[2734]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0x7246x2?_0xa4d4[189]:_0xa4d4[188]};mxOutline[_0xa4d4[202]][_0xa4d4[802]]=function(){this[_0xa4d4[2729]](!0)};mxOutline[_0xa4d4[202]][_0xa4d4[2735]]=function(){var _0x7246x2=null!=this[_0xa4d4[2724]]? new mxImageShape( new mxRectangle(0,0,this[_0xa4d4[2724]][_0xa4d4[117]],this[_0xa4d4[2724]][_0xa4d4[119]]),this[_0xa4d4[2724]][_0xa4d4[390]]): new mxRectangleShape( new mxRectangle(0,0,this[_0xa4d4[2722]],this[_0xa4d4[2722]]),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);_0x7246x2[_0xa4d4[507]]=this[_0xa4d4[2136]][_0xa4d4[507]];return _0x7246x2;};mxOutline[_0xa4d4[202]][_0xa4d4[2737]]=function(){return  new mxRectangle(0,0,this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[1526]],this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[191]])};mxOutline[_0xa4d4[202]][_0xa4d4[2738]]=function(_0x7246x2){return null};mxOutline[_0xa4d4[202]][_0xa4d4[2729]]=function(_0x7246x2){if(null!=this[_0xa4d4[1097]]){var _0x7246x3=this[_0xa4d4[1097]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x4=this[_0xa4d4[1097]][_0xa4d4[517]](),_0x7246x4= new mxRectangle(_0x7246x4[_0xa4d4[235]]/_0x7246x3+this[_0xa4d4[1097]][_0xa4d4[1136]],_0x7246x4[_0xa4d4[236]]/_0x7246x3+this[_0xa4d4[1097]][_0xa4d4[1137]],_0x7246x4[_0xa4d4[117]]/_0x7246x3,_0x7246x4[_0xa4d4[119]]/_0x7246x3),_0x7246x5= new mxRectangle(0,0,this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[159]]/_0x7246x3,this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[157]]/_0x7246x3),_0x7246x9=_0x7246x4[_0xa4d4[238]]();_0x7246x9[_0xa4d4[99]](_0x7246x5);var _0x7246xa=this[_0xa4d4[2737]](),_0x7246x5=Math[_0xa4d4[160]](_0x7246xa[_0xa4d4[117]]/_0x7246x3,_0x7246x9[_0xa4d4[117]]),_0x7246x3=Math[_0xa4d4[160]](_0x7246xa[_0xa4d4[119]]/_0x7246x3,_0x7246x9[_0xa4d4[119]]),_0x7246x9=Math[_0xa4d4[160]](0,this[_0xa4d4[2136]][_0xa4d4[526]][_0xa4d4[159]]-this[_0xa4d4[467]]),_0x7246xa=Math[_0xa4d4[160]](0,this[_0xa4d4[2136]][_0xa4d4[526]][_0xa4d4[157]]-this[_0xa4d4[467]]),_0x7246x9=Math[_0xa4d4[243]](_0x7246x9/_0x7246x5,_0x7246xa/_0x7246x3);if(0<_0x7246x9){this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[255]]!=_0x7246x9&&(this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[255]]=_0x7246x9,_0x7246x2= !0);_0x7246x5=this[_0xa4d4[2136]][_0xa4d4[249]]();_0x7246x5[_0xa4d4[1741]]!=this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[1741]]&&_0x7246x5[_0xa4d4[2257]](this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[1741]]);var _0x7246x3=this[_0xa4d4[1097]][_0xa4d4[441]][_0xa4d4[513]],_0x7246xa=_0x7246x3[_0xa4d4[235]]+this[_0xa4d4[1097]][_0xa4d4[1136]],_0x7246x12=_0x7246x3[_0xa4d4[236]]+this[_0xa4d4[1097]][_0xa4d4[1137]],_0x7246x9=this[_0xa4d4[2738]](_0x7246x9);null!=_0x7246x9&&(_0x7246xa+=_0x7246x9[_0xa4d4[235]],_0x7246x12+=_0x7246x9[_0xa4d4[236]]);0>_0x7246x4[_0xa4d4[235]]&&(_0x7246xa-=_0x7246x4[_0xa4d4[235]]);0>_0x7246x4[_0xa4d4[236]]&&(_0x7246x12-=_0x7246x4[_0xa4d4[236]]);if(_0x7246x5[_0xa4d4[513]][_0xa4d4[235]]!=_0x7246xa||_0x7246x5[_0xa4d4[513]][_0xa4d4[236]]!=_0x7246x12){_0x7246x5[_0xa4d4[513]][_0xa4d4[235]]=_0x7246xa,_0x7246x5[_0xa4d4[513]][_0xa4d4[236]]=_0x7246x12,_0x7246x2= !0};var _0x7246x4=_0x7246x5[_0xa4d4[513]],_0x7246x9=this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246xa=_0x7246x9/_0x7246x5[_0xa4d4[255]],_0x7246x12=1/_0x7246x5[_0xa4d4[255]],_0x7246x13=this[_0xa4d4[1097]][_0xa4d4[526]];this[_0xa4d4[1562]]= new mxRectangle((_0x7246x4[_0xa4d4[235]]-_0x7246x3[_0xa4d4[235]]-this[_0xa4d4[1097]][_0xa4d4[1136]])/_0x7246x12,(_0x7246x4[_0xa4d4[236]]-_0x7246x3[_0xa4d4[236]]-this[_0xa4d4[1097]][_0xa4d4[1137]])/_0x7246x12,_0x7246x13[_0xa4d4[159]]/_0x7246xa,_0x7246x13[_0xa4d4[157]]/_0x7246xa);this[_0xa4d4[1562]][_0xa4d4[235]]+=this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[360]]*_0x7246x5[_0xa4d4[255]]/_0x7246x9;this[_0xa4d4[1562]][_0xa4d4[236]]+=this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[190]]*_0x7246x5[_0xa4d4[255]]/_0x7246x9;_0x7246x4=this[_0xa4d4[2732]][_0xa4d4[1562]];if(_0x7246x4[_0xa4d4[235]]!=this[_0xa4d4[1562]][_0xa4d4[235]]||_0x7246x4[_0xa4d4[236]]!=this[_0xa4d4[1562]][_0xa4d4[236]]||_0x7246x4[_0xa4d4[117]]!=this[_0xa4d4[1562]][_0xa4d4[117]]||_0x7246x4[_0xa4d4[119]]!=this[_0xa4d4[1562]][_0xa4d4[119]]){this[_0xa4d4[2732]][_0xa4d4[1562]]=this[_0xa4d4[1562]],this[_0xa4d4[2732]][_0xa4d4[258]]()};_0x7246x4=this[_0xa4d4[2734]][_0xa4d4[1562]];_0x7246x5= new mxRectangle(this[_0xa4d4[1562]][_0xa4d4[235]]+this[_0xa4d4[1562]][_0xa4d4[117]]-_0x7246x4[_0xa4d4[117]]/2,this[_0xa4d4[1562]][_0xa4d4[236]]+this[_0xa4d4[1562]][_0xa4d4[119]]-_0x7246x4[_0xa4d4[119]]/2,_0x7246x4[_0xa4d4[117]],_0x7246x4[_0xa4d4[119]]);if(_0x7246x4[_0xa4d4[235]]!=_0x7246x5[_0xa4d4[235]]||_0x7246x4[_0xa4d4[236]]!=_0x7246x5[_0xa4d4[236]]||_0x7246x4[_0xa4d4[117]]!=_0x7246x5[_0xa4d4[117]]||_0x7246x4[_0xa4d4[119]]!=_0x7246x5[_0xa4d4[119]]){this[_0xa4d4[2734]][_0xa4d4[1562]]=_0x7246x5,_0xa4d4[188]!=this[_0xa4d4[2734]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]&&this[_0xa4d4[2734]][_0xa4d4[258]]()};_0x7246x2&&this[_0xa4d4[2136]][_0xa4d4[441]][_0xa4d4[2259]]();};}};mxOutline[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[984]]&&this[_0xa4d4[2721]]&&(this[_0xa4d4[499]]=_0x7246x3[_0xa4d4[729]](this[_0xa4d4[2734]]),this[_0xa4d4[2739]]=_0x7246x3[_0xa4d4[730]](),this[_0xa4d4[2740]]=_0x7246x3[_0xa4d4[732]](),this[_0xa4d4[1124]]= !0,this[_0xa4d4[1097]][_0xa4d4[2365]]&&mxUtils[_0xa4d4[1134]](this[_0xa4d4[1097]][_0xa4d4[526]])?(this[_0xa4d4[2741]]=this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[360]],this[_0xa4d4[2742]]=this[_0xa4d4[1097]][_0xa4d4[526]][_0xa4d4[190]]):this[_0xa4d4[2742]]=this[_0xa4d4[2741]]=0);_0x7246x3[_0xa4d4[722]]();};mxOutline[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1124]]){this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]]=this[_0xa4d4[2721]]?_0xa4d4[110]:_0xa4d4[130];this[_0xa4d4[2734]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]]=this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]];var _0x7246x4=_0x7246x3[_0xa4d4[730]]()-this[_0xa4d4[2739]],_0x7246x5=_0x7246x3[_0xa4d4[732]]()-this[_0xa4d4[2740]],_0x7246x9=null;if(this[_0xa4d4[499]]){_0x7246x9=this[_0xa4d4[1097]][_0xa4d4[526]],_0x7246x5=_0x7246x4/(_0x7246x9[_0xa4d4[159]]/_0x7246x9[_0xa4d4[157]]),_0x7246x9= new mxRectangle(this[_0xa4d4[1562]][_0xa4d4[235]],this[_0xa4d4[1562]][_0xa4d4[236]],Math[_0xa4d4[160]](1,this[_0xa4d4[1562]][_0xa4d4[117]]+_0x7246x4),Math[_0xa4d4[160]](1,this[_0xa4d4[1562]][_0xa4d4[119]]+_0x7246x5)),this[_0xa4d4[2732]][_0xa4d4[1562]]=_0x7246x9,this[_0xa4d4[2732]][_0xa4d4[258]]()}else {var _0x7246xa=this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x9= new mxRectangle(this[_0xa4d4[1562]][_0xa4d4[235]]+_0x7246x4,this[_0xa4d4[1562]][_0xa4d4[236]]+_0x7246x5,this[_0xa4d4[1562]][_0xa4d4[117]],this[_0xa4d4[1562]][_0xa4d4[119]]);this[_0xa4d4[2732]][_0xa4d4[1562]]=_0x7246x9;this[_0xa4d4[2732]][_0xa4d4[258]]();_0x7246x4=_0x7246x4/_0x7246xa*this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[255]];_0x7246x5=_0x7246x5/_0x7246xa*this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[255]];this[_0xa4d4[1097]][_0xa4d4[1135]](-_0x7246x4-this[_0xa4d4[2741]],-_0x7246x5-this[_0xa4d4[2742]]);};_0x7246x4=this[_0xa4d4[2734]][_0xa4d4[1562]];this[_0xa4d4[2734]][_0xa4d4[1562]]= new mxRectangle(_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]]-_0x7246x4[_0xa4d4[117]]/2,_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]]-_0x7246x4[_0xa4d4[119]]/2,_0x7246x4[_0xa4d4[117]],_0x7246x4[_0xa4d4[119]]);_0xa4d4[188]!=this[_0xa4d4[2734]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]&&this[_0xa4d4[2734]][_0xa4d4[258]]();_0x7246x3[_0xa4d4[722]]();}};mxOutline[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1124]]){var _0x7246x4=_0x7246x3[_0xa4d4[730]]()-this[_0xa4d4[2739]],_0x7246x5=_0x7246x3[_0xa4d4[732]]()-this[_0xa4d4[2740]];if(0<Math[_0xa4d4[425]](_0x7246x4)||0<Math[_0xa4d4[425]](_0x7246x5)){if(this[_0xa4d4[499]]){var _0x7246x5=this[_0xa4d4[2732]][_0xa4d4[1562]][_0xa4d4[117]],_0x7246x9=this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[255]];this[_0xa4d4[1097]][_0xa4d4[2561]](_0x7246x9-_0x7246x4*_0x7246x9/_0x7246x5,!1);}else {if(!this[_0xa4d4[1097]][_0xa4d4[2365]]||!mxUtils[_0xa4d4[1134]](this[_0xa4d4[1097]][_0xa4d4[526]])){this[_0xa4d4[1097]][_0xa4d4[1135]](0,0),_0x7246x4/=this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x5/=this[_0xa4d4[2136]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x9=this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[513]],this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[1147]](_0x7246x9[_0xa4d4[235]]-_0x7246x4,_0x7246x9[_0xa4d4[236]]-_0x7246x5)}};this[_0xa4d4[2729]]();_0x7246x3[_0xa4d4[722]]();};this[_0xa4d4[1983]]=null;this[_0xa4d4[1124]]= !1;}};mxOutline[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[1097]]&&(this[_0xa4d4[1097]][_0xa4d4[745]](this[_0xa4d4[2730]]),this[_0xa4d4[1097]][_0xa4d4[745]](this[_0xa4d4[2731]]),this[_0xa4d4[1097]][_0xa4d4[502]]()[_0xa4d4[745]](this[_0xa4d4[2728]]),this[_0xa4d4[1097]][_0xa4d4[249]]()[_0xa4d4[745]](this[_0xa4d4[2728]]),mxEvent[_0xa4d4[169]](this[_0xa4d4[1097]][_0xa4d4[526]],_0xa4d4[276],this[_0xa4d4[2728]]),this[_0xa4d4[1097]]=null);null!=this[_0xa4d4[2136]]&&(this[_0xa4d4[2136]][_0xa4d4[1148]](this),this[_0xa4d4[2136]][_0xa4d4[515]](),this[_0xa4d4[2136]]=null);null!=this[_0xa4d4[2732]]&&(this[_0xa4d4[2732]][_0xa4d4[515]](),this[_0xa4d4[2732]]=null);null!=this[_0xa4d4[2734]]&&(this[_0xa4d4[2734]][_0xa4d4[515]](),this[_0xa4d4[2734]]=null);};function mxMultiplicity(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15){this[_0xa4d4[1097]]=_0x7246x2;this[_0xa4d4[60]]=_0x7246x3;this[_0xa4d4[2588]]=_0x7246x4;this[_0xa4d4[131]]=_0x7246x5;this[_0xa4d4[243]]=null!=_0x7246x9?_0x7246x9:0;this[_0xa4d4[160]]=null!=_0x7246xa?_0x7246xa:_0xa4d4[2743];this[_0xa4d4[2744]]=_0x7246x12;this[_0xa4d4[2589]]=mxResources[_0xa4d4[203]](_0x7246x13)||_0x7246x13;this[_0xa4d4[2745]]=mxResources[_0xa4d4[203]](_0x7246x14)||_0x7246x14;this[_0xa4d4[2746]]=null!=_0x7246x15?_0x7246x15:!0;}mxMultiplicity[_0xa4d4[202]][_0xa4d4[60]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[2588]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[131]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[1097]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[243]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[160]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[2744]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[2746]]= !0;mxMultiplicity[_0xa4d4[202]][_0xa4d4[2589]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[2745]]=null;mxMultiplicity[_0xa4d4[202]][_0xa4d4[2583]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){var _0x7246x12=_0xa4d4[110];if(this[_0xa4d4[1097]]&&this[_0xa4d4[2747]](_0x7246x2,_0x7246x4,_0x7246x3)||!this[_0xa4d4[1097]]&&this[_0xa4d4[2747]](_0x7246x2,_0x7246x5,_0x7246x3)){if(null!=this[_0xa4d4[2589]]&&(this[_0xa4d4[1097]]&&(0==this[_0xa4d4[160]]||_0x7246x9>=this[_0xa4d4[160]])||!this[_0xa4d4[1097]]&&(0==this[_0xa4d4[160]]||_0x7246xa>=this[_0xa4d4[160]]))){_0x7246x12+=this[_0xa4d4[2589]]+_0xa4d4[192]};null!=this[_0xa4d4[2744]]&&(null!=this[_0xa4d4[2745]]&&0<this[_0xa4d4[2744]][_0xa4d4[67]])&&(this[_0xa4d4[2748]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5)||(_0x7246x12+=this[_0xa4d4[2745]]+_0xa4d4[192]));};return 0<_0x7246x12[_0xa4d4[67]]?_0x7246x12:null;};mxMultiplicity[_0xa4d4[202]][_0xa4d4[2748]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x3=_0x7246x2[_0xa4d4[251]][_0xa4d4[433]](_0x7246x4);_0x7246x5=_0x7246x2[_0xa4d4[251]][_0xa4d4[433]](_0x7246x5);_0x7246x4=!this[_0xa4d4[2746]];for(var _0x7246x9=this[_0xa4d4[2744]],_0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){if(this[_0xa4d4[1097]]&&this[_0xa4d4[2749]](_0x7246x2,_0x7246x5,_0x7246x9[_0x7246xa])){_0x7246x4=this[_0xa4d4[2746]];break;}else {if(!this[_0xa4d4[1097]]&&this[_0xa4d4[2749]](_0x7246x2,_0x7246x3,_0x7246x9[_0x7246xa])){_0x7246x4=this[_0xa4d4[2746]];break;}}};return _0x7246x4;};mxMultiplicity[_0xa4d4[202]][_0xa4d4[2747]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=_0x7246x2[_0xa4d4[251]][_0xa4d4[433]](_0x7246x3);return this[_0xa4d4[2749]](_0x7246x2,_0x7246x3,this[_0xa4d4[60]],this[_0xa4d4[2588]],this[_0xa4d4[131]]);};mxMultiplicity[_0xa4d4[202]][_0xa4d4[2749]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){return null!=_0x7246x3?isNaN(_0x7246x3[_0xa4d4[288]])?_0x7246x3==_0x7246x4:mxUtils[_0xa4d4[1331]](_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9):!1};function mxLayoutManager(_0x7246x2){this[_0xa4d4[2750]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x4){this[_0xa4d4[994]]()&&this[_0xa4d4[823]](_0x7246x4[_0xa4d4[720]](_0xa4d4[1061]))});this[_0xa4d4[2317]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x4){this[_0xa4d4[994]]()&&this[_0xa4d4[835]](_0x7246x4[_0xa4d4[720]](_0xa4d4[895]),_0x7246x4[_0xa4d4[720]](_0xa4d4[763]))});this[_0xa4d4[1178]](_0x7246x2);}mxLayoutManager[_0xa4d4[202]]= new mxEventSource;mxLayoutManager[_0xa4d4[202]][_0xa4d4[196]]=mxLayoutManager;mxLayoutManager[_0xa4d4[202]][_0xa4d4[1179]]=null;mxLayoutManager[_0xa4d4[202]][_0xa4d4[2751]]= !0;mxLayoutManager[_0xa4d4[202]][_0xa4d4[984]]= !0;mxLayoutManager[_0xa4d4[202]][_0xa4d4[2728]]=null;mxLayoutManager[_0xa4d4[202]][_0xa4d4[2317]]=null;mxLayoutManager[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxLayoutManager[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxLayoutManager[_0xa4d4[202]][_0xa4d4[2752]]=function(){return this[_0xa4d4[2751]]};mxLayoutManager[_0xa4d4[202]][_0xa4d4[2753]]=function(_0x7246x2){this[_0xa4d4[2751]]=_0x7246x2};mxLayoutManager[_0xa4d4[202]][_0xa4d4[1703]]=function(){return this[_0xa4d4[1179]]};mxLayoutManager[_0xa4d4[202]][_0xa4d4[1178]]=function(_0x7246x2){if(null!=this[_0xa4d4[1179]]){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]();_0x7246x3[_0xa4d4[745]](this[_0xa4d4[2750]]);this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2317]]);};this[_0xa4d4[1179]]=_0x7246x2;null!=this[_0xa4d4[1179]]&&(_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x3[_0xa4d4[169]](mxEvent.BEFORE_UNDO,this[_0xa4d4[2750]]),this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.MOVE_CELLS,this[_0xa4d4[2317]]));};mxLayoutManager[_0xa4d4[202]][_0xa4d4[2754]]=function(_0x7246x2){return null};mxLayoutManager[_0xa4d4[202]][_0xa4d4[823]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[2755]](_0x7246x2[_0xa4d4[1065]]);var _0x7246x3=this[_0xa4d4[1703]]()[_0xa4d4[502]]();if(this[_0xa4d4[2752]]()){for(var _0x7246x4=_0x7246x3[_0xa4d4[1977]](_0x7246x2);0<_0x7246x4[_0xa4d4[67]];){_0x7246x2=_0x7246x2[_0xa4d4[1919]](_0x7246x4),_0x7246x4=_0x7246x3[_0xa4d4[1977]](_0x7246x4)}};this[_0xa4d4[828]](mxUtils[_0xa4d4[1779]](_0x7246x2,!1));};mxLayoutManager[_0xa4d4[202]][_0xa4d4[835]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&null!=_0x7246x3){for(var _0x7246x4=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1703]]()[_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x3),mxEvent[_0xa4d4[733]](_0x7246x3)),_0x7246x5=this[_0xa4d4[1703]]()[_0xa4d4[502]](),_0x7246x9=0;_0x7246x9<_0x7246x2[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=this[_0xa4d4[2754]](_0x7246x5[_0xa4d4[1197]](_0x7246x2[_0x7246x9]));null!=_0x7246xa&&_0x7246xa[_0xa4d4[1702]](_0x7246x2[_0x7246x9],_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]);}}};mxLayoutManager[_0xa4d4[202]][_0xa4d4[2755]]=function(_0x7246x2){for(var _0x7246x3=[],_0x7246x4={},_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){var _0x7246x9=_0x7246x2[_0x7246x5];if(_0x7246x9 instanceof mxRootChange){return []};for(var _0x7246x9=this[_0xa4d4[2756]](_0x7246x9),_0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){if(null!=_0x7246x9[_0x7246xa]){var _0x7246x12=mxCellPath[_0xa4d4[385]](_0x7246x9[_0x7246xa]);null==_0x7246x4[_0x7246x12]&&(_0x7246x4[_0x7246x12]=_0x7246x9[_0x7246xa],_0x7246x3[_0xa4d4[207]](_0x7246x9[_0x7246xa]));}};};return _0x7246x3;};mxLayoutManager[_0xa4d4[202]][_0xa4d4[2756]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1703]]()[_0xa4d4[502]]();return _0x7246x2 instanceof mxChildChange?[_0x7246x2[_0xa4d4[247]],_0x7246x2[_0xa4d4[257]],_0x7246x3[_0xa4d4[1197]](_0x7246x2[_0xa4d4[247]])]:_0x7246x2 instanceof mxTerminalChange||_0x7246x2 instanceof mxGeometryChange?[_0x7246x2[_0xa4d4[246]],_0x7246x3[_0xa4d4[1197]](_0x7246x2[_0xa4d4[246]])]:[];};mxLayoutManager[_0xa4d4[202]][_0xa4d4[828]]=function(_0x7246x2){if(0<_0x7246x2[_0xa4d4[67]]){var _0x7246x3=this[_0xa4d4[1703]]()[_0xa4d4[502]]();_0x7246x3[_0xa4d4[473]]();try{for(var _0x7246x4=null,_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){_0x7246x2[_0x7246x5]!=_0x7246x3[_0xa4d4[501]]()&&_0x7246x2[_0x7246x5]!=_0x7246x4&&(_0x7246x4=_0x7246x2[_0x7246x5],this[_0xa4d4[2757]](this[_0xa4d4[2754]](_0x7246x4),_0x7246x4))};this[_0xa4d4[746]]( new mxEventObject(mxEvent.LAYOUT_CELLS,_0xa4d4[895],_0x7246x2));}finally{_0x7246x3[_0xa4d4[476]]()};}};mxLayoutManager[_0xa4d4[202]][_0xa4d4[2757]]=function(_0x7246x2,_0x7246x3){null!=_0x7246x2&&null!=_0x7246x3&&_0x7246x2[_0xa4d4[350]](_0x7246x3)};mxLayoutManager[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1178]](null)};function mxSpaceManager(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[2758]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){this[_0xa4d4[994]]()&&this[_0xa4d4[837]](_0x7246x3[_0xa4d4[720]](_0xa4d4[895]))});this[_0xa4d4[2759]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){this[_0xa4d4[994]]()&&this[_0xa4d4[837]](_0x7246x3[_0xa4d4[720]](_0xa4d4[895]))});this[_0xa4d4[2760]]=null!=_0x7246x3?_0x7246x3:!0;this[_0xa4d4[2761]]=null!=_0x7246x4?_0x7246x4:!0;this[_0xa4d4[2392]]=null!=_0x7246x5?_0x7246x5:!0;this[_0xa4d4[1178]](_0x7246x2);}mxSpaceManager[_0xa4d4[202]]= new mxEventSource;mxSpaceManager[_0xa4d4[202]][_0xa4d4[196]]=mxSpaceManager;mxSpaceManager[_0xa4d4[202]][_0xa4d4[1179]]=null;mxSpaceManager[_0xa4d4[202]][_0xa4d4[984]]= !0;mxSpaceManager[_0xa4d4[202]][_0xa4d4[2760]]= !0;mxSpaceManager[_0xa4d4[202]][_0xa4d4[2761]]= !0;mxSpaceManager[_0xa4d4[202]][_0xa4d4[2392]]= !0;mxSpaceManager[_0xa4d4[202]][_0xa4d4[2758]]=null;mxSpaceManager[_0xa4d4[202]][_0xa4d4[2759]]=null;mxSpaceManager[_0xa4d4[202]][_0xa4d4[2762]]=function(_0x7246x2){return !this[_0xa4d4[1703]]()[_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x2)};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2763]]=function(_0x7246x2){return this[_0xa4d4[1703]]()[_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x2)&&this[_0xa4d4[1703]]()[_0xa4d4[1712]](_0x7246x2)};mxSpaceManager[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxSpaceManager[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2764]]=function(){return this[_0xa4d4[2760]]};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2765]]=function(_0x7246x2){this[_0xa4d4[2760]]=_0x7246x2};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2766]]=function(){return this[_0xa4d4[2761]]};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2767]]=function(_0x7246x2){this[_0xa4d4[2761]]=_0x7246x2};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2678]]=function(){return this[_0xa4d4[2392]]};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2679]]=function(_0x7246x2){this[_0xa4d4[2392]]=_0x7246x2};mxSpaceManager[_0xa4d4[202]][_0xa4d4[1703]]=function(){return this[_0xa4d4[1179]]};mxSpaceManager[_0xa4d4[202]][_0xa4d4[1178]]=function(_0x7246x2){null!=this[_0xa4d4[1179]]&&(this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2758]]),this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2759]]));this[_0xa4d4[1179]]=_0x7246x2;null!=this[_0xa4d4[1179]]&&(this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.RESIZE_CELLS,this[_0xa4d4[2758]]),this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.FOLD_CELLS,this[_0xa4d4[2759]]));};mxSpaceManager[_0xa4d4[202]][_0xa4d4[837]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]();_0x7246x3[_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){if(!this[_0xa4d4[2762]](_0x7246x2[_0x7246x4])){this[_0xa4d4[2768]](_0x7246x2[_0x7246x4]);break;}}}finally{_0x7246x3[_0xa4d4[476]]()};}};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2768]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1703]](),_0x7246x4=_0x7246x3[_0xa4d4[249]](),_0x7246x5=_0x7246x3[_0xa4d4[502]](),_0x7246x9=_0x7246x4[_0xa4d4[248]](_0x7246x2),_0x7246xa=_0x7246x4[_0xa4d4[248]](_0x7246x5[_0xa4d4[1197]](_0x7246x2));if(null!=_0x7246x9&&null!=_0x7246xa){var _0x7246x12=this[_0xa4d4[2769]](_0x7246x9),_0x7246x13=_0x7246x5[_0xa4d4[1721]](_0x7246x2);if(null!=_0x7246x12&&null!=_0x7246x13){var _0x7246x14=_0x7246x4[_0xa4d4[513]],_0x7246x15=_0x7246x4[_0xa4d4[255]],_0x7246x4=_0x7246x9[_0xa4d4[235]]-_0x7246xa[_0xa4d4[2078]][_0xa4d4[235]]-_0x7246x14[_0xa4d4[235]]*_0x7246x15,_0x7246xa=_0x7246x9[_0xa4d4[236]]-_0x7246xa[_0xa4d4[2078]][_0xa4d4[236]]-_0x7246x14[_0xa4d4[236]]*_0x7246x15,_0x7246x14=_0x7246x9[_0xa4d4[235]]+_0x7246x9[_0xa4d4[117]],_0x7246x16=_0x7246x9[_0xa4d4[236]]+_0x7246x9[_0xa4d4[119]],_0x7246x17=_0x7246x9[_0xa4d4[117]]-_0x7246x13[_0xa4d4[117]]*_0x7246x15+_0x7246x4-_0x7246x13[_0xa4d4[235]]*_0x7246x15,_0x7246x18=_0x7246x9[_0xa4d4[119]]-_0x7246x13[_0xa4d4[119]]*_0x7246x15+_0x7246xa-_0x7246x13[_0xa4d4[236]]*_0x7246x15,_0x7246x19=1-_0x7246x13[_0xa4d4[117]]*_0x7246x15/_0x7246x9[_0xa4d4[117]],_0x7246x9=1-_0x7246x13[_0xa4d4[119]]*_0x7246x15/_0x7246x9[_0xa4d4[119]];_0x7246x5[_0xa4d4[473]]();try{for(_0x7246x13=0;_0x7246x13<_0x7246x12[_0xa4d4[67]];_0x7246x13++){_0x7246x12[_0x7246x13]!=_0x7246x2&&this[_0xa4d4[2763]](_0x7246x12[_0x7246x13])&&this[_0xa4d4[2770]](_0x7246x12[_0x7246x13],_0x7246x17,_0x7246x18,_0x7246x4,_0x7246xa,_0x7246x14,_0x7246x16,_0x7246x19,_0x7246x9,this[_0xa4d4[2678]]()&&_0x7246x3[_0xa4d4[2507]](_0x7246x12[_0x7246x13]))}}finally{_0x7246x5[_0xa4d4[476]]()};};};};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2770]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14,_0x7246x15){_0x7246x5=this[_0xa4d4[1703]]();var _0x7246x16=_0x7246x5[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);if(null!=_0x7246x16){var _0x7246x17=_0x7246x5[_0xa4d4[502]](),_0x7246x18=_0x7246x17[_0xa4d4[1721]](_0x7246x2);if(null!=_0x7246x18){_0x7246x17[_0xa4d4[473]]();try{if(this[_0xa4d4[2764]]()){if(_0x7246x16[_0xa4d4[235]]>=_0x7246xa){_0x7246x18=_0x7246x18[_0xa4d4[238]](),_0x7246x18[_0xa4d4[513]](-_0x7246x3,0)}else {var _0x7246x19=Math[_0xa4d4[160]](0,_0x7246x16[_0xa4d4[235]]-x0),_0x7246x18=_0x7246x18[_0xa4d4[238]]();_0x7246x18[_0xa4d4[513]](-_0x7246x13*_0x7246x19,0);}};if(this[_0xa4d4[2766]]()){if(_0x7246x16[_0xa4d4[236]]>=_0x7246x12){_0x7246x18=_0x7246x18[_0xa4d4[238]](),_0x7246x18[_0xa4d4[513]](0,-_0x7246x4)}else {var _0x7246x1a=Math[_0xa4d4[160]](0,_0x7246x16[_0xa4d4[236]]-_0x7246x9),_0x7246x18=_0x7246x18[_0xa4d4[238]]();_0x7246x18[_0xa4d4[513]](0,-_0x7246x14*_0x7246x1a);}};_0x7246x18!=_0x7246x17[_0xa4d4[1721]](_0x7246x2)&&(_0x7246x17[_0xa4d4[1724]](_0x7246x2,_0x7246x18),_0x7246x15&&_0x7246x5[_0xa4d4[2508]](_0x7246x2));}finally{_0x7246x17[_0xa4d4[476]]()};};};};mxSpaceManager[_0xa4d4[202]][_0xa4d4[2769]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1703]](),_0x7246x4=_0x7246x3[_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x2[_0xa4d4[246]]),_0x7246x5=this[_0xa4d4[2766]](),_0x7246x9=this[_0xa4d4[2764]]();return _0x7246x3[_0xa4d4[2691]](_0x7246x2[_0xa4d4[235]]+(_0x7246x5?0:_0x7246x2[_0xa4d4[117]]),_0x7246x2[_0xa4d4[236]]+(_0x7246x5&&_0x7246x9?0:_0x7246x2[_0xa4d4[119]]),_0x7246x4,_0x7246x9,_0x7246x5);};mxSpaceManager[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1178]](null)};function mxSwimlaneManager(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[662]]=null!=_0x7246x3?_0x7246x3:!0;this[_0xa4d4[2771]]=null!=_0x7246x4?_0x7246x4:!0;this[_0xa4d4[2772]]=null!=_0x7246x5?_0x7246x5:!0;this[_0xa4d4[2773]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){this[_0xa4d4[994]]()&&this[_0xa4d4[2774]]()&&this[_0xa4d4[833]](_0x7246x3[_0xa4d4[720]](_0xa4d4[895]))});this[_0xa4d4[2758]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){this[_0xa4d4[994]]()&&this[_0xa4d4[2775]]()&&this[_0xa4d4[837]](_0x7246x3[_0xa4d4[720]](_0xa4d4[895]))});this[_0xa4d4[1178]](_0x7246x2);}mxSwimlaneManager[_0xa4d4[202]]= new mxEventSource;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[196]]=mxSwimlaneManager;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[1179]]=null;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[984]]= !0;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[662]]= !0;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2771]]= !0;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2772]]= !0;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2773]]=null;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2758]]=null;mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[1737]]=function(){return this[_0xa4d4[662]]};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2776]]=function(_0x7246x2){this[_0xa4d4[662]]=_0x7246x2};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2774]]=function(){return this[_0xa4d4[2771]]};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2777]]=function(_0x7246x2){this[_0xa4d4[2771]]=_0x7246x2};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2775]]=function(){return this[_0xa4d4[2772]]};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2778]]=function(_0x7246x2){this[_0xa4d4[2772]]=_0x7246x2};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[1703]]=function(){return this[_0xa4d4[1179]]};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[1178]]=function(_0x7246x2){null!=this[_0xa4d4[1179]]&&(this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2773]]),this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2758]]));this[_0xa4d4[1179]]=_0x7246x2;null!=this[_0xa4d4[1179]]&&(this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.ADD_CELLS,this[_0xa4d4[2773]]),this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.CELLS_RESIZED,this[_0xa4d4[2758]]));};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2779]]=function(_0x7246x2){return !this[_0xa4d4[1703]]()[_0xa4d4[1730]](_0x7246x2)};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2780]]=function(_0x7246x2){if(this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x2)){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);_0x7246x2=null!=_0x7246x3?_0x7246x3[_0xa4d4[124]]:this[_0xa4d4[1179]][_0xa4d4[1705]](_0x7246x2);return 1==mxUtils[_0xa4d4[433]](_0x7246x2,mxConstants.STYLE_HORIZONTAL,1);};return !this[_0xa4d4[1737]]();};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[833]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[1703]]()[_0xa4d4[502]]();_0x7246x3[_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){this[_0xa4d4[2779]](_0x7246x2[_0x7246x4])||this[_0xa4d4[2781]](_0x7246x2[_0x7246x4])}}finally{_0x7246x3[_0xa4d4[476]]()};}};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2781]]=function(_0x7246x2){for(var _0x7246x3=this[_0xa4d4[1703]]()[_0xa4d4[502]](),_0x7246x4=_0x7246x3[_0xa4d4[1197]](_0x7246x2),_0x7246x5=_0x7246x3[_0xa4d4[262]](_0x7246x4),_0x7246x9=null,_0x7246xa=0;_0x7246xa<_0x7246x5;_0x7246xa++){var _0x7246x12=_0x7246x3[_0xa4d4[263]](_0x7246x4,_0x7246xa);if(_0x7246x12!=_0x7246x2&&!this[_0xa4d4[2779]](_0x7246x12)&&(_0x7246x9=_0x7246x3[_0xa4d4[1721]](_0x7246x12),null!=_0x7246x9)){break};};null!=_0x7246x9&&this[_0xa4d4[2782]](_0x7246x2,_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]]);};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[837]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[1703]]()[_0xa4d4[502]]();_0x7246x3[_0xa4d4[473]]();try{for(var _0x7246x4=0;_0x7246x4<_0x7246x2[_0xa4d4[67]];_0x7246x4++){if(!this[_0xa4d4[2779]](_0x7246x2[_0x7246x4])){var _0x7246x5=_0x7246x3[_0xa4d4[1721]](_0x7246x2[_0x7246x4]);if(null!=_0x7246x5){for(var _0x7246x9= new mxRectangle(0,0,_0x7246x5[_0xa4d4[117]],_0x7246x5[_0xa4d4[119]]),_0x7246xa=_0x7246x2[_0x7246x4],_0x7246x12=_0x7246xa;null!=_0x7246x12;){var _0x7246xa=_0x7246x12,_0x7246x12=_0x7246x3[_0xa4d4[1197]](_0x7246x12),_0x7246x13=this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x12)?this[_0xa4d4[1179]][_0xa4d4[1731]](_0x7246x12): new mxRectangle;_0x7246x9[_0xa4d4[117]]+=_0x7246x13[_0xa4d4[117]];_0x7246x9[_0xa4d4[119]]+=_0x7246x13[_0xa4d4[119]];};this[_0xa4d4[2782]](_0x7246xa,_0x7246x9[_0xa4d4[117]],_0x7246x9[_0xa4d4[119]]);};}}}finally{_0x7246x3[_0xa4d4[476]]()};}};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[2782]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1703]]()[_0xa4d4[502]]();_0x7246x5[_0xa4d4[473]]();try{if(!this[_0xa4d4[2779]](_0x7246x2)){var _0x7246x9=_0x7246x5[_0xa4d4[1721]](_0x7246x2);if(null!=_0x7246x9){var _0x7246xa=this[_0xa4d4[2780]](_0x7246x2);if(_0x7246xa&&_0x7246x9[_0xa4d4[119]]!=_0x7246x4||!_0x7246xa&&_0x7246x9[_0xa4d4[117]]!=_0x7246x3){_0x7246x9=_0x7246x9[_0xa4d4[238]](),_0x7246xa?_0x7246x9[_0xa4d4[119]]=_0x7246x4:_0x7246x9[_0xa4d4[117]]=_0x7246x3,_0x7246x5[_0xa4d4[1724]](_0x7246x2,_0x7246x9)};};};var _0x7246x12=this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x2)?this[_0xa4d4[1179]][_0xa4d4[1731]](_0x7246x2): new mxRectangle;_0x7246x3-=_0x7246x12[_0xa4d4[117]];_0x7246x4-=_0x7246x12[_0xa4d4[119]];for(var _0x7246x13=_0x7246x5[_0xa4d4[262]](_0x7246x2),_0x7246x9=0;_0x7246x9<_0x7246x13;_0x7246x9++){var _0x7246x14=_0x7246x5[_0xa4d4[263]](_0x7246x2,_0x7246x9);this[_0xa4d4[2782]](_0x7246x14,_0x7246x3,_0x7246x4);};}finally{_0x7246x5[_0xa4d4[476]]()};};mxSwimlaneManager[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1178]](null)};function mxTemporaryCellStates(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[441]]=_0x7246x2;_0x7246x3=null!=_0x7246x3?_0x7246x3:1;this[_0xa4d4[2783]]=_0x7246x2[_0xa4d4[517]]();this[_0xa4d4[2784]]=_0x7246x2[_0xa4d4[2312]]();this[_0xa4d4[2785]]=_0x7246x2[_0xa4d4[518]]();_0x7246x2[_0xa4d4[1517]]( new mxDictionary);_0x7246x2[_0xa4d4[2262]](_0x7246x3);if(null!=_0x7246x4){_0x7246x3=_0x7246x2[_0xa4d4[1230]]( new mxCell);for(var _0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]];_0x7246x5++){_0x7246x2[_0xa4d4[2267]](_0x7246x3,_0x7246x4[_0x7246x5])};for(var _0x7246x9=null,_0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]];_0x7246x5++){var _0x7246xa=_0x7246x2[_0xa4d4[2268]](_0x7246x3,_0x7246x4[_0x7246x5]);null==_0x7246x9?_0x7246x9=_0x7246xa:_0x7246x9[_0xa4d4[99]](_0x7246xa);};null==_0x7246x9&&(_0x7246x9= new mxRectangle);_0x7246x2[_0xa4d4[2256]](_0x7246x9);};}mxTemporaryCellStates[_0xa4d4[202]][_0xa4d4[441]]=null;mxTemporaryCellStates[_0xa4d4[202]][_0xa4d4[2784]]=null;mxTemporaryCellStates[_0xa4d4[202]][_0xa4d4[2783]]=null;mxTemporaryCellStates[_0xa4d4[202]][_0xa4d4[2785]]=null;mxTemporaryCellStates[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[441]][_0xa4d4[2262]](this[_0xa4d4[2785]]);this[_0xa4d4[441]][_0xa4d4[1517]](this[_0xa4d4[2784]]);this[_0xa4d4[441]][_0xa4d4[2256]](this[_0xa4d4[2783]]);};function mxCellStatePreview(_0x7246x2){this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[2786]]={};}mxCellStatePreview[_0xa4d4[202]][_0xa4d4[1179]]=null;mxCellStatePreview[_0xa4d4[202]][_0xa4d4[2786]]=null;mxCellStatePreview[_0xa4d4[202]][_0xa4d4[2787]]=0;mxCellStatePreview[_0xa4d4[202]][_0xa4d4[1107]]=function(){return 0==this[_0xa4d4[2787]]};mxCellStatePreview[_0xa4d4[202]][_0xa4d4[1194]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x5=null!=_0x7246x5?_0x7246x5:!0;_0x7246x9=null!=_0x7246x9?_0x7246x9:!0;var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x2[_0xa4d4[246]]),_0x7246x12=this[_0xa4d4[2786]][_0x7246xa];null==_0x7246x12?(_0x7246x12= new mxPoint(_0x7246x3,_0x7246x4),this[_0xa4d4[2786]][_0x7246xa]=_0x7246x12,this[_0xa4d4[2787]]++):_0x7246x5?(_0x7246x12[_0xa4d4[2788]]+=_0x7246x3,_0x7246x12[_0xa4d4[2789]]+=_0x7246x4):(_0x7246x12[_0xa4d4[2788]]=_0x7246x3,_0x7246x12[_0xa4d4[2789]]=_0x7246x4);_0x7246x9&&this[_0xa4d4[2790]](_0x7246x2);return _0x7246x12;};mxCellStatePreview[_0xa4d4[202]][_0xa4d4[539]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x4=_0x7246x3[_0xa4d4[501]](),_0x7246x5;for(_0x7246x5 in this[_0xa4d4[2786]]){var _0x7246x9=mxCellPath[_0xa4d4[2791]](_0x7246x4,_0x7246x5),_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x9),_0x7246x12=this[_0xa4d4[2786]][_0x7246x5],_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x3[_0xa4d4[1197]](_0x7246x9));this[_0xa4d4[2792]](_0x7246x9,_0x7246xa,_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]]);};for(_0x7246x5 in this[_0xa4d4[2786]]){_0x7246x9=mxCellPath[_0xa4d4[2791]](_0x7246x4,_0x7246x5),_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x9),_0x7246x12=this[_0xa4d4[2786]][_0x7246x5],_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x3[_0xa4d4[1197]](_0x7246x9)),this[_0xa4d4[2793]](_0x7246x9,_0x7246xa,_0x7246x12[_0xa4d4[235]],_0x7246x12[_0xa4d4[236]],_0x7246x2)};};mxCellStatePreview[_0xa4d4[202]][_0xa4d4[2792]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x3){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[502]]();if(_0x7246x9[_0xa4d4[1193]](_0x7246x3[_0xa4d4[246]])){_0x7246x3[_0xa4d4[2080]]= !0;this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2267]](_0x7246x2,_0x7246x3[_0xa4d4[246]]);_0x7246x2=_0x7246x9[_0xa4d4[1721]](_0x7246x3[_0xa4d4[246]]);var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x3[_0xa4d4[246]]);if((0!=_0x7246x4||0!=_0x7246x5)&&null!=_0x7246x2&&(!_0x7246x2[_0xa4d4[1500]]||null!=this[_0xa4d4[2786]][_0x7246xa])){_0x7246x3[_0xa4d4[235]]+=_0x7246x4,_0x7246x3[_0xa4d4[236]]+=_0x7246x5};};_0x7246x2=_0x7246x9[_0xa4d4[262]](_0x7246x3[_0xa4d4[246]]);for(_0x7246xa=0;_0x7246xa<_0x7246x2;_0x7246xa++){this[_0xa4d4[2792]](_0x7246x3,this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x9[_0xa4d4[263]](_0x7246x3[_0xa4d4[246]],_0x7246xa)),_0x7246x4,_0x7246x5)};}};mxCellStatePreview[_0xa4d4[202]][_0xa4d4[2793]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=_0x7246x3){_0x7246x3[_0xa4d4[2080]]= !0;this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2268]](_0x7246x2,_0x7246x3[_0xa4d4[246]]);var _0x7246xa=mxCellPath[_0xa4d4[385]](_0x7246x3[_0xa4d4[246]]),_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x13=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x3[_0xa4d4[246]]);if((0!=_0x7246x4||0!=_0x7246x5)&&null!=_0x7246x13&&_0x7246x13[_0xa4d4[1500]]&&_0x7246x12[_0xa4d4[1193]](_0x7246x3[_0xa4d4[246]])&&(null==_0x7246x2||_0x7246x12[_0xa4d4[1193]](_0x7246x2[_0xa4d4[246]])||null!=this[_0xa4d4[2786]][_0x7246xa])){_0x7246x3[_0xa4d4[235]]+=_0x7246x4,_0x7246x3[_0xa4d4[236]]+=_0x7246x5,this[_0xa4d4[1179]][_0xa4d4[259]][_0xa4d4[258]](_0x7246x3)};null!=_0x7246x9&&_0x7246x9(_0x7246x3);_0x7246x2=_0x7246x12[_0xa4d4[262]](_0x7246x3[_0xa4d4[246]]);for(_0x7246xa=0;_0x7246xa<_0x7246x2;_0x7246xa++){this[_0xa4d4[2793]](_0x7246x3,this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x12[_0xa4d4[263]](_0x7246x3[_0xa4d4[246]],_0x7246xa)),_0x7246x4,_0x7246x5,_0x7246x9)};}};mxCellStatePreview[_0xa4d4[202]][_0xa4d4[2790]]=function(_0x7246x2){for(var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x4=_0x7246x3[_0xa4d4[1707]](_0x7246x2[_0xa4d4[246]]),_0x7246x5=0;_0x7246x5<_0x7246x4;_0x7246x5++){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x3[_0xa4d4[1708]](_0x7246x2[_0xa4d4[246]],_0x7246x5));null!=_0x7246x9&&this[_0xa4d4[1194]](_0x7246x9,0,0);}};function mxConnectionConstraint(_0x7246x2,_0x7246x3){this[_0xa4d4[2546]]=_0x7246x2;this[_0xa4d4[591]]=null!=_0x7246x3?_0x7246x3:!0;}mxConnectionConstraint[_0xa4d4[202]][_0xa4d4[2546]]=null;mxConnectionConstraint[_0xa4d4[202]][_0xa4d4[591]]=null;function mxGraphHandler(_0x7246x2){this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[1179]][_0xa4d4[1133]](this);this[_0xa4d4[2730]]=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[2794]]()});this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.PAN,this[_0xa4d4[2730]]);}mxGraphHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2795]]=mxClient[_0xa4d4[80]]?20:50;mxGraphHandler[_0xa4d4[202]][_0xa4d4[984]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2796]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2797]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2798]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[990]]= !1;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2799]]=null;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2800]]=null;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2801]]=null;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2802]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2803]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[846]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2804]]= !1;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2805]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[923]]=6;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2806]]=_0xa4d4[586];mxGraphHandler[_0xa4d4[202]][_0xa4d4[2807]]= !1;mxGraphHandler[_0xa4d4[202]][_0xa4d4[253]]=null;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2808]]= !1;mxGraphHandler[_0xa4d4[202]][_0xa4d4[2809]]= !0;mxGraphHandler[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxGraphHandler[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2810]]=function(){return this[_0xa4d4[2797]]};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2811]]=function(_0x7246x2){this[_0xa4d4[2797]]=_0x7246x2};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2812]]=function(){return this[_0xa4d4[2798]]};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2813]]=function(_0x7246x2){this[_0xa4d4[2798]]=_0x7246x2};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2814]]=function(){return this[_0xa4d4[2803]]};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2815]]=function(_0x7246x2){this[_0xa4d4[2803]]=_0x7246x2};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2816]]=function(){return this[_0xa4d4[846]]};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2817]]=function(_0x7246x2){this[_0xa4d4[846]]=_0x7246x2};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2818]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[736]]()};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2819]]=function(_0x7246x2){return this[_0xa4d4[1179]][_0xa4d4[2692]](_0x7246x2)};mxGraphHandler[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&this[_0xa4d4[994]]()&&this[_0xa4d4[1179]][_0xa4d4[994]]()&&!this[_0xa4d4[1179]][_0xa4d4[2579]](_0x7246x3[_0xa4d4[727]]())&&null!=_0x7246x3[_0xa4d4[248]]()){var _0x7246x4=this[_0xa4d4[2818]](_0x7246x3);this[_0xa4d4[246]]=null;this[_0xa4d4[2820]]=this[_0xa4d4[2819]](_0x7246x4);this[_0xa4d4[2814]]()&&!this[_0xa4d4[2820]]&&this[_0xa4d4[1179]][_0xa4d4[2459]](_0x7246x4,_0x7246x3[_0xa4d4[727]]());if(this[_0xa4d4[2812]]()){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[251]],_0x7246x9=_0x7246x5[_0xa4d4[1721]](_0x7246x4);this[_0xa4d4[1179]][_0xa4d4[1712]](_0x7246x4)&&(!_0x7246x5[_0xa4d4[250]](_0x7246x4)||1<this[_0xa4d4[1179]][_0xa4d4[2694]]()||null!=_0x7246x9[_0xa4d4[1525]]&&0<_0x7246x9[_0xa4d4[1525]][_0xa4d4[67]]||null==_0x7246x5[_0xa4d4[1709]](_0x7246x4,!0)||null==_0x7246x5[_0xa4d4[1709]](_0x7246x4,!1)||this[_0xa4d4[1179]][_0xa4d4[2406]]||this[_0xa4d4[1179]][_0xa4d4[2574]](_0x7246x3[_0xa4d4[727]]())&&this[_0xa4d4[1179]][_0xa4d4[2617]]())&&this[_0xa4d4[861]](_0x7246x4,_0x7246x3[_0xa4d4[730]](),_0x7246x3[_0xa4d4[732]]());this[_0xa4d4[2821]]= !0;!mxClient[_0xa4d4[75]]&&!mxClient[_0xa4d4[76]]||_0xa4d4[2822]!=_0x7246x3[_0xa4d4[728]]()[_0xa4d4[301]]?_0x7246x3[_0xa4d4[722]]():mxClient[_0xa4d4[75]]&&_0xa4d4[2822]==_0x7246x3[_0xa4d4[728]]()[_0xa4d4[301]]&&(this[_0xa4d4[2821]]= !1,this[_0xa4d4[2823]]=null);};}};mxGraphHandler[_0xa4d4[202]][_0xa4d4[1010]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[902]](),_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x4=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){return null!=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x2)&&_0x7246x3[_0xa4d4[1193]](_0x7246x2)&&null!=_0x7246x3[_0xa4d4[1721]](_0x7246x2)&&!_0x7246x3[_0xa4d4[1721]](_0x7246x2)[_0xa4d4[1500]]});return this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2313]](_0x7246x3[_0xa4d4[1921]](_0x7246x4,_0x7246x2));};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2690]]=function(_0x7246x2){return !this[_0xa4d4[2820]]&&this[_0xa4d4[1179]][_0xa4d4[1712]](_0x7246x2)?[_0x7246x2]:this[_0xa4d4[1179]][_0xa4d4[2629]](this[_0xa4d4[1179]][_0xa4d4[897]]())};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2824]]=function(_0x7246x2){_0x7246x2=this[_0xa4d4[1613]](_0x7246x2);null!=_0x7246x2&&(_0x7246x2[_0xa4d4[244]](-1,-1),_0x7246x2[_0xa4d4[117]]<this[_0xa4d4[923]]&&(_0x7246x2[_0xa4d4[235]]-=(this[_0xa4d4[923]]-_0x7246x2[_0xa4d4[117]])/2,_0x7246x2[_0xa4d4[117]]=this[_0xa4d4[923]]),_0x7246x2[_0xa4d4[119]]<this[_0xa4d4[923]]&&(_0x7246x2[_0xa4d4[236]]-=(this[_0xa4d4[923]]-_0x7246x2[_0xa4d4[119]])/2,_0x7246x2[_0xa4d4[119]]=this[_0xa4d4[923]]));return _0x7246x2;};mxGraphHandler[_0xa4d4[202]][_0xa4d4[1613]]=function(_0x7246x2){var _0x7246x3=null;if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){for(var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=0;_0x7246x5<_0x7246x2[_0xa4d4[67]];_0x7246x5++){if(_0x7246x4[_0xa4d4[1193]](_0x7246x2[_0x7246x5])||_0x7246x4[_0xa4d4[250]](_0x7246x2[_0x7246x5])){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x2[_0x7246x5]);if(null!=_0x7246x9){var _0x7246xa=_0x7246x9;_0x7246x4[_0xa4d4[1193]](_0x7246x2[_0x7246x5])&&(null!=_0x7246x9[_0xa4d4[253]]&&null!=_0x7246x9[_0xa4d4[253]][_0xa4d4[1563]])&&(_0x7246xa=_0x7246x9[_0xa4d4[253]][_0xa4d4[1563]]);null==_0x7246x3?_0x7246x3= new mxRectangle(_0x7246xa[_0xa4d4[235]],_0x7246xa[_0xa4d4[236]],_0x7246xa[_0xa4d4[117]],_0x7246xa[_0xa4d4[119]]):_0x7246x3[_0xa4d4[99]](_0x7246xa);};}}};return _0x7246x3;};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2825]]=function(_0x7246x2){_0x7246x2= new mxRectangleShape(_0x7246x2,null,this[_0xa4d4[2806]]);_0x7246x2[_0xa4d4[1522]]= !0;this[_0xa4d4[2807]]?(_0x7246x2[_0xa4d4[507]]=mxConstants[_0xa4d4[1656]],_0x7246x2[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[526]])):(_0x7246x2[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]],_0x7246x2[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]()),_0x7246x2[_0xa4d4[1229]]= !1);return _0x7246x2;};mxGraphHandler[_0xa4d4[202]][_0xa4d4[861]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[246]]=_0x7246x2;this[_0xa4d4[2823]]=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],_0x7246x3,_0x7246x4);this[_0xa4d4[895]]=this[_0xa4d4[2690]](this[_0xa4d4[246]]);this[_0xa4d4[1562]]=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1799]](this[_0xa4d4[895]]);this[_0xa4d4[2826]]=this[_0xa4d4[2824]](this[_0xa4d4[895]]);this[_0xa4d4[990]]&&(this[_0xa4d4[2799]]= new mxGuide(this[_0xa4d4[1179]],this[_0xa4d4[1010]]()));};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2827]]=function(_0x7246x2){return null!=this[_0xa4d4[2799]]?this[_0xa4d4[2799]][_0xa4d4[1019]](_0x7246x2[_0xa4d4[727]]()):!0};mxGraphHandler[_0xa4d4[202]][_0xa4d4[1021]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[2808]]?this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]]:1;_0x7246x2[_0xa4d4[235]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[235]]/_0x7246x3)*_0x7246x3;_0x7246x2[_0xa4d4[236]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[236]]/_0x7246x3)*_0x7246x3;return _0x7246x2;};mxGraphHandler[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]];if(!_0x7246x3[_0xa4d4[721]]()&&_0x7246x4[_0xa4d4[1009]]&&null!=this[_0xa4d4[246]]&&null!=this[_0xa4d4[2823]]&&null!=this[_0xa4d4[1562]]){var _0x7246x5=mxUtils[_0xa4d4[2196]](_0x7246x4[_0xa4d4[526]],_0x7246x3[_0xa4d4[730]](),_0x7246x3[_0xa4d4[732]]()),_0x7246x9=_0x7246x5[_0xa4d4[235]]-this[_0xa4d4[2823]][_0xa4d4[235]],_0x7246xa=_0x7246x5[_0xa4d4[236]]-this[_0xa4d4[2823]][_0xa4d4[236]],_0x7246x5=_0x7246x4[_0xa4d4[2353]];if(null!=this[_0xa4d4[253]]||Math[_0xa4d4[425]](_0x7246x9)>_0x7246x5||Math[_0xa4d4[425]](_0x7246xa)>_0x7246x5){null==this[_0xa4d4[1016]]&&(this[_0xa4d4[1016]]= new mxCellHighlight(this[_0xa4d4[1179]],mxConstants.DROP_TARGET_COLOR,3));null==this[_0xa4d4[253]]&&(this[_0xa4d4[253]]=this[_0xa4d4[2825]](this[_0xa4d4[1562]]));var _0x7246x12=_0x7246x4[_0xa4d4[1018]](_0x7246x3[_0xa4d4[727]]()),_0x7246x5=!0;if(null!=this[_0xa4d4[2799]]&&this[_0xa4d4[2827]](_0x7246x3)){_0x7246xa=this[_0xa4d4[2799]][_0xa4d4[582]](this[_0xa4d4[1562]], new mxPoint(_0x7246x9,_0x7246xa),_0x7246x12),_0x7246x5= !1,_0x7246x9=_0x7246xa[_0xa4d4[235]],_0x7246xa=_0x7246xa[_0xa4d4[236]]}else {if(_0x7246x12){var _0x7246x13=_0x7246x4[_0xa4d4[249]]()[_0xa4d4[513]],_0x7246x14=_0x7246x4[_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x12=this[_0xa4d4[1562]][_0xa4d4[235]]-(_0x7246x4[_0xa4d4[1021]](this[_0xa4d4[1562]][_0xa4d4[235]]/_0x7246x14-_0x7246x13[_0xa4d4[235]])+_0x7246x13[_0xa4d4[235]])*_0x7246x14,_0x7246x13=this[_0xa4d4[1562]][_0xa4d4[236]]-(_0x7246x4[_0xa4d4[1021]](this[_0xa4d4[1562]][_0xa4d4[236]]/_0x7246x14-_0x7246x13[_0xa4d4[236]])+_0x7246x13[_0xa4d4[236]])*_0x7246x14,_0x7246xa=this[_0xa4d4[1021]]( new mxPoint(_0x7246x9,_0x7246xa)),_0x7246x9=_0x7246xa[_0xa4d4[235]]-_0x7246x12,_0x7246xa=_0x7246xa[_0xa4d4[236]]-_0x7246x13}};null!=this[_0xa4d4[2799]]&&_0x7246x5&&this[_0xa4d4[2799]][_0xa4d4[801]]();_0x7246x4[_0xa4d4[2578]](_0x7246x3[_0xa4d4[727]]())&&(Math[_0xa4d4[425]](_0x7246x9)>Math[_0xa4d4[425]](_0x7246xa)?_0x7246xa=0:_0x7246x9=0);this[_0xa4d4[2800]]=_0x7246x9;this[_0xa4d4[2801]]=_0x7246xa;this[_0xa4d4[2794]]();_0x7246x5=null;_0x7246xa=_0x7246x3[_0xa4d4[736]]();_0x7246x4[_0xa4d4[1015]]()&&this[_0xa4d4[2796]]&&(_0x7246x5=_0x7246x4[_0xa4d4[564]](this[_0xa4d4[895]],_0x7246x3[_0xa4d4[727]](),_0x7246xa));_0x7246x12=_0x7246x5;for(_0x7246x13=_0x7246x4[_0xa4d4[502]]();null!=_0x7246x12&&_0x7246x12!=this[_0xa4d4[895]][0];){_0x7246x12=_0x7246x13[_0xa4d4[1197]](_0x7246x12)};var _0x7246x14=_0x7246x4[_0xa4d4[2574]](_0x7246x3[_0xa4d4[727]]())&&_0x7246x4[_0xa4d4[2617]]()&&this[_0xa4d4[2810]](),_0x7246x9=_0x7246x4[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x5),_0x7246x15=!1;null!=_0x7246x9&&null==_0x7246x12&&(_0x7246x13[_0xa4d4[1197]](this[_0xa4d4[246]])!=_0x7246x5||_0x7246x14)?(this[_0xa4d4[772]]!=_0x7246x5&&(this[_0xa4d4[772]]=_0x7246x5,this[_0xa4d4[2828]](mxConstants.DROP_TARGET_COLOR)),_0x7246x15= !0):(this[_0xa4d4[772]]=null,this[_0xa4d4[2804]]&&(null!=_0x7246xa&&1==this[_0xa4d4[895]][_0xa4d4[67]]&&_0x7246x4[_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246xa)&&_0x7246x4[_0xa4d4[2565]](_0x7246xa))&&(_0x7246x9=_0x7246x4[_0xa4d4[249]]()[_0xa4d4[248]](_0x7246xa),null!=_0x7246x9&&(_0x7246x4=null==_0x7246x4[_0xa4d4[2500]](null,this[_0xa4d4[246]],_0x7246xa)?mxConstants[_0xa4d4[2829]]:mxConstants[_0xa4d4[2830]],this[_0xa4d4[2828]](_0x7246x4),_0x7246x15= !0)));null!=_0x7246x9&&_0x7246x15?this[_0xa4d4[1016]][_0xa4d4[1016]](_0x7246x9):this[_0xa4d4[1016]][_0xa4d4[801]]();};_0x7246x3[_0xa4d4[722]]();mxEvent[_0xa4d4[722]](_0x7246x3[_0xa4d4[727]]());}else {if((this[_0xa4d4[2812]]()||this[_0xa4d4[2810]]())&&this[_0xa4d4[2802]]&&!_0x7246x3[_0xa4d4[721]]()&&null!=_0x7246x3[_0xa4d4[248]]()&&!_0x7246x4[_0xa4d4[1009]]){_0x7246x9=_0x7246x4[_0xa4d4[2599]](_0x7246x3[_0xa4d4[736]]()),null==_0x7246x9&&(_0x7246x4[_0xa4d4[994]]()&&_0x7246x4[_0xa4d4[1712]](_0x7246x3[_0xa4d4[736]]()))&&(_0x7246x9=_0x7246x4[_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x3[_0xa4d4[736]]())?mxConstants[_0xa4d4[2831]]:mxConstants[_0xa4d4[2832]]),_0x7246x3[_0xa4d4[248]]()[_0xa4d4[1609]](_0x7246x9),_0x7246x3[_0xa4d4[722]]()}};};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2794]]=function(){null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[1562]]= new mxRectangle(Math[_0xa4d4[488]](this[_0xa4d4[2826]][_0xa4d4[235]]+this[_0xa4d4[2800]]-this[_0xa4d4[1179]][_0xa4d4[1136]]),Math[_0xa4d4[488]](this[_0xa4d4[2826]][_0xa4d4[236]]+this[_0xa4d4[2801]]-this[_0xa4d4[1179]][_0xa4d4[1137]]),this[_0xa4d4[2826]][_0xa4d4[117]],this[_0xa4d4[2826]][_0xa4d4[119]]),this[_0xa4d4[253]][_0xa4d4[258]]())};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2828]]=function(_0x7246x2){null!=this[_0xa4d4[1016]]&&this[_0xa4d4[1016]][_0xa4d4[2828]](_0x7246x2)};mxGraphHandler[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()){var _0x7246x4=this[_0xa4d4[1179]];if(null!=this[_0xa4d4[246]]&&null!=this[_0xa4d4[2823]]&&null!=this[_0xa4d4[253]]&&null!=this[_0xa4d4[2800]]&&null!=this[_0xa4d4[2801]]){var _0x7246x5=_0x7246x4[_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x9=_0x7246x4[_0xa4d4[2574]](_0x7246x3[_0xa4d4[727]]())&&_0x7246x4[_0xa4d4[2617]]()&&this[_0xa4d4[2810]](),_0x7246xa=this[_0xa4d4[2800]]/_0x7246x5,_0x7246x5=this[_0xa4d4[2801]]/_0x7246x5,_0x7246x12=_0x7246x3[_0xa4d4[736]]();this[_0xa4d4[2804]]&&null==this[_0xa4d4[772]]&&null!=_0x7246x12&&_0x7246x4[_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x12)&&_0x7246x4[_0xa4d4[2565]](_0x7246x12)&&_0x7246x4[_0xa4d4[2581]](null,this[_0xa4d4[246]],_0x7246x12)?_0x7246x4[_0xa4d4[2433]][_0xa4d4[807]](this[_0xa4d4[246]],_0x7246x12,_0x7246x3[_0xa4d4[727]]()):(_0x7246x12=this[_0xa4d4[772]],_0x7246x4[_0xa4d4[2655]]()&&_0x7246x4[_0xa4d4[2686]](_0x7246x12,this[_0xa4d4[895]],_0x7246x3[_0xa4d4[727]]())?_0x7246x4[_0xa4d4[853]](_0x7246x12,this[_0xa4d4[895]],null,_0x7246xa,_0x7246x5):this[_0xa4d4[834]](this[_0xa4d4[895]],_0x7246xa,_0x7246x5,_0x7246x9,this[_0xa4d4[772]],_0x7246x3[_0xa4d4[727]]()));}else {this[_0xa4d4[2814]]()&&(this[_0xa4d4[2820]]&&null!=this[_0xa4d4[246]])&&this[_0xa4d4[2833]](_0x7246x3)};};this[_0xa4d4[2821]]&&_0x7246x3[_0xa4d4[722]]();this[_0xa4d4[862]]();};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2833]]=function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[2459]](this[_0xa4d4[246]],_0x7246x2[_0xa4d4[727]]())};mxGraphHandler[_0xa4d4[202]][_0xa4d4[862]]=function(){this[_0xa4d4[2834]]();this[_0xa4d4[2820]]=this[_0xa4d4[2821]]= !1;this[_0xa4d4[772]]=this[_0xa4d4[246]]=this[_0xa4d4[2823]]=this[_0xa4d4[2835]]=this[_0xa4d4[2801]]=this[_0xa4d4[2800]]=null;};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2836]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1193]](_0x7246x2)){_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);_0x7246x4=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x4),mxEvent[_0xa4d4[733]](_0x7246x4));var _0x7246x5=mxUtils[_0xa4d4[431]](mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ROTATION)||0);if(0!=_0x7246x5){_0x7246x3=Math[_0xa4d4[426]](-_0x7246x5);var _0x7246x5=Math[_0xa4d4[427]](-_0x7246x5),_0x7246x9= new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]());_0x7246x4=mxUtils[_0xa4d4[432]](_0x7246x4,_0x7246x3,_0x7246x5,_0x7246x9);};return null!=_0x7246x2&&!mxUtils[_0xa4d4[442]](_0x7246x2,_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]);};return !1;};mxGraphHandler[_0xa4d4[202]][_0xa4d4[834]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){_0x7246x5&&(_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[2615]](_0x7246x2));null==_0x7246x9&&(this[_0xa4d4[2816]]()&&this[_0xa4d4[2836]](this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1197]](this[_0xa4d4[246]]),_0x7246x2,_0x7246xa))&&(_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[902]]());_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[834]](_0x7246x2,_0x7246x3-this[_0xa4d4[1179]][_0xa4d4[1136]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x4-this[_0xa4d4[1179]][_0xa4d4[1137]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x5,_0x7246x9,_0x7246xa);this[_0xa4d4[2814]]()&&this[_0xa4d4[2805]]&&this[_0xa4d4[1179]][_0xa4d4[2564]](_0x7246x2[0]);_0x7246x5&&this[_0xa4d4[1179]][_0xa4d4[904]](_0x7246x2);};mxGraphHandler[_0xa4d4[202]][_0xa4d4[2834]]=function(){null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[515]](),this[_0xa4d4[253]]=null);null!=this[_0xa4d4[2799]]&&(this[_0xa4d4[2799]][_0xa4d4[515]](),this[_0xa4d4[2799]]=null);null!=this[_0xa4d4[1016]]&&(this[_0xa4d4[1016]][_0xa4d4[515]](),this[_0xa4d4[1016]]=null);};mxGraphHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1179]][_0xa4d4[1148]](this);this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2730]]);this[_0xa4d4[2834]]();};function mxPanningHandler(_0x7246x2,_0x7246x3){null!=_0x7246x2&&(this[_0xa4d4[1179]]=_0x7246x2,this[_0xa4d4[1033]]=_0x7246x3,this[_0xa4d4[1179]][_0xa4d4[1133]](this),this[_0xa4d4[176]]())}mxPanningHandler[_0xa4d4[202]]= new mxPopupMenu;mxPanningHandler[_0xa4d4[202]][_0xa4d4[196]]=mxPanningHandler;mxPanningHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2837]]=null;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2838]]=null;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2839]]= !0;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2840]]= !1;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2841]]= !0;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2842]]= !0;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2843]]= !1;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2844]]= !0;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2845]]= !1;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2431]]= !0;mxPanningHandler[_0xa4d4[202]][_0xa4d4[2846]]=function(){return this[_0xa4d4[2431]]};mxPanningHandler[_0xa4d4[202]][_0xa4d4[2847]]=function(_0x7246x2){this[_0xa4d4[2431]]=_0x7246x2};mxPanningHandler[_0xa4d4[202]][_0xa4d4[176]]=function(){mxPopupMenu[_0xa4d4[202]][_0xa4d4[176]][_0xa4d4[183]](this);mxEvent[_0xa4d4[169]](this[_0xa4d4[485]],mxClient[_0xa4d4[754]]?_0xa4d4[756]:_0xa4d4[752],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[2276]][_0xa4d4[801]]()}));};mxPanningHandler[_0xa4d4[202]][_0xa4d4[2848]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[727]]();return this[_0xa4d4[2840]]&&(this[_0xa4d4[2843]]||null==_0x7246x2[_0xa4d4[248]]())&&mxEvent[_0xa4d4[1158]](_0x7246x3)||mxEvent[_0xa4d4[775]](_0x7246x3)&&mxEvent[_0xa4d4[774]](_0x7246x3)||this[_0xa4d4[2839]]&&mxEvent[_0xa4d4[737]](_0x7246x3);};mxPanningHandler[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&this[_0xa4d4[994]]()){this[_0xa4d4[1032]]();this[_0xa4d4[2741]]=-this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[360]];this[_0xa4d4[2742]]=-this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[190]];var _0x7246x4=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],_0x7246x3[_0xa4d4[730]](),_0x7246x3[_0xa4d4[732]]());this[_0xa4d4[2837]]=_0x7246x4[_0xa4d4[235]];this[_0xa4d4[2838]]=_0x7246x4[_0xa4d4[236]];this[_0xa4d4[2849]]=this[_0xa4d4[737]](_0x7246x3);this[_0xa4d4[2850]]=this[_0xa4d4[2846]]()&&this[_0xa4d4[2848]](_0x7246x3);this[_0xa4d4[2739]]=_0x7246x3[_0xa4d4[730]]();this[_0xa4d4[2740]]=_0x7246x3[_0xa4d4[732]]();this[_0xa4d4[2850]]&&this[_0xa4d4[2851]](_0x7246x3);}};mxPanningHandler[_0xa4d4[202]][_0xa4d4[2851]]=function(_0x7246x2){_0x7246x2[_0xa4d4[722]]()};mxPanningHandler[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x3[_0xa4d4[730]]()-this[_0xa4d4[2739]],_0x7246x5=_0x7246x3[_0xa4d4[732]]()-this[_0xa4d4[2740]];if(this[_0xa4d4[1124]]){this[_0xa4d4[2844]]&&(this[_0xa4d4[2845]]&&(_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x4),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x5)),this[_0xa4d4[1179]][_0xa4d4[1135]](_0x7246x4+this[_0xa4d4[2741]],_0x7246x5+this[_0xa4d4[2742]])),this[_0xa4d4[746]]( new mxEventObject(mxEvent.PAN,_0xa4d4[763],_0x7246x3)),_0x7246x3[_0xa4d4[722]]()}else {if(this[_0xa4d4[2850]]){var _0x7246x9=this[_0xa4d4[1124]];this[_0xa4d4[1124]]=Math[_0xa4d4[425]](_0x7246x4)>this[_0xa4d4[1179]][_0xa4d4[2353]]||Math[_0xa4d4[425]](_0x7246x5)>this[_0xa4d4[1179]][_0xa4d4[2353]];!_0x7246x9&&this[_0xa4d4[1124]]&&this[_0xa4d4[746]]( new mxEventObject(mxEvent.PAN_START,_0xa4d4[763],_0x7246x3));}};};mxPanningHandler[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=Math[_0xa4d4[425]](_0x7246x3[_0xa4d4[730]]()-this[_0xa4d4[2739]]),_0x7246x5=Math[_0xa4d4[425]](_0x7246x3[_0xa4d4[732]]()-this[_0xa4d4[2740]]);if(this[_0xa4d4[1124]]){if(!this[_0xa4d4[1179]][_0xa4d4[2365]]||!mxUtils[_0xa4d4[1134]](this[_0xa4d4[1179]][_0xa4d4[526]])){_0x7246x4=_0x7246x3[_0xa4d4[730]]()-this[_0xa4d4[2739]];_0x7246x5=_0x7246x3[_0xa4d4[732]]()-this[_0xa4d4[2740]];this[_0xa4d4[2845]]&&(_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x4),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x5));var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[513]];this[_0xa4d4[1179]][_0xa4d4[1135]](0,0);this[_0xa4d4[1135]](_0x7246xa[_0xa4d4[235]]+_0x7246x4/_0x7246x9,_0x7246xa[_0xa4d4[236]]+_0x7246x5/_0x7246x9);};this[_0xa4d4[1124]]= !1;this[_0xa4d4[746]]( new mxEventObject(mxEvent.PAN_END,_0xa4d4[763],_0x7246x3));_0x7246x3[_0xa4d4[722]]();}else {this[_0xa4d4[2849]]&&(_0x7246x4<this[_0xa4d4[1179]][_0xa4d4[2353]]&&_0x7246x5<this[_0xa4d4[1179]][_0xa4d4[2353]])&&(_0x7246x4=this[_0xa4d4[2852]](_0x7246x3),this[_0xa4d4[1179]][_0xa4d4[994]]()&&this[_0xa4d4[2841]]&&null!=_0x7246x4&&!this[_0xa4d4[1179]][_0xa4d4[2692]](_0x7246x4)?this[_0xa4d4[1179]][_0xa4d4[2450]](_0x7246x4):this[_0xa4d4[2842]]&&null==_0x7246x4&&this[_0xa4d4[1179]][_0xa4d4[2440]](),this[_0xa4d4[1179]][_0xa4d4[2276]][_0xa4d4[801]](),_0x7246x5=mxUtils[_0xa4d4[444]](),_0x7246x5= new mxPoint(_0x7246x3[_0xa4d4[730]]()+_0x7246x5[_0xa4d4[235]],_0x7246x3[_0xa4d4[732]]()+_0x7246x5[_0xa4d4[236]]),this[_0xa4d4[152]](_0x7246x5[_0xa4d4[235]]+1,_0x7246x5[_0xa4d4[236]]+1,_0x7246x4,_0x7246x3[_0xa4d4[727]]()),_0x7246x3[_0xa4d4[722]]())};this[_0xa4d4[2849]]=this[_0xa4d4[2850]]= !1;};mxPanningHandler[_0xa4d4[202]][_0xa4d4[2852]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[736]]()};mxPanningHandler[_0xa4d4[202]][_0xa4d4[1135]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1147]](_0x7246x2,_0x7246x3)};mxPanningHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1179]][_0xa4d4[1148]](this);mxPopupMenu[_0xa4d4[202]][_0xa4d4[515]][_0xa4d4[183]](this);};function mxCellMarker(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){mxEventSource[_0xa4d4[239]](this);null!=_0x7246x2&&(this[_0xa4d4[1179]]=_0x7246x2,this[_0xa4d4[2853]]=null!=_0x7246x3?_0x7246x3:mxConstants[_0xa4d4[2854]],this[_0xa4d4[2855]]=null!=_0x7246x3?_0x7246x4:mxConstants[_0xa4d4[2856]],this[_0xa4d4[2857]]=null!=_0x7246x5?_0x7246x5:mxConstants[_0xa4d4[2858]],this[_0xa4d4[1016]]= new mxCellHighlight(_0x7246x2));}mxUtils[_0xa4d4[1284]](mxCellMarker,mxEventSource);mxCellMarker[_0xa4d4[202]][_0xa4d4[1179]]=null;mxCellMarker[_0xa4d4[202]][_0xa4d4[984]]= !0;mxCellMarker[_0xa4d4[202]][_0xa4d4[2857]]=mxConstants[_0xa4d4[2858]];mxCellMarker[_0xa4d4[202]][_0xa4d4[2859]]= !1;mxCellMarker[_0xa4d4[202]][_0xa4d4[2853]]=null;mxCellMarker[_0xa4d4[202]][_0xa4d4[2855]]=null;mxCellMarker[_0xa4d4[202]][_0xa4d4[2860]]=null;mxCellMarker[_0xa4d4[202]][_0xa4d4[2861]]=null;mxCellMarker[_0xa4d4[202]][_0xa4d4[2862]]=null;mxCellMarker[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxCellMarker[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxCellMarker[_0xa4d4[202]][_0xa4d4[2863]]=function(_0x7246x2){this[_0xa4d4[2857]]=_0x7246x2};mxCellMarker[_0xa4d4[202]][_0xa4d4[2864]]=function(){return this[_0xa4d4[2857]]};mxCellMarker[_0xa4d4[202]][_0xa4d4[2865]]=function(_0x7246x2){this[_0xa4d4[2859]]=_0x7246x2};mxCellMarker[_0xa4d4[202]][_0xa4d4[2866]]=function(){return this[_0xa4d4[2859]]};mxCellMarker[_0xa4d4[202]][_0xa4d4[2867]]=function(){return null!=this[_0xa4d4[2861]]};mxCellMarker[_0xa4d4[202]][_0xa4d4[2868]]=function(){return this[_0xa4d4[2861]]};mxCellMarker[_0xa4d4[202]][_0xa4d4[2869]]=function(){return this[_0xa4d4[2862]]};mxCellMarker[_0xa4d4[202]][_0xa4d4[862]]=function(){this[_0xa4d4[2861]]=null;null!=this[_0xa4d4[2862]]&&(this[_0xa4d4[2862]]=null,this[_0xa4d4[2870]]());};mxCellMarker[_0xa4d4[202]][_0xa4d4[2871]]=function(_0x7246x2){var _0x7246x3=null;if(this[_0xa4d4[994]]()){var _0x7246x3=this[_0xa4d4[248]](_0x7246x2),_0x7246x4=null!=_0x7246x3?this[_0xa4d4[2872]](_0x7246x3):!1;_0x7246x2=this[_0xa4d4[2873]](_0x7246x2[_0xa4d4[727]](),_0x7246x3,_0x7246x4);this[_0xa4d4[2861]]=_0x7246x4?_0x7246x3:null;if(_0x7246x3!=this[_0xa4d4[2862]]||_0x7246x2!=this[_0xa4d4[2860]]){this[_0xa4d4[2860]]=_0x7246x2,null!=_0x7246x3&&null!=this[_0xa4d4[2860]]?(this[_0xa4d4[2862]]=_0x7246x3,this[_0xa4d4[811]]()):null!=this[_0xa4d4[2862]]&&(this[_0xa4d4[2862]]=null,this[_0xa4d4[2870]]())};};return _0x7246x3;};mxCellMarker[_0xa4d4[202]][_0xa4d4[2874]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);null!=_0x7246x4&&(this[_0xa4d4[2860]]=null!=_0x7246x3?_0x7246x3:this[_0xa4d4[2853]],this[_0xa4d4[2862]]=_0x7246x4,this[_0xa4d4[811]]());};mxCellMarker[_0xa4d4[202]][_0xa4d4[811]]=function(){this[_0xa4d4[1016]][_0xa4d4[2828]](this[_0xa4d4[2860]]);this[_0xa4d4[1016]][_0xa4d4[1016]](this[_0xa4d4[2862]]);this[_0xa4d4[746]]( new mxEventObject(mxEvent.MARK,_0xa4d4[724],this[_0xa4d4[2862]]));};mxCellMarker[_0xa4d4[202]][_0xa4d4[2870]]=function(){this[_0xa4d4[811]]()};mxCellMarker[_0xa4d4[202]][_0xa4d4[2872]]=function(_0x7246x2){return !0};mxCellMarker[_0xa4d4[202]][_0xa4d4[2873]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x4?this[_0xa4d4[2853]]:this[_0xa4d4[2855]]};mxCellMarker[_0xa4d4[202]][_0xa4d4[248]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[249]]();cell=this[_0xa4d4[736]](_0x7246x2);_0x7246x3=this[_0xa4d4[2875]](_0x7246x3[_0xa4d4[248]](cell));return null!=_0x7246x3&&this[_0xa4d4[1825]](_0x7246x3,_0x7246x2)?_0x7246x3:null;};mxCellMarker[_0xa4d4[202]][_0xa4d4[736]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[736]]()};mxCellMarker[_0xa4d4[202]][_0xa4d4[2875]]=function(_0x7246x2){return _0x7246x2};mxCellMarker[_0xa4d4[202]][_0xa4d4[1825]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[2859]]?mxUtils[_0xa4d4[2876]](_0x7246x2,_0x7246x3[_0xa4d4[734]](),_0x7246x3[_0xa4d4[735]](),this[_0xa4d4[2857]],mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE):!0};mxCellMarker[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[745]](this[_0xa4d4[2877]]);this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[745]](this[_0xa4d4[2877]]);this[_0xa4d4[1016]][_0xa4d4[515]]();};function mxSelectionCellsHandler(_0x7246x2){mxEventSource[_0xa4d4[239]](this);this[_0xa4d4[1179]]=_0x7246x2;this[_0xa4d4[2878]]= new mxDictionary;this[_0xa4d4[1179]][_0xa4d4[1133]](this);this[_0xa4d4[2731]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x4){this[_0xa4d4[994]]()&&this[_0xa4d4[802]]()});this[_0xa4d4[1179]][_0xa4d4[2435]]()[_0xa4d4[169]](mxEvent.CHANGE,this[_0xa4d4[2731]]);this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.CHANGE,this[_0xa4d4[2731]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.SCALE,this[_0xa4d4[2731]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.TRANSLATE,this[_0xa4d4[2731]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0xa4d4[2731]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.DOWN,this[_0xa4d4[2731]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.UP,this[_0xa4d4[2731]]);}mxUtils[_0xa4d4[1284]](mxSelectionCellsHandler,mxEventSource);mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[984]]= !0;mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[2731]]=null;mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[2879]]=100;mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[2878]]=null;mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[2596]]=function(_0x7246x2){return this[_0xa4d4[2878]][_0xa4d4[203]](_0x7246x2)};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[862]]=function(){this[_0xa4d4[2878]][_0xa4d4[209]](function(_0x7246x2,_0x7246x3){_0x7246x3[_0xa4d4[862]][_0xa4d4[183]](_0x7246x3)})};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[802]]=function(){var _0x7246x2=this[_0xa4d4[2878]];this[_0xa4d4[2878]]= new mxDictionary;for(var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[897]](),_0x7246x4=0;_0x7246x4<_0x7246x3[_0xa4d4[67]];_0x7246x4++){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x3[_0x7246x4]);if(null!=_0x7246x5){var _0x7246x9=_0x7246x2[_0xa4d4[205]](_0x7246x3[_0x7246x4]);null!=_0x7246x9&&(_0x7246x9[_0xa4d4[724]]!=_0x7246x5?(_0x7246x9[_0xa4d4[515]](),_0x7246x9=null):_0x7246x9[_0xa4d4[258]]());null==_0x7246x9&&(_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[2709]](_0x7246x5),this[_0xa4d4[746]]( new mxEventObject(mxEvent.ADD,_0xa4d4[724],_0x7246x5)));null!=_0x7246x9&&this[_0xa4d4[2878]][_0xa4d4[204]](_0x7246x3[_0x7246x4],_0x7246x9);};};_0x7246x2[_0xa4d4[209]](mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){this[_0xa4d4[746]]( new mxEventObject(mxEvent.REMOVE,_0xa4d4[724],_0x7246x3[_0xa4d4[724]]));_0x7246x3[_0xa4d4[515]]();}));};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1179]][_0xa4d4[994]]()&&this[_0xa4d4[994]]()){var _0x7246x4=[_0x7246x2,_0x7246x3];this[_0xa4d4[2878]][_0xa4d4[209]](function(_0x7246x2,_0x7246x3){_0x7246x3[_0xa4d4[787]][_0xa4d4[183]](_0x7246x3,_0x7246x4)});}};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1179]][_0xa4d4[994]]()&&this[_0xa4d4[994]]()){var _0x7246x4=[_0x7246x2,_0x7246x3];this[_0xa4d4[2878]][_0xa4d4[209]](function(_0x7246x2,_0x7246x3){_0x7246x3[_0xa4d4[788]][_0xa4d4[183]](_0x7246x3,_0x7246x4)});}};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1179]][_0xa4d4[994]]()&&this[_0xa4d4[994]]()){var _0x7246x4=[_0x7246x2,_0x7246x3];this[_0xa4d4[2878]][_0xa4d4[209]](function(_0x7246x2,_0x7246x3){_0x7246x3[_0xa4d4[789]][_0xa4d4[183]](_0x7246x3,_0x7246x4)});}};mxSelectionCellsHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1179]][_0xa4d4[1148]](this);null!=this[_0xa4d4[2731]]&&(this[_0xa4d4[1179]][_0xa4d4[2435]]()[_0xa4d4[745]](this[_0xa4d4[2731]]),this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[745]](this[_0xa4d4[2731]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[745]](this[_0xa4d4[2731]]),this[_0xa4d4[2731]]=null);};function mxConnectionHandler(_0x7246x2,_0x7246x3){mxEventSource[_0xa4d4[239]](this);null!=_0x7246x2&&(this[_0xa4d4[1179]]=_0x7246x2,this[_0xa4d4[1033]]=_0x7246x3,this[_0xa4d4[176]]());}mxUtils[_0xa4d4[1284]](mxConnectionHandler,mxEventSource);mxConnectionHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[1033]]= !0;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2880]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2881]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2882]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2883]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[984]]= !0;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[804]]= !0;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2884]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2885]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2886]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[267]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2887]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2888]]= !0;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2889]]=500;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2890]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2891]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2892]]=4;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2893]]=0;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2894]]=0;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2895]]= !1;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2823]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2896]]= new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET);mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2897]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[1176]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2898]]=null;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2899]]=0;mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2900]]=mxClient[_0xa4d4[47]];mxConnectionHandler[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2901]]=function(){return this[_0xa4d4[2884]]};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2902]]=function(_0x7246x2){this[_0xa4d4[2884]]=_0x7246x2};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2156]]=function(){var _0x7246x2= new mxPolyline([],mxConstants.INVALID_COLOR);_0x7246x2[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]];_0x7246x2[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]());_0x7246x2[_0xa4d4[1564]]=0;_0x7246x2[_0xa4d4[1229]]= !1;_0x7246x2[_0xa4d4[1522]]= !0;if(this[_0xa4d4[1179]][_0xa4d4[507]]==mxConstants[_0xa4d4[508]]){_0x7246x2[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[130])}else {var _0x7246x3=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){_0x7246x2=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x2),mxEvent[_0xa4d4[733]](_0x7246x2));return this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](this[_0xa4d4[1179]][_0xa4d4[999]](_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]));});mxEvent[_0xa4d4[2733]](_0x7246x2[_0xa4d4[252]],this[_0xa4d4[1179]],_0x7246x3);};return _0x7246x2;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[176]]=function(){this[_0xa4d4[1179]][_0xa4d4[1133]](this);this[_0xa4d4[2885]]=this[_0xa4d4[1689]]();this[_0xa4d4[2886]]= new mxConstraintHandler(this[_0xa4d4[1179]]);this[_0xa4d4[1176]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){null!=this[_0xa4d4[2903]]&&(this[_0xa4d4[2903]]=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](this[_0xa4d4[2903]][_0xa4d4[246]]));null!=this[_0xa4d4[2903]]?this[_0xa4d4[2905]](this[_0xa4d4[2904]],this[_0xa4d4[2903]]):(this[_0xa4d4[2906]](this[_0xa4d4[2904]]),this[_0xa4d4[257]]=null);this[_0xa4d4[2886]][_0xa4d4[862]]();});this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.CHANGE,this[_0xa4d4[1176]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.SCALE,this[_0xa4d4[1176]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.TRANSLATE,this[_0xa4d4[1176]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0xa4d4[1176]]);this[_0xa4d4[2898]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2906]](this[_0xa4d4[2904]])});this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.START_EDITING,this[_0xa4d4[2898]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.DOWN,this[_0xa4d4[2898]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.UP,this[_0xa4d4[2898]]);};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2907]]=function(_0x7246x2){return !0};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[1689]]=function(){var _0x7246x2= new mxCellMarker(this[_0xa4d4[1179]]);_0x7246x2[_0xa4d4[2859]]= !0;_0x7246x2[_0xa4d4[736]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x3,_0x7246x4){_0x7246x4=mxCellMarker[_0xa4d4[202]][_0xa4d4[736]][_0xa4d4[183]](_0x7246x2,arguments);this[_0xa4d4[267]]=null;if(!this[_0xa4d4[2907]](_0x7246x4)){return null};null!=_0x7246x4?this[_0xa4d4[2908]]()?null!=this[_0xa4d4[257]]&&(this[_0xa4d4[267]]=this[_0xa4d4[2909]](this[_0xa4d4[257]][_0xa4d4[246]],_0x7246x4),null!=this[_0xa4d4[267]]&&0==this[_0xa4d4[267]][_0xa4d4[67]]&&(_0x7246x4=null,this[_0xa4d4[2901]]()&&(this[_0xa4d4[267]]=null))):this[_0xa4d4[2671]](_0x7246x4)||(_0x7246x4=null):this[_0xa4d4[2908]]()&&(!this[_0xa4d4[2901]]()&&!this[_0xa4d4[1179]][_0xa4d4[2406]])&&(this[_0xa4d4[267]]=_0xa4d4[110]);return _0x7246x4;});_0x7246x2[_0xa4d4[2872]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x3){return this[_0xa4d4[2908]]()?null==this[_0xa4d4[267]]:mxCellMarker[_0xa4d4[202]][_0xa4d4[2872]][_0xa4d4[183]](_0x7246x2,arguments)});_0x7246x2[_0xa4d4[2873]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x3,_0x7246x4,_0x7246x5){return null==this[_0xa4d4[2882]]||this[_0xa4d4[2908]]()?mxCellMarker[_0xa4d4[202]][_0xa4d4[2873]][_0xa4d4[183]](_0x7246x2,arguments):null});_0x7246x2[_0xa4d4[1825]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x3,_0x7246x4){return null!=this[_0xa4d4[2882]]||this[_0xa4d4[2908]]()?!0:mxCellMarker[_0xa4d4[202]][_0xa4d4[1825]][_0xa4d4[183]](_0x7246x2,arguments)});return _0x7246x2;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[861]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[257]]=_0x7246x2;this[_0xa4d4[2823]]= new mxPoint(_0x7246x3,_0x7246x4);this[_0xa4d4[2897]]=null!=_0x7246x5?_0x7246x5:this[_0xa4d4[2910]](null);this[_0xa4d4[2885]][_0xa4d4[2860]]=this[_0xa4d4[2885]][_0xa4d4[2853]];this[_0xa4d4[2885]][_0xa4d4[2862]]=_0x7246x2;this[_0xa4d4[2885]][_0xa4d4[811]]();this[_0xa4d4[746]]( new mxEventObject(mxEvent.START,_0xa4d4[724],this[_0xa4d4[257]]));};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2908]]=function(){return null!=this[_0xa4d4[2823]]&&null!=this[_0xa4d4[253]]};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2671]]=function(_0x7246x2){return this[_0xa4d4[1179]][_0xa4d4[2671]](_0x7246x2)};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2672]]=function(_0x7246x2){return !0};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2909]]=function(_0x7246x2,_0x7246x3){return !this[_0xa4d4[2672]](_0x7246x3)?_0xa4d4[110]:this[_0xa4d4[1179]][_0xa4d4[2500]](null,_0x7246x2,_0x7246x3)};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2911]]=function(_0x7246x2){return this[_0xa4d4[2882]]};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2912]]=function(_0x7246x2){return null!=_0x7246x2[_0xa4d4[963]]&&_0x7246x2[_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==this[_0xa4d4[1179]][_0xa4d4[526]]?!0:this[_0xa4d4[2880]]};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2913]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[2911]](_0x7246x2);if(null!=_0x7246x3&&null!=_0x7246x2){this[_0xa4d4[2903]]=_0x7246x2;var _0x7246x4=[],_0x7246x5= new mxRectangle(0,0,_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]),_0x7246x9= new mxImageShape(_0x7246x5,_0x7246x3[_0xa4d4[390]],null,null,0);_0x7246x9[_0xa4d4[1674]]= !1;this[_0xa4d4[2912]](_0x7246x2)?(_0x7246x9[_0xa4d4[507]]=mxConstants[_0xa4d4[1656]],_0x7246x9[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[526]])):(_0x7246x9[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[508]]:mxConstants[_0xa4d4[1523]],_0x7246x9[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]()),this[_0xa4d4[2881]]&&null!=_0x7246x9[_0xa4d4[252]][_0xa4d4[328]]&&_0x7246x9[_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[950]](_0x7246x9[_0xa4d4[252]],_0x7246x9[_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[285]]));_0x7246x9[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[2914]];var _0x7246xa=mxUtils[_0xa4d4[885]](this,function(){return null!=this[_0xa4d4[2915]]?this[_0xa4d4[2915]]:_0x7246x2}),_0x7246x3=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){mxEvent[_0xa4d4[721]](_0x7246x2)||(this[_0xa4d4[2916]]=_0x7246x9,this[_0xa4d4[1179]][_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x2,_0x7246xa())))});mxEvent[_0xa4d4[2733]](_0x7246x9[_0xa4d4[252]],this[_0xa4d4[1179]],_0x7246xa,_0x7246x3);_0x7246x4[_0xa4d4[207]](_0x7246x9);this[_0xa4d4[2905]](_0x7246x4,this[_0xa4d4[2903]]);return _0x7246x4;};return null;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2905]]=function(_0x7246x2,_0x7246x3){if(null!=_0x7246x2&&null!=_0x7246x2[0]&&null!=_0x7246x3){var _0x7246x4=this[_0xa4d4[2917]](_0x7246x2[0],_0x7246x3);_0x7246x2[0][_0xa4d4[1562]][_0xa4d4[235]]=_0x7246x4[_0xa4d4[235]];_0x7246x2[0][_0xa4d4[1562]][_0xa4d4[236]]=_0x7246x4[_0xa4d4[236]];_0x7246x2[0][_0xa4d4[258]]();}};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2917]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x5=_0x7246x3[_0xa4d4[241]](),_0x7246x9=_0x7246x3[_0xa4d4[242]]();if(this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x3[_0xa4d4[246]])){var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[1731]](_0x7246x3[_0xa4d4[246]]),_0x7246x5=0!=_0x7246xa[_0xa4d4[117]]?_0x7246x3[_0xa4d4[235]]+_0x7246xa[_0xa4d4[117]]*_0x7246x4/2:_0x7246x5,_0x7246x9=0!=_0x7246xa[_0xa4d4[119]]?_0x7246x3[_0xa4d4[236]]+_0x7246xa[_0xa4d4[119]]*_0x7246x4/2:_0x7246x9,_0x7246xa=mxUtils[_0xa4d4[431]](mxUtils[_0xa4d4[433]](_0x7246x3[_0xa4d4[124]],mxConstants.STYLE_ROTATION)||0);if(0!=_0x7246xa){var _0x7246x4=Math[_0xa4d4[426]](_0x7246xa),_0x7246xa=Math[_0xa4d4[427]](_0x7246xa),_0x7246x12= new mxPoint(_0x7246x3[_0xa4d4[241]](),_0x7246x3[_0xa4d4[242]]()),_0x7246x9=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x5,_0x7246x9),_0x7246x4,_0x7246xa,_0x7246x12),_0x7246x5=_0x7246x9[_0xa4d4[235]],_0x7246x9=_0x7246x9[_0xa4d4[236]]};};return  new mxPoint(_0x7246x5-_0x7246x2[_0xa4d4[1562]][_0xa4d4[117]]/2,_0x7246x9-_0x7246x2[_0xa4d4[1562]][_0xa4d4[119]]/2);};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2906]]=function(_0x7246x2){if(null!=_0x7246x2){this[_0xa4d4[2903]]=null;for(var _0x7246x3=0;_0x7246x3<_0x7246x2[_0xa4d4[67]];_0x7246x3++){_0x7246x2[_0x7246x3][_0xa4d4[515]]()};}};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2918]]=function(_0x7246x2){return !this[_0xa4d4[1179]][_0xa4d4[2579]](_0x7246x2[_0xa4d4[727]]())&&(null!=this[_0xa4d4[2886]][_0xa4d4[2919]]&&null!=this[_0xa4d4[2886]][_0xa4d4[2920]]||null!=this[_0xa4d4[257]]&&null==this[_0xa4d4[267]]&&(null==this[_0xa4d4[2904]]||null!=this[_0xa4d4[2904]]&&null!=this[_0xa4d4[2916]]))};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[2899]]++;if(this[_0xa4d4[994]]()&&this[_0xa4d4[1179]][_0xa4d4[994]]()&&!_0x7246x3[_0xa4d4[721]]()&&!this[_0xa4d4[2908]]()&&this[_0xa4d4[2918]](_0x7246x3)){null!=this[_0xa4d4[2886]][_0xa4d4[2920]]&&null!=this[_0xa4d4[2886]][_0xa4d4[2919]]&&null!=this[_0xa4d4[2886]][_0xa4d4[987]]?(this[_0xa4d4[2921]]=this[_0xa4d4[2886]][_0xa4d4[2920]],this[_0xa4d4[257]]=this[_0xa4d4[2886]][_0xa4d4[2919]],this[_0xa4d4[2823]]=this[_0xa4d4[2886]][_0xa4d4[987]][_0xa4d4[238]]()):this[_0xa4d4[2823]]= new mxPoint(_0x7246x3[_0xa4d4[734]](),_0x7246x3[_0xa4d4[735]]());this[_0xa4d4[2897]]=this[_0xa4d4[2910]](_0x7246x3);this[_0xa4d4[2899]]=1;this[_0xa4d4[2887]]&&null==this[_0xa4d4[253]]&&(this[_0xa4d4[2922]]=null,this[_0xa4d4[253]]=this[_0xa4d4[2156]]());if(null==this[_0xa4d4[257]]&&null!=this[_0xa4d4[2897]]){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[2689]](_0x7246x3[_0xa4d4[727]]());this[_0xa4d4[2897]][_0xa4d4[246]][_0xa4d4[256]][_0xa4d4[2007]](_0x7246x4,!0);};this[_0xa4d4[746]]( new mxEventObject(mxEvent.START,_0xa4d4[724],this[_0xa4d4[257]]));_0x7246x3[_0xa4d4[722]]();}else {if(mxClient[_0xa4d4[754]]&&this[_0xa4d4[2888]]&&!this[_0xa4d4[2890]]&&this[_0xa4d4[994]]()&&this[_0xa4d4[1179]][_0xa4d4[994]]()&&!this[_0xa4d4[2908]]()){this[_0xa4d4[2890]]= !0;this[_0xa4d4[2893]]=_0x7246x3[_0xa4d4[730]]();this[_0xa4d4[2894]]=_0x7246x3[_0xa4d4[732]]();var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](this[_0xa4d4[2885]][_0xa4d4[736]](_0x7246x3));this[_0xa4d4[2923]]&&window[_0xa4d4[2924]](this[_0xa4d4[2923]]);this[_0xa4d4[2923]]=window[_0xa4d4[261]](mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[2891]]&&this[_0xa4d4[2925]](_0x7246x3,_0x7246x5);this[_0xa4d4[2891]]=this[_0xa4d4[2890]]= !1;}),this[_0xa4d4[2889]]);this[_0xa4d4[2891]]= !0;}};this[_0xa4d4[2926]]=this[_0xa4d4[2916]];this[_0xa4d4[2916]]=null;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2925]]=function(_0x7246x2,_0x7246x3){null!=_0x7246x3&&(this[_0xa4d4[2885]][_0xa4d4[2860]]=this[_0xa4d4[2885]][_0xa4d4[2853]],this[_0xa4d4[2885]][_0xa4d4[2862]]=_0x7246x3,this[_0xa4d4[2885]][_0xa4d4[811]](),this[_0xa4d4[2823]]= new mxPoint(_0x7246x2[_0xa4d4[734]](),_0x7246x2[_0xa4d4[735]]()),this[_0xa4d4[2897]]=this[_0xa4d4[2910]](_0x7246x2),this[_0xa4d4[257]]=_0x7246x3,this[_0xa4d4[746]]( new mxEventObject(mxEvent.START,_0xa4d4[724],this[_0xa4d4[257]])))};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2927]]=function(_0x7246x2){return !this[_0xa4d4[1179]][_0xa4d4[1712]](_0x7246x2[_0xa4d4[246]])};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2910]]=function(_0x7246x2){return null};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2928]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[2885]][_0xa4d4[2871]](_0x7246x2);this[_0xa4d4[2886]][_0xa4d4[2729]](_0x7246x2,null==this[_0xa4d4[2823]]);this[_0xa4d4[2915]]=_0x7246x3;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2929]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[518]](),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[512]]();_0x7246x2[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]]/_0x7246x3-_0x7246x4[_0xa4d4[235]];_0x7246x2[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]]/_0x7246x3-_0x7246x4[_0xa4d4[236]];};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[2891]]&&(this[_0xa4d4[2891]]=Math[_0xa4d4[425]](this[_0xa4d4[2893]]-_0x7246x3[_0xa4d4[730]]())<this[_0xa4d4[2892]]&&Math[_0xa4d4[425]](this[_0xa4d4[2894]]-_0x7246x3[_0xa4d4[732]]())<this[_0xa4d4[2892]]);if(!_0x7246x3[_0xa4d4[721]]()&&(this[_0xa4d4[2895]]||null!=this[_0xa4d4[2823]]||!this[_0xa4d4[1179]][_0xa4d4[1009]])){!this[_0xa4d4[994]]()&&null!=this[_0xa4d4[2915]]&&(this[_0xa4d4[2906]](this[_0xa4d4[2904]]),this[_0xa4d4[2915]]=null);(null!=this[_0xa4d4[2823]]||this[_0xa4d4[994]]()&&this[_0xa4d4[1179]][_0xa4d4[994]]())&&this[_0xa4d4[2928]](_0x7246x3);if(null!=this[_0xa4d4[2823]]){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x4= new mxPoint(this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x3[_0xa4d4[734]]()/_0x7246x4)*_0x7246x4,this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x3[_0xa4d4[735]]()/_0x7246x4)*_0x7246x4),_0x7246x5=null,_0x7246x9=_0x7246x4;null!=this[_0xa4d4[2886]][_0xa4d4[2920]]&&(null!=this[_0xa4d4[2886]][_0xa4d4[2919]]&&null!=this[_0xa4d4[2886]][_0xa4d4[987]])&&(_0x7246x5=this[_0xa4d4[2886]][_0xa4d4[2920]],_0x7246x9=this[_0xa4d4[2886]][_0xa4d4[987]][_0xa4d4[238]]());var _0x7246xa=this[_0xa4d4[2823]];if(null!=this[_0xa4d4[2926]]){var _0x7246x12=this[_0xa4d4[2926]][_0xa4d4[1562]][_0xa4d4[117]],_0x7246x13=this[_0xa4d4[2926]][_0xa4d4[1562]][_0xa4d4[119]];null!=this[_0xa4d4[2915]]&&this[_0xa4d4[2883]]?(_0x7246x12=this[_0xa4d4[2917]](this[_0xa4d4[2926]],this[_0xa4d4[2915]]),this[_0xa4d4[2926]][_0xa4d4[1562]][_0xa4d4[235]]=_0x7246x12[_0xa4d4[235]],this[_0xa4d4[2926]][_0xa4d4[1562]][_0xa4d4[236]]=_0x7246x12[_0xa4d4[236]]):(_0x7246x12= new mxRectangle(_0x7246x3[_0xa4d4[734]]()+this[_0xa4d4[2896]][_0xa4d4[235]],_0x7246x3[_0xa4d4[735]]()+this[_0xa4d4[2896]][_0xa4d4[236]],_0x7246x12,_0x7246x13),this[_0xa4d4[2926]][_0xa4d4[1562]]=_0x7246x12);this[_0xa4d4[2926]][_0xa4d4[258]]();};if(null!=this[_0xa4d4[2897]]){this[_0xa4d4[2897]][_0xa4d4[439]]=[null,null!=this[_0xa4d4[2915]]?null:_0x7246x9];this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2289]](this[_0xa4d4[2897]],this[_0xa4d4[257]],!0,this[_0xa4d4[2921]]);null!=this[_0xa4d4[2915]]&&(null==_0x7246x5&&(_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[2288]](this[_0xa4d4[2897]],this[_0xa4d4[257]],!1)),this[_0xa4d4[2897]][_0xa4d4[2088]](null,!1),this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2289]](this[_0xa4d4[2897]],this[_0xa4d4[2915]],!1,_0x7246x5));_0x7246xa=null;if(null!=this[_0xa4d4[2922]]){_0x7246xa=[];for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[2922]][_0xa4d4[67]];_0x7246x9++){_0x7246x5=this[_0xa4d4[2922]][_0x7246x9][_0xa4d4[238]](),this[_0xa4d4[2929]](_0x7246x5),_0x7246xa[_0x7246x9]=_0x7246x5};};this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2282]](this[_0xa4d4[2897]],_0x7246xa,this[_0xa4d4[257]],this[_0xa4d4[2915]]);this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2283]](this[_0xa4d4[2897]],this[_0xa4d4[257]],this[_0xa4d4[2915]]);_0x7246x9=this[_0xa4d4[2897]][_0xa4d4[439]][this[_0xa4d4[2897]][_0xa4d4[439]][_0xa4d4[67]]-1];_0x7246xa=this[_0xa4d4[2897]][_0xa4d4[439]][0];}else {null!=this[_0xa4d4[2915]]&&null==this[_0xa4d4[2886]][_0xa4d4[2920]]&&(_0x7246x12=this[_0xa4d4[2930]](this[_0xa4d4[2915]],_0x7246x3),null!=_0x7246x12&&(_0x7246x9=_0x7246x12)),null==this[_0xa4d4[2921]]&&null!=this[_0xa4d4[257]]&&(_0x7246x12=this[_0xa4d4[2931]](this[_0xa4d4[257]],null!=this[_0xa4d4[2922]]&&0<this[_0xa4d4[2922]][_0xa4d4[67]]?this[_0xa4d4[2922]][0]:_0x7246x9,_0x7246x3),null!=_0x7246x12&&(_0x7246xa=_0x7246x12))};if(null==this[_0xa4d4[2915]]&&this[_0xa4d4[2900]]){_0x7246x12=_0x7246xa;null!=this[_0xa4d4[2897]]&&2<this[_0xa4d4[2897]][_0xa4d4[439]][_0xa4d4[67]]&&(_0x7246x5=this[_0xa4d4[2897]][_0xa4d4[439]][this[_0xa4d4[2897]][_0xa4d4[439]][_0xa4d4[67]]-2],null!=_0x7246x5&&(_0x7246x12=_0x7246x5));_0x7246x5=_0x7246x9[_0xa4d4[235]]-_0x7246x12[_0xa4d4[235]];_0x7246x12=_0x7246x9[_0xa4d4[236]]-_0x7246x12[_0xa4d4[236]];_0x7246x13=Math[_0xa4d4[428]](_0x7246x5*_0x7246x5+_0x7246x12*_0x7246x12);if(0==_0x7246x13){return };_0x7246x9[_0xa4d4[235]]-=4*_0x7246x5/_0x7246x13;_0x7246x9[_0xa4d4[236]]-=4*_0x7246x12/_0x7246x13;};if(null==this[_0xa4d4[253]]&&(_0x7246x5=Math[_0xa4d4[425]](_0x7246x4[_0xa4d4[235]]-this[_0xa4d4[2823]][_0xa4d4[235]]),_0x7246x12=Math[_0xa4d4[425]](_0x7246x4[_0xa4d4[236]]-this[_0xa4d4[2823]][_0xa4d4[236]]),_0x7246x5>this[_0xa4d4[1179]][_0xa4d4[2353]]||_0x7246x12>this[_0xa4d4[1179]][_0xa4d4[2353]])){this[_0xa4d4[253]]=this[_0xa4d4[2156]](),this[_0xa4d4[2928]](_0x7246x3)};null!=this[_0xa4d4[253]]&&(null!=this[_0xa4d4[2897]]?this[_0xa4d4[253]][_0xa4d4[1525]]=this[_0xa4d4[2897]][_0xa4d4[439]]:(_0x7246x4=[_0x7246xa],null!=this[_0xa4d4[2922]]&&(_0x7246x4=_0x7246x4[_0xa4d4[1919]](this[_0xa4d4[2922]])),_0x7246x4[_0xa4d4[207]](_0x7246x9),this[_0xa4d4[253]][_0xa4d4[1525]]=_0x7246x4),this[_0xa4d4[2932]]());mxEvent[_0xa4d4[722]](_0x7246x3[_0xa4d4[727]]());_0x7246x3[_0xa4d4[722]]();}else {!this[_0xa4d4[994]]()||!this[_0xa4d4[1179]][_0xa4d4[994]]()?this[_0xa4d4[2886]][_0xa4d4[862]]():this[_0xa4d4[257]]!=this[_0xa4d4[2915]]&&null==this[_0xa4d4[2897]]?(this[_0xa4d4[2906]](this[_0xa4d4[2904]]),this[_0xa4d4[2904]]=null,null!=this[_0xa4d4[2915]]&&null==this[_0xa4d4[267]]&&(this[_0xa4d4[2904]]=this[_0xa4d4[2913]](this[_0xa4d4[2915]]),null==this[_0xa4d4[2904]]&&(this[_0xa4d4[2915]][_0xa4d4[1609]](mxConstants.CURSOR_CONNECT),_0x7246x3[_0xa4d4[722]]())),this[_0xa4d4[257]]=this[_0xa4d4[2915]]):this[_0xa4d4[257]]==this[_0xa4d4[2915]]&&(null!=this[_0xa4d4[2915]]&&null==this[_0xa4d4[2904]]&&!this[_0xa4d4[1179]][_0xa4d4[1009]])&&_0x7246x3[_0xa4d4[722]]()};null!=this[_0xa4d4[2886]][_0xa4d4[2920]]&&this[_0xa4d4[2885]][_0xa4d4[862]]();if(!this[_0xa4d4[1179]][_0xa4d4[1009]]&&null!=this[_0xa4d4[2915]]&&null!=this[_0xa4d4[2904]]){_0x7246x4= !1;_0x7246xa=_0x7246x3[_0xa4d4[728]]();for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[2904]][_0xa4d4[67]]&& !_0x7246x4;_0x7246x9++){_0x7246x4=_0x7246xa==this[_0xa4d4[2904]][_0x7246x9][_0xa4d4[252]]||_0x7246xa[_0xa4d4[265]]==this[_0xa4d4[2904]][_0x7246x9][_0xa4d4[252]]};_0x7246x4||this[_0xa4d4[2933]](this[_0xa4d4[2915]],this[_0xa4d4[2904]],_0x7246x3);};}else {this[_0xa4d4[2886]][_0xa4d4[862]]()};};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2930]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=null,_0x7246x5=_0x7246x2[_0xa4d4[441]],_0x7246x9=_0x7246x5[_0xa4d4[2305]](_0x7246x2);if(null!=_0x7246x9){var _0x7246xa=null!=this[_0xa4d4[2922]]&&0<this[_0xa4d4[2922]][_0xa4d4[67]]?this[_0xa4d4[2922]][this[_0xa4d4[2922]][_0xa4d4[67]]-1]: new mxPoint(this[_0xa4d4[257]][_0xa4d4[241]](),this[_0xa4d4[257]][_0xa4d4[242]]()),_0x7246x5=_0x7246x9(_0x7246x5[_0xa4d4[2087]](_0x7246x2),this[_0xa4d4[2897]],_0x7246xa,!1);null!=_0x7246x5&&(_0x7246x4=_0x7246x5);}else {_0x7246x4= new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]())};return _0x7246x4;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2931]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x4=null;var _0x7246x5=_0x7246x2[_0xa4d4[441]],_0x7246x9=_0x7246x5[_0xa4d4[2305]](_0x7246x2),_0x7246xa= new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]());if(null!=_0x7246x9){var _0x7246x12=mxUtils[_0xa4d4[433]](_0x7246x2[_0xa4d4[124]],mxConstants.STYLE_ROTATION,0),_0x7246x13=-_0x7246x12*(Math[_0xa4d4[424]]/180);0!=_0x7246x12&&(_0x7246x3=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x3[_0xa4d4[235]],_0x7246x3[_0xa4d4[236]]),Math[_0xa4d4[426]](_0x7246x13),Math[_0xa4d4[427]](_0x7246x13),_0x7246xa));_0x7246x2=_0x7246x9(_0x7246x5[_0xa4d4[2087]](_0x7246x2),_0x7246x2,_0x7246x3,!1);null!=_0x7246x2&&(0!=_0x7246x12&&(_0x7246x2=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]),Math[_0xa4d4[426]](-_0x7246x13),Math[_0xa4d4[427]](-_0x7246x13),_0x7246xa)),_0x7246x4=_0x7246x2);}else {_0x7246x4=_0x7246xa};return _0x7246x4;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2933]]=function(_0x7246x2,_0x7246x3,_0x7246x4){};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2934]]=function(_0x7246x2){return null!=_0x7246x2[_0xa4d4[248]]()};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2935]]=function(_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],_0x7246x2[_0xa4d4[730]](),_0x7246x2[_0xa4d4[732]]()),_0x7246x4=Math[_0xa4d4[425]](_0x7246x3[_0xa4d4[235]]-this[_0xa4d4[2823]][_0xa4d4[235]]),_0x7246x3=Math[_0xa4d4[425]](_0x7246x3[_0xa4d4[236]]-this[_0xa4d4[2823]][_0xa4d4[236]]);if(null!=this[_0xa4d4[2922]]||1<this[_0xa4d4[2899]]&&(_0x7246x4>this[_0xa4d4[1179]][_0xa4d4[2353]]||_0x7246x3>this[_0xa4d4[1179]][_0xa4d4[2353]])){null==this[_0xa4d4[2922]]&&(this[_0xa4d4[2922]]=[]),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x3= new mxPoint(this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[734]]()/_0x7246x4)*_0x7246x4,this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[735]]()/_0x7246x4)*_0x7246x4),this[_0xa4d4[2922]][_0xa4d4[207]](_0x7246x3)};};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&this[_0xa4d4[2908]]()){if(this[_0xa4d4[2887]]&&!this[_0xa4d4[2934]](_0x7246x3)){this[_0xa4d4[2935]](_0x7246x3);_0x7246x3[_0xa4d4[722]]();return;};if(null==this[_0xa4d4[267]]){var _0x7246x4=null!=this[_0xa4d4[257]]?this[_0xa4d4[257]][_0xa4d4[246]]:null,_0x7246x5=null;null!=this[_0xa4d4[2886]][_0xa4d4[2920]]&&null!=this[_0xa4d4[2886]][_0xa4d4[2919]]&&(_0x7246x5=this[_0xa4d4[2886]][_0xa4d4[2919]][_0xa4d4[246]]);null==_0x7246x5&&this[_0xa4d4[2885]][_0xa4d4[2867]]()&&(_0x7246x5=this[_0xa4d4[2885]][_0xa4d4[2861]][_0xa4d4[246]]);this[_0xa4d4[807]](_0x7246x4,_0x7246x5,_0x7246x3[_0xa4d4[727]](),_0x7246x3[_0xa4d4[736]]());}else {null!=this[_0xa4d4[257]]&&(null!=this[_0xa4d4[2885]][_0xa4d4[2861]]&&this[_0xa4d4[257]][_0xa4d4[246]]==this[_0xa4d4[2885]][_0xa4d4[2861]][_0xa4d4[246]])&&this[_0xa4d4[1179]][_0xa4d4[2459]](this[_0xa4d4[2885]][_0xa4d4[1097]],evt),0<this[_0xa4d4[267]][_0xa4d4[67]]&&this[_0xa4d4[1179]][_0xa4d4[2580]](this[_0xa4d4[267]])};this[_0xa4d4[2906]](this[_0xa4d4[2904]]);_0x7246x3[_0xa4d4[722]]();};null!=this[_0xa4d4[2823]]&&this[_0xa4d4[862]]();this[_0xa4d4[2891]]=this[_0xa4d4[2890]]= !1;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[862]]=function(){null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[515]](),this[_0xa4d4[253]]=null);this[_0xa4d4[2906]](this[_0xa4d4[2904]]);this[_0xa4d4[2904]]=null;this[_0xa4d4[2885]][_0xa4d4[862]]();this[_0xa4d4[2886]][_0xa4d4[862]]();this[_0xa4d4[2921]]=this[_0xa4d4[267]]=this[_0xa4d4[257]]=this[_0xa4d4[2897]]=this[_0xa4d4[2926]]=null;this[_0xa4d4[2899]]=0;this[_0xa4d4[2916]]=this[_0xa4d4[2823]]=null;this[_0xa4d4[746]]( new mxEventObject(mxEvent.RESET));};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2932]]=function(){var _0x7246x2=null==this[_0xa4d4[267]];this[_0xa4d4[253]][_0xa4d4[1307]]=this[_0xa4d4[2936]](_0x7246x2);_0x7246x2=this[_0xa4d4[2937]](_0x7246x2);this[_0xa4d4[253]][_0xa4d4[1336]]=_0x7246x2;this[_0xa4d4[253]][_0xa4d4[258]]();};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2937]]=function(_0x7246x2){return _0x7246x2?mxConstants[_0xa4d4[2829]]:mxConstants[_0xa4d4[2938]]};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2936]]=function(_0x7246x2){return _0x7246x2?3:1};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[807]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=_0x7246x3||this[_0xa4d4[2901]]()||this[_0xa4d4[1179]][_0xa4d4[2406]]){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246xa=null;_0x7246x9[_0xa4d4[473]]();try{if(null!=_0x7246x2&&(null==_0x7246x3&&this[_0xa4d4[2901]]())&&(_0x7246x3=this[_0xa4d4[2939]](_0x7246x4,_0x7246x2),null!=_0x7246x3)){_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[564]]([_0x7246x3],_0x7246x4,_0x7246x5);if(null==_0x7246x5||!this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[250]](_0x7246x5)){var _0x7246x12=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x5);if(null!=_0x7246x12){var _0x7246x13=_0x7246x9[_0xa4d4[1721]](_0x7246x3);_0x7246x13[_0xa4d4[235]]-=_0x7246x12[_0xa4d4[2078]][_0xa4d4[235]];_0x7246x13[_0xa4d4[236]]-=_0x7246x12[_0xa4d4[2078]][_0xa4d4[236]];};}else {_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[902]]()};this[_0xa4d4[1179]][_0xa4d4[2103]](_0x7246x3,_0x7246x5);};var _0x7246x14=this[_0xa4d4[1179]][_0xa4d4[902]]();null!=_0x7246x2&&(null!=_0x7246x3&&_0x7246x9[_0xa4d4[1197]](_0x7246x2)==_0x7246x9[_0xa4d4[1197]](_0x7246x3)&&_0x7246x9[_0xa4d4[1197]](_0x7246x9[_0xa4d4[1197]](_0x7246x2))!=_0x7246x9[_0xa4d4[501]]())&&(_0x7246x14=_0x7246x9[_0xa4d4[1197]](_0x7246x2),null!=_0x7246x2[_0xa4d4[256]]&&_0x7246x2[_0xa4d4[256]][_0xa4d4[1500]]&&(null!=_0x7246x3[_0xa4d4[256]]&&_0x7246x3[_0xa4d4[256]][_0xa4d4[1500]])&&(_0x7246x14=_0x7246x9[_0xa4d4[1197]](_0x7246x14)));_0x7246x13=_0x7246x12=null;null!=this[_0xa4d4[2897]]&&(_0x7246x12=this[_0xa4d4[2897]][_0xa4d4[246]][_0xa4d4[131]],_0x7246x13=this[_0xa4d4[2897]][_0xa4d4[246]][_0xa4d4[124]]);_0x7246xa=this[_0xa4d4[1960]](_0x7246x14,null,_0x7246x12,_0x7246x2,_0x7246x3,_0x7246x13);if(null!=_0x7246xa){this[_0xa4d4[1179]][_0xa4d4[2545]](_0x7246xa,_0x7246x2,!0,this[_0xa4d4[2921]]);this[_0xa4d4[1179]][_0xa4d4[2545]](_0x7246xa,_0x7246x3,!1,this[_0xa4d4[2886]][_0xa4d4[2920]]);null!=this[_0xa4d4[2897]]&&_0x7246x9[_0xa4d4[1724]](_0x7246xa,this[_0xa4d4[2897]][_0xa4d4[246]][_0xa4d4[256]]);var _0x7246x15=_0x7246x9[_0xa4d4[1721]](_0x7246xa);null==_0x7246x15&&(_0x7246x15= new mxGeometry,_0x7246x15[_0xa4d4[1500]]= !0,_0x7246x9[_0xa4d4[1724]](_0x7246xa,_0x7246x15));if(null!=this[_0xa4d4[2922]]&&0<this[_0xa4d4[2922]][_0xa4d4[67]]){var _0x7246x16=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x17=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[513]];_0x7246x15[_0xa4d4[1525]]=[];for(_0x7246x2=0;_0x7246x2<this[_0xa4d4[2922]][_0xa4d4[67]];_0x7246x2++){var _0x7246x18=this[_0xa4d4[2922]][_0x7246x2];_0x7246x15[_0xa4d4[1525]][_0xa4d4[207]]( new mxPoint(_0x7246x18[_0xa4d4[235]]/_0x7246x16-_0x7246x17[_0xa4d4[235]],_0x7246x18[_0xa4d4[236]]/_0x7246x16-_0x7246x17[_0xa4d4[236]]));};};null==_0x7246x3&&(_0x7246x18=this[_0xa4d4[1179]][_0xa4d4[2689]](_0x7246x4,!1),_0x7246x18[_0xa4d4[235]]-=this[_0xa4d4[1179]][_0xa4d4[1136]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x18[_0xa4d4[236]]-=this[_0xa4d4[1179]][_0xa4d4[1137]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x15[_0xa4d4[2007]](_0x7246x18,!1));this[_0xa4d4[746]]( new mxEventObject(mxEvent.CONNECT,_0xa4d4[246],_0x7246xa,_0xa4d4[763],_0x7246x4,_0xa4d4[772],_0x7246x5));};}catch(q){mxLog[_0xa4d4[539]](),mxLog[_0xa4d4[143]](q[_0xa4d4[281]])}finally{_0x7246x9[_0xa4d4[476]]()};this[_0xa4d4[804]]&&this[_0xa4d4[2707]](_0x7246xa,_0x7246x3);}};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2707]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1179]][_0xa4d4[2450]](_0x7246x2)};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[1960]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){if(null==this[_0xa4d4[1033]]){return this[_0xa4d4[1179]][_0xa4d4[1960]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa)};_0x7246x3=this[_0xa4d4[2503]](_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa);return _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[2504]](_0x7246x3,_0x7246x2,_0x7246x5,_0x7246x9);};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2939]]=function(_0x7246x2,_0x7246x3){for(var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x3);null!=_0x7246x4&&_0x7246x4[_0xa4d4[1500]];){_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x3),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x3)};var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[899]]([_0x7246x3])[0],_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1721]](_0x7246x5);if(null!=_0x7246x4){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[2689]](_0x7246x2);_0x7246x4[_0xa4d4[235]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x9[_0xa4d4[235]]-_0x7246x4[_0xa4d4[117]]/2)-this[_0xa4d4[1179]][_0xa4d4[1136]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]];_0x7246x4[_0xa4d4[236]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x9[_0xa4d4[236]]-_0x7246x4[_0xa4d4[119]]/2)-this[_0xa4d4[1179]][_0xa4d4[1137]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]];if(null!=this[_0xa4d4[2823]]){var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x3);if(null!=_0x7246xa){var _0x7246x12=this[_0xa4d4[2940]]();Math[_0xa4d4[425]](this[_0xa4d4[1179]][_0xa4d4[1021]](this[_0xa4d4[2823]][_0xa4d4[235]])-this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x9[_0xa4d4[235]]))<=_0x7246x12?_0x7246x4[_0xa4d4[235]]=_0x7246xa[_0xa4d4[235]]:Math[_0xa4d4[425]](this[_0xa4d4[1179]][_0xa4d4[1021]](this[_0xa4d4[2823]][_0xa4d4[236]])-this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x9[_0xa4d4[236]]))<=_0x7246x12&&(_0x7246x4[_0xa4d4[236]]=_0x7246xa[_0xa4d4[236]]);};};};return _0x7246x5;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2940]]=function(){return this[_0xa4d4[1179]][_0xa4d4[997]]()?this[_0xa4d4[1179]][_0xa4d4[1020]]:this[_0xa4d4[1179]][_0xa4d4[2353]]};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[2503]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=null;null!=this[_0xa4d4[1033]]&&(_0x7246x9=this[_0xa4d4[1033]](_0x7246x3,_0x7246x4,_0x7246x5));null==_0x7246x9&&(_0x7246x9= new mxCell(_0x7246x2||_0xa4d4[110]),_0x7246x9[_0xa4d4[1994]](!0),_0x7246x9[_0xa4d4[475]](_0x7246x5),_0x7246x2= new mxGeometry,_0x7246x2[_0xa4d4[1500]]= !0,_0x7246x9[_0xa4d4[1724]](_0x7246x2));return _0x7246x9;};mxConnectionHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1179]][_0xa4d4[1148]](this);null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[515]](),this[_0xa4d4[253]]=null);null!=this[_0xa4d4[2885]]&&(this[_0xa4d4[2885]][_0xa4d4[515]](),this[_0xa4d4[2885]]=null);null!=this[_0xa4d4[2886]]&&(this[_0xa4d4[2886]][_0xa4d4[515]](),this[_0xa4d4[2886]]=null);null!=this[_0xa4d4[1176]]&&(this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[745]](this[_0xa4d4[1176]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[745]](this[_0xa4d4[1176]]),this[_0xa4d4[1176]]=null);null!=this[_0xa4d4[2898]]&&(this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2898]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[745]](this[_0xa4d4[2898]]),this[_0xa4d4[2898]]=null);};function mxConstraintHandler(_0x7246x2){this[_0xa4d4[1179]]=_0x7246x2}mxConstraintHandler[_0xa4d4[202]][_0xa4d4[2941]]= new mxImage(mxClient[_0xa4d4[88]]+_0xa4d4[2942],5,5);mxConstraintHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxConstraintHandler[_0xa4d4[202]][_0xa4d4[984]]= !0;mxConstraintHandler[_0xa4d4[202]][_0xa4d4[2943]]=mxConstants[_0xa4d4[2854]];mxConstraintHandler[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxConstraintHandler[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxConstraintHandler[_0xa4d4[202]][_0xa4d4[862]]=function(){if(null!=this[_0xa4d4[2944]]){for(var _0x7246x2=0;_0x7246x2<this[_0xa4d4[2944]][_0xa4d4[67]];_0x7246x2++){this[_0xa4d4[2944]][_0x7246x2][_0xa4d4[515]]()};this[_0xa4d4[2944]]=null;};null!=this[_0xa4d4[2945]]&&(this[_0xa4d4[2945]][_0xa4d4[515]](),this[_0xa4d4[2945]]=null);this[_0xa4d4[2946]]=this[_0xa4d4[2919]]=this[_0xa4d4[987]]=this[_0xa4d4[2947]]=this[_0xa4d4[2920]]=null;};mxConstraintHandler[_0xa4d4[202]][_0xa4d4[2636]]=function(){return this[_0xa4d4[1179]][_0xa4d4[2636]]()};mxConstraintHandler[_0xa4d4[202]][_0xa4d4[2948]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return this[_0xa4d4[2941]]};mxConstraintHandler[_0xa4d4[202]][_0xa4d4[2949]]=function(_0x7246x2,_0x7246x3){return !1};mxConstraintHandler[_0xa4d4[202]][_0xa4d4[2729]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[994]]()&&!this[_0xa4d4[2949]](_0x7246x2)){var _0x7246x4=this[_0xa4d4[2636]](),_0x7246x5= new mxRectangle(_0x7246x2[_0xa4d4[734]]()-_0x7246x4,_0x7246x2[_0xa4d4[735]]()-_0x7246x4,2*_0x7246x4,2*_0x7246x4),_0x7246x9=null!=_0x7246x2[_0xa4d4[736]]()?this[_0xa4d4[1179]][_0xa4d4[2565]](_0x7246x2[_0xa4d4[736]]()):!1;if(null==this[_0xa4d4[2947]]||!mxUtils[_0xa4d4[1825]](this[_0xa4d4[2947]],_0x7246x5)||null!=_0x7246x2[_0xa4d4[248]]()&&null!=this[_0xa4d4[2919]]&&_0x7246x9){if(this[_0xa4d4[2947]]=null,_0x7246x2[_0xa4d4[248]]()!=this[_0xa4d4[2919]]){if(this[_0xa4d4[2919]]=null,this[_0xa4d4[1531]]=null!=_0x7246x2[_0xa4d4[248]]()&&_0x7246x9?this[_0xa4d4[1179]][_0xa4d4[2538]](_0x7246x2[_0xa4d4[248]](),_0x7246x3):null,null!=this[_0xa4d4[1531]]){this[_0xa4d4[2919]]=_0x7246x2[_0xa4d4[248]]();this[_0xa4d4[2947]]= new mxRectangle(_0x7246x2[_0xa4d4[248]]()[_0xa4d4[235]],_0x7246x2[_0xa4d4[248]]()[_0xa4d4[236]],_0x7246x2[_0xa4d4[248]]()[_0xa4d4[117]],_0x7246x2[_0xa4d4[248]]()[_0xa4d4[119]]);if(null!=this[_0xa4d4[2944]]){for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[2944]][_0xa4d4[67]];_0x7246x9++){this[_0xa4d4[2944]][_0x7246x9][_0xa4d4[515]]()};this[_0xa4d4[2946]]=this[_0xa4d4[2944]]=null;};this[_0xa4d4[2944]]=[];this[_0xa4d4[2946]]=[];for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[1531]][_0xa4d4[67]];_0x7246x9++){var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[2290]](_0x7246x2[_0xa4d4[248]](),this[_0xa4d4[1531]][_0x7246x9]),_0x7246x12=this[_0xa4d4[2948]](_0x7246x2[_0xa4d4[248]](),this[_0xa4d4[1531]][_0x7246x9],_0x7246xa),_0x7246x13=_0x7246x12[_0xa4d4[390]],_0x7246x12= new mxRectangle(_0x7246xa[_0xa4d4[235]]-_0x7246x12[_0xa4d4[117]]/2,_0x7246xa[_0xa4d4[236]]-_0x7246x12[_0xa4d4[119]]/2,_0x7246x12[_0xa4d4[117]],_0x7246x12[_0xa4d4[119]]),_0x7246x12= new mxImageShape(_0x7246x12,_0x7246x13);_0x7246x12[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[2334]]:mxConstants[_0xa4d4[508]];_0x7246x12[_0xa4d4[1674]]= !1;_0x7246x12[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]());null!=_0x7246x12[_0xa4d4[252]][_0xa4d4[328]]&&_0x7246x12[_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[950]](_0x7246x12[_0xa4d4[252]],_0x7246x12[_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[285]]);_0x7246x13=mxUtils[_0xa4d4[885]](this,function(){return null!=this[_0xa4d4[2919]]?this[_0xa4d4[2919]]:_0x7246x2[_0xa4d4[248]]()});_0x7246x12[_0xa4d4[258]]();mxEvent[_0xa4d4[2733]](_0x7246x12[_0xa4d4[252]],this[_0xa4d4[1179]],_0x7246x13);this[_0xa4d4[2947]][_0xa4d4[99]](_0x7246x12[_0xa4d4[1562]]);this[_0xa4d4[2944]][_0xa4d4[207]](_0x7246x12);this[_0xa4d4[2946]][_0xa4d4[207]](_0x7246xa);};this[_0xa4d4[2947]][_0xa4d4[244]](_0x7246x4);}else {if(null!=this[_0xa4d4[2944]]){null!=this[_0xa4d4[2945]]&&(this[_0xa4d4[2945]][_0xa4d4[515]](),this[_0xa4d4[2945]]=null);for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[2944]][_0xa4d4[67]];_0x7246x9++){this[_0xa4d4[2944]][_0x7246x9][_0xa4d4[515]]()};this[_0xa4d4[2946]]=this[_0xa4d4[2944]]=null;}}}};this[_0xa4d4[987]]=this[_0xa4d4[2920]]=null;if(null!=this[_0xa4d4[2944]]&&null!=this[_0xa4d4[1531]]&&(null==_0x7246x2[_0xa4d4[248]]()||this[_0xa4d4[2919]]==_0x7246x2[_0xa4d4[248]]())){for(_0x7246x9=0;_0x7246x9<this[_0xa4d4[2944]][_0xa4d4[67]];_0x7246x9++){if(mxUtils[_0xa4d4[1825]](this[_0xa4d4[2944]][_0x7246x9][_0xa4d4[1562]],_0x7246x5)){this[_0xa4d4[2920]]=this[_0xa4d4[1531]][_0x7246x9];this[_0xa4d4[987]]=this[_0xa4d4[2946]][_0x7246x9];_0x7246x4=this[_0xa4d4[2944]][_0x7246x9][_0xa4d4[1562]][_0xa4d4[238]]();_0x7246x4[_0xa4d4[244]](mxClient[_0xa4d4[80]]?3:2);mxClient[_0xa4d4[80]]&&(_0x7246x4[_0xa4d4[117]]-=1,_0x7246x4[_0xa4d4[119]]-=1);null==this[_0xa4d4[2945]]?(_0x7246x4= new mxRectangleShape(_0x7246x4,null,this[_0xa4d4[2943]],3),_0x7246x4[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]==mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[508]]:mxConstants[_0xa4d4[1523]],_0x7246x4[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]()),this[_0xa4d4[2945]]=_0x7246x4,_0x7246x13=mxUtils[_0xa4d4[885]](this,function(){return null!=this[_0xa4d4[2919]]?this[_0xa4d4[2919]]:_0x7246x2[_0xa4d4[248]]()}),mxEvent[_0xa4d4[2733]](_0x7246x4[_0xa4d4[252]],this[_0xa4d4[1179]],_0x7246x13)):(this[_0xa4d4[2945]][_0xa4d4[1562]]=_0x7246x4,this[_0xa4d4[2945]][_0xa4d4[258]]());break;}}};null==this[_0xa4d4[2920]]&&null!=this[_0xa4d4[2945]]&&(this[_0xa4d4[2945]][_0xa4d4[515]](),this[_0xa4d4[2945]]=null);}};mxConstraintHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[862]]()};function mxRubberband(_0x7246x2){null!=_0x7246x2&&(this[_0xa4d4[1179]]=_0x7246x2,this[_0xa4d4[1179]][_0xa4d4[1133]](this),this[_0xa4d4[2730]]=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[2950]]()}),this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.PAN,this[_0xa4d4[2730]]),mxClient[_0xa4d4[80]]&&mxEvent[_0xa4d4[169]](window,_0xa4d4[2428],mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[515]]()})))}mxRubberband[_0xa4d4[202]][_0xa4d4[2951]]=20;mxRubberband[_0xa4d4[202]][_0xa4d4[984]]= !0;mxRubberband[_0xa4d4[202]][_0xa4d4[485]]=null;mxRubberband[_0xa4d4[202]][_0xa4d4[2952]]=null;mxRubberband[_0xa4d4[202]][_0xa4d4[2953]]=0;mxRubberband[_0xa4d4[202]][_0xa4d4[2954]]=0;mxRubberband[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxRubberband[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxRubberband[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&this[_0xa4d4[994]]()&&this[_0xa4d4[1179]][_0xa4d4[994]]()&&(this[_0xa4d4[1179]][_0xa4d4[2579]](_0x7246x3[_0xa4d4[727]]())||null==_0x7246x3[_0xa4d4[248]]())){var _0x7246x4=mxUtils[_0xa4d4[445]](this[_0xa4d4[1179]][_0xa4d4[526]]),_0x7246x5=mxUtils[_0xa4d4[444]](this[_0xa4d4[1179]][_0xa4d4[526]]);_0x7246x5[_0xa4d4[235]]-=_0x7246x4[_0xa4d4[235]];_0x7246x5[_0xa4d4[236]]-=_0x7246x4[_0xa4d4[236]];this[_0xa4d4[861]](_0x7246x3[_0xa4d4[730]]()+_0x7246x5[_0xa4d4[235]],_0x7246x3[_0xa4d4[732]]()+_0x7246x5[_0xa4d4[236]]);if(mxClient[_0xa4d4[133]]&&!mxClient[_0xa4d4[75]]&&!mxClient[_0xa4d4[76]]){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[526]],_0x7246xa=function(_0x7246x2){_0x7246x2= new mxMouseEvent(_0x7246x2);var _0x7246x3=mxUtils[_0xa4d4[2196]](_0x7246x9,_0x7246x2[_0xa4d4[730]](),_0x7246x2[_0xa4d4[732]]());_0x7246x2[_0xa4d4[725]]=_0x7246x3[_0xa4d4[235]];_0x7246x2[_0xa4d4[726]]=_0x7246x3[_0xa4d4[236]];return _0x7246x2;};this[_0xa4d4[2955]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[788]](this[_0xa4d4[1179]],_0x7246xa(_0x7246x2))});this[_0xa4d4[981]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[789]](this[_0xa4d4[1179]],_0x7246xa(_0x7246x2))});mxEvent[_0xa4d4[169]](document,_0xa4d4[752],this[_0xa4d4[2955]]);mxEvent[_0xa4d4[169]](document,_0xa4d4[753],this[_0xa4d4[981]]);};_0x7246x3[_0xa4d4[722]](!1);}};mxRubberband[_0xa4d4[202]][_0xa4d4[861]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[2823]]= new mxPoint(_0x7246x2,_0x7246x3)};mxRubberband[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&null!=this[_0xa4d4[2823]]){var _0x7246x4=mxUtils[_0xa4d4[444]](this[_0xa4d4[1179]][_0xa4d4[526]]),_0x7246x5=mxUtils[_0xa4d4[445]](this[_0xa4d4[1179]][_0xa4d4[526]]);_0x7246x4[_0xa4d4[235]]-=_0x7246x5[_0xa4d4[235]];_0x7246x4[_0xa4d4[236]]-=_0x7246x5[_0xa4d4[236]];var _0x7246x5=_0x7246x3[_0xa4d4[730]]()+_0x7246x4[_0xa4d4[235]],_0x7246x4=_0x7246x3[_0xa4d4[732]]()+_0x7246x4[_0xa4d4[236]],_0x7246x9=this[_0xa4d4[2823]][_0xa4d4[235]]-_0x7246x5,_0x7246xa=this[_0xa4d4[2823]][_0xa4d4[236]]-_0x7246x4,_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[2353]];if(null!=this[_0xa4d4[485]]||Math[_0xa4d4[425]](_0x7246x9)>_0x7246x12||Math[_0xa4d4[425]](_0x7246xa)>_0x7246x12){null==this[_0xa4d4[485]]&&(this[_0xa4d4[485]]=this[_0xa4d4[2156]]()),mxUtils[_0xa4d4[2440]](),this[_0xa4d4[2729]](_0x7246x5,_0x7246x4),_0x7246x3[_0xa4d4[722]]()};}};mxRubberband[_0xa4d4[202]][_0xa4d4[2156]]=function(){null==this[_0xa4d4[2952]]&&(this[_0xa4d4[2952]]=document[_0xa4d4[55]](_0xa4d4[485]),this[_0xa4d4[2952]][_0xa4d4[926]]=_0xa4d4[2956],mxUtils[_0xa4d4[254]](this[_0xa4d4[2952]],this[_0xa4d4[2951]]));this[_0xa4d4[1179]][_0xa4d4[526]][_0xa4d4[62]](this[_0xa4d4[2952]]);return this[_0xa4d4[2952]];};mxRubberband[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=null!=this[_0xa4d4[485]];this[_0xa4d4[862]]();_0x7246x4&&(_0x7246x4= new mxRectangle(this[_0xa4d4[235]],this[_0xa4d4[236]],this[_0xa4d4[117]],this[_0xa4d4[119]]),this[_0xa4d4[1179]][_0xa4d4[2698]](_0x7246x4,_0x7246x3[_0xa4d4[727]]()),_0x7246x3[_0xa4d4[722]]());};mxRubberband[_0xa4d4[202]][_0xa4d4[862]]=function(){null!=this[_0xa4d4[485]]&&this[_0xa4d4[485]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[485]]);null!=this[_0xa4d4[2955]]&&(mxEvent[_0xa4d4[745]](document,_0xa4d4[752],this[_0xa4d4[2955]]),this[_0xa4d4[2955]]=null);null!=this[_0xa4d4[981]]&&(mxEvent[_0xa4d4[745]](document,_0xa4d4[753],this[_0xa4d4[981]]),this[_0xa4d4[981]]=null);this[_0xa4d4[2954]]=this[_0xa4d4[2953]]=0;this[_0xa4d4[485]]=this[_0xa4d4[2823]]=null;};mxRubberband[_0xa4d4[202]][_0xa4d4[2729]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[2953]]=_0x7246x2;this[_0xa4d4[2954]]=_0x7246x3;this[_0xa4d4[2950]]();};mxRubberband[_0xa4d4[202]][_0xa4d4[2950]]=function(){if(null!=this[_0xa4d4[485]]){var _0x7246x2=this[_0xa4d4[2953]]-this[_0xa4d4[1179]][_0xa4d4[1136]],_0x7246x3=this[_0xa4d4[2954]]-this[_0xa4d4[1179]][_0xa4d4[1137]];this[_0xa4d4[235]]=Math[_0xa4d4[243]](this[_0xa4d4[2823]][_0xa4d4[235]],_0x7246x2);this[_0xa4d4[236]]=Math[_0xa4d4[243]](this[_0xa4d4[2823]][_0xa4d4[236]],_0x7246x3);this[_0xa4d4[117]]=Math[_0xa4d4[160]](this[_0xa4d4[2823]][_0xa4d4[235]],_0x7246x2)-this[_0xa4d4[235]];this[_0xa4d4[119]]=Math[_0xa4d4[160]](this[_0xa4d4[2823]][_0xa4d4[236]],_0x7246x3)-this[_0xa4d4[236]];_0x7246x2=mxClient[_0xa4d4[47]]?this[_0xa4d4[1179]][_0xa4d4[1137]]:0;this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=this[_0xa4d4[235]]+(mxClient[_0xa4d4[47]]?this[_0xa4d4[1179]][_0xa4d4[1136]]:0)+_0xa4d4[168];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=this[_0xa4d4[236]]+_0x7246x2+_0xa4d4[168];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[117]]=Math[_0xa4d4[160]](1,this[_0xa4d4[117]])+_0xa4d4[168];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[119]]=Math[_0xa4d4[160]](1,this[_0xa4d4[119]])+_0xa4d4[168];}};mxRubberband[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[2717]]||(this[_0xa4d4[2717]]= !0,this[_0xa4d4[1179]][_0xa4d4[1148]](this),this[_0xa4d4[1179]][_0xa4d4[745]](this[_0xa4d4[2730]]),this[_0xa4d4[862]](),null!=this[_0xa4d4[2952]]&&(this[_0xa4d4[2952]]=null))};function mxVertexHandler(_0x7246x2){null!=_0x7246x2&&(this[_0xa4d4[724]]=_0x7246x2,this[_0xa4d4[176]]())}mxVertexHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxVertexHandler[_0xa4d4[202]][_0xa4d4[724]]=null;mxVertexHandler[_0xa4d4[202]][_0xa4d4[2957]]= !1;mxVertexHandler[_0xa4d4[202]][_0xa4d4[1983]]=null;mxVertexHandler[_0xa4d4[202]][_0xa4d4[2958]]= !0;mxVertexHandler[_0xa4d4[202]][_0xa4d4[2959]]=null;mxVertexHandler[_0xa4d4[202]][_0xa4d4[2353]]=0;mxVertexHandler[_0xa4d4[202]][_0xa4d4[2809]]= !1;mxVertexHandler[_0xa4d4[202]][_0xa4d4[2960]]= !0;mxVertexHandler[_0xa4d4[202]][_0xa4d4[176]]=function(){this[_0xa4d4[1179]]=this[_0xa4d4[724]][_0xa4d4[441]][_0xa4d4[1179]];this[_0xa4d4[2961]]=this[_0xa4d4[2962]](this[_0xa4d4[724]]);this[_0xa4d4[1562]]= new mxRectangle(this[_0xa4d4[2961]][_0xa4d4[235]],this[_0xa4d4[2961]][_0xa4d4[236]],this[_0xa4d4[2961]][_0xa4d4[117]],this[_0xa4d4[2961]][_0xa4d4[119]]);this[_0xa4d4[2732]]=this[_0xa4d4[2963]](this[_0xa4d4[1562]]);this[_0xa4d4[2732]][_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]];this[_0xa4d4[2732]][_0xa4d4[1229]]= !1;this[_0xa4d4[2732]][_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]());this[_0xa4d4[1179]][_0xa4d4[1712]](this[_0xa4d4[724]][_0xa4d4[246]])&&(this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[2832]]);mxEvent[_0xa4d4[2733]](this[_0xa4d4[2732]][_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);if(0>=mxGraphHandler[_0xa4d4[202]][_0xa4d4[2795]]||this[_0xa4d4[1179]][_0xa4d4[2694]]()<mxGraphHandler[_0xa4d4[202]][_0xa4d4[2795]]){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[2657]](this[_0xa4d4[724]][_0xa4d4[246]]);this[_0xa4d4[2964]]=[];if(_0x7246x2||this[_0xa4d4[1179]][_0xa4d4[2628]](this[_0xa4d4[724]][_0xa4d4[246]])&&2<=this[_0xa4d4[724]][_0xa4d4[117]]&&2<=this[_0xa4d4[724]][_0xa4d4[119]]){var _0x7246x3=0;_0x7246x2&&(this[_0xa4d4[2957]]||(this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[936],_0x7246x3++)),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[2965],_0x7246x3++)),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[2966],_0x7246x3++)),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[2967],_0x7246x3++)),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[2968],_0x7246x3++)),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[2969],_0x7246x3++)),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[2970],_0x7246x3++))),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2735]](_0xa4d4[2971],_0x7246x3++)));_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1721]](this[_0xa4d4[724]][_0xa4d4[246]]);null!=_0x7246x2&&(!_0x7246x2[_0xa4d4[1500]]&&!this[_0xa4d4[1179]][_0xa4d4[1730]](this[_0xa4d4[724]][_0xa4d4[246]])&&this[_0xa4d4[1179]][_0xa4d4[2628]](this[_0xa4d4[724]][_0xa4d4[246]]))&&(this[_0xa4d4[2972]]=this[_0xa4d4[2735]](mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2972]]));}else {this[_0xa4d4[1179]][_0xa4d4[1712]](this[_0xa4d4[724]][_0xa4d4[246]])&&(!this[_0xa4d4[1179]][_0xa4d4[2657]](this[_0xa4d4[724]][_0xa4d4[246]])&&2>this[_0xa4d4[724]][_0xa4d4[117]]&&2>this[_0xa4d4[724]][_0xa4d4[119]])&&(this[_0xa4d4[2972]]=this[_0xa4d4[2735]](mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2972]]))};};if(this[_0xa4d4[2809]]&&(0>=mxGraphHandler[_0xa4d4[202]][_0xa4d4[2795]]||this[_0xa4d4[1179]][_0xa4d4[2694]]()<mxGraphHandler[_0xa4d4[202]][_0xa4d4[2795]])){this[_0xa4d4[2973]]=this[_0xa4d4[2735]](_0xa4d4[356],mxEvent.ROTATION_HANDLE,mxConstants[_0xa4d4[2974]]+3,mxConstants.HANDLE_FILLCOLOR),this[_0xa4d4[2964]][_0xa4d4[207]](this[_0xa4d4[2973]])};this[_0xa4d4[258]]();};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2962]]=function(_0x7246x2){return  new mxRectangle(Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[235]]),Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[236]]),Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[117]]),Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[119]]))};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2963]]=function(_0x7246x2){_0x7246x2= new mxRectangleShape(_0x7246x2,null,this[_0xa4d4[2975]]());_0x7246x2[_0xa4d4[1307]]=this[_0xa4d4[2976]]();_0x7246x2[_0xa4d4[1522]]=this[_0xa4d4[2977]]();return _0x7246x2;};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2975]]=function(){return mxConstants[_0xa4d4[2978]]};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2976]]=function(){return mxConstants[_0xa4d4[2979]]};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2977]]=function(){return mxConstants[_0xa4d4[2980]]};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2735]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){_0x7246x4=_0x7246x4||mxConstants[_0xa4d4[2974]];_0x7246x4= new mxRectangle(0,0,_0x7246x4,_0x7246x4);_0x7246x5=this[_0xa4d4[2981]](_0x7246x4,_0x7246x3,_0x7246x5);_0x7246x5[_0xa4d4[1567]]()&&null!=this[_0xa4d4[724]][_0xa4d4[963]]&&this[_0xa4d4[724]][_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==this[_0xa4d4[1179]][_0xa4d4[526]]?(_0x7246x5[_0xa4d4[1562]][_0xa4d4[119]]-=1,_0x7246x5[_0xa4d4[1562]][_0xa4d4[117]]-=1,_0x7246x5[_0xa4d4[507]]=mxConstants[_0xa4d4[1656]],_0x7246x5[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[526]])):(_0x7246x5[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[2334]]:mxConstants[_0xa4d4[508]],_0x7246x5[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]()));mxEvent[_0xa4d4[2733]](_0x7246x5[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);this[_0xa4d4[1179]][_0xa4d4[994]]()&&(_0x7246x5[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=_0x7246x2);this[_0xa4d4[2982]](_0x7246x3)||(_0x7246x5[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]);return _0x7246x5;};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2982]]=function(_0x7246x2){return !0};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2981]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return null!=this[_0xa4d4[2959]]?(_0x7246x2[_0xa4d4[117]]=this[_0xa4d4[2959]][_0xa4d4[117]],_0x7246x2[_0xa4d4[119]]=this[_0xa4d4[2959]][_0xa4d4[119]], new mxImageShape(_0x7246x2,this[_0xa4d4[2959]][_0xa4d4[390]])):_0x7246x3==mxEvent[_0xa4d4[2983]]? new mxEllipse(_0x7246x2,_0x7246x4||mxConstants[_0xa4d4[2984]],mxConstants.HANDLE_STROKECOLOR): new mxRectangleShape(_0x7246x2,_0x7246x4||mxConstants[_0xa4d4[2984]],mxConstants.HANDLE_STROKECOLOR)};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2985]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null!=_0x7246x2&&(_0x7246x2[_0xa4d4[1562]][_0xa4d4[235]]=Math[_0xa4d4[488]](_0x7246x3-_0x7246x2[_0xa4d4[1562]][_0xa4d4[117]]/2),_0x7246x2[_0xa4d4[1562]][_0xa4d4[236]]=Math[_0xa4d4[488]](_0x7246x4-_0x7246x2[_0xa4d4[1562]][_0xa4d4[119]]/2),_0x7246x2[_0xa4d4[258]]())};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2986]]=function(_0x7246x2){if(_0x7246x2[_0xa4d4[729]](this[_0xa4d4[2973]])){return mxEvent[_0xa4d4[2983]]};if(_0x7246x2[_0xa4d4[729]](this[_0xa4d4[2972]])){return mxEvent[_0xa4d4[2987]]};if(null!=this[_0xa4d4[2964]]){for(var _0x7246x3=this[_0xa4d4[2353]],_0x7246x3=this[_0xa4d4[2958]]&&(mxClient[_0xa4d4[80]]||0<_0x7246x3)? new mxRectangle(_0x7246x2[_0xa4d4[734]]()-_0x7246x3,_0x7246x2[_0xa4d4[735]]()-_0x7246x3,2*_0x7246x3,2*_0x7246x3):null,_0x7246x4=0;_0x7246x4<this[_0xa4d4[2964]][_0xa4d4[67]];_0x7246x4++){if(_0x7246x2[_0xa4d4[729]](this[_0xa4d4[2964]][_0x7246x4])||null!=_0x7246x3&&mxUtils[_0xa4d4[1825]](this[_0xa4d4[2964]][_0x7246x4][_0xa4d4[1562]],_0x7246x3)){return _0x7246x4}}};return null;};mxVertexHandler[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&this[_0xa4d4[1179]][_0xa4d4[994]]()&&!this[_0xa4d4[1179]][_0xa4d4[2579]](_0x7246x3[_0xa4d4[727]]())&&(0<this[_0xa4d4[2353]]||_0x7246x3[_0xa4d4[248]]()==this[_0xa4d4[724]])){var _0x7246x4=this[_0xa4d4[2986]](_0x7246x3);null!=_0x7246x4&&(this[_0xa4d4[861]](_0x7246x3[_0xa4d4[730]](),_0x7246x3[_0xa4d4[732]](),_0x7246x4),_0x7246x3[_0xa4d4[722]]());}};mxVertexHandler[_0xa4d4[202]][_0xa4d4[861]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],_0x7246x2,_0x7246x3);this[_0xa4d4[2739]]=_0x7246x2[_0xa4d4[235]];this[_0xa4d4[2740]]=_0x7246x2[_0xa4d4[236]];this[_0xa4d4[1983]]=_0x7246x4;this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]]=_0x7246x4==mxEvent[_0xa4d4[2983]]?_0xa4d4[497]:_0xa4d4[130];this[_0xa4d4[2988]]=this[_0xa4d4[2963]](this[_0xa4d4[1562]]);!(mxClient[_0xa4d4[48]]&&0!=Number(this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]))&&null!=this[_0xa4d4[724]][_0xa4d4[963]]&&this[_0xa4d4[724]][_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==this[_0xa4d4[1179]][_0xa4d4[526]]?(this[_0xa4d4[2988]][_0xa4d4[507]]=mxConstants[_0xa4d4[1656]],this[_0xa4d4[2988]][_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[526]])):(this[_0xa4d4[2988]][_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]],this[_0xa4d4[2988]][_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[1524]]()));};mxVertexHandler[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&null!=this[_0xa4d4[1983]]){var _0x7246x4= new mxPoint(_0x7246x3[_0xa4d4[734]](),_0x7246x3[_0xa4d4[735]]()),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1018]](_0x7246x3[_0xa4d4[727]]()),_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]];if(this[_0xa4d4[1983]]==mxEvent[_0xa4d4[2987]]){_0x7246x5&&(_0x7246x4[_0xa4d4[235]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x4[_0xa4d4[235]]/_0x7246x9)*_0x7246x9,_0x7246x4[_0xa4d4[236]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x4[_0xa4d4[236]]/_0x7246x9)*_0x7246x9),this[_0xa4d4[2985]](this[_0xa4d4[2964]][this[_0xa4d4[2964]][_0xa4d4[67]]-1],_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]])}else {if(this[_0xa4d4[1983]]==mxEvent[_0xa4d4[2983]]){var _0x7246xa=this[_0xa4d4[724]][_0xa4d4[235]]+this[_0xa4d4[724]][_0xa4d4[117]]/2-_0x7246x4[_0xa4d4[235]],_0x7246x12=this[_0xa4d4[724]][_0xa4d4[236]]+this[_0xa4d4[724]][_0xa4d4[119]]/2-_0x7246x4[_0xa4d4[236]];this[_0xa4d4[2989]]=0!=_0x7246xa?180*Math[_0xa4d4[2990]](_0x7246x12/_0x7246xa)/Math[_0xa4d4[424]]+90:0>_0x7246x12?180:0;0<_0x7246xa&&(this[_0xa4d4[2989]]-=180);this[_0xa4d4[2960]]&&(_0x7246xa=_0x7246x4[_0xa4d4[235]]-this[_0xa4d4[724]][_0xa4d4[241]](),_0x7246x12=_0x7246x4[_0xa4d4[236]]-this[_0xa4d4[724]][_0xa4d4[242]](),_0x7246xa=Math[_0xa4d4[425]](Math[_0xa4d4[428]](_0x7246xa*_0x7246xa+_0x7246x12*_0x7246x12)-this[_0xa4d4[724]][_0xa4d4[119]]/2-20),_0x7246xa=Math[_0xa4d4[160]](1,5*Math[_0xa4d4[243]](3,Math[_0xa4d4[160]](0,Math[_0xa4d4[488]](80/Math[_0xa4d4[425]](_0x7246xa))))),this[_0xa4d4[2989]]=Math[_0xa4d4[488]](this[_0xa4d4[2989]]/_0x7246xa)*_0x7246xa);this[_0xa4d4[2732]][_0xa4d4[603]]=this[_0xa4d4[2989]];this[_0xa4d4[2732]][_0xa4d4[258]]();}else {var _0x7246x13=mxUtils[_0xa4d4[431]](this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]),_0x7246x14=Math[_0xa4d4[426]](-_0x7246x13),_0x7246x15=Math[_0xa4d4[427]](-_0x7246x13),_0x7246x16= new mxPoint(this[_0xa4d4[724]][_0xa4d4[241]](),this[_0xa4d4[724]][_0xa4d4[242]]()),_0x7246xa=_0x7246x4[_0xa4d4[235]]-this[_0xa4d4[2739]],_0x7246x12=_0x7246x4[_0xa4d4[236]]-this[_0xa4d4[2740]],_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[513]],_0x7246x17=_0x7246x15*_0x7246xa+_0x7246x14*_0x7246x12,_0x7246xa=_0x7246x14*_0x7246xa-_0x7246x15*_0x7246x12;this[_0xa4d4[1562]]=this[_0xa4d4[2991]](this[_0xa4d4[2961]],_0x7246xa,_0x7246x17,this[_0xa4d4[1983]],_0x7246x5,_0x7246x9,_0x7246x4);_0x7246x14=Math[_0xa4d4[426]](_0x7246x13);_0x7246x15=Math[_0xa4d4[427]](_0x7246x13);_0x7246x12= new mxPoint(this[_0xa4d4[1562]][_0xa4d4[241]](),this[_0xa4d4[1562]][_0xa4d4[242]]());_0x7246xa=_0x7246x12[_0xa4d4[235]]-_0x7246x16[_0xa4d4[235]];_0x7246x12=_0x7246x12[_0xa4d4[236]]-_0x7246x16[_0xa4d4[236]];_0x7246x16=_0x7246x15*_0x7246xa+_0x7246x14*_0x7246x12-_0x7246x12;this[_0xa4d4[1562]][_0xa4d4[235]]+=_0x7246x14*_0x7246xa-_0x7246x15*_0x7246x12-_0x7246xa;this[_0xa4d4[1562]][_0xa4d4[236]]+=_0x7246x16;this[_0xa4d4[2932]]();}};_0x7246x3[_0xa4d4[722]]();}else {null!=this[_0xa4d4[2986]](_0x7246x3)&&_0x7246x3[_0xa4d4[722]](!1)}};mxVertexHandler[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){if(!_0x7246x3[_0xa4d4[721]]()&&null!=this[_0xa4d4[1983]]&&null!=this[_0xa4d4[724]]){var _0x7246x4= new mxPoint(_0x7246x3[_0xa4d4[734]](),_0x7246x3[_0xa4d4[735]]());this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[473]]();try{if(this[_0xa4d4[1983]]==mxEvent[_0xa4d4[2983]]){null!=this[_0xa4d4[2989]]&&this[_0xa4d4[2992]](this[_0xa4d4[724]][_0xa4d4[246]],this[_0xa4d4[2989]]-(this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||0))}else {var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1018]](_0x7246x3[_0xa4d4[727]]()),_0x7246x9=mxUtils[_0xa4d4[431]](this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]),_0x7246xa=Math[_0xa4d4[426]](-_0x7246x9),_0x7246x12=Math[_0xa4d4[427]](-_0x7246x9),_0x7246x13=_0x7246x4[_0xa4d4[235]]-this[_0xa4d4[2739]],_0x7246x14=_0x7246x4[_0xa4d4[236]]-this[_0xa4d4[2740]],_0x7246x4=_0x7246x12*_0x7246x13+_0x7246xa*_0x7246x14,_0x7246x13=_0x7246xa*_0x7246x13-_0x7246x12*_0x7246x14,_0x7246x14=_0x7246x4,_0x7246x15=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]];this[_0xa4d4[2526]](this[_0xa4d4[724]][_0xa4d4[246]],_0x7246x13/_0x7246x15,_0x7246x14/_0x7246x15,this[_0xa4d4[1983]],_0x7246x5);}}finally{this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[476]]()};this[_0xa4d4[862]]();_0x7246x3[_0xa4d4[722]]();}};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2992]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]();if(_0x7246x4[_0xa4d4[1193]](_0x7246x2)){var _0x7246x5=_0x7246x2==this[_0xa4d4[724]]?this[_0xa4d4[724]]:this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x2);null!=_0x7246x5&&this[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_ROTATION,(_0x7246x5[_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||0)+_0x7246x3,[_0x7246x2]);if(this[_0xa4d4[724]][_0xa4d4[246]]!=_0x7246x2&&(_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x2),null!=_0x7246x5&&!_0x7246x5[_0xa4d4[1500]])){if(0!=_0x7246x3){var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x2),_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x9);if(!_0x7246x5[_0xa4d4[1500]]&&null!=_0x7246xa){var _0x7246x12=mxUtils[_0xa4d4[431]](_0x7246x3),_0x7246x9=Math[_0xa4d4[426]](_0x7246x12),_0x7246x12=Math[_0xa4d4[427]](_0x7246x12),_0x7246x13= new mxPoint(_0x7246x5[_0xa4d4[241]](),_0x7246x5[_0xa4d4[242]]()),_0x7246xa= new mxPoint(_0x7246xa[_0xa4d4[117]]/2,_0x7246xa[_0xa4d4[119]]/2),_0x7246x9=mxUtils[_0xa4d4[432]](_0x7246x13,_0x7246x9,_0x7246x12,_0x7246xa),_0x7246x5=_0x7246x5[_0xa4d4[238]]();_0x7246x5[_0xa4d4[235]]=_0x7246x9[_0xa4d4[235]]-_0x7246x5[_0xa4d4[117]]/2;_0x7246x5[_0xa4d4[236]]=_0x7246x9[_0xa4d4[236]]-_0x7246x5[_0xa4d4[119]]/2;_0x7246x4[_0xa4d4[1724]](_0x7246x2,_0x7246x5);};}else {_0x7246x5=_0x7246x5[_0xa4d4[238]](),_0x7246x5[_0xa4d4[235]]+=dx,_0x7246x5[_0xa4d4[236]]+=dy,_0x7246x4[_0xa4d4[1724]](_0x7246x2,_0x7246x5)}};_0x7246x5=_0x7246x4[_0xa4d4[262]](_0x7246x2);for(_0x7246x9=0;_0x7246x9<_0x7246x5;_0x7246x9++){this[_0xa4d4[2992]](_0x7246x4[_0xa4d4[263]](_0x7246x2,_0x7246x9),_0x7246x3)};};};mxVertexHandler[_0xa4d4[202]][_0xa4d4[862]]=function(){this[_0xa4d4[1983]]=this[_0xa4d4[2989]]=null;null!=this[_0xa4d4[2988]]&&(this[_0xa4d4[2988]][_0xa4d4[515]](),this[_0xa4d4[2988]]=null);null!=this[_0xa4d4[2732]]&&(this[_0xa4d4[2732]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[497],this[_0xa4d4[2961]]=this[_0xa4d4[2962]](this[_0xa4d4[724]]),this[_0xa4d4[1562]]= new mxRectangle(this[_0xa4d4[2961]][_0xa4d4[235]],this[_0xa4d4[2961]][_0xa4d4[236]],this[_0xa4d4[2961]][_0xa4d4[117]],this[_0xa4d4[2961]][_0xa4d4[119]]),this[_0xa4d4[2932]]());};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2526]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1721]](_0x7246x2);if(null!=_0x7246xa){if(_0x7246x5==mxEvent[_0xa4d4[2987]]){_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]],_0x7246x3=(this[_0xa4d4[2972]][_0xa4d4[1562]][_0xa4d4[241]]()-this[_0xa4d4[2739]])/_0x7246x5,_0x7246x4=(this[_0xa4d4[2972]][_0xa4d4[1562]][_0xa4d4[242]]()-this[_0xa4d4[2740]])/_0x7246x5,_0x7246xa=_0x7246xa[_0xa4d4[238]](),null==_0x7246xa[_0xa4d4[1368]]?_0x7246xa[_0xa4d4[1368]]= new mxPoint(_0x7246x3,_0x7246x4):(_0x7246xa[_0xa4d4[1368]][_0xa4d4[235]]+=_0x7246x3,_0x7246xa[_0xa4d4[1368]][_0xa4d4[236]]+=_0x7246x4),this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1724]](_0x7246x2,_0x7246xa)}else {_0x7246x5=this[_0xa4d4[2991]](_0x7246xa,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,1, new mxPoint(0,0));var _0x7246x12=mxUtils[_0xa4d4[431]](this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]);if(0!=_0x7246x12){_0x7246x3=_0x7246x5[_0xa4d4[241]]()-_0x7246xa[_0xa4d4[241]]();_0x7246x4=_0x7246x5[_0xa4d4[242]]()-_0x7246xa[_0xa4d4[242]]();_0x7246x9=Math[_0xa4d4[426]](_0x7246x12);var _0x7246x13=Math[_0xa4d4[427]](_0x7246x12),_0x7246x12=_0x7246x9*_0x7246x3-_0x7246x13*_0x7246x4-_0x7246x3;_0x7246x3=_0x7246x13*_0x7246x3+_0x7246x9*_0x7246x4-_0x7246x4;_0x7246x4=_0x7246x5[_0xa4d4[235]]-_0x7246xa[_0xa4d4[235]];var _0x7246x14=_0x7246x5[_0xa4d4[236]]-_0x7246xa[_0xa4d4[236]],_0x7246x15=_0x7246x9*_0x7246x4-_0x7246x13*_0x7246x14;_0x7246x9=_0x7246x13*_0x7246x4+_0x7246x9*_0x7246x14;_0x7246x5[_0xa4d4[235]]+=_0x7246x12;_0x7246x5[_0xa4d4[236]]+=_0x7246x3;if(!this[_0xa4d4[1179]][_0xa4d4[1742]](_0x7246x2)&&(0!=_0x7246x12||0!=_0x7246x3)){_0x7246x4=_0x7246xa[_0xa4d4[235]]-_0x7246x5[_0xa4d4[235]]+_0x7246x15,_0x7246x14=_0x7246xa[_0xa4d4[236]]-_0x7246x5[_0xa4d4[236]]+_0x7246x9,this[_0xa4d4[2993]](_0x7246x2,_0x7246x4,_0x7246x14)};};this[_0xa4d4[1179]][_0xa4d4[2526]](_0x7246x2,_0x7246x5);}};};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2993]]=function(_0x7246x2,_0x7246x3,_0x7246x4){for(var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x9=_0x7246x5[_0xa4d4[262]](_0x7246x2),_0x7246xa=0;_0x7246xa<_0x7246x9;_0x7246xa++){var _0x7246x12=_0x7246x5[_0xa4d4[263]](_0x7246x2,_0x7246xa);if(_0x7246x5[_0xa4d4[1193]](_0x7246x12)){var _0x7246x13=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x12);null!=_0x7246x13&&!_0x7246x13[_0xa4d4[1500]]&&(_0x7246x13=_0x7246x13[_0xa4d4[238]](),_0x7246x13[_0xa4d4[235]]+=_0x7246x3,_0x7246x13[_0xa4d4[236]]+=_0x7246x4,_0x7246x5[_0xa4d4[1724]](_0x7246x12,_0x7246x13));};}};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2991]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12){if(this[_0xa4d4[2957]]){_0x7246x12=_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]+_0x7246x3;var _0x7246x13=_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]+_0x7246x4;_0x7246x9&&(_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x12/_0x7246xa)*_0x7246xa,_0x7246x13=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x13/_0x7246xa)*_0x7246xa);_0x7246xa= new mxRectangle(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]],0,0);_0x7246xa[_0xa4d4[99]]( new mxRectangle(_0x7246x12,_0x7246x13,0,0));return _0x7246xa;};var _0x7246x13=_0x7246x2[_0xa4d4[235]]-_0x7246x12[_0xa4d4[235]]*_0x7246xa,_0x7246x14=_0x7246x13+_0x7246x2[_0xa4d4[117]],_0x7246x15=_0x7246x2[_0xa4d4[236]]-_0x7246x12[_0xa4d4[236]]*_0x7246xa;_0x7246x2=_0x7246x15+_0x7246x2[_0xa4d4[119]];4<_0x7246x5?(_0x7246x2+=_0x7246x4,_0x7246x9&&(_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2/_0x7246xa)*_0x7246xa)):3>_0x7246x5&&(_0x7246x15+=_0x7246x4,_0x7246x9&&(_0x7246x15=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x15/_0x7246xa)*_0x7246xa));if(0==_0x7246x5||3==_0x7246x5||5==_0x7246x5){_0x7246x13+=_0x7246x3,_0x7246x9&&(_0x7246x13=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x13/_0x7246xa)*_0x7246xa)}else {if(2==_0x7246x5||4==_0x7246x5||7==_0x7246x5){_0x7246x14+=_0x7246x3,_0x7246x9&&(_0x7246x14=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x14/_0x7246xa)*_0x7246xa)}};_0x7246x9=_0x7246x14-_0x7246x13;_0x7246x2-=_0x7246x15;0>_0x7246x9&&(_0x7246x13+=_0x7246x9,_0x7246x9=Math[_0xa4d4[425]](_0x7246x9));0>_0x7246x2&&(_0x7246x15+=_0x7246x2,_0x7246x2=Math[_0xa4d4[425]](_0x7246x2));return  new mxRectangle(_0x7246x13+_0x7246x12[_0xa4d4[235]]*_0x7246xa,_0x7246x15+_0x7246x12[_0xa4d4[236]]*_0x7246xa,_0x7246x9,_0x7246x2);};mxVertexHandler[_0xa4d4[202]][_0xa4d4[258]]=function(){this[_0xa4d4[2961]]=this[_0xa4d4[2962]](this[_0xa4d4[724]]);this[_0xa4d4[1562]]= new mxRectangle(this[_0xa4d4[724]][_0xa4d4[235]],this[_0xa4d4[724]][_0xa4d4[236]],this[_0xa4d4[724]][_0xa4d4[117]],this[_0xa4d4[724]][_0xa4d4[119]]);var _0x7246x2=this[_0xa4d4[724]];if(null!=this[_0xa4d4[2964]]){var _0x7246x3=_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]],_0x7246x4=_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]];if(this[_0xa4d4[2957]]){this[_0xa4d4[2985]](this[_0xa4d4[2964]][0],_0x7246x3,_0x7246x4)}else {var _0x7246x5=_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]/2,_0x7246x9=_0x7246x2[_0xa4d4[236]]+_0x7246x2[_0xa4d4[119]]/2;if(1<this[_0xa4d4[2964]][_0xa4d4[67]]){var _0x7246xa=mxUtils[_0xa4d4[431]](_0x7246x2[_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]),_0x7246x12=Math[_0xa4d4[426]](_0x7246xa),_0x7246xa=Math[_0xa4d4[427]](_0x7246xa),_0x7246x13= new mxPoint(_0x7246x2[_0xa4d4[241]](),_0x7246x2[_0xa4d4[242]]()),_0x7246x14=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]),_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][0],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);_0x7246x14[_0xa4d4[235]]=_0x7246x5;_0x7246x14[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]];_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][1],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);_0x7246x14[_0xa4d4[235]]=_0x7246x3;_0x7246x14[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]];_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][2],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);_0x7246x14[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]];_0x7246x14[_0xa4d4[236]]=_0x7246x9;_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][3],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);_0x7246x14[_0xa4d4[235]]=_0x7246x3;_0x7246x14[_0xa4d4[236]]=_0x7246x9;_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][4],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);_0x7246x14[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]];_0x7246x14[_0xa4d4[236]]=_0x7246x4;_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][5],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);_0x7246x14[_0xa4d4[235]]=_0x7246x5;_0x7246x14[_0xa4d4[236]]=_0x7246x4;_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][6],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);_0x7246x14[_0xa4d4[235]]=_0x7246x3;_0x7246x14[_0xa4d4[236]]=_0x7246x4;_0x7246x14=mxUtils[_0xa4d4[432]](_0x7246x14,_0x7246x12,_0x7246xa,_0x7246x13);this[_0xa4d4[2985]](this[_0xa4d4[2964]][7],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]);this[_0xa4d4[2985]](this[_0xa4d4[2964]][8],_0x7246x5+_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]],_0x7246x9+_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]]);}else {2<=this[_0xa4d4[724]][_0xa4d4[117]]&&2<=this[_0xa4d4[724]][_0xa4d4[119]]?this[_0xa4d4[2985]](this[_0xa4d4[2964]][0],_0x7246x5+_0x7246x2[_0xa4d4[2079]][_0xa4d4[235]],_0x7246x9+_0x7246x2[_0xa4d4[2079]][_0xa4d4[236]]):this[_0xa4d4[2985]](this[_0xa4d4[2964]][0],_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]])};};};null!=this[_0xa4d4[2973]]&&(_0x7246xa=mxUtils[_0xa4d4[431]](this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]),_0x7246x12=Math[_0xa4d4[426]](_0x7246xa),_0x7246xa=Math[_0xa4d4[427]](_0x7246xa),_0x7246x13= new mxPoint(this[_0xa4d4[724]][_0xa4d4[241]](),this[_0xa4d4[724]][_0xa4d4[242]]()),_0x7246x14=mxUtils[_0xa4d4[432]]( new mxPoint(_0x7246x2[_0xa4d4[235]]+_0x7246x2[_0xa4d4[117]]/2,_0x7246x2[_0xa4d4[236]]-16),_0x7246x12,_0x7246xa,_0x7246x13),this[_0xa4d4[2985]](this[_0xa4d4[2973]],_0x7246x14[_0xa4d4[235]],_0x7246x14[_0xa4d4[236]]));this[_0xa4d4[2732]][_0xa4d4[603]]=Number(this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]);this[_0xa4d4[2932]]();};mxVertexHandler[_0xa4d4[202]][_0xa4d4[2932]]=function(){null!=this[_0xa4d4[2988]]&&(this[_0xa4d4[2988]][_0xa4d4[1562]]=this[_0xa4d4[1562]],this[_0xa4d4[2988]][_0xa4d4[252]][_0xa4d4[265]]==this[_0xa4d4[1179]][_0xa4d4[526]]&&(this[_0xa4d4[2988]][_0xa4d4[1562]][_0xa4d4[117]]=Math[_0xa4d4[160]](0,this[_0xa4d4[2988]][_0xa4d4[1562]][_0xa4d4[117]]-1),this[_0xa4d4[2988]][_0xa4d4[1562]][_0xa4d4[119]]=Math[_0xa4d4[160]](0,this[_0xa4d4[2988]][_0xa4d4[1562]][_0xa4d4[119]]-1)),this[_0xa4d4[2988]][_0xa4d4[603]]=Number(this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]),this[_0xa4d4[2988]][_0xa4d4[258]]());this[_0xa4d4[2732]][_0xa4d4[1562]]=this[_0xa4d4[1562]];this[_0xa4d4[2732]][_0xa4d4[258]]();};mxVertexHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[2988]]&&(this[_0xa4d4[2988]][_0xa4d4[515]](),this[_0xa4d4[2988]]=null);this[_0xa4d4[2732]][_0xa4d4[515]]();this[_0xa4d4[2972]]=this[_0xa4d4[2732]]=null;if(null!=this[_0xa4d4[2964]]){for(var _0x7246x2=0;_0x7246x2<this[_0xa4d4[2964]][_0xa4d4[67]];_0x7246x2++){this[_0xa4d4[2964]][_0x7246x2][_0xa4d4[515]](),this[_0xa4d4[2964]][_0x7246x2]=null}};};function mxEdgeHandler(_0x7246x2){null!=_0x7246x2&&(this[_0xa4d4[724]]=_0x7246x2,this[_0xa4d4[176]]())}mxEdgeHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[724]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2885]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2886]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[267]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[253]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2994]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2972]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2797]]= !0;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2771]]= !1;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2995]]= !1;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[574]]= !1;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2958]]= !0;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2996]]= !1;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2959]]=null;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2353]]=0;mxEdgeHandler[_0xa4d4[202]][_0xa4d4[176]]=function(){this[_0xa4d4[1179]]=this[_0xa4d4[724]][_0xa4d4[441]][_0xa4d4[1179]];this[_0xa4d4[2885]]=this[_0xa4d4[1689]]();this[_0xa4d4[2886]]= new mxConstraintHandler(this[_0xa4d4[1179]]);this[_0xa4d4[1525]]=[];this[_0xa4d4[2997]]=this[_0xa4d4[2998]](this[_0xa4d4[724]]);this[_0xa4d4[253]]=this[_0xa4d4[2963]](this[_0xa4d4[2997]]);this[_0xa4d4[253]][_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[2334]]:mxConstants[_0xa4d4[508]];this[_0xa4d4[253]][_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]());this[_0xa4d4[253]][_0xa4d4[1564]]=0;this[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[2831]];mxEvent[_0xa4d4[169]](this[_0xa4d4[253]][_0xa4d4[252]],_0xa4d4[760],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[761]](_0x7246x2,this[_0xa4d4[724]][_0xa4d4[246]])}));mxEvent[_0xa4d4[759]](this[_0xa4d4[253]][_0xa4d4[252]],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[2771]]&&this[_0xa4d4[2999]](_0x7246x2)?this[_0xa4d4[3000]](this[_0xa4d4[724]],_0x7246x2):this[_0xa4d4[1179]][_0xa4d4[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7246x2,this[_0xa4d4[724]]))}),mxUtils[_0xa4d4[885]](this,function(_0x7246x2){var _0x7246x4=this[_0xa4d4[724]][_0xa4d4[246]];if(null!=this[_0xa4d4[1983]]){var _0x7246x5=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x2),mxEvent[_0xa4d4[733]](_0x7246x2)),_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[999]](_0x7246x5[_0xa4d4[235]],_0x7246x5[_0xa4d4[236]]);this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x4)&&this[_0xa4d4[1179]][_0xa4d4[2688]](_0x7246x4,_0x7246x5[_0xa4d4[235]],_0x7246x5[_0xa4d4[236]])&&(_0x7246x4=null);};this[_0xa4d4[1179]][_0xa4d4[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7246x2,this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x4)));}),mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7246x2,this[_0xa4d4[724]]))}));this[_0xa4d4[574]]=null!=this[_0xa4d4[724]][_0xa4d4[963]]&&this[_0xa4d4[724]][_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==this[_0xa4d4[1179]][_0xa4d4[526]];if(!this[_0xa4d4[574]]){var _0x7246x2=this[_0xa4d4[724]][_0xa4d4[2089]](!0);null!=_0x7246x2&&(this[_0xa4d4[574]]=null!=_0x7246x2[_0xa4d4[963]]&&_0x7246x2[_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==this[_0xa4d4[1179]][_0xa4d4[526]]);this[_0xa4d4[574]]||(_0x7246x2=this[_0xa4d4[724]][_0xa4d4[2089]](!1),null!=_0x7246x2&&(this[_0xa4d4[574]]=null!=_0x7246x2[_0xa4d4[963]]&&_0x7246x2[_0xa4d4[963]][_0xa4d4[252]][_0xa4d4[265]]==this[_0xa4d4[1179]][_0xa4d4[526]]));};if(this[_0xa4d4[1179]][_0xa4d4[2694]]()<mxGraphHandler[_0xa4d4[202]][_0xa4d4[2795]]||0>=mxGraphHandler[_0xa4d4[202]][_0xa4d4[2795]]){this[_0xa4d4[2994]]=this[_0xa4d4[3001]]()};this[_0xa4d4[685]]= new mxPoint(this[_0xa4d4[724]][_0xa4d4[2079]][_0xa4d4[235]],this[_0xa4d4[724]][_0xa4d4[2079]][_0xa4d4[236]]);this[_0xa4d4[2972]]= new mxRectangleShape( new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);this[_0xa4d4[2972]][_0xa4d4[1229]]= !1;this[_0xa4d4[3002]](this[_0xa4d4[2972]]);this[_0xa4d4[2972]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[3003]];mxEvent[_0xa4d4[2733]](this[_0xa4d4[2972]][_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);this[_0xa4d4[258]]();};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2999]]=function(_0x7246x2){return mxEvent[_0xa4d4[774]](_0x7246x2)};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3004]]=function(_0x7246x2){return mxEvent[_0xa4d4[774]](_0x7246x2)};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2998]]=function(_0x7246x2){return _0x7246x2[_0xa4d4[439]]};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2963]]=function(_0x7246x2){_0x7246x2= new mxPolyline(_0x7246x2,this[_0xa4d4[2975]]());_0x7246x2[_0xa4d4[1307]]=this[_0xa4d4[2976]]();_0x7246x2[_0xa4d4[1522]]=this[_0xa4d4[2977]]();return _0x7246x2;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2975]]=function(){return mxConstants[_0xa4d4[3005]]};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2976]]=function(){return mxConstants[_0xa4d4[3006]]};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2977]]=function(){return mxConstants[_0xa4d4[3007]]};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2907]]=function(_0x7246x2){return !0};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[1689]]=function(){var _0x7246x2= new mxCellMarker(this[_0xa4d4[1179]]),_0x7246x3=this;_0x7246x2[_0xa4d4[736]]=function(_0x7246x2){var _0x7246x5=mxCellMarker[_0xa4d4[202]][_0xa4d4[736]][_0xa4d4[183]](this,arguments);if(!_0x7246x3[_0xa4d4[2907]](_0x7246x5)){return null};var _0x7246x9=_0x7246x3[_0xa4d4[1179]][_0xa4d4[502]]();if(_0x7246x5==_0x7246x3[_0xa4d4[724]][_0xa4d4[246]]||null!=_0x7246x5&&!_0x7246x3[_0xa4d4[1179]][_0xa4d4[2405]]&&_0x7246x9[_0xa4d4[250]](_0x7246x5)){_0x7246x5=null};return _0x7246x5;};_0x7246x2[_0xa4d4[2872]]=function(_0x7246x2){var _0x7246x5=_0x7246x3[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=_0x7246x3[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[2292]](_0x7246x2,_0x7246x3[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](_0x7246x5[_0xa4d4[1709]](_0x7246x3[_0xa4d4[724]][_0xa4d4[246]],!_0x7246x3[_0xa4d4[729]])),!_0x7246x3[_0xa4d4[729]]),_0x7246x5=null!=_0x7246x5?_0x7246x5[_0xa4d4[246]]:null;_0x7246x3[_0xa4d4[267]]=_0x7246x3[_0xa4d4[2909]](_0x7246x3[_0xa4d4[729]]?_0x7246x2[_0xa4d4[246]]:_0x7246x5,_0x7246x3[_0xa4d4[729]]?_0x7246x5:_0x7246x2[_0xa4d4[246]]);return null==_0x7246x3[_0xa4d4[267]];};return _0x7246x2;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2909]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[1179]][_0xa4d4[2500]](this[_0xa4d4[724]][_0xa4d4[246]],_0x7246x2,_0x7246x3)};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3001]]=function(){for(var _0x7246x2=this[_0xa4d4[724]][_0xa4d4[246]],_0x7246x3=[],_0x7246x4=0;_0x7246x4<this[_0xa4d4[2997]][_0xa4d4[67]];_0x7246x4++){if(this[_0xa4d4[3008]](_0x7246x4)){var _0x7246x5=_0x7246x4==this[_0xa4d4[2997]][_0xa4d4[67]]-1;if((_0x7246x5=0==_0x7246x4||_0x7246x5)||this[_0xa4d4[1179]][_0xa4d4[2662]](_0x7246x2)){var _0x7246x9=this[_0xa4d4[3009]](_0x7246x4);this[_0xa4d4[3002]](_0x7246x9);mxClient[_0xa4d4[754]]&&_0x7246x9[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[130]);if(this[_0xa4d4[3010]](_0x7246x4)){if(mxClient[_0xa4d4[754]]){var _0x7246xa=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){_0x7246x2=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x2),mxEvent[_0xa4d4[733]](_0x7246x2));return this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[248]](this[_0xa4d4[1179]][_0xa4d4[999]](_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]));});mxEvent[_0xa4d4[2733]](_0x7246x9[_0xa4d4[252]],this[_0xa4d4[1179]],_0x7246xa);}else {_0x7246x9[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[3011]],mxEvent[_0xa4d4[2733]](_0x7246x9[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]])}};_0x7246x3[_0xa4d4[207]](_0x7246x9);_0x7246x5||(this[_0xa4d4[1525]][_0xa4d4[207]]( new mxPoint(0,0)),_0x7246x9[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188]);};}};return _0x7246x3;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3010]]=function(_0x7246x2){return !0};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3008]]=function(_0x7246x2){return !0};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3009]]=function(_0x7246x2){if(null!=this[_0xa4d4[2959]]){return  new mxImageShape( new mxRectangle(0,0,this[_0xa4d4[2959]][_0xa4d4[117]],this[_0xa4d4[2959]][_0xa4d4[119]]),this[_0xa4d4[2959]][_0xa4d4[390]])};_0x7246x2=mxConstants[_0xa4d4[2974]];this[_0xa4d4[574]]&&(_0x7246x2-=1);return  new mxRectangleShape( new mxRectangle(0,0,_0x7246x2,_0x7246x2),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3002]]=function(_0x7246x2){this[_0xa4d4[574]]?(_0x7246x2[_0xa4d4[507]]=mxConstants[_0xa4d4[1656]],_0x7246x2[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[526]])):(_0x7246x2[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[2334]]:mxConstants[_0xa4d4[508]],_0x7246x2[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]()))};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2986]]=function(_0x7246x2){if(null!=this[_0xa4d4[2994]]){for(var _0x7246x3=this[_0xa4d4[2353]],_0x7246x3=this[_0xa4d4[2958]]&&(mxClient[_0xa4d4[80]]||0<_0x7246x3)? new mxRectangle(_0x7246x2[_0xa4d4[734]]()-_0x7246x3,_0x7246x2[_0xa4d4[735]]()-_0x7246x3,2*_0x7246x3,2*_0x7246x3):null,_0x7246x4=0;_0x7246x4<this[_0xa4d4[2994]][_0xa4d4[67]];_0x7246x4++){if((_0x7246x2[_0xa4d4[729]](this[_0xa4d4[2994]][_0x7246x4])||null!=_0x7246x3&&mxUtils[_0xa4d4[1825]](this[_0xa4d4[2994]][_0x7246x4][_0xa4d4[1562]],_0x7246x3))&&_0xa4d4[188]!=this[_0xa4d4[2994]][_0x7246x4][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]){return _0x7246x4}}};if(_0x7246x2[_0xa4d4[729]](this[_0xa4d4[2972]])&&_0xa4d4[188]!=this[_0xa4d4[2972]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]||_0x7246x2[_0xa4d4[729]](this[_0xa4d4[724]][_0xa4d4[963]])){if(!mxClient[_0xa4d4[75]]&&!mxClient[_0xa4d4[76]]||_0xa4d4[2822]!=_0x7246x2[_0xa4d4[728]]()[_0xa4d4[301]]){return mxEvent[_0xa4d4[2987]]}};return null;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=null,_0x7246x4=this[_0xa4d4[2986]](_0x7246x3);null!=_0x7246x4&&(!_0x7246x3[_0xa4d4[721]]()&&this[_0xa4d4[1179]][_0xa4d4[994]]()&&!this[_0xa4d4[1179]][_0xa4d4[2579]](_0x7246x3[_0xa4d4[727]]()))&&(this[_0xa4d4[2995]]&&this[_0xa4d4[3004]](_0x7246x3[_0xa4d4[727]]())?this[_0xa4d4[3012]](this[_0xa4d4[724]],_0x7246x4):(_0x7246x4!=mxEvent[_0xa4d4[2987]]||this[_0xa4d4[1179]][_0xa4d4[2628]](_0x7246x3[_0xa4d4[736]]()))&&this[_0xa4d4[861]](_0x7246x3[_0xa4d4[730]](),_0x7246x3[_0xa4d4[732]](),_0x7246x4),_0x7246x3[_0xa4d4[722]]());};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[861]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[2739]]=_0x7246x2;this[_0xa4d4[2740]]=_0x7246x3;this[_0xa4d4[729]]=null==this[_0xa4d4[2994]]?!1:0==_0x7246x4;this[_0xa4d4[3013]]=null==this[_0xa4d4[2994]]?!1:_0x7246x4==this[_0xa4d4[2994]][_0xa4d4[67]]-1;this[_0xa4d4[3014]]=_0x7246x4==mxEvent[_0xa4d4[2987]];if(this[_0xa4d4[729]]||this[_0xa4d4[3013]]){if(_0x7246x2=this[_0xa4d4[724]][_0xa4d4[246]],_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[1709]](_0x7246x2,this[_0xa4d4[729]]),null==_0x7246x3&&this[_0xa4d4[1179]][_0xa4d4[2661]](_0x7246x2,this[_0xa4d4[729]])||null!=_0x7246x3&&this[_0xa4d4[1179]][_0xa4d4[2551]](_0x7246x2,_0x7246x3,this[_0xa4d4[729]])){this[_0xa4d4[1983]]=_0x7246x4}}else {this[_0xa4d4[1983]]=_0x7246x4};};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3015]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[724]][_0xa4d4[238]]()};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3016]]=function(){return this[_0xa4d4[1179]][_0xa4d4[1020]]*this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]]/2};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2689]]=function(_0x7246x2){var _0x7246x3= new mxPoint(_0x7246x2[_0xa4d4[734]](),_0x7246x2[_0xa4d4[735]]()),_0x7246x4=this[_0xa4d4[3016]](),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]](),_0x7246x9=!1,_0x7246xa=!1;if(this[_0xa4d4[2996]]&&0<_0x7246x4){var _0x7246x12=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x5=_0x7246x2[_0xa4d4[235]];Math[_0xa4d4[425]](_0x7246x3[_0xa4d4[235]]-_0x7246x5)<_0x7246x4&&(_0x7246x3[_0xa4d4[235]]=_0x7246x5,_0x7246x9= !0);_0x7246x2=_0x7246x2[_0xa4d4[236]];Math[_0xa4d4[425]](_0x7246x3[_0xa4d4[236]]-_0x7246x2)<_0x7246x4&&(_0x7246x3[_0xa4d4[236]]=_0x7246x2,_0x7246xa= !0);}},_0x7246x13=function(_0x7246x2){null!=_0x7246x2&&_0x7246x12[_0xa4d4[239]](this, new mxPoint(_0x7246x5[_0xa4d4[2230]](_0x7246x2),_0x7246x5[_0xa4d4[2228]](_0x7246x2)))};_0x7246x13[_0xa4d4[239]](this,this[_0xa4d4[724]][_0xa4d4[2089]](!0));_0x7246x13[_0xa4d4[239]](this,this[_0xa4d4[724]][_0xa4d4[2089]](!1));if(null!=this[_0xa4d4[2997]]){for(_0x7246x13=0;_0x7246x13<this[_0xa4d4[2997]];_0x7246x13++){_0x7246x13!=this[_0xa4d4[1983]]&&_0x7246x12[_0xa4d4[239]](this,this[_0xa4d4[2997]][_0x7246x13])}};};this[_0xa4d4[1179]][_0xa4d4[1018]](_0x7246x2[_0xa4d4[727]]())&&(_0x7246x2=_0x7246x5[_0xa4d4[255]],_0x7246x13=_0x7246x5[_0xa4d4[513]],_0x7246x9||(_0x7246x3[_0xa4d4[235]]=(this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x3[_0xa4d4[235]]/_0x7246x2-_0x7246x13[_0xa4d4[235]])+_0x7246x13[_0xa4d4[235]])*_0x7246x2),_0x7246xa||(_0x7246x3[_0xa4d4[236]]=(this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x3[_0xa4d4[236]]/_0x7246x2-_0x7246x13[_0xa4d4[236]])+_0x7246x13[_0xa4d4[236]])*_0x7246x2));return _0x7246x3;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3017]]=function(_0x7246x2){this[_0xa4d4[2886]][_0xa4d4[2729]](_0x7246x2,this[_0xa4d4[729]]);this[_0xa4d4[2885]][_0xa4d4[2871]](_0x7246x2);_0x7246x2=this[_0xa4d4[2885]][_0xa4d4[2868]]();var _0x7246x3=null;null!=this[_0xa4d4[2886]][_0xa4d4[2919]]&&null!=this[_0xa4d4[2886]][_0xa4d4[2920]]&&this[_0xa4d4[2885]][_0xa4d4[862]]();null!=_0x7246x2?_0x7246x3=_0x7246x2:null!=this[_0xa4d4[2886]][_0xa4d4[2920]]&&null!=this[_0xa4d4[2886]][_0xa4d4[2919]]&&(_0x7246x3=this[_0xa4d4[2886]][_0xa4d4[2919]]);return _0x7246x3;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3018]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[1198]](this[_0xa4d4[724]][_0xa4d4[246]]),_0x7246x3=null!=_0x7246x3[_0xa4d4[1525]]?_0x7246x3[_0xa4d4[1525]][_0xa4d4[1853]]():null;!this[_0xa4d4[729]]&&!this[_0xa4d4[3013]]?(this[_0xa4d4[2196]](_0x7246x2,!1),null==_0x7246x3?_0x7246x3=[_0x7246x2]:_0x7246x3[this[_0xa4d4[1983]]-1]=_0x7246x2):this[_0xa4d4[1179]][_0xa4d4[2401]]&&(_0x7246x3=null);return _0x7246x3;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3019]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[729]]?_0x7246x4:this[_0xa4d4[724]][_0xa4d4[2089]](!0),_0x7246x9=this[_0xa4d4[3013]]?_0x7246x4:this[_0xa4d4[724]][_0xa4d4[2089]](!1),_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[2288]](_0x7246x2,_0x7246x5,!0),_0x7246x12=this[_0xa4d4[1179]][_0xa4d4[2288]](_0x7246x2,_0x7246x9,!1),_0x7246x13=this[_0xa4d4[2886]][_0xa4d4[2920]];null==_0x7246x13&&(_0x7246x13= new mxConnectionConstraint);this[_0xa4d4[729]]?_0x7246xa=_0x7246x13:this[_0xa4d4[3013]]&&(_0x7246x12=_0x7246x13);(!this[_0xa4d4[729]]||null!=_0x7246x5)&&_0x7246x2[_0xa4d4[441]][_0xa4d4[2289]](_0x7246x2,_0x7246x5,!0,_0x7246xa);(!this[_0xa4d4[3013]]||null!=_0x7246x9)&&_0x7246x2[_0xa4d4[441]][_0xa4d4[2289]](_0x7246x2,_0x7246x9,!1,_0x7246x12);if((this[_0xa4d4[729]]||this[_0xa4d4[3013]])&&null==_0x7246x4){_0x7246x2[_0xa4d4[2088]](_0x7246x3,this[_0xa4d4[729]]),null==this[_0xa4d4[2885]][_0xa4d4[2869]]()&&(this[_0xa4d4[267]]=this[_0xa4d4[1179]][_0xa4d4[2406]]?null:_0xa4d4[110])};_0x7246x2[_0xa4d4[441]][_0xa4d4[2282]](_0x7246x2,this[_0xa4d4[1525]],_0x7246x5,_0x7246x9);_0x7246x2[_0xa4d4[441]][_0xa4d4[2283]](_0x7246x2,_0x7246x5,_0x7246x9);};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){if(null!=this[_0xa4d4[1983]]&&null!=this[_0xa4d4[2885]]){var _0x7246x4=this[_0xa4d4[2689]](_0x7246x3);if(this[_0xa4d4[3014]]){this[_0xa4d4[685]][_0xa4d4[235]]=_0x7246x4[_0xa4d4[235]],this[_0xa4d4[685]][_0xa4d4[236]]=_0x7246x4[_0xa4d4[236]]}else {this[_0xa4d4[1525]]=this[_0xa4d4[3018]](_0x7246x4);var _0x7246x5=this[_0xa4d4[729]]||this[_0xa4d4[3013]]?this[_0xa4d4[3017]](_0x7246x3):null,_0x7246x9=this[_0xa4d4[3015]](_0x7246x4,null!=_0x7246x5?_0x7246x5[_0xa4d4[246]]:null);this[_0xa4d4[3019]](_0x7246x9,_0x7246x4,_0x7246x5);this[_0xa4d4[3020]](null==this[_0xa4d4[267]]?this[_0xa4d4[2885]][_0xa4d4[2853]]:this[_0xa4d4[2885]][_0xa4d4[2855]]);this[_0xa4d4[2997]]=_0x7246x9[_0xa4d4[439]];this[_0xa4d4[1124]]= !0;};this[_0xa4d4[2932]]();mxEvent[_0xa4d4[722]](_0x7246x3[_0xa4d4[727]]());_0x7246x3[_0xa4d4[722]]();}else {mxClient[_0xa4d4[80]]&&null!=this[_0xa4d4[2986]](_0x7246x3)&&_0x7246x3[_0xa4d4[722]](!1)}};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){if(null!=this[_0xa4d4[1983]]&&null!=this[_0xa4d4[2885]]){var _0x7246x4=this[_0xa4d4[724]][_0xa4d4[246]];if(_0x7246x3[_0xa4d4[730]]()!=this[_0xa4d4[2739]]||_0x7246x3[_0xa4d4[732]]()!=this[_0xa4d4[2740]]){if(null!=this[_0xa4d4[267]]){0<this[_0xa4d4[267]][_0xa4d4[67]]&&this[_0xa4d4[1179]][_0xa4d4[2580]](this[_0xa4d4[267]])}else {if(this[_0xa4d4[3014]]){this[_0xa4d4[3021]](this[_0xa4d4[724]],this[_0xa4d4[685]][_0xa4d4[235]],this[_0xa4d4[685]][_0xa4d4[236]])}else {if(this[_0xa4d4[729]]||this[_0xa4d4[3013]]){var _0x7246x5=null;null!=this[_0xa4d4[2886]][_0xa4d4[2920]]&&null!=this[_0xa4d4[2886]][_0xa4d4[2919]]&&(_0x7246x5=this[_0xa4d4[2886]][_0xa4d4[2919]][_0xa4d4[246]]);null==_0x7246x5&&this[_0xa4d4[2885]][_0xa4d4[2867]]()&&(_0x7246x5=this[_0xa4d4[2885]][_0xa4d4[2861]][_0xa4d4[246]]);if(null!=_0x7246x5){_0x7246x4=this[_0xa4d4[807]](_0x7246x4,_0x7246x5,this[_0xa4d4[729]],this[_0xa4d4[1179]][_0xa4d4[2574]](_0x7246x3[_0xa4d4[727]]())&&this[_0xa4d4[2797]]&&this[_0xa4d4[1179]][_0xa4d4[2617]](),_0x7246x3)}else {if(this[_0xa4d4[1179]][_0xa4d4[2530]]()){_0x7246x5=this[_0xa4d4[2997]][this[_0xa4d4[729]]?0:this[_0xa4d4[2997]][_0xa4d4[67]]-1];_0x7246x5[_0xa4d4[235]]=_0x7246x5[_0xa4d4[235]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]]-this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[235]];_0x7246x5[_0xa4d4[236]]=_0x7246x5[_0xa4d4[236]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]]-this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[513]][_0xa4d4[236]];var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x4));null!=_0x7246x9&&(_0x7246x5[_0xa4d4[235]]-=_0x7246x9[_0xa4d4[2078]][_0xa4d4[235]],_0x7246x5[_0xa4d4[236]]-=_0x7246x9[_0xa4d4[2078]][_0xa4d4[236]]);_0x7246x5[_0xa4d4[235]]-=this[_0xa4d4[1179]][_0xa4d4[1136]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]];_0x7246x5[_0xa4d4[236]]-=this[_0xa4d4[1179]][_0xa4d4[1137]]/this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]];this[_0xa4d4[3022]](_0x7246x4,_0x7246x5,this[_0xa4d4[729]]);}};}else {this[_0xa4d4[1124]]?this[_0xa4d4[3023]](_0x7246x4,this[_0xa4d4[1525]]):(this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[2263]](this[_0xa4d4[724]][_0xa4d4[246]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[2259]](this[_0xa4d4[724]][_0xa4d4[246]]))}}}};null!=this[_0xa4d4[2885]]&&(this[_0xa4d4[862]](),_0x7246x4!=this[_0xa4d4[724]][_0xa4d4[246]]&&this[_0xa4d4[1179]][_0xa4d4[2450]](_0x7246x4));_0x7246x3[_0xa4d4[722]]();}};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[862]]=function(){this[_0xa4d4[1525]]=this[_0xa4d4[685]]=this[_0xa4d4[1983]]=this[_0xa4d4[267]]=null;this[_0xa4d4[3013]]=this[_0xa4d4[729]]=this[_0xa4d4[3014]]=this[_0xa4d4[1124]]= !1;this[_0xa4d4[2885]][_0xa4d4[862]]();this[_0xa4d4[2886]][_0xa4d4[862]]();this[_0xa4d4[3020]](mxConstants.EDGE_SELECTION_COLOR);this[_0xa4d4[258]]();};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3020]]=function(_0x7246x2){null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[1336]]=_0x7246x2)};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2196]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[518]](),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[512]]();_0x7246x3&&(_0x7246x2[_0xa4d4[235]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[235]]),_0x7246x2[_0xa4d4[236]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[236]]));_0x7246x2[_0xa4d4[235]]=Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[235]]/_0x7246x4-_0x7246x5[_0xa4d4[235]]);_0x7246x2[_0xa4d4[236]]=Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[236]]/_0x7246x4-_0x7246x5[_0xa4d4[236]]);_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1197]](this[_0xa4d4[724]][_0xa4d4[246]]));null!=_0x7246x4&&(_0x7246x2[_0xa4d4[235]]-=_0x7246x4[_0xa4d4[2078]][_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]-=_0x7246x4[_0xa4d4[2078]][_0xa4d4[236]]);return _0x7246x2;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3021]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x9=_0x7246x5[_0xa4d4[1721]](_0x7246x2[_0xa4d4[246]]);if(null!=_0x7246x9){var _0x7246x9=_0x7246x9[_0xa4d4[238]](),_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[2308]](_0x7246x2,_0x7246x3,_0x7246x4);_0x7246x9[_0xa4d4[235]]=_0x7246xa[_0xa4d4[235]];_0x7246x9[_0xa4d4[236]]=_0x7246xa[_0xa4d4[236]];var _0x7246x12=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]];_0x7246x9[_0xa4d4[1368]]= new mxPoint(0,0);_0x7246xa=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[245]](_0x7246x2,_0x7246x9);_0x7246x9[_0xa4d4[1368]]= new mxPoint((_0x7246x3-_0x7246xa[_0xa4d4[235]])/_0x7246x12,(_0x7246x4-_0x7246xa[_0xa4d4[236]])/_0x7246x12);_0x7246x5[_0xa4d4[1724]](_0x7246x2[_0xa4d4[246]],_0x7246x9);};};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[807]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x9=this[_0xa4d4[1179]][_0xa4d4[502]]();var _0x7246xa=_0x7246x9[_0xa4d4[1197]](_0x7246x2);_0x7246x9[_0xa4d4[473]]();try{if(_0x7246x5){var _0x7246x12=_0x7246x2[_0xa4d4[238]]();_0x7246x9[_0xa4d4[99]](_0x7246xa,_0x7246x12,_0x7246x9[_0xa4d4[262]](_0x7246xa));var _0x7246x13=_0x7246x9[_0xa4d4[1709]](_0x7246x2,!_0x7246x4);this[_0xa4d4[1179]][_0xa4d4[851]](_0x7246x12,_0x7246x13,!_0x7246x4);_0x7246x2=_0x7246x12;};var _0x7246x14=this[_0xa4d4[2886]][_0xa4d4[2920]];null==_0x7246x14&&(_0x7246x14= new mxConnectionConstraint);this[_0xa4d4[1179]][_0xa4d4[851]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x14);}finally{_0x7246x9[_0xa4d4[476]]()};return _0x7246x2;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3022]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x9=_0x7246x5[_0xa4d4[1721]](_0x7246x2);if(null!=_0x7246x9){_0x7246x5[_0xa4d4[473]]();try{_0x7246x9=_0x7246x9[_0xa4d4[238]](),_0x7246x9[_0xa4d4[2007]](_0x7246x3,_0x7246x4),_0x7246x5[_0xa4d4[1724]](_0x7246x2,_0x7246x9),this[_0xa4d4[1179]][_0xa4d4[851]](_0x7246x2,null,_0x7246x4, new mxConnectionConstraint)}finally{_0x7246x5[_0xa4d4[476]]()};};};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3023]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x5=_0x7246x4[_0xa4d4[1721]](_0x7246x2);null!=_0x7246x5&&(_0x7246x5=_0x7246x5[_0xa4d4[238]](),_0x7246x5[_0xa4d4[1525]]=_0x7246x3,_0x7246x4[_0xa4d4[1724]](_0x7246x2,_0x7246x5));};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3000]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=mxUtils[_0xa4d4[2196]](this[_0xa4d4[1179]][_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x3),mxEvent[_0xa4d4[733]](_0x7246x3)),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1018]](_0x7246x3);this[_0xa4d4[2196]](_0x7246x4,_0x7246x5);this[_0xa4d4[3024]](_0x7246x2,_0x7246x4[_0xa4d4[235]],_0x7246x4[_0xa4d4[236]]);mxEvent[_0xa4d4[722]](_0x7246x3);};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3024]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x2[_0xa4d4[246]]);_0x7246x3= new mxPoint(_0x7246x3,_0x7246x4);if(null!=_0x7246x5){_0x7246x5=_0x7246x5[_0xa4d4[238]]();_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[513]];var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[441]][_0xa4d4[255]];_0x7246x4=mxUtils[_0xa4d4[3025]](_0x7246x2,(_0x7246x3[_0xa4d4[235]]+_0x7246x4[_0xa4d4[235]])*_0x7246x9,(_0x7246x3[_0xa4d4[236]]+_0x7246x4[_0xa4d4[236]])*_0x7246x9);null==_0x7246x5[_0xa4d4[1525]]?_0x7246x5[_0xa4d4[1525]]=[_0x7246x3]:_0x7246x5[_0xa4d4[1525]][_0xa4d4[300]](_0x7246x4,0,_0x7246x3);this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1724]](_0x7246x2[_0xa4d4[246]],_0x7246x5);this[_0xa4d4[515]]();this[_0xa4d4[176]]();};};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3012]]=function(_0x7246x2,_0x7246x3){if(0<_0x7246x3&&_0x7246x3<this[_0xa4d4[2997]][_0xa4d4[67]]-1){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[1198]](this[_0xa4d4[724]][_0xa4d4[246]]);null!=_0x7246x4&&null!=_0x7246x4[_0xa4d4[1525]]&&(_0x7246x4=_0x7246x4[_0xa4d4[238]](),_0x7246x4[_0xa4d4[1525]][_0xa4d4[300]](_0x7246x3-1,1),this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1724]](_0x7246x2[_0xa4d4[246]],_0x7246x4),this[_0xa4d4[515]](),this[_0xa4d4[176]]());}};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3026]]=function(_0x7246x2){_0x7246x2=0==_0x7246x2;var _0x7246x3=this[_0xa4d4[724]][_0xa4d4[246]],_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1709]](_0x7246x3,_0x7246x2),_0x7246x5=mxConstants[_0xa4d4[2984]];null!=_0x7246x4&&!this[_0xa4d4[1179]][_0xa4d4[2551]](_0x7246x3,_0x7246x4,_0x7246x2)||null==_0x7246x4&&!this[_0xa4d4[1179]][_0xa4d4[2661]](_0x7246x3,_0x7246x2)?_0x7246x5=mxConstants[_0xa4d4[3027]]:null!=_0x7246x4&&this[_0xa4d4[1179]][_0xa4d4[2551]](_0x7246x3,_0x7246x4,_0x7246x2)&&(_0x7246x5=mxConstants[_0xa4d4[3028]]);return _0x7246x5;};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[258]]=function(){this[_0xa4d4[2997]]=this[_0xa4d4[724]][_0xa4d4[439]][_0xa4d4[1853]]();var _0x7246x2=this[_0xa4d4[724]][_0xa4d4[246]],_0x7246x3=mxConstants[_0xa4d4[3029]];this[_0xa4d4[685]]= new mxPoint(this[_0xa4d4[724]][_0xa4d4[2079]][_0xa4d4[235]],this[_0xa4d4[724]][_0xa4d4[2079]][_0xa4d4[236]]);this[_0xa4d4[2972]][_0xa4d4[1562]]= new mxRectangle(Math[_0xa4d4[488]](this[_0xa4d4[685]][_0xa4d4[235]]-_0x7246x3/2),Math[_0xa4d4[488]](this[_0xa4d4[685]][_0xa4d4[236]]-_0x7246x3/2),_0x7246x3,_0x7246x3);this[_0xa4d4[2972]][_0xa4d4[258]]();_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[2183]](_0x7246x2);null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]&&this[_0xa4d4[1179]][_0xa4d4[2628]](_0x7246x2)?this[_0xa4d4[2972]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189]:this[_0xa4d4[2972]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188];if(null!=this[_0xa4d4[2994]]&&0<this[_0xa4d4[2994]][_0xa4d4[67]]){var _0x7246x4=this[_0xa4d4[2997]][_0xa4d4[67]]-1,_0x7246x2=this[_0xa4d4[2997]][0],_0x7246x5=this[_0xa4d4[2997]][0][_0xa4d4[236]],_0x7246x3=this[_0xa4d4[2994]][0][_0xa4d4[1562]];this[_0xa4d4[2994]][0][_0xa4d4[1562]]= new mxRectangle(Math[_0xa4d4[488]](this[_0xa4d4[2997]][0][_0xa4d4[235]]-_0x7246x3[_0xa4d4[117]]/2),Math[_0xa4d4[488]](_0x7246x5-_0x7246x3[_0xa4d4[119]]/2),_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]);this[_0xa4d4[2994]][0][_0xa4d4[1334]]=this[_0xa4d4[3026]](0);this[_0xa4d4[2994]][0][_0xa4d4[258]]();var _0x7246x5=this[_0xa4d4[2997]][_0x7246x4],_0x7246x9=this[_0xa4d4[2997]][_0x7246x4][_0xa4d4[235]],_0x7246x4=this[_0xa4d4[2997]][_0x7246x4][_0xa4d4[236]],_0x7246xa=this[_0xa4d4[2994]][_0xa4d4[67]]-1,_0x7246x3=this[_0xa4d4[2994]][_0x7246xa][_0xa4d4[1562]];this[_0xa4d4[2994]][_0x7246xa][_0xa4d4[1562]]= new mxRectangle(Math[_0xa4d4[488]](_0x7246x9-_0x7246x3[_0xa4d4[117]]/2),Math[_0xa4d4[488]](_0x7246x4-_0x7246x3[_0xa4d4[119]]/2),_0x7246x3[_0xa4d4[117]],_0x7246x3[_0xa4d4[119]]);this[_0xa4d4[2994]][_0x7246xa][_0xa4d4[1334]]=this[_0xa4d4[3026]](_0x7246xa);this[_0xa4d4[2994]][_0x7246xa][_0xa4d4[258]]();this[_0xa4d4[3030]](_0x7246x2,_0x7246x5);};this[_0xa4d4[2932]]();};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[3030]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1721]](this[_0xa4d4[724]][_0xa4d4[246]])[_0xa4d4[1525]];if(null!=_0x7246x4){null==this[_0xa4d4[1525]]&&(this[_0xa4d4[1525]]=[]);for(var _0x7246x5=1;_0x7246x5<this[_0xa4d4[2994]][_0xa4d4[67]]-1;_0x7246x5++){if(null!=this[_0xa4d4[2994]][_0x7246x5]){if(null!=this[_0xa4d4[2997]][_0x7246x5]){var _0x7246x9=this[_0xa4d4[2997]][_0x7246x5][_0xa4d4[235]],_0x7246xa=this[_0xa4d4[2997]][_0x7246x5][_0xa4d4[236]],_0x7246x12=this[_0xa4d4[2994]][_0x7246x5][_0xa4d4[1562]];this[_0xa4d4[2994]][_0x7246x5][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[189];this[_0xa4d4[2994]][_0x7246x5][_0xa4d4[1562]]= new mxRectangle(Math[_0xa4d4[488]](_0x7246x9-_0x7246x12[_0xa4d4[117]]/2),Math[_0xa4d4[488]](_0x7246xa-_0x7246x12[_0xa4d4[119]]/2),_0x7246x12[_0xa4d4[117]],_0x7246x12[_0xa4d4[119]]);this[_0xa4d4[2994]][_0x7246x5][_0xa4d4[258]]();this[_0xa4d4[1525]][_0x7246x5-1]=_0x7246x4[_0x7246x5-1];}else {this[_0xa4d4[2994]][_0x7246x5][_0xa4d4[515]](),this[_0xa4d4[2994]][_0x7246x5]=null}}};};};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[2932]]=function(){if(this[_0xa4d4[3014]]){var _0x7246x2=mxConstants[_0xa4d4[3029]],_0x7246x2= new mxRectangle(Math[_0xa4d4[488]](this[_0xa4d4[685]][_0xa4d4[235]]-_0x7246x2/2),Math[_0xa4d4[488]](this[_0xa4d4[685]][_0xa4d4[236]]-_0x7246x2/2),_0x7246x2,_0x7246x2);this[_0xa4d4[2972]][_0xa4d4[1562]]=_0x7246x2;this[_0xa4d4[2972]][_0xa4d4[258]]();}else {this[_0xa4d4[253]][_0xa4d4[1525]]=this[_0xa4d4[2997]],this[_0xa4d4[253]][_0xa4d4[258]]()}};mxEdgeHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[2885]]&&(this[_0xa4d4[2885]][_0xa4d4[515]](),this[_0xa4d4[2885]]=null);null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[515]](),this[_0xa4d4[253]]=null);null!=this[_0xa4d4[2972]]&&(this[_0xa4d4[2972]][_0xa4d4[515]](),this[_0xa4d4[2972]]=null);null!=this[_0xa4d4[2886]]&&(this[_0xa4d4[2886]][_0xa4d4[515]](),this[_0xa4d4[2886]]=null);if(null!=this[_0xa4d4[2994]]){for(var _0x7246x2=0;_0x7246x2<this[_0xa4d4[2994]][_0xa4d4[67]];_0x7246x2++){null!=this[_0xa4d4[2994]][_0x7246x2]&&(this[_0xa4d4[2994]][_0x7246x2][_0xa4d4[515]](),this[_0xa4d4[2994]][_0x7246x2]=null)}};};function mxElbowEdgeHandler(_0x7246x2){mxEdgeHandler[_0xa4d4[239]](this,_0x7246x2)}mxUtils[_0xa4d4[1284]](mxElbowEdgeHandler,mxEdgeHandler);mxElbowEdgeHandler[_0xa4d4[202]]= new mxEdgeHandler;mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[196]]=mxElbowEdgeHandler;mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3031]]= !0;mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3032]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[3033]:_0xa4d4[110];mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3001]]=function(){var _0x7246x2=[],_0x7246x3=this[_0xa4d4[3009]](0);this[_0xa4d4[3002]](_0x7246x3);_0x7246x3[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[3011]];mxEvent[_0xa4d4[2733]](_0x7246x3[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);_0x7246x2[_0xa4d4[207]](_0x7246x3);mxClient[_0xa4d4[754]]&&_0x7246x3[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[130]);_0x7246x2[_0xa4d4[207]](this[_0xa4d4[3034]]());this[_0xa4d4[1525]][_0xa4d4[207]]( new mxPoint(0,0));_0x7246x3=this[_0xa4d4[3009]](2);this[_0xa4d4[3002]](_0x7246x3);_0x7246x3[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[3011]];mxEvent[_0xa4d4[2733]](_0x7246x3[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);_0x7246x2[_0xa4d4[207]](_0x7246x3);mxClient[_0xa4d4[754]]&&_0x7246x3[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[130]);return _0x7246x2;};mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3034]]=function(){var _0x7246x2=this[_0xa4d4[3009]]();this[_0xa4d4[3002]](_0x7246x2);var _0x7246x3=this[_0xa4d4[3035]]();_0x7246x2[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=_0x7246x3;_0x7246x3=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){!mxEvent[_0xa4d4[721]](_0x7246x2)&&this[_0xa4d4[3031]]&&(this[_0xa4d4[1179]][_0xa4d4[854]](this[_0xa4d4[724]][_0xa4d4[246]],_0x7246x2),mxEvent[_0xa4d4[722]](_0x7246x2))});mxEvent[_0xa4d4[2733]](_0x7246x2[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]],null,null,null,_0x7246x3);this[_0xa4d4[1179]][_0xa4d4[2662]](this[_0xa4d4[724]][_0xa4d4[246]])||(_0x7246x2[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[495]]=_0xa4d4[130]);return _0x7246x2;};mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3035]]=function(){return this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2294]]]==mxEdgeStyle[_0xa4d4[2570]]||this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2294]]]==mxConstants[_0xa4d4[3036]]||(this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2294]]]==mxEdgeStyle[_0xa4d4[2568]]||this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2294]]]==mxConstants[_0xa4d4[3037]])&&this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2231]]]==mxConstants[_0xa4d4[2232]]?_0xa4d4[3038]:_0xa4d4[3039]};mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[2597]]=function(_0x7246x2){var _0x7246x3=null;if(null!=this[_0xa4d4[2994]]&&null!=this[_0xa4d4[2994]][1]&&(_0x7246x2==this[_0xa4d4[2994]][1][_0xa4d4[252]]||_0x7246x2[_0xa4d4[265]]==this[_0xa4d4[2994]][1][_0xa4d4[252]])){_0x7246x3=this[_0xa4d4[3032]],_0x7246x3=mxResources[_0xa4d4[203]](_0x7246x3)||_0x7246x3};return _0x7246x3;};mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[2196]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[518]](),_0x7246x5=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[512]](),_0x7246x9=this[_0xa4d4[724]][_0xa4d4[2078]];_0x7246x3&&(_0x7246x2[_0xa4d4[235]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[235]]),_0x7246x2[_0xa4d4[236]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x2[_0xa4d4[236]]));_0x7246x2[_0xa4d4[235]]=Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[235]]/_0x7246x4-_0x7246x5[_0xa4d4[235]]-_0x7246x9[_0xa4d4[235]]);_0x7246x2[_0xa4d4[236]]=Math[_0xa4d4[488]](_0x7246x2[_0xa4d4[236]]/_0x7246x4-_0x7246x5[_0xa4d4[236]]-_0x7246x9[_0xa4d4[236]]);};mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3030]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1721]](this[_0xa4d4[724]][_0xa4d4[246]])[_0xa4d4[1525]],_0x7246x4=null!=_0x7246x4?_0x7246x4[0]:null,_0x7246x4=null==_0x7246x4? new mxPoint(_0x7246x2[_0xa4d4[235]]+(_0x7246x3[_0xa4d4[235]]-_0x7246x2[_0xa4d4[235]])/2,_0x7246x2[_0xa4d4[236]]+(_0x7246x3[_0xa4d4[236]]-_0x7246x2[_0xa4d4[236]])/2): new mxPoint(this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]]*(_0x7246x4[_0xa4d4[235]]+this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[513]][_0xa4d4[235]]+this[_0xa4d4[724]][_0xa4d4[2078]][_0xa4d4[235]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]]*(_0x7246x4[_0xa4d4[236]]+this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[513]][_0xa4d4[236]]+this[_0xa4d4[724]][_0xa4d4[2078]][_0xa4d4[236]])),_0x7246x5=this[_0xa4d4[2994]][1][_0xa4d4[1562]],_0x7246x9=_0x7246x5[_0xa4d4[117]],_0x7246x5=_0x7246x5[_0xa4d4[119]];null==this[_0xa4d4[2959]]&&(_0x7246x5=_0x7246x9=mxConstants[_0xa4d4[2974]]);var _0x7246xa= new mxRectangle(Math[_0xa4d4[488]](_0x7246x4[_0xa4d4[235]]-_0x7246x9/2),Math[_0xa4d4[488]](_0x7246x4[_0xa4d4[236]]-_0x7246x5/2),_0x7246x9,_0x7246x5);null==this[_0xa4d4[2959]]&&(_0xa4d4[188]!=this[_0xa4d4[2972]][_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[187]]&&mxUtils[_0xa4d4[1825]](_0x7246xa,this[_0xa4d4[2972]][_0xa4d4[1562]]))&&(_0x7246x9+=3,_0x7246x5+=3,_0x7246xa= new mxRectangle(Math[_0xa4d4[488]](_0x7246x4[_0xa4d4[235]]-_0x7246x9/2),Math[_0xa4d4[488]](_0x7246x4[_0xa4d4[236]]-_0x7246x5/2),_0x7246x9,_0x7246x5));this[_0xa4d4[2994]][1][_0xa4d4[1562]]=_0x7246xa;this[_0xa4d4[2994]][1][_0xa4d4[258]]();};function mxEdgeSegmentHandler(_0x7246x2){mxEdgeHandler[_0xa4d4[239]](this,_0x7246x2)}mxUtils[_0xa4d4[1284]](mxEdgeSegmentHandler,mxEdgeHandler);mxEdgeSegmentHandler[_0xa4d4[202]]= new mxElbowEdgeHandler;mxEdgeSegmentHandler[_0xa4d4[202]][_0xa4d4[196]]=mxEdgeSegmentHandler;mxEdgeSegmentHandler[_0xa4d4[202]][_0xa4d4[3018]]=function(_0x7246x2){if(this[_0xa4d4[729]]||this[_0xa4d4[3013]]){return mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3018]][_0xa4d4[183]](this,arguments)};this[_0xa4d4[2196]](_0x7246x2,!1);var _0x7246x3=this[_0xa4d4[724]][_0xa4d4[439]],_0x7246x4=_0x7246x3[0][_0xa4d4[238]]();this[_0xa4d4[2196]](_0x7246x4,!1);for(var _0x7246x5=[],_0x7246x9=1;_0x7246x9<_0x7246x3[_0xa4d4[67]];_0x7246x9++){var _0x7246xa=_0x7246x3[_0x7246x9][_0xa4d4[238]]();this[_0xa4d4[2196]](_0x7246xa,!1);_0x7246x9==this[_0xa4d4[1983]]&&(_0x7246x4[_0xa4d4[235]]==_0x7246xa[_0xa4d4[235]]?(_0x7246x4[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]],_0x7246xa[_0xa4d4[235]]=_0x7246x2[_0xa4d4[235]]):(_0x7246x4[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]],_0x7246xa[_0xa4d4[236]]=_0x7246x2[_0xa4d4[236]]));_0x7246x9<_0x7246x3[_0xa4d4[67]]-1&&_0x7246x5[_0xa4d4[207]](_0x7246xa);_0x7246x4=_0x7246xa;};if(1==_0x7246x5[_0xa4d4[67]]){if(_0x7246x4=this[_0xa4d4[724]][_0xa4d4[441]],_0x7246x9=this[_0xa4d4[724]][_0xa4d4[2089]](!0),_0x7246xa=this[_0xa4d4[724]][_0xa4d4[2089]](!1),null!=_0x7246xa&null!=_0x7246x9){var _0x7246x12=this[_0xa4d4[724]][_0xa4d4[2078]][_0xa4d4[235]],_0x7246x13=this[_0xa4d4[724]][_0xa4d4[2078]][_0xa4d4[236]];mxUtils[_0xa4d4[442]](_0x7246xa,_0x7246x5[0][_0xa4d4[235]]+_0x7246x12,_0x7246x5[0][_0xa4d4[236]]+_0x7246x13)?_0x7246x3[1][_0xa4d4[236]]==_0x7246x3[2][_0xa4d4[236]]?_0x7246x5[0][_0xa4d4[236]]=_0x7246x4[_0xa4d4[2228]](_0x7246x9)-_0x7246x13:_0x7246x5[0][_0xa4d4[235]]=_0x7246x4[_0xa4d4[2230]](_0x7246x9)-_0x7246x12:mxUtils[_0xa4d4[442]](_0x7246x9,_0x7246x5[0][_0xa4d4[235]]+_0x7246x12,_0x7246x5[0][_0xa4d4[236]]+_0x7246x13)&&(_0x7246x3[1][_0xa4d4[236]]==_0x7246x3[0][_0xa4d4[236]]?_0x7246x5[0][_0xa4d4[236]]=_0x7246x4[_0xa4d4[2228]](_0x7246xa)-_0x7246x13:_0x7246x5[0][_0xa4d4[235]]=_0x7246x4[_0xa4d4[2230]](_0x7246xa)-_0x7246x12);}}else {0==_0x7246x5[_0xa4d4[67]]&&(_0x7246x5=[_0x7246x2])};return _0x7246x5;};mxEdgeSegmentHandler[_0xa4d4[202]][_0xa4d4[3001]]=function(){var _0x7246x2=[],_0x7246x3=this[_0xa4d4[3009]](0);this[_0xa4d4[3002]](_0x7246x3);_0x7246x3[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[3011]];mxEvent[_0xa4d4[2733]](_0x7246x3[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);_0x7246x2[_0xa4d4[207]](_0x7246x3);mxClient[_0xa4d4[754]]&&_0x7246x3[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[130]);var _0x7246x4=this[_0xa4d4[724]][_0xa4d4[439]];if(this[_0xa4d4[1179]][_0xa4d4[2662]](this[_0xa4d4[724]][_0xa4d4[246]])){null==this[_0xa4d4[1525]]&&(this[_0xa4d4[1525]]=[]);for(var _0x7246x5=0;_0x7246x5<_0x7246x4[_0xa4d4[67]]-1;_0x7246x5++){_0x7246x3=this[_0xa4d4[3034]](),_0x7246x2[_0xa4d4[207]](_0x7246x3),_0x7246x3[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=0==_0x7246x4[_0x7246x5][_0xa4d4[235]]-_0x7246x4[_0x7246x5+1][_0xa4d4[235]]?_0xa4d4[3039]:_0xa4d4[3038],this[_0xa4d4[1525]][_0xa4d4[207]]( new mxPoint(0,0)),mxClient[_0xa4d4[754]]&&_0x7246x3[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[130])};};_0x7246x3=this[_0xa4d4[3009]](_0x7246x4[_0xa4d4[67]]);this[_0xa4d4[3002]](_0x7246x3);_0x7246x3[_0xa4d4[252]][_0xa4d4[124]][_0xa4d4[270]]=mxConstants[_0xa4d4[3011]];mxEvent[_0xa4d4[2733]](_0x7246x3[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);_0x7246x2[_0xa4d4[207]](_0x7246x3);mxClient[_0xa4d4[754]]&&_0x7246x3[_0xa4d4[252]][_0xa4d4[57]](_0xa4d4[1377],_0xa4d4[130]);return _0x7246x2;};mxEdgeSegmentHandler[_0xa4d4[202]][_0xa4d4[258]]=function(){this[_0xa4d4[802]]();mxEdgeHandler[_0xa4d4[202]][_0xa4d4[258]][_0xa4d4[183]](this,arguments);};mxEdgeSegmentHandler[_0xa4d4[202]][_0xa4d4[802]]=function(){if(null!=this[_0xa4d4[2994]]){for(var _0x7246x2=0;_0x7246x2<this[_0xa4d4[2994]][_0xa4d4[67]];_0x7246x2++){null!=this[_0xa4d4[2994]][_0x7246x2]&&(this[_0xa4d4[2994]][_0x7246x2][_0xa4d4[515]](),this[_0xa4d4[2994]][_0x7246x2]=null)};this[_0xa4d4[2994]]=this[_0xa4d4[3001]]();}};mxEdgeSegmentHandler[_0xa4d4[202]][_0xa4d4[3030]]=function(_0x7246x2,_0x7246x3){if(this[_0xa4d4[1179]][_0xa4d4[2662]](this[_0xa4d4[724]][_0xa4d4[246]])){var _0x7246x4=mxConstants[_0xa4d4[2974]],_0x7246x5=this[_0xa4d4[724]][_0xa4d4[439]];if(null!=_0x7246x5&&1<_0x7246x5[_0xa4d4[67]]){for(var _0x7246x9=0;_0x7246x9<this[_0xa4d4[724]][_0xa4d4[439]][_0xa4d4[67]]-1;_0x7246x9++){if(null!=this[_0xa4d4[2994]][_0x7246x9+1]){_0x7246x2=_0x7246x5[_0x7246x9];_0x7246x3=_0x7246x5[_0x7246x9+1];var _0x7246xa= new mxPoint(_0x7246x2[_0xa4d4[235]]+(_0x7246x3[_0xa4d4[235]]-_0x7246x2[_0xa4d4[235]])/2,_0x7246x2[_0xa4d4[236]]+(_0x7246x3[_0xa4d4[236]]-_0x7246x2[_0xa4d4[236]])/2);this[_0xa4d4[2994]][_0x7246x9+1][_0xa4d4[1562]]= new mxRectangle(Math[_0xa4d4[488]](_0x7246xa[_0xa4d4[235]]-_0x7246x4/2),Math[_0xa4d4[488]](_0x7246xa[_0xa4d4[236]]-_0x7246x4/2),_0x7246x4,_0x7246x4);this[_0xa4d4[2994]][_0x7246x9+1][_0xa4d4[258]]();}}};}};mxEdgeSegmentHandler[_0xa4d4[202]][_0xa4d4[3023]]=function(_0x7246x2,_0x7246x3){_0x7246x3=[];var _0x7246x4=this[_0xa4d4[2997]];if(1<_0x7246x4[_0xa4d4[67]]){for(var _0x7246x5=_0x7246x4[0],_0x7246x9=_0x7246x4[1],_0x7246xa=2;_0x7246xa<_0x7246x4[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x4[_0x7246xa];if((Math[_0xa4d4[488]](_0x7246x5[_0xa4d4[235]])!=Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[235]])||Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[235]])!=Math[_0xa4d4[488]](_0x7246x12[_0xa4d4[235]]))&&(Math[_0xa4d4[488]](_0x7246x5[_0xa4d4[236]])!=Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[236]])||Math[_0xa4d4[488]](_0x7246x9[_0xa4d4[236]])!=Math[_0xa4d4[488]](_0x7246x12[_0xa4d4[236]]))){_0x7246x5=_0x7246x9,_0x7246x9=_0x7246x9[_0xa4d4[238]](),this[_0xa4d4[2196]](_0x7246x9,!1),_0x7246x3[_0xa4d4[207]](_0x7246x9)};_0x7246x9=_0x7246x12;}};mxElbowEdgeHandler[_0xa4d4[202]][_0xa4d4[3023]][_0xa4d4[183]](this,arguments);};function mxKeyHandler(_0x7246x2,_0x7246x3){null!=_0x7246x2&&(this[_0xa4d4[1179]]=_0x7246x2,this[_0xa4d4[772]]=_0x7246x3||document[_0xa4d4[158]],this[_0xa4d4[3040]]=[],this[_0xa4d4[3041]]=[],this[_0xa4d4[3042]]=[],this[_0xa4d4[3043]]=[],mxEvent[_0xa4d4[169]](this[_0xa4d4[772]],_0xa4d4[2123],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[3044]](_0x7246x2)})),mxClient[_0xa4d4[80]]&&mxEvent[_0xa4d4[169]](window,_0xa4d4[2428],mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[515]]()})))}mxKeyHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxKeyHandler[_0xa4d4[202]][_0xa4d4[772]]=null;mxKeyHandler[_0xa4d4[202]][_0xa4d4[3040]]=null;mxKeyHandler[_0xa4d4[202]][_0xa4d4[3041]]=null;mxKeyHandler[_0xa4d4[202]][_0xa4d4[3042]]=null;mxKeyHandler[_0xa4d4[202]][_0xa4d4[3043]]=null;mxKeyHandler[_0xa4d4[202]][_0xa4d4[984]]= !0;mxKeyHandler[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxKeyHandler[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxKeyHandler[_0xa4d4[202]][_0xa4d4[3045]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[3040]][_0x7246x2]=_0x7246x3};mxKeyHandler[_0xa4d4[202]][_0xa4d4[3046]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[3041]][_0x7246x2]=_0x7246x3};mxKeyHandler[_0xa4d4[202]][_0xa4d4[3047]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[3042]][_0x7246x2]=_0x7246x3};mxKeyHandler[_0xa4d4[202]][_0xa4d4[3048]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[3043]][_0x7246x2]=_0x7246x3};mxKeyHandler[_0xa4d4[202]][_0xa4d4[775]]=function(_0x7246x2){return mxEvent[_0xa4d4[775]](_0x7246x2)};mxKeyHandler[_0xa4d4[202]][_0xa4d4[3049]]=function(_0x7246x2){return null!=_0x7246x2?this[_0xa4d4[775]](_0x7246x2)?mxEvent[_0xa4d4[774]](_0x7246x2)?this[_0xa4d4[3043]][_0x7246x2[_0xa4d4[2124]]]:this[_0xa4d4[3042]][_0x7246x2[_0xa4d4[2124]]]:mxEvent[_0xa4d4[774]](_0x7246x2)?this[_0xa4d4[3041]][_0x7246x2[_0xa4d4[2124]]]:this[_0xa4d4[3040]][_0x7246x2[_0xa4d4[2124]]]:null};mxKeyHandler[_0xa4d4[202]][_0xa4d4[3050]]=function(_0x7246x2){_0x7246x2=mxEvent[_0xa4d4[728]](_0x7246x2);if(_0x7246x2==this[_0xa4d4[772]]||_0x7246x2[_0xa4d4[265]]==this[_0xa4d4[772]]||null!=this[_0xa4d4[1179]][_0xa4d4[2347]]&&_0x7246x2==this[_0xa4d4[1179]][_0xa4d4[2347]][_0xa4d4[126]]){return !0};for(;null!=_0x7246x2;){if(_0x7246x2==this[_0xa4d4[1179]][_0xa4d4[526]]){return !0};_0x7246x2=_0x7246x2[_0xa4d4[265]];};return !1;};mxKeyHandler[_0xa4d4[202]][_0xa4d4[3044]]=function(_0x7246x2){if(this[_0xa4d4[1179]][_0xa4d4[994]]()&&!mxEvent[_0xa4d4[721]](_0x7246x2)&&this[_0xa4d4[3050]](_0x7246x2)&&this[_0xa4d4[994]]()){if(27==_0x7246x2[_0xa4d4[2124]]){this[_0xa4d4[859]](_0x7246x2)}else {if(!this[_0xa4d4[1179]][_0xa4d4[2203]]()){var _0x7246x3=this[_0xa4d4[3049]](_0x7246x2);null!=_0x7246x3&&(_0x7246x3(_0x7246x2),mxEvent[_0xa4d4[722]](_0x7246x2));}}}};mxKeyHandler[_0xa4d4[202]][_0xa4d4[859]]=function(_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[2608]]()&&this[_0xa4d4[1179]][_0xa4d4[859]](_0x7246x2)};mxKeyHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[772]]=null};function mxTooltipHandler(_0x7246x2,_0x7246x3){null!=_0x7246x2&&(this[_0xa4d4[1179]]=_0x7246x2,this[_0xa4d4[1140]]=_0x7246x3||500,this[_0xa4d4[1179]][_0xa4d4[1133]](this))}mxTooltipHandler[_0xa4d4[202]][_0xa4d4[931]]=10005;mxTooltipHandler[_0xa4d4[202]][_0xa4d4[1179]]=null;mxTooltipHandler[_0xa4d4[202]][_0xa4d4[1140]]=null;mxTooltipHandler[_0xa4d4[202]][_0xa4d4[3051]]= !1;mxTooltipHandler[_0xa4d4[202]][_0xa4d4[984]]= !0;mxTooltipHandler[_0xa4d4[202]][_0xa4d4[994]]=function(){return this[_0xa4d4[984]]};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[995]]=function(_0x7246x2){this[_0xa4d4[984]]=_0x7246x2};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[2277]]=function(){return this[_0xa4d4[3051]]};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[3052]]=function(_0x7246x2){this[_0xa4d4[3051]]=_0x7246x2};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[176]]=function(){null!=document[_0xa4d4[112]]&&(this[_0xa4d4[485]]=document[_0xa4d4[55]](_0xa4d4[485]),this[_0xa4d4[485]][_0xa4d4[926]]=_0xa4d4[3053],this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188],this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[931]]=this[_0xa4d4[931]],document[_0xa4d4[112]][_0xa4d4[62]](this[_0xa4d4[485]]),mxEvent[_0xa4d4[169]](this[_0xa4d4[485]],_0xa4d4[751],mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[3054]]()})))};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[862]](_0x7246x3,!1);this[_0xa4d4[3054]]();};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){if(_0x7246x3[_0xa4d4[730]]()!=this[_0xa4d4[1217]]||_0x7246x3[_0xa4d4[732]]()!=this[_0xa4d4[1218]]){this[_0xa4d4[862]](_0x7246x3,!0),(this[_0xa4d4[2277]]()||_0x7246x3[_0xa4d4[248]]()!=this[_0xa4d4[724]]||_0x7246x3[_0xa4d4[728]]()!=this[_0xa4d4[252]]&&(!this[_0xa4d4[3055]]||null!=_0x7246x3[_0xa4d4[248]]()&&this[_0xa4d4[3055]]==(_0x7246x3[_0xa4d4[729]](_0x7246x3[_0xa4d4[248]]()[_0xa4d4[253]])||!_0x7246x3[_0xa4d4[729]](_0x7246x3[_0xa4d4[248]]()[_0xa4d4[963]]))))&&this[_0xa4d4[3054]]()};this[_0xa4d4[1217]]=_0x7246x3[_0xa4d4[730]]();this[_0xa4d4[1218]]=_0x7246x3[_0xa4d4[732]]();};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[862]](_0x7246x3,!0);this[_0xa4d4[3054]]();};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[3056]]=function(){null!=this[_0xa4d4[1123]]&&(window[_0xa4d4[2924]](this[_0xa4d4[1123]]),this[_0xa4d4[1123]]=null)};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[862]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[3056]]();if(_0x7246x3&&this[_0xa4d4[994]]()&&null!=_0x7246x2[_0xa4d4[248]]()&&(null==this[_0xa4d4[485]]||_0xa4d4[188]==this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[187]])){var _0x7246x4=_0x7246x2[_0xa4d4[248]](),_0x7246x5=_0x7246x2[_0xa4d4[728]](),_0x7246x9=_0x7246x2[_0xa4d4[730]](),_0x7246xa=_0x7246x2[_0xa4d4[732]](),_0x7246x12=_0x7246x2[_0xa4d4[729]](_0x7246x4[_0xa4d4[253]])||_0x7246x2[_0xa4d4[729]](_0x7246x4[_0xa4d4[963]]);this[_0xa4d4[1123]]=window[_0xa4d4[261]](mxUtils[_0xa4d4[885]](this,function(){if(!this[_0xa4d4[1179]][_0xa4d4[2203]]()&&!this[_0xa4d4[1179]][_0xa4d4[2316]][_0xa4d4[1031]]()){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[2595]](_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa);this[_0xa4d4[539]](_0x7246x2,_0x7246x9,_0x7246xa);this[_0xa4d4[724]]=_0x7246x4;this[_0xa4d4[252]]=_0x7246x5;this[_0xa4d4[3055]]=_0x7246x12;}}),this[_0xa4d4[1140]]);};};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[801]]=function(){this[_0xa4d4[3056]]();this[_0xa4d4[3054]]();};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[3054]]=function(){null!=this[_0xa4d4[485]]&&(this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[188])};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[539]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){null==this[_0xa4d4[485]]&&this[_0xa4d4[176]]();var _0x7246x5=mxUtils[_0xa4d4[444]]();this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[361]]=_0x7246x3+_0x7246x5[_0xa4d4[235]]+_0xa4d4[168];this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[125]]=_0x7246x4+mxConstants[_0xa4d4[560]]+_0x7246x5[_0xa4d4[236]]+_0xa4d4[168];mxUtils[_0xa4d4[1331]](_0x7246x2)?(this[_0xa4d4[485]][_0xa4d4[339]]=_0xa4d4[110],this[_0xa4d4[485]][_0xa4d4[62]](_0x7246x2)):this[_0xa4d4[485]][_0xa4d4[339]]=_0x7246x2[_0xa4d4[230]](/\n/g,_0xa4d4[545]);this[_0xa4d4[485]][_0xa4d4[124]][_0xa4d4[187]]=_0xa4d4[110];mxUtils[_0xa4d4[933]](this[_0xa4d4[485]]);}};mxTooltipHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1179]][_0xa4d4[1148]](this);mxEvent[_0xa4d4[762]](this[_0xa4d4[485]]);null!=this[_0xa4d4[485]]&&null!=this[_0xa4d4[485]][_0xa4d4[265]]&&this[_0xa4d4[485]][_0xa4d4[265]][_0xa4d4[266]](this[_0xa4d4[485]]);this[_0xa4d4[485]]=null;};function mxCellTracker(_0x7246x2,_0x7246x3,_0x7246x4){mxCellMarker[_0xa4d4[239]](this,_0x7246x2,_0x7246x3);this[_0xa4d4[1179]][_0xa4d4[1133]](this);null!=_0x7246x4&&(this[_0xa4d4[736]]=_0x7246x4);mxClient[_0xa4d4[80]]&&mxEvent[_0xa4d4[169]](window,_0xa4d4[2428],mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[515]]()}));}mxUtils[_0xa4d4[1284]](mxCellTracker,mxCellMarker);mxCellTracker[_0xa4d4[202]][_0xa4d4[787]]=function(_0x7246x2,_0x7246x3){};mxCellTracker[_0xa4d4[202]][_0xa4d4[788]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[994]]()&&this[_0xa4d4[2871]](_0x7246x3)};mxCellTracker[_0xa4d4[202]][_0xa4d4[789]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[862]]()};mxCellTracker[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[2717]]||(this[_0xa4d4[2717]]= !0,this[_0xa4d4[1179]][_0xa4d4[1148]](this),mxCellMarker[_0xa4d4[202]][_0xa4d4[515]][_0xa4d4[183]](this))};function mxCellHighlight(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){null!=_0x7246x2&&(this[_0xa4d4[1179]]=_0x7246x2,this[_0xa4d4[2943]]=null!=_0x7246x3?_0x7246x3:mxConstants[_0xa4d4[2854]],this[_0xa4d4[610]]=null!=_0x7246x4?_0x7246x4:mxConstants[_0xa4d4[3057]],this[_0xa4d4[648]]=null!=_0x7246x5?_0x7246x5:!1,this[_0xa4d4[3058]]=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[2950]]()}),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.SCALE,this[_0xa4d4[3058]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.TRANSLATE,this[_0xa4d4[3058]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0xa4d4[3058]]),this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.CHANGE,this[_0xa4d4[3058]]),this[_0xa4d4[2877]]=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[801]]()}),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.DOWN,this[_0xa4d4[2877]]),this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.UP,this[_0xa4d4[2877]]))}mxCellHighlight[_0xa4d4[202]][_0xa4d4[3059]]= !1;mxCellHighlight[_0xa4d4[202]][_0xa4d4[1179]]= !0;mxCellHighlight[_0xa4d4[202]][_0xa4d4[724]]=null;mxCellHighlight[_0xa4d4[202]][_0xa4d4[657]]=2;mxCellHighlight[_0xa4d4[202]][_0xa4d4[2877]]=null;mxCellHighlight[_0xa4d4[202]][_0xa4d4[2828]]=function(_0x7246x2){this[_0xa4d4[2943]]=_0x7246x2;null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[1336]]=_0x7246x2);};mxCellHighlight[_0xa4d4[202]][_0xa4d4[3060]]=function(){this[_0xa4d4[253]]=this[_0xa4d4[2156]]();this[_0xa4d4[2950]]();!this[_0xa4d4[3059]]&&this[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[285]]!=this[_0xa4d4[253]][_0xa4d4[252]]&&this[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[950]](this[_0xa4d4[253]][_0xa4d4[252]],this[_0xa4d4[253]][_0xa4d4[252]][_0xa4d4[265]][_0xa4d4[285]]);};mxCellHighlight[_0xa4d4[202]][_0xa4d4[2156]]=function(){var _0x7246x2=null,_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[250]](this[_0xa4d4[724]][_0xa4d4[246]])? new mxPolyline(this[_0xa4d4[724]][_0xa4d4[439]],this[_0xa4d4[2943]],this[_0xa4d4[610]]): new mxRectangleShape( new mxRectangle,null,this[_0xa4d4[2943]],this[_0xa4d4[610]]);_0x7246x2[_0xa4d4[507]]=this[_0xa4d4[1179]][_0xa4d4[507]]!=mxConstants[_0xa4d4[508]]?mxConstants[_0xa4d4[1523]]:mxConstants[_0xa4d4[508]];_0x7246x2[_0xa4d4[176]](this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[1524]]());mxEvent[_0xa4d4[2733]](_0x7246x2[_0xa4d4[252]],this[_0xa4d4[1179]],this[_0xa4d4[724]]);_0x7246x2[_0xa4d4[1564]]=0;_0x7246x2[_0xa4d4[1229]]= !1;_0x7246x2[_0xa4d4[1522]]=this[_0xa4d4[648]];return _0x7246x2;};mxCellHighlight[_0xa4d4[202]][_0xa4d4[2950]]=function(){if(null!=this[_0xa4d4[724]]&&null!=this[_0xa4d4[253]]){var _0x7246x2=0;this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[250]](this[_0xa4d4[724]][_0xa4d4[246]])?this[_0xa4d4[253]][_0xa4d4[1525]]=this[_0xa4d4[724]][_0xa4d4[439]]:(this[_0xa4d4[253]][_0xa4d4[1562]]= new mxRectangle(this[_0xa4d4[724]][_0xa4d4[235]]-this[_0xa4d4[657]],this[_0xa4d4[724]][_0xa4d4[236]]-this[_0xa4d4[657]],this[_0xa4d4[724]][_0xa4d4[117]]+2*this[_0xa4d4[657]],this[_0xa4d4[724]][_0xa4d4[119]]+2*this[_0xa4d4[657]]),_0x7246x2=Number(this[_0xa4d4[724]][_0xa4d4[124]][mxConstants[_0xa4d4[2278]]]||_0xa4d4[468]));null!=this[_0xa4d4[724]][_0xa4d4[253]]&&this[_0xa4d4[253]][_0xa4d4[1609]](this[_0xa4d4[724]][_0xa4d4[253]][_0xa4d4[1610]]());0!=_0x7246x2&&(this[_0xa4d4[253]][_0xa4d4[603]]=_0x7246x2);this[_0xa4d4[253]][_0xa4d4[258]]();}};mxCellHighlight[_0xa4d4[202]][_0xa4d4[801]]=function(){this[_0xa4d4[1016]](null)};mxCellHighlight[_0xa4d4[202]][_0xa4d4[1016]]=function(_0x7246x2){this[_0xa4d4[724]]!=_0x7246x2&&(null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[515]](),this[_0xa4d4[253]]=null),this[_0xa4d4[724]]=_0x7246x2,null!=this[_0xa4d4[724]]&&this[_0xa4d4[3060]]())};mxCellHighlight[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[745]](this[_0xa4d4[3058]]);this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[745]](this[_0xa4d4[3058]]);this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[745]](this[_0xa4d4[2877]]);this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[745]](this[_0xa4d4[2877]]);null!=this[_0xa4d4[253]]&&(this[_0xa4d4[253]][_0xa4d4[515]](),this[_0xa4d4[253]]=null);};function mxDefaultKeyHandler(_0x7246x2){if(null!=_0x7246x2){this[_0xa4d4[3061]]=_0x7246x2;this[_0xa4d4[2458]]= new mxKeyHandler(_0x7246x2[_0xa4d4[1179]]);var _0x7246x3=this[_0xa4d4[2458]][_0xa4d4[859]];this[_0xa4d4[2458]][_0xa4d4[859]]=function(_0x7246x4){_0x7246x3[_0xa4d4[183]](this,arguments);_0x7246x2[_0xa4d4[3062]]();_0x7246x2[_0xa4d4[746]]( new mxEventObject(mxEvent.ESCAPE,_0xa4d4[763],_0x7246x4));};}}mxDefaultKeyHandler[_0xa4d4[202]][_0xa4d4[3061]]=null;mxDefaultKeyHandler[_0xa4d4[202]][_0xa4d4[2458]]=null;mxDefaultKeyHandler[_0xa4d4[202]][_0xa4d4[3063]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[3061]][_0xa4d4[350]](_0x7246x3)});_0x7246x4?this[_0xa4d4[2458]][_0xa4d4[3047]](_0x7246x2,_0x7246x5):this[_0xa4d4[2458]][_0xa4d4[3045]](_0x7246x2,_0x7246x5);};mxDefaultKeyHandler[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[2458]][_0xa4d4[515]]();this[_0xa4d4[2458]]=null;};function mxDefaultPopupMenu(_0x7246x2){this[_0xa4d4[3064]]=_0x7246x2}mxDefaultPopupMenu[_0xa4d4[202]][_0xa4d4[88]]=null;mxDefaultPopupMenu[_0xa4d4[202]][_0xa4d4[3064]]=null;mxDefaultPopupMenu[_0xa4d4[202]][_0xa4d4[3065]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){if(null!=this[_0xa4d4[3064]]){var _0x7246x9=this[_0xa4d4[3066]](_0x7246x2,_0x7246x4,_0x7246x5);this[_0xa4d4[3067]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,this[_0xa4d4[3064]][_0xa4d4[285]],null);}};mxDefaultPopupMenu[_0xa4d4[202]][_0xa4d4[3067]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12){for(var _0x7246x13=!1;null!=_0x7246xa;){if(_0xa4d4[99]==_0x7246xa[_0xa4d4[301]]){var _0x7246x14=_0x7246xa[_0xa4d4[284]](_0xa4d4[3068]);if(null==_0x7246x14||_0x7246x9[_0x7246x14]){var _0x7246x14=_0x7246xa[_0xa4d4[284]](_0xa4d4[3069]),_0x7246x14=mxResources[_0xa4d4[203]](_0x7246x14)||_0x7246x14,_0x7246x15=mxUtils[_0xa4d4[1545]](mxUtils[_0xa4d4[329]](_0x7246xa)),_0x7246x16=_0x7246xa[_0xa4d4[284]](_0xa4d4[892]),_0x7246x17=_0x7246xa[_0xa4d4[284]](_0xa4d4[2916]),_0x7246x18=_0x7246xa[_0xa4d4[284]](_0xa4d4[3070]);_0x7246x13&&(_0x7246x3[_0xa4d4[1051]](_0x7246x12),_0x7246x13= !1);null!=_0x7246x17&&this[_0xa4d4[88]]&&(_0x7246x17=this[_0xa4d4[88]]+_0x7246x17);_0x7246x14=this[_0xa4d4[3071]](_0x7246x3,_0x7246x2,_0x7246x14,_0x7246x17,_0x7246x15,_0x7246x16,_0x7246x4,_0x7246x12,_0x7246x18);this[_0xa4d4[3067]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa[_0xa4d4[285]],_0x7246x14);};}else {_0xa4d4[3072]==_0x7246xa[_0xa4d4[301]]&&(_0x7246x13= !0)};_0x7246xa=_0x7246xa[_0xa4d4[287]];}};mxDefaultPopupMenu[_0xa4d4[202]][_0xa4d4[3071]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa,_0x7246x12,_0x7246x13,_0x7246x14){return _0x7246x2[_0xa4d4[1025]](_0x7246x4,_0x7246x5,function(_0x7246x2){_0xa4d4[279]== typeof _0x7246x9&&_0x7246x9[_0xa4d4[239]](_0x7246x3,_0x7246x3,_0x7246x12,_0x7246x2);null!=_0x7246xa&&_0x7246x3[_0xa4d4[350]](_0x7246xa,_0x7246x12,_0x7246x2);},_0x7246x13,_0x7246x14)};mxDefaultPopupMenu[_0xa4d4[202]][_0xa4d4[3066]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x2[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x9=_0x7246x5[_0xa4d4[262]](_0x7246x3),_0x7246xa=[];_0x7246xa[_0xa4d4[3073]]=null==_0x7246x3;_0x7246xa[_0xa4d4[3074]]=1<_0x7246x2[_0xa4d4[1179]][_0xa4d4[2694]]();_0x7246xa[_0xa4d4[3075]]=_0x7246x5[_0xa4d4[501]]()!=_0x7246x5[_0xa4d4[1197]](_0x7246x2[_0xa4d4[1179]][_0xa4d4[902]]());_0x7246xa[_0xa4d4[246]]=null!=_0x7246x3;_0x7246x5=null!=_0x7246x3&&1==_0x7246x2[_0xa4d4[1179]][_0xa4d4[2694]]();_0x7246xa[_0xa4d4[3076]]=_0x7246x5&&0<_0x7246x9;_0x7246xa[_0xa4d4[3077]]=_0x7246x5&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2516]](_0x7246x3,!1);_0x7246xa[_0xa4d4[3078]]=_0x7246x5&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2516]](_0x7246x3,!0);_0x7246xa[_0xa4d4[3079]]=_0x7246x5&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2553]](_0x7246x3);_0x7246xa[_0xa4d4[3080]]=_0x7246xa[_0xa4d4[3079]]&&0==_0x7246x9;_0x7246xa[_0xa4d4[687]]=_0x7246x5&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x3);_0x7246x9=this[_0xa4d4[3064]][_0xa4d4[64]](_0xa4d4[3081]);for(_0x7246x5=0;_0x7246x5<_0x7246x9[_0xa4d4[67]];_0x7246x5++){var _0x7246x12=mxUtils[_0xa4d4[1545]](mxUtils[_0xa4d4[329]](_0x7246x9[_0x7246x5])),_0x7246x13=_0x7246x9[_0x7246x5][_0xa4d4[284]](_0xa4d4[298]);null!=_0x7246x13&&_0xa4d4[279]== typeof _0x7246x12&&(_0x7246xa[_0x7246x13]=_0x7246x12(_0x7246x2,_0x7246x3,_0x7246x4));};return _0x7246xa;};function mxDefaultToolbar(_0x7246x2,_0x7246x3){this[_0xa4d4[3061]]=_0x7246x3;null!=_0x7246x2&&null!=_0x7246x3&&this[_0xa4d4[176]](_0x7246x2);}mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[3061]]=null;mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[3082]]=null;mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[2877]]=null;mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[657]]=4;mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[2804]]= !1;mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[176]]=function(_0x7246x2){null!=_0x7246x2&&(this[_0xa4d4[3082]]= new mxToolbar(_0x7246x2),this[_0xa4d4[3082]][_0xa4d4[169]](mxEvent.SELECT,mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x4){var _0x7246x5=_0x7246x4[_0xa4d4[720]](_0xa4d4[279]);this[_0xa4d4[3061]][_0xa4d4[3083]]=null!=_0x7246x5?mxUtils[_0xa4d4[885]](this,function(){_0x7246x5[_0xa4d4[183]](this,arguments);this[_0xa4d4[3082]][_0xa4d4[1050]]();}):null;})),this[_0xa4d4[2877]]=mxUtils[_0xa4d4[885]](this,function(){null!=this[_0xa4d4[3082]]&&this[_0xa4d4[3082]][_0xa4d4[1050]](!0)}),this[_0xa4d4[3061]][_0xa4d4[1179]][_0xa4d4[169]](mxEvent.DOUBLE_CLICK,this[_0xa4d4[2877]]),this[_0xa4d4[3061]][_0xa4d4[169]](mxEvent.ESCAPE,this[_0xa4d4[2877]]))};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[1025]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=mxUtils[_0xa4d4[885]](this,function(){null!=_0x7246x4&&0<_0x7246x4[_0xa4d4[67]]&&this[_0xa4d4[3061]][_0xa4d4[350]](_0x7246x4)});return this[_0xa4d4[3082]][_0xa4d4[1025]](_0x7246x2,_0x7246x3,_0x7246x9,_0x7246x5);};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[1051]]=function(_0x7246x2){_0x7246x2=_0x7246x2||mxClient[_0xa4d4[88]]+_0xa4d4[3084];this[_0xa4d4[3082]][_0xa4d4[1051]](_0x7246x2);};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[970]]=function(){return this[_0xa4d4[3082]][_0xa4d4[970]]()};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[1038]]=function(_0x7246x2){return this[_0xa4d4[3082]][_0xa4d4[1038]](_0x7246x2)};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[3085]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[3061]][_0xa4d4[350]](_0x7246x4)});this[_0xa4d4[972]](_0x7246x2,_0x7246x3,_0x7246x5);};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[972]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return this[_0xa4d4[3082]][_0xa4d4[972]](_0x7246x2,_0x7246x3,_0x7246x4)};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[1048]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){var _0x7246xa=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[3061]][_0xa4d4[3086]](_0x7246x4);null!=_0x7246x9&&_0x7246x9(this[_0xa4d4[3061]]);});return this[_0xa4d4[3082]][_0xa4d4[1042]](_0x7246x2,_0x7246x3,_0x7246xa,_0x7246x5);};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[3087]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9,_0x7246xa){var _0x7246x12=function(){return _0xa4d4[279]== typeof _0x7246x4?_0x7246x4():null!=_0x7246x4?_0x7246x4[_0xa4d4[238]]():null},_0x7246x13=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){_0xa4d4[279]== typeof _0x7246x9?_0x7246x9(this[_0xa4d4[3061]],_0x7246x12(),_0x7246x2,_0x7246x3):this[_0xa4d4[1008]](_0x7246x12(),_0x7246x2,_0x7246x3);this[_0xa4d4[3082]][_0xa4d4[1050]]();mxEvent[_0xa4d4[722]](_0x7246x2);});_0x7246x2=this[_0xa4d4[3082]][_0xa4d4[1048]](_0x7246x2,_0x7246x3,_0x7246x13,_0x7246x5,null,_0x7246xa);this[_0xa4d4[3088]](_0x7246x2,function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x13(_0x7246x3,_0x7246x4)});return _0x7246x2;};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[1008]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[3061]][_0xa4d4[1179]],_0x7246x9=_0x7246x5[_0xa4d4[502]]();if(null==_0x7246x4||_0x7246x9[_0xa4d4[250]](_0x7246x4)||!this[_0xa4d4[2804]]||!_0x7246x5[_0xa4d4[2565]](_0x7246x4)){for(;null!=_0x7246x4&&!_0x7246x5[_0xa4d4[2685]](_0x7246x4,[_0x7246x2],_0x7246x3);){_0x7246x4=_0x7246x9[_0xa4d4[1197]](_0x7246x4)};this[_0xa4d4[1937]](_0x7246x2,_0x7246x3,_0x7246x4);}else {this[_0xa4d4[807]](_0x7246x2,_0x7246x3,_0x7246x4)};};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[1937]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[3061]][_0xa4d4[1179]];if(_0x7246x5[_0xa4d4[2621]](_0x7246x2)){var _0x7246x9=mxEvent[_0xa4d4[731]](_0x7246x3),_0x7246xa=mxEvent[_0xa4d4[733]](_0x7246x3),_0x7246x9=mxUtils[_0xa4d4[2196]](_0x7246x5[_0xa4d4[526]],_0x7246x9,_0x7246xa);return _0x7246x5[_0xa4d4[2655]]()&&_0x7246x5[_0xa4d4[2686]](_0x7246x4,[_0x7246x2],_0x7246x3)?_0x7246x5[_0xa4d4[853]](_0x7246x4,[_0x7246x2],null,_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]]):this[_0xa4d4[3061]][_0xa4d4[817]](_0x7246x4,_0x7246x2,_0x7246x9[_0xa4d4[235]],_0x7246x9[_0xa4d4[236]]);};return null;};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[807]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=this[_0xa4d4[3061]][_0xa4d4[1179]];var _0x7246x5=_0x7246x3[_0xa4d4[502]]();if(null!=_0x7246x4&&_0x7246x3[_0xa4d4[2565]](_0x7246x2)&&_0x7246x3[_0xa4d4[2581]](null,_0x7246x4,_0x7246x2)){var _0x7246x9=null;_0x7246x5[_0xa4d4[473]]();try{var _0x7246xa=_0x7246x5[_0xa4d4[1721]](_0x7246x4),_0x7246x12=_0x7246x5[_0xa4d4[1721]](_0x7246x2)[_0xa4d4[238]]();_0x7246x12[_0xa4d4[235]]=_0x7246xa[_0xa4d4[235]]+(_0x7246xa[_0xa4d4[117]]-_0x7246x12[_0xa4d4[117]])/2;_0x7246x12[_0xa4d4[236]]=_0x7246xa[_0xa4d4[236]]+(_0x7246xa[_0xa4d4[119]]-_0x7246x12[_0xa4d4[119]])/2;var _0x7246x13=this[_0xa4d4[657]]*_0x7246x3[_0xa4d4[1020]],_0x7246x14=20*_0x7246x5[_0xa4d4[1962]](_0x7246x4,!0);this[_0xa4d4[3061]][_0xa4d4[3089]]?_0x7246x12[_0xa4d4[235]]+=(_0x7246x12[_0xa4d4[117]]+_0x7246xa[_0xa4d4[117]])/2+_0x7246x13+_0x7246x14:_0x7246x12[_0xa4d4[236]]+=(_0x7246x12[_0xa4d4[119]]+_0x7246xa[_0xa4d4[119]])/2+_0x7246x13+_0x7246x14;_0x7246x2[_0xa4d4[1724]](_0x7246x12);var _0x7246x15=_0x7246x5[_0xa4d4[1197]](_0x7246x4);_0x7246x3[_0xa4d4[2103]](_0x7246x2,_0x7246x15);_0x7246x3[_0xa4d4[2509]](_0x7246x2);_0x7246x9=this[_0xa4d4[3061]][_0xa4d4[2503]](_0x7246x4,_0x7246x2);if(null==_0x7246x5[_0xa4d4[1721]](_0x7246x9)){var _0x7246x16= new mxGeometry;_0x7246x16[_0xa4d4[1500]]= !0;_0x7246x5[_0xa4d4[1724]](_0x7246x9,_0x7246x16);};_0x7246x3[_0xa4d4[2504]](_0x7246x9,_0x7246x15,_0x7246x4,_0x7246x2);}finally{_0x7246x5[_0xa4d4[476]]()};_0x7246x3[_0xa4d4[904]]([_0x7246x2,_0x7246x9]);_0x7246x3[_0xa4d4[2564]](_0x7246x2);};};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[3088]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=document[_0xa4d4[55]](_0xa4d4[466]);_0x7246x4[_0xa4d4[57]](_0xa4d4[390],_0x7246x2[_0xa4d4[284]](_0xa4d4[390]));var _0x7246x5=mxUtils[_0xa4d4[885]](this,function(_0x7246x9){_0x7246x4[_0xa4d4[124]][_0xa4d4[117]]=2*_0x7246x2[_0xa4d4[359]]+_0xa4d4[168];_0x7246x4[_0xa4d4[124]][_0xa4d4[119]]=2*_0x7246x2[_0xa4d4[167]]+_0xa4d4[168];mxUtils[_0xa4d4[3090]](_0x7246x2,this[_0xa4d4[3061]][_0xa4d4[1179]],_0x7246x3,_0x7246x4);mxEvent[_0xa4d4[745]](_0x7246x4,_0xa4d4[219],_0x7246x5);});mxClient[_0xa4d4[80]]?_0x7246x5():mxEvent[_0xa4d4[169]](_0x7246x4,_0xa4d4[219],_0x7246x5);};mxDefaultToolbar[_0xa4d4[202]][_0xa4d4[515]]=function(){null!=this[_0xa4d4[2877]]&&(this[_0xa4d4[3061]][_0xa4d4[1179]][_0xa4d4[745]](_0xa4d4[760],this[_0xa4d4[2877]]),this[_0xa4d4[3061]][_0xa4d4[745]](_0xa4d4[859],this[_0xa4d4[2877]]),this[_0xa4d4[2877]]=null);null!=this[_0xa4d4[3082]]&&(this[_0xa4d4[3082]][_0xa4d4[515]](),this[_0xa4d4[3082]]=null);};function mxEditor(_0x7246x2){this[_0xa4d4[3091]]=[];this[_0xa4d4[3092]]();if(null!=document[_0xa4d4[112]]){this[_0xa4d4[3093]]=[];this[_0xa4d4[3094]]= new mxDefaultPopupMenu;this[_0xa4d4[3095]]= new mxUndoManager;this[_0xa4d4[1179]]=this[_0xa4d4[3096]]();this[_0xa4d4[3082]]=this[_0xa4d4[3097]]();this[_0xa4d4[3098]]= new mxDefaultKeyHandler(this);this[_0xa4d4[3099]](_0x7246x2);this[_0xa4d4[1179]][_0xa4d4[2180]]=this[_0xa4d4[3100]];!mxClient[_0xa4d4[3101]]&&null!=this[_0xa4d4[1056]]&&(this[_0xa4d4[812]]=this[_0xa4d4[3102]]());if(null!=this[_0xa4d4[1987]]){this[_0xa4d4[1987]]()};mxClient[_0xa4d4[80]]&&mxEvent[_0xa4d4[169]](window,_0xa4d4[2428],mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[515]]()}));};}mxLoadResources&&mxResources[_0xa4d4[99]](mxClient[_0xa4d4[86]]+_0xa4d4[3103]);mxEditor[_0xa4d4[202]]= new mxEventSource;mxEditor[_0xa4d4[202]][_0xa4d4[196]]=mxEditor;mxEditor[_0xa4d4[202]][_0xa4d4[3104]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[3105]:_0xa4d4[110];mxEditor[_0xa4d4[202]][_0xa4d4[3106]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[3107]:_0xa4d4[110];mxEditor[_0xa4d4[202]][_0xa4d4[3108]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[3109]:_0xa4d4[110];mxEditor[_0xa4d4[202]][_0xa4d4[3110]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[716]:_0xa4d4[110];mxEditor[_0xa4d4[202]][_0xa4d4[3111]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[3112]:_0xa4d4[110];mxEditor[_0xa4d4[202]][_0xa4d4[3113]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[2719]:_0xa4d4[110];mxEditor[_0xa4d4[202]][_0xa4d4[3114]]=_0xa4d4[130]!=mxClient[_0xa4d4[90]]?_0xa4d4[2136]:_0xa4d4[110];mxEditor[_0xa4d4[202]][_0xa4d4[2136]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[1179]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[2720]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3082]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[812]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[879]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3094]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3095]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3098]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3091]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3115]]=_0xa4d4[1061];mxEditor[_0xa4d4[202]][_0xa4d4[3116]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[1157]]= !0;mxEditor[_0xa4d4[202]][_0xa4d4[3083]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3117]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[3118]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[2075]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3119]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3120]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3121]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3122]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[1069]]=_0xa4d4[336];mxEditor[_0xa4d4[202]][_0xa4d4[3123]]=_0xa4d4[338];mxEditor[_0xa4d4[202]][_0xa4d4[1070]]= !0;mxEditor[_0xa4d4[202]][_0xa4d4[3124]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3125]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[1056]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[1058]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[1057]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3089]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[3126]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[3127]]=0;mxEditor[_0xa4d4[202]][_0xa4d4[3128]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[3129]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[3093]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3130]]=0;mxEditor[_0xa4d4[202]][_0xa4d4[3100]]=_0xa4d4[604];mxEditor[_0xa4d4[202]][_0xa4d4[3112]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3131]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3132]]=20;mxEditor[_0xa4d4[202]][_0xa4d4[2719]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3133]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3134]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3135]]=300;mxEditor[_0xa4d4[202]][_0xa4d4[3136]]=260;mxEditor[_0xa4d4[202]][_0xa4d4[3137]]=240;mxEditor[_0xa4d4[202]][_0xa4d4[3138]]=null;mxEditor[_0xa4d4[202]][_0xa4d4[3139]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[3140]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[2113]]= !1;mxEditor[_0xa4d4[202]][_0xa4d4[2133]]=function(){return this[_0xa4d4[2113]]};mxEditor[_0xa4d4[202]][_0xa4d4[2128]]=function(_0x7246x2){this[_0xa4d4[2113]]=_0x7246x2};mxEditor[_0xa4d4[202]][_0xa4d4[3092]]=function(){this[_0xa4d4[3071]](_0xa4d4[815],function(_0x7246x2){_0x7246x2[_0xa4d4[815]]()});this[_0xa4d4[3071]](_0xa4d4[540],function(_0x7246x2){( new mxPrintPreview(_0x7246x2[_0xa4d4[1179]],1))[_0xa4d4[392]]()});this[_0xa4d4[3071]](_0xa4d4[539],function(_0x7246x2){mxUtils[_0xa4d4[539]](_0x7246x2[_0xa4d4[1179]],null,10,10)});this[_0xa4d4[3071]](_0xa4d4[3141],function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[3142]]();if(null==_0x7246x3||mxClient[_0xa4d4[3101]]){_0x7246x2[_0xa4d4[350]](_0xa4d4[539])}else {var _0x7246x4=mxUtils[_0xa4d4[3143]](_0x7246x2[_0xa4d4[1179]],1),_0x7246x4=mxUtils[_0xa4d4[875]](_0x7246x4,_0xa4d4[192]);mxUtils[_0xa4d4[894]](_0x7246x3,_0x7246x2[_0xa4d4[3123]]+_0xa4d4[226]+encodeURIComponent(_0x7246x4),document,_0xa4d4[3144]);};});this[_0xa4d4[3071]](_0xa4d4[802],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[802]]()});this[_0xa4d4[3071]](_0xa4d4[3145],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&mxClipboard[_0xa4d4[3145]](_0x7246x2[_0xa4d4[1179]])});this[_0xa4d4[3071]](_0xa4d4[149],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&mxClipboard[_0xa4d4[149]](_0x7246x2[_0xa4d4[1179]])});this[_0xa4d4[3071]](_0xa4d4[3146],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&mxClipboard[_0xa4d4[3146]](_0x7246x2[_0xa4d4[1179]])});this[_0xa4d4[3071]](_0xa4d4[3147],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[842]]()});this[_0xa4d4[3071]](_0xa4d4[1504],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2450]](_0x7246x2[_0xa4d4[844]]())});this[_0xa4d4[3071]](_0xa4d4[3148],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[904]](_0x7246x2[_0xa4d4[1179]][_0xa4d4[845]]())});this[_0xa4d4[3071]](_0xa4d4[1997],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[846]]()});this[_0xa4d4[3071]](_0xa4d4[824],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[824]]()});this[_0xa4d4[3071]](_0xa4d4[825],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[825]]()});this[_0xa4d4[3071]](_0xa4d4[2558],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[2558]]()});this[_0xa4d4[3071]](_0xa4d4[2559],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[2559]]()});this[_0xa4d4[3071]](_0xa4d4[3149],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[2560]]()});this[_0xa4d4[3071]](_0xa4d4[933],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[933]]()});this[_0xa4d4[3071]](_0xa4d4[3150],function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[3150]](_0x7246x3)});this[_0xa4d4[3071]](_0xa4d4[2705],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2705]]()});this[_0xa4d4[3071]](_0xa4d4[3151],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2440]]()});this[_0xa4d4[3071]](_0xa4d4[2706],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2706]]()});this[_0xa4d4[3071]](_0xa4d4[2708],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2708]]()});this[_0xa4d4[3071]](_0xa4d4[1061],function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2453]](_0x7246x3)&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2451]](_0x7246x3)});this[_0xa4d4[3071]](_0xa4d4[3152],function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[840]](!0)});this[_0xa4d4[3071]](_0xa4d4[3153],function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[840]](!1)});this[_0xa4d4[3071]](_0xa4d4[2552],function(_0x7246x2,_0x7246x3){_0x7246x2[_0xa4d4[1179]][_0xa4d4[2552]](_0x7246x3)});this[_0xa4d4[3071]](_0xa4d4[2554],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[2554]]()});this[_0xa4d4[3071]](_0xa4d4[2442],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[2442]]()});this[_0xa4d4[3071]](_0xa4d4[3154],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2702]]()});this[_0xa4d4[3071]](_0xa4d4[3155],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2700]]()});this[_0xa4d4[3071]](_0xa4d4[3156],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2703]]()});this[_0xa4d4[3071]](_0xa4d4[3157],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2704]]()});this[_0xa4d4[3071]](_0xa4d4[2514],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[847]](!0)});this[_0xa4d4[3071]](_0xa4d4[3158],function(_0x7246x2){if(_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()){var _0x7246x3=_0x7246x2[_0xa4d4[1179]][_0xa4d4[1728]]();_0x7246x2[_0xa4d4[1179]][_0xa4d4[847]](!0,!1,_0x7246x3);}});this[_0xa4d4[3071]](_0xa4d4[3159],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[847]](!1)});this[_0xa4d4[3071]](_0xa4d4[3160],function(_0x7246x2){if(_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()){var _0x7246x3=_0x7246x2[_0xa4d4[1179]][_0xa4d4[1728]]();_0x7246x2[_0xa4d4[1179]][_0xa4d4[847]](!1,!1,_0x7246x3);}});this[_0xa4d4[3071]](_0xa4d4[1447],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)});this[_0xa4d4[3071]](_0xa4d4[1449],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)});this[_0xa4d4[3071]](_0xa4d4[355],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)});this[_0xa4d4[3071]](_0xa4d4[639],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)});this[_0xa4d4[3071]](_0xa4d4[3161],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[849]](mxConstants.ALIGN_LEFT)});this[_0xa4d4[3071]](_0xa4d4[3162],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[849]](mxConstants.ALIGN_CENTER)});this[_0xa4d4[3071]](_0xa4d4[3163],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[849]](mxConstants.ALIGN_RIGHT)});this[_0xa4d4[3071]](_0xa4d4[3164],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[849]](mxConstants.ALIGN_TOP)});this[_0xa4d4[3071]](_0xa4d4[3165],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[849]](mxConstants.ALIGN_MIDDLE)});this[_0xa4d4[3071]](_0xa4d4[3166],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[849]](mxConstants.ALIGN_BOTTOM)});this[_0xa4d4[3071]](_0xa4d4[3167],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)});this[_0xa4d4[3071]](_0xa4d4[3168],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)});this[_0xa4d4[3071]](_0xa4d4[3169],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)});this[_0xa4d4[3071]](_0xa4d4[3170],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)});this[_0xa4d4[3071]](_0xa4d4[3171],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)});this[_0xa4d4[3071]](_0xa4d4[3172],function(_0x7246x2){_0x7246x2[_0xa4d4[1179]][_0xa4d4[994]]()&&_0x7246x2[_0xa4d4[1179]][_0xa4d4[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)});this[_0xa4d4[3071]](_0xa4d4[499],function(_0x7246x2){var _0x7246x3=100*_0x7246x2[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x3=parseFloat(mxUtils[_0xa4d4[3173]](mxResources[_0xa4d4[203]](_0x7246x2[_0xa4d4[3104]])||_0x7246x2[_0xa4d4[3104]],_0x7246x3))/100;isNaN(_0x7246x3)||_0x7246x2[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[2262]](_0x7246x3);});this[_0xa4d4[3071]](_0xa4d4[3174],function(_0x7246x2){null!=_0x7246x2[_0xa4d4[3112]]?_0x7246x2[_0xa4d4[3112]][_0xa4d4[175]](!_0x7246x2[_0xa4d4[3112]][_0xa4d4[174]]()):_0x7246x2[_0xa4d4[3175]]()});this[_0xa4d4[3071]](_0xa4d4[3176],function(_0x7246x2){null!=_0x7246x2[_0xa4d4[2719]]?_0x7246x2[_0xa4d4[2719]][_0xa4d4[175]](!_0x7246x2[_0xa4d4[2719]][_0xa4d4[174]]()):_0x7246x2[_0xa4d4[3177]]()});this[_0xa4d4[3071]](_0xa4d4[3178],function(_0x7246x2){null==_0x7246x2[_0xa4d4[2136]]?_0x7246x2[_0xa4d4[3179]]():_0x7246x2[_0xa4d4[2136]][_0xa4d4[175]](!_0x7246x2[_0xa4d4[2136]][_0xa4d4[174]]())});this[_0xa4d4[3071]](_0xa4d4[3180],function(_0x7246x2){mxLog[_0xa4d4[175]](!mxLog[_0xa4d4[174]]())});};mxEditor[_0xa4d4[202]][_0xa4d4[3102]]=function(){var _0x7246x2=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[746]]( new mxEventObject(mxEvent.SESSION,_0xa4d4[812],_0x7246x2))});return this[_0xa4d4[807]](this[_0xa4d4[1056]],this[_0xa4d4[1057]],this[_0xa4d4[1058]],_0x7246x2);};mxEditor[_0xa4d4[202]][_0xa4d4[3099]]=function(_0x7246x2){null!=_0x7246x2&&(( new mxCodec(_0x7246x2[_0xa4d4[295]]))[_0xa4d4[1093]](_0x7246x2,this),this[_0xa4d4[3181]]())};mxEditor[_0xa4d4[202]][_0xa4d4[3182]]=function(){document[_0xa4d4[3183]]=_0xa4d4[3184]};mxEditor[_0xa4d4[202]][_0xa4d4[3181]]=function(){this[_0xa4d4[1184]]=( new Date)[_0xa4d4[178]]();this[_0xa4d4[3095]][_0xa4d4[200]]();this[_0xa4d4[1183]]=0;this[_0xa4d4[2128]](!1);};mxEditor[_0xa4d4[202]][_0xa4d4[3071]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[3091]][_0x7246x2]=_0x7246x3};mxEditor[_0xa4d4[202]][_0xa4d4[350]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[3091]][_0x7246x2];if(null!=_0x7246x5){try{var _0x7246x9=arguments;_0x7246x9[0]=this;_0x7246x5[_0xa4d4[183]](this,_0x7246x9);}catch(f){throw mxUtils[_0xa4d4[267]](_0xa4d4[3185]+_0x7246x2+_0xa4d4[3186]+f[_0xa4d4[281]],280,!0),f}}else {mxUtils[_0xa4d4[267]](_0xa4d4[3187]+_0x7246x2,280,!0)};};mxEditor[_0xa4d4[202]][_0xa4d4[3188]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[3118]][_0x7246x2]=_0x7246x3};mxEditor[_0xa4d4[202]][_0xa4d4[3189]]=function(_0x7246x2){return this[_0xa4d4[3118]][_0x7246x2]};mxEditor[_0xa4d4[202]][_0xa4d4[3096]]=function(){var _0x7246x2= new mxGraph(null,null,this[_0xa4d4[2720]]);_0x7246x2[_0xa4d4[2673]](!0);_0x7246x2[_0xa4d4[2674]](!0);this[_0xa4d4[3190]](_0x7246x2);this[_0xa4d4[3191]](_0x7246x2);this[_0xa4d4[3192]](_0x7246x2);this[_0xa4d4[3193]](_0x7246x2);this[_0xa4d4[3194]](_0x7246x2);_0x7246x2[_0xa4d4[2316]][_0xa4d4[1033]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x4,_0x7246x5){return this[_0xa4d4[3195]](_0x7246x2,_0x7246x4,_0x7246x5)});_0x7246x2[_0xa4d4[2433]][_0xa4d4[1033]]=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x4){return this[_0xa4d4[2503]](_0x7246x2,_0x7246x4)});this[_0xa4d4[3196]](_0x7246x2);this[_0xa4d4[3197]](_0x7246x2);return _0x7246x2;};mxEditor[_0xa4d4[202]][_0xa4d4[3196]]=function(_0x7246x2){_0x7246x2= new mxSwimlaneManager(_0x7246x2,!1);_0x7246x2[_0xa4d4[1737]]=mxUtils[_0xa4d4[885]](this,function(){return this[_0xa4d4[3089]]});_0x7246x2[_0xa4d4[994]]=mxUtils[_0xa4d4[885]](this,function(){return this[_0xa4d4[3128]]});return _0x7246x2;};mxEditor[_0xa4d4[202]][_0xa4d4[3197]]=function(_0x7246x2){var _0x7246x3= new mxLayoutManager(_0x7246x2),_0x7246x4=this;_0x7246x3[_0xa4d4[2754]]=function(_0x7246x3){var _0x7246x9=null,_0x7246xa=_0x7246x4[_0xa4d4[1179]][_0xa4d4[502]]();if(null!=_0x7246xa[_0xa4d4[1197]](_0x7246x3)){if(_0x7246x4[_0xa4d4[3129]]&&_0x7246x2[_0xa4d4[1730]](_0x7246x3)){null==_0x7246x4[_0xa4d4[3198]]&&(_0x7246x4[_0xa4d4[3198]]=_0x7246x4[_0xa4d4[3199]]()),_0x7246x9=_0x7246x4[_0xa4d4[3198]]}else {if(_0x7246x4[_0xa4d4[3126]]&&(_0x7246x2[_0xa4d4[2553]](_0x7246x3)||null==_0x7246xa[_0xa4d4[1197]](_0x7246xa[_0xa4d4[1197]](_0x7246x3)))){null==_0x7246x4[_0xa4d4[3200]]&&(_0x7246x4[_0xa4d4[3200]]=_0x7246x4[_0xa4d4[3201]]()),_0x7246x9=_0x7246x4[_0xa4d4[3200]]}}};return _0x7246x9;};return _0x7246x3;};mxEditor[_0xa4d4[202]][_0xa4d4[3202]]=function(_0x7246x2){null==this[_0xa4d4[1179]][_0xa4d4[526]]&&(this[_0xa4d4[1179]][_0xa4d4[176]](_0x7246x2),this[_0xa4d4[3203]]= new mxRubberband(this[_0xa4d4[1179]]),this[_0xa4d4[1157]]&&mxEvent[_0xa4d4[1157]](_0x7246x2),mxClient[_0xa4d4[496]]&& new mxDivResizer(_0x7246x2))};mxEditor[_0xa4d4[202]][_0xa4d4[3190]]=function(_0x7246x2){_0x7246x2[_0xa4d4[169]](mxEvent.DOUBLE_CLICK,mxUtils[_0xa4d4[885]](this,function(_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x4[_0xa4d4[720]](_0xa4d4[246]);null!=_0x7246x5&&(_0x7246x2[_0xa4d4[994]]()&&null!=this[_0xa4d4[3115]])&&(this[_0xa4d4[350]](this[_0xa4d4[3115]],_0x7246x5),_0x7246x4[_0xa4d4[722]]());}))};mxEditor[_0xa4d4[202]][_0xa4d4[3191]]=function(_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){var _0x7246x9=_0x7246x3[_0xa4d4[720]](_0xa4d4[1061]);this[_0xa4d4[3095]][_0xa4d4[1114]](_0x7246x9);});_0x7246x2[_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.UNDO,_0x7246x3);_0x7246x2[_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.UNDO,_0x7246x3);_0x7246x3=function(_0x7246x3,_0x7246x5){var _0x7246x9=_0x7246x5[_0xa4d4[720]](_0xa4d4[1061])[_0xa4d4[1065]];_0x7246x2[_0xa4d4[904]](_0x7246x2[_0xa4d4[2436]](_0x7246x9));};this[_0xa4d4[3095]][_0xa4d4[169]](mxEvent.UNDO,_0x7246x3);this[_0xa4d4[3095]][_0xa4d4[169]](mxEvent.REDO,_0x7246x3);};mxEditor[_0xa4d4[202]][_0xa4d4[3192]]=function(_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[885]](this,function(_0x7246x2){this[_0xa4d4[746]]( new mxEventObject(mxEvent.ROOT))});_0x7246x2[_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.DOWN,_0x7246x3);_0x7246x2[_0xa4d4[249]]()[_0xa4d4[169]](mxEvent.UP,_0x7246x3);};mxEditor[_0xa4d4[202]][_0xa4d4[3193]]=function(_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[885]](this,function(_0x7246x3,_0x7246x5){this[_0xa4d4[2128]](!0);!0==this[_0xa4d4[3140]]&&_0x7246x2[_0xa4d4[2585]]();for(var _0x7246x9=_0x7246x5[_0xa4d4[720]](_0xa4d4[1061])[_0xa4d4[1065]],_0x7246xa=0;_0x7246xa<_0x7246x9[_0xa4d4[67]];_0x7246xa++){var _0x7246x12=_0x7246x9[_0x7246xa];if(_0x7246x12 instanceof mxRootChange||_0x7246x12 instanceof mxValueChange&&_0x7246x12[_0xa4d4[246]]==this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[813]]||_0x7246x12 instanceof mxCellAttributeChange&&_0x7246x12[_0xa4d4[246]]==this[_0xa4d4[1179]][_0xa4d4[251]][_0xa4d4[813]]){this[_0xa4d4[746]]( new mxEventObject(mxEvent.ROOT));break;};};});_0x7246x2[_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.CHANGE,_0x7246x3);};mxEditor[_0xa4d4[202]][_0xa4d4[3194]]=function(_0x7246x2){var _0x7246x3=this;_0x7246x2[_0xa4d4[1133]]({mouseDown:function(_0x7246x2,_0x7246x5){if(null!=_0x7246x3[_0xa4d4[3083]]&&!_0x7246x5[_0xa4d4[737]]()&&(_0x7246x3[_0xa4d4[3117]]||null==_0x7246x5[_0xa4d4[248]]())){_0x7246x3[_0xa4d4[1179]][_0xa4d4[2440]](),_0x7246x3[_0xa4d4[3083]](_0x7246x5[_0xa4d4[727]](),_0x7246x5[_0xa4d4[736]]()),this[_0xa4d4[1142]]= !0,_0x7246x5[_0xa4d4[722]]()}},mouseMove:function(_0x7246x2,_0x7246x3){this[_0xa4d4[1142]]&&_0x7246x3[_0xa4d4[722]]()},mouseUp:function(_0x7246x2,_0x7246x3){this[_0xa4d4[1142]]&&(this[_0xa4d4[1142]]= !1,_0x7246x3[_0xa4d4[722]]())}});};mxEditor[_0xa4d4[202]][_0xa4d4[3201]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[1020]],_0x7246x3= new mxStackLayout(this[_0xa4d4[1179]],!this[_0xa4d4[3089]],this[_0xa4d4[3127]],2*_0x7246x2,2*_0x7246x2);_0x7246x3[_0xa4d4[1713]]=function(_0x7246x2){return !_0x7246x3[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x2)};return _0x7246x3;};mxEditor[_0xa4d4[202]][_0xa4d4[3199]]=function(){return  new mxCompactTreeLayout(this[_0xa4d4[1179]],this[_0xa4d4[3089]])};mxEditor[_0xa4d4[202]][_0xa4d4[3097]]=function(){return  new mxDefaultToolbar(null,this)};mxEditor[_0xa4d4[202]][_0xa4d4[3204]]=function(_0x7246x2){this[_0xa4d4[3082]][_0xa4d4[176]](_0x7246x2);mxClient[_0xa4d4[496]]&& new mxDivResizer(_0x7246x2);};mxEditor[_0xa4d4[202]][_0xa4d4[3205]]=function(_0x7246x2){null==this[_0xa4d4[879]]&&(this[_0xa4d4[879]]=_0x7246x2,this[_0xa4d4[169]](mxEvent.SAVE,mxUtils[_0xa4d4[885]](this,function(){var _0x7246x2=( new Date)[_0xa4d4[3206]]();this[_0xa4d4[3207]]((mxResources[_0xa4d4[203]](this[_0xa4d4[3106]])||this[_0xa4d4[3106]])+_0xa4d4[3186]+_0x7246x2);})),this[_0xa4d4[169]](mxEvent.OPEN,mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[3207]]((mxResources[_0xa4d4[203]](this[_0xa4d4[3108]])||this[_0xa4d4[3108]])+_0xa4d4[3186]+this[_0xa4d4[3122]])})),mxClient[_0xa4d4[496]]&& new mxDivResizer(_0x7246x2))};mxEditor[_0xa4d4[202]][_0xa4d4[3207]]=function(_0x7246x2){null!=this[_0xa4d4[879]]&&null!=_0x7246x2&&(this[_0xa4d4[879]][_0xa4d4[339]]=_0x7246x2)};mxEditor[_0xa4d4[202]][_0xa4d4[3208]]=function(_0x7246x2){this[_0xa4d4[169]](mxEvent.ROOT,mxUtils[_0xa4d4[885]](this,function(_0x7246x3){_0x7246x2[_0xa4d4[339]]=this[_0xa4d4[3209]]()}));mxClient[_0xa4d4[496]]&& new mxDivResizer(_0x7246x2);};mxEditor[_0xa4d4[202]][_0xa4d4[3210]]=function(_0x7246x2,_0x7246x3){null!=_0x7246x2&&( new mxCompactTreeLayout(this[_0xa4d4[1179]],_0x7246x3))[_0xa4d4[350]](_0x7246x2)};mxEditor[_0xa4d4[202]][_0xa4d4[3209]]=function(){for(var _0x7246x2=_0xa4d4[110],_0x7246x3=this[_0xa4d4[1179]],_0x7246x4=_0x7246x3[_0xa4d4[2534]]();null!=_0x7246x4&&null!=_0x7246x3[_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x3[_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x4));){_0x7246x3[_0xa4d4[2553]](_0x7246x4)&&(_0x7246x2=_0xa4d4[3211]+_0x7246x3[_0xa4d4[2454]](_0x7246x4)+_0x7246x2),_0x7246x4=_0x7246x3[_0xa4d4[502]]()[_0xa4d4[1197]](_0x7246x4)};return this[_0xa4d4[3212]]()+_0x7246x2;};mxEditor[_0xa4d4[202]][_0xa4d4[3212]]=function(){var _0x7246x2=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[501]]();return this[_0xa4d4[1179]][_0xa4d4[2454]](_0x7246x2);};mxEditor[_0xa4d4[202]][_0xa4d4[824]]=function(){this[_0xa4d4[3095]][_0xa4d4[824]]()};mxEditor[_0xa4d4[202]][_0xa4d4[825]]=function(){this[_0xa4d4[3095]][_0xa4d4[825]]()};mxEditor[_0xa4d4[202]][_0xa4d4[844]]=function(){var _0x7246x2=null!=this[_0xa4d4[3121]]?this[_0xa4d4[3121]]:this[_0xa4d4[1179]][_0xa4d4[1020]];return this[_0xa4d4[1179]][_0xa4d4[844]](this[_0xa4d4[3213]](),_0x7246x2);};mxEditor[_0xa4d4[202]][_0xa4d4[3213]]=function(){return this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1978]](this[_0xa4d4[3120]])};mxEditor[_0xa4d4[202]][_0xa4d4[392]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[219]](_0x7246x2)[_0xa4d4[875]]();this[_0xa4d4[3214]](_0x7246x3[_0xa4d4[158]]);this[_0xa4d4[3122]]=_0x7246x2;this[_0xa4d4[746]]( new mxEventObject(mxEvent.OPEN,_0xa4d4[3122],_0x7246x2));}};mxEditor[_0xa4d4[202]][_0xa4d4[3214]]=function(_0x7246x2){( new mxCodec(_0x7246x2[_0xa4d4[295]]))[_0xa4d4[1093]](_0x7246x2,this[_0xa4d4[1179]][_0xa4d4[502]]());this[_0xa4d4[3181]]();};mxEditor[_0xa4d4[202]][_0xa4d4[815]]=function(_0x7246x2,_0x7246x3){_0x7246x2=_0x7246x2||this[_0xa4d4[3215]]();if(null!=_0x7246x2&&0<_0x7246x2[_0xa4d4[67]]){var _0x7246x4=this[_0xa4d4[3216]](_0x7246x3);this[_0xa4d4[3217]](_0x7246x2,_0x7246x4);this[_0xa4d4[2128]](!1);};this[_0xa4d4[746]]( new mxEventObject(mxEvent.SAVE,_0xa4d4[863],_0x7246x2));};mxEditor[_0xa4d4[202]][_0xa4d4[3217]]=function(_0x7246x2,_0x7246x3){this[_0xa4d4[1070]]&&(_0x7246x3=encodeURIComponent(_0x7246x3));mxUtils[_0xa4d4[814]](_0x7246x2,this[_0xa4d4[3123]]+_0xa4d4[226]+_0x7246x3,mxUtils[_0xa4d4[885]](this,function(_0x7246x4){this[_0xa4d4[746]]( new mxEventObject(mxEvent.POST,_0xa4d4[870],_0x7246x4,_0xa4d4[863],_0x7246x2,_0xa4d4[410],_0x7246x3))}));};mxEditor[_0xa4d4[202]][_0xa4d4[3216]]=function(_0x7246x2){_0x7246x2=null!=_0x7246x2?_0x7246x2:this[_0xa4d4[1069]];var _0x7246x3=( new mxCodec)[_0xa4d4[514]](this[_0xa4d4[1179]][_0xa4d4[502]]());return mxUtils[_0xa4d4[875]](_0x7246x3,_0x7246x2);};mxEditor[_0xa4d4[202]][_0xa4d4[3215]]=function(){return this[_0xa4d4[3124]]};mxEditor[_0xa4d4[202]][_0xa4d4[3142]]=function(){return this[_0xa4d4[3125]]};mxEditor[_0xa4d4[202]][_0xa4d4[807]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){var _0x7246x9=null;mxClient[_0xa4d4[3101]]||(_0x7246x9= new mxSession(this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x2,_0x7246x3,_0x7246x4),_0x7246x9[_0xa4d4[169]](mxEvent.RECEIVE,mxUtils[_0xa4d4[885]](this,function(_0x7246x2,_0x7246x3){null!=_0x7246x3[_0xa4d4[720]](_0xa4d4[252])[_0xa4d4[284]](_0xa4d4[1088])&&this[_0xa4d4[3181]]()})),_0x7246x9[_0xa4d4[169]](mxEvent.DISCONNECT,_0x7246x5),_0x7246x9[_0xa4d4[169]](mxEvent.CONNECT,_0x7246x5),_0x7246x9[_0xa4d4[169]](mxEvent.NOTIFY,_0x7246x5),_0x7246x9[_0xa4d4[169]](mxEvent.GET,_0x7246x5),_0x7246x9[_0xa4d4[861]]());return _0x7246x9;};mxEditor[_0xa4d4[202]][_0xa4d4[3218]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=this[_0xa4d4[1179]][_0xa4d4[2434]]()[_0xa4d4[2054]][_0x7246x3];this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[2434]]()[_0xa4d4[2074]](_0x7246x3,this[_0xa4d4[1179]][_0xa4d4[2434]]()[_0xa4d4[2054]][_0x7246x2]);this[_0xa4d4[1179]][_0xa4d4[2434]]()[_0xa4d4[2074]](_0x7246x2,_0x7246x4);this[_0xa4d4[1179]][_0xa4d4[802]]();};mxEditor[_0xa4d4[202]][_0xa4d4[3150]]=function(_0x7246x2){_0x7246x2=_0x7246x2||this[_0xa4d4[1179]][_0xa4d4[2452]]();null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[2534]](),null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[501]]()));if(null!=_0x7246x2){this[_0xa4d4[1179]][_0xa4d4[2126]](!0);var _0x7246x3=mxUtils[_0xa4d4[445]](this[_0xa4d4[1179]][_0xa4d4[526]]),_0x7246x4=_0x7246x3[_0xa4d4[235]]+10,_0x7246x3=_0x7246x3[_0xa4d4[236]];if(null!=this[_0xa4d4[716]]&&!this[_0xa4d4[3139]]){_0x7246x4=this[_0xa4d4[716]][_0xa4d4[730]](),_0x7246x3=this[_0xa4d4[716]][_0xa4d4[732]]()}else {var _0x7246x5=this[_0xa4d4[1179]][_0xa4d4[2555]](_0x7246x2);null!=_0x7246x5&&(_0x7246x4+=_0x7246x5[_0xa4d4[235]]+Math[_0xa4d4[243]](200,_0x7246x5[_0xa4d4[117]]),_0x7246x3+=_0x7246x5[_0xa4d4[236]]);};this[_0xa4d4[3062]]();_0x7246x2=this[_0xa4d4[3219]](_0x7246x2);null!=_0x7246x2&&(this[_0xa4d4[716]]= new mxWindow(mxResources[_0xa4d4[203]](this[_0xa4d4[3110]])||this[_0xa4d4[3110]],_0x7246x2,_0x7246x4,_0x7246x3,this[_0xa4d4[3137]],this[_0xa4d4[3138]],!1),this[_0xa4d4[716]][_0xa4d4[175]](!0));};};mxEditor[_0xa4d4[202]][_0xa4d4[3220]]=function(){return null!=this[_0xa4d4[716]]};mxEditor[_0xa4d4[202]][_0xa4d4[3219]]=function(_0x7246x2){var _0x7246x3=this[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246x4=_0x7246x3[_0xa4d4[433]](_0x7246x2);if(mxUtils[_0xa4d4[1331]](_0x7246x4)){var _0x7246x5= new mxForm(_0xa4d4[716]);_0x7246x5[_0xa4d4[961]](_0xa4d4[3222],_0x7246x2[_0xa4d4[1103]]())[_0xa4d4[57]](_0xa4d4[3221],_0xa4d4[128]);var _0x7246x9=null,_0x7246xa=null,_0x7246x12=null,_0x7246x13=null,_0x7246x14=null;_0x7246x3[_0xa4d4[1193]](_0x7246x2)&&(_0x7246x9=_0x7246x3[_0xa4d4[1721]](_0x7246x2),null!=_0x7246x9&&(_0x7246xa=_0x7246x5[_0xa4d4[961]](_0xa4d4[125],_0x7246x9[_0xa4d4[236]]),_0x7246x12=_0x7246x5[_0xa4d4[961]](_0xa4d4[361],_0x7246x9[_0xa4d4[235]]),_0x7246x13=_0x7246x5[_0xa4d4[961]](_0xa4d4[117],_0x7246x9[_0xa4d4[117]]),_0x7246x14=_0x7246x5[_0xa4d4[961]](_0xa4d4[119],_0x7246x9[_0xa4d4[119]])));for(var _0x7246x15=_0x7246x3[_0xa4d4[474]](_0x7246x2),_0x7246x16=_0x7246x5[_0xa4d4[961]](_0xa4d4[3223],_0x7246x15||_0xa4d4[110]),_0x7246x17=_0x7246x4[_0xa4d4[320]],_0x7246x18=[],_0x7246x4=0;_0x7246x4<_0x7246x17[_0xa4d4[67]];_0x7246x4++){_0x7246x18[_0x7246x4]=_0x7246x5[_0xa4d4[968]](_0x7246x17[_0x7246x4][_0xa4d4[301]],_0x7246x17[_0x7246x4][_0xa4d4[318]],_0xa4d4[685]==_0x7246x17[_0x7246x4][_0xa4d4[301]]?4:2)};_0x7246x4=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[3062]]();_0x7246x3[_0xa4d4[473]]();try{null!=_0x7246x9&&(_0x7246x9=_0x7246x9[_0xa4d4[238]](),_0x7246x9[_0xa4d4[235]]=parseFloat(_0x7246x12[_0xa4d4[131]]),_0x7246x9[_0xa4d4[236]]=parseFloat(_0x7246xa[_0xa4d4[131]]),_0x7246x9[_0xa4d4[117]]=parseFloat(_0x7246x13[_0xa4d4[131]]),_0x7246x9[_0xa4d4[119]]=parseFloat(_0x7246x14[_0xa4d4[131]]),_0x7246x3[_0xa4d4[1724]](_0x7246x2,_0x7246x9));0<_0x7246x16[_0xa4d4[131]][_0xa4d4[67]]?_0x7246x3[_0xa4d4[475]](_0x7246x2,_0x7246x16[_0xa4d4[131]]):_0x7246x3[_0xa4d4[475]](_0x7246x2,null);for(var _0x7246x4=0;_0x7246x4<_0x7246x17[_0xa4d4[67]];_0x7246x4++){var _0x7246x5= new mxCellAttributeChange(_0x7246x2,_0x7246x17[_0x7246x4][_0xa4d4[301]],_0x7246x18[_0x7246x4][_0xa4d4[131]]);_0x7246x3[_0xa4d4[350]](_0x7246x5);};this[_0xa4d4[1179]][_0xa4d4[2455]](_0x7246x2)&&this[_0xa4d4[1179]][_0xa4d4[858]](_0x7246x2);}finally{_0x7246x3[_0xa4d4[476]]()};});_0x7246x15=mxUtils[_0xa4d4[885]](this,function(){this[_0xa4d4[3062]]()});_0x7246x5[_0xa4d4[956]](_0x7246x4,_0x7246x15);return _0x7246x5[_0xa4d4[116]];};return null;};mxEditor[_0xa4d4[202]][_0xa4d4[3062]]=function(){null!=this[_0xa4d4[716]]&&(this[_0xa4d4[716]][_0xa4d4[515]](),this[_0xa4d4[716]]=null)};mxEditor[_0xa4d4[202]][_0xa4d4[3175]]=function(){if(null==this[_0xa4d4[3112]]){var _0x7246x2=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x2[_0xa4d4[124]][_0xa4d4[549]]=_0xa4d4[952];_0x7246x2[_0xa4d4[124]][_0xa4d4[357]]=_0xa4d4[550];var _0x7246x3=document[_0xa4d4[112]][_0xa4d4[159]],_0x7246x3= new mxWindow(mxResources[_0xa4d4[203]](this[_0xa4d4[3111]])||this[_0xa4d4[3111]],_0x7246x2,_0x7246x3-220,this[_0xa4d4[3132]],200);_0x7246x3[_0xa4d4[164]](!0);_0x7246x3[_0xa4d4[165]]= !1;var _0x7246x4=mxUtils[_0xa4d4[885]](this,function(_0x7246x3){mxEvent[_0xa4d4[762]](_0x7246x2);_0x7246x2[_0xa4d4[339]]=_0xa4d4[110];this[_0xa4d4[3224]](_0x7246x2);});this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[169]](mxEvent.CHANGE,_0x7246x4);this[_0xa4d4[1179]][_0xa4d4[2435]]()[_0xa4d4[169]](mxEvent.CHANGE,_0x7246x4);this[_0xa4d4[1179]][_0xa4d4[169]](mxEvent.ROOT,_0x7246x4);null!=this[_0xa4d4[3131]]&&_0x7246x3[_0xa4d4[951]](this[_0xa4d4[3131]]);this[_0xa4d4[3112]]=_0x7246x3;this[_0xa4d4[3224]](_0x7246x2);};this[_0xa4d4[3112]][_0xa4d4[175]](!0);};mxEditor[_0xa4d4[202]][_0xa4d4[3225]]=function(_0x7246x2){null!=this[_0xa4d4[3112]]&&(_0x7246x2=this[_0xa4d4[3112]][_0xa4d4[905]],mxEvent[_0xa4d4[762]](_0x7246x2),_0x7246x2[_0xa4d4[339]]=_0xa4d4[110],this[_0xa4d4[3224]](_0x7246x2))};mxEditor[_0xa4d4[202]][_0xa4d4[3224]]=function(_0x7246x2){};mxEditor[_0xa4d4[202]][_0xa4d4[3177]]=function(_0x7246x2){if(null==this[_0xa4d4[2719]]){var _0x7246x3=document[_0xa4d4[55]](_0xa4d4[389]);_0x7246x3[_0xa4d4[57]](_0xa4d4[390],mxResources[_0xa4d4[203]](_0xa4d4[3134])||this[_0xa4d4[3134]]);_0x7246x3[_0xa4d4[57]](_0xa4d4[119],_0xa4d4[118]);_0x7246x3[_0xa4d4[57]](_0xa4d4[117],_0xa4d4[118]);_0x7246x3[_0xa4d4[57]](_0xa4d4[3226],_0xa4d4[468]);_0x7246x3[_0xa4d4[124]][_0xa4d4[1028]]=_0xa4d4[1391];_0x7246x2=document[_0xa4d4[112]][_0xa4d4[159]];var _0x7246x4=document[_0xa4d4[112]][_0xa4d4[157]]||document[_0xa4d4[158]][_0xa4d4[157]],_0x7246x5= new mxWindow(mxResources[_0xa4d4[203]](this[_0xa4d4[3113]])||this[_0xa4d4[3113]],_0x7246x3,(_0x7246x2-this[_0xa4d4[3135]])/2,(_0x7246x4-this[_0xa4d4[3136]])/3,this[_0xa4d4[3135]],this[_0xa4d4[3136]]);_0x7246x5[_0xa4d4[161]](!0);_0x7246x5[_0xa4d4[164]](!0);_0x7246x5[_0xa4d4[165]]= !1;_0x7246x5[_0xa4d4[163]](!0);null!=this[_0xa4d4[3133]]&&_0x7246x5[_0xa4d4[951]](this[_0xa4d4[3133]]);mxClient[_0xa4d4[133]]&&(_0x7246x2=function(_0x7246x2){_0x7246x3[_0xa4d4[57]](_0xa4d4[119],_0x7246x5[_0xa4d4[485]][_0xa4d4[167]]-26+_0xa4d4[168])},_0x7246x5[_0xa4d4[169]](mxEvent.RESIZE_END,_0x7246x2),_0x7246x5[_0xa4d4[169]](mxEvent.MAXIMIZE,_0x7246x2),_0x7246x5[_0xa4d4[169]](mxEvent.NORMALIZE,_0x7246x2),_0x7246x5[_0xa4d4[169]](mxEvent.SHOW,_0x7246x2));this[_0xa4d4[2719]]=_0x7246x5;};this[_0xa4d4[2719]][_0xa4d4[175]](!0);};mxEditor[_0xa4d4[202]][_0xa4d4[3179]]=function(){if(null==this[_0xa4d4[2136]]){var _0x7246x2=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x2[_0xa4d4[124]][_0xa4d4[277]]=_0xa4d4[188];_0x7246x2[_0xa4d4[124]][_0xa4d4[117]]=_0xa4d4[118];_0x7246x2[_0xa4d4[124]][_0xa4d4[119]]=_0xa4d4[118];_0x7246x2[_0xa4d4[124]][_0xa4d4[1537]]=_0xa4d4[1391];_0x7246x2[_0xa4d4[124]][_0xa4d4[270]]=_0xa4d4[582];var _0x7246x3= new mxWindow(mxResources[_0xa4d4[203]](this[_0xa4d4[3114]])||this[_0xa4d4[3114]],_0x7246x2,600,480,200,200,!1),_0x7246x4= new mxOutline(this[_0xa4d4[1179]],_0x7246x2);_0x7246x3[_0xa4d4[164]](!0);_0x7246x3[_0xa4d4[163]](!0);_0x7246x3[_0xa4d4[165]]= !1;_0x7246x3[_0xa4d4[169]](mxEvent.RESIZE_END,function(){_0x7246x4[_0xa4d4[2729]]()});this[_0xa4d4[2136]]=_0x7246x3;this[_0xa4d4[2136]][_0xa4d4[2136]]=_0x7246x4;};this[_0xa4d4[2136]][_0xa4d4[175]](!0);this[_0xa4d4[2136]][_0xa4d4[2136]][_0xa4d4[2729]](!0);};mxEditor[_0xa4d4[202]][_0xa4d4[3086]]=function(_0x7246x2){_0xa4d4[804]==_0x7246x2?(this[_0xa4d4[1179]][_0xa4d4[2316]][_0xa4d4[2840]]= !1,this[_0xa4d4[1179]][_0xa4d4[1995]](!1)):_0xa4d4[807]==_0x7246x2?(this[_0xa4d4[1179]][_0xa4d4[2316]][_0xa4d4[2840]]= !1,this[_0xa4d4[1179]][_0xa4d4[1995]](!0)):_0xa4d4[796]==_0x7246x2&&(this[_0xa4d4[1179]][_0xa4d4[2316]][_0xa4d4[2840]]= !0,this[_0xa4d4[1179]][_0xa4d4[1995]](!1))};mxEditor[_0xa4d4[202]][_0xa4d4[3195]]=function(_0x7246x2,_0x7246x3,_0x7246x4){this[_0xa4d4[3094]][_0xa4d4[3065]](this,_0x7246x2,_0x7246x3,_0x7246x4)};mxEditor[_0xa4d4[202]][_0xa4d4[2503]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=null;if(null!=this[_0xa4d4[2075]]){_0x7246x4=this[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[1978]](this[_0xa4d4[2075]])}else {_0x7246x4= new mxCell(_0xa4d4[110]);_0x7246x4[_0xa4d4[1994]](!0);var _0x7246x5= new mxGeometry;_0x7246x5[_0xa4d4[1500]]= !0;_0x7246x4[_0xa4d4[1724]](_0x7246x5);};_0x7246x5=this[_0xa4d4[2291]]();null!=_0x7246x5&&_0x7246x4[_0xa4d4[475]](_0x7246x5);return _0x7246x4;};mxEditor[_0xa4d4[202]][_0xa4d4[2291]]=function(){return this[_0xa4d4[3119]]};mxEditor[_0xa4d4[202]][_0xa4d4[3227]]=function(_0x7246x2){return null!=this[_0xa4d4[3093]]&&0<this[_0xa4d4[3093]][_0xa4d4[67]]&&this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x2)?this[_0xa4d4[3093]][this[_0xa4d4[3130]]++ %this[_0xa4d4[3093]][_0xa4d4[67]]]:null};mxEditor[_0xa4d4[202]][_0xa4d4[3228]]=function(_0x7246x2){if(null!=this[_0xa4d4[3100]]){var _0x7246x3=this[_0xa4d4[3227]](_0x7246x2);null!=_0x7246x3&&_0x7246x2[_0xa4d4[475]](_0x7246x2[_0xa4d4[474]]()+_0xa4d4[471]+this[_0xa4d4[3100]]+_0xa4d4[226]+_0x7246x3);}};mxEditor[_0xa4d4[202]][_0xa4d4[817]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){for(var _0x7246x9=this[_0xa4d4[1179]][_0xa4d4[502]]();null!=_0x7246x2&&!this[_0xa4d4[1179]][_0xa4d4[2685]](_0x7246x2);){_0x7246x2=_0x7246x9[_0xa4d4[1197]](_0x7246x2)};_0x7246x2=null!=_0x7246x2?_0x7246x2:this[_0xa4d4[1179]][_0xa4d4[2461]](_0x7246x4,_0x7246x5);var _0x7246xa=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[255]],_0x7246x12=_0x7246x9[_0xa4d4[1721]](_0x7246x3),_0x7246x13=_0x7246x9[_0xa4d4[1721]](_0x7246x2);if(this[_0xa4d4[1179]][_0xa4d4[1730]](_0x7246x3)&&!this[_0xa4d4[1179]][_0xa4d4[2412]]){_0x7246x2=null}else {if(null==_0x7246x2&&this[_0xa4d4[3116]]){return null};if(null!=_0x7246x2&&null!=_0x7246x13){var _0x7246x14=this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[248]](_0x7246x2);if(null!=_0x7246x14){if(_0x7246x4-=_0x7246x14[_0xa4d4[2078]][_0xa4d4[235]]*_0x7246xa,_0x7246x5-=_0x7246x14[_0xa4d4[2078]][_0xa4d4[236]]*_0x7246xa,this[_0xa4d4[1179]][_0xa4d4[3229]]){var _0x7246x13=_0x7246x12[_0xa4d4[117]],_0x7246x15=_0x7246x12[_0xa4d4[119]],_0x7246x16=_0x7246x14[_0xa4d4[235]]+_0x7246x14[_0xa4d4[117]];_0x7246x4+_0x7246x13>_0x7246x16&&(_0x7246x4-=_0x7246x4+_0x7246x13-_0x7246x16);_0x7246x16=_0x7246x14[_0xa4d4[236]]+_0x7246x14[_0xa4d4[119]];_0x7246x5+_0x7246x15>_0x7246x16&&(_0x7246x5-=_0x7246x5+_0x7246x15-_0x7246x16);}}else {null!=_0x7246x13&&(_0x7246x4-=_0x7246x13[_0xa4d4[235]]*_0x7246xa,_0x7246x5-=_0x7246x13[_0xa4d4[236]]*_0x7246xa)};};};_0x7246x12=_0x7246x12[_0xa4d4[238]]();_0x7246x12[_0xa4d4[235]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x4/_0x7246xa-this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[513]][_0xa4d4[235]]-this[_0xa4d4[1179]][_0xa4d4[1020]]/2);_0x7246x12[_0xa4d4[236]]=this[_0xa4d4[1179]][_0xa4d4[1021]](_0x7246x5/_0x7246xa-this[_0xa4d4[1179]][_0xa4d4[249]]()[_0xa4d4[513]][_0xa4d4[236]]-this[_0xa4d4[1179]][_0xa4d4[1020]]/2);_0x7246x3[_0xa4d4[1724]](_0x7246x12);null==_0x7246x2&&(_0x7246x2=this[_0xa4d4[1179]][_0xa4d4[902]]());this[_0xa4d4[3228]](_0x7246x3);this[_0xa4d4[746]]( new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,_0xa4d4[1988],_0x7246x3,_0xa4d4[1101],_0x7246x2));_0x7246x9[_0xa4d4[473]]();try{_0x7246x3=this[_0xa4d4[1179]][_0xa4d4[2103]](_0x7246x3,_0x7246x2),null!=_0x7246x3&&(this[_0xa4d4[1179]][_0xa4d4[2509]](_0x7246x3),this[_0xa4d4[746]]( new mxEventObject(mxEvent.ADD_VERTEX,_0xa4d4[1988],_0x7246x3)))}finally{_0x7246x9[_0xa4d4[476]]()};null!=_0x7246x3&&(this[_0xa4d4[1179]][_0xa4d4[2450]](_0x7246x3),this[_0xa4d4[1179]][_0xa4d4[2564]](_0x7246x3),this[_0xa4d4[746]]( new mxEventObject(mxEvent.AFTER_ADD_VERTEX,_0xa4d4[1988],_0x7246x3)));return _0x7246x3;};mxEditor[_0xa4d4[202]][_0xa4d4[515]]=function(){this[_0xa4d4[2717]]||(this[_0xa4d4[2717]]= !0,null!=this[_0xa4d4[3112]]&&this[_0xa4d4[3112]][_0xa4d4[515]](),null!=this[_0xa4d4[2136]]&&this[_0xa4d4[2136]][_0xa4d4[515]](),null!=this[_0xa4d4[716]]&&this[_0xa4d4[716]][_0xa4d4[515]](),null!=this[_0xa4d4[3098]]&&this[_0xa4d4[3098]][_0xa4d4[515]](),null!=this[_0xa4d4[3203]]&&this[_0xa4d4[3203]][_0xa4d4[515]](),null!=this[_0xa4d4[3082]]&&this[_0xa4d4[3082]][_0xa4d4[515]](),null!=this[_0xa4d4[1179]]&&this[_0xa4d4[1179]][_0xa4d4[515]](),this[_0xa4d4[3118]]=this[_0xa4d4[879]]=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[718]]();mxCodecRegistry[_0xa4d4[3230]][_0x7246x3]=_0x7246x2;var _0x7246x4=mxUtils[_0xa4d4[197]](_0x7246x2[_0xa4d4[3231]][_0xa4d4[196]]);_0x7246x4!=_0x7246x3&&mxCodecRegistry[_0xa4d4[3232]](_0x7246x4,_0x7246x3);};return _0x7246x2;},addAlias:function(_0x7246x2,_0x7246x3){mxCodecRegistry[_0xa4d4[3233]][_0x7246x2]=_0x7246x3},getCodec:function(_0x7246x2){var _0x7246x3=null;if(null!=_0x7246x2){var _0x7246x3=mxUtils[_0xa4d4[197]](_0x7246x2),_0x7246x4=mxCodecRegistry[_0xa4d4[3233]][_0x7246x3];null!=_0x7246x4&&(_0x7246x3=_0x7246x4);_0x7246x3=mxCodecRegistry[_0xa4d4[3230]][_0x7246x3];if(null==_0x7246x3){try{_0x7246x3= new mxObjectCodec( new _0x7246x2),mxCodecRegistry[_0xa4d4[3234]](_0x7246x3)}catch(d){}};};return _0x7246x3;}};function mxCodec(_0x7246x2){this[_0xa4d4[395]]=_0x7246x2||mxUtils[_0xa4d4[306]]();this[_0xa4d4[68]]=[];}mxCodec[_0xa4d4[202]][_0xa4d4[395]]=null;mxCodec[_0xa4d4[202]][_0xa4d4[68]]=null;mxCodec[_0xa4d4[202]][_0xa4d4[3235]]= !1;mxCodec[_0xa4d4[202]][_0xa4d4[1104]]=function(_0x7246x2,_0x7246x3){return this[_0xa4d4[68]][_0x7246x2]=_0x7246x3};mxCodec[_0xa4d4[202]][_0xa4d4[3236]]=function(_0x7246x2){var _0x7246x3=null;null!=_0x7246x2&&(_0x7246x3=this[_0xa4d4[68]][_0x7246x2],null==_0x7246x3&&(_0x7246x3=this[_0xa4d4[1060]](_0x7246x2),null==_0x7246x3&&(_0x7246x2=this[_0xa4d4[1362]](_0x7246x2),null!=_0x7246x2&&(_0x7246x3=this[_0xa4d4[1093]](_0x7246x2)))));return _0x7246x3;};mxCodec[_0xa4d4[202]][_0xa4d4[1060]]=function(_0x7246x2){return null};mxCodec[_0xa4d4[202]][_0xa4d4[1362]]=function(_0x7246x2,_0x7246x3){return mxUtils[_0xa4d4[290]](this[_0xa4d4[395]][_0xa4d4[158]],null!=_0x7246x3?_0x7246x3:_0xa4d4[1363],_0x7246x2)};mxCodec[_0xa4d4[202]][_0xa4d4[1103]]=function(_0x7246x2){var _0x7246x3=null;null!=_0x7246x2&&(_0x7246x3=this[_0xa4d4[3237]](_0x7246x2),null==_0x7246x3&&_0x7246x2 instanceof mxCell&&(_0x7246x3=_0x7246x2[_0xa4d4[1103]](),null==_0x7246x3&&(_0x7246x3=mxCellPath[_0xa4d4[385]](_0x7246x2),0==_0x7246x3[_0xa4d4[67]]&&(_0x7246x3=_0xa4d4[813]))));return _0x7246x3;};mxCodec[_0xa4d4[202]][_0xa4d4[3237]]=function(_0x7246x2){return null};mxCodec[_0xa4d4[202]][_0xa4d4[514]]=function(_0x7246x2){var _0x7246x3=null;if(null!=_0x7246x2&&null!=_0x7246x2[_0xa4d4[196]]){var _0x7246x4=mxCodecRegistry[_0xa4d4[3238]](_0x7246x2[_0xa4d4[196]]);null!=_0x7246x4?_0x7246x3=_0x7246x4[_0xa4d4[514]](this,_0x7246x2):mxUtils[_0xa4d4[1331]](_0x7246x2)?_0x7246x3=mxClient[_0xa4d4[80]]?_0x7246x2[_0xa4d4[511]](!0):this[_0xa4d4[395]][_0xa4d4[3239]](_0x7246x2,!0):mxLog[_0xa4d4[283]](_0xa4d4[3240]+mxUtils[_0xa4d4[197]](_0x7246x2[_0xa4d4[196]]));};return _0x7246x3;};mxCodec[_0xa4d4[202]][_0xa4d4[1093]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=null;if(null!=_0x7246x2&&_0x7246x2[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){var _0x7246x5=null;try{_0x7246x5=eval(_0x7246x2[_0xa4d4[301]])}catch(e){};try{var _0x7246xa=mxCodecRegistry[_0xa4d4[3238]](_0x7246x5);null!=_0x7246xa?_0x7246x4=_0x7246xa[_0xa4d4[1093]](this,_0x7246x2,_0x7246x3):(_0x7246x4=_0x7246x2[_0xa4d4[511]](!0),_0x7246x4[_0xa4d4[1390]](_0xa4d4[3069]));}catch(g){mxLog[_0xa4d4[143]](_0xa4d4[3241]+_0x7246x2[_0xa4d4[301]]+_0xa4d4[3186]+g[_0xa4d4[281]])};};return _0x7246x4;};mxCodec[_0xa4d4[202]][_0xa4d4[3242]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3[_0xa4d4[62]](this[_0xa4d4[514]](_0x7246x2));if(null==_0x7246x4||_0x7246x4){_0x7246x4=_0x7246x2[_0xa4d4[262]]();for(var _0x7246x5=0;_0x7246x5<_0x7246x4;_0x7246x5++){this[_0xa4d4[3242]](_0x7246x2[_0xa4d4[263]](_0x7246x5),_0x7246x3)};};};mxCodec[_0xa4d4[202]][_0xa4d4[3243]]=function(_0x7246x2){return null!=_0x7246x2&&_0xa4d4[279]== typeof _0x7246x2[_0xa4d4[3243]]?_0x7246x2[_0xa4d4[3243]]():!1};mxCodec[_0xa4d4[202]][_0xa4d4[3244]]=function(_0x7246x2,_0x7246x3){_0x7246x3=null!=_0x7246x3?_0x7246x3:!0;var _0x7246x4=null;if(null!=_0x7246x2&&_0x7246x2[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){_0x7246x4=mxCodecRegistry[_0xa4d4[3238]](_0x7246x2[_0xa4d4[301]]);if(!this[_0xa4d4[3243]](_0x7246x4)){for(var _0x7246x5=_0x7246x2[_0xa4d4[285]];null!=_0x7246x5&&!this[_0xa4d4[3243]](_0x7246x4);){_0x7246x4=mxCodecRegistry[_0xa4d4[3238]](_0x7246x5[_0xa4d4[301]]),_0x7246x5=_0x7246x5[_0xa4d4[287]]}};this[_0xa4d4[3243]](_0x7246x4)||(_0x7246x4=mxCodecRegistry[_0xa4d4[3238]](mxCell));_0x7246x4=_0x7246x4[_0xa4d4[1093]](this,_0x7246x2);_0x7246x3&&this[_0xa4d4[3245]](_0x7246x4);};return _0x7246x4;};mxCodec[_0xa4d4[202]][_0xa4d4[3245]]=function(_0x7246x2){var _0x7246x3=_0x7246x2[_0xa4d4[1101]],_0x7246x4=_0x7246x2[_0xa4d4[1709]](!0),_0x7246x5=_0x7246x2[_0xa4d4[1709]](!1);_0x7246x2[_0xa4d4[1957]](null,!1);_0x7246x2[_0xa4d4[1957]](null,!0);_0x7246x2[_0xa4d4[1101]]=null;null!=_0x7246x3&&_0x7246x3[_0xa4d4[1937]](_0x7246x2);null!=_0x7246x4&&_0x7246x4[_0xa4d4[1960]](_0x7246x2,!0);null!=_0x7246x5&&_0x7246x5[_0xa4d4[1960]](_0x7246x2,!1);};mxCodec[_0xa4d4[202]][_0xa4d4[57]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null!=_0x7246x3&&null!=_0x7246x4&&_0x7246x2[_0xa4d4[57]](_0x7246x3,_0x7246x4)};function mxObjectCodec(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){this[_0xa4d4[3231]]=_0x7246x2;this[_0xa4d4[3246]]=null!=_0x7246x3?_0x7246x3:[];this[_0xa4d4[3247]]=null!=_0x7246x4?_0x7246x4:[];this[_0xa4d4[3248]]=null!=_0x7246x5?_0x7246x5:[];this[_0xa4d4[3249]]={};for(var _0x7246x9 in this[_0xa4d4[3248]]){this[_0xa4d4[3249]][this[_0xa4d4[3248]][_0x7246x9]]=_0x7246x9};}mxObjectCodec[_0xa4d4[202]][_0xa4d4[3231]]=null;mxObjectCodec[_0xa4d4[202]][_0xa4d4[3246]]=null;mxObjectCodec[_0xa4d4[202]][_0xa4d4[3247]]=null;mxObjectCodec[_0xa4d4[202]][_0xa4d4[3248]]=null;mxObjectCodec[_0xa4d4[202]][_0xa4d4[3249]]=null;mxObjectCodec[_0xa4d4[202]][_0xa4d4[718]]=function(){return mxUtils[_0xa4d4[197]](this[_0xa4d4[3231]][_0xa4d4[196]])};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3250]]=function(){return  new this[_0xa4d4[3231]][_0xa4d4[196]]};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3251]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[3249]][_0x7246x2];null!=_0x7246x3&&(_0x7246x2=_0x7246x3);};return _0x7246x2;};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3252]]=function(_0x7246x2){if(null!=_0x7246x2){var _0x7246x3=this[_0xa4d4[3248]][_0x7246x2];null!=_0x7246x3&&(_0x7246x2=_0x7246x3);};return _0x7246x2;};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3253]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){return _0x7246x3==mxObjectIdentity[_0xa4d4[195]]||0<=mxUtils[_0xa4d4[2]](this[_0xa4d4[3246]],_0x7246x3)};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3254]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){return 0<=mxUtils[_0xa4d4[2]](this[_0xa4d4[3247]],_0x7246x3)};mxObjectCodec[_0xa4d4[202]][_0xa4d4[514]]=function(_0x7246x2,_0x7246x3){var _0x7246x4=_0x7246x2[_0xa4d4[395]][_0xa4d4[55]](this[_0xa4d4[718]]());_0x7246x3=this[_0xa4d4[3255]](_0x7246x2,_0x7246x3,_0x7246x4);this[_0xa4d4[3256]](_0x7246x2,_0x7246x3,_0x7246x4);return this[_0xa4d4[3257]](_0x7246x2,_0x7246x3,_0x7246x4);};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3256]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2[_0xa4d4[57]](_0x7246x4,_0xa4d4[1363],_0x7246x2[_0xa4d4[1103]](_0x7246x3));for(var _0x7246x5 in _0x7246x3){var _0x7246x9=_0x7246x5,_0x7246xa=_0x7246x3[_0x7246x9];null!=_0x7246xa&&!this[_0xa4d4[3253]](_0x7246x3,_0x7246x9,_0x7246xa,!0)&&(mxUtils[_0xa4d4[1946]](_0x7246x9)&&(_0x7246x9=null),this[_0xa4d4[3258]](_0x7246x2,_0x7246x3,_0x7246x9,_0x7246xa,_0x7246x4));};};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3258]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){if(null!=_0x7246x5){if(this[_0xa4d4[3254]](_0x7246x3,_0x7246x4,_0x7246x5,!0)){var _0x7246xa=_0x7246x2[_0xa4d4[1103]](_0x7246x5);if(null==_0x7246xa){mxLog[_0xa4d4[283]](_0xa4d4[3259]+this[_0xa4d4[718]]()+_0xa4d4[87]+_0x7246x4+_0xa4d4[226]+_0x7246x5);return;};_0x7246x5=_0x7246xa;};_0x7246xa=this[_0xa4d4[3231]][_0x7246x4];if(null==_0x7246x4||_0x7246x2[_0xa4d4[3235]]||_0x7246xa!=_0x7246x5){_0x7246x4=this[_0xa4d4[3252]](_0x7246x4),this[_0xa4d4[3260]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9)};}};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3260]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0xa4d4[194]!= typeof _0x7246x5?this[_0xa4d4[3261]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9):this[_0xa4d4[3262]](_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9)};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3261]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x5=this[_0xa4d4[3263]](_0x7246x5);null==_0x7246x4?(_0x7246x3=_0x7246x2[_0xa4d4[395]][_0xa4d4[55]](_0xa4d4[99]),_0xa4d4[279]== typeof _0x7246x5?_0x7246x3[_0xa4d4[62]](_0x7246x2[_0xa4d4[395]][_0xa4d4[344]](_0x7246x5)):_0x7246x2[_0xa4d4[57]](_0x7246x3,_0xa4d4[131],_0x7246x5),_0x7246x9[_0xa4d4[62]](_0x7246x3)):_0xa4d4[279]!= typeof _0x7246x5&&_0x7246x2[_0xa4d4[57]](_0x7246x9,_0x7246x4,_0x7246x5);};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3262]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5,_0x7246x9){_0x7246x2=_0x7246x2[_0xa4d4[514]](_0x7246x5);null!=_0x7246x2?(null!=_0x7246x4&&_0x7246x2[_0xa4d4[57]](_0xa4d4[3069],_0x7246x4),_0x7246x9[_0xa4d4[62]](_0x7246x2)):mxLog[_0xa4d4[283]](_0xa4d4[3264]+this[_0xa4d4[718]]()+_0xa4d4[87]+_0x7246x4+_0xa4d4[3186]+_0x7246x5);};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3263]]=function(_0x7246x2){if(_0xa4d4[82]== typeof _0x7246x2[_0xa4d4[67]]&&(!0==_0x7246x2||!1==_0x7246x2)){_0x7246x2=!0==_0x7246x2?_0xa4d4[500]:_0xa4d4[468]};return _0x7246x2;};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3265]]=function(_0x7246x2){mxUtils[_0xa4d4[1946]](_0x7246x2)&&(_0x7246x2=parseFloat(_0x7246x2));return _0x7246x2;};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3255]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x3};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3257]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x4};mxObjectCodec[_0xa4d4[202]][_0xa4d4[1093]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x3[_0xa4d4[284]](_0xa4d4[1363]),_0x7246x9=_0x7246x2[_0xa4d4[68]][_0x7246x5];null==_0x7246x9&&(_0x7246x9=_0x7246x4||this[_0xa4d4[3250]](),null!=_0x7246x5&&_0x7246x2[_0xa4d4[1104]](_0x7246x5,_0x7246x9));_0x7246x3=this[_0xa4d4[3266]](_0x7246x2,_0x7246x3,_0x7246x9);this[_0xa4d4[3267]](_0x7246x2,_0x7246x3,_0x7246x9);return this[_0xa4d4[3268]](_0x7246x2,_0x7246x3,_0x7246x9);};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3267]]=function(_0x7246x2,_0x7246x3,_0x7246x4){null!=_0x7246x3&&(this[_0xa4d4[3269]](_0x7246x2,_0x7246x3,_0x7246x4),this[_0xa4d4[3270]](_0x7246x2,_0x7246x3,_0x7246x4))};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3269]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x3=_0x7246x3[_0xa4d4[320]];if(null!=_0x7246x3){for(var _0x7246x5=0;_0x7246x5<_0x7246x3[_0xa4d4[67]];_0x7246x5++){this[_0xa4d4[3271]](_0x7246x2,_0x7246x3[_0x7246x5],_0x7246x4)}};};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3271]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=_0x7246x3[_0xa4d4[301]];if(_0xa4d4[3069]!=_0x7246x5&&_0xa4d4[1363]!=_0x7246x5){_0x7246x3=this[_0xa4d4[3265]](_0x7246x3[_0xa4d4[318]]);var _0x7246x9=this[_0xa4d4[3251]](_0x7246x5);if(this[_0xa4d4[3254]](_0x7246x4,_0x7246x9,_0x7246x3,!1)){_0x7246x2=_0x7246x2[_0xa4d4[3236]](_0x7246x3);if(null==_0x7246x2){mxLog[_0xa4d4[283]](_0xa4d4[3272]+this[_0xa4d4[718]]()+_0xa4d4[87]+_0x7246x5+_0xa4d4[226]+_0x7246x3);return;};_0x7246x3=_0x7246x2;};this[_0xa4d4[3253]](_0x7246x4,_0x7246x5,_0x7246x3,!1)||(_0x7246x4[_0x7246x5]=_0x7246x3);};};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3270]]=function(_0x7246x2,_0x7246x3,_0x7246x4){for(_0x7246x3=_0x7246x3[_0xa4d4[285]];null!=_0x7246x3;){var _0x7246x5=_0x7246x3[_0xa4d4[287]];_0x7246x3[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]&&!this[_0xa4d4[3273]](_0x7246x2,_0x7246x3,_0x7246x4)&&this[_0xa4d4[3274]](_0x7246x2,_0x7246x3,_0x7246x4);_0x7246x3=_0x7246x5;}};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3274]]=function(_0x7246x2,_0x7246x3,_0x7246x4){var _0x7246x5=this[_0xa4d4[3251]](_0x7246x3[_0xa4d4[284]](_0xa4d4[3069]));if(null==_0x7246x5||!this[_0xa4d4[3253]](_0x7246x4,_0x7246x5,_0x7246x3,!1)){var _0x7246x9=this[_0xa4d4[3275]](_0x7246x4,_0x7246x5,_0x7246x3),_0x7246xa=null;_0xa4d4[99]==_0x7246x3[_0xa4d4[301]]?(_0x7246xa=_0x7246x3[_0xa4d4[284]](_0xa4d4[131]),null==_0x7246xa&&(_0x7246xa=mxUtils[_0xa4d4[1545]](mxUtils[_0xa4d4[329]](_0x7246x3)))):_0x7246xa=_0x7246x2[_0xa4d4[1093]](_0x7246x3,_0x7246x9);this[_0xa4d4[3276]](_0x7246x4,_0x7246x5,_0x7246xa,_0x7246x9);};};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3275]]=function(_0x7246x2,_0x7246x3,_0x7246x4){_0x7246x2=_0x7246x2[_0x7246x3];_0x7246x2 instanceof Array&&0<_0x7246x2[_0xa4d4[67]]&&(_0x7246x2=null);return _0x7246x2;};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3276]]=function(_0x7246x2,_0x7246x3,_0x7246x4,_0x7246x5){null!=_0x7246x4&&_0x7246x4!=_0x7246x5&&(null!=_0x7246x3&&0<_0x7246x3[_0xa4d4[67]]?_0x7246x2[_0x7246x3]=_0x7246x4:_0x7246x2[_0xa4d4[207]](_0x7246x4))};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3273]]=function(_0x7246x2,_0x7246x3,_0x7246x4){if(_0xa4d4[3277]==_0x7246x3[_0xa4d4[301]]){_0x7246x3=_0x7246x3[_0xa4d4[284]](_0xa4d4[298]);if(null!=_0x7246x3){try{var _0x7246x5=mxUtils[_0xa4d4[219]](_0x7246x3)[_0xa4d4[874]]();null!=_0x7246x5&&_0x7246x2[_0xa4d4[1093]](_0x7246x5,_0x7246x4);}catch(e){}};return !0;};return !1;};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3266]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x3};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3268]]=function(_0x7246x2,_0x7246x3,_0x7246x4){return _0x7246x4};mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxCell,[_0xa4d4[1954],_0xa4d4[1842],_0xa4d4[1211],_0xa4d4[1991]],[_0xa4d4[1101],_0xa4d4[1097],_0xa4d4[772]]);_0x7246x2[_0xa4d4[3243]]=function(){return !0};_0x7246x2[_0xa4d4[3253]]=function(_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9){return mxObjectCodec[_0xa4d4[202]][_0xa4d4[3253]][_0xa4d4[183]](this,arguments)||_0x7246x9&&_0xa4d4[131]==_0x7246x4&&_0x7246x5[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]};_0x7246x2[_0xa4d4[3257]]=function(_0x7246x2,_0x7246x4,_0x7246x5){if(null!=_0x7246x4[_0xa4d4[131]]&&_0x7246x4[_0xa4d4[131]][_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){var _0x7246x9=_0x7246x5;_0x7246x5=mxClient[_0xa4d4[80]]?_0x7246x4[_0xa4d4[131]][_0xa4d4[511]](!0):_0x7246x2[_0xa4d4[395]][_0xa4d4[3239]](_0x7246x4[_0xa4d4[131]],!0);_0x7246x5[_0xa4d4[62]](_0x7246x9);_0x7246x2=_0x7246x9[_0xa4d4[284]](_0xa4d4[1363]);_0x7246x5[_0xa4d4[57]](_0xa4d4[1363],_0x7246x2);_0x7246x9[_0xa4d4[1390]](_0xa4d4[1363]);};return _0x7246x5;};_0x7246x2[_0xa4d4[3266]]=function(_0x7246x2,_0x7246x4,_0x7246x5){var _0x7246x9=_0x7246x4,_0x7246xa=this[_0xa4d4[718]]();_0x7246x4[_0xa4d4[301]]!=_0x7246xa?(_0x7246x9=_0x7246x4[_0xa4d4[64]](_0x7246xa)[0],null!=_0x7246x9&&_0x7246x9[_0xa4d4[265]]==_0x7246x4?(mxUtils[_0xa4d4[3278]](_0x7246x9,!0),mxUtils[_0xa4d4[3278]](_0x7246x9,!1),_0x7246x9[_0xa4d4[265]][_0xa4d4[266]](_0x7246x9)):_0x7246x9=null,_0x7246x5[_0xa4d4[131]]=_0x7246x4[_0xa4d4[511]](!0),_0x7246x4=_0x7246x5[_0xa4d4[131]][_0xa4d4[284]](_0xa4d4[1363]),null!=_0x7246x4&&(_0x7246x5[_0xa4d4[1945]](_0x7246x4),_0x7246x5[_0xa4d4[131]][_0xa4d4[1390]](_0xa4d4[1363]))):_0x7246x5[_0xa4d4[1945]](_0x7246x4[_0xa4d4[284]](_0xa4d4[1363]));if(null!=_0x7246x9){for(_0x7246x4=0;_0x7246x4<this[_0xa4d4[3247]][_0xa4d4[67]];_0x7246x4++){var _0x7246xa=this[_0xa4d4[3247]][_0x7246x4],_0x7246x12=_0x7246x9[_0xa4d4[284]](_0x7246xa);if(null!=_0x7246x12){_0x7246x9[_0xa4d4[1390]](_0x7246xa);var _0x7246x13=_0x7246x2[_0xa4d4[68]][_0x7246x12]||_0x7246x2[_0xa4d4[1060]](_0x7246x12);null==_0x7246x13&&(_0x7246x12=_0x7246x2[_0xa4d4[1362]](_0x7246x12),null!=_0x7246x12&&(_0x7246x13=(mxCodecRegistry[_0xa4d4[3230]][_0x7246x12[_0xa4d4[301]]]||this)[_0xa4d4[1093]](_0x7246x2,_0x7246x12)));_0x7246x5[_0x7246xa]=_0x7246x13;};}};return _0x7246x9;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxGraphModel);_0x7246x2[_0xa4d4[3256]]=function(_0x7246x2,_0x7246x4,_0x7246x5){var _0x7246x9=_0x7246x2[_0xa4d4[395]][_0xa4d4[55]](_0xa4d4[813]);_0x7246x2[_0xa4d4[3242]](_0x7246x4[_0xa4d4[501]](),_0x7246x9);_0x7246x5[_0xa4d4[62]](_0x7246x9);};_0x7246x2[_0xa4d4[3274]]=function(_0x7246x2,_0x7246x4,_0x7246x5){_0xa4d4[813]==_0x7246x4[_0xa4d4[301]]?this[_0xa4d4[3279]](_0x7246x2,_0x7246x4,_0x7246x5):mxObjectCodec[_0xa4d4[202]][_0xa4d4[3274]][_0xa4d4[183]](this,arguments)};_0x7246x2[_0xa4d4[3279]]=function(_0x7246x2,_0x7246x4,_0x7246x5){var _0x7246x9=null;for(_0x7246x4=_0x7246x4[_0xa4d4[285]];null!=_0x7246x4;){var _0x7246xa=_0x7246x2[_0xa4d4[3244]](_0x7246x4);null!=_0x7246xa&&null==_0x7246xa[_0xa4d4[1197]]()&&(_0x7246x9=_0x7246xa);_0x7246x4=_0x7246x4[_0xa4d4[287]];};null!=_0x7246x9&&_0x7246x5[_0xa4d4[1927]](_0x7246x9);};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxRootChange,[_0xa4d4[251],_0xa4d4[257],_0xa4d4[813]]);_0x7246x2[_0xa4d4[3257]]=function(_0x7246x2,_0x7246x4,_0x7246x5){_0x7246x2[_0xa4d4[3242]](_0x7246x4[_0xa4d4[813]],_0x7246x5);return _0x7246x5;};_0x7246x2[_0xa4d4[3266]]=function(_0x7246x2,_0x7246x4,_0x7246x5){if(null!=_0x7246x4[_0xa4d4[285]]&&_0x7246x4[_0xa4d4[285]][_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){_0x7246x4=_0x7246x4[_0xa4d4[511]](!0);var _0x7246x9=_0x7246x4[_0xa4d4[285]];_0x7246x5[_0xa4d4[813]]=_0x7246x2[_0xa4d4[3244]](_0x7246x9,!1);_0x7246x5=_0x7246x9[_0xa4d4[287]];_0x7246x9[_0xa4d4[265]][_0xa4d4[266]](_0x7246x9);for(_0x7246x9=_0x7246x5;null!=_0x7246x9;){_0x7246x5=_0x7246x9[_0xa4d4[287]],_0x7246x2[_0xa4d4[3244]](_0x7246x9),_0x7246x9[_0xa4d4[265]][_0xa4d4[266]](_0x7246x9),_0x7246x9=_0x7246x5};};return _0x7246x4;};_0x7246x2[_0xa4d4[3268]]=function(_0x7246x2,_0x7246x4,_0x7246x5){_0x7246x5[_0xa4d4[257]]=_0x7246x5[_0xa4d4[813]];return _0x7246x5;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxChildChange,[_0xa4d4[251],_0xa4d4[247],_0xa4d4[1982]],[_0xa4d4[1101],_0xa4d4[257]]);_0x7246x2[_0xa4d4[3254]]=function(_0x7246x2,_0x7246x4,_0x7246x5,_0x7246x9){return _0xa4d4[247]==_0x7246x4&&(null!=_0x7246x2[_0xa4d4[257]]|| !_0x7246x9)?!0:0<=mxUtils[_0xa4d4[2]](this[_0xa4d4[3247]],_0x7246x4)};_0x7246x2[_0xa4d4[3257]]=function(_0x7246x2,_0x7246x4,_0x7246x5){this[_0xa4d4[3254]](_0x7246x4,_0xa4d4[247],_0x7246x4[_0xa4d4[247]],!0)?_0x7246x5[_0xa4d4[57]](_0xa4d4[247],_0x7246x2[_0xa4d4[1103]](_0x7246x4[_0xa4d4[247]])):_0x7246x2[_0xa4d4[3242]](_0x7246x4[_0xa4d4[247]],_0x7246x5);return _0x7246x5;};_0x7246x2[_0xa4d4[3266]]=function(_0x7246x2,_0x7246x4,_0x7246x5){if(null!=_0x7246x4[_0xa4d4[285]]&&_0x7246x4[_0xa4d4[285]][_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){_0x7246x4=_0x7246x4[_0xa4d4[511]](!0);var _0x7246x9=_0x7246x4[_0xa4d4[285]];_0x7246x5[_0xa4d4[247]]=_0x7246x2[_0xa4d4[3244]](_0x7246x9,!1);_0x7246x5=_0x7246x9[_0xa4d4[287]];_0x7246x9[_0xa4d4[265]][_0xa4d4[266]](_0x7246x9);for(_0x7246x9=_0x7246x5;null!=_0x7246x9;){_0x7246x5=_0x7246x9[_0xa4d4[287]];if(_0x7246x9[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){var _0x7246xa=_0x7246x9[_0xa4d4[284]](_0xa4d4[1363]);null==_0x7246x2[_0xa4d4[1060]](_0x7246xa)&&_0x7246x2[_0xa4d4[3244]](_0x7246x9);};_0x7246x9[_0xa4d4[265]][_0xa4d4[266]](_0x7246x9);_0x7246x9=_0x7246x5;};}else {_0x7246x9=_0x7246x4[_0xa4d4[284]](_0xa4d4[247]),_0x7246x5[_0xa4d4[247]]=_0x7246x2[_0xa4d4[3236]](_0x7246x9)};return _0x7246x4;};_0x7246x2[_0xa4d4[3268]]=function(_0x7246x2,_0x7246x4,_0x7246x5){_0x7246x5[_0xa4d4[247]][_0xa4d4[1101]]=_0x7246x5[_0xa4d4[257]];_0x7246x5[_0xa4d4[257]]=_0x7246x5[_0xa4d4[1101]];_0x7246x5[_0xa4d4[1982]]=_0x7246x5[_0xa4d4[1983]];return _0x7246x5;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxTerminalChange,[_0xa4d4[251],_0xa4d4[257]],[_0xa4d4[246],_0xa4d4[1984]]);_0x7246x2[_0xa4d4[3268]]=function(_0x7246x2,_0x7246x4,_0x7246x5){_0x7246x5[_0xa4d4[257]]=_0x7246x5[_0xa4d4[1984]];return _0x7246x5;};return _0x7246x2;}());var mxGenericChangeCodec=function(_0x7246x2,_0x7246x3){var _0x7246x4= new mxObjectCodec(_0x7246x2,[_0xa4d4[251],_0xa4d4[257]],[_0xa4d4[246]]);_0x7246x4[_0xa4d4[3268]]=function(_0x7246x2,_0x7246x4,_0x7246xa){mxUtils[_0xa4d4[1331]](_0x7246xa[_0xa4d4[246]])&&(_0x7246xa[_0xa4d4[246]]=_0x7246x2[_0xa4d4[3244]](_0x7246xa[_0xa4d4[246]],!1));_0x7246xa[_0xa4d4[257]]=_0x7246xa[_0x7246x3];return _0x7246xa;};return _0x7246x4;};mxCodecRegistry[_0xa4d4[3234]](mxGenericChangeCodec( new mxValueChange,_0xa4d4[131]));mxCodecRegistry[_0xa4d4[3234]](mxGenericChangeCodec( new mxStyleChange,_0xa4d4[124]));mxCodecRegistry[_0xa4d4[3234]](mxGenericChangeCodec( new mxGeometryChange,_0xa4d4[256]));mxCodecRegistry[_0xa4d4[3234]](mxGenericChangeCodec( new mxCollapseChange,_0xa4d4[1985]));mxCodecRegistry[_0xa4d4[3234]](mxGenericChangeCodec( new mxVisibleChange,_0xa4d4[189]));mxCodecRegistry[_0xa4d4[3234]](mxGenericChangeCodec( new mxCellAttributeChange,_0xa4d4[131]));mxCodecRegistry[_0xa4d4[3234]](function(){return  new mxObjectCodec( new mxGraph,_0xa4d4[3280][_0xa4d4[224]](_0xa4d4[185]))}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxGraphView);_0x7246x2[_0xa4d4[514]]=function(_0x7246x2,_0x7246x4){return this[_0xa4d4[3242]](_0x7246x2,_0x7246x4,_0x7246x4[_0xa4d4[1179]][_0xa4d4[502]]()[_0xa4d4[501]]())};_0x7246x2[_0xa4d4[3242]]=function(_0x7246x2,_0x7246x4,_0x7246x5){var _0x7246x9=_0x7246x4[_0xa4d4[1179]][_0xa4d4[502]](),_0x7246xa=_0x7246x4[_0xa4d4[248]](_0x7246x5),_0x7246x12=_0x7246x9[_0xa4d4[1197]](_0x7246x5);if(null==_0x7246x12||null!=_0x7246xa){var _0x7246x13=_0x7246x9[_0xa4d4[262]](_0x7246x5),_0x7246x14=_0x7246x4[_0xa4d4[1179]][_0xa4d4[1198]](_0x7246x5),_0x7246x15=null;_0x7246x12==_0x7246x9[_0xa4d4[501]]()?_0x7246x15=_0xa4d4[3281]:null==_0x7246x12?_0x7246x15=_0xa4d4[1179]:_0x7246x9[_0xa4d4[250]](_0x7246x5)?_0x7246x15=_0xa4d4[1989]:0<_0x7246x13&&null!=_0x7246x14?_0x7246x15=_0xa4d4[1504]:_0x7246x9[_0xa4d4[1193]](_0x7246x5)&&(_0x7246x15=_0xa4d4[1988]);if(null!=_0x7246x15){var _0x7246x16=_0x7246x2[_0xa4d4[395]][_0xa4d4[55]](_0x7246x15);null!=_0x7246x4[_0xa4d4[1179]][_0xa4d4[2183]](_0x7246x5)&&(_0x7246x16[_0xa4d4[57]](_0xa4d4[685],_0x7246x4[_0xa4d4[1179]][_0xa4d4[2183]](_0x7246x5)),_0x7246x4[_0xa4d4[1179]][_0xa4d4[2186]](_0x7246x5)&&_0x7246x16[_0xa4d4[57]](_0xa4d4[1428],!0));if(null==_0x7246x12){var _0x7246x17=_0x7246x4[_0xa4d4[517]]();null!=_0x7246x17&&(_0x7246x16[_0xa4d4[57]](_0xa4d4[235],Math[_0xa4d4[488]](_0x7246x17[_0xa4d4[235]])),_0x7246x16[_0xa4d4[57]](_0xa4d4[236],Math[_0xa4d4[488]](_0x7246x17[_0xa4d4[236]])),_0x7246x16[_0xa4d4[57]](_0xa4d4[117],Math[_0xa4d4[488]](_0x7246x17[_0xa4d4[117]])),_0x7246x16[_0xa4d4[57]](_0xa4d4[119],Math[_0xa4d4[488]](_0x7246x17[_0xa4d4[119]])));_0x7246x16[_0xa4d4[57]](_0xa4d4[255],_0x7246x4[_0xa4d4[255]]);}else {if(null!=_0x7246xa&&null!=_0x7246x14){for(_0x7246x17 in _0x7246xa[_0xa4d4[124]]){_0x7246x12=_0x7246xa[_0xa4d4[124]][_0x7246x17],_0xa4d4[279]== typeof _0x7246x12&&_0xa4d4[194]== typeof _0x7246x12&&(_0x7246x12=mxStyleRegistry[_0xa4d4[718]](_0x7246x12)),null!=_0x7246x12&&(_0xa4d4[279]!= typeof _0x7246x12&&_0xa4d4[194]!= typeof _0x7246x12)&&_0x7246x16[_0xa4d4[57]](_0x7246x17,_0x7246x12)};_0x7246x12=_0x7246xa[_0xa4d4[439]];if(null!=_0x7246x12&&0<_0x7246x12[_0xa4d4[67]]){_0x7246x14=Math[_0xa4d4[488]](_0x7246x12[0][_0xa4d4[235]])+_0xa4d4[537]+Math[_0xa4d4[488]](_0x7246x12[0][_0xa4d4[236]]);for(_0x7246x17=1;_0x7246x17<_0x7246x12[_0xa4d4[67]];_0x7246x17++){_0x7246x14+=_0xa4d4[185]+Math[_0xa4d4[488]](_0x7246x12[_0x7246x17][_0xa4d4[235]])+_0xa4d4[537]+Math[_0xa4d4[488]](_0x7246x12[_0x7246x17][_0xa4d4[236]])};_0x7246x16[_0xa4d4[57]](_0xa4d4[1525],_0x7246x14);}else {_0x7246x16[_0xa4d4[57]](_0xa4d4[235],Math[_0xa4d4[488]](_0x7246xa[_0xa4d4[235]])),_0x7246x16[_0xa4d4[57]](_0xa4d4[236],Math[_0xa4d4[488]](_0x7246xa[_0xa4d4[236]])),_0x7246x16[_0xa4d4[57]](_0xa4d4[117],Math[_0xa4d4[488]](_0x7246xa[_0xa4d4[117]])),_0x7246x16[_0xa4d4[57]](_0xa4d4[119],Math[_0xa4d4[488]](_0x7246xa[_0xa4d4[119]]))};_0x7246x17=_0x7246xa[_0xa4d4[2079]];null!=_0x7246x17&&(0!=_0x7246x17[_0xa4d4[235]]&&_0x7246x16[_0xa4d4[57]](_0xa4d4[1126],Math[_0xa4d4[488]](_0x7246x17[_0xa4d4[235]])),0!=_0x7246x17[_0xa4d4[236]]&&_0x7246x16[_0xa4d4[57]](_0xa4d4[1125],Math[_0xa4d4[488]](_0x7246x17[_0xa4d4[236]])));}};for(_0x7246x17=0;_0x7246x17<_0x7246x13;_0x7246x17++){_0x7246xa=this[_0xa4d4[3242]](_0x7246x2,_0x7246x4,_0x7246x9[_0xa4d4[263]](_0x7246x5,_0x7246x17)),null!=_0x7246xa&&_0x7246x16[_0xa4d4[62]](_0x7246xa)};};};return _0x7246x16;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxStylesheet);_0x7246x2[_0xa4d4[514]]=function(_0x7246x2,_0x7246x4){var _0x7246x5=_0x7246x2[_0xa4d4[395]][_0xa4d4[55]](this[_0xa4d4[718]]()),_0x7246x9;for(_0x7246x9 in _0x7246x4[_0xa4d4[2054]]){var _0x7246xa=_0x7246x4[_0xa4d4[2054]][_0x7246x9],_0x7246x12=_0x7246x2[_0xa4d4[395]][_0xa4d4[55]](_0xa4d4[99]);if(null!=_0x7246x9){_0x7246x12[_0xa4d4[57]](_0xa4d4[3069],_0x7246x9);for(var _0x7246x13 in _0x7246xa){var _0x7246x14=this[_0xa4d4[3282]](_0x7246x13,_0x7246xa[_0x7246x13]);if(null!=_0x7246x14){var _0x7246x15=_0x7246x2[_0xa4d4[395]][_0xa4d4[55]](_0xa4d4[99]);_0x7246x15[_0xa4d4[57]](_0xa4d4[131],_0x7246x14);_0x7246x15[_0xa4d4[57]](_0xa4d4[3069],_0x7246x13);_0x7246x12[_0xa4d4[62]](_0x7246x15);};};0<_0x7246x12[_0xa4d4[271]][_0xa4d4[67]]&&_0x7246x5[_0xa4d4[62]](_0x7246x12);};};return _0x7246x5;};_0x7246x2[_0xa4d4[3282]]=function(_0x7246x2,_0x7246x4){var _0x7246x5= typeof _0x7246x4;_0xa4d4[279]==_0x7246x5?_0x7246x4=mxStyleRegistry[_0xa4d4[718]](style[j]):_0xa4d4[194]==_0x7246x5&&(_0x7246x4=null);return _0x7246x4;};_0x7246x2[_0xa4d4[1093]]=function(_0x7246x2,_0x7246x4,_0x7246x5){_0x7246x5=_0x7246x5|| new this[_0xa4d4[3231]][_0xa4d4[196]];var _0x7246x9=_0x7246x4[_0xa4d4[284]](_0xa4d4[1363]);null!=_0x7246x9&&(_0x7246x2[_0xa4d4[68]][_0x7246x9]=_0x7246x5);for(_0x7246x4=_0x7246x4[_0xa4d4[285]];null!=_0x7246x4;){if(!this[_0xa4d4[3273]](_0x7246x2,_0x7246x4,_0x7246x5)&&_0xa4d4[99]==_0x7246x4[_0xa4d4[301]]&&(_0x7246x9=_0x7246x4[_0xa4d4[284]](_0xa4d4[3069]),null!=_0x7246x9)){var _0x7246xa=_0x7246x4[_0xa4d4[284]](_0xa4d4[1284]),_0x7246x12=null!=_0x7246xa?mxUtils[_0xa4d4[238]](_0x7246x5[_0xa4d4[2054]][_0x7246xa]):null;null==_0x7246x12&&(null!=_0x7246xa&&mxLog[_0xa4d4[283]](_0xa4d4[3283]+_0x7246xa+_0xa4d4[3284]),_0x7246x12={});for(_0x7246xa=_0x7246x4[_0xa4d4[285]];null!=_0x7246xa;){if(_0x7246xa[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]){var _0x7246x13=_0x7246xa[_0xa4d4[284]](_0xa4d4[3069]);if(_0xa4d4[99]==_0x7246xa[_0xa4d4[301]]){var _0x7246x14=mxUtils[_0xa4d4[329]](_0x7246xa),_0x7246x15=null;null!=_0x7246x14&&0<_0x7246x14[_0xa4d4[67]]?_0x7246x15=mxUtils[_0xa4d4[1545]](_0x7246x14):(_0x7246x15=_0x7246xa[_0xa4d4[284]](_0xa4d4[131]),mxUtils[_0xa4d4[1946]](_0x7246x15)&&(_0x7246x15=parseFloat(_0x7246x15)));null!=_0x7246x15&&(_0x7246x12[_0x7246x13]=_0x7246x15);}else {_0xa4d4[205]==_0x7246xa[_0xa4d4[301]]&& delete _0x7246x12[_0x7246x13]};};_0x7246xa=_0x7246xa[_0xa4d4[287]];};_0x7246x5[_0xa4d4[2074]](_0x7246x9,_0x7246x12);};_0x7246x4=_0x7246x4[_0xa4d4[287]];};return _0x7246x5;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxDefaultKeyHandler);_0x7246x2[_0xa4d4[514]]=function(_0x7246x2,_0x7246x4){return null};_0x7246x2[_0xa4d4[1093]]=function(_0x7246x2,_0x7246x4,_0x7246x5){if(null!=_0x7246x5){for(_0x7246x4=_0x7246x4[_0xa4d4[285]];null!=_0x7246x4;){if(!this[_0xa4d4[3273]](_0x7246x2,_0x7246x4,_0x7246x5)&&_0xa4d4[99]==_0x7246x4[_0xa4d4[301]]){var _0x7246x9=_0x7246x4[_0xa4d4[284]](_0xa4d4[3069]),_0x7246xa=_0x7246x4[_0xa4d4[284]](_0xa4d4[892]),_0x7246x12=_0x7246x4[_0xa4d4[284]](_0xa4d4[2207]);_0x7246x5[_0xa4d4[3063]](_0x7246x9,_0x7246xa,_0x7246x12);};_0x7246x4=_0x7246x4[_0xa4d4[287]];}};return _0x7246x5;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxDefaultToolbar);_0x7246x2[_0xa4d4[514]]=function(_0x7246x2,_0x7246x4){return null};_0x7246x2[_0xa4d4[1093]]=function(_0x7246x2,_0x7246x4,_0x7246x5){if(null!=_0x7246x5){var _0x7246x9=_0x7246x5[_0xa4d4[3061]];for(_0x7246x4=_0x7246x4[_0xa4d4[285]];null!=_0x7246x4;){if(_0x7246x4[_0xa4d4[288]]==mxConstants[_0xa4d4[289]]&&!this[_0xa4d4[3273]](_0x7246x2,_0x7246x4,_0x7246x5)){if(_0xa4d4[3072]==_0x7246x4[_0xa4d4[301]]){_0x7246x5[_0xa4d4[1051]]()}else {if(_0xa4d4[345]==_0x7246x4[_0xa4d4[301]]){_0x7246x5[_0xa4d4[3082]][_0xa4d4[1052]]()}else {if(_0xa4d4[1054]==_0x7246x4[_0xa4d4[301]]){_0x7246x5[_0xa4d4[3082]][_0xa4d4[1053]]()}else {if(_0xa4d4[99]==_0x7246x4[_0xa4d4[301]]){var _0x7246xa=_0x7246x4[_0xa4d4[284]](_0xa4d4[3069]),_0x7246xa=mxResources[_0xa4d4[203]](_0x7246xa)||_0x7246xa,_0x7246x12=_0x7246x4[_0xa4d4[284]](_0xa4d4[2916]),_0x7246x13=_0x7246x4[_0xa4d4[284]](_0xa4d4[3285]),_0x7246x14=_0x7246x4[_0xa4d4[284]](_0xa4d4[892]),_0x7246x15=_0x7246x4[_0xa4d4[284]](_0xa4d4[3286]),_0x7246x16=_0x7246x4[_0xa4d4[284]](_0xa4d4[3231]),_0x7246x17=_0xa4d4[468]!=_0x7246x4[_0xa4d4[284]](_0xa4d4[3287]),_0x7246x18=mxUtils[_0xa4d4[329]](_0x7246x4),_0x7246x19=null;if(null!=_0x7246x14){_0x7246x19=_0x7246x5[_0xa4d4[1025]](_0x7246xa,_0x7246x12,_0x7246x14,_0x7246x13)}else {if(null!=_0x7246x15){var _0x7246x1a=mxUtils[_0xa4d4[1545]](_0x7246x18),_0x7246x19=_0x7246x5[_0xa4d4[1048]](_0x7246xa,_0x7246x12,_0x7246x15,_0x7246x13,_0x7246x1a)}else {if(null!=_0x7246x16||null!=_0x7246x18&&0<_0x7246x18[_0xa4d4[67]]){_0x7246x19=_0x7246x9[_0xa4d4[3118]][_0x7246x16],_0x7246x16=_0x7246x4[_0xa4d4[284]](_0xa4d4[124]),null!=_0x7246x19&&null!=_0x7246x16&&(_0x7246x19=_0x7246x19[_0xa4d4[238]](),_0x7246x19[_0xa4d4[475]](_0x7246x16)),_0x7246x16=null,null!=_0x7246x18&&0<_0x7246x18[_0xa4d4[67]]&&(_0x7246x16=mxUtils[_0xa4d4[1545]](_0x7246x18)),_0x7246x19=_0x7246x5[_0xa4d4[3087]](_0x7246xa,_0x7246x12,_0x7246x19,_0x7246x13,_0x7246x16,_0x7246x17)}else {if(_0x7246x13=mxUtils[_0xa4d4[1540]](_0x7246x4),0<_0x7246x13[_0xa4d4[67]]){if(null==_0x7246x12){_0x7246x16=_0x7246x5[_0xa4d4[1038]](_0x7246xa);for(_0x7246xa=0;_0x7246xa<_0x7246x13[_0xa4d4[67]];_0x7246xa++){_0x7246x17=_0x7246x13[_0x7246xa],_0xa4d4[3072]==_0x7246x17[_0xa4d4[301]]?_0x7246x5[_0xa4d4[972]](_0x7246x16,_0xa4d4[3288]):_0xa4d4[99]==_0x7246x17[_0xa4d4[301]]&&(_0x7246x12=_0x7246x17[_0xa4d4[284]](_0xa4d4[3069]),_0x7246x17=_0x7246x17[_0xa4d4[284]](_0xa4d4[892]),_0x7246x5[_0xa4d4[3085]](_0x7246x16,_0x7246x12,_0x7246x17))};}else {var _0x7246x1b=null,_0x7246x1c=_0x7246x5[_0xa4d4[3087]](_0x7246xa,_0x7246x12,function(){var _0x7246x2=_0x7246x9[_0xa4d4[3118]][_0x7246x1b[_0xa4d4[131]]];if(null!=_0x7246x2){var _0x7246x2=_0x7246x2[_0xa4d4[238]](),_0x7246x3=_0x7246x1b[_0xa4d4[1040]][_0x7246x1b[_0xa4d4[1039]]][_0xa4d4[3289]];null!=_0x7246x3&&_0x7246x2[_0xa4d4[475]](_0x7246x3);return _0x7246x2;};mxLog[_0xa4d4[283]](_0xa4d4[3290]+_0x7246x2+_0xa4d4[3291]);return null;},null,null,_0x7246x17),_0x7246x1b=_0x7246x5[_0xa4d4[970]]();mxEvent[_0xa4d4[169]](_0x7246x1b,_0xa4d4[826],function(){_0x7246x5[_0xa4d4[3082]][_0xa4d4[1047]](_0x7246x1c,function(_0x7246x2){_0x7246x2=mxUtils[_0xa4d4[2196]](_0x7246x9[_0xa4d4[1179]][_0xa4d4[526]],mxEvent[_0xa4d4[731]](_0x7246x2),mxEvent[_0xa4d4[733]](_0x7246x2));return _0x7246x9[_0xa4d4[817]](null,_0x7246x1a(),_0x7246x2[_0xa4d4[235]],_0x7246x2[_0xa4d4[236]]);});_0x7246x5[_0xa4d4[3082]][_0xa4d4[1023]]= !1;});for(_0x7246xa=0;_0x7246xa<_0x7246x13[_0xa4d4[67]];_0x7246xa++){_0x7246x17=_0x7246x13[_0x7246xa],_0xa4d4[3072]==_0x7246x17[_0xa4d4[301]]?_0x7246x5[_0xa4d4[972]](_0x7246x1b,_0xa4d4[3288]):_0xa4d4[99]==_0x7246x17[_0xa4d4[301]]&&(_0x7246x12=_0x7246x17[_0xa4d4[284]](_0xa4d4[3069]),_0x7246x18=_0x7246x17[_0xa4d4[284]](_0xa4d4[3231]),_0x7246x5[_0xa4d4[972]](_0x7246x1b,_0x7246x12,_0x7246x18||_0x7246x16)[_0xa4d4[3289]]=_0x7246x17[_0xa4d4[284]](_0xa4d4[124]))};}}}}};null!=_0x7246x19&&(_0x7246x16=_0x7246x4[_0xa4d4[284]](_0xa4d4[1363]),null!=_0x7246x16&&0<_0x7246x16[_0xa4d4[67]]&&_0x7246x19[_0xa4d4[57]](_0xa4d4[1363],_0x7246x16));}}}}};_0x7246x4=_0x7246x4[_0xa4d4[287]];};};return _0x7246x5;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxDefaultPopupMenu);_0x7246x2[_0xa4d4[514]]=function(_0x7246x2,_0x7246x4){return null};_0x7246x2[_0xa4d4[1093]]=function(_0x7246x2,_0x7246x4,_0x7246x5){var _0x7246x9=_0x7246x4[_0xa4d4[64]](_0xa4d4[3277])[0];null!=_0x7246x9?this[_0xa4d4[3273]](_0x7246x2,_0x7246x9,_0x7246x5):null!=_0x7246x5&&(_0x7246x5[_0xa4d4[3064]]=_0x7246x4);return _0x7246x5;};return _0x7246x2;}());mxCodecRegistry[_0xa4d4[3234]](function(){var _0x7246x2= new mxObjectCodec( new mxEditor,_0xa4d4[3292][_0xa4d4[224]](_0xa4d4[185]));_0x7246x2[_0xa4d4[3268]]=function(_0x7246x2,_0x7246x4,_0x7246x5){_0x7246x2=_0x7246x4[_0xa4d4[284]](_0xa4d4[2075]);null!=_0x7246x2&&(_0x7246x4[_0xa4d4[1390]](_0xa4d4[2075]),_0x7246x5[_0xa4d4[2075]]=_0x7246x5[_0xa4d4[3118]][_0x7246x2]);_0x7246x2=_0x7246x4[_0xa4d4[284]](_0xa4d4[3120]);null!=_0x7246x2&&(_0x7246x4[_0xa4d4[1390]](_0xa4d4[3120]),_0x7246x5[_0xa4d4[3120]]=_0x7246x5[_0xa4d4[3118]][_0x7246x2]);return _0x7246x5;};_0x7246x2[_0xa4d4[3274]]=function(_0x7246x2,_0x7246x4,_0x7246x5){if(_0xa4d4[3293]==_0x7246x4[_0xa4d4[301]]){if(_0xa4d4[3118]==_0x7246x4[_0xa4d4[284]](_0xa4d4[3069])){this[_0xa4d4[3294]](_0x7246x2,_0x7246x4,_0x7246x5);return;}}else {if(_0xa4d4[3295]==_0x7246x4[_0xa4d4[301]]){this[_0xa4d4[3296]](_0x7246x2,_0x7246x4,_0x7246x5);return;}};mxObjectCodec[_0xa4d4[202]][_0xa4d4[3274]][_0xa4d4[183]](this,arguments);};_0x7246x2[_0xa4d4[3296]]=function(_0x7246x2,_0x7246x4,_0x7246x5){for(_0x7246x2=_0x7246x4[_0xa4d4[285]];null!=_0x7246x2;){if(_0xa4d4[99]==_0x7246x2[_0xa4d4[301]]){_0x7246x4=_0x7246x2[_0xa4d4[284]](_0xa4d4[3069]);var _0x7246x9=_0x7246x2[_0xa4d4[284]](_0xa4d4[980]),_0x7246xa=_0x7246x2[_0xa4d4[284]](_0xa4d4[124]),_0x7246x12=null;if(null!=_0x7246x9){_0x7246x12=document[_0xa4d4[1362]](_0x7246x9),null!=_0x7246x12&&null!=_0x7246xa&&(_0x7246x12[_0xa4d4[124]][_0xa4d4[103]]+=_0xa4d4[471]+_0x7246xa)}else {var _0x7246x9=parseInt(_0x7246x2[_0xa4d4[284]](_0xa4d4[235])),_0x7246x13=parseInt(_0x7246x2[_0xa4d4[284]](_0xa4d4[236])),_0x7246x14=_0x7246x2[_0xa4d4[284]](_0xa4d4[117]),_0x7246x15=_0x7246x2[_0xa4d4[284]](_0xa4d4[119]),_0x7246x12=document[_0xa4d4[55]](_0xa4d4[485]);_0x7246x12[_0xa4d4[124]][_0xa4d4[103]]=_0x7246xa;( new mxWindow(mxResources[_0xa4d4[203]](_0x7246x4)||_0x7246x4,_0x7246x12,_0x7246x9,_0x7246x13,_0x7246x14,_0x7246x15,!1,!0))[_0xa4d4[175]](!0);};_0xa4d4[1179]==_0x7246x4?_0x7246x5[_0xa4d4[3202]](_0x7246x12):_0xa4d4[3082]==_0x7246x4?_0x7246x5[_0xa4d4[3204]](_0x7246x12):_0xa4d4[924]==_0x7246x4?_0x7246x5[_0xa4d4[3208]](_0x7246x12):_0xa4d4[879]==_0x7246x4?_0x7246x5[_0xa4d4[3205]](_0x7246x12):_0xa4d4[201]==_0x7246x4&&_0x7246x5[_0xa4d4[3297]](_0x7246x12);}else {_0xa4d4[3298]==_0x7246x2[_0xa4d4[301]]?mxResources[_0xa4d4[99]](_0x7246x2[_0xa4d4[284]](_0xa4d4[3299])):_0xa4d4[94]==_0x7246x2[_0xa4d4[301]]&&mxClient[_0xa4d4[54]](_0xa4d4[94],_0x7246x2[_0xa4d4[284]](_0xa4d4[298]))};_0x7246x2=_0x7246x2[_0xa4d4[287]];}};_0x7246x2[_0xa4d4[3294]]=function(_0x7246x2,_0x7246x4,_0x7246x5){null==_0x7246x5[_0xa4d4[3118]]&&(_0x7246x5[_0xa4d4[3118]]=[]);_0x7246x4=mxUtils[_0xa4d4[1540]](_0x7246x4);for(var _0x7246x9=0;_0x7246x9<_0x7246x4[_0xa4d4[67]];_0x7246x9++){for(var _0x7246xa=_0x7246x4[_0x7246x9][_0xa4d4[284]](_0xa4d4[3069]),_0x7246x12=_0x7246x4[_0x7246x9][_0xa4d4[285]];null!=_0x7246x12&&1!=_0x7246x12[_0xa4d4[288]];){_0x7246x12=_0x7246x12[_0xa4d4[287]]};null!=_0x7246x12&&(_0x7246x5[_0xa4d4[3118]][_0x7246xa]=_0x7246x2[_0xa4d4[3244]](_0x7246x12));};};return _0x7246x2;}());
\ No newline at end of file
index 240effc..59ff22d 100644 (file)
@@ -1 +1 @@
-var _0xd52d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x61\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x64\x69\x74\x6F\x72","\x67\x72\x61\x70\x68","\x6E\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53","\x73\x61\x76\x65\x41\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2D\x53","\x70\x75\x62\x6C\x69\x73\x68","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x50","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x43\x74\x72\x6C\x2B\x45","\x65\x64\x69\x74\x46\x69\x6C\x65","\x65\x64\x69\x74","\x67\x65\x74","\x62\x69\x6E\x64","\x70\x75\x74","\x70\x72\x69\x6E\x74","\x70\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E","\x73\x70\x72\x69\x74\x65\x2D\x70\x72\x69\x6E\x74","\x43\x74\x72\x6C\x2B\x50","\x70\x72\x65\x76\x69\x65\x77","\x73\x68\x6F\x77","\x75\x6E\x64\x6F","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x70\x72\x69\x74\x65\x2D\x75\x6E\x64\x6F","\x43\x74\x72\x6C\x2B\x5A","\x72\x65\x64\x6F","\x73\x70\x72\x69\x74\x65\x2D\x72\x65\x64\x6F","\x43\x74\x72\x6C\x2B\x59","\x63\x75\x74","\x73\x70\x72\x69\x74\x65\x2D\x63\x75\x74","\x43\x74\x72\x6C\x2B\x58","\x63\x6F\x70\x79","\x73\x70\x72\x69\x74\x65\x2D\x63\x6F\x70\x79","\x43\x74\x72\x6C\x2B\x43","\x70\x61\x73\x74\x65","\x73\x70\x72\x69\x74\x65\x2D\x70\x61\x73\x74\x65","\x43\x74\x72\x6C\x2B\x56","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x44\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x44","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x56","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x45","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x43\x74\x72\x6C\x2B\x41","\x68\x6F\x6D\x65","\x48\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x55\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x44\x6F\x77\x6E","\x65\x78\x70\x61\x6E\x64","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x45\x6E\x74\x65\x72","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x42\x61\x63\x6B\x73\x70\x61\x63\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x46","\x74\x6F\x42\x61\x63\x6B","\x43\x74\x72\x6C\x2B\x42","\x67\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x43\x74\x72\x6C\x2B\x47","\x75\x6E\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x55","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x70\x72\x6F\x6D\x70\x74","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6C\x65\x6E\x67\x74\x68","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x77\x72\x61\x70","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x73\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x30","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x20\x28","\x20\x30\x2D\x33\x36\x30\x29","\x74\x69\x6C\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x63\x6C\x6F\x6E\x65","\x78","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x79","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x76\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x65\x61\x73\x74","\x73\x6F\x75\x74\x68","\x77\x65\x73\x74","\x6E\x6F\x72\x74\x68","\x43\x74\x72\x6C\x2B\x52","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x41\x64\x64","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x53\x75\x62\x74\x72\x61\x63\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x66\x69\x74\x50\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x66\x75\x6E\x63\x74","\x70\x61\x67\x65\x56\x69\x65\x77","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x6D\x61\x78","\x72\x6F\x75\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x63\x75\x73\x74\x6F\x6D","\x20\x28\x25\x29","\x67\x65\x74\x53\x63\x61\x6C\x65","\x67\x72\x69\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x47","\x73\x65\x74\x54\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x75\x69\x64\x65\x73","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x73\x63\x61\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x43\x74\x72\x6C\x2B\x51","\x63\x6F\x70\x79\x43\x6F\x6E\x6E\x65\x63\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x68\x65\x6C\x70","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x5F","\x2F\x68\x65\x6C\x70","\x2E\x68\x74\x6D\x6C","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x46\x31","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x73\x68\x61\x64\x6F\x77","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x29","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x73\x74\x61\x74\x65","\x74\x72\x69\x67\x67\x65\x72\x58","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x74\x72\x69\x67\x67\x65\x72\x59","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x6D\x61\x67\x65","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x75\x72\x6C","\x6F\x6E\x6C\x6F\x61\x64","\x6F\x6E\x65\x72\x72\x6F\x72","\x66\x69\x6C\x65\x4E\x6F\x74\x46\x6F\x75\x6E\x64","\x61\x6C\x65\x72\x74","\x73\x72\x63","\x63\x61\x6C\x6C","\x6C\x61\x62\x65\x6C","\x65\x6E\x61\x62\x6C\x65\x64","\x69\x63\x6F\x6E\x43\x6C\x73","\x73\x68\x6F\x72\x74\x63\x75\x74","\x65\x78\x74\x65\x6E\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64"];_0xd52d[0];function Actions(_0x6915x2){this[_0xd52d[1]]=_0x6915x2;this[_0xd52d[2]]= new Object();this[_0xd52d[3]]();}Actions[_0xd52d[4]][_0xd52d[3]]=function(){var _0x6915x3=this[_0xd52d[1]];var _0x6915x4=_0x6915x3[_0xd52d[5]];var _0x6915x5=_0x6915x4[_0xd52d[6]];this[_0xd52d[10]](_0xd52d[7],function(){_0x6915x3[_0xd52d[9]]( new NewDialog(_0x6915x3)[_0xd52d[8]],300,180,true,true)});this[_0xd52d[10]](_0xd52d[11],function(){_0x6915x3[_0xd52d[9]]( new OpenDialog(_0x6915x3)[_0xd52d[8]],300,180,true,true)});this[_0xd52d[10]](_0xd52d[12],function(){_0x6915x3[_0xd52d[13]](false)},null,null,_0xd52d[14]);this[_0xd52d[10]](_0xd52d[15],function(){_0x6915x3[_0xd52d[13]](true)},null,null,_0xd52d[16]);this[_0xd52d[10]](_0xd52d[17],function(){_0x6915x3[_0xd52d[18]](false)},null,null,_0xd52d[19]);this[_0xd52d[10]](_0xd52d[20],function(){_0x6915x3[_0xd52d[9]]( new VariableDialog(_0x6915x3)[_0xd52d[8]],300,180,true,true)});this[_0xd52d[10]](_0xd52d[21],function(){_0x6915x3[_0xd52d[9]]( new ImportDialog(_0x6915x3)[_0xd52d[8]],300,200,true,true)});this[_0xd52d[10]](_0xd52d[22],function(){_0x6915x3[_0xd52d[9]]( new ExportDialog(_0x6915x3)[_0xd52d[8]],300,200,true,true)},null,null,_0xd52d[23]);this[_0xd52d[28]](_0xd52d[24], new Action(mxResources[_0xd52d[26]](_0xd52d[25]),mxUtils[_0xd52d[27]](this,function(){this[_0xd52d[1]][_0xd52d[9]]( new EditFileDialog(_0x6915x3)[_0xd52d[8]],620,420,true,true)})));this[_0xd52d[10]](_0xd52d[29],function(){mxUtils[_0xd52d[30]](_0x6915x5)},null,_0xd52d[31],_0xd52d[32]);this[_0xd52d[10]](_0xd52d[33],function(){mxUtils[_0xd52d[34]](_0x6915x5,null,10,10)});this[_0xd52d[10]](_0xd52d[35],function(){_0x6915x4[_0xd52d[36]][_0xd52d[35]]()},null,_0xd52d[37],_0xd52d[38]);this[_0xd52d[10]](_0xd52d[39],function(){_0x6915x4[_0xd52d[36]][_0xd52d[39]]()},null,_0xd52d[40],_0xd52d[41]);this[_0xd52d[10]](_0xd52d[42],function(){mxClipboard[_0xd52d[42]](_0x6915x5)},null,_0xd52d[43],_0xd52d[44]);this[_0xd52d[10]](_0xd52d[45],function(){mxClipboard[_0xd52d[45]](_0x6915x5)},null,_0xd52d[46],_0xd52d[47]);this[_0xd52d[10]](_0xd52d[48],function(){mxClipboard[_0xd52d[48]](_0x6915x5)},false,_0xd52d[49],_0xd52d[50]);this[_0xd52d[10]](_0xd52d[51],function(){_0x6915x5[_0xd52d[52]]()},null,null,_0xd52d[53]);this[_0xd52d[10]](_0xd52d[54],function(){var _0x6915x6=_0x6915x5[_0xd52d[55]];_0x6915x5[_0xd52d[58]](_0x6915x5[_0xd52d[57]](_0x6915x5[_0xd52d[56]](),_0x6915x6,_0x6915x6,true));},null,null,_0xd52d[59]);this[_0xd52d[10]](_0xd52d[60],function(){_0x6915x5[_0xd52d[60]]()},null,null,_0xd52d[61]);this[_0xd52d[10]](_0xd52d[62],function(){_0x6915x5[_0xd52d[62]]()},null,null,_0xd52d[63]);this[_0xd52d[10]](_0xd52d[64],function(){_0x6915x5[_0xd52d[64]]()},null,null,_0xd52d[65]);this[_0xd52d[10]](_0xd52d[66],function(){_0x6915x5[_0xd52d[66]]()},null,null,_0xd52d[67]);this[_0xd52d[10]](_0xd52d[68],function(){_0x6915x5[_0xd52d[68]]()},null,null,_0xd52d[69]);this[_0xd52d[10]](_0xd52d[70],function(){_0x6915x5[_0xd52d[70]]()},null,null,_0xd52d[71]);this[_0xd52d[10]](_0xd52d[72],function(){_0x6915x5[_0xd52d[73]](false)},null,null,_0xd52d[74]);this[_0xd52d[10]](_0xd52d[75],function(){_0x6915x5[_0xd52d[73]](true)},null,null,_0xd52d[76]);this[_0xd52d[10]](_0xd52d[77],function(){_0x6915x5[_0xd52d[78]](false)},null,null,_0xd52d[79]);this[_0xd52d[10]](_0xd52d[80],function(){_0x6915x5[_0xd52d[78]](true)},null,null,_0xd52d[81]);this[_0xd52d[10]](_0xd52d[82],function(){_0x6915x5[_0xd52d[84]](_0x6915x5[_0xd52d[83]](null,0))},null,null,_0xd52d[85]);this[_0xd52d[10]](_0xd52d[86],function(){_0x6915x5[_0xd52d[58]](_0x6915x5[_0xd52d[87]]())},null,null,_0xd52d[88]);this[_0xd52d[10]](_0xd52d[89],function(){_0x6915x5[_0xd52d[90]]()});this[_0xd52d[10]](_0xd52d[91],function(){var _0x6915x7=_0x6915x5[_0xd52d[92]]();var _0x6915x8=_0x6915x5[_0xd52d[93]](_0x6915x7);if(_0x6915x8==null){_0x6915x8=_0xd52d[94]};_0x6915x8=mxUtils[_0xd52d[96]](mxResources[_0xd52d[26]](_0xd52d[95]),_0x6915x8);if(_0x6915x8!=null){_0x6915x5[_0xd52d[97]](_0x6915x7,_0x6915x8)};});this[_0xd52d[10]](_0xd52d[98],function(){var _0x6915x7=_0x6915x5[_0xd52d[92]]();var _0x6915x8=_0x6915x5[_0xd52d[93]](_0x6915x7);if(_0x6915x8!=null){window[_0xd52d[11]](_0x6915x8)};});this[_0xd52d[10]](_0xd52d[99],function(){var _0x6915x9=_0x6915x5[_0xd52d[56]]();if(_0x6915x9!=null){_0x6915x5[_0xd52d[101]]()[_0xd52d[100]]();try{for(var _0x6915xa=0;_0x6915xa<_0x6915x9[_0xd52d[102]];_0x6915xa++){var _0x6915x7=_0x6915x9[_0x6915xa];if(_0x6915x5[_0xd52d[101]]()[_0xd52d[103]](_0x6915x7)){_0x6915x5[_0xd52d[104]]([_0x6915x7],20)}else {_0x6915x5[_0xd52d[105]](_0x6915x7)};}}finally{_0x6915x5[_0xd52d[101]]()[_0xd52d[106]]()};};});this[_0xd52d[10]](_0xd52d[107],function(){var _0x6915xb=_0x6915x5[_0xd52d[109]]()[_0xd52d[108]](_0x6915x5[_0xd52d[92]]());var _0x6915xc=_0xd52d[110];if(_0x6915xb!=null&&_0x6915xb[_0xd52d[112]][mxConstants[_0xd52d[111]]]==_0xd52d[110]){_0x6915xc=null};_0x6915x5[_0xd52d[113]](mxConstants.STYLE_WHITE_SPACE,_0x6915xc);});this[_0xd52d[10]](_0xd52d[114],function(){var _0x6915xc=_0xd52d[115];var _0x6915xb=_0x6915x5[_0xd52d[109]]()[_0xd52d[108]](_0x6915x5[_0xd52d[92]]());if(_0x6915xb!=null){_0x6915xc=_0x6915xb[_0xd52d[112]][mxConstants[_0xd52d[116]]]||_0x6915xc};_0x6915xc=mxUtils[_0xd52d[96]](mxResources[_0xd52d[26]](_0xd52d[95])+_0xd52d[117]+mxResources[_0xd52d[26]](_0xd52d[114])+_0xd52d[118],_0x6915xc);if(_0x6915xc!=null){_0x6915x5[_0xd52d[113]](mxConstants.STYLE_ROTATION,_0x6915xc)};});this[_0xd52d[10]](_0xd52d[119],function(){var _0x6915x9=_0x6915x5[_0xd52d[56]]();if(_0x6915x9!=null){_0x6915x5[_0xd52d[101]]()[_0xd52d[100]]();try{for(var _0x6915xa=0;_0x6915xa<_0x6915x9[_0xd52d[102]];_0x6915xa++){var _0x6915x7=_0x6915x9[_0x6915xa];if(_0x6915x5[_0xd52d[101]]()[_0xd52d[120]](_0x6915x7)&&_0x6915x5[_0xd52d[101]]()[_0xd52d[103]](_0x6915x7)==0){var _0x6915xd=_0x6915x5[_0xd52d[121]](_0x6915x7);if(_0x6915xd!=null){_0x6915xd=_0x6915xd[_0xd52d[122]]();_0x6915xd[_0xd52d[123]]+=_0x6915xd[_0xd52d[124]]/2-_0x6915xd[_0xd52d[125]]/2;_0x6915xd[_0xd52d[126]]+=_0x6915xd[_0xd52d[125]]/2-_0x6915xd[_0xd52d[124]]/2;var _0x6915xe=_0x6915xd[_0xd52d[124]];_0x6915xd[_0xd52d[124]]=_0x6915xd[_0xd52d[125]];_0x6915xd[_0xd52d[125]]=_0x6915xe;_0x6915x5[_0xd52d[101]]()[_0xd52d[127]](_0x6915x7,_0x6915xd);var _0x6915xb=_0x6915x5[_0xd52d[128]][_0xd52d[108]](_0x6915x7);if(_0x6915xb!=null){var _0x6915xf=_0x6915xb[_0xd52d[112]][mxConstants[_0xd52d[129]]]||_0xd52d[130];if(_0x6915xf==_0xd52d[130]){_0x6915xf=_0xd52d[131]}else {if(_0x6915xf==_0xd52d[131]){_0x6915xf=_0xd52d[132]}else {if(_0x6915xf==_0xd52d[132]){_0x6915xf=_0xd52d[133]}else {if(_0x6915xf==_0xd52d[133]){_0x6915xf=_0xd52d[130]}}}};_0x6915x5[_0xd52d[113]](mxConstants.STYLE_DIRECTION,_0x6915xf,[_0x6915x7]);};};};}}finally{_0x6915x5[_0xd52d[101]]()[_0xd52d[106]]()};};},null,null,_0xd52d[134]);this[_0xd52d[10]](_0xd52d[135],function(){_0x6915x5[_0xd52d[136]](1)});this[_0xd52d[10]](_0xd52d[137],function(){_0x6915x5[_0xd52d[137]]()},null,null,_0xd52d[138]);this[_0xd52d[10]](_0xd52d[139],function(){_0x6915x5[_0xd52d[139]]()},null,null,_0xd52d[140]);this[_0xd52d[10]](_0xd52d[141],function(){_0x6915x5[_0xd52d[142]]()});this[_0xd52d[10]](_0xd52d[143],mxUtils[_0xd52d[27]](this,function(){if(!_0x6915x5[_0xd52d[144]]){this[_0xd52d[26]](_0xd52d[146])[_0xd52d[145]]()};var _0x6915x10=_0x6915x5[_0xd52d[147]];var _0x6915x11=_0x6915x5[_0xd52d[148]];var _0x6915x12=_0x6915x5[_0xd52d[8]][_0xd52d[149]]-20;var _0x6915x13=_0x6915x5[_0xd52d[8]][_0xd52d[150]]-20;var _0x6915x14=Math[_0xd52d[152]](100*Math[_0xd52d[151]](_0x6915x12/_0x6915x10[_0xd52d[124]]/_0x6915x11,_0x6915x13/_0x6915x10[_0xd52d[125]]/_0x6915x11))/100;_0x6915x5[_0xd52d[136]](_0x6915x14);_0x6915x5[_0xd52d[8]][_0xd52d[153]]=Math[_0xd52d[156]](_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[123]]*_0x6915x14-Math[_0xd52d[155]](10,(_0x6915x5[_0xd52d[8]][_0xd52d[149]]-_0x6915x10[_0xd52d[124]]*_0x6915x11*_0x6915x14)/2));_0x6915x5[_0xd52d[8]][_0xd52d[157]]=Math[_0xd52d[156]](_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[126]]*_0x6915x14-Math[_0xd52d[155]](10,(_0x6915x5[_0xd52d[8]][_0xd52d[150]]-_0x6915x10[_0xd52d[125]]*_0x6915x11*_0x6915x14)/2));}));this[_0xd52d[10]](_0xd52d[158],mxUtils[_0xd52d[27]](this,function(){if(!_0x6915x5[_0xd52d[144]]){this[_0xd52d[26]](_0xd52d[146])[_0xd52d[145]]()};var _0x6915x10=_0x6915x5[_0xd52d[147]];var _0x6915x11=_0x6915x5[_0xd52d[148]];var _0x6915x12=_0x6915x5[_0xd52d[8]][_0xd52d[149]]-20;var _0x6915x14=Math[_0xd52d[152]](100*_0x6915x12/_0x6915x10[_0xd52d[124]]/_0x6915x11)/100;_0x6915x5[_0xd52d[136]](_0x6915x14);_0x6915x5[_0xd52d[8]][_0xd52d[153]]=Math[_0xd52d[156]](_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[123]]*_0x6915x14-Math[_0xd52d[155]](10,(_0x6915x5[_0xd52d[8]][_0xd52d[149]]-_0x6915x10[_0xd52d[124]]*_0x6915x11*_0x6915x14)/2));_0x6915x5[_0xd52d[8]][_0xd52d[157]]=Math[_0xd52d[156]](_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[126]]*_0x6915x14-Math[_0xd52d[155]](10,(_0x6915x5[_0xd52d[8]][_0xd52d[150]]-_0x6915x10[_0xd52d[125]]*_0x6915x11*_0x6915x14)/2));}));this[_0xd52d[28]](_0xd52d[159], new Action(mxResources[_0xd52d[26]](_0xd52d[160]),function(){var _0x6915xc=mxUtils[_0xd52d[96]](mxResources[_0xd52d[26]](_0xd52d[95])+_0xd52d[161],parseInt(_0x6915x5[_0xd52d[109]]()[_0xd52d[162]]()*100));if(_0x6915xc!=null&&_0x6915xc[_0xd52d[102]]>0&&!isNaN(parseInt(_0x6915xc))){_0x6915x5[_0xd52d[136]](parseInt(_0x6915xc)/100)};}));var _0x6915x15=null;_0x6915x15=this[_0xd52d[10]](_0xd52d[163],function(){_0x6915x5[_0xd52d[165]](!_0x6915x5[_0xd52d[164]]());_0x6915x4[_0xd52d[166]]();},null,null,_0xd52d[167]);_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[164]]()});_0x6915x15=this[_0xd52d[10]](_0xd52d[170],function(){_0x6915x5[_0xd52d[172]][_0xd52d[171]]=!_0x6915x5[_0xd52d[172]][_0xd52d[171]]});_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[172]][_0xd52d[171]]});_0x6915x15=this[_0xd52d[10]](_0xd52d[173],function(){_0x6915x5[_0xd52d[175]][_0xd52d[176]](!_0x6915x5[_0xd52d[175]][_0xd52d[174]]())});_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[175]][_0xd52d[174]]()});_0x6915x15=this[_0xd52d[10]](_0xd52d[177],function(){_0x6915x5[_0xd52d[178]]=!_0x6915x5[_0xd52d[178]];_0x6915x5[_0xd52d[128]][_0xd52d[179]]();});_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[178]]});_0x6915x15=this[_0xd52d[10]](_0xd52d[180],function(){_0x6915x5[_0xd52d[180]]=!_0x6915x5[_0xd52d[180]];_0x6915x4[_0xd52d[166]]();if(!_0x6915x5[_0xd52d[180]]){var _0x6915x16=_0x6915x5[_0xd52d[128]][_0xd52d[154]];_0x6915x5[_0xd52d[128]][_0xd52d[182]](_0x6915x16[_0xd52d[123]]-_0x6915x5[_0xd52d[8]][_0xd52d[153]]/_0x6915x5[_0xd52d[128]][_0xd52d[181]],_0x6915x16[_0xd52d[126]]-_0x6915x5[_0xd52d[8]][_0xd52d[157]]/_0x6915x5[_0xd52d[128]][_0xd52d[181]]);_0x6915x5[_0xd52d[8]][_0xd52d[153]]=0;_0x6915x5[_0xd52d[8]][_0xd52d[157]]=0;_0x6915x5[_0xd52d[183]]();}else {var _0x6915x17=_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[123]];var _0x6915x18=_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[126]];_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[123]]=0;_0x6915x5[_0xd52d[128]][_0xd52d[154]][_0xd52d[126]]=0;_0x6915x5[_0xd52d[183]]();_0x6915x5[_0xd52d[8]][_0xd52d[153]]-=Math[_0xd52d[156]](_0x6915x17*_0x6915x5[_0xd52d[128]][_0xd52d[181]]);_0x6915x5[_0xd52d[8]][_0xd52d[157]]-=Math[_0xd52d[156]](_0x6915x18*_0x6915x5[_0xd52d[128]][_0xd52d[181]]);};},!mxClient.IS_TOUCH);_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[8]][_0xd52d[112]][_0xd52d[184]]==_0xd52d[185]});_0x6915x15=this[_0xd52d[10]](_0xd52d[146],mxUtils[_0xd52d[27]](this,function(){_0x6915x5[_0xd52d[144]]=!_0x6915x5[_0xd52d[144]];_0x6915x5[_0xd52d[186]]=_0x6915x5[_0xd52d[144]];_0x6915x5[_0xd52d[187]]=_0x6915x5[_0xd52d[186]];_0x6915x5[_0xd52d[128]][_0xd52d[188]]();_0x6915x5[_0xd52d[183]]();_0x6915x4[_0xd52d[166]]();_0x6915x4[_0xd52d[190]][_0xd52d[189]]();if(mxUtils[_0xd52d[191]](_0x6915x5[_0xd52d[8]])){if(_0x6915x5[_0xd52d[144]]){_0x6915x5[_0xd52d[8]][_0xd52d[153]]-=20;_0x6915x5[_0xd52d[8]][_0xd52d[157]]-=20;}else {_0x6915x5[_0xd52d[8]][_0xd52d[153]]+=20;_0x6915x5[_0xd52d[8]][_0xd52d[157]]+=20;}};}));_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[144]]});_0x6915x15=this[_0xd52d[10]](_0xd52d[192],function(){_0x6915x5[_0xd52d[194]](!_0x6915x5[_0xd52d[193]][_0xd52d[174]]())},null,null,_0xd52d[195]);_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[193]][_0xd52d[174]]()});_0x6915x15=this[_0xd52d[10]](_0xd52d[196],function(){_0x6915x5[_0xd52d[193]][_0xd52d[198]](!_0x6915x5[_0xd52d[193]][_0xd52d[197]]())});_0x6915x15[_0xd52d[168]](true);_0x6915x15[_0xd52d[169]](function(){return _0x6915x5[_0xd52d[193]][_0xd52d[197]]()});this[_0xd52d[10]](_0xd52d[199],function(){var _0x6915x19=_0xd52d[94];if(mxResources[_0xd52d[201]](mxClient[_0xd52d[200]])){_0x6915x19=_0xd52d[202]+mxClient[_0xd52d[200]]};window[_0xd52d[11]](RESOURCES_PATH+_0xd52d[203]+_0x6915x19+_0xd52d[204]);});this[_0xd52d[28]](_0xd52d[205], new Action(mxResources[_0xd52d[26]](_0xd52d[205])+_0xd52d[206],function(){_0x6915x3[_0xd52d[9]]( new AboutDialog(_0x6915x3)[_0xd52d[8]],320,280,true,true)},null,null,_0xd52d[207]));var _0x6915x1a=mxUtils[_0xd52d[27]](this,function(_0x6915x1b,_0x6915x1c){this[_0xd52d[10]](_0x6915x1b,function(){_0x6915x5[_0xd52d[208]](mxConstants.STYLE_FONTSTYLE,_0x6915x1c)})});_0x6915x1a(_0xd52d[209],mxConstants.FONT_BOLD);_0x6915x1a(_0xd52d[210],mxConstants.FONT_ITALIC);_0x6915x1a(_0xd52d[211],mxConstants.FONT_UNDERLINE);this[_0xd52d[10]](_0xd52d[212],function(){_0x6915x5[_0xd52d[213]](mxConstants.STYLE_SHADOW)});this[_0xd52d[10]](_0xd52d[214],function(){_0x6915x5[_0xd52d[213]](mxConstants.STYLE_DASHED)});this[_0xd52d[10]](_0xd52d[215],function(){_0x6915x5[_0xd52d[213]](mxConstants.STYLE_ROUNDED)});this[_0xd52d[10]](_0xd52d[216],function(){_0x6915x5[_0xd52d[213]](mxConstants.STYLE_CURVED)});this[_0xd52d[10]](_0xd52d[112],function(){var _0x6915x9=_0x6915x5[_0xd52d[56]]();if(_0x6915x9!=null&&_0x6915x9[_0xd52d[102]]>0){var _0x6915x1d=_0x6915x5[_0xd52d[101]]();var _0x6915x1c=mxUtils[_0xd52d[96]](mxResources[_0xd52d[26]](_0xd52d[95])+_0xd52d[117]+mxResources[_0xd52d[26]](_0xd52d[112])+_0xd52d[217],_0x6915x1d[_0xd52d[218]](_0x6915x9[0])||_0xd52d[94]);if(_0x6915x1c!=null){_0x6915x5[_0xd52d[219]](_0x6915x1c,_0x6915x9)};};});this[_0xd52d[10]](_0xd52d[220],function(){_0x6915x5[_0xd52d[221]](_0x6915x5[_0xd52d[92]]())});this[_0xd52d[10]](_0xd52d[222],function(){var _0x6915x7=_0x6915x5[_0xd52d[92]]();if(_0x6915x7!=null&&_0x6915x5[_0xd52d[101]]()[_0xd52d[223]](_0x6915x7)){var _0x6915x1e=_0x6915x4[_0xd52d[6]][_0xd52d[225]][_0xd52d[224]](_0x6915x7);if(_0x6915x1e instanceof mxEdgeHandler){var _0x6915x16=_0x6915x5[_0xd52d[128]][_0xd52d[154]];var _0x6915x6=_0x6915x5[_0xd52d[128]][_0xd52d[181]];var _0x6915x17=_0x6915x16[_0xd52d[123]];var _0x6915x18=_0x6915x16[_0xd52d[126]];var _0x6915x1f=_0x6915x5[_0xd52d[101]]()[_0xd52d[226]](_0x6915x7);var _0x6915x20=_0x6915x5[_0xd52d[121]](_0x6915x1f);if(_0x6915x5[_0xd52d[101]]()[_0xd52d[120]](_0x6915x1f)&&_0x6915x20!=null){_0x6915x17+=_0x6915x20[_0xd52d[123]];_0x6915x18+=_0x6915x20[_0xd52d[126]];};_0x6915x1e[_0xd52d[231]](_0x6915x1e[_0xd52d[227]],_0x6915x5[_0xd52d[229]][_0xd52d[228]]/_0x6915x6-_0x6915x17,_0x6915x5[_0xd52d[229]][_0xd52d[230]]/_0x6915x6-_0x6915x18);};};});this[_0xd52d[10]](_0xd52d[232],function(){var _0x6915x21=_0x6915x3[_0xd52d[2]][_0xd52d[26]](_0xd52d[232]);if(_0x6915x21[_0xd52d[233]]!=null){_0x6915x21[_0xd52d[233]][_0xd52d[235]](_0x6915x21[_0xd52d[233]][_0xd52d[227]],_0x6915x21[_0xd52d[234]])};});this[_0xd52d[10]](_0xd52d[236],function(){function _0x6915x22(_0x6915xc,_0x6915x23,_0x6915x24){var _0x6915x25=null;var _0x6915x9=_0x6915x5[_0xd52d[56]]();_0x6915x5[_0xd52d[101]]()[_0xd52d[100]]();try{if(_0x6915x9[_0xd52d[102]]==0){var _0x6915x26=_0x6915x5[_0xd52d[237]]();_0x6915x9=[_0x6915x5[_0xd52d[239]](_0x6915x5[_0xd52d[238]](),null,_0xd52d[94],_0x6915x26,_0x6915x26,_0x6915x23,_0x6915x24)];_0x6915x25=_0x6915x9;};_0x6915x5[_0xd52d[113]](mxConstants.STYLE_IMAGE,_0x6915xc,_0x6915x9);_0x6915x5[_0xd52d[113]](mxConstants.STYLE_SHAPE,_0xd52d[236],_0x6915x9);if(_0x6915x5[_0xd52d[240]]()==1){if(_0x6915x23!=null&&_0x6915x24!=null){var _0x6915x7=_0x6915x9[0];var _0x6915xd=_0x6915x5[_0xd52d[101]]()[_0xd52d[241]](_0x6915x7);if(_0x6915xd!=null){_0x6915xd=_0x6915xd[_0xd52d[122]]();_0x6915xd[_0xd52d[124]]=_0x6915x23;_0x6915xd[_0xd52d[125]]=_0x6915x24;_0x6915x5[_0xd52d[101]]()[_0xd52d[127]](_0x6915x7,_0x6915xd);};}};}finally{_0x6915x5[_0xd52d[101]]()[_0xd52d[106]]()};if(_0x6915x25!=null){_0x6915x5[_0xd52d[58]](_0x6915x25);_0x6915x5[_0xd52d[242]](_0x6915x25[0]);};}var _0x6915xc=_0xd52d[94];var _0x6915xb=_0x6915x5[_0xd52d[109]]()[_0xd52d[108]](_0x6915x5[_0xd52d[92]]());if(_0x6915xb!=null){_0x6915xc=_0x6915xb[_0xd52d[112]][mxConstants[_0xd52d[243]]]||_0x6915xc};_0x6915xc=mxUtils[_0xd52d[96]](mxResources[_0xd52d[26]](_0xd52d[95])+_0xd52d[117]+mxResources[_0xd52d[26]](_0xd52d[244])+_0xd52d[217],_0x6915xc);if(_0x6915xc!=null){if(_0x6915xc[_0xd52d[102]]>0){var _0x6915x27= new Image();_0x6915x27[_0xd52d[245]]=function(){_0x6915x22(_0x6915xc,_0x6915x27[_0xd52d[124]],_0x6915x27[_0xd52d[125]])};_0x6915x27[_0xd52d[246]]=function(){mxUtils[_0xd52d[248]](mxResources[_0xd52d[26]](_0xd52d[247]))};_0x6915x27[_0xd52d[249]]=_0x6915xc;}};});};Actions[_0xd52d[4]][_0xd52d[10]]=function(_0x6915x1b,_0x6915x28,_0x6915x29,_0x6915x2a,_0x6915x2b){return this[_0xd52d[28]](_0x6915x1b, new Action(mxResources[_0xd52d[26]](_0x6915x1b),_0x6915x28,_0x6915x29,_0x6915x2a,_0x6915x2b))};Actions[_0xd52d[4]][_0xd52d[28]]=function(_0x6915x2c,_0x6915x15){this[_0xd52d[2]][_0x6915x2c]=_0x6915x15;return _0x6915x15;};Actions[_0xd52d[4]][_0xd52d[26]]=function(_0x6915x2c){return this[_0xd52d[2]][_0x6915x2c]};function Action(_0x6915x2e,_0x6915x28,_0x6915x29,_0x6915x2a,_0x6915x2b){mxEventSource[_0xd52d[250]](this);this[_0xd52d[251]]=_0x6915x2e;this[_0xd52d[145]]=_0x6915x28;this[_0xd52d[252]]=(_0x6915x29!=null)?_0x6915x29:true;this[_0xd52d[253]]=_0x6915x2a;this[_0xd52d[254]]=_0x6915x2b;}mxUtils[_0xd52d[255]](Action,mxEventSource);Action[_0xd52d[4]][_0xd52d[176]]=function(_0x6915xc){if(this[_0xd52d[252]]!=_0x6915xc){this[_0xd52d[252]]=_0x6915xc;this[_0xd52d[257]]( new mxEventObject(_0xd52d[256]));}};Action[_0xd52d[4]][_0xd52d[168]]=function(_0x6915xc){this[_0xd52d[258]]=_0x6915xc};Action[_0xd52d[4]][_0xd52d[169]]=function(_0x6915x28){this[_0xd52d[259]]=_0x6915x28};Action[_0xd52d[4]][_0xd52d[260]]=function(){return this[_0xd52d[259]]()};
\ No newline at end of file
+var _0xccb5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x61\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x64\x69\x74\x6F\x72","\x67\x72\x61\x70\x68","\x6E\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53","\x73\x61\x76\x65\x41\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2D\x53","\x70\x75\x62\x6C\x69\x73\x68","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x50","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x43\x74\x72\x6C\x2B\x45","\x65\x64\x69\x74\x46\x69\x6C\x65","\x65\x64\x69\x74","\x67\x65\x74","\x62\x69\x6E\x64","\x70\x75\x74","\x70\x72\x69\x6E\x74","\x70\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E","\x73\x70\x72\x69\x74\x65\x2D\x70\x72\x69\x6E\x74","\x43\x74\x72\x6C\x2B\x50","\x70\x72\x65\x76\x69\x65\x77","\x73\x68\x6F\x77","\x75\x6E\x64\x6F","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x70\x72\x69\x74\x65\x2D\x75\x6E\x64\x6F","\x43\x74\x72\x6C\x2B\x5A","\x72\x65\x64\x6F","\x73\x70\x72\x69\x74\x65\x2D\x72\x65\x64\x6F","\x43\x74\x72\x6C\x2B\x59","\x63\x75\x74","\x73\x70\x72\x69\x74\x65\x2D\x63\x75\x74","\x43\x74\x72\x6C\x2B\x58","\x63\x6F\x70\x79","\x73\x70\x72\x69\x74\x65\x2D\x63\x6F\x70\x79","\x43\x74\x72\x6C\x2B\x43","\x70\x61\x73\x74\x65","\x73\x70\x72\x69\x74\x65\x2D\x70\x61\x73\x74\x65","\x43\x74\x72\x6C\x2B\x56","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x44\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x44","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x56","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x45","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x43\x74\x72\x6C\x2B\x41","\x68\x6F\x6D\x65","\x48\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x55\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x44\x6F\x77\x6E","\x65\x78\x70\x61\x6E\x64","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x45\x6E\x74\x65\x72","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x42\x61\x63\x6B\x73\x70\x61\x63\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x46","\x74\x6F\x42\x61\x63\x6B","\x43\x74\x72\x6C\x2B\x42","\x67\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x43\x74\x72\x6C\x2B\x47","\x75\x6E\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x55","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x70\x72\x6F\x6D\x70\x74","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6C\x65\x6E\x67\x74\x68","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x77\x72\x61\x70","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x73\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x30","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x20\x28","\x20\x30\x2D\x33\x36\x30\x29","\x74\x69\x6C\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x63\x6C\x6F\x6E\x65","\x78","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x79","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x76\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x65\x61\x73\x74","\x73\x6F\x75\x74\x68","\x77\x65\x73\x74","\x6E\x6F\x72\x74\x68","\x43\x74\x72\x6C\x2B\x52","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x41\x64\x64","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x53\x75\x62\x74\x72\x61\x63\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x66\x69\x74\x50\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x66\x75\x6E\x63\x74","\x70\x61\x67\x65\x56\x69\x65\x77","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x6D\x61\x78","\x72\x6F\x75\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x63\x75\x73\x74\x6F\x6D","\x20\x28\x25\x29","\x67\x65\x74\x53\x63\x61\x6C\x65","\x67\x72\x69\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x47","\x73\x65\x74\x54\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x75\x69\x64\x65\x73","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x73\x63\x61\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x43\x74\x72\x6C\x2B\x51","\x63\x6F\x70\x79\x43\x6F\x6E\x6E\x65\x63\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x68\x65\x6C\x70","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x5F","\x2F\x68\x65\x6C\x70","\x2E\x68\x74\x6D\x6C","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x46\x31","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x73\x68\x61\x64\x6F\x77","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x29","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x73\x74\x61\x74\x65","\x74\x72\x69\x67\x67\x65\x72\x58","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x74\x72\x69\x67\x67\x65\x72\x59","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x6D\x61\x67\x65","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x75\x72\x6C","\x6F\x6E\x6C\x6F\x61\x64","\x6F\x6E\x65\x72\x72\x6F\x72","\x66\x69\x6C\x65\x4E\x6F\x74\x46\x6F\x75\x6E\x64","\x61\x6C\x65\x72\x74","\x73\x72\x63","\x63\x61\x6C\x6C","\x6C\x61\x62\x65\x6C","\x65\x6E\x61\x62\x6C\x65\x64","\x69\x63\x6F\x6E\x43\x6C\x73","\x73\x68\x6F\x72\x74\x63\x75\x74","\x65\x78\x74\x65\x6E\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64"];_0xccb5[0];function Actions(_0x7b56x2){this[_0xccb5[1]]=_0x7b56x2;this[_0xccb5[2]]= new Object();this[_0xccb5[3]]();}Actions[_0xccb5[4]][_0xccb5[3]]=function(){var _0x7b56x3=this[_0xccb5[1]];var _0x7b56x4=_0x7b56x3[_0xccb5[5]];var _0x7b56x5=_0x7b56x4[_0xccb5[6]];this[_0xccb5[10]](_0xccb5[7],function(){_0x7b56x3[_0xccb5[9]]( new NewDialog(_0x7b56x3)[_0xccb5[8]],300,180,true,true)});this[_0xccb5[10]](_0xccb5[11],function(){_0x7b56x3[_0xccb5[9]]( new OpenDialog(_0x7b56x3)[_0xccb5[8]],300,180,true,true)});this[_0xccb5[10]](_0xccb5[12],function(){_0x7b56x3[_0xccb5[13]](false)},null,null,_0xccb5[14]);this[_0xccb5[10]](_0xccb5[15],function(){_0x7b56x3[_0xccb5[13]](true)},null,null,_0xccb5[16]);this[_0xccb5[10]](_0xccb5[17],function(){_0x7b56x3[_0xccb5[18]](false)},null,null,_0xccb5[19]);this[_0xccb5[10]](_0xccb5[20],function(){_0x7b56x3[_0xccb5[9]]( new VariableDialog(_0x7b56x3)[_0xccb5[8]],300,180,true,true)});this[_0xccb5[10]](_0xccb5[21],function(){_0x7b56x3[_0xccb5[9]]( new ImportDialog(_0x7b56x3)[_0xccb5[8]],300,200,true,true)});this[_0xccb5[10]](_0xccb5[22],function(){_0x7b56x3[_0xccb5[9]]( new ExportDialog(_0x7b56x3)[_0xccb5[8]],300,200,true,true)},null,null,_0xccb5[23]);this[_0xccb5[28]](_0xccb5[24], new Action(mxResources[_0xccb5[26]](_0xccb5[25]),mxUtils[_0xccb5[27]](this,function(){this[_0xccb5[1]][_0xccb5[9]]( new EditFileDialog(_0x7b56x3)[_0xccb5[8]],620,420,true,true)})));this[_0xccb5[10]](_0xccb5[29],function(){mxUtils[_0xccb5[30]](_0x7b56x5)},null,_0xccb5[31],_0xccb5[32]);this[_0xccb5[10]](_0xccb5[33],function(){mxUtils[_0xccb5[34]](_0x7b56x5,null,10,10)});this[_0xccb5[10]](_0xccb5[35],function(){_0x7b56x4[_0xccb5[36]][_0xccb5[35]]()},null,_0xccb5[37],_0xccb5[38]);this[_0xccb5[10]](_0xccb5[39],function(){_0x7b56x4[_0xccb5[36]][_0xccb5[39]]()},null,_0xccb5[40],_0xccb5[41]);this[_0xccb5[10]](_0xccb5[42],function(){mxClipboard[_0xccb5[42]](_0x7b56x5)},null,_0xccb5[43],_0xccb5[44]);this[_0xccb5[10]](_0xccb5[45],function(){mxClipboard[_0xccb5[45]](_0x7b56x5)},null,_0xccb5[46],_0xccb5[47]);this[_0xccb5[10]](_0xccb5[48],function(){mxClipboard[_0xccb5[48]](_0x7b56x5)},false,_0xccb5[49],_0xccb5[50]);this[_0xccb5[10]](_0xccb5[51],function(){_0x7b56x5[_0xccb5[52]]()},null,null,_0xccb5[53]);this[_0xccb5[10]](_0xccb5[54],function(){var _0x7b56x6=_0x7b56x5[_0xccb5[55]];_0x7b56x5[_0xccb5[58]](_0x7b56x5[_0xccb5[57]](_0x7b56x5[_0xccb5[56]](),_0x7b56x6,_0x7b56x6,true));},null,null,_0xccb5[59]);this[_0xccb5[10]](_0xccb5[60],function(){_0x7b56x5[_0xccb5[60]]()},null,null,_0xccb5[61]);this[_0xccb5[10]](_0xccb5[62],function(){_0x7b56x5[_0xccb5[62]]()},null,null,_0xccb5[63]);this[_0xccb5[10]](_0xccb5[64],function(){_0x7b56x5[_0xccb5[64]]()},null,null,_0xccb5[65]);this[_0xccb5[10]](_0xccb5[66],function(){_0x7b56x5[_0xccb5[66]]()},null,null,_0xccb5[67]);this[_0xccb5[10]](_0xccb5[68],function(){_0x7b56x5[_0xccb5[68]]()},null,null,_0xccb5[69]);this[_0xccb5[10]](_0xccb5[70],function(){_0x7b56x5[_0xccb5[70]]()},null,null,_0xccb5[71]);this[_0xccb5[10]](_0xccb5[72],function(){_0x7b56x5[_0xccb5[73]](false)},null,null,_0xccb5[74]);this[_0xccb5[10]](_0xccb5[75],function(){_0x7b56x5[_0xccb5[73]](true)},null,null,_0xccb5[76]);this[_0xccb5[10]](_0xccb5[77],function(){_0x7b56x5[_0xccb5[78]](false)},null,null,_0xccb5[79]);this[_0xccb5[10]](_0xccb5[80],function(){_0x7b56x5[_0xccb5[78]](true)},null,null,_0xccb5[81]);this[_0xccb5[10]](_0xccb5[82],function(){_0x7b56x5[_0xccb5[84]](_0x7b56x5[_0xccb5[83]](null,0))},null,null,_0xccb5[85]);this[_0xccb5[10]](_0xccb5[86],function(){_0x7b56x5[_0xccb5[58]](_0x7b56x5[_0xccb5[87]]())},null,null,_0xccb5[88]);this[_0xccb5[10]](_0xccb5[89],function(){_0x7b56x5[_0xccb5[90]]()});this[_0xccb5[10]](_0xccb5[91],function(){var _0x7b56x7=_0x7b56x5[_0xccb5[92]]();var _0x7b56x8=_0x7b56x5[_0xccb5[93]](_0x7b56x7);if(_0x7b56x8==null){_0x7b56x8=_0xccb5[94]};_0x7b56x8=mxUtils[_0xccb5[96]](mxResources[_0xccb5[26]](_0xccb5[95]),_0x7b56x8);if(_0x7b56x8!=null){_0x7b56x5[_0xccb5[97]](_0x7b56x7,_0x7b56x8)};});this[_0xccb5[10]](_0xccb5[98],function(){var _0x7b56x7=_0x7b56x5[_0xccb5[92]]();var _0x7b56x8=_0x7b56x5[_0xccb5[93]](_0x7b56x7);if(_0x7b56x8!=null){window[_0xccb5[11]](_0x7b56x8)};});this[_0xccb5[10]](_0xccb5[99],function(){var _0x7b56x9=_0x7b56x5[_0xccb5[56]]();if(_0x7b56x9!=null){_0x7b56x5[_0xccb5[101]]()[_0xccb5[100]]();try{for(var _0x7b56xa=0;_0x7b56xa<_0x7b56x9[_0xccb5[102]];_0x7b56xa++){var _0x7b56x7=_0x7b56x9[_0x7b56xa];if(_0x7b56x5[_0xccb5[101]]()[_0xccb5[103]](_0x7b56x7)){_0x7b56x5[_0xccb5[104]]([_0x7b56x7],20)}else {_0x7b56x5[_0xccb5[105]](_0x7b56x7)};}}finally{_0x7b56x5[_0xccb5[101]]()[_0xccb5[106]]()};};});this[_0xccb5[10]](_0xccb5[107],function(){var _0x7b56xb=_0x7b56x5[_0xccb5[109]]()[_0xccb5[108]](_0x7b56x5[_0xccb5[92]]());var _0x7b56xc=_0xccb5[110];if(_0x7b56xb!=null&&_0x7b56xb[_0xccb5[112]][mxConstants[_0xccb5[111]]]==_0xccb5[110]){_0x7b56xc=null};_0x7b56x5[_0xccb5[113]](mxConstants.STYLE_WHITE_SPACE,_0x7b56xc);});this[_0xccb5[10]](_0xccb5[114],function(){var _0x7b56xc=_0xccb5[115];var _0x7b56xb=_0x7b56x5[_0xccb5[109]]()[_0xccb5[108]](_0x7b56x5[_0xccb5[92]]());if(_0x7b56xb!=null){_0x7b56xc=_0x7b56xb[_0xccb5[112]][mxConstants[_0xccb5[116]]]||_0x7b56xc};_0x7b56xc=mxUtils[_0xccb5[96]](mxResources[_0xccb5[26]](_0xccb5[95])+_0xccb5[117]+mxResources[_0xccb5[26]](_0xccb5[114])+_0xccb5[118],_0x7b56xc);if(_0x7b56xc!=null){_0x7b56x5[_0xccb5[113]](mxConstants.STYLE_ROTATION,_0x7b56xc)};});this[_0xccb5[10]](_0xccb5[119],function(){var _0x7b56x9=_0x7b56x5[_0xccb5[56]]();if(_0x7b56x9!=null){_0x7b56x5[_0xccb5[101]]()[_0xccb5[100]]();try{for(var _0x7b56xa=0;_0x7b56xa<_0x7b56x9[_0xccb5[102]];_0x7b56xa++){var _0x7b56x7=_0x7b56x9[_0x7b56xa];if(_0x7b56x5[_0xccb5[101]]()[_0xccb5[120]](_0x7b56x7)&&_0x7b56x5[_0xccb5[101]]()[_0xccb5[103]](_0x7b56x7)==0){var _0x7b56xd=_0x7b56x5[_0xccb5[121]](_0x7b56x7);if(_0x7b56xd!=null){_0x7b56xd=_0x7b56xd[_0xccb5[122]]();_0x7b56xd[_0xccb5[123]]+=_0x7b56xd[_0xccb5[124]]/2-_0x7b56xd[_0xccb5[125]]/2;_0x7b56xd[_0xccb5[126]]+=_0x7b56xd[_0xccb5[125]]/2-_0x7b56xd[_0xccb5[124]]/2;var _0x7b56xe=_0x7b56xd[_0xccb5[124]];_0x7b56xd[_0xccb5[124]]=_0x7b56xd[_0xccb5[125]];_0x7b56xd[_0xccb5[125]]=_0x7b56xe;_0x7b56x5[_0xccb5[101]]()[_0xccb5[127]](_0x7b56x7,_0x7b56xd);var _0x7b56xb=_0x7b56x5[_0xccb5[128]][_0xccb5[108]](_0x7b56x7);if(_0x7b56xb!=null){var _0x7b56xf=_0x7b56xb[_0xccb5[112]][mxConstants[_0xccb5[129]]]||_0xccb5[130];if(_0x7b56xf==_0xccb5[130]){_0x7b56xf=_0xccb5[131]}else {if(_0x7b56xf==_0xccb5[131]){_0x7b56xf=_0xccb5[132]}else {if(_0x7b56xf==_0xccb5[132]){_0x7b56xf=_0xccb5[133]}else {if(_0x7b56xf==_0xccb5[133]){_0x7b56xf=_0xccb5[130]}}}};_0x7b56x5[_0xccb5[113]](mxConstants.STYLE_DIRECTION,_0x7b56xf,[_0x7b56x7]);};};};}}finally{_0x7b56x5[_0xccb5[101]]()[_0xccb5[106]]()};};},null,null,_0xccb5[134]);this[_0xccb5[10]](_0xccb5[135],function(){_0x7b56x5[_0xccb5[136]](1)});this[_0xccb5[10]](_0xccb5[137],function(){_0x7b56x5[_0xccb5[137]]()},null,null,_0xccb5[138]);this[_0xccb5[10]](_0xccb5[139],function(){_0x7b56x5[_0xccb5[139]]()},null,null,_0xccb5[140]);this[_0xccb5[10]](_0xccb5[141],function(){_0x7b56x5[_0xccb5[142]]()});this[_0xccb5[10]](_0xccb5[143],mxUtils[_0xccb5[27]](this,function(){if(!_0x7b56x5[_0xccb5[144]]){this[_0xccb5[26]](_0xccb5[146])[_0xccb5[145]]()};var _0x7b56x10=_0x7b56x5[_0xccb5[147]];var _0x7b56x11=_0x7b56x5[_0xccb5[148]];var _0x7b56x12=_0x7b56x5[_0xccb5[8]][_0xccb5[149]]-20;var _0x7b56x13=_0x7b56x5[_0xccb5[8]][_0xccb5[150]]-20;var _0x7b56x14=Math[_0xccb5[152]](100*Math[_0xccb5[151]](_0x7b56x12/_0x7b56x10[_0xccb5[124]]/_0x7b56x11,_0x7b56x13/_0x7b56x10[_0xccb5[125]]/_0x7b56x11))/100;_0x7b56x5[_0xccb5[136]](_0x7b56x14);_0x7b56x5[_0xccb5[8]][_0xccb5[153]]=Math[_0xccb5[156]](_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[123]]*_0x7b56x14-Math[_0xccb5[155]](10,(_0x7b56x5[_0xccb5[8]][_0xccb5[149]]-_0x7b56x10[_0xccb5[124]]*_0x7b56x11*_0x7b56x14)/2));_0x7b56x5[_0xccb5[8]][_0xccb5[157]]=Math[_0xccb5[156]](_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[126]]*_0x7b56x14-Math[_0xccb5[155]](10,(_0x7b56x5[_0xccb5[8]][_0xccb5[150]]-_0x7b56x10[_0xccb5[125]]*_0x7b56x11*_0x7b56x14)/2));}));this[_0xccb5[10]](_0xccb5[158],mxUtils[_0xccb5[27]](this,function(){if(!_0x7b56x5[_0xccb5[144]]){this[_0xccb5[26]](_0xccb5[146])[_0xccb5[145]]()};var _0x7b56x10=_0x7b56x5[_0xccb5[147]];var _0x7b56x11=_0x7b56x5[_0xccb5[148]];var _0x7b56x12=_0x7b56x5[_0xccb5[8]][_0xccb5[149]]-20;var _0x7b56x14=Math[_0xccb5[152]](100*_0x7b56x12/_0x7b56x10[_0xccb5[124]]/_0x7b56x11)/100;_0x7b56x5[_0xccb5[136]](_0x7b56x14);_0x7b56x5[_0xccb5[8]][_0xccb5[153]]=Math[_0xccb5[156]](_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[123]]*_0x7b56x14-Math[_0xccb5[155]](10,(_0x7b56x5[_0xccb5[8]][_0xccb5[149]]-_0x7b56x10[_0xccb5[124]]*_0x7b56x11*_0x7b56x14)/2));_0x7b56x5[_0xccb5[8]][_0xccb5[157]]=Math[_0xccb5[156]](_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[126]]*_0x7b56x14-Math[_0xccb5[155]](10,(_0x7b56x5[_0xccb5[8]][_0xccb5[150]]-_0x7b56x10[_0xccb5[125]]*_0x7b56x11*_0x7b56x14)/2));}));this[_0xccb5[28]](_0xccb5[159], new Action(mxResources[_0xccb5[26]](_0xccb5[160]),function(){var _0x7b56xc=mxUtils[_0xccb5[96]](mxResources[_0xccb5[26]](_0xccb5[95])+_0xccb5[161],parseInt(_0x7b56x5[_0xccb5[109]]()[_0xccb5[162]]()*100));if(_0x7b56xc!=null&&_0x7b56xc[_0xccb5[102]]>0&&!isNaN(parseInt(_0x7b56xc))){_0x7b56x5[_0xccb5[136]](parseInt(_0x7b56xc)/100)};}));var _0x7b56x15=null;_0x7b56x15=this[_0xccb5[10]](_0xccb5[163],function(){_0x7b56x5[_0xccb5[165]](!_0x7b56x5[_0xccb5[164]]());_0x7b56x4[_0xccb5[166]]();},null,null,_0xccb5[167]);_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[164]]()});_0x7b56x15=this[_0xccb5[10]](_0xccb5[170],function(){_0x7b56x5[_0xccb5[172]][_0xccb5[171]]=!_0x7b56x5[_0xccb5[172]][_0xccb5[171]]});_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[172]][_0xccb5[171]]});_0x7b56x15=this[_0xccb5[10]](_0xccb5[173],function(){_0x7b56x5[_0xccb5[175]][_0xccb5[176]](!_0x7b56x5[_0xccb5[175]][_0xccb5[174]]())});_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[175]][_0xccb5[174]]()});_0x7b56x15=this[_0xccb5[10]](_0xccb5[177],function(){_0x7b56x5[_0xccb5[178]]=!_0x7b56x5[_0xccb5[178]];_0x7b56x5[_0xccb5[128]][_0xccb5[179]]();});_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[178]]});_0x7b56x15=this[_0xccb5[10]](_0xccb5[180],function(){_0x7b56x5[_0xccb5[180]]=!_0x7b56x5[_0xccb5[180]];_0x7b56x4[_0xccb5[166]]();if(!_0x7b56x5[_0xccb5[180]]){var _0x7b56x16=_0x7b56x5[_0xccb5[128]][_0xccb5[154]];_0x7b56x5[_0xccb5[128]][_0xccb5[182]](_0x7b56x16[_0xccb5[123]]-_0x7b56x5[_0xccb5[8]][_0xccb5[153]]/_0x7b56x5[_0xccb5[128]][_0xccb5[181]],_0x7b56x16[_0xccb5[126]]-_0x7b56x5[_0xccb5[8]][_0xccb5[157]]/_0x7b56x5[_0xccb5[128]][_0xccb5[181]]);_0x7b56x5[_0xccb5[8]][_0xccb5[153]]=0;_0x7b56x5[_0xccb5[8]][_0xccb5[157]]=0;_0x7b56x5[_0xccb5[183]]();}else {var _0x7b56x17=_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[123]];var _0x7b56x18=_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[126]];_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[123]]=0;_0x7b56x5[_0xccb5[128]][_0xccb5[154]][_0xccb5[126]]=0;_0x7b56x5[_0xccb5[183]]();_0x7b56x5[_0xccb5[8]][_0xccb5[153]]-=Math[_0xccb5[156]](_0x7b56x17*_0x7b56x5[_0xccb5[128]][_0xccb5[181]]);_0x7b56x5[_0xccb5[8]][_0xccb5[157]]-=Math[_0xccb5[156]](_0x7b56x18*_0x7b56x5[_0xccb5[128]][_0xccb5[181]]);};},!mxClient.IS_TOUCH);_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[8]][_0xccb5[112]][_0xccb5[184]]==_0xccb5[185]});_0x7b56x15=this[_0xccb5[10]](_0xccb5[146],mxUtils[_0xccb5[27]](this,function(){_0x7b56x5[_0xccb5[144]]=!_0x7b56x5[_0xccb5[144]];_0x7b56x5[_0xccb5[186]]=_0x7b56x5[_0xccb5[144]];_0x7b56x5[_0xccb5[187]]=_0x7b56x5[_0xccb5[186]];_0x7b56x5[_0xccb5[128]][_0xccb5[188]]();_0x7b56x5[_0xccb5[183]]();_0x7b56x4[_0xccb5[166]]();_0x7b56x4[_0xccb5[190]][_0xccb5[189]]();if(mxUtils[_0xccb5[191]](_0x7b56x5[_0xccb5[8]])){if(_0x7b56x5[_0xccb5[144]]){_0x7b56x5[_0xccb5[8]][_0xccb5[153]]-=20;_0x7b56x5[_0xccb5[8]][_0xccb5[157]]-=20;}else {_0x7b56x5[_0xccb5[8]][_0xccb5[153]]+=20;_0x7b56x5[_0xccb5[8]][_0xccb5[157]]+=20;}};}));_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[144]]});_0x7b56x15=this[_0xccb5[10]](_0xccb5[192],function(){_0x7b56x5[_0xccb5[194]](!_0x7b56x5[_0xccb5[193]][_0xccb5[174]]())},null,null,_0xccb5[195]);_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[193]][_0xccb5[174]]()});_0x7b56x15=this[_0xccb5[10]](_0xccb5[196],function(){_0x7b56x5[_0xccb5[193]][_0xccb5[198]](!_0x7b56x5[_0xccb5[193]][_0xccb5[197]]())});_0x7b56x15[_0xccb5[168]](true);_0x7b56x15[_0xccb5[169]](function(){return _0x7b56x5[_0xccb5[193]][_0xccb5[197]]()});this[_0xccb5[10]](_0xccb5[199],function(){var _0x7b56x19=_0xccb5[94];if(mxResources[_0xccb5[201]](mxClient[_0xccb5[200]])){_0x7b56x19=_0xccb5[202]+mxClient[_0xccb5[200]]};window[_0xccb5[11]](RESOURCES_PATH+_0xccb5[203]+_0x7b56x19+_0xccb5[204]);});this[_0xccb5[28]](_0xccb5[205], new Action(mxResources[_0xccb5[26]](_0xccb5[205])+_0xccb5[206],function(){_0x7b56x3[_0xccb5[9]]( new AboutDialog(_0x7b56x3)[_0xccb5[8]],320,280,true,true)},null,null,_0xccb5[207]));var _0x7b56x1a=mxUtils[_0xccb5[27]](this,function(_0x7b56x1b,_0x7b56x1c){this[_0xccb5[10]](_0x7b56x1b,function(){_0x7b56x5[_0xccb5[208]](mxConstants.STYLE_FONTSTYLE,_0x7b56x1c)})});_0x7b56x1a(_0xccb5[209],mxConstants.FONT_BOLD);_0x7b56x1a(_0xccb5[210],mxConstants.FONT_ITALIC);_0x7b56x1a(_0xccb5[211],mxConstants.FONT_UNDERLINE);this[_0xccb5[10]](_0xccb5[212],function(){_0x7b56x5[_0xccb5[213]](mxConstants.STYLE_SHADOW)});this[_0xccb5[10]](_0xccb5[214],function(){_0x7b56x5[_0xccb5[213]](mxConstants.STYLE_DASHED)});this[_0xccb5[10]](_0xccb5[215],function(){_0x7b56x5[_0xccb5[213]](mxConstants.STYLE_ROUNDED)});this[_0xccb5[10]](_0xccb5[216],function(){_0x7b56x5[_0xccb5[213]](mxConstants.STYLE_CURVED)});this[_0xccb5[10]](_0xccb5[112],function(){var _0x7b56x9=_0x7b56x5[_0xccb5[56]]();if(_0x7b56x9!=null&&_0x7b56x9[_0xccb5[102]]>0){var _0x7b56x1d=_0x7b56x5[_0xccb5[101]]();var _0x7b56x1c=mxUtils[_0xccb5[96]](mxResources[_0xccb5[26]](_0xccb5[95])+_0xccb5[117]+mxResources[_0xccb5[26]](_0xccb5[112])+_0xccb5[217],_0x7b56x1d[_0xccb5[218]](_0x7b56x9[0])||_0xccb5[94]);if(_0x7b56x1c!=null){_0x7b56x5[_0xccb5[219]](_0x7b56x1c,_0x7b56x9)};};});this[_0xccb5[10]](_0xccb5[220],function(){_0x7b56x5[_0xccb5[221]](_0x7b56x5[_0xccb5[92]]())});this[_0xccb5[10]](_0xccb5[222],function(){var _0x7b56x7=_0x7b56x5[_0xccb5[92]]();if(_0x7b56x7!=null&&_0x7b56x5[_0xccb5[101]]()[_0xccb5[223]](_0x7b56x7)){var _0x7b56x1e=_0x7b56x4[_0xccb5[6]][_0xccb5[225]][_0xccb5[224]](_0x7b56x7);if(_0x7b56x1e instanceof mxEdgeHandler){var _0x7b56x16=_0x7b56x5[_0xccb5[128]][_0xccb5[154]];var _0x7b56x6=_0x7b56x5[_0xccb5[128]][_0xccb5[181]];var _0x7b56x17=_0x7b56x16[_0xccb5[123]];var _0x7b56x18=_0x7b56x16[_0xccb5[126]];var _0x7b56x1f=_0x7b56x5[_0xccb5[101]]()[_0xccb5[226]](_0x7b56x7);var _0x7b56x20=_0x7b56x5[_0xccb5[121]](_0x7b56x1f);if(_0x7b56x5[_0xccb5[101]]()[_0xccb5[120]](_0x7b56x1f)&&_0x7b56x20!=null){_0x7b56x17+=_0x7b56x20[_0xccb5[123]];_0x7b56x18+=_0x7b56x20[_0xccb5[126]];};_0x7b56x1e[_0xccb5[231]](_0x7b56x1e[_0xccb5[227]],_0x7b56x5[_0xccb5[229]][_0xccb5[228]]/_0x7b56x6-_0x7b56x17,_0x7b56x5[_0xccb5[229]][_0xccb5[230]]/_0x7b56x6-_0x7b56x18);};};});this[_0xccb5[10]](_0xccb5[232],function(){var _0x7b56x21=_0x7b56x3[_0xccb5[2]][_0xccb5[26]](_0xccb5[232]);if(_0x7b56x21[_0xccb5[233]]!=null){_0x7b56x21[_0xccb5[233]][_0xccb5[235]](_0x7b56x21[_0xccb5[233]][_0xccb5[227]],_0x7b56x21[_0xccb5[234]])};});this[_0xccb5[10]](_0xccb5[236],function(){function _0x7b56x22(_0x7b56xc,_0x7b56x23,_0x7b56x24){var _0x7b56x25=null;var _0x7b56x9=_0x7b56x5[_0xccb5[56]]();_0x7b56x5[_0xccb5[101]]()[_0xccb5[100]]();try{if(_0x7b56x9[_0xccb5[102]]==0){var _0x7b56x26=_0x7b56x5[_0xccb5[237]]();_0x7b56x9=[_0x7b56x5[_0xccb5[239]](_0x7b56x5[_0xccb5[238]](),null,_0xccb5[94],_0x7b56x26,_0x7b56x26,_0x7b56x23,_0x7b56x24)];_0x7b56x25=_0x7b56x9;};_0x7b56x5[_0xccb5[113]](mxConstants.STYLE_IMAGE,_0x7b56xc,_0x7b56x9);_0x7b56x5[_0xccb5[113]](mxConstants.STYLE_SHAPE,_0xccb5[236],_0x7b56x9);if(_0x7b56x5[_0xccb5[240]]()==1){if(_0x7b56x23!=null&&_0x7b56x24!=null){var _0x7b56x7=_0x7b56x9[0];var _0x7b56xd=_0x7b56x5[_0xccb5[101]]()[_0xccb5[241]](_0x7b56x7);if(_0x7b56xd!=null){_0x7b56xd=_0x7b56xd[_0xccb5[122]]();_0x7b56xd[_0xccb5[124]]=_0x7b56x23;_0x7b56xd[_0xccb5[125]]=_0x7b56x24;_0x7b56x5[_0xccb5[101]]()[_0xccb5[127]](_0x7b56x7,_0x7b56xd);};}};}finally{_0x7b56x5[_0xccb5[101]]()[_0xccb5[106]]()};if(_0x7b56x25!=null){_0x7b56x5[_0xccb5[58]](_0x7b56x25);_0x7b56x5[_0xccb5[242]](_0x7b56x25[0]);};}var _0x7b56xc=_0xccb5[94];var _0x7b56xb=_0x7b56x5[_0xccb5[109]]()[_0xccb5[108]](_0x7b56x5[_0xccb5[92]]());if(_0x7b56xb!=null){_0x7b56xc=_0x7b56xb[_0xccb5[112]][mxConstants[_0xccb5[243]]]||_0x7b56xc};_0x7b56xc=mxUtils[_0xccb5[96]](mxResources[_0xccb5[26]](_0xccb5[95])+_0xccb5[117]+mxResources[_0xccb5[26]](_0xccb5[244])+_0xccb5[217],_0x7b56xc);if(_0x7b56xc!=null){if(_0x7b56xc[_0xccb5[102]]>0){var _0x7b56x27= new Image();_0x7b56x27[_0xccb5[245]]=function(){_0x7b56x22(_0x7b56xc,_0x7b56x27[_0xccb5[124]],_0x7b56x27[_0xccb5[125]])};_0x7b56x27[_0xccb5[246]]=function(){mxUtils[_0xccb5[248]](mxResources[_0xccb5[26]](_0xccb5[247]))};_0x7b56x27[_0xccb5[249]]=_0x7b56xc;}};});};Actions[_0xccb5[4]][_0xccb5[10]]=function(_0x7b56x1b,_0x7b56x28,_0x7b56x29,_0x7b56x2a,_0x7b56x2b){return this[_0xccb5[28]](_0x7b56x1b, new Action(mxResources[_0xccb5[26]](_0x7b56x1b),_0x7b56x28,_0x7b56x29,_0x7b56x2a,_0x7b56x2b))};Actions[_0xccb5[4]][_0xccb5[28]]=function(_0x7b56x2c,_0x7b56x15){this[_0xccb5[2]][_0x7b56x2c]=_0x7b56x15;return _0x7b56x15;};Actions[_0xccb5[4]][_0xccb5[26]]=function(_0x7b56x2c){return this[_0xccb5[2]][_0x7b56x2c]};function Action(_0x7b56x2e,_0x7b56x28,_0x7b56x29,_0x7b56x2a,_0x7b56x2b){mxEventSource[_0xccb5[250]](this);this[_0xccb5[251]]=_0x7b56x2e;this[_0xccb5[145]]=_0x7b56x28;this[_0xccb5[252]]=(_0x7b56x29!=null)?_0x7b56x29:true;this[_0xccb5[253]]=_0x7b56x2a;this[_0xccb5[254]]=_0x7b56x2b;}mxUtils[_0xccb5[255]](Action,mxEventSource);Action[_0xccb5[4]][_0xccb5[176]]=function(_0x7b56xc){if(this[_0xccb5[252]]!=_0x7b56xc){this[_0xccb5[252]]=_0x7b56xc;this[_0xccb5[257]]( new mxEventObject(_0xccb5[256]));}};Action[_0xccb5[4]][_0xccb5[168]]=function(_0x7b56xc){this[_0xccb5[258]]=_0x7b56xc};Action[_0xccb5[4]][_0xccb5[169]]=function(_0x7b56x28){this[_0xccb5[259]]=_0x7b56x28};Action[_0xccb5[4]][_0xccb5[260]]=function(){return this[_0xccb5[259]]()};
\ No newline at end of file
index 33d5590..81627ac 100644 (file)
@@ -1 +1 @@
-var _0xa2c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x6E\x70\x75\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x65\x63\x6B\x65\x64","\x47\x45\x54","\x6F\x70\x65\x6E","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x61","\x65\x64\x69\x74\x6F\x72","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x73\x65\x6C\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x2D\x2D\x20\x4E\x6F\x6E\x65\x20\x2D\x2D","\x76\x61\x6C\x75\x65","\x30","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x6F\x77\x73","\x73\x65\x6C\x65\x63\x74\x65\x64","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x73\x65\x6C\x65\x63\x74\x32","\x66\x69\x6C\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x66\x61\x74\x68\x65\x72","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x73\x6F\x6E","\x2D","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x62\x6F\x64\x79","\x72\x6F\x75\x6E\x64","\x6D\x61\x78","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x44\x69\x61\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x6D\x6F\x64\x61\x6C\x20\x66\x61\x64\x65\x20\x69\x6E\x20\x63\x65\x6E\x74\x65\x72","\x64\x69\x73\x70\x6C\x61\x79","\x73\x74\x79\x6C\x65","\x62\x6C\x6F\x63\x6B","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x31\x32\x70\x78","\x67\x65\x4D\x6F\x64\x61\x6C\x44\x69\x61\x6C\x6F\x67","\x6D\x6F\x64\x61\x6C\x2D\x64\x69\x61\x6C\x6F\x67","\x62\x67","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x6D\x6F\x64\x61\x6C\x2D\x62\x61\x63\x6B\x64\x72\x6F\x70\x20\x66\x61\x64\x65\x20\x69\x6E","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x6E\x44\x69\x61\x6C\x6F\x67\x43\x6C\x6F\x73\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x6C\x6F\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x64\x61\x6C\x2D\x63\x6F\x6E\x74\x65\x6E\x74","\x6D\x6F\x64\x61\x6C\x2D\x68\x65\x61\x64\x65\x72","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79","\x6D\x6F\x64\x61\x6C\x2D\x66\x6F\x6F\x74\x65\x72","\x68\x34","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x69\x6D\x70\x6F\x72\x74","\x67\x65\x74","\x20\x58\x4D\x4C","\x77\x72\x69\x74\x65","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x62\x75\x74\x74\x6F\x6E","\x72\x6F\x77","\x63\x6F\x6C\x2D\x6D\x64\x2D\x31\x32","\x74\x65\x78\x74\x61\x72\x65\x61","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x33\x37\x34\x70\x78","\x66\x69\x6C\x65","\x61\x63\x63\x65\x70\x74","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x63\x68\x61\x6E\x67\x65","\x66\x69\x6C\x65\x73","\x74\x61\x72\x67\x65\x74","\x6C\x6F\x67","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x73\x75\x6C\x74","\x72\x65\x61\x64\x41\x73\x54\x65\x78\x74","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x6F\x72\x6D\x61\x74\x20\x66\x69\x6C\x65","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x62\x69\x6E\x64","\x62\x74\x6E\x20\x62\x6C\x75\x65","\x63\x61\x6E\x63\x65\x6C","\x62\x74\x6E\x20\x64\x65\x66\x61\x75\x6C\x74","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30\x70\x78","\x31\x37\x36","\x31\x35\x31","\x73\x72\x63","\x2F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x62\x72","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x6C\x61\x62\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x61","\x68\x72\x65\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D\x2F","\x5F\x62\x6C\x61\x6E\x6B","\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D","\x73\x61\x76\x65\x41\x73","\x6E\x61\x6D\x65","\x5F","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x6C\x61\x62\x65\x6C","\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C\x20\x70\x75\x6C\x6C\x2D\x72\x69\x67\x68\x74","\x5F\x63\x6F\x70\x79","\x69\x64","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C","\x73\x61\x76\x65","\x6E\x65\x77","\x5F\x6E\x65\x77","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x61\x6D\x65","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x65\x64\x69\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x64\x61\x74\x61\x54\x72\x61\x6E\x73\x66\x65\x72","\x64\x72\x61\x67\x6F\x76\x65\x72","\x64\x72\x6F\x70","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D","\x65\x78\x70\x6F\x72\x74","\x66\x6F\x72\x6D\x2D\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x20\x66\x6F\x72\x6D\x2D\x72\x6F\x77\x2D\x73\x65\x70\x65\x72\x61\x74\x65\x64","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70\x20\x6C\x61\x73\x74","\x63\x6F\x6C\x2D\x73\x6D\x2D\x34\x20\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x73\x6D\x2D\x38","\x67\x65\x74\x58\x6D\x6C","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x67\x72\x61\x70\x68","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x20\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x2D\x73\x63\x72\x6F\x6C\x6C","\x20","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x73\x69\x70\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x71\x75\x65\x75\x65\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x6F\x64\x65\x6C","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2F\x61\x6C\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x6F\x64\x62\x63\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x5F\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x69\x67\x69\x74","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6E\x75\x6D\x62\x65\x72","\x6D\x69\x6E","\x72\x65\x74\x72\x79","\x6B\x65\x79","\x71\x75\x65\x72\x79","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x63\x6F\x6D\x6D\x61\x6E\x64","\x68\x65\x6C\x70\x5F","\x70","\x68\x65\x6C\x70\x2D\x62\x6C\x6F\x63\x6B","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x72\x65\x66\x72\x65\x73\x68"];_0xa2c3[0];function createCheckbox(_0xb14ax2){var _0xb14ax3=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax3[_0xa2c3[5]](_0xa2c3[3],_0xa2c3[4]);if(_0xb14ax2){_0xb14ax3[_0xa2c3[5]](_0xa2c3[6],true)};return _0xb14ax3;}function createDropdownFromApi(_0xb14ax5,_0xb14ax2,_0xb14ax6,_0xb14ax7,_0xb14ax8,_0xb14ax9){var _0xb14axa= new XMLHttpRequest();_0xb14axa[_0xa2c3[8]](_0xa2c3[7],_0xb14ax5,false);_0xb14axa[_0xa2c3[14]](_0xa2c3[9],_0xa2c3[10]+_0xb14ax8[_0xa2c3[13]][_0xa2c3[12]][_0xa2c3[11]]);_0xb14axa[_0xa2c3[15]](null);var _0xb14axb=[];if(_0xb14axa[_0xa2c3[16]]===200){_0xb14axb=JSON[_0xa2c3[18]](_0xb14axa[_0xa2c3[17]])};var _0xb14ax3=document[_0xa2c3[2]](_0xa2c3[19]);var _0xb14axc=document[_0xa2c3[2]](_0xa2c3[20]);_0xb14axc[_0xa2c3[21]]=_0xa2c3[22];_0xb14axc[_0xa2c3[23]]=_0xa2c3[24];_0xb14ax3[_0xa2c3[25]](_0xb14axc);var _0xb14axd=_0xb14ax9?_0xb14axb[_0xa2c3[26]]:_0xb14axb;_0xb14axd[_0xa2c3[28]](function(_0xb14axe){_0xb14axc=document[_0xa2c3[2]](_0xa2c3[20]);_0xb14axc[_0xa2c3[21]]=_0xb14axe[_0xb14ax6];_0xb14axc[_0xa2c3[23]]=_0xb14axe[_0xb14ax7];_0xb14axc[_0xa2c3[27]]=(_0xb14axe[_0xb14ax7]==_0xb14ax2);_0xb14ax3[_0xa2c3[25]](_0xb14axc);});_0xb14ax3[_0xa2c3[29]]=_0xa2c3[30];return _0xb14ax3;}function createGroupedDropdownFromApi(_0xb14ax5,_0xb14ax2,_0xb14ax6,_0xb14ax7,_0xb14ax8,_0xb14ax9,_0xb14ax10){var _0xb14axa= new XMLHttpRequest();_0xb14axa[_0xa2c3[8]](_0xa2c3[7],_0xb14ax5,false);_0xb14axa[_0xa2c3[14]](_0xa2c3[9],_0xa2c3[10]+_0xb14ax8[_0xa2c3[13]][_0xa2c3[12]][_0xa2c3[11]]);_0xb14axa[_0xa2c3[15]](null);var _0xb14axb=[];if(_0xb14axa[_0xa2c3[16]]===200){_0xb14axb=JSON[_0xa2c3[18]](_0xb14axa[_0xa2c3[17]])};var _0xb14ax3=document[_0xa2c3[2]](_0xa2c3[19]);var _0xb14axc=document[_0xa2c3[2]](_0xa2c3[20]);_0xb14axc[_0xa2c3[21]]=_0xa2c3[22];_0xb14axc[_0xa2c3[23]]=_0xa2c3[24];_0xb14ax3[_0xa2c3[25]](_0xb14axc);var _0xb14axd=_0xb14ax9?_0xb14axb[_0xa2c3[26]]:_0xb14axb;var _0xb14ax11={};var _0xb14ax12={};_0xb14ax11[_0xb14ax10]=null;var _0xb14ax13=_[_0xa2c3[31]](_0xb14axd,_0xb14ax11);var _0xb14ax14={};_0xb14ax13[_0xa2c3[28]](function(_0xb14axe){_0xb14axc=document[_0xa2c3[2]](_0xa2c3[20]);_0xb14axc[_0xa2c3[29]]=_0xa2c3[32];_0xb14axc[_0xa2c3[21]]=_0xb14axe[_0xb14ax6][_0xa2c3[33]]();_0xb14axc[_0xa2c3[23]]=_0xb14axe[_0xb14ax7];_0xb14axc[_0xa2c3[27]]=(_0xb14axe[_0xb14ax7]==_0xb14ax2);_0xb14ax3[_0xa2c3[25]](_0xb14axc);_0xb14ax12[_0xb14ax10]=_0xb14axe[_0xb14ax7];_0xb14ax14=_[_0xa2c3[31]](_0xb14axd,_0xb14ax12);_0xb14ax14[_0xa2c3[28]](function(_0xb14axe){_0xb14axc=document[_0xa2c3[2]](_0xa2c3[20]);_0xb14axc[_0xa2c3[29]]=_0xa2c3[34];_0xb14axc[_0xa2c3[21]]=_0xa2c3[35]+_[_0xa2c3[36]](_0xb14axe[_0xb14ax6]);_0xb14axc[_0xa2c3[23]]=_0xb14axe[_0xb14ax7];_0xb14axc[_0xa2c3[27]]=(_0xb14axe[_0xb14ax7]==_0xb14ax2);_0xb14ax3[_0xa2c3[25]](_0xb14axc);});});_0xb14ax3[_0xa2c3[29]]=_0xa2c3[30];return _0xb14ax3;}function createDropdownFromArray(_0xb14ax16,_0xb14ax2){var _0xb14ax3=document[_0xa2c3[2]](_0xa2c3[19]);for(var _0xb14ax17 in _0xb14ax16){var _0xb14axc=document[_0xa2c3[2]](_0xa2c3[20]);_0xb14axc[_0xa2c3[21]]=_0xb14ax16[_0xb14ax17];_0xb14axc[_0xa2c3[23]]=_0xb14ax17;if(_0xb14ax2>0||_0xb14ax2!=_0xa2c3[37]){_0xb14axc[_0xa2c3[27]]=(_0xb14ax2===_0xb14ax17)?true:false};_0xb14ax3[_0xa2c3[25]](_0xb14axc);};_0xb14ax3[_0xa2c3[29]]=_0xa2c3[30];return _0xb14ax3;}function Dialog(_0xb14ax8,_0xb14ax19,_0xb14ax1a,_0xb14ax1b,_0xb14ax1c,_0xb14ax1d,_0xb14ax1e){var _0xb14ax1f=0;if(mxClient[_0xa2c3[38]]&&document[_0xa2c3[39]]!=9){_0xb14ax1f=60};_0xb14ax1a+=_0xb14ax1f;_0xb14ax1b+=_0xb14ax1f;var _0xb14ax20=Math[_0xa2c3[43]](0,Math[_0xa2c3[42]]((document[_0xa2c3[41]][_0xa2c3[40]]-_0xb14ax1a)/2));var _0xb14ax21=Math[_0xa2c3[43]](0,Math[_0xa2c3[42]]((Math[_0xa2c3[43]](document[_0xa2c3[41]][_0xa2c3[44]],document[_0xa2c3[45]][_0xa2c3[44]])-_0xb14ax1b)/3));var _0xb14ax22=_0xb14ax8[_0xa2c3[47]](_0xa2c3[46]);_0xb14ax22[_0xa2c3[29]]=_0xa2c3[48];_0xb14ax22[_0xa2c3[50]][_0xa2c3[49]]=_0xa2c3[51];_0xb14ax22[_0xa2c3[50]][_0xa2c3[52]]=_0xa2c3[53];var _0xb14ax23=_0xb14ax8[_0xa2c3[47]](_0xa2c3[54]);_0xb14ax23[_0xa2c3[29]]=_0xa2c3[55];_0xb14ax23[_0xa2c3[25]](_0xb14ax19);_0xb14ax22[_0xa2c3[25]](_0xb14ax23);if(this[_0xa2c3[56]]==null){this[_0xa2c3[56]]=_0xb14ax8[_0xa2c3[47]](_0xa2c3[57]);this[_0xa2c3[56]][_0xa2c3[29]]=_0xa2c3[58];if(mxClient[_0xa2c3[59]]){ new mxDivResizer(this[_0xa2c3[56]])};};if(_0xb14ax1c){document[_0xa2c3[41]][_0xa2c3[25]](this[_0xa2c3[56]])};document[_0xa2c3[41]][_0xa2c3[25]](_0xb14ax22);this[_0xa2c3[60]]=_0xb14ax1e;this[_0xa2c3[61]]=_0xb14ax22;}Dialog[_0xa2c3[63]][_0xa2c3[62]]=function(){if(this[_0xa2c3[60]]!=null){this[_0xa2c3[60]]();this[_0xa2c3[60]]=null;};this[_0xa2c3[61]][_0xa2c3[65]][_0xa2c3[64]](this[_0xa2c3[61]]);this[_0xa2c3[56]][_0xa2c3[65]][_0xa2c3[64]](this[_0xa2c3[56]]);};function ImportDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[68]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[72])+_0xa2c3[74]);var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax2b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[78]);var _0xb14ax2c=_0xb14ax8[_0xa2c3[47]](_0xa2c3[79]);var _0xb14ax2d=document[_0xa2c3[2]](_0xa2c3[80]);_0xb14ax2d[_0xa2c3[50]][_0xa2c3[81]]=_0xa2c3[82];_0xb14ax2d[_0xa2c3[50]][_0xa2c3[83]]=_0xa2c3[84];var _0xb14ax3=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax3[_0xa2c3[3]]=_0xa2c3[85];_0xb14ax3[_0xa2c3[5]](_0xa2c3[86],_0xa2c3[87]);_0xb14ax3[_0xa2c3[97]](_0xa2c3[88],function _0xb14ax2e(_0xb14ax2f){var _0xb14ax30=_0xb14ax2f[_0xa2c3[90]][_0xa2c3[89]][0];console[_0xa2c3[91]](_0xb14ax30);if(_0xb14ax30){if(_0xb14ax30[_0xa2c3[3]]===_0xa2c3[87]){var _0xb14ax31= new FileReader();_0xb14ax31[_0xa2c3[92]]=function(_0xb14ax32){var _0xb14ax33=_0xb14ax32[_0xa2c3[90]][_0xa2c3[93]];mxUtils[_0xa2c3[75]](_0xb14ax2d,_0xb14ax33);};_0xb14ax31[_0xa2c3[94]](_0xb14ax30);}else {alert(_0xa2c3[95])}}else {alert(_0xa2c3[96])};},false);_0xb14ax2c[_0xa2c3[25]](_0xb14ax3);_0xb14ax2c[_0xa2c3[25]](_0xb14ax2d);_0xb14ax2b[_0xa2c3[25]](_0xb14ax2c);_0xb14ax27[_0xa2c3[25]](_0xb14ax2b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[72]),mxUtils[_0xa2c3[100]](this,function(_0xb14ax35){var _0xb14ax36=mxUtils[_0xa2c3[98]](_0xb14ax2d[_0xa2c3[23]]);_0xb14ax8[_0xa2c3[13]][_0xa2c3[99]](_0xb14ax36[_0xa2c3[45]]);_0xb14ax8[_0xa2c3[76]]();}));_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function AboutDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[68]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[104])+_0xa2c3[105]);var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax39=document[_0xa2c3[2]](_0xa2c3[106]);_0xb14ax39[_0xa2c3[50]][_0xa2c3[107]]=_0xa2c3[108];_0xb14ax39[_0xa2c3[5]](_0xa2c3[81],_0xa2c3[109]);_0xb14ax39[_0xa2c3[5]](_0xa2c3[81],_0xa2c3[110]);_0xb14ax39[_0xa2c3[5]](_0xa2c3[111],IMAGE_PATH+_0xa2c3[112]);_0xb14ax27[_0xa2c3[25]](_0xb14ax39);mxUtils[_0xa2c3[113]](_0xb14ax27);mxUtils[_0xa2c3[75]](_0xb14ax27,_0xa2c3[114]+mxClient[_0xa2c3[115]]);mxUtils[_0xa2c3[113]](_0xb14ax27);var _0xb14ax3a=document[_0xa2c3[2]](_0xa2c3[116]);_0xb14ax3a[_0xa2c3[5]](_0xa2c3[117],_0xa2c3[118]);_0xb14ax3a[_0xa2c3[5]](_0xa2c3[90],_0xa2c3[119]);mxUtils[_0xa2c3[75]](_0xb14ax3a,_0xa2c3[120]);_0xb14ax27[_0xa2c3[25]](_0xb14ax3a);mxUtils[_0xa2c3[113]](_0xb14ax27);mxUtils[_0xa2c3[113]](_0xb14ax27);var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[62]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function SaveDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[68]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[121]));var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax3c=_0xa2c3[122];var _0xb14ax3d=_0xa2c3[123]+_0xb14ax3c;var _0xb14ax2=_0xb14ax8[_0xa2c3[13]][_0xa2c3[124]]();var _0xb14ax2b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[78]);var _0xb14ax2c=_0xb14ax8[_0xa2c3[47]](_0xa2c3[125]);var _0xb14ax3e=_0xb14ax8[_0xa2c3[47]](_0xa2c3[126]);var _0xb14ax3f=document[_0xa2c3[2]](_0xa2c3[127]);_0xb14ax3f[_0xa2c3[29]]=_0xa2c3[128];mxUtils[_0xa2c3[75]](_0xb14ax3f,mxResources[_0xa2c3[73]](_0xb14ax3c));_0xb14ax2c[_0xa2c3[25]](_0xb14ax3f);var _0xb14ax40=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax40[_0xa2c3[5]](_0xa2c3[23],_0xb14ax2+_0xa2c3[129]);_0xb14ax40[_0xa2c3[5]](_0xa2c3[130],_0xb14ax3d);_0xb14ax40[_0xa2c3[29]]=_0xa2c3[131];_0xb14ax3e[_0xa2c3[25]](_0xb14ax40);_0xb14ax2b[_0xa2c3[25]](_0xb14ax2c);_0xb14ax2b[_0xa2c3[25]](_0xb14ax3e);_0xb14ax27[_0xa2c3[25]](_0xb14ax2b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[132]),function(){_0xb14ax8[_0xa2c3[121]](_0xb14ax40[_0xa2c3[23]]);_0xb14ax8[_0xa2c3[76]]();});_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function NewDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[68]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[133]));var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax3c=_0xa2c3[122];var _0xb14ax3d=_0xa2c3[123]+_0xb14ax3c;var _0xb14ax2=_0xb14ax8[_0xa2c3[13]][_0xa2c3[124]]();var _0xb14ax2b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[78]);var _0xb14ax2c=_0xb14ax8[_0xa2c3[47]](_0xa2c3[125]);var _0xb14ax3e=_0xb14ax8[_0xa2c3[47]](_0xa2c3[126]);var _0xb14ax3f=document[_0xa2c3[2]](_0xa2c3[127]);_0xb14ax3f[_0xa2c3[29]]=_0xa2c3[128];mxUtils[_0xa2c3[75]](_0xb14ax3f,mxResources[_0xa2c3[73]](_0xb14ax3c));_0xb14ax2c[_0xa2c3[25]](_0xb14ax3f);var _0xb14ax40=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax40[_0xa2c3[5]](_0xa2c3[23],_0xb14ax2+_0xa2c3[134]);_0xb14ax40[_0xa2c3[5]](_0xa2c3[130],_0xb14ax3d);_0xb14ax40[_0xa2c3[29]]=_0xa2c3[131];_0xb14ax3e[_0xa2c3[25]](_0xb14ax40);_0xb14ax2b[_0xa2c3[25]](_0xb14ax2c);_0xb14ax2b[_0xa2c3[25]](_0xb14ax3e);_0xb14ax27[_0xa2c3[25]](_0xb14ax2b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[133]),function(){_0xb14ax8[_0xa2c3[133]](_0xb14ax40[_0xa2c3[23]]);_0xb14ax8[_0xa2c3[76]]();});_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function VariableDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[68]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[135]));var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax3c=_0xa2c3[122];var _0xb14ax3d=_0xa2c3[123]+_0xb14ax3c;var _0xb14ax2=_0xb14ax8[_0xa2c3[13]][_0xa2c3[124]]();var _0xb14ax2b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[78]);var _0xb14ax2c=_0xb14ax8[_0xa2c3[47]](_0xa2c3[125]);var _0xb14ax3e=_0xb14ax8[_0xa2c3[47]](_0xa2c3[126]);var _0xb14ax3f=document[_0xa2c3[2]](_0xa2c3[127]);_0xb14ax3f[_0xa2c3[29]]=_0xa2c3[128];mxUtils[_0xa2c3[75]](_0xb14ax3f,mxResources[_0xa2c3[73]](_0xb14ax3c));_0xb14ax2c[_0xa2c3[25]](_0xb14ax3f);var _0xb14ax40=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax40[_0xa2c3[5]](_0xa2c3[23],_0xa2c3[136]);_0xb14ax40[_0xa2c3[5]](_0xa2c3[130],_0xb14ax3d);_0xb14ax40[_0xa2c3[29]]=_0xa2c3[131];_0xb14ax3e[_0xa2c3[25]](_0xb14ax40);_0xb14ax2b[_0xa2c3[25]](_0xb14ax2c);_0xb14ax2b[_0xa2c3[25]](_0xb14ax3e);_0xb14ax27[_0xa2c3[25]](_0xb14ax2b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[133]),function(){_0xb14ax8[_0xa2c3[135]](_0xb14ax40[_0xa2c3[23]]);_0xb14ax8[_0xa2c3[76]]();});_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function OpenDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[68]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[8]));var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax2b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[78]);var _0xb14ax2c=_0xb14ax8[_0xa2c3[47]](_0xa2c3[125]);var _0xb14ax3e=_0xb14ax8[_0xa2c3[47]](_0xa2c3[126]);var _0xb14ax3f=document[_0xa2c3[2]](_0xa2c3[127]);_0xb14ax3f[_0xa2c3[29]]=_0xa2c3[128];mxUtils[_0xa2c3[75]](_0xb14ax3f,mxResources[_0xa2c3[73]](_0xa2c3[122]));_0xb14ax2c[_0xa2c3[25]](_0xb14ax3f);var _0xb14axa= new XMLHttpRequest();_0xb14axa[_0xa2c3[8]](_0xa2c3[7],_0xa2c3[137],false);_0xb14axa[_0xa2c3[14]](_0xa2c3[9],_0xa2c3[10]+_0xb14ax8[_0xa2c3[13]][_0xa2c3[12]][_0xa2c3[11]]);_0xb14axa[_0xa2c3[15]](null);var _0xb14axb=[];if(_0xb14axa[_0xa2c3[16]]===200){_0xb14axb=JSON[_0xa2c3[18]](_0xb14axa[_0xa2c3[17]])};var _0xb14ax40=document[_0xa2c3[2]](_0xa2c3[19]);for(var _0xb14ax44=0;_0xb14ax44<_0xb14axb[_0xa2c3[138]];_0xb14ax44++){var _0xb14axc=document[_0xa2c3[2]](_0xa2c3[20]);_0xb14axc[_0xa2c3[21]]=_0xb14axb[_0xb14ax44][_0xa2c3[122]];_0xb14axc[_0xa2c3[23]]=_0xb14axb[_0xb14ax44][_0xa2c3[130]];_0xb14ax40[_0xa2c3[25]](_0xb14axc);};_0xb14ax40[_0xa2c3[29]]=_0xa2c3[131];_0xb14ax3e[_0xa2c3[25]](_0xb14ax40);_0xb14ax2b[_0xa2c3[25]](_0xb14ax2c);_0xb14ax2b[_0xa2c3[25]](_0xb14ax3e);_0xb14ax27[_0xa2c3[25]](_0xb14ax2b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[8]),function(){console[_0xa2c3[91]](_0xb14ax40);console[_0xa2c3[91]](_0xb14ax40[_0xa2c3[23]]);window[_0xa2c3[8]](_0xa2c3[139]+_0xb14ax40[_0xa2c3[23]],_0xa2c3[119]);_0xb14ax8[_0xa2c3[76]]();});_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function EditFileDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[68]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[140]));var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax2b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[78]);var _0xb14ax2c=_0xb14ax8[_0xa2c3[47]](_0xa2c3[79]);var _0xb14ax2d=document[_0xa2c3[2]](_0xa2c3[80]);_0xb14ax2d[_0xa2c3[50]][_0xa2c3[81]]=_0xa2c3[82];_0xb14ax2d[_0xa2c3[50]][_0xa2c3[83]]=_0xa2c3[84];_0xb14ax2d[_0xa2c3[23]]=mxUtils[_0xa2c3[142]](_0xb14ax8[_0xa2c3[13]][_0xa2c3[141]]());if(fileSupport){function _0xb14ax46(_0xb14ax2f){_0xb14ax2f[_0xa2c3[143]]();_0xb14ax2f[_0xa2c3[144]]();if(_0xb14ax2f[_0xa2c3[145]][_0xa2c3[89]][_0xa2c3[138]]>0){var _0xb14ax47=_0xb14ax2f[_0xa2c3[145]][_0xa2c3[89]][0];var _0xb14ax48= new FileReader();_0xb14ax48[_0xa2c3[92]]=function(_0xb14ax32){_0xb14ax2d[_0xa2c3[23]]=_0xb14ax32[_0xa2c3[90]][_0xa2c3[93]]};_0xb14ax48[_0xa2c3[94]](_0xb14ax47);};}function _0xb14ax49(_0xb14ax2f){_0xb14ax2f[_0xa2c3[143]]();_0xb14ax2f[_0xa2c3[144]]();}_0xb14ax2d[_0xa2c3[97]](_0xa2c3[146],_0xb14ax49,false);_0xb14ax2d[_0xa2c3[97]](_0xa2c3[147],_0xb14ax46,false);};_0xb14ax2c[_0xa2c3[25]](_0xb14ax2d);_0xb14ax2b[_0xa2c3[25]](_0xb14ax2c);_0xb14ax27[_0xa2c3[25]](_0xb14ax2b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[132]),function(){var _0xb14ax36=mxUtils[_0xa2c3[98]](_0xb14ax2d[_0xa2c3[23]]);_0xb14ax8[_0xa2c3[13]][_0xa2c3[99]](_0xb14ax36[_0xa2c3[45]]);_0xb14ax8[_0xa2c3[76]]();});_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function ExportDialog(_0xb14ax8){var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[148]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[149])+_0xa2c3[74]);var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax4b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[150]);var _0xb14ax4c=_0xb14ax8[_0xa2c3[47]](_0xa2c3[151]);var _0xb14ax3f=document[_0xa2c3[2]](_0xa2c3[127]);_0xb14ax3f[_0xa2c3[29]]=_0xa2c3[152];mxUtils[_0xa2c3[75]](_0xb14ax3f,mxResources[_0xa2c3[73]](_0xa2c3[153]));var _0xb14ax3=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax3[_0xa2c3[5]](_0xa2c3[23],_0xb14ax8[_0xa2c3[13]][_0xa2c3[124]]());_0xb14ax3[_0xa2c3[29]]=_0xa2c3[131];var _0xb14ax22=_0xb14ax8[_0xa2c3[47]](_0xa2c3[154]);_0xb14ax22[_0xa2c3[25]](_0xb14ax3);_0xb14ax4c[_0xa2c3[25]](_0xb14ax3f);_0xb14ax4c[_0xa2c3[25]](_0xb14ax22);_0xb14ax4b[_0xa2c3[25]](_0xb14ax4c);_0xb14ax27[_0xa2c3[25]](_0xb14ax4b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[149]),mxUtils[_0xa2c3[100]](this,function(_0xb14ax35){_0xb14ax8[_0xa2c3[132]](false);var _0xb14ax4d=encodeURIComponent(mxUtils[_0xa2c3[155]](_0xb14ax8[_0xa2c3[13]][_0xa2c3[141]]())); new mxXmlRequest(SAVE_URL+_0xb14ax8[_0xa2c3[13]][_0xa2c3[12]][_0xa2c3[130]]+_0xa2c3[157],_0xa2c3[158]+_0xb14ax3[_0xa2c3[23]],_0xa2c3[7])[_0xa2c3[156]](document,_0xa2c3[119]);_0xb14ax8[_0xa2c3[76]]();}));_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}function GeneralDialog(_0xb14ax8,_0xb14ax4f){var _0xb14ax50=_0xb14ax8[_0xa2c3[13]][_0xa2c3[159]];var _0xb14ax25=_0xb14ax8[_0xa2c3[47]](_0xa2c3[66]);var _0xb14ax26=_0xb14ax8[_0xa2c3[47]](_0xa2c3[67]);var _0xb14ax27=_0xb14ax8[_0xa2c3[47]](_0xa2c3[160]);var _0xb14ax28=_0xb14ax8[_0xa2c3[47]](_0xa2c3[69]);var _0xb14ax29=_0xb14ax8[_0xa2c3[71]](_0xa2c3[70]);mxUtils[_0xa2c3[75]](_0xb14ax29,mxResources[_0xa2c3[73]](_0xa2c3[140])+_0xa2c3[161]+mxResources[_0xa2c3[73]](_0xb14ax4f[_0xa2c3[23]][_0xa2c3[162]]));var _0xb14ax2a=mxUtils[_0xa2c3[77]](_0xa2c3[37],function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax2a[_0xa2c3[29]]=_0xa2c3[62];_0xb14ax26[_0xa2c3[25]](_0xb14ax2a);_0xb14ax26[_0xa2c3[25]](_0xb14ax29);var _0xb14ax51=_0xb14ax4f[_0xa2c3[23]][_0xa2c3[163]][_0xa2c3[138]];var _0xb14ax4b=_0xb14ax8[_0xa2c3[47]](_0xa2c3[150]);for(var _0xb14ax52=0;_0xb14ax52<_0xb14ax51;_0xb14ax52++){var _0xb14ax3c=_0xb14ax4f[_0xa2c3[23]][_0xa2c3[163]][_0xb14ax52][_0xa2c3[122]];var _0xb14ax3d=_0xa2c3[123]+_0xb14ax3c;var _0xb14ax2=_0xb14ax4f[_0xa2c3[23]][_0xa2c3[163]][_0xb14ax52][_0xa2c3[23]];var _0xb14ax4c=_0xb14ax8[_0xa2c3[47]]((_0xb14ax52==_0xb14ax51-1)?_0xa2c3[151]:_0xa2c3[164]);var _0xb14ax3f=document[_0xa2c3[2]](_0xa2c3[127]);_0xb14ax3f[_0xa2c3[29]]=_0xa2c3[152];mxUtils[_0xa2c3[75]](_0xb14ax3f,mxResources[_0xa2c3[73]](_0xb14ax3c));_0xb14ax4c[_0xa2c3[25]](_0xb14ax3f);var _0xb14ax3;switch(_0xb14ax3c){case _0xa2c3[166]:_0xb14ax3=createDropdownFromApi(_0xa2c3[165],_0xb14ax2,_0xa2c3[122],_0xa2c3[130],_0xb14ax8,true);break ;;case _0xa2c3[168]:_0xb14ax3=createDropdownFromApi(_0xa2c3[167],_0xb14ax2,_0xa2c3[122],_0xa2c3[122],_0xb14ax8,true);break ;;case _0xa2c3[170]:_0xb14ax3=createDropdownFromApi(_0xa2c3[169],_0xb14ax2,_0xa2c3[122],_0xa2c3[130],_0xb14ax8,true);break ;;case _0xa2c3[172]:_0xb14ax3=createDropdownFromApi(_0xa2c3[171],_0xb14ax2,_0xa2c3[122],_0xa2c3[130],_0xb14ax8,true);break ;;case _0xa2c3[173]:_0xb14ax3=createDropdownFromArray(ISPEECHASRMODEL,_0xb14ax2);break ;;case _0xa2c3[174]:_0xb14ax3=createDropdownFromArray(ISPEECHASRLANG,_0xb14ax2);break ;;case _0xa2c3[175]:_0xb14ax3=createDropdownFromArray(ISPEECHLANG,_0xb14ax2);break ;;case _0xa2c3[176]:_0xb14ax3=createDropdownFromArray(GOOGLETTSLANG,_0xb14ax2);break ;;case _0xa2c3[179]:_0xb14ax3=createGroupedDropdownFromApi(_0xa2c3[177],_0xb14ax2,_0xa2c3[122],_0xa2c3[130],_0xb14ax8,false,_0xa2c3[178]);break ;;case _0xa2c3[180]:_0xb14ax3=createDropdownFromApi(_0xa2c3[137],_0xb14ax2,_0xa2c3[122],_0xa2c3[130],_0xb14ax8,true);break ;;case _0xa2c3[182]:_0xb14ax3=createDropdownFromApi(_0xa2c3[181],_0xb14ax2,_0xa2c3[122],_0xa2c3[130],_0xb14ax8,true);break ;;case _0xa2c3[185]:_0xb14ax3=createDropdownFromApi(_0xa2c3[183],_0xb14ax2,_0xa2c3[184],_0xa2c3[130],_0xb14ax8,false);break ;;case _0xa2c3[186]:;case _0xa2c3[187]:;case _0xa2c3[188]:;case _0xa2c3[189]:;case _0xa2c3[17]:;case _0xa2c3[192]:_0xb14ax3=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax3[_0xa2c3[5]](_0xa2c3[3],_0xa2c3[190]);_0xb14ax3[_0xa2c3[5]](_0xa2c3[191],0);_0xb14ax3[_0xa2c3[5]](_0xa2c3[43],1000);_0xb14ax3[_0xa2c3[5]](_0xa2c3[23],_0xb14ax2);_0xb14ax3[_0xa2c3[29]]=_0xa2c3[131];break ;;case _0xa2c3[21]:;case _0xa2c3[193]:;case _0xa2c3[194]:;case _0xa2c3[195]:;case _0xa2c3[197]:_0xb14ax3=document[_0xa2c3[2]](_0xa2c3[80]);_0xb14ax3[_0xa2c3[196]]=_0xb14ax2;_0xb14ax3[_0xa2c3[29]]=_0xa2c3[131];break ;;default:_0xb14ax3=document[_0xa2c3[2]](_0xa2c3[1]);_0xb14ax3[_0xa2c3[5]](_0xa2c3[23],_0xb14ax2);_0xb14ax3[_0xa2c3[29]]=_0xa2c3[131];break ;;};_0xb14ax3[_0xa2c3[5]](_0xa2c3[130],_0xb14ax3d);var _0xb14ax22=_0xb14ax8[_0xa2c3[47]](_0xa2c3[154]);_0xb14ax22[_0xa2c3[25]](_0xb14ax3);if(mxResources[_0xa2c3[73]](_0xa2c3[198]+_0xb14ax3c)){var _0xb14ax53=_0xb14ax8[_0xa2c3[47]](_0xa2c3[199]);_0xb14ax53[_0xa2c3[29]]=_0xa2c3[200];mxUtils[_0xa2c3[75]](_0xb14ax53,mxResources[_0xa2c3[73]](_0xa2c3[198]+_0xb14ax3c));_0xb14ax22[_0xa2c3[25]](_0xb14ax53);};_0xb14ax4c[_0xa2c3[25]](_0xb14ax22);_0xb14ax4b[_0xa2c3[25]](_0xb14ax4c);};_0xb14ax27[_0xa2c3[25]](_0xb14ax4b);var _0xb14ax34=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[132]),mxUtils[_0xa2c3[100]](this,function(_0xb14ax35){for(var _0xb14ax52=0;_0xb14ax52<_0xb14ax4f[_0xa2c3[23]][_0xa2c3[163]][_0xa2c3[138]];_0xb14ax52++){var _0xb14ax3d=_0xa2c3[123]+_0xb14ax4f[_0xa2c3[23]][_0xa2c3[163]][_0xb14ax52][_0xa2c3[122]];var _0xb14ax3c=_0xb14ax4f[_0xa2c3[23]][_0xa2c3[163]][_0xb14ax52][_0xa2c3[122]];console[_0xa2c3[91]](_0xb14ax3c,document[_0xa2c3[201]](_0xb14ax3d)[_0xa2c3[23]]);_0xb14ax4f[_0xa2c3[5]](_0xb14ax3c,document[_0xa2c3[201]](_0xb14ax3d)[_0xa2c3[23]]);};_0xb14ax50[_0xa2c3[202]](_0xb14ax4f);_0xb14ax8[_0xa2c3[76]]();}));_0xb14ax34[_0xa2c3[29]]=_0xa2c3[101];var _0xb14ax37=mxUtils[_0xa2c3[77]](mxResources[_0xa2c3[73]](_0xa2c3[102]),function(){_0xb14ax8[_0xa2c3[76]]()});_0xb14ax37[_0xa2c3[29]]=_0xa2c3[103];_0xb14ax28[_0xa2c3[25]](_0xb14ax34);_0xb14ax28[_0xa2c3[25]](_0xb14ax37);_0xb14ax25[_0xa2c3[25]](_0xb14ax26);_0xb14ax25[_0xa2c3[25]](_0xb14ax27);_0xb14ax25[_0xa2c3[25]](_0xb14ax28);this[_0xa2c3[61]]=_0xb14ax25;}
\ No newline at end of file
+var _0x9d40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x6E\x70\x75\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x65\x63\x6B\x65\x64","\x47\x45\x54","\x6F\x70\x65\x6E","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x61","\x65\x64\x69\x74\x6F\x72","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x73\x65\x6C\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x2D\x2D\x20\x4E\x6F\x6E\x65\x20\x2D\x2D","\x76\x61\x6C\x75\x65","\x30","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x6F\x77\x73","\x73\x65\x6C\x65\x63\x74\x65\x64","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x73\x65\x6C\x65\x63\x74\x32","\x66\x69\x6C\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x66\x61\x74\x68\x65\x72","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x73\x6F\x6E","\x2D","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x62\x6F\x64\x79","\x72\x6F\x75\x6E\x64","\x6D\x61\x78","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x44\x69\x61\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x6D\x6F\x64\x61\x6C\x20\x66\x61\x64\x65\x20\x69\x6E\x20\x63\x65\x6E\x74\x65\x72","\x64\x69\x73\x70\x6C\x61\x79","\x73\x74\x79\x6C\x65","\x62\x6C\x6F\x63\x6B","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x31\x32\x70\x78","\x67\x65\x4D\x6F\x64\x61\x6C\x44\x69\x61\x6C\x6F\x67","\x6D\x6F\x64\x61\x6C\x2D\x64\x69\x61\x6C\x6F\x67","\x62\x67","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x6D\x6F\x64\x61\x6C\x2D\x62\x61\x63\x6B\x64\x72\x6F\x70\x20\x66\x61\x64\x65\x20\x69\x6E","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x6E\x44\x69\x61\x6C\x6F\x67\x43\x6C\x6F\x73\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x6C\x6F\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x64\x61\x6C\x2D\x63\x6F\x6E\x74\x65\x6E\x74","\x6D\x6F\x64\x61\x6C\x2D\x68\x65\x61\x64\x65\x72","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79","\x6D\x6F\x64\x61\x6C\x2D\x66\x6F\x6F\x74\x65\x72","\x68\x34","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x69\x6D\x70\x6F\x72\x74","\x67\x65\x74","\x20\x58\x4D\x4C","\x77\x72\x69\x74\x65","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x62\x75\x74\x74\x6F\x6E","\x72\x6F\x77","\x63\x6F\x6C\x2D\x6D\x64\x2D\x31\x32","\x74\x65\x78\x74\x61\x72\x65\x61","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x33\x37\x34\x70\x78","\x66\x69\x6C\x65","\x61\x63\x63\x65\x70\x74","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x63\x68\x61\x6E\x67\x65","\x66\x69\x6C\x65\x73","\x74\x61\x72\x67\x65\x74","\x6C\x6F\x67","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x73\x75\x6C\x74","\x72\x65\x61\x64\x41\x73\x54\x65\x78\x74","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x6F\x72\x6D\x61\x74\x20\x66\x69\x6C\x65","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x62\x69\x6E\x64","\x62\x74\x6E\x20\x62\x6C\x75\x65","\x63\x61\x6E\x63\x65\x6C","\x62\x74\x6E\x20\x64\x65\x66\x61\x75\x6C\x74","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30\x70\x78","\x31\x37\x36","\x31\x35\x31","\x73\x72\x63","\x2F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x62\x72","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x6C\x61\x62\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x61","\x68\x72\x65\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D\x2F","\x5F\x62\x6C\x61\x6E\x6B","\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D","\x73\x61\x76\x65\x41\x73","\x6E\x61\x6D\x65","\x5F","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x6C\x61\x62\x65\x6C","\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C\x20\x70\x75\x6C\x6C\x2D\x72\x69\x67\x68\x74","\x5F\x63\x6F\x70\x79","\x69\x64","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C","\x73\x61\x76\x65","\x6E\x65\x77","\x5F\x6E\x65\x77","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x61\x6D\x65","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x65\x64\x69\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x64\x61\x74\x61\x54\x72\x61\x6E\x73\x66\x65\x72","\x64\x72\x61\x67\x6F\x76\x65\x72","\x64\x72\x6F\x70","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D","\x65\x78\x70\x6F\x72\x74","\x66\x6F\x72\x6D\x2D\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x20\x66\x6F\x72\x6D\x2D\x72\x6F\x77\x2D\x73\x65\x70\x65\x72\x61\x74\x65\x64","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70\x20\x6C\x61\x73\x74","\x63\x6F\x6C\x2D\x73\x6D\x2D\x34\x20\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x73\x6D\x2D\x38","\x67\x65\x74\x58\x6D\x6C","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x67\x72\x61\x70\x68","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x20\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x2D\x73\x63\x72\x6F\x6C\x6C","\x20","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x73\x69\x70\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x71\x75\x65\x75\x65\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x6F\x64\x65\x6C","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2F\x61\x6C\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x6F\x64\x62\x63\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x5F\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x69\x67\x69\x74","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6E\x75\x6D\x62\x65\x72","\x6D\x69\x6E","\x72\x65\x74\x72\x79","\x6B\x65\x79","\x71\x75\x65\x72\x79","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x63\x6F\x6D\x6D\x61\x6E\x64","\x68\x65\x6C\x70\x5F","\x70","\x68\x65\x6C\x70\x2D\x62\x6C\x6F\x63\x6B","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x72\x65\x66\x72\x65\x73\x68"];_0x9d40[0];function createCheckbox(_0x6bacx2){var _0x6bacx3=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx3[_0x9d40[5]](_0x9d40[3],_0x9d40[4]);if(_0x6bacx2){_0x6bacx3[_0x9d40[5]](_0x9d40[6],true)};return _0x6bacx3;}function createDropdownFromApi(_0x6bacx5,_0x6bacx2,_0x6bacx6,_0x6bacx7,_0x6bacx8,_0x6bacx9){var _0x6bacxa= new XMLHttpRequest();_0x6bacxa[_0x9d40[8]](_0x9d40[7],_0x6bacx5,false);_0x6bacxa[_0x9d40[14]](_0x9d40[9],_0x9d40[10]+_0x6bacx8[_0x9d40[13]][_0x9d40[12]][_0x9d40[11]]);_0x6bacxa[_0x9d40[15]](null);var _0x6bacxb=[];if(_0x6bacxa[_0x9d40[16]]===200){_0x6bacxb=JSON[_0x9d40[18]](_0x6bacxa[_0x9d40[17]])};var _0x6bacx3=document[_0x9d40[2]](_0x9d40[19]);var _0x6bacxc=document[_0x9d40[2]](_0x9d40[20]);_0x6bacxc[_0x9d40[21]]=_0x9d40[22];_0x6bacxc[_0x9d40[23]]=_0x9d40[24];_0x6bacx3[_0x9d40[25]](_0x6bacxc);var _0x6bacxd=_0x6bacx9?_0x6bacxb[_0x9d40[26]]:_0x6bacxb;_0x6bacxd[_0x9d40[28]](function(_0x6bacxe){_0x6bacxc=document[_0x9d40[2]](_0x9d40[20]);_0x6bacxc[_0x9d40[21]]=_0x6bacxe[_0x6bacx6];_0x6bacxc[_0x9d40[23]]=_0x6bacxe[_0x6bacx7];_0x6bacxc[_0x9d40[27]]=(_0x6bacxe[_0x6bacx7]==_0x6bacx2);_0x6bacx3[_0x9d40[25]](_0x6bacxc);});_0x6bacx3[_0x9d40[29]]=_0x9d40[30];return _0x6bacx3;}function createGroupedDropdownFromApi(_0x6bacx5,_0x6bacx2,_0x6bacx6,_0x6bacx7,_0x6bacx8,_0x6bacx9,_0x6bacx10){var _0x6bacxa= new XMLHttpRequest();_0x6bacxa[_0x9d40[8]](_0x9d40[7],_0x6bacx5,false);_0x6bacxa[_0x9d40[14]](_0x9d40[9],_0x9d40[10]+_0x6bacx8[_0x9d40[13]][_0x9d40[12]][_0x9d40[11]]);_0x6bacxa[_0x9d40[15]](null);var _0x6bacxb=[];if(_0x6bacxa[_0x9d40[16]]===200){_0x6bacxb=JSON[_0x9d40[18]](_0x6bacxa[_0x9d40[17]])};var _0x6bacx3=document[_0x9d40[2]](_0x9d40[19]);var _0x6bacxc=document[_0x9d40[2]](_0x9d40[20]);_0x6bacxc[_0x9d40[21]]=_0x9d40[22];_0x6bacxc[_0x9d40[23]]=_0x9d40[24];_0x6bacx3[_0x9d40[25]](_0x6bacxc);var _0x6bacxd=_0x6bacx9?_0x6bacxb[_0x9d40[26]]:_0x6bacxb;var _0x6bacx11={};var _0x6bacx12={};_0x6bacx11[_0x6bacx10]=null;var _0x6bacx13=_[_0x9d40[31]](_0x6bacxd,_0x6bacx11);var _0x6bacx14={};_0x6bacx13[_0x9d40[28]](function(_0x6bacxe){_0x6bacxc=document[_0x9d40[2]](_0x9d40[20]);_0x6bacxc[_0x9d40[29]]=_0x9d40[32];_0x6bacxc[_0x9d40[21]]=_0x6bacxe[_0x6bacx6][_0x9d40[33]]();_0x6bacxc[_0x9d40[23]]=_0x6bacxe[_0x6bacx7];_0x6bacxc[_0x9d40[27]]=(_0x6bacxe[_0x6bacx7]==_0x6bacx2);_0x6bacx3[_0x9d40[25]](_0x6bacxc);_0x6bacx12[_0x6bacx10]=_0x6bacxe[_0x6bacx7];_0x6bacx14=_[_0x9d40[31]](_0x6bacxd,_0x6bacx12);_0x6bacx14[_0x9d40[28]](function(_0x6bacxe){_0x6bacxc=document[_0x9d40[2]](_0x9d40[20]);_0x6bacxc[_0x9d40[29]]=_0x9d40[34];_0x6bacxc[_0x9d40[21]]=_0x9d40[35]+_[_0x9d40[36]](_0x6bacxe[_0x6bacx6]);_0x6bacxc[_0x9d40[23]]=_0x6bacxe[_0x6bacx7];_0x6bacxc[_0x9d40[27]]=(_0x6bacxe[_0x6bacx7]==_0x6bacx2);_0x6bacx3[_0x9d40[25]](_0x6bacxc);});});_0x6bacx3[_0x9d40[29]]=_0x9d40[30];return _0x6bacx3;}function createDropdownFromArray(_0x6bacx16,_0x6bacx2){var _0x6bacx3=document[_0x9d40[2]](_0x9d40[19]);for(var _0x6bacx17 in _0x6bacx16){var _0x6bacxc=document[_0x9d40[2]](_0x9d40[20]);_0x6bacxc[_0x9d40[21]]=_0x6bacx16[_0x6bacx17];_0x6bacxc[_0x9d40[23]]=_0x6bacx17;if(_0x6bacx2>0||_0x6bacx2!=_0x9d40[37]){_0x6bacxc[_0x9d40[27]]=(_0x6bacx2===_0x6bacx17)?true:false};_0x6bacx3[_0x9d40[25]](_0x6bacxc);};_0x6bacx3[_0x9d40[29]]=_0x9d40[30];return _0x6bacx3;}function Dialog(_0x6bacx8,_0x6bacx19,_0x6bacx1a,_0x6bacx1b,_0x6bacx1c,_0x6bacx1d,_0x6bacx1e){var _0x6bacx1f=0;if(mxClient[_0x9d40[38]]&&document[_0x9d40[39]]!=9){_0x6bacx1f=60};_0x6bacx1a+=_0x6bacx1f;_0x6bacx1b+=_0x6bacx1f;var _0x6bacx20=Math[_0x9d40[43]](0,Math[_0x9d40[42]]((document[_0x9d40[41]][_0x9d40[40]]-_0x6bacx1a)/2));var _0x6bacx21=Math[_0x9d40[43]](0,Math[_0x9d40[42]]((Math[_0x9d40[43]](document[_0x9d40[41]][_0x9d40[44]],document[_0x9d40[45]][_0x9d40[44]])-_0x6bacx1b)/3));var _0x6bacx22=_0x6bacx8[_0x9d40[47]](_0x9d40[46]);_0x6bacx22[_0x9d40[29]]=_0x9d40[48];_0x6bacx22[_0x9d40[50]][_0x9d40[49]]=_0x9d40[51];_0x6bacx22[_0x9d40[50]][_0x9d40[52]]=_0x9d40[53];var _0x6bacx23=_0x6bacx8[_0x9d40[47]](_0x9d40[54]);_0x6bacx23[_0x9d40[29]]=_0x9d40[55];_0x6bacx23[_0x9d40[25]](_0x6bacx19);_0x6bacx22[_0x9d40[25]](_0x6bacx23);if(this[_0x9d40[56]]==null){this[_0x9d40[56]]=_0x6bacx8[_0x9d40[47]](_0x9d40[57]);this[_0x9d40[56]][_0x9d40[29]]=_0x9d40[58];if(mxClient[_0x9d40[59]]){ new mxDivResizer(this[_0x9d40[56]])};};if(_0x6bacx1c){document[_0x9d40[41]][_0x9d40[25]](this[_0x9d40[56]])};document[_0x9d40[41]][_0x9d40[25]](_0x6bacx22);this[_0x9d40[60]]=_0x6bacx1e;this[_0x9d40[61]]=_0x6bacx22;}Dialog[_0x9d40[63]][_0x9d40[62]]=function(){if(this[_0x9d40[60]]!=null){this[_0x9d40[60]]();this[_0x9d40[60]]=null;};this[_0x9d40[61]][_0x9d40[65]][_0x9d40[64]](this[_0x9d40[61]]);this[_0x9d40[56]][_0x9d40[65]][_0x9d40[64]](this[_0x9d40[56]]);};function ImportDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[68]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[72])+_0x9d40[74]);var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx2b=_0x6bacx8[_0x9d40[47]](_0x9d40[78]);var _0x6bacx2c=_0x6bacx8[_0x9d40[47]](_0x9d40[79]);var _0x6bacx2d=document[_0x9d40[2]](_0x9d40[80]);_0x6bacx2d[_0x9d40[50]][_0x9d40[81]]=_0x9d40[82];_0x6bacx2d[_0x9d40[50]][_0x9d40[83]]=_0x9d40[84];var _0x6bacx3=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx3[_0x9d40[3]]=_0x9d40[85];_0x6bacx3[_0x9d40[5]](_0x9d40[86],_0x9d40[87]);_0x6bacx3[_0x9d40[97]](_0x9d40[88],function _0x6bacx2e(_0x6bacx2f){var _0x6bacx30=_0x6bacx2f[_0x9d40[90]][_0x9d40[89]][0];console[_0x9d40[91]](_0x6bacx30);if(_0x6bacx30){if(_0x6bacx30[_0x9d40[3]]===_0x9d40[87]){var _0x6bacx31= new FileReader();_0x6bacx31[_0x9d40[92]]=function(_0x6bacx32){var _0x6bacx33=_0x6bacx32[_0x9d40[90]][_0x9d40[93]];mxUtils[_0x9d40[75]](_0x6bacx2d,_0x6bacx33);};_0x6bacx31[_0x9d40[94]](_0x6bacx30);}else {alert(_0x9d40[95])}}else {alert(_0x9d40[96])};},false);_0x6bacx2c[_0x9d40[25]](_0x6bacx3);_0x6bacx2c[_0x9d40[25]](_0x6bacx2d);_0x6bacx2b[_0x9d40[25]](_0x6bacx2c);_0x6bacx27[_0x9d40[25]](_0x6bacx2b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[72]),mxUtils[_0x9d40[100]](this,function(_0x6bacx35){var _0x6bacx36=mxUtils[_0x9d40[98]](_0x6bacx2d[_0x9d40[23]]);_0x6bacx8[_0x9d40[13]][_0x9d40[99]](_0x6bacx36[_0x9d40[45]]);_0x6bacx8[_0x9d40[76]]();}));_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function AboutDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[68]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[104])+_0x9d40[105]);var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx39=document[_0x9d40[2]](_0x9d40[106]);_0x6bacx39[_0x9d40[50]][_0x9d40[107]]=_0x9d40[108];_0x6bacx39[_0x9d40[5]](_0x9d40[81],_0x9d40[109]);_0x6bacx39[_0x9d40[5]](_0x9d40[81],_0x9d40[110]);_0x6bacx39[_0x9d40[5]](_0x9d40[111],IMAGE_PATH+_0x9d40[112]);_0x6bacx27[_0x9d40[25]](_0x6bacx39);mxUtils[_0x9d40[113]](_0x6bacx27);mxUtils[_0x9d40[75]](_0x6bacx27,_0x9d40[114]+mxClient[_0x9d40[115]]);mxUtils[_0x9d40[113]](_0x6bacx27);var _0x6bacx3a=document[_0x9d40[2]](_0x9d40[116]);_0x6bacx3a[_0x9d40[5]](_0x9d40[117],_0x9d40[118]);_0x6bacx3a[_0x9d40[5]](_0x9d40[90],_0x9d40[119]);mxUtils[_0x9d40[75]](_0x6bacx3a,_0x9d40[120]);_0x6bacx27[_0x9d40[25]](_0x6bacx3a);mxUtils[_0x9d40[113]](_0x6bacx27);mxUtils[_0x9d40[113]](_0x6bacx27);var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[62]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function SaveDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[68]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[121]));var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx3c=_0x9d40[122];var _0x6bacx3d=_0x9d40[123]+_0x6bacx3c;var _0x6bacx2=_0x6bacx8[_0x9d40[13]][_0x9d40[124]]();var _0x6bacx2b=_0x6bacx8[_0x9d40[47]](_0x9d40[78]);var _0x6bacx2c=_0x6bacx8[_0x9d40[47]](_0x9d40[125]);var _0x6bacx3e=_0x6bacx8[_0x9d40[47]](_0x9d40[126]);var _0x6bacx3f=document[_0x9d40[2]](_0x9d40[127]);_0x6bacx3f[_0x9d40[29]]=_0x9d40[128];mxUtils[_0x9d40[75]](_0x6bacx3f,mxResources[_0x9d40[73]](_0x6bacx3c));_0x6bacx2c[_0x9d40[25]](_0x6bacx3f);var _0x6bacx40=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx40[_0x9d40[5]](_0x9d40[23],_0x6bacx2+_0x9d40[129]);_0x6bacx40[_0x9d40[5]](_0x9d40[130],_0x6bacx3d);_0x6bacx40[_0x9d40[29]]=_0x9d40[131];_0x6bacx3e[_0x9d40[25]](_0x6bacx40);_0x6bacx2b[_0x9d40[25]](_0x6bacx2c);_0x6bacx2b[_0x9d40[25]](_0x6bacx3e);_0x6bacx27[_0x9d40[25]](_0x6bacx2b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[132]),function(){_0x6bacx8[_0x9d40[121]](_0x6bacx40[_0x9d40[23]]);_0x6bacx8[_0x9d40[76]]();});_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function NewDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[68]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[133]));var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx3c=_0x9d40[122];var _0x6bacx3d=_0x9d40[123]+_0x6bacx3c;var _0x6bacx2=_0x6bacx8[_0x9d40[13]][_0x9d40[124]]();var _0x6bacx2b=_0x6bacx8[_0x9d40[47]](_0x9d40[78]);var _0x6bacx2c=_0x6bacx8[_0x9d40[47]](_0x9d40[125]);var _0x6bacx3e=_0x6bacx8[_0x9d40[47]](_0x9d40[126]);var _0x6bacx3f=document[_0x9d40[2]](_0x9d40[127]);_0x6bacx3f[_0x9d40[29]]=_0x9d40[128];mxUtils[_0x9d40[75]](_0x6bacx3f,mxResources[_0x9d40[73]](_0x6bacx3c));_0x6bacx2c[_0x9d40[25]](_0x6bacx3f);var _0x6bacx40=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx40[_0x9d40[5]](_0x9d40[23],_0x6bacx2+_0x9d40[134]);_0x6bacx40[_0x9d40[5]](_0x9d40[130],_0x6bacx3d);_0x6bacx40[_0x9d40[29]]=_0x9d40[131];_0x6bacx3e[_0x9d40[25]](_0x6bacx40);_0x6bacx2b[_0x9d40[25]](_0x6bacx2c);_0x6bacx2b[_0x9d40[25]](_0x6bacx3e);_0x6bacx27[_0x9d40[25]](_0x6bacx2b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[133]),function(){_0x6bacx8[_0x9d40[133]](_0x6bacx40[_0x9d40[23]]);_0x6bacx8[_0x9d40[76]]();});_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function VariableDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[68]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[135]));var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx3c=_0x9d40[122];var _0x6bacx3d=_0x9d40[123]+_0x6bacx3c;var _0x6bacx2=_0x6bacx8[_0x9d40[13]][_0x9d40[124]]();var _0x6bacx2b=_0x6bacx8[_0x9d40[47]](_0x9d40[78]);var _0x6bacx2c=_0x6bacx8[_0x9d40[47]](_0x9d40[125]);var _0x6bacx3e=_0x6bacx8[_0x9d40[47]](_0x9d40[126]);var _0x6bacx3f=document[_0x9d40[2]](_0x9d40[127]);_0x6bacx3f[_0x9d40[29]]=_0x9d40[128];mxUtils[_0x9d40[75]](_0x6bacx3f,mxResources[_0x9d40[73]](_0x6bacx3c));_0x6bacx2c[_0x9d40[25]](_0x6bacx3f);var _0x6bacx40=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx40[_0x9d40[5]](_0x9d40[23],_0x9d40[136]);_0x6bacx40[_0x9d40[5]](_0x9d40[130],_0x6bacx3d);_0x6bacx40[_0x9d40[29]]=_0x9d40[131];_0x6bacx3e[_0x9d40[25]](_0x6bacx40);_0x6bacx2b[_0x9d40[25]](_0x6bacx2c);_0x6bacx2b[_0x9d40[25]](_0x6bacx3e);_0x6bacx27[_0x9d40[25]](_0x6bacx2b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[133]),function(){_0x6bacx8[_0x9d40[135]](_0x6bacx40[_0x9d40[23]]);_0x6bacx8[_0x9d40[76]]();});_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function OpenDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[68]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[8]));var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx2b=_0x6bacx8[_0x9d40[47]](_0x9d40[78]);var _0x6bacx2c=_0x6bacx8[_0x9d40[47]](_0x9d40[125]);var _0x6bacx3e=_0x6bacx8[_0x9d40[47]](_0x9d40[126]);var _0x6bacx3f=document[_0x9d40[2]](_0x9d40[127]);_0x6bacx3f[_0x9d40[29]]=_0x9d40[128];mxUtils[_0x9d40[75]](_0x6bacx3f,mxResources[_0x9d40[73]](_0x9d40[122]));_0x6bacx2c[_0x9d40[25]](_0x6bacx3f);var _0x6bacxa= new XMLHttpRequest();_0x6bacxa[_0x9d40[8]](_0x9d40[7],_0x9d40[137],false);_0x6bacxa[_0x9d40[14]](_0x9d40[9],_0x9d40[10]+_0x6bacx8[_0x9d40[13]][_0x9d40[12]][_0x9d40[11]]);_0x6bacxa[_0x9d40[15]](null);var _0x6bacxb=[];if(_0x6bacxa[_0x9d40[16]]===200){_0x6bacxb=JSON[_0x9d40[18]](_0x6bacxa[_0x9d40[17]])};var _0x6bacx40=document[_0x9d40[2]](_0x9d40[19]);for(var _0x6bacx44=0;_0x6bacx44<_0x6bacxb[_0x9d40[138]];_0x6bacx44++){var _0x6bacxc=document[_0x9d40[2]](_0x9d40[20]);_0x6bacxc[_0x9d40[21]]=_0x6bacxb[_0x6bacx44][_0x9d40[122]];_0x6bacxc[_0x9d40[23]]=_0x6bacxb[_0x6bacx44][_0x9d40[130]];_0x6bacx40[_0x9d40[25]](_0x6bacxc);};_0x6bacx40[_0x9d40[29]]=_0x9d40[131];_0x6bacx3e[_0x9d40[25]](_0x6bacx40);_0x6bacx2b[_0x9d40[25]](_0x6bacx2c);_0x6bacx2b[_0x9d40[25]](_0x6bacx3e);_0x6bacx27[_0x9d40[25]](_0x6bacx2b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[8]),function(){console[_0x9d40[91]](_0x6bacx40);console[_0x9d40[91]](_0x6bacx40[_0x9d40[23]]);window[_0x9d40[8]](_0x9d40[139]+_0x6bacx40[_0x9d40[23]],_0x9d40[119]);_0x6bacx8[_0x9d40[76]]();});_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function EditFileDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[68]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[140]));var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx2b=_0x6bacx8[_0x9d40[47]](_0x9d40[78]);var _0x6bacx2c=_0x6bacx8[_0x9d40[47]](_0x9d40[79]);var _0x6bacx2d=document[_0x9d40[2]](_0x9d40[80]);_0x6bacx2d[_0x9d40[50]][_0x9d40[81]]=_0x9d40[82];_0x6bacx2d[_0x9d40[50]][_0x9d40[83]]=_0x9d40[84];_0x6bacx2d[_0x9d40[23]]=mxUtils[_0x9d40[142]](_0x6bacx8[_0x9d40[13]][_0x9d40[141]]());if(fileSupport){function _0x6bacx46(_0x6bacx2f){_0x6bacx2f[_0x9d40[143]]();_0x6bacx2f[_0x9d40[144]]();if(_0x6bacx2f[_0x9d40[145]][_0x9d40[89]][_0x9d40[138]]>0){var _0x6bacx47=_0x6bacx2f[_0x9d40[145]][_0x9d40[89]][0];var _0x6bacx48= new FileReader();_0x6bacx48[_0x9d40[92]]=function(_0x6bacx32){_0x6bacx2d[_0x9d40[23]]=_0x6bacx32[_0x9d40[90]][_0x9d40[93]]};_0x6bacx48[_0x9d40[94]](_0x6bacx47);};}function _0x6bacx49(_0x6bacx2f){_0x6bacx2f[_0x9d40[143]]();_0x6bacx2f[_0x9d40[144]]();}_0x6bacx2d[_0x9d40[97]](_0x9d40[146],_0x6bacx49,false);_0x6bacx2d[_0x9d40[97]](_0x9d40[147],_0x6bacx46,false);};_0x6bacx2c[_0x9d40[25]](_0x6bacx2d);_0x6bacx2b[_0x9d40[25]](_0x6bacx2c);_0x6bacx27[_0x9d40[25]](_0x6bacx2b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[132]),function(){var _0x6bacx36=mxUtils[_0x9d40[98]](_0x6bacx2d[_0x9d40[23]]);_0x6bacx8[_0x9d40[13]][_0x9d40[99]](_0x6bacx36[_0x9d40[45]]);_0x6bacx8[_0x9d40[76]]();});_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function ExportDialog(_0x6bacx8){var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[148]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[149])+_0x9d40[74]);var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx4b=_0x6bacx8[_0x9d40[47]](_0x9d40[150]);var _0x6bacx4c=_0x6bacx8[_0x9d40[47]](_0x9d40[151]);var _0x6bacx3f=document[_0x9d40[2]](_0x9d40[127]);_0x6bacx3f[_0x9d40[29]]=_0x9d40[152];mxUtils[_0x9d40[75]](_0x6bacx3f,mxResources[_0x9d40[73]](_0x9d40[153]));var _0x6bacx3=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx3[_0x9d40[5]](_0x9d40[23],_0x6bacx8[_0x9d40[13]][_0x9d40[124]]());_0x6bacx3[_0x9d40[29]]=_0x9d40[131];var _0x6bacx22=_0x6bacx8[_0x9d40[47]](_0x9d40[154]);_0x6bacx22[_0x9d40[25]](_0x6bacx3);_0x6bacx4c[_0x9d40[25]](_0x6bacx3f);_0x6bacx4c[_0x9d40[25]](_0x6bacx22);_0x6bacx4b[_0x9d40[25]](_0x6bacx4c);_0x6bacx27[_0x9d40[25]](_0x6bacx4b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[149]),mxUtils[_0x9d40[100]](this,function(_0x6bacx35){_0x6bacx8[_0x9d40[132]](false);var _0x6bacx4d=encodeURIComponent(mxUtils[_0x9d40[155]](_0x6bacx8[_0x9d40[13]][_0x9d40[141]]())); new mxXmlRequest(SAVE_URL+_0x6bacx8[_0x9d40[13]][_0x9d40[12]][_0x9d40[130]]+_0x9d40[157],_0x9d40[158]+_0x6bacx3[_0x9d40[23]],_0x9d40[7])[_0x9d40[156]](document,_0x9d40[119]);_0x6bacx8[_0x9d40[76]]();}));_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}function GeneralDialog(_0x6bacx8,_0x6bacx4f){var _0x6bacx50=_0x6bacx8[_0x9d40[13]][_0x9d40[159]];var _0x6bacx25=_0x6bacx8[_0x9d40[47]](_0x9d40[66]);var _0x6bacx26=_0x6bacx8[_0x9d40[47]](_0x9d40[67]);var _0x6bacx27=_0x6bacx8[_0x9d40[47]](_0x9d40[160]);var _0x6bacx28=_0x6bacx8[_0x9d40[47]](_0x9d40[69]);var _0x6bacx29=_0x6bacx8[_0x9d40[71]](_0x9d40[70]);mxUtils[_0x9d40[75]](_0x6bacx29,mxResources[_0x9d40[73]](_0x9d40[140])+_0x9d40[161]+mxResources[_0x9d40[73]](_0x6bacx4f[_0x9d40[23]][_0x9d40[162]]));var _0x6bacx2a=mxUtils[_0x9d40[77]](_0x9d40[37],function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx2a[_0x9d40[29]]=_0x9d40[62];_0x6bacx26[_0x9d40[25]](_0x6bacx2a);_0x6bacx26[_0x9d40[25]](_0x6bacx29);var _0x6bacx51=_0x6bacx4f[_0x9d40[23]][_0x9d40[163]][_0x9d40[138]];var _0x6bacx4b=_0x6bacx8[_0x9d40[47]](_0x9d40[150]);for(var _0x6bacx52=0;_0x6bacx52<_0x6bacx51;_0x6bacx52++){var _0x6bacx3c=_0x6bacx4f[_0x9d40[23]][_0x9d40[163]][_0x6bacx52][_0x9d40[122]];var _0x6bacx3d=_0x9d40[123]+_0x6bacx3c;var _0x6bacx2=_0x6bacx4f[_0x9d40[23]][_0x9d40[163]][_0x6bacx52][_0x9d40[23]];var _0x6bacx4c=_0x6bacx8[_0x9d40[47]]((_0x6bacx52==_0x6bacx51-1)?_0x9d40[151]:_0x9d40[164]);var _0x6bacx3f=document[_0x9d40[2]](_0x9d40[127]);_0x6bacx3f[_0x9d40[29]]=_0x9d40[152];mxUtils[_0x9d40[75]](_0x6bacx3f,mxResources[_0x9d40[73]](_0x6bacx3c));_0x6bacx4c[_0x9d40[25]](_0x6bacx3f);var _0x6bacx3;switch(_0x6bacx3c){case _0x9d40[166]:_0x6bacx3=createDropdownFromApi(_0x9d40[165],_0x6bacx2,_0x9d40[122],_0x9d40[130],_0x6bacx8,true);break ;;case _0x9d40[168]:_0x6bacx3=createDropdownFromApi(_0x9d40[167],_0x6bacx2,_0x9d40[122],_0x9d40[122],_0x6bacx8,true);break ;;case _0x9d40[170]:_0x6bacx3=createDropdownFromApi(_0x9d40[169],_0x6bacx2,_0x9d40[122],_0x9d40[130],_0x6bacx8,true);break ;;case _0x9d40[172]:_0x6bacx3=createDropdownFromApi(_0x9d40[171],_0x6bacx2,_0x9d40[122],_0x9d40[130],_0x6bacx8,true);break ;;case _0x9d40[173]:_0x6bacx3=createDropdownFromArray(ISPEECHASRMODEL,_0x6bacx2);break ;;case _0x9d40[174]:_0x6bacx3=createDropdownFromArray(ISPEECHASRLANG,_0x6bacx2);break ;;case _0x9d40[175]:_0x6bacx3=createDropdownFromArray(ISPEECHLANG,_0x6bacx2);break ;;case _0x9d40[176]:_0x6bacx3=createDropdownFromArray(GOOGLETTSLANG,_0x6bacx2);break ;;case _0x9d40[179]:_0x6bacx3=createGroupedDropdownFromApi(_0x9d40[177],_0x6bacx2,_0x9d40[122],_0x9d40[130],_0x6bacx8,false,_0x9d40[178]);break ;;case _0x9d40[180]:_0x6bacx3=createDropdownFromApi(_0x9d40[137],_0x6bacx2,_0x9d40[122],_0x9d40[130],_0x6bacx8,true);break ;;case _0x9d40[182]:_0x6bacx3=createDropdownFromApi(_0x9d40[181],_0x6bacx2,_0x9d40[122],_0x9d40[130],_0x6bacx8,true);break ;;case _0x9d40[185]:_0x6bacx3=createDropdownFromApi(_0x9d40[183],_0x6bacx2,_0x9d40[184],_0x9d40[130],_0x6bacx8,false);break ;;case _0x9d40[186]:;case _0x9d40[187]:;case _0x9d40[188]:;case _0x9d40[189]:;case _0x9d40[17]:;case _0x9d40[192]:_0x6bacx3=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx3[_0x9d40[5]](_0x9d40[3],_0x9d40[190]);_0x6bacx3[_0x9d40[5]](_0x9d40[191],0);_0x6bacx3[_0x9d40[5]](_0x9d40[43],1000);_0x6bacx3[_0x9d40[5]](_0x9d40[23],_0x6bacx2);_0x6bacx3[_0x9d40[29]]=_0x9d40[131];break ;;case _0x9d40[21]:;case _0x9d40[193]:;case _0x9d40[194]:;case _0x9d40[195]:;case _0x9d40[197]:_0x6bacx3=document[_0x9d40[2]](_0x9d40[80]);_0x6bacx3[_0x9d40[196]]=_0x6bacx2;_0x6bacx3[_0x9d40[29]]=_0x9d40[131];break ;;default:_0x6bacx3=document[_0x9d40[2]](_0x9d40[1]);_0x6bacx3[_0x9d40[5]](_0x9d40[23],_0x6bacx2);_0x6bacx3[_0x9d40[29]]=_0x9d40[131];break ;;};_0x6bacx3[_0x9d40[5]](_0x9d40[130],_0x6bacx3d);var _0x6bacx22=_0x6bacx8[_0x9d40[47]](_0x9d40[154]);_0x6bacx22[_0x9d40[25]](_0x6bacx3);if(mxResources[_0x9d40[73]](_0x9d40[198]+_0x6bacx3c)){var _0x6bacx53=_0x6bacx8[_0x9d40[47]](_0x9d40[199]);_0x6bacx53[_0x9d40[29]]=_0x9d40[200];mxUtils[_0x9d40[75]](_0x6bacx53,mxResources[_0x9d40[73]](_0x9d40[198]+_0x6bacx3c));_0x6bacx22[_0x9d40[25]](_0x6bacx53);};_0x6bacx4c[_0x9d40[25]](_0x6bacx22);_0x6bacx4b[_0x9d40[25]](_0x6bacx4c);};_0x6bacx27[_0x9d40[25]](_0x6bacx4b);var _0x6bacx34=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[132]),mxUtils[_0x9d40[100]](this,function(_0x6bacx35){for(var _0x6bacx52=0;_0x6bacx52<_0x6bacx4f[_0x9d40[23]][_0x9d40[163]][_0x9d40[138]];_0x6bacx52++){var _0x6bacx3d=_0x9d40[123]+_0x6bacx4f[_0x9d40[23]][_0x9d40[163]][_0x6bacx52][_0x9d40[122]];var _0x6bacx3c=_0x6bacx4f[_0x9d40[23]][_0x9d40[163]][_0x6bacx52][_0x9d40[122]];console[_0x9d40[91]](_0x6bacx3c,document[_0x9d40[201]](_0x6bacx3d)[_0x9d40[23]]);_0x6bacx4f[_0x9d40[5]](_0x6bacx3c,document[_0x9d40[201]](_0x6bacx3d)[_0x9d40[23]]);};_0x6bacx50[_0x9d40[202]](_0x6bacx4f);_0x6bacx8[_0x9d40[76]]();}));_0x6bacx34[_0x9d40[29]]=_0x9d40[101];var _0x6bacx37=mxUtils[_0x9d40[77]](mxResources[_0x9d40[73]](_0x9d40[102]),function(){_0x6bacx8[_0x9d40[76]]()});_0x6bacx37[_0x9d40[29]]=_0x9d40[103];_0x6bacx28[_0x9d40[25]](_0x6bacx34);_0x6bacx28[_0x9d40[25]](_0x6bacx37);_0x6bacx25[_0x9d40[25]](_0x6bacx26);_0x6bacx25[_0x9d40[25]](_0x6bacx27);_0x6bacx25[_0x9d40[25]](_0x6bacx28);this[_0x9d40[61]]=_0x6bacx25;}
\ No newline at end of file
index 3c512f3..036a086 100644 (file)
@@ -1 +1 @@
-var _0xc5cf=["\x49\x53\x5F\x54\x4F\x55\x43\x48","\x73\x74\x6F\x72\x61\x67\x65","\x6C\x6F\x63\x61\x6C","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x46\x69\x6C\x65","\x46\x69\x6C\x65\x52\x65\x61\x64\x65\x72","\x46\x69\x6C\x65\x4C\x69\x73\x74","\x74\x6F\x75\x63\x68","\x31","\x6F\x70\x65\x6E\x65\x72","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x61\x6C\x6C","\x69\x6E\x69\x74","\x69\x6E\x69\x74\x53\x74\x65\x6E\x63\x69\x6C\x52\x65\x67\x69\x73\x74\x72\x79","\x67\x72\x61\x70\x68","\x6F\x75\x74\x6C\x69\x6E\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x74\x61\x74\x75\x73","","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x64\x72\x61\x77\x69\x6E\x67","\x67\x65\x74","\x2E\x78\x6D\x6C","\x67\x65\x74\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x67\x72\x61\x70\x68\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x70\x70\x6C\x79","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x73\x4C\x6F\x73\x74","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E\x64","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x2F\x67\x72\x69\x64\x2E\x67\x69\x66","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x73\x63\x61\x6C\x65","\x76\x69\x65\x77","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x30","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x67\x75\x69\x64\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x66\x6F\x6C\x64","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x78","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x64\x78","\x79","\x64\x79","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x63\x6F\x64\x65","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x65\x6E\x63\x6F\x64\x65","\x72\x6F\x75\x6E\x64","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x6E\x6F\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x74\x79\x6C\x65","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x66\x69\x6C\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x23\x65\x62\x65\x62\x65\x62","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x73\x6F\x6C\x69\x64","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x23\x65\x35\x65\x35\x65\x35","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x31\x70\x78","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x30\x70\x78","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72","\x76\x61\x6C\x69\x64\x61\x74\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x61\x75\x74\x6F","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x6E\x6F\x64\x65","\x49\x53\x5F\x49\x45\x36","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x67\x72\x61\x70\x68\x65\x64\x69\x74\x6F\x72\x2D\x69\x65\x36\x2E\x63\x73\x73","\x6C\x69\x6E\x6B","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x61\x64\x64","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x23\x64\x30\x64\x30\x64\x30","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x39\x39\x63\x63\x66\x66","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x38\x38\x63\x66","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x61\x38\x66\x66","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x63\x65\x65\x37\x66\x66","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x47\x55\x49\x44\x45\x5F\x43\x4F\x4C\x4F\x52","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x23\x63\x30\x63\x30\x63\x30","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x77\x68\x69\x74\x65","\x23\x63\x61\x63\x61\x63\x61","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x6D\x61\x78","\x63\x65\x69\x6C","\x70\x61\x6E\x47\x72\x61\x70\x68","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65","\x73\x72\x63","\x64\x65\x73\x74\x72\x6F\x79","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x72\x65\x64\x72\x61\x77","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x68\x69\x64\x65","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x62\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x69\x6E\x74\x73","\x69\x73\x44\x61\x73\x68\x65\x64","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x61\x64\x64\x50\x69\x70\x65","\x73\x70\x6C\x69\x63\x65","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x72\x65\x6C\x61\x74\x69\x76\x65","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6F\x6E\x73\x75\x6D\x65","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C","\x67\x65\x74\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x65\x64\x69\x74","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x67\x65\x74\x56\x69\x65\x77","\x63\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x74\x61\x74\x65","\x70\x75\x73\x68","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x6C\x69\x62\x72\x61\x72\x69\x65\x73","\x70\x61\x63\x6B\x61\x67\x65\x73","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x67\x65\x74\x42\x61\x73\x65\x6E\x61\x6D\x65\x46\x6F\x72\x53\x74\x65\x6E\x63\x69\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x2E\x6A\x73","\x6C\x6F\x61\x64","\x67\x65\x74\x54\x65\x78\x74","\x2F","\x2E","\x73\x70\x6C\x69\x74","\x6D\x78\x67\x72\x61\x70\x68","\x67\x65\x74\x58\x6D\x6C","\x70\x61\x72\x73\x65\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x5F","\x72\x65\x70\x6C\x61\x63\x65","\x61\x64\x64\x53\x74\x65\x6E\x63\x69\x6C","\x77","\x68","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x70\x72\x6F\x64\x75\x63\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x72","\x64\x6F\x6E\x65","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x65\x78\x65\x63\x75\x74\x65","\x73\x65\x74\x44\x61\x74\x61","\x64\x61\x74\x61","\x65\x72\x72\x6F\x72","\x63\x61\x6E\x63\x65\x6C","\x61\x6C\x65\x72\x74"];var useLocalStorage=(mxClient[_0xc5cf[0]]||urlParams[_0xc5cf[1]]==_0xc5cf[2])&& typeof (localStorage)!=_0xc5cf[3];var fileSupport=window[_0xc5cf[4]]!=null&&window[_0xc5cf[5]]!=null&&window[_0xc5cf[6]]!=null;var touchStyle=mxClient[_0xc5cf[0]]||urlParams[_0xc5cf[7]]==_0xc5cf[8];var counter=0;try{var op=window;while(op[_0xc5cf[9]]!=null&&!isNaN(op[_0xc5cf[9]][_0xc5cf[10]])){op=op[_0xc5cf[9]]};if(op!=null){op[_0xc5cf[10]]++;counter=op[_0xc5cf[10]];};}catch(e){};Editor=function(){mxEventSource[_0xc5cf[11]](this);this[_0xc5cf[12]]();this[_0xc5cf[13]]();this[_0xc5cf[14]]= new Graph();this[_0xc5cf[15]]= new mxOutline(this[_0xc5cf[14]]);this[_0xc5cf[15]][_0xc5cf[16]]=true;this[_0xc5cf[17]]=this[_0xc5cf[18]]();this[_0xc5cf[19]]=_0xc5cf[20];this[_0xc5cf[21]]=null;this[_0xc5cf[22]]=function(){return this[_0xc5cf[21]]||mxResources[_0xc5cf[24]](_0xc5cf[23],[counter])+_0xc5cf[25]};this[_0xc5cf[26]]=function(){return this[_0xc5cf[21]]};this[_0xc5cf[27]]=function(_0x8ed4x6){this[_0xc5cf[19]]=_0x8ed4x6;this[_0xc5cf[29]]( new mxEventObject(_0xc5cf[28]));};this[_0xc5cf[30]]=function(){return this[_0xc5cf[19]]};this[_0xc5cf[31]]=false;this[_0xc5cf[32]]=function(){this[_0xc5cf[31]]=true};this[_0xc5cf[14]][_0xc5cf[36]]()[_0xc5cf[35]](mxEvent.CHANGE,mxUtils[_0xc5cf[34]](this,function(){this[_0xc5cf[32]][_0xc5cf[33]](this,arguments)}));window[_0xc5cf[37]]=mxUtils[_0xc5cf[34]](this,function(){if(this[_0xc5cf[31]]){return mxResources[_0xc5cf[24]](_0xc5cf[38])}});this[_0xc5cf[14]][_0xc5cf[39]]=false;this[_0xc5cf[14]][_0xc5cf[40]]=true;this[_0xc5cf[14]][_0xc5cf[41]]=null;};mxUtils[_0xc5cf[42]](Editor,mxEventSource);Editor[_0xc5cf[44]][_0xc5cf[43]]=IMAGE_PATH+_0xc5cf[45];Editor[_0xc5cf[44]][_0xc5cf[46]]=IMAGE_PATH+_0xc5cf[47];Editor[_0xc5cf[44]][_0xc5cf[48]]=function(_0x8ed4x7){var _0x8ed4x8= new mxCodec(_0x8ed4x7[_0xc5cf[49]]);if(_0x8ed4x7[_0xc5cf[50]]==_0xc5cf[51]){this[_0xc5cf[14]][_0xc5cf[53]][_0xc5cf[52]]=1;this[_0xc5cf[14]][_0xc5cf[54]]=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[55])!=_0xc5cf[57];this[_0xc5cf[14]][_0xc5cf[59]][_0xc5cf[58]]=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[60])!=_0xc5cf[57];this[_0xc5cf[14]][_0xc5cf[62]](_0x8ed4x7[_0xc5cf[56]](_0xc5cf[61])!=_0xc5cf[57]);this[_0xc5cf[14]][_0xc5cf[64]](_0x8ed4x7[_0xc5cf[56]](_0xc5cf[63])!=_0xc5cf[57]);this[_0xc5cf[14]][_0xc5cf[65]]=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[66])!=_0xc5cf[57];this[_0xc5cf[14]][_0xc5cf[40]]=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[40])!=_0xc5cf[57];if(!this[_0xc5cf[14]][_0xc5cf[40]]){this[_0xc5cf[14]][_0xc5cf[68]][_0xc5cf[67]]=0;this[_0xc5cf[14]][_0xc5cf[68]][_0xc5cf[69]]=0;this[_0xc5cf[14]][_0xc5cf[53]][_0xc5cf[71]][_0xc5cf[70]]=Number(_0x8ed4x7[_0xc5cf[56]](_0xc5cf[72])||0);this[_0xc5cf[14]][_0xc5cf[53]][_0xc5cf[71]][_0xc5cf[73]]=Number(_0x8ed4x7[_0xc5cf[56]](_0xc5cf[74])||0);};this[_0xc5cf[14]][_0xc5cf[75]]=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[76])==_0xc5cf[8];this[_0xc5cf[14]][_0xc5cf[77]]=this[_0xc5cf[14]][_0xc5cf[75]];this[_0xc5cf[14]][_0xc5cf[78]]=this[_0xc5cf[14]][_0xc5cf[77]];var _0x8ed4x9=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[79]);if(_0x8ed4x9!=null){this[_0xc5cf[14]][_0xc5cf[79]]=_0x8ed4x9}else {this[_0xc5cf[14]][_0xc5cf[79]]=1.5};var _0x8ed4xa=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[80]);var _0x8ed4xb=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[81]);if(_0x8ed4xa!=null&&_0x8ed4xb!=null){this[_0xc5cf[14]][_0xc5cf[82]]= new mxRectangle(0,0,parseFloat(_0x8ed4xa),parseFloat(_0x8ed4xb));this[_0xc5cf[15]][_0xc5cf[15]][_0xc5cf[82]]=this[_0xc5cf[14]][_0xc5cf[82]];};var _0x8ed4xc=_0x8ed4x7[_0xc5cf[56]](_0xc5cf[41]);if(_0x8ed4xc!=null&&_0x8ed4xc[_0xc5cf[83]]>0){this[_0xc5cf[14]][_0xc5cf[41]]=_0x8ed4xc};_0x8ed4x8[_0xc5cf[84]](_0x8ed4x7,this[_0xc5cf[14]][_0xc5cf[36]]());this[_0xc5cf[85]]();};};Editor[_0xc5cf[44]][_0xc5cf[86]]=function(){var _0x8ed4xd= new mxCodec(mxUtils[_0xc5cf[87]]());var _0x8ed4x7=_0x8ed4xd[_0xc5cf[88]](this[_0xc5cf[14]][_0xc5cf[36]]());if(this[_0xc5cf[14]][_0xc5cf[53]][_0xc5cf[71]][_0xc5cf[70]]!=0||this[_0xc5cf[14]][_0xc5cf[53]][_0xc5cf[71]][_0xc5cf[73]]!=0){_0x8ed4x7[_0xc5cf[90]](_0xc5cf[72],Math[_0xc5cf[89]](this[_0xc5cf[14]][_0xc5cf[53]][_0xc5cf[71]][_0xc5cf[70]]*100)/100);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[74],Math[_0xc5cf[89]](this[_0xc5cf[14]][_0xc5cf[53]][_0xc5cf[71]][_0xc5cf[73]]*100)/100);};_0x8ed4x7[_0xc5cf[90]](_0xc5cf[55],(this[_0xc5cf[14]][_0xc5cf[91]]())?_0xc5cf[8]:_0xc5cf[57]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[60],(this[_0xc5cf[14]][_0xc5cf[59]][_0xc5cf[58]])?_0xc5cf[8]:_0xc5cf[57]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[60],(this[_0xc5cf[14]][_0xc5cf[59]][_0xc5cf[58]])?_0xc5cf[8]:_0xc5cf[57]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[61],(this[_0xc5cf[14]][_0xc5cf[93]][_0xc5cf[92]]())?_0xc5cf[8]:_0xc5cf[57]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[63],(this[_0xc5cf[14]][_0xc5cf[94]][_0xc5cf[92]]())?_0xc5cf[8]:_0xc5cf[57]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[66],(this[_0xc5cf[14]][_0xc5cf[65]])?_0xc5cf[8]:_0xc5cf[57]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[76],(this[_0xc5cf[14]][_0xc5cf[75]])?_0xc5cf[8]:_0xc5cf[57]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[79],this[_0xc5cf[14]][_0xc5cf[79]]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[80],this[_0xc5cf[14]][_0xc5cf[82]][_0xc5cf[95]]);_0x8ed4x7[_0xc5cf[90]](_0xc5cf[81],this[_0xc5cf[14]][_0xc5cf[82]][_0xc5cf[96]]);if(!this[_0xc5cf[14]][_0xc5cf[40]]){_0x8ed4x7[_0xc5cf[90]](_0xc5cf[40],_0xc5cf[57])};if(this[_0xc5cf[14]][_0xc5cf[41]]!=null){_0x8ed4x7[_0xc5cf[90]](_0xc5cf[41],this[_0xc5cf[14]][_0xc5cf[41]])};return _0x8ed4x7;};Editor[_0xc5cf[44]][_0xc5cf[85]]=function(){var _0x8ed4xe=this[_0xc5cf[14]];var _0x8ed4xf=this[_0xc5cf[15]];if(_0x8ed4xe[_0xc5cf[68]]!=null&&_0x8ed4xf[_0xc5cf[15]][_0xc5cf[68]]!=null){if(_0x8ed4xe[_0xc5cf[41]]!=null){if(_0x8ed4xe[_0xc5cf[41]]==_0xc5cf[97]){_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[98]]=_0xc5cf[100]}else {if(_0x8ed4xe[_0xc5cf[53]][_0xc5cf[101]]!=null){_0x8ed4xe[_0xc5cf[53]][_0xc5cf[101]][_0xc5cf[102]]=_0x8ed4xe[_0xc5cf[41]];_0x8ed4xe[_0xc5cf[53]][_0xc5cf[101]][_0xc5cf[103]]();};_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[98]]=_0x8ed4xe[_0xc5cf[41]];}}else {_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[98]]=_0xc5cf[20]};if(_0x8ed4xe[_0xc5cf[75]]){_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[98]]=_0xc5cf[104];_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[105]]=_0xc5cf[106];_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[107]]=_0xc5cf[108];_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[109]]=_0xc5cf[110];_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[111]]=_0xc5cf[110];_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[112]]=_0xc5cf[113];_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[114]]=_0xc5cf[113];}else {_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[115]]=_0xc5cf[20]};_0x8ed4xf[_0xc5cf[15]][_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[98]]=_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[98]];if(_0x8ed4xf[_0xc5cf[15]][_0xc5cf[75]]!=_0x8ed4xe[_0xc5cf[75]]||_0x8ed4xf[_0xc5cf[15]][_0xc5cf[79]]!=_0x8ed4xe[_0xc5cf[79]]){_0x8ed4xf[_0xc5cf[15]][_0xc5cf[79]]=_0x8ed4xe[_0xc5cf[79]];_0x8ed4xf[_0xc5cf[15]][_0xc5cf[75]]=_0x8ed4xe[_0xc5cf[75]];_0x8ed4xf[_0xc5cf[15]][_0xc5cf[53]][_0xc5cf[116]]();};if(_0x8ed4xe[_0xc5cf[40]]&&_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[117]]==_0xc5cf[118]&& !touchStyle){_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[117]]=_0xc5cf[119]}else {if(!_0x8ed4xe[_0xc5cf[40]]||touchStyle){_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[117]]=_0xc5cf[118]}};var _0x8ed4x10=(mxClient[_0xc5cf[120]]&&document[_0xc5cf[121]]>=9)?_0xc5cf[122]+this[_0xc5cf[46]]+_0xc5cf[123]:_0xc5cf[97];_0x8ed4xe[_0xc5cf[68]][_0xc5cf[99]][_0xc5cf[124]]=(!_0x8ed4xe[_0xc5cf[75]]&&_0x8ed4xe[_0xc5cf[91]]())?_0xc5cf[122]+this[_0xc5cf[43]]+_0xc5cf[123]:_0x8ed4x10;if(_0x8ed4xe[_0xc5cf[53]][_0xc5cf[101]]!=null){_0x8ed4xe[_0xc5cf[53]][_0xc5cf[101]][_0xc5cf[125]][_0xc5cf[99]][_0xc5cf[124]]=(this[_0xc5cf[14]][_0xc5cf[91]]())?_0xc5cf[122]+this[_0xc5cf[43]]+_0xc5cf[123]:_0xc5cf[97]};};};Editor[_0xc5cf[44]][_0xc5cf[12]]=function(){if(mxClient[_0xc5cf[126]]){mxClient[_0xc5cf[129]](_0xc5cf[127],CSS_PATH+_0xc5cf[128])};mxResources[_0xc5cf[130]]=false;mxResources[_0xc5cf[131]](RESOURCE_BASE);mxConstants[_0xc5cf[132]]=0.3;var _0x8ed4x11=mxConnectionHandler[_0xc5cf[44]][_0xc5cf[133]];mxConnectionHandler[_0xc5cf[44]][_0xc5cf[133]]=function(){var _0x8ed4x12=_0x8ed4x11[_0xc5cf[33]](this,arguments);_0x8ed4x12[_0xc5cf[134]]=mxUtils[_0xc5cf[34]](this,function(_0x8ed4x13,_0x8ed4x14){if(this[_0xc5cf[135]]()){return true};return mxCellMarker[_0xc5cf[44]][_0xc5cf[134]][_0xc5cf[33]](_0x8ed4x12,arguments);});return _0x8ed4x12;};mxConstants[_0xc5cf[136]]=_0xc5cf[137];mxConstants[_0xc5cf[138]]=_0xc5cf[139];mxConstants[_0xc5cf[140]]=_0xc5cf[141];mxConstants[_0xc5cf[142]]=_0xc5cf[143];mxConstants[_0xc5cf[144]]=_0xc5cf[143];mxConstants[_0xc5cf[145]]=_0xc5cf[139];mxConstants[_0xc5cf[146]]=_0xc5cf[143];mxConstants[_0xc5cf[147]]=_0xc5cf[148];mxConstants[_0xc5cf[149]]=_0xc5cf[143];mxConstants[_0xc5cf[150]]=_0xc5cf[143];mxConstants[_0xc5cf[151]]=_0xc5cf[148];mxConstants[_0xc5cf[152]]=_0xc5cf[141];mxGraph[_0xc5cf[44]][_0xc5cf[153]]=_0xc5cf[154];mxGraph[_0xc5cf[44]][_0xc5cf[79]]=1;mxRubberband[_0xc5cf[44]][_0xc5cf[155]]=30;mxGraphView[_0xc5cf[44]][_0xc5cf[156]]=function(_0x8ed4x15){return  new mxRectangleShape(_0x8ed4x15,this[_0xc5cf[14]][_0xc5cf[41]]||_0xc5cf[157],_0xc5cf[158])};mxGraphView[_0xc5cf[44]][_0xc5cf[159]]=function(){var _0x8ed4x16=this[_0xc5cf[160]]();var _0x8ed4x17=(_0x8ed4x16[_0xc5cf[95]]>0)?_0x8ed4x16[_0xc5cf[70]]/this[_0xc5cf[52]]-this[_0xc5cf[71]][_0xc5cf[70]]:0;var _0x8ed4x18=(_0x8ed4x16[_0xc5cf[96]]>0)?_0x8ed4x16[_0xc5cf[73]]/this[_0xc5cf[52]]-this[_0xc5cf[71]][_0xc5cf[73]]:0;var _0x8ed4x19=_0x8ed4x16[_0xc5cf[95]]/this[_0xc5cf[52]];var _0x8ed4x1a=_0x8ed4x16[_0xc5cf[96]]/this[_0xc5cf[52]];var _0x8ed4x1b=this[_0xc5cf[14]][_0xc5cf[82]];var _0x8ed4x9=this[_0xc5cf[14]][_0xc5cf[79]];var _0x8ed4xa=_0x8ed4x1b[_0xc5cf[95]]*_0x8ed4x9;var _0x8ed4xb=_0x8ed4x1b[_0xc5cf[96]]*_0x8ed4x9;var _0x8ed4x1c=Math[_0xc5cf[162]](Math[_0xc5cf[161]](0,_0x8ed4x17)/_0x8ed4xa);var _0x8ed4x1d=Math[_0xc5cf[162]](Math[_0xc5cf[161]](0,_0x8ed4x18)/_0x8ed4xb);var _0x8ed4x1e=Math[_0xc5cf[164]](Math[_0xc5cf[163]](1,_0x8ed4x17+_0x8ed4x19)/_0x8ed4xa);var _0x8ed4x1f=Math[_0xc5cf[164]](Math[_0xc5cf[163]](1,_0x8ed4x18+_0x8ed4x1a)/_0x8ed4xb);var _0x8ed4x20=_0x8ed4x1e-_0x8ed4x1c;var _0x8ed4x21=_0x8ed4x1f-_0x8ed4x1d;var _0x8ed4x15= new mxRectangle(this[_0xc5cf[52]]*(this[_0xc5cf[71]][_0xc5cf[70]]+_0x8ed4x1c*_0x8ed4xa),this[_0xc5cf[52]]*(this[_0xc5cf[71]][_0xc5cf[73]]+_0x8ed4x1d*_0x8ed4xb),this[_0xc5cf[52]]*_0x8ed4x20*_0x8ed4xa,this[_0xc5cf[52]]*_0x8ed4x21*_0x8ed4xb);return _0x8ed4x15;};var _0x8ed4x22=mxGraph[_0xc5cf[44]][_0xc5cf[165]];mxGraph[_0xc5cf[44]][_0xc5cf[165]]=function(_0x8ed4x23,_0x8ed4x24){_0x8ed4x22[_0xc5cf[33]](this,arguments);if((this[_0xc5cf[166]]!=mxConstants[_0xc5cf[167]]&&this[_0xc5cf[53]][_0xc5cf[101]]!=null)&&(!this[_0xc5cf[168]]||!mxUtils[_0xc5cf[169]](this[_0xc5cf[68]]))){this[_0xc5cf[53]][_0xc5cf[101]][_0xc5cf[125]][_0xc5cf[99]][_0xc5cf[170]]=_0x8ed4x23+_0xc5cf[171];this[_0xc5cf[53]][_0xc5cf[101]][_0xc5cf[125]][_0xc5cf[99]][_0xc5cf[172]]=_0x8ed4x24+_0xc5cf[171];};};var _0x8ed4x25=this;mxGraphView[_0xc5cf[44]][_0xc5cf[173]]=function(){var _0x8ed4xc=this[_0xc5cf[14]][_0xc5cf[174]]();if(_0x8ed4xc!=null){if(this[_0xc5cf[124]]==null||this[_0xc5cf[124]][_0xc5cf[175]]!=_0x8ed4xc[_0xc5cf[176]]){if(this[_0xc5cf[124]]!=null){this[_0xc5cf[124]][_0xc5cf[177]]()};var _0x8ed4x15= new mxRectangle(0,0,1,1);this[_0xc5cf[124]]= new mxImageShape(_0x8ed4x15,_0x8ed4xc[_0xc5cf[176]]);this[_0xc5cf[124]][_0xc5cf[166]]=this[_0xc5cf[14]][_0xc5cf[166]];this[_0xc5cf[124]][_0xc5cf[12]](this[_0xc5cf[178]]);this[_0xc5cf[124]][_0xc5cf[179]]();};this[_0xc5cf[180]](this[_0xc5cf[124]],_0x8ed4xc);}else {if(this[_0xc5cf[124]]!=null){this[_0xc5cf[124]][_0xc5cf[177]]();this[_0xc5cf[124]]=null;}};if(this[_0xc5cf[14]][_0xc5cf[75]]){var _0x8ed4x15=this[_0xc5cf[159]]();if(this[_0xc5cf[101]]==null){this[_0xc5cf[101]]=this[_0xc5cf[156]](_0x8ed4x15);this[_0xc5cf[101]][_0xc5cf[52]]=1;this[_0xc5cf[101]][_0xc5cf[181]]=true;this[_0xc5cf[101]][_0xc5cf[166]]=mxConstants[_0xc5cf[182]];this[_0xc5cf[101]][_0xc5cf[12]](this[_0xc5cf[14]][_0xc5cf[68]]);this[_0xc5cf[14]][_0xc5cf[68]][_0xc5cf[184]][_0xc5cf[99]][_0xc5cf[183]]=_0xc5cf[185];this[_0xc5cf[14]][_0xc5cf[68]][_0xc5cf[186]](this[_0xc5cf[101]][_0xc5cf[125]],this[_0xc5cf[14]][_0xc5cf[68]][_0xc5cf[184]]);this[_0xc5cf[101]][_0xc5cf[179]]();this[_0xc5cf[101]][_0xc5cf[125]][_0xc5cf[187]]=_0xc5cf[188];this[_0xc5cf[101]][_0xc5cf[125]][_0xc5cf[99]][_0xc5cf[189]]=_0xc5cf[190];mxEvent[_0xc5cf[35]](this[_0xc5cf[101]][_0xc5cf[125]],_0xc5cf[191],mxUtils[_0xc5cf[34]](this,function(_0x8ed4x14){this[_0xc5cf[14]][_0xc5cf[192]](_0x8ed4x14)}));mxEvent[_0xc5cf[198]](this[_0xc5cf[101]][_0xc5cf[125]],mxUtils[_0xc5cf[34]](this,function(_0x8ed4x14){this[_0xc5cf[14]][_0xc5cf[193]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x8ed4x14))}),mxUtils[_0xc5cf[34]](this,function(_0x8ed4x14){if(this[_0xc5cf[14]][_0xc5cf[93]]!=null&&this[_0xc5cf[14]][_0xc5cf[93]][_0xc5cf[194]]()){this[_0xc5cf[14]][_0xc5cf[93]][_0xc5cf[195]]()};if(this[_0xc5cf[14]][_0xc5cf[196]]&&!mxEvent[_0xc5cf[197]](_0x8ed4x14)){this[_0xc5cf[14]][_0xc5cf[193]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x8ed4x14))};}),mxUtils[_0xc5cf[34]](this,function(_0x8ed4x14){this[_0xc5cf[14]][_0xc5cf[193]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x8ed4x14))}));}else {this[_0xc5cf[101]][_0xc5cf[52]]=1;this[_0xc5cf[101]][_0xc5cf[199]]=_0x8ed4x15;this[_0xc5cf[101]][_0xc5cf[179]]();};this[_0xc5cf[101]][_0xc5cf[125]][_0xc5cf[99]][_0xc5cf[124]]=(this[_0xc5cf[14]][_0xc5cf[91]]())?_0xc5cf[122]+_0x8ed4x25[_0xc5cf[43]]+_0xc5cf[123]:_0xc5cf[97];}else {if(this[_0xc5cf[101]]!=null){this[_0xc5cf[101]][_0xc5cf[177]]();this[_0xc5cf[101]]=null;}};};mxGraph[_0xc5cf[44]][_0xc5cf[200]]=function(_0x8ed4x26,_0x8ed4x27,_0x8ed4x28){var _0x8ed4x29=this[_0xc5cf[53]][_0xc5cf[52]];var _0x8ed4x2a=this[_0xc5cf[53]][_0xc5cf[71]];var _0x8ed4x1b=this[_0xc5cf[82]];var _0x8ed4x9=_0x8ed4x29*this[_0xc5cf[79]];var _0x8ed4x2b=this[_0xc5cf[53]][_0xc5cf[159]]();_0x8ed4x27=_0x8ed4x2b[_0xc5cf[95]];_0x8ed4x28=_0x8ed4x2b[_0xc5cf[96]];var _0x8ed4x15= new mxRectangle(_0x8ed4x29*_0x8ed4x2a[_0xc5cf[70]],_0x8ed4x29*_0x8ed4x2a[_0xc5cf[73]],_0x8ed4x1b[_0xc5cf[95]]*_0x8ed4x9,_0x8ed4x1b[_0xc5cf[96]]*_0x8ed4x9);_0x8ed4x26=_0x8ed4x26&&Math[_0xc5cf[161]](_0x8ed4x15[_0xc5cf[95]],_0x8ed4x15[_0xc5cf[96]])>this[_0xc5cf[201]];var _0x8ed4x2c=(_0x8ed4x26)?Math[_0xc5cf[164]](_0x8ed4x27/_0x8ed4x15[_0xc5cf[95]])-1:0;var _0x8ed4x2d=(_0x8ed4x26)?Math[_0xc5cf[164]](_0x8ed4x28/_0x8ed4x15[_0xc5cf[96]])-1:0;var _0x8ed4x2e=_0x8ed4x2b[_0xc5cf[70]]+_0x8ed4x27;var _0x8ed4x2f=_0x8ed4x2b[_0xc5cf[73]]+_0x8ed4x28;if(this[_0xc5cf[202]]==null&&_0x8ed4x2c>0){this[_0xc5cf[202]]=[]};if(this[_0xc5cf[202]]!=null){for(var _0x8ed4x30=0;_0x8ed4x30<=_0x8ed4x2c;_0x8ed4x30++){var _0x8ed4x31=[ new mxPoint(_0x8ed4x2b[_0xc5cf[70]]+(_0x8ed4x30+1)*_0x8ed4x15[_0xc5cf[95]],_0x8ed4x2b[_0xc5cf[73]]), new mxPoint(_0x8ed4x2b[_0xc5cf[70]]+(_0x8ed4x30+1)*_0x8ed4x15[_0xc5cf[95]],_0x8ed4x2f)];if(this[_0xc5cf[202]][_0x8ed4x30]!=null){this[_0xc5cf[202]][_0x8ed4x30][_0xc5cf[52]]=1;this[_0xc5cf[202]][_0x8ed4x30][_0xc5cf[203]]=_0x8ed4x31;this[_0xc5cf[202]][_0x8ed4x30][_0xc5cf[179]]();}else {var _0x8ed4x32= new mxPolyline(_0x8ed4x31,this[_0xc5cf[153]],this[_0xc5cf[52]]);_0x8ed4x32[_0xc5cf[166]]=this[_0xc5cf[166]];_0x8ed4x32[_0xc5cf[204]]=this[_0xc5cf[205]];_0x8ed4x32[_0xc5cf[206]]=false;_0x8ed4x32[_0xc5cf[52]]=_0x8ed4x29;_0x8ed4x32[_0xc5cf[12]](this[_0xc5cf[53]][_0xc5cf[178]]);_0x8ed4x32[_0xc5cf[179]]();this[_0xc5cf[202]][_0x8ed4x30]=_0x8ed4x32;};};for(var _0x8ed4x30=_0x8ed4x2c;_0x8ed4x30<this[_0xc5cf[202]][_0xc5cf[83]];_0x8ed4x30++){this[_0xc5cf[202]][_0x8ed4x30][_0xc5cf[177]]()};this[_0xc5cf[202]][_0xc5cf[207]](_0x8ed4x2c,this[_0xc5cf[202]][_0xc5cf[83]]-_0x8ed4x2c);};if(this[_0xc5cf[208]]==null&&_0x8ed4x2d>0){this[_0xc5cf[208]]=[]};if(this[_0xc5cf[208]]!=null){for(var _0x8ed4x30=0;_0x8ed4x30<=_0x8ed4x2d;_0x8ed4x30++){var _0x8ed4x31=[ new mxPoint(_0x8ed4x2b[_0xc5cf[70]],_0x8ed4x2b[_0xc5cf[73]]+(_0x8ed4x30+1)*_0x8ed4x15[_0xc5cf[96]]), new mxPoint(_0x8ed4x2e,_0x8ed4x2b[_0xc5cf[73]]+(_0x8ed4x30+1)*_0x8ed4x15[_0xc5cf[96]])];if(this[_0xc5cf[208]][_0x8ed4x30]!=null){this[_0xc5cf[208]][_0x8ed4x30][_0xc5cf[52]]=1;this[_0xc5cf[208]][_0x8ed4x30][_0xc5cf[203]]=_0x8ed4x31;this[_0xc5cf[208]][_0x8ed4x30][_0xc5cf[179]]();}else {var _0x8ed4x32= new mxPolyline(_0x8ed4x31,this[_0xc5cf[153]],_0x8ed4x29);_0x8ed4x32[_0xc5cf[166]]=this[_0xc5cf[166]];_0x8ed4x32[_0xc5cf[204]]=this[_0xc5cf[205]];_0x8ed4x32[_0xc5cf[206]]=false;_0x8ed4x32[_0xc5cf[52]]=_0x8ed4x29;_0x8ed4x32[_0xc5cf[12]](this[_0xc5cf[53]][_0xc5cf[178]]);_0x8ed4x32[_0xc5cf[179]]();this[_0xc5cf[208]][_0x8ed4x30]=_0x8ed4x32;};};for(var _0x8ed4x30=_0x8ed4x2d;_0x8ed4x30<this[_0xc5cf[208]][_0xc5cf[83]];_0x8ed4x30++){this[_0xc5cf[208]][_0x8ed4x30][_0xc5cf[177]]()};this[_0xc5cf[208]][_0xc5cf[207]](_0x8ed4x2d,this[_0xc5cf[208]][_0xc5cf[83]]-_0x8ed4x2d);};};mxEdgeHandler[_0xc5cf[44]][_0xc5cf[209]]=true;mxGraphHandler[_0xc5cf[44]][_0xc5cf[58]]=true;var _0x8ed4x33=mxGraphHandler[_0xc5cf[44]][_0xc5cf[210]];mxGraphHandler[_0xc5cf[44]][_0xc5cf[210]]=function(_0x8ed4x34,_0x8ed4x35,_0x8ed4x14){for(var _0x8ed4x30=0;_0x8ed4x30<_0x8ed4x35[_0xc5cf[83]];_0x8ed4x30++){if(this[_0xc5cf[14]][_0xc5cf[36]]()[_0xc5cf[211]](_0x8ed4x35[_0x8ed4x30])){var _0x8ed4x36=this[_0xc5cf[14]][_0xc5cf[212]](_0x8ed4x35[_0x8ed4x30]);if(_0x8ed4x36!=null&&_0x8ed4x36[_0xc5cf[213]]){return false};}};return _0x8ed4x33[_0xc5cf[33]](this,arguments);};mxGuide[_0xc5cf[44]][_0xc5cf[214]]=function(_0x8ed4x14){return !mxEvent[_0xc5cf[215]](_0x8ed4x14)};mxPopupMenuAddItem=mxPopupMenu[_0xc5cf[44]][_0xc5cf[216]];mxPopupMenu[_0xc5cf[44]][_0xc5cf[216]]=function(_0x8ed4x37,_0x8ed4x38,_0x8ed4x39,_0x8ed4x34,_0x8ed4x3a,_0x8ed4x3b){var _0x8ed4x3c=mxPopupMenuAddItem[_0xc5cf[33]](this,arguments);if(_0x8ed4x3b!=null&& !_0x8ed4x3b){mxEvent[_0xc5cf[35]](_0x8ed4x3c,_0xc5cf[217],function(_0x8ed4x14){mxEvent[_0xc5cf[218]](_0x8ed4x14)})};return _0x8ed4x3c;};var _0x8ed4x3d=mxGraphHandler[_0xc5cf[44]][_0xc5cf[219]];mxGraphHandler[_0xc5cf[44]][_0xc5cf[219]]=function(_0x8ed4x3e){var _0x8ed4x3f=this[_0xc5cf[14]][_0xc5cf[36]]();var _0x8ed4x40=_0x8ed4x3f[_0xc5cf[221]](this[_0xc5cf[14]][_0xc5cf[220]]());var _0x8ed4x41=_0x8ed4x3d[_0xc5cf[33]](this,arguments);var _0x8ed4x34=_0x8ed4x3f[_0xc5cf[221]](_0x8ed4x41);if(_0x8ed4x40==null||(_0x8ed4x40!=_0x8ed4x41&&_0x8ed4x40!=_0x8ed4x34)){while(!this[_0xc5cf[14]][_0xc5cf[222]](_0x8ed4x41)&&!this[_0xc5cf[14]][_0xc5cf[222]](_0x8ed4x34)&&_0x8ed4x3f[_0xc5cf[211]](_0x8ed4x34)&&!this[_0xc5cf[14]][_0xc5cf[223]](_0x8ed4x34)){_0x8ed4x41=_0x8ed4x34;_0x8ed4x34=this[_0xc5cf[14]][_0xc5cf[36]]()[_0xc5cf[221]](_0x8ed4x41);}};return _0x8ed4x41;};var _0x8ed4x42=mxGraphHandler[_0xc5cf[44]][_0xc5cf[224]];mxGraphHandler[_0xc5cf[44]][_0xc5cf[224]]=function(_0x8ed4x41){var _0x8ed4x3c=_0x8ed4x42[_0xc5cf[33]](this,arguments);var _0x8ed4x3f=this[_0xc5cf[14]][_0xc5cf[36]]();var _0x8ed4x40=_0x8ed4x3f[_0xc5cf[221]](this[_0xc5cf[14]][_0xc5cf[220]]());var _0x8ed4x34=_0x8ed4x3f[_0xc5cf[221]](_0x8ed4x41);if(_0x8ed4x40==null||(_0x8ed4x40!=_0x8ed4x41&&_0x8ed4x40!=_0x8ed4x34)){if(!this[_0xc5cf[14]][_0xc5cf[222]](_0x8ed4x41)&&_0x8ed4x3f[_0xc5cf[211]](_0x8ed4x34)&&!this[_0xc5cf[14]][_0xc5cf[223]](_0x8ed4x34)){_0x8ed4x3c=true}};return _0x8ed4x3c;};mxGraphHandler[_0xc5cf[44]][_0xc5cf[225]]=function(_0x8ed4x3e){var _0x8ed4x41=_0x8ed4x3e[_0xc5cf[226]]();if(_0x8ed4x41==null){_0x8ed4x41=this[_0xc5cf[227]]};var _0x8ed4x3f=this[_0xc5cf[14]][_0xc5cf[36]]();var _0x8ed4x34=_0x8ed4x3f[_0xc5cf[221]](_0x8ed4x41);while(this[_0xc5cf[14]][_0xc5cf[222]](_0x8ed4x41)&&_0x8ed4x3f[_0xc5cf[211]](_0x8ed4x34)&&!this[_0xc5cf[14]][_0xc5cf[223]](_0x8ed4x34)){_0x8ed4x41=_0x8ed4x34;_0x8ed4x34=_0x8ed4x3f[_0xc5cf[221]](_0x8ed4x41);};this[_0xc5cf[14]][_0xc5cf[229]](_0x8ed4x41,_0x8ed4x3e[_0xc5cf[228]]());};mxPanningHandler[_0xc5cf[44]][_0xc5cf[230]]=function(_0x8ed4x3e){var _0x8ed4x41=_0x8ed4x3e[_0xc5cf[226]]();var _0x8ed4x3f=this[_0xc5cf[14]][_0xc5cf[36]]();var _0x8ed4x34=_0x8ed4x3f[_0xc5cf[221]](_0x8ed4x41);while(_0x8ed4x3f[_0xc5cf[211]](_0x8ed4x34)&&!this[_0xc5cf[14]][_0xc5cf[223]](_0x8ed4x34)){if(this[_0xc5cf[14]][_0xc5cf[222]](_0x8ed4x34)){_0x8ed4x41=_0x8ed4x34};_0x8ed4x34=_0x8ed4x3f[_0xc5cf[221]](_0x8ed4x34);};return _0x8ed4x41;};};Editor[_0xc5cf[44]][_0xc5cf[18]]=function(){var _0x8ed4xe=this[_0xc5cf[14]];var _0x8ed4x43= new mxUndoManager();var _0x8ed4x44=function(_0x8ed4x45,_0x8ed4x14){_0x8ed4x43[_0xc5cf[233]](_0x8ed4x14[_0xc5cf[232]](_0xc5cf[231]))};_0x8ed4xe[_0xc5cf[36]]()[_0xc5cf[35]](mxEvent.UNDO,_0x8ed4x44);_0x8ed4xe[_0xc5cf[234]]()[_0xc5cf[35]](mxEvent.UNDO,_0x8ed4x44);var _0x8ed4x46=function(_0x8ed4x45,_0x8ed4x14){var _0x8ed4x47=_0x8ed4xe[_0xc5cf[236]](_0x8ed4x14[_0xc5cf[232]](_0xc5cf[231])[_0xc5cf[235]]);var _0x8ed4x35=[];for(var _0x8ed4x30=1;_0x8ed4x30<_0x8ed4x47[_0xc5cf[83]];_0x8ed4x30++){if(_0x8ed4xe[_0xc5cf[53]][_0xc5cf[237]](_0x8ed4x47[_0x8ed4x30])!=null){_0x8ed4x35[_0xc5cf[238]](_0x8ed4x47[_0x8ed4x30])}};_0x8ed4xe[_0xc5cf[239]](_0x8ed4x35);};_0x8ed4x43[_0xc5cf[35]](mxEvent.UNDO,_0x8ed4x46);_0x8ed4x43[_0xc5cf[35]](mxEvent.REDO,_0x8ed4x46);return _0x8ed4x43;};Editor[_0xc5cf[44]][_0xc5cf[13]]=function(){mxStencilRegistry[_0xc5cf[241]](STENCIL_PATH+_0xc5cf[240])};(function(){mxStencilRegistry[_0xc5cf[242]]={};mxStencilRegistry[_0xc5cf[243]]=[];mxStencilRegistry[_0xc5cf[244]]=function(_0x8ed4x48){var _0x8ed4x3c=mxStencilRegistry[_0xc5cf[245]][_0x8ed4x48];if(_0x8ed4x3c==null){var _0x8ed4x49=mxStencilRegistry[_0xc5cf[246]](_0x8ed4x48);if(_0x8ed4x49!=null){var _0x8ed4x4a=mxStencilRegistry[_0xc5cf[242]][_0x8ed4x49];if(_0x8ed4x4a!=null){if(mxStencilRegistry[_0xc5cf[243]][_0x8ed4x49]==null){mxStencilRegistry[_0xc5cf[243]][_0x8ed4x49]=1;for(var _0x8ed4x30=0;_0x8ed4x30<_0x8ed4x4a[_0xc5cf[83]];_0x8ed4x30++){var _0x8ed4x4b=_0x8ed4x4a[_0x8ed4x30];if(_0x8ed4x4b[_0xc5cf[248]]()[_0xc5cf[247]](_0x8ed4x4b[_0xc5cf[83]]-4,_0x8ed4x4b[_0xc5cf[83]])==_0xc5cf[25]){mxStencilRegistry[_0xc5cf[241]](_0x8ed4x4b,null)}else {if(_0x8ed4x4b[_0xc5cf[248]]()[_0xc5cf[247]](_0x8ed4x4b[_0xc5cf[83]]-3,_0x8ed4x4b[_0xc5cf[83]])==_0xc5cf[249]){var _0x8ed4x4c=mxUtils[_0xc5cf[250]](_0x8ed4x4b);if(_0x8ed4x4c!=null){eval[_0xc5cf[11]](window,_0x8ed4x4c[_0xc5cf[251]]())};}else {}};};}}else {mxStencilRegistry[_0xc5cf[241]](STENCIL_PATH+_0xc5cf[252]+_0x8ed4x49+_0xc5cf[25],null)};_0x8ed4x3c=mxStencilRegistry[_0xc5cf[245]][_0x8ed4x48];};};return _0x8ed4x3c;};mxStencilRegistry[_0xc5cf[246]]=function(_0x8ed4x48){var _0x8ed4x4d=_0x8ed4x48[_0xc5cf[254]](_0xc5cf[253]);var _0x8ed4x4e=null;if(_0x8ed4x4d[_0xc5cf[83]]>0&&_0x8ed4x4d[0]==_0xc5cf[255]){_0x8ed4x4e=_0x8ed4x4d[1];for(var _0x8ed4x30=2;_0x8ed4x30<_0x8ed4x4d[_0xc5cf[83]]-1;_0x8ed4x30++){_0x8ed4x4e+=_0xc5cf[252]+_0x8ed4x4d[_0x8ed4x30]};};return _0x8ed4x4e;};mxStencilRegistry[_0xc5cf[241]]=function(_0x8ed4x4f,_0x8ed4x50,_0x8ed4x51){_0x8ed4x51=(_0x8ed4x51!=null)?_0x8ed4x51:false;var _0x8ed4x52=mxStencilRegistry[_0xc5cf[243]][_0x8ed4x4f];if(_0x8ed4x51||_0x8ed4x52==null){var _0x8ed4x53=false;if(_0x8ed4x52==null){var _0x8ed4x4c=mxUtils[_0xc5cf[250]](_0x8ed4x4f);_0x8ed4x52=_0x8ed4x4c[_0xc5cf[256]]();mxStencilRegistry[_0xc5cf[243]][_0x8ed4x4f]=_0x8ed4x52;_0x8ed4x53=true;};mxStencilRegistry[_0xc5cf[257]](_0x8ed4x52,_0x8ed4x50,_0x8ed4x53);};};mxStencilRegistry[_0xc5cf[257]]=function(_0x8ed4x54,_0x8ed4x50,_0x8ed4x53){_0x8ed4x53=(_0x8ed4x53!=null)?_0x8ed4x53:true;var _0x8ed4x55=_0x8ed4x54[_0xc5cf[258]];var _0x8ed4x56=_0x8ed4x55[_0xc5cf[184]];var _0x8ed4x57=_0xc5cf[20];var _0x8ed4x48=_0x8ed4x55[_0xc5cf[56]](_0xc5cf[259]);if(_0x8ed4x48!=null){_0x8ed4x57=_0x8ed4x48+_0xc5cf[253]};while(_0x8ed4x56!=null){if(_0x8ed4x56[_0xc5cf[260]]==mxConstants[_0xc5cf[261]]){_0x8ed4x48=_0x8ed4x56[_0xc5cf[56]](_0xc5cf[259]);if(_0x8ed4x48!=null){_0x8ed4x57=_0x8ed4x57[_0xc5cf[248]]();var _0x8ed4x58=_0x8ed4x48[_0xc5cf[263]](/ /g,_0xc5cf[262]);if(_0x8ed4x53){mxStencilRegistry[_0xc5cf[264]](_0x8ed4x57+_0x8ed4x58[_0xc5cf[248]](), new mxStencil(_0x8ed4x56))};if(_0x8ed4x50!=null){var _0x8ed4x19=_0x8ed4x56[_0xc5cf[56]](_0xc5cf[265]);var _0x8ed4x1a=_0x8ed4x56[_0xc5cf[56]](_0xc5cf[266]);_0x8ed4x19=(_0x8ed4x19==null)?80:parseInt(_0x8ed4x19,10);_0x8ed4x1a=(_0x8ed4x1a==null)?80:parseInt(_0x8ed4x1a,10);_0x8ed4x50(_0x8ed4x57,_0x8ed4x58,_0x8ed4x48,_0x8ed4x19,_0x8ed4x1a);};};};_0x8ed4x56=_0x8ed4x56[_0xc5cf[267]];};};})();OpenFile=function(_0x8ed4x59){this[_0xc5cf[268]]=null;this[_0xc5cf[269]]=null;this[_0xc5cf[270]]=_0x8ed4x59;};OpenFile[_0xc5cf[44]][_0xc5cf[271]]=function(_0x8ed4x6){this[_0xc5cf[269]]=_0x8ed4x6;this[_0xc5cf[272]]();};OpenFile[_0xc5cf[44]][_0xc5cf[273]]=function(_0x8ed4x6,_0x8ed4x5a){this[_0xc5cf[274]]=_0x8ed4x6;this[_0xc5cf[21]]=_0x8ed4x5a;this[_0xc5cf[272]]();};OpenFile[_0xc5cf[44]][_0xc5cf[275]]=function(_0x8ed4x5b){this[_0xc5cf[276]]();mxUtils[_0xc5cf[277]](_0x8ed4x5b);};OpenFile[_0xc5cf[44]][_0xc5cf[272]]=function(){if(this[_0xc5cf[269]]!=null&&this[_0xc5cf[274]]!=null){this[_0xc5cf[269]](this[_0xc5cf[274]],this[_0xc5cf[21]]);this[_0xc5cf[276]]();}};OpenFile[_0xc5cf[44]][_0xc5cf[276]]=function(){if(this[_0xc5cf[270]]!=null){this[_0xc5cf[270]]()}};
\ No newline at end of file
+var _0x858a=["\x49\x53\x5F\x54\x4F\x55\x43\x48","\x73\x74\x6F\x72\x61\x67\x65","\x6C\x6F\x63\x61\x6C","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x46\x69\x6C\x65","\x46\x69\x6C\x65\x52\x65\x61\x64\x65\x72","\x46\x69\x6C\x65\x4C\x69\x73\x74","\x74\x6F\x75\x63\x68","\x31","\x6F\x70\x65\x6E\x65\x72","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x61\x6C\x6C","\x69\x6E\x69\x74","\x69\x6E\x69\x74\x53\x74\x65\x6E\x63\x69\x6C\x52\x65\x67\x69\x73\x74\x72\x79","\x67\x72\x61\x70\x68","\x6F\x75\x74\x6C\x69\x6E\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x74\x61\x74\x75\x73","","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x64\x72\x61\x77\x69\x6E\x67","\x67\x65\x74","\x2E\x78\x6D\x6C","\x67\x65\x74\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x67\x72\x61\x70\x68\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x70\x70\x6C\x79","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x73\x4C\x6F\x73\x74","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E\x64","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x2F\x67\x72\x69\x64\x2E\x67\x69\x66","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x73\x63\x61\x6C\x65","\x76\x69\x65\x77","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x30","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x67\x75\x69\x64\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x66\x6F\x6C\x64","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x78","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x64\x78","\x79","\x64\x79","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x63\x6F\x64\x65","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x65\x6E\x63\x6F\x64\x65","\x72\x6F\x75\x6E\x64","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x6E\x6F\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x74\x79\x6C\x65","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x66\x69\x6C\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x23\x65\x62\x65\x62\x65\x62","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x73\x6F\x6C\x69\x64","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x23\x65\x35\x65\x35\x65\x35","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x31\x70\x78","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x30\x70\x78","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72","\x76\x61\x6C\x69\x64\x61\x74\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x61\x75\x74\x6F","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x6E\x6F\x64\x65","\x49\x53\x5F\x49\x45\x36","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x67\x72\x61\x70\x68\x65\x64\x69\x74\x6F\x72\x2D\x69\x65\x36\x2E\x63\x73\x73","\x6C\x69\x6E\x6B","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x61\x64\x64","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x23\x64\x30\x64\x30\x64\x30","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x39\x39\x63\x63\x66\x66","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x38\x38\x63\x66","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x61\x38\x66\x66","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x63\x65\x65\x37\x66\x66","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x47\x55\x49\x44\x45\x5F\x43\x4F\x4C\x4F\x52","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x23\x63\x30\x63\x30\x63\x30","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x77\x68\x69\x74\x65","\x23\x63\x61\x63\x61\x63\x61","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x6D\x61\x78","\x63\x65\x69\x6C","\x70\x61\x6E\x47\x72\x61\x70\x68","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65","\x73\x72\x63","\x64\x65\x73\x74\x72\x6F\x79","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x72\x65\x64\x72\x61\x77","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x68\x69\x64\x65","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x62\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x69\x6E\x74\x73","\x69\x73\x44\x61\x73\x68\x65\x64","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x61\x64\x64\x50\x69\x70\x65","\x73\x70\x6C\x69\x63\x65","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x72\x65\x6C\x61\x74\x69\x76\x65","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6F\x6E\x73\x75\x6D\x65","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C","\x67\x65\x74\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x65\x64\x69\x74","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x67\x65\x74\x56\x69\x65\x77","\x63\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x74\x61\x74\x65","\x70\x75\x73\x68","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x6C\x69\x62\x72\x61\x72\x69\x65\x73","\x70\x61\x63\x6B\x61\x67\x65\x73","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x67\x65\x74\x42\x61\x73\x65\x6E\x61\x6D\x65\x46\x6F\x72\x53\x74\x65\x6E\x63\x69\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x2E\x6A\x73","\x6C\x6F\x61\x64","\x67\x65\x74\x54\x65\x78\x74","\x2F","\x2E","\x73\x70\x6C\x69\x74","\x6D\x78\x67\x72\x61\x70\x68","\x67\x65\x74\x58\x6D\x6C","\x70\x61\x72\x73\x65\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x5F","\x72\x65\x70\x6C\x61\x63\x65","\x61\x64\x64\x53\x74\x65\x6E\x63\x69\x6C","\x77","\x68","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x70\x72\x6F\x64\x75\x63\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x72","\x64\x6F\x6E\x65","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x65\x78\x65\x63\x75\x74\x65","\x73\x65\x74\x44\x61\x74\x61","\x64\x61\x74\x61","\x65\x72\x72\x6F\x72","\x63\x61\x6E\x63\x65\x6C","\x61\x6C\x65\x72\x74"];var useLocalStorage=(mxClient[_0x858a[0]]||urlParams[_0x858a[1]]==_0x858a[2])&& typeof (localStorage)!=_0x858a[3];var fileSupport=window[_0x858a[4]]!=null&&window[_0x858a[5]]!=null&&window[_0x858a[6]]!=null;var touchStyle=mxClient[_0x858a[0]]||urlParams[_0x858a[7]]==_0x858a[8];var counter=0;try{var op=window;while(op[_0x858a[9]]!=null&&!isNaN(op[_0x858a[9]][_0x858a[10]])){op=op[_0x858a[9]]};if(op!=null){op[_0x858a[10]]++;counter=op[_0x858a[10]];};}catch(e){};Editor=function(){mxEventSource[_0x858a[11]](this);this[_0x858a[12]]();this[_0x858a[13]]();this[_0x858a[14]]= new Graph();this[_0x858a[15]]= new mxOutline(this[_0x858a[14]]);this[_0x858a[15]][_0x858a[16]]=true;this[_0x858a[17]]=this[_0x858a[18]]();this[_0x858a[19]]=_0x858a[20];this[_0x858a[21]]=null;this[_0x858a[22]]=function(){return this[_0x858a[21]]||mxResources[_0x858a[24]](_0x858a[23],[counter])+_0x858a[25]};this[_0x858a[26]]=function(){return this[_0x858a[21]]};this[_0x858a[27]]=function(_0xd9bdx6){this[_0x858a[19]]=_0xd9bdx6;this[_0x858a[29]]( new mxEventObject(_0x858a[28]));};this[_0x858a[30]]=function(){return this[_0x858a[19]]};this[_0x858a[31]]=false;this[_0x858a[32]]=function(){this[_0x858a[31]]=true};this[_0x858a[14]][_0x858a[36]]()[_0x858a[35]](mxEvent.CHANGE,mxUtils[_0x858a[34]](this,function(){this[_0x858a[32]][_0x858a[33]](this,arguments)}));window[_0x858a[37]]=mxUtils[_0x858a[34]](this,function(){if(this[_0x858a[31]]){return mxResources[_0x858a[24]](_0x858a[38])}});this[_0x858a[14]][_0x858a[39]]=false;this[_0x858a[14]][_0x858a[40]]=true;this[_0x858a[14]][_0x858a[41]]=null;};mxUtils[_0x858a[42]](Editor,mxEventSource);Editor[_0x858a[44]][_0x858a[43]]=IMAGE_PATH+_0x858a[45];Editor[_0x858a[44]][_0x858a[46]]=IMAGE_PATH+_0x858a[47];Editor[_0x858a[44]][_0x858a[48]]=function(_0xd9bdx7){var _0xd9bdx8= new mxCodec(_0xd9bdx7[_0x858a[49]]);if(_0xd9bdx7[_0x858a[50]]==_0x858a[51]){this[_0x858a[14]][_0x858a[53]][_0x858a[52]]=1;this[_0x858a[14]][_0x858a[54]]=_0xd9bdx7[_0x858a[56]](_0x858a[55])!=_0x858a[57];this[_0x858a[14]][_0x858a[59]][_0x858a[58]]=_0xd9bdx7[_0x858a[56]](_0x858a[60])!=_0x858a[57];this[_0x858a[14]][_0x858a[62]](_0xd9bdx7[_0x858a[56]](_0x858a[61])!=_0x858a[57]);this[_0x858a[14]][_0x858a[64]](_0xd9bdx7[_0x858a[56]](_0x858a[63])!=_0x858a[57]);this[_0x858a[14]][_0x858a[65]]=_0xd9bdx7[_0x858a[56]](_0x858a[66])!=_0x858a[57];this[_0x858a[14]][_0x858a[40]]=_0xd9bdx7[_0x858a[56]](_0x858a[40])!=_0x858a[57];if(!this[_0x858a[14]][_0x858a[40]]){this[_0x858a[14]][_0x858a[68]][_0x858a[67]]=0;this[_0x858a[14]][_0x858a[68]][_0x858a[69]]=0;this[_0x858a[14]][_0x858a[53]][_0x858a[71]][_0x858a[70]]=Number(_0xd9bdx7[_0x858a[56]](_0x858a[72])||0);this[_0x858a[14]][_0x858a[53]][_0x858a[71]][_0x858a[73]]=Number(_0xd9bdx7[_0x858a[56]](_0x858a[74])||0);};this[_0x858a[14]][_0x858a[75]]=_0xd9bdx7[_0x858a[56]](_0x858a[76])==_0x858a[8];this[_0x858a[14]][_0x858a[77]]=this[_0x858a[14]][_0x858a[75]];this[_0x858a[14]][_0x858a[78]]=this[_0x858a[14]][_0x858a[77]];var _0xd9bdx9=_0xd9bdx7[_0x858a[56]](_0x858a[79]);if(_0xd9bdx9!=null){this[_0x858a[14]][_0x858a[79]]=_0xd9bdx9}else {this[_0x858a[14]][_0x858a[79]]=1.5};var _0xd9bdxa=_0xd9bdx7[_0x858a[56]](_0x858a[80]);var _0xd9bdxb=_0xd9bdx7[_0x858a[56]](_0x858a[81]);if(_0xd9bdxa!=null&&_0xd9bdxb!=null){this[_0x858a[14]][_0x858a[82]]= new mxRectangle(0,0,parseFloat(_0xd9bdxa),parseFloat(_0xd9bdxb));this[_0x858a[15]][_0x858a[15]][_0x858a[82]]=this[_0x858a[14]][_0x858a[82]];};var _0xd9bdxc=_0xd9bdx7[_0x858a[56]](_0x858a[41]);if(_0xd9bdxc!=null&&_0xd9bdxc[_0x858a[83]]>0){this[_0x858a[14]][_0x858a[41]]=_0xd9bdxc};_0xd9bdx8[_0x858a[84]](_0xd9bdx7,this[_0x858a[14]][_0x858a[36]]());this[_0x858a[85]]();};};Editor[_0x858a[44]][_0x858a[86]]=function(){var _0xd9bdxd= new mxCodec(mxUtils[_0x858a[87]]());var _0xd9bdx7=_0xd9bdxd[_0x858a[88]](this[_0x858a[14]][_0x858a[36]]());if(this[_0x858a[14]][_0x858a[53]][_0x858a[71]][_0x858a[70]]!=0||this[_0x858a[14]][_0x858a[53]][_0x858a[71]][_0x858a[73]]!=0){_0xd9bdx7[_0x858a[90]](_0x858a[72],Math[_0x858a[89]](this[_0x858a[14]][_0x858a[53]][_0x858a[71]][_0x858a[70]]*100)/100);_0xd9bdx7[_0x858a[90]](_0x858a[74],Math[_0x858a[89]](this[_0x858a[14]][_0x858a[53]][_0x858a[71]][_0x858a[73]]*100)/100);};_0xd9bdx7[_0x858a[90]](_0x858a[55],(this[_0x858a[14]][_0x858a[91]]())?_0x858a[8]:_0x858a[57]);_0xd9bdx7[_0x858a[90]](_0x858a[60],(this[_0x858a[14]][_0x858a[59]][_0x858a[58]])?_0x858a[8]:_0x858a[57]);_0xd9bdx7[_0x858a[90]](_0x858a[60],(this[_0x858a[14]][_0x858a[59]][_0x858a[58]])?_0x858a[8]:_0x858a[57]);_0xd9bdx7[_0x858a[90]](_0x858a[61],(this[_0x858a[14]][_0x858a[93]][_0x858a[92]]())?_0x858a[8]:_0x858a[57]);_0xd9bdx7[_0x858a[90]](_0x858a[63],(this[_0x858a[14]][_0x858a[94]][_0x858a[92]]())?_0x858a[8]:_0x858a[57]);_0xd9bdx7[_0x858a[90]](_0x858a[66],(this[_0x858a[14]][_0x858a[65]])?_0x858a[8]:_0x858a[57]);_0xd9bdx7[_0x858a[90]](_0x858a[76],(this[_0x858a[14]][_0x858a[75]])?_0x858a[8]:_0x858a[57]);_0xd9bdx7[_0x858a[90]](_0x858a[79],this[_0x858a[14]][_0x858a[79]]);_0xd9bdx7[_0x858a[90]](_0x858a[80],this[_0x858a[14]][_0x858a[82]][_0x858a[95]]);_0xd9bdx7[_0x858a[90]](_0x858a[81],this[_0x858a[14]][_0x858a[82]][_0x858a[96]]);if(!this[_0x858a[14]][_0x858a[40]]){_0xd9bdx7[_0x858a[90]](_0x858a[40],_0x858a[57])};if(this[_0x858a[14]][_0x858a[41]]!=null){_0xd9bdx7[_0x858a[90]](_0x858a[41],this[_0x858a[14]][_0x858a[41]])};return _0xd9bdx7;};Editor[_0x858a[44]][_0x858a[85]]=function(){var _0xd9bdxe=this[_0x858a[14]];var _0xd9bdxf=this[_0x858a[15]];if(_0xd9bdxe[_0x858a[68]]!=null&&_0xd9bdxf[_0x858a[15]][_0x858a[68]]!=null){if(_0xd9bdxe[_0x858a[41]]!=null){if(_0xd9bdxe[_0x858a[41]]==_0x858a[97]){_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[98]]=_0x858a[100]}else {if(_0xd9bdxe[_0x858a[53]][_0x858a[101]]!=null){_0xd9bdxe[_0x858a[53]][_0x858a[101]][_0x858a[102]]=_0xd9bdxe[_0x858a[41]];_0xd9bdxe[_0x858a[53]][_0x858a[101]][_0x858a[103]]();};_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[98]]=_0xd9bdxe[_0x858a[41]];}}else {_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[98]]=_0x858a[20]};if(_0xd9bdxe[_0x858a[75]]){_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[98]]=_0x858a[104];_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[105]]=_0x858a[106];_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[107]]=_0x858a[108];_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[109]]=_0x858a[110];_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[111]]=_0x858a[110];_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[112]]=_0x858a[113];_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[114]]=_0x858a[113];}else {_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[115]]=_0x858a[20]};_0xd9bdxf[_0x858a[15]][_0x858a[68]][_0x858a[99]][_0x858a[98]]=_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[98]];if(_0xd9bdxf[_0x858a[15]][_0x858a[75]]!=_0xd9bdxe[_0x858a[75]]||_0xd9bdxf[_0x858a[15]][_0x858a[79]]!=_0xd9bdxe[_0x858a[79]]){_0xd9bdxf[_0x858a[15]][_0x858a[79]]=_0xd9bdxe[_0x858a[79]];_0xd9bdxf[_0x858a[15]][_0x858a[75]]=_0xd9bdxe[_0x858a[75]];_0xd9bdxf[_0x858a[15]][_0x858a[53]][_0x858a[116]]();};if(_0xd9bdxe[_0x858a[40]]&&_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[117]]==_0x858a[118]&& !touchStyle){_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[117]]=_0x858a[119]}else {if(!_0xd9bdxe[_0x858a[40]]||touchStyle){_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[117]]=_0x858a[118]}};var _0xd9bdx10=(mxClient[_0x858a[120]]&&document[_0x858a[121]]>=9)?_0x858a[122]+this[_0x858a[46]]+_0x858a[123]:_0x858a[97];_0xd9bdxe[_0x858a[68]][_0x858a[99]][_0x858a[124]]=(!_0xd9bdxe[_0x858a[75]]&&_0xd9bdxe[_0x858a[91]]())?_0x858a[122]+this[_0x858a[43]]+_0x858a[123]:_0xd9bdx10;if(_0xd9bdxe[_0x858a[53]][_0x858a[101]]!=null){_0xd9bdxe[_0x858a[53]][_0x858a[101]][_0x858a[125]][_0x858a[99]][_0x858a[124]]=(this[_0x858a[14]][_0x858a[91]]())?_0x858a[122]+this[_0x858a[43]]+_0x858a[123]:_0x858a[97]};};};Editor[_0x858a[44]][_0x858a[12]]=function(){if(mxClient[_0x858a[126]]){mxClient[_0x858a[129]](_0x858a[127],CSS_PATH+_0x858a[128])};mxResources[_0x858a[130]]=false;mxResources[_0x858a[131]](RESOURCE_BASE);mxConstants[_0x858a[132]]=0.3;var _0xd9bdx11=mxConnectionHandler[_0x858a[44]][_0x858a[133]];mxConnectionHandler[_0x858a[44]][_0x858a[133]]=function(){var _0xd9bdx12=_0xd9bdx11[_0x858a[33]](this,arguments);_0xd9bdx12[_0x858a[134]]=mxUtils[_0x858a[34]](this,function(_0xd9bdx13,_0xd9bdx14){if(this[_0x858a[135]]()){return true};return mxCellMarker[_0x858a[44]][_0x858a[134]][_0x858a[33]](_0xd9bdx12,arguments);});return _0xd9bdx12;};mxConstants[_0x858a[136]]=_0x858a[137];mxConstants[_0x858a[138]]=_0x858a[139];mxConstants[_0x858a[140]]=_0x858a[141];mxConstants[_0x858a[142]]=_0x858a[143];mxConstants[_0x858a[144]]=_0x858a[143];mxConstants[_0x858a[145]]=_0x858a[139];mxConstants[_0x858a[146]]=_0x858a[143];mxConstants[_0x858a[147]]=_0x858a[148];mxConstants[_0x858a[149]]=_0x858a[143];mxConstants[_0x858a[150]]=_0x858a[143];mxConstants[_0x858a[151]]=_0x858a[148];mxConstants[_0x858a[152]]=_0x858a[141];mxGraph[_0x858a[44]][_0x858a[153]]=_0x858a[154];mxGraph[_0x858a[44]][_0x858a[79]]=1;mxRubberband[_0x858a[44]][_0x858a[155]]=30;mxGraphView[_0x858a[44]][_0x858a[156]]=function(_0xd9bdx15){return  new mxRectangleShape(_0xd9bdx15,this[_0x858a[14]][_0x858a[41]]||_0x858a[157],_0x858a[158])};mxGraphView[_0x858a[44]][_0x858a[159]]=function(){var _0xd9bdx16=this[_0x858a[160]]();var _0xd9bdx17=(_0xd9bdx16[_0x858a[95]]>0)?_0xd9bdx16[_0x858a[70]]/this[_0x858a[52]]-this[_0x858a[71]][_0x858a[70]]:0;var _0xd9bdx18=(_0xd9bdx16[_0x858a[96]]>0)?_0xd9bdx16[_0x858a[73]]/this[_0x858a[52]]-this[_0x858a[71]][_0x858a[73]]:0;var _0xd9bdx19=_0xd9bdx16[_0x858a[95]]/this[_0x858a[52]];var _0xd9bdx1a=_0xd9bdx16[_0x858a[96]]/this[_0x858a[52]];var _0xd9bdx1b=this[_0x858a[14]][_0x858a[82]];var _0xd9bdx9=this[_0x858a[14]][_0x858a[79]];var _0xd9bdxa=_0xd9bdx1b[_0x858a[95]]*_0xd9bdx9;var _0xd9bdxb=_0xd9bdx1b[_0x858a[96]]*_0xd9bdx9;var _0xd9bdx1c=Math[_0x858a[162]](Math[_0x858a[161]](0,_0xd9bdx17)/_0xd9bdxa);var _0xd9bdx1d=Math[_0x858a[162]](Math[_0x858a[161]](0,_0xd9bdx18)/_0xd9bdxb);var _0xd9bdx1e=Math[_0x858a[164]](Math[_0x858a[163]](1,_0xd9bdx17+_0xd9bdx19)/_0xd9bdxa);var _0xd9bdx1f=Math[_0x858a[164]](Math[_0x858a[163]](1,_0xd9bdx18+_0xd9bdx1a)/_0xd9bdxb);var _0xd9bdx20=_0xd9bdx1e-_0xd9bdx1c;var _0xd9bdx21=_0xd9bdx1f-_0xd9bdx1d;var _0xd9bdx15= new mxRectangle(this[_0x858a[52]]*(this[_0x858a[71]][_0x858a[70]]+_0xd9bdx1c*_0xd9bdxa),this[_0x858a[52]]*(this[_0x858a[71]][_0x858a[73]]+_0xd9bdx1d*_0xd9bdxb),this[_0x858a[52]]*_0xd9bdx20*_0xd9bdxa,this[_0x858a[52]]*_0xd9bdx21*_0xd9bdxb);return _0xd9bdx15;};var _0xd9bdx22=mxGraph[_0x858a[44]][_0x858a[165]];mxGraph[_0x858a[44]][_0x858a[165]]=function(_0xd9bdx23,_0xd9bdx24){_0xd9bdx22[_0x858a[33]](this,arguments);if((this[_0x858a[166]]!=mxConstants[_0x858a[167]]&&this[_0x858a[53]][_0x858a[101]]!=null)&&(!this[_0x858a[168]]||!mxUtils[_0x858a[169]](this[_0x858a[68]]))){this[_0x858a[53]][_0x858a[101]][_0x858a[125]][_0x858a[99]][_0x858a[170]]=_0xd9bdx23+_0x858a[171];this[_0x858a[53]][_0x858a[101]][_0x858a[125]][_0x858a[99]][_0x858a[172]]=_0xd9bdx24+_0x858a[171];};};var _0xd9bdx25=this;mxGraphView[_0x858a[44]][_0x858a[173]]=function(){var _0xd9bdxc=this[_0x858a[14]][_0x858a[174]]();if(_0xd9bdxc!=null){if(this[_0x858a[124]]==null||this[_0x858a[124]][_0x858a[175]]!=_0xd9bdxc[_0x858a[176]]){if(this[_0x858a[124]]!=null){this[_0x858a[124]][_0x858a[177]]()};var _0xd9bdx15= new mxRectangle(0,0,1,1);this[_0x858a[124]]= new mxImageShape(_0xd9bdx15,_0xd9bdxc[_0x858a[176]]);this[_0x858a[124]][_0x858a[166]]=this[_0x858a[14]][_0x858a[166]];this[_0x858a[124]][_0x858a[12]](this[_0x858a[178]]);this[_0x858a[124]][_0x858a[179]]();};this[_0x858a[180]](this[_0x858a[124]],_0xd9bdxc);}else {if(this[_0x858a[124]]!=null){this[_0x858a[124]][_0x858a[177]]();this[_0x858a[124]]=null;}};if(this[_0x858a[14]][_0x858a[75]]){var _0xd9bdx15=this[_0x858a[159]]();if(this[_0x858a[101]]==null){this[_0x858a[101]]=this[_0x858a[156]](_0xd9bdx15);this[_0x858a[101]][_0x858a[52]]=1;this[_0x858a[101]][_0x858a[181]]=true;this[_0x858a[101]][_0x858a[166]]=mxConstants[_0x858a[182]];this[_0x858a[101]][_0x858a[12]](this[_0x858a[14]][_0x858a[68]]);this[_0x858a[14]][_0x858a[68]][_0x858a[184]][_0x858a[99]][_0x858a[183]]=_0x858a[185];this[_0x858a[14]][_0x858a[68]][_0x858a[186]](this[_0x858a[101]][_0x858a[125]],this[_0x858a[14]][_0x858a[68]][_0x858a[184]]);this[_0x858a[101]][_0x858a[179]]();this[_0x858a[101]][_0x858a[125]][_0x858a[187]]=_0x858a[188];this[_0x858a[101]][_0x858a[125]][_0x858a[99]][_0x858a[189]]=_0x858a[190];mxEvent[_0x858a[35]](this[_0x858a[101]][_0x858a[125]],_0x858a[191],mxUtils[_0x858a[34]](this,function(_0xd9bdx14){this[_0x858a[14]][_0x858a[192]](_0xd9bdx14)}));mxEvent[_0x858a[198]](this[_0x858a[101]][_0x858a[125]],mxUtils[_0x858a[34]](this,function(_0xd9bdx14){this[_0x858a[14]][_0x858a[193]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xd9bdx14))}),mxUtils[_0x858a[34]](this,function(_0xd9bdx14){if(this[_0x858a[14]][_0x858a[93]]!=null&&this[_0x858a[14]][_0x858a[93]][_0x858a[194]]()){this[_0x858a[14]][_0x858a[93]][_0x858a[195]]()};if(this[_0x858a[14]][_0x858a[196]]&&!mxEvent[_0x858a[197]](_0xd9bdx14)){this[_0x858a[14]][_0x858a[193]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xd9bdx14))};}),mxUtils[_0x858a[34]](this,function(_0xd9bdx14){this[_0x858a[14]][_0x858a[193]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xd9bdx14))}));}else {this[_0x858a[101]][_0x858a[52]]=1;this[_0x858a[101]][_0x858a[199]]=_0xd9bdx15;this[_0x858a[101]][_0x858a[179]]();};this[_0x858a[101]][_0x858a[125]][_0x858a[99]][_0x858a[124]]=(this[_0x858a[14]][_0x858a[91]]())?_0x858a[122]+_0xd9bdx25[_0x858a[43]]+_0x858a[123]:_0x858a[97];}else {if(this[_0x858a[101]]!=null){this[_0x858a[101]][_0x858a[177]]();this[_0x858a[101]]=null;}};};mxGraph[_0x858a[44]][_0x858a[200]]=function(_0xd9bdx26,_0xd9bdx27,_0xd9bdx28){var _0xd9bdx29=this[_0x858a[53]][_0x858a[52]];var _0xd9bdx2a=this[_0x858a[53]][_0x858a[71]];var _0xd9bdx1b=this[_0x858a[82]];var _0xd9bdx9=_0xd9bdx29*this[_0x858a[79]];var _0xd9bdx2b=this[_0x858a[53]][_0x858a[159]]();_0xd9bdx27=_0xd9bdx2b[_0x858a[95]];_0xd9bdx28=_0xd9bdx2b[_0x858a[96]];var _0xd9bdx15= new mxRectangle(_0xd9bdx29*_0xd9bdx2a[_0x858a[70]],_0xd9bdx29*_0xd9bdx2a[_0x858a[73]],_0xd9bdx1b[_0x858a[95]]*_0xd9bdx9,_0xd9bdx1b[_0x858a[96]]*_0xd9bdx9);_0xd9bdx26=_0xd9bdx26&&Math[_0x858a[161]](_0xd9bdx15[_0x858a[95]],_0xd9bdx15[_0x858a[96]])>this[_0x858a[201]];var _0xd9bdx2c=(_0xd9bdx26)?Math[_0x858a[164]](_0xd9bdx27/_0xd9bdx15[_0x858a[95]])-1:0;var _0xd9bdx2d=(_0xd9bdx26)?Math[_0x858a[164]](_0xd9bdx28/_0xd9bdx15[_0x858a[96]])-1:0;var _0xd9bdx2e=_0xd9bdx2b[_0x858a[70]]+_0xd9bdx27;var _0xd9bdx2f=_0xd9bdx2b[_0x858a[73]]+_0xd9bdx28;if(this[_0x858a[202]]==null&&_0xd9bdx2c>0){this[_0x858a[202]]=[]};if(this[_0x858a[202]]!=null){for(var _0xd9bdx30=0;_0xd9bdx30<=_0xd9bdx2c;_0xd9bdx30++){var _0xd9bdx31=[ new mxPoint(_0xd9bdx2b[_0x858a[70]]+(_0xd9bdx30+1)*_0xd9bdx15[_0x858a[95]],_0xd9bdx2b[_0x858a[73]]), new mxPoint(_0xd9bdx2b[_0x858a[70]]+(_0xd9bdx30+1)*_0xd9bdx15[_0x858a[95]],_0xd9bdx2f)];if(this[_0x858a[202]][_0xd9bdx30]!=null){this[_0x858a[202]][_0xd9bdx30][_0x858a[52]]=1;this[_0x858a[202]][_0xd9bdx30][_0x858a[203]]=_0xd9bdx31;this[_0x858a[202]][_0xd9bdx30][_0x858a[179]]();}else {var _0xd9bdx32= new mxPolyline(_0xd9bdx31,this[_0x858a[153]],this[_0x858a[52]]);_0xd9bdx32[_0x858a[166]]=this[_0x858a[166]];_0xd9bdx32[_0x858a[204]]=this[_0x858a[205]];_0xd9bdx32[_0x858a[206]]=false;_0xd9bdx32[_0x858a[52]]=_0xd9bdx29;_0xd9bdx32[_0x858a[12]](this[_0x858a[53]][_0x858a[178]]);_0xd9bdx32[_0x858a[179]]();this[_0x858a[202]][_0xd9bdx30]=_0xd9bdx32;};};for(var _0xd9bdx30=_0xd9bdx2c;_0xd9bdx30<this[_0x858a[202]][_0x858a[83]];_0xd9bdx30++){this[_0x858a[202]][_0xd9bdx30][_0x858a[177]]()};this[_0x858a[202]][_0x858a[207]](_0xd9bdx2c,this[_0x858a[202]][_0x858a[83]]-_0xd9bdx2c);};if(this[_0x858a[208]]==null&&_0xd9bdx2d>0){this[_0x858a[208]]=[]};if(this[_0x858a[208]]!=null){for(var _0xd9bdx30=0;_0xd9bdx30<=_0xd9bdx2d;_0xd9bdx30++){var _0xd9bdx31=[ new mxPoint(_0xd9bdx2b[_0x858a[70]],_0xd9bdx2b[_0x858a[73]]+(_0xd9bdx30+1)*_0xd9bdx15[_0x858a[96]]), new mxPoint(_0xd9bdx2e,_0xd9bdx2b[_0x858a[73]]+(_0xd9bdx30+1)*_0xd9bdx15[_0x858a[96]])];if(this[_0x858a[208]][_0xd9bdx30]!=null){this[_0x858a[208]][_0xd9bdx30][_0x858a[52]]=1;this[_0x858a[208]][_0xd9bdx30][_0x858a[203]]=_0xd9bdx31;this[_0x858a[208]][_0xd9bdx30][_0x858a[179]]();}else {var _0xd9bdx32= new mxPolyline(_0xd9bdx31,this[_0x858a[153]],_0xd9bdx29);_0xd9bdx32[_0x858a[166]]=this[_0x858a[166]];_0xd9bdx32[_0x858a[204]]=this[_0x858a[205]];_0xd9bdx32[_0x858a[206]]=false;_0xd9bdx32[_0x858a[52]]=_0xd9bdx29;_0xd9bdx32[_0x858a[12]](this[_0x858a[53]][_0x858a[178]]);_0xd9bdx32[_0x858a[179]]();this[_0x858a[208]][_0xd9bdx30]=_0xd9bdx32;};};for(var _0xd9bdx30=_0xd9bdx2d;_0xd9bdx30<this[_0x858a[208]][_0x858a[83]];_0xd9bdx30++){this[_0x858a[208]][_0xd9bdx30][_0x858a[177]]()};this[_0x858a[208]][_0x858a[207]](_0xd9bdx2d,this[_0x858a[208]][_0x858a[83]]-_0xd9bdx2d);};};mxEdgeHandler[_0x858a[44]][_0x858a[209]]=true;mxGraphHandler[_0x858a[44]][_0x858a[58]]=true;var _0xd9bdx33=mxGraphHandler[_0x858a[44]][_0x858a[210]];mxGraphHandler[_0x858a[44]][_0x858a[210]]=function(_0xd9bdx34,_0xd9bdx35,_0xd9bdx14){for(var _0xd9bdx30=0;_0xd9bdx30<_0xd9bdx35[_0x858a[83]];_0xd9bdx30++){if(this[_0x858a[14]][_0x858a[36]]()[_0x858a[211]](_0xd9bdx35[_0xd9bdx30])){var _0xd9bdx36=this[_0x858a[14]][_0x858a[212]](_0xd9bdx35[_0xd9bdx30]);if(_0xd9bdx36!=null&&_0xd9bdx36[_0x858a[213]]){return false};}};return _0xd9bdx33[_0x858a[33]](this,arguments);};mxGuide[_0x858a[44]][_0x858a[214]]=function(_0xd9bdx14){return !mxEvent[_0x858a[215]](_0xd9bdx14)};mxPopupMenuAddItem=mxPopupMenu[_0x858a[44]][_0x858a[216]];mxPopupMenu[_0x858a[44]][_0x858a[216]]=function(_0xd9bdx37,_0xd9bdx38,_0xd9bdx39,_0xd9bdx34,_0xd9bdx3a,_0xd9bdx3b){var _0xd9bdx3c=mxPopupMenuAddItem[_0x858a[33]](this,arguments);if(_0xd9bdx3b!=null&& !_0xd9bdx3b){mxEvent[_0x858a[35]](_0xd9bdx3c,_0x858a[217],function(_0xd9bdx14){mxEvent[_0x858a[218]](_0xd9bdx14)})};return _0xd9bdx3c;};var _0xd9bdx3d=mxGraphHandler[_0x858a[44]][_0x858a[219]];mxGraphHandler[_0x858a[44]][_0x858a[219]]=function(_0xd9bdx3e){var _0xd9bdx3f=this[_0x858a[14]][_0x858a[36]]();var _0xd9bdx40=_0xd9bdx3f[_0x858a[221]](this[_0x858a[14]][_0x858a[220]]());var _0xd9bdx41=_0xd9bdx3d[_0x858a[33]](this,arguments);var _0xd9bdx34=_0xd9bdx3f[_0x858a[221]](_0xd9bdx41);if(_0xd9bdx40==null||(_0xd9bdx40!=_0xd9bdx41&&_0xd9bdx40!=_0xd9bdx34)){while(!this[_0x858a[14]][_0x858a[222]](_0xd9bdx41)&&!this[_0x858a[14]][_0x858a[222]](_0xd9bdx34)&&_0xd9bdx3f[_0x858a[211]](_0xd9bdx34)&&!this[_0x858a[14]][_0x858a[223]](_0xd9bdx34)){_0xd9bdx41=_0xd9bdx34;_0xd9bdx34=this[_0x858a[14]][_0x858a[36]]()[_0x858a[221]](_0xd9bdx41);}};return _0xd9bdx41;};var _0xd9bdx42=mxGraphHandler[_0x858a[44]][_0x858a[224]];mxGraphHandler[_0x858a[44]][_0x858a[224]]=function(_0xd9bdx41){var _0xd9bdx3c=_0xd9bdx42[_0x858a[33]](this,arguments);var _0xd9bdx3f=this[_0x858a[14]][_0x858a[36]]();var _0xd9bdx40=_0xd9bdx3f[_0x858a[221]](this[_0x858a[14]][_0x858a[220]]());var _0xd9bdx34=_0xd9bdx3f[_0x858a[221]](_0xd9bdx41);if(_0xd9bdx40==null||(_0xd9bdx40!=_0xd9bdx41&&_0xd9bdx40!=_0xd9bdx34)){if(!this[_0x858a[14]][_0x858a[222]](_0xd9bdx41)&&_0xd9bdx3f[_0x858a[211]](_0xd9bdx34)&&!this[_0x858a[14]][_0x858a[223]](_0xd9bdx34)){_0xd9bdx3c=true}};return _0xd9bdx3c;};mxGraphHandler[_0x858a[44]][_0x858a[225]]=function(_0xd9bdx3e){var _0xd9bdx41=_0xd9bdx3e[_0x858a[226]]();if(_0xd9bdx41==null){_0xd9bdx41=this[_0x858a[227]]};var _0xd9bdx3f=this[_0x858a[14]][_0x858a[36]]();var _0xd9bdx34=_0xd9bdx3f[_0x858a[221]](_0xd9bdx41);while(this[_0x858a[14]][_0x858a[222]](_0xd9bdx41)&&_0xd9bdx3f[_0x858a[211]](_0xd9bdx34)&&!this[_0x858a[14]][_0x858a[223]](_0xd9bdx34)){_0xd9bdx41=_0xd9bdx34;_0xd9bdx34=_0xd9bdx3f[_0x858a[221]](_0xd9bdx41);};this[_0x858a[14]][_0x858a[229]](_0xd9bdx41,_0xd9bdx3e[_0x858a[228]]());};mxPanningHandler[_0x858a[44]][_0x858a[230]]=function(_0xd9bdx3e){var _0xd9bdx41=_0xd9bdx3e[_0x858a[226]]();var _0xd9bdx3f=this[_0x858a[14]][_0x858a[36]]();var _0xd9bdx34=_0xd9bdx3f[_0x858a[221]](_0xd9bdx41);while(_0xd9bdx3f[_0x858a[211]](_0xd9bdx34)&&!this[_0x858a[14]][_0x858a[223]](_0xd9bdx34)){if(this[_0x858a[14]][_0x858a[222]](_0xd9bdx34)){_0xd9bdx41=_0xd9bdx34};_0xd9bdx34=_0xd9bdx3f[_0x858a[221]](_0xd9bdx34);};return _0xd9bdx41;};};Editor[_0x858a[44]][_0x858a[18]]=function(){var _0xd9bdxe=this[_0x858a[14]];var _0xd9bdx43= new mxUndoManager();var _0xd9bdx44=function(_0xd9bdx45,_0xd9bdx14){_0xd9bdx43[_0x858a[233]](_0xd9bdx14[_0x858a[232]](_0x858a[231]))};_0xd9bdxe[_0x858a[36]]()[_0x858a[35]](mxEvent.UNDO,_0xd9bdx44);_0xd9bdxe[_0x858a[234]]()[_0x858a[35]](mxEvent.UNDO,_0xd9bdx44);var _0xd9bdx46=function(_0xd9bdx45,_0xd9bdx14){var _0xd9bdx47=_0xd9bdxe[_0x858a[236]](_0xd9bdx14[_0x858a[232]](_0x858a[231])[_0x858a[235]]);var _0xd9bdx35=[];for(var _0xd9bdx30=1;_0xd9bdx30<_0xd9bdx47[_0x858a[83]];_0xd9bdx30++){if(_0xd9bdxe[_0x858a[53]][_0x858a[237]](_0xd9bdx47[_0xd9bdx30])!=null){_0xd9bdx35[_0x858a[238]](_0xd9bdx47[_0xd9bdx30])}};_0xd9bdxe[_0x858a[239]](_0xd9bdx35);};_0xd9bdx43[_0x858a[35]](mxEvent.UNDO,_0xd9bdx46);_0xd9bdx43[_0x858a[35]](mxEvent.REDO,_0xd9bdx46);return _0xd9bdx43;};Editor[_0x858a[44]][_0x858a[13]]=function(){mxStencilRegistry[_0x858a[241]](STENCIL_PATH+_0x858a[240])};(function(){mxStencilRegistry[_0x858a[242]]={};mxStencilRegistry[_0x858a[243]]=[];mxStencilRegistry[_0x858a[244]]=function(_0xd9bdx48){var _0xd9bdx3c=mxStencilRegistry[_0x858a[245]][_0xd9bdx48];if(_0xd9bdx3c==null){var _0xd9bdx49=mxStencilRegistry[_0x858a[246]](_0xd9bdx48);if(_0xd9bdx49!=null){var _0xd9bdx4a=mxStencilRegistry[_0x858a[242]][_0xd9bdx49];if(_0xd9bdx4a!=null){if(mxStencilRegistry[_0x858a[243]][_0xd9bdx49]==null){mxStencilRegistry[_0x858a[243]][_0xd9bdx49]=1;for(var _0xd9bdx30=0;_0xd9bdx30<_0xd9bdx4a[_0x858a[83]];_0xd9bdx30++){var _0xd9bdx4b=_0xd9bdx4a[_0xd9bdx30];if(_0xd9bdx4b[_0x858a[248]]()[_0x858a[247]](_0xd9bdx4b[_0x858a[83]]-4,_0xd9bdx4b[_0x858a[83]])==_0x858a[25]){mxStencilRegistry[_0x858a[241]](_0xd9bdx4b,null)}else {if(_0xd9bdx4b[_0x858a[248]]()[_0x858a[247]](_0xd9bdx4b[_0x858a[83]]-3,_0xd9bdx4b[_0x858a[83]])==_0x858a[249]){var _0xd9bdx4c=mxUtils[_0x858a[250]](_0xd9bdx4b);if(_0xd9bdx4c!=null){eval[_0x858a[11]](window,_0xd9bdx4c[_0x858a[251]]())};}else {}};};}}else {mxStencilRegistry[_0x858a[241]](STENCIL_PATH+_0x858a[252]+_0xd9bdx49+_0x858a[25],null)};_0xd9bdx3c=mxStencilRegistry[_0x858a[245]][_0xd9bdx48];};};return _0xd9bdx3c;};mxStencilRegistry[_0x858a[246]]=function(_0xd9bdx48){var _0xd9bdx4d=_0xd9bdx48[_0x858a[254]](_0x858a[253]);var _0xd9bdx4e=null;if(_0xd9bdx4d[_0x858a[83]]>0&&_0xd9bdx4d[0]==_0x858a[255]){_0xd9bdx4e=_0xd9bdx4d[1];for(var _0xd9bdx30=2;_0xd9bdx30<_0xd9bdx4d[_0x858a[83]]-1;_0xd9bdx30++){_0xd9bdx4e+=_0x858a[252]+_0xd9bdx4d[_0xd9bdx30]};};return _0xd9bdx4e;};mxStencilRegistry[_0x858a[241]]=function(_0xd9bdx4f,_0xd9bdx50,_0xd9bdx51){_0xd9bdx51=(_0xd9bdx51!=null)?_0xd9bdx51:false;var _0xd9bdx52=mxStencilRegistry[_0x858a[243]][_0xd9bdx4f];if(_0xd9bdx51||_0xd9bdx52==null){var _0xd9bdx53=false;if(_0xd9bdx52==null){var _0xd9bdx4c=mxUtils[_0x858a[250]](_0xd9bdx4f);_0xd9bdx52=_0xd9bdx4c[_0x858a[256]]();mxStencilRegistry[_0x858a[243]][_0xd9bdx4f]=_0xd9bdx52;_0xd9bdx53=true;};mxStencilRegistry[_0x858a[257]](_0xd9bdx52,_0xd9bdx50,_0xd9bdx53);};};mxStencilRegistry[_0x858a[257]]=function(_0xd9bdx54,_0xd9bdx50,_0xd9bdx53){_0xd9bdx53=(_0xd9bdx53!=null)?_0xd9bdx53:true;var _0xd9bdx55=_0xd9bdx54[_0x858a[258]];var _0xd9bdx56=_0xd9bdx55[_0x858a[184]];var _0xd9bdx57=_0x858a[20];var _0xd9bdx48=_0xd9bdx55[_0x858a[56]](_0x858a[259]);if(_0xd9bdx48!=null){_0xd9bdx57=_0xd9bdx48+_0x858a[253]};while(_0xd9bdx56!=null){if(_0xd9bdx56[_0x858a[260]]==mxConstants[_0x858a[261]]){_0xd9bdx48=_0xd9bdx56[_0x858a[56]](_0x858a[259]);if(_0xd9bdx48!=null){_0xd9bdx57=_0xd9bdx57[_0x858a[248]]();var _0xd9bdx58=_0xd9bdx48[_0x858a[263]](/ /g,_0x858a[262]);if(_0xd9bdx53){mxStencilRegistry[_0x858a[264]](_0xd9bdx57+_0xd9bdx58[_0x858a[248]](), new mxStencil(_0xd9bdx56))};if(_0xd9bdx50!=null){var _0xd9bdx19=_0xd9bdx56[_0x858a[56]](_0x858a[265]);var _0xd9bdx1a=_0xd9bdx56[_0x858a[56]](_0x858a[266]);_0xd9bdx19=(_0xd9bdx19==null)?80:parseInt(_0xd9bdx19,10);_0xd9bdx1a=(_0xd9bdx1a==null)?80:parseInt(_0xd9bdx1a,10);_0xd9bdx50(_0xd9bdx57,_0xd9bdx58,_0xd9bdx48,_0xd9bdx19,_0xd9bdx1a);};};};_0xd9bdx56=_0xd9bdx56[_0x858a[267]];};};})();OpenFile=function(_0xd9bdx59){this[_0x858a[268]]=null;this[_0x858a[269]]=null;this[_0x858a[270]]=_0xd9bdx59;};OpenFile[_0x858a[44]][_0x858a[271]]=function(_0xd9bdx6){this[_0x858a[269]]=_0xd9bdx6;this[_0x858a[272]]();};OpenFile[_0x858a[44]][_0x858a[273]]=function(_0xd9bdx6,_0xd9bdx5a){this[_0x858a[274]]=_0xd9bdx6;this[_0x858a[21]]=_0xd9bdx5a;this[_0x858a[272]]();};OpenFile[_0x858a[44]][_0x858a[275]]=function(_0xd9bdx5b){this[_0x858a[276]]();mxUtils[_0x858a[277]](_0xd9bdx5b);};OpenFile[_0x858a[44]][_0x858a[272]]=function(){if(this[_0x858a[269]]!=null&&this[_0x858a[274]]!=null){this[_0x858a[269]](this[_0x858a[274]],this[_0x858a[21]]);this[_0x858a[276]]();}};OpenFile[_0x858a[44]][_0x858a[276]]=function(){if(this[_0x858a[270]]!=null){this[_0x858a[270]]()}};
\ No newline at end of file
index 5de00e3..c16865b 100644 (file)
@@ -1 +1 @@
-var _0x64cf=["\x65\x64\x69\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x45\x64\x69\x74\x6F\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x72\x61\x70\x68","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x73\x72\x63","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x6D\x65\x6E\x75\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x76\x73","\x72\x65\x66\x72\x65\x73\x68","\x63\x72\x65\x61\x74\x65\x55\x69","\x65\x76\x65\x6E\x74","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x41\x6C\x6C\x6F\x77\x65\x64","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x62\x69\x6E\x64","\x62\x6F\x64\x79","\x6F\x6E\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x6D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x64\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x69\x6E\x69\x74","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x75\x72\x73\x6F\x72","\x64\x65\x66\x61\x75\x6C\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x66\x6F\x63\x75\x73","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x61\x70\x70\x6C\x79","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x6E","\x63\x72\x65\x61\x74\x65\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x73\x65\x74","\x6D\x61\x74\x68","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x65\x6C\x6C","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x74\x61\x67\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x73\x6F\x75\x72\x63\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x69\x73\x56\x65\x72\x74\x65\x78","\x6C\x6F\x67","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x63\x6F\x6E\x73\x75\x6D\x65","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x6F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x67\x65\x73\x74\x75\x72\x65\x63\x68\x61\x6E\x67\x65","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x63\x61\x6C\x65\x28","\x73\x63\x61\x6C\x65","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x76\x69\x65\x77","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x7A\x6F\x6F\x6D\x54\x6F\x43\x65\x6E\x74\x65\x72","\x7A\x6F\x6F\x6D","\x76\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x73\x69\x7A\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x75\x70\x64\x61\x74\x65","\x6F\x70\x65\x6E","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6D\x65\x6E\x75\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x74\x6F\x6F\x6C\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x66\x6F\x6F\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x68\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x55\x6E\x64\x6F\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x73\x74\x65","\x67\x65\x74","\x69\x73\x45\x6D\x70\x74\x79","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x74","\x63\x6F\x70\x79","\x6F\x70\x65\x6E\x65\x72","\x6F\x70\x65\x6E\x46\x69\x6C\x65","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x63\x6C\x65\x61\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x4D\x69\x73\x73\x69\x6E\x67\x46\x69\x6C\x65","\x3A\x20","\x6D\x65\x73\x73\x61\x67\x65","\x61\x6C\x65\x72\x74","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x6F\x70\x65\x6E\x53\x74\x72\x69\x6E\x67","\x64\x61\x74\x61","\x6E\x65\x77","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x67\x65\x74\x49\x74\x65\x6D","\x72\x65\x70\x6C\x61\x63\x65","\x63\x6F\x6E\x66\x69\x72\x6D","\x73\x65\x74\x49\x74\x65\x6D","\x73\x61\x76\x65\x64","\x20","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6C\x65\x6E\x67\x74\x68","\x50\x4F\x53\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x50\x72\x6F\x6A\x65\x63\x74\x20","\x6E\x61\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x20\x69\x73\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x69\x6E\x20\x6E\x65\x77\x20\x77\x69\x6E\x64\x6F\x77\x21","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x69\x64","\x5F\x62\x6C\x61\x6E\x6B","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x65\x77\x26\x6E\x61\x6D\x65\x3D","\x73\x65\x6E\x64","\x64\x72\x61\x77\x69\x6E\x67\x54\x6F\x6F\x4C\x61\x72\x67\x65","\x70\x6F\x70\x75\x70","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74","\x73\x61\x76\x65","\x50\x55\x54","\x55\x70\x64\x61\x74\x65\x64\x20\x61\x74\x20","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x20\x28","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x66\x69\x6C\x65","\x73\x61\x76\x65\x41\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x6E\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x63\x6C\x6F\x6E\x65\x64\x26\x6E\x61\x6D\x65\x3D","\x26\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x26\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x76\x61\x6C\x69\x64\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x74","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x3C\x62\x72\x3E","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6C\x6F\x63\x6B","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x53\x74\x61\x72\x74\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x0A","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x46\x69\x6E\x61\x6C\x6C\x79\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x66\x69\x6C\x65\x5F\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6E\x6F\x41\x75\x64\x69\x6F\x53\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6E\x6F\x56\x61\x72\x69\x61\x62\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65","\x64\x61\x74\x61\x62\x61\x73\x65\x5F\x69\x64","\x6E\x6F\x44\x61\x74\x61\x62\x61\x73\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6E\x6F\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6D\x6D\x61\x6E\x64","\x6E\x6F\x43\x6F\x6D\x6D\x61\x6E\x64\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6E\x6F\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x64\x69\x67\x69\x74\x73","\x6E\x6F\x44\x69\x67\x69\x74\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x75\x6D\x62\x65\x72","\x6E\x6F\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x74\x65\x78\x74","\x6E\x6F\x54\x65\x78\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x46\x69\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x6E\x6F\x47\x6F\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x68\x6F\x6E\x65","\x6E\x6F\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x73\x69\x70\x5F\x69\x64","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6E\x6F\x51\x75\x65\x75\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x6C\x69\x73\x74\x5F\x69\x64","\x6E\x6F\x4C\x69\x73\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x6E\x6F\x49\x6E\x74\x65\x72\x76\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74","\x6E\x6F\x43\x6F\x6E\x74\x65\x78\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x62\x6F\x78\x6E\x75\x6D\x62\x65\x72","\x6E\x6F\x42\x6F\x78\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6E\x6F\x50\x72\x6F\x6A\x65\x63\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x6B\x65\x79","\x6E\x6F\x4B\x65\x79\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x67\x65\x74\x49\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x67\x65\x74\x56\x61\x6C\x75\x65","\x74\x65\x73\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x54\x69\x6D\x65\x6F\x75\x74","\x2C","\x73\x70\x6C\x69\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x41\x6C\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x44\x65\x66\x61\x75\x6C\x74","\x74\x72\x75\x65\x4F\x72\x46\x61\x6C\x73\x65","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x70\x75\x62\x6C\x69\x73\x68","\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x61\x74\x20","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x66\x69\x6C\x65","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x74\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x6E\x61\x6D\x65\x3D","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x55\x72\x6C","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x26","\x3D","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x68\x61\x64\x6F\x77","\x74\x69\x6C\x74","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x63\x75\x72\x76\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x72\x6F\x75\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x72\x61\x6E\x67\x65","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x73\x70\x61\x63\x69\x6E\x67","\x6C\x69\x6E\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x6C\x69\x67\x6E","\x67\x65\x74\x53\x74\x61\x74\x65","\x69\x73\x4C\x6F\x6F\x70","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x6D\x61\x78","\x68\x65\x69\x67\x68\x74","\x70\x78","\x74\x6F\x70","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x77\x69\x64\x74\x68","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x64\x69\x73\x70\x6C\x61\x79","\x6E\x6F\x6E\x65","\x68\x73\x70\x6C\x69\x74","\x76\x73\x70\x6C\x69\x74","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x4F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x44\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x46\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x48\x73\x70\x6C\x69\x74","\x67\x65\x56\x73\x70\x6C\x69\x74","\x30\x70\x78","\x72\x69\x67\x68\x74","\x6D\x65\x6E\x75\x62\x61\x72","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x74\x6F\x6F\x6C\x62\x61\x72","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x73\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x6F\x74\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x64\x64\x53\x70\x6C\x69\x74\x48\x61\x6E\x64\x6C\x65\x72","\x61","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D\x20\x67\x65\x53\x74\x61\x74\x75\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x67\x65\x46\x6F\x6F\x74\x65\x72","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x72\x6D","\x66\x6F\x72\x6D","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x78","\x79","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x64\x69\x61\x6C\x6F\x67","\x49\x53\x5F\x56\x4D\x4C","\x63\x6C\x6F\x73\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x61\x6E\x69\x6D\x61\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x65\x78\x65\x63\x75\x74\x65","\x43\x61\x6D\x69\x6E\x6F","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x49\x53\x5F\x4D\x41\x43","\x6D\x65\x74\x61\x4B\x65\x79","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x65\x6E\x61\x62\x6C\x65\x64","\x66\x75\x6E\x63\x74","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x4B\x65\x79","\x65\x73\x63\x61\x70\x65","\x65\x6E\x74\x65\x72","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x65\x78\x70\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x67\x72\x69\x64","\x61\x62\x6F\x75\x74","\x20\x6D\x75\x73\x74\x20\x68\x61\x76\x65\x20","\x20\x6F\x75\x74\x63\x6F\x6D\x69\x6E\x67\x20\x65\x64\x67\x65\x2E","\x70\x75\x73\x68","\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x64\x67\x65\x2E"];EditorUi=function(_0xaa70x1,_0xaa70x2){this[_0x64cf[0]]=_0xaa70x1|| new Editor();this[_0x64cf[1]]=_0xaa70x2||document[_0x64cf[3]](_0x64cf[2]);var _0xaa70x3=_0xaa70x1[_0x64cf[4]];var _0xaa70x4=this;this[_0x64cf[1]][_0x64cf[6]][_0x64cf[5]]=_0x64cf[7]; new Image()[_0x64cf[8]]=mxPopupMenu[_0x64cf[10]][_0x64cf[9]];if(mxConnectionHandler[_0x64cf[10]][_0x64cf[11]]!=null){ new Image()[_0x64cf[8]]=mxConnectionHandler[_0x64cf[10]][_0x64cf[11]][_0x64cf[8]]};this[_0x64cf[12]]= new Actions(this);this[_0x64cf[13]]= new Menus(this);this[_0x64cf[14]]();this[_0x64cf[15]]();this[_0x64cf[16]]();var _0xaa70x5=mxUtils[_0x64cf[20]](this,function(_0xaa70x6){if(_0xaa70x6==null){_0xaa70x6=window[_0x64cf[17]]};if(this[_0x64cf[18]](_0xaa70x6)){return true};return _0xaa70x3[_0x64cf[19]]();});if(this[_0x64cf[1]]==document[_0x64cf[21]]){this[_0x64cf[23]][_0x64cf[22]]=_0xaa70x5;this[_0x64cf[23]][_0x64cf[24]]=_0xaa70x5;this[_0x64cf[25]][_0x64cf[22]]=_0xaa70x5;this[_0x64cf[25]][_0x64cf[24]]=_0xaa70x5;this[_0x64cf[26]][_0x64cf[22]]=_0xaa70x5;this[_0x64cf[26]][_0x64cf[24]]=_0xaa70x5;this[_0x64cf[27]][_0x64cf[22]]=_0xaa70x5;this[_0x64cf[27]][_0x64cf[24]]=_0xaa70x5;this[_0x64cf[28]][_0x64cf[22]]=_0xaa70x5;this[_0x64cf[28]][_0x64cf[24]]=_0xaa70x5;};if(mxClient[_0x64cf[29]]&&( typeof (document[_0x64cf[30]])===_0x64cf[31]||document[_0x64cf[30]]<9)){mxEvent[_0x64cf[33]](this[_0x64cf[26]],_0x64cf[32],_0xaa70x5);mxEvent[_0x64cf[33]](this[_0x64cf[27]],_0x64cf[32],_0xaa70x5);}else {this[_0x64cf[26]][_0x64cf[34]]=_0xaa70x5;this[_0x64cf[27]][_0x64cf[34]]=_0xaa70x5;};_0xaa70x3[_0x64cf[35]](this[_0x64cf[26]]);_0xaa70x3[_0x64cf[15]]();_0xaa70x3[_0x64cf[1]][_0x64cf[38]](_0x64cf[36],_0x64cf[37]);_0xaa70x3[_0x64cf[1]][_0x64cf[6]][_0x64cf[39]]=_0x64cf[40];_0xaa70x3[_0x64cf[1]][_0x64cf[6]][_0x64cf[41]]=_0x64cf[42]+_0xaa70x1[_0x64cf[43]]+_0x64cf[44];_0xaa70x3[_0x64cf[1]][_0x64cf[6]][_0x64cf[45]]=_0x64cf[46];_0xaa70x3[_0x64cf[1]][_0x64cf[47]]();var _0xaa70x7=_0xaa70x3[_0x64cf[48]];_0xaa70x3[_0x64cf[48]]=function(_0xaa70x8,_0xaa70x9,_0xaa70xa){if(_0xaa70x8==mxEvent[_0x64cf[49]]){this[_0x64cf[1]][_0x64cf[47]]()};_0xaa70x7[_0x64cf[50]](this,arguments);};this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[52],_0x64cf[53],_0x64cf[54]],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[57],_0x64cf[58],_0x64cf[59],_0x64cf[60],_0x64cf[61],_0x64cf[62],_0x64cf[63]],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[64],_0x64cf[65]],[[1,1],[1,1]],[[1,_0x64cf[55]],[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[66],_0x64cf[67],_0x64cf[68],_0x64cf[69],_0x64cf[70],_0x64cf[71],_0x64cf[72],_0x64cf[73],_0x64cf[74]],[[1,_0x64cf[55]],[1,1],[1,_0x64cf[55]],[1,1],[1,1],[1,1],[1,1],[1,1],[1,_0x64cf[55]]],[[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[75]],[[1,1]],[[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[76],_0x64cf[77]],[[1,1],[1,1]],[[1,_0x64cf[55]],[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[78],_0x64cf[79],_0x64cf[80],_0x64cf[81],_0x64cf[82]],[[0,0],[1,2],[1,2],[1,2],[1,_0x64cf[55]]],[[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[83],_0x64cf[84]],[[1,1],[1,1]],[[1,_0x64cf[55]],[1,_0x64cf[55]]]);this[_0x64cf[56]](_0xaa70x3[_0x64cf[51]],[_0x64cf[85],_0x64cf[86],_0x64cf[87],_0x64cf[88],_0x64cf[89]],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]],[1,_0x64cf[55]]]);_0xaa70x3[_0x64cf[90]]=function(_0xaa70x6,_0xaa70xb){var _0xaa70xc=[_0x64cf[66],_0x64cf[79],_0x64cf[80],_0x64cf[68],_0x64cf[74],_0x64cf[82]];var _0xaa70xd= new mxEventObject(mxEvent.DOUBLE_CLICK,_0x64cf[17],_0xaa70x6,_0x64cf[91],_0xaa70xb);this[_0x64cf[92]](_0xaa70xd);if(this[_0x64cf[93]]()&&!mxEvent[_0x64cf[94]](_0xaa70x6)&&!_0xaa70xd[_0x64cf[94]]()){if(this[_0x64cf[96]]()[_0x64cf[95]](_0xaa70xb)){if(_0xaa70xc[_0x64cf[100]](_0xaa70xb[_0x64cf[99]][_0x64cf[98]][_0x64cf[97]])>=0){this[_0x64cf[101]](_0xaa70xb)}}else {if(this[_0x64cf[96]]()[_0x64cf[102]](_0xaa70xb)){console[_0x64cf[103]](_0xaa70x4);console[_0x64cf[103]](_0xaa70xb);_0xaa70x4[_0x64cf[104]]( new GeneralDialog(_0xaa70x4,_0xaa70xb)[_0x64cf[1]],320,280,true,true);}};_0xaa70xd[_0x64cf[105]]();};};_0xaa70x3[_0x64cf[107]][_0x64cf[106]]=true;_0xaa70x3[_0x64cf[107]][_0x64cf[108]]=mxUtils[_0x64cf[20]](this,function(_0xaa70xe,_0xaa70xb,_0xaa70x6){this[_0x64cf[13]][_0x64cf[109]](_0xaa70xe,_0xaa70xb,_0xaa70x6)});_0xaa70x1[_0x64cf[111]][_0x64cf[35]](this[_0x64cf[110]]);mxEvent[_0x64cf[113]](document,mxUtils[_0x64cf[20]](this,function(_0xaa70x6){_0xaa70x3[_0x64cf[107]][_0x64cf[112]]()}));if(mxClient[_0x64cf[114]]){mxEvent[_0x64cf[33]](_0xaa70x3[_0x64cf[1]],_0x64cf[115],mxUtils[_0x64cf[20]](this,function(_0xaa70x6){_0xaa70x3[_0x64cf[120]][_0x64cf[119]]()[_0x64cf[38]](_0x64cf[116],_0x64cf[117]+_0xaa70x6[_0x64cf[118]]+_0x64cf[44]);_0xaa70x3[_0x64cf[120]][_0x64cf[122]]()[_0x64cf[6]][_0x64cf[121]]=_0x64cf[7];}));mxEvent[_0x64cf[33]](_0xaa70x3[_0x64cf[1]],_0x64cf[123],mxUtils[_0x64cf[20]](this,function(_0xaa70x6){_0xaa70x3[_0x64cf[120]][_0x64cf[119]]()[_0x64cf[124]](_0x64cf[116]);_0xaa70x3[_0x64cf[125]]=true;_0xaa70x3[_0x64cf[126]](_0xaa70x6[_0x64cf[118]]);_0xaa70x3[_0x64cf[120]][_0x64cf[122]]()[_0x64cf[6]][_0x64cf[121]]=_0x64cf[127];}));};var _0xaa70xf=this[_0x64cf[128]](_0xaa70x1);this[_0x64cf[129]]=function(){return _0xaa70xf};mxEvent[_0x64cf[33]](window,_0x64cf[130],mxUtils[_0x64cf[20]](this,function(){this[_0x64cf[15]]();_0xaa70x3[_0x64cf[131]]();this[_0x64cf[0]][_0x64cf[111]][_0x64cf[132]](false);this[_0x64cf[0]][_0x64cf[111]][_0x64cf[111]][_0x64cf[131]]();}));this[_0x64cf[35]]();this[_0x64cf[133]]();};EditorUi[_0x64cf[10]][_0x64cf[134]]=(mxClient[_0x64cf[114]])?16:8;EditorUi[_0x64cf[10]][_0x64cf[135]]=33;EditorUi[_0x64cf[10]][_0x64cf[136]]=36;EditorUi[_0x64cf[10]][_0x64cf[137]]=28;EditorUi[_0x64cf[10]][_0x64cf[138]]=204;EditorUi[_0x64cf[10]][_0x64cf[139]]=190;EditorUi[_0x64cf[10]][_0x64cf[35]]=function(){this[_0x64cf[140]]();this[_0x64cf[141]]();var _0xaa70x10=this[_0x64cf[12]][_0x64cf[143]](_0x64cf[142]);var _0xaa70x11=function(){_0xaa70x10[_0x64cf[145]](!mxClipboard[_0x64cf[144]]())};var _0xaa70x12=mxClipboard[_0x64cf[146]];mxClipboard[_0x64cf[146]]=function(){_0xaa70x12[_0x64cf[50]](this,arguments);_0xaa70x11();};var _0xaa70x13=mxClipboard[_0x64cf[147]];mxClipboard[_0x64cf[147]]=function(){_0xaa70x13[_0x64cf[50]](this,arguments);_0xaa70x11();};};EditorUi[_0x64cf[10]][_0x64cf[18]]=function(_0xaa70x6){return false};EditorUi[_0x64cf[10]][_0x64cf[133]]=function(){try{if(window[_0x64cf[148]]!=null&&window[_0x64cf[148]][_0x64cf[149]]!=null){window[_0x64cf[148]][_0x64cf[149]][_0x64cf[161]](mxUtils[_0x64cf[20]](this,function(_0xaa70x14,_0xaa70x15){try{var _0xaa70x16=mxUtils[_0x64cf[150]](_0xaa70x14);this[_0x64cf[0]][_0x64cf[152]](_0xaa70x16[_0x64cf[151]]);this[_0x64cf[0]][_0x64cf[153]]=false;this[_0x64cf[0]][_0x64cf[155]][_0x64cf[154]]();if(_0xaa70x15!=null){this[_0x64cf[0]][_0x64cf[156]]=_0xaa70x15};}catch(e){mxUtils[_0x64cf[160]](mxResources[_0x64cf[143]](_0x64cf[157])+_0x64cf[158]+e[_0x64cf[159]])}}))}}catch(e){}};EditorUi[_0x64cf[10]][_0x64cf[162]]=function(_0xaa70x14,_0xaa70x15,_0xaa70x17){try{var _0xaa70x16=mxUtils[_0x64cf[150]](_0xaa70x14);this[_0x64cf[0]][_0x64cf[152]](_0xaa70x16[_0x64cf[151]]);this[_0x64cf[0]][_0x64cf[153]]=false;this[_0x64cf[0]][_0x64cf[155]][_0x64cf[154]]();if(_0xaa70x15!=null){this[_0x64cf[0]][_0x64cf[156]]=_0xaa70x15};if(_0xaa70x17!=null){this[_0x64cf[0]][_0x64cf[163]]=_0xaa70x17};}catch(e){mxUtils[_0x64cf[160]](mxResources[_0x64cf[143]](_0x64cf[157])+_0x64cf[158]+e[_0x64cf[159]])}};EditorUi[_0x64cf[10]][_0x64cf[164]]=function(_0xaa70x18){var _0xaa70x1=this[_0x64cf[0]];if(_0xaa70x18!=null){var _0xaa70x14=mxUtils[_0x64cf[166]](this[_0x64cf[0]][_0x64cf[165]]());try{if(useLocalStorage){if(localStorage[_0x64cf[167]](_0xaa70x18)!=null&&!mxUtils[_0x64cf[169]](mxResources[_0x64cf[143]](_0x64cf[168],[_0xaa70x18]))){return };localStorage[_0x64cf[170]](_0xaa70x18,_0xaa70x14);this[_0x64cf[0]][_0x64cf[173]](mxResources[_0x64cf[143]](_0x64cf[171])+_0x64cf[172]+ new Date());}else {console[_0x64cf[103]](_0xaa70x14[_0x64cf[174]]);console[_0x64cf[103]](MAX_REQUEST_SIZE);if(_0xaa70x14[_0x64cf[174]]<MAX_REQUEST_SIZE){_0xaa70x14=encodeURIComponent(_0xaa70x14);_0xaa70x18=encodeURIComponent(_0xaa70x18);var _0xaa70x19= new XMLHttpRequest();_0xaa70x19[_0x64cf[133]](_0x64cf[175],SAVE_URL,true);_0xaa70x19[_0x64cf[178]](_0x64cf[176],_0x64cf[177]);_0xaa70x19[_0x64cf[178]](_0x64cf[179],_0x64cf[180]+_0xaa70x1[_0x64cf[163]][_0x64cf[181]]);_0xaa70x19[_0x64cf[182]]=function(_0xaa70x1a){if(_0xaa70x19[_0x64cf[183]]===4){if(_0xaa70x19[_0x64cf[184]]===201){_0xaa70x1[_0x64cf[173]](_0x64cf[185]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[186]]+_0x64cf[189]);setTimeout(function(){window[_0x64cf[133]](_0x64cf[190]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[191]],_0x64cf[192])},1500);}else {_0xaa70x1[_0x64cf[173]](_0x64cf[193]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[194]][0][_0x64cf[159]])}}};_0xaa70x19[_0x64cf[195]]=function(_0xaa70x1a){mxUtils[_0x64cf[160]](_0xaa70x19[_0x64cf[196]])};_0xaa70x19[_0x64cf[198]](_0x64cf[197]+_0xaa70x18);}else {mxUtils[_0x64cf[160]](mxResources[_0x64cf[143]](_0x64cf[199]));mxUtils[_0x64cf[200]](_0xaa70x14);return ;};};this[_0x64cf[0]][_0x64cf[156]]=_0xaa70x18;this[_0x64cf[0]][_0x64cf[153]]=false;}catch(e){this[_0x64cf[0]][_0x64cf[173]](_0x64cf[201])};}else {this[_0x64cf[0]][_0x64cf[173]](_0x64cf[201])};};EditorUi[_0x64cf[10]][_0x64cf[202]]=function(_0xaa70x18){var _0xaa70x1=this[_0x64cf[0]];if(_0xaa70x18!=null){var _0xaa70x14=mxUtils[_0x64cf[166]](this[_0x64cf[0]][_0x64cf[165]]());try{if(useLocalStorage){if(localStorage[_0x64cf[167]](_0xaa70x18)!=null&&!mxUtils[_0x64cf[169]](mxResources[_0x64cf[143]](_0x64cf[168],[_0xaa70x18]))){return };localStorage[_0x64cf[170]](_0xaa70x18,_0xaa70x14);this[_0x64cf[0]][_0x64cf[173]](mxResources[_0x64cf[143]](_0x64cf[171])+_0x64cf[172]+ new Date());}else {console[_0x64cf[103]](_0xaa70x14[_0x64cf[174]]);console[_0x64cf[103]](MAX_REQUEST_SIZE);if(_0xaa70x14[_0x64cf[174]]<MAX_REQUEST_SIZE){_0xaa70x14=encodeURIComponent(_0xaa70x14);var _0xaa70x19= new XMLHttpRequest();_0xaa70x19[_0x64cf[133]](_0x64cf[203],SAVE_URL+this[_0x64cf[0]][_0x64cf[163]][_0x64cf[191]],true);_0xaa70x19[_0x64cf[178]](_0x64cf[176],_0x64cf[177]);_0xaa70x19[_0x64cf[178]](_0x64cf[179],_0x64cf[180]+_0xaa70x1[_0x64cf[163]][_0x64cf[181]]);_0xaa70x19[_0x64cf[182]]=function(_0xaa70x1a){if(_0xaa70x19[_0x64cf[183]]===4){if(_0xaa70x19[_0x64cf[184]]===200){_0xaa70x1[_0x64cf[173]](_0x64cf[204]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[205]]+_0x64cf[206]+_0xaa70x19[_0x64cf[184]]+_0x64cf[172]+_0xaa70x19[_0x64cf[196]]+_0x64cf[44])}else {_0xaa70x1[_0x64cf[173]](_0x64cf[207]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[194]][0][_0x64cf[159]])}}};_0xaa70x19[_0x64cf[195]]=function(_0xaa70x1a){mxUtils[_0x64cf[160]](_0xaa70x19[_0x64cf[196]])};_0xaa70x19[_0x64cf[198]](_0x64cf[208]+_0xaa70x14);}else {mxUtils[_0x64cf[160]](mxResources[_0x64cf[143]](_0x64cf[199]));mxUtils[_0x64cf[200]](_0xaa70x14);return ;};};this[_0x64cf[0]][_0x64cf[156]]=_0xaa70x18;this[_0x64cf[0]][_0x64cf[153]]=false;}catch(e){this[_0x64cf[0]][_0x64cf[173]](_0x64cf[209])};}else {this[_0x64cf[0]][_0x64cf[173]](_0x64cf[209])};};EditorUi[_0x64cf[10]][_0x64cf[210]]=function(_0xaa70x18){var _0xaa70x1=this[_0x64cf[0]];if(_0xaa70x18!=null){var _0xaa70x14=mxUtils[_0x64cf[166]](this[_0x64cf[0]][_0x64cf[165]]());try{if(useLocalStorage){if(localStorage[_0x64cf[167]](_0xaa70x18)!=null&&!mxUtils[_0x64cf[169]](mxResources[_0x64cf[143]](_0x64cf[168],[_0xaa70x18]))){return };localStorage[_0x64cf[170]](_0xaa70x18,_0xaa70x14);this[_0x64cf[0]][_0x64cf[173]](mxResources[_0x64cf[143]](_0x64cf[171])+_0x64cf[172]+ new Date());}else {console[_0x64cf[103]](_0xaa70x14[_0x64cf[174]]);console[_0x64cf[103]](MAX_REQUEST_SIZE);if(_0xaa70x14[_0x64cf[174]]<MAX_REQUEST_SIZE){_0xaa70x14=encodeURIComponent(_0xaa70x14);_0xaa70x18=encodeURIComponent(_0xaa70x18);var _0xaa70x19= new XMLHttpRequest();_0xaa70x19[_0x64cf[133]](_0x64cf[175],SAVE_URL,true);_0xaa70x19[_0x64cf[178]](_0x64cf[176],_0x64cf[177]);_0xaa70x19[_0x64cf[178]](_0x64cf[179],_0x64cf[180]+_0xaa70x1[_0x64cf[163]][_0x64cf[181]]);_0xaa70x19[_0x64cf[182]]=function(_0xaa70x1a){if(_0xaa70x19[_0x64cf[183]]===4){if(_0xaa70x19[_0x64cf[184]]===201){_0xaa70x1[_0x64cf[173]](_0x64cf[185]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[186]]+_0x64cf[189]);setTimeout(function(){window[_0x64cf[133]](_0x64cf[190]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[191]],_0x64cf[192])},1500);}else {_0xaa70x1[_0x64cf[173]](_0x64cf[211]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[194]][0][_0x64cf[159]])}}};_0xaa70x19[_0x64cf[195]]=function(_0xaa70x1a){mxUtils[_0x64cf[160]](_0xaa70x19[_0x64cf[196]])};_0xaa70x19[_0x64cf[198]](_0x64cf[212]+_0xaa70x18+_0x64cf[213]+_0xaa70x14+_0x64cf[214]+_0xaa70x14);}else {mxUtils[_0x64cf[160]](mxResources[_0x64cf[143]](_0x64cf[199]));mxUtils[_0x64cf[200]](_0xaa70x14);return ;};};this[_0x64cf[0]][_0x64cf[156]]=_0xaa70x18;this[_0x64cf[0]][_0x64cf[153]]=false;}catch(e){this[_0x64cf[0]][_0x64cf[173]](_0x64cf[209])};}else {this[_0x64cf[0]][_0x64cf[173]](_0x64cf[209])};};EditorUi[_0x64cf[10]][_0x64cf[215]]=function(_0xaa70x1b,_0xaa70x1c){var _0xaa70x3=this[_0x64cf[0]][_0x64cf[4]];for(var _0xaa70x1b=_0xaa70x1b!=null?_0xaa70x1b:_0xaa70x3[_0x64cf[217]][_0x64cf[216]](),_0xaa70x1c=_0xaa70x1c!=null?_0xaa70x1c:{},_0xaa70x1d=true,_0xaa70x1e=_0xaa70x3[_0x64cf[217]][_0x64cf[218]](_0xaa70x1b),_0xaa70x1a=0;_0xaa70x1a<_0xaa70x1e;_0xaa70x1a++){var _0xaa70x1f=_0xaa70x3[_0x64cf[217]][_0x64cf[219]](_0xaa70x1b,_0xaa70x1a),_0xaa70x20=_0xaa70x1c;_0xaa70x3[_0x64cf[220]](_0xaa70x1f)&&(_0xaa70x20={});_0xaa70x20=this[_0x64cf[215]](_0xaa70x1f,_0xaa70x20);_0xaa70x20!=null?_0xaa70x3[_0x64cf[222]](_0xaa70x1f,_0xaa70x20[_0x64cf[168]](/\n/g,_0x64cf[221])):_0xaa70x3[_0x64cf[222]](_0xaa70x1f,null);_0xaa70x1d=_0xaa70x1d&&_0xaa70x20==null;};_0xaa70x1e=_0x64cf[223];if(_0xaa70x3[_0x64cf[217]][_0x64cf[102]](_0xaa70x1b)){switch(_0xaa70x1b[_0x64cf[98]][_0x64cf[268]]){case _0x64cf[52]:_0xaa70x1e=this[_0x64cf[224]](_0x64cf[52])?_0x64cf[223]:_0x64cf[225]+_0x64cf[226];break ;;case _0x64cf[53]:_0xaa70x1e=this[_0x64cf[224]](_0x64cf[53])?_0x64cf[223]:_0x64cf[227]+_0x64cf[226];break ;;case _0x64cf[67]:;case _0x64cf[66]:;case _0x64cf[68]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[228])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[230])+_0x64cf[226];break ;;case _0x64cf[74]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[228])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[230])+_0x64cf[226];_0xaa70x1e+=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[231])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[232])+_0x64cf[226];break ;;case _0x64cf[82]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[233])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[232])+_0x64cf[226];break ;;case _0x64cf[76]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[234])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[235])+_0x64cf[226];break ;;case _0x64cf[64]:;case _0x64cf[65]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[231])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[232])+_0x64cf[226];break ;;case _0x64cf[78]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[236])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[237])+_0x64cf[226];break ;;case _0x64cf[86]:;case _0x64cf[87]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[238])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[239])+_0x64cf[226];break ;;case _0x64cf[79]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[240])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[241])+_0x64cf[226];break ;;case _0x64cf[69]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[242])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[243])+_0x64cf[226];break ;;case _0x64cf[70]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[244])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[245])+_0x64cf[226];break ;;case _0x64cf[71]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[246])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[247])+_0x64cf[226];break ;;case _0x64cf[75]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[156])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[248])+_0x64cf[226];break ;;case _0x64cf[84]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[249])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[250])+_0x64cf[226];break ;;case _0x64cf[60]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[251])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[252])+_0x64cf[226];break ;;case _0x64cf[59]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[253])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[252])+_0x64cf[226];break ;;case _0x64cf[61]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[254])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[255])+_0x64cf[226];break ;;case _0x64cf[63]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[256])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[257])+_0x64cf[226];break ;;case _0x64cf[80]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[258])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[259])+_0x64cf[226];break ;;case _0x64cf[81]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[258])!=_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[259])+_0x64cf[226];break ;;case _0x64cf[62]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[260])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[261])+_0x64cf[226];_0xaa70x1e+=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[262])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[263])+_0x64cf[226];break ;;case _0x64cf[88]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[264])>0)?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[265])+_0x64cf[226];break ;;case _0x64cf[72]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[246])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[247])+_0x64cf[226];break ;;case _0x64cf[73]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[246])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[247])+_0x64cf[226];_0xaa70x1e+=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[266])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[267])+_0x64cf[226];break ;;case _0x64cf[77]:_0xaa70x1e=(_0xaa70x1b[_0x64cf[98]][_0x64cf[229]](_0x64cf[266])!==_0x64cf[223])?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[267])+_0x64cf[226];break ;;}};if(_0xaa70x3[_0x64cf[217]][_0x64cf[95]](_0xaa70x1b)){var _0xaa70x21=_0xaa70x3[_0x64cf[217]][_0x64cf[270]](_0xaa70x1b[_0x64cf[99]][_0x64cf[269]]());switch(_0xaa70x21[_0x64cf[98]][_0x64cf[268]]){case _0x64cf[66]:var _0xaa70x22=/^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;_0xaa70x1e=_0xaa70x1e+((_0xaa70x22[_0x64cf[272]](String(_0xaa70x1b[_0x64cf[271]]())))?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[273])+_0x64cf[226]);break ;;case _0x64cf[68]:var _0xaa70x22=/^[0-9]{1,45}$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;var _0xaa70x23=String(_0xaa70x1b[_0x64cf[271]]());var _0xaa70x24=_0xaa70x23[_0x64cf[275]](_0x64cf[274]);_0xaa70x24[_0x64cf[277]](function(_0xaa70x25){_0xaa70x1e=_0xaa70x1e+((_0xaa70x22[_0x64cf[272]](_0xaa70x25))?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[276])+_0x64cf[226])});break ;;case _0x64cf[74]:var _0xaa70x22=/^(x|i|-)$/;var _0xaa70x23=String(_0xaa70x1b[_0x64cf[271]]());_0xaa70x1e=_0xaa70x1e+((_0xaa70x22[_0x64cf[272]](_0xaa70x23))?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[278])+_0x64cf[226]);break ;;case _0x64cf[79]:;case _0x64cf[80]:;case _0x64cf[81]:var _0xaa70x22=/^(true){1}$|^(false){1}$/;_0xaa70x1e=_0xaa70x1e+((_0xaa70x22[_0x64cf[272]](String(_0xaa70x1b[_0x64cf[271]]())))?_0x64cf[223]:mxResources[_0x64cf[143]](_0x64cf[279])+_0x64cf[226]);break ;;};};_0xaa70x3[_0x64cf[280]](_0xaa70x1b)&&!_0xaa70x1d&&(_0xaa70x1e=_0xaa70x1e+((mxResources[_0x64cf[143]](_0xaa70x3[_0x64cf[281]])||_0xaa70x3[_0x64cf[281]])+_0x64cf[226]));_0xaa70x1e=_0xaa70x3[_0x64cf[217]][_0x64cf[95]](_0xaa70x1b)?_0xaa70x1e+(_0xaa70x3[_0x64cf[283]](_0xaa70x1b,_0xaa70x3[_0x64cf[217]][_0x64cf[282]](_0xaa70x1b,true),_0xaa70x3[_0x64cf[217]][_0x64cf[282]](_0xaa70x1b,false))||_0x64cf[223]):_0xaa70x1e+(_0xaa70x3[_0x64cf[284]](_0xaa70x1b)||_0x64cf[223]);_0xaa70x1a=_0xaa70x3[_0x64cf[285]](_0xaa70x1b,_0xaa70x1c);_0xaa70x1a!=null&&(_0xaa70x1e=_0xaa70x1e+_0xaa70x1a);_0xaa70x3[_0x64cf[217]][_0x64cf[286]](_0xaa70x1b)==null&&_0xaa70x3[_0x64cf[120]][_0x64cf[215]]();return _0xaa70x1e[_0x64cf[174]]>0||!_0xaa70x1d?_0xaa70x1e:null;};EditorUi[_0x64cf[10]][_0x64cf[224]]=function(_0xaa70x26){var _0xaa70x3=this[_0x64cf[0]][_0x64cf[4]];var _0xaa70x27=_0xaa70x3[_0x64cf[287]]();var _0xaa70x28=0;_0xaa70x27[_0x64cf[288]][_0x64cf[277]](function(_0xaa70x29){if(_0xaa70x3[_0x64cf[217]][_0x64cf[102]](_0xaa70x29)&&_0xaa70x29[_0x64cf[98]][_0x64cf[268]]==_0xaa70x26){_0xaa70x28++}});return _0xaa70x28>1?false:true;};EditorUi[_0x64cf[10]][_0x64cf[289]]=function(_0xaa70x18){var _0xaa70x1=this[_0x64cf[0]];if(_0xaa70x18!=null){var _0xaa70x2a=this[_0x64cf[215]]();if(_0xaa70x2a===null){var _0xaa70x14=mxUtils[_0x64cf[166]](this[_0x64cf[0]][_0x64cf[165]]());try{if(useLocalStorage){if(localStorage[_0x64cf[167]](_0xaa70x18)!=null&&!mxUtils[_0x64cf[169]](mxResources[_0x64cf[143]](_0x64cf[168],[_0xaa70x18]))){return };localStorage[_0x64cf[170]](_0xaa70x18,_0xaa70x14);this[_0x64cf[0]][_0x64cf[173]](mxResources[_0x64cf[143]](_0x64cf[171])+_0x64cf[172]+ new Date());}else {console[_0x64cf[103]](_0xaa70x14[_0x64cf[174]]);console[_0x64cf[103]](MAX_REQUEST_SIZE);if(_0xaa70x14[_0x64cf[174]]<MAX_REQUEST_SIZE){_0xaa70x14=encodeURIComponent(_0xaa70x14);var _0xaa70x19= new XMLHttpRequest();_0xaa70x19[_0x64cf[133]](_0x64cf[203],SAVE_URL+this[_0x64cf[0]][_0x64cf[163]][_0x64cf[191]],true);_0xaa70x19[_0x64cf[178]](_0x64cf[176],_0x64cf[177]);_0xaa70x19[_0x64cf[178]](_0x64cf[179],_0x64cf[180]+_0xaa70x1[_0x64cf[163]][_0x64cf[181]]);_0xaa70x19[_0x64cf[182]]=function(_0xaa70x1a){if(_0xaa70x19[_0x64cf[183]]===4){if(_0xaa70x19[_0x64cf[184]]===200){_0xaa70x1[_0x64cf[173]](_0x64cf[290]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[205]]+_0x64cf[206]+_0xaa70x19[_0x64cf[184]]+_0x64cf[172]+_0xaa70x19[_0x64cf[196]]+_0x64cf[44])}else {_0xaa70x1[_0x64cf[173]](_0x64cf[207]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[194]][0][_0x64cf[159]])}}};_0xaa70x19[_0x64cf[195]]=function(_0xaa70x1a){mxUtils[_0x64cf[160]](_0xaa70x19[_0x64cf[196]])};_0xaa70x19[_0x64cf[198]](_0x64cf[208]+_0xaa70x14+_0x64cf[214]+_0xaa70x14);}else {mxUtils[_0x64cf[160]](mxResources[_0x64cf[143]](_0x64cf[199]));mxUtils[_0x64cf[200]](_0xaa70x14);return ;};};this[_0x64cf[0]][_0x64cf[156]]=_0xaa70x18;this[_0x64cf[0]][_0x64cf[153]]=false;}catch(e){this[_0x64cf[0]][_0x64cf[173]](_0x64cf[291])};}else {_0xaa70x1[_0x64cf[173]](_0x64cf[292])};}else {this[_0x64cf[0]][_0x64cf[173]](_0x64cf[291])};};EditorUi[_0x64cf[10]][_0x64cf[233]]=function(_0xaa70x18){var _0xaa70x1=this[_0x64cf[0]];if(_0xaa70x18!=null){try{var _0xaa70x19= new XMLHttpRequest();_0xaa70x19[_0x64cf[133]](_0x64cf[175],VARIABLE_URL,true);_0xaa70x19[_0x64cf[178]](_0x64cf[176],_0x64cf[177]);_0xaa70x19[_0x64cf[178]](_0x64cf[179],_0x64cf[180]+_0xaa70x1[_0x64cf[163]][_0x64cf[181]]);_0xaa70x19[_0x64cf[182]]=function(_0xaa70x1a){if(_0xaa70x19[_0x64cf[183]]===4){if(_0xaa70x19[_0x64cf[184]]===201){_0xaa70x1[_0x64cf[173]](_0x64cf[293]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[294]]+_0x64cf[206]+_0xaa70x19[_0x64cf[184]]+_0x64cf[172]+_0xaa70x19[_0x64cf[196]]+_0x64cf[44])}else {_0xaa70x1[_0x64cf[173]](_0x64cf[211]+JSON[_0x64cf[188]](_0xaa70x19[_0x64cf[187]])[_0x64cf[194]][0][_0x64cf[159]])}}};_0xaa70x19[_0x64cf[195]]=function(_0xaa70x1a){mxUtils[_0x64cf[160]](_0xaa70x19[_0x64cf[196]])};_0xaa70x19[_0x64cf[198]](_0x64cf[295]+_0xaa70x18);}catch(e){this[_0x64cf[0]][_0x64cf[173]](_0x64cf[296])}}else {this[_0x64cf[0]][_0x64cf[173]](_0x64cf[296])};};EditorUi[_0x64cf[10]][_0x64cf[297]]=function(_0xaa70x2b){var _0xaa70x2c=(_0xaa70x2b!=null)?_0xaa70x2b:window[_0x64cf[299]][_0x64cf[298]];var _0xaa70x2d=(_0xaa70x2c[_0x64cf[100]](_0x64cf[300])>0)?1:0;for(var _0xaa70x2e in urlParams){if(_0xaa70x2d==0){_0xaa70x2c+=_0x64cf[300]}else {_0xaa70x2c+=_0x64cf[301]};_0xaa70x2c+=_0xaa70x2e+_0x64cf[302]+urlParams[_0xaa70x2e];_0xaa70x2d++;};return _0xaa70x2c;};EditorUi[_0x64cf[10]][_0x64cf[140]]=function(){var _0xaa70x2f=this[_0x64cf[12]][_0x64cf[143]](_0x64cf[303]);var _0xaa70x30=this[_0x64cf[12]][_0x64cf[143]](_0x64cf[304]);var _0xaa70x31=this[_0x64cf[0]][_0x64cf[155]];var _0xaa70x32=function(){_0xaa70x2f[_0x64cf[145]](_0xaa70x31[_0x64cf[305]]());_0xaa70x30[_0x64cf[145]](_0xaa70x31[_0x64cf[306]]());};_0xaa70x31[_0x64cf[33]](mxEvent.ADD,_0xaa70x32);_0xaa70x31[_0x64cf[33]](mxEvent.UNDO,_0xaa70x32);_0xaa70x31[_0x64cf[33]](mxEvent.REDO,_0xaa70x32);_0xaa70x31[_0x64cf[33]](mxEvent.CLEAR,_0xaa70x32);_0xaa70x32();};EditorUi[_0x64cf[10]][_0x64cf[141]]=function(){var _0xaa70x33=mxUtils[_0x64cf[20]](this,function(){var _0xaa70x3=this[_0x64cf[0]][_0x64cf[4]];var _0xaa70x34=!_0xaa70x3[_0x64cf[307]]();var _0xaa70x35=false;var _0xaa70x36=false;var _0xaa70x37=_0xaa70x3[_0x64cf[308]]();if(_0xaa70x37!=null){for(var _0xaa70x38=0;_0xaa70x38<_0xaa70x37[_0x64cf[174]];_0xaa70x38++){var _0xaa70xb=_0xaa70x37[_0xaa70x38];if(_0xaa70x3[_0x64cf[96]]()[_0x64cf[95]](_0xaa70xb)){_0xaa70x36=true};if(_0xaa70x3[_0x64cf[96]]()[_0x64cf[102]](_0xaa70xb)){_0xaa70x35=true};if(_0xaa70x36&&_0xaa70x35){break };}};var _0xaa70x39=[_0x64cf[146],_0x64cf[147],_0x64cf[309],_0x64cf[310],_0x64cf[311],_0x64cf[312],_0x64cf[6],_0x64cf[313],_0x64cf[314],_0x64cf[315],_0x64cf[316],_0x64cf[317],_0x64cf[318],_0x64cf[319],_0x64cf[320]];for(var _0xaa70x38=0;_0xaa70x38<_0xaa70x39[_0x64cf[174]];_0xaa70x38++){this[_0x64cf[12]][_0x64cf[143]](_0xaa70x39[_0xaa70x38])[_0x64cf[145]](_0xaa70x34)};this[_0x64cf[12]][_0x64cf[143]](_0x64cf[321])[_0x64cf[145]](_0xaa70x36);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[322])[_0x64cf[145]](_0xaa70x35);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[323])[_0x64cf[145]](_0xaa70x35);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[325])[_0x64cf[145]](_0xaa70x3[_0x64cf[324]]()>1);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[327])[_0x64cf[145]](_0xaa70x3[_0x64cf[324]]()==1&&_0xaa70x3[_0x64cf[96]]()[_0x64cf[218]](_0xaa70x3[_0x64cf[326]]())>0);var _0xaa70x3a=_0xaa70x35&&_0xaa70x3[_0x64cf[324]]()==1;this[_0x64cf[12]][_0x64cf[143]](_0x64cf[328])[_0x64cf[145]](_0xaa70x3a&&_0xaa70x3[_0x64cf[96]]()[_0x64cf[102]](_0xaa70x3[_0x64cf[96]]()[_0x64cf[286]](_0xaa70x3[_0x64cf[326]]())));var _0xaa70x3b=[_0x64cf[329],_0x64cf[330],_0x64cf[331],_0x64cf[332],_0x64cf[246],_0x64cf[333],_0x64cf[334],_0x64cf[335],_0x64cf[336]];for(var _0xaa70x38=0;_0xaa70x38<_0xaa70x3b[_0x64cf[174]];_0xaa70x38++){this[_0x64cf[13]][_0x64cf[143]](_0xaa70x3b[_0xaa70x38])[_0x64cf[145]](_0xaa70x34)};_0xaa70x3b=[_0x64cf[337],_0x64cf[338],_0x64cf[339]];for(var _0xaa70x38=0;_0xaa70x38<_0xaa70x3b[_0x64cf[174]];_0xaa70x38++){this[_0x64cf[13]][_0x64cf[143]](_0xaa70x3b[_0xaa70x38])[_0x64cf[145]](_0xaa70x36)};this[_0x64cf[12]][_0x64cf[143]](_0x64cf[340])[_0x64cf[145]](_0xaa70x36);this[_0x64cf[13]][_0x64cf[143]](_0x64cf[341])[_0x64cf[145]](_0xaa70x3[_0x64cf[324]]()>1);this[_0x64cf[13]][_0x64cf[143]](_0x64cf[344])[_0x64cf[145]](_0xaa70x35||(_0xaa70x36&&_0xaa70x3[_0x64cf[343]](_0xaa70x3[_0x64cf[120]][_0x64cf[342]](_0xaa70x3[_0x64cf[326]]()))));this[_0x64cf[13]][_0x64cf[143]](_0x64cf[347])[_0x64cf[145]](_0xaa70x3[_0x64cf[345]]&&((_0xaa70x3[_0x64cf[120]][_0x64cf[346]]!=null)||(_0xaa70x3[_0x64cf[324]]()==1&&_0xaa70x3[_0x64cf[220]](_0xaa70x3[_0x64cf[326]]()))));this[_0x64cf[12]][_0x64cf[143]](_0x64cf[348])[_0x64cf[145]](_0xaa70x3[_0x64cf[120]][_0x64cf[346]]!=null);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[349])[_0x64cf[145]](_0xaa70x3[_0x64cf[120]][_0x64cf[346]]!=null);var _0xaa70x3c=_0xaa70x3[_0x64cf[324]]()==1&&_0xaa70x3[_0x64cf[220]](_0xaa70x3[_0x64cf[326]]());this[_0x64cf[12]][_0x64cf[143]](_0x64cf[350])[_0x64cf[145]](_0xaa70x3c);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[351])[_0x64cf[145]](_0xaa70x3c);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[352])[_0x64cf[145]](_0xaa70x3c);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[353])[_0x64cf[145]](_0xaa70x3[_0x64cf[324]]()==1);this[_0x64cf[12]][_0x64cf[143]](_0x64cf[355])[_0x64cf[145]](_0xaa70x3[_0x64cf[324]]()==1&&_0xaa70x3[_0x64cf[354]](_0xaa70x3[_0x64cf[326]]())!=null);});this[_0x64cf[0]][_0x64cf[4]][_0x64cf[356]]()[_0x64cf[33]](mxEvent.CHANGE,_0xaa70x33);_0xaa70x33();};EditorUi[_0x64cf[10]][_0x64cf[15]]=function(){var _0xaa70x3d=mxClient[_0x64cf[29]]&&(document[_0x64cf[30]]==null||document[_0x64cf[30]]==5);var _0xaa70x3e=this[_0x64cf[1]][_0x64cf[357]];var _0xaa70x3f=this[_0x64cf[1]][_0x64cf[358]];if(this[_0x64cf[1]]==document[_0x64cf[21]]){_0xaa70x3e=document[_0x64cf[21]][_0x64cf[357]]||document[_0x64cf[151]][_0x64cf[357]];_0xaa70x3f=(_0xaa70x3d)?document[_0x64cf[21]][_0x64cf[358]]||document[_0x64cf[151]][_0x64cf[358]]:document[_0x64cf[151]][_0x64cf[358]];};var _0xaa70x40=Math[_0x64cf[360]](0,Math[_0x64cf[359]](this[_0x64cf[138]],_0xaa70x3e-this[_0x64cf[134]]-20));var _0xaa70x41=Math[_0x64cf[360]](0,Math[_0x64cf[359]](this[_0x64cf[139]],_0xaa70x3f-this[_0x64cf[135]]-this[_0x64cf[136]]-this[_0x64cf[137]]-this[_0x64cf[134]]-1));this[_0x64cf[23]][_0x64cf[6]][_0x64cf[361]]=this[_0x64cf[135]]+_0x64cf[362];this[_0x64cf[25]][_0x64cf[6]][_0x64cf[363]]=this[_0x64cf[135]]+_0x64cf[362];this[_0x64cf[25]][_0x64cf[6]][_0x64cf[361]]=this[_0x64cf[136]]+_0x64cf[362];var _0xaa70x42=this[_0x64cf[135]]+this[_0x64cf[136]];if(!mxClient[_0x64cf[364]]){_0xaa70x42+=1};this[_0x64cf[27]][_0x64cf[6]][_0x64cf[363]]=_0xaa70x42+_0x64cf[362];this[_0x64cf[27]][_0x64cf[6]][_0x64cf[365]]=_0xaa70x40+_0x64cf[362];this[_0x64cf[110]][_0x64cf[6]][_0x64cf[365]]=_0xaa70x40+_0x64cf[362];this[_0x64cf[110]][_0x64cf[6]][_0x64cf[361]]=_0xaa70x41+_0x64cf[362];this[_0x64cf[110]][_0x64cf[6]][_0x64cf[366]]=this[_0x64cf[137]]+_0x64cf[362];this[_0x64cf[26]][_0x64cf[6]][_0x64cf[367]]=(_0xaa70x40+this[_0x64cf[134]])+_0x64cf[362];this[_0x64cf[26]][_0x64cf[6]][_0x64cf[363]]=this[_0x64cf[27]][_0x64cf[6]][_0x64cf[363]];this[_0x64cf[28]][_0x64cf[6]][_0x64cf[361]]=this[_0x64cf[137]]+_0x64cf[362];this[_0x64cf[28]][_0x64cf[6]][_0x64cf[368]]=_0x64cf[369];this[_0x64cf[370]][_0x64cf[6]][_0x64cf[363]]=this[_0x64cf[27]][_0x64cf[6]][_0x64cf[363]];this[_0x64cf[370]][_0x64cf[6]][_0x64cf[366]]=this[_0x64cf[110]][_0x64cf[6]][_0x64cf[366]];this[_0x64cf[370]][_0x64cf[6]][_0x64cf[367]]=_0xaa70x40+_0x64cf[362];this[_0x64cf[371]][_0x64cf[6]][_0x64cf[365]]=this[_0x64cf[27]][_0x64cf[6]][_0x64cf[365]];this[_0x64cf[371]][_0x64cf[6]][_0x64cf[366]]=(_0xaa70x41+this[_0x64cf[137]])+_0x64cf[362];if(_0xaa70x3d){this[_0x64cf[23]][_0x64cf[6]][_0x64cf[365]]=_0xaa70x3e+_0x64cf[362];this[_0x64cf[25]][_0x64cf[6]][_0x64cf[365]]=this[_0x64cf[23]][_0x64cf[6]][_0x64cf[365]];var _0xaa70x43=(_0xaa70x3f-_0xaa70x41-this[_0x64cf[134]]-this[_0x64cf[137]]-this[_0x64cf[135]]-this[_0x64cf[136]]);this[_0x64cf[27]][_0x64cf[6]][_0x64cf[361]]=_0xaa70x43+_0x64cf[362];this[_0x64cf[26]][_0x64cf[6]][_0x64cf[365]]=(_0xaa70x3e-_0xaa70x40-this[_0x64cf[134]])+_0x64cf[362];var _0xaa70x44=(_0xaa70x3f-this[_0x64cf[137]]-this[_0x64cf[135]]-this[_0x64cf[136]]);this[_0x64cf[26]][_0x64cf[6]][_0x64cf[361]]=_0xaa70x44+_0x64cf[362];this[_0x64cf[28]][_0x64cf[6]][_0x64cf[365]]=this[_0x64cf[23]][_0x64cf[6]][_0x64cf[365]];this[_0x64cf[370]][_0x64cf[6]][_0x64cf[361]]=_0xaa70x44+_0x64cf[362];}else {this[_0x64cf[27]][_0x64cf[6]][_0x64cf[366]]=(_0xaa70x41+this[_0x64cf[134]]+this[_0x64cf[137]])+_0x64cf[362];this[_0x64cf[26]][_0x64cf[6]][_0x64cf[366]]=this[_0x64cf[110]][_0x64cf[6]][_0x64cf[366]];};};EditorUi[_0x64cf[10]][_0x64cf[14]]=function(){this[_0x64cf[23]]=this[_0x64cf[373]](_0x64cf[372]);this[_0x64cf[25]]=this[_0x64cf[373]](_0x64cf[374]);this[_0x64cf[27]]=this[_0x64cf[373]](_0x64cf[375]);this[_0x64cf[110]]=this[_0x64cf[373]](_0x64cf[376]);this[_0x64cf[26]]=this[_0x64cf[373]](_0x64cf[377]);this[_0x64cf[28]]=this[_0x64cf[373]](_0x64cf[378]);this[_0x64cf[370]]=this[_0x64cf[373]](_0x64cf[379]);this[_0x64cf[371]]=this[_0x64cf[373]](_0x64cf[380]);this[_0x64cf[23]][_0x64cf[6]][_0x64cf[363]]=_0x64cf[381];this[_0x64cf[23]][_0x64cf[6]][_0x64cf[367]]=_0x64cf[381];this[_0x64cf[23]][_0x64cf[6]][_0x64cf[382]]=_0x64cf[381];this[_0x64cf[25]][_0x64cf[6]][_0x64cf[367]]=_0x64cf[381];this[_0x64cf[25]][_0x64cf[6]][_0x64cf[382]]=_0x64cf[381];this[_0x64cf[27]][_0x64cf[6]][_0x64cf[367]]=_0x64cf[381];this[_0x64cf[110]][_0x64cf[6]][_0x64cf[367]]=_0x64cf[381];this[_0x64cf[26]][_0x64cf[6]][_0x64cf[382]]=_0x64cf[381];this[_0x64cf[28]][_0x64cf[6]][_0x64cf[367]]=_0x64cf[381];this[_0x64cf[28]][_0x64cf[6]][_0x64cf[382]]=_0x64cf[381];this[_0x64cf[28]][_0x64cf[6]][_0x64cf[366]]=_0x64cf[381];this[_0x64cf[371]][_0x64cf[6]][_0x64cf[367]]=_0x64cf[381];this[_0x64cf[371]][_0x64cf[6]][_0x64cf[361]]=this[_0x64cf[134]]+_0x64cf[362];this[_0x64cf[370]][_0x64cf[6]][_0x64cf[365]]=this[_0x64cf[134]]+_0x64cf[362];};EditorUi[_0x64cf[10]][_0x64cf[16]]=function(){this[_0x64cf[383]]=this[_0x64cf[13]][_0x64cf[385]](this[_0x64cf[373]](_0x64cf[384]));this[_0x64cf[23]][_0x64cf[386]](this[_0x64cf[383]][_0x64cf[1]]);this[_0x64cf[387]]=this[_0x64cf[389]](this[_0x64cf[373]](_0x64cf[388]));this[_0x64cf[25]][_0x64cf[386]](this[_0x64cf[387]][_0x64cf[1]]);this[_0x64cf[390]]=this[_0x64cf[391]](this[_0x64cf[27]]);this[_0x64cf[28]][_0x64cf[386]](this[_0x64cf[392]]());this[_0x64cf[393]]=this[_0x64cf[394]]();this[_0x64cf[0]][_0x64cf[33]](_0x64cf[395],mxUtils[_0x64cf[20]](this,function(){this[_0x64cf[397]](this[_0x64cf[0]][_0x64cf[396]]())}));this[_0x64cf[397]](this[_0x64cf[0]][_0x64cf[396]]());this[_0x64cf[383]][_0x64cf[1]][_0x64cf[386]](this[_0x64cf[393]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[23]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[25]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[27]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[110]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[26]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[28]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[370]]);this[_0x64cf[1]][_0x64cf[386]](this[_0x64cf[371]]);this[_0x64cf[398]](this[_0x64cf[370]],true,0,mxUtils[_0x64cf[20]](this,function(_0xaa70x45){this[_0x64cf[138]]=_0xaa70x45;this[_0x64cf[15]]();this[_0x64cf[0]][_0x64cf[4]][_0x64cf[131]]();this[_0x64cf[0]][_0x64cf[111]][_0x64cf[132]](false);this[_0x64cf[0]][_0x64cf[111]][_0x64cf[111]][_0x64cf[131]]();}));this[_0x64cf[398]](this[_0x64cf[371]],false,this[_0x64cf[137]],mxUtils[_0x64cf[20]](this,function(_0xaa70x45){this[_0x64cf[139]]=_0xaa70x45;this[_0x64cf[15]]();this[_0x64cf[0]][_0x64cf[111]][_0x64cf[132]](false);this[_0x64cf[0]][_0x64cf[111]][_0x64cf[111]][_0x64cf[131]]();}));};EditorUi[_0x64cf[10]][_0x64cf[394]]=function(){var _0xaa70x2=document[_0x64cf[400]](_0x64cf[399]);_0xaa70x2[_0x64cf[401]]=_0x64cf[402];return _0xaa70x2;};EditorUi[_0x64cf[10]][_0x64cf[394]]=function(){var _0xaa70x2=document[_0x64cf[400]](_0x64cf[399]);_0xaa70x2[_0x64cf[401]]=_0x64cf[402];return _0xaa70x2;};EditorUi[_0x64cf[10]][_0x64cf[397]]=function(_0xaa70x45){this[_0x64cf[393]][_0x64cf[403]]=_0xaa70x45};EditorUi[_0x64cf[10]][_0x64cf[389]]=function(_0xaa70x2){return  new Toolbar(this,_0xaa70x2)};EditorUi[_0x64cf[10]][_0x64cf[391]]=function(_0xaa70x2){return  new Sidebar(this,_0xaa70x2)};EditorUi[_0x64cf[10]][_0x64cf[392]]=function(){return this[_0x64cf[373]](_0x64cf[404])};EditorUi[_0x64cf[10]][_0x64cf[373]]=function(_0xaa70x46){var _0xaa70x47=document[_0x64cf[400]](_0x64cf[405]);_0xaa70x47[_0x64cf[401]]=_0xaa70x46;return _0xaa70x47;};EditorUi[_0x64cf[10]][_0x64cf[406]]=function(_0xaa70x46){var _0xaa70x47=document[_0x64cf[400]](_0xaa70x46);return _0xaa70x47;};EditorUi[_0x64cf[10]][_0x64cf[407]]=function(_0xaa70x46){var _0xaa70x47=document[_0x64cf[400]](_0x64cf[408]);_0xaa70x47[_0x64cf[401]]=_0xaa70x46;return _0xaa70x47;};EditorUi[_0x64cf[10]][_0x64cf[398]]=function(_0xaa70x47,_0xaa70x48,_0xaa70x49,_0xaa70x4a){var _0xaa70x4b=null;var _0xaa70x4c=null;function _0xaa70x4d(){return parseInt(((_0xaa70x48)?_0xaa70x47[_0x64cf[6]][_0x64cf[367]]:_0xaa70x47[_0x64cf[6]][_0x64cf[366]]))}function _0xaa70x4e(_0xaa70x6){if(_0xaa70x4b!=null){var _0xaa70x4f= new mxPoint(mxEvent[_0x64cf[409]](_0xaa70x6),mxEvent[_0x64cf[410]](_0xaa70x6));_0xaa70x4a(Math[_0x64cf[360]](0,_0xaa70x4c+((_0xaa70x48)?(_0xaa70x4f[_0x64cf[411]]-_0xaa70x4b[_0x64cf[411]]):(_0xaa70x4b[_0x64cf[412]]-_0xaa70x4f[_0x64cf[412]]))-_0xaa70x49));mxEvent[_0x64cf[105]](_0xaa70x6);}}function _0xaa70x50(_0xaa70x6){_0xaa70x4e(_0xaa70x6);_0xaa70x4b=null;_0xaa70x4c=null;}mxEvent[_0x64cf[113]](_0xaa70x47,function(_0xaa70x6){_0xaa70x4b= new mxPoint(mxEvent[_0x64cf[409]](_0xaa70x6),mxEvent[_0x64cf[410]](_0xaa70x6));_0xaa70x4c=_0xaa70x4d();mxEvent[_0x64cf[105]](_0xaa70x6);});mxEvent[_0x64cf[33]](document,_0x64cf[413],_0xaa70x4e);mxEvent[_0x64cf[33]](document,_0x64cf[414],_0xaa70x4e);mxEvent[_0x64cf[33]](document,_0x64cf[415],_0xaa70x50);mxEvent[_0x64cf[33]](document,_0x64cf[416],_0xaa70x50);};EditorUi[_0x64cf[10]][_0x64cf[104]]=function(_0xaa70x47,_0xaa70x3e,_0xaa70x3f,_0xaa70x51,_0xaa70x52,_0xaa70x53){this[_0x64cf[417]]();this[_0x64cf[418]]= new Dialog(this,_0xaa70x47,_0xaa70x3e,(mxClient[_0x64cf[419]])?_0xaa70x3f-12:_0xaa70x3f,_0xaa70x51,_0xaa70x52,_0xaa70x53);};EditorUi[_0x64cf[10]][_0x64cf[417]]=function(){if(this[_0x64cf[418]]!=null){this[_0x64cf[418]][_0x64cf[420]]();this[_0x64cf[418]]=null;this[_0x64cf[0]][_0x64cf[4]][_0x64cf[1]][_0x64cf[47]]();}};EditorUi[_0x64cf[10]][_0x64cf[421]]=function(_0xaa70x54){if(!_0xaa70x54&&this[_0x64cf[0]][_0x64cf[156]]!=null){this[_0x64cf[202]](this[_0x64cf[0]][_0x64cf[422]]())}else {this[_0x64cf[104]]( new SaveDialog(this)[_0x64cf[1]],300,100,true,true)}};EditorUi[_0x64cf[10]][_0x64cf[423]]=function(_0xaa70x54){if(!_0xaa70x54&&this[_0x64cf[0]][_0x64cf[156]]!=null){this[_0x64cf[289]](this[_0x64cf[0]][_0x64cf[422]]())}else {}};EditorUi[_0x64cf[10]][_0x64cf[424]]=function(_0xaa70x55,_0xaa70x56,_0xaa70x57){var _0xaa70x3=this[_0x64cf[0]][_0x64cf[4]];var _0xaa70xb=_0xaa70x3[_0x64cf[326]]();_0xaa70x56=this[_0x64cf[425]]!=null?this[_0x64cf[425]]:_0xaa70x56;_0xaa70x3[_0x64cf[96]]()[_0x64cf[426]]();try{_0xaa70x55[_0x64cf[427]](_0xaa70x3[_0x64cf[287]](),_0xaa70xb)}catch(e){throw e}finally{if(_0xaa70x56&&navigator[_0x64cf[429]][_0x64cf[100]](_0x64cf[428])<0){var _0xaa70x58= new mxMorphing(_0xaa70x3);_0xaa70x58[_0x64cf[33]](mxEvent.DONE,mxUtils[_0x64cf[20]](this,function(){_0xaa70x3[_0x64cf[96]]()[_0x64cf[430]]()}));_0xaa70x58[_0x64cf[431]]();}else {_0xaa70x3[_0x64cf[96]]()[_0x64cf[430]]()}};};EditorUi[_0x64cf[10]][_0x64cf[128]]=function(_0xaa70x1){var _0xaa70x3=this[_0x64cf[0]][_0x64cf[4]];var _0xaa70xf= new mxKeyHandler(_0xaa70x3);_0xaa70xf[_0x64cf[432]]=function(_0xaa70x6){return mxEvent[_0x64cf[432]](_0xaa70x6)||(mxClient[_0x64cf[433]]&&_0xaa70x6[_0x64cf[434]])};function _0xaa70x59(_0xaa70x5a){if(!_0xaa70x3[_0x64cf[307]]()){var _0xaa70x49=0;var _0xaa70x5b=0;if(_0xaa70x5a==37){_0xaa70x49= -1}else {if(_0xaa70x5a==38){_0xaa70x5b= -1}else {if(_0xaa70x5a==39){_0xaa70x49=1}else {if(_0xaa70x5a==40){_0xaa70x5b=1}}}};_0xaa70x3[_0x64cf[435]](_0xaa70x3[_0x64cf[308]](),_0xaa70x49,_0xaa70x5b);_0xaa70x3[_0x64cf[436]](_0xaa70x3[_0x64cf[326]]());}}var _0xaa70x5c=mxUtils[_0x64cf[20]](this,function(_0xaa70x5d,_0xaa70x5e,_0xaa70x2e,_0xaa70x5f){var _0xaa70x60=this[_0x64cf[12]][_0x64cf[143]](_0xaa70x2e);if(_0xaa70x60!=null){var _0xaa70x1f=function(){if(_0xaa70x60[_0x64cf[437]]){_0xaa70x60[_0x64cf[438]]()}};if(_0xaa70x5e){if(_0xaa70x5f){_0xaa70xf[_0x64cf[439]](_0xaa70x5d,_0xaa70x1f)}else {_0xaa70xf[_0x64cf[440]](_0xaa70x5d,_0xaa70x1f)}}else {if(_0xaa70x5f){_0xaa70xf[_0x64cf[441]](_0xaa70x5d,_0xaa70x1f)}else {_0xaa70xf[_0x64cf[442]](_0xaa70x5d,_0xaa70x1f)}};};});var _0xaa70x61=this;var _0xaa70x62=_0xaa70xf[_0x64cf[443]];_0xaa70xf[_0x64cf[443]]=function(_0xaa70x6){_0xaa70x61[_0x64cf[417]]();_0xaa70x62[_0x64cf[50]](this,arguments);};_0xaa70xf[_0x64cf[444]]=function(){};_0xaa70xf[_0x64cf[442]](8,function(){_0xaa70x3[_0x64cf[445]](true)});_0xaa70xf[_0x64cf[442]](13,function(){_0xaa70x3[_0x64cf[445]](false)});_0xaa70xf[_0x64cf[442]](33,function(){_0xaa70x3[_0x64cf[349]]()});_0xaa70xf[_0x64cf[442]](34,function(){_0xaa70x3[_0x64cf[350]]()});_0xaa70xf[_0x64cf[442]](36,function(){_0xaa70x3[_0x64cf[348]]()});_0xaa70xf[_0x64cf[442]](35,function(){_0xaa70x3[_0x64cf[15]]()});_0xaa70xf[_0x64cf[442]](37,function(){_0xaa70x59(37)});_0xaa70xf[_0x64cf[442]](38,function(){_0xaa70x59(38)});_0xaa70xf[_0x64cf[442]](39,function(){_0xaa70x59(39)});_0xaa70xf[_0x64cf[442]](40,function(){_0xaa70x59(40)});_0xaa70xf[_0x64cf[442]](113,function(){_0xaa70x3[_0x64cf[101]]()});_0xaa70x5c(46,false,_0x64cf[309]);_0xaa70x5c(82,true,_0x64cf[319]);_0xaa70x5c(83,true,_0x64cf[202]);_0xaa70x5c(83,true,_0x64cf[210],true);_0xaa70x5c(107,false,_0x64cf[446]);_0xaa70x5c(109,false,_0x64cf[447]);_0xaa70x5c(65,true,_0x64cf[448]);_0xaa70x5c(86,true,_0x64cf[449],true);_0xaa70x5c(69,true,_0x64cf[450],true);_0xaa70x5c(69,true,_0x64cf[451]);_0xaa70x5c(66,true,_0x64cf[315]);_0xaa70x5c(70,true,_0x64cf[314]);_0xaa70x5c(68,true,_0x64cf[310]);_0xaa70x5c(90,true,_0x64cf[303]);_0xaa70x5c(89,true,_0x64cf[304]);_0xaa70x5c(88,true,_0x64cf[146]);_0xaa70x5c(67,true,_0x64cf[147]);_0xaa70x5c(81,true,_0x64cf[452]);_0xaa70x5c(86,true,_0x64cf[142]);_0xaa70x5c(71,true,_0x64cf[325]);_0xaa70x5c(71,true,_0x64cf[453],true);_0xaa70x5c(85,true,_0x64cf[327]);_0xaa70x5c(112,false,_0x64cf[454]);_0xaa70x5c(80,true,_0x64cf[289],true);return _0xaa70xf;};EditorUi[_0x64cf[10]][_0x64cf[56]]=function(_0xaa70x3,_0xaa70x37,_0xaa70x63,_0xaa70x64){for(var _0xaa70x38=0;_0xaa70x38<_0xaa70x37[_0x64cf[174]];_0xaa70x38++){_0xaa70x3[_0x64cf[457]]( new mxMultiplicity(true,_0xaa70x37[_0xaa70x38],null,null,_0xaa70x63[_0xaa70x38][0],_0xaa70x63[_0xaa70x38][1],null,mxResources[_0x64cf[143]](_0xaa70x37[_0xaa70x38])+_0x64cf[455]+_0xaa70x63[_0xaa70x38][0]+_0x64cf[456],null));_0xaa70x3[_0x64cf[457]]( new mxMultiplicity(false,_0xaa70x37[_0xaa70x38],null,null,_0xaa70x64[_0xaa70x38][0],_0xaa70x64[_0xaa70x38][1],null,mxResources[_0x64cf[143]](_0xaa70x37[_0xaa70x38])+_0x64cf[455]+_0xaa70x64[_0xaa70x38][0]+_0x64cf[458],null));}};
\ No newline at end of file
+var _0xd302=["\x65\x64\x69\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x45\x64\x69\x74\x6F\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x72\x61\x70\x68","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x73\x72\x63","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x6D\x65\x6E\x75\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x76\x73","\x72\x65\x66\x72\x65\x73\x68","\x63\x72\x65\x61\x74\x65\x55\x69","\x65\x76\x65\x6E\x74","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x41\x6C\x6C\x6F\x77\x65\x64","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x62\x69\x6E\x64","\x62\x6F\x64\x79","\x6F\x6E\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x6D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x64\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x69\x6E\x69\x74","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x75\x72\x73\x6F\x72","\x64\x65\x66\x61\x75\x6C\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x66\x6F\x63\x75\x73","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x61\x70\x70\x6C\x79","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x6E","\x63\x72\x65\x61\x74\x65\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x73\x65\x74","\x6D\x61\x74\x68","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x65\x6C\x6C","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x74\x61\x67\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x73\x6F\x75\x72\x63\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x69\x73\x56\x65\x72\x74\x65\x78","\x6C\x6F\x67","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x63\x6F\x6E\x73\x75\x6D\x65","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x6F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x67\x65\x73\x74\x75\x72\x65\x63\x68\x61\x6E\x67\x65","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x63\x61\x6C\x65\x28","\x73\x63\x61\x6C\x65","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x76\x69\x65\x77","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x7A\x6F\x6F\x6D\x54\x6F\x43\x65\x6E\x74\x65\x72","\x7A\x6F\x6F\x6D","\x76\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x73\x69\x7A\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x75\x70\x64\x61\x74\x65","\x6F\x70\x65\x6E","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6D\x65\x6E\x75\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x74\x6F\x6F\x6C\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x66\x6F\x6F\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x68\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x55\x6E\x64\x6F\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x73\x74\x65","\x67\x65\x74","\x69\x73\x45\x6D\x70\x74\x79","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x74","\x63\x6F\x70\x79","\x6F\x70\x65\x6E\x65\x72","\x6F\x70\x65\x6E\x46\x69\x6C\x65","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x63\x6C\x65\x61\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x4D\x69\x73\x73\x69\x6E\x67\x46\x69\x6C\x65","\x3A\x20","\x6D\x65\x73\x73\x61\x67\x65","\x61\x6C\x65\x72\x74","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x6F\x70\x65\x6E\x53\x74\x72\x69\x6E\x67","\x64\x61\x74\x61","\x6E\x65\x77","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x67\x65\x74\x49\x74\x65\x6D","\x72\x65\x70\x6C\x61\x63\x65","\x63\x6F\x6E\x66\x69\x72\x6D","\x73\x65\x74\x49\x74\x65\x6D","\x73\x61\x76\x65\x64","\x20","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6C\x65\x6E\x67\x74\x68","\x50\x4F\x53\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x50\x72\x6F\x6A\x65\x63\x74\x20","\x6E\x61\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x20\x69\x73\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x69\x6E\x20\x6E\x65\x77\x20\x77\x69\x6E\x64\x6F\x77\x21","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x69\x64","\x5F\x62\x6C\x61\x6E\x6B","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x65\x77\x26\x6E\x61\x6D\x65\x3D","\x73\x65\x6E\x64","\x64\x72\x61\x77\x69\x6E\x67\x54\x6F\x6F\x4C\x61\x72\x67\x65","\x70\x6F\x70\x75\x70","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74","\x73\x61\x76\x65","\x50\x55\x54","\x55\x70\x64\x61\x74\x65\x64\x20\x61\x74\x20","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x20\x28","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x66\x69\x6C\x65","\x73\x61\x76\x65\x41\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x6E\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x63\x6C\x6F\x6E\x65\x64\x26\x6E\x61\x6D\x65\x3D","\x26\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x26\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x76\x61\x6C\x69\x64\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x74","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x3C\x62\x72\x3E","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6C\x6F\x63\x6B","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x53\x74\x61\x72\x74\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x0A","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x46\x69\x6E\x61\x6C\x6C\x79\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x66\x69\x6C\x65\x5F\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6E\x6F\x41\x75\x64\x69\x6F\x53\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6E\x6F\x56\x61\x72\x69\x61\x62\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65","\x64\x61\x74\x61\x62\x61\x73\x65\x5F\x69\x64","\x6E\x6F\x44\x61\x74\x61\x62\x61\x73\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6E\x6F\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6D\x6D\x61\x6E\x64","\x6E\x6F\x43\x6F\x6D\x6D\x61\x6E\x64\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6E\x6F\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x64\x69\x67\x69\x74\x73","\x6E\x6F\x44\x69\x67\x69\x74\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x75\x6D\x62\x65\x72","\x6E\x6F\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x74\x65\x78\x74","\x6E\x6F\x54\x65\x78\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x46\x69\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x6E\x6F\x47\x6F\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x68\x6F\x6E\x65","\x6E\x6F\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x73\x69\x70\x5F\x69\x64","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6E\x6F\x51\x75\x65\x75\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x6C\x69\x73\x74\x5F\x69\x64","\x6E\x6F\x4C\x69\x73\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x6E\x6F\x49\x6E\x74\x65\x72\x76\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74","\x6E\x6F\x43\x6F\x6E\x74\x65\x78\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x62\x6F\x78\x6E\x75\x6D\x62\x65\x72","\x6E\x6F\x42\x6F\x78\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6E\x6F\x50\x72\x6F\x6A\x65\x63\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x6B\x65\x79","\x6E\x6F\x4B\x65\x79\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x67\x65\x74\x49\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x67\x65\x74\x56\x61\x6C\x75\x65","\x74\x65\x73\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x54\x69\x6D\x65\x6F\x75\x74","\x2C","\x73\x70\x6C\x69\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x41\x6C\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x44\x65\x66\x61\x75\x6C\x74","\x74\x72\x75\x65\x4F\x72\x46\x61\x6C\x73\x65","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x70\x75\x62\x6C\x69\x73\x68","\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x61\x74\x20","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x66\x69\x6C\x65","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x74\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x6E\x61\x6D\x65\x3D","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x55\x72\x6C","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x26","\x3D","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x68\x61\x64\x6F\x77","\x74\x69\x6C\x74","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x63\x75\x72\x76\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x72\x6F\x75\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x72\x61\x6E\x67\x65","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x73\x70\x61\x63\x69\x6E\x67","\x6C\x69\x6E\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x6C\x69\x67\x6E","\x67\x65\x74\x53\x74\x61\x74\x65","\x69\x73\x4C\x6F\x6F\x70","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x6D\x61\x78","\x68\x65\x69\x67\x68\x74","\x70\x78","\x74\x6F\x70","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x77\x69\x64\x74\x68","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x64\x69\x73\x70\x6C\x61\x79","\x6E\x6F\x6E\x65","\x68\x73\x70\x6C\x69\x74","\x76\x73\x70\x6C\x69\x74","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x4F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x44\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x46\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x48\x73\x70\x6C\x69\x74","\x67\x65\x56\x73\x70\x6C\x69\x74","\x30\x70\x78","\x72\x69\x67\x68\x74","\x6D\x65\x6E\x75\x62\x61\x72","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x74\x6F\x6F\x6C\x62\x61\x72","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x73\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x6F\x74\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x64\x64\x53\x70\x6C\x69\x74\x48\x61\x6E\x64\x6C\x65\x72","\x61","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D\x20\x67\x65\x53\x74\x61\x74\x75\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x67\x65\x46\x6F\x6F\x74\x65\x72","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x72\x6D","\x66\x6F\x72\x6D","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x78","\x79","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x64\x69\x61\x6C\x6F\x67","\x49\x53\x5F\x56\x4D\x4C","\x63\x6C\x6F\x73\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x61\x6E\x69\x6D\x61\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x65\x78\x65\x63\x75\x74\x65","\x43\x61\x6D\x69\x6E\x6F","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x49\x53\x5F\x4D\x41\x43","\x6D\x65\x74\x61\x4B\x65\x79","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x65\x6E\x61\x62\x6C\x65\x64","\x66\x75\x6E\x63\x74","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x4B\x65\x79","\x65\x73\x63\x61\x70\x65","\x65\x6E\x74\x65\x72","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x65\x78\x70\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x67\x72\x69\x64","\x61\x62\x6F\x75\x74","\x20\x6D\x75\x73\x74\x20\x68\x61\x76\x65\x20","\x20\x6F\x75\x74\x63\x6F\x6D\x69\x6E\x67\x20\x65\x64\x67\x65\x2E","\x70\x75\x73\x68","\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x64\x67\x65\x2E"];EditorUi=function(_0x65dbx1,_0x65dbx2){this[_0xd302[0]]=_0x65dbx1|| new Editor();this[_0xd302[1]]=_0x65dbx2||document[_0xd302[3]](_0xd302[2]);var _0x65dbx3=_0x65dbx1[_0xd302[4]];var _0x65dbx4=this;this[_0xd302[1]][_0xd302[6]][_0xd302[5]]=_0xd302[7]; new Image()[_0xd302[8]]=mxPopupMenu[_0xd302[10]][_0xd302[9]];if(mxConnectionHandler[_0xd302[10]][_0xd302[11]]!=null){ new Image()[_0xd302[8]]=mxConnectionHandler[_0xd302[10]][_0xd302[11]][_0xd302[8]]};this[_0xd302[12]]= new Actions(this);this[_0xd302[13]]= new Menus(this);this[_0xd302[14]]();this[_0xd302[15]]();this[_0xd302[16]]();var _0x65dbx5=mxUtils[_0xd302[20]](this,function(_0x65dbx6){if(_0x65dbx6==null){_0x65dbx6=window[_0xd302[17]]};if(this[_0xd302[18]](_0x65dbx6)){return true};return _0x65dbx3[_0xd302[19]]();});if(this[_0xd302[1]]==document[_0xd302[21]]){this[_0xd302[23]][_0xd302[22]]=_0x65dbx5;this[_0xd302[23]][_0xd302[24]]=_0x65dbx5;this[_0xd302[25]][_0xd302[22]]=_0x65dbx5;this[_0xd302[25]][_0xd302[24]]=_0x65dbx5;this[_0xd302[26]][_0xd302[22]]=_0x65dbx5;this[_0xd302[26]][_0xd302[24]]=_0x65dbx5;this[_0xd302[27]][_0xd302[22]]=_0x65dbx5;this[_0xd302[27]][_0xd302[24]]=_0x65dbx5;this[_0xd302[28]][_0xd302[22]]=_0x65dbx5;this[_0xd302[28]][_0xd302[24]]=_0x65dbx5;};if(mxClient[_0xd302[29]]&&( typeof (document[_0xd302[30]])===_0xd302[31]||document[_0xd302[30]]<9)){mxEvent[_0xd302[33]](this[_0xd302[26]],_0xd302[32],_0x65dbx5);mxEvent[_0xd302[33]](this[_0xd302[27]],_0xd302[32],_0x65dbx5);}else {this[_0xd302[26]][_0xd302[34]]=_0x65dbx5;this[_0xd302[27]][_0xd302[34]]=_0x65dbx5;};_0x65dbx3[_0xd302[35]](this[_0xd302[26]]);_0x65dbx3[_0xd302[15]]();_0x65dbx3[_0xd302[1]][_0xd302[38]](_0xd302[36],_0xd302[37]);_0x65dbx3[_0xd302[1]][_0xd302[6]][_0xd302[39]]=_0xd302[40];_0x65dbx3[_0xd302[1]][_0xd302[6]][_0xd302[41]]=_0xd302[42]+_0x65dbx1[_0xd302[43]]+_0xd302[44];_0x65dbx3[_0xd302[1]][_0xd302[6]][_0xd302[45]]=_0xd302[46];_0x65dbx3[_0xd302[1]][_0xd302[47]]();var _0x65dbx7=_0x65dbx3[_0xd302[48]];_0x65dbx3[_0xd302[48]]=function(_0x65dbx8,_0x65dbx9,_0x65dbxa){if(_0x65dbx8==mxEvent[_0xd302[49]]){this[_0xd302[1]][_0xd302[47]]()};_0x65dbx7[_0xd302[50]](this,arguments);};this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[52],_0xd302[53],_0xd302[54]],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[57],_0xd302[58],_0xd302[59],_0xd302[60],_0xd302[61],_0xd302[62],_0xd302[63]],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[64],_0xd302[65]],[[1,1],[1,1]],[[1,_0xd302[55]],[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[66],_0xd302[67],_0xd302[68],_0xd302[69],_0xd302[70],_0xd302[71],_0xd302[72],_0xd302[73],_0xd302[74]],[[1,_0xd302[55]],[1,1],[1,_0xd302[55]],[1,1],[1,1],[1,1],[1,1],[1,1],[1,_0xd302[55]]],[[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[75]],[[1,1]],[[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[76],_0xd302[77]],[[1,1],[1,1]],[[1,_0xd302[55]],[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[78],_0xd302[79],_0xd302[80],_0xd302[81],_0xd302[82]],[[0,0],[1,2],[1,2],[1,2],[1,_0xd302[55]]],[[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[83],_0xd302[84]],[[1,1],[1,1]],[[1,_0xd302[55]],[1,_0xd302[55]]]);this[_0xd302[56]](_0x65dbx3[_0xd302[51]],[_0xd302[85],_0xd302[86],_0xd302[87],_0xd302[88],_0xd302[89]],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]],[1,_0xd302[55]]]);_0x65dbx3[_0xd302[90]]=function(_0x65dbx6,_0x65dbxb){var _0x65dbxc=[_0xd302[66],_0xd302[79],_0xd302[80],_0xd302[68],_0xd302[74],_0xd302[82]];var _0x65dbxd= new mxEventObject(mxEvent.DOUBLE_CLICK,_0xd302[17],_0x65dbx6,_0xd302[91],_0x65dbxb);this[_0xd302[92]](_0x65dbxd);if(this[_0xd302[93]]()&&!mxEvent[_0xd302[94]](_0x65dbx6)&&!_0x65dbxd[_0xd302[94]]()){if(this[_0xd302[96]]()[_0xd302[95]](_0x65dbxb)){if(_0x65dbxc[_0xd302[100]](_0x65dbxb[_0xd302[99]][_0xd302[98]][_0xd302[97]])>=0){this[_0xd302[101]](_0x65dbxb)}}else {if(this[_0xd302[96]]()[_0xd302[102]](_0x65dbxb)){console[_0xd302[103]](_0x65dbx4);console[_0xd302[103]](_0x65dbxb);_0x65dbx4[_0xd302[104]]( new GeneralDialog(_0x65dbx4,_0x65dbxb)[_0xd302[1]],320,280,true,true);}};_0x65dbxd[_0xd302[105]]();};};_0x65dbx3[_0xd302[107]][_0xd302[106]]=true;_0x65dbx3[_0xd302[107]][_0xd302[108]]=mxUtils[_0xd302[20]](this,function(_0x65dbxe,_0x65dbxb,_0x65dbx6){this[_0xd302[13]][_0xd302[109]](_0x65dbxe,_0x65dbxb,_0x65dbx6)});_0x65dbx1[_0xd302[111]][_0xd302[35]](this[_0xd302[110]]);mxEvent[_0xd302[113]](document,mxUtils[_0xd302[20]](this,function(_0x65dbx6){_0x65dbx3[_0xd302[107]][_0xd302[112]]()}));if(mxClient[_0xd302[114]]){mxEvent[_0xd302[33]](_0x65dbx3[_0xd302[1]],_0xd302[115],mxUtils[_0xd302[20]](this,function(_0x65dbx6){_0x65dbx3[_0xd302[120]][_0xd302[119]]()[_0xd302[38]](_0xd302[116],_0xd302[117]+_0x65dbx6[_0xd302[118]]+_0xd302[44]);_0x65dbx3[_0xd302[120]][_0xd302[122]]()[_0xd302[6]][_0xd302[121]]=_0xd302[7];}));mxEvent[_0xd302[33]](_0x65dbx3[_0xd302[1]],_0xd302[123],mxUtils[_0xd302[20]](this,function(_0x65dbx6){_0x65dbx3[_0xd302[120]][_0xd302[119]]()[_0xd302[124]](_0xd302[116]);_0x65dbx3[_0xd302[125]]=true;_0x65dbx3[_0xd302[126]](_0x65dbx6[_0xd302[118]]);_0x65dbx3[_0xd302[120]][_0xd302[122]]()[_0xd302[6]][_0xd302[121]]=_0xd302[127];}));};var _0x65dbxf=this[_0xd302[128]](_0x65dbx1);this[_0xd302[129]]=function(){return _0x65dbxf};mxEvent[_0xd302[33]](window,_0xd302[130],mxUtils[_0xd302[20]](this,function(){this[_0xd302[15]]();_0x65dbx3[_0xd302[131]]();this[_0xd302[0]][_0xd302[111]][_0xd302[132]](false);this[_0xd302[0]][_0xd302[111]][_0xd302[111]][_0xd302[131]]();}));this[_0xd302[35]]();this[_0xd302[133]]();};EditorUi[_0xd302[10]][_0xd302[134]]=(mxClient[_0xd302[114]])?16:8;EditorUi[_0xd302[10]][_0xd302[135]]=33;EditorUi[_0xd302[10]][_0xd302[136]]=36;EditorUi[_0xd302[10]][_0xd302[137]]=28;EditorUi[_0xd302[10]][_0xd302[138]]=204;EditorUi[_0xd302[10]][_0xd302[139]]=190;EditorUi[_0xd302[10]][_0xd302[35]]=function(){this[_0xd302[140]]();this[_0xd302[141]]();var _0x65dbx10=this[_0xd302[12]][_0xd302[143]](_0xd302[142]);var _0x65dbx11=function(){_0x65dbx10[_0xd302[145]](!mxClipboard[_0xd302[144]]())};var _0x65dbx12=mxClipboard[_0xd302[146]];mxClipboard[_0xd302[146]]=function(){_0x65dbx12[_0xd302[50]](this,arguments);_0x65dbx11();};var _0x65dbx13=mxClipboard[_0xd302[147]];mxClipboard[_0xd302[147]]=function(){_0x65dbx13[_0xd302[50]](this,arguments);_0x65dbx11();};};EditorUi[_0xd302[10]][_0xd302[18]]=function(_0x65dbx6){return false};EditorUi[_0xd302[10]][_0xd302[133]]=function(){try{if(window[_0xd302[148]]!=null&&window[_0xd302[148]][_0xd302[149]]!=null){window[_0xd302[148]][_0xd302[149]][_0xd302[161]](mxUtils[_0xd302[20]](this,function(_0x65dbx14,_0x65dbx15){try{var _0x65dbx16=mxUtils[_0xd302[150]](_0x65dbx14);this[_0xd302[0]][_0xd302[152]](_0x65dbx16[_0xd302[151]]);this[_0xd302[0]][_0xd302[153]]=false;this[_0xd302[0]][_0xd302[155]][_0xd302[154]]();if(_0x65dbx15!=null){this[_0xd302[0]][_0xd302[156]]=_0x65dbx15};}catch(e){mxUtils[_0xd302[160]](mxResources[_0xd302[143]](_0xd302[157])+_0xd302[158]+e[_0xd302[159]])}}))}}catch(e){}};EditorUi[_0xd302[10]][_0xd302[162]]=function(_0x65dbx14,_0x65dbx15,_0x65dbx17){try{var _0x65dbx16=mxUtils[_0xd302[150]](_0x65dbx14);this[_0xd302[0]][_0xd302[152]](_0x65dbx16[_0xd302[151]]);this[_0xd302[0]][_0xd302[153]]=false;this[_0xd302[0]][_0xd302[155]][_0xd302[154]]();if(_0x65dbx15!=null){this[_0xd302[0]][_0xd302[156]]=_0x65dbx15};if(_0x65dbx17!=null){this[_0xd302[0]][_0xd302[163]]=_0x65dbx17};}catch(e){mxUtils[_0xd302[160]](mxResources[_0xd302[143]](_0xd302[157])+_0xd302[158]+e[_0xd302[159]])}};EditorUi[_0xd302[10]][_0xd302[164]]=function(_0x65dbx18){var _0x65dbx1=this[_0xd302[0]];if(_0x65dbx18!=null){var _0x65dbx14=mxUtils[_0xd302[166]](this[_0xd302[0]][_0xd302[165]]());try{if(useLocalStorage){if(localStorage[_0xd302[167]](_0x65dbx18)!=null&&!mxUtils[_0xd302[169]](mxResources[_0xd302[143]](_0xd302[168],[_0x65dbx18]))){return };localStorage[_0xd302[170]](_0x65dbx18,_0x65dbx14);this[_0xd302[0]][_0xd302[173]](mxResources[_0xd302[143]](_0xd302[171])+_0xd302[172]+ new Date());}else {console[_0xd302[103]](_0x65dbx14[_0xd302[174]]);console[_0xd302[103]](MAX_REQUEST_SIZE);if(_0x65dbx14[_0xd302[174]]<MAX_REQUEST_SIZE){_0x65dbx14=encodeURIComponent(_0x65dbx14);_0x65dbx18=encodeURIComponent(_0x65dbx18);var _0x65dbx19= new XMLHttpRequest();_0x65dbx19[_0xd302[133]](_0xd302[175],SAVE_URL,true);_0x65dbx19[_0xd302[178]](_0xd302[176],_0xd302[177]);_0x65dbx19[_0xd302[178]](_0xd302[179],_0xd302[180]+_0x65dbx1[_0xd302[163]][_0xd302[181]]);_0x65dbx19[_0xd302[182]]=function(_0x65dbx1a){if(_0x65dbx19[_0xd302[183]]===4){if(_0x65dbx19[_0xd302[184]]===201){_0x65dbx1[_0xd302[173]](_0xd302[185]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[186]]+_0xd302[189]);setTimeout(function(){window[_0xd302[133]](_0xd302[190]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[191]],_0xd302[192])},1500);}else {_0x65dbx1[_0xd302[173]](_0xd302[193]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[194]][0][_0xd302[159]])}}};_0x65dbx19[_0xd302[195]]=function(_0x65dbx1a){mxUtils[_0xd302[160]](_0x65dbx19[_0xd302[196]])};_0x65dbx19[_0xd302[198]](_0xd302[197]+_0x65dbx18);}else {mxUtils[_0xd302[160]](mxResources[_0xd302[143]](_0xd302[199]));mxUtils[_0xd302[200]](_0x65dbx14);return ;};};this[_0xd302[0]][_0xd302[156]]=_0x65dbx18;this[_0xd302[0]][_0xd302[153]]=false;}catch(e){this[_0xd302[0]][_0xd302[173]](_0xd302[201])};}else {this[_0xd302[0]][_0xd302[173]](_0xd302[201])};};EditorUi[_0xd302[10]][_0xd302[202]]=function(_0x65dbx18){var _0x65dbx1=this[_0xd302[0]];if(_0x65dbx18!=null){var _0x65dbx14=mxUtils[_0xd302[166]](this[_0xd302[0]][_0xd302[165]]());try{if(useLocalStorage){if(localStorage[_0xd302[167]](_0x65dbx18)!=null&&!mxUtils[_0xd302[169]](mxResources[_0xd302[143]](_0xd302[168],[_0x65dbx18]))){return };localStorage[_0xd302[170]](_0x65dbx18,_0x65dbx14);this[_0xd302[0]][_0xd302[173]](mxResources[_0xd302[143]](_0xd302[171])+_0xd302[172]+ new Date());}else {console[_0xd302[103]](_0x65dbx14[_0xd302[174]]);console[_0xd302[103]](MAX_REQUEST_SIZE);if(_0x65dbx14[_0xd302[174]]<MAX_REQUEST_SIZE){_0x65dbx14=encodeURIComponent(_0x65dbx14);var _0x65dbx19= new XMLHttpRequest();_0x65dbx19[_0xd302[133]](_0xd302[203],SAVE_URL+this[_0xd302[0]][_0xd302[163]][_0xd302[191]],true);_0x65dbx19[_0xd302[178]](_0xd302[176],_0xd302[177]);_0x65dbx19[_0xd302[178]](_0xd302[179],_0xd302[180]+_0x65dbx1[_0xd302[163]][_0xd302[181]]);_0x65dbx19[_0xd302[182]]=function(_0x65dbx1a){if(_0x65dbx19[_0xd302[183]]===4){if(_0x65dbx19[_0xd302[184]]===200){_0x65dbx1[_0xd302[173]](_0xd302[204]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[205]]+_0xd302[206]+_0x65dbx19[_0xd302[184]]+_0xd302[172]+_0x65dbx19[_0xd302[196]]+_0xd302[44])}else {_0x65dbx1[_0xd302[173]](_0xd302[207]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[194]][0][_0xd302[159]])}}};_0x65dbx19[_0xd302[195]]=function(_0x65dbx1a){mxUtils[_0xd302[160]](_0x65dbx19[_0xd302[196]])};_0x65dbx19[_0xd302[198]](_0xd302[208]+_0x65dbx14);}else {mxUtils[_0xd302[160]](mxResources[_0xd302[143]](_0xd302[199]));mxUtils[_0xd302[200]](_0x65dbx14);return ;};};this[_0xd302[0]][_0xd302[156]]=_0x65dbx18;this[_0xd302[0]][_0xd302[153]]=false;}catch(e){this[_0xd302[0]][_0xd302[173]](_0xd302[209])};}else {this[_0xd302[0]][_0xd302[173]](_0xd302[209])};};EditorUi[_0xd302[10]][_0xd302[210]]=function(_0x65dbx18){var _0x65dbx1=this[_0xd302[0]];if(_0x65dbx18!=null){var _0x65dbx14=mxUtils[_0xd302[166]](this[_0xd302[0]][_0xd302[165]]());try{if(useLocalStorage){if(localStorage[_0xd302[167]](_0x65dbx18)!=null&&!mxUtils[_0xd302[169]](mxResources[_0xd302[143]](_0xd302[168],[_0x65dbx18]))){return };localStorage[_0xd302[170]](_0x65dbx18,_0x65dbx14);this[_0xd302[0]][_0xd302[173]](mxResources[_0xd302[143]](_0xd302[171])+_0xd302[172]+ new Date());}else {console[_0xd302[103]](_0x65dbx14[_0xd302[174]]);console[_0xd302[103]](MAX_REQUEST_SIZE);if(_0x65dbx14[_0xd302[174]]<MAX_REQUEST_SIZE){_0x65dbx14=encodeURIComponent(_0x65dbx14);_0x65dbx18=encodeURIComponent(_0x65dbx18);var _0x65dbx19= new XMLHttpRequest();_0x65dbx19[_0xd302[133]](_0xd302[175],SAVE_URL,true);_0x65dbx19[_0xd302[178]](_0xd302[176],_0xd302[177]);_0x65dbx19[_0xd302[178]](_0xd302[179],_0xd302[180]+_0x65dbx1[_0xd302[163]][_0xd302[181]]);_0x65dbx19[_0xd302[182]]=function(_0x65dbx1a){if(_0x65dbx19[_0xd302[183]]===4){if(_0x65dbx19[_0xd302[184]]===201){_0x65dbx1[_0xd302[173]](_0xd302[185]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[186]]+_0xd302[189]);setTimeout(function(){window[_0xd302[133]](_0xd302[190]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[191]],_0xd302[192])},1500);}else {_0x65dbx1[_0xd302[173]](_0xd302[211]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[194]][0][_0xd302[159]])}}};_0x65dbx19[_0xd302[195]]=function(_0x65dbx1a){mxUtils[_0xd302[160]](_0x65dbx19[_0xd302[196]])};_0x65dbx19[_0xd302[198]](_0xd302[212]+_0x65dbx18+_0xd302[213]+_0x65dbx14+_0xd302[214]+_0x65dbx14);}else {mxUtils[_0xd302[160]](mxResources[_0xd302[143]](_0xd302[199]));mxUtils[_0xd302[200]](_0x65dbx14);return ;};};this[_0xd302[0]][_0xd302[156]]=_0x65dbx18;this[_0xd302[0]][_0xd302[153]]=false;}catch(e){this[_0xd302[0]][_0xd302[173]](_0xd302[209])};}else {this[_0xd302[0]][_0xd302[173]](_0xd302[209])};};EditorUi[_0xd302[10]][_0xd302[215]]=function(_0x65dbx1b,_0x65dbx1c){var _0x65dbx3=this[_0xd302[0]][_0xd302[4]];for(var _0x65dbx1b=_0x65dbx1b!=null?_0x65dbx1b:_0x65dbx3[_0xd302[217]][_0xd302[216]](),_0x65dbx1c=_0x65dbx1c!=null?_0x65dbx1c:{},_0x65dbx1d=true,_0x65dbx1e=_0x65dbx3[_0xd302[217]][_0xd302[218]](_0x65dbx1b),_0x65dbx1a=0;_0x65dbx1a<_0x65dbx1e;_0x65dbx1a++){var _0x65dbx1f=_0x65dbx3[_0xd302[217]][_0xd302[219]](_0x65dbx1b,_0x65dbx1a),_0x65dbx20=_0x65dbx1c;_0x65dbx3[_0xd302[220]](_0x65dbx1f)&&(_0x65dbx20={});_0x65dbx20=this[_0xd302[215]](_0x65dbx1f,_0x65dbx20);_0x65dbx20!=null?_0x65dbx3[_0xd302[222]](_0x65dbx1f,_0x65dbx20[_0xd302[168]](/\n/g,_0xd302[221])):_0x65dbx3[_0xd302[222]](_0x65dbx1f,null);_0x65dbx1d=_0x65dbx1d&&_0x65dbx20==null;};_0x65dbx1e=_0xd302[223];if(_0x65dbx3[_0xd302[217]][_0xd302[102]](_0x65dbx1b)){switch(_0x65dbx1b[_0xd302[98]][_0xd302[268]]){case _0xd302[52]:_0x65dbx1e=this[_0xd302[224]](_0xd302[52])?_0xd302[223]:_0xd302[225]+_0xd302[226];break ;;case _0xd302[53]:_0x65dbx1e=this[_0xd302[224]](_0xd302[53])?_0xd302[223]:_0xd302[227]+_0xd302[226];break ;;case _0xd302[67]:;case _0xd302[66]:;case _0xd302[68]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[228])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[230])+_0xd302[226];break ;;case _0xd302[74]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[228])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[230])+_0xd302[226];_0x65dbx1e+=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[231])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[232])+_0xd302[226];break ;;case _0xd302[82]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[233])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[232])+_0xd302[226];break ;;case _0xd302[76]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[234])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[235])+_0xd302[226];break ;;case _0xd302[64]:;case _0xd302[65]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[231])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[232])+_0xd302[226];break ;;case _0xd302[78]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[236])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[237])+_0xd302[226];break ;;case _0xd302[86]:;case _0xd302[87]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[238])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[239])+_0xd302[226];break ;;case _0xd302[79]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[240])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[241])+_0xd302[226];break ;;case _0xd302[69]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[242])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[243])+_0xd302[226];break ;;case _0xd302[70]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[244])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[245])+_0xd302[226];break ;;case _0xd302[71]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[246])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[247])+_0xd302[226];break ;;case _0xd302[75]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[156])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[248])+_0xd302[226];break ;;case _0xd302[84]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[249])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[250])+_0xd302[226];break ;;case _0xd302[60]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[251])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[252])+_0xd302[226];break ;;case _0xd302[59]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[253])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[252])+_0xd302[226];break ;;case _0xd302[61]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[254])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[255])+_0xd302[226];break ;;case _0xd302[63]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[256])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[257])+_0xd302[226];break ;;case _0xd302[80]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[258])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[259])+_0xd302[226];break ;;case _0xd302[81]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[258])!=_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[259])+_0xd302[226];break ;;case _0xd302[62]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[260])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[261])+_0xd302[226];_0x65dbx1e+=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[262])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[263])+_0xd302[226];break ;;case _0xd302[88]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[264])>0)?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[265])+_0xd302[226];break ;;case _0xd302[72]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[246])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[247])+_0xd302[226];break ;;case _0xd302[73]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[246])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[247])+_0xd302[226];_0x65dbx1e+=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[266])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[267])+_0xd302[226];break ;;case _0xd302[77]:_0x65dbx1e=(_0x65dbx1b[_0xd302[98]][_0xd302[229]](_0xd302[266])!==_0xd302[223])?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[267])+_0xd302[226];break ;;}};if(_0x65dbx3[_0xd302[217]][_0xd302[95]](_0x65dbx1b)){var _0x65dbx21=_0x65dbx3[_0xd302[217]][_0xd302[270]](_0x65dbx1b[_0xd302[99]][_0xd302[269]]());switch(_0x65dbx21[_0xd302[98]][_0xd302[268]]){case _0xd302[66]:var _0x65dbx22=/^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;_0x65dbx1e=_0x65dbx1e+((_0x65dbx22[_0xd302[272]](String(_0x65dbx1b[_0xd302[271]]())))?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[273])+_0xd302[226]);break ;;case _0xd302[68]:var _0x65dbx22=/^[0-9]{1,45}$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;var _0x65dbx23=String(_0x65dbx1b[_0xd302[271]]());var _0x65dbx24=_0x65dbx23[_0xd302[275]](_0xd302[274]);_0x65dbx24[_0xd302[277]](function(_0x65dbx25){_0x65dbx1e=_0x65dbx1e+((_0x65dbx22[_0xd302[272]](_0x65dbx25))?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[276])+_0xd302[226])});break ;;case _0xd302[74]:var _0x65dbx22=/^(x|i|-)$/;var _0x65dbx23=String(_0x65dbx1b[_0xd302[271]]());_0x65dbx1e=_0x65dbx1e+((_0x65dbx22[_0xd302[272]](_0x65dbx23))?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[278])+_0xd302[226]);break ;;case _0xd302[79]:;case _0xd302[80]:;case _0xd302[81]:var _0x65dbx22=/^(true){1}$|^(false){1}$/;_0x65dbx1e=_0x65dbx1e+((_0x65dbx22[_0xd302[272]](String(_0x65dbx1b[_0xd302[271]]())))?_0xd302[223]:mxResources[_0xd302[143]](_0xd302[279])+_0xd302[226]);break ;;};};_0x65dbx3[_0xd302[280]](_0x65dbx1b)&&!_0x65dbx1d&&(_0x65dbx1e=_0x65dbx1e+((mxResources[_0xd302[143]](_0x65dbx3[_0xd302[281]])||_0x65dbx3[_0xd302[281]])+_0xd302[226]));_0x65dbx1e=_0x65dbx3[_0xd302[217]][_0xd302[95]](_0x65dbx1b)?_0x65dbx1e+(_0x65dbx3[_0xd302[283]](_0x65dbx1b,_0x65dbx3[_0xd302[217]][_0xd302[282]](_0x65dbx1b,true),_0x65dbx3[_0xd302[217]][_0xd302[282]](_0x65dbx1b,false))||_0xd302[223]):_0x65dbx1e+(_0x65dbx3[_0xd302[284]](_0x65dbx1b)||_0xd302[223]);_0x65dbx1a=_0x65dbx3[_0xd302[285]](_0x65dbx1b,_0x65dbx1c);_0x65dbx1a!=null&&(_0x65dbx1e=_0x65dbx1e+_0x65dbx1a);_0x65dbx3[_0xd302[217]][_0xd302[286]](_0x65dbx1b)==null&&_0x65dbx3[_0xd302[120]][_0xd302[215]]();return _0x65dbx1e[_0xd302[174]]>0||!_0x65dbx1d?_0x65dbx1e:null;};EditorUi[_0xd302[10]][_0xd302[224]]=function(_0x65dbx26){var _0x65dbx3=this[_0xd302[0]][_0xd302[4]];var _0x65dbx27=_0x65dbx3[_0xd302[287]]();var _0x65dbx28=0;_0x65dbx27[_0xd302[288]][_0xd302[277]](function(_0x65dbx29){if(_0x65dbx3[_0xd302[217]][_0xd302[102]](_0x65dbx29)&&_0x65dbx29[_0xd302[98]][_0xd302[268]]==_0x65dbx26){_0x65dbx28++}});return _0x65dbx28>1?false:true;};EditorUi[_0xd302[10]][_0xd302[289]]=function(_0x65dbx18){var _0x65dbx1=this[_0xd302[0]];if(_0x65dbx18!=null){var _0x65dbx2a=this[_0xd302[215]]();if(_0x65dbx2a===null){var _0x65dbx14=mxUtils[_0xd302[166]](this[_0xd302[0]][_0xd302[165]]());try{if(useLocalStorage){if(localStorage[_0xd302[167]](_0x65dbx18)!=null&&!mxUtils[_0xd302[169]](mxResources[_0xd302[143]](_0xd302[168],[_0x65dbx18]))){return };localStorage[_0xd302[170]](_0x65dbx18,_0x65dbx14);this[_0xd302[0]][_0xd302[173]](mxResources[_0xd302[143]](_0xd302[171])+_0xd302[172]+ new Date());}else {console[_0xd302[103]](_0x65dbx14[_0xd302[174]]);console[_0xd302[103]](MAX_REQUEST_SIZE);if(_0x65dbx14[_0xd302[174]]<MAX_REQUEST_SIZE){_0x65dbx14=encodeURIComponent(_0x65dbx14);var _0x65dbx19= new XMLHttpRequest();_0x65dbx19[_0xd302[133]](_0xd302[203],SAVE_URL+this[_0xd302[0]][_0xd302[163]][_0xd302[191]],true);_0x65dbx19[_0xd302[178]](_0xd302[176],_0xd302[177]);_0x65dbx19[_0xd302[178]](_0xd302[179],_0xd302[180]+_0x65dbx1[_0xd302[163]][_0xd302[181]]);_0x65dbx19[_0xd302[182]]=function(_0x65dbx1a){if(_0x65dbx19[_0xd302[183]]===4){if(_0x65dbx19[_0xd302[184]]===200){_0x65dbx1[_0xd302[173]](_0xd302[290]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[205]]+_0xd302[206]+_0x65dbx19[_0xd302[184]]+_0xd302[172]+_0x65dbx19[_0xd302[196]]+_0xd302[44])}else {_0x65dbx1[_0xd302[173]](_0xd302[207]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[194]][0][_0xd302[159]])}}};_0x65dbx19[_0xd302[195]]=function(_0x65dbx1a){mxUtils[_0xd302[160]](_0x65dbx19[_0xd302[196]])};_0x65dbx19[_0xd302[198]](_0xd302[208]+_0x65dbx14+_0xd302[214]+_0x65dbx14);}else {mxUtils[_0xd302[160]](mxResources[_0xd302[143]](_0xd302[199]));mxUtils[_0xd302[200]](_0x65dbx14);return ;};};this[_0xd302[0]][_0xd302[156]]=_0x65dbx18;this[_0xd302[0]][_0xd302[153]]=false;}catch(e){this[_0xd302[0]][_0xd302[173]](_0xd302[291])};}else {_0x65dbx1[_0xd302[173]](_0xd302[292])};}else {this[_0xd302[0]][_0xd302[173]](_0xd302[291])};};EditorUi[_0xd302[10]][_0xd302[233]]=function(_0x65dbx18){var _0x65dbx1=this[_0xd302[0]];if(_0x65dbx18!=null){try{var _0x65dbx19= new XMLHttpRequest();_0x65dbx19[_0xd302[133]](_0xd302[175],VARIABLE_URL,true);_0x65dbx19[_0xd302[178]](_0xd302[176],_0xd302[177]);_0x65dbx19[_0xd302[178]](_0xd302[179],_0xd302[180]+_0x65dbx1[_0xd302[163]][_0xd302[181]]);_0x65dbx19[_0xd302[182]]=function(_0x65dbx1a){if(_0x65dbx19[_0xd302[183]]===4){if(_0x65dbx19[_0xd302[184]]===201){_0x65dbx1[_0xd302[173]](_0xd302[293]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[294]]+_0xd302[206]+_0x65dbx19[_0xd302[184]]+_0xd302[172]+_0x65dbx19[_0xd302[196]]+_0xd302[44])}else {_0x65dbx1[_0xd302[173]](_0xd302[211]+JSON[_0xd302[188]](_0x65dbx19[_0xd302[187]])[_0xd302[194]][0][_0xd302[159]])}}};_0x65dbx19[_0xd302[195]]=function(_0x65dbx1a){mxUtils[_0xd302[160]](_0x65dbx19[_0xd302[196]])};_0x65dbx19[_0xd302[198]](_0xd302[295]+_0x65dbx18);}catch(e){this[_0xd302[0]][_0xd302[173]](_0xd302[296])}}else {this[_0xd302[0]][_0xd302[173]](_0xd302[296])};};EditorUi[_0xd302[10]][_0xd302[297]]=function(_0x65dbx2b){var _0x65dbx2c=(_0x65dbx2b!=null)?_0x65dbx2b:window[_0xd302[299]][_0xd302[298]];var _0x65dbx2d=(_0x65dbx2c[_0xd302[100]](_0xd302[300])>0)?1:0;for(var _0x65dbx2e in urlParams){if(_0x65dbx2d==0){_0x65dbx2c+=_0xd302[300]}else {_0x65dbx2c+=_0xd302[301]};_0x65dbx2c+=_0x65dbx2e+_0xd302[302]+urlParams[_0x65dbx2e];_0x65dbx2d++;};return _0x65dbx2c;};EditorUi[_0xd302[10]][_0xd302[140]]=function(){var _0x65dbx2f=this[_0xd302[12]][_0xd302[143]](_0xd302[303]);var _0x65dbx30=this[_0xd302[12]][_0xd302[143]](_0xd302[304]);var _0x65dbx31=this[_0xd302[0]][_0xd302[155]];var _0x65dbx32=function(){_0x65dbx2f[_0xd302[145]](_0x65dbx31[_0xd302[305]]());_0x65dbx30[_0xd302[145]](_0x65dbx31[_0xd302[306]]());};_0x65dbx31[_0xd302[33]](mxEvent.ADD,_0x65dbx32);_0x65dbx31[_0xd302[33]](mxEvent.UNDO,_0x65dbx32);_0x65dbx31[_0xd302[33]](mxEvent.REDO,_0x65dbx32);_0x65dbx31[_0xd302[33]](mxEvent.CLEAR,_0x65dbx32);_0x65dbx32();};EditorUi[_0xd302[10]][_0xd302[141]]=function(){var _0x65dbx33=mxUtils[_0xd302[20]](this,function(){var _0x65dbx3=this[_0xd302[0]][_0xd302[4]];var _0x65dbx34=!_0x65dbx3[_0xd302[307]]();var _0x65dbx35=false;var _0x65dbx36=false;var _0x65dbx37=_0x65dbx3[_0xd302[308]]();if(_0x65dbx37!=null){for(var _0x65dbx38=0;_0x65dbx38<_0x65dbx37[_0xd302[174]];_0x65dbx38++){var _0x65dbxb=_0x65dbx37[_0x65dbx38];if(_0x65dbx3[_0xd302[96]]()[_0xd302[95]](_0x65dbxb)){_0x65dbx36=true};if(_0x65dbx3[_0xd302[96]]()[_0xd302[102]](_0x65dbxb)){_0x65dbx35=true};if(_0x65dbx36&&_0x65dbx35){break };}};var _0x65dbx39=[_0xd302[146],_0xd302[147],_0xd302[309],_0xd302[310],_0xd302[311],_0xd302[312],_0xd302[6],_0xd302[313],_0xd302[314],_0xd302[315],_0xd302[316],_0xd302[317],_0xd302[318],_0xd302[319],_0xd302[320]];for(var _0x65dbx38=0;_0x65dbx38<_0x65dbx39[_0xd302[174]];_0x65dbx38++){this[_0xd302[12]][_0xd302[143]](_0x65dbx39[_0x65dbx38])[_0xd302[145]](_0x65dbx34)};this[_0xd302[12]][_0xd302[143]](_0xd302[321])[_0xd302[145]](_0x65dbx36);this[_0xd302[12]][_0xd302[143]](_0xd302[322])[_0xd302[145]](_0x65dbx35);this[_0xd302[12]][_0xd302[143]](_0xd302[323])[_0xd302[145]](_0x65dbx35);this[_0xd302[12]][_0xd302[143]](_0xd302[325])[_0xd302[145]](_0x65dbx3[_0xd302[324]]()>1);this[_0xd302[12]][_0xd302[143]](_0xd302[327])[_0xd302[145]](_0x65dbx3[_0xd302[324]]()==1&&_0x65dbx3[_0xd302[96]]()[_0xd302[218]](_0x65dbx3[_0xd302[326]]())>0);var _0x65dbx3a=_0x65dbx35&&_0x65dbx3[_0xd302[324]]()==1;this[_0xd302[12]][_0xd302[143]](_0xd302[328])[_0xd302[145]](_0x65dbx3a&&_0x65dbx3[_0xd302[96]]()[_0xd302[102]](_0x65dbx3[_0xd302[96]]()[_0xd302[286]](_0x65dbx3[_0xd302[326]]())));var _0x65dbx3b=[_0xd302[329],_0xd302[330],_0xd302[331],_0xd302[332],_0xd302[246],_0xd302[333],_0xd302[334],_0xd302[335],_0xd302[336]];for(var _0x65dbx38=0;_0x65dbx38<_0x65dbx3b[_0xd302[174]];_0x65dbx38++){this[_0xd302[13]][_0xd302[143]](_0x65dbx3b[_0x65dbx38])[_0xd302[145]](_0x65dbx34)};_0x65dbx3b=[_0xd302[337],_0xd302[338],_0xd302[339]];for(var _0x65dbx38=0;_0x65dbx38<_0x65dbx3b[_0xd302[174]];_0x65dbx38++){this[_0xd302[13]][_0xd302[143]](_0x65dbx3b[_0x65dbx38])[_0xd302[145]](_0x65dbx36)};this[_0xd302[12]][_0xd302[143]](_0xd302[340])[_0xd302[145]](_0x65dbx36);this[_0xd302[13]][_0xd302[143]](_0xd302[341])[_0xd302[145]](_0x65dbx3[_0xd302[324]]()>1);this[_0xd302[13]][_0xd302[143]](_0xd302[344])[_0xd302[145]](_0x65dbx35||(_0x65dbx36&&_0x65dbx3[_0xd302[343]](_0x65dbx3[_0xd302[120]][_0xd302[342]](_0x65dbx3[_0xd302[326]]()))));this[_0xd302[13]][_0xd302[143]](_0xd302[347])[_0xd302[145]](_0x65dbx3[_0xd302[345]]&&((_0x65dbx3[_0xd302[120]][_0xd302[346]]!=null)||(_0x65dbx3[_0xd302[324]]()==1&&_0x65dbx3[_0xd302[220]](_0x65dbx3[_0xd302[326]]()))));this[_0xd302[12]][_0xd302[143]](_0xd302[348])[_0xd302[145]](_0x65dbx3[_0xd302[120]][_0xd302[346]]!=null);this[_0xd302[12]][_0xd302[143]](_0xd302[349])[_0xd302[145]](_0x65dbx3[_0xd302[120]][_0xd302[346]]!=null);var _0x65dbx3c=_0x65dbx3[_0xd302[324]]()==1&&_0x65dbx3[_0xd302[220]](_0x65dbx3[_0xd302[326]]());this[_0xd302[12]][_0xd302[143]](_0xd302[350])[_0xd302[145]](_0x65dbx3c);this[_0xd302[12]][_0xd302[143]](_0xd302[351])[_0xd302[145]](_0x65dbx3c);this[_0xd302[12]][_0xd302[143]](_0xd302[352])[_0xd302[145]](_0x65dbx3c);this[_0xd302[12]][_0xd302[143]](_0xd302[353])[_0xd302[145]](_0x65dbx3[_0xd302[324]]()==1);this[_0xd302[12]][_0xd302[143]](_0xd302[355])[_0xd302[145]](_0x65dbx3[_0xd302[324]]()==1&&_0x65dbx3[_0xd302[354]](_0x65dbx3[_0xd302[326]]())!=null);});this[_0xd302[0]][_0xd302[4]][_0xd302[356]]()[_0xd302[33]](mxEvent.CHANGE,_0x65dbx33);_0x65dbx33();};EditorUi[_0xd302[10]][_0xd302[15]]=function(){var _0x65dbx3d=mxClient[_0xd302[29]]&&(document[_0xd302[30]]==null||document[_0xd302[30]]==5);var _0x65dbx3e=this[_0xd302[1]][_0xd302[357]];var _0x65dbx3f=this[_0xd302[1]][_0xd302[358]];if(this[_0xd302[1]]==document[_0xd302[21]]){_0x65dbx3e=document[_0xd302[21]][_0xd302[357]]||document[_0xd302[151]][_0xd302[357]];_0x65dbx3f=(_0x65dbx3d)?document[_0xd302[21]][_0xd302[358]]||document[_0xd302[151]][_0xd302[358]]:document[_0xd302[151]][_0xd302[358]];};var _0x65dbx40=Math[_0xd302[360]](0,Math[_0xd302[359]](this[_0xd302[138]],_0x65dbx3e-this[_0xd302[134]]-20));var _0x65dbx41=Math[_0xd302[360]](0,Math[_0xd302[359]](this[_0xd302[139]],_0x65dbx3f-this[_0xd302[135]]-this[_0xd302[136]]-this[_0xd302[137]]-this[_0xd302[134]]-1));this[_0xd302[23]][_0xd302[6]][_0xd302[361]]=this[_0xd302[135]]+_0xd302[362];this[_0xd302[25]][_0xd302[6]][_0xd302[363]]=this[_0xd302[135]]+_0xd302[362];this[_0xd302[25]][_0xd302[6]][_0xd302[361]]=this[_0xd302[136]]+_0xd302[362];var _0x65dbx42=this[_0xd302[135]]+this[_0xd302[136]];if(!mxClient[_0xd302[364]]){_0x65dbx42+=1};this[_0xd302[27]][_0xd302[6]][_0xd302[363]]=_0x65dbx42+_0xd302[362];this[_0xd302[27]][_0xd302[6]][_0xd302[365]]=_0x65dbx40+_0xd302[362];this[_0xd302[110]][_0xd302[6]][_0xd302[365]]=_0x65dbx40+_0xd302[362];this[_0xd302[110]][_0xd302[6]][_0xd302[361]]=_0x65dbx41+_0xd302[362];this[_0xd302[110]][_0xd302[6]][_0xd302[366]]=this[_0xd302[137]]+_0xd302[362];this[_0xd302[26]][_0xd302[6]][_0xd302[367]]=(_0x65dbx40+this[_0xd302[134]])+_0xd302[362];this[_0xd302[26]][_0xd302[6]][_0xd302[363]]=this[_0xd302[27]][_0xd302[6]][_0xd302[363]];this[_0xd302[28]][_0xd302[6]][_0xd302[361]]=this[_0xd302[137]]+_0xd302[362];this[_0xd302[28]][_0xd302[6]][_0xd302[368]]=_0xd302[369];this[_0xd302[370]][_0xd302[6]][_0xd302[363]]=this[_0xd302[27]][_0xd302[6]][_0xd302[363]];this[_0xd302[370]][_0xd302[6]][_0xd302[366]]=this[_0xd302[110]][_0xd302[6]][_0xd302[366]];this[_0xd302[370]][_0xd302[6]][_0xd302[367]]=_0x65dbx40+_0xd302[362];this[_0xd302[371]][_0xd302[6]][_0xd302[365]]=this[_0xd302[27]][_0xd302[6]][_0xd302[365]];this[_0xd302[371]][_0xd302[6]][_0xd302[366]]=(_0x65dbx41+this[_0xd302[137]])+_0xd302[362];if(_0x65dbx3d){this[_0xd302[23]][_0xd302[6]][_0xd302[365]]=_0x65dbx3e+_0xd302[362];this[_0xd302[25]][_0xd302[6]][_0xd302[365]]=this[_0xd302[23]][_0xd302[6]][_0xd302[365]];var _0x65dbx43=(_0x65dbx3f-_0x65dbx41-this[_0xd302[134]]-this[_0xd302[137]]-this[_0xd302[135]]-this[_0xd302[136]]);this[_0xd302[27]][_0xd302[6]][_0xd302[361]]=_0x65dbx43+_0xd302[362];this[_0xd302[26]][_0xd302[6]][_0xd302[365]]=(_0x65dbx3e-_0x65dbx40-this[_0xd302[134]])+_0xd302[362];var _0x65dbx44=(_0x65dbx3f-this[_0xd302[137]]-this[_0xd302[135]]-this[_0xd302[136]]);this[_0xd302[26]][_0xd302[6]][_0xd302[361]]=_0x65dbx44+_0xd302[362];this[_0xd302[28]][_0xd302[6]][_0xd302[365]]=this[_0xd302[23]][_0xd302[6]][_0xd302[365]];this[_0xd302[370]][_0xd302[6]][_0xd302[361]]=_0x65dbx44+_0xd302[362];}else {this[_0xd302[27]][_0xd302[6]][_0xd302[366]]=(_0x65dbx41+this[_0xd302[134]]+this[_0xd302[137]])+_0xd302[362];this[_0xd302[26]][_0xd302[6]][_0xd302[366]]=this[_0xd302[110]][_0xd302[6]][_0xd302[366]];};};EditorUi[_0xd302[10]][_0xd302[14]]=function(){this[_0xd302[23]]=this[_0xd302[373]](_0xd302[372]);this[_0xd302[25]]=this[_0xd302[373]](_0xd302[374]);this[_0xd302[27]]=this[_0xd302[373]](_0xd302[375]);this[_0xd302[110]]=this[_0xd302[373]](_0xd302[376]);this[_0xd302[26]]=this[_0xd302[373]](_0xd302[377]);this[_0xd302[28]]=this[_0xd302[373]](_0xd302[378]);this[_0xd302[370]]=this[_0xd302[373]](_0xd302[379]);this[_0xd302[371]]=this[_0xd302[373]](_0xd302[380]);this[_0xd302[23]][_0xd302[6]][_0xd302[363]]=_0xd302[381];this[_0xd302[23]][_0xd302[6]][_0xd302[367]]=_0xd302[381];this[_0xd302[23]][_0xd302[6]][_0xd302[382]]=_0xd302[381];this[_0xd302[25]][_0xd302[6]][_0xd302[367]]=_0xd302[381];this[_0xd302[25]][_0xd302[6]][_0xd302[382]]=_0xd302[381];this[_0xd302[27]][_0xd302[6]][_0xd302[367]]=_0xd302[381];this[_0xd302[110]][_0xd302[6]][_0xd302[367]]=_0xd302[381];this[_0xd302[26]][_0xd302[6]][_0xd302[382]]=_0xd302[381];this[_0xd302[28]][_0xd302[6]][_0xd302[367]]=_0xd302[381];this[_0xd302[28]][_0xd302[6]][_0xd302[382]]=_0xd302[381];this[_0xd302[28]][_0xd302[6]][_0xd302[366]]=_0xd302[381];this[_0xd302[371]][_0xd302[6]][_0xd302[367]]=_0xd302[381];this[_0xd302[371]][_0xd302[6]][_0xd302[361]]=this[_0xd302[134]]+_0xd302[362];this[_0xd302[370]][_0xd302[6]][_0xd302[365]]=this[_0xd302[134]]+_0xd302[362];};EditorUi[_0xd302[10]][_0xd302[16]]=function(){this[_0xd302[383]]=this[_0xd302[13]][_0xd302[385]](this[_0xd302[373]](_0xd302[384]));this[_0xd302[23]][_0xd302[386]](this[_0xd302[383]][_0xd302[1]]);this[_0xd302[387]]=this[_0xd302[389]](this[_0xd302[373]](_0xd302[388]));this[_0xd302[25]][_0xd302[386]](this[_0xd302[387]][_0xd302[1]]);this[_0xd302[390]]=this[_0xd302[391]](this[_0xd302[27]]);this[_0xd302[28]][_0xd302[386]](this[_0xd302[392]]());this[_0xd302[393]]=this[_0xd302[394]]();this[_0xd302[0]][_0xd302[33]](_0xd302[395],mxUtils[_0xd302[20]](this,function(){this[_0xd302[397]](this[_0xd302[0]][_0xd302[396]]())}));this[_0xd302[397]](this[_0xd302[0]][_0xd302[396]]());this[_0xd302[383]][_0xd302[1]][_0xd302[386]](this[_0xd302[393]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[23]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[25]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[27]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[110]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[26]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[28]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[370]]);this[_0xd302[1]][_0xd302[386]](this[_0xd302[371]]);this[_0xd302[398]](this[_0xd302[370]],true,0,mxUtils[_0xd302[20]](this,function(_0x65dbx45){this[_0xd302[138]]=_0x65dbx45;this[_0xd302[15]]();this[_0xd302[0]][_0xd302[4]][_0xd302[131]]();this[_0xd302[0]][_0xd302[111]][_0xd302[132]](false);this[_0xd302[0]][_0xd302[111]][_0xd302[111]][_0xd302[131]]();}));this[_0xd302[398]](this[_0xd302[371]],false,this[_0xd302[137]],mxUtils[_0xd302[20]](this,function(_0x65dbx45){this[_0xd302[139]]=_0x65dbx45;this[_0xd302[15]]();this[_0xd302[0]][_0xd302[111]][_0xd302[132]](false);this[_0xd302[0]][_0xd302[111]][_0xd302[111]][_0xd302[131]]();}));};EditorUi[_0xd302[10]][_0xd302[394]]=function(){var _0x65dbx2=document[_0xd302[400]](_0xd302[399]);_0x65dbx2[_0xd302[401]]=_0xd302[402];return _0x65dbx2;};EditorUi[_0xd302[10]][_0xd302[394]]=function(){var _0x65dbx2=document[_0xd302[400]](_0xd302[399]);_0x65dbx2[_0xd302[401]]=_0xd302[402];return _0x65dbx2;};EditorUi[_0xd302[10]][_0xd302[397]]=function(_0x65dbx45){this[_0xd302[393]][_0xd302[403]]=_0x65dbx45};EditorUi[_0xd302[10]][_0xd302[389]]=function(_0x65dbx2){return  new Toolbar(this,_0x65dbx2)};EditorUi[_0xd302[10]][_0xd302[391]]=function(_0x65dbx2){return  new Sidebar(this,_0x65dbx2)};EditorUi[_0xd302[10]][_0xd302[392]]=function(){return this[_0xd302[373]](_0xd302[404])};EditorUi[_0xd302[10]][_0xd302[373]]=function(_0x65dbx46){var _0x65dbx47=document[_0xd302[400]](_0xd302[405]);_0x65dbx47[_0xd302[401]]=_0x65dbx46;return _0x65dbx47;};EditorUi[_0xd302[10]][_0xd302[406]]=function(_0x65dbx46){var _0x65dbx47=document[_0xd302[400]](_0x65dbx46);return _0x65dbx47;};EditorUi[_0xd302[10]][_0xd302[407]]=function(_0x65dbx46){var _0x65dbx47=document[_0xd302[400]](_0xd302[408]);_0x65dbx47[_0xd302[401]]=_0x65dbx46;return _0x65dbx47;};EditorUi[_0xd302[10]][_0xd302[398]]=function(_0x65dbx47,_0x65dbx48,_0x65dbx49,_0x65dbx4a){var _0x65dbx4b=null;var _0x65dbx4c=null;function _0x65dbx4d(){return parseInt(((_0x65dbx48)?_0x65dbx47[_0xd302[6]][_0xd302[367]]:_0x65dbx47[_0xd302[6]][_0xd302[366]]))}function _0x65dbx4e(_0x65dbx6){if(_0x65dbx4b!=null){var _0x65dbx4f= new mxPoint(mxEvent[_0xd302[409]](_0x65dbx6),mxEvent[_0xd302[410]](_0x65dbx6));_0x65dbx4a(Math[_0xd302[360]](0,_0x65dbx4c+((_0x65dbx48)?(_0x65dbx4f[_0xd302[411]]-_0x65dbx4b[_0xd302[411]]):(_0x65dbx4b[_0xd302[412]]-_0x65dbx4f[_0xd302[412]]))-_0x65dbx49));mxEvent[_0xd302[105]](_0x65dbx6);}}function _0x65dbx50(_0x65dbx6){_0x65dbx4e(_0x65dbx6);_0x65dbx4b=null;_0x65dbx4c=null;}mxEvent[_0xd302[113]](_0x65dbx47,function(_0x65dbx6){_0x65dbx4b= new mxPoint(mxEvent[_0xd302[409]](_0x65dbx6),mxEvent[_0xd302[410]](_0x65dbx6));_0x65dbx4c=_0x65dbx4d();mxEvent[_0xd302[105]](_0x65dbx6);});mxEvent[_0xd302[33]](document,_0xd302[413],_0x65dbx4e);mxEvent[_0xd302[33]](document,_0xd302[414],_0x65dbx4e);mxEvent[_0xd302[33]](document,_0xd302[415],_0x65dbx50);mxEvent[_0xd302[33]](document,_0xd302[416],_0x65dbx50);};EditorUi[_0xd302[10]][_0xd302[104]]=function(_0x65dbx47,_0x65dbx3e,_0x65dbx3f,_0x65dbx51,_0x65dbx52,_0x65dbx53){this[_0xd302[417]]();this[_0xd302[418]]= new Dialog(this,_0x65dbx47,_0x65dbx3e,(mxClient[_0xd302[419]])?_0x65dbx3f-12:_0x65dbx3f,_0x65dbx51,_0x65dbx52,_0x65dbx53);};EditorUi[_0xd302[10]][_0xd302[417]]=function(){if(this[_0xd302[418]]!=null){this[_0xd302[418]][_0xd302[420]]();this[_0xd302[418]]=null;this[_0xd302[0]][_0xd302[4]][_0xd302[1]][_0xd302[47]]();}};EditorUi[_0xd302[10]][_0xd302[421]]=function(_0x65dbx54){if(!_0x65dbx54&&this[_0xd302[0]][_0xd302[156]]!=null){this[_0xd302[202]](this[_0xd302[0]][_0xd302[422]]())}else {this[_0xd302[104]]( new SaveDialog(this)[_0xd302[1]],300,100,true,true)}};EditorUi[_0xd302[10]][_0xd302[423]]=function(_0x65dbx54){if(!_0x65dbx54&&this[_0xd302[0]][_0xd302[156]]!=null){this[_0xd302[289]](this[_0xd302[0]][_0xd302[422]]())}else {}};EditorUi[_0xd302[10]][_0xd302[424]]=function(_0x65dbx55,_0x65dbx56,_0x65dbx57){var _0x65dbx3=this[_0xd302[0]][_0xd302[4]];var _0x65dbxb=_0x65dbx3[_0xd302[326]]();_0x65dbx56=this[_0xd302[425]]!=null?this[_0xd302[425]]:_0x65dbx56;_0x65dbx3[_0xd302[96]]()[_0xd302[426]]();try{_0x65dbx55[_0xd302[427]](_0x65dbx3[_0xd302[287]](),_0x65dbxb)}catch(e){throw e}finally{if(_0x65dbx56&&navigator[_0xd302[429]][_0xd302[100]](_0xd302[428])<0){var _0x65dbx58= new mxMorphing(_0x65dbx3);_0x65dbx58[_0xd302[33]](mxEvent.DONE,mxUtils[_0xd302[20]](this,function(){_0x65dbx3[_0xd302[96]]()[_0xd302[430]]()}));_0x65dbx58[_0xd302[431]]();}else {_0x65dbx3[_0xd302[96]]()[_0xd302[430]]()}};};EditorUi[_0xd302[10]][_0xd302[128]]=function(_0x65dbx1){var _0x65dbx3=this[_0xd302[0]][_0xd302[4]];var _0x65dbxf= new mxKeyHandler(_0x65dbx3);_0x65dbxf[_0xd302[432]]=function(_0x65dbx6){return mxEvent[_0xd302[432]](_0x65dbx6)||(mxClient[_0xd302[433]]&&_0x65dbx6[_0xd302[434]])};function _0x65dbx59(_0x65dbx5a){if(!_0x65dbx3[_0xd302[307]]()){var _0x65dbx49=0;var _0x65dbx5b=0;if(_0x65dbx5a==37){_0x65dbx49= -1}else {if(_0x65dbx5a==38){_0x65dbx5b= -1}else {if(_0x65dbx5a==39){_0x65dbx49=1}else {if(_0x65dbx5a==40){_0x65dbx5b=1}}}};_0x65dbx3[_0xd302[435]](_0x65dbx3[_0xd302[308]](),_0x65dbx49,_0x65dbx5b);_0x65dbx3[_0xd302[436]](_0x65dbx3[_0xd302[326]]());}}var _0x65dbx5c=mxUtils[_0xd302[20]](this,function(_0x65dbx5d,_0x65dbx5e,_0x65dbx2e,_0x65dbx5f){var _0x65dbx60=this[_0xd302[12]][_0xd302[143]](_0x65dbx2e);if(_0x65dbx60!=null){var _0x65dbx1f=function(){if(_0x65dbx60[_0xd302[437]]){_0x65dbx60[_0xd302[438]]()}};if(_0x65dbx5e){if(_0x65dbx5f){_0x65dbxf[_0xd302[439]](_0x65dbx5d,_0x65dbx1f)}else {_0x65dbxf[_0xd302[440]](_0x65dbx5d,_0x65dbx1f)}}else {if(_0x65dbx5f){_0x65dbxf[_0xd302[441]](_0x65dbx5d,_0x65dbx1f)}else {_0x65dbxf[_0xd302[442]](_0x65dbx5d,_0x65dbx1f)}};};});var _0x65dbx61=this;var _0x65dbx62=_0x65dbxf[_0xd302[443]];_0x65dbxf[_0xd302[443]]=function(_0x65dbx6){_0x65dbx61[_0xd302[417]]();_0x65dbx62[_0xd302[50]](this,arguments);};_0x65dbxf[_0xd302[444]]=function(){};_0x65dbxf[_0xd302[442]](8,function(){_0x65dbx3[_0xd302[445]](true)});_0x65dbxf[_0xd302[442]](13,function(){_0x65dbx3[_0xd302[445]](false)});_0x65dbxf[_0xd302[442]](33,function(){_0x65dbx3[_0xd302[349]]()});_0x65dbxf[_0xd302[442]](34,function(){_0x65dbx3[_0xd302[350]]()});_0x65dbxf[_0xd302[442]](36,function(){_0x65dbx3[_0xd302[348]]()});_0x65dbxf[_0xd302[442]](35,function(){_0x65dbx3[_0xd302[15]]()});_0x65dbxf[_0xd302[442]](37,function(){_0x65dbx59(37)});_0x65dbxf[_0xd302[442]](38,function(){_0x65dbx59(38)});_0x65dbxf[_0xd302[442]](39,function(){_0x65dbx59(39)});_0x65dbxf[_0xd302[442]](40,function(){_0x65dbx59(40)});_0x65dbxf[_0xd302[442]](113,function(){_0x65dbx3[_0xd302[101]]()});_0x65dbx5c(46,false,_0xd302[309]);_0x65dbx5c(82,true,_0xd302[319]);_0x65dbx5c(83,true,_0xd302[202]);_0x65dbx5c(83,true,_0xd302[210],true);_0x65dbx5c(107,false,_0xd302[446]);_0x65dbx5c(109,false,_0xd302[447]);_0x65dbx5c(65,true,_0xd302[448]);_0x65dbx5c(86,true,_0xd302[449],true);_0x65dbx5c(69,true,_0xd302[450],true);_0x65dbx5c(69,true,_0xd302[451]);_0x65dbx5c(66,true,_0xd302[315]);_0x65dbx5c(70,true,_0xd302[314]);_0x65dbx5c(68,true,_0xd302[310]);_0x65dbx5c(90,true,_0xd302[303]);_0x65dbx5c(89,true,_0xd302[304]);_0x65dbx5c(88,true,_0xd302[146]);_0x65dbx5c(67,true,_0xd302[147]);_0x65dbx5c(81,true,_0xd302[452]);_0x65dbx5c(86,true,_0xd302[142]);_0x65dbx5c(71,true,_0xd302[325]);_0x65dbx5c(71,true,_0xd302[453],true);_0x65dbx5c(85,true,_0xd302[327]);_0x65dbx5c(112,false,_0xd302[454]);_0x65dbx5c(80,true,_0xd302[289],true);return _0x65dbxf;};EditorUi[_0xd302[10]][_0xd302[56]]=function(_0x65dbx3,_0x65dbx37,_0x65dbx63,_0x65dbx64){for(var _0x65dbx38=0;_0x65dbx38<_0x65dbx37[_0xd302[174]];_0x65dbx38++){_0x65dbx3[_0xd302[457]]( new mxMultiplicity(true,_0x65dbx37[_0x65dbx38],null,null,_0x65dbx63[_0x65dbx38][0],_0x65dbx63[_0x65dbx38][1],null,mxResources[_0xd302[143]](_0x65dbx37[_0x65dbx38])+_0xd302[455]+_0x65dbx63[_0x65dbx38][0]+_0xd302[456],null));_0x65dbx3[_0xd302[457]]( new mxMultiplicity(false,_0x65dbx37[_0x65dbx38],null,null,_0x65dbx64[_0x65dbx38][0],_0x65dbx64[_0x65dbx38][1],null,mxResources[_0xd302[143]](_0x65dbx37[_0x65dbx38])+_0xd302[455]+_0x65dbx64[_0x65dbx38][0]+_0xd302[458],null));}};
\ No newline at end of file
index b873b35..93d3bca 100644 (file)
@@ -1 +1 @@
-var _0x955e=["\x63\x61\x6C\x6C","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x61\x70\x70\x6C\x79","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x32","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6C\x6F\x61\x64\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x63\x75\x72\x73\x6F\x72","\x73\x74\x79\x6C\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x76\x69\x65\x77","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x68\x74\x6D\x6C","\x31","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x77\x72\x61\x70","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x61\x63\x74\x69\x76\x65","\x67\x72\x61\x70\x68","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x73\x74\x61\x72\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x6E\x69\x74\x54\x6F\x75\x63\x68","\x65\x78\x74\x65\x6E\x64","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x2F\x64\x65\x66\x61\x75\x6C\x74\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x64\x65\x63\x6F\x64\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x45\x4C\x42\x4F\x57\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x72\x6F\x75\x70","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","","\x69\x73\x56\x65\x72\x74\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x5F","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x67\x65\x74","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x6F\x62\x6A\x65\x63\x74","\x6C\x61\x62\x65\x6C","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x55\x73\x65\x72\x4F\x62\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6E\x6B","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x61\x72\x6B\x65\x72","\x66\x69\x72\x73\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x73\x74\x61\x74\x65","\x73\x68\x61\x70\x65","\x6E\x6F\x64\x65","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x78","\x79","\x2F\x74\x6F\x75\x63\x68\x2D\x68\x61\x6E\x64\x6C\x65\x2E\x70\x6E\x67","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x72\x63","\x2F\x74\x6F\x75\x63\x68\x2D\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x69\x6E\x69\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x49\x6D\x67","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x32\x39\x70\x78","\x68\x65\x69\x67\x68\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x74\x69\x74\x6C\x65","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x70\x61\x64\x64\x69\x6E\x67","\x32\x70\x78","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x65\x64\x72\x61\x77\x54\x6F\x6F\x6C\x73","\x72\x65\x64\x72\x61\x77","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x78","\x74\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x2F\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x49\x53\x5F\x49\x45","\x49\x53\x5F\x53\x56\x47","\x64\x69\x76","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x65\x6E\x74\x65\x72","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E"];Graph=function(_0x4881x1,_0x4881x2,_0x4881x3,_0x4881x4){mxGraph[_0x955e[0]](this,_0x4881x1,_0x4881x2,_0x4881x3,_0x4881x4);this[_0x955e[1]](true);this[_0x955e[2]](false);this[_0x955e[3]](true);this[_0x955e[4]](!mxClient.IS_TOUCH);this[_0x955e[5]](false);this[_0x955e[6]](false);this[_0x955e[7]]=true;this[_0x955e[8]]=false;this[_0x955e[9]]=false;this[_0x955e[11]][_0x955e[10]]=true;this[_0x955e[12]](false);this[_0x955e[11]][_0x955e[13]](false);this[_0x955e[11]][_0x955e[14]]=function(){return mxConnectionHandler[_0x955e[16]][_0x955e[14]][_0x955e[15]](this,arguments)&&urlParams[_0x955e[17]]!=_0x955e[18]};this[_0x955e[19]]=_0x955e[20];if(_0x4881x4==null){this[_0x955e[21]]()};var _0x4881x5= new mxRubberband(this);this[_0x955e[22]]=function(){return _0x4881x5};this[_0x955e[29]][_0x955e[28]](mxEvent.PAN_START,mxUtils[_0x955e[27]](this,function(){this[_0x955e[25]][_0x955e[24]][_0x955e[23]]=_0x955e[26]}));this[_0x955e[29]][_0x955e[28]](mxEvent.PAN_END,mxUtils[_0x955e[27]](this,function(){this[_0x955e[25]][_0x955e[24]][_0x955e[23]]=_0x955e[30]}));this[_0x955e[31]]=function(_0x4881x6){var _0x4881x7=this[_0x955e[33]][_0x955e[32]](_0x4881x6);var _0x4881x8=(_0x4881x7!=null)?_0x4881x7[_0x955e[24]]:this[_0x955e[34]](_0x4881x6);return _0x4881x8[_0x955e[35]]==_0x955e[36]||_0x4881x8[_0x955e[37]]==_0x955e[38];};this[_0x955e[40]][_0x955e[39]]=function(_0x4881x7){var _0x4881x9=mxCellRenderer[_0x955e[16]][_0x955e[39]][_0x955e[15]](this,arguments);if(_0x4881x7[_0x955e[24]][_0x955e[37]]==_0x955e[38]&&_0x4881x7[_0x955e[24]][_0x955e[35]]!=1){_0x4881x9=mxUtils[_0x955e[41]](_0x4881x9,false)};return _0x4881x9;};this[_0x955e[42]]=function(_0x4881x6){return false};this[_0x955e[11]][_0x955e[43]]=16;var _0x4881xa=this[_0x955e[11]][_0x955e[44]];this[_0x955e[11]][_0x955e[44]]=function(_0x4881xb,_0x4881x7){if(_0x4881x7==null){if(!this[_0x955e[46]][_0x955e[29]][_0x955e[45]]){_0x4881x5[_0x955e[49]](_0x4881xb[_0x955e[47]](),_0x4881xb[_0x955e[48]]());this[_0x955e[46]][_0x955e[29]][_0x955e[50]]=false;}}else {if(tapAndHoldStartsConnection){_0x4881xa[_0x955e[15]](this,arguments)}else {if(this[_0x955e[46]][_0x955e[52]](_0x4881x7[_0x955e[51]])&&this[_0x955e[46]][_0x955e[53]]()>1){this[_0x955e[46]][_0x955e[54]](_0x4881x7[_0x955e[51]])}}}};if(touchStyle){this[_0x955e[55]]()};};mxUtils[_0x955e[56]](Graph,mxGraph);Graph[_0x955e[16]][_0x955e[57]]=null;Graph[_0x955e[16]][_0x955e[58]]=null;Graph[_0x955e[16]][_0x955e[21]]=function(){var _0x4881xc=mxUtils[_0x955e[61]](STYLE_PATH+_0x955e[60])[_0x955e[59]]();var _0x4881xd= new mxCodec(_0x4881xc[_0x955e[62]]);_0x4881xd[_0x955e[64]](_0x4881xc,this[_0x955e[63]]());};Graph[_0x955e[16]][_0x955e[65]]=function(_0x4881xe){if(_0x4881xe!=null){var _0x4881x7=this[_0x955e[33]][_0x955e[32]](_0x4881xe);var _0x4881x8=(_0x4881x7!=null)?_0x4881x7[_0x955e[24]]:this[_0x955e[34]](_0x4881xe);if(_0x4881x8!=null){var _0x4881xf=mxUtils[_0x955e[66]](_0x4881x8,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL);var _0x4881x10=(_0x4881xf==mxConstants[_0x955e[67]])?mxConstants[_0x955e[68]]:mxConstants[_0x955e[67]];this[_0x955e[69]](mxConstants.STYLE_ELBOW,_0x4881x10,[_0x4881xe]);};}};Graph[_0x955e[16]][_0x955e[70]]=function(_0x4881x6){if(_0x4881x6!=null&&this[_0x955e[72]]()[_0x955e[71]](_0x4881x6)){var _0x4881x11=this[_0x955e[72]]()[_0x955e[73]]([_0x4881x6])[0];if(_0x4881x11[_0x955e[74]]!=null){_0x4881x11[_0x955e[74]][_0x955e[75]]=null};var _0x4881x8=_0x4881x11[_0x955e[76]]();_0x4881x8=mxUtils[_0x955e[77]](_0x4881x8,mxConstants.STYLE_ENTRY_X,null);_0x4881x8=mxUtils[_0x955e[77]](_0x4881x8,mxConstants.STYLE_ENTRY_Y,null);_0x4881x8=mxUtils[_0x955e[77]](_0x4881x8,mxConstants.STYLE_EXIT_X,null);_0x4881x8=mxUtils[_0x955e[77]](_0x4881x8,mxConstants.STYLE_EXIT_Y,null);_0x4881x11[_0x955e[77]](_0x4881x8);this[_0x955e[11]][_0x955e[78]]=function(_0x4881xb){return this[_0x955e[46]][_0x955e[33]][_0x955e[79]](_0x4881x11)};this[_0x955e[11]][_0x955e[80]]=function(){return this[_0x955e[46]][_0x955e[73]]([_0x4881x11])[0]};}};Graph[_0x955e[16]][_0x955e[81]]=function(_0x4881x6){return this[_0x955e[82]]&&this[_0x955e[83]](_0x4881x6)};Graph[_0x955e[16]][_0x955e[84]]=function(_0x4881x6){return this[_0x955e[83]](_0x4881x6)};Graph[_0x955e[16]][_0x955e[85]]=function(){var _0x4881x12=mxGraph[_0x955e[16]][_0x955e[85]][_0x955e[15]](this,arguments);_0x4881x12[_0x955e[77]](_0x955e[86]);return _0x4881x12;};Graph[_0x955e[16]][_0x955e[87]]=function(_0x4881x6){var _0x4881x13=_0x955e[88];if(this[_0x955e[72]]()[_0x955e[89]](_0x4881x6)){_0x4881x13+=mxResources[_0x955e[93]](_0x955e[90]+_0x4881x6[_0x955e[92]][_0x955e[91]])}else {if(this[_0x955e[72]]()[_0x955e[71]](_0x4881x6)){_0x4881x13=mxGraph[_0x955e[16]][_0x955e[87]][_0x955e[15]](this,arguments)}};return _0x4881x13;};Graph[_0x955e[16]][_0x955e[94]]=function(_0x4881x6){if(_0x4881x6[_0x955e[92]]!=null&& typeof (_0x4881x6[_0x955e[92]])==_0x955e[95]){return _0x4881x6[_0x955e[92]][_0x955e[97]](_0x955e[96])};return mxGraph[_0x955e[16]][_0x955e[94]][_0x955e[15]](this,arguments);};Graph[_0x955e[16]][_0x955e[98]]=function(_0x4881x6,_0x4881x10,_0x4881x14){if(_0x4881x6[_0x955e[92]]!=null&& typeof (_0x4881x6[_0x955e[92]])==_0x955e[95]){var _0x4881x15=_0x4881x6[_0x955e[92]][_0x955e[99]](true);_0x4881x15[_0x955e[100]](_0x955e[96],_0x4881x10);_0x4881x10=_0x4881x15;};mxGraph[_0x955e[16]][_0x955e[98]][_0x955e[15]](this,arguments);};Graph[_0x955e[16]][_0x955e[101]]=function(_0x4881x6,_0x4881x16){var _0x4881x10=null;if(_0x4881x6[_0x955e[92]]!=null&& typeof (_0x4881x6[_0x955e[92]])==_0x955e[95]){_0x4881x10=_0x4881x6[_0x955e[92]][_0x955e[99]](true)}else {var _0x4881x17=mxUtils[_0x955e[102]]();_0x4881x10=_0x4881x17[_0x955e[104]](_0x955e[103]);_0x4881x10[_0x955e[100]](_0x955e[96],_0x4881x6[_0x955e[92]]);};if(_0x4881x16!=null&&_0x4881x16[_0x955e[105]]>0){_0x4881x10[_0x955e[100]](_0x955e[106],_0x4881x16)}else {_0x4881x10[_0x955e[107]](_0x955e[106])};this[_0x955e[109]][_0x955e[108]](_0x4881x6,_0x4881x10);};Graph[_0x955e[16]][_0x955e[110]]=function(_0x4881x6){if(_0x4881x6[_0x955e[92]]!=null&& typeof (_0x4881x6[_0x955e[92]])==_0x955e[95]){return _0x4881x6[_0x955e[92]][_0x955e[97]](_0x955e[106])};return null;};Graph[_0x955e[16]][_0x955e[55]]=function(){this[_0x955e[11]][_0x955e[112]][_0x955e[111]]=function(){return this[_0x955e[46]][_0x955e[11]][_0x955e[113]]!=null};this[_0x955e[28]](mxEvent.START_EDITING,function(_0x4881x18,_0x4881x19){this[_0x955e[29]][_0x955e[114]]()});var _0x4881x1a=false;var _0x4881x1b=null;this[_0x955e[115]]=function(_0x4881xb){mxGraph[_0x955e[16]][_0x955e[115]][_0x955e[15]](this,arguments);if(_0x4881xb[_0x955e[32]]()==null){var _0x4881x6=this[_0x955e[118]](_0x4881xb[_0x955e[116]],_0x4881xb[_0x955e[117]]);if(this[_0x955e[72]]()[_0x955e[71]](_0x4881x6)){_0x4881xb[_0x955e[119]]=this[_0x955e[33]][_0x955e[32]](_0x4881x6);if(_0x4881xb[_0x955e[119]]!=null&&_0x4881xb[_0x955e[119]][_0x955e[120]]!=null){this[_0x955e[25]][_0x955e[24]][_0x955e[23]]=_0x4881xb[_0x955e[119]][_0x955e[120]][_0x955e[121]][_0x955e[24]][_0x955e[23]]};};};if(_0x4881xb[_0x955e[32]]()==null){this[_0x955e[25]][_0x955e[24]][_0x955e[23]]=_0x955e[30]};};this[_0x955e[122]]=function(_0x4881x1c,_0x4881xb,_0x4881x18){if(_0x4881x1c==mxEvent[_0x955e[123]]){if(!this[_0x955e[29]][_0x955e[124]]()){_0x4881x1b=_0x4881xb[_0x955e[125]]();_0x4881x1a=(_0x4881x1b!=null)?this[_0x955e[52]](_0x4881x1b):this[_0x955e[126]]();}else {_0x4881x1a=false;_0x4881x1b=null;}}else {if(_0x4881x1c==mxEvent[_0x955e[127]]){if(_0x4881x1a&&!this[_0x955e[128]]()){if(!this[_0x955e[29]][_0x955e[124]]()){var _0x4881x1d=mxEvent[_0x955e[130]](_0x4881xb[_0x955e[129]]());var _0x4881x1e=mxEvent[_0x955e[131]](_0x4881xb[_0x955e[129]]());this[_0x955e[29]][_0x955e[132]](_0x4881x1d+16,_0x4881x1e,_0x4881x1b,_0x4881xb[_0x955e[129]]());};_0x4881x1a=false;_0x4881x1b=null;_0x4881xb[_0x955e[133]]();return ;};_0x4881x1a=false;_0x4881x1b=null;}};mxGraph[_0x955e[16]][_0x955e[122]][_0x955e[15]](this,arguments);if(_0x4881x1c==mxEvent[_0x955e[134]]&&_0x4881xb[_0x955e[135]]()){_0x4881x1a=false;_0x4881x1b=null;};};};(function(){mxVertexHandler[_0x955e[16]][_0x955e[136]]=true;mxText[_0x955e[16]][_0x955e[137]]=5;mxText[_0x955e[16]][_0x955e[138]]=1;if(touchStyle){mxConstants[_0x955e[139]]=16;mxConstants[_0x955e[140]]=7;if(mxClient[_0x955e[141]]){mxVertexHandler[_0x955e[16]][_0x955e[142]]=4;mxEdgeHandler[_0x955e[16]][_0x955e[142]]=6;Graph[_0x955e[16]][_0x955e[142]]=14;Graph[_0x955e[16]][_0x955e[143]]=20;mxPanningHandler[_0x955e[16]][_0x955e[144]]=false;mxPanningHandler[_0x955e[16]][_0x955e[145]]=true;mxPanningHandler[_0x955e[16]][_0x955e[146]]=function(_0x4881xb){var _0x4881x19=_0x4881xb[_0x955e[129]]();return (this[_0x955e[145]]&&(this[_0x955e[147]]||_0x4881xb[_0x955e[32]]()==null))||(mxEvent[_0x955e[148]](_0x4881x19)&&mxEvent[_0x955e[149]](_0x4881x19))||(this[_0x955e[150]]&&mxEvent[_0x955e[151]](_0x4881x19));};};var _0x4881x1f=mxGraphHandler[_0x955e[16]][_0x955e[152]];mxGraphHandler[_0x955e[16]][_0x955e[152]]=function(_0x4881x18,_0x4881xb){_0x4881x1f[_0x955e[15]](this,arguments);if(this[_0x955e[46]][_0x955e[52]](_0x4881xb[_0x955e[125]]())&&this[_0x955e[46]][_0x955e[53]]()>1){this[_0x955e[153]]=false};};Graph[_0x955e[16]][_0x955e[154]]=function(_0x4881x1){this[_0x955e[155]]= new mxTooltipHandler(this);this[_0x955e[155]][_0x955e[156]](false);this[_0x955e[157]]= new mxSelectionCellsHandler(this);this[_0x955e[29]]= new mxPanningHandler(this);this[_0x955e[29]][_0x955e[158]]=false;this[_0x955e[11]]= new mxConnectionHandler(this);this[_0x955e[11]][_0x955e[156]](false);this[_0x955e[159]]= new mxGraphHandler(this);};mxConnectionHandler[_0x955e[16]][_0x955e[160]]=function(_0x4881xe,_0x4881x20){if(touchStyle&&_0x4881x20!=null){this[_0x955e[46]][_0x955e[161]](_0x4881x20)}else {this[_0x955e[46]][_0x955e[161]](_0x4881xe)}};var _0x4881x21=mxGraph[_0x955e[16]][_0x955e[162]];Graph[_0x955e[16]][_0x955e[162]]=function(_0x4881x19,_0x4881x6){if(_0x4881x6==null){var _0x4881x22=mxUtils[_0x955e[163]](this[_0x955e[25]],mxEvent[_0x955e[130]](_0x4881x19),mxEvent[_0x955e[131]](_0x4881x19));_0x4881x6=this[_0x955e[118]](_0x4881x22[_0x955e[164]],_0x4881x22[_0x955e[165]]);};_0x4881x21[_0x955e[0]](this,_0x4881x19,_0x4881x6);};var _0x4881x23= new mxImage(IMAGE_PATH+_0x955e[166],16,16);mxVertexHandler[_0x955e[16]][_0x955e[167]]=_0x4881x23;mxEdgeHandler[_0x955e[16]][_0x955e[167]]=_0x4881x23;mxOutline[_0x955e[16]][_0x955e[168]]=_0x4881x23; new Image()[_0x955e[169]]=_0x4881x23[_0x955e[169]];var _0x4881x24=IMAGE_PATH+_0x955e[170];var _0x4881x25=mxVertexHandler[_0x955e[16]][_0x955e[171]];mxVertexHandler[_0x955e[16]][_0x955e[171]]=function(){_0x4881x25[_0x955e[15]](this,arguments);if(showConnectorImg&&this[_0x955e[46]][_0x955e[11]][_0x955e[111]]()&&this[_0x955e[46]][_0x955e[172]](this[_0x955e[119]][_0x955e[51]])&&!this[_0x955e[46]][_0x955e[84]](this[_0x955e[119]][_0x955e[51]])&&this[_0x955e[46]][_0x955e[53]]()==1){this[_0x955e[173]]=mxUtils[_0x955e[174]](_0x4881x24);this[_0x955e[173]][_0x955e[24]][_0x955e[23]]=_0x955e[26];this[_0x955e[173]][_0x955e[24]][_0x955e[175]]=_0x955e[176];this[_0x955e[173]][_0x955e[24]][_0x955e[177]]=_0x955e[176];this[_0x955e[173]][_0x955e[24]][_0x955e[178]]=_0x955e[179];if(!mxClient[_0x955e[141]]){this[_0x955e[173]][_0x955e[100]](_0x955e[180],mxResources[_0x955e[93]](_0x955e[17]));mxEvent[_0x955e[181]](this[_0x955e[173]],this[_0x955e[46]],this[_0x955e[119]]);};this[_0x955e[173]][_0x955e[24]][_0x955e[182]]=_0x955e[183];mxEvent[_0x955e[185]](this[_0x955e[173]],mxUtils[_0x955e[27]](this,function(_0x4881x19){this[_0x955e[46]][_0x955e[29]][_0x955e[114]]();var _0x4881x22=mxUtils[_0x955e[163]](this[_0x955e[46]][_0x955e[25]],mxEvent[_0x955e[130]](_0x4881x19),mxEvent[_0x955e[131]](_0x4881x19));this[_0x955e[46]][_0x955e[11]][_0x955e[49]](this[_0x955e[119]],_0x4881x22[_0x955e[164]],_0x4881x22[_0x955e[165]]);this[_0x955e[46]][_0x955e[184]]=true;mxEvent[_0x955e[133]](_0x4881x19);}));this[_0x955e[46]][_0x955e[25]][_0x955e[186]](this[_0x955e[173]]);};this[_0x955e[187]]();};var _0x4881x26=mxVertexHandler[_0x955e[16]][_0x955e[188]];mxVertexHandler[_0x955e[16]][_0x955e[188]]=function(){_0x4881x26[_0x955e[15]](this);this[_0x955e[187]]();};mxVertexHandler[_0x955e[16]][_0x955e[187]]=function(){if(this[_0x955e[119]]!=null&&this[_0x955e[173]]!=null){if(mxVertexHandler[_0x955e[16]][_0x955e[189]]){this[_0x955e[173]][_0x955e[24]][_0x955e[190]]=(this[_0x955e[119]][_0x955e[164]]+this[_0x955e[119]][_0x955e[175]]-this[_0x955e[173]][_0x955e[191]]/2)+_0x955e[192];this[_0x955e[173]][_0x955e[24]][_0x955e[193]]=(this[_0x955e[119]][_0x955e[165]]-this[_0x955e[173]][_0x955e[194]]/2)+_0x955e[192];}else {this[_0x955e[173]][_0x955e[24]][_0x955e[190]]=(this[_0x955e[119]][_0x955e[164]]+this[_0x955e[119]][_0x955e[175]]+mxConstants[_0x955e[139]]/2+4)+_0x955e[192];this[_0x955e[173]][_0x955e[24]][_0x955e[193]]=(this[_0x955e[119]][_0x955e[165]]+(this[_0x955e[119]][_0x955e[177]]-this[_0x955e[173]][_0x955e[194]])/2)+_0x955e[192];}}};var _0x4881x27=mxVertexHandler[_0x955e[16]][_0x955e[195]];mxVertexHandler[_0x955e[16]][_0x955e[195]]=function(_0x4881x18,_0x4881xb){_0x4881x27[_0x955e[15]](this,arguments);if(this[_0x955e[173]]!=null){this[_0x955e[173]][_0x955e[197]][_0x955e[196]](this[_0x955e[173]]);this[_0x955e[173]]=null;};}; new Image()[_0x955e[169]]=_0x4881x24;}else {var _0x4881x28= new mxImage(IMAGE_PATH+_0x955e[198],15,15);mxConnectionHandler[_0x955e[16]][_0x955e[199]]=_0x4881x28; new Image()[_0x955e[169]]=_0x4881x28[_0x955e[169]];if(urlParams[_0x955e[17]]==_0x955e[18]){var _0x4881x28= new mxImage(IMAGE_PATH+_0x955e[198],15,15);var _0x4881x25=mxVertexHandler[_0x955e[16]][_0x955e[171]];mxVertexHandler[_0x955e[16]][_0x955e[171]]=function(){_0x4881x25[_0x955e[15]](this,arguments);if(showConnectorImg&&this[_0x955e[46]][_0x955e[11]][_0x955e[111]]()&&this[_0x955e[46]][_0x955e[172]](this[_0x955e[119]][_0x955e[51]])&&!this[_0x955e[46]][_0x955e[84]](this[_0x955e[119]][_0x955e[51]])&&this[_0x955e[46]][_0x955e[53]]()==1){if(mxClient[_0x955e[200]]&&!mxClient[_0x955e[201]]){this[_0x955e[173]]=document[_0x955e[104]](_0x955e[202]);this[_0x955e[173]][_0x955e[24]][_0x955e[203]]=_0x955e[204]+_0x4881x28[_0x955e[169]]+_0x955e[205];this[_0x955e[173]][_0x955e[24]][_0x955e[206]]=_0x955e[207];this[_0x955e[173]][_0x955e[24]][_0x955e[208]]=_0x955e[209];this[_0x955e[173]][_0x955e[24]][_0x955e[175]]=(_0x4881x28[_0x955e[175]]+4)+_0x955e[192];this[_0x955e[173]][_0x955e[24]][_0x955e[177]]=(_0x4881x28[_0x955e[177]]+4)+_0x955e[192];this[_0x955e[173]][_0x955e[24]][_0x955e[210]]=(mxClient[_0x955e[211]])?_0x955e[212]:_0x955e[213];}else {this[_0x955e[173]]=mxUtils[_0x955e[174]](_0x4881x28[_0x955e[169]]);this[_0x955e[173]][_0x955e[24]][_0x955e[175]]=_0x4881x28[_0x955e[175]]+_0x955e[192];this[_0x955e[173]][_0x955e[24]][_0x955e[177]]=_0x4881x28[_0x955e[177]]+_0x955e[192];};this[_0x955e[173]][_0x955e[24]][_0x955e[23]]=_0x955e[26];this[_0x955e[173]][_0x955e[24]][_0x955e[178]]=_0x955e[179];this[_0x955e[173]][_0x955e[100]](_0x955e[180],mxResources[_0x955e[93]](_0x955e[17]));mxEvent[_0x955e[181]](this[_0x955e[173]],this[_0x955e[46]],this[_0x955e[119]]);this[_0x955e[173]][_0x955e[24]][_0x955e[182]]=_0x955e[183];mxEvent[_0x955e[28]](this[_0x955e[173]],_0x955e[214],mxUtils[_0x955e[27]](this,function(_0x4881x19){this[_0x955e[46]][_0x955e[29]][_0x955e[114]]();var _0x4881x22=mxUtils[_0x955e[163]](this[_0x955e[46]][_0x955e[25]],mxEvent[_0x955e[130]](_0x4881x19),mxEvent[_0x955e[131]](_0x4881x19));this[_0x955e[46]][_0x955e[11]][_0x955e[49]](this[_0x955e[119]],_0x4881x22[_0x955e[164]],_0x4881x22[_0x955e[165]]);this[_0x955e[46]][_0x955e[184]]=true;mxEvent[_0x955e[133]](_0x4881x19);}));this[_0x955e[46]][_0x955e[25]][_0x955e[186]](this[_0x955e[173]]);};this[_0x955e[187]]();};var _0x4881x26=mxVertexHandler[_0x955e[16]][_0x955e[188]];mxVertexHandler[_0x955e[16]][_0x955e[188]]=function(){_0x4881x26[_0x955e[15]](this);this[_0x955e[187]]();};mxVertexHandler[_0x955e[16]][_0x955e[187]]=function(){if(this[_0x955e[119]]!=null&&this[_0x955e[173]]!=null){if(mxVertexHandler[_0x955e[16]][_0x955e[189]]){this[_0x955e[173]][_0x955e[24]][_0x955e[190]]=(this[_0x955e[119]][_0x955e[164]]+this[_0x955e[119]][_0x955e[175]]-this[_0x955e[173]][_0x955e[191]]/2)+_0x955e[192];this[_0x955e[173]][_0x955e[24]][_0x955e[193]]=(this[_0x955e[119]][_0x955e[165]]-this[_0x955e[173]][_0x955e[194]]/2)+_0x955e[192];}else {this[_0x955e[173]][_0x955e[24]][_0x955e[190]]=(this[_0x955e[119]][_0x955e[164]]+this[_0x955e[119]][_0x955e[175]]+mxConstants[_0x955e[139]]/2+2)+_0x955e[192];this[_0x955e[173]][_0x955e[24]][_0x955e[193]]=(this[_0x955e[119]][_0x955e[165]]+(this[_0x955e[119]][_0x955e[177]]-this[_0x955e[173]][_0x955e[194]])/2)+_0x955e[192];}}};var _0x4881x27=mxVertexHandler[_0x955e[16]][_0x955e[195]];mxVertexHandler[_0x955e[16]][_0x955e[195]]=function(_0x4881x18,_0x4881xb){_0x4881x27[_0x955e[15]](this,arguments);if(this[_0x955e[173]]!=null){this[_0x955e[173]][_0x955e[197]][_0x955e[196]](this[_0x955e[173]]);this[_0x955e[173]]=null;};};};};})();
\ No newline at end of file
+var _0xa1c5=["\x63\x61\x6C\x6C","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x61\x70\x70\x6C\x79","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x32","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6C\x6F\x61\x64\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x63\x75\x72\x73\x6F\x72","\x73\x74\x79\x6C\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x76\x69\x65\x77","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x68\x74\x6D\x6C","\x31","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x77\x72\x61\x70","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x61\x63\x74\x69\x76\x65","\x67\x72\x61\x70\x68","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x73\x74\x61\x72\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x6E\x69\x74\x54\x6F\x75\x63\x68","\x65\x78\x74\x65\x6E\x64","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x2F\x64\x65\x66\x61\x75\x6C\x74\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x64\x65\x63\x6F\x64\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x45\x4C\x42\x4F\x57\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x72\x6F\x75\x70","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","","\x69\x73\x56\x65\x72\x74\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x5F","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x67\x65\x74","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x6F\x62\x6A\x65\x63\x74","\x6C\x61\x62\x65\x6C","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x55\x73\x65\x72\x4F\x62\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6E\x6B","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x61\x72\x6B\x65\x72","\x66\x69\x72\x73\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x73\x74\x61\x74\x65","\x73\x68\x61\x70\x65","\x6E\x6F\x64\x65","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x78","\x79","\x2F\x74\x6F\x75\x63\x68\x2D\x68\x61\x6E\x64\x6C\x65\x2E\x70\x6E\x67","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x72\x63","\x2F\x74\x6F\x75\x63\x68\x2D\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x69\x6E\x69\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x49\x6D\x67","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x32\x39\x70\x78","\x68\x65\x69\x67\x68\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x74\x69\x74\x6C\x65","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x70\x61\x64\x64\x69\x6E\x67","\x32\x70\x78","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x65\x64\x72\x61\x77\x54\x6F\x6F\x6C\x73","\x72\x65\x64\x72\x61\x77","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x78","\x74\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x2F\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x49\x53\x5F\x49\x45","\x49\x53\x5F\x53\x56\x47","\x64\x69\x76","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x65\x6E\x74\x65\x72","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E"];Graph=function(_0x8762x1,_0x8762x2,_0x8762x3,_0x8762x4){mxGraph[_0xa1c5[0]](this,_0x8762x1,_0x8762x2,_0x8762x3,_0x8762x4);this[_0xa1c5[1]](true);this[_0xa1c5[2]](false);this[_0xa1c5[3]](true);this[_0xa1c5[4]](!mxClient.IS_TOUCH);this[_0xa1c5[5]](false);this[_0xa1c5[6]](false);this[_0xa1c5[7]]=true;this[_0xa1c5[8]]=false;this[_0xa1c5[9]]=false;this[_0xa1c5[11]][_0xa1c5[10]]=true;this[_0xa1c5[12]](false);this[_0xa1c5[11]][_0xa1c5[13]](false);this[_0xa1c5[11]][_0xa1c5[14]]=function(){return mxConnectionHandler[_0xa1c5[16]][_0xa1c5[14]][_0xa1c5[15]](this,arguments)&&urlParams[_0xa1c5[17]]!=_0xa1c5[18]};this[_0xa1c5[19]]=_0xa1c5[20];if(_0x8762x4==null){this[_0xa1c5[21]]()};var _0x8762x5= new mxRubberband(this);this[_0xa1c5[22]]=function(){return _0x8762x5};this[_0xa1c5[29]][_0xa1c5[28]](mxEvent.PAN_START,mxUtils[_0xa1c5[27]](this,function(){this[_0xa1c5[25]][_0xa1c5[24]][_0xa1c5[23]]=_0xa1c5[26]}));this[_0xa1c5[29]][_0xa1c5[28]](mxEvent.PAN_END,mxUtils[_0xa1c5[27]](this,function(){this[_0xa1c5[25]][_0xa1c5[24]][_0xa1c5[23]]=_0xa1c5[30]}));this[_0xa1c5[31]]=function(_0x8762x6){var _0x8762x7=this[_0xa1c5[33]][_0xa1c5[32]](_0x8762x6);var _0x8762x8=(_0x8762x7!=null)?_0x8762x7[_0xa1c5[24]]:this[_0xa1c5[34]](_0x8762x6);return _0x8762x8[_0xa1c5[35]]==_0xa1c5[36]||_0x8762x8[_0xa1c5[37]]==_0xa1c5[38];};this[_0xa1c5[40]][_0xa1c5[39]]=function(_0x8762x7){var _0x8762x9=mxCellRenderer[_0xa1c5[16]][_0xa1c5[39]][_0xa1c5[15]](this,arguments);if(_0x8762x7[_0xa1c5[24]][_0xa1c5[37]]==_0xa1c5[38]&&_0x8762x7[_0xa1c5[24]][_0xa1c5[35]]!=1){_0x8762x9=mxUtils[_0xa1c5[41]](_0x8762x9,false)};return _0x8762x9;};this[_0xa1c5[42]]=function(_0x8762x6){return false};this[_0xa1c5[11]][_0xa1c5[43]]=16;var _0x8762xa=this[_0xa1c5[11]][_0xa1c5[44]];this[_0xa1c5[11]][_0xa1c5[44]]=function(_0x8762xb,_0x8762x7){if(_0x8762x7==null){if(!this[_0xa1c5[46]][_0xa1c5[29]][_0xa1c5[45]]){_0x8762x5[_0xa1c5[49]](_0x8762xb[_0xa1c5[47]](),_0x8762xb[_0xa1c5[48]]());this[_0xa1c5[46]][_0xa1c5[29]][_0xa1c5[50]]=false;}}else {if(tapAndHoldStartsConnection){_0x8762xa[_0xa1c5[15]](this,arguments)}else {if(this[_0xa1c5[46]][_0xa1c5[52]](_0x8762x7[_0xa1c5[51]])&&this[_0xa1c5[46]][_0xa1c5[53]]()>1){this[_0xa1c5[46]][_0xa1c5[54]](_0x8762x7[_0xa1c5[51]])}}}};if(touchStyle){this[_0xa1c5[55]]()};};mxUtils[_0xa1c5[56]](Graph,mxGraph);Graph[_0xa1c5[16]][_0xa1c5[57]]=null;Graph[_0xa1c5[16]][_0xa1c5[58]]=null;Graph[_0xa1c5[16]][_0xa1c5[21]]=function(){var _0x8762xc=mxUtils[_0xa1c5[61]](STYLE_PATH+_0xa1c5[60])[_0xa1c5[59]]();var _0x8762xd= new mxCodec(_0x8762xc[_0xa1c5[62]]);_0x8762xd[_0xa1c5[64]](_0x8762xc,this[_0xa1c5[63]]());};Graph[_0xa1c5[16]][_0xa1c5[65]]=function(_0x8762xe){if(_0x8762xe!=null){var _0x8762x7=this[_0xa1c5[33]][_0xa1c5[32]](_0x8762xe);var _0x8762x8=(_0x8762x7!=null)?_0x8762x7[_0xa1c5[24]]:this[_0xa1c5[34]](_0x8762xe);if(_0x8762x8!=null){var _0x8762xf=mxUtils[_0xa1c5[66]](_0x8762x8,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL);var _0x8762x10=(_0x8762xf==mxConstants[_0xa1c5[67]])?mxConstants[_0xa1c5[68]]:mxConstants[_0xa1c5[67]];this[_0xa1c5[69]](mxConstants.STYLE_ELBOW,_0x8762x10,[_0x8762xe]);};}};Graph[_0xa1c5[16]][_0xa1c5[70]]=function(_0x8762x6){if(_0x8762x6!=null&&this[_0xa1c5[72]]()[_0xa1c5[71]](_0x8762x6)){var _0x8762x11=this[_0xa1c5[72]]()[_0xa1c5[73]]([_0x8762x6])[0];if(_0x8762x11[_0xa1c5[74]]!=null){_0x8762x11[_0xa1c5[74]][_0xa1c5[75]]=null};var _0x8762x8=_0x8762x11[_0xa1c5[76]]();_0x8762x8=mxUtils[_0xa1c5[77]](_0x8762x8,mxConstants.STYLE_ENTRY_X,null);_0x8762x8=mxUtils[_0xa1c5[77]](_0x8762x8,mxConstants.STYLE_ENTRY_Y,null);_0x8762x8=mxUtils[_0xa1c5[77]](_0x8762x8,mxConstants.STYLE_EXIT_X,null);_0x8762x8=mxUtils[_0xa1c5[77]](_0x8762x8,mxConstants.STYLE_EXIT_Y,null);_0x8762x11[_0xa1c5[77]](_0x8762x8);this[_0xa1c5[11]][_0xa1c5[78]]=function(_0x8762xb){return this[_0xa1c5[46]][_0xa1c5[33]][_0xa1c5[79]](_0x8762x11)};this[_0xa1c5[11]][_0xa1c5[80]]=function(){return this[_0xa1c5[46]][_0xa1c5[73]]([_0x8762x11])[0]};}};Graph[_0xa1c5[16]][_0xa1c5[81]]=function(_0x8762x6){return this[_0xa1c5[82]]&&this[_0xa1c5[83]](_0x8762x6)};Graph[_0xa1c5[16]][_0xa1c5[84]]=function(_0x8762x6){return this[_0xa1c5[83]](_0x8762x6)};Graph[_0xa1c5[16]][_0xa1c5[85]]=function(){var _0x8762x12=mxGraph[_0xa1c5[16]][_0xa1c5[85]][_0xa1c5[15]](this,arguments);_0x8762x12[_0xa1c5[77]](_0xa1c5[86]);return _0x8762x12;};Graph[_0xa1c5[16]][_0xa1c5[87]]=function(_0x8762x6){var _0x8762x13=_0xa1c5[88];if(this[_0xa1c5[72]]()[_0xa1c5[89]](_0x8762x6)){_0x8762x13+=mxResources[_0xa1c5[93]](_0xa1c5[90]+_0x8762x6[_0xa1c5[92]][_0xa1c5[91]])}else {if(this[_0xa1c5[72]]()[_0xa1c5[71]](_0x8762x6)){_0x8762x13=mxGraph[_0xa1c5[16]][_0xa1c5[87]][_0xa1c5[15]](this,arguments)}};return _0x8762x13;};Graph[_0xa1c5[16]][_0xa1c5[94]]=function(_0x8762x6){if(_0x8762x6[_0xa1c5[92]]!=null&& typeof (_0x8762x6[_0xa1c5[92]])==_0xa1c5[95]){return _0x8762x6[_0xa1c5[92]][_0xa1c5[97]](_0xa1c5[96])};return mxGraph[_0xa1c5[16]][_0xa1c5[94]][_0xa1c5[15]](this,arguments);};Graph[_0xa1c5[16]][_0xa1c5[98]]=function(_0x8762x6,_0x8762x10,_0x8762x14){if(_0x8762x6[_0xa1c5[92]]!=null&& typeof (_0x8762x6[_0xa1c5[92]])==_0xa1c5[95]){var _0x8762x15=_0x8762x6[_0xa1c5[92]][_0xa1c5[99]](true);_0x8762x15[_0xa1c5[100]](_0xa1c5[96],_0x8762x10);_0x8762x10=_0x8762x15;};mxGraph[_0xa1c5[16]][_0xa1c5[98]][_0xa1c5[15]](this,arguments);};Graph[_0xa1c5[16]][_0xa1c5[101]]=function(_0x8762x6,_0x8762x16){var _0x8762x10=null;if(_0x8762x6[_0xa1c5[92]]!=null&& typeof (_0x8762x6[_0xa1c5[92]])==_0xa1c5[95]){_0x8762x10=_0x8762x6[_0xa1c5[92]][_0xa1c5[99]](true)}else {var _0x8762x17=mxUtils[_0xa1c5[102]]();_0x8762x10=_0x8762x17[_0xa1c5[104]](_0xa1c5[103]);_0x8762x10[_0xa1c5[100]](_0xa1c5[96],_0x8762x6[_0xa1c5[92]]);};if(_0x8762x16!=null&&_0x8762x16[_0xa1c5[105]]>0){_0x8762x10[_0xa1c5[100]](_0xa1c5[106],_0x8762x16)}else {_0x8762x10[_0xa1c5[107]](_0xa1c5[106])};this[_0xa1c5[109]][_0xa1c5[108]](_0x8762x6,_0x8762x10);};Graph[_0xa1c5[16]][_0xa1c5[110]]=function(_0x8762x6){if(_0x8762x6[_0xa1c5[92]]!=null&& typeof (_0x8762x6[_0xa1c5[92]])==_0xa1c5[95]){return _0x8762x6[_0xa1c5[92]][_0xa1c5[97]](_0xa1c5[106])};return null;};Graph[_0xa1c5[16]][_0xa1c5[55]]=function(){this[_0xa1c5[11]][_0xa1c5[112]][_0xa1c5[111]]=function(){return this[_0xa1c5[46]][_0xa1c5[11]][_0xa1c5[113]]!=null};this[_0xa1c5[28]](mxEvent.START_EDITING,function(_0x8762x18,_0x8762x19){this[_0xa1c5[29]][_0xa1c5[114]]()});var _0x8762x1a=false;var _0x8762x1b=null;this[_0xa1c5[115]]=function(_0x8762xb){mxGraph[_0xa1c5[16]][_0xa1c5[115]][_0xa1c5[15]](this,arguments);if(_0x8762xb[_0xa1c5[32]]()==null){var _0x8762x6=this[_0xa1c5[118]](_0x8762xb[_0xa1c5[116]],_0x8762xb[_0xa1c5[117]]);if(this[_0xa1c5[72]]()[_0xa1c5[71]](_0x8762x6)){_0x8762xb[_0xa1c5[119]]=this[_0xa1c5[33]][_0xa1c5[32]](_0x8762x6);if(_0x8762xb[_0xa1c5[119]]!=null&&_0x8762xb[_0xa1c5[119]][_0xa1c5[120]]!=null){this[_0xa1c5[25]][_0xa1c5[24]][_0xa1c5[23]]=_0x8762xb[_0xa1c5[119]][_0xa1c5[120]][_0xa1c5[121]][_0xa1c5[24]][_0xa1c5[23]]};};};if(_0x8762xb[_0xa1c5[32]]()==null){this[_0xa1c5[25]][_0xa1c5[24]][_0xa1c5[23]]=_0xa1c5[30]};};this[_0xa1c5[122]]=function(_0x8762x1c,_0x8762xb,_0x8762x18){if(_0x8762x1c==mxEvent[_0xa1c5[123]]){if(!this[_0xa1c5[29]][_0xa1c5[124]]()){_0x8762x1b=_0x8762xb[_0xa1c5[125]]();_0x8762x1a=(_0x8762x1b!=null)?this[_0xa1c5[52]](_0x8762x1b):this[_0xa1c5[126]]();}else {_0x8762x1a=false;_0x8762x1b=null;}}else {if(_0x8762x1c==mxEvent[_0xa1c5[127]]){if(_0x8762x1a&&!this[_0xa1c5[128]]()){if(!this[_0xa1c5[29]][_0xa1c5[124]]()){var _0x8762x1d=mxEvent[_0xa1c5[130]](_0x8762xb[_0xa1c5[129]]());var _0x8762x1e=mxEvent[_0xa1c5[131]](_0x8762xb[_0xa1c5[129]]());this[_0xa1c5[29]][_0xa1c5[132]](_0x8762x1d+16,_0x8762x1e,_0x8762x1b,_0x8762xb[_0xa1c5[129]]());};_0x8762x1a=false;_0x8762x1b=null;_0x8762xb[_0xa1c5[133]]();return ;};_0x8762x1a=false;_0x8762x1b=null;}};mxGraph[_0xa1c5[16]][_0xa1c5[122]][_0xa1c5[15]](this,arguments);if(_0x8762x1c==mxEvent[_0xa1c5[134]]&&_0x8762xb[_0xa1c5[135]]()){_0x8762x1a=false;_0x8762x1b=null;};};};(function(){mxVertexHandler[_0xa1c5[16]][_0xa1c5[136]]=true;mxText[_0xa1c5[16]][_0xa1c5[137]]=5;mxText[_0xa1c5[16]][_0xa1c5[138]]=1;if(touchStyle){mxConstants[_0xa1c5[139]]=16;mxConstants[_0xa1c5[140]]=7;if(mxClient[_0xa1c5[141]]){mxVertexHandler[_0xa1c5[16]][_0xa1c5[142]]=4;mxEdgeHandler[_0xa1c5[16]][_0xa1c5[142]]=6;Graph[_0xa1c5[16]][_0xa1c5[142]]=14;Graph[_0xa1c5[16]][_0xa1c5[143]]=20;mxPanningHandler[_0xa1c5[16]][_0xa1c5[144]]=false;mxPanningHandler[_0xa1c5[16]][_0xa1c5[145]]=true;mxPanningHandler[_0xa1c5[16]][_0xa1c5[146]]=function(_0x8762xb){var _0x8762x19=_0x8762xb[_0xa1c5[129]]();return (this[_0xa1c5[145]]&&(this[_0xa1c5[147]]||_0x8762xb[_0xa1c5[32]]()==null))||(mxEvent[_0xa1c5[148]](_0x8762x19)&&mxEvent[_0xa1c5[149]](_0x8762x19))||(this[_0xa1c5[150]]&&mxEvent[_0xa1c5[151]](_0x8762x19));};};var _0x8762x1f=mxGraphHandler[_0xa1c5[16]][_0xa1c5[152]];mxGraphHandler[_0xa1c5[16]][_0xa1c5[152]]=function(_0x8762x18,_0x8762xb){_0x8762x1f[_0xa1c5[15]](this,arguments);if(this[_0xa1c5[46]][_0xa1c5[52]](_0x8762xb[_0xa1c5[125]]())&&this[_0xa1c5[46]][_0xa1c5[53]]()>1){this[_0xa1c5[153]]=false};};Graph[_0xa1c5[16]][_0xa1c5[154]]=function(_0x8762x1){this[_0xa1c5[155]]= new mxTooltipHandler(this);this[_0xa1c5[155]][_0xa1c5[156]](false);this[_0xa1c5[157]]= new mxSelectionCellsHandler(this);this[_0xa1c5[29]]= new mxPanningHandler(this);this[_0xa1c5[29]][_0xa1c5[158]]=false;this[_0xa1c5[11]]= new mxConnectionHandler(this);this[_0xa1c5[11]][_0xa1c5[156]](false);this[_0xa1c5[159]]= new mxGraphHandler(this);};mxConnectionHandler[_0xa1c5[16]][_0xa1c5[160]]=function(_0x8762xe,_0x8762x20){if(touchStyle&&_0x8762x20!=null){this[_0xa1c5[46]][_0xa1c5[161]](_0x8762x20)}else {this[_0xa1c5[46]][_0xa1c5[161]](_0x8762xe)}};var _0x8762x21=mxGraph[_0xa1c5[16]][_0xa1c5[162]];Graph[_0xa1c5[16]][_0xa1c5[162]]=function(_0x8762x19,_0x8762x6){if(_0x8762x6==null){var _0x8762x22=mxUtils[_0xa1c5[163]](this[_0xa1c5[25]],mxEvent[_0xa1c5[130]](_0x8762x19),mxEvent[_0xa1c5[131]](_0x8762x19));_0x8762x6=this[_0xa1c5[118]](_0x8762x22[_0xa1c5[164]],_0x8762x22[_0xa1c5[165]]);};_0x8762x21[_0xa1c5[0]](this,_0x8762x19,_0x8762x6);};var _0x8762x23= new mxImage(IMAGE_PATH+_0xa1c5[166],16,16);mxVertexHandler[_0xa1c5[16]][_0xa1c5[167]]=_0x8762x23;mxEdgeHandler[_0xa1c5[16]][_0xa1c5[167]]=_0x8762x23;mxOutline[_0xa1c5[16]][_0xa1c5[168]]=_0x8762x23; new Image()[_0xa1c5[169]]=_0x8762x23[_0xa1c5[169]];var _0x8762x24=IMAGE_PATH+_0xa1c5[170];var _0x8762x25=mxVertexHandler[_0xa1c5[16]][_0xa1c5[171]];mxVertexHandler[_0xa1c5[16]][_0xa1c5[171]]=function(){_0x8762x25[_0xa1c5[15]](this,arguments);if(showConnectorImg&&this[_0xa1c5[46]][_0xa1c5[11]][_0xa1c5[111]]()&&this[_0xa1c5[46]][_0xa1c5[172]](this[_0xa1c5[119]][_0xa1c5[51]])&&!this[_0xa1c5[46]][_0xa1c5[84]](this[_0xa1c5[119]][_0xa1c5[51]])&&this[_0xa1c5[46]][_0xa1c5[53]]()==1){this[_0xa1c5[173]]=mxUtils[_0xa1c5[174]](_0x8762x24);this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[23]]=_0xa1c5[26];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[175]]=_0xa1c5[176];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[177]]=_0xa1c5[176];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[178]]=_0xa1c5[179];if(!mxClient[_0xa1c5[141]]){this[_0xa1c5[173]][_0xa1c5[100]](_0xa1c5[180],mxResources[_0xa1c5[93]](_0xa1c5[17]));mxEvent[_0xa1c5[181]](this[_0xa1c5[173]],this[_0xa1c5[46]],this[_0xa1c5[119]]);};this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[182]]=_0xa1c5[183];mxEvent[_0xa1c5[185]](this[_0xa1c5[173]],mxUtils[_0xa1c5[27]](this,function(_0x8762x19){this[_0xa1c5[46]][_0xa1c5[29]][_0xa1c5[114]]();var _0x8762x22=mxUtils[_0xa1c5[163]](this[_0xa1c5[46]][_0xa1c5[25]],mxEvent[_0xa1c5[130]](_0x8762x19),mxEvent[_0xa1c5[131]](_0x8762x19));this[_0xa1c5[46]][_0xa1c5[11]][_0xa1c5[49]](this[_0xa1c5[119]],_0x8762x22[_0xa1c5[164]],_0x8762x22[_0xa1c5[165]]);this[_0xa1c5[46]][_0xa1c5[184]]=true;mxEvent[_0xa1c5[133]](_0x8762x19);}));this[_0xa1c5[46]][_0xa1c5[25]][_0xa1c5[186]](this[_0xa1c5[173]]);};this[_0xa1c5[187]]();};var _0x8762x26=mxVertexHandler[_0xa1c5[16]][_0xa1c5[188]];mxVertexHandler[_0xa1c5[16]][_0xa1c5[188]]=function(){_0x8762x26[_0xa1c5[15]](this);this[_0xa1c5[187]]();};mxVertexHandler[_0xa1c5[16]][_0xa1c5[187]]=function(){if(this[_0xa1c5[119]]!=null&&this[_0xa1c5[173]]!=null){if(mxVertexHandler[_0xa1c5[16]][_0xa1c5[189]]){this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[190]]=(this[_0xa1c5[119]][_0xa1c5[164]]+this[_0xa1c5[119]][_0xa1c5[175]]-this[_0xa1c5[173]][_0xa1c5[191]]/2)+_0xa1c5[192];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[193]]=(this[_0xa1c5[119]][_0xa1c5[165]]-this[_0xa1c5[173]][_0xa1c5[194]]/2)+_0xa1c5[192];}else {this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[190]]=(this[_0xa1c5[119]][_0xa1c5[164]]+this[_0xa1c5[119]][_0xa1c5[175]]+mxConstants[_0xa1c5[139]]/2+4)+_0xa1c5[192];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[193]]=(this[_0xa1c5[119]][_0xa1c5[165]]+(this[_0xa1c5[119]][_0xa1c5[177]]-this[_0xa1c5[173]][_0xa1c5[194]])/2)+_0xa1c5[192];}}};var _0x8762x27=mxVertexHandler[_0xa1c5[16]][_0xa1c5[195]];mxVertexHandler[_0xa1c5[16]][_0xa1c5[195]]=function(_0x8762x18,_0x8762xb){_0x8762x27[_0xa1c5[15]](this,arguments);if(this[_0xa1c5[173]]!=null){this[_0xa1c5[173]][_0xa1c5[197]][_0xa1c5[196]](this[_0xa1c5[173]]);this[_0xa1c5[173]]=null;};}; new Image()[_0xa1c5[169]]=_0x8762x24;}else {var _0x8762x28= new mxImage(IMAGE_PATH+_0xa1c5[198],15,15);mxConnectionHandler[_0xa1c5[16]][_0xa1c5[199]]=_0x8762x28; new Image()[_0xa1c5[169]]=_0x8762x28[_0xa1c5[169]];if(urlParams[_0xa1c5[17]]==_0xa1c5[18]){var _0x8762x28= new mxImage(IMAGE_PATH+_0xa1c5[198],15,15);var _0x8762x25=mxVertexHandler[_0xa1c5[16]][_0xa1c5[171]];mxVertexHandler[_0xa1c5[16]][_0xa1c5[171]]=function(){_0x8762x25[_0xa1c5[15]](this,arguments);if(showConnectorImg&&this[_0xa1c5[46]][_0xa1c5[11]][_0xa1c5[111]]()&&this[_0xa1c5[46]][_0xa1c5[172]](this[_0xa1c5[119]][_0xa1c5[51]])&&!this[_0xa1c5[46]][_0xa1c5[84]](this[_0xa1c5[119]][_0xa1c5[51]])&&this[_0xa1c5[46]][_0xa1c5[53]]()==1){if(mxClient[_0xa1c5[200]]&&!mxClient[_0xa1c5[201]]){this[_0xa1c5[173]]=document[_0xa1c5[104]](_0xa1c5[202]);this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[203]]=_0xa1c5[204]+_0x8762x28[_0xa1c5[169]]+_0xa1c5[205];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[206]]=_0xa1c5[207];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[208]]=_0xa1c5[209];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[175]]=(_0x8762x28[_0xa1c5[175]]+4)+_0xa1c5[192];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[177]]=(_0x8762x28[_0xa1c5[177]]+4)+_0xa1c5[192];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[210]]=(mxClient[_0xa1c5[211]])?_0xa1c5[212]:_0xa1c5[213];}else {this[_0xa1c5[173]]=mxUtils[_0xa1c5[174]](_0x8762x28[_0xa1c5[169]]);this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[175]]=_0x8762x28[_0xa1c5[175]]+_0xa1c5[192];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[177]]=_0x8762x28[_0xa1c5[177]]+_0xa1c5[192];};this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[23]]=_0xa1c5[26];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[178]]=_0xa1c5[179];this[_0xa1c5[173]][_0xa1c5[100]](_0xa1c5[180],mxResources[_0xa1c5[93]](_0xa1c5[17]));mxEvent[_0xa1c5[181]](this[_0xa1c5[173]],this[_0xa1c5[46]],this[_0xa1c5[119]]);this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[182]]=_0xa1c5[183];mxEvent[_0xa1c5[28]](this[_0xa1c5[173]],_0xa1c5[214],mxUtils[_0xa1c5[27]](this,function(_0x8762x19){this[_0xa1c5[46]][_0xa1c5[29]][_0xa1c5[114]]();var _0x8762x22=mxUtils[_0xa1c5[163]](this[_0xa1c5[46]][_0xa1c5[25]],mxEvent[_0xa1c5[130]](_0x8762x19),mxEvent[_0xa1c5[131]](_0x8762x19));this[_0xa1c5[46]][_0xa1c5[11]][_0xa1c5[49]](this[_0xa1c5[119]],_0x8762x22[_0xa1c5[164]],_0x8762x22[_0xa1c5[165]]);this[_0xa1c5[46]][_0xa1c5[184]]=true;mxEvent[_0xa1c5[133]](_0x8762x19);}));this[_0xa1c5[46]][_0xa1c5[25]][_0xa1c5[186]](this[_0xa1c5[173]]);};this[_0xa1c5[187]]();};var _0x8762x26=mxVertexHandler[_0xa1c5[16]][_0xa1c5[188]];mxVertexHandler[_0xa1c5[16]][_0xa1c5[188]]=function(){_0x8762x26[_0xa1c5[15]](this);this[_0xa1c5[187]]();};mxVertexHandler[_0xa1c5[16]][_0xa1c5[187]]=function(){if(this[_0xa1c5[119]]!=null&&this[_0xa1c5[173]]!=null){if(mxVertexHandler[_0xa1c5[16]][_0xa1c5[189]]){this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[190]]=(this[_0xa1c5[119]][_0xa1c5[164]]+this[_0xa1c5[119]][_0xa1c5[175]]-this[_0xa1c5[173]][_0xa1c5[191]]/2)+_0xa1c5[192];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[193]]=(this[_0xa1c5[119]][_0xa1c5[165]]-this[_0xa1c5[173]][_0xa1c5[194]]/2)+_0xa1c5[192];}else {this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[190]]=(this[_0xa1c5[119]][_0xa1c5[164]]+this[_0xa1c5[119]][_0xa1c5[175]]+mxConstants[_0xa1c5[139]]/2+2)+_0xa1c5[192];this[_0xa1c5[173]][_0xa1c5[24]][_0xa1c5[193]]=(this[_0xa1c5[119]][_0xa1c5[165]]+(this[_0xa1c5[119]][_0xa1c5[177]]-this[_0xa1c5[173]][_0xa1c5[194]])/2)+_0xa1c5[192];}}};var _0x8762x27=mxVertexHandler[_0xa1c5[16]][_0xa1c5[195]];mxVertexHandler[_0xa1c5[16]][_0xa1c5[195]]=function(_0x8762x18,_0x8762xb){_0x8762x27[_0xa1c5[15]](this,arguments);if(this[_0xa1c5[173]]!=null){this[_0xa1c5[173]][_0xa1c5[197]][_0xa1c5[196]](this[_0xa1c5[173]]);this[_0xa1c5[173]]=null;};};};};})();
\ No newline at end of file
index 2081d4c..2442039 100644 (file)
@@ -1 +1 @@
-var _0x4dff=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x6D\x65\x6E\x75\x73","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x56\x65\x72\x64\x61\x6E\x61","\x54\x69\x6D\x65\x73\x20\x4E\x65\x77\x20\x52\x6F\x6D\x61\x6E","\x47\x61\x72\x61\x6D\x6F\x6E\x64","\x43\x6F\x6D\x69\x63\x20\x53\x61\x6E\x73\x20\x4D\x53","\x43\x6F\x75\x72\x69\x65\x72\x20\x4E\x65\x77","\x47\x65\x6F\x72\x67\x69\x61","\x4C\x75\x63\x69\x64\x61\x20\x43\x6F\x6E\x73\x6F\x6C\x65","\x54\x61\x68\x6F\x6D\x61","\x6C\x65\x6E\x67\x74\x68","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x73\x74\x79\x6C\x65\x43\x68\x61\x6E\x67\x65","\x73\x74\x79\x6C\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74","","\x70\x72\x6F\x6D\x70\x74\x43\x68\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x70\x75\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x28\x70\x74\x29","\x31\x32","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x70\x78","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x28\x70\x78\x29","\x31","\x6C\x69\x6E\x65","\x73\x74\x72\x61\x69\x67\x68\x74","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6D\x61\x6E\x75\x61\x6C","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x6D\x61\x74\x69\x63","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x63\x6C\x61\x73\x73\x69\x63","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x6F\x70\x65\x6E\x41\x72\x72\x6F\x77","\x41\x52\x52\x4F\x57\x5F\x4F\x50\x45\x4E","\x62\x6C\x6F\x63\x6B","\x41\x52\x52\x4F\x57\x5F\x42\x4C\x4F\x43\x4B","\x6F\x76\x61\x6C","\x41\x52\x52\x4F\x57\x5F\x4F\x56\x41\x4C","\x64\x69\x61\x6D\x6F\x6E\x64","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44\x5F\x54\x48\x49\x4E","\x6E\x6F\x6E\x65","\x4E\x4F\x4E\x45","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x65\x6E\x64\x46\x69\x6C\x6C","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x61\x64\x64\x49\x74\x65\x6D","\x73\x69\x7A\x65","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x73\x70\x61\x63\x69\x6E\x67","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x68\x61\x64\x6F\x77","\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x74\x6F\x70","\x30","\x72\x69\x67\x68\x74","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x67\x6C\x6F\x62\x61\x6C","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x74\x65\x78\x74","\x61\x64\x64\x53\x75\x62\x6D\x65\x6E\x75","\x2D","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D\x73","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x77\x6F\x72\x64\x57\x72\x61\x70","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x28\x25\x29","\x31\x30\x30","\x68\x69\x64\x65","\x6C\x65\x66\x74\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x63\x65\x6E\x74\x65\x72","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x72\x69\x67\x68\x74\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x74\x6F\x70\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x6D\x69\x64\x64\x6C\x65","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x62\x6F\x74\x74\x6F\x6D\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x74\x69\x6C\x74","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x6C\x69\x67\x6E","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x46\x6C\x6F\x77","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x61\x72\x72\x61\x6E\x67\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x76\x69\x65\x77","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x25","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x66\x69\x74\x50\x61\x67\x65","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x66\x69\x6C\x65","\x6E\x65\x77","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x41\x73","\x70\x75\x62\x6C\x69\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x65\x64\x69\x74\x46\x69\x6C\x65","\x70\x72\x69\x6E\x74","\x65\x64\x69\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x75\x74","\x63\x6F\x70\x79","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x68\x65\x6C\x70","\x61\x62\x6F\x75\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x65\x78\x65\x63\x75\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x20","\x70\x72\x6F\x6D\x70\x74","\x6C\x61\x62\x65\x6C","\x66\x75\x6E\x63\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x6D\x61\x72\x6B","\x61\x64\x64\x53\x68\x6F\x72\x74\x63\x75\x74","\x73\x68\x6F\x72\x74\x63\x75\x74","\x73\x70\x61\x6E","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x79","\x77\x72\x69\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x32\x70\x78\x20\x35\x30\x25","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x69\x73\x45\x64\x67\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x62\x65\x6E\x64\x73","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x69\x76","\x20\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x4D\x65\x6E\x75","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x61\x70\x70\x6C\x79","\x64\x65\x73\x74\x72\x6F\x79","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6C\x69\x63\x6B","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74"];Menus=function(_0x8ac9x1){this[_0x4dff[0]]=_0x8ac9x1;this[_0x4dff[1]]= new Object();this[_0x4dff[2]](); new Image()[_0x4dff[3]]=IMAGE_PATH+_0x4dff[4];};Menus[_0x4dff[5]][_0x4dff[2]]=function(){var _0x8ac9x2=this[_0x4dff[0]][_0x4dff[7]][_0x4dff[6]];this[_0x4dff[30]](_0x4dff[8], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){var _0x8ac9x5=[_0x4dff[9],_0x4dff[10],_0x4dff[11],_0x4dff[12],_0x4dff[13],_0x4dff[14],_0x4dff[15],_0x4dff[16],_0x4dff[17]];for(var _0x8ac9x6=0;_0x8ac9x6<_0x8ac9x5[_0x4dff[18]];_0x8ac9x6++){var _0x8ac9x7=this[_0x4dff[20]](_0x8ac9x3,_0x8ac9x5[_0x8ac9x6],[mxConstants[_0x4dff[19]]],[_0x8ac9x5[_0x8ac9x6]],null,_0x8ac9x4);_0x8ac9x7[_0x4dff[23]][_0x4dff[22]][_0x4dff[21]][_0x4dff[8]]=_0x8ac9x5[_0x8ac9x6];};_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[25]),_0x4dff[27],mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[31], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){var _0x8ac9x8=[6,8,9,10,11,12,14,18,24,36,48,72];for(var _0x8ac9x6=0;_0x8ac9x6<_0x8ac9x8[_0x4dff[18]];_0x8ac9x6++){this[_0x4dff[20]](_0x8ac9x3,_0x8ac9x8[_0x8ac9x6],[mxConstants[_0x4dff[32]]],[_0x8ac9x8[_0x8ac9x6]],null,_0x8ac9x4)};_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[25]),_0x4dff[33],_0x4dff[34],mxConstants.STYLE_FONTSIZE,_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[35], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){var _0x8ac9x8=[1,2,3,4,8,12,16,24];for(var _0x8ac9x6=0;_0x8ac9x6<_0x8ac9x8[_0x4dff[18]];_0x8ac9x6++){this[_0x4dff[20]](_0x8ac9x3,_0x8ac9x8[_0x8ac9x6]+_0x4dff[36],[mxConstants[_0x4dff[37]]],[_0x8ac9x8[_0x8ac9x6]],null,_0x8ac9x4)};_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[25]),_0x4dff[38],_0x4dff[39],mxConstants.STYLE_STROKEWIDTH,_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[40], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[41]),[mxConstants[_0x4dff[42]]],[null],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[43]),[mxConstants[_0x4dff[42]]],[_0x4dff[44]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[45]),[mxConstants[_0x4dff[42]],mxConstants[_0x4dff[46]]],[_0x4dff[47],_0x4dff[45]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[48]),[mxConstants[_0x4dff[42]],mxConstants[_0x4dff[46]]],[_0x4dff[47],_0x4dff[48]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[49]),[mxConstants[_0x4dff[42]]],[_0x4dff[50]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[51]),[mxConstants[_0x4dff[42]]],[_0x4dff[52]],null,_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[53], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[54]),[mxConstants[_0x4dff[55]]],[mxConstants[_0x4dff[56]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[57]),[mxConstants[_0x4dff[55]]],[mxConstants[_0x4dff[58]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[59]),[mxConstants[_0x4dff[55]]],[mxConstants[_0x4dff[60]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[61]),[mxConstants[_0x4dff[55]]],[mxConstants[_0x4dff[62]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[63]),[mxConstants[_0x4dff[55]]],[mxConstants[_0x4dff[64]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[65]),[mxConstants[_0x4dff[55]]],[mxConstants[_0x4dff[66]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[67]),[mxConstants[_0x4dff[55]]],[mxConstants[_0x4dff[68]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[69]),null,function(){_0x8ac9x2[_0x4dff[71]](_0x4dff[70],true)},_0x8ac9x4,null,true);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[73]),_0x4dff[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[74], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[54]),[mxConstants[_0x4dff[75]]],[mxConstants[_0x4dff[56]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[57]),[mxConstants[_0x4dff[75]]],[mxConstants[_0x4dff[58]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[59]),[mxConstants[_0x4dff[75]]],[mxConstants[_0x4dff[60]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[61]),[mxConstants[_0x4dff[75]]],[mxConstants[_0x4dff[62]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[63]),[mxConstants[_0x4dff[75]]],[mxConstants[_0x4dff[64]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[65]),[mxConstants[_0x4dff[75]]],[mxConstants[_0x4dff[66]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[67]),[mxConstants[_0x4dff[75]]],[mxConstants[_0x4dff[68]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[69]),null,function(){_0x8ac9x2[_0x4dff[71]](_0x4dff[76],true)},_0x8ac9x4,null,true);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[73]),_0x4dff[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[77], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){var _0x8ac9x9=this[_0x4dff[0]][_0x4dff[80]][_0x4dff[26]](_0x4dff[79])[_0x4dff[78]];var _0x8ac9xa=this[_0x4dff[26]](_0x4dff[40])[_0x4dff[78]];if(_0x8ac9x9||_0x8ac9x3[_0x4dff[81]]){this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[82]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_SPACING_TOP,_0x8ac9x4,_0x8ac9x9);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[84]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_SPACING_RIGHT,_0x8ac9x4,_0x8ac9x9);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[85]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_SPACING_BOTTOM,_0x8ac9x4,_0x8ac9x9);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[86]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_SPACING_LEFT,_0x8ac9x4,_0x8ac9x9);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[87]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_SPACING,_0x8ac9x4,_0x8ac9x9);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[88]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_PERIMETER_SPACING,_0x8ac9x4,_0x8ac9x9);};if(_0x8ac9xa||_0x8ac9x3[_0x4dff[81]]){_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[89]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_SOURCE_PERIMETER_SPACING,_0x8ac9x4,_0x8ac9xa);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[90]),_0x4dff[38],_0x4dff[83],mxConstants.STYLE_TARGET_PERIMETER_SPACING,_0x8ac9x4,_0x8ac9xa);};})));this[_0x4dff[30]](_0x4dff[91], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[92]](_0x8ac9x3,_0x4dff[21],_0x8ac9x4)})));this[_0x4dff[30]](_0x4dff[93], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){var _0x8ac9xb=this[_0x4dff[26]](_0x4dff[93])[_0x4dff[78]];_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[94]](_0x4dff[8],_0x8ac9x3,_0x8ac9x4);this[_0x4dff[94]](_0x4dff[31],_0x8ac9x3,_0x8ac9x4);this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[95],_0x4dff[96],_0x4dff[97],_0x4dff[98],_0x4dff[95]],_0x8ac9x4);this[_0x4dff[94]](_0x4dff[100],_0x8ac9x3,_0x8ac9x4);this[_0x4dff[92]](_0x8ac9x3,_0x4dff[101],_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[28]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[102]),_0x4dff[103],_0x4dff[104],mxConstants.STYLE_TEXT_OPACITY,_0x8ac9x4,_0x8ac9xb);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[105]),null,function(){_0x8ac9x2[_0x4dff[71]](mxConstants.STYLE_NOLABEL,false)},_0x8ac9x4,null,_0x8ac9xb);})));this[_0x4dff[30]](_0x4dff[100], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[106]),[mxConstants[_0x4dff[107]]],[mxConstants[_0x4dff[108]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[109]),[mxConstants[_0x4dff[107]]],[mxConstants[_0x4dff[110]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[111]),[mxConstants[_0x4dff[107]]],[mxConstants[_0x4dff[112]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[113]),[mxConstants[_0x4dff[114]]],[mxConstants[_0x4dff[115]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[116]),[mxConstants[_0x4dff[114]]],[mxConstants[_0x4dff[117]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[118]),[mxConstants[_0x4dff[114]]],[mxConstants[_0x4dff[119]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[94]](_0x4dff[120],_0x8ac9x3,_0x8ac9x4);this[_0x4dff[94]](_0x4dff[77],_0x8ac9x3,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);var _0x8ac9xb=this[_0x4dff[26]](_0x4dff[93])[_0x4dff[78]];_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[48]),null,function(){_0x8ac9x2[_0x4dff[71]](mxConstants.STYLE_HORIZONTAL,true)},_0x8ac9x4,null,_0x8ac9xb);})));this[_0x4dff[30]](_0x4dff[120], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[86]),[mxConstants[_0x4dff[121]],mxConstants[_0x4dff[107]]],[mxConstants[_0x4dff[108]],mxConstants[_0x4dff[112]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[109]),[mxConstants[_0x4dff[121]],mxConstants[_0x4dff[107]]],[mxConstants[_0x4dff[110]],mxConstants[_0x4dff[110]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[84]),[mxConstants[_0x4dff[121]],mxConstants[_0x4dff[107]]],[mxConstants[_0x4dff[112]],mxConstants[_0x4dff[108]]],null,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[82]),[mxConstants[_0x4dff[122]],mxConstants[_0x4dff[114]]],[mxConstants[_0x4dff[115]],mxConstants[_0x4dff[119]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[116]),[mxConstants[_0x4dff[122]],mxConstants[_0x4dff[114]]],[mxConstants[_0x4dff[117]],mxConstants[_0x4dff[117]]],null,_0x8ac9x4);this[_0x4dff[20]](_0x8ac9x3,mxResources[_0x4dff[26]](_0x4dff[85]),[mxConstants[_0x4dff[122]],mxConstants[_0x4dff[114]]],[mxConstants[_0x4dff[119]],mxConstants[_0x4dff[115]]],null,_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[123], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[124]),null,function(){_0x8ac9x2[_0x4dff[71]](mxConstants.STYLE_FLIPH,false)},_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[125]),null,function(){_0x8ac9x2[_0x4dff[71]](mxConstants.STYLE_FLIPV,false)},_0x8ac9x4);this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[95],_0x4dff[126],_0x4dff[127]],_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[128], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[106]),null,function(){_0x8ac9x2[_0x4dff[129]](mxConstants.ALIGN_LEFT)},_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[109]),null,function(){_0x8ac9x2[_0x4dff[129]](mxConstants.ALIGN_CENTER)},_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[111]),null,function(){_0x8ac9x2[_0x4dff[129]](mxConstants.ALIGN_RIGHT)},_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[113]),null,function(){_0x8ac9x2[_0x4dff[129]](mxConstants.ALIGN_TOP)},_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[116]),null,function(){_0x8ac9x2[_0x4dff[129]](mxConstants.ALIGN_MIDDLE)},_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[118]),null,function(){_0x8ac9x2[_0x4dff[129]](mxConstants.ALIGN_BOTTOM)},_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[130], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[131]),null,mxUtils[_0x4dff[29]](this,function(){var _0x8ac9xc= new mxHierarchicalLayout(_0x8ac9x2,mxConstants.DIRECTION_WEST);this[_0x4dff[0]][_0x4dff[132]](_0x8ac9xc,true,true);}),_0x8ac9x4);_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x4dff[133]),null,mxUtils[_0x4dff[29]](this,function(){var _0x8ac9xc= new mxHierarchicalLayout(_0x8ac9x2,mxConstants.DIRECTION_NORTH);this[_0x4dff[0]][_0x4dff[132]](_0x8ac9xc,true,true);}),_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[134], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[135],_0x4dff[95],_0x4dff[136],_0x4dff[137],_0x4dff[95],_0x4dff[138],_0x4dff[139]],_0x8ac9x4)})));this[_0x4dff[30]](_0x4dff[140], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[141],_0x4dff[142],_0x4dff[95]],_0x8ac9x4);this[_0x4dff[94]](_0x4dff[130],_0x8ac9x3,_0x8ac9x4);_0x8ac9x3[_0x4dff[24]](_0x8ac9x4);this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[95],_0x4dff[143],_0x4dff[144],_0x4dff[145]],_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[146], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[147]],_0x8ac9x4);_0x8ac9x3[_0x4dff[24]]();var _0x8ac9xd=[0.25,0.5,0.75,1,2,4];for(var _0x8ac9x6=0;_0x8ac9x6<_0x8ac9xd[_0x4dff[18]];_0x8ac9x6++){(function(_0x8ac9xe){_0x8ac9x3[_0x4dff[72]]((_0x8ac9xe*100)+_0x4dff[148],null,function(){_0x8ac9x2[_0x4dff[149]](_0x8ac9xe)},_0x8ac9x4)})(_0x8ac9xd[_0x8ac9x6])};this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[95],_0x4dff[150],_0x4dff[151],_0x4dff[95],_0x4dff[152],_0x4dff[153],_0x4dff[95],_0x4dff[154],_0x4dff[155]],_0x8ac9x4);})));this[_0x4dff[30]](_0x4dff[156], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[157],_0x4dff[158],_0x4dff[95],_0x4dff[159],_0x4dff[160],_0x4dff[161],_0x4dff[95],_0x4dff[162],_0x4dff[95],_0x4dff[163],_0x4dff[164],_0x4dff[95],_0x4dff[165],_0x4dff[95],_0x4dff[166]],_0x8ac9x4)})));this[_0x4dff[30]](_0x4dff[167], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[168],_0x4dff[169],_0x4dff[95],_0x4dff[170],_0x4dff[171],_0x4dff[172],_0x4dff[173],_0x4dff[95],_0x4dff[174],_0x4dff[95],_0x4dff[175],_0x4dff[176],_0x4dff[177]])})));this[_0x4dff[30]](_0x4dff[178], new Menu(mxUtils[_0x4dff[29]](this,function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[178],_0x4dff[95],_0x4dff[179]])})));};Menus[_0x4dff[5]][_0x4dff[30]]=function(_0x8ac9xf,_0x8ac9x3){this[_0x4dff[1]][_0x8ac9xf]=_0x8ac9x3};Menus[_0x4dff[5]][_0x4dff[26]]=function(_0x8ac9xf){return this[_0x4dff[1]][_0x8ac9xf]};Menus[_0x4dff[5]][_0x4dff[94]]=function(_0x8ac9xf,_0x8ac9x3,_0x8ac9x4){var _0x8ac9xb=this[_0x4dff[26]](_0x8ac9xf)[_0x4dff[78]];if(_0x8ac9x3[_0x4dff[81]]||_0x8ac9xb){var _0x8ac9x10=_0x8ac9x3[_0x4dff[72]](mxResources[_0x4dff[26]](_0x8ac9xf),null,null,_0x8ac9x4,null,_0x8ac9xb);this[_0x4dff[180]](_0x8ac9xf,_0x8ac9x3,_0x8ac9x10);};};Menus[_0x4dff[5]][_0x4dff[180]]=function(_0x8ac9xf,_0x8ac9x11,_0x8ac9x4){var _0x8ac9x3=this[_0x4dff[26]](_0x8ac9xf);if(_0x8ac9x3!=null&&(_0x8ac9x11[_0x4dff[81]]||_0x8ac9x3[_0x4dff[78]])){this[_0x4dff[26]](_0x8ac9xf)[_0x4dff[181]](_0x8ac9x11,_0x8ac9x4)};};Menus[_0x4dff[5]][_0x4dff[20]]=function(_0x8ac9x3,_0x8ac9x12,_0x8ac9x13,_0x8ac9x14,_0x8ac9x15,_0x8ac9x4){return _0x8ac9x3[_0x4dff[72]](_0x8ac9x12,null,mxUtils[_0x4dff[29]](this,function(){var _0x8ac9x2=this[_0x4dff[0]][_0x4dff[7]][_0x4dff[6]];_0x8ac9x2[_0x4dff[183]]()[_0x4dff[182]]();try{for(var _0x8ac9x6=0;_0x8ac9x6<_0x8ac9x13[_0x4dff[18]];_0x8ac9x6++){_0x8ac9x2[_0x4dff[184]](_0x8ac9x13[_0x8ac9x6],_0x8ac9x14[_0x8ac9x6])}}finally{_0x8ac9x2[_0x4dff[183]]()[_0x4dff[185]]()};}),_0x8ac9x4,_0x8ac9x15)};Menus[_0x4dff[5]][_0x4dff[28]]=function(_0x8ac9x3,_0x8ac9x12,_0x8ac9x16,_0x8ac9x17,_0x8ac9x18,_0x8ac9x4,_0x8ac9xb){return _0x8ac9x3[_0x4dff[72]](_0x8ac9x12,null,mxUtils[_0x4dff[29]](this,function(){var _0x8ac9x2=this[_0x4dff[0]][_0x4dff[7]][_0x4dff[6]];var _0x8ac9x19=_0x8ac9x17;var _0x8ac9x1a=_0x8ac9x2[_0x4dff[188]]()[_0x4dff[187]](_0x8ac9x2[_0x4dff[186]]());if(_0x8ac9x1a!=null){_0x8ac9x19=_0x8ac9x1a[_0x4dff[21]][_0x8ac9x18]||_0x8ac9x19};_0x8ac9x19=mxUtils[_0x4dff[191]](mxResources[_0x4dff[26]](_0x4dff[189])+((_0x8ac9x16[_0x4dff[18]]>0)?(_0x4dff[190]+_0x8ac9x16):_0x4dff[27]),_0x8ac9x19);if(_0x8ac9x19!=null&&_0x8ac9x19[_0x4dff[18]]>0){_0x8ac9x2[_0x4dff[184]](_0x8ac9x18,_0x8ac9x19)};}),_0x8ac9x4,null,_0x8ac9xb)};Menus[_0x4dff[5]][_0x4dff[92]]=function(_0x8ac9x3,_0x8ac9x18,_0x8ac9x4){var _0x8ac9x1b=this[_0x4dff[0]][_0x4dff[80]][_0x4dff[26]](_0x8ac9x18);if(_0x8ac9x1b!=null&&(_0x8ac9x3[_0x4dff[81]]||_0x8ac9x1b[_0x4dff[78]])){var _0x8ac9x1c=_0x8ac9x3[_0x4dff[72]](_0x8ac9x1b[_0x4dff[192]],null,_0x8ac9x1b[_0x4dff[193]],_0x8ac9x4,null,_0x8ac9x1b[_0x4dff[78]]);if(_0x8ac9x1b[_0x4dff[194]]&&_0x8ac9x1b[_0x4dff[195]]()){this[_0x4dff[196]](_0x8ac9x1c)};this[_0x4dff[197]](_0x8ac9x1c,_0x8ac9x1b);return _0x8ac9x1c;};return null;};Menus[_0x4dff[5]][_0x4dff[197]]=function(_0x8ac9x1c,_0x8ac9x1b){if(_0x8ac9x1b[_0x4dff[198]]!=null){var _0x8ac9x1d=_0x8ac9x1c[_0x4dff[23]][_0x4dff[22]][_0x4dff[22]];var _0x8ac9x1e=document[_0x4dff[200]](_0x4dff[199]);_0x8ac9x1e[_0x4dff[21]][_0x4dff[201]]=_0x4dff[202];mxUtils[_0x4dff[203]](_0x8ac9x1e,_0x8ac9x1b[_0x4dff[198]]);_0x8ac9x1d[_0x4dff[204]](_0x8ac9x1e);}};Menus[_0x4dff[5]][_0x4dff[196]]=function(_0x8ac9x1c){var _0x8ac9x1d=_0x8ac9x1c[_0x4dff[23]][_0x4dff[22]];_0x8ac9x1d[_0x4dff[21]][_0x4dff[205]]=_0x4dff[206]+IMAGE_PATH+_0x4dff[207];_0x8ac9x1d[_0x4dff[21]][_0x4dff[208]]=_0x4dff[209];_0x8ac9x1d[_0x4dff[21]][_0x4dff[210]]=_0x4dff[211];};Menus[_0x4dff[5]][_0x4dff[99]]=function(_0x8ac9x3,_0x8ac9x13,_0x8ac9x4){for(var _0x8ac9x6=0;_0x8ac9x6<_0x8ac9x13[_0x4dff[18]];_0x8ac9x6++){if(_0x8ac9x13[_0x8ac9x6]==_0x4dff[95]){_0x8ac9x3[_0x4dff[24]](_0x8ac9x4)}else {this[_0x4dff[92]](_0x8ac9x3,_0x8ac9x13[_0x8ac9x6],_0x8ac9x4)}}};Menus[_0x4dff[5]][_0x4dff[212]]=function(_0x8ac9x3,_0x8ac9x1f,_0x8ac9x20){var _0x8ac9x2=this[_0x4dff[0]][_0x4dff[7]][_0x4dff[6]];_0x8ac9x3[_0x4dff[213]]=true;if(_0x8ac9x2[_0x4dff[214]]()){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[168],_0x4dff[169],_0x4dff[95],_0x4dff[172],_0x4dff[95]])}else {this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[173],_0x4dff[95],_0x4dff[170],_0x4dff[171],_0x4dff[95],_0x4dff[174]]);if(_0x8ac9x2[_0x4dff[215]]()==1&&_0x8ac9x2[_0x4dff[183]]()[_0x4dff[216]](_0x8ac9x2[_0x4dff[186]]())){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[217]])};_0x8ac9x3[_0x4dff[24]]();};if(_0x8ac9x2[_0x4dff[215]]()>0){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[141],_0x4dff[142],_0x4dff[95]]);if(_0x8ac9x2[_0x4dff[183]]()[_0x4dff[216]](_0x8ac9x2[_0x4dff[186]]())){var _0x8ac9x21=false;var _0x8ac9x1f=_0x8ac9x2[_0x4dff[186]]();if(_0x8ac9x1f!=null&&_0x8ac9x2[_0x4dff[183]]()[_0x4dff[216]](_0x8ac9x1f)){var _0x8ac9x22=_0x8ac9x2[_0x4dff[219]][_0x4dff[218]](_0x8ac9x1f);if(_0x8ac9x22 instanceof mxEdgeHandler&&_0x8ac9x22[_0x4dff[220]]!=null&&_0x8ac9x22[_0x4dff[220]][_0x4dff[18]]>2){var _0x8ac9x23=_0x8ac9x22[_0x4dff[221]]( new mxMouseEvent(_0x8ac9x20));var _0x8ac9x24=this[_0x4dff[0]][_0x4dff[80]][_0x4dff[26]](_0x4dff[222]);_0x8ac9x24[_0x4dff[223]]=_0x8ac9x22;_0x8ac9x24[_0x4dff[224]]=_0x8ac9x23;_0x8ac9x21=_0x8ac9x23>0&&_0x8ac9x23<_0x8ac9x22[_0x4dff[220]][_0x4dff[18]];};};this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[95],(_0x8ac9x21)?_0x4dff[222]:_0x4dff[225]]);}else {if(_0x8ac9x2[_0x4dff[215]]()>1){_0x8ac9x3[_0x4dff[24]]();this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[143]]);}};_0x8ac9x3[_0x4dff[24]]();if(_0x8ac9x2[_0x4dff[215]]()==1){var _0x8ac9x25=_0x8ac9x2[_0x4dff[226]](_0x8ac9x2[_0x4dff[186]]());if(_0x8ac9x25!=null){this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[227]])};};}else {this[_0x4dff[99]](_0x8ac9x3,[_0x4dff[95],_0x4dff[175],_0x4dff[176],_0x4dff[95],_0x4dff[177]])};};Menus[_0x4dff[5]][_0x4dff[228]]=function(_0x8ac9x26){var _0x8ac9x27= new Menubar(this[_0x4dff[0]],_0x8ac9x26);var _0x8ac9x28=[_0x4dff[156],_0x4dff[167],_0x4dff[146],_0x4dff[91],_0x4dff[93],_0x4dff[140],_0x4dff[178]];for(var _0x8ac9x6=0;_0x8ac9x6<_0x8ac9x28[_0x4dff[18]];_0x8ac9x6++){_0x8ac9x27[_0x4dff[180]](mxResources[_0x4dff[26]](_0x8ac9x28[_0x8ac9x6]),this[_0x4dff[26]](_0x8ac9x28[_0x8ac9x6])[_0x4dff[193]])};return _0x8ac9x27;};function Menubar(_0x8ac9x1,_0x8ac9x26){this[_0x4dff[0]]=_0x8ac9x1;this[_0x4dff[229]]=_0x8ac9x26;mxEvent[_0x4dff[231]](document,mxUtils[_0x4dff[29]](this,function(_0x8ac9x20){this[_0x4dff[230]]()}));}Menubar[_0x4dff[5]][_0x4dff[230]]=function(){if(this[_0x4dff[232]]!=null){this[_0x4dff[232]][_0x4dff[230]]()}};Menubar[_0x4dff[5]][_0x4dff[180]]=function(_0x8ac9x12,_0x8ac9x2a){var _0x8ac9x2b=document[_0x4dff[200]](_0x4dff[233]);_0x8ac9x2b[_0x4dff[236]](_0x4dff[234],_0x4dff[235]);_0x8ac9x2b[_0x4dff[237]]=_0x4dff[238];mxUtils[_0x4dff[203]](_0x8ac9x2b,_0x8ac9x12);this[_0x4dff[239]](_0x8ac9x2b,_0x8ac9x2a);this[_0x4dff[229]][_0x4dff[204]](_0x8ac9x2b);return _0x8ac9x2b;};Menubar[_0x4dff[5]][_0x4dff[239]]=function(_0x8ac9x2b,_0x8ac9x2a){if(_0x8ac9x2a!=null){var _0x8ac9x2c=true;var _0x8ac9x2d=mxUtils[_0x4dff[29]](this,function(_0x8ac9x20){if(_0x8ac9x2c&&_0x8ac9x2b[_0x4dff[78]]==null||_0x8ac9x2b[_0x4dff[78]]){this[_0x4dff[0]][_0x4dff[7]][_0x4dff[6]][_0x4dff[240]][_0x4dff[230]]();var _0x8ac9x3= new mxPopupMenu(_0x8ac9x2a);_0x8ac9x3[_0x4dff[241]][_0x4dff[237]]+=_0x4dff[242];_0x8ac9x3[_0x4dff[213]]=true;_0x8ac9x3[_0x4dff[81]]=true;_0x8ac9x3[_0x4dff[243]]=true;_0x8ac9x3[_0x4dff[230]]=mxUtils[_0x4dff[29]](this,function(){mxPopupMenu[_0x4dff[5]][_0x4dff[230]][_0x4dff[244]](_0x8ac9x3,arguments);_0x8ac9x3[_0x4dff[245]]();this[_0x4dff[232]]=null;this[_0x4dff[246]]=null;});var _0x8ac9x2e=_0x8ac9x2b[_0x4dff[247]]+document[_0x4dff[250]](_0x4dff[249])[_0x4dff[248]]+22;var _0x8ac9x2f=_0x8ac9x2b[_0x4dff[251]]+_0x8ac9x2b[_0x4dff[252]]+140;_0x8ac9x3[_0x4dff[253]](_0x8ac9x2e,_0x8ac9x2f,null,_0x8ac9x20);this[_0x4dff[232]]=_0x8ac9x3;this[_0x4dff[246]]=_0x8ac9x2b;};_0x8ac9x2c=true;mxEvent[_0x4dff[254]](_0x8ac9x20);});mxEvent[_0x4dff[256]](_0x8ac9x2b,_0x4dff[255],mxUtils[_0x4dff[29]](this,function(_0x8ac9x20){if(this[_0x4dff[232]]!=null&&this[_0x4dff[246]]!=_0x8ac9x2b){this[_0x4dff[230]]();_0x8ac9x2d(_0x8ac9x20);}}));mxEvent[_0x4dff[256]](_0x8ac9x2b,_0x4dff[257],mxUtils[_0x4dff[29]](this,function(){_0x8ac9x2c=this[_0x4dff[246]]!=_0x8ac9x2b}));mxEvent[_0x4dff[256]](_0x8ac9x2b,_0x4dff[258],_0x8ac9x2d);}};function Menu(_0x8ac9x2a,_0x8ac9xb){mxEventSource[_0x4dff[259]](this);this[_0x4dff[193]]=_0x8ac9x2a;this[_0x4dff[78]]=(_0x8ac9xb!=null)?_0x8ac9xb:true;}mxUtils[_0x4dff[260]](Menu,mxEventSource);Menu[_0x4dff[5]][_0x4dff[261]]=function(_0x8ac9x19){if(this[_0x4dff[78]]!=_0x8ac9x19){this[_0x4dff[78]]=_0x8ac9x19;this[_0x4dff[263]]( new mxEventObject(_0x4dff[262]));}};Menu[_0x4dff[5]][_0x4dff[181]]=function(_0x8ac9x3,_0x8ac9x4){this[_0x4dff[193]](_0x8ac9x3,_0x8ac9x4)};
\ No newline at end of file
+var _0x72c4=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x6D\x65\x6E\x75\x73","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x56\x65\x72\x64\x61\x6E\x61","\x54\x69\x6D\x65\x73\x20\x4E\x65\x77\x20\x52\x6F\x6D\x61\x6E","\x47\x61\x72\x61\x6D\x6F\x6E\x64","\x43\x6F\x6D\x69\x63\x20\x53\x61\x6E\x73\x20\x4D\x53","\x43\x6F\x75\x72\x69\x65\x72\x20\x4E\x65\x77","\x47\x65\x6F\x72\x67\x69\x61","\x4C\x75\x63\x69\x64\x61\x20\x43\x6F\x6E\x73\x6F\x6C\x65","\x54\x61\x68\x6F\x6D\x61","\x6C\x65\x6E\x67\x74\x68","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x73\x74\x79\x6C\x65\x43\x68\x61\x6E\x67\x65","\x73\x74\x79\x6C\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74","","\x70\x72\x6F\x6D\x70\x74\x43\x68\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x70\x75\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x28\x70\x74\x29","\x31\x32","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x70\x78","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x28\x70\x78\x29","\x31","\x6C\x69\x6E\x65","\x73\x74\x72\x61\x69\x67\x68\x74","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6D\x61\x6E\x75\x61\x6C","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x6D\x61\x74\x69\x63","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x63\x6C\x61\x73\x73\x69\x63","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x6F\x70\x65\x6E\x41\x72\x72\x6F\x77","\x41\x52\x52\x4F\x57\x5F\x4F\x50\x45\x4E","\x62\x6C\x6F\x63\x6B","\x41\x52\x52\x4F\x57\x5F\x42\x4C\x4F\x43\x4B","\x6F\x76\x61\x6C","\x41\x52\x52\x4F\x57\x5F\x4F\x56\x41\x4C","\x64\x69\x61\x6D\x6F\x6E\x64","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44\x5F\x54\x48\x49\x4E","\x6E\x6F\x6E\x65","\x4E\x4F\x4E\x45","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x65\x6E\x64\x46\x69\x6C\x6C","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x61\x64\x64\x49\x74\x65\x6D","\x73\x69\x7A\x65","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x73\x70\x61\x63\x69\x6E\x67","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x68\x61\x64\x6F\x77","\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x74\x6F\x70","\x30","\x72\x69\x67\x68\x74","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x67\x6C\x6F\x62\x61\x6C","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x74\x65\x78\x74","\x61\x64\x64\x53\x75\x62\x6D\x65\x6E\x75","\x2D","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D\x73","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x77\x6F\x72\x64\x57\x72\x61\x70","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x28\x25\x29","\x31\x30\x30","\x68\x69\x64\x65","\x6C\x65\x66\x74\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x63\x65\x6E\x74\x65\x72","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x72\x69\x67\x68\x74\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x74\x6F\x70\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x6D\x69\x64\x64\x6C\x65","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x62\x6F\x74\x74\x6F\x6D\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x74\x69\x6C\x74","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x6C\x69\x67\x6E","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x46\x6C\x6F\x77","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x61\x72\x72\x61\x6E\x67\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x76\x69\x65\x77","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x25","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x66\x69\x74\x50\x61\x67\x65","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x66\x69\x6C\x65","\x6E\x65\x77","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x41\x73","\x70\x75\x62\x6C\x69\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x65\x64\x69\x74\x46\x69\x6C\x65","\x70\x72\x69\x6E\x74","\x65\x64\x69\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x75\x74","\x63\x6F\x70\x79","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x68\x65\x6C\x70","\x61\x62\x6F\x75\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x65\x78\x65\x63\x75\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x20","\x70\x72\x6F\x6D\x70\x74","\x6C\x61\x62\x65\x6C","\x66\x75\x6E\x63\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x6D\x61\x72\x6B","\x61\x64\x64\x53\x68\x6F\x72\x74\x63\x75\x74","\x73\x68\x6F\x72\x74\x63\x75\x74","\x73\x70\x61\x6E","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x79","\x77\x72\x69\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x32\x70\x78\x20\x35\x30\x25","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x69\x73\x45\x64\x67\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x62\x65\x6E\x64\x73","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x69\x76","\x20\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x4D\x65\x6E\x75","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x61\x70\x70\x6C\x79","\x64\x65\x73\x74\x72\x6F\x79","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6C\x69\x63\x6B","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74"];Menus=function(_0x1f2bx1){this[_0x72c4[0]]=_0x1f2bx1;this[_0x72c4[1]]= new Object();this[_0x72c4[2]](); new Image()[_0x72c4[3]]=IMAGE_PATH+_0x72c4[4];};Menus[_0x72c4[5]][_0x72c4[2]]=function(){var _0x1f2bx2=this[_0x72c4[0]][_0x72c4[7]][_0x72c4[6]];this[_0x72c4[30]](_0x72c4[8], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){var _0x1f2bx5=[_0x72c4[9],_0x72c4[10],_0x72c4[11],_0x72c4[12],_0x72c4[13],_0x72c4[14],_0x72c4[15],_0x72c4[16],_0x72c4[17]];for(var _0x1f2bx6=0;_0x1f2bx6<_0x1f2bx5[_0x72c4[18]];_0x1f2bx6++){var _0x1f2bx7=this[_0x72c4[20]](_0x1f2bx3,_0x1f2bx5[_0x1f2bx6],[mxConstants[_0x72c4[19]]],[_0x1f2bx5[_0x1f2bx6]],null,_0x1f2bx4);_0x1f2bx7[_0x72c4[23]][_0x72c4[22]][_0x72c4[21]][_0x72c4[8]]=_0x1f2bx5[_0x1f2bx6];};_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[25]),_0x72c4[27],mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[31], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){var _0x1f2bx8=[6,8,9,10,11,12,14,18,24,36,48,72];for(var _0x1f2bx6=0;_0x1f2bx6<_0x1f2bx8[_0x72c4[18]];_0x1f2bx6++){this[_0x72c4[20]](_0x1f2bx3,_0x1f2bx8[_0x1f2bx6],[mxConstants[_0x72c4[32]]],[_0x1f2bx8[_0x1f2bx6]],null,_0x1f2bx4)};_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[25]),_0x72c4[33],_0x72c4[34],mxConstants.STYLE_FONTSIZE,_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[35], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){var _0x1f2bx8=[1,2,3,4,8,12,16,24];for(var _0x1f2bx6=0;_0x1f2bx6<_0x1f2bx8[_0x72c4[18]];_0x1f2bx6++){this[_0x72c4[20]](_0x1f2bx3,_0x1f2bx8[_0x1f2bx6]+_0x72c4[36],[mxConstants[_0x72c4[37]]],[_0x1f2bx8[_0x1f2bx6]],null,_0x1f2bx4)};_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[25]),_0x72c4[38],_0x72c4[39],mxConstants.STYLE_STROKEWIDTH,_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[40], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[41]),[mxConstants[_0x72c4[42]]],[null],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[43]),[mxConstants[_0x72c4[42]]],[_0x72c4[44]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[45]),[mxConstants[_0x72c4[42]],mxConstants[_0x72c4[46]]],[_0x72c4[47],_0x72c4[45]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[48]),[mxConstants[_0x72c4[42]],mxConstants[_0x72c4[46]]],[_0x72c4[47],_0x72c4[48]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[49]),[mxConstants[_0x72c4[42]]],[_0x72c4[50]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[51]),[mxConstants[_0x72c4[42]]],[_0x72c4[52]],null,_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[53], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[54]),[mxConstants[_0x72c4[55]]],[mxConstants[_0x72c4[56]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[57]),[mxConstants[_0x72c4[55]]],[mxConstants[_0x72c4[58]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[59]),[mxConstants[_0x72c4[55]]],[mxConstants[_0x72c4[60]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[61]),[mxConstants[_0x72c4[55]]],[mxConstants[_0x72c4[62]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[63]),[mxConstants[_0x72c4[55]]],[mxConstants[_0x72c4[64]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[65]),[mxConstants[_0x72c4[55]]],[mxConstants[_0x72c4[66]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[67]),[mxConstants[_0x72c4[55]]],[mxConstants[_0x72c4[68]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[69]),null,function(){_0x1f2bx2[_0x72c4[71]](_0x72c4[70],true)},_0x1f2bx4,null,true);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[73]),_0x72c4[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[74], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[54]),[mxConstants[_0x72c4[75]]],[mxConstants[_0x72c4[56]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[57]),[mxConstants[_0x72c4[75]]],[mxConstants[_0x72c4[58]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[59]),[mxConstants[_0x72c4[75]]],[mxConstants[_0x72c4[60]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[61]),[mxConstants[_0x72c4[75]]],[mxConstants[_0x72c4[62]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[63]),[mxConstants[_0x72c4[75]]],[mxConstants[_0x72c4[64]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[65]),[mxConstants[_0x72c4[75]]],[mxConstants[_0x72c4[66]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[67]),[mxConstants[_0x72c4[75]]],[mxConstants[_0x72c4[68]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[69]),null,function(){_0x1f2bx2[_0x72c4[71]](_0x72c4[76],true)},_0x1f2bx4,null,true);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[73]),_0x72c4[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[77], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){var _0x1f2bx9=this[_0x72c4[0]][_0x72c4[80]][_0x72c4[26]](_0x72c4[79])[_0x72c4[78]];var _0x1f2bxa=this[_0x72c4[26]](_0x72c4[40])[_0x72c4[78]];if(_0x1f2bx9||_0x1f2bx3[_0x72c4[81]]){this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[82]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_SPACING_TOP,_0x1f2bx4,_0x1f2bx9);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[84]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_SPACING_RIGHT,_0x1f2bx4,_0x1f2bx9);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[85]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_SPACING_BOTTOM,_0x1f2bx4,_0x1f2bx9);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[86]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_SPACING_LEFT,_0x1f2bx4,_0x1f2bx9);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[87]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_SPACING,_0x1f2bx4,_0x1f2bx9);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[88]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_PERIMETER_SPACING,_0x1f2bx4,_0x1f2bx9);};if(_0x1f2bxa||_0x1f2bx3[_0x72c4[81]]){_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[89]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_SOURCE_PERIMETER_SPACING,_0x1f2bx4,_0x1f2bxa);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[90]),_0x72c4[38],_0x72c4[83],mxConstants.STYLE_TARGET_PERIMETER_SPACING,_0x1f2bx4,_0x1f2bxa);};})));this[_0x72c4[30]](_0x72c4[91], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[92]](_0x1f2bx3,_0x72c4[21],_0x1f2bx4)})));this[_0x72c4[30]](_0x72c4[93], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){var _0x1f2bxb=this[_0x72c4[26]](_0x72c4[93])[_0x72c4[78]];_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[94]](_0x72c4[8],_0x1f2bx3,_0x1f2bx4);this[_0x72c4[94]](_0x72c4[31],_0x1f2bx3,_0x1f2bx4);this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[95],_0x72c4[96],_0x72c4[97],_0x72c4[98],_0x72c4[95]],_0x1f2bx4);this[_0x72c4[94]](_0x72c4[100],_0x1f2bx3,_0x1f2bx4);this[_0x72c4[92]](_0x1f2bx3,_0x72c4[101],_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[28]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[102]),_0x72c4[103],_0x72c4[104],mxConstants.STYLE_TEXT_OPACITY,_0x1f2bx4,_0x1f2bxb);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[105]),null,function(){_0x1f2bx2[_0x72c4[71]](mxConstants.STYLE_NOLABEL,false)},_0x1f2bx4,null,_0x1f2bxb);})));this[_0x72c4[30]](_0x72c4[100], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[106]),[mxConstants[_0x72c4[107]]],[mxConstants[_0x72c4[108]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[109]),[mxConstants[_0x72c4[107]]],[mxConstants[_0x72c4[110]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[111]),[mxConstants[_0x72c4[107]]],[mxConstants[_0x72c4[112]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[113]),[mxConstants[_0x72c4[114]]],[mxConstants[_0x72c4[115]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[116]),[mxConstants[_0x72c4[114]]],[mxConstants[_0x72c4[117]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[118]),[mxConstants[_0x72c4[114]]],[mxConstants[_0x72c4[119]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[94]](_0x72c4[120],_0x1f2bx3,_0x1f2bx4);this[_0x72c4[94]](_0x72c4[77],_0x1f2bx3,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);var _0x1f2bxb=this[_0x72c4[26]](_0x72c4[93])[_0x72c4[78]];_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[48]),null,function(){_0x1f2bx2[_0x72c4[71]](mxConstants.STYLE_HORIZONTAL,true)},_0x1f2bx4,null,_0x1f2bxb);})));this[_0x72c4[30]](_0x72c4[120], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[86]),[mxConstants[_0x72c4[121]],mxConstants[_0x72c4[107]]],[mxConstants[_0x72c4[108]],mxConstants[_0x72c4[112]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[109]),[mxConstants[_0x72c4[121]],mxConstants[_0x72c4[107]]],[mxConstants[_0x72c4[110]],mxConstants[_0x72c4[110]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[84]),[mxConstants[_0x72c4[121]],mxConstants[_0x72c4[107]]],[mxConstants[_0x72c4[112]],mxConstants[_0x72c4[108]]],null,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[82]),[mxConstants[_0x72c4[122]],mxConstants[_0x72c4[114]]],[mxConstants[_0x72c4[115]],mxConstants[_0x72c4[119]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[116]),[mxConstants[_0x72c4[122]],mxConstants[_0x72c4[114]]],[mxConstants[_0x72c4[117]],mxConstants[_0x72c4[117]]],null,_0x1f2bx4);this[_0x72c4[20]](_0x1f2bx3,mxResources[_0x72c4[26]](_0x72c4[85]),[mxConstants[_0x72c4[122]],mxConstants[_0x72c4[114]]],[mxConstants[_0x72c4[119]],mxConstants[_0x72c4[115]]],null,_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[123], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[124]),null,function(){_0x1f2bx2[_0x72c4[71]](mxConstants.STYLE_FLIPH,false)},_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[125]),null,function(){_0x1f2bx2[_0x72c4[71]](mxConstants.STYLE_FLIPV,false)},_0x1f2bx4);this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[95],_0x72c4[126],_0x72c4[127]],_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[128], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[106]),null,function(){_0x1f2bx2[_0x72c4[129]](mxConstants.ALIGN_LEFT)},_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[109]),null,function(){_0x1f2bx2[_0x72c4[129]](mxConstants.ALIGN_CENTER)},_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[111]),null,function(){_0x1f2bx2[_0x72c4[129]](mxConstants.ALIGN_RIGHT)},_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[113]),null,function(){_0x1f2bx2[_0x72c4[129]](mxConstants.ALIGN_TOP)},_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[116]),null,function(){_0x1f2bx2[_0x72c4[129]](mxConstants.ALIGN_MIDDLE)},_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[118]),null,function(){_0x1f2bx2[_0x72c4[129]](mxConstants.ALIGN_BOTTOM)},_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[130], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[131]),null,mxUtils[_0x72c4[29]](this,function(){var _0x1f2bxc= new mxHierarchicalLayout(_0x1f2bx2,mxConstants.DIRECTION_WEST);this[_0x72c4[0]][_0x72c4[132]](_0x1f2bxc,true,true);}),_0x1f2bx4);_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x72c4[133]),null,mxUtils[_0x72c4[29]](this,function(){var _0x1f2bxc= new mxHierarchicalLayout(_0x1f2bx2,mxConstants.DIRECTION_NORTH);this[_0x72c4[0]][_0x72c4[132]](_0x1f2bxc,true,true);}),_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[134], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[135],_0x72c4[95],_0x72c4[136],_0x72c4[137],_0x72c4[95],_0x72c4[138],_0x72c4[139]],_0x1f2bx4)})));this[_0x72c4[30]](_0x72c4[140], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[141],_0x72c4[142],_0x72c4[95]],_0x1f2bx4);this[_0x72c4[94]](_0x72c4[130],_0x1f2bx3,_0x1f2bx4);_0x1f2bx3[_0x72c4[24]](_0x1f2bx4);this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[95],_0x72c4[143],_0x72c4[144],_0x72c4[145]],_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[146], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[147]],_0x1f2bx4);_0x1f2bx3[_0x72c4[24]]();var _0x1f2bxd=[0.25,0.5,0.75,1,2,4];for(var _0x1f2bx6=0;_0x1f2bx6<_0x1f2bxd[_0x72c4[18]];_0x1f2bx6++){(function(_0x1f2bxe){_0x1f2bx3[_0x72c4[72]]((_0x1f2bxe*100)+_0x72c4[148],null,function(){_0x1f2bx2[_0x72c4[149]](_0x1f2bxe)},_0x1f2bx4)})(_0x1f2bxd[_0x1f2bx6])};this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[95],_0x72c4[150],_0x72c4[151],_0x72c4[95],_0x72c4[152],_0x72c4[153],_0x72c4[95],_0x72c4[154],_0x72c4[155]],_0x1f2bx4);})));this[_0x72c4[30]](_0x72c4[156], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[157],_0x72c4[158],_0x72c4[95],_0x72c4[159],_0x72c4[160],_0x72c4[161],_0x72c4[95],_0x72c4[162],_0x72c4[95],_0x72c4[163],_0x72c4[164],_0x72c4[95],_0x72c4[165],_0x72c4[95],_0x72c4[166]],_0x1f2bx4)})));this[_0x72c4[30]](_0x72c4[167], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[168],_0x72c4[169],_0x72c4[95],_0x72c4[170],_0x72c4[171],_0x72c4[172],_0x72c4[173],_0x72c4[95],_0x72c4[174],_0x72c4[95],_0x72c4[175],_0x72c4[176],_0x72c4[177]])})));this[_0x72c4[30]](_0x72c4[178], new Menu(mxUtils[_0x72c4[29]](this,function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[178],_0x72c4[95],_0x72c4[179]])})));};Menus[_0x72c4[5]][_0x72c4[30]]=function(_0x1f2bxf,_0x1f2bx3){this[_0x72c4[1]][_0x1f2bxf]=_0x1f2bx3};Menus[_0x72c4[5]][_0x72c4[26]]=function(_0x1f2bxf){return this[_0x72c4[1]][_0x1f2bxf]};Menus[_0x72c4[5]][_0x72c4[94]]=function(_0x1f2bxf,_0x1f2bx3,_0x1f2bx4){var _0x1f2bxb=this[_0x72c4[26]](_0x1f2bxf)[_0x72c4[78]];if(_0x1f2bx3[_0x72c4[81]]||_0x1f2bxb){var _0x1f2bx10=_0x1f2bx3[_0x72c4[72]](mxResources[_0x72c4[26]](_0x1f2bxf),null,null,_0x1f2bx4,null,_0x1f2bxb);this[_0x72c4[180]](_0x1f2bxf,_0x1f2bx3,_0x1f2bx10);};};Menus[_0x72c4[5]][_0x72c4[180]]=function(_0x1f2bxf,_0x1f2bx11,_0x1f2bx4){var _0x1f2bx3=this[_0x72c4[26]](_0x1f2bxf);if(_0x1f2bx3!=null&&(_0x1f2bx11[_0x72c4[81]]||_0x1f2bx3[_0x72c4[78]])){this[_0x72c4[26]](_0x1f2bxf)[_0x72c4[181]](_0x1f2bx11,_0x1f2bx4)};};Menus[_0x72c4[5]][_0x72c4[20]]=function(_0x1f2bx3,_0x1f2bx12,_0x1f2bx13,_0x1f2bx14,_0x1f2bx15,_0x1f2bx4){return _0x1f2bx3[_0x72c4[72]](_0x1f2bx12,null,mxUtils[_0x72c4[29]](this,function(){var _0x1f2bx2=this[_0x72c4[0]][_0x72c4[7]][_0x72c4[6]];_0x1f2bx2[_0x72c4[183]]()[_0x72c4[182]]();try{for(var _0x1f2bx6=0;_0x1f2bx6<_0x1f2bx13[_0x72c4[18]];_0x1f2bx6++){_0x1f2bx2[_0x72c4[184]](_0x1f2bx13[_0x1f2bx6],_0x1f2bx14[_0x1f2bx6])}}finally{_0x1f2bx2[_0x72c4[183]]()[_0x72c4[185]]()};}),_0x1f2bx4,_0x1f2bx15)};Menus[_0x72c4[5]][_0x72c4[28]]=function(_0x1f2bx3,_0x1f2bx12,_0x1f2bx16,_0x1f2bx17,_0x1f2bx18,_0x1f2bx4,_0x1f2bxb){return _0x1f2bx3[_0x72c4[72]](_0x1f2bx12,null,mxUtils[_0x72c4[29]](this,function(){var _0x1f2bx2=this[_0x72c4[0]][_0x72c4[7]][_0x72c4[6]];var _0x1f2bx19=_0x1f2bx17;var _0x1f2bx1a=_0x1f2bx2[_0x72c4[188]]()[_0x72c4[187]](_0x1f2bx2[_0x72c4[186]]());if(_0x1f2bx1a!=null){_0x1f2bx19=_0x1f2bx1a[_0x72c4[21]][_0x1f2bx18]||_0x1f2bx19};_0x1f2bx19=mxUtils[_0x72c4[191]](mxResources[_0x72c4[26]](_0x72c4[189])+((_0x1f2bx16[_0x72c4[18]]>0)?(_0x72c4[190]+_0x1f2bx16):_0x72c4[27]),_0x1f2bx19);if(_0x1f2bx19!=null&&_0x1f2bx19[_0x72c4[18]]>0){_0x1f2bx2[_0x72c4[184]](_0x1f2bx18,_0x1f2bx19)};}),_0x1f2bx4,null,_0x1f2bxb)};Menus[_0x72c4[5]][_0x72c4[92]]=function(_0x1f2bx3,_0x1f2bx18,_0x1f2bx4){var _0x1f2bx1b=this[_0x72c4[0]][_0x72c4[80]][_0x72c4[26]](_0x1f2bx18);if(_0x1f2bx1b!=null&&(_0x1f2bx3[_0x72c4[81]]||_0x1f2bx1b[_0x72c4[78]])){var _0x1f2bx1c=_0x1f2bx3[_0x72c4[72]](_0x1f2bx1b[_0x72c4[192]],null,_0x1f2bx1b[_0x72c4[193]],_0x1f2bx4,null,_0x1f2bx1b[_0x72c4[78]]);if(_0x1f2bx1b[_0x72c4[194]]&&_0x1f2bx1b[_0x72c4[195]]()){this[_0x72c4[196]](_0x1f2bx1c)};this[_0x72c4[197]](_0x1f2bx1c,_0x1f2bx1b);return _0x1f2bx1c;};return null;};Menus[_0x72c4[5]][_0x72c4[197]]=function(_0x1f2bx1c,_0x1f2bx1b){if(_0x1f2bx1b[_0x72c4[198]]!=null){var _0x1f2bx1d=_0x1f2bx1c[_0x72c4[23]][_0x72c4[22]][_0x72c4[22]];var _0x1f2bx1e=document[_0x72c4[200]](_0x72c4[199]);_0x1f2bx1e[_0x72c4[21]][_0x72c4[201]]=_0x72c4[202];mxUtils[_0x72c4[203]](_0x1f2bx1e,_0x1f2bx1b[_0x72c4[198]]);_0x1f2bx1d[_0x72c4[204]](_0x1f2bx1e);}};Menus[_0x72c4[5]][_0x72c4[196]]=function(_0x1f2bx1c){var _0x1f2bx1d=_0x1f2bx1c[_0x72c4[23]][_0x72c4[22]];_0x1f2bx1d[_0x72c4[21]][_0x72c4[205]]=_0x72c4[206]+IMAGE_PATH+_0x72c4[207];_0x1f2bx1d[_0x72c4[21]][_0x72c4[208]]=_0x72c4[209];_0x1f2bx1d[_0x72c4[21]][_0x72c4[210]]=_0x72c4[211];};Menus[_0x72c4[5]][_0x72c4[99]]=function(_0x1f2bx3,_0x1f2bx13,_0x1f2bx4){for(var _0x1f2bx6=0;_0x1f2bx6<_0x1f2bx13[_0x72c4[18]];_0x1f2bx6++){if(_0x1f2bx13[_0x1f2bx6]==_0x72c4[95]){_0x1f2bx3[_0x72c4[24]](_0x1f2bx4)}else {this[_0x72c4[92]](_0x1f2bx3,_0x1f2bx13[_0x1f2bx6],_0x1f2bx4)}}};Menus[_0x72c4[5]][_0x72c4[212]]=function(_0x1f2bx3,_0x1f2bx1f,_0x1f2bx20){var _0x1f2bx2=this[_0x72c4[0]][_0x72c4[7]][_0x72c4[6]];_0x1f2bx3[_0x72c4[213]]=true;if(_0x1f2bx2[_0x72c4[214]]()){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[168],_0x72c4[169],_0x72c4[95],_0x72c4[172],_0x72c4[95]])}else {this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[173],_0x72c4[95],_0x72c4[170],_0x72c4[171],_0x72c4[95],_0x72c4[174]]);if(_0x1f2bx2[_0x72c4[215]]()==1&&_0x1f2bx2[_0x72c4[183]]()[_0x72c4[216]](_0x1f2bx2[_0x72c4[186]]())){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[217]])};_0x1f2bx3[_0x72c4[24]]();};if(_0x1f2bx2[_0x72c4[215]]()>0){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[141],_0x72c4[142],_0x72c4[95]]);if(_0x1f2bx2[_0x72c4[183]]()[_0x72c4[216]](_0x1f2bx2[_0x72c4[186]]())){var _0x1f2bx21=false;var _0x1f2bx1f=_0x1f2bx2[_0x72c4[186]]();if(_0x1f2bx1f!=null&&_0x1f2bx2[_0x72c4[183]]()[_0x72c4[216]](_0x1f2bx1f)){var _0x1f2bx22=_0x1f2bx2[_0x72c4[219]][_0x72c4[218]](_0x1f2bx1f);if(_0x1f2bx22 instanceof mxEdgeHandler&&_0x1f2bx22[_0x72c4[220]]!=null&&_0x1f2bx22[_0x72c4[220]][_0x72c4[18]]>2){var _0x1f2bx23=_0x1f2bx22[_0x72c4[221]]( new mxMouseEvent(_0x1f2bx20));var _0x1f2bx24=this[_0x72c4[0]][_0x72c4[80]][_0x72c4[26]](_0x72c4[222]);_0x1f2bx24[_0x72c4[223]]=_0x1f2bx22;_0x1f2bx24[_0x72c4[224]]=_0x1f2bx23;_0x1f2bx21=_0x1f2bx23>0&&_0x1f2bx23<_0x1f2bx22[_0x72c4[220]][_0x72c4[18]];};};this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[95],(_0x1f2bx21)?_0x72c4[222]:_0x72c4[225]]);}else {if(_0x1f2bx2[_0x72c4[215]]()>1){_0x1f2bx3[_0x72c4[24]]();this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[143]]);}};_0x1f2bx3[_0x72c4[24]]();if(_0x1f2bx2[_0x72c4[215]]()==1){var _0x1f2bx25=_0x1f2bx2[_0x72c4[226]](_0x1f2bx2[_0x72c4[186]]());if(_0x1f2bx25!=null){this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[227]])};};}else {this[_0x72c4[99]](_0x1f2bx3,[_0x72c4[95],_0x72c4[175],_0x72c4[176],_0x72c4[95],_0x72c4[177]])};};Menus[_0x72c4[5]][_0x72c4[228]]=function(_0x1f2bx26){var _0x1f2bx27= new Menubar(this[_0x72c4[0]],_0x1f2bx26);var _0x1f2bx28=[_0x72c4[156],_0x72c4[167],_0x72c4[146],_0x72c4[91],_0x72c4[93],_0x72c4[140],_0x72c4[178]];for(var _0x1f2bx6=0;_0x1f2bx6<_0x1f2bx28[_0x72c4[18]];_0x1f2bx6++){_0x1f2bx27[_0x72c4[180]](mxResources[_0x72c4[26]](_0x1f2bx28[_0x1f2bx6]),this[_0x72c4[26]](_0x1f2bx28[_0x1f2bx6])[_0x72c4[193]])};return _0x1f2bx27;};function Menubar(_0x1f2bx1,_0x1f2bx26){this[_0x72c4[0]]=_0x1f2bx1;this[_0x72c4[229]]=_0x1f2bx26;mxEvent[_0x72c4[231]](document,mxUtils[_0x72c4[29]](this,function(_0x1f2bx20){this[_0x72c4[230]]()}));}Menubar[_0x72c4[5]][_0x72c4[230]]=function(){if(this[_0x72c4[232]]!=null){this[_0x72c4[232]][_0x72c4[230]]()}};Menubar[_0x72c4[5]][_0x72c4[180]]=function(_0x1f2bx12,_0x1f2bx2a){var _0x1f2bx2b=document[_0x72c4[200]](_0x72c4[233]);_0x1f2bx2b[_0x72c4[236]](_0x72c4[234],_0x72c4[235]);_0x1f2bx2b[_0x72c4[237]]=_0x72c4[238];mxUtils[_0x72c4[203]](_0x1f2bx2b,_0x1f2bx12);this[_0x72c4[239]](_0x1f2bx2b,_0x1f2bx2a);this[_0x72c4[229]][_0x72c4[204]](_0x1f2bx2b);return _0x1f2bx2b;};Menubar[_0x72c4[5]][_0x72c4[239]]=function(_0x1f2bx2b,_0x1f2bx2a){if(_0x1f2bx2a!=null){var _0x1f2bx2c=true;var _0x1f2bx2d=mxUtils[_0x72c4[29]](this,function(_0x1f2bx20){if(_0x1f2bx2c&&_0x1f2bx2b[_0x72c4[78]]==null||_0x1f2bx2b[_0x72c4[78]]){this[_0x72c4[0]][_0x72c4[7]][_0x72c4[6]][_0x72c4[240]][_0x72c4[230]]();var _0x1f2bx3= new mxPopupMenu(_0x1f2bx2a);_0x1f2bx3[_0x72c4[241]][_0x72c4[237]]+=_0x72c4[242];_0x1f2bx3[_0x72c4[213]]=true;_0x1f2bx3[_0x72c4[81]]=true;_0x1f2bx3[_0x72c4[243]]=true;_0x1f2bx3[_0x72c4[230]]=mxUtils[_0x72c4[29]](this,function(){mxPopupMenu[_0x72c4[5]][_0x72c4[230]][_0x72c4[244]](_0x1f2bx3,arguments);_0x1f2bx3[_0x72c4[245]]();this[_0x72c4[232]]=null;this[_0x72c4[246]]=null;});var _0x1f2bx2e=_0x1f2bx2b[_0x72c4[247]]+document[_0x72c4[250]](_0x72c4[249])[_0x72c4[248]]+22;var _0x1f2bx2f=_0x1f2bx2b[_0x72c4[251]]+_0x1f2bx2b[_0x72c4[252]]+140;_0x1f2bx3[_0x72c4[253]](_0x1f2bx2e,_0x1f2bx2f,null,_0x1f2bx20);this[_0x72c4[232]]=_0x1f2bx3;this[_0x72c4[246]]=_0x1f2bx2b;};_0x1f2bx2c=true;mxEvent[_0x72c4[254]](_0x1f2bx20);});mxEvent[_0x72c4[256]](_0x1f2bx2b,_0x72c4[255],mxUtils[_0x72c4[29]](this,function(_0x1f2bx20){if(this[_0x72c4[232]]!=null&&this[_0x72c4[246]]!=_0x1f2bx2b){this[_0x72c4[230]]();_0x1f2bx2d(_0x1f2bx20);}}));mxEvent[_0x72c4[256]](_0x1f2bx2b,_0x72c4[257],mxUtils[_0x72c4[29]](this,function(){_0x1f2bx2c=this[_0x72c4[246]]!=_0x1f2bx2b}));mxEvent[_0x72c4[256]](_0x1f2bx2b,_0x72c4[258],_0x1f2bx2d);}};function Menu(_0x1f2bx2a,_0x1f2bxb){mxEventSource[_0x72c4[259]](this);this[_0x72c4[193]]=_0x1f2bx2a;this[_0x72c4[78]]=(_0x1f2bxb!=null)?_0x1f2bxb:true;}mxUtils[_0x72c4[260]](Menu,mxEventSource);Menu[_0x72c4[5]][_0x72c4[261]]=function(_0x1f2bx19){if(this[_0x72c4[78]]!=_0x1f2bx19){this[_0x72c4[78]]=_0x1f2bx19;this[_0x72c4[263]]( new mxEventObject(_0x72c4[262]));}};Menu[_0x72c4[5]][_0x72c4[181]]=function(_0x1f2bx3,_0x1f2bx4){this[_0x72c4[193]](_0x1f2bx3,_0x1f2bx4)};
\ No newline at end of file
index f43093c..84e987d 100644 (file)
@@ -1 +1 @@
-var _0xb6fb=["\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x73\x69\x7A\x65","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6D\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x65\x6E\x64","\x63\x6C\x6F\x73\x65","\x63\x75\x62\x65","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x6E\x6F\x74\x65","\x74\x61\x62\x57\x69\x64\x74\x68","\x74\x61\x62\x48\x65\x69\x67\x68\x74","\x74\x61\x62\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x69\x67\x68\x74","\x6C\x65\x66\x74","\x66\x6F\x6C\x64\x65\x72","\x63\x61\x72\x64","\x71\x75\x61\x64\x54\x6F","\x74\x61\x70\x65","\x73\x74\x65\x70","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x65\x67\x69\x6E","\x73\x74\x72\x6F\x6B\x65","\x61\x70\x70\x6C\x79","\x70\x6C\x75\x73","\x64\x6F\x75\x62\x6C\x65","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x6D\x61\x78","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x79\x6D\x62\x6F\x6C","\x41\x6C\x69\x67\x6E","\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x57\x69\x64\x74\x68","\x48\x65\x69\x67\x68\x74","\x53\x70\x61\x63\x69\x6E\x67","\x41\x72\x63\x53\x70\x61\x63\x69\x6E\x67","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x73\x61\x76\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x72\x65\x73\x74\x6F\x72\x65","\x65\x78\x74","\x6D\x65\x73\x73\x61\x67\x65","\x61\x64\x64\x50\x69\x70\x65","\x63\x75\x72\x76\x65\x54\x6F","\x75\x6D\x6C\x41\x63\x74\x6F\x72","\x6C\x6F\x6C\x6C\x69\x70\x6F\x70","\x6A\x65\x74\x74\x79\x57\x69\x64\x74\x68","\x6A\x65\x74\x74\x79\x48\x65\x69\x67\x68\x74","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74","\x6F\x75\x74\x65\x72\x53\x74\x72\x6F\x6B\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x65\x6E\x64\x53\x74\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x74\x61\x74\x65","\x69\x6E\x69\x74\x53\x68\x61\x70\x65\x73","\x78","\x79","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x73\x68\x61\x70\x65\x73","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x72\x74","\x6C\x69\x6E\x6B","\x64\x61\x73\x68","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x73\x65\x47\x72\x69\x64\x46\x6F\x72\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x69\x6E\x69\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68","\x76\x69\x65\x77","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x73\x72\x63","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x74\x56\x69\x65\x77","\x63\x75\x72\x73\x6F\x72","\x6E\x6F\x64\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x43\x75\x72\x73\x6F\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74","\x72\x65\x64\x72\x61\x77","\x62\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x72\x6F\x79","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x6F\x75\x72\x63\x65","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x76\x65\x6E\x74","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x73\x63\x61\x6C\x65","\x73\x6E\x61\x70","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x70\x70\x6C\x79\x53\x74\x79\x6C\x65","\x72\x65\x73\x65\x74","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x73\x68\x61\x70\x65","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x63\x6F\x73","\x73\x69\x6E","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x50\x6F\x69\x6E\x74","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65\x55\x6E\x72\x6F\x74\x61\x74\x65\x64","\x72\x6F\x75\x6E\x64","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x63\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x61\x6C\x75\x65","\x73\x63\x61\x6C\x65\x46\x61\x63\x74\x6F\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x73\x74\x65\x6E\x63\x69\x6C","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73"];(function(){function _0x59f0x1(){}_0x59f0x1[_0xb6fb[0]]= new mxCylinder();_0x59f0x1[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x1;_0x59f0x1[_0xb6fb[0]][_0xb6fb[2]]=20;_0x59f0x1[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0x8=Math[_0xb6fb[6]](_0x59f0x5,Math[_0xb6fb[6]](_0x59f0x6,mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[2]])));if(_0x59f0x7){_0x59f0x2[_0xb6fb[7]](_0x59f0x8,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](_0x59f0x8,_0x59f0x8);_0x59f0x2[_0xb6fb[8]](0,0);_0x59f0x2[_0xb6fb[7]](_0x59f0x8,_0x59f0x8);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x8);_0x59f0x2[_0xb6fb[9]]();}else {_0x59f0x2[_0xb6fb[7]](0,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5-_0x59f0x8,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x8);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](_0x59f0x8,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6-_0x59f0x8);_0x59f0x2[_0xb6fb[8]](0,0);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[11]]=_0x59f0x1;function _0x59f0x9(){}_0x59f0x9[_0xb6fb[0]]= new mxCylinder();_0x59f0x9[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x9;_0x59f0x9[_0xb6fb[0]][_0xb6fb[2]]=30;_0x59f0x9[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0x8=Math[_0xb6fb[6]](_0x59f0x5,Math[_0xb6fb[6]](_0x59f0x6,mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[2]])));if(_0x59f0x7){_0x59f0x2[_0xb6fb[7]](_0x59f0x5-_0x59f0x8,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5-_0x59f0x8,_0x59f0x8);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x8);_0x59f0x2[_0xb6fb[9]]();}else {_0x59f0x2[_0xb6fb[7]](0,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5-_0x59f0x8,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x8);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,0);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[13]]=_0x59f0x9;function _0x59f0xa(){}_0x59f0xa[_0xb6fb[0]]= new mxCylinder();_0x59f0xa[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0xa;_0x59f0xa[_0xb6fb[0]][_0xb6fb[14]]=60;_0x59f0xa[_0xb6fb[0]][_0xb6fb[15]]=20;_0x59f0xa[_0xb6fb[0]][_0xb6fb[16]]=_0xb6fb[17];_0x59f0xa[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0xb=mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[14],this[_0xb6fb[14]]);var _0x59f0xc=mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[15],this[_0xb6fb[15]]);var _0x59f0xd=mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[16],this[_0xb6fb[16]]);var _0x59f0xe=Math[_0xb6fb[6]](_0x59f0x5,_0x59f0xb);var _0x59f0xf=Math[_0xb6fb[6]](_0x59f0x6,_0x59f0xc);if(_0x59f0x7){if(_0x59f0xd==_0xb6fb[18]){_0x59f0x2[_0xb6fb[7]](0,_0x59f0xf);_0x59f0x2[_0xb6fb[8]](_0x59f0xe,_0x59f0xf);}else {_0x59f0x2[_0xb6fb[7]](_0x59f0x5-_0x59f0xe,_0x59f0xf);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0xf);};_0x59f0x2[_0xb6fb[9]]();}else {if(_0x59f0xd==_0xb6fb[18]){_0x59f0x2[_0xb6fb[7]](0,0);_0x59f0x2[_0xb6fb[8]](_0x59f0xe,0);_0x59f0x2[_0xb6fb[8]](_0x59f0xe,_0x59f0xf);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0xf);}else {_0x59f0x2[_0xb6fb[7]](0,_0x59f0xf);_0x59f0x2[_0xb6fb[8]](_0x59f0x5-_0x59f0xe,_0x59f0xf);_0x59f0x2[_0xb6fb[8]](_0x59f0x5-_0x59f0xe,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,0);};_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0xf);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[19]]=_0x59f0xa;function _0x59f0x10(){}_0x59f0x10[_0xb6fb[0]]= new mxCylinder();_0x59f0x10[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x10;_0x59f0x10[_0xb6fb[0]][_0xb6fb[2]]=30;_0x59f0x10[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0x8=Math[_0xb6fb[6]](_0x59f0x5,Math[_0xb6fb[6]](_0x59f0x6,mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[2]])));if(!_0x59f0x7){_0x59f0x2[_0xb6fb[7]](_0x59f0x8,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x8);_0x59f0x2[_0xb6fb[8]](_0x59f0x8,0);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[20]]=_0x59f0x10;function _0x59f0x11(){}_0x59f0x11[_0xb6fb[0]]= new mxCylinder();_0x59f0x11[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x11;_0x59f0x11[_0xb6fb[0]][_0xb6fb[2]]=0.4;_0x59f0x11[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0x8=mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[2]]);var _0x59f0xf=_0x59f0x6*_0x59f0x8;var _0x59f0x12=1.4;if(!_0x59f0x7){_0x59f0x2[_0xb6fb[7]](0,_0x59f0xf/2);_0x59f0x2[_0xb6fb[21]](_0x59f0x5/4,_0x59f0xf*_0x59f0x12,_0x59f0x5/2,_0x59f0xf/2);_0x59f0x2[_0xb6fb[21]](_0x59f0x5*3/4,_0x59f0xf*(1-_0x59f0x12),_0x59f0x5,_0x59f0xf/2);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6-_0x59f0xf/2);_0x59f0x2[_0xb6fb[21]](_0x59f0x5*3/4,_0x59f0x6-_0x59f0xf*_0x59f0x12,_0x59f0x5/2,_0x59f0x6-_0x59f0xf/2);_0x59f0x2[_0xb6fb[21]](_0x59f0x5/4,_0x59f0x6-_0x59f0xf*(1-_0x59f0x12),0,_0x59f0x6-_0x59f0xf/2);_0x59f0x2[_0xb6fb[8]](0,_0x59f0xf/2);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[22]]=_0x59f0x11;function _0x59f0x13(){}_0x59f0x13[_0xb6fb[0]]= new mxCylinder();_0x59f0x13[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x13;_0x59f0x13[_0xb6fb[0]][_0xb6fb[2]]=0.2;_0x59f0x13[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0x8=_0x59f0x5*mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[2]]);if(!_0x59f0x7){_0x59f0x2[_0xb6fb[7]](0,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5-_0x59f0x8,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6/2);_0x59f0x2[_0xb6fb[8]](_0x59f0x5-_0x59f0x8,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](_0x59f0x8,_0x59f0x6/2);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[23]]=_0x59f0x13;function _0x59f0x14(){mxRectangleShape[_0xb6fb[24]](this)}mxUtils[_0xb6fb[25]](_0x59f0x14,mxRectangleShape);_0x59f0x14[_0xb6fb[0]][_0xb6fb[26]]=function(){return false};_0x59f0x14[_0xb6fb[0]][_0xb6fb[27]]=function(_0x59f0x15,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6){var _0x59f0x16=Math[_0xb6fb[6]](_0x59f0x5/5,_0x59f0x6/5)+1;_0x59f0x15[_0xb6fb[28]]();_0x59f0x15[_0xb6fb[7]](_0x59f0x3+_0x59f0x5/2,_0x59f0x4+_0x59f0x16);_0x59f0x15[_0xb6fb[8]](_0x59f0x3+_0x59f0x5/2,_0x59f0x4+_0x59f0x6-_0x59f0x16);_0x59f0x15[_0xb6fb[7]](_0x59f0x3+_0x59f0x16,_0x59f0x4+_0x59f0x6/2);_0x59f0x15[_0xb6fb[8]](_0x59f0x3+_0x59f0x5-_0x59f0x16,_0x59f0x4+_0x59f0x6/2);_0x59f0x15[_0xb6fb[9]]();_0x59f0x15[_0xb6fb[29]]();mxRectangleShape[_0xb6fb[0]][_0xb6fb[27]][_0xb6fb[30]](this,arguments);};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[31]]=_0x59f0x14;function _0x59f0x17(){mxRectangleShape[_0xb6fb[24]](this)}mxUtils[_0xb6fb[25]](_0x59f0x17,mxRectangleShape);_0x59f0x17[_0xb6fb[0]][_0xb6fb[26]]=function(){return false};_0x59f0x17[_0xb6fb[0]][_0xb6fb[27]]=function(_0x59f0x15,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6){if(this[_0xb6fb[4]]!=null){if(this[_0xb6fb[4]][_0xb6fb[32]]==1){var _0x59f0x18=Math[_0xb6fb[34]](2,this[_0xb6fb[33]]+1);mxRectangleShape[_0xb6fb[0]][_0xb6fb[35]][_0xb6fb[24]](this,_0x59f0x15,_0x59f0x3+_0x59f0x18,_0x59f0x4+_0x59f0x18,_0x59f0x5-2*_0x59f0x18,_0x59f0x6-2*_0x59f0x18);mxRectangleShape[_0xb6fb[0]][_0xb6fb[27]][_0xb6fb[30]](this,arguments);_0x59f0x3+=_0x59f0x18;_0x59f0x4+=_0x59f0x18;_0x59f0x5-=2*_0x59f0x18;_0x59f0x6-=2*_0x59f0x18;};_0x59f0x15[_0xb6fb[36]](false);var _0x59f0x19=0;var _0x59f0x1a=null;do{_0x59f0x1a=mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][this[_0xb6fb[4]][_0xb6fb[37]+_0x59f0x19]];if(_0x59f0x1a!=null){var _0x59f0x1b=this[_0xb6fb[4]][_0xb6fb[37]+_0x59f0x19+_0xb6fb[38]];var _0x59f0x1c=this[_0xb6fb[4]][_0xb6fb[37]+_0x59f0x19+_0xb6fb[39]];var _0x59f0x1d=this[_0xb6fb[4]][_0xb6fb[37]+_0x59f0x19+_0xb6fb[40]];var _0x59f0x1e=this[_0xb6fb[4]][_0xb6fb[37]+_0x59f0x19+_0xb6fb[41]];var _0x59f0x1f=this[_0xb6fb[4]][_0xb6fb[37]+_0x59f0x19+_0xb6fb[42]]||0;var _0x59f0x20=this[_0xb6fb[4]][_0xb6fb[37]+_0x59f0x19+_0xb6fb[43]];if(_0x59f0x20!=null){_0x59f0x1f+=this[_0xb6fb[44]](_0x59f0x5+this[_0xb6fb[33]],_0x59f0x6+this[_0xb6fb[33]])*_0x59f0x20};var _0x59f0x21=_0x59f0x3;var _0x59f0x22=_0x59f0x4;if(_0x59f0x1b==mxConstants[_0xb6fb[45]]){_0x59f0x21+=(_0x59f0x5-_0x59f0x1d)/2}else {if(_0x59f0x1b==mxConstants[_0xb6fb[46]]){_0x59f0x21+=_0x59f0x5-_0x59f0x1d-_0x59f0x1f}else {_0x59f0x21+=_0x59f0x1f}};if(_0x59f0x1c==mxConstants[_0xb6fb[47]]){_0x59f0x22+=(_0x59f0x6-_0x59f0x1e)/2}else {if(_0x59f0x1c==mxConstants[_0xb6fb[48]]){_0x59f0x22+=_0x59f0x6-_0x59f0x1e-_0x59f0x1f}else {_0x59f0x22+=_0x59f0x1f}};_0x59f0x15[_0xb6fb[49]]();var _0x59f0x23= new _0x59f0x1a();_0x59f0x23[_0xb6fb[4]]=this[_0xb6fb[4]];_0x59f0x1a[_0xb6fb[0]][_0xb6fb[50]][_0xb6fb[24]](_0x59f0x23,_0x59f0x15,_0x59f0x21,_0x59f0x22,_0x59f0x1d,_0x59f0x1e);_0x59f0x15[_0xb6fb[51]]();};_0x59f0x19++;}while(_0x59f0x1a!=null);;}};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[52]]=_0x59f0x17;function _0x59f0x24(){}_0x59f0x24[_0xb6fb[0]]= new mxCylinder();_0x59f0x24[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x24;_0x59f0x24[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){if(_0x59f0x7){_0x59f0x2[_0xb6fb[7]](0,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5/2,_0x59f0x6/2);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,0);_0x59f0x2[_0xb6fb[9]]();}else {_0x59f0x2[_0xb6fb[7]](0,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6);_0x59f0x2[_0xb6fb[10]]();}};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[53]]=_0x59f0x24;function _0x59f0x25(){}_0x59f0x25[_0xb6fb[0]]= new mxCylinder();_0x59f0x25[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x25;_0x59f0x25[_0xb6fb[0]][_0xb6fb[54]]=true;_0x59f0x25[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0x1d=_0x59f0x5/3;var _0x59f0x1e=_0x59f0x6/4;if(!_0x59f0x7){_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,_0x59f0x1e);_0x59f0x2[_0xb6fb[55]](_0x59f0x5/2-_0x59f0x1d,_0x59f0x1e,_0x59f0x5/2-_0x59f0x1d,0,_0x59f0x5/2,0);_0x59f0x2[_0xb6fb[55]](_0x59f0x5/2+_0x59f0x1d,0,_0x59f0x5/2+_0x59f0x1d,_0x59f0x1e,_0x59f0x5/2,_0x59f0x1e);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,_0x59f0x1e);_0x59f0x2[_0xb6fb[8]](_0x59f0x5/2,2*_0x59f0x6/3);_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,_0x59f0x6/3);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6/3);_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,_0x59f0x6/3);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6/3);_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,2*_0x59f0x6/3);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x6);_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,2*_0x59f0x6/3);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6);_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[56]]=_0x59f0x25;function _0x59f0x26(){}_0x59f0x26[_0xb6fb[0]]= new mxCylinder();_0x59f0x26[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x26;_0x59f0x26[_0xb6fb[0]][_0xb6fb[2]]=10;_0x59f0x26[_0xb6fb[0]][_0xb6fb[54]]=true;_0x59f0x26[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0x27=mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[2]]);var _0x59f0x1d=_0x59f0x27*2/3;var _0x59f0x1e=_0x59f0x27;if(!_0x59f0x7){_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,_0x59f0x1e);_0x59f0x2[_0xb6fb[55]](_0x59f0x5/2-_0x59f0x1d,_0x59f0x1e,_0x59f0x5/2-_0x59f0x1d,0,_0x59f0x5/2,0);_0x59f0x2[_0xb6fb[55]](_0x59f0x5/2+_0x59f0x1d,0,_0x59f0x5/2+_0x59f0x1d,_0x59f0x1e,_0x59f0x5/2,_0x59f0x1e);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[7]](_0x59f0x5/2,_0x59f0x1e);_0x59f0x2[_0xb6fb[8]](_0x59f0x5/2,_0x59f0x6);_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[57]]=_0x59f0x26;function _0x59f0x28(){}_0x59f0x28[_0xb6fb[0]]= new mxCylinder();_0x59f0x28[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x28;_0x59f0x28[_0xb6fb[0]][_0xb6fb[58]]=32;_0x59f0x28[_0xb6fb[0]][_0xb6fb[59]]=12;_0x59f0x28[_0xb6fb[0]][_0xb6fb[3]]=function(_0x59f0x2,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6,_0x59f0x7){var _0x59f0xe=mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[58],this[_0xb6fb[58]]);var _0x59f0xf=mxUtils[_0xb6fb[5]](this[_0xb6fb[4]],_0xb6fb[59],this[_0xb6fb[59]]);var _0x59f0x29=_0x59f0xe/2;var _0x59f0x2a=_0x59f0x29+_0x59f0xe/2;var _0x59f0x2b=0.3*_0x59f0x6-_0x59f0xf/2;var _0x59f0x2c=0.7*_0x59f0x6-_0x59f0xf/2;if(_0x59f0x7){_0x59f0x2[_0xb6fb[7]](_0x59f0x29,_0x59f0x2b);_0x59f0x2[_0xb6fb[8]](_0x59f0x2a,_0x59f0x2b);_0x59f0x2[_0xb6fb[8]](_0x59f0x2a,_0x59f0x2b+_0x59f0xf);_0x59f0x2[_0xb6fb[8]](_0x59f0x29,_0x59f0x2b+_0x59f0xf);_0x59f0x2[_0xb6fb[7]](_0x59f0x29,_0x59f0x2c);_0x59f0x2[_0xb6fb[8]](_0x59f0x2a,_0x59f0x2c);_0x59f0x2[_0xb6fb[8]](_0x59f0x2a,_0x59f0x2c+_0x59f0xf);_0x59f0x2[_0xb6fb[8]](_0x59f0x29,_0x59f0x2c+_0x59f0xf);_0x59f0x2[_0xb6fb[9]]();}else {_0x59f0x2[_0xb6fb[7]](_0x59f0x29,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,0);_0x59f0x2[_0xb6fb[8]](_0x59f0x5,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](_0x59f0x29,_0x59f0x6);_0x59f0x2[_0xb6fb[8]](_0x59f0x29,_0x59f0x2c+_0x59f0xf);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x2c+_0x59f0xf);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x2c);_0x59f0x2[_0xb6fb[8]](_0x59f0x29,_0x59f0x2c);_0x59f0x2[_0xb6fb[8]](_0x59f0x29,_0x59f0x2b+_0x59f0xf);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x2b+_0x59f0xf);_0x59f0x2[_0xb6fb[8]](0,_0x59f0x2b);_0x59f0x2[_0xb6fb[8]](_0x59f0x29,_0x59f0x2b);_0x59f0x2[_0xb6fb[10]]();_0x59f0x2[_0xb6fb[9]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[60]]=_0x59f0x28;function _0x59f0x2d(){}_0x59f0x2d[_0xb6fb[0]]= new mxDoubleEllipse();_0x59f0x2d[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x2d;_0x59f0x2d[_0xb6fb[0]][_0xb6fb[61]]=true;_0x59f0x2d[_0xb6fb[0]][_0xb6fb[50]]=function(_0x59f0x15,_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6){var _0x59f0x18=Math[_0xb6fb[6]](4,Math[_0xb6fb[6]](_0x59f0x5/5,_0x59f0x6/5));if(_0x59f0x5>0&&_0x59f0x6>0){_0x59f0x15[_0xb6fb[62]](_0x59f0x3+_0x59f0x18,_0x59f0x4+_0x59f0x18,_0x59f0x5-2*_0x59f0x18,_0x59f0x6-2*_0x59f0x18);_0x59f0x15[_0xb6fb[63]]();};_0x59f0x15[_0xb6fb[64]](false);if(this[_0xb6fb[61]]){_0x59f0x15[_0xb6fb[62]](_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6);_0x59f0x15[_0xb6fb[29]]();};};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[65]]=_0x59f0x2d;function _0x59f0x2e(){}_0x59f0x2e[_0xb6fb[0]]= new _0x59f0x2d();_0x59f0x2e[_0xb6fb[0]][_0xb6fb[1]]=_0x59f0x2e;_0x59f0x2e[_0xb6fb[0]][_0xb6fb[61]]=false;mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[66]]=_0x59f0x2e;var _0x59f0x2f=mxImageExport[_0xb6fb[0]][_0xb6fb[67]];mxImageExport[_0xb6fb[0]][_0xb6fb[67]]=function(){_0x59f0x2f[_0xb6fb[30]](this,arguments);function _0x59f0x30(_0x59f0x31){return {drawShape:function(_0x59f0x32,_0x59f0x33,_0x59f0x34,_0x59f0x35){var _0x59f0x3=_0x59f0x34[_0xb6fb[68]];var _0x59f0x4=_0x59f0x34[_0xb6fb[69]];var _0x59f0x5=_0x59f0x34[_0xb6fb[70]];var _0x59f0x6=_0x59f0x34[_0xb6fb[71]];if(_0x59f0x35){var _0x59f0x18=Math[_0xb6fb[6]](4,Math[_0xb6fb[6]](_0x59f0x5/5,_0x59f0x6/5));_0x59f0x3+=_0x59f0x18;_0x59f0x4+=_0x59f0x18;_0x59f0x5-=2*_0x59f0x18;_0x59f0x6-=2*_0x59f0x18;if(_0x59f0x5>0&&_0x59f0x6>0){_0x59f0x32[_0xb6fb[62]](_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6)};return true;}else {_0x59f0x32[_0xb6fb[63]]();if(_0x59f0x31){_0x59f0x32[_0xb6fb[62]](_0x59f0x3,_0x59f0x4,_0x59f0x5,_0x59f0x6);_0x59f0x32[_0xb6fb[29]]();};};}}}this[_0xb6fb[72]][_0xb6fb[65]]=_0x59f0x30(true);this[_0xb6fb[72]][_0xb6fb[66]]=_0x59f0x30(false);};function _0x59f0x36(){mxArrow[_0xb6fb[24]](this)}mxUtils[_0xb6fb[25]](_0x59f0x36,mxArrow);_0x59f0x36[_0xb6fb[0]][_0xb6fb[73]]=function(_0x59f0x15,_0x59f0x37){var _0x59f0x1d=10;var _0x59f0x38=_0x59f0x37[0];var _0x59f0x39=_0x59f0x37[_0x59f0x37[_0xb6fb[74]]-1];var _0x59f0xe=_0x59f0x39[_0xb6fb[68]]-_0x59f0x38[_0xb6fb[68]];var _0x59f0xf=_0x59f0x39[_0xb6fb[69]]-_0x59f0x38[_0xb6fb[69]];var _0x59f0x3a=Math[_0xb6fb[75]](_0x59f0xe*_0x59f0xe+_0x59f0xf*_0x59f0xf);var _0x59f0x3b=_0x59f0x3a;var _0x59f0x3c=_0x59f0xe/_0x59f0x3a;var _0x59f0x3d=_0x59f0xf/_0x59f0x3a;var _0x59f0x3e=_0x59f0x3b*_0x59f0x3c;var _0x59f0x3f=_0x59f0x3b*_0x59f0x3d;var _0x59f0x40=_0x59f0x1d*_0x59f0x3d/3;var _0x59f0x41=-_0x59f0x1d*_0x59f0x3c/3;var _0x59f0x42=_0x59f0x38[_0xb6fb[68]]-_0x59f0x40/2;var _0x59f0x43=_0x59f0x38[_0xb6fb[69]]-_0x59f0x41/2;var _0x59f0x44=_0x59f0x42+_0x59f0x40;var _0x59f0x45=_0x59f0x43+_0x59f0x41;var _0x59f0x46=_0x59f0x44+_0x59f0x3e;var _0x59f0x47=_0x59f0x45+_0x59f0x3f;var _0x59f0x48=_0x59f0x46+_0x59f0x40;var _0x59f0x49=_0x59f0x47+_0x59f0x41;var _0x59f0x4a=_0x59f0x48-3*_0x59f0x40;var _0x59f0x4b=_0x59f0x49-3*_0x59f0x41;_0x59f0x15[_0xb6fb[28]]();_0x59f0x15[_0xb6fb[7]](_0x59f0x44,_0x59f0x45);_0x59f0x15[_0xb6fb[8]](_0x59f0x46,_0x59f0x47);_0x59f0x15[_0xb6fb[7]](_0x59f0x4a+_0x59f0x40,_0x59f0x4b+_0x59f0x41);_0x59f0x15[_0xb6fb[8]](_0x59f0x42,_0x59f0x43);_0x59f0x15[_0xb6fb[29]]();};mxCellRenderer[_0xb6fb[0]][_0xb6fb[12]][_0xb6fb[76]]=_0x59f0x36;mxMarker[_0xb6fb[78]](_0xb6fb[77],function(_0x59f0x32,_0x59f0x1a,_0x59f0x4c,_0x59f0x39,_0x59f0x4d,_0x59f0x4e,_0x59f0x4f,_0x59f0x50,_0x59f0x51,_0x59f0x52){var _0x59f0x3c=_0x59f0x4d*(_0x59f0x4f+_0x59f0x51+1);var _0x59f0x3d=_0x59f0x4e*(_0x59f0x4f+_0x59f0x51+1);return function(){_0x59f0x32[_0xb6fb[28]]();_0x59f0x32[_0xb6fb[7]](_0x59f0x39[_0xb6fb[68]]-_0x59f0x3c/2-_0x59f0x3d/2,_0x59f0x39[_0xb6fb[69]]-_0x59f0x3d/2+_0x59f0x3c/2);_0x59f0x32[_0xb6fb[8]](_0x59f0x39[_0xb6fb[68]]+_0x59f0x3d/2-3*_0x59f0x3c/2,_0x59f0x39[_0xb6fb[69]]-3*_0x59f0x3d/2-_0x59f0x3c/2);_0x59f0x32[_0xb6fb[29]]();};});var _0x59f0x53=-99;if( typeof (mxVertexHandler)!=_0xb6fb[79]){function _0x59f0x54(_0x59f0x33){mxVertexHandler[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x54,mxVertexHandler);_0x59f0x54[_0xb6fb[0]][_0xb6fb[80]]=false;_0x59f0x54[_0xb6fb[0]][_0xb6fb[81]]=function(){this[_0xb6fb[82]]=mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],mxConstants.STYLE_HORIZONTAL,true);var _0x59f0x55=this[_0xb6fb[83]][_0xb6fb[85]][_0xb6fb[84]];if(this[_0xb6fb[86]]!=null){var _0x59f0x34= new mxRectangle(0,0,this[_0xb6fb[86]][_0xb6fb[70]],this[_0xb6fb[86]][_0xb6fb[71]]);this[_0xb6fb[87]]= new mxImageShape(_0x59f0x34,this[_0xb6fb[86]][_0xb6fb[88]]);}else {var _0x59f0x4f=10;var _0x59f0x34= new mxRectangle(0,0,_0x59f0x4f,_0x59f0x4f);this[_0xb6fb[87]]= new mxRhombus(_0x59f0x34,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);};this[_0xb6fb[87]][_0xb6fb[89]]=(_0x59f0x55[_0xb6fb[89]]!=mxConstants[_0xb6fb[90]])?mxConstants[_0xb6fb[91]]:mxConstants[_0xb6fb[90]];this[_0xb6fb[87]][_0xb6fb[81]](_0x59f0x55[_0xb6fb[93]]()[_0xb6fb[92]]());this[_0xb6fb[87]][_0xb6fb[95]][_0xb6fb[4]][_0xb6fb[94]]=this[_0xb6fb[96]]();mxEvent[_0xb6fb[97]](this[_0xb6fb[87]][_0xb6fb[95]],_0x59f0x55,this[_0xb6fb[83]]);mxVertexHandler[_0xb6fb[0]][_0xb6fb[81]][_0xb6fb[30]](this,arguments);};_0x59f0x54[_0xb6fb[0]][_0xb6fb[96]]=function(){return _0xb6fb[98]};_0x59f0x54[_0xb6fb[0]][_0xb6fb[99]]=function(){mxVertexHandler[_0xb6fb[0]][_0xb6fb[99]][_0xb6fb[30]](this,arguments);var _0x59f0x4f=this[_0xb6fb[87]][_0xb6fb[100]][_0xb6fb[70]];this[_0xb6fb[87]][_0xb6fb[100]]=this[_0xb6fb[101]](_0x59f0x4f);this[_0xb6fb[87]][_0xb6fb[99]]();};_0x59f0x54[_0xb6fb[0]][_0xb6fb[102]]=function(){mxVertexHandler[_0xb6fb[0]][_0xb6fb[102]][_0xb6fb[30]](this,arguments);if(this[_0xb6fb[87]]!=null){this[_0xb6fb[87]][_0xb6fb[102]]();this[_0xb6fb[87]]=null;};};_0x59f0x54[_0xb6fb[0]][_0xb6fb[103]]=function(_0x59f0x56){if(_0x59f0x56[_0xb6fb[104]](this[_0xb6fb[87]])){return _0x59f0x53};return mxVertexHandler[_0xb6fb[0]][_0xb6fb[103]][_0xb6fb[30]](this,arguments);};_0x59f0x54[_0xb6fb[0]][_0xb6fb[105]]=function(_0x59f0x57,_0x59f0x56){if(!_0x59f0x56[_0xb6fb[106]]()&&this[_0xb6fb[107]]==_0x59f0x53){var _0x59f0x58= new mxPoint(_0x59f0x56[_0xb6fb[108]](),_0x59f0x56[_0xb6fb[109]]());this[_0xb6fb[110]](_0x59f0x58);var _0x59f0x59=this[_0xb6fb[84]][_0xb6fb[112]](_0x59f0x56[_0xb6fb[111]]());var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];if(_0x59f0x59&&this[_0xb6fb[80]]){_0x59f0x58[_0xb6fb[68]]=this[_0xb6fb[84]][_0xb6fb[114]](_0x59f0x58[_0xb6fb[68]]/_0x59f0x5a)*_0x59f0x5a;_0x59f0x58[_0xb6fb[69]]=this[_0xb6fb[84]][_0xb6fb[114]](_0x59f0x58[_0xb6fb[69]]/_0x59f0x5a)*_0x59f0x5a;};this[_0xb6fb[115]](_0x59f0x58);this[_0xb6fb[116]](this[_0xb6fb[87]],_0x59f0x58[_0xb6fb[68]],_0x59f0x58[_0xb6fb[69]]);this[_0xb6fb[83]][_0xb6fb[85]][_0xb6fb[84]][_0xb6fb[117]][_0xb6fb[99]](this[_0xb6fb[83]],true);_0x59f0x56[_0xb6fb[118]]();}else {mxVertexHandler[_0xb6fb[0]][_0xb6fb[105]][_0xb6fb[30]](this,arguments)}};_0x59f0x54[_0xb6fb[0]][_0xb6fb[119]]=function(_0x59f0x57,_0x59f0x56){if(!_0x59f0x56[_0xb6fb[106]]()&&this[_0xb6fb[107]]==_0x59f0x53){this[_0xb6fb[120]]();this[_0xb6fb[121]]();_0x59f0x56[_0xb6fb[118]]();}else {mxVertexHandler[_0xb6fb[0]][_0xb6fb[119]][_0xb6fb[30]](this,arguments)}};_0x59f0x54[_0xb6fb[0]][_0xb6fb[101]]=function(_0x59f0x4f){var _0x59f0x5b=this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[122]]();var _0x59f0x5c=mxUtils[_0xb6fb[124]](_0x59f0x5b);var _0x59f0x5d=Math[_0xb6fb[125]](_0x59f0x5c);var _0x59f0x5e=Math[_0xb6fb[126]](_0x59f0x5c);var _0x59f0x34= new mxRectangle(this[_0xb6fb[83]][_0xb6fb[68]],this[_0xb6fb[83]][_0xb6fb[69]],this[_0xb6fb[83]][_0xb6fb[70]],this[_0xb6fb[83]][_0xb6fb[71]]);if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[127]]()){var _0x59f0x5f=(_0x59f0x34[_0xb6fb[70]]-_0x59f0x34[_0xb6fb[71]])/2;_0x59f0x34[_0xb6fb[68]]+=_0x59f0x5f;_0x59f0x34[_0xb6fb[69]]-=_0x59f0x5f;var _0x59f0x23=_0x59f0x34[_0xb6fb[70]];_0x59f0x34[_0xb6fb[70]]=_0x59f0x34[_0xb6fb[71]];_0x59f0x34[_0xb6fb[71]]=_0x59f0x23;};var _0x59f0x60=this[_0xb6fb[128]](_0x59f0x34);if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[129]]){_0x59f0x60[_0xb6fb[68]]=2*_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]-_0x59f0x60[_0xb6fb[68]]};if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[130]]){_0x59f0x60[_0xb6fb[69]]=2*_0x59f0x34[_0xb6fb[69]]+_0x59f0x34[_0xb6fb[71]]-_0x59f0x60[_0xb6fb[69]]};_0x59f0x60=mxUtils[_0xb6fb[133]](_0x59f0x60,_0x59f0x5d,_0x59f0x5e, new mxPoint(this[_0xb6fb[83]][_0xb6fb[131]](),this[_0xb6fb[83]][_0xb6fb[132]]()));return  new mxRectangle(_0x59f0x60[_0xb6fb[68]]-_0x59f0x4f/2,_0x59f0x60[_0xb6fb[69]]-_0x59f0x4f/2,_0x59f0x4f,_0x59f0x4f);};_0x59f0x54[_0xb6fb[0]][_0xb6fb[128]]=function(_0x59f0x34){return null};_0x59f0x54[_0xb6fb[0]][_0xb6fb[115]]=function(_0x59f0x58){};_0x59f0x54[_0xb6fb[0]][_0xb6fb[110]]=function(_0x59f0x58){_0x59f0x58[_0xb6fb[68]]=Math[_0xb6fb[34]](this[_0xb6fb[83]][_0xb6fb[68]],Math[_0xb6fb[6]](this[_0xb6fb[83]][_0xb6fb[68]]+this[_0xb6fb[83]][_0xb6fb[70]],_0x59f0x58[_0xb6fb[68]]));_0x59f0x58[_0xb6fb[69]]=Math[_0xb6fb[34]](this[_0xb6fb[83]][_0xb6fb[69]],Math[_0xb6fb[6]](this[_0xb6fb[83]][_0xb6fb[69]]+this[_0xb6fb[83]][_0xb6fb[71]],_0x59f0x58[_0xb6fb[69]]));};_0x59f0x54[_0xb6fb[0]][_0xb6fb[120]]=function(){};function _0x59f0x61(_0x59f0x33){_0x59f0x54[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x61,_0x59f0x54);_0x59f0x61[_0xb6fb[0]][_0xb6fb[128]]=function(_0x59f0x34){var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];var _0x59f0xb=Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[70]],mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[14],60)*_0x59f0x5a);var _0x59f0xc=Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[71]],mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[15],20)*_0x59f0x5a);var _0x59f0xd=mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[16],_0xb6fb[17]);var _0x59f0x3=(_0x59f0xd==_0xb6fb[18])?_0x59f0x34[_0xb6fb[68]]+_0x59f0xb:_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]-_0x59f0xb;return  new mxPoint(_0x59f0x3,_0x59f0x34[_0xb6fb[69]]+_0x59f0xc);};_0x59f0x61[_0xb6fb[0]][_0xb6fb[115]]=function(_0x59f0x58){var _0x59f0x5b=this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[122]]();var _0x59f0x5c=mxUtils[_0xb6fb[124]](_0x59f0x5b);var _0x59f0x5d=Math[_0xb6fb[125]](-_0x59f0x5c);var _0x59f0x5e=Math[_0xb6fb[126]](-_0x59f0x5c);var _0x59f0x34= new mxRectangle(this[_0xb6fb[83]][_0xb6fb[68]],this[_0xb6fb[83]][_0xb6fb[69]],this[_0xb6fb[83]][_0xb6fb[70]],this[_0xb6fb[83]][_0xb6fb[71]]);if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[127]]()){var _0x59f0x5f=(_0x59f0x34[_0xb6fb[70]]-_0x59f0x34[_0xb6fb[71]])/2;_0x59f0x34[_0xb6fb[68]]+=_0x59f0x5f;_0x59f0x34[_0xb6fb[69]]-=_0x59f0x5f;var _0x59f0x23=_0x59f0x34[_0xb6fb[70]];_0x59f0x34[_0xb6fb[70]]=_0x59f0x34[_0xb6fb[71]];_0x59f0x34[_0xb6fb[71]]=_0x59f0x23;};var _0x59f0x60= new mxPoint(_0x59f0x58[_0xb6fb[68]],_0x59f0x58[_0xb6fb[69]]);_0x59f0x60=mxUtils[_0xb6fb[133]](_0x59f0x60,_0x59f0x5d,_0x59f0x5e, new mxPoint(this[_0xb6fb[83]][_0xb6fb[131]](),this[_0xb6fb[83]][_0xb6fb[132]]()));if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[129]]){_0x59f0x60[_0xb6fb[68]]=2*_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]-_0x59f0x60[_0xb6fb[68]]};if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[130]]){_0x59f0x60[_0xb6fb[69]]=2*_0x59f0x34[_0xb6fb[69]]+_0x59f0x34[_0xb6fb[71]]-_0x59f0x60[_0xb6fb[69]]};var _0x59f0x62=this[_0xb6fb[134]](_0x59f0x60,_0x59f0x34);if(_0x59f0x62!=null){if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[129]]){_0x59f0x62[_0xb6fb[68]]=2*_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]-_0x59f0x62[_0xb6fb[68]]};if(this[_0xb6fb[83]][_0xb6fb[123]][_0xb6fb[130]]){_0x59f0x62[_0xb6fb[69]]=2*_0x59f0x34[_0xb6fb[69]]+_0x59f0x34[_0xb6fb[71]]-_0x59f0x62[_0xb6fb[69]]};_0x59f0x5d=Math[_0xb6fb[125]](_0x59f0x5c);_0x59f0x5e=Math[_0xb6fb[126]](_0x59f0x5c);_0x59f0x62=mxUtils[_0xb6fb[133]](_0x59f0x62,_0x59f0x5d,_0x59f0x5e, new mxPoint(this[_0xb6fb[83]][_0xb6fb[131]](),this[_0xb6fb[83]][_0xb6fb[132]]()));_0x59f0x58[_0xb6fb[68]]=_0x59f0x62[_0xb6fb[68]];_0x59f0x58[_0xb6fb[69]]=_0x59f0x62[_0xb6fb[69]];};};_0x59f0x61[_0xb6fb[0]][_0xb6fb[134]]=function(_0x59f0x60,_0x59f0x34){var _0x59f0xd=mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[16],_0xb6fb[17]);var _0x59f0xb=(_0x59f0xd==_0xb6fb[18])?_0x59f0x60[_0xb6fb[68]]-_0x59f0x34[_0xb6fb[68]]:_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]-_0x59f0x60[_0xb6fb[68]];var _0x59f0xc=_0x59f0x60[_0xb6fb[69]]-_0x59f0x34[_0xb6fb[69]];var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[14]]=Math[_0xb6fb[135]](Math[_0xb6fb[34]](1,_0x59f0xb)/_0x59f0x5a);this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[15]]=Math[_0xb6fb[135]](Math[_0xb6fb[34]](1,_0x59f0xc)/_0x59f0x5a);};_0x59f0x61[_0xb6fb[0]][_0xb6fb[120]]=function(){var _0x59f0x63=this[_0xb6fb[84]][_0xb6fb[136]]();_0x59f0x63[_0xb6fb[137]]();try{this[_0xb6fb[83]][_0xb6fb[85]][_0xb6fb[84]][_0xb6fb[139]](_0xb6fb[14],this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[14]],[this[_0xb6fb[83]][_0xb6fb[138]]]);this[_0xb6fb[83]][_0xb6fb[85]][_0xb6fb[84]][_0xb6fb[139]](_0xb6fb[15],this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[15]],[this[_0xb6fb[83]][_0xb6fb[138]]]);}finally{_0x59f0x63[_0xb6fb[140]]()};};function _0x59f0x64(_0x59f0x33){_0x59f0x61[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x64,_0x59f0x61);_0x59f0x64[_0xb6fb[0]][_0xb6fb[128]]=function(_0x59f0x34){var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];var _0x59f0x65=mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]/2,_0x59f0x34[_0xb6fb[69]]+Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[71]],_0x59f0x65*_0x59f0x5a));};_0x59f0x64[_0xb6fb[0]][_0xb6fb[134]]=function(_0x59f0x58,_0x59f0x34){_0x59f0x58[_0xb6fb[68]]=_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]/2;startSize=_0x59f0x58[_0xb6fb[69]]-_0x59f0x34[_0xb6fb[69]];var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[141]]=Math[_0xb6fb[135]](Math[_0xb6fb[34]](1,startSize)/_0x59f0x5a);return _0x59f0x58;};_0x59f0x64[_0xb6fb[0]][_0xb6fb[120]]=function(){this[_0xb6fb[83]][_0xb6fb[85]][_0xb6fb[84]][_0xb6fb[139]](_0xb6fb[141],this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[141]],[this[_0xb6fb[83]][_0xb6fb[138]]])};function _0x59f0x66(_0x59f0x33){_0x59f0x61[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x66,_0x59f0x61);_0x59f0x66[_0xb6fb[0]][_0xb6fb[142]]=20;_0x59f0x66[_0xb6fb[0]][_0xb6fb[143]]=1;_0x59f0x66[_0xb6fb[0]][_0xb6fb[128]]=function(_0x59f0x34){var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];var _0x59f0x67=Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[70]],Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[71]],mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[142]])*_0x59f0x5a/this[_0xb6fb[143]]));return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x67,_0x59f0x34[_0xb6fb[69]]+_0x59f0x67);};_0x59f0x66[_0xb6fb[0]][_0xb6fb[134]]=function(_0x59f0x60,_0x59f0x34){var _0x59f0x4f=Math[_0xb6fb[34]](0,Math[_0xb6fb[6]](Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[70]]/this[_0xb6fb[143]],_0x59f0x60[_0xb6fb[68]]-_0x59f0x34[_0xb6fb[68]]),Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[71]]/this[_0xb6fb[143]],_0x59f0x60[_0xb6fb[69]]-_0x59f0x34[_0xb6fb[69]])));var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[2]]=Math[_0xb6fb[135]](Math[_0xb6fb[34]](1,_0x59f0x4f)/_0x59f0x5a)*this[_0xb6fb[143]];return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x4f,_0x59f0x34[_0xb6fb[69]]+_0x59f0x4f);};_0x59f0x66[_0xb6fb[0]][_0xb6fb[120]]=function(){this[_0xb6fb[83]][_0xb6fb[85]][_0xb6fb[84]][_0xb6fb[139]](_0xb6fb[2],this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[2]],[this[_0xb6fb[83]][_0xb6fb[138]]])};function _0x59f0x68(_0x59f0x33){_0x59f0x66[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x68,_0x59f0x66);_0x59f0x68[_0xb6fb[0]][_0xb6fb[142]]=30;_0x59f0x68[_0xb6fb[0]][_0xb6fb[143]]=2;function _0x59f0x69(_0x59f0x33){_0x59f0x66[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x69,_0x59f0x66);_0x59f0x69[_0xb6fb[0]][_0xb6fb[142]]=30;_0x59f0x69[_0xb6fb[0]][_0xb6fb[143]]=1;_0x59f0x69[_0xb6fb[0]][_0xb6fb[128]]=function(_0x59f0x34){var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];var _0x59f0x67=Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[70]],Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[71]],mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[142]])*_0x59f0x5a/this[_0xb6fb[143]]));return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]-_0x59f0x67,_0x59f0x34[_0xb6fb[69]]+_0x59f0x67);};_0x59f0x69[_0xb6fb[0]][_0xb6fb[134]]=function(_0x59f0x60,_0x59f0x34){var _0x59f0x4f=Math[_0xb6fb[34]](0,Math[_0xb6fb[6]](Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[70]]/this[_0xb6fb[143]],_0x59f0x60[_0xb6fb[68]]-_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]),Math[_0xb6fb[6]](_0x59f0x34[_0xb6fb[71]]/this[_0xb6fb[143]],_0x59f0x60[_0xb6fb[69]]-_0x59f0x34[_0xb6fb[69]])));var _0x59f0x5a=this[_0xb6fb[84]][_0xb6fb[93]]()[_0xb6fb[113]];this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[2]]=Math[_0xb6fb[135]](Math[_0xb6fb[34]](1,_0x59f0x4f)/_0x59f0x5a)*this[_0xb6fb[143]];return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]-_0x59f0x4f,_0x59f0x34[_0xb6fb[69]]+_0x59f0x4f);};function _0x59f0x6a(_0x59f0x33){_0x59f0x66[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x6a,_0x59f0x66);_0x59f0x6a[_0xb6fb[0]][_0xb6fb[142]]=0.2;_0x59f0x6a[_0xb6fb[0]][_0xb6fb[143]]=1;_0x59f0x6a[_0xb6fb[0]][_0xb6fb[128]]=function(_0x59f0x34){var _0x59f0x67=mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[142]]);return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]*_0x59f0x67,_0x59f0x34[_0xb6fb[69]]+_0x59f0x34[_0xb6fb[71]]/2);};_0x59f0x6a[_0xb6fb[0]][_0xb6fb[134]]=function(_0x59f0x60,_0x59f0x34){var _0x59f0x4f=Math[_0xb6fb[6]](1,(_0x59f0x60[_0xb6fb[68]]-_0x59f0x34[_0xb6fb[68]])/_0x59f0x34[_0xb6fb[70]]);this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[2]]=_0x59f0x4f;return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x4f*_0x59f0x34[_0xb6fb[70]],_0x59f0x34[_0xb6fb[69]]+_0x59f0x34[_0xb6fb[71]]/2);};function _0x59f0x6b(_0x59f0x33){_0x59f0x66[_0xb6fb[24]](this,_0x59f0x33)}mxUtils[_0xb6fb[25]](_0x59f0x6b,_0x59f0x66);_0x59f0x6b[_0xb6fb[0]][_0xb6fb[142]]=0.4;_0x59f0x6b[_0xb6fb[0]][_0xb6fb[143]]=1;_0x59f0x6b[_0xb6fb[0]][_0xb6fb[128]]=function(_0x59f0x34){var _0x59f0x67=mxUtils[_0xb6fb[5]](this[_0xb6fb[83]][_0xb6fb[4]],_0xb6fb[2],this[_0xb6fb[142]]);return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]/2,_0x59f0x34[_0xb6fb[69]]+_0x59f0x67*_0x59f0x34[_0xb6fb[71]]/2);};_0x59f0x6b[_0xb6fb[0]][_0xb6fb[134]]=function(_0x59f0x60,_0x59f0x34){var _0x59f0x4f=Math[_0xb6fb[34]](0,Math[_0xb6fb[6]](1,((_0x59f0x60[_0xb6fb[69]]-_0x59f0x34[_0xb6fb[69]])/_0x59f0x34[_0xb6fb[71]])*2));this[_0xb6fb[83]][_0xb6fb[4]][_0xb6fb[2]]=_0x59f0x4f;return  new mxPoint(_0x59f0x34[_0xb6fb[68]]+_0x59f0x34[_0xb6fb[70]]/2,_0x59f0x34[_0xb6fb[69]]+_0x59f0x4f*_0x59f0x34[_0xb6fb[71]]/2);};var _0x59f0x6c={"\x73\x77\x69\x6D\x6C\x61\x6E\x65":_0x59f0x64,"\x66\x6F\x6C\x64\x65\x72":_0x59f0x61,"\x63\x75\x62\x65":_0x59f0x66,"\x63\x61\x72\x64":_0x59f0x68,"\x6E\x6F\x74\x65":_0x59f0x69,"\x73\x74\x65\x70":_0x59f0x6a,"\x74\x61\x70\x65":_0x59f0x6b};var _0x59f0x6d=mxGraph[_0xb6fb[0]][_0xb6fb[144]];mxGraph[_0xb6fb[0]][_0xb6fb[144]]=function(_0x59f0x33){if(_0x59f0x33!=null){var _0x59f0x6e=_0x59f0x6c[_0x59f0x33[_0xb6fb[4]][_0xb6fb[123]]];if(_0x59f0x6e!=null){return  new _0x59f0x6e(_0x59f0x33)};};return _0x59f0x6d[_0xb6fb[30]](this,arguments);};};mxGraph[_0xb6fb[0]][_0xb6fb[145]]=function(_0x59f0x6f,_0x59f0x50){if(_0x59f0x6f!=null&&_0x59f0x6f[_0xb6fb[123]]!=null){if(_0x59f0x6f[_0xb6fb[123]][_0xb6fb[146]]!=null){if(_0x59f0x6f[_0xb6fb[123]][_0xb6fb[146]]!=null){return _0x59f0x6f[_0xb6fb[123]][_0xb6fb[146]][_0xb6fb[147]]}}else {if(_0x59f0x6f[_0xb6fb[123]][_0xb6fb[147]]!=null){return _0x59f0x6f[_0xb6fb[123]][_0xb6fb[147]]}}};return null;};mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxLabel[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];mxImageShape[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];mxSwimlane[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];_0x59f0x14[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];_0x59f0x9[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];_0x59f0x10[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];_0x59f0x1[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];_0x59f0xa[_0xb6fb[0]][_0xb6fb[147]]=mxRectangleShape[_0xb6fb[0]][_0xb6fb[147]];mxCylinder[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.15,0.05),false), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.85,0.05),false), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.3),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.7),true), new mxConnectionConstraint( new mxPoint(0.15,0.95),false), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.85,0.95),false)];_0x59f0x25[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.1),false), new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.75,0.1),false), new mxConnectionConstraint( new mxPoint(0,1/3),false), new mxConnectionConstraint( new mxPoint(0,1),false), new mxConnectionConstraint( new mxPoint(1,1/3),false), new mxConnectionConstraint( new mxPoint(1,1),false), new mxConnectionConstraint( new mxPoint(0.5,0.5),false)];_0x59f0x28[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxActor[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.25,0.2),false), new mxConnectionConstraint( new mxPoint(0.1,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.75,0.25),false), new mxConnectionConstraint( new mxPoint(0.9,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];_0x59f0x11[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.35),false), new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.65),false), new mxConnectionConstraint( new mxPoint(1,0.35),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.65),false), new mxConnectionConstraint( new mxPoint(0.25,1),false), new mxConnectionConstraint( new mxPoint(0.75,0),false)];_0x59f0x13[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true), new mxConnectionConstraint( new mxPoint(0.1,0.25),false), new mxConnectionConstraint( new mxPoint(0.2,0.5),false), new mxConnectionConstraint( new mxPoint(0.1,0.75),false), new mxConnectionConstraint( new mxPoint(0.9,0.25),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(0.9,0.75),false)];mxLine[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0.25,0.5),false), new mxConnectionConstraint( new mxPoint(0.75,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.5),false)];_0x59f0x26[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.5,1),false)];mxEllipse[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0,0),true), new mxConnectionConstraint( new mxPoint(1,0),true), new mxConnectionConstraint( new mxPoint(0,1),true), new mxConnectionConstraint( new mxPoint(1,1),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5))];mxDoubleEllipse[_0xb6fb[0]][_0xb6fb[147]]=mxEllipse[_0xb6fb[0]][_0xb6fb[147]];mxRhombus[_0xb6fb[0]][_0xb6fb[147]]=mxEllipse[_0xb6fb[0]][_0xb6fb[147]];mxTriangle[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(1,0.5),true)];mxHexagon[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.375,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.625,0),true), new mxConnectionConstraint( new mxPoint(0.125,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0.125,0.75),false), new mxConnectionConstraint( new mxPoint(0.875,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(0.875,0.75),false), new mxConnectionConstraint( new mxPoint(0.375,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.625,1),true)];mxCloud[_0xb6fb[0]][_0xb6fb[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.25),false), new mxConnectionConstraint( new mxPoint(0.4,0.1),false), new mxConnectionConstraint( new mxPoint(0.16,0.55),false), new mxConnectionConstraint( new mxPoint(0.07,0.4),false), new mxConnectionConstraint( new mxPoint(0.31,0.8),false), new mxConnectionConstraint( new mxPoint(0.13,0.77),false), new mxConnectionConstraint( new mxPoint(0.8,0.8),false), new mxConnectionConstraint( new mxPoint(0.55,0.95),false), new mxConnectionConstraint( new mxPoint(0.875,0.5),false), new mxConnectionConstraint( new mxPoint(0.96,0.7),false), new mxConnectionConstraint( new mxPoint(0.625,0.2),false), new mxConnectionConstraint( new mxPoint(0.88,0.25),false)];mxArrow[_0xb6fb[0]][_0xb6fb[147]]=null;})();
\ No newline at end of file
+var _0xb74c=["\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x73\x69\x7A\x65","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6D\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x65\x6E\x64","\x63\x6C\x6F\x73\x65","\x63\x75\x62\x65","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x6E\x6F\x74\x65","\x74\x61\x62\x57\x69\x64\x74\x68","\x74\x61\x62\x48\x65\x69\x67\x68\x74","\x74\x61\x62\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x69\x67\x68\x74","\x6C\x65\x66\x74","\x66\x6F\x6C\x64\x65\x72","\x63\x61\x72\x64","\x71\x75\x61\x64\x54\x6F","\x74\x61\x70\x65","\x73\x74\x65\x70","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x65\x67\x69\x6E","\x73\x74\x72\x6F\x6B\x65","\x61\x70\x70\x6C\x79","\x70\x6C\x75\x73","\x64\x6F\x75\x62\x6C\x65","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x6D\x61\x78","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x79\x6D\x62\x6F\x6C","\x41\x6C\x69\x67\x6E","\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x57\x69\x64\x74\x68","\x48\x65\x69\x67\x68\x74","\x53\x70\x61\x63\x69\x6E\x67","\x41\x72\x63\x53\x70\x61\x63\x69\x6E\x67","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x73\x61\x76\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x72\x65\x73\x74\x6F\x72\x65","\x65\x78\x74","\x6D\x65\x73\x73\x61\x67\x65","\x61\x64\x64\x50\x69\x70\x65","\x63\x75\x72\x76\x65\x54\x6F","\x75\x6D\x6C\x41\x63\x74\x6F\x72","\x6C\x6F\x6C\x6C\x69\x70\x6F\x70","\x6A\x65\x74\x74\x79\x57\x69\x64\x74\x68","\x6A\x65\x74\x74\x79\x48\x65\x69\x67\x68\x74","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74","\x6F\x75\x74\x65\x72\x53\x74\x72\x6F\x6B\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x65\x6E\x64\x53\x74\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x74\x61\x74\x65","\x69\x6E\x69\x74\x53\x68\x61\x70\x65\x73","\x78","\x79","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x73\x68\x61\x70\x65\x73","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x72\x74","\x6C\x69\x6E\x6B","\x64\x61\x73\x68","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x73\x65\x47\x72\x69\x64\x46\x6F\x72\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x69\x6E\x69\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68","\x76\x69\x65\x77","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x73\x72\x63","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x74\x56\x69\x65\x77","\x63\x75\x72\x73\x6F\x72","\x6E\x6F\x64\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x43\x75\x72\x73\x6F\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74","\x72\x65\x64\x72\x61\x77","\x62\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x72\x6F\x79","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x6F\x75\x72\x63\x65","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x76\x65\x6E\x74","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x73\x63\x61\x6C\x65","\x73\x6E\x61\x70","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x70\x70\x6C\x79\x53\x74\x79\x6C\x65","\x72\x65\x73\x65\x74","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x73\x68\x61\x70\x65","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x63\x6F\x73","\x73\x69\x6E","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x50\x6F\x69\x6E\x74","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65\x55\x6E\x72\x6F\x74\x61\x74\x65\x64","\x72\x6F\x75\x6E\x64","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x63\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x61\x6C\x75\x65","\x73\x63\x61\x6C\x65\x46\x61\x63\x74\x6F\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x73\x74\x65\x6E\x63\x69\x6C","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73"];(function(){function _0x89b6x1(){}_0x89b6x1[_0xb74c[0]]= new mxCylinder();_0x89b6x1[_0xb74c[0]][_0xb74c[1]]=_0x89b6x1;_0x89b6x1[_0xb74c[0]][_0xb74c[2]]=20;_0x89b6x1[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6x8=Math[_0xb74c[6]](_0x89b6x5,Math[_0xb74c[6]](_0x89b6x6,mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[2],this[_0xb74c[2]])));if(_0x89b6x7){_0x89b6x2[_0xb74c[7]](_0x89b6x8,_0x89b6x6);_0x89b6x2[_0xb74c[8]](_0x89b6x8,_0x89b6x8);_0x89b6x2[_0xb74c[8]](0,0);_0x89b6x2[_0xb74c[7]](_0x89b6x8,_0x89b6x8);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x8);_0x89b6x2[_0xb74c[9]]();}else {_0x89b6x2[_0xb74c[7]](0,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5-_0x89b6x8,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x8);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6);_0x89b6x2[_0xb74c[8]](_0x89b6x8,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6-_0x89b6x8);_0x89b6x2[_0xb74c[8]](0,0);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[11]]=_0x89b6x1;function _0x89b6x9(){}_0x89b6x9[_0xb74c[0]]= new mxCylinder();_0x89b6x9[_0xb74c[0]][_0xb74c[1]]=_0x89b6x9;_0x89b6x9[_0xb74c[0]][_0xb74c[2]]=30;_0x89b6x9[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6x8=Math[_0xb74c[6]](_0x89b6x5,Math[_0xb74c[6]](_0x89b6x6,mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[2],this[_0xb74c[2]])));if(_0x89b6x7){_0x89b6x2[_0xb74c[7]](_0x89b6x5-_0x89b6x8,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5-_0x89b6x8,_0x89b6x8);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x8);_0x89b6x2[_0xb74c[9]]();}else {_0x89b6x2[_0xb74c[7]](0,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5-_0x89b6x8,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x8);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,0);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[13]]=_0x89b6x9;function _0x89b6xa(){}_0x89b6xa[_0xb74c[0]]= new mxCylinder();_0x89b6xa[_0xb74c[0]][_0xb74c[1]]=_0x89b6xa;_0x89b6xa[_0xb74c[0]][_0xb74c[14]]=60;_0x89b6xa[_0xb74c[0]][_0xb74c[15]]=20;_0x89b6xa[_0xb74c[0]][_0xb74c[16]]=_0xb74c[17];_0x89b6xa[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6xb=mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[14],this[_0xb74c[14]]);var _0x89b6xc=mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[15],this[_0xb74c[15]]);var _0x89b6xd=mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[16],this[_0xb74c[16]]);var _0x89b6xe=Math[_0xb74c[6]](_0x89b6x5,_0x89b6xb);var _0x89b6xf=Math[_0xb74c[6]](_0x89b6x6,_0x89b6xc);if(_0x89b6x7){if(_0x89b6xd==_0xb74c[18]){_0x89b6x2[_0xb74c[7]](0,_0x89b6xf);_0x89b6x2[_0xb74c[8]](_0x89b6xe,_0x89b6xf);}else {_0x89b6x2[_0xb74c[7]](_0x89b6x5-_0x89b6xe,_0x89b6xf);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6xf);};_0x89b6x2[_0xb74c[9]]();}else {if(_0x89b6xd==_0xb74c[18]){_0x89b6x2[_0xb74c[7]](0,0);_0x89b6x2[_0xb74c[8]](_0x89b6xe,0);_0x89b6x2[_0xb74c[8]](_0x89b6xe,_0x89b6xf);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6xf);}else {_0x89b6x2[_0xb74c[7]](0,_0x89b6xf);_0x89b6x2[_0xb74c[8]](_0x89b6x5-_0x89b6xe,_0x89b6xf);_0x89b6x2[_0xb74c[8]](_0x89b6x5-_0x89b6xe,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,0);};_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6xf);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[19]]=_0x89b6xa;function _0x89b6x10(){}_0x89b6x10[_0xb74c[0]]= new mxCylinder();_0x89b6x10[_0xb74c[0]][_0xb74c[1]]=_0x89b6x10;_0x89b6x10[_0xb74c[0]][_0xb74c[2]]=30;_0x89b6x10[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6x8=Math[_0xb74c[6]](_0x89b6x5,Math[_0xb74c[6]](_0x89b6x6,mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[2],this[_0xb74c[2]])));if(!_0x89b6x7){_0x89b6x2[_0xb74c[7]](_0x89b6x8,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6x8);_0x89b6x2[_0xb74c[8]](_0x89b6x8,0);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[20]]=_0x89b6x10;function _0x89b6x11(){}_0x89b6x11[_0xb74c[0]]= new mxCylinder();_0x89b6x11[_0xb74c[0]][_0xb74c[1]]=_0x89b6x11;_0x89b6x11[_0xb74c[0]][_0xb74c[2]]=0.4;_0x89b6x11[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6x8=mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[2],this[_0xb74c[2]]);var _0x89b6xf=_0x89b6x6*_0x89b6x8;var _0x89b6x12=1.4;if(!_0x89b6x7){_0x89b6x2[_0xb74c[7]](0,_0x89b6xf/2);_0x89b6x2[_0xb74c[21]](_0x89b6x5/4,_0x89b6xf*_0x89b6x12,_0x89b6x5/2,_0x89b6xf/2);_0x89b6x2[_0xb74c[21]](_0x89b6x5*3/4,_0x89b6xf*(1-_0x89b6x12),_0x89b6x5,_0x89b6xf/2);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6-_0x89b6xf/2);_0x89b6x2[_0xb74c[21]](_0x89b6x5*3/4,_0x89b6x6-_0x89b6xf*_0x89b6x12,_0x89b6x5/2,_0x89b6x6-_0x89b6xf/2);_0x89b6x2[_0xb74c[21]](_0x89b6x5/4,_0x89b6x6-_0x89b6xf*(1-_0x89b6x12),0,_0x89b6x6-_0x89b6xf/2);_0x89b6x2[_0xb74c[8]](0,_0x89b6xf/2);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[22]]=_0x89b6x11;function _0x89b6x13(){}_0x89b6x13[_0xb74c[0]]= new mxCylinder();_0x89b6x13[_0xb74c[0]][_0xb74c[1]]=_0x89b6x13;_0x89b6x13[_0xb74c[0]][_0xb74c[2]]=0.2;_0x89b6x13[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6x8=_0x89b6x5*mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[2],this[_0xb74c[2]]);if(!_0x89b6x7){_0x89b6x2[_0xb74c[7]](0,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5-_0x89b6x8,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6/2);_0x89b6x2[_0xb74c[8]](_0x89b6x5-_0x89b6x8,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6);_0x89b6x2[_0xb74c[8]](_0x89b6x8,_0x89b6x6/2);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[23]]=_0x89b6x13;function _0x89b6x14(){mxRectangleShape[_0xb74c[24]](this)}mxUtils[_0xb74c[25]](_0x89b6x14,mxRectangleShape);_0x89b6x14[_0xb74c[0]][_0xb74c[26]]=function(){return false};_0x89b6x14[_0xb74c[0]][_0xb74c[27]]=function(_0x89b6x15,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6){var _0x89b6x16=Math[_0xb74c[6]](_0x89b6x5/5,_0x89b6x6/5)+1;_0x89b6x15[_0xb74c[28]]();_0x89b6x15[_0xb74c[7]](_0x89b6x3+_0x89b6x5/2,_0x89b6x4+_0x89b6x16);_0x89b6x15[_0xb74c[8]](_0x89b6x3+_0x89b6x5/2,_0x89b6x4+_0x89b6x6-_0x89b6x16);_0x89b6x15[_0xb74c[7]](_0x89b6x3+_0x89b6x16,_0x89b6x4+_0x89b6x6/2);_0x89b6x15[_0xb74c[8]](_0x89b6x3+_0x89b6x5-_0x89b6x16,_0x89b6x4+_0x89b6x6/2);_0x89b6x15[_0xb74c[9]]();_0x89b6x15[_0xb74c[29]]();mxRectangleShape[_0xb74c[0]][_0xb74c[27]][_0xb74c[30]](this,arguments);};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[31]]=_0x89b6x14;function _0x89b6x17(){mxRectangleShape[_0xb74c[24]](this)}mxUtils[_0xb74c[25]](_0x89b6x17,mxRectangleShape);_0x89b6x17[_0xb74c[0]][_0xb74c[26]]=function(){return false};_0x89b6x17[_0xb74c[0]][_0xb74c[27]]=function(_0x89b6x15,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6){if(this[_0xb74c[4]]!=null){if(this[_0xb74c[4]][_0xb74c[32]]==1){var _0x89b6x18=Math[_0xb74c[34]](2,this[_0xb74c[33]]+1);mxRectangleShape[_0xb74c[0]][_0xb74c[35]][_0xb74c[24]](this,_0x89b6x15,_0x89b6x3+_0x89b6x18,_0x89b6x4+_0x89b6x18,_0x89b6x5-2*_0x89b6x18,_0x89b6x6-2*_0x89b6x18);mxRectangleShape[_0xb74c[0]][_0xb74c[27]][_0xb74c[30]](this,arguments);_0x89b6x3+=_0x89b6x18;_0x89b6x4+=_0x89b6x18;_0x89b6x5-=2*_0x89b6x18;_0x89b6x6-=2*_0x89b6x18;};_0x89b6x15[_0xb74c[36]](false);var _0x89b6x19=0;var _0x89b6x1a=null;do{_0x89b6x1a=mxCellRenderer[_0xb74c[0]][_0xb74c[12]][this[_0xb74c[4]][_0xb74c[37]+_0x89b6x19]];if(_0x89b6x1a!=null){var _0x89b6x1b=this[_0xb74c[4]][_0xb74c[37]+_0x89b6x19+_0xb74c[38]];var _0x89b6x1c=this[_0xb74c[4]][_0xb74c[37]+_0x89b6x19+_0xb74c[39]];var _0x89b6x1d=this[_0xb74c[4]][_0xb74c[37]+_0x89b6x19+_0xb74c[40]];var _0x89b6x1e=this[_0xb74c[4]][_0xb74c[37]+_0x89b6x19+_0xb74c[41]];var _0x89b6x1f=this[_0xb74c[4]][_0xb74c[37]+_0x89b6x19+_0xb74c[42]]||0;var _0x89b6x20=this[_0xb74c[4]][_0xb74c[37]+_0x89b6x19+_0xb74c[43]];if(_0x89b6x20!=null){_0x89b6x1f+=this[_0xb74c[44]](_0x89b6x5+this[_0xb74c[33]],_0x89b6x6+this[_0xb74c[33]])*_0x89b6x20};var _0x89b6x21=_0x89b6x3;var _0x89b6x22=_0x89b6x4;if(_0x89b6x1b==mxConstants[_0xb74c[45]]){_0x89b6x21+=(_0x89b6x5-_0x89b6x1d)/2}else {if(_0x89b6x1b==mxConstants[_0xb74c[46]]){_0x89b6x21+=_0x89b6x5-_0x89b6x1d-_0x89b6x1f}else {_0x89b6x21+=_0x89b6x1f}};if(_0x89b6x1c==mxConstants[_0xb74c[47]]){_0x89b6x22+=(_0x89b6x6-_0x89b6x1e)/2}else {if(_0x89b6x1c==mxConstants[_0xb74c[48]]){_0x89b6x22+=_0x89b6x6-_0x89b6x1e-_0x89b6x1f}else {_0x89b6x22+=_0x89b6x1f}};_0x89b6x15[_0xb74c[49]]();var _0x89b6x23= new _0x89b6x1a();_0x89b6x23[_0xb74c[4]]=this[_0xb74c[4]];_0x89b6x1a[_0xb74c[0]][_0xb74c[50]][_0xb74c[24]](_0x89b6x23,_0x89b6x15,_0x89b6x21,_0x89b6x22,_0x89b6x1d,_0x89b6x1e);_0x89b6x15[_0xb74c[51]]();};_0x89b6x19++;}while(_0x89b6x1a!=null);;}};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[52]]=_0x89b6x17;function _0x89b6x24(){}_0x89b6x24[_0xb74c[0]]= new mxCylinder();_0x89b6x24[_0xb74c[0]][_0xb74c[1]]=_0x89b6x24;_0x89b6x24[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){if(_0x89b6x7){_0x89b6x2[_0xb74c[7]](0,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5/2,_0x89b6x6/2);_0x89b6x2[_0xb74c[8]](_0x89b6x5,0);_0x89b6x2[_0xb74c[9]]();}else {_0x89b6x2[_0xb74c[7]](0,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6);_0x89b6x2[_0xb74c[10]]();}};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[53]]=_0x89b6x24;function _0x89b6x25(){}_0x89b6x25[_0xb74c[0]]= new mxCylinder();_0x89b6x25[_0xb74c[0]][_0xb74c[1]]=_0x89b6x25;_0x89b6x25[_0xb74c[0]][_0xb74c[54]]=true;_0x89b6x25[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6x1d=_0x89b6x5/3;var _0x89b6x1e=_0x89b6x6/4;if(!_0x89b6x7){_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,_0x89b6x1e);_0x89b6x2[_0xb74c[55]](_0x89b6x5/2-_0x89b6x1d,_0x89b6x1e,_0x89b6x5/2-_0x89b6x1d,0,_0x89b6x5/2,0);_0x89b6x2[_0xb74c[55]](_0x89b6x5/2+_0x89b6x1d,0,_0x89b6x5/2+_0x89b6x1d,_0x89b6x1e,_0x89b6x5/2,_0x89b6x1e);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,_0x89b6x1e);_0x89b6x2[_0xb74c[8]](_0x89b6x5/2,2*_0x89b6x6/3);_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,_0x89b6x6/3);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6/3);_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,_0x89b6x6/3);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6/3);_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,2*_0x89b6x6/3);_0x89b6x2[_0xb74c[8]](0,_0x89b6x6);_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,2*_0x89b6x6/3);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6);_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[56]]=_0x89b6x25;function _0x89b6x26(){}_0x89b6x26[_0xb74c[0]]= new mxCylinder();_0x89b6x26[_0xb74c[0]][_0xb74c[1]]=_0x89b6x26;_0x89b6x26[_0xb74c[0]][_0xb74c[2]]=10;_0x89b6x26[_0xb74c[0]][_0xb74c[54]]=true;_0x89b6x26[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6x27=mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[2],this[_0xb74c[2]]);var _0x89b6x1d=_0x89b6x27*2/3;var _0x89b6x1e=_0x89b6x27;if(!_0x89b6x7){_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,_0x89b6x1e);_0x89b6x2[_0xb74c[55]](_0x89b6x5/2-_0x89b6x1d,_0x89b6x1e,_0x89b6x5/2-_0x89b6x1d,0,_0x89b6x5/2,0);_0x89b6x2[_0xb74c[55]](_0x89b6x5/2+_0x89b6x1d,0,_0x89b6x5/2+_0x89b6x1d,_0x89b6x1e,_0x89b6x5/2,_0x89b6x1e);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[7]](_0x89b6x5/2,_0x89b6x1e);_0x89b6x2[_0xb74c[8]](_0x89b6x5/2,_0x89b6x6);_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[57]]=_0x89b6x26;function _0x89b6x28(){}_0x89b6x28[_0xb74c[0]]= new mxCylinder();_0x89b6x28[_0xb74c[0]][_0xb74c[1]]=_0x89b6x28;_0x89b6x28[_0xb74c[0]][_0xb74c[58]]=32;_0x89b6x28[_0xb74c[0]][_0xb74c[59]]=12;_0x89b6x28[_0xb74c[0]][_0xb74c[3]]=function(_0x89b6x2,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6,_0x89b6x7){var _0x89b6xe=mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[58],this[_0xb74c[58]]);var _0x89b6xf=mxUtils[_0xb74c[5]](this[_0xb74c[4]],_0xb74c[59],this[_0xb74c[59]]);var _0x89b6x29=_0x89b6xe/2;var _0x89b6x2a=_0x89b6x29+_0x89b6xe/2;var _0x89b6x2b=0.3*_0x89b6x6-_0x89b6xf/2;var _0x89b6x2c=0.7*_0x89b6x6-_0x89b6xf/2;if(_0x89b6x7){_0x89b6x2[_0xb74c[7]](_0x89b6x29,_0x89b6x2b);_0x89b6x2[_0xb74c[8]](_0x89b6x2a,_0x89b6x2b);_0x89b6x2[_0xb74c[8]](_0x89b6x2a,_0x89b6x2b+_0x89b6xf);_0x89b6x2[_0xb74c[8]](_0x89b6x29,_0x89b6x2b+_0x89b6xf);_0x89b6x2[_0xb74c[7]](_0x89b6x29,_0x89b6x2c);_0x89b6x2[_0xb74c[8]](_0x89b6x2a,_0x89b6x2c);_0x89b6x2[_0xb74c[8]](_0x89b6x2a,_0x89b6x2c+_0x89b6xf);_0x89b6x2[_0xb74c[8]](_0x89b6x29,_0x89b6x2c+_0x89b6xf);_0x89b6x2[_0xb74c[9]]();}else {_0x89b6x2[_0xb74c[7]](_0x89b6x29,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,0);_0x89b6x2[_0xb74c[8]](_0x89b6x5,_0x89b6x6);_0x89b6x2[_0xb74c[8]](_0x89b6x29,_0x89b6x6);_0x89b6x2[_0xb74c[8]](_0x89b6x29,_0x89b6x2c+_0x89b6xf);_0x89b6x2[_0xb74c[8]](0,_0x89b6x2c+_0x89b6xf);_0x89b6x2[_0xb74c[8]](0,_0x89b6x2c);_0x89b6x2[_0xb74c[8]](_0x89b6x29,_0x89b6x2c);_0x89b6x2[_0xb74c[8]](_0x89b6x29,_0x89b6x2b+_0x89b6xf);_0x89b6x2[_0xb74c[8]](0,_0x89b6x2b+_0x89b6xf);_0x89b6x2[_0xb74c[8]](0,_0x89b6x2b);_0x89b6x2[_0xb74c[8]](_0x89b6x29,_0x89b6x2b);_0x89b6x2[_0xb74c[10]]();_0x89b6x2[_0xb74c[9]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[60]]=_0x89b6x28;function _0x89b6x2d(){}_0x89b6x2d[_0xb74c[0]]= new mxDoubleEllipse();_0x89b6x2d[_0xb74c[0]][_0xb74c[1]]=_0x89b6x2d;_0x89b6x2d[_0xb74c[0]][_0xb74c[61]]=true;_0x89b6x2d[_0xb74c[0]][_0xb74c[50]]=function(_0x89b6x15,_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6){var _0x89b6x18=Math[_0xb74c[6]](4,Math[_0xb74c[6]](_0x89b6x5/5,_0x89b6x6/5));if(_0x89b6x5>0&&_0x89b6x6>0){_0x89b6x15[_0xb74c[62]](_0x89b6x3+_0x89b6x18,_0x89b6x4+_0x89b6x18,_0x89b6x5-2*_0x89b6x18,_0x89b6x6-2*_0x89b6x18);_0x89b6x15[_0xb74c[63]]();};_0x89b6x15[_0xb74c[64]](false);if(this[_0xb74c[61]]){_0x89b6x15[_0xb74c[62]](_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6);_0x89b6x15[_0xb74c[29]]();};};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[65]]=_0x89b6x2d;function _0x89b6x2e(){}_0x89b6x2e[_0xb74c[0]]= new _0x89b6x2d();_0x89b6x2e[_0xb74c[0]][_0xb74c[1]]=_0x89b6x2e;_0x89b6x2e[_0xb74c[0]][_0xb74c[61]]=false;mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[66]]=_0x89b6x2e;var _0x89b6x2f=mxImageExport[_0xb74c[0]][_0xb74c[67]];mxImageExport[_0xb74c[0]][_0xb74c[67]]=function(){_0x89b6x2f[_0xb74c[30]](this,arguments);function _0x89b6x30(_0x89b6x31){return {drawShape:function(_0x89b6x32,_0x89b6x33,_0x89b6x34,_0x89b6x35){var _0x89b6x3=_0x89b6x34[_0xb74c[68]];var _0x89b6x4=_0x89b6x34[_0xb74c[69]];var _0x89b6x5=_0x89b6x34[_0xb74c[70]];var _0x89b6x6=_0x89b6x34[_0xb74c[71]];if(_0x89b6x35){var _0x89b6x18=Math[_0xb74c[6]](4,Math[_0xb74c[6]](_0x89b6x5/5,_0x89b6x6/5));_0x89b6x3+=_0x89b6x18;_0x89b6x4+=_0x89b6x18;_0x89b6x5-=2*_0x89b6x18;_0x89b6x6-=2*_0x89b6x18;if(_0x89b6x5>0&&_0x89b6x6>0){_0x89b6x32[_0xb74c[62]](_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6)};return true;}else {_0x89b6x32[_0xb74c[63]]();if(_0x89b6x31){_0x89b6x32[_0xb74c[62]](_0x89b6x3,_0x89b6x4,_0x89b6x5,_0x89b6x6);_0x89b6x32[_0xb74c[29]]();};};}}}this[_0xb74c[72]][_0xb74c[65]]=_0x89b6x30(true);this[_0xb74c[72]][_0xb74c[66]]=_0x89b6x30(false);};function _0x89b6x36(){mxArrow[_0xb74c[24]](this)}mxUtils[_0xb74c[25]](_0x89b6x36,mxArrow);_0x89b6x36[_0xb74c[0]][_0xb74c[73]]=function(_0x89b6x15,_0x89b6x37){var _0x89b6x1d=10;var _0x89b6x38=_0x89b6x37[0];var _0x89b6x39=_0x89b6x37[_0x89b6x37[_0xb74c[74]]-1];var _0x89b6xe=_0x89b6x39[_0xb74c[68]]-_0x89b6x38[_0xb74c[68]];var _0x89b6xf=_0x89b6x39[_0xb74c[69]]-_0x89b6x38[_0xb74c[69]];var _0x89b6x3a=Math[_0xb74c[75]](_0x89b6xe*_0x89b6xe+_0x89b6xf*_0x89b6xf);var _0x89b6x3b=_0x89b6x3a;var _0x89b6x3c=_0x89b6xe/_0x89b6x3a;var _0x89b6x3d=_0x89b6xf/_0x89b6x3a;var _0x89b6x3e=_0x89b6x3b*_0x89b6x3c;var _0x89b6x3f=_0x89b6x3b*_0x89b6x3d;var _0x89b6x40=_0x89b6x1d*_0x89b6x3d/3;var _0x89b6x41=-_0x89b6x1d*_0x89b6x3c/3;var _0x89b6x42=_0x89b6x38[_0xb74c[68]]-_0x89b6x40/2;var _0x89b6x43=_0x89b6x38[_0xb74c[69]]-_0x89b6x41/2;var _0x89b6x44=_0x89b6x42+_0x89b6x40;var _0x89b6x45=_0x89b6x43+_0x89b6x41;var _0x89b6x46=_0x89b6x44+_0x89b6x3e;var _0x89b6x47=_0x89b6x45+_0x89b6x3f;var _0x89b6x48=_0x89b6x46+_0x89b6x40;var _0x89b6x49=_0x89b6x47+_0x89b6x41;var _0x89b6x4a=_0x89b6x48-3*_0x89b6x40;var _0x89b6x4b=_0x89b6x49-3*_0x89b6x41;_0x89b6x15[_0xb74c[28]]();_0x89b6x15[_0xb74c[7]](_0x89b6x44,_0x89b6x45);_0x89b6x15[_0xb74c[8]](_0x89b6x46,_0x89b6x47);_0x89b6x15[_0xb74c[7]](_0x89b6x4a+_0x89b6x40,_0x89b6x4b+_0x89b6x41);_0x89b6x15[_0xb74c[8]](_0x89b6x42,_0x89b6x43);_0x89b6x15[_0xb74c[29]]();};mxCellRenderer[_0xb74c[0]][_0xb74c[12]][_0xb74c[76]]=_0x89b6x36;mxMarker[_0xb74c[78]](_0xb74c[77],function(_0x89b6x32,_0x89b6x1a,_0x89b6x4c,_0x89b6x39,_0x89b6x4d,_0x89b6x4e,_0x89b6x4f,_0x89b6x50,_0x89b6x51,_0x89b6x52){var _0x89b6x3c=_0x89b6x4d*(_0x89b6x4f+_0x89b6x51+1);var _0x89b6x3d=_0x89b6x4e*(_0x89b6x4f+_0x89b6x51+1);return function(){_0x89b6x32[_0xb74c[28]]();_0x89b6x32[_0xb74c[7]](_0x89b6x39[_0xb74c[68]]-_0x89b6x3c/2-_0x89b6x3d/2,_0x89b6x39[_0xb74c[69]]-_0x89b6x3d/2+_0x89b6x3c/2);_0x89b6x32[_0xb74c[8]](_0x89b6x39[_0xb74c[68]]+_0x89b6x3d/2-3*_0x89b6x3c/2,_0x89b6x39[_0xb74c[69]]-3*_0x89b6x3d/2-_0x89b6x3c/2);_0x89b6x32[_0xb74c[29]]();};});var _0x89b6x53=-99;if( typeof (mxVertexHandler)!=_0xb74c[79]){function _0x89b6x54(_0x89b6x33){mxVertexHandler[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x54,mxVertexHandler);_0x89b6x54[_0xb74c[0]][_0xb74c[80]]=false;_0x89b6x54[_0xb74c[0]][_0xb74c[81]]=function(){this[_0xb74c[82]]=mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],mxConstants.STYLE_HORIZONTAL,true);var _0x89b6x55=this[_0xb74c[83]][_0xb74c[85]][_0xb74c[84]];if(this[_0xb74c[86]]!=null){var _0x89b6x34= new mxRectangle(0,0,this[_0xb74c[86]][_0xb74c[70]],this[_0xb74c[86]][_0xb74c[71]]);this[_0xb74c[87]]= new mxImageShape(_0x89b6x34,this[_0xb74c[86]][_0xb74c[88]]);}else {var _0x89b6x4f=10;var _0x89b6x34= new mxRectangle(0,0,_0x89b6x4f,_0x89b6x4f);this[_0xb74c[87]]= new mxRhombus(_0x89b6x34,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);};this[_0xb74c[87]][_0xb74c[89]]=(_0x89b6x55[_0xb74c[89]]!=mxConstants[_0xb74c[90]])?mxConstants[_0xb74c[91]]:mxConstants[_0xb74c[90]];this[_0xb74c[87]][_0xb74c[81]](_0x89b6x55[_0xb74c[93]]()[_0xb74c[92]]());this[_0xb74c[87]][_0xb74c[95]][_0xb74c[4]][_0xb74c[94]]=this[_0xb74c[96]]();mxEvent[_0xb74c[97]](this[_0xb74c[87]][_0xb74c[95]],_0x89b6x55,this[_0xb74c[83]]);mxVertexHandler[_0xb74c[0]][_0xb74c[81]][_0xb74c[30]](this,arguments);};_0x89b6x54[_0xb74c[0]][_0xb74c[96]]=function(){return _0xb74c[98]};_0x89b6x54[_0xb74c[0]][_0xb74c[99]]=function(){mxVertexHandler[_0xb74c[0]][_0xb74c[99]][_0xb74c[30]](this,arguments);var _0x89b6x4f=this[_0xb74c[87]][_0xb74c[100]][_0xb74c[70]];this[_0xb74c[87]][_0xb74c[100]]=this[_0xb74c[101]](_0x89b6x4f);this[_0xb74c[87]][_0xb74c[99]]();};_0x89b6x54[_0xb74c[0]][_0xb74c[102]]=function(){mxVertexHandler[_0xb74c[0]][_0xb74c[102]][_0xb74c[30]](this,arguments);if(this[_0xb74c[87]]!=null){this[_0xb74c[87]][_0xb74c[102]]();this[_0xb74c[87]]=null;};};_0x89b6x54[_0xb74c[0]][_0xb74c[103]]=function(_0x89b6x56){if(_0x89b6x56[_0xb74c[104]](this[_0xb74c[87]])){return _0x89b6x53};return mxVertexHandler[_0xb74c[0]][_0xb74c[103]][_0xb74c[30]](this,arguments);};_0x89b6x54[_0xb74c[0]][_0xb74c[105]]=function(_0x89b6x57,_0x89b6x56){if(!_0x89b6x56[_0xb74c[106]]()&&this[_0xb74c[107]]==_0x89b6x53){var _0x89b6x58= new mxPoint(_0x89b6x56[_0xb74c[108]](),_0x89b6x56[_0xb74c[109]]());this[_0xb74c[110]](_0x89b6x58);var _0x89b6x59=this[_0xb74c[84]][_0xb74c[112]](_0x89b6x56[_0xb74c[111]]());var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];if(_0x89b6x59&&this[_0xb74c[80]]){_0x89b6x58[_0xb74c[68]]=this[_0xb74c[84]][_0xb74c[114]](_0x89b6x58[_0xb74c[68]]/_0x89b6x5a)*_0x89b6x5a;_0x89b6x58[_0xb74c[69]]=this[_0xb74c[84]][_0xb74c[114]](_0x89b6x58[_0xb74c[69]]/_0x89b6x5a)*_0x89b6x5a;};this[_0xb74c[115]](_0x89b6x58);this[_0xb74c[116]](this[_0xb74c[87]],_0x89b6x58[_0xb74c[68]],_0x89b6x58[_0xb74c[69]]);this[_0xb74c[83]][_0xb74c[85]][_0xb74c[84]][_0xb74c[117]][_0xb74c[99]](this[_0xb74c[83]],true);_0x89b6x56[_0xb74c[118]]();}else {mxVertexHandler[_0xb74c[0]][_0xb74c[105]][_0xb74c[30]](this,arguments)}};_0x89b6x54[_0xb74c[0]][_0xb74c[119]]=function(_0x89b6x57,_0x89b6x56){if(!_0x89b6x56[_0xb74c[106]]()&&this[_0xb74c[107]]==_0x89b6x53){this[_0xb74c[120]]();this[_0xb74c[121]]();_0x89b6x56[_0xb74c[118]]();}else {mxVertexHandler[_0xb74c[0]][_0xb74c[119]][_0xb74c[30]](this,arguments)}};_0x89b6x54[_0xb74c[0]][_0xb74c[101]]=function(_0x89b6x4f){var _0x89b6x5b=this[_0xb74c[83]][_0xb74c[123]][_0xb74c[122]]();var _0x89b6x5c=mxUtils[_0xb74c[124]](_0x89b6x5b);var _0x89b6x5d=Math[_0xb74c[125]](_0x89b6x5c);var _0x89b6x5e=Math[_0xb74c[126]](_0x89b6x5c);var _0x89b6x34= new mxRectangle(this[_0xb74c[83]][_0xb74c[68]],this[_0xb74c[83]][_0xb74c[69]],this[_0xb74c[83]][_0xb74c[70]],this[_0xb74c[83]][_0xb74c[71]]);if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[127]]()){var _0x89b6x5f=(_0x89b6x34[_0xb74c[70]]-_0x89b6x34[_0xb74c[71]])/2;_0x89b6x34[_0xb74c[68]]+=_0x89b6x5f;_0x89b6x34[_0xb74c[69]]-=_0x89b6x5f;var _0x89b6x23=_0x89b6x34[_0xb74c[70]];_0x89b6x34[_0xb74c[70]]=_0x89b6x34[_0xb74c[71]];_0x89b6x34[_0xb74c[71]]=_0x89b6x23;};var _0x89b6x60=this[_0xb74c[128]](_0x89b6x34);if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[129]]){_0x89b6x60[_0xb74c[68]]=2*_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]-_0x89b6x60[_0xb74c[68]]};if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[130]]){_0x89b6x60[_0xb74c[69]]=2*_0x89b6x34[_0xb74c[69]]+_0x89b6x34[_0xb74c[71]]-_0x89b6x60[_0xb74c[69]]};_0x89b6x60=mxUtils[_0xb74c[133]](_0x89b6x60,_0x89b6x5d,_0x89b6x5e, new mxPoint(this[_0xb74c[83]][_0xb74c[131]](),this[_0xb74c[83]][_0xb74c[132]]()));return  new mxRectangle(_0x89b6x60[_0xb74c[68]]-_0x89b6x4f/2,_0x89b6x60[_0xb74c[69]]-_0x89b6x4f/2,_0x89b6x4f,_0x89b6x4f);};_0x89b6x54[_0xb74c[0]][_0xb74c[128]]=function(_0x89b6x34){return null};_0x89b6x54[_0xb74c[0]][_0xb74c[115]]=function(_0x89b6x58){};_0x89b6x54[_0xb74c[0]][_0xb74c[110]]=function(_0x89b6x58){_0x89b6x58[_0xb74c[68]]=Math[_0xb74c[34]](this[_0xb74c[83]][_0xb74c[68]],Math[_0xb74c[6]](this[_0xb74c[83]][_0xb74c[68]]+this[_0xb74c[83]][_0xb74c[70]],_0x89b6x58[_0xb74c[68]]));_0x89b6x58[_0xb74c[69]]=Math[_0xb74c[34]](this[_0xb74c[83]][_0xb74c[69]],Math[_0xb74c[6]](this[_0xb74c[83]][_0xb74c[69]]+this[_0xb74c[83]][_0xb74c[71]],_0x89b6x58[_0xb74c[69]]));};_0x89b6x54[_0xb74c[0]][_0xb74c[120]]=function(){};function _0x89b6x61(_0x89b6x33){_0x89b6x54[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x61,_0x89b6x54);_0x89b6x61[_0xb74c[0]][_0xb74c[128]]=function(_0x89b6x34){var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];var _0x89b6xb=Math[_0xb74c[6]](_0x89b6x34[_0xb74c[70]],mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[14],60)*_0x89b6x5a);var _0x89b6xc=Math[_0xb74c[6]](_0x89b6x34[_0xb74c[71]],mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[15],20)*_0x89b6x5a);var _0x89b6xd=mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[16],_0xb74c[17]);var _0x89b6x3=(_0x89b6xd==_0xb74c[18])?_0x89b6x34[_0xb74c[68]]+_0x89b6xb:_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]-_0x89b6xb;return  new mxPoint(_0x89b6x3,_0x89b6x34[_0xb74c[69]]+_0x89b6xc);};_0x89b6x61[_0xb74c[0]][_0xb74c[115]]=function(_0x89b6x58){var _0x89b6x5b=this[_0xb74c[83]][_0xb74c[123]][_0xb74c[122]]();var _0x89b6x5c=mxUtils[_0xb74c[124]](_0x89b6x5b);var _0x89b6x5d=Math[_0xb74c[125]](-_0x89b6x5c);var _0x89b6x5e=Math[_0xb74c[126]](-_0x89b6x5c);var _0x89b6x34= new mxRectangle(this[_0xb74c[83]][_0xb74c[68]],this[_0xb74c[83]][_0xb74c[69]],this[_0xb74c[83]][_0xb74c[70]],this[_0xb74c[83]][_0xb74c[71]]);if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[127]]()){var _0x89b6x5f=(_0x89b6x34[_0xb74c[70]]-_0x89b6x34[_0xb74c[71]])/2;_0x89b6x34[_0xb74c[68]]+=_0x89b6x5f;_0x89b6x34[_0xb74c[69]]-=_0x89b6x5f;var _0x89b6x23=_0x89b6x34[_0xb74c[70]];_0x89b6x34[_0xb74c[70]]=_0x89b6x34[_0xb74c[71]];_0x89b6x34[_0xb74c[71]]=_0x89b6x23;};var _0x89b6x60= new mxPoint(_0x89b6x58[_0xb74c[68]],_0x89b6x58[_0xb74c[69]]);_0x89b6x60=mxUtils[_0xb74c[133]](_0x89b6x60,_0x89b6x5d,_0x89b6x5e, new mxPoint(this[_0xb74c[83]][_0xb74c[131]](),this[_0xb74c[83]][_0xb74c[132]]()));if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[129]]){_0x89b6x60[_0xb74c[68]]=2*_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]-_0x89b6x60[_0xb74c[68]]};if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[130]]){_0x89b6x60[_0xb74c[69]]=2*_0x89b6x34[_0xb74c[69]]+_0x89b6x34[_0xb74c[71]]-_0x89b6x60[_0xb74c[69]]};var _0x89b6x62=this[_0xb74c[134]](_0x89b6x60,_0x89b6x34);if(_0x89b6x62!=null){if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[129]]){_0x89b6x62[_0xb74c[68]]=2*_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]-_0x89b6x62[_0xb74c[68]]};if(this[_0xb74c[83]][_0xb74c[123]][_0xb74c[130]]){_0x89b6x62[_0xb74c[69]]=2*_0x89b6x34[_0xb74c[69]]+_0x89b6x34[_0xb74c[71]]-_0x89b6x62[_0xb74c[69]]};_0x89b6x5d=Math[_0xb74c[125]](_0x89b6x5c);_0x89b6x5e=Math[_0xb74c[126]](_0x89b6x5c);_0x89b6x62=mxUtils[_0xb74c[133]](_0x89b6x62,_0x89b6x5d,_0x89b6x5e, new mxPoint(this[_0xb74c[83]][_0xb74c[131]](),this[_0xb74c[83]][_0xb74c[132]]()));_0x89b6x58[_0xb74c[68]]=_0x89b6x62[_0xb74c[68]];_0x89b6x58[_0xb74c[69]]=_0x89b6x62[_0xb74c[69]];};};_0x89b6x61[_0xb74c[0]][_0xb74c[134]]=function(_0x89b6x60,_0x89b6x34){var _0x89b6xd=mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[16],_0xb74c[17]);var _0x89b6xb=(_0x89b6xd==_0xb74c[18])?_0x89b6x60[_0xb74c[68]]-_0x89b6x34[_0xb74c[68]]:_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]-_0x89b6x60[_0xb74c[68]];var _0x89b6xc=_0x89b6x60[_0xb74c[69]]-_0x89b6x34[_0xb74c[69]];var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];this[_0xb74c[83]][_0xb74c[4]][_0xb74c[14]]=Math[_0xb74c[135]](Math[_0xb74c[34]](1,_0x89b6xb)/_0x89b6x5a);this[_0xb74c[83]][_0xb74c[4]][_0xb74c[15]]=Math[_0xb74c[135]](Math[_0xb74c[34]](1,_0x89b6xc)/_0x89b6x5a);};_0x89b6x61[_0xb74c[0]][_0xb74c[120]]=function(){var _0x89b6x63=this[_0xb74c[84]][_0xb74c[136]]();_0x89b6x63[_0xb74c[137]]();try{this[_0xb74c[83]][_0xb74c[85]][_0xb74c[84]][_0xb74c[139]](_0xb74c[14],this[_0xb74c[83]][_0xb74c[4]][_0xb74c[14]],[this[_0xb74c[83]][_0xb74c[138]]]);this[_0xb74c[83]][_0xb74c[85]][_0xb74c[84]][_0xb74c[139]](_0xb74c[15],this[_0xb74c[83]][_0xb74c[4]][_0xb74c[15]],[this[_0xb74c[83]][_0xb74c[138]]]);}finally{_0x89b6x63[_0xb74c[140]]()};};function _0x89b6x64(_0x89b6x33){_0x89b6x61[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x64,_0x89b6x61);_0x89b6x64[_0xb74c[0]][_0xb74c[128]]=function(_0x89b6x34){var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];var _0x89b6x65=mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]/2,_0x89b6x34[_0xb74c[69]]+Math[_0xb74c[6]](_0x89b6x34[_0xb74c[71]],_0x89b6x65*_0x89b6x5a));};_0x89b6x64[_0xb74c[0]][_0xb74c[134]]=function(_0x89b6x58,_0x89b6x34){_0x89b6x58[_0xb74c[68]]=_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]/2;startSize=_0x89b6x58[_0xb74c[69]]-_0x89b6x34[_0xb74c[69]];var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];this[_0xb74c[83]][_0xb74c[4]][_0xb74c[141]]=Math[_0xb74c[135]](Math[_0xb74c[34]](1,startSize)/_0x89b6x5a);return _0x89b6x58;};_0x89b6x64[_0xb74c[0]][_0xb74c[120]]=function(){this[_0xb74c[83]][_0xb74c[85]][_0xb74c[84]][_0xb74c[139]](_0xb74c[141],this[_0xb74c[83]][_0xb74c[4]][_0xb74c[141]],[this[_0xb74c[83]][_0xb74c[138]]])};function _0x89b6x66(_0x89b6x33){_0x89b6x61[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x66,_0x89b6x61);_0x89b6x66[_0xb74c[0]][_0xb74c[142]]=20;_0x89b6x66[_0xb74c[0]][_0xb74c[143]]=1;_0x89b6x66[_0xb74c[0]][_0xb74c[128]]=function(_0x89b6x34){var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];var _0x89b6x67=Math[_0xb74c[6]](_0x89b6x34[_0xb74c[70]],Math[_0xb74c[6]](_0x89b6x34[_0xb74c[71]],mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[2],this[_0xb74c[142]])*_0x89b6x5a/this[_0xb74c[143]]));return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x67,_0x89b6x34[_0xb74c[69]]+_0x89b6x67);};_0x89b6x66[_0xb74c[0]][_0xb74c[134]]=function(_0x89b6x60,_0x89b6x34){var _0x89b6x4f=Math[_0xb74c[34]](0,Math[_0xb74c[6]](Math[_0xb74c[6]](_0x89b6x34[_0xb74c[70]]/this[_0xb74c[143]],_0x89b6x60[_0xb74c[68]]-_0x89b6x34[_0xb74c[68]]),Math[_0xb74c[6]](_0x89b6x34[_0xb74c[71]]/this[_0xb74c[143]],_0x89b6x60[_0xb74c[69]]-_0x89b6x34[_0xb74c[69]])));var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];this[_0xb74c[83]][_0xb74c[4]][_0xb74c[2]]=Math[_0xb74c[135]](Math[_0xb74c[34]](1,_0x89b6x4f)/_0x89b6x5a)*this[_0xb74c[143]];return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x4f,_0x89b6x34[_0xb74c[69]]+_0x89b6x4f);};_0x89b6x66[_0xb74c[0]][_0xb74c[120]]=function(){this[_0xb74c[83]][_0xb74c[85]][_0xb74c[84]][_0xb74c[139]](_0xb74c[2],this[_0xb74c[83]][_0xb74c[4]][_0xb74c[2]],[this[_0xb74c[83]][_0xb74c[138]]])};function _0x89b6x68(_0x89b6x33){_0x89b6x66[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x68,_0x89b6x66);_0x89b6x68[_0xb74c[0]][_0xb74c[142]]=30;_0x89b6x68[_0xb74c[0]][_0xb74c[143]]=2;function _0x89b6x69(_0x89b6x33){_0x89b6x66[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x69,_0x89b6x66);_0x89b6x69[_0xb74c[0]][_0xb74c[142]]=30;_0x89b6x69[_0xb74c[0]][_0xb74c[143]]=1;_0x89b6x69[_0xb74c[0]][_0xb74c[128]]=function(_0x89b6x34){var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];var _0x89b6x67=Math[_0xb74c[6]](_0x89b6x34[_0xb74c[70]],Math[_0xb74c[6]](_0x89b6x34[_0xb74c[71]],mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[2],this[_0xb74c[142]])*_0x89b6x5a/this[_0xb74c[143]]));return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]-_0x89b6x67,_0x89b6x34[_0xb74c[69]]+_0x89b6x67);};_0x89b6x69[_0xb74c[0]][_0xb74c[134]]=function(_0x89b6x60,_0x89b6x34){var _0x89b6x4f=Math[_0xb74c[34]](0,Math[_0xb74c[6]](Math[_0xb74c[6]](_0x89b6x34[_0xb74c[70]]/this[_0xb74c[143]],_0x89b6x60[_0xb74c[68]]-_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]),Math[_0xb74c[6]](_0x89b6x34[_0xb74c[71]]/this[_0xb74c[143]],_0x89b6x60[_0xb74c[69]]-_0x89b6x34[_0xb74c[69]])));var _0x89b6x5a=this[_0xb74c[84]][_0xb74c[93]]()[_0xb74c[113]];this[_0xb74c[83]][_0xb74c[4]][_0xb74c[2]]=Math[_0xb74c[135]](Math[_0xb74c[34]](1,_0x89b6x4f)/_0x89b6x5a)*this[_0xb74c[143]];return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]-_0x89b6x4f,_0x89b6x34[_0xb74c[69]]+_0x89b6x4f);};function _0x89b6x6a(_0x89b6x33){_0x89b6x66[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x6a,_0x89b6x66);_0x89b6x6a[_0xb74c[0]][_0xb74c[142]]=0.2;_0x89b6x6a[_0xb74c[0]][_0xb74c[143]]=1;_0x89b6x6a[_0xb74c[0]][_0xb74c[128]]=function(_0x89b6x34){var _0x89b6x67=mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[2],this[_0xb74c[142]]);return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]*_0x89b6x67,_0x89b6x34[_0xb74c[69]]+_0x89b6x34[_0xb74c[71]]/2);};_0x89b6x6a[_0xb74c[0]][_0xb74c[134]]=function(_0x89b6x60,_0x89b6x34){var _0x89b6x4f=Math[_0xb74c[6]](1,(_0x89b6x60[_0xb74c[68]]-_0x89b6x34[_0xb74c[68]])/_0x89b6x34[_0xb74c[70]]);this[_0xb74c[83]][_0xb74c[4]][_0xb74c[2]]=_0x89b6x4f;return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x4f*_0x89b6x34[_0xb74c[70]],_0x89b6x34[_0xb74c[69]]+_0x89b6x34[_0xb74c[71]]/2);};function _0x89b6x6b(_0x89b6x33){_0x89b6x66[_0xb74c[24]](this,_0x89b6x33)}mxUtils[_0xb74c[25]](_0x89b6x6b,_0x89b6x66);_0x89b6x6b[_0xb74c[0]][_0xb74c[142]]=0.4;_0x89b6x6b[_0xb74c[0]][_0xb74c[143]]=1;_0x89b6x6b[_0xb74c[0]][_0xb74c[128]]=function(_0x89b6x34){var _0x89b6x67=mxUtils[_0xb74c[5]](this[_0xb74c[83]][_0xb74c[4]],_0xb74c[2],this[_0xb74c[142]]);return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]/2,_0x89b6x34[_0xb74c[69]]+_0x89b6x67*_0x89b6x34[_0xb74c[71]]/2);};_0x89b6x6b[_0xb74c[0]][_0xb74c[134]]=function(_0x89b6x60,_0x89b6x34){var _0x89b6x4f=Math[_0xb74c[34]](0,Math[_0xb74c[6]](1,((_0x89b6x60[_0xb74c[69]]-_0x89b6x34[_0xb74c[69]])/_0x89b6x34[_0xb74c[71]])*2));this[_0xb74c[83]][_0xb74c[4]][_0xb74c[2]]=_0x89b6x4f;return  new mxPoint(_0x89b6x34[_0xb74c[68]]+_0x89b6x34[_0xb74c[70]]/2,_0x89b6x34[_0xb74c[69]]+_0x89b6x4f*_0x89b6x34[_0xb74c[71]]/2);};var _0x89b6x6c={"\x73\x77\x69\x6D\x6C\x61\x6E\x65":_0x89b6x64,"\x66\x6F\x6C\x64\x65\x72":_0x89b6x61,"\x63\x75\x62\x65":_0x89b6x66,"\x63\x61\x72\x64":_0x89b6x68,"\x6E\x6F\x74\x65":_0x89b6x69,"\x73\x74\x65\x70":_0x89b6x6a,"\x74\x61\x70\x65":_0x89b6x6b};var _0x89b6x6d=mxGraph[_0xb74c[0]][_0xb74c[144]];mxGraph[_0xb74c[0]][_0xb74c[144]]=function(_0x89b6x33){if(_0x89b6x33!=null){var _0x89b6x6e=_0x89b6x6c[_0x89b6x33[_0xb74c[4]][_0xb74c[123]]];if(_0x89b6x6e!=null){return  new _0x89b6x6e(_0x89b6x33)};};return _0x89b6x6d[_0xb74c[30]](this,arguments);};};mxGraph[_0xb74c[0]][_0xb74c[145]]=function(_0x89b6x6f,_0x89b6x50){if(_0x89b6x6f!=null&&_0x89b6x6f[_0xb74c[123]]!=null){if(_0x89b6x6f[_0xb74c[123]][_0xb74c[146]]!=null){if(_0x89b6x6f[_0xb74c[123]][_0xb74c[146]]!=null){return _0x89b6x6f[_0xb74c[123]][_0xb74c[146]][_0xb74c[147]]}}else {if(_0x89b6x6f[_0xb74c[123]][_0xb74c[147]]!=null){return _0x89b6x6f[_0xb74c[123]][_0xb74c[147]]}}};return null;};mxRectangleShape[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxLabel[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];mxImageShape[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];mxSwimlane[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];_0x89b6x14[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];_0x89b6x9[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];_0x89b6x10[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];_0x89b6x1[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];_0x89b6xa[_0xb74c[0]][_0xb74c[147]]=mxRectangleShape[_0xb74c[0]][_0xb74c[147]];mxCylinder[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.15,0.05),false), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.85,0.05),false), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.3),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.7),true), new mxConnectionConstraint( new mxPoint(0.15,0.95),false), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.85,0.95),false)];_0x89b6x25[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.1),false), new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.75,0.1),false), new mxConnectionConstraint( new mxPoint(0,1/3),false), new mxConnectionConstraint( new mxPoint(0,1),false), new mxConnectionConstraint( new mxPoint(1,1/3),false), new mxConnectionConstraint( new mxPoint(1,1),false), new mxConnectionConstraint( new mxPoint(0.5,0.5),false)];_0x89b6x28[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxActor[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.25,0.2),false), new mxConnectionConstraint( new mxPoint(0.1,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.75,0.25),false), new mxConnectionConstraint( new mxPoint(0.9,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];_0x89b6x11[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.35),false), new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.65),false), new mxConnectionConstraint( new mxPoint(1,0.35),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.65),false), new mxConnectionConstraint( new mxPoint(0.25,1),false), new mxConnectionConstraint( new mxPoint(0.75,0),false)];_0x89b6x13[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true), new mxConnectionConstraint( new mxPoint(0.1,0.25),false), new mxConnectionConstraint( new mxPoint(0.2,0.5),false), new mxConnectionConstraint( new mxPoint(0.1,0.75),false), new mxConnectionConstraint( new mxPoint(0.9,0.25),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(0.9,0.75),false)];mxLine[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0.25,0.5),false), new mxConnectionConstraint( new mxPoint(0.75,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.5),false)];_0x89b6x26[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.5,1),false)];mxEllipse[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0,0),true), new mxConnectionConstraint( new mxPoint(1,0),true), new mxConnectionConstraint( new mxPoint(0,1),true), new mxConnectionConstraint( new mxPoint(1,1),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5))];mxDoubleEllipse[_0xb74c[0]][_0xb74c[147]]=mxEllipse[_0xb74c[0]][_0xb74c[147]];mxRhombus[_0xb74c[0]][_0xb74c[147]]=mxEllipse[_0xb74c[0]][_0xb74c[147]];mxTriangle[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(1,0.5),true)];mxHexagon[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.375,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.625,0),true), new mxConnectionConstraint( new mxPoint(0.125,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0.125,0.75),false), new mxConnectionConstraint( new mxPoint(0.875,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(0.875,0.75),false), new mxConnectionConstraint( new mxPoint(0.375,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.625,1),true)];mxCloud[_0xb74c[0]][_0xb74c[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.25),false), new mxConnectionConstraint( new mxPoint(0.4,0.1),false), new mxConnectionConstraint( new mxPoint(0.16,0.55),false), new mxConnectionConstraint( new mxPoint(0.07,0.4),false), new mxConnectionConstraint( new mxPoint(0.31,0.8),false), new mxConnectionConstraint( new mxPoint(0.13,0.77),false), new mxConnectionConstraint( new mxPoint(0.8,0.8),false), new mxConnectionConstraint( new mxPoint(0.55,0.95),false), new mxConnectionConstraint( new mxPoint(0.875,0.5),false), new mxConnectionConstraint( new mxPoint(0.96,0.7),false), new mxConnectionConstraint( new mxPoint(0.625,0.2),false), new mxConnectionConstraint( new mxPoint(0.88,0.25),false)];mxArrow[_0xb74c[0]][_0xb74c[147]]=null;})();
\ No newline at end of file
index ed8a5d3..b793c19 100644 (file)
@@ -1 +1 @@
-var _0xc818=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x61\x6C\x65\x74\x74\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x67\x72\x61\x70\x68","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x65\x64\x69\x74\x6F\x72","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x6F\x64\x79","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x6D\x6F\x75\x73\x65\x75\x70","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x74\x6F\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x74\x6F\x6F\x6C\x74\x69\x70\x2E\x70\x6E\x67","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x65\x6E\x74\x72\x79","\x67\x65\x74","\x2F\x65\x6E\x74\x72\x79\x2F","\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x61\x64\x64\x49\x6D\x61\x67\x65\x50\x61\x6C\x65\x74\x74\x65","\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74","\x2F\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74\x2F","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F","\x73\x65\x74","\x6D\x61\x74\x68","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x2F\x70\x6C\x61\x79\x62\x61\x63\x6B\x2F","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F","\x72\x65\x63\x6F\x72\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x53\x65\x72\x76\x65\x72","\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5F\x73\x65\x72\x76\x65\x72\x2F","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x63\x61\x6C\x6C\x66\x6C\x6F\x77","\x2F\x63\x61\x6C\x6C\x66\x6C\x6F\x77\x2F","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x73\x74\x61\x74\x73","\x2F\x73\x74\x61\x74\x73\x2F","\x67\x65\x6E\x65\x72\x61\x6C","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2F","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x65\x6E\x61\x62\x6C\x65\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x42\x6F\x72\x64\x65\x72","\x74\x68\x75\x6D\x62\x42\x6F\x72\x64\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x44\x65\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x61\x72\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x69\x70\x61\x72\x74\x2F\x47\x65\x61\x72\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x74\x68\x75\x6D\x62\x57\x69\x64\x74\x68","\x74\x68\x75\x6D\x62\x48\x65\x69\x67\x68\x74","\x74\x68\x75\x6D\x62\x50\x61\x64\x64\x69\x6E\x67","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x53\x69\x7A\x65","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70","\x74\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x6F\x6F\x6C\x74\x69\x70","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x72\x61\x70\x68\x32","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x76\x69\x65\x77","\x49\x53\x5F\x53\x56\x47","\x63\x61\x6E\x76\x61\x73","\x72\x65\x6C\x61\x74\x69\x76\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x31\x34\x70\x78","\x68\x65\x69\x67\x68\x74","\x32\x37\x70\x78","\x64\x69\x73\x70\x6C\x61\x79","\x62\x6C\x6F\x63\x6B","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x63\x6C\x65\x61\x72","\x6D\x6F\x64\x65\x6C","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x76\x69\x73\x69\x62\x6C\x65","\x70\x78","\x6C\x65\x6E\x67\x74\x68","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x67\x72\x61\x79","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x65\x6E\x74\x65\x72","\x31\x30\x30\x25","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x32\x70\x78","\x36\x70\x78","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","","\x77\x72\x69\x74\x65","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x74\x6F\x70","\x6E\x6F\x6E\x65","\x78","\x6D\x69\x6E","\x79","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x78","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x29","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x65\x66\x74","\x64\x72\x61\x77\x50\x61\x6E\x65","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x54\x69\x74\x6C\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x68\x75\x6D\x62","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x66\x6C\x6F\x6F\x72","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x4E\x4F\x5F\x46\x4F","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x49\x53\x5F\x49\x45\x36","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x63\x75\x72\x73\x6F\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x49\x53\x5F\x49\x45","\x34\x70\x78","\x63\x72\x65\x61\x74\x65\x49\x74\x65\x6D","\x67\x65\x49\x74\x65\x6D","\x70\x61\x64\x64\x69\x6E\x67","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x63\x72\x65\x61\x74\x65\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x50\x72\x65\x76\x69\x65\x77","\x62\x6F\x72\x64\x65\x72","\x31\x70\x78\x20\x64\x61\x73\x68\x65\x64\x20\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x53\x6F\x75\x72\x63\x65","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x61\x70\x70\x6C\x79","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x6D\x6F\x75\x73\x65\x55\x70","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x61\x62\x73","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x64\x72\x6F\x70","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6C\x61\x62\x65\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6B\x65\x79","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x74\x2D\x49\x54","\x66\x69\x6C\x65\x5F\x69\x64","\x6F\x70\x74\x73","\x30","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x64\x69\x67\x69\x74","\x35","\x31","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x72\x65\x74\x72\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x31\x30","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x6F\x64\x62\x63\x5F\x69\x64","\x71\x75\x65\x72\x79","\x6F\x75\x74\x70\x75\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x64\x69\x67\x69\x74\x73","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x23","\x6E\x75\x6D\x62\x65\x72","\x74\x65\x78\x74","\x66\x69\x6C\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x2D\x31","\x73\x69\x70\x5F\x69\x64","\x75\x72\x6C","\x36\x30","\x70\x68\x6F\x6E\x65","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x74","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x75\x72\x69\x74\x61\x6C\x69\x61\x6E\x66\x65\x6D\x61\x6C\x65","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","\x33\x30\x30","\x62\x6F\x78\x6E\x75\x6D\x62\x65\x72","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x61\x67\x65\x6E\x74","\x71\x75\x65\x75\x65\x5F\x65\x76\x65\x6E\x74","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x64\x61\x74\x61\x35","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x67\x6F\x61\x6C","\x6C\x69\x73\x74\x5F\x69\x64","\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x76\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x65\x64\x67\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x23\x66\x66\x66\x66\x66\x66","\x61\x64\x64\x50\x61\x6C\x65\x74\x74\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72","\x61\x64\x64\x46\x6F\x6C\x64\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66\x29","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x31\x30\x30\x25\x20\x35\x30\x25","\x77\x61\x69\x74","\x72\x65\x6D\x6F\x76\x65\x50\x61\x6C\x65\x74\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x69\x6D\x61\x67\x65\x3B\x69\x6D\x61\x67\x65\x3D"];_0xc818[0];function Sidebar(_0xbd30x2,_0xbd30x3){this[_0xc818[1]]=_0xbd30x2;this[_0xc818[2]]=_0xbd30x3;this[_0xc818[3]]= new Object();this[_0xc818[4]]=true;this[_0xc818[5]]= new Graph(document[_0xc818[7]](_0xc818[6]),null,null,this[_0xc818[1]][_0xc818[9]][_0xc818[5]][_0xc818[8]]());this[_0xc818[5]][_0xc818[10]]=false;this[_0xc818[5]][_0xc818[11]]=false;this[_0xc818[5]][_0xc818[12]](false);this[_0xc818[5]][_0xc818[13]]=false;this[_0xc818[5]][_0xc818[14]](false);this[_0xc818[5]][_0xc818[15]](false);this[_0xc818[5]][_0xc818[2]][_0xc818[17]][_0xc818[16]]=_0xc818[18];this[_0xc818[5]][_0xc818[2]][_0xc818[17]][_0xc818[19]]=_0xc818[20];document[_0xc818[22]][_0xc818[21]](this[_0xc818[5]][_0xc818[2]]);if(!mxClient[_0xc818[23]]){mxEvent[_0xc818[26]](document,_0xc818[24],mxUtils[_0xc818[25]](this,function(){this[_0xc818[4]]=true}));mxEvent[_0xc818[26]](_0xbd30x3,_0xc818[27],mxUtils[_0xc818[25]](this,function(){this[_0xc818[4]]=true}));mxEvent[_0xc818[26]](document,_0xc818[28],mxUtils[_0xc818[25]](this,function(){this[_0xc818[4]]=false;this[_0xc818[29]]();}));mxEvent[_0xc818[26]](document,_0xc818[30],mxUtils[_0xc818[25]](this,function(_0xbd30x4){var _0xbd30x5=mxEvent[_0xc818[31]](_0xbd30x4);while(_0xbd30x5!=null){if(_0xbd30x5==this[_0xc818[32]]){return };_0xbd30x5=_0xbd30x5[_0xc818[33]];};this[_0xc818[29]]();}));mxEvent[_0xc818[26]](document,_0xc818[34],mxUtils[_0xc818[25]](this,function(_0xbd30x4){if(_0xbd30x4[_0xc818[35]]==null&&_0xbd30x4[_0xc818[36]]==null){this[_0xc818[29]]()}}));};this[_0xc818[37]](); new Image()[_0xc818[38]]=IMAGE_PATH+_0xc818[39];}Sidebar[_0xc818[40]][_0xc818[37]]=function(){var _0xbd30x6=STENCIL_PATH;console[_0xc818[41]](_0xbd30x6);this[_0xc818[49]](_0xc818[42],mxResources[_0xc818[43]](_0xc818[42]),_0xbd30x6+_0xc818[44],_0xc818[45],[_0xc818[46],_0xc818[47],_0xc818[48]],[mxResources[_0xc818[43]](_0xc818[46]),mxResources[_0xc818[43]](_0xc818[47]),mxResources[_0xc818[43]](_0xc818[48])]);this[_0xc818[49]](_0xc818[50],mxResources[_0xc818[43]](_0xc818[50]),_0xbd30x6+_0xc818[51],_0xc818[45],[_0xc818[52],_0xc818[53],_0xc818[54],_0xc818[55],_0xc818[56],_0xc818[57]],[mxResources[_0xc818[43]](_0xc818[52]),mxResources[_0xc818[43]](_0xc818[53]),mxResources[_0xc818[43]](_0xc818[54]),mxResources[_0xc818[43]](_0xc818[55]),mxResources[_0xc818[43]](_0xc818[56]),mxResources[_0xc818[43]](_0xc818[57])]);this[_0xc818[49]](_0xc818[58],mxResources[_0xc818[43]](_0xc818[58]),_0xbd30x6+_0xc818[59],_0xc818[45],[_0xc818[60],_0xc818[61]],[mxResources[_0xc818[43]](_0xc818[60]),mxResources[_0xc818[43]](_0xc818[61])]);this[_0xc818[49]](_0xc818[62],mxResources[_0xc818[43]](_0xc818[62]),_0xbd30x6+_0xc818[63],_0xc818[45],[_0xc818[62],_0xc818[64],_0xc818[65],_0xc818[66],_0xc818[67],_0xc818[68],_0xc818[69],_0xc818[70]],[mxResources[_0xc818[43]](_0xc818[62]),mxResources[_0xc818[43]](_0xc818[64]),mxResources[_0xc818[43]](_0xc818[65]),mxResources[_0xc818[43]](_0xc818[66]),mxResources[_0xc818[43]](_0xc818[67]),mxResources[_0xc818[43]](_0xc818[68]),mxResources[_0xc818[43]](_0xc818[69]),mxResources[_0xc818[43]](_0xc818[70])]);this[_0xc818[49]](_0xc818[71],mxResources[_0xc818[43]](_0xc818[71]),_0xbd30x6+_0xc818[72],_0xc818[45],[_0xc818[73]],[mxResources[_0xc818[43]](_0xc818[73])]);this[_0xc818[49]](_0xc818[74],mxResources[_0xc818[43]](_0xc818[74]),_0xbd30x6+_0xc818[75],_0xc818[45],[_0xc818[76],_0xc818[77]],[mxResources[_0xc818[43]](_0xc818[76]),mxResources[_0xc818[43]](_0xc818[77])]);this[_0xc818[49]](_0xc818[78],mxResources[_0xc818[43]](_0xc818[78]),_0xbd30x6+_0xc818[79],_0xc818[45],[_0xc818[80],_0xc818[81],_0xc818[82],_0xc818[83]],[mxResources[_0xc818[43]](_0xc818[80]),mxResources[_0xc818[43]](_0xc818[81]),mxResources[_0xc818[43]](_0xc818[82]),mxResources[_0xc818[43]](_0xc818[83])]);this[_0xc818[49]](_0xc818[84],mxResources[_0xc818[43]](_0xc818[84]),_0xbd30x6+_0xc818[85],_0xc818[45],[],[]);this[_0xc818[49]](_0xc818[86],mxResources[_0xc818[43]](_0xc818[86]),_0xbd30x6+_0xc818[87],_0xc818[45],[_0xc818[88],_0xc818[89],_0xc818[90],_0xc818[91],_0xc818[92]],[mxResources[_0xc818[43]](_0xc818[88]),mxResources[_0xc818[43]](_0xc818[89]),mxResources[_0xc818[43]](_0xc818[90]),mxResources[_0xc818[43]](_0xc818[91]),mxResources[_0xc818[43]](_0xc818[92])]);};Sidebar[_0xc818[40]][_0xc818[93]]=!mxClient[_0xc818[23]];Sidebar[_0xc818[40]][_0xc818[94]]=16;Sidebar[_0xc818[40]][_0xc818[95]]=3;Sidebar[_0xc818[40]][_0xc818[96]]=300;Sidebar[_0xc818[40]][_0xc818[97]]=true;Sidebar[_0xc818[40]][_0xc818[98]]=STENCIL_PATH+_0xc818[99];Sidebar[_0xc818[40]][_0xc818[100]]=34;Sidebar[_0xc818[40]][_0xc818[101]]=34;Sidebar[_0xc818[40]][_0xc818[102]]=2;Sidebar[_0xc818[40]][_0xc818[103]]=9;Sidebar[_0xc818[40]][_0xc818[104]]=false;Sidebar[_0xc818[40]][_0xc818[105]]=false;Sidebar[_0xc818[40]][_0xc818[106]]=function(_0xbd30x7,_0xbd30x8,_0xbd30x9,_0xbd30xa){if(this[_0xc818[93]]&&this[_0xc818[4]]){if(this[_0xc818[32]]!=_0xbd30x7){if(this[_0xc818[107]]!=null){window[_0xc818[108]](this[_0xc818[107]]);this[_0xc818[107]]=null;};var _0xbd30xb=mxUtils[_0xc818[25]](this,function(){if(this[_0xc818[109]]==null){this[_0xc818[109]]=document[_0xc818[7]](_0xc818[6]);this[_0xc818[109]][_0xc818[110]]=_0xc818[111];document[_0xc818[22]][_0xc818[21]](this[_0xc818[109]]);this[_0xc818[112]]= new Graph(this[_0xc818[109]],null,null,this[_0xc818[1]][_0xc818[9]][_0xc818[5]][_0xc818[8]]());this[_0xc818[112]][_0xc818[114]][_0xc818[113]](this[_0xc818[94]],this[_0xc818[94]]);this[_0xc818[112]][_0xc818[10]]=false;this[_0xc818[112]][_0xc818[11]]=false;this[_0xc818[112]][_0xc818[13]]=false;this[_0xc818[112]][_0xc818[14]](false);this[_0xc818[112]][_0xc818[12]](false);this[_0xc818[112]][_0xc818[15]](false);if(!mxClient[_0xc818[115]]){this[_0xc818[112]][_0xc818[114]][_0xc818[116]][_0xc818[17]][_0xc818[19]]=_0xc818[117]};this[_0xc818[118]]=mxUtils[_0xc818[119]](IMAGE_PATH+_0xc818[39]);this[_0xc818[118]][_0xc818[17]][_0xc818[19]]=_0xc818[20];this[_0xc818[118]][_0xc818[17]][_0xc818[120]]=_0xc818[121];this[_0xc818[118]][_0xc818[17]][_0xc818[122]]=_0xc818[123];document[_0xc818[22]][_0xc818[21]](this[_0xc818[118]]);};this[_0xc818[109]][_0xc818[17]][_0xc818[124]]=_0xc818[125];this[_0xc818[112]][_0xc818[126]]=(_0xbd30xa==null||_0xbd30xa);this[_0xc818[112]][_0xc818[128]][_0xc818[127]]();this[_0xc818[112]][_0xc818[129]](_0xbd30x8);var _0xbd30xc=this[_0xc818[112]][_0xc818[130]]();var _0xbd30xd=_0xbd30xc[_0xc818[120]]+2*this[_0xc818[94]];var _0xbd30xe=_0xbd30xc[_0xc818[122]]+2*this[_0xc818[94]];if(mxClient[_0xc818[131]]){_0xbd30xd+=4;_0xbd30xe+=4;this[_0xc818[109]][_0xc818[17]][_0xc818[132]]=_0xc818[18];}else {this[_0xc818[109]][_0xc818[17]][_0xc818[132]]=_0xc818[133]};this[_0xc818[118]][_0xc818[17]][_0xc818[16]]=_0xc818[133];this[_0xc818[109]][_0xc818[17]][_0xc818[120]]=_0xbd30xd+_0xc818[134];if(this[_0xc818[105]]&&_0xbd30x9!=null&&_0xbd30x9[_0xc818[135]]>0){if(this[_0xc818[136]]==null){this[_0xc818[136]]=document[_0xc818[7]](_0xc818[6]);this[_0xc818[136]][_0xc818[17]][_0xc818[137]]=_0xc818[138];this[_0xc818[136]][_0xc818[17]][_0xc818[139]]=_0xc818[140];this[_0xc818[136]][_0xc818[17]][_0xc818[120]]=_0xc818[141];this[_0xc818[136]][_0xc818[17]][_0xc818[132]]=_0xc818[18];if(mxClient[_0xc818[115]]){this[_0xc818[136]][_0xc818[17]][_0xc818[142]]=_0xc818[143]}else {this[_0xc818[136]][_0xc818[17]][_0xc818[19]]=_0xc818[20];this[_0xc818[136]][_0xc818[17]][_0xc818[142]]=_0xc818[144];};this[_0xc818[109]][_0xc818[21]](this[_0xc818[136]]);}else {this[_0xc818[136]][_0xc818[145]]=_0xc818[146]};this[_0xc818[136]][_0xc818[17]][_0xc818[124]]=_0xc818[146];mxUtils[_0xc818[147]](this[_0xc818[136]],_0xbd30x9);var _0xbd30xf=this[_0xc818[136]][_0xc818[148]]+10;_0xbd30xe+=_0xbd30xf;if(mxClient[_0xc818[115]]){this[_0xc818[136]][_0xc818[17]][_0xc818[149]]=(-_0xbd30xf)+_0xc818[134]}else {_0xbd30xe-=6;this[_0xc818[136]][_0xc818[17]][_0xc818[150]]=(_0xbd30xe-_0xbd30xf)+_0xc818[134];};}else {if(this[_0xc818[136]]!=null&&this[_0xc818[136]][_0xc818[33]]!=null){this[_0xc818[136]][_0xc818[17]][_0xc818[124]]=_0xc818[151]}};this[_0xc818[109]][_0xc818[17]][_0xc818[122]]=_0xbd30xe+_0xc818[134];var _0xbd30x10=-Math[_0xc818[153]](0,_0xbd30xc[_0xc818[152]]-this[_0xc818[94]]);var _0xbd30x11=-Math[_0xc818[153]](0,_0xbd30xc[_0xc818[154]]-this[_0xc818[94]]);var _0xbd30x12=this[_0xc818[2]][_0xc818[155]]+this[_0xc818[1]][_0xc818[156]]+3;var _0xbd30x13=Math[_0xc818[159]](0,(this[_0xc818[2]][_0xc818[157]]+_0xbd30x7[_0xc818[157]]-this[_0xc818[2]][_0xc818[158]]-_0xbd30xe/2+16));if(mxClient[_0xc818[115]]){this[_0xc818[112]][_0xc818[114]][_0xc818[116]][_0xc818[164]](_0xc818[160],_0xc818[161]+_0xbd30x10+_0xc818[162]+_0xbd30x11+_0xc818[163])}else {this[_0xc818[112]][_0xc818[114]][_0xc818[166]][_0xc818[17]][_0xc818[165]]=_0xbd30x10+_0xc818[134];this[_0xc818[112]][_0xc818[114]][_0xc818[166]][_0xc818[17]][_0xc818[150]]=_0xbd30x11+_0xc818[134];};_0xbd30x12+=document[_0xc818[169]](_0xc818[168])[_0xc818[167]];_0xbd30x13+=90;this[_0xc818[109]][_0xc818[17]][_0xc818[19]]=_0xc818[20];this[_0xc818[109]][_0xc818[17]][_0xc818[165]]=_0xbd30x12+_0xc818[134];this[_0xc818[109]][_0xc818[17]][_0xc818[150]]=_0xbd30x13+_0xc818[134];this[_0xc818[118]][_0xc818[17]][_0xc818[165]]=(_0xbd30x12-13)+_0xc818[134];this[_0xc818[118]][_0xc818[17]][_0xc818[150]]=(_0xbd30x13+_0xbd30xe/2-13)+_0xc818[134];});if(this[_0xc818[109]]!=null&&this[_0xc818[109]][_0xc818[17]][_0xc818[124]]!=_0xc818[151]){_0xbd30xb()}else {this[_0xc818[107]]=window[_0xc818[170]](_0xbd30xb,this[_0xc818[96]])};this[_0xc818[32]]=_0xbd30x7;}}};Sidebar[_0xc818[40]][_0xc818[29]]=function(){if(this[_0xc818[107]]!=null){window[_0xc818[108]](this[_0xc818[107]]);this[_0xc818[107]]=null;};if(this[_0xc818[109]]!=null){this[_0xc818[109]][_0xc818[17]][_0xc818[124]]=_0xc818[151];this[_0xc818[118]][_0xc818[17]][_0xc818[16]]=_0xc818[18];this[_0xc818[32]]=null;};};Sidebar[_0xc818[40]][_0xc818[171]]=function(_0xbd30x14){var _0xbd30x7=document[_0xc818[7]](_0xc818[172]);_0xbd30x7[_0xc818[164]](_0xc818[173],_0xc818[174]);_0xbd30x7[_0xc818[110]]=_0xc818[175];mxUtils[_0xc818[147]](_0xbd30x7,_0xbd30x14);return _0xbd30x7;};Sidebar[_0xc818[40]][_0xc818[176]]=function(_0xbd30x8,_0xbd30xd,_0xbd30xe,_0xbd30x15,_0xbd30x9,_0xbd30xa){this[_0xc818[5]][_0xc818[126]]=(_0xbd30xa==null||_0xbd30xa);this[_0xc818[5]][_0xc818[114]][_0xc818[177]](1,0,0);this[_0xc818[5]][_0xc818[129]](_0xbd30x8);var _0xbd30xc=this[_0xc818[5]][_0xc818[130]]();var _0xbd30x16=this[_0xc818[95]];var _0xbd30x17=Math[_0xc818[153]]((_0xbd30xd-2)/(_0xbd30xc[_0xc818[120]]-_0xbd30xc[_0xc818[152]]+_0xbd30x16),(_0xbd30xe-2)/(_0xbd30xc[_0xc818[122]]-_0xbd30xc[_0xc818[154]]+_0xbd30x16));var _0xbd30x10=-Math[_0xc818[153]](_0xbd30xc[_0xc818[152]],0);var _0xbd30x11=-Math[_0xc818[153]](_0xbd30xc[_0xc818[154]],0);this[_0xc818[5]][_0xc818[114]][_0xc818[177]](_0xbd30x17,_0xbd30x10,_0xbd30x11);_0xbd30xc=this[_0xc818[5]][_0xc818[130]]();var _0xbd30x18=Math[_0xc818[159]](0,Math[_0xc818[178]]((_0xbd30xd-_0xbd30xc[_0xc818[120]]-_0xbd30xc[_0xc818[152]])/2));var _0xbd30xf=Math[_0xc818[159]](0,Math[_0xc818[178]]((_0xbd30xe-_0xbd30xc[_0xc818[122]]-_0xbd30xc[_0xc818[154]])/2));var _0xbd30x19=null;if(this[_0xc818[5]][_0xc818[179]]==mxConstants[_0xc818[180]]&&!mxClient[_0xc818[181]]){_0xbd30x19=this[_0xc818[5]][_0xc818[114]][_0xc818[184]]()[_0xc818[183]][_0xc818[182]](true)}else {_0xbd30x19=this[_0xc818[5]][_0xc818[2]][_0xc818[182]](false);_0xbd30x19[_0xc818[145]]=this[_0xc818[5]][_0xc818[2]][_0xc818[145]];};this[_0xc818[5]][_0xc818[185]]()[_0xc818[127]]();if(mxClient[_0xc818[186]]){_0xbd30x15[_0xc818[17]][_0xc818[187]]=_0xc818[188]+this[_0xc818[1]][_0xc818[9]][_0xc818[189]]+_0xc818[163]};var _0xbd30x1a=3;_0xbd30x19[_0xc818[17]][_0xc818[19]]=_0xc818[117];_0xbd30x19[_0xc818[17]][_0xc818[132]]=_0xc818[18];_0xbd30x19[_0xc818[17]][_0xc818[190]]=_0xc818[191];_0xbd30x19[_0xc818[17]][_0xc818[165]]=(_0xbd30x18+_0xbd30x1a)+_0xc818[134];_0xbd30x19[_0xc818[17]][_0xc818[150]]=(_0xbd30xf+_0xbd30x1a)+_0xc818[134];_0xbd30x19[_0xc818[17]][_0xc818[120]]=_0xbd30xd+_0xc818[134];_0xbd30x19[_0xc818[17]][_0xc818[122]]=_0xbd30xe+_0xc818[134];_0xbd30x19[_0xc818[17]][_0xc818[16]]=_0xc818[146];_0xbd30x19[_0xc818[17]][_0xc818[192]]=_0xc818[146];_0xbd30x19[_0xc818[17]][_0xc818[193]]=_0xc818[146];_0xbd30x15[_0xc818[21]](_0xbd30x19);if(this[_0xc818[104]]&&_0xbd30x9!=null){var _0xbd30x1b=(mxClient[_0xc818[131]])?2*this[_0xc818[102]]+2:0;_0xbd30x15[_0xc818[17]][_0xc818[122]]=(this[_0xc818[101]]+_0xbd30x1b+this[_0xc818[103]]+8)+_0xc818[134];var _0xbd30x1c=document[_0xc818[7]](_0xc818[6]);_0xbd30x1c[_0xc818[17]][_0xc818[194]]=this[_0xc818[103]]+_0xc818[134];_0xbd30x1c[_0xc818[17]][_0xc818[139]]=_0xc818[140];_0xbd30x1c[_0xc818[17]][_0xc818[195]]=_0xc818[196];if(mxClient[_0xc818[197]]){_0xbd30x1c[_0xc818[17]][_0xc818[122]]=(this[_0xc818[103]]+12)+_0xc818[134]};_0xbd30x1c[_0xc818[17]][_0xc818[142]]=_0xc818[198];mxUtils[_0xc818[147]](_0xbd30x1c,_0xbd30x9);_0xbd30x15[_0xc818[21]](_0xbd30x1c);};};Sidebar[_0xc818[40]][_0xc818[199]]=function(_0xbd30x8,_0xbd30x9,_0xbd30xa){var _0xbd30x7=document[_0xc818[7]](_0xc818[172]);_0xbd30x7[_0xc818[164]](_0xc818[173],_0xc818[174]);_0xbd30x7[_0xc818[110]]=_0xc818[200];_0xbd30x7[_0xc818[17]][_0xc818[132]]=_0xc818[18];var _0xbd30x1b=(mxClient[_0xc818[131]])?8+2*this[_0xc818[102]]:6;_0xbd30x7[_0xc818[17]][_0xc818[120]]=(this[_0xc818[100]]+_0xbd30x1b)+_0xc818[134];_0xbd30x7[_0xc818[17]][_0xc818[122]]=(this[_0xc818[101]]+_0xbd30x1b)+_0xc818[134];_0xbd30x7[_0xc818[17]][_0xc818[201]]=this[_0xc818[102]]+_0xc818[134];mxEvent[_0xc818[26]](_0xbd30x7,_0xc818[202],function(_0xbd30x4){mxEvent[_0xc818[203]](_0xbd30x4)});this[_0xc818[176]](_0xbd30x8,this[_0xc818[100]],this[_0xc818[101]],_0xbd30x7,_0xbd30x9,_0xbd30xa);return _0xbd30x7;};Sidebar[_0xc818[40]][_0xc818[204]]=function(_0xbd30x8,_0xbd30x1d){return function(_0xbd30x1e,_0xbd30x4,_0xbd30x1f,_0xbd30x20,_0xbd30x21){if(_0xbd30x1e[_0xc818[205]]()){_0xbd30x8=_0xbd30x1e[_0xc818[206]](_0xbd30x8);if(_0xbd30x8[_0xc818[135]]>0){var _0xbd30x22=(_0xbd30x1f!=null)?_0xbd30x1e[_0xc818[207]](_0xbd30x1f,_0xbd30x8,_0xbd30x4):false;var _0xbd30x23=null;if(_0xbd30x1f!=null&& !_0xbd30x22){_0xbd30x1f=null};if(_0xbd30x1d&&_0xbd30x1e[_0xc818[208]]()&&_0xbd30x1e[_0xc818[209]](_0xbd30x1f,_0xbd30x8,_0xbd30x4)){_0xbd30x1e[_0xc818[210]](_0xbd30x1f,_0xbd30x8,null,_0xbd30x20,_0xbd30x21);_0xbd30x23=_0xbd30x8;}else {if(_0xbd30x8[_0xc818[135]]>0){_0xbd30x23=_0xbd30x1e[_0xc818[211]](_0xbd30x8,_0xbd30x20,_0xbd30x21,_0xbd30x1f)}};if(_0xbd30x23!=null&&_0xbd30x23[_0xc818[135]]>0){_0xbd30x1e[_0xc818[212]](_0xbd30x23[0]);_0xbd30x1e[_0xc818[213]](_0xbd30x23);};};}}};Sidebar[_0xc818[40]][_0xc818[214]]=function(_0xbd30xd,_0xbd30xe){var _0xbd30x7=document[_0xc818[7]](_0xc818[6]);_0xbd30x7[_0xc818[17]][_0xc818[215]]=_0xc818[216];_0xbd30x7[_0xc818[17]][_0xc818[120]]=_0xbd30xd+_0xc818[134];_0xbd30x7[_0xc818[17]][_0xc818[122]]=_0xbd30xe+_0xc818[134];return _0xbd30x7;};Sidebar[_0xc818[40]][_0xc818[217]]=function(_0xbd30x7,_0xbd30x24,_0xbd30x25){var _0xbd30x26=mxUtils[_0xc818[219]](_0xbd30x7,this[_0xc818[1]][_0xc818[9]][_0xc818[5]],_0xbd30x24,_0xbd30x25,0,0,this[_0xc818[1]][_0xc818[9]][_0xc818[5]][_0xc818[218]],true,true);_0xbd30x26[_0xc818[220]]=function(_0xbd30x1e,_0xbd30x20,_0xbd30x21){var _0xbd30x1f=mxDragSource[_0xc818[40]][_0xc818[220]][_0xc818[221]](this,arguments);if(!_0xbd30x1e[_0xc818[222]](_0xbd30x1f)){_0xbd30x1f=null};return _0xbd30x1f;};return _0xbd30x26;};Sidebar[_0xc818[40]][_0xc818[223]]=function(_0xbd30x7,_0xbd30x27){var _0xbd30x1e=this[_0xc818[1]][_0xc818[9]][_0xc818[5]];var _0xbd30x28=null;mxEvent[_0xc818[226]](_0xbd30x7,function(_0xbd30x4){_0xbd30x28= new mxPoint(mxEvent[_0xc818[224]](_0xbd30x4),mxEvent[_0xc818[225]](_0xbd30x4))});var _0xbd30x29=_0xbd30x27[_0xc818[227]];_0xbd30x27[_0xc818[227]]=function(_0xbd30x4){if(!mxEvent[_0xc818[228]](_0xbd30x4)&&this[_0xc818[229]]==null&&_0xbd30x28!=null){var _0xbd30x2a=_0xbd30x1e[_0xc818[230]];if(Math[_0xc818[231]](_0xbd30x28[_0xc818[152]]-mxEvent[_0xc818[224]](_0xbd30x4))<=_0xbd30x2a&&Math[_0xc818[231]](_0xbd30x28[_0xc818[154]]-mxEvent[_0xc818[225]](_0xbd30x4))<=_0xbd30x2a){var _0xbd30x2b=_0xbd30x1e[_0xc818[232]]();_0xbd30x27[_0xc818[233]](_0xbd30x1e,_0xbd30x4,null,_0xbd30x2b,_0xbd30x2b);};};_0xbd30x29[_0xc818[221]](this,arguments);_0xbd30x28=null;};};Sidebar[_0xc818[40]][_0xc818[234]]=function(_0xbd30x2c,_0xbd30x14,_0xbd30x2d,_0xbd30x2e){var _0xbd30x2f=mxUtils[_0xc818[234]]();var _0xbd30x19=_0xbd30x2f[_0xc818[7]](_0xbd30x2c);_0xbd30x19[_0xc818[164]](_0xc818[235],_0xbd30x14);_0xbd30x2d[_0xc818[236]](function(_0xbd30x30,_0xbd30x31){_0xbd30x19[_0xc818[164]](_0xbd30x30,_0xbd30x2e[_0xbd30x31]?_0xbd30x2e[_0xbd30x31]:_0xc818[146])});return _0xbd30x19;};Sidebar[_0xc818[40]][_0xc818[237]]=function(_0xbd30x32,_0xbd30xd,_0xbd30xe,_0xbd30x33,_0xbd30x9,_0xbd30xa){var _0xbd30x2d=[];var _0xbd30x2e=[];switch(_0xbd30x33){case _0xc818[52]:break ;;case _0xc818[77]:_0xbd30x2d=[_0xc818[238],_0xc818[128],_0xc818[239]];_0xbd30x2e=[_0xc818[146],0,_0xc818[240]];break ;;case _0xc818[62]:_0xbd30x2d=[_0xc818[241],_0xc818[242]];_0xbd30x2e=[_0xc818[243]];break ;;case _0xc818[248]:_0xbd30x2d=[_0xc818[241],_0xc818[244],_0xc818[245]];_0xbd30x2e=[_0xc818[243],_0xc818[246],_0xc818[247]];break ;;case _0xc818[64]:_0xbd30x2d=[_0xc818[241],_0xc818[244],_0xc818[245],_0xc818[249],_0xc818[250]];_0xbd30x2e=[_0xc818[243],_0xc818[246],_0xc818[247],_0xc818[247],_0xc818[243]];break ;;case _0xc818[70]:_0xbd30x2d=[_0xc818[241],_0xc818[244],_0xc818[251],_0xc818[252],_0xc818[249],_0xc818[250]];_0xbd30x2e=[_0xc818[243],_0xc818[246],_0xc818[247],_0xc818[253],_0xc818[247],_0xc818[243]];break ;;case _0xc818[92]:_0xbd30x2d=[_0xc818[254],_0xc818[255]];_0xbd30x2e=[_0xc818[146],_0xc818[146]];break ;;case _0xc818[60]:_0xbd30x2d=[_0xc818[250],_0xc818[256]];_0xbd30x2e=[_0xc818[243],_0xc818[146]];break ;;case _0xc818[76]:_0xbd30x2d=[_0xc818[257],_0xc818[258],_0xc818[250]];_0xbd30x2e=[_0xc818[243],_0xc818[146],_0xc818[243]];break ;;case _0xc818[88]:_0xbd30x2d=[_0xc818[259]];_0xbd30x2e=[];break ;;case _0xc818[80]:_0xbd30x2d=[_0xc818[260],_0xc818[261]];_0xbd30x2e=[];break ;;case _0xc818[89]:_0xbd30x2d=[_0xc818[250],_0xc818[262]];_0xbd30x2e=[];break ;;case _0xc818[90]:_0xbd30x2d=[_0xc818[263],_0xc818[262]];_0xbd30x2e=[];break ;;case _0xc818[81]:_0xbd30x2d=[_0xc818[264]];_0xbd30x2e=[];break ;;case _0xc818[82]:_0xbd30x2d=[_0xc818[265]];_0xbd30x2e=[_0xc818[243]];break ;;case _0xc818[266]:_0xbd30x2d=[_0xc818[265]];_0xbd30x2e=[_0xc818[243]];break ;;case _0xc818[83]:_0xbd30x2d=[_0xc818[250]];_0xbd30x2e=[_0xc818[243]];break ;;case _0xc818[65]:_0xbd30x2d=[_0xc818[267],_0xc818[268]];_0xbd30x2e=[_0xc818[146],_0xc818[269]];break ;;case _0xc818[66]:_0xbd30x2d=[_0xc818[270],_0xc818[268]];_0xbd30x2e=[_0xc818[146],_0xc818[269]];break ;;case _0xc818[67]:_0xbd30x2d=[_0xc818[271],_0xc818[268]];_0xbd30x2e=[_0xc818[146],_0xc818[269]];break ;;case _0xc818[73]:_0xbd30x2d=[_0xc818[272],_0xc818[273],_0xc818[268]];_0xbd30x2e=[_0xc818[146],_0xc818[274],_0xc818[269]];break ;;case _0xc818[54]:_0xbd30x2d=[_0xc818[275],_0xc818[273],_0xc818[92],_0xc818[276]];_0xbd30x2e=[_0xc818[243],_0xc818[277]];break ;;case _0xc818[55]:_0xbd30x2d=[_0xc818[278],_0xc818[279],_0xc818[273],_0xc818[242],_0xc818[276]];_0xbd30x2e=[_0xc818[146],_0xc818[243],_0xc818[277]];break ;;case _0xc818[68]:_0xbd30x2d=[_0xc818[271],_0xc818[280]];_0xbd30x2e=[_0xc818[146],_0xc818[281]];break ;;case _0xc818[69]:_0xbd30x2d=[_0xc818[271],_0xc818[238],_0xc818[282]];_0xbd30x2e=[_0xc818[146],_0xc818[146],_0xc818[283]];break ;;case _0xc818[56]:_0xbd30x2d=[_0xc818[284],_0xc818[242],_0xc818[276],_0xc818[241],_0xc818[273],_0xc818[90],_0xc818[285],_0xc818[286],_0xc818[19]];_0xbd30x2e=[_0xc818[243],_0xc818[146],_0xc818[146],_0xc818[243],_0xc818[287]];break ;;case _0xc818[57]:_0xbd30x2d=[_0xc818[288],_0xc818[260],_0xc818[242]];_0xbd30x2e=[_0xc818[146],_0xc818[289]];break ;;case _0xc818[91]:_0xbd30x2d=[_0xc818[290]];_0xbd30x2e=[_0xc818[243]];break ;;case _0xc818[61]:_0xbd30x2d=[_0xc818[291],_0xc818[250]];_0xbd30x2e=[_0xc818[146],_0xc818[243]];break ;;case _0xc818[300]:_0xbd30x2d=[_0xc818[292],_0xc818[293],_0xc818[294],_0xc818[295],_0xc818[296],_0xc818[297],_0xc818[298],_0xc818[299]];_0xbd30x2e=[];break ;;case _0xc818[302]:_0xbd30x2d=[_0xc818[301]];_0xbd30x2e=[];break ;;case _0xc818[305]:_0xbd30x2d=[_0xc818[303]];_0xbd30x2e=[_0xc818[243],_0xc818[304]];break ;;default:_0xbd30x2d=[];_0xbd30x2e=[];break ;;};var _0xbd30x19=this[_0xc818[234]](_0xbd30x33,_0xbd30x9,_0xbd30x2d,_0xbd30x2e);var _0xbd30x8=[ new mxCell(_0xbd30x19, new mxGeometry(0,0,_0xbd30xd,_0xbd30xe),_0xbd30x32)];_0xbd30x8[0][_0xc818[306]]=true;return this[_0xc818[307]](_0xbd30x8,_0xbd30xd,_0xbd30xe,_0xbd30x9,_0xbd30xa);};Sidebar[_0xc818[40]][_0xc818[307]]=function(_0xbd30x8,_0xbd30xd,_0xbd30xe,_0xbd30x9,_0xbd30xa){var _0xbd30x7=this[_0xc818[199]](_0xbd30x8,_0xbd30x9,_0xbd30xa);var _0xbd30x27=this[_0xc818[217]](_0xbd30x7,this[_0xc818[204]](_0xbd30x8,true),this[_0xc818[214]](_0xbd30xd,_0xbd30xe));this[_0xc818[223]](_0xbd30x7,_0xbd30x27);_0xbd30x27[_0xc818[308]]=mxUtils[_0xc818[25]](this,function(){return this[_0xc818[1]][_0xc818[9]][_0xc818[5]][_0xc818[310]][_0xc818[309]]});if(!touchStyle){mxEvent[_0xc818[26]](_0xbd30x7,_0xc818[30],mxUtils[_0xc818[25]](this,function(_0xbd30x4){this[_0xc818[106]](_0xbd30x7,_0xbd30x8,_0xbd30x9,_0xbd30xa)}))};return _0xbd30x7;};Sidebar[_0xc818[40]][_0xc818[311]]=function(_0xbd30x32,_0xbd30xd,_0xbd30xe,_0xbd30x33,_0xbd30x9,_0xbd30xa){var _0xbd30x8=[ new mxCell((_0xbd30x33!=null)?_0xbd30x33:_0xc818[146], new mxGeometry(0,0,_0xbd30xd,_0xbd30xe),_0xbd30x32)];_0xbd30x8[0][_0xc818[313]][_0xc818[312]]( new mxPoint(0,_0xbd30xe),true);_0xbd30x8[0][_0xc818[313]][_0xc818[312]]( new mxPoint(_0xbd30xd,0),false);_0xbd30x8[0][_0xc818[313]][_0xc818[117]]=true;_0xbd30x8[0][_0xc818[314]]=true;return this[_0xc818[315]](_0xbd30x8,_0xbd30xd,_0xbd30xe,_0xbd30x9,_0xbd30xa);};Sidebar[_0xc818[40]][_0xc818[315]]=function(_0xbd30x8,_0xbd30xd,_0xbd30xe,_0xbd30x9,_0xbd30xa){var _0xbd30x7=this[_0xc818[199]](_0xbd30x8,_0xbd30x9,_0xbd30xa);this[_0xc818[217]](_0xbd30x7,this[_0xc818[204]](_0xbd30x8,false),this[_0xc818[214]](_0xbd30xd,_0xbd30xe));var _0xbd30x1e=this[_0xc818[1]][_0xc818[9]][_0xc818[5]];mxEvent[_0xc818[26]](_0xbd30x7,_0xc818[202],mxUtils[_0xc818[25]](this,function(_0xbd30x4){if(this[_0xc818[97]]){_0xbd30x1e[_0xc818[316]](_0xbd30x8[0])};_0xbd30x7[_0xc818[17]][_0xc818[317]]=_0xc818[318];window[_0xc818[170]](function(){_0xbd30x7[_0xc818[17]][_0xc818[317]]=_0xc818[146]},300);mxEvent[_0xc818[203]](_0xbd30x4);}));if(!touchStyle){mxEvent[_0xc818[26]](_0xbd30x7,_0xc818[30],mxUtils[_0xc818[25]](this,function(_0xbd30x4){this[_0xc818[106]](_0xbd30x7,_0xbd30x8,_0xbd30x9,_0xbd30xa)}))};return _0xbd30x7;};Sidebar[_0xc818[40]][_0xc818[319]]=function(_0xbd30x34,_0xbd30x9,_0xbd30x35,_0xbd30x36){var _0xbd30x7=this[_0xc818[171]](_0xbd30x9);this[_0xc818[2]][_0xc818[21]](_0xbd30x7);var _0xbd30x1c=document[_0xc818[7]](_0xc818[6]);_0xbd30x1c[_0xc818[110]]=_0xc818[320];if(_0xbd30x35){_0xbd30x36(_0xbd30x1c);_0xbd30x36=null;}else {_0xbd30x1c[_0xc818[17]][_0xc818[124]]=_0xc818[151]};this[_0xc818[321]](_0xbd30x7,_0xbd30x1c,_0xbd30x36);var _0xbd30x37=document[_0xc818[7]](_0xc818[6]);_0xbd30x37[_0xc818[21]](_0xbd30x1c);this[_0xc818[2]][_0xc818[21]](_0xbd30x37);if(_0xbd30x34!=null){this[_0xc818[3]][_0xbd30x34]=[_0xbd30x7,_0xbd30x37]};};Sidebar[_0xc818[40]][_0xc818[321]]=function(_0xbd30x9,_0xbd30x38,_0xbd30x39){var _0xbd30x3a=false;_0xbd30x9[_0xc818[17]][_0xc818[187]]=(_0xbd30x38[_0xc818[17]][_0xc818[124]]==_0xc818[151])?_0xc818[188]+IMAGE_PATH+_0xc818[322]:_0xc818[188]+IMAGE_PATH+_0xc818[323];_0xbd30x9[_0xc818[17]][_0xc818[324]]=_0xc818[325];_0xbd30x9[_0xc818[17]][_0xc818[326]]=_0xc818[327];mxEvent[_0xc818[26]](_0xbd30x9,_0xc818[202],function(_0xbd30x4){if(_0xbd30x38[_0xc818[17]][_0xc818[124]]==_0xc818[151]){if(!_0xbd30x3a){_0xbd30x3a=true;if(_0xbd30x39!=null){_0xbd30x9[_0xc818[17]][_0xc818[190]]=_0xc818[328];window[_0xc818[170]](function(){_0xbd30x39(_0xbd30x38);_0xbd30x9[_0xc818[17]][_0xc818[190]]=_0xc818[146];},0);};};_0xbd30x9[_0xc818[17]][_0xc818[187]]=_0xc818[188]+IMAGE_PATH+_0xc818[323];_0xbd30x38[_0xc818[17]][_0xc818[124]]=_0xc818[125];}else {_0xbd30x9[_0xc818[17]][_0xc818[187]]=_0xc818[188]+IMAGE_PATH+_0xc818[322];_0xbd30x38[_0xc818[17]][_0xc818[124]]=_0xc818[151];};mxEvent[_0xc818[203]](_0xbd30x4);});};Sidebar[_0xc818[40]][_0xc818[329]]=function(_0xbd30x34){var _0xbd30x3b=this[_0xc818[3]][_0xbd30x34];if(_0xbd30x3b!=null){this[_0xc818[3]][_0xbd30x34]=null;for(var _0xbd30x3c=0;_0xbd30x3c<_0xbd30x3b[_0xc818[135]];_0xbd30x3c++){this[_0xc818[2]][_0xc818[330]](_0xbd30x3b[_0xbd30x3c])};return true;};return false;};Sidebar[_0xc818[40]][_0xc818[49]]=function(_0xbd30x34,_0xbd30x9,_0xbd30x3d,_0xbd30x3e,_0xbd30x3f,_0xbd30x40){this[_0xc818[319]](_0xbd30x34,_0xbd30x9,(_0xbd30x34===_0xc818[42]),mxUtils[_0xc818[25]](this,function(_0xbd30x38){var _0xbd30x41=_0xbd30x40!=null;for(var _0xbd30x3c=0;_0xbd30x3c<_0xbd30x3f[_0xc818[135]];_0xbd30x3c++){var _0xbd30x42=_0xbd30x3d+_0xbd30x3f[_0xbd30x3c]+_0xbd30x3e;_0xbd30x38[_0xc818[21]](this[_0xc818[237]](_0xc818[331]+_0xbd30x42,80,80,_0xbd30x3f[_0xbd30x3c],(_0xbd30x41)?_0xbd30x40[_0xbd30x3c]:null,_0xbd30x41));};}))};
\ No newline at end of file
+var _0xa13e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x61\x6C\x65\x74\x74\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x67\x72\x61\x70\x68","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x65\x64\x69\x74\x6F\x72","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x6F\x64\x79","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x6D\x6F\x75\x73\x65\x75\x70","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x74\x6F\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x74\x6F\x6F\x6C\x74\x69\x70\x2E\x70\x6E\x67","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x65\x6E\x74\x72\x79","\x67\x65\x74","\x2F\x65\x6E\x74\x72\x79\x2F","\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x61\x64\x64\x49\x6D\x61\x67\x65\x50\x61\x6C\x65\x74\x74\x65","\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74","\x2F\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74\x2F","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F","\x73\x65\x74","\x6D\x61\x74\x68","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x2F\x70\x6C\x61\x79\x62\x61\x63\x6B\x2F","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F","\x72\x65\x63\x6F\x72\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x53\x65\x72\x76\x65\x72","\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5F\x73\x65\x72\x76\x65\x72\x2F","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x63\x61\x6C\x6C\x66\x6C\x6F\x77","\x2F\x63\x61\x6C\x6C\x66\x6C\x6F\x77\x2F","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x73\x74\x61\x74\x73","\x2F\x73\x74\x61\x74\x73\x2F","\x67\x65\x6E\x65\x72\x61\x6C","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2F","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x65\x6E\x61\x62\x6C\x65\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x42\x6F\x72\x64\x65\x72","\x74\x68\x75\x6D\x62\x42\x6F\x72\x64\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x44\x65\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x61\x72\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x69\x70\x61\x72\x74\x2F\x47\x65\x61\x72\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x74\x68\x75\x6D\x62\x57\x69\x64\x74\x68","\x74\x68\x75\x6D\x62\x48\x65\x69\x67\x68\x74","\x74\x68\x75\x6D\x62\x50\x61\x64\x64\x69\x6E\x67","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x53\x69\x7A\x65","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70","\x74\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x6F\x6F\x6C\x74\x69\x70","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x72\x61\x70\x68\x32","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x76\x69\x65\x77","\x49\x53\x5F\x53\x56\x47","\x63\x61\x6E\x76\x61\x73","\x72\x65\x6C\x61\x74\x69\x76\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x31\x34\x70\x78","\x68\x65\x69\x67\x68\x74","\x32\x37\x70\x78","\x64\x69\x73\x70\x6C\x61\x79","\x62\x6C\x6F\x63\x6B","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x63\x6C\x65\x61\x72","\x6D\x6F\x64\x65\x6C","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x76\x69\x73\x69\x62\x6C\x65","\x70\x78","\x6C\x65\x6E\x67\x74\x68","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x67\x72\x61\x79","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x65\x6E\x74\x65\x72","\x31\x30\x30\x25","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x32\x70\x78","\x36\x70\x78","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","","\x77\x72\x69\x74\x65","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x74\x6F\x70","\x6E\x6F\x6E\x65","\x78","\x6D\x69\x6E","\x79","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x78","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x29","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x65\x66\x74","\x64\x72\x61\x77\x50\x61\x6E\x65","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x54\x69\x74\x6C\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x68\x75\x6D\x62","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x66\x6C\x6F\x6F\x72","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x4E\x4F\x5F\x46\x4F","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x49\x53\x5F\x49\x45\x36","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x63\x75\x72\x73\x6F\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x49\x53\x5F\x49\x45","\x34\x70\x78","\x63\x72\x65\x61\x74\x65\x49\x74\x65\x6D","\x67\x65\x49\x74\x65\x6D","\x70\x61\x64\x64\x69\x6E\x67","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x63\x72\x65\x61\x74\x65\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x50\x72\x65\x76\x69\x65\x77","\x62\x6F\x72\x64\x65\x72","\x31\x70\x78\x20\x64\x61\x73\x68\x65\x64\x20\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x53\x6F\x75\x72\x63\x65","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x61\x70\x70\x6C\x79","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x6D\x6F\x75\x73\x65\x55\x70","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x61\x62\x73","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x64\x72\x6F\x70","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6C\x61\x62\x65\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6B\x65\x79","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x74\x2D\x49\x54","\x66\x69\x6C\x65\x5F\x69\x64","\x6F\x70\x74\x73","\x30","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x64\x69\x67\x69\x74","\x35","\x31","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x72\x65\x74\x72\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x31\x30","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x6F\x64\x62\x63\x5F\x69\x64","\x71\x75\x65\x72\x79","\x6F\x75\x74\x70\x75\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x64\x69\x67\x69\x74\x73","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x23","\x6E\x75\x6D\x62\x65\x72","\x74\x65\x78\x74","\x66\x69\x6C\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x2D\x31","\x73\x69\x70\x5F\x69\x64","\x75\x72\x6C","\x36\x30","\x70\x68\x6F\x6E\x65","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x74","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x75\x72\x69\x74\x61\x6C\x69\x61\x6E\x66\x65\x6D\x61\x6C\x65","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","\x33\x30\x30","\x62\x6F\x78\x6E\x75\x6D\x62\x65\x72","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x61\x67\x65\x6E\x74","\x71\x75\x65\x75\x65\x5F\x65\x76\x65\x6E\x74","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x64\x61\x74\x61\x35","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x67\x6F\x61\x6C","\x6C\x69\x73\x74\x5F\x69\x64","\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x76\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x65\x64\x67\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x23\x66\x66\x66\x66\x66\x66","\x61\x64\x64\x50\x61\x6C\x65\x74\x74\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72","\x61\x64\x64\x46\x6F\x6C\x64\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66\x29","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x31\x30\x30\x25\x20\x35\x30\x25","\x77\x61\x69\x74","\x72\x65\x6D\x6F\x76\x65\x50\x61\x6C\x65\x74\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x69\x6D\x61\x67\x65\x3B\x69\x6D\x61\x67\x65\x3D"];_0xa13e[0];function Sidebar(_0xeaa7x2,_0xeaa7x3){this[_0xa13e[1]]=_0xeaa7x2;this[_0xa13e[2]]=_0xeaa7x3;this[_0xa13e[3]]= new Object();this[_0xa13e[4]]=true;this[_0xa13e[5]]= new Graph(document[_0xa13e[7]](_0xa13e[6]),null,null,this[_0xa13e[1]][_0xa13e[9]][_0xa13e[5]][_0xa13e[8]]());this[_0xa13e[5]][_0xa13e[10]]=false;this[_0xa13e[5]][_0xa13e[11]]=false;this[_0xa13e[5]][_0xa13e[12]](false);this[_0xa13e[5]][_0xa13e[13]]=false;this[_0xa13e[5]][_0xa13e[14]](false);this[_0xa13e[5]][_0xa13e[15]](false);this[_0xa13e[5]][_0xa13e[2]][_0xa13e[17]][_0xa13e[16]]=_0xa13e[18];this[_0xa13e[5]][_0xa13e[2]][_0xa13e[17]][_0xa13e[19]]=_0xa13e[20];document[_0xa13e[22]][_0xa13e[21]](this[_0xa13e[5]][_0xa13e[2]]);if(!mxClient[_0xa13e[23]]){mxEvent[_0xa13e[26]](document,_0xa13e[24],mxUtils[_0xa13e[25]](this,function(){this[_0xa13e[4]]=true}));mxEvent[_0xa13e[26]](_0xeaa7x3,_0xa13e[27],mxUtils[_0xa13e[25]](this,function(){this[_0xa13e[4]]=true}));mxEvent[_0xa13e[26]](document,_0xa13e[28],mxUtils[_0xa13e[25]](this,function(){this[_0xa13e[4]]=false;this[_0xa13e[29]]();}));mxEvent[_0xa13e[26]](document,_0xa13e[30],mxUtils[_0xa13e[25]](this,function(_0xeaa7x4){var _0xeaa7x5=mxEvent[_0xa13e[31]](_0xeaa7x4);while(_0xeaa7x5!=null){if(_0xeaa7x5==this[_0xa13e[32]]){return };_0xeaa7x5=_0xeaa7x5[_0xa13e[33]];};this[_0xa13e[29]]();}));mxEvent[_0xa13e[26]](document,_0xa13e[34],mxUtils[_0xa13e[25]](this,function(_0xeaa7x4){if(_0xeaa7x4[_0xa13e[35]]==null&&_0xeaa7x4[_0xa13e[36]]==null){this[_0xa13e[29]]()}}));};this[_0xa13e[37]](); new Image()[_0xa13e[38]]=IMAGE_PATH+_0xa13e[39];}Sidebar[_0xa13e[40]][_0xa13e[37]]=function(){var _0xeaa7x6=STENCIL_PATH;console[_0xa13e[41]](_0xeaa7x6);this[_0xa13e[49]](_0xa13e[42],mxResources[_0xa13e[43]](_0xa13e[42]),_0xeaa7x6+_0xa13e[44],_0xa13e[45],[_0xa13e[46],_0xa13e[47],_0xa13e[48]],[mxResources[_0xa13e[43]](_0xa13e[46]),mxResources[_0xa13e[43]](_0xa13e[47]),mxResources[_0xa13e[43]](_0xa13e[48])]);this[_0xa13e[49]](_0xa13e[50],mxResources[_0xa13e[43]](_0xa13e[50]),_0xeaa7x6+_0xa13e[51],_0xa13e[45],[_0xa13e[52],_0xa13e[53],_0xa13e[54],_0xa13e[55],_0xa13e[56],_0xa13e[57]],[mxResources[_0xa13e[43]](_0xa13e[52]),mxResources[_0xa13e[43]](_0xa13e[53]),mxResources[_0xa13e[43]](_0xa13e[54]),mxResources[_0xa13e[43]](_0xa13e[55]),mxResources[_0xa13e[43]](_0xa13e[56]),mxResources[_0xa13e[43]](_0xa13e[57])]);this[_0xa13e[49]](_0xa13e[58],mxResources[_0xa13e[43]](_0xa13e[58]),_0xeaa7x6+_0xa13e[59],_0xa13e[45],[_0xa13e[60],_0xa13e[61]],[mxResources[_0xa13e[43]](_0xa13e[60]),mxResources[_0xa13e[43]](_0xa13e[61])]);this[_0xa13e[49]](_0xa13e[62],mxResources[_0xa13e[43]](_0xa13e[62]),_0xeaa7x6+_0xa13e[63],_0xa13e[45],[_0xa13e[62],_0xa13e[64],_0xa13e[65],_0xa13e[66],_0xa13e[67],_0xa13e[68],_0xa13e[69],_0xa13e[70]],[mxResources[_0xa13e[43]](_0xa13e[62]),mxResources[_0xa13e[43]](_0xa13e[64]),mxResources[_0xa13e[43]](_0xa13e[65]),mxResources[_0xa13e[43]](_0xa13e[66]),mxResources[_0xa13e[43]](_0xa13e[67]),mxResources[_0xa13e[43]](_0xa13e[68]),mxResources[_0xa13e[43]](_0xa13e[69]),mxResources[_0xa13e[43]](_0xa13e[70])]);this[_0xa13e[49]](_0xa13e[71],mxResources[_0xa13e[43]](_0xa13e[71]),_0xeaa7x6+_0xa13e[72],_0xa13e[45],[_0xa13e[73]],[mxResources[_0xa13e[43]](_0xa13e[73])]);this[_0xa13e[49]](_0xa13e[74],mxResources[_0xa13e[43]](_0xa13e[74]),_0xeaa7x6+_0xa13e[75],_0xa13e[45],[_0xa13e[76],_0xa13e[77]],[mxResources[_0xa13e[43]](_0xa13e[76]),mxResources[_0xa13e[43]](_0xa13e[77])]);this[_0xa13e[49]](_0xa13e[78],mxResources[_0xa13e[43]](_0xa13e[78]),_0xeaa7x6+_0xa13e[79],_0xa13e[45],[_0xa13e[80],_0xa13e[81],_0xa13e[82],_0xa13e[83]],[mxResources[_0xa13e[43]](_0xa13e[80]),mxResources[_0xa13e[43]](_0xa13e[81]),mxResources[_0xa13e[43]](_0xa13e[82]),mxResources[_0xa13e[43]](_0xa13e[83])]);this[_0xa13e[49]](_0xa13e[84],mxResources[_0xa13e[43]](_0xa13e[84]),_0xeaa7x6+_0xa13e[85],_0xa13e[45],[],[]);this[_0xa13e[49]](_0xa13e[86],mxResources[_0xa13e[43]](_0xa13e[86]),_0xeaa7x6+_0xa13e[87],_0xa13e[45],[_0xa13e[88],_0xa13e[89],_0xa13e[90],_0xa13e[91],_0xa13e[92]],[mxResources[_0xa13e[43]](_0xa13e[88]),mxResources[_0xa13e[43]](_0xa13e[89]),mxResources[_0xa13e[43]](_0xa13e[90]),mxResources[_0xa13e[43]](_0xa13e[91]),mxResources[_0xa13e[43]](_0xa13e[92])]);};Sidebar[_0xa13e[40]][_0xa13e[93]]=!mxClient[_0xa13e[23]];Sidebar[_0xa13e[40]][_0xa13e[94]]=16;Sidebar[_0xa13e[40]][_0xa13e[95]]=3;Sidebar[_0xa13e[40]][_0xa13e[96]]=300;Sidebar[_0xa13e[40]][_0xa13e[97]]=true;Sidebar[_0xa13e[40]][_0xa13e[98]]=STENCIL_PATH+_0xa13e[99];Sidebar[_0xa13e[40]][_0xa13e[100]]=34;Sidebar[_0xa13e[40]][_0xa13e[101]]=34;Sidebar[_0xa13e[40]][_0xa13e[102]]=2;Sidebar[_0xa13e[40]][_0xa13e[103]]=9;Sidebar[_0xa13e[40]][_0xa13e[104]]=false;Sidebar[_0xa13e[40]][_0xa13e[105]]=false;Sidebar[_0xa13e[40]][_0xa13e[106]]=function(_0xeaa7x7,_0xeaa7x8,_0xeaa7x9,_0xeaa7xa){if(this[_0xa13e[93]]&&this[_0xa13e[4]]){if(this[_0xa13e[32]]!=_0xeaa7x7){if(this[_0xa13e[107]]!=null){window[_0xa13e[108]](this[_0xa13e[107]]);this[_0xa13e[107]]=null;};var _0xeaa7xb=mxUtils[_0xa13e[25]](this,function(){if(this[_0xa13e[109]]==null){this[_0xa13e[109]]=document[_0xa13e[7]](_0xa13e[6]);this[_0xa13e[109]][_0xa13e[110]]=_0xa13e[111];document[_0xa13e[22]][_0xa13e[21]](this[_0xa13e[109]]);this[_0xa13e[112]]= new Graph(this[_0xa13e[109]],null,null,this[_0xa13e[1]][_0xa13e[9]][_0xa13e[5]][_0xa13e[8]]());this[_0xa13e[112]][_0xa13e[114]][_0xa13e[113]](this[_0xa13e[94]],this[_0xa13e[94]]);this[_0xa13e[112]][_0xa13e[10]]=false;this[_0xa13e[112]][_0xa13e[11]]=false;this[_0xa13e[112]][_0xa13e[13]]=false;this[_0xa13e[112]][_0xa13e[14]](false);this[_0xa13e[112]][_0xa13e[12]](false);this[_0xa13e[112]][_0xa13e[15]](false);if(!mxClient[_0xa13e[115]]){this[_0xa13e[112]][_0xa13e[114]][_0xa13e[116]][_0xa13e[17]][_0xa13e[19]]=_0xa13e[117]};this[_0xa13e[118]]=mxUtils[_0xa13e[119]](IMAGE_PATH+_0xa13e[39]);this[_0xa13e[118]][_0xa13e[17]][_0xa13e[19]]=_0xa13e[20];this[_0xa13e[118]][_0xa13e[17]][_0xa13e[120]]=_0xa13e[121];this[_0xa13e[118]][_0xa13e[17]][_0xa13e[122]]=_0xa13e[123];document[_0xa13e[22]][_0xa13e[21]](this[_0xa13e[118]]);};this[_0xa13e[109]][_0xa13e[17]][_0xa13e[124]]=_0xa13e[125];this[_0xa13e[112]][_0xa13e[126]]=(_0xeaa7xa==null||_0xeaa7xa);this[_0xa13e[112]][_0xa13e[128]][_0xa13e[127]]();this[_0xa13e[112]][_0xa13e[129]](_0xeaa7x8);var _0xeaa7xc=this[_0xa13e[112]][_0xa13e[130]]();var _0xeaa7xd=_0xeaa7xc[_0xa13e[120]]+2*this[_0xa13e[94]];var _0xeaa7xe=_0xeaa7xc[_0xa13e[122]]+2*this[_0xa13e[94]];if(mxClient[_0xa13e[131]]){_0xeaa7xd+=4;_0xeaa7xe+=4;this[_0xa13e[109]][_0xa13e[17]][_0xa13e[132]]=_0xa13e[18];}else {this[_0xa13e[109]][_0xa13e[17]][_0xa13e[132]]=_0xa13e[133]};this[_0xa13e[118]][_0xa13e[17]][_0xa13e[16]]=_0xa13e[133];this[_0xa13e[109]][_0xa13e[17]][_0xa13e[120]]=_0xeaa7xd+_0xa13e[134];if(this[_0xa13e[105]]&&_0xeaa7x9!=null&&_0xeaa7x9[_0xa13e[135]]>0){if(this[_0xa13e[136]]==null){this[_0xa13e[136]]=document[_0xa13e[7]](_0xa13e[6]);this[_0xa13e[136]][_0xa13e[17]][_0xa13e[137]]=_0xa13e[138];this[_0xa13e[136]][_0xa13e[17]][_0xa13e[139]]=_0xa13e[140];this[_0xa13e[136]][_0xa13e[17]][_0xa13e[120]]=_0xa13e[141];this[_0xa13e[136]][_0xa13e[17]][_0xa13e[132]]=_0xa13e[18];if(mxClient[_0xa13e[115]]){this[_0xa13e[136]][_0xa13e[17]][_0xa13e[142]]=_0xa13e[143]}else {this[_0xa13e[136]][_0xa13e[17]][_0xa13e[19]]=_0xa13e[20];this[_0xa13e[136]][_0xa13e[17]][_0xa13e[142]]=_0xa13e[144];};this[_0xa13e[109]][_0xa13e[21]](this[_0xa13e[136]]);}else {this[_0xa13e[136]][_0xa13e[145]]=_0xa13e[146]};this[_0xa13e[136]][_0xa13e[17]][_0xa13e[124]]=_0xa13e[146];mxUtils[_0xa13e[147]](this[_0xa13e[136]],_0xeaa7x9);var _0xeaa7xf=this[_0xa13e[136]][_0xa13e[148]]+10;_0xeaa7xe+=_0xeaa7xf;if(mxClient[_0xa13e[115]]){this[_0xa13e[136]][_0xa13e[17]][_0xa13e[149]]=(-_0xeaa7xf)+_0xa13e[134]}else {_0xeaa7xe-=6;this[_0xa13e[136]][_0xa13e[17]][_0xa13e[150]]=(_0xeaa7xe-_0xeaa7xf)+_0xa13e[134];};}else {if(this[_0xa13e[136]]!=null&&this[_0xa13e[136]][_0xa13e[33]]!=null){this[_0xa13e[136]][_0xa13e[17]][_0xa13e[124]]=_0xa13e[151]}};this[_0xa13e[109]][_0xa13e[17]][_0xa13e[122]]=_0xeaa7xe+_0xa13e[134];var _0xeaa7x10=-Math[_0xa13e[153]](0,_0xeaa7xc[_0xa13e[152]]-this[_0xa13e[94]]);var _0xeaa7x11=-Math[_0xa13e[153]](0,_0xeaa7xc[_0xa13e[154]]-this[_0xa13e[94]]);var _0xeaa7x12=this[_0xa13e[2]][_0xa13e[155]]+this[_0xa13e[1]][_0xa13e[156]]+3;var _0xeaa7x13=Math[_0xa13e[159]](0,(this[_0xa13e[2]][_0xa13e[157]]+_0xeaa7x7[_0xa13e[157]]-this[_0xa13e[2]][_0xa13e[158]]-_0xeaa7xe/2+16));if(mxClient[_0xa13e[115]]){this[_0xa13e[112]][_0xa13e[114]][_0xa13e[116]][_0xa13e[164]](_0xa13e[160],_0xa13e[161]+_0xeaa7x10+_0xa13e[162]+_0xeaa7x11+_0xa13e[163])}else {this[_0xa13e[112]][_0xa13e[114]][_0xa13e[166]][_0xa13e[17]][_0xa13e[165]]=_0xeaa7x10+_0xa13e[134];this[_0xa13e[112]][_0xa13e[114]][_0xa13e[166]][_0xa13e[17]][_0xa13e[150]]=_0xeaa7x11+_0xa13e[134];};_0xeaa7x12+=document[_0xa13e[169]](_0xa13e[168])[_0xa13e[167]];_0xeaa7x13+=90;this[_0xa13e[109]][_0xa13e[17]][_0xa13e[19]]=_0xa13e[20];this[_0xa13e[109]][_0xa13e[17]][_0xa13e[165]]=_0xeaa7x12+_0xa13e[134];this[_0xa13e[109]][_0xa13e[17]][_0xa13e[150]]=_0xeaa7x13+_0xa13e[134];this[_0xa13e[118]][_0xa13e[17]][_0xa13e[165]]=(_0xeaa7x12-13)+_0xa13e[134];this[_0xa13e[118]][_0xa13e[17]][_0xa13e[150]]=(_0xeaa7x13+_0xeaa7xe/2-13)+_0xa13e[134];});if(this[_0xa13e[109]]!=null&&this[_0xa13e[109]][_0xa13e[17]][_0xa13e[124]]!=_0xa13e[151]){_0xeaa7xb()}else {this[_0xa13e[107]]=window[_0xa13e[170]](_0xeaa7xb,this[_0xa13e[96]])};this[_0xa13e[32]]=_0xeaa7x7;}}};Sidebar[_0xa13e[40]][_0xa13e[29]]=function(){if(this[_0xa13e[107]]!=null){window[_0xa13e[108]](this[_0xa13e[107]]);this[_0xa13e[107]]=null;};if(this[_0xa13e[109]]!=null){this[_0xa13e[109]][_0xa13e[17]][_0xa13e[124]]=_0xa13e[151];this[_0xa13e[118]][_0xa13e[17]][_0xa13e[16]]=_0xa13e[18];this[_0xa13e[32]]=null;};};Sidebar[_0xa13e[40]][_0xa13e[171]]=function(_0xeaa7x14){var _0xeaa7x7=document[_0xa13e[7]](_0xa13e[172]);_0xeaa7x7[_0xa13e[164]](_0xa13e[173],_0xa13e[174]);_0xeaa7x7[_0xa13e[110]]=_0xa13e[175];mxUtils[_0xa13e[147]](_0xeaa7x7,_0xeaa7x14);return _0xeaa7x7;};Sidebar[_0xa13e[40]][_0xa13e[176]]=function(_0xeaa7x8,_0xeaa7xd,_0xeaa7xe,_0xeaa7x15,_0xeaa7x9,_0xeaa7xa){this[_0xa13e[5]][_0xa13e[126]]=(_0xeaa7xa==null||_0xeaa7xa);this[_0xa13e[5]][_0xa13e[114]][_0xa13e[177]](1,0,0);this[_0xa13e[5]][_0xa13e[129]](_0xeaa7x8);var _0xeaa7xc=this[_0xa13e[5]][_0xa13e[130]]();var _0xeaa7x16=this[_0xa13e[95]];var _0xeaa7x17=Math[_0xa13e[153]]((_0xeaa7xd-2)/(_0xeaa7xc[_0xa13e[120]]-_0xeaa7xc[_0xa13e[152]]+_0xeaa7x16),(_0xeaa7xe-2)/(_0xeaa7xc[_0xa13e[122]]-_0xeaa7xc[_0xa13e[154]]+_0xeaa7x16));var _0xeaa7x10=-Math[_0xa13e[153]](_0xeaa7xc[_0xa13e[152]],0);var _0xeaa7x11=-Math[_0xa13e[153]](_0xeaa7xc[_0xa13e[154]],0);this[_0xa13e[5]][_0xa13e[114]][_0xa13e[177]](_0xeaa7x17,_0xeaa7x10,_0xeaa7x11);_0xeaa7xc=this[_0xa13e[5]][_0xa13e[130]]();var _0xeaa7x18=Math[_0xa13e[159]](0,Math[_0xa13e[178]]((_0xeaa7xd-_0xeaa7xc[_0xa13e[120]]-_0xeaa7xc[_0xa13e[152]])/2));var _0xeaa7xf=Math[_0xa13e[159]](0,Math[_0xa13e[178]]((_0xeaa7xe-_0xeaa7xc[_0xa13e[122]]-_0xeaa7xc[_0xa13e[154]])/2));var _0xeaa7x19=null;if(this[_0xa13e[5]][_0xa13e[179]]==mxConstants[_0xa13e[180]]&&!mxClient[_0xa13e[181]]){_0xeaa7x19=this[_0xa13e[5]][_0xa13e[114]][_0xa13e[184]]()[_0xa13e[183]][_0xa13e[182]](true)}else {_0xeaa7x19=this[_0xa13e[5]][_0xa13e[2]][_0xa13e[182]](false);_0xeaa7x19[_0xa13e[145]]=this[_0xa13e[5]][_0xa13e[2]][_0xa13e[145]];};this[_0xa13e[5]][_0xa13e[185]]()[_0xa13e[127]]();if(mxClient[_0xa13e[186]]){_0xeaa7x15[_0xa13e[17]][_0xa13e[187]]=_0xa13e[188]+this[_0xa13e[1]][_0xa13e[9]][_0xa13e[189]]+_0xa13e[163]};var _0xeaa7x1a=3;_0xeaa7x19[_0xa13e[17]][_0xa13e[19]]=_0xa13e[117];_0xeaa7x19[_0xa13e[17]][_0xa13e[132]]=_0xa13e[18];_0xeaa7x19[_0xa13e[17]][_0xa13e[190]]=_0xa13e[191];_0xeaa7x19[_0xa13e[17]][_0xa13e[165]]=(_0xeaa7x18+_0xeaa7x1a)+_0xa13e[134];_0xeaa7x19[_0xa13e[17]][_0xa13e[150]]=(_0xeaa7xf+_0xeaa7x1a)+_0xa13e[134];_0xeaa7x19[_0xa13e[17]][_0xa13e[120]]=_0xeaa7xd+_0xa13e[134];_0xeaa7x19[_0xa13e[17]][_0xa13e[122]]=_0xeaa7xe+_0xa13e[134];_0xeaa7x19[_0xa13e[17]][_0xa13e[16]]=_0xa13e[146];_0xeaa7x19[_0xa13e[17]][_0xa13e[192]]=_0xa13e[146];_0xeaa7x19[_0xa13e[17]][_0xa13e[193]]=_0xa13e[146];_0xeaa7x15[_0xa13e[21]](_0xeaa7x19);if(this[_0xa13e[104]]&&_0xeaa7x9!=null){var _0xeaa7x1b=(mxClient[_0xa13e[131]])?2*this[_0xa13e[102]]+2:0;_0xeaa7x15[_0xa13e[17]][_0xa13e[122]]=(this[_0xa13e[101]]+_0xeaa7x1b+this[_0xa13e[103]]+8)+_0xa13e[134];var _0xeaa7x1c=document[_0xa13e[7]](_0xa13e[6]);_0xeaa7x1c[_0xa13e[17]][_0xa13e[194]]=this[_0xa13e[103]]+_0xa13e[134];_0xeaa7x1c[_0xa13e[17]][_0xa13e[139]]=_0xa13e[140];_0xeaa7x1c[_0xa13e[17]][_0xa13e[195]]=_0xa13e[196];if(mxClient[_0xa13e[197]]){_0xeaa7x1c[_0xa13e[17]][_0xa13e[122]]=(this[_0xa13e[103]]+12)+_0xa13e[134]};_0xeaa7x1c[_0xa13e[17]][_0xa13e[142]]=_0xa13e[198];mxUtils[_0xa13e[147]](_0xeaa7x1c,_0xeaa7x9);_0xeaa7x15[_0xa13e[21]](_0xeaa7x1c);};};Sidebar[_0xa13e[40]][_0xa13e[199]]=function(_0xeaa7x8,_0xeaa7x9,_0xeaa7xa){var _0xeaa7x7=document[_0xa13e[7]](_0xa13e[172]);_0xeaa7x7[_0xa13e[164]](_0xa13e[173],_0xa13e[174]);_0xeaa7x7[_0xa13e[110]]=_0xa13e[200];_0xeaa7x7[_0xa13e[17]][_0xa13e[132]]=_0xa13e[18];var _0xeaa7x1b=(mxClient[_0xa13e[131]])?8+2*this[_0xa13e[102]]:6;_0xeaa7x7[_0xa13e[17]][_0xa13e[120]]=(this[_0xa13e[100]]+_0xeaa7x1b)+_0xa13e[134];_0xeaa7x7[_0xa13e[17]][_0xa13e[122]]=(this[_0xa13e[101]]+_0xeaa7x1b)+_0xa13e[134];_0xeaa7x7[_0xa13e[17]][_0xa13e[201]]=this[_0xa13e[102]]+_0xa13e[134];mxEvent[_0xa13e[26]](_0xeaa7x7,_0xa13e[202],function(_0xeaa7x4){mxEvent[_0xa13e[203]](_0xeaa7x4)});this[_0xa13e[176]](_0xeaa7x8,this[_0xa13e[100]],this[_0xa13e[101]],_0xeaa7x7,_0xeaa7x9,_0xeaa7xa);return _0xeaa7x7;};Sidebar[_0xa13e[40]][_0xa13e[204]]=function(_0xeaa7x8,_0xeaa7x1d){return function(_0xeaa7x1e,_0xeaa7x4,_0xeaa7x1f,_0xeaa7x20,_0xeaa7x21){if(_0xeaa7x1e[_0xa13e[205]]()){_0xeaa7x8=_0xeaa7x1e[_0xa13e[206]](_0xeaa7x8);if(_0xeaa7x8[_0xa13e[135]]>0){var _0xeaa7x22=(_0xeaa7x1f!=null)?_0xeaa7x1e[_0xa13e[207]](_0xeaa7x1f,_0xeaa7x8,_0xeaa7x4):false;var _0xeaa7x23=null;if(_0xeaa7x1f!=null&& !_0xeaa7x22){_0xeaa7x1f=null};if(_0xeaa7x1d&&_0xeaa7x1e[_0xa13e[208]]()&&_0xeaa7x1e[_0xa13e[209]](_0xeaa7x1f,_0xeaa7x8,_0xeaa7x4)){_0xeaa7x1e[_0xa13e[210]](_0xeaa7x1f,_0xeaa7x8,null,_0xeaa7x20,_0xeaa7x21);_0xeaa7x23=_0xeaa7x8;}else {if(_0xeaa7x8[_0xa13e[135]]>0){_0xeaa7x23=_0xeaa7x1e[_0xa13e[211]](_0xeaa7x8,_0xeaa7x20,_0xeaa7x21,_0xeaa7x1f)}};if(_0xeaa7x23!=null&&_0xeaa7x23[_0xa13e[135]]>0){_0xeaa7x1e[_0xa13e[212]](_0xeaa7x23[0]);_0xeaa7x1e[_0xa13e[213]](_0xeaa7x23);};};}}};Sidebar[_0xa13e[40]][_0xa13e[214]]=function(_0xeaa7xd,_0xeaa7xe){var _0xeaa7x7=document[_0xa13e[7]](_0xa13e[6]);_0xeaa7x7[_0xa13e[17]][_0xa13e[215]]=_0xa13e[216];_0xeaa7x7[_0xa13e[17]][_0xa13e[120]]=_0xeaa7xd+_0xa13e[134];_0xeaa7x7[_0xa13e[17]][_0xa13e[122]]=_0xeaa7xe+_0xa13e[134];return _0xeaa7x7;};Sidebar[_0xa13e[40]][_0xa13e[217]]=function(_0xeaa7x7,_0xeaa7x24,_0xeaa7x25){var _0xeaa7x26=mxUtils[_0xa13e[219]](_0xeaa7x7,this[_0xa13e[1]][_0xa13e[9]][_0xa13e[5]],_0xeaa7x24,_0xeaa7x25,0,0,this[_0xa13e[1]][_0xa13e[9]][_0xa13e[5]][_0xa13e[218]],true,true);_0xeaa7x26[_0xa13e[220]]=function(_0xeaa7x1e,_0xeaa7x20,_0xeaa7x21){var _0xeaa7x1f=mxDragSource[_0xa13e[40]][_0xa13e[220]][_0xa13e[221]](this,arguments);if(!_0xeaa7x1e[_0xa13e[222]](_0xeaa7x1f)){_0xeaa7x1f=null};return _0xeaa7x1f;};return _0xeaa7x26;};Sidebar[_0xa13e[40]][_0xa13e[223]]=function(_0xeaa7x7,_0xeaa7x27){var _0xeaa7x1e=this[_0xa13e[1]][_0xa13e[9]][_0xa13e[5]];var _0xeaa7x28=null;mxEvent[_0xa13e[226]](_0xeaa7x7,function(_0xeaa7x4){_0xeaa7x28= new mxPoint(mxEvent[_0xa13e[224]](_0xeaa7x4),mxEvent[_0xa13e[225]](_0xeaa7x4))});var _0xeaa7x29=_0xeaa7x27[_0xa13e[227]];_0xeaa7x27[_0xa13e[227]]=function(_0xeaa7x4){if(!mxEvent[_0xa13e[228]](_0xeaa7x4)&&this[_0xa13e[229]]==null&&_0xeaa7x28!=null){var _0xeaa7x2a=_0xeaa7x1e[_0xa13e[230]];if(Math[_0xa13e[231]](_0xeaa7x28[_0xa13e[152]]-mxEvent[_0xa13e[224]](_0xeaa7x4))<=_0xeaa7x2a&&Math[_0xa13e[231]](_0xeaa7x28[_0xa13e[154]]-mxEvent[_0xa13e[225]](_0xeaa7x4))<=_0xeaa7x2a){var _0xeaa7x2b=_0xeaa7x1e[_0xa13e[232]]();_0xeaa7x27[_0xa13e[233]](_0xeaa7x1e,_0xeaa7x4,null,_0xeaa7x2b,_0xeaa7x2b);};};_0xeaa7x29[_0xa13e[221]](this,arguments);_0xeaa7x28=null;};};Sidebar[_0xa13e[40]][_0xa13e[234]]=function(_0xeaa7x2c,_0xeaa7x14,_0xeaa7x2d,_0xeaa7x2e){var _0xeaa7x2f=mxUtils[_0xa13e[234]]();var _0xeaa7x19=_0xeaa7x2f[_0xa13e[7]](_0xeaa7x2c);_0xeaa7x19[_0xa13e[164]](_0xa13e[235],_0xeaa7x14);_0xeaa7x2d[_0xa13e[236]](function(_0xeaa7x30,_0xeaa7x31){_0xeaa7x19[_0xa13e[164]](_0xeaa7x30,_0xeaa7x2e[_0xeaa7x31]?_0xeaa7x2e[_0xeaa7x31]:_0xa13e[146])});return _0xeaa7x19;};Sidebar[_0xa13e[40]][_0xa13e[237]]=function(_0xeaa7x32,_0xeaa7xd,_0xeaa7xe,_0xeaa7x33,_0xeaa7x9,_0xeaa7xa){var _0xeaa7x2d=[];var _0xeaa7x2e=[];switch(_0xeaa7x33){case _0xa13e[52]:break ;;case _0xa13e[77]:_0xeaa7x2d=[_0xa13e[238],_0xa13e[128],_0xa13e[239]];_0xeaa7x2e=[_0xa13e[146],0,_0xa13e[240]];break ;;case _0xa13e[62]:_0xeaa7x2d=[_0xa13e[241],_0xa13e[242]];_0xeaa7x2e=[_0xa13e[243]];break ;;case _0xa13e[248]:_0xeaa7x2d=[_0xa13e[241],_0xa13e[244],_0xa13e[245]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[246],_0xa13e[247]];break ;;case _0xa13e[64]:_0xeaa7x2d=[_0xa13e[241],_0xa13e[244],_0xa13e[245],_0xa13e[249],_0xa13e[250]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[246],_0xa13e[247],_0xa13e[247],_0xa13e[243]];break ;;case _0xa13e[70]:_0xeaa7x2d=[_0xa13e[241],_0xa13e[244],_0xa13e[251],_0xa13e[252],_0xa13e[249],_0xa13e[250]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[246],_0xa13e[247],_0xa13e[253],_0xa13e[247],_0xa13e[243]];break ;;case _0xa13e[92]:_0xeaa7x2d=[_0xa13e[254],_0xa13e[255]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[146]];break ;;case _0xa13e[60]:_0xeaa7x2d=[_0xa13e[250],_0xa13e[256]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[146]];break ;;case _0xa13e[76]:_0xeaa7x2d=[_0xa13e[257],_0xa13e[258],_0xa13e[250]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[146],_0xa13e[243]];break ;;case _0xa13e[88]:_0xeaa7x2d=[_0xa13e[259]];_0xeaa7x2e=[];break ;;case _0xa13e[80]:_0xeaa7x2d=[_0xa13e[260],_0xa13e[261]];_0xeaa7x2e=[];break ;;case _0xa13e[89]:_0xeaa7x2d=[_0xa13e[250],_0xa13e[262]];_0xeaa7x2e=[];break ;;case _0xa13e[90]:_0xeaa7x2d=[_0xa13e[263],_0xa13e[262]];_0xeaa7x2e=[];break ;;case _0xa13e[81]:_0xeaa7x2d=[_0xa13e[264]];_0xeaa7x2e=[];break ;;case _0xa13e[82]:_0xeaa7x2d=[_0xa13e[265]];_0xeaa7x2e=[_0xa13e[243]];break ;;case _0xa13e[266]:_0xeaa7x2d=[_0xa13e[265]];_0xeaa7x2e=[_0xa13e[243]];break ;;case _0xa13e[83]:_0xeaa7x2d=[_0xa13e[250]];_0xeaa7x2e=[_0xa13e[243]];break ;;case _0xa13e[65]:_0xeaa7x2d=[_0xa13e[267],_0xa13e[268]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[269]];break ;;case _0xa13e[66]:_0xeaa7x2d=[_0xa13e[270],_0xa13e[268]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[269]];break ;;case _0xa13e[67]:_0xeaa7x2d=[_0xa13e[271],_0xa13e[268]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[269]];break ;;case _0xa13e[73]:_0xeaa7x2d=[_0xa13e[272],_0xa13e[273],_0xa13e[268]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[274],_0xa13e[269]];break ;;case _0xa13e[54]:_0xeaa7x2d=[_0xa13e[275],_0xa13e[273],_0xa13e[92],_0xa13e[276]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[277]];break ;;case _0xa13e[55]:_0xeaa7x2d=[_0xa13e[278],_0xa13e[279],_0xa13e[273],_0xa13e[242],_0xa13e[276]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[243],_0xa13e[277]];break ;;case _0xa13e[68]:_0xeaa7x2d=[_0xa13e[271],_0xa13e[280]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[281]];break ;;case _0xa13e[69]:_0xeaa7x2d=[_0xa13e[271],_0xa13e[238],_0xa13e[282]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[146],_0xa13e[283]];break ;;case _0xa13e[56]:_0xeaa7x2d=[_0xa13e[284],_0xa13e[242],_0xa13e[276],_0xa13e[241],_0xa13e[273],_0xa13e[90],_0xa13e[285],_0xa13e[286],_0xa13e[19]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[146],_0xa13e[146],_0xa13e[243],_0xa13e[287]];break ;;case _0xa13e[57]:_0xeaa7x2d=[_0xa13e[288],_0xa13e[260],_0xa13e[242]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[289]];break ;;case _0xa13e[91]:_0xeaa7x2d=[_0xa13e[290]];_0xeaa7x2e=[_0xa13e[243]];break ;;case _0xa13e[61]:_0xeaa7x2d=[_0xa13e[291],_0xa13e[250]];_0xeaa7x2e=[_0xa13e[146],_0xa13e[243]];break ;;case _0xa13e[300]:_0xeaa7x2d=[_0xa13e[292],_0xa13e[293],_0xa13e[294],_0xa13e[295],_0xa13e[296],_0xa13e[297],_0xa13e[298],_0xa13e[299]];_0xeaa7x2e=[];break ;;case _0xa13e[302]:_0xeaa7x2d=[_0xa13e[301]];_0xeaa7x2e=[];break ;;case _0xa13e[305]:_0xeaa7x2d=[_0xa13e[303]];_0xeaa7x2e=[_0xa13e[243],_0xa13e[304]];break ;;default:_0xeaa7x2d=[];_0xeaa7x2e=[];break ;;};var _0xeaa7x19=this[_0xa13e[234]](_0xeaa7x33,_0xeaa7x9,_0xeaa7x2d,_0xeaa7x2e);var _0xeaa7x8=[ new mxCell(_0xeaa7x19, new mxGeometry(0,0,_0xeaa7xd,_0xeaa7xe),_0xeaa7x32)];_0xeaa7x8[0][_0xa13e[306]]=true;return this[_0xa13e[307]](_0xeaa7x8,_0xeaa7xd,_0xeaa7xe,_0xeaa7x9,_0xeaa7xa);};Sidebar[_0xa13e[40]][_0xa13e[307]]=function(_0xeaa7x8,_0xeaa7xd,_0xeaa7xe,_0xeaa7x9,_0xeaa7xa){var _0xeaa7x7=this[_0xa13e[199]](_0xeaa7x8,_0xeaa7x9,_0xeaa7xa);var _0xeaa7x27=this[_0xa13e[217]](_0xeaa7x7,this[_0xa13e[204]](_0xeaa7x8,true),this[_0xa13e[214]](_0xeaa7xd,_0xeaa7xe));this[_0xa13e[223]](_0xeaa7x7,_0xeaa7x27);_0xeaa7x27[_0xa13e[308]]=mxUtils[_0xa13e[25]](this,function(){return this[_0xa13e[1]][_0xa13e[9]][_0xa13e[5]][_0xa13e[310]][_0xa13e[309]]});if(!touchStyle){mxEvent[_0xa13e[26]](_0xeaa7x7,_0xa13e[30],mxUtils[_0xa13e[25]](this,function(_0xeaa7x4){this[_0xa13e[106]](_0xeaa7x7,_0xeaa7x8,_0xeaa7x9,_0xeaa7xa)}))};return _0xeaa7x7;};Sidebar[_0xa13e[40]][_0xa13e[311]]=function(_0xeaa7x32,_0xeaa7xd,_0xeaa7xe,_0xeaa7x33,_0xeaa7x9,_0xeaa7xa){var _0xeaa7x8=[ new mxCell((_0xeaa7x33!=null)?_0xeaa7x33:_0xa13e[146], new mxGeometry(0,0,_0xeaa7xd,_0xeaa7xe),_0xeaa7x32)];_0xeaa7x8[0][_0xa13e[313]][_0xa13e[312]]( new mxPoint(0,_0xeaa7xe),true);_0xeaa7x8[0][_0xa13e[313]][_0xa13e[312]]( new mxPoint(_0xeaa7xd,0),false);_0xeaa7x8[0][_0xa13e[313]][_0xa13e[117]]=true;_0xeaa7x8[0][_0xa13e[314]]=true;return this[_0xa13e[315]](_0xeaa7x8,_0xeaa7xd,_0xeaa7xe,_0xeaa7x9,_0xeaa7xa);};Sidebar[_0xa13e[40]][_0xa13e[315]]=function(_0xeaa7x8,_0xeaa7xd,_0xeaa7xe,_0xeaa7x9,_0xeaa7xa){var _0xeaa7x7=this[_0xa13e[199]](_0xeaa7x8,_0xeaa7x9,_0xeaa7xa);this[_0xa13e[217]](_0xeaa7x7,this[_0xa13e[204]](_0xeaa7x8,false),this[_0xa13e[214]](_0xeaa7xd,_0xeaa7xe));var _0xeaa7x1e=this[_0xa13e[1]][_0xa13e[9]][_0xa13e[5]];mxEvent[_0xa13e[26]](_0xeaa7x7,_0xa13e[202],mxUtils[_0xa13e[25]](this,function(_0xeaa7x4){if(this[_0xa13e[97]]){_0xeaa7x1e[_0xa13e[316]](_0xeaa7x8[0])};_0xeaa7x7[_0xa13e[17]][_0xa13e[317]]=_0xa13e[318];window[_0xa13e[170]](function(){_0xeaa7x7[_0xa13e[17]][_0xa13e[317]]=_0xa13e[146]},300);mxEvent[_0xa13e[203]](_0xeaa7x4);}));if(!touchStyle){mxEvent[_0xa13e[26]](_0xeaa7x7,_0xa13e[30],mxUtils[_0xa13e[25]](this,function(_0xeaa7x4){this[_0xa13e[106]](_0xeaa7x7,_0xeaa7x8,_0xeaa7x9,_0xeaa7xa)}))};return _0xeaa7x7;};Sidebar[_0xa13e[40]][_0xa13e[319]]=function(_0xeaa7x34,_0xeaa7x9,_0xeaa7x35,_0xeaa7x36){var _0xeaa7x7=this[_0xa13e[171]](_0xeaa7x9);this[_0xa13e[2]][_0xa13e[21]](_0xeaa7x7);var _0xeaa7x1c=document[_0xa13e[7]](_0xa13e[6]);_0xeaa7x1c[_0xa13e[110]]=_0xa13e[320];if(_0xeaa7x35){_0xeaa7x36(_0xeaa7x1c);_0xeaa7x36=null;}else {_0xeaa7x1c[_0xa13e[17]][_0xa13e[124]]=_0xa13e[151]};this[_0xa13e[321]](_0xeaa7x7,_0xeaa7x1c,_0xeaa7x36);var _0xeaa7x37=document[_0xa13e[7]](_0xa13e[6]);_0xeaa7x37[_0xa13e[21]](_0xeaa7x1c);this[_0xa13e[2]][_0xa13e[21]](_0xeaa7x37);if(_0xeaa7x34!=null){this[_0xa13e[3]][_0xeaa7x34]=[_0xeaa7x7,_0xeaa7x37]};};Sidebar[_0xa13e[40]][_0xa13e[321]]=function(_0xeaa7x9,_0xeaa7x38,_0xeaa7x39){var _0xeaa7x3a=false;_0xeaa7x9[_0xa13e[17]][_0xa13e[187]]=(_0xeaa7x38[_0xa13e[17]][_0xa13e[124]]==_0xa13e[151])?_0xa13e[188]+IMAGE_PATH+_0xa13e[322]:_0xa13e[188]+IMAGE_PATH+_0xa13e[323];_0xeaa7x9[_0xa13e[17]][_0xa13e[324]]=_0xa13e[325];_0xeaa7x9[_0xa13e[17]][_0xa13e[326]]=_0xa13e[327];mxEvent[_0xa13e[26]](_0xeaa7x9,_0xa13e[202],function(_0xeaa7x4){if(_0xeaa7x38[_0xa13e[17]][_0xa13e[124]]==_0xa13e[151]){if(!_0xeaa7x3a){_0xeaa7x3a=true;if(_0xeaa7x39!=null){_0xeaa7x9[_0xa13e[17]][_0xa13e[190]]=_0xa13e[328];window[_0xa13e[170]](function(){_0xeaa7x39(_0xeaa7x38);_0xeaa7x9[_0xa13e[17]][_0xa13e[190]]=_0xa13e[146];},0);};};_0xeaa7x9[_0xa13e[17]][_0xa13e[187]]=_0xa13e[188]+IMAGE_PATH+_0xa13e[323];_0xeaa7x38[_0xa13e[17]][_0xa13e[124]]=_0xa13e[125];}else {_0xeaa7x9[_0xa13e[17]][_0xa13e[187]]=_0xa13e[188]+IMAGE_PATH+_0xa13e[322];_0xeaa7x38[_0xa13e[17]][_0xa13e[124]]=_0xa13e[151];};mxEvent[_0xa13e[203]](_0xeaa7x4);});};Sidebar[_0xa13e[40]][_0xa13e[329]]=function(_0xeaa7x34){var _0xeaa7x3b=this[_0xa13e[3]][_0xeaa7x34];if(_0xeaa7x3b!=null){this[_0xa13e[3]][_0xeaa7x34]=null;for(var _0xeaa7x3c=0;_0xeaa7x3c<_0xeaa7x3b[_0xa13e[135]];_0xeaa7x3c++){this[_0xa13e[2]][_0xa13e[330]](_0xeaa7x3b[_0xeaa7x3c])};return true;};return false;};Sidebar[_0xa13e[40]][_0xa13e[49]]=function(_0xeaa7x34,_0xeaa7x9,_0xeaa7x3d,_0xeaa7x3e,_0xeaa7x3f,_0xeaa7x40){this[_0xa13e[319]](_0xeaa7x34,_0xeaa7x9,(_0xeaa7x34===_0xa13e[42]),mxUtils[_0xa13e[25]](this,function(_0xeaa7x38){var _0xeaa7x41=_0xeaa7x40!=null;for(var _0xeaa7x3c=0;_0xeaa7x3c<_0xeaa7x3f[_0xa13e[135]];_0xeaa7x3c++){var _0xeaa7x42=_0xeaa7x3d+_0xeaa7x3f[_0xeaa7x3c]+_0xeaa7x3e;_0xeaa7x38[_0xa13e[21]](this[_0xa13e[237]](_0xa13e[331]+_0xeaa7x42,80,80,_0xeaa7x3f[_0xeaa7x3c],(_0xeaa7x41)?_0xeaa7x40[_0xeaa7x3c]:null,_0xeaa7x41));};}))};
\ No newline at end of file
index 96f2db3..689cf00 100644 (file)
@@ -1 +1 @@
-var _0xdfd7=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x6E\x69\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x62\x69\x6E\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x61\x76\x65","\x70\x75\x62\x6C\x69\x73\x68","\x2D","\x70\x72\x69\x6E\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x6F\x70\x79","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x61\x64\x64\x49\x74\x65\x6D\x73","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x67\x65\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x73\x74\x79\x6C\x65","\x6E\x6F\x77\x72\x61\x70","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x77\x69\x64\x74\x68","\x37\x30\x70\x78","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x31\x32","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x33\x30\x70\x78","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x6C\x65\x6E\x67\x74\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2E\x2E\x2E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x6E\x75\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x4D\x65\x6E\x75\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x42\x75\x74\x74\x6F\x6E","\x69\x6E\x69\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x67\x65\x53\x70\x72\x69\x74\x65\x2D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x64\x49\x74\x65\x6D","\x61\x63\x74\x69\x6F\x6E\x73","\x6C\x61\x62\x65\x6C","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x61\x64\x64\x45\x64\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x69\x73\x45\x64\x67\x65","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x74\x69\x74\x6C\x65","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64\x53\x74\x61\x74\x65","\x20\x67\x65\x44\x69\x73\x61\x62\x6C\x65\x64","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x42\x75\x74\x74\x6F\x6E","\x67\x65\x53\x70\x72\x69\x74\x65\x20","\x67\x65\x4C\x61\x62\x65\x6C","\x77\x72\x69\x74\x65","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x20\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x65\x6E\x75","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x6C\x61\x62\x65\x6C\x73","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70"];function Toolbar(_0xb4b3x2,_0xb4b3x3){this[_0xdfd7[0]]=_0xb4b3x2;this[_0xdfd7[1]]=_0xb4b3x3;this[_0xdfd7[2]]();mxEvent[_0xdfd7[5]](document,mxUtils[_0xdfd7[4]](this,function(_0xb4b3x4){this[_0xdfd7[3]]()}));}Toolbar[_0xdfd7[6]][_0xdfd7[2]]=function(){this[_0xdfd7[21]]([_0xdfd7[7],_0xdfd7[8],_0xdfd7[9],_0xdfd7[10],_0xdfd7[11],_0xdfd7[12],_0xdfd7[9],_0xdfd7[13],_0xdfd7[14],_0xdfd7[15],_0xdfd7[16],_0xdfd7[9],_0xdfd7[17],_0xdfd7[9],_0xdfd7[18],_0xdfd7[19],_0xdfd7[20],_0xdfd7[9]]);var _0xb4b3x5=this[_0xdfd7[25]](_0xdfd7[22],mxResources[_0xdfd7[24]](_0xdfd7[23]),true,_0xdfd7[23]);_0xb4b3x5[_0xdfd7[27]][_0xdfd7[26]]=_0xdfd7[28];_0xb4b3x5[_0xdfd7[27]][_0xdfd7[29]]=_0xdfd7[30];_0xb4b3x5[_0xdfd7[27]][_0xdfd7[31]]=_0xdfd7[32];this[_0xdfd7[33]]();var _0xb4b3x6=this[_0xdfd7[25]](_0xdfd7[34],mxResources[_0xdfd7[24]](_0xdfd7[35]),true,_0xdfd7[35]);_0xb4b3x6[_0xdfd7[27]][_0xdfd7[26]]=_0xdfd7[28];_0xb4b3x6[_0xdfd7[27]][_0xdfd7[29]]=_0xdfd7[30];_0xb4b3x6[_0xdfd7[27]][_0xdfd7[31]]=_0xdfd7[36];this[_0xdfd7[21]]([_0xdfd7[9],_0xdfd7[37],_0xdfd7[38],_0xdfd7[39]]);var _0xb4b3x7=this[_0xdfd7[0]][_0xdfd7[41]][_0xdfd7[40]];var _0xb4b3x8=mxUtils[_0xdfd7[4]](this,function(){var _0xb4b3x9=_0xdfd7[22];var _0xb4b3xa=_0xdfd7[34];var _0xb4b3xb=_0xb4b3x7[_0xdfd7[44]]()[_0xdfd7[43]](_0xb4b3x7[_0xdfd7[42]]());if(_0xb4b3xb!=null){_0xb4b3x9=_0xb4b3xb[_0xdfd7[27]][mxConstants[_0xdfd7[45]]]||_0xb4b3x9;_0xb4b3xa=_0xb4b3xb[_0xdfd7[27]][mxConstants[_0xdfd7[46]]]||_0xb4b3xa;if(_0xb4b3x9[_0xdfd7[47]]>10){_0xb4b3x9=_0xb4b3x9[_0xdfd7[48]](0,8)+_0xdfd7[49]};_0xb4b3x5[_0xdfd7[50]]=_0xb4b3x9;_0xb4b3x6[_0xdfd7[50]]=_0xb4b3xa;};});_0xb4b3x7[_0xdfd7[52]]()[_0xdfd7[51]](mxEvent.CHANGE,_0xb4b3x8);_0xb4b3x7[_0xdfd7[53]]()[_0xdfd7[51]](mxEvent.CHANGE,_0xb4b3x8);};Toolbar[_0xdfd7[6]][_0xdfd7[3]]=function(){if(this[_0xdfd7[54]]!=null){this[_0xdfd7[54]][_0xdfd7[3]]();this[_0xdfd7[54]][_0xdfd7[55]]();this[_0xdfd7[54]]=null;}};Toolbar[_0xdfd7[6]][_0xdfd7[25]]=function(_0xb4b3xc,_0xb4b3xd,_0xb4b3xe,_0xb4b3xf){var _0xb4b3x10=this[_0xdfd7[0]][_0xdfd7[56]][_0xdfd7[24]](_0xb4b3xf);var _0xb4b3x11=this[_0xdfd7[58]](_0xb4b3xc,_0xb4b3xd,_0xb4b3xe,_0xb4b3x10[_0xdfd7[57]]);_0xb4b3x10[_0xdfd7[51]](_0xdfd7[59],function(){_0xb4b3x11[_0xdfd7[61]](_0xb4b3x10[_0xdfd7[60]])});return _0xb4b3x11;};Toolbar[_0xdfd7[6]][_0xdfd7[58]]=function(_0xb4b3xc,_0xb4b3xd,_0xb4b3xe,_0xb4b3x12){var _0xb4b3x11=(_0xb4b3xe)?this[_0xdfd7[62]](_0xb4b3xc):this[_0xdfd7[63]](_0xb4b3xc);this[_0xdfd7[64]](_0xb4b3x11,_0xb4b3xd);this[_0xdfd7[65]](_0xb4b3x11,_0xb4b3xe,_0xb4b3x12);this[_0xdfd7[1]][_0xdfd7[66]](_0xb4b3x11);return _0xb4b3x11;};Toolbar[_0xdfd7[6]][_0xdfd7[33]]=function(){var _0xb4b3x11=document[_0xdfd7[68]](_0xdfd7[67]);_0xb4b3x11[_0xdfd7[69]]=_0xdfd7[70];this[_0xdfd7[1]][_0xdfd7[66]](_0xb4b3x11);return _0xb4b3x11;};Toolbar[_0xdfd7[6]][_0xdfd7[21]]=function(_0xb4b3x13){for(var _0xb4b3x14=0;_0xb4b3x14<_0xb4b3x13[_0xdfd7[47]];_0xb4b3x14++){var _0xb4b3x15=_0xb4b3x13[_0xb4b3x14];if(_0xb4b3x15==_0xdfd7[9]){this[_0xdfd7[33]]()}else {this[_0xdfd7[73]](_0xdfd7[71]+_0xb4b3x15[_0xdfd7[72]](),_0xb4b3x15)};}};Toolbar[_0xdfd7[6]][_0xdfd7[73]]=function(_0xb4b3x16,_0xb4b3x15){var _0xb4b3x17=this[_0xdfd7[0]][_0xdfd7[74]][_0xdfd7[24]](_0xb4b3x15);var _0xb4b3x11=null;if(_0xb4b3x17!=null){_0xb4b3x11=this[_0xdfd7[76]](_0xb4b3x16,_0xb4b3x17[_0xdfd7[75]],_0xb4b3x17[_0xdfd7[57]]);_0xb4b3x11[_0xdfd7[61]](_0xb4b3x17[_0xdfd7[60]]);_0xb4b3x17[_0xdfd7[51]](_0xdfd7[59],function(){_0xb4b3x11[_0xdfd7[61]](_0xb4b3x17[_0xdfd7[60]])});};return _0xb4b3x11;};Toolbar[_0xdfd7[6]][_0xdfd7[76]]=function(_0xb4b3x18,_0xb4b3xd,_0xb4b3x12){var _0xb4b3x11=this[_0xdfd7[63]](_0xb4b3x18);this[_0xdfd7[64]](_0xb4b3x11,_0xb4b3xd);this[_0xdfd7[77]](_0xb4b3x11,_0xb4b3x12);this[_0xdfd7[1]][_0xdfd7[66]](_0xb4b3x11);return _0xb4b3x11;};Toolbar[_0xdfd7[6]][_0xdfd7[78]]=function(_0xb4b3x19){var _0xb4b3x7=this[_0xdfd7[0]][_0xdfd7[41]][_0xdfd7[40]];var _0xb4b3x1a=function(){var _0xb4b3x1b=!_0xb4b3x7[_0xdfd7[79]]();for(var _0xb4b3x14=0;_0xb4b3x14<_0xb4b3x19[_0xdfd7[47]];_0xb4b3x14++){_0xb4b3x19[_0xb4b3x14][_0xdfd7[61]](_0xb4b3x1b)};};_0xb4b3x7[_0xdfd7[52]]()[_0xdfd7[51]](mxEvent.CHANGE,_0xb4b3x1a);_0xb4b3x1a();};Toolbar[_0xdfd7[6]][_0xdfd7[80]]=function(_0xb4b3x19){var _0xb4b3x7=this[_0xdfd7[0]][_0xdfd7[41]][_0xdfd7[40]];var _0xb4b3x1a=function(){var _0xb4b3x1c=false;if(!_0xb4b3x7[_0xdfd7[79]]()){var _0xb4b3x1d=_0xb4b3x7[_0xdfd7[81]]();for(var _0xb4b3x14=0;_0xb4b3x14<_0xb4b3x1d[_0xdfd7[47]];_0xb4b3x14++){if(_0xb4b3x7[_0xdfd7[53]]()[_0xdfd7[82]](_0xb4b3x1d[_0xb4b3x14])){_0xb4b3x1c=true;break ;}};};for(var _0xb4b3x14=0;_0xb4b3x14<_0xb4b3x19[_0xdfd7[47]];_0xb4b3x14++){_0xb4b3x19[_0xb4b3x14][_0xdfd7[61]](_0xb4b3x1c)};};_0xb4b3x7[_0xdfd7[52]]()[_0xdfd7[51]](mxEvent.CHANGE,_0xb4b3x1a);_0xb4b3x1a();};Toolbar[_0xdfd7[6]][_0xdfd7[64]]=function(_0xb4b3x11,_0xb4b3xd){_0xb4b3x11[_0xdfd7[85]](_0xdfd7[83],_0xdfd7[84]);if(_0xb4b3xd!=null){_0xb4b3x11[_0xdfd7[85]](_0xdfd7[86],_0xb4b3xd)};this[_0xdfd7[87]](_0xb4b3x11);};Toolbar[_0xdfd7[6]][_0xdfd7[87]]=function(_0xb4b3x11){var _0xb4b3x18=_0xb4b3x11[_0xdfd7[69]];_0xb4b3x11[_0xdfd7[61]]=function(_0xb4b3x1e){_0xb4b3x11[_0xdfd7[60]]=_0xb4b3x1e;if(_0xb4b3x1e){_0xb4b3x11[_0xdfd7[69]]=_0xb4b3x18}else {_0xb4b3x11[_0xdfd7[69]]=_0xb4b3x18+_0xdfd7[88]};};_0xb4b3x11[_0xdfd7[61]](true);};Toolbar[_0xdfd7[6]][_0xdfd7[77]]=function(_0xb4b3x11,_0xb4b3x12){if(_0xb4b3x12!=null){mxEvent[_0xdfd7[51]](_0xb4b3x11,_0xdfd7[89],function(_0xb4b3x4){if(_0xb4b3x11[_0xdfd7[60]]){_0xb4b3x12(_0xb4b3x4)};mxEvent[_0xdfd7[90]](_0xb4b3x4);})}};Toolbar[_0xdfd7[6]][_0xdfd7[63]]=function(_0xb4b3x18){var _0xb4b3x11=document[_0xdfd7[68]](_0xdfd7[91]);_0xb4b3x11[_0xdfd7[85]](_0xdfd7[92],_0xdfd7[93]);_0xb4b3x11[_0xdfd7[69]]=_0xdfd7[94];var _0xb4b3x1f=document[_0xdfd7[68]](_0xdfd7[67]);_0xb4b3x1f[_0xdfd7[69]]=_0xdfd7[95]+_0xb4b3x18;_0xb4b3x11[_0xdfd7[66]](_0xb4b3x1f);return _0xb4b3x11;};Toolbar[_0xdfd7[6]][_0xdfd7[62]]=function(_0xb4b3xc,_0xb4b3xd){var _0xb4b3x11=document[_0xdfd7[68]](_0xdfd7[91]);_0xb4b3x11[_0xdfd7[85]](_0xdfd7[92],_0xdfd7[93]);_0xb4b3x11[_0xdfd7[69]]=_0xdfd7[96];mxUtils[_0xdfd7[97]](_0xb4b3x11,_0xb4b3xc);return _0xb4b3x11;};Toolbar[_0xdfd7[6]][_0xdfd7[65]]=function(_0xb4b3x11,_0xb4b3xe,_0xb4b3x12,_0xb4b3x20){if(_0xb4b3x12!=null){var _0xb4b3x7=this[_0xdfd7[0]][_0xdfd7[41]][_0xdfd7[40]];var _0xb4b3x10=null;mxEvent[_0xdfd7[51]](_0xb4b3x11,_0xdfd7[89],mxUtils[_0xdfd7[4]](this,function(_0xb4b3x4){if(_0xb4b3x11[_0xdfd7[60]]==null||_0xb4b3x11[_0xdfd7[60]]){_0xb4b3x7[_0xdfd7[98]][_0xdfd7[3]]();_0xb4b3x10= new mxPopupMenu(_0xb4b3x12);_0xb4b3x10[_0xdfd7[67]][_0xdfd7[69]]+=_0xdfd7[99];_0xb4b3x10[_0xdfd7[100]]=_0xb4b3x20;_0xb4b3x10[_0xdfd7[101]]=_0xb4b3xe;_0xb4b3x10[_0xdfd7[102]]=true;_0xb4b3x10[_0xdfd7[106]](_0xb4b3x11[_0xdfd7[103]],_0xb4b3x11[_0xdfd7[104]]+_0xb4b3x11[_0xdfd7[105]]+34,null,_0xb4b3x4);this[_0xdfd7[54]]=_0xb4b3x10;};mxEvent[_0xdfd7[90]](_0xb4b3x4);}));}};
\ No newline at end of file
+var _0x4c86=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x6E\x69\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x62\x69\x6E\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x61\x76\x65","\x70\x75\x62\x6C\x69\x73\x68","\x2D","\x70\x72\x69\x6E\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x6F\x70\x79","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x61\x64\x64\x49\x74\x65\x6D\x73","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x67\x65\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x73\x74\x79\x6C\x65","\x6E\x6F\x77\x72\x61\x70","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x77\x69\x64\x74\x68","\x37\x30\x70\x78","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x31\x32","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x33\x30\x70\x78","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x6C\x65\x6E\x67\x74\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2E\x2E\x2E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x6E\x75\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x4D\x65\x6E\x75\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x42\x75\x74\x74\x6F\x6E","\x69\x6E\x69\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x67\x65\x53\x70\x72\x69\x74\x65\x2D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x64\x49\x74\x65\x6D","\x61\x63\x74\x69\x6F\x6E\x73","\x6C\x61\x62\x65\x6C","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x61\x64\x64\x45\x64\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x69\x73\x45\x64\x67\x65","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x74\x69\x74\x6C\x65","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64\x53\x74\x61\x74\x65","\x20\x67\x65\x44\x69\x73\x61\x62\x6C\x65\x64","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x42\x75\x74\x74\x6F\x6E","\x67\x65\x53\x70\x72\x69\x74\x65\x20","\x67\x65\x4C\x61\x62\x65\x6C","\x77\x72\x69\x74\x65","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x20\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x65\x6E\x75","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x6C\x61\x62\x65\x6C\x73","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70"];function Toolbar(_0xf0a4x2,_0xf0a4x3){this[_0x4c86[0]]=_0xf0a4x2;this[_0x4c86[1]]=_0xf0a4x3;this[_0x4c86[2]]();mxEvent[_0x4c86[5]](document,mxUtils[_0x4c86[4]](this,function(_0xf0a4x4){this[_0x4c86[3]]()}));}Toolbar[_0x4c86[6]][_0x4c86[2]]=function(){this[_0x4c86[21]]([_0x4c86[7],_0x4c86[8],_0x4c86[9],_0x4c86[10],_0x4c86[11],_0x4c86[12],_0x4c86[9],_0x4c86[13],_0x4c86[14],_0x4c86[15],_0x4c86[16],_0x4c86[9],_0x4c86[17],_0x4c86[9],_0x4c86[18],_0x4c86[19],_0x4c86[20],_0x4c86[9]]);var _0xf0a4x5=this[_0x4c86[25]](_0x4c86[22],mxResources[_0x4c86[24]](_0x4c86[23]),true,_0x4c86[23]);_0xf0a4x5[_0x4c86[27]][_0x4c86[26]]=_0x4c86[28];_0xf0a4x5[_0x4c86[27]][_0x4c86[29]]=_0x4c86[30];_0xf0a4x5[_0x4c86[27]][_0x4c86[31]]=_0x4c86[32];this[_0x4c86[33]]();var _0xf0a4x6=this[_0x4c86[25]](_0x4c86[34],mxResources[_0x4c86[24]](_0x4c86[35]),true,_0x4c86[35]);_0xf0a4x6[_0x4c86[27]][_0x4c86[26]]=_0x4c86[28];_0xf0a4x6[_0x4c86[27]][_0x4c86[29]]=_0x4c86[30];_0xf0a4x6[_0x4c86[27]][_0x4c86[31]]=_0x4c86[36];this[_0x4c86[21]]([_0x4c86[9],_0x4c86[37],_0x4c86[38],_0x4c86[39]]);var _0xf0a4x7=this[_0x4c86[0]][_0x4c86[41]][_0x4c86[40]];var _0xf0a4x8=mxUtils[_0x4c86[4]](this,function(){var _0xf0a4x9=_0x4c86[22];var _0xf0a4xa=_0x4c86[34];var _0xf0a4xb=_0xf0a4x7[_0x4c86[44]]()[_0x4c86[43]](_0xf0a4x7[_0x4c86[42]]());if(_0xf0a4xb!=null){_0xf0a4x9=_0xf0a4xb[_0x4c86[27]][mxConstants[_0x4c86[45]]]||_0xf0a4x9;_0xf0a4xa=_0xf0a4xb[_0x4c86[27]][mxConstants[_0x4c86[46]]]||_0xf0a4xa;if(_0xf0a4x9[_0x4c86[47]]>10){_0xf0a4x9=_0xf0a4x9[_0x4c86[48]](0,8)+_0x4c86[49]};_0xf0a4x5[_0x4c86[50]]=_0xf0a4x9;_0xf0a4x6[_0x4c86[50]]=_0xf0a4xa;};});_0xf0a4x7[_0x4c86[52]]()[_0x4c86[51]](mxEvent.CHANGE,_0xf0a4x8);_0xf0a4x7[_0x4c86[53]]()[_0x4c86[51]](mxEvent.CHANGE,_0xf0a4x8);};Toolbar[_0x4c86[6]][_0x4c86[3]]=function(){if(this[_0x4c86[54]]!=null){this[_0x4c86[54]][_0x4c86[3]]();this[_0x4c86[54]][_0x4c86[55]]();this[_0x4c86[54]]=null;}};Toolbar[_0x4c86[6]][_0x4c86[25]]=function(_0xf0a4xc,_0xf0a4xd,_0xf0a4xe,_0xf0a4xf){var _0xf0a4x10=this[_0x4c86[0]][_0x4c86[56]][_0x4c86[24]](_0xf0a4xf);var _0xf0a4x11=this[_0x4c86[58]](_0xf0a4xc,_0xf0a4xd,_0xf0a4xe,_0xf0a4x10[_0x4c86[57]]);_0xf0a4x10[_0x4c86[51]](_0x4c86[59],function(){_0xf0a4x11[_0x4c86[61]](_0xf0a4x10[_0x4c86[60]])});return _0xf0a4x11;};Toolbar[_0x4c86[6]][_0x4c86[58]]=function(_0xf0a4xc,_0xf0a4xd,_0xf0a4xe,_0xf0a4x12){var _0xf0a4x11=(_0xf0a4xe)?this[_0x4c86[62]](_0xf0a4xc):this[_0x4c86[63]](_0xf0a4xc);this[_0x4c86[64]](_0xf0a4x11,_0xf0a4xd);this[_0x4c86[65]](_0xf0a4x11,_0xf0a4xe,_0xf0a4x12);this[_0x4c86[1]][_0x4c86[66]](_0xf0a4x11);return _0xf0a4x11;};Toolbar[_0x4c86[6]][_0x4c86[33]]=function(){var _0xf0a4x11=document[_0x4c86[68]](_0x4c86[67]);_0xf0a4x11[_0x4c86[69]]=_0x4c86[70];this[_0x4c86[1]][_0x4c86[66]](_0xf0a4x11);return _0xf0a4x11;};Toolbar[_0x4c86[6]][_0x4c86[21]]=function(_0xf0a4x13){for(var _0xf0a4x14=0;_0xf0a4x14<_0xf0a4x13[_0x4c86[47]];_0xf0a4x14++){var _0xf0a4x15=_0xf0a4x13[_0xf0a4x14];if(_0xf0a4x15==_0x4c86[9]){this[_0x4c86[33]]()}else {this[_0x4c86[73]](_0x4c86[71]+_0xf0a4x15[_0x4c86[72]](),_0xf0a4x15)};}};Toolbar[_0x4c86[6]][_0x4c86[73]]=function(_0xf0a4x16,_0xf0a4x15){var _0xf0a4x17=this[_0x4c86[0]][_0x4c86[74]][_0x4c86[24]](_0xf0a4x15);var _0xf0a4x11=null;if(_0xf0a4x17!=null){_0xf0a4x11=this[_0x4c86[76]](_0xf0a4x16,_0xf0a4x17[_0x4c86[75]],_0xf0a4x17[_0x4c86[57]]);_0xf0a4x11[_0x4c86[61]](_0xf0a4x17[_0x4c86[60]]);_0xf0a4x17[_0x4c86[51]](_0x4c86[59],function(){_0xf0a4x11[_0x4c86[61]](_0xf0a4x17[_0x4c86[60]])});};return _0xf0a4x11;};Toolbar[_0x4c86[6]][_0x4c86[76]]=function(_0xf0a4x18,_0xf0a4xd,_0xf0a4x12){var _0xf0a4x11=this[_0x4c86[63]](_0xf0a4x18);this[_0x4c86[64]](_0xf0a4x11,_0xf0a4xd);this[_0x4c86[77]](_0xf0a4x11,_0xf0a4x12);this[_0x4c86[1]][_0x4c86[66]](_0xf0a4x11);return _0xf0a4x11;};Toolbar[_0x4c86[6]][_0x4c86[78]]=function(_0xf0a4x19){var _0xf0a4x7=this[_0x4c86[0]][_0x4c86[41]][_0x4c86[40]];var _0xf0a4x1a=function(){var _0xf0a4x1b=!_0xf0a4x7[_0x4c86[79]]();for(var _0xf0a4x14=0;_0xf0a4x14<_0xf0a4x19[_0x4c86[47]];_0xf0a4x14++){_0xf0a4x19[_0xf0a4x14][_0x4c86[61]](_0xf0a4x1b)};};_0xf0a4x7[_0x4c86[52]]()[_0x4c86[51]](mxEvent.CHANGE,_0xf0a4x1a);_0xf0a4x1a();};Toolbar[_0x4c86[6]][_0x4c86[80]]=function(_0xf0a4x19){var _0xf0a4x7=this[_0x4c86[0]][_0x4c86[41]][_0x4c86[40]];var _0xf0a4x1a=function(){var _0xf0a4x1c=false;if(!_0xf0a4x7[_0x4c86[79]]()){var _0xf0a4x1d=_0xf0a4x7[_0x4c86[81]]();for(var _0xf0a4x14=0;_0xf0a4x14<_0xf0a4x1d[_0x4c86[47]];_0xf0a4x14++){if(_0xf0a4x7[_0x4c86[53]]()[_0x4c86[82]](_0xf0a4x1d[_0xf0a4x14])){_0xf0a4x1c=true;break ;}};};for(var _0xf0a4x14=0;_0xf0a4x14<_0xf0a4x19[_0x4c86[47]];_0xf0a4x14++){_0xf0a4x19[_0xf0a4x14][_0x4c86[61]](_0xf0a4x1c)};};_0xf0a4x7[_0x4c86[52]]()[_0x4c86[51]](mxEvent.CHANGE,_0xf0a4x1a);_0xf0a4x1a();};Toolbar[_0x4c86[6]][_0x4c86[64]]=function(_0xf0a4x11,_0xf0a4xd){_0xf0a4x11[_0x4c86[85]](_0x4c86[83],_0x4c86[84]);if(_0xf0a4xd!=null){_0xf0a4x11[_0x4c86[85]](_0x4c86[86],_0xf0a4xd)};this[_0x4c86[87]](_0xf0a4x11);};Toolbar[_0x4c86[6]][_0x4c86[87]]=function(_0xf0a4x11){var _0xf0a4x18=_0xf0a4x11[_0x4c86[69]];_0xf0a4x11[_0x4c86[61]]=function(_0xf0a4x1e){_0xf0a4x11[_0x4c86[60]]=_0xf0a4x1e;if(_0xf0a4x1e){_0xf0a4x11[_0x4c86[69]]=_0xf0a4x18}else {_0xf0a4x11[_0x4c86[69]]=_0xf0a4x18+_0x4c86[88]};};_0xf0a4x11[_0x4c86[61]](true);};Toolbar[_0x4c86[6]][_0x4c86[77]]=function(_0xf0a4x11,_0xf0a4x12){if(_0xf0a4x12!=null){mxEvent[_0x4c86[51]](_0xf0a4x11,_0x4c86[89],function(_0xf0a4x4){if(_0xf0a4x11[_0x4c86[60]]){_0xf0a4x12(_0xf0a4x4)};mxEvent[_0x4c86[90]](_0xf0a4x4);})}};Toolbar[_0x4c86[6]][_0x4c86[63]]=function(_0xf0a4x18){var _0xf0a4x11=document[_0x4c86[68]](_0x4c86[91]);_0xf0a4x11[_0x4c86[85]](_0x4c86[92],_0x4c86[93]);_0xf0a4x11[_0x4c86[69]]=_0x4c86[94];var _0xf0a4x1f=document[_0x4c86[68]](_0x4c86[67]);_0xf0a4x1f[_0x4c86[69]]=_0x4c86[95]+_0xf0a4x18;_0xf0a4x11[_0x4c86[66]](_0xf0a4x1f);return _0xf0a4x11;};Toolbar[_0x4c86[6]][_0x4c86[62]]=function(_0xf0a4xc,_0xf0a4xd){var _0xf0a4x11=document[_0x4c86[68]](_0x4c86[91]);_0xf0a4x11[_0x4c86[85]](_0x4c86[92],_0x4c86[93]);_0xf0a4x11[_0x4c86[69]]=_0x4c86[96];mxUtils[_0x4c86[97]](_0xf0a4x11,_0xf0a4xc);return _0xf0a4x11;};Toolbar[_0x4c86[6]][_0x4c86[65]]=function(_0xf0a4x11,_0xf0a4xe,_0xf0a4x12,_0xf0a4x20){if(_0xf0a4x12!=null){var _0xf0a4x7=this[_0x4c86[0]][_0x4c86[41]][_0x4c86[40]];var _0xf0a4x10=null;mxEvent[_0x4c86[51]](_0xf0a4x11,_0x4c86[89],mxUtils[_0x4c86[4]](this,function(_0xf0a4x4){if(_0xf0a4x11[_0x4c86[60]]==null||_0xf0a4x11[_0x4c86[60]]){_0xf0a4x7[_0x4c86[98]][_0x4c86[3]]();_0xf0a4x10= new mxPopupMenu(_0xf0a4x12);_0xf0a4x10[_0x4c86[67]][_0x4c86[69]]+=_0x4c86[99];_0xf0a4x10[_0x4c86[100]]=_0xf0a4x20;_0xf0a4x10[_0x4c86[101]]=_0xf0a4xe;_0xf0a4x10[_0x4c86[102]]=true;_0xf0a4x10[_0x4c86[106]](_0xf0a4x11[_0x4c86[103]],_0xf0a4x11[_0x4c86[104]]+_0xf0a4x11[_0x4c86[105]]+34,null,_0xf0a4x4);this[_0x4c86[54]]=_0xf0a4x10;};mxEvent[_0x4c86[90]](_0xf0a4x4);}));}};
\ No newline at end of file
index 829c8f0..f9dbb80 100644 (file)
@@ -1 +1 @@
-var _0x4ae8=["\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x26","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x3D","\x69\x6E\x64\x65\x78\x4F\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x65\x78\x70\x2E\x64\x72\x61\x77\x2E\x69\x6F\x2F\x49\x6D\x61\x67\x65\x45\x78\x70\x6F\x72\x74\x32\x2F\x65\x78\x70\x6F\x72\x74","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x33\x30\x30\x30","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x2F","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x73\x74\x65\x6E\x63\x69\x6C\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x73\x68\x61\x70\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x74\x79\x6C\x65\x73","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x6F\x70\x65\x6E","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x2F\x64\x69\x61","\x63\x75\x73\x74\x6F\x6D","\x4E\x47\x5F\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x4C\x41\x4E\x47\x5F\x4B\x45\x59","\x67\x65\x74\x49\x74\x65\x6D","\x6C\x6F\x67","\x65\x6E","\x65\x6E\x5F\x45\x4E","\x69\x74","\x6D\x78\x4C\x61\x6E\x67\x75\x61\x67\x65","\x61\x72","\x62\x73","\x63\x73","\x64\x61","\x64\x65","\x65\x6C","\x65\x73","\x65\x73\x2D\x61\x72","\x66\x72","\x68\x75","\x69\x64","\x6A\x61","\x6B\x6F","\x6E\x6C","\x6E\x6F","\x70\x6C","\x70\x74\x2D\x62\x72","\x70\x74","\x72\x6F","\x72\x75","\x73\x72","\x73\x76","\x74\x68","\x74\x72","\x75\x6B","\x7A\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x6A\x73","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x20\x43\x61\x6E\x74\x6F\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x54\x61\x69\x77\x61\x6E\x20\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x4D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x42\x72\x61\x7A\x69\x6C\x69\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x61\x74\x61\x6C\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x7A\x65\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x75\x74\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x49\x74\x61\x6C\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65\x09","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x4D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x4D\x61\x6C\x65","\x53\x77\x65\x64\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x53\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x4B\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x53\x70\x61\x69\x6E\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x4D\x65\x78\x69\x63\x6F\x29","\x49\x74\x61\x6C\x69\x61\x6E\x20\x28\x49\x74\x61\x6C\x79\x29\x20\x2F\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x28\x46\x69\x6E\x6C\x61\x6E\x64\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x46\x72\x61\x6E\x63\x65\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x50\x6F\x6C\x69\x73\x68\x20\x28\x50\x6F\x6C\x61\x6E\x64\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x50\x6F\x72\x74\x75\x67\x61\x6C\x29","\x43\x61\x74\x61\x6C\x61\x6E\x20\x28\x43\x61\x74\x61\x6C\x61\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x61\x69\x77\x61\x6E\x29","\x44\x61\x6E\x69\x73\x68\x20\x28\x44\x65\x6E\x6D\x61\x72\x6B\x29","\x47\x65\x72\x6D\x61\x6E\x20\x28\x47\x65\x72\x6D\x61\x6E\x79\x29","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x28\x4A\x61\x70\x61\x6E\x29","\x4B\x6F\x72\x65\x61\x6E\x20\x28\x4B\x6F\x72\x65\x61\x29","\x44\x75\x74\x63\x68\x20\x28\x4E\x65\x74\x68\x65\x72\x6C\x61\x6E\x64\x73\x29","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x6F\x72\x77\x61\x79\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x42\x72\x61\x7A\x69\x6C\x29","\x52\x75\x73\x73\x69\x61\x6E\x20\x28\x52\x75\x73\x73\x69\x61\x29","\x53\x77\x65\x64\x69\x73\x68\x20\x28\x53\x77\x65\x64\x65\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x43\x68\x69\x6E\x61\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x29","\x44\x65\x66\x61\x75\x6C\x74","\x44\x61\x74\x65","\x55\x53\x20\x4D\x6F\x6E\x65\x79","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39\x39","\x54\x69\x6D\x65","\x50\x68\x6F\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72","\x53\x74\x72\x65\x65\x74\x73","\x55\x53\x20\x43\x69\x74\x79\x2F\x53\x74\x61\x74\x65\x73","\x41\x66\x72\x69\x6B\x61\x61\x6E\x73","\x41\x6C\x62\x61\x6E\x69\x61\x6E","\x41\x6D\x68\x61\x72\x69\x63","\x41\x72\x61\x62\x69\x63","\x41\x72\x6D\x65\x6E\x69\x61\x6E","\x41\x7A\x65\x72\x62\x61\x69\x6A\x61\x6E\x69","\x42\x61\x73\x71\x75\x65","\x42\x65\x6C\x61\x72\x75\x73\x69\x61\x6E","\x42\x65\x6E\x67\x61\x6C\x69","\x42\x69\x68\x61\x72\x69","\x42\x6F\x73\x6E\x69\x61\x6E","\x42\x72\x65\x74\x6F\x6E","\x42\x75\x6C\x67\x61\x72\x69\x61\x6E","\x43\x61\x6D\x62\x6F\x64\x69\x61\x6E","\x43\x61\x74\x61\x6C\x61\x6E","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x53\x69\x6D\x70\x6C\x69\x66\x69\x65\x64\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x72\x61\x64\x69\x74\x69\x6F\x6E\x61\x6C\x29","\x43\x6F\x72\x73\x69\x63\x61\x6E","\x43\x72\x6F\x61\x74\x69\x61\x6E","\x43\x7A\x65\x63\x68","\x44\x61\x6E\x69\x73\x68","\x44\x75\x74\x63\x68","\x45\x6E\x67\x6C\x69\x73\x68","\x45\x73\x70\x65\x72\x61\x6E\x74\x6F","\x45\x73\x74\x6F\x6E\x69\x61\x6E","\x46\x61\x72\x6F\x65\x73\x65","\x46\x69\x6C\x69\x70\x69\x6E\x6F","\x46\x69\x6E\x6E\x69\x73\x68","\x46\x72\x65\x6E\x63\x68","\x46\x72\x69\x73\x69\x61\x6E","\x47\x61\x6C\x69\x63\x69\x61\x6E","\x47\x65\x6F\x72\x67\x69\x61\x6E","\x47\x65\x72\x6D\x61\x6E","\x47\x72\x65\x65\x6B","\x47\x75\x61\x72\x61\x6E\x69","\x47\x75\x6A\x61\x72\x61\x74\x69","\x48\x61\x63\x6B\x65\x72","\x48\x61\x75\x73\x61","\x48\x65\x62\x72\x65\x77","\x48\x69\x6E\x64\x69","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E","\x49\x63\x65\x6C\x61\x6E\x64\x69\x63","\x49\x6E\x64\x6F\x6E\x65\x73\x69\x61\x6E","\x49\x6E\x74\x65\x72\x6C\x69\x6E\x67\x75\x61","\x49\x72\x69\x73\x68","\x49\x74\x61\x6C\x69\x61\x6E","\x4A\x61\x76\x61\x6E\x65\x73\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65","\x4B\x61\x6E\x6E\x61\x64\x61","\x4B\x61\x7A\x61\x6B\x68","\x4B\x69\x6E\x79\x61\x72\x77\x61\x6E\x64\x61","\x4B\x69\x72\x75\x6E\x64\x69","\x4B\x6C\x69\x6E\x67\x6F\x6E","\x4B\x75\x72\x64\x69\x73\x68","\x4B\x6F\x72\x65\x61\x6E","\x4B\x79\x72\x67\x79\x7A","\x4C\x61\x6F\x74\x68\x69\x61\x6E","\x4C\x61\x74\x69\x6E","\x4C\x61\x74\x76\x69\x61\x6E","\x4C\x69\x6E\x67\x61\x6C\x61","\x4C\x69\x74\x68\x75\x61\x6E\x69\x61\x6E","\x4D\x61\x63\x65\x64\x6F\x6E\x69\x61\x6E","\x4D\x61\x6C\x61\x67\x61\x73\x79","\x4D\x61\x6C\x61\x79","\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D","\x4D\x61\x6C\x74\x65\x73\x65","\x4D\x61\x6F\x72\x69","\x4D\x61\x72\x61\x74\x68\x69","\x4D\x6F\x6C\x64\x61\x76\x69\x61\x6E","\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E","\x4D\x6F\x6E\x74\x65\x6E\x65\x67\x72\x69\x6E","\x4E\x65\x70\x61\x6C\x69","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x79\x6E\x6F\x72\x73\x6B\x29","\x4F\x63\x63\x69\x74\x61\x6E","\x4F\x72\x69\x79\x61","\x4F\x72\x6F\x6D\x6F","\x50\x61\x73\x68\x74\x6F","\x50\x65\x72\x73\x69\x61\x6E","\x50\x69\x72\x61\x74\x65","\x50\x6F\x6C\x69\x73\x68","\x50\x75\x6E\x6A\x61\x62\x69","\x51\x75\x65\x63\x68\x75\x61","\x52\x6F\x6D\x61\x6E\x69\x61\x6E","\x52\x6F\x6D\x61\x6E\x73\x68","\x52\x75\x73\x73\x69\x61\x6E","\x53\x63\x6F\x74\x73\x20\x47\x61\x65\x6C\x69\x63","\x53\x65\x72\x62\x69\x61\x6E","\x53\x65\x72\x62\x6F\x2D\x43\x72\x6F\x61\x74\x69\x61\x6E","\x53\x65\x73\x6F\x74\x68\x6F","\x53\x68\x6F\x6E\x61","\x53\x69\x6E\x64\x68\x69","\x53\x69\x6E\x68\x61\x6C\x65\x73\x65","\x53\x6C\x6F\x76\x61\x6B","\x53\x6C\x6F\x76\x65\x6E\x69\x61\x6E","\x53\x6F\x6D\x61\x6C\x69","\x53\x70\x61\x6E\x69\x73\x68","\x53\x75\x6E\x64\x61\x6E\x65\x73\x65","\x53\x77\x61\x68\x69\x6C\x69","\x53\x77\x65\x64\x69\x73\x68","\x54\x61\x6A\x69\x6B","\x54\x61\x6D\x69\x6C","\x54\x61\x74\x61\x72","\x54\x65\x6C\x75\x67\x75","\x54\x68\x61\x69","\x54\x69\x67\x72\x69\x6E\x79\x61","\x54\x6F\x6E\x67\x61","\x54\x75\x72\x6B\x69\x73\x68","\x54\x75\x72\x6B\x6D\x65\x6E","\x54\x77\x69","\x55\x69\x67\x68\x75\x72","\x55\x6B\x72\x61\x69\x6E\x69\x61\x6E","\x55\x72\x64\x75","\x55\x7A\x62\x65\x6B","\x56\x69\x65\x74\x6E\x61\x6D\x65\x73\x65","\x57\x65\x6C\x73\x68","\x58\x68\x6F\x73\x61","\x59\x69\x64\x64\x69\x73\x68","\x59\x6F\x72\x75\x62\x61","\x5A\x75\x6C\x75"];var urlParams=(function(_0x76b1x2){var _0x76b1x3= new Object();var _0x76b1x4=_0x76b1x2[_0x4ae8[3]](_0x4ae8[2]);if(_0x76b1x4>0){var _0x76b1x5=_0x76b1x2[_0x4ae8[6]](_0x76b1x4+1)[_0x4ae8[5]](_0x4ae8[4]);for(var _0x76b1x6=0;_0x76b1x6<_0x76b1x5[_0x4ae8[7]];_0x76b1x6++){_0x76b1x4=_0x76b1x5[_0x76b1x6][_0x4ae8[9]](_0x4ae8[8]);if(_0x76b1x4>0){_0x76b1x3[_0x76b1x5[_0x76b1x6][_0x4ae8[6]](0,_0x76b1x4)]=_0x76b1x5[_0x76b1x6][_0x4ae8[6]](_0x76b1x4+1)};};};return _0x76b1x3;})(window[_0x4ae8[1]][_0x4ae8[0]]);var t0= new Date();var MAX_REQUEST_SIZE=10485760;var MAX_WIDTH=12000;var MAX_HEIGHT=12000;var EXPORT_URL=_0x4ae8[10];var SHARE_HOST=_0x4ae8[11];var SAVE_URL=_0x4ae8[12];var VARIABLE_URL=_0x4ae8[13];var STENCIL_PATH=_0x4ae8[14];var SHAPES_PATH=_0x4ae8[15];var IMAGE_PATH=_0x4ae8[16];var STYLE_PATH=_0x4ae8[17];var CSS_PATH=_0x4ae8[17];var OPEN_FORM=_0x4ae8[18];var TEMPLATE_PATH=_0x4ae8[19];var RESOURCES_PATH=_0x4ae8[20];var RESOURCE_BASE=RESOURCES_PATH+_0x4ae8[21];var tapAndHoldStartsConnection=true;var showConnectorImg=true;var mxLoadResources=false;console[_0x4ae8[25]](_0x4ae8[22],localStorage[_0x4ae8[24]](_0x4ae8[23]));switch(localStorage[_0x4ae8[24]](_0x4ae8[23])){case _0x4ae8[27]:mxLanguage=_0x4ae8[26];break ;;case _0x4ae8[28]:mxLanguage=_0x4ae8[28];break ;;default:mxLanguage=_0x4ae8[26];;};console[_0x4ae8[25]](_0x4ae8[29],mxLanguage);var mxLanguages=[_0x4ae8[30],_0x4ae8[31],_0x4ae8[32],_0x4ae8[33],_0x4ae8[34],_0x4ae8[35],_0x4ae8[36],_0x4ae8[37],_0x4ae8[38],_0x4ae8[39],_0x4ae8[40],_0x4ae8[28],_0x4ae8[41],_0x4ae8[42],_0x4ae8[43],_0x4ae8[44],_0x4ae8[45],_0x4ae8[46],_0x4ae8[47],_0x4ae8[48],_0x4ae8[49],_0x4ae8[50],_0x4ae8[51],_0x4ae8[52],_0x4ae8[53],_0x4ae8[54],_0x4ae8[55]];var mxBasePath=_0x4ae8[56];var geBasePath=_0x4ae8[57];var ISPEECHLANG={usenglishfemale:_0x4ae8[58],usenglishmale:_0x4ae8[59],ukenglishfemale:_0x4ae8[60],ukenglishmale:_0x4ae8[61],auenglishfemale:_0x4ae8[62],usspanishfemale:_0x4ae8[63],usspanishmale:_0x4ae8[64],chchinesefemale:_0x4ae8[65],chchinesemale:_0x4ae8[66],hkchinesefemale:_0x4ae8[67],twchinesefemale:_0x4ae8[68],jpjapanesefemale:_0x4ae8[69],jpjapanesemale:_0x4ae8[70],krkoreanfemale:_0x4ae8[71],krkoreanmale:_0x4ae8[72],caenglishfemale:_0x4ae8[73],huhungarianfemale:_0x4ae8[74],brportuguesefemale:_0x4ae8[75],eurportuguesefemale:_0x4ae8[76],eurportuguesemale:_0x4ae8[77],eurspanishfemale:_0x4ae8[78],eurspanishmale:_0x4ae8[79],eurcatalanfemale:_0x4ae8[80],eurczechfemale:_0x4ae8[81],eurdanishfemale:_0x4ae8[82],eurfinnishfemale:_0x4ae8[83],eurfrenchfemale:_0x4ae8[84],eurfrenchmale:_0x4ae8[85],eurnorwegianfemale:_0x4ae8[86],eurdutchfemale:_0x4ae8[87],eurpolishfemale:_0x4ae8[88],euritalianfemale:_0x4ae8[89],eurturkishfemale:_0x4ae8[90],eurturkishmale:_0x4ae8[91],eurgermanfemale:_0x4ae8[92],eurgermanmale:_0x4ae8[93],rurussianfemale:_0x4ae8[94],rurussianmale:_0x4ae8[95],swswedishfemale:_0x4ae8[96],cafrenchfemale:_0x4ae8[97],cafrenchmale:_0x4ae8[98]};var ISPEECHASRLANG={"\x65\x6E\x2D\x55\x53":_0x4ae8[99],"\x65\x6E\x2D\x43\x41":_0x4ae8[100],"\x65\x6E\x2D\x47\x42":_0x4ae8[101],"\x65\x6E\x2D\x41\x55":_0x4ae8[102],"\x65\x73\x2D\x45\x53":_0x4ae8[103],"\x65\x73\x2D\x4D\x58":_0x4ae8[104],"\x69\x74\x2D\x49\x54":_0x4ae8[105],"\x66\x72\x2D\x46\x52":_0x4ae8[106],"\x66\x72\x2D\x43\x41":_0x4ae8[107],"\x70\x6C\x2D\x50\x4C":_0x4ae8[108],"\x70\x74\x2D\x50\x54":_0x4ae8[109],"\x63\x61\x2D\x45\x53":_0x4ae8[110],"\x7A\x68\x2D\x54\x57":_0x4ae8[111],"\x64\x61\x2D\x44\x4B":_0x4ae8[112],"\x66\x72\x2D\x46\x52":_0x4ae8[113],"\x6A\x61\x2D\x4A\x50":_0x4ae8[114],"\x6B\x6F\x2D\x4B\x52":_0x4ae8[115],"\x6E\x6C\x2D\x4E\x4C":_0x4ae8[116],"\x6E\x62\x2D\x4E\x4F":_0x4ae8[117],"\x70\x74\x2D\x42\x52":_0x4ae8[118],"\x72\x75\x2D\x52\x55":_0x4ae8[119],"\x73\x76\x2D\x53\x45":_0x4ae8[120],"\x7A\x68\x2D\x43\x4E":_0x4ae8[121],"\x7A\x68\x2D\x48\x4B":_0x4ae8[122]};var ISPEECHASRMODEL={0:_0x4ae8[123],date:_0x4ae8[124],usmoney:_0x4ae8[125],numbersto9:_0x4ae8[126],numbersto99:_0x4ae8[127],numbersto999:_0x4ae8[128],time:_0x4ae8[129],phonenumber:_0x4ae8[130],streets:_0x4ae8[131],citystate:_0x4ae8[132]};var GOOGLETTSLANG={"\x61\x66":_0x4ae8[133],"\x73\x71":_0x4ae8[134],"\x61\x6D":_0x4ae8[135],"\x61\x72":_0x4ae8[136],"\x68\x79":_0x4ae8[137],"\x61\x7A":_0x4ae8[138],"\x65\x75":_0x4ae8[139],"\x62\x65":_0x4ae8[140],"\x62\x6E":_0x4ae8[141],"\x62\x68":_0x4ae8[142],"\x62\x73":_0x4ae8[143],"\x62\x72":_0x4ae8[144],"\x62\x67":_0x4ae8[145],"\x6B\x6D":_0x4ae8[146],"\x63\x61":_0x4ae8[147],"\x7A\x68\x2D\x43\x4E":_0x4ae8[148],"\x7A\x68\x2D\x54\x57":_0x4ae8[149],"\x63\x6F":_0x4ae8[150],"\x68\x72":_0x4ae8[151],"\x63\x73":_0x4ae8[152],"\x64\x61":_0x4ae8[153],"\x6E\x6C":_0x4ae8[154],"\x65\x6E":_0x4ae8[155],"\x65\x6F":_0x4ae8[156],"\x65\x74":_0x4ae8[157],"\x66\x6F":_0x4ae8[158],"\x74\x6C":_0x4ae8[159],"\x66\x69":_0x4ae8[160],"\x66\x72":_0x4ae8[161],"\x66\x79":_0x4ae8[162],"\x67\x6C":_0x4ae8[163],"\x6B\x61":_0x4ae8[164],"\x64\x65":_0x4ae8[165],"\x65\x6C":_0x4ae8[166],"\x67\x6E":_0x4ae8[167],"\x67\x75":_0x4ae8[168],"\x78\x78\x2D\x68\x61\x63\x6B\x65\x72":_0x4ae8[169],"\x68\x61":_0x4ae8[170],"\x69\x77":_0x4ae8[171],"\x68\x69":_0x4ae8[172],"\x68\x75":_0x4ae8[173],"\x69\x73":_0x4ae8[174],"\x69\x64":_0x4ae8[175],"\x69\x61":_0x4ae8[176],"\x67\x61":_0x4ae8[177],"\x69\x74":_0x4ae8[178],"\x6A\x77":_0x4ae8[179],"\x6A\x61":_0x4ae8[180],"\x6B\x6E":_0x4ae8[181],"\x6B\x6B":_0x4ae8[182],"\x72\x77":_0x4ae8[183],"\x72\x6E":_0x4ae8[184],"\x78\x78\x2D\x6B\x6C\x69\x6E\x67\x6F\x6E":_0x4ae8[185],"\x6B\x75":_0x4ae8[186],"\x6B\x6F":_0x4ae8[187],"\x6B\x79":_0x4ae8[188],"\x6C\x6F":_0x4ae8[189],"\x6C\x61":_0x4ae8[190],"\x6C\x76":_0x4ae8[191],"\x6C\x6E":_0x4ae8[192],"\x6C\x74":_0x4ae8[193],"\x6D\x6B":_0x4ae8[194],"\x6D\x67":_0x4ae8[195],"\x6D\x73":_0x4ae8[196],"\x6D\x6C":_0x4ae8[197],"\x6D\x74":_0x4ae8[198],"\x6D\x69":_0x4ae8[199],"\x6D\x72":_0x4ae8[200],"\x6D\x6F":_0x4ae8[201],"\x6D\x6E":_0x4ae8[202],"\x73\x72\x2D\x4D\x45":_0x4ae8[203],"\x6E\x65":_0x4ae8[204],"\x6E\x6F":_0x4ae8[205],"\x6E\x6E":_0x4ae8[206],"\x6F\x63":_0x4ae8[207],"\x6F\x72":_0x4ae8[208],"\x6F\x6D":_0x4ae8[209],"\x70\x73":_0x4ae8[210],"\x66\x61":_0x4ae8[211],"\x78\x78\x2D\x70\x69\x72\x61\x74\x65":_0x4ae8[212],"\x70\x6C":_0x4ae8[213],"\x70\x74\x2D\x42\x52":_0x4ae8[118],"\x70\x74\x2D\x50\x54":_0x4ae8[109],"\x70\x61":_0x4ae8[214],"\x71\x75":_0x4ae8[215],"\x72\x6F":_0x4ae8[216],"\x72\x6D":_0x4ae8[217],"\x72\x75":_0x4ae8[218],"\x67\x64":_0x4ae8[219],"\x73\x72":_0x4ae8[220],"\x73\x68":_0x4ae8[221],"\x73\x74":_0x4ae8[222],"\x73\x6E":_0x4ae8[223],"\x73\x64":_0x4ae8[224],"\x73\x69":_0x4ae8[225],"\x73\x6B":_0x4ae8[226],"\x73\x6C":_0x4ae8[227],"\x73\x6F":_0x4ae8[228],"\x65\x73":_0x4ae8[229],"\x73\x75":_0x4ae8[230],"\x73\x77":_0x4ae8[231],"\x73\x76":_0x4ae8[232],"\x74\x67":_0x4ae8[233],"\x74\x61":_0x4ae8[234],"\x74\x74":_0x4ae8[235],"\x74\x65":_0x4ae8[236],"\x74\x68":_0x4ae8[237],"\x74\x69":_0x4ae8[238],"\x74\x6F":_0x4ae8[239],"\x74\x72":_0x4ae8[240],"\x74\x6B":_0x4ae8[241],"\x74\x77":_0x4ae8[242],"\x75\x67":_0x4ae8[243],"\x75\x6B":_0x4ae8[244],"\x75\x72":_0x4ae8[245],"\x75\x7A":_0x4ae8[246],"\x76\x69":_0x4ae8[247],"\x63\x79":_0x4ae8[248],"\x78\x68":_0x4ae8[249],"\x79\x69":_0x4ae8[250],"\x79\x6F":_0x4ae8[251],"\x7A\x75":_0x4ae8[252]};
\ No newline at end of file
+var _0xace5=["\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x26","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x3D","\x69\x6E\x64\x65\x78\x4F\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x65\x78\x70\x2E\x64\x72\x61\x77\x2E\x69\x6F\x2F\x49\x6D\x61\x67\x65\x45\x78\x70\x6F\x72\x74\x32\x2F\x65\x78\x70\x6F\x72\x74","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x33\x30\x30\x30","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x2F","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x73\x74\x65\x6E\x63\x69\x6C\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x73\x68\x61\x70\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x74\x79\x6C\x65\x73","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x6F\x70\x65\x6E","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x2F\x64\x69\x61","\x63\x75\x73\x74\x6F\x6D","\x4E\x47\x5F\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x4C\x41\x4E\x47\x5F\x4B\x45\x59","\x67\x65\x74\x49\x74\x65\x6D","\x6C\x6F\x67","\x65\x6E","\x65\x6E\x5F\x45\x4E","\x69\x74","\x6D\x78\x4C\x61\x6E\x67\x75\x61\x67\x65","\x61\x72","\x62\x73","\x63\x73","\x64\x61","\x64\x65","\x65\x6C","\x65\x73","\x65\x73\x2D\x61\x72","\x66\x72","\x68\x75","\x69\x64","\x6A\x61","\x6B\x6F","\x6E\x6C","\x6E\x6F","\x70\x6C","\x70\x74\x2D\x62\x72","\x70\x74","\x72\x6F","\x72\x75","\x73\x72","\x73\x76","\x74\x68","\x74\x72","\x75\x6B","\x7A\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x6A\x73","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x20\x43\x61\x6E\x74\x6F\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x54\x61\x69\x77\x61\x6E\x20\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x4D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x42\x72\x61\x7A\x69\x6C\x69\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x61\x74\x61\x6C\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x7A\x65\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x75\x74\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x49\x74\x61\x6C\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65\x09","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x4D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x4D\x61\x6C\x65","\x53\x77\x65\x64\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x53\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x4B\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x53\x70\x61\x69\x6E\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x4D\x65\x78\x69\x63\x6F\x29","\x49\x74\x61\x6C\x69\x61\x6E\x20\x28\x49\x74\x61\x6C\x79\x29\x20\x2F\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x28\x46\x69\x6E\x6C\x61\x6E\x64\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x46\x72\x61\x6E\x63\x65\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x50\x6F\x6C\x69\x73\x68\x20\x28\x50\x6F\x6C\x61\x6E\x64\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x50\x6F\x72\x74\x75\x67\x61\x6C\x29","\x43\x61\x74\x61\x6C\x61\x6E\x20\x28\x43\x61\x74\x61\x6C\x61\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x61\x69\x77\x61\x6E\x29","\x44\x61\x6E\x69\x73\x68\x20\x28\x44\x65\x6E\x6D\x61\x72\x6B\x29","\x47\x65\x72\x6D\x61\x6E\x20\x28\x47\x65\x72\x6D\x61\x6E\x79\x29","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x28\x4A\x61\x70\x61\x6E\x29","\x4B\x6F\x72\x65\x61\x6E\x20\x28\x4B\x6F\x72\x65\x61\x29","\x44\x75\x74\x63\x68\x20\x28\x4E\x65\x74\x68\x65\x72\x6C\x61\x6E\x64\x73\x29","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x6F\x72\x77\x61\x79\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x42\x72\x61\x7A\x69\x6C\x29","\x52\x75\x73\x73\x69\x61\x6E\x20\x28\x52\x75\x73\x73\x69\x61\x29","\x53\x77\x65\x64\x69\x73\x68\x20\x28\x53\x77\x65\x64\x65\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x43\x68\x69\x6E\x61\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x29","\x44\x65\x66\x61\x75\x6C\x74","\x44\x61\x74\x65","\x55\x53\x20\x4D\x6F\x6E\x65\x79","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39\x39","\x54\x69\x6D\x65","\x50\x68\x6F\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72","\x53\x74\x72\x65\x65\x74\x73","\x55\x53\x20\x43\x69\x74\x79\x2F\x53\x74\x61\x74\x65\x73","\x41\x66\x72\x69\x6B\x61\x61\x6E\x73","\x41\x6C\x62\x61\x6E\x69\x61\x6E","\x41\x6D\x68\x61\x72\x69\x63","\x41\x72\x61\x62\x69\x63","\x41\x72\x6D\x65\x6E\x69\x61\x6E","\x41\x7A\x65\x72\x62\x61\x69\x6A\x61\x6E\x69","\x42\x61\x73\x71\x75\x65","\x42\x65\x6C\x61\x72\x75\x73\x69\x61\x6E","\x42\x65\x6E\x67\x61\x6C\x69","\x42\x69\x68\x61\x72\x69","\x42\x6F\x73\x6E\x69\x61\x6E","\x42\x72\x65\x74\x6F\x6E","\x42\x75\x6C\x67\x61\x72\x69\x61\x6E","\x43\x61\x6D\x62\x6F\x64\x69\x61\x6E","\x43\x61\x74\x61\x6C\x61\x6E","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x53\x69\x6D\x70\x6C\x69\x66\x69\x65\x64\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x72\x61\x64\x69\x74\x69\x6F\x6E\x61\x6C\x29","\x43\x6F\x72\x73\x69\x63\x61\x6E","\x43\x72\x6F\x61\x74\x69\x61\x6E","\x43\x7A\x65\x63\x68","\x44\x61\x6E\x69\x73\x68","\x44\x75\x74\x63\x68","\x45\x6E\x67\x6C\x69\x73\x68","\x45\x73\x70\x65\x72\x61\x6E\x74\x6F","\x45\x73\x74\x6F\x6E\x69\x61\x6E","\x46\x61\x72\x6F\x65\x73\x65","\x46\x69\x6C\x69\x70\x69\x6E\x6F","\x46\x69\x6E\x6E\x69\x73\x68","\x46\x72\x65\x6E\x63\x68","\x46\x72\x69\x73\x69\x61\x6E","\x47\x61\x6C\x69\x63\x69\x61\x6E","\x47\x65\x6F\x72\x67\x69\x61\x6E","\x47\x65\x72\x6D\x61\x6E","\x47\x72\x65\x65\x6B","\x47\x75\x61\x72\x61\x6E\x69","\x47\x75\x6A\x61\x72\x61\x74\x69","\x48\x61\x63\x6B\x65\x72","\x48\x61\x75\x73\x61","\x48\x65\x62\x72\x65\x77","\x48\x69\x6E\x64\x69","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E","\x49\x63\x65\x6C\x61\x6E\x64\x69\x63","\x49\x6E\x64\x6F\x6E\x65\x73\x69\x61\x6E","\x49\x6E\x74\x65\x72\x6C\x69\x6E\x67\x75\x61","\x49\x72\x69\x73\x68","\x49\x74\x61\x6C\x69\x61\x6E","\x4A\x61\x76\x61\x6E\x65\x73\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65","\x4B\x61\x6E\x6E\x61\x64\x61","\x4B\x61\x7A\x61\x6B\x68","\x4B\x69\x6E\x79\x61\x72\x77\x61\x6E\x64\x61","\x4B\x69\x72\x75\x6E\x64\x69","\x4B\x6C\x69\x6E\x67\x6F\x6E","\x4B\x75\x72\x64\x69\x73\x68","\x4B\x6F\x72\x65\x61\x6E","\x4B\x79\x72\x67\x79\x7A","\x4C\x61\x6F\x74\x68\x69\x61\x6E","\x4C\x61\x74\x69\x6E","\x4C\x61\x74\x76\x69\x61\x6E","\x4C\x69\x6E\x67\x61\x6C\x61","\x4C\x69\x74\x68\x75\x61\x6E\x69\x61\x6E","\x4D\x61\x63\x65\x64\x6F\x6E\x69\x61\x6E","\x4D\x61\x6C\x61\x67\x61\x73\x79","\x4D\x61\x6C\x61\x79","\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D","\x4D\x61\x6C\x74\x65\x73\x65","\x4D\x61\x6F\x72\x69","\x4D\x61\x72\x61\x74\x68\x69","\x4D\x6F\x6C\x64\x61\x76\x69\x61\x6E","\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E","\x4D\x6F\x6E\x74\x65\x6E\x65\x67\x72\x69\x6E","\x4E\x65\x70\x61\x6C\x69","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x79\x6E\x6F\x72\x73\x6B\x29","\x4F\x63\x63\x69\x74\x61\x6E","\x4F\x72\x69\x79\x61","\x4F\x72\x6F\x6D\x6F","\x50\x61\x73\x68\x74\x6F","\x50\x65\x72\x73\x69\x61\x6E","\x50\x69\x72\x61\x74\x65","\x50\x6F\x6C\x69\x73\x68","\x50\x75\x6E\x6A\x61\x62\x69","\x51\x75\x65\x63\x68\x75\x61","\x52\x6F\x6D\x61\x6E\x69\x61\x6E","\x52\x6F\x6D\x61\x6E\x73\x68","\x52\x75\x73\x73\x69\x61\x6E","\x53\x63\x6F\x74\x73\x20\x47\x61\x65\x6C\x69\x63","\x53\x65\x72\x62\x69\x61\x6E","\x53\x65\x72\x62\x6F\x2D\x43\x72\x6F\x61\x74\x69\x61\x6E","\x53\x65\x73\x6F\x74\x68\x6F","\x53\x68\x6F\x6E\x61","\x53\x69\x6E\x64\x68\x69","\x53\x69\x6E\x68\x61\x6C\x65\x73\x65","\x53\x6C\x6F\x76\x61\x6B","\x53\x6C\x6F\x76\x65\x6E\x69\x61\x6E","\x53\x6F\x6D\x61\x6C\x69","\x53\x70\x61\x6E\x69\x73\x68","\x53\x75\x6E\x64\x61\x6E\x65\x73\x65","\x53\x77\x61\x68\x69\x6C\x69","\x53\x77\x65\x64\x69\x73\x68","\x54\x61\x6A\x69\x6B","\x54\x61\x6D\x69\x6C","\x54\x61\x74\x61\x72","\x54\x65\x6C\x75\x67\x75","\x54\x68\x61\x69","\x54\x69\x67\x72\x69\x6E\x79\x61","\x54\x6F\x6E\x67\x61","\x54\x75\x72\x6B\x69\x73\x68","\x54\x75\x72\x6B\x6D\x65\x6E","\x54\x77\x69","\x55\x69\x67\x68\x75\x72","\x55\x6B\x72\x61\x69\x6E\x69\x61\x6E","\x55\x72\x64\x75","\x55\x7A\x62\x65\x6B","\x56\x69\x65\x74\x6E\x61\x6D\x65\x73\x65","\x57\x65\x6C\x73\x68","\x58\x68\x6F\x73\x61","\x59\x69\x64\x64\x69\x73\x68","\x59\x6F\x72\x75\x62\x61","\x5A\x75\x6C\x75"];var urlParams=(function(_0x20b0x2){var _0x20b0x3= new Object();var _0x20b0x4=_0x20b0x2[_0xace5[3]](_0xace5[2]);if(_0x20b0x4>0){var _0x20b0x5=_0x20b0x2[_0xace5[6]](_0x20b0x4+1)[_0xace5[5]](_0xace5[4]);for(var _0x20b0x6=0;_0x20b0x6<_0x20b0x5[_0xace5[7]];_0x20b0x6++){_0x20b0x4=_0x20b0x5[_0x20b0x6][_0xace5[9]](_0xace5[8]);if(_0x20b0x4>0){_0x20b0x3[_0x20b0x5[_0x20b0x6][_0xace5[6]](0,_0x20b0x4)]=_0x20b0x5[_0x20b0x6][_0xace5[6]](_0x20b0x4+1)};};};return _0x20b0x3;})(window[_0xace5[1]][_0xace5[0]]);var t0= new Date();var MAX_REQUEST_SIZE=10485760;var MAX_WIDTH=12000;var MAX_HEIGHT=12000;var EXPORT_URL=_0xace5[10];var SHARE_HOST=_0xace5[11];var SAVE_URL=_0xace5[12];var VARIABLE_URL=_0xace5[13];var STENCIL_PATH=_0xace5[14];var SHAPES_PATH=_0xace5[15];var IMAGE_PATH=_0xace5[16];var STYLE_PATH=_0xace5[17];var CSS_PATH=_0xace5[17];var OPEN_FORM=_0xace5[18];var TEMPLATE_PATH=_0xace5[19];var RESOURCES_PATH=_0xace5[20];var RESOURCE_BASE=RESOURCES_PATH+_0xace5[21];var tapAndHoldStartsConnection=true;var showConnectorImg=true;var mxLoadResources=false;console[_0xace5[25]](_0xace5[22],localStorage[_0xace5[24]](_0xace5[23]));switch(localStorage[_0xace5[24]](_0xace5[23])){case _0xace5[27]:mxLanguage=_0xace5[26];break ;;case _0xace5[28]:mxLanguage=_0xace5[28];break ;;default:mxLanguage=_0xace5[26];;};console[_0xace5[25]](_0xace5[29],mxLanguage);var mxLanguages=[_0xace5[30],_0xace5[31],_0xace5[32],_0xace5[33],_0xace5[34],_0xace5[35],_0xace5[36],_0xace5[37],_0xace5[38],_0xace5[39],_0xace5[40],_0xace5[28],_0xace5[41],_0xace5[42],_0xace5[43],_0xace5[44],_0xace5[45],_0xace5[46],_0xace5[47],_0xace5[48],_0xace5[49],_0xace5[50],_0xace5[51],_0xace5[52],_0xace5[53],_0xace5[54],_0xace5[55]];var mxBasePath=_0xace5[56];var geBasePath=_0xace5[57];var ISPEECHLANG={usenglishfemale:_0xace5[58],usenglishmale:_0xace5[59],ukenglishfemale:_0xace5[60],ukenglishmale:_0xace5[61],auenglishfemale:_0xace5[62],usspanishfemale:_0xace5[63],usspanishmale:_0xace5[64],chchinesefemale:_0xace5[65],chchinesemale:_0xace5[66],hkchinesefemale:_0xace5[67],twchinesefemale:_0xace5[68],jpjapanesefemale:_0xace5[69],jpjapanesemale:_0xace5[70],krkoreanfemale:_0xace5[71],krkoreanmale:_0xace5[72],caenglishfemale:_0xace5[73],huhungarianfemale:_0xace5[74],brportuguesefemale:_0xace5[75],eurportuguesefemale:_0xace5[76],eurportuguesemale:_0xace5[77],eurspanishfemale:_0xace5[78],eurspanishmale:_0xace5[79],eurcatalanfemale:_0xace5[80],eurczechfemale:_0xace5[81],eurdanishfemale:_0xace5[82],eurfinnishfemale:_0xace5[83],eurfrenchfemale:_0xace5[84],eurfrenchmale:_0xace5[85],eurnorwegianfemale:_0xace5[86],eurdutchfemale:_0xace5[87],eurpolishfemale:_0xace5[88],euritalianfemale:_0xace5[89],eurturkishfemale:_0xace5[90],eurturkishmale:_0xace5[91],eurgermanfemale:_0xace5[92],eurgermanmale:_0xace5[93],rurussianfemale:_0xace5[94],rurussianmale:_0xace5[95],swswedishfemale:_0xace5[96],cafrenchfemale:_0xace5[97],cafrenchmale:_0xace5[98]};var ISPEECHASRLANG={"\x65\x6E\x2D\x55\x53":_0xace5[99],"\x65\x6E\x2D\x43\x41":_0xace5[100],"\x65\x6E\x2D\x47\x42":_0xace5[101],"\x65\x6E\x2D\x41\x55":_0xace5[102],"\x65\x73\x2D\x45\x53":_0xace5[103],"\x65\x73\x2D\x4D\x58":_0xace5[104],"\x69\x74\x2D\x49\x54":_0xace5[105],"\x66\x72\x2D\x46\x52":_0xace5[106],"\x66\x72\x2D\x43\x41":_0xace5[107],"\x70\x6C\x2D\x50\x4C":_0xace5[108],"\x70\x74\x2D\x50\x54":_0xace5[109],"\x63\x61\x2D\x45\x53":_0xace5[110],"\x7A\x68\x2D\x54\x57":_0xace5[111],"\x64\x61\x2D\x44\x4B":_0xace5[112],"\x66\x72\x2D\x46\x52":_0xace5[113],"\x6A\x61\x2D\x4A\x50":_0xace5[114],"\x6B\x6F\x2D\x4B\x52":_0xace5[115],"\x6E\x6C\x2D\x4E\x4C":_0xace5[116],"\x6E\x62\x2D\x4E\x4F":_0xace5[117],"\x70\x74\x2D\x42\x52":_0xace5[118],"\x72\x75\x2D\x52\x55":_0xace5[119],"\x73\x76\x2D\x53\x45":_0xace5[120],"\x7A\x68\x2D\x43\x4E":_0xace5[121],"\x7A\x68\x2D\x48\x4B":_0xace5[122]};var ISPEECHASRMODEL={0:_0xace5[123],date:_0xace5[124],usmoney:_0xace5[125],numbersto9:_0xace5[126],numbersto99:_0xace5[127],numbersto999:_0xace5[128],time:_0xace5[129],phonenumber:_0xace5[130],streets:_0xace5[131],citystate:_0xace5[132]};var GOOGLETTSLANG={"\x61\x66":_0xace5[133],"\x73\x71":_0xace5[134],"\x61\x6D":_0xace5[135],"\x61\x72":_0xace5[136],"\x68\x79":_0xace5[137],"\x61\x7A":_0xace5[138],"\x65\x75":_0xace5[139],"\x62\x65":_0xace5[140],"\x62\x6E":_0xace5[141],"\x62\x68":_0xace5[142],"\x62\x73":_0xace5[143],"\x62\x72":_0xace5[144],"\x62\x67":_0xace5[145],"\x6B\x6D":_0xace5[146],"\x63\x61":_0xace5[147],"\x7A\x68\x2D\x43\x4E":_0xace5[148],"\x7A\x68\x2D\x54\x57":_0xace5[149],"\x63\x6F":_0xace5[150],"\x68\x72":_0xace5[151],"\x63\x73":_0xace5[152],"\x64\x61":_0xace5[153],"\x6E\x6C":_0xace5[154],"\x65\x6E":_0xace5[155],"\x65\x6F":_0xace5[156],"\x65\x74":_0xace5[157],"\x66\x6F":_0xace5[158],"\x74\x6C":_0xace5[159],"\x66\x69":_0xace5[160],"\x66\x72":_0xace5[161],"\x66\x79":_0xace5[162],"\x67\x6C":_0xace5[163],"\x6B\x61":_0xace5[164],"\x64\x65":_0xace5[165],"\x65\x6C":_0xace5[166],"\x67\x6E":_0xace5[167],"\x67\x75":_0xace5[168],"\x78\x78\x2D\x68\x61\x63\x6B\x65\x72":_0xace5[169],"\x68\x61":_0xace5[170],"\x69\x77":_0xace5[171],"\x68\x69":_0xace5[172],"\x68\x75":_0xace5[173],"\x69\x73":_0xace5[174],"\x69\x64":_0xace5[175],"\x69\x61":_0xace5[176],"\x67\x61":_0xace5[177],"\x69\x74":_0xace5[178],"\x6A\x77":_0xace5[179],"\x6A\x61":_0xace5[180],"\x6B\x6E":_0xace5[181],"\x6B\x6B":_0xace5[182],"\x72\x77":_0xace5[183],"\x72\x6E":_0xace5[184],"\x78\x78\x2D\x6B\x6C\x69\x6E\x67\x6F\x6E":_0xace5[185],"\x6B\x75":_0xace5[186],"\x6B\x6F":_0xace5[187],"\x6B\x79":_0xace5[188],"\x6C\x6F":_0xace5[189],"\x6C\x61":_0xace5[190],"\x6C\x76":_0xace5[191],"\x6C\x6E":_0xace5[192],"\x6C\x74":_0xace5[193],"\x6D\x6B":_0xace5[194],"\x6D\x67":_0xace5[195],"\x6D\x73":_0xace5[196],"\x6D\x6C":_0xace5[197],"\x6D\x74":_0xace5[198],"\x6D\x69":_0xace5[199],"\x6D\x72":_0xace5[200],"\x6D\x6F":_0xace5[201],"\x6D\x6E":_0xace5[202],"\x73\x72\x2D\x4D\x45":_0xace5[203],"\x6E\x65":_0xace5[204],"\x6E\x6F":_0xace5[205],"\x6E\x6E":_0xace5[206],"\x6F\x63":_0xace5[207],"\x6F\x72":_0xace5[208],"\x6F\x6D":_0xace5[209],"\x70\x73":_0xace5[210],"\x66\x61":_0xace5[211],"\x78\x78\x2D\x70\x69\x72\x61\x74\x65":_0xace5[212],"\x70\x6C":_0xace5[213],"\x70\x74\x2D\x42\x52":_0xace5[118],"\x70\x74\x2D\x50\x54":_0xace5[109],"\x70\x61":_0xace5[214],"\x71\x75":_0xace5[215],"\x72\x6F":_0xace5[216],"\x72\x6D":_0xace5[217],"\x72\x75":_0xace5[218],"\x67\x64":_0xace5[219],"\x73\x72":_0xace5[220],"\x73\x68":_0xace5[221],"\x73\x74":_0xace5[222],"\x73\x6E":_0xace5[223],"\x73\x64":_0xace5[224],"\x73\x69":_0xace5[225],"\x73\x6B":_0xace5[226],"\x73\x6C":_0xace5[227],"\x73\x6F":_0xace5[228],"\x65\x73":_0xace5[229],"\x73\x75":_0xace5[230],"\x73\x77":_0xace5[231],"\x73\x76":_0xace5[232],"\x74\x67":_0xace5[233],"\x74\x61":_0xace5[234],"\x74\x74":_0xace5[235],"\x74\x65":_0xace5[236],"\x74\x68":_0xace5[237],"\x74\x69":_0xace5[238],"\x74\x6F":_0xace5[239],"\x74\x72":_0xace5[240],"\x74\x6B":_0xace5[241],"\x74\x77":_0xace5[242],"\x75\x67":_0xace5[243],"\x75\x6B":_0xace5[244],"\x75\x72":_0xace5[245],"\x75\x7A":_0xace5[246],"\x76\x69":_0xace5[247],"\x63\x79":_0xace5[248],"\x78\x68":_0xace5[249],"\x79\x69":_0xace5[250],"\x79\x6F":_0xace5[251],"\x7A\x75":_0xace5[252]};
\ No newline at end of file
index 5b6762e..f010909 100644 (file)
@@ -1,7 +1,7 @@
 /**
 Core script to handle the entire theme and core functions
 **/
-var Layout = function () {
+var Layout = function() {
 
   var layoutImgPath = 'img/';
 
@@ -13,7 +13,7 @@ var Layout = function () {
   // this function handles responsive layout on screen size resize or mobile device rotate.
 
   // Set proper height for sidebar and content. The content and sidebar height must be synced always.
-  var handleSidebarAndContentHeight = function () {
+  var handleSidebarAndContentHeight = function() {
     var content = $('.page-content');
     var sidebar = $('.page-sidebar');
     var body = $('body');
@@ -49,7 +49,7 @@ var Layout = function () {
   };
 
   // Handle sidebar menu links
-  var handleSidebarMenuActiveLink = function (mode, el) {
+  var handleSidebarMenuActiveLink = function(mode, el) {
     var url = location.hash.toLowerCase();
 
     var menu = $('.page-sidebar-menu');
@@ -57,7 +57,7 @@ var Layout = function () {
     if (mode === 'click' || mode === 'set') {
       el = $(el);
     } else if (mode === 'match') {
-      menu.find("li > a").each(function () {
+      menu.find("li > a").each(function() {
         var path = $(this).attr("href").toLowerCase();
         // url match condition
         if (path.length > 1 && url.substr(1, path.length - 1) == path.substr(1)) {
@@ -83,7 +83,7 @@ var Layout = function () {
     menu.find('li > a > .selected').remove();
 
     if (menu.hasClass('page-sidebar-menu-hover-submenu') === false) {
-      menu.find('li.open').each(function () {
+      menu.find('li.open').each(function() {
         if ($(this).children('.sub-menu').size() === 0) {
           $(this).removeClass('open');
           $(this).find('> a > .arrow.open').removeClass('open');
@@ -93,7 +93,7 @@ var Layout = function () {
       menu.find('li.open').removeClass('open');
     }
 
-    el.parents('li').each(function () {
+    el.parents('li').each(function() {
       $(this).addClass('active');
       $(this).find('> a > span.arrow').addClass('open');
 
@@ -114,9 +114,9 @@ var Layout = function () {
   };
 
   // Handle sidebar menu
-  var handleSidebarMenu = function () {
+  var handleSidebarMenu = function() {
     // handle sidebar link click
-    jQuery('.page-sidebar').on('click', 'li > a', function (e) {
+    jQuery('.page-sidebar').on('click', 'li > a', function(e) {
       var hasSubMenu = $(this).next().hasClass('sub-menu');
 
       if (Metronic.getViewPort().width >= resBreakpointMd && $(this).parents('.page-sidebar-menu-hover-submenu').size() === 1) { // exit of hover sidebar menu
@@ -154,7 +154,7 @@ var Layout = function () {
       if (sub.is(":visible")) {
         jQuery('.arrow', jQuery(this)).removeClass("open");
         jQuery(this).parent().removeClass("open");
-        sub.slideUp(slideSpeed, function () {
+        sub.slideUp(slideSpeed, function() {
           if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {
             if ($('body').hasClass('page-sidebar-fixed')) {
               menu.slimScroll({
@@ -169,7 +169,7 @@ var Layout = function () {
       } else if (hasSubMenu) {
         jQuery('.arrow', jQuery(this)).addClass("open");
         jQuery(this).parent().addClass("open");
-        sub.slideDown(slideSpeed, function () {
+        sub.slideDown(slideSpeed, function() {
           if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {
             if ($('body').hasClass('page-sidebar-fixed')) {
               menu.slimScroll({
@@ -187,7 +187,7 @@ var Layout = function () {
     });
 
     // handle ajax links within sidebar menu
-    jQuery('.page-sidebar').on('click', ' li > a.ajaxify', function (e) {
+    jQuery('.page-sidebar').on('click', ' li > a.ajaxify', function(e) {
       e.preventDefault();
       Metronic.scrollTop();
 
@@ -199,7 +199,7 @@ var Layout = function () {
       menuContainer.children('li.active').removeClass('active');
       menuContainer.children('arrow.open').removeClass('open');
 
-      $(this).parents('li').each(function () {
+      $(this).parents('li').each(function() {
         $(this).addClass('active');
         $(this).children('a > span.arrow').addClass('open');
       });
@@ -218,7 +218,7 @@ var Layout = function () {
         cache: false,
         url: url,
         dataType: "html",
-        success: function (res) {
+        success: function(res) {
           if (the.parents('li.open').size() === 0) {
             $('.page-sidebar-menu > li.open > a').click();
           }
@@ -228,7 +228,7 @@ var Layout = function () {
           Layout.fixContentHeight(); // fix content height
           Metronic.initAjax(); // initialize core stuff
         },
-        error: function (xhr, ajaxOptions, thrownError) {
+        error: function(xhr, ajaxOptions, thrownError) {
           Metronic.stopPageLoading();
           pageContentBody.html('<h4>Could not load the requested content.</h4>');
         }
@@ -236,7 +236,7 @@ var Layout = function () {
     });
 
     // handle ajax link within main content
-    jQuery('.page-content').on('click', '.ajaxify', function (e) {
+    jQuery('.page-content').on('click', '.ajaxify', function(e) {
       e.preventDefault();
       Metronic.scrollTop();
 
@@ -255,13 +255,13 @@ var Layout = function () {
         cache: false,
         url: url,
         dataType: "html",
-        success: function (res) {
+        success: function(res) {
           Metronic.stopPageLoading();
           pageContentBody.html(res);
           Layout.fixContentHeight(); // fix content height
           Metronic.initAjax(); // initialize core stuff
         },
-        error: function (xhr, ajaxOptions, thrownError) {
+        error: function(xhr, ajaxOptions, thrownError) {
           pageContentBody.html('<h4>Could not load the requested content.</h4>');
           Metronic.stopPageLoading();
         }
@@ -272,13 +272,13 @@ var Layout = function () {
     handleFixedSidebarHoverEffect();
 
     // handle the search bar close
-    $('.page-sidebar').on('click', '.sidebar-search .remove', function (e) {
+    $('.page-sidebar').on('click', '.sidebar-search .remove', function(e) {
       e.preventDefault();
       $('.sidebar-search').removeClass("open");
     });
 
     // handle the search query submit on enter press
-    $('.page-sidebar .sidebar-search').on('keypress', 'input.form-control', function (e) {
+    $('.page-sidebar .sidebar-search').on('keypress', 'input.form-control', function(e) {
       if (e.which == 13) {
         $('.sidebar-search').submit();
         return false; //<---- Add this line
@@ -304,11 +304,11 @@ var Layout = function () {
 
     // handle close on body click
     if ($('.sidebar-search').size() !== 0) {
-      $('.sidebar-search .input-group').on('click', function (e) {
+      $('.sidebar-search .input-group').on('click', function(e) {
         e.stopPropagation();
       });
 
-      $('body').on('click', function () {
+      $('body').on('click', function() {
         if ($('.sidebar-search').hasClass('open')) {
           $('.sidebar-search').removeClass("open");
         }
@@ -317,7 +317,7 @@ var Layout = function () {
   };
 
   // Helper function to calculate sidebar height for fixed sidebar layout.
-  var _calculateFixedSidebarViewportHeight = function () {
+  var _calculateFixedSidebarViewportHeight = function() {
     var sidebarHeight = Metronic.getViewPort().height - $('.page-header').outerHeight();
     if ($('body').hasClass("page-footer-fixed")) {
       sidebarHeight = sidebarHeight - $('.page-footer').outerHeight();
@@ -327,7 +327,7 @@ var Layout = function () {
   };
 
   // Handles fixed sidebar
-  var handleFixedSidebar = function () {
+  var handleFixedSidebar = function() {
     var menu = $('.page-sidebar-menu');
 
     Metronic.destroySlimScroll(menu);
@@ -345,14 +345,14 @@ var Layout = function () {
   };
 
   // Handles sidebar toggler to close/hide the sidebar.
-  var handleFixedSidebarHoverEffect = function () {
+  var handleFixedSidebarHoverEffect = function() {
     var body = $('body');
     if (body.hasClass('page-sidebar-fixed')) {
-      $('.page-sidebar').on('mouseenter', function () {
+      $('.page-sidebar').on('mouseenter', function() {
         if (body.hasClass('page-sidebar-closed')) {
           $(this).find('.page-sidebar-menu').removeClass('page-sidebar-menu-closed');
         }
-      }).on('mouseleave', function () {
+      }).on('mouseleave', function() {
         if (body.hasClass('page-sidebar-closed')) {
           $(this).find('.page-sidebar-menu').addClass('page-sidebar-menu-closed');
         }
@@ -361,7 +361,7 @@ var Layout = function () {
   };
 
   // Hanles sidebar toggler
-  var handleSidebarToggler = function () {
+  var handleSidebarToggler = function() {
     var body = $('body');
     if ($.cookie && $.cookie('sidebar_closed') === '1' && Metronic.getViewPort().width >= resBreakpointMd) {
       $('body').addClass('page-sidebar-closed');
@@ -373,36 +373,36 @@ var Layout = function () {
     }
 
     // handle sidebar show/hide
-    $('body').on('click', '.sidebar-toggler', function (e) {
-      var sidebar = $('.page-sidebar');
-      var sidebarMenu = $('.page-sidebar-menu');
-      $(".sidebar-search", sidebar).removeClass("open");
-
-      if (body.hasClass("page-sidebar-closed")) {
-        body.removeClass("page-sidebar-closed");
-        sidebarMenu.removeClass("page-sidebar-menu-closed");
-        if ($.cookie) {
-          $.cookie('sidebar_closed', '0');
-        }
-      } else {
-        body.addClass("page-sidebar-closed");
-        sidebarMenu.addClass("page-sidebar-menu-closed");
-        if (body.hasClass("page-sidebar-fixed")) {
-          sidebarMenu.trigger("mouseleave");
-        }
-        if ($.cookie) {
-          $.cookie('sidebar_closed', '1');
-        }
-      }
-
-      $(window).trigger('resize');
-    });
+    // $('body').on('click', '.sidebar-toggler', function (e) {
+    //   var sidebar = $('.page-sidebar');
+    //   var sidebarMenu = $('.page-sidebar-menu');
+    //   $(".sidebar-search", sidebar).removeClass("open");
+    //
+    //   if (body.hasClass("page-sidebar-closed")) {
+    //     body.removeClass("page-sidebar-closed");
+    //     sidebarMenu.removeClass("page-sidebar-menu-closed");
+    //     if ($.cookie) {
+    //       $.cookie('sidebar_closed', '0');
+    //     }
+    //   } else {
+    //     body.addClass("page-sidebar-closed");
+    //     sidebarMenu.addClass("page-sidebar-menu-closed");
+    //     if (body.hasClass("page-sidebar-fixed")) {
+    //       sidebarMenu.trigger("mouseleave");
+    //     }
+    //     if ($.cookie) {
+    //       $.cookie('sidebar_closed', '1');
+    //     }
+    //   }
+    //
+    //   $(window).trigger('resize');
+    // });
   };
 
   // Handles the horizontal menu
-  var handleHorizontalMenu = function () {
+  var handleHorizontalMenu = function() {
     //handle tab click
-    $('.page-header').on('click', '.hor-menu a[data-toggle="tab"]', function (e) {
+    $('.page-header').on('click', '.hor-menu a[data-toggle="tab"]', function(e) {
       e.preventDefault();
       var nav = $(".hor-menu .nav");
       var active_link = nav.find('li.current');
@@ -414,18 +414,18 @@ var Layout = function () {
     });
 
     // handle search box expand/collapse
-    $('.page-header').on('click', '.search-form', function (e) {
+    $('.page-header').on('click', '.search-form', function(e) {
       $(this).addClass("open");
       $(this).find('.form-control').focus();
 
-      $('.page-header .search-form .form-control').on('blur', function (e) {
+      $('.page-header .search-form .form-control').on('blur', function(e) {
         $(this).closest('.search-form').removeClass("open");
         $(this).unbind("blur");
       });
     });
 
     // handle hor menu search form on enter press
-    $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function (e) {
+    $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function(e) {
       if (e.which == 13) {
         $(this).closest('.search-form').submit();
         return false;
@@ -433,38 +433,38 @@ var Layout = function () {
     });
 
     // handle header search button click
-    $('.page-header').on('mousedown', '.search-form.open .submit', function (e) {
+    $('.page-header').on('mousedown', '.search-form.open .submit', function(e) {
       e.preventDefault();
       e.stopPropagation();
       $(this).closest('.search-form').submit();
     });
 
     // handle hover dropdown menu for desktop devices only
-    $('[data-hover="megamenu-dropdown"]').not('.hover-initialized').each(function () {
+    $('[data-hover="megamenu-dropdown"]').not('.hover-initialized').each(function() {
       $(this).dropdownHover();
       $(this).addClass('hover-initialized');
     });
 
-    $(document).on('click', '.mega-menu-dropdown .dropdown-menu', function (e) {
+    $(document).on('click', '.mega-menu-dropdown .dropdown-menu', function(e) {
       e.stopPropagation();
     });
   };
 
   // Handles Bootstrap Tabs.
-  var handleTabs = function () {
+  var handleTabs = function() {
     // fix content height on tab click
-    $('body').on('shown.bs.tab', 'a[data-toggle="tab"]', function () {
+    $('body').on('shown.bs.tab', 'a[data-toggle="tab"]', function() {
       handleSidebarAndContentHeight();
     });
   };
 
   // Handles the go to top button at the footer
-  var handleGoTop = function () {
+  var handleGoTop = function() {
     var offset = 300;
     var duration = 500;
 
     if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) { // ios supported
-      $(window).bind("touchend touchcancel touchleave", function (e) {
+      $(window).bind("touchend touchcancel touchleave", function(e) {
         if ($(this).scrollTop() > offset) {
           $('.scroll-to-top').fadeIn(duration);
         } else {
@@ -472,7 +472,7 @@ var Layout = function () {
         }
       });
     } else { // general
-      $(window).scroll(function () {
+      $(window).scroll(function() {
         if ($(this).scrollTop() > offset) {
           $('.scroll-to-top').fadeIn(duration);
         } else {
@@ -481,7 +481,7 @@ var Layout = function () {
       });
     }
 
-    $('.scroll-to-top').click(function (e) {
+    $('.scroll-to-top').click(function(e) {
       e.preventDefault();
       $('html, body').animate({
         scrollTop: 0
@@ -491,7 +491,7 @@ var Layout = function () {
   };
 
   // Hanlde 100% height elements(block, portlet, etc)
-  var handle100HeightContent = function () {
+  var handle100HeightContent = function() {
 
     var target = $('.full-height-content');
     var height;
@@ -543,15 +543,15 @@ var Layout = function () {
     // Main init methods to initialize the layout
     //IMPORTANT!!!: Do not modify the core handlers call order.
 
-    initHeader: function () {
+    initHeader: function() {
       handleHorizontalMenu(); // handles horizontal menu
     },
 
-    setSidebarMenuActiveLink: function (mode, el) {
+    setSidebarMenuActiveLink: function(mode, el) {
       handleSidebarMenuActiveLink(mode, el);
     },
 
-    initSidebar: function () {
+    initSidebar: function() {
       //layout handlers
       handleFixedSidebar(); // handles fixed sidebar menu
       handleSidebarMenu(); // handles main menu
@@ -564,7 +564,7 @@ var Layout = function () {
       Metronic.addResizeHandler(handleFixedSidebar); // reinitialize fixed sidebar on window resize
     },
 
-    initContent: function () {
+    initContent: function() {
       handle100HeightContent(); // handles 100% height elements(block, portlet, etc)
       handleTabs(); // handle bootstrah tabs
 
@@ -572,11 +572,11 @@ var Layout = function () {
       Metronic.addResizeHandler(handle100HeightContent); // reinitialize content height on window resize
     },
 
-    initFooter: function () {
+    initFooter: function() {
       handleGoTop(); //handles scroll to top functionality in the footer
     },
 
-    init: function () {
+    init: function() {
       this.initHeader();
       this.initSidebar();
       this.initContent();
@@ -584,23 +584,23 @@ var Layout = function () {
     },
 
     //public function to fix the sidebar and content height accordingly
-    fixContentHeight: function () {
+    fixContentHeight: function() {
       handleSidebarAndContentHeight();
     },
 
-    initFixedSidebarHoverEffect: function () {
+    initFixedSidebarHoverEffect: function() {
       handleFixedSidebarHoverEffect();
     },
 
-    initFixedSidebar: function () {
+    initFixedSidebar: function() {
       handleFixedSidebar();
     },
 
-    getLayoutImgPath: function () {
+    getLayoutImgPath: function() {
       return Metronic.getAssetsPath() + layoutImgPath;
     },
 
-    getLayoutCssPath: function () {
+    getLayoutCssPath: function() {
       return Metronic.getAssetsPath() + layoutCssPath;
     }
   };
index de93ff3..f34415f 100644 (file)
@@ -61,7 +61,7 @@
     <![endif]-->
     <script src="app/b810a67e.vendor.js"></script>
 
-    <script src="app/3aec22c1.app.js"></script>
+    <script src="app/24463f40.app.js"></script>
 
     <!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
     <!-- BEGIN CORE PLUGINS -->
similarity index 53%
rename from release-notes/changelog_0.0.31.txt
rename to release-notes/changelog_0.0.32.txt
index b5bb250..2e4f1bc 100644 (file)
@@ -1,5 +1,19 @@
 # xCALLY MOTION Changelog
 
+- * e76e953 - 2016-01-25: Removed old custom_field API; Added association inclusion per service filter server side; Fixed service section. 
+- * 1a0a746 - 2016-01-25: add variable sync in integrations 
+- * e11ec90 - 2016-01-25: Fixed seed merge 
+- * eb43d60 - 2016-01-22: Modified contact manager with services 
+- * 8d689b6 - 2016-01-22: sendest (server): handle variable in configuration 
+- * 3cd754c - 2016-01-22: correct variable name in variable service 
+- * d3de292 - 2016-01-22: reduced size of profile sidebar 
+- * c1fd7ee - 2016-01-22: fixed sidebar toogle 
+- * 2de4245 - 2016-01-22: I added jscripty tab template 
+- * 77b9c94 - 2016-01-22: Modified jscripty directive 
+- * a382860 - 2016-01-22: I added start button in jscripty list section to start a script in a new tab. 
+- * fe96b22 - 2016-01-22: api for jscripty log and report 
+- * f2ac2a3 - 2016-01-21: add new angular service to return variable available for queue call (report_agent) 
+- * 8afc070 - 2016-01-21: zendesk: handle variable (client) 
 - * fd239ea - 2016-01-21: comment fax configuration in seed (dev) 
 - * 07c312e - 2016-01-21: fixed bug in voice route creation 
 - * 3ecaf0b - 2016-01-21: server side ku.mail.js agent assignment 
@@ -16,6 +30,7 @@
 - * 0472321 - 2016-01-21: client side telephone section + app.js 
 - * 2494133 - 2016-01-21: client side assets languages 
 - * df40b4d - 2016-01-21: bower.json 
+- * 1fda97f - 2016-01-21: I created a directive and a function to open new tab in the main view for jscripty 
 - * 6dae056 - 2016-01-20: Completed report extraction and download. 
 - * b2115e1 - 2016-01-20: zendesk: add field configuration (only strings and not variable) 
 - * a4df54a - 2016-01-20: zendesk: add nameField in order to handle the difference between default and custom fields 
 - * b7f983c - 2016-01-19: I added jscripty client side. 
 - * 3eb3cda - 2016-01-19: I modified this file to show  jscripty section on admin and agent interface. 
 - * 42ca302 - 2016-01-19: modified the file for jscripty 
-- * 597c722 - 2016-01-18: Updated Report Section 
-- * 5639970 - 2016-01-18: new version 
-- * 1831403 - 2016-01-18: I modified csquare mxgraph library paths 
-- * 1193f35 - 2016-01-18: i created new directories for csquare and jscripty mxgraph library scripts 
-- * afd017d - 2016-01-18: new version 
-- * 366410c - 2016-01-18: Add Seed for production 
-- * 7e4f41e - 2016-01-18: new version 
-- * a8d3a8d - 2016-01-18: new version 
-- * 87fa6b7 - 2016-01-18: server api 
-- * 962a059 - 2016-01-18: new version 
-- * c55811e - 2016-01-18: package.json 
-- * e82a344 - 2016-01-18: server side api 
-- * 570bf89 - 2016-01-18: client side license 
-- * cc90ac0 - 2016-01-18: new version 
-- * 9ea0d16 - 2016-01-18: client side app chat Template resource 
-- * f6401b7 - 2016-01-18: foxed socket and routes require 
-- * 11cecf2 - 2016-01-18: Add jscripty section 
-- * d9d3084 - 2016-01-18: Reload page after the language is changed only for csqaure and jscripty. 
-- * e78ed04 - 2016-01-18: Add jscripty label in languages 
-- * aee7365 - 2016-01-15: Report extraction modal 
-- * d53412c - 2016-01-15: package.json 
-- * 61fe1e8 - 2016-01-15: new version 
-- * c8fa5ef - 2016-01-15: Session Secret 
-- * d9f5e3b - 2016-01-15: session secret installer 
-- * 6546aa4 - 2016-01-15: server side config smtp. Node mailer sendmail already implements by mean promise. 
-- * 278cd3a - 2016-01-15: server config license 
-- * 2ad392b - 2016-01-15: server side api 
-- * e2f08ed - 2016-01-15: client side app 
-- * fe7830b - 2016-01-15: active sidebar with dashboard state 
-- * c7023c8 - 2016-01-15: darkblue.css 
-- * c0648bf - 2016-01-15: client side app setting template factory 
-- * 60f9717 - 2016-01-14: Modify links from http to https 
-- * 21d1dd8 - 2016-01-14: Obfuscation Server Side 
-- * f2c009b - 2016-01-14: package.json 
-- * 24350ff - 2016-01-14: socketio.js 
-- * 9d9d046 - 2016-01-14: server side app.js + routes.js 
-- * 991b0bd - 2016-01-14: server side models 
-- * 46eafec - 2016-01-14: server side config license 
-- * 0ed1f10 - 2016-01-14: server side config environment 
-- * f90b580 - 2016-01-14: server side auth 
-- * 5a77e0e - 2016-01-14: client side components sidebar 
-- * 58d21ae - 2016-01-14: server side api 
-- * 5253808 - 2016-01-14: client side assets 
-- * cafd169 - 2016-01-14: client side app 
-- * 1903f04 - 2016-01-14: Fixed report preview limit. 
-- * bef9612 - 2016-01-14: Added report copy; Added report json import/export. 
 
index 7ff45e9..a031adf 100644 (file)
@@ -1 +1,280 @@
-var _0x48dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x54\x65\x61\x6D","\x69\x6E\x64\x65\x78","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x61\x67\x65\x6E\x74","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x6C\x6F\x67","\x61\x64\x64\x55\x73\x65\x72","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x75\x73\x65\x72","\x6F\x6C\x64\x50\x61\x73\x73\x77\x6F\x72\x64","\x6E\x65\x77\x50\x61\x73\x73\x77\x6F\x72\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x73\x65\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x61\x67\x65\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65"];_0x48dd[0];var _=require(_0x48dd[1]);var util=require(_0x48dd[2]);var Agent=require(_0x48dd[4])[_0x48dd[3]];var Team=require(_0x48dd[4])[_0x48dd[5]];exports[_0x48dd[6]]=function(_0xe25dx5,_0xe25dx6,_0xe25dx7){var _0xe25dx8=[_0x48dd[7],_0x48dd[8],_0x48dd[9]];var _0xe25dx9=_0xe25dx5[_0x48dd[11]][_0x48dd[10]]?parseInt(_0xe25dx5[_0x48dd[11]][_0x48dd[10]],10):100;var _0xe25dxa=_0xe25dx5[_0x48dd[11]][_0x48dd[12]]?parseInt(_0xe25dx5[_0x48dd[11]][_0x48dd[12]],10):0;var _0xe25dxb={where:{role:_0x48dd[13]},limit:_0xe25dx9,offset:_0xe25dxa*_0xe25dx9};_[_0x48dd[27]](_0xe25dx5[_0x48dd[11]],function(_0xe25dxc,_0xe25dxd){switch(_0xe25dxd){case _0x48dd[10]:;case _0x48dd[12]:break ;;case _0x48dd[16]:_0xe25dxb[_0x48dd[14]]=util[_0x48dd[19]](_0x48dd[15],_0xe25dx5[_0x48dd[11]][_0x48dd[16]],_0xe25dx5[_0x48dd[11]][_0x48dd[17]]||_0x48dd[18])||null;break ;;case _0x48dd[17]:break ;;case _0x48dd[25]:_0xe25dxb[_0x48dd[21]][_0x48dd[20]]=[];_0xe25dx8[_0x48dd[24]](function(_0xe25dxe){var _0xe25dxf={};_0xe25dxf[_0xe25dxe]={$like:_0x48dd[22]+_0xe25dxc+_0x48dd[22]};_0xe25dxb[_0x48dd[21]][_0x48dd[20]][_0x48dd[23]](_0xe25dxf);});break ;;default:_0xe25dxb[_0x48dd[21]][_0xe25dxd]={$like:{}};_0xe25dxb[_0x48dd[21]][_0xe25dxd][_0x48dd[26]]=_0x48dd[22]+_0xe25dxc+_0x48dd[22];;}});Agent[_0x48dd[42]](_0xe25dxb)[_0x48dd[41]](function(_0xe25dx11){var _0xe25dx12=Math[_0x48dd[33]](_0xe25dx11[_0x48dd[32]]/_0xe25dx9);var _0xe25dx13=_0xe25dx12>(_0xe25dxb[_0x48dd[34]]+1)?util[_0x48dd[19]](_0x48dd[35],_0xe25dx5[_0x48dd[36]],_0xe25dx5[_0x48dd[38]][_0x48dd[37]],_0xe25dx5[_0x48dd[39]],_0xe25dxa+1):null;var _0xe25dx14=_0xe25dxa>0?util[_0x48dd[19]](_0x48dd[35],_0xe25dx5[_0x48dd[36]],_0xe25dx5[_0x48dd[38]][_0x48dd[37]],_0xe25dx5[_0x48dd[39]],_0xe25dxa-1):null;_0xe25dx6[_0x48dd[30]](200)[_0x48dd[29]]({count:_0xe25dx11[_0x48dd[32]],rows:_0xe25dx11[_0x48dd[40]],next_page:_0xe25dx13,previous_page:_0xe25dx14,total_pages:_0xe25dx12});})[_0x48dd[31]](function(_0xe25dx10){_0xe25dx6[_0x48dd[30]](500)[_0x48dd[29]]({error:_0x48dd[28]})});};exports[_0x48dd[43]]=function(_0xe25dx5,_0xe25dx6){Agent[_0x48dd[47]](_0xe25dx5[_0x48dd[46]][_0x48dd[45]])[_0x48dd[41]](function(_0xe25dx15){if(!_0xe25dx15){return _0xe25dx6[_0x48dd[44]](404)};return _0xe25dx6[_0x48dd[29]](_0xe25dx15);})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)})};exports[_0x48dd[48]]=function(_0xe25dx5,_0xe25dx6){Agent[_0x48dd[51]]({where:{internal:_0xe25dx5[_0x48dd[50]][_0x48dd[49]]}})[_0x48dd[41]](function(_0xe25dx16){if(!_0xe25dx16){return _0xe25dx6[_0x48dd[44]](404)};return _0xe25dx6[_0x48dd[29]](_0xe25dx16);})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)})};exports[_0x48dd[52]]=function(_0xe25dx5,_0xe25dx6){Agent[_0x48dd[52]](_0xe25dx5[_0x48dd[50]])[_0x48dd[41]](function(_0xe25dx15){Team[_0x48dd[55]]({where:{defaultEntry:true}})[_0x48dd[41]](function(_0xe25dx17){_0xe25dx17[_0x48dd[54]](_0xe25dx15[_0x48dd[45]])[_0x48dd[41]](function(){return _0xe25dx6[_0x48dd[30]](201)[_0x48dd[29]](_0xe25dx15)})[_0x48dd[31]](function(_0xe25dx10){console[_0x48dd[53]](_0xe25dx10);return handleError(_0xe25dx6,_0xe25dx10);})})[_0x48dd[31]](function(_0xe25dx10){console[_0x48dd[53]](_0xe25dx10);return handleError(_0xe25dx6,_0xe25dx10);})})[_0x48dd[31]](function(_0xe25dx10){console[_0x48dd[53]](_0xe25dx10);return handleError(_0xe25dx6,_0xe25dx10);})};exports[_0x48dd[56]]=function(_0xe25dx5,_0xe25dx6){if(_0xe25dx5[_0x48dd[50]][_0x48dd[45]]){delete _0xe25dx5[_0x48dd[50]][_0x48dd[45]]};Agent[_0x48dd[47]](_0xe25dx5[_0x48dd[46]][_0x48dd[45]])[_0x48dd[41]](function(_0xe25dx15){if(!_0xe25dx15){return _0xe25dx6[_0x48dd[44]](404)};var _0xe25dx18=_[_0x48dd[57]](_0xe25dx15,_0xe25dx5[_0x48dd[50]]);_0xe25dx18[_0x48dd[58]]()[_0x48dd[41]](function(){return _0xe25dx6[_0x48dd[30]](200)[_0x48dd[29]](_0xe25dx15)})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)});})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)});};exports[_0x48dd[59]]=function(_0xe25dx5,_0xe25dx6){Agent[_0x48dd[47]](_0xe25dx5[_0x48dd[46]][_0x48dd[45]])[_0x48dd[41]](function(_0xe25dx15){if(!_0xe25dx15){return _0xe25dx6[_0x48dd[44]](404)};_0xe25dx15[_0x48dd[59]]()[_0x48dd[41]](function(){return _0xe25dx6[_0x48dd[44]](204)})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)});})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)})};exports[_0x48dd[60]]=function(_0xe25dx5,_0xe25dx6){Agent[_0x48dd[59]]({where:{id:_0xe25dx5[_0x48dd[11]][_0x48dd[45]]},individualHooks:true})[_0x48dd[41]](function(){return _0xe25dx6[_0x48dd[44]](204)})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)})};exports[_0x48dd[61]]=function(_0xe25dx5,_0xe25dx6,_0xe25dx7){console[_0x48dd[53]](_0xe25dx5[_0x48dd[50]]);var _0xe25dx19=_0xe25dx5[_0x48dd[62]][_0x48dd[45]];var _0xe25dx1a=String(_0xe25dx5[_0x48dd[50]][_0x48dd[63]]);var _0xe25dx1b=String(_0xe25dx5[_0x48dd[50]][_0x48dd[64]]);Agent[_0x48dd[47]](_0xe25dx19)[_0x48dd[41]](function(_0xe25dx15){if(_0xe25dx15[_0x48dd[65]](_0xe25dx1a)){_0xe25dx15[_0x48dd[66]]=_0xe25dx1b;_0xe25dx15[_0x48dd[58]]()[_0x48dd[41]](function(){_0xe25dx6[_0x48dd[30]](200)[_0x48dd[29]](_0xe25dx15)})[_0x48dd[31]](function(_0xe25dx10){return _0xe25dx7(_0xe25dx10)});}else {_0xe25dx6[_0x48dd[44]](403)}});};exports[_0x48dd[67]]=function(_0xe25dx5,_0xe25dx6,_0xe25dx7){var _0xe25dx1b=String(_0xe25dx5[_0x48dd[50]][_0x48dd[64]]);Agent[_0x48dd[47]](_0xe25dx5[_0x48dd[46]][_0x48dd[45]])[_0x48dd[41]](function(_0xe25dx1c){_0xe25dx1c[_0x48dd[66]]=_0xe25dx1b;_0xe25dx1c[_0x48dd[58]]()[_0x48dd[41]](function(){_0xe25dx6[_0x48dd[30]](200)[_0x48dd[29]](_0xe25dx1c)})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)});});};exports[_0x48dd[68]]=function(_0xe25dx5,_0xe25dx6){var _0xe25dx1d={};_0xe25dx1d[_0xe25dx5[_0x48dd[46]][_0x48dd[69]]]=_0xe25dx5[_0x48dd[50]][_0x48dd[70]];Agent[_0x48dd[42]]({where:_0xe25dx1d})[_0x48dd[41]](function(_0xe25dx11){if(_0xe25dx11[_0x48dd[32]]){return _0xe25dx6[_0x48dd[30]](200)[_0x48dd[29]]({isValid:false,value:_0xe25dx5[_0x48dd[50]][_0x48dd[70]]})};return _0xe25dx6[_0x48dd[30]](200)[_0x48dd[29]]({isValid:true,value:_0xe25dx5[_0x48dd[50]][_0x48dd[70]]});})[_0x48dd[31]](function(_0xe25dx10){return handleError(_0xe25dx6,_0xe25dx10)});};function handleError(_0xe25dx6,_0xe25dx10){return _0xe25dx6[_0x48dd[30]](500)[_0x48dd[29]](_0xe25dx10)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var Agent = require('../../models').User;
+var Team = require('../../models').Team;
+
+
+// Get list of agents
+exports.index = function (req, res, next) {
+
+  var attributes = ['fullname', 'name', 'email'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      role: 'agent'
+    },
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Agent
+    .findAndCountAll(query)
+    .then(function (result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single agent
+exports.show = function (req, res) {
+  Agent
+    .findById(req.params.id)
+    .then(function (agent) {
+      if (!agent) {
+        return res.sendStatus(404);
+      }
+      return res.send(agent);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of an internal number
+exports.internalValidation = function (req, res) {
+  Agent
+    .findAll({
+      where: {
+        internal: req.body.internal
+      }
+    })
+    .then(function (internals) {
+      if (!internals) {
+        return res.sendStatus(404);
+      }
+      return res.send(internals);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new agent in the DB.
+exports.create = function (req, res) {
+  Agent
+    .create(req.body)
+    .then(function (agent) {
+      Team
+        .findOne({
+          where: {
+            defaultEntry: true
+          }
+        })
+        .then(function (team) {
+          team
+            .addUser(agent.id)
+            .then(function () {
+              return res.status(201).send(agent);
+            })
+            .catch(function (err) {
+              console.log(err);
+              return handleError(res, err);
+            });
+        })
+        .catch(function (err) {
+          console.log(err);
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing agent in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Agent
+    .findById(req.params.id)
+    .then(function (agent) {
+      if (!agent) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(agent, req.body);
+      updated
+        .save()
+        .then(function () {
+          return res.status(200).send(agent);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.destroy = function (req, res) {
+  Agent
+    .findById(req.params.id)
+    .then(function (agent) {
+      if (!agent) {
+        return res.sendStatus(404);
+      }
+      agent.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function (req, res) {
+  Agent
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function () {
+      return res.sendStatus(204);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+/**
+ * Change an agent password
+ */
+exports.changePassword = function (req, res, next) {
+  console.log(req.body);
+  var agentId = req.user.id;
+  var oldPass = String(req.body.oldPassword);
+  var newPass = String(req.body.newPassword);
+  Agent
+    .findById(agentId)
+    .then(function (agent) {
+      if (agent.authenticate(oldPass)) {
+        agent.password = newPass;
+        agent.save()
+          .then(function () {
+            res.status(200).send(agent);
+          })
+          .catch(function (err) {
+            return next(err);
+          });
+      } else {
+        res.sendStatus(403);
+      }
+    });
+};
+
+/**
+ * Change an agent password by admin
+ */
+exports.resetPassword = function (req, res, next) {
+  var newPass = String(req.body.newPassword);
+  Agent
+    .findById(req.params.id)
+    .then(function (user) {
+      user.password = newPass;
+      user.save()
+        .then(function () {
+          res.status(200).send(user);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    });
+};
+
+exports.agentValidation = function (req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  Agent
+    .findAndCountAll({
+      where: where
+    })
+    .then(function (result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index d71a24d..5535cb7 100644 (file)
@@ -1 +1,33 @@
-var _0x75e2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x67\x65\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x61\x67\x65\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x75e2[0];var agent=require(_0x75e2[2])[_0x75e2[1]];exports[_0x75e2[3]]=function(_0xb40ex2){agent[_0x75e2[6]](function(_0xb40ex3){if(_0xb40ex3[_0x75e2[4]]===_0x75e2[5]){onSave(_0xb40ex2,_0xb40ex3)}});agent[_0x75e2[7]](function(_0xb40ex3){if(_0xb40ex3[_0x75e2[4]]===_0x75e2[5]){onSave(_0xb40ex2,_0xb40ex3)}});agent[_0x75e2[8]](function(_0xb40ex3){if(_0xb40ex3[_0x75e2[4]]===_0x75e2[5]){onRemove(_0xb40ex2,_0xb40ex3)}});};function onSave(_0xb40ex2,_0xb40ex3,_0xb40ex5){_0xb40ex2[_0x75e2[10]](_0x75e2[9],_0xb40ex3)}function onRemove(_0xb40ex2,_0xb40ex3,_0xb40ex5){_0xb40ex2[_0x75e2[10]](_0x75e2[11],_0xb40ex3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var agent = require('../../models').User;
+
+exports.register = function(socket) {
+  agent.afterCreate(function(doc) {
+    if (doc.role === 'agent') {
+      onSave(socket, doc);
+    }
+  });
+  agent.afterUpdate(function(doc) {
+    if (doc.role === 'agent') {
+      onSave(socket, doc);
+    }
+  });
+  agent.afterDestroy(function(doc) {
+    if (doc.role === 'agent') {
+      onRemove(socket, doc);
+    }
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('agent:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('agent:remove', doc);
+}
index b0baf4b..e6c4651 100644 (file)
@@ -1 +1,20 @@
-var _0x6513=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x67\x65\x74"];_0x6513[0];var should=require(_0x6513[1]);var app=require(_0x6513[2]);var request=require(_0x6513[3]);describe(_0x6513[4],function(){it(_0x6513[5],function(_0xbb44x4){request(app)[_0x6513[13]](_0x6513[12])[_0x6513[11]](200)[_0x6513[11]](_0x6513[10],/json/)[_0x6513[9]](function(_0xbb44x5,_0xbb44x6){if(_0xbb44x5){return _0xbb44x4(_0xbb44x5)};_0xbb44x6[_0x6513[8]][_0x6513[1]][_0x6513[7]][_0x6513[6]](Array);_0xbb44x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/agents', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/agents')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 2c09bfd..f2a2a93 100644 (file)
@@ -1 +1,21 @@
-var _0xa8d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x67\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x61\x67\x65\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x2F\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x70\x75\x74","\x2F\x70\x61\x73\x73\x77\x6F\x72\x64\x2F\x3A\x69\x64\x2F\x72\x65\x73\x65\x74","\x61\x64\x6D\x69\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x72\x65\x73\x65\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x75\x70\x64\x61\x74\x65","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xa8d7[0];var express=require(_0xa8d7[1]);var controller=require(_0xa8d7[2]);var auth=require(_0xa8d7[3]);var router=express.Router();router[_0xa8d7[7]](_0xa8d7[4],auth[_0xa8d7[5]](),controller[_0xa8d7[6]]);router[_0xa8d7[7]](_0xa8d7[8],auth[_0xa8d7[5]](),controller[_0xa8d7[9]]);router[_0xa8d7[12]](_0xa8d7[10],auth[_0xa8d7[5]](),controller[_0xa8d7[11]]);router[_0xa8d7[12]](_0xa8d7[4],auth[_0xa8d7[5]](),controller[_0xa8d7[13]]);router[_0xa8d7[12]](_0xa8d7[14],auth[_0xa8d7[5]](),controller[_0xa8d7[15]]);router[_0xa8d7[18]](_0xa8d7[16],auth[_0xa8d7[5]](),controller[_0xa8d7[17]]);router[_0xa8d7[18]](_0xa8d7[19],auth[_0xa8d7[5]](),auth[_0xa8d7[21]](_0xa8d7[20]),controller[_0xa8d7[22]]);router[_0xa8d7[18]](_0xa8d7[8],auth[_0xa8d7[5]](),controller[_0xa8d7[23]]);router[_0xa8d7[24]](_0xa8d7[8],auth[_0xa8d7[5]](),controller[_0xa8d7[23]]);router[_0xa8d7[26]](_0xa8d7[4],auth[_0xa8d7[5]](),controller[_0xa8d7[25]]);router[_0xa8d7[26]](_0xa8d7[8],auth[_0xa8d7[5]](),controller[_0xa8d7[27]]);module[_0xa8d7[28]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./agent.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/validate/:field', auth.isAuthenticated(), controller.agentValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.internalValidation);
+router.put('/password', auth.isAuthenticated(), controller.changePassword);
+router.put('/password/:id/reset', auth.isAuthenticated(), auth.hasRole('admin'), controller.resetPassword);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index d2dc2b3..2684197 100644 (file)
@@ -1 +1,37 @@
-var _0x20c7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x41\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x61\x73\x79\x6E\x63","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x6D\x69","\x61\x63\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x41\x73\x74\x65\x72\x69\x73\x6B\x20\x4D\x61\x6E\x61\x67\x65\x72\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x2E\x2E"];_0x20c7[0];var Ami=require(_0x20c7[2])[_0x20c7[1]];var async=require(_0x20c7[3]);var _=require(_0x20c7[4]);var ami=null;exports[_0x20c7[5]]=function(ami){this[_0x20c7[6]]=ami};exports[_0x20c7[7]]=function(_0x4bbfx5,_0x4bbfx6){if(this[_0x20c7[6]]&&this[_0x20c7[6]][_0x20c7[8]]()){this[_0x20c7[6]][_0x20c7[7]](_0x4bbfx5,function(_0x4bbfx7,_0x4bbfx8){if(_0x4bbfx7){_0x4bbfx6(_0x4bbfx7)};var _0x4bbfx9=_[_0x20c7[9]](_0x4bbfx8,_0x4bbfx5);Ami[_0x20c7[12]](_0x4bbfx9)[_0x20c7[11]](function(ami){_0x4bbfx6(null,ami)})[_0x20c7[10]](function(_0x4bbfx7){return _0x4bbfx6(_0x4bbfx7)});})}else {_0x4bbfx6( new Error(_0x20c7[13]))}};
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Ami = require('../../models').Ami;
+var async = require('async');
+var _ = require('lodash');
+
+var ami = null;
+
+exports.register = function(ami) {
+  this.ami = ami;
+}
+
+exports.action = function(action, cb) {
+  if (this.ami && this.ami.isConnected()) {
+    this.ami.action(action, function(err, res) {
+      if (err) {
+        cb(err);
+      }
+      var data = _.merge(res, action);
+      Ami
+        .create(data)
+        .then(function(ami) {
+          cb(null, ami)
+        })
+        .catch(function(err) {
+          return cb(err);
+        });
+
+    });
+  } else {
+    cb(new Error('Asterisk Manager disconnected..'));
+  }
+}
index d482d21..dc409ab 100644 (file)
@@ -1 +1,101 @@
-var _0xe879=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x41\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x64\x61\x74\x61","\x62\x6F\x64\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x55\x73\x65\x72\x49\x64","\x75\x73\x65\x72","\x61\x63\x74\x69\x6F\x6E","\x2E\x2F\x61\x6D\x69\x2E\x61\x6D\x69","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64"];_0xe879[0];var _=require(_0xe879[1]);var Ami=require(_0xe879[3])[_0xe879[2]];exports[_0xe879[4]]=function(_0x3921x3,_0x3921x4){Ami[_0xe879[9]]()[_0xe879[8]](function(_0x3921x6){return _0x3921x4[_0xe879[7]](200)[_0xe879[6]](_0x3921x6)})[_0xe879[5]](function(_0x3921x5){return handleError(_0x3921x4,_0x3921x5)})};exports[_0xe879[10]]=function(_0x3921x3,_0x3921x4){Ami[_0xe879[14]](_0x3921x3[_0xe879[13]][_0xe879[12]])[_0xe879[8]](function(_0x3921x7){if(!_0x3921x7){return _0x3921x4[_0xe879[11]](404)};return _0x3921x4[_0xe879[6]](_0x3921x7);})[_0xe879[5]](function(_0x3921x5){return handleError(_0x3921x4,_0x3921x5)})};exports[_0xe879[15]]=function(_0x3921x3,_0x3921x4){_0x3921x3[_0xe879[17]][_0xe879[16]]=JSON[_0xe879[18]](_0x3921x3[_0xe879[17]]);_0x3921x3[_0xe879[17]][_0xe879[19]]=_0x3921x3[_0xe879[20]][_0xe879[12]];require(_0xe879[22])[_0xe879[21]](_0x3921x3[_0xe879[17]],function(_0x3921x5,_0x3921x8){if(_0x3921x5){handleError(_0x3921x4,_0x3921x5)}else {return _0x3921x4[_0xe879[7]](201)[_0xe879[6]](_0x3921x8)}});};exports[_0xe879[23]]=function(_0x3921x3,_0x3921x4){if(_0x3921x3[_0xe879[17]][_0xe879[12]]){delete _0x3921x3[_0xe879[17]][_0xe879[12]]};Ami[_0xe879[14]](_0x3921x3[_0xe879[13]][_0xe879[12]])[_0xe879[8]](function(_0x3921x7){if(!_0x3921x7){return _0x3921x4[_0xe879[11]](404)};var _0x3921x9=_[_0xe879[24]](_0x3921x7,_0x3921x3[_0xe879[17]]);_0x3921x9[_0xe879[25]]()[_0xe879[8]](function(){return _0x3921x4[_0xe879[7]](200)[_0xe879[6]](_0x3921x7)})[_0xe879[5]](function(_0x3921x5){return handleError(_0x3921x4,_0x3921x5)});})[_0xe879[5]](function(_0x3921x5){return handleError(_0x3921x4,_0x3921x5)});};exports[_0xe879[26]]=function(_0x3921x3,_0x3921x4){Ami[_0xe879[27]]({where:{id:_0x3921x3[_0xe879[13]][_0xe879[12]]}})[_0xe879[8]](function(_0x3921x7){if(!_0x3921x7){return _0x3921x4[_0xe879[11]](404)};_0x3921x7[_0xe879[26]]()[_0xe879[8]](function(){return _0x3921x4[_0xe879[11]](204)})[_0xe879[5]](function(_0x3921x5){return handleError(_0x3921x4,_0x3921x5)});})[_0xe879[5]](function(_0x3921x5){return handleError(_0x3921x4,_0x3921x5)})};function handleError(_0x3921x4,_0x3921x5){return _0x3921x4[_0xe879[7]](500)[_0xe879[6]](_0x3921x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Ami = require('../../models').Ami;
+
+// Get list of amis
+exports.index = function(req, res) {
+  Ami
+    .findAll()
+    .then(function(amis) {
+      return res.status(200).send(amis);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single ami
+exports.show = function(req, res) {
+  Ami
+    .findById(req.params.id)
+    .then(function(ami) {
+      if (!ami) {
+        return res.sendStatus(404);
+      }
+      return res.send(ami);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new ami in the DB.
+exports.create = function(req, res) {
+
+  req.body.data = JSON.stringify(req.body);
+  req.body.UserId = req.user.id;
+
+  require('./ami.ami').action(req.body, function(err, result) {
+    if (err) {
+      handleError(res, err);
+    } else {
+      return res.status(201).send(result);
+    }
+  });
+
+};
+
+// Updates an existing ami in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Ami
+    .findById(req.params.id)
+    .then(function(ami) {
+      if (!ami) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(ami, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(ami);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a ami from the DB.
+exports.destroy = function(req, res) {
+  Ami
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(ami) {
+      if (!ami) {
+        return res.sendStatus(404);
+      }
+      ami.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index d3df436..6047274 100644 (file)
@@ -1 +1,24 @@
-var _0x8568=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x41\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x6D\x69\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x61\x6D\x69\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8568[0];var Ami=require(_0x8568[2])[_0x8568[1]];exports[_0x8568[3]]=function(_0x6958x2){Ami[_0x8568[4]](function(_0x6958x3){onSave(_0x6958x2,_0x6958x3)});Ami[_0x8568[5]](function(_0x6958x3){onRemove(_0x6958x2,_0x6958x3)});};function onSave(_0x6958x2,_0x6958x3,_0x6958x5){_0x6958x2[_0x8568[7]](_0x8568[6],_0x6958x3)}function onRemove(_0x6958x2,_0x6958x3,_0x6958x5){_0x6958x2[_0x8568[7]](_0x8568[8],_0x6958x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Ami = require('../../models').Ami;
+
+exports.register = function(socket) {
+  Ami.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  Ami.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('ami:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('ami:remove', doc);
+}
index df5b77d..a7502d7 100644 (file)
@@ -1 +1,20 @@
-var _0xec65=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x67\x65\x74"];_0xec65[0];var should=require(_0xec65[1]);var app=require(_0xec65[2]);var request=require(_0xec65[3]);describe(_0xec65[4],function(){it(_0xec65[5],function(_0x23bax4){request(app)[_0xec65[13]](_0xec65[12])[_0xec65[11]](200)[_0xec65[11]](_0xec65[10],/json/)[_0xec65[9]](function(_0x23bax5,_0x23bax6){if(_0x23bax5){return _0x23bax4(_0x23bax5)};_0x23bax6[_0xec65[8]][_0xec65[1]][_0xec65[7]][_0xec65[6]](Array);_0x23bax4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/ami', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/ami')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 3d2310c..b926b75 100644 (file)
@@ -1 +1,16 @@
-var _0x2856=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x6D\x69\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x2856[0];var express=require(_0x2856[1]);var controller=require(_0x2856[2]);var auth=require(_0x2856[3]);var router=express.Router();router[_0x2856[7]](_0x2856[4],auth[_0x2856[5]](),controller[_0x2856[6]]);router[_0x2856[9]](_0x2856[4],auth[_0x2856[5]](),controller[_0x2856[8]]);module[_0x2856[10]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./ami.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+// router.get('/:id', controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+// router.put('/:id', controller.update);
+// router.patch('/:id', controller.update);
+// router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 2e2f82d..dc50214 100644 (file)
@@ -1 +1,168 @@
-var _0x1086=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x1086[0];var _=require(_0x1086[1]);var util=require(_0x1086[2]);var Automation=require(_0x1086[4])[_0x1086[3]];exports[_0x1086[5]]=function(_0xb3eax4,_0xb3eax5,_0xb3eax6){var _0xb3eax7=[_0x1086[6],_0x1086[7],_0x1086[8]];var _0xb3eax8=_0xb3eax4[_0x1086[10]][_0x1086[9]]?parseInt(_0xb3eax4[_0x1086[10]][_0x1086[9]],10):100;var _0xb3eax9=_0xb3eax4[_0x1086[10]][_0x1086[11]]?parseInt(_0xb3eax4[_0x1086[10]][_0x1086[11]],10):0;var _0xb3eaxa={where:{},limit:_0xb3eax8,offset:_0xb3eax9*_0xb3eax8};_[_0x1086[25]](_0xb3eax4[_0x1086[10]],function(_0xb3eaxb,_0xb3eaxc){switch(_0xb3eaxc){case _0x1086[9]:;case _0x1086[11]:break ;;case _0x1086[14]:_0xb3eaxa[_0x1086[12]]=util[_0x1086[17]](_0x1086[13],_0xb3eax4[_0x1086[10]][_0x1086[14]],_0xb3eax4[_0x1086[10]][_0x1086[15]]||_0x1086[16])||null;break ;;case _0x1086[15]:break ;;case _0x1086[23]:_0xb3eaxa[_0x1086[19]][_0x1086[18]]=[];_0xb3eax7[_0x1086[22]](function(_0xb3eaxd){var _0xb3eaxe={};_0xb3eaxe[_0xb3eaxd]={$like:_0x1086[20]+_0xb3eaxb+_0x1086[20]};_0xb3eaxa[_0x1086[19]][_0x1086[18]][_0x1086[21]](_0xb3eaxe);});break ;;default:_0xb3eaxa[_0x1086[19]][_0xb3eaxc]={$like:{}};_0xb3eaxa[_0x1086[19]][_0xb3eaxc][_0x1086[24]]=_0x1086[20]+_0xb3eaxb+_0x1086[20];;}});Automation[_0x1086[40]](_0xb3eaxa)[_0x1086[39]](function(_0xb3eax10){var _0xb3eax11=Math[_0x1086[31]](_0xb3eax10[_0x1086[30]]/_0xb3eax8);var _0xb3eax12=_0xb3eax11>(_0xb3eaxa[_0x1086[32]]+1)?util[_0x1086[17]](_0x1086[33],_0xb3eax4[_0x1086[34]],_0xb3eax4[_0x1086[36]][_0x1086[35]],_0xb3eax4[_0x1086[37]],_0xb3eax9+1):null;var _0xb3eax13=_0xb3eax9>0?util[_0x1086[17]](_0x1086[33],_0xb3eax4[_0x1086[34]],_0xb3eax4[_0x1086[36]][_0x1086[35]],_0xb3eax4[_0x1086[37]],_0xb3eax9-1):null;_0xb3eax5[_0x1086[28]](200)[_0x1086[27]]({count:_0xb3eax10[_0x1086[30]],rows:_0xb3eax10[_0x1086[38]],next_page:_0xb3eax12,previous_page:_0xb3eax13,total_pages:_0xb3eax11});})[_0x1086[29]](function(_0xb3eaxf){_0xb3eax5[_0x1086[28]](500)[_0x1086[27]]({error:_0x1086[26]})});};exports[_0x1086[41]]=function(_0xb3eax4,_0xb3eax5){Automation[_0x1086[45]](_0xb3eax4[_0x1086[44]][_0x1086[43]])[_0x1086[39]](function(Automation){if(!Automation){return _0xb3eax5[_0x1086[42]](404)};return _0xb3eax5[_0x1086[27]](Automation);})[_0x1086[29]](function(_0xb3eaxf){return handleError(_0xb3eax5,_0xb3eaxf)})};exports[_0x1086[46]]=function(_0xb3eax4,_0xb3eax5,_0xb3eax6){Automation[_0x1086[46]](_0xb3eax4[_0x1086[47]])[_0x1086[39]](function(){return _0xb3eax5[_0x1086[42]](201)})[_0x1086[29]](function(_0xb3eaxf){return handleError(_0xb3eax5,_0xb3eaxf)})};exports[_0x1086[48]]=function(_0xb3eax4,_0xb3eax5,_0xb3eax6){if(_0xb3eax4[_0x1086[47]][_0x1086[43]]){delete _0xb3eax4[_0x1086[47]][_0x1086[43]]};Automation[_0x1086[45]](_0xb3eax4[_0x1086[44]][_0x1086[43]])[_0x1086[39]](function(Automation){if(!Automation){return _0xb3eax5[_0x1086[42]](404)};var _0xb3eax14=_[_0x1086[49]](Automation,_0xb3eax4[_0x1086[47]]);_0xb3eax14[_0x1086[50]]()[_0x1086[39]](function(){return _0xb3eax5[_0x1086[28]](200)[_0x1086[27]](Automation)})[_0x1086[29]](function(_0xb3eaxf){return _0xb3eax6(_0xb3eaxf)});})[_0x1086[29]](function(_0xb3eaxf){return _0xb3eax6(_0xb3eaxf)});};exports[_0x1086[51]]=function(_0xb3eax4,_0xb3eax5){Automation[_0x1086[45]](_0xb3eax4[_0x1086[44]][_0x1086[43]])[_0x1086[39]](function(Automation){if(!Automation){return _0xb3eax5[_0x1086[42]](404)};Automation[_0x1086[51]]()[_0x1086[39]](function(){return _0xb3eax5[_0x1086[42]](204)})[_0x1086[29]](function(_0xb3eaxf){return handleError(_0xb3eax5,_0xb3eaxf)});})[_0x1086[29]](function(_0xb3eaxf){return handleError(_0xb3eax5,_0xb3eaxf)})};exports[_0x1086[52]]=function(_0xb3eax4,_0xb3eax5){Automation[_0x1086[51]]({where:{id:_0xb3eax4[_0x1086[10]][_0x1086[43]]},individualHooks:true})[_0x1086[39]](function(){return _0xb3eax5[_0x1086[42]](204)})[_0x1086[29]](function(_0xb3eaxf){return handleError(_0xb3eax5,_0xb3eaxf)})};function handleError(_0xb3eax5,_0xb3eaxf){return _0xb3eax5[_0x1086[28]](500)[_0x1086[27]](_0xb3eaxf)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var Automation = require('../../models').Automation;
+
+// Get list of agents
+exports.index = function(req, res, next) {
+
+  var attributes = ['fullname', 'name', 'email'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Automation
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single Automation
+exports.show = function(req, res) {
+  Automation
+    .findById(req.params.id)
+    .then(function(Automation) {
+      if (!Automation) {
+        return res.sendStatus(404);
+      }
+      return res.send(Automation);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new Automation in the DB.
+exports.create = function(req, res, next) {
+  Automation
+    .create(req.body)
+    .then(function() {
+      return res.sendStatus(201);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing Automation in the DB.
+exports.update = function(req, res, next) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Automation
+    .findById(req.params.id)
+    .then(function(Automation) {
+      if (!Automation) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(Automation, req.body);
+      updated
+        .save()
+        .then(function() {
+          return res.status(200).send(Automation);
+        })
+        .catch(function(err) {
+          // return handleError(res, err);
+          return next(err);
+
+        });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a Automation from the DB.
+exports.destroy = function(req, res) {
+  Automation
+    .findById(req.params.id)
+    .then(function(Automation) {
+      if (!Automation) {
+        return res.sendStatus(404);
+      }
+      Automation.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+}
+
+exports.bulkDestroy = function(req, res) {
+  Automation
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 7d75202..2c55b60 100644 (file)
@@ -1 +1,24 @@
-var _0xb8db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb8db[0];var Automation=require(_0xb8db[2])[_0xb8db[1]];exports[_0xb8db[3]]=function(_0xe12bx2){Automation[_0xb8db[4]](function(_0xe12bx3){onSave(_0xe12bx2,_0xe12bx3)});Automation[_0xb8db[5]](function(_0xe12bx3){onRemove(_0xe12bx2,_0xe12bx3)});};function onSave(_0xe12bx2,_0xe12bx3,_0xe12bx5){_0xe12bx2[_0xb8db[7]](_0xb8db[6],_0xe12bx3)}function onRemove(_0xe12bx2,_0xe12bx3,_0xe12bx5){_0xe12bx2[_0xb8db[7]](_0xb8db[8],_0xe12bx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Automation = require('../../models').Automation;
+
+exports.register = function(socket) {
+  Automation.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Automation.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('automation:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('automation:remove', doc);
+}
index 1dd3053..ab8c5b4 100644 (file)
@@ -1 +1,20 @@
-var _0xe1cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0xe1cc[0];var should=require(_0xe1cc[1]);var app=require(_0xe1cc[2]);var request=require(_0xe1cc[3]);describe(_0xe1cc[4],function(){it(_0xe1cc[5],function(_0x4d78x4){request(app)[_0xe1cc[13]](_0xe1cc[12])[_0xe1cc[11]](200)[_0xe1cc[11]](_0xe1cc[10],/json/)[_0xe1cc[9]](function(_0x4d78x5,_0x4d78x6){if(_0x4d78x5){return _0x4d78x4(_0x4d78x5)};_0x4d78x6[_0xe1cc[8]][_0xe1cc[1]][_0xe1cc[7]][_0xe1cc[6]](Array);_0x4d78x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/automations', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/automations')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index f96c5cd..98acf5a 100644 (file)
@@ -1 +1,17 @@
-var _0x80da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x80da[0];var express=require(_0x80da[1]);var controller=require(_0x80da[2]);var auth=require(_0x80da[3]);var router=express.Router();router[_0x80da[7]](_0x80da[4],auth[_0x80da[5]](),controller[_0x80da[6]]);router[_0x80da[7]](_0x80da[8],auth[_0x80da[5]](),controller[_0x80da[9]]);router[_0x80da[11]](_0x80da[4],auth[_0x80da[5]](),controller[_0x80da[10]]);router[_0x80da[13]](_0x80da[8],auth[_0x80da[5]](),controller[_0x80da[12]]);router[_0x80da[14]](_0x80da[8],auth[_0x80da[5]](),controller[_0x80da[12]]);router[_0x80da[16]](_0x80da[8],auth[_0x80da[5]](),controller[_0x80da[15]]);router[_0x80da[16]](_0x80da[4],auth[_0x80da[5]](),controller[_0x80da[17]]);module[_0x80da[18]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./automation.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+
+module.exports = router;
index 2f74ca6..53338c4 100644 (file)
@@ -1 +1,94 @@
-var _0xb180=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xb180[0];var _=require(_0xb180[1]);var BusinessAction=require(_0xb180[3])[_0xb180[2]];exports[_0xb180[4]]=function(_0x735ax3,_0x735ax4){BusinessAction[_0xb180[9]]()[_0xb180[8]](function(_0x735ax6){return _0x735ax4[_0xb180[7]](200)[_0xb180[6]](_0x735ax6)})[_0xb180[5]](function(_0x735ax5){return handleError(_0x735ax4,_0x735ax5)})};exports[_0xb180[10]]=function(_0x735ax3,_0x735ax4){BusinessAction[_0xb180[14]](_0x735ax3[_0xb180[13]][_0xb180[12]])[_0xb180[8]](function(_0x735ax7){if(!_0x735ax7){return _0x735ax4[_0xb180[11]](404)};return _0x735ax4[_0xb180[6]](_0x735ax7);})[_0xb180[5]](function(_0x735ax5){return handleError(_0x735ax4,_0x735ax5)})};exports[_0xb180[15]]=function(_0x735ax3,_0x735ax4){BusinessAction[_0xb180[15]](_0x735ax3[_0xb180[16]])[_0xb180[8]](function(_0x735ax7){return _0x735ax4[_0xb180[7]](201)[_0xb180[6]](_0x735ax7)})[_0xb180[5]](function(_0x735ax5){return handleError(_0x735ax4,_0x735ax5)})};exports[_0xb180[17]]=function(_0x735ax3,_0x735ax4){if(_0x735ax3[_0xb180[16]][_0xb180[12]]){delete _0x735ax3[_0xb180[16]][_0xb180[12]]};BusinessAction[_0xb180[14]](_0x735ax3[_0xb180[13]][_0xb180[12]])[_0xb180[8]](function(_0x735ax7){if(!_0x735ax7){return _0x735ax4[_0xb180[11]](404)};var _0x735ax8=_[_0xb180[18]](_0x735ax7,_0x735ax3[_0xb180[16]]);_0x735ax8[_0xb180[19]]()[_0xb180[8]](function(){return _0x735ax4[_0xb180[7]](200)[_0xb180[6]](_0x735ax7)})[_0xb180[5]](function(_0x735ax5){return handleError(_0x735ax4,_0x735ax5)});})[_0xb180[5]](function(_0x735ax5){return handleError(_0x735ax4,_0x735ax5)});};exports[_0xb180[20]]=function(_0x735ax3,_0x735ax4){BusinessAction[_0xb180[14]](_0x735ax3[_0xb180[13]][_0xb180[12]])[_0xb180[8]](function(_0x735ax7){if(!_0x735ax7){return _0x735ax4[_0xb180[11]](404)};_0x735ax7[_0xb180[20]]()[_0xb180[8]](function(){return _0x735ax4[_0xb180[7]](200)[_0xb180[6]](_0x735ax7)})[_0xb180[5]](function(_0x735ax5){return handleError(_0x735ax4,_0x735ax5)});})[_0xb180[5]](function(_0x735ax5){return handleError(_0x735ax4,_0x735ax5)})};function handleError(_0x735ax4,_0x735ax5){return _0x735ax4[_0xb180[7]](500)[_0xb180[6]](_0x735ax5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var BusinessAction = require('../../models').BusinessAction;
+
+// Get list of business_actions
+exports.index = function(req, res) {
+  BusinessAction
+    .findAll()
+    .then(function(business_actions) {
+      return res.status(200).send(business_actions);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single businessAction
+exports.show = function(req, res) {
+  BusinessAction
+    .findById(req.params.id)
+    .then(function(businessAction) {
+      if (!businessAction) {
+        return res.sendStatus(404);
+      }
+      return res.send(businessAction);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new businessAction in the DB.
+exports.create = function(req, res) {
+  BusinessAction
+    .create(req.body)
+    .then(function(businessAction) {
+      return res.status(201).send(businessAction);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing businessAction in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  BusinessAction
+    .findById(req.params.id)
+    .then(function(businessAction) {
+      if (!businessAction) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(businessAction, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(businessAction);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a businessAction from the DB.
+exports.destroy = function(req, res) {
+  BusinessAction
+    .findById(req.params.id)
+    .then(function(businessAction) {
+      if (!businessAction) {
+        return res.sendStatus(404);
+      }
+      businessAction
+        .destroy()
+        .then(function() {
+          return res.status(200).send(businessAction);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 6acdc60..3fecc0c 100644 (file)
@@ -1 +1,24 @@
-var _0x7935=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7935[0];var BusinessAction=require(_0x7935[2])[_0x7935[1]];exports[_0x7935[3]]=function(_0x3d72x2){BusinessAction[_0x7935[4]](function(_0x3d72x3){onSave(_0x3d72x2,_0x3d72x3)});BusinessAction[_0x7935[5]](function(_0x3d72x3){onRemove(_0x3d72x2,_0x3d72x3)});};function onSave(_0x3d72x2,_0x3d72x3,_0x3d72x5){_0x3d72x2[_0x7935[7]](_0x7935[6],_0x3d72x3)}function onRemove(_0x3d72x2,_0x3d72x3,_0x3d72x5){_0x3d72x2[_0x7935[7]](_0x7935[8],_0x3d72x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var BusinessAction = require('../../models').BusinessAction;
+
+exports.register = function(socket) {
+  BusinessAction.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  BusinessAction.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('business_action:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('business_action:remove', doc);
+}
index 7c5cc74..4b677be 100644 (file)
@@ -1 +1,20 @@
-var _0xa6b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0xa6b8[0];var should=require(_0xa6b8[1]);var app=require(_0xa6b8[2]);var request=require(_0xa6b8[3]);describe(_0xa6b8[4],function(){it(_0xa6b8[5],function(_0x1fedx4){request(app)[_0xa6b8[13]](_0xa6b8[12])[_0xa6b8[11]](200)[_0xa6b8[11]](_0xa6b8[10],/json/)[_0xa6b8[9]](function(_0x1fedx5,_0x1fedx6){if(_0x1fedx5){return _0x1fedx4(_0x1fedx5)};_0x1fedx6[_0xa6b8[8]][_0xa6b8[1]][_0xa6b8[7]][_0xa6b8[6]](Array);_0x1fedx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/business/actions', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/business/actions')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 41c74f9..3545d75 100644 (file)
@@ -1 +1,15 @@
-var _0xd7cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd7cf[0];var express=require(_0xd7cf[1]);var controller=require(_0xd7cf[2]);var router=express.Router();router[_0xd7cf[5]](_0xd7cf[3],controller[_0xd7cf[4]]);router[_0xd7cf[5]](_0xd7cf[6],controller[_0xd7cf[7]]);router[_0xd7cf[9]](_0xd7cf[3],controller[_0xd7cf[8]]);router[_0xd7cf[11]](_0xd7cf[6],controller[_0xd7cf[10]]);router[_0xd7cf[12]](_0xd7cf[6],controller[_0xd7cf[10]]);router[_0xd7cf[14]](_0xd7cf[6],controller[_0xd7cf[13]]);module[_0xd7cf[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./business_action.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index be8bf04..d480f8e 100644 (file)
@@ -1 +1,93 @@
-var _0xe060=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x42\x75\x73\x69\x6E\x65\x73\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0xe060[0];var _=require(_0xe060[1]);var BusinessCondition=require(_0xe060[3])[_0xe060[2]];exports[_0xe060[4]]=function(_0x7eaax3,_0x7eaax4){BusinessCondition[_0xe060[9]]()[_0xe060[8]](function(_0x7eaax6){return _0x7eaax4[_0xe060[7]](200)[_0xe060[6]](_0x7eaax6)})[_0xe060[5]](function(_0x7eaax5){return handleError(_0x7eaax4,_0x7eaax5)})};exports[_0xe060[10]]=function(_0x7eaax3,_0x7eaax4){BusinessCondition[_0xe060[14]](_0x7eaax3[_0xe060[13]][_0xe060[12]])[_0xe060[8]](function(_0x7eaax7){if(!_0x7eaax7){return _0x7eaax4[_0xe060[11]](404)};return _0x7eaax4[_0xe060[6]](_0x7eaax7);})[_0xe060[5]](function(_0x7eaax5){return handleError(_0x7eaax4,_0x7eaax5)})};exports[_0xe060[15]]=function(_0x7eaax3,_0x7eaax4){BusinessCondition[_0xe060[15]](_0x7eaax3[_0xe060[16]])[_0xe060[8]](function(_0x7eaax7){return _0x7eaax4[_0xe060[7]](201)[_0xe060[6]](_0x7eaax7)})[_0xe060[5]](function(_0x7eaax5){return handleError(_0x7eaax4,_0x7eaax5)})};exports[_0xe060[17]]=function(_0x7eaax3,_0x7eaax4){if(_0x7eaax3[_0xe060[16]][_0xe060[12]]){delete _0x7eaax3[_0xe060[16]][_0xe060[12]]};BusinessCondition[_0xe060[20]]({where:{id:_0x7eaax3[_0xe060[13]][_0xe060[12]]}})[_0xe060[8]](function(_0x7eaax7){if(!_0x7eaax7){return _0x7eaax4[_0xe060[11]](404)};var _0x7eaax8=_[_0xe060[18]](_0x7eaax7,_0x7eaax3[_0xe060[16]]);_0x7eaax8[_0xe060[19]]()[_0xe060[8]](function(){return _0x7eaax4[_0xe060[7]](200)[_0xe060[6]](_0x7eaax7)})[_0xe060[5]](function(_0x7eaax5){return handleError(_0x7eaax4,_0x7eaax5)});})[_0xe060[5]](function(_0x7eaax5){return handleError(_0x7eaax4,_0x7eaax5)});};exports[_0xe060[21]]=function(_0x7eaax3,_0x7eaax4){BusinessCondition[_0xe060[20]]({where:{id:_0x7eaax3[_0xe060[13]][_0xe060[12]]}})[_0xe060[8]](function(_0x7eaax7){if(!_0x7eaax7){return _0x7eaax4[_0xe060[11]](404)};_0x7eaax7[_0xe060[21]]()[_0xe060[8]](function(){return _0x7eaax4[_0xe060[11]](204)})[_0xe060[5]](function(_0x7eaax5){return handleError(_0x7eaax4,_0x7eaax5)});})[_0xe060[5]](function(_0x7eaax5){return handleError(_0x7eaax4,_0x7eaax5)})};function handleError(_0x7eaax4,_0x7eaax5){return _0x7eaax4[_0xe060[7]](500)[_0xe060[6]](_0x7eaax5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var BusinessCondition = require('../../models').BusinessCondition;
+
+// Get list of business_conditions
+exports.index = function(req, res) {
+  BusinessCondition
+  .findAll()
+  .then(function (business_conditions) {
+    return res.status(200).send(business_conditions);
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Get a single business_condition
+exports.show = function(req, res) {
+  BusinessCondition
+  .findById(req.params.id)
+  .then(function (business_condition) {
+    if(!business_condition) { return res.sendStatus(404); }
+    return res.send(business_condition);
+  })
+  .catch(function(err){
+    return handleError(res, err);
+  });
+};
+
+// Creates a new business_condition in the DB.
+exports.create = function(req, res) {
+  BusinessCondition
+  .create(req.body)
+  .then(function(business_condition) {
+    return res.status(201).send(business_condition);
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Updates an existing business_condition in the DB.
+exports.update = function(req, res) {
+  if(req.body.id) { delete req.body.id; }
+  BusinessCondition
+  .find({
+    where: {
+      id: req.params.id
+    }
+  })
+  .then(function (business_condition) {
+    if(!business_condition) { return res.sendStatus(404); }
+    var updated = _.merge(business_condition, req.body);
+    updated.save()
+    .then(function () {
+      return res.status(200).send(business_condition);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Deletes a business_condition from the DB.
+exports.destroy = function(req, res) {
+  BusinessCondition
+  .find({
+    where: {
+      id: req.params.id
+    }
+  })
+  .then(function (business_condition) {
+    if(!business_condition) { return res.sendStatus(404); }
+    business_condition.destroy()
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 96f8f85..c904ed1 100644 (file)
@@ -1 +1,24 @@
-var _0x8a91=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x42\x75\x73\x69\x6E\x65\x73\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8a91[0];var BusinessCondition=require(_0x8a91[2])[_0x8a91[1]];exports[_0x8a91[3]]=function(_0xf730x2){BusinessCondition[_0x8a91[4]](function(_0xf730x3){onSave(_0xf730x2,_0xf730x3)});BusinessCondition[_0x8a91[5]](function(_0xf730x3){onRemove(_0xf730x2,_0xf730x3)});};function onSave(_0xf730x2,_0xf730x3,_0xf730x5){_0xf730x2[_0x8a91[7]](_0x8a91[6],_0xf730x3)}function onRemove(_0xf730x2,_0xf730x3,_0xf730x5){_0xf730x2[_0x8a91[7]](_0x8a91[8],_0xf730x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var BusinessCondition = require('../../models').BusinessCondition;
+
+exports.register = function(socket) {
+  BusinessCondition.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  BusinessCondition.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('business_condition:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('business_condition:remove', doc);
+}
index 3a9a582..76ad269 100644 (file)
@@ -1 +1,20 @@
-var _0x439e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x439e[0];var should=require(_0x439e[1]);var app=require(_0x439e[2]);var request=require(_0x439e[3]);describe(_0x439e[4],function(){it(_0x439e[5],function(_0xa038x4){request(app)[_0x439e[13]](_0x439e[12])[_0x439e[11]](200)[_0x439e[11]](_0x439e[10],/json/)[_0x439e[9]](function(_0xa038x5,_0xa038x6){if(_0xa038x5){return _0xa038x4(_0xa038x5)};_0xa038x6[_0x439e[8]][_0x439e[1]][_0x439e[7]][_0x439e[6]](Array);_0xa038x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/business/conditions', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/business/conditions')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index cea6f9c..71a1e3f 100644 (file)
@@ -1 +1,15 @@
-var _0x8f77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8f77[0];var express=require(_0x8f77[1]);var controller=require(_0x8f77[2]);var router=express.Router();router[_0x8f77[5]](_0x8f77[3],controller[_0x8f77[4]]);router[_0x8f77[5]](_0x8f77[6],controller[_0x8f77[7]]);router[_0x8f77[9]](_0x8f77[3],controller[_0x8f77[8]]);router[_0x8f77[11]](_0x8f77[6],controller[_0x8f77[10]]);router[_0x8f77[12]](_0x8f77[6],controller[_0x8f77[10]]);router[_0x8f77[14]](_0x8f77[6],controller[_0x8f77[13]]);module[_0x8f77[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./business_condition.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 7f4ce9a..9c2085d 100644 (file)
@@ -1 +1,105 @@
-var _0x8926=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x6D\x61\x78","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x8926[0];var _=require(_0x8926[1]);var ChatApplication=require(_0x8926[3])[_0x8926[2]];exports[_0x8926[4]]=function(_0x44e2x3,_0x44e2x4){ChatApplication[_0x8926[11]]({where:_0x44e2x3[_0x8926[9]],order:_0x8926[10],include:[{all:true}]})[_0x8926[8]](function(_0x44e2x6){return _0x44e2x4[_0x8926[7]](200)[_0x8926[6]](_0x44e2x6)})[_0x8926[5]](function(_0x44e2x5){return handleError(_0x44e2x4,_0x44e2x5)})};exports[_0x8926[12]]=function(_0x44e2x3,_0x44e2x4){ChatApplication[_0x8926[16]](_0x44e2x3[_0x8926[15]][_0x8926[14]])[_0x8926[8]](function(_0x44e2x7){if(!_0x44e2x7){return _0x44e2x4[_0x8926[13]](404)};return _0x44e2x4[_0x8926[6]](_0x44e2x7);})[_0x8926[5]](function(_0x44e2x5){return handleError(_0x44e2x4,_0x44e2x5)})};exports[_0x8926[17]]=function(_0x44e2x3,_0x44e2x4,_0x44e2x8){ChatApplication[_0x8926[20]](_0x8926[10],{where:{ChatWebsiteId:_0x44e2x3[_0x8926[18]][_0x8926[19]]}})[_0x8926[8]](function(_0x44e2x9){_0x44e2x3[_0x8926[18]][_0x8926[10]]=_0x44e2x9?++_0x44e2x9:1;ChatApplication[_0x8926[17]](_0x44e2x3[_0x8926[18]])[_0x8926[8]](function(_0x44e2xa){return _0x44e2x4[_0x8926[7]](201)[_0x8926[6]](_0x44e2xa)})[_0x8926[5]](function(_0x44e2x5){return _0x44e2x8(_0x44e2x5)});})[_0x8926[5]](function(_0x44e2x5){_0x44e2x8(_0x44e2x5)})};exports[_0x8926[21]]=function(_0x44e2x3,_0x44e2x4){if(_0x44e2x3[_0x8926[18]][_0x8926[14]]){delete _0x44e2x3[_0x8926[18]][_0x8926[14]]};ChatApplication[_0x8926[16]](_0x44e2x3[_0x8926[15]][_0x8926[14]])[_0x8926[8]](function(_0x44e2x7){if(!_0x44e2x7){return _0x44e2x4[_0x8926[13]](404)};var _0x44e2xb=_[_0x8926[22]](_0x44e2x7,_0x44e2x3[_0x8926[18]]);_0x44e2xb[_0x8926[23]]()[_0x8926[8]](function(){return _0x44e2x4[_0x8926[7]](200)[_0x8926[6]](_0x44e2x7)})[_0x8926[5]](function(_0x44e2x5){return handleError(_0x44e2x4,_0x44e2x5)});})[_0x8926[5]](function(_0x44e2x5){return handleError(_0x44e2x4,_0x44e2x5)});};exports[_0x8926[24]]=function(_0x44e2x3,_0x44e2x4){ChatApplication[_0x8926[16]](_0x44e2x3[_0x8926[15]][_0x8926[14]])[_0x8926[8]](function(_0x44e2x7){if(!_0x44e2x7){return _0x44e2x4[_0x8926[13]](404)};_0x44e2x7[_0x8926[24]]()[_0x8926[8]](function(){return _0x44e2x4[_0x8926[13]](204)})[_0x8926[5]](function(_0x44e2x5){return handleError(_0x44e2x4,_0x44e2x5)});})[_0x8926[5]](function(_0x44e2x5){return handleError(_0x44e2x4,_0x44e2x5)})};function handleError(_0x44e2x4,_0x44e2x5){return _0x44e2x4[_0x8926[7]](500)[_0x8926[6]](_0x44e2x5)}
\ No newline at end of file
+'use strict';
+var _ = require('lodash');
+var ChatApplication = require('../../models').ChatApplication;
+// Get list of chat_applications
+exports.index = function(req, res) {
+  ChatApplication
+    .findAll({
+      where: req.query,
+      order: 'priority',
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(chat_applications) {
+      return res.status(200).send(chat_applications);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Get a single chat_application
+exports.show = function(req, res) {
+  ChatApplication
+    .findById(req.params.id)
+    .then(function(chat_application) {
+      if (!chat_application) {
+        return res.sendStatus(404);
+      }
+      return res.send(chat_application);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Creates a new chat_application in the DB.
+exports.create = function(req, res, next) {
+  ChatApplication.max('priority', {
+    where: {
+      ChatWebsiteId: req.body.ChatWebsiteId
+    }
+  }).then(function(max) {
+    // SET PRIORITY
+    req.body.priority = max ? ++max : 1;
+    ChatApplication
+      .create(req.body)
+      .then(function(mailApplication) {
+        return res.status(201).send(mailApplication);
+      })
+      .catch(function(err) {
+        return next(err);
+      });
+  }).catch(function(err) {
+    next(err);
+  });
+};
+// Updates an existing chat_application in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ChatApplication
+    .findById(req.params.id)
+    .then(function(chat_application) {
+      if (!chat_application) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(chat_application, req.body);
+      updated
+        .save()
+        .then(function() {
+          return res.status(200).send(chat_application);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Deletes a chat_application from the DB.
+exports.destroy = function(req, res) {
+  ChatApplication
+    .findById(req.params.id)
+    .then(function(chat_application) {
+      if (!chat_application) {
+        return res.sendStatus(404);
+      }
+      chat_application
+        .destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index a621cac..8776f3a 100644 (file)
@@ -1 +1,24 @@
-var _0xc0bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xc0bc[0];var ChatApplication=require(_0xc0bc[2])[_0xc0bc[1]];exports[_0xc0bc[3]]=function(_0x5b3ax2){ChatApplication[_0xc0bc[4]](function(_0x5b3ax3){onSave(_0x5b3ax2,_0x5b3ax3)});ChatApplication[_0xc0bc[5]](function(_0x5b3ax3){onRemove(_0x5b3ax2,_0x5b3ax3)});};function onSave(_0x5b3ax2,_0x5b3ax3,_0x5b3ax5){_0x5b3ax2[_0xc0bc[7]](_0xc0bc[6],_0x5b3ax3)}function onRemove(_0x5b3ax2,_0x5b3ax3,_0x5b3ax5){_0x5b3ax2[_0xc0bc[7]](_0xc0bc[8],_0x5b3ax3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ChatApplication = require('../../models').ChatApplication;
+
+exports.register = function(socket) {
+  ChatApplication.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  ChatApplication.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('chat_application:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('chat_application:remove', doc);
+}
index 29aaf93..215f533 100644 (file)
@@ -1 +1,20 @@
-var _0x2649=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x2649[0];var should=require(_0x2649[1]);var app=require(_0x2649[2]);var request=require(_0x2649[3]);describe(_0x2649[4],function(){it(_0x2649[5],function(_0x433ax4){request(app)[_0x2649[13]](_0x2649[12])[_0x2649[11]](200)[_0x2649[11]](_0x2649[10],/json/)[_0x2649[9]](function(_0x433ax5,_0x433ax6){if(_0x433ax5){return _0x433ax4(_0x433ax5)};_0x433ax6[_0x2649[8]][_0x2649[1]][_0x2649[7]][_0x2649[6]](Array);_0x433ax4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/applications', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/applications')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index e3269c5..d85a510 100644 (file)
@@ -1 +1,15 @@
-var _0xcd8f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcd8f[0];var express=require(_0xcd8f[1]);var controller=require(_0xcd8f[2]);var router=express.Router();router[_0xcd8f[5]](_0xcd8f[3],controller[_0xcd8f[4]]);router[_0xcd8f[5]](_0xcd8f[6],controller[_0xcd8f[7]]);router[_0xcd8f[9]](_0xcd8f[3],controller[_0xcd8f[8]]);router[_0xcd8f[11]](_0xcd8f[6],controller[_0xcd8f[10]]);router[_0xcd8f[12]](_0xcd8f[6],controller[_0xcd8f[10]]);router[_0xcd8f[14]](_0xcd8f[6],controller[_0xcd8f[13]]);module[_0xcd8f[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./chat_application.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 6ad4cf8..17edcbc 100644 (file)
@@ -1 +1,99 @@
-var _0xa2d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0xa2d9[0];var _=require(_0xa2d9[1]);var ChatEnquiry=require(_0xa2d9[3])[_0xa2d9[2]];var ChatVisitor=require(_0xa2d9[3])[_0xa2d9[4]];exports[_0xa2d9[5]]=function(_0xea52x4,_0xea52x5){ChatEnquiry[_0xa2d9[10]]()[_0xa2d9[9]](function(_0xea52x7){return _0xea52x5[_0xa2d9[8]](200)[_0xa2d9[7]](_0xea52x7)})[_0xa2d9[6]](function(_0xea52x6){return handleError(_0xea52x5,_0xea52x6)})};exports[_0xa2d9[11]]=function(_0xea52x4,_0xea52x5){ChatEnquiry[_0xa2d9[15]]({where:{id:_0xea52x4[_0xa2d9[14]][_0xa2d9[13]]},include:[ChatVisitor]})[_0xa2d9[9]](function(_0xea52x8){if(!_0xea52x8){return _0xea52x5[_0xa2d9[12]](404)};return _0xea52x5[_0xa2d9[7]](_0xea52x8);})[_0xa2d9[6]](function(_0xea52x6){return handleError(_0xea52x5,_0xea52x6)})};exports[_0xa2d9[16]]=function(_0xea52x4,_0xea52x5){ChatEnquiry[_0xa2d9[16]](_0xea52x4[_0xa2d9[17]])[_0xa2d9[9]](function(_0xea52x8){return _0xea52x5[_0xa2d9[8]](201)[_0xa2d9[7]](_0xea52x8)})[_0xa2d9[6]](function(_0xea52x6){return handleError(_0xea52x5,_0xea52x6)})};exports[_0xa2d9[18]]=function(_0xea52x4,_0xea52x5){if(_0xea52x4[_0xa2d9[17]][_0xa2d9[13]]){delete _0xea52x4[_0xa2d9[17]][_0xa2d9[13]]};ChatEnquiry[_0xa2d9[21]](_0xea52x4[_0xa2d9[14]][_0xa2d9[13]])[_0xa2d9[9]](function(_0xea52x8){if(!_0xea52x8){return _0xea52x5[_0xa2d9[12]](404)};var _0xea52x9=_[_0xa2d9[19]](_0xea52x8,_0xea52x4[_0xa2d9[17]]);_0xea52x9[_0xa2d9[20]]()[_0xa2d9[9]](function(){return _0xea52x5[_0xa2d9[8]](200)[_0xa2d9[7]](_0xea52x8)})[_0xa2d9[6]](function(_0xea52x6){return handleError(_0xea52x5,_0xea52x6)});})[_0xa2d9[6]](function(_0xea52x6){return handleError(_0xea52x5,_0xea52x6)});};exports[_0xa2d9[22]]=function(_0xea52x4,_0xea52x5){ChatEnquiry[_0xa2d9[21]](_0xea52x4[_0xa2d9[14]][_0xa2d9[13]])[_0xa2d9[9]](function(_0xea52x8){if(!_0xea52x8){return _0xea52x5[_0xa2d9[12]](404)};_0xea52x8[_0xa2d9[22]]()[_0xa2d9[9]](function(){return _0xea52x5[_0xa2d9[12]](204)})[_0xa2d9[6]](function(_0xea52x6){return handleError(_0xea52x5,_0xea52x6)});})[_0xa2d9[6]](function(_0xea52x6){return handleError(_0xea52x5,_0xea52x6)})};function handleError(_0xea52x5,_0xea52x6){return _0xea52x5[_0xa2d9[8]](500)[_0xa2d9[7]](_0xea52x6)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ChatEnquiry = require('../../models').ChatEnquiry;
+var ChatVisitor = require('../../models').ChatVisitor;
+
+// Get list of enquirys
+exports.index = function(req, res) {
+  ChatEnquiry
+    .findAll()
+    .then(function(enquirys) {
+      return res.status(200).send(enquirys);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single enquiry
+exports.show = function(req, res) {
+  ChatEnquiry
+    .findOne({
+      where: {
+        id: req.params.id
+      },
+      include: [ChatVisitor]
+    })
+    .then(function(enquiry) {
+      if (!enquiry) {
+        return res.sendStatus(404);
+      }
+      return res.send(enquiry);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new enquiry in the DB.
+exports.create = function(req, res) {
+  ChatEnquiry
+    .create(req.body)
+    .then(function(enquiry) {
+      return res.status(201).send(enquiry);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing enquiry in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ChatEnquiry
+    .findById(req.params.id)
+    .then(function(enquiry) {
+      if (!enquiry) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(enquiry, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(enquiry);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a enquiry from the DB.
+exports.destroy = function(req, res) {
+  ChatEnquiry
+    .findById(req.params.id)
+    .then(function(enquiry) {
+      if (!enquiry) {
+        return res.sendStatus(404);
+      }
+      enquiry.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 2198318..b7b69e1 100644 (file)
@@ -1 +1,24 @@
-var _0xfbfa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x6E\x71\x75\x69\x72\x79\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x65\x6E\x71\x75\x69\x72\x79\x3A\x72\x65\x6D\x6F\x76\x65"];_0xfbfa[0];var enquiry=require(_0xfbfa[2])[_0xfbfa[1]];exports[_0xfbfa[3]]=function(_0x59b2x2){enquiry[_0xfbfa[4]](function(_0x59b2x3){onSave(_0x59b2x2,_0x59b2x3)});enquiry[_0xfbfa[5]](function(_0x59b2x3){onRemove(_0x59b2x2,_0x59b2x3)});};function onSave(_0x59b2x2,_0x59b2x3,_0x59b2x5){_0x59b2x2[_0xfbfa[7]](_0xfbfa[6],_0x59b2x3)}function onRemove(_0x59b2x2,_0x59b2x3,_0x59b2x5){_0x59b2x2[_0xfbfa[7]](_0xfbfa[8],_0x59b2x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var enquiry = require('../../models').ChatEnquiry;
+
+exports.register = function(socket) {
+  enquiry.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  enquiry.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('enquiry:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('enquiry:remove', doc);
+}
index ca317b4..84a2544 100644 (file)
@@ -1 +1,15 @@
-var _0xd1c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x6E\x71\x75\x69\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd1c3[0];var express=require(_0xd1c3[1]);var controller=require(_0xd1c3[2]);var license=require(_0xd1c3[3]);var router=express.Router();router[_0xd1c3[8]](_0xd1c3[4],license[_0xd1c3[5]](),license[_0xd1c3[6]](),controller[_0xd1c3[7]]);router[_0xd1c3[8]](_0xd1c3[9],license[_0xd1c3[5]](),license[_0xd1c3[6]](),controller[_0xd1c3[10]]);router[_0xd1c3[12]](_0xd1c3[4],license[_0xd1c3[5]](),license[_0xd1c3[6]](),controller[_0xd1c3[11]]);router[_0xd1c3[14]](_0xd1c3[9],license[_0xd1c3[5]](),license[_0xd1c3[6]](),controller[_0xd1c3[13]]);router[_0xd1c3[15]](_0xd1c3[9],license[_0xd1c3[5]](),license[_0xd1c3[6]](),controller[_0xd1c3[13]]);router[_0xd1c3[17]](_0xd1c3[9],license[_0xd1c3[5]](),license[_0xd1c3[6]](),controller[_0xd1c3[16]]);module[_0xd1c3[18]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./enquiry.controller');
+var license = require('../../config/license/license.service');
+var router = express.Router();
+
+router.get('/', license.isValidDate(), license.hasChat(), controller.index);
+router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
+router.post('/', license.isValidDate(), license.hasChat(), controller.create);
+router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
+
+module.exports = router;
index 38037d9..958ca19 100644 (file)
@@ -1 +1,267 @@
-var _0x2d5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x64\x35","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x73\x65\x72","\x6D\x65\x72\x67\x65","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x2d5d[0];var _=require(_0x2d5d[1]);var md5=require(_0x2d5d[2]);var User=require(_0x2d5d[4])[_0x2d5d[3]];var ChatRoom=require(_0x2d5d[4])[_0x2d5d[5]];var ChatMessage=require(_0x2d5d[4])[_0x2d5d[6]];var ChatVisitor=require(_0x2d5d[4])[_0x2d5d[7]];exports[_0x2d5d[8]]=function(_0xda71x7,_0xda71x8){ChatMessage[_0x2d5d[13]]()[_0x2d5d[12]](function(_0xda71xa){return _0xda71x8[_0x2d5d[11]](200)[_0x2d5d[10]](_0xda71xa)})[_0x2d5d[9]](function(_0xda71x9){return handleError(_0xda71x8,_0xda71x9)})};exports[_0x2d5d[14]]=function(_0xda71x7,_0xda71x8){ChatMessage[_0x2d5d[18]](_0xda71x7[_0x2d5d[17]][_0x2d5d[16]])[_0x2d5d[12]](function(_0xda71xb){if(!_0xda71xb){return _0xda71x8[_0x2d5d[15]](404)};return _0xda71x8[_0x2d5d[10]](_0xda71xb);})[_0x2d5d[9]](function(_0xda71x9){return handleError(_0xda71x8,_0xda71x9)})};exports[_0x2d5d[19]]=function(_0xda71x7,_0xda71x8,_0xda71xc){ChatMessage[_0x2d5d[19]](_[_0x2d5d[22]](_0xda71x7[_0x2d5d[20]],{UserId:_0xda71x7[_0x2d5d[21]][_0x2d5d[16]]}))[_0x2d5d[12]](function(_0xda71xb){return _0xda71x8[_0x2d5d[11]](201)[_0x2d5d[10]](_0xda71xb)})[_0x2d5d[9]](function(_0xda71x9){return handleError(_0xda71x8,_0xda71x9)})};exports[_0x2d5d[23]]=function(_0xda71x7,_0xda71x8){if(_0xda71x7[_0x2d5d[20]][_0x2d5d[16]]){delete _0xda71x7[_0x2d5d[20]][_0x2d5d[16]]};return ChatMessage[_0x2d5d[18]](_0xda71x7[_0x2d5d[17]][_0x2d5d[16]])[_0x2d5d[12]](function(_0xda71xb){if(!_0xda71xb){return _0xda71x8[_0x2d5d[15]](404)};var _0xda71xd=_[_0x2d5d[22]](_0xda71xb,_0xda71x7[_0x2d5d[20]]);return _0xda71xd[_0x2d5d[24]]();})[_0x2d5d[12]](function(_0xda71xb){return _0xda71x8[_0x2d5d[11]](200)[_0x2d5d[10]](_0xda71xb)})[_0x2d5d[9]](function(_0xda71x9){return handleError(_0xda71x8,_0xda71x9)});};exports[_0x2d5d[25]]=function(_0xda71x7,_0xda71x8){ChatMessage[_0x2d5d[18]](_0xda71x7[_0x2d5d[17]][_0x2d5d[16]])[_0x2d5d[12]](function(_0xda71xb){if(!_0xda71xb){return _0xda71x8[_0x2d5d[15]](404)};_0xda71xb[_0x2d5d[25]]()[_0x2d5d[12]](function(){return _0xda71x8[_0x2d5d[15]](204)})[_0x2d5d[9]](function(_0xda71x9){return handleError(_0xda71x8,_0xda71x9)});})[_0x2d5d[9]](function(_0xda71x9){return handleError(_0xda71x8,_0xda71x9)})};function handleError(_0xda71x8,_0xda71x9){return _0xda71x8[_0x2d5d[11]](500)[_0x2d5d[10]](_0xda71x9)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var md5 = require('md5');
+
+var User = require('../../models').User;
+var ChatRoom = require('../../models').ChatRoom;
+var ChatMessage = require('../../models').ChatMessage;
+var ChatVisitor = require('../../models').ChatVisitor;
+
+// Get list of chat_messages
+exports.index = function (req, res) {
+  ChatMessage
+    .findAll()
+    .then(function (chat_messages) {
+      return res.status(200).send(chat_messages);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single chatMessage
+exports.show = function (req, res) {
+  ChatMessage
+    .findById(req.params.id)
+    .then(function (chatMessage) {
+      if (!chatMessage) {
+        return res.sendStatus(404);
+      }
+      return res.send(chatMessage);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new chatMessage in the DB.
+exports.create = function (req, res, next) {
+  // if (req.body.ChatRoomId && req.body.to) {
+  //   return handleError(res, new Error('Select ChatRoomId or to'));
+  // } else if (req.body.to) {
+  //
+  //   switch (req.body.type) {
+  //     case 'internal':
+  //       User
+  //         .findOne({
+  //           where: {
+  //             $or: [{
+  //               id: {
+  //                 $like: req.body.to
+  //               }
+  //             }, {
+  //               name: req.body.to
+  //             }]
+  //           }
+  //         })
+  //         .then(function(user) {
+  //           if (user) {
+  //
+  //             var users = _.sortBy([user, req.user], 'id');
+  //             var participants = {
+  //               users: {
+  //                 ids: [users[0].id, users[1].id]
+  //               },
+  //               visitors: {
+  //                 ids: []
+  //               }
+  //             };
+  //
+  //             var token = md5(JSON.stringify(participants)).toString(
+  //               'base64');
+  //
+  //             participants.users.fullnames = [users[0].fullname, users[1].fullname];
+  //             participants.visitors.fullnames = [];
+  //
+  //             ChatRoom
+  //               .findOrCreate({
+  //                 where: {
+  //                   token: token
+  //                 },
+  //                 defaults: {
+  //                   type: req.body.type,
+  //                   token: token,
+  //                   participants: JSON.stringify(participants)
+  //                 }
+  //               })
+  //               .spread(function(chatRoom, created) {
+  //
+  //                 chatRoom
+  //                   .updateAttributes({
+  //                     participants: JSON.stringify(participants)
+  //                   });
+  //
+  //                 ChatMessage
+  //                   .create({
+  //                     body: req.body.body,
+  //                     fullname: req.user.fullname,
+  //                     email: req.user.email,
+  //                     ChatRoomId: chatRoom.id,
+  //                     userId: req.user.id
+  //                   })
+  //                   .then(function(chatMessage) {
+  //                     return res.status(201).send(chatMessage);
+  //                   })
+  //                   .catch(function(err) {
+  //                     return handleError(res, err);
+  //                   });
+  //               });
+  //
+  //           } else {
+  //             return handleError(res, new Error('User not found'));
+  //           }
+  //         })
+  //         .catch(function(err) {
+  //           return handleError(res, err);
+  //         });
+  //
+  //       break;
+  //     case 'external':
+  //       ChatVisitor
+  //         .findOne({
+  //           where: {
+  //             $or: [{
+  //               id: {
+  //                 $like: req.body.to
+  //               }
+  //             }, {
+  //               fullname: req.body.to
+  //             }]
+  //           }
+  //         })
+  //         .then(function(chatVisitor) {
+  //           if (chatVisitor) {
+  //
+  //             var participants = {
+  //               users: {
+  //                 ids: [req.user.id]
+  //               },
+  //               visitors: {
+  //                 ids: [chatVisitor.id]
+  //               }
+  //             };
+  //
+  //             var token = md5(JSON.stringify(participants)).toString(
+  //               'base64');
+  //
+  //             participants.users.fullnames = [req.user.fullname];
+  //             participants.visitors.fullnames = [chatVisitor.fullname];
+  //
+  //             ChatRoom
+  //               .findOrCreate({
+  //                 where: {
+  //                   token: token
+  //                 },
+  //                 defaults: {
+  //                   type: req.body.type,
+  //                   token: token,
+  //                   participants: JSON.stringify(participants)
+  //                 }
+  //               })
+  //               .spread(function(chatRoom, created) {
+  //
+  //                 chatRoom
+  //                   .updateAttributes({
+  //                     participants: JSON.stringify(participants)
+  //                   });
+  //
+  //                 ChatMessage
+  //                   .create({
+  //                     body: req.body.body,
+  //                     fullname: req.user.fullname,
+  //                     email: req.user.email,
+  //                     ChatRoomId: chatRoom.id,
+  //                     userId: req.user.id
+  //                   })
+  //                   .then(function(chatMessage) {
+  //                     return res.status(201).send(chatMessage);
+  //                   })
+  //                   .catch(function(err) {
+  //                     return handleError(res, err);
+  //                   });
+  //               });
+  //           }
+  //         });
+  //       break;
+  //     default:
+  //       return handleError(res, new Error('Room type unsupported'));
+  //   }
+  //
+  //
+  // } else if (req.body.ChatRoomId) {
+  //
+  //   ChatMessage
+  //     .create(_.merge({
+  //       userId: req.user.id,
+  //       email: req.user.email,
+  //       fullname: req.user.fullname
+  //     }, req.body))
+  //     .then(function(chatMessage) {
+  //       return res.status(201).send(chatMessage);
+  //     })
+  //     .catch(function(err) {
+  //       return handleError(res, err);
+  //     });
+  // } else {
+  //   return handleError(res, new Error('Select ChatRoomId or to'));
+  // }
+  ChatMessage
+    .create(_.merge(req.body, {
+      UserId: req.user.id
+    }))
+    .then(function (chatMessage) {
+      return res.status(201).send(chatMessage);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing chatMessage in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+
+  return ChatMessage
+    .findById(req.params.id)
+    .then(function (chatMessage) {
+      if (!chatMessage) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(chatMessage, req.body);
+      return updated.save();
+    })
+    .then(function (chatMessage) {
+      return res.status(200).send(chatMessage);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a chatMessage from the DB.
+exports.destroy = function (req, res) {
+  ChatMessage
+    .findById(req.params.id)
+    .then(function (chatMessage) {
+      if (!chatMessage) {
+        return res.sendStatus(404);
+      }
+      chatMessage.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 62de54a..dccab23 100644 (file)
@@ -1 +1,59 @@
-var _0x4dbf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x49\x64","\x66\x69\x6E\x64","\x75\x73\x65\x72\x49\x64","\x69\x64","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x73\x61\x76\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x65\x72\x67\x65","\x65\x6D\x69\x74","\x66\x6F\x72\x45\x61\x63\x68","\x73\x70\x72\x65\x61\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x67\x65\x74\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x74\x68\x65\x6E","\x67\x65\x74\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4dbf[0];var chat_message=require(_0x4dbf[2])[_0x4dbf[1]];var _=require(_0x4dbf[3]);exports[_0x4dbf[4]]=function(_0x3bf4x3){chat_message[_0x4dbf[5]](function(_0x3bf4x4){onSave(_0x3bf4x3,_0x3bf4x4)});chat_message[_0x4dbf[6]](function(_0x3bf4x4){onSave(_0x3bf4x3,_0x3bf4x4)});chat_message[_0x4dbf[7]](function(_0x3bf4x4){onRemove(_0x3bf4x3,_0x3bf4x4)});};function onSave(_0x3bf4x3,_0x3bf4x4,_0x3bf4x6){return _0x3bf4x4[_0x4dbf[28]]()[_0x4dbf[27]](function(_0x3bf4xc){return [_0x3bf4xc[_0x4dbf[25]]({attributes:[_0x4dbf[13],_0x4dbf[20],_0x4dbf[21],_0x4dbf[22],_0x4dbf[23],_0x4dbf[24]],raw:true}),_0x3bf4xc[_0x4dbf[26]]({attributes:[_0x4dbf[13],_0x4dbf[21],_0x4dbf[22]],raw:true})]})[_0x4dbf[19]](function(_0x3bf4x8,_0x3bf4x9){var _0x3bf4xa=_[_0x4dbf[11]](_0x3bf4x8,{id:_0x3bf4x4[_0x4dbf[10]]});_0x3bf4x8[_0x4dbf[18]](function(_0x3bf4xb){if(_0x3bf4x3[_0x4dbf[12]]==_0x3bf4xb[_0x4dbf[13]]&&(_0x3bf4xa||_0x3bf4x9)){_0x3bf4x3[_0x4dbf[17]](_0x4dbf[14],_[_0x4dbf[16]](_0x3bf4x4[_0x4dbf[15]],{User:_0x3bf4xa,ChatVisitor:_0x3bf4x9}))}});})[_0x4dbf[9]](function(_0x3bf4x7){console[_0x4dbf[8]](_0x3bf4x7)})}function onRemove(_0x3bf4x3,_0x3bf4x4,_0x3bf4x6){_0x3bf4x3[_0x4dbf[17]](_0x4dbf[29],_0x3bf4x4)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var chat_message = require('../../models').ChatMessage;
+var _ = require('lodash');
+
+exports.register = function (socket) {
+  chat_message.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  chat_message.afterUpdate(function (doc) {
+    onSave(socket, doc);
+  });
+  chat_message.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  return doc
+    .getChatRoom()
+    .then(function (chatRoom) {
+      return [chatRoom
+        .getUsers({
+          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal'],
+          raw: true
+        }), chatRoom
+        .getChatVisitor({
+          attributes: ['id', 'fullname', 'email'],
+          raw: true
+        })
+      ];
+    })
+    .spread(function (users, visitor) {
+      var sender = _.find(users, {
+        id: doc.UserId
+      });
+
+      users.forEach(function (user) {
+        // SOCKET FILTER
+        if (socket.userId == user.id && (sender || visitor)) {
+          socket.emit('chat_message:save', _.merge(doc.dataValues, {
+            User: sender, // TODO modify to sender
+            ChatVisitor: visitor // TODO modify to visitor
+          }));
+        }
+      });
+    })
+    .catch(function (err) {
+      console.error(err);
+    });
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('chat_message:remove', doc);
+}
index c175c55..f646838 100644 (file)
@@ -1 +1,20 @@
-var _0xc78c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74"];_0xc78c[0];var should=require(_0xc78c[1]);var app=require(_0xc78c[2]);var request=require(_0xc78c[3]);describe(_0xc78c[4],function(){it(_0xc78c[5],function(_0x5dd6x4){request(app)[_0xc78c[13]](_0xc78c[12])[_0xc78c[11]](200)[_0xc78c[11]](_0xc78c[10],/json/)[_0xc78c[9]](function(_0x5dd6x5,_0x5dd6x6){if(_0x5dd6x5){return _0x5dd6x4(_0x5dd6x5)};_0x5dd6x6[_0xc78c[8]][_0xc78c[1]][_0xc78c[7]][_0xc78c[6]](Array);_0x5dd6x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/messages', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/messages')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 55b2633..efcb4e1 100644 (file)
@@ -1 +1,15 @@
-var _0x6432=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6432[0];var express=require(_0x6432[1]);var controller=require(_0x6432[2]);var auth=require(_0x6432[3]);var license=require(_0x6432[4]);var router=express.Router();router[_0x6432[9]](_0x6432[5],license[_0x6432[6]](),license[_0x6432[7]](),controller[_0x6432[8]]);router[_0x6432[9]](_0x6432[10],license[_0x6432[6]](),license[_0x6432[7]](),controller[_0x6432[11]]);router[_0x6432[14]](_0x6432[5],license[_0x6432[6]](),license[_0x6432[7]](),auth[_0x6432[12]](),controller[_0x6432[13]]);router[_0x6432[16]](_0x6432[10],license[_0x6432[6]](),license[_0x6432[7]](),controller[_0x6432[15]]);router[_0x6432[18]](_0x6432[10],license[_0x6432[6]](),license[_0x6432[7]](),controller[_0x6432[17]]);module[_0x6432[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./chat_message.controller');
+var auth = require('../../auth/auth.service');
+var license = require('../../config/license/license.service');
+var router = express.Router();
+
+router.get('/', license.isValidDate(), license.hasChat(), controller.index);
+router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
+router.post('/', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.create);
+router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
+
+module.exports = router;
index 9252846..a2eaab3 100644 (file)
@@ -1 +1,226 @@
-var _0xd64e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x73\x74\x72\x61\x74\x65\x67\x79","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6D\x65","\x69\x64","\x75\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x55\x73\x65\x72\x73","\x4E\x6F\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x6E\x6F\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xd64e[0];var _=require(_0xd64e[1]);var util=require(_0xd64e[2]);var ChatQueue=require(_0xd64e[4])[_0xd64e[3]];var UserHasChatQueue=require(_0xd64e[4])[_0xd64e[5]];exports[_0xd64e[6]]=function(_0x5fc5x5,_0x5fc5x6){var _0x5fc5x7=[_0xd64e[7],_0xd64e[8],_0xd64e[9],_0xd64e[10]];var _0x5fc5x8=_0x5fc5x5[_0xd64e[12]][_0xd64e[11]]?parseInt(_0x5fc5x5[_0xd64e[12]][_0xd64e[11]],10):100;var _0x5fc5x9=_0x5fc5x5[_0xd64e[12]][_0xd64e[13]]?parseInt(_0x5fc5x5[_0xd64e[12]][_0xd64e[13]],10):0;var _0x5fc5xa={where:{},limit:_0x5fc5x8,offset:_0x5fc5x9*_0x5fc5x8,include:[{all:true}]};_[_0xd64e[27]](_0x5fc5x5[_0xd64e[12]],function(_0x5fc5xb,_0x5fc5xc){switch(_0x5fc5xc){case _0xd64e[11]:;case _0xd64e[13]:break ;;case _0xd64e[16]:_0x5fc5xa[_0xd64e[14]]=util[_0xd64e[19]](_0xd64e[15],_0x5fc5x5[_0xd64e[12]][_0xd64e[16]],_0x5fc5x5[_0xd64e[12]][_0xd64e[17]]||_0xd64e[18])||null;break ;;case _0xd64e[17]:break ;;case _0xd64e[25]:_0x5fc5xa[_0xd64e[21]][_0xd64e[20]]=[];_0x5fc5x7[_0xd64e[24]](function(_0x5fc5xd){var _0x5fc5xe={};_0x5fc5xe[_0x5fc5xd]={$like:_0xd64e[22]+_0x5fc5xb+_0xd64e[22]};_0x5fc5xa[_0xd64e[21]][_0xd64e[20]][_0xd64e[23]](_0x5fc5xe);});break ;;default:_0x5fc5xa[_0xd64e[21]][_0x5fc5xc]={$like:{}};_0x5fc5xa[_0xd64e[21]][_0x5fc5xc][_0xd64e[26]]=_0xd64e[22]+_0x5fc5xb+_0xd64e[22];;}});ChatQueue[_0xd64e[41]](_0x5fc5xa)[_0xd64e[40]](function(_0x5fc5x10){var _0x5fc5x11=Math[_0xd64e[30]](_0x5fc5x10[_0xd64e[29]]/_0x5fc5x8);var _0x5fc5x12=_0x5fc5x11>(_0x5fc5xa[_0xd64e[31]]+1)?util[_0xd64e[19]](_0xd64e[32],_0x5fc5x5[_0xd64e[33]],_0x5fc5x5[_0xd64e[35]][_0xd64e[34]],_0x5fc5x5[_0xd64e[36]],_0x5fc5x9+1):null;var _0x5fc5x13=_0x5fc5x9>0?util[_0xd64e[19]](_0xd64e[32],_0x5fc5x5[_0xd64e[33]],_0x5fc5x5[_0xd64e[35]][_0xd64e[34]],_0x5fc5x5[_0xd64e[36]],_0x5fc5x9-1):null;_0x5fc5x6[_0xd64e[39]](200)[_0xd64e[38]]({count:_0x5fc5x10[_0xd64e[29]],rows:_0x5fc5x10[_0xd64e[37]],next_page:_0x5fc5x12,previous_page:_0x5fc5x13,total_pages:_0x5fc5x11});})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)});};exports[_0xd64e[42]]=function(_0x5fc5x5,_0x5fc5x6,_0x5fc5x14){UserHasChatQueue[_0xd64e[45]]({where:{UserId:_0x5fc5x5[_0xd64e[44]][_0xd64e[43]]}})[_0xd64e[40]](function(_0x5fc5x15){return _0x5fc5x6[_0xd64e[39]](200)[_0xd64e[38]](_0x5fc5x15)})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)})};exports[_0xd64e[46]]=function(_0x5fc5x5,_0x5fc5x6){ChatQueue[_0xd64e[49]](_0x5fc5x5[_0xd64e[48]][_0xd64e[43]])[_0xd64e[40]](function(_0x5fc5x16){if(!_0x5fc5x16){return _0x5fc5x6[_0xd64e[47]](404)};return _0x5fc5x6[_0xd64e[38]](_0x5fc5x16);})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)})};exports[_0xd64e[50]]=function(_0x5fc5x5,_0x5fc5x6){ChatQueue[_0xd64e[50]](_0x5fc5x5[_0xd64e[51]])[_0xd64e[40]](function(_0x5fc5x16){return _0x5fc5x6[_0xd64e[39]](201)[_0xd64e[38]](_0x5fc5x16)})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)})};exports[_0xd64e[52]]=function(_0x5fc5x5,_0x5fc5x6){if(_0x5fc5x5[_0xd64e[51]][_0xd64e[43]]){delete _0x5fc5x5[_0xd64e[51]][_0xd64e[43]]};ChatQueue[_0xd64e[49]](_0x5fc5x5[_0xd64e[48]][_0xd64e[43]])[_0xd64e[40]](function(_0x5fc5x16){if(!_0x5fc5x16){return _0x5fc5x6[_0xd64e[47]](404)};var _0x5fc5x17=_[_0xd64e[53]](_0x5fc5x16,_0x5fc5x5[_0xd64e[51]]);_0x5fc5x17[_0xd64e[54]]()[_0xd64e[40]](function(){return _0x5fc5x6[_0xd64e[39]](200)[_0xd64e[38]](_0x5fc5x16)})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)});})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)});};exports[_0xd64e[55]]=function(_0x5fc5x5,_0x5fc5x6,_0x5fc5x14){return ChatQueue[_0xd64e[49]](_0x5fc5x5[_0xd64e[48]][_0xd64e[43]])[_0xd64e[40]](function(_0x5fc5x18){if(_0x5fc5x18){return _0x5fc5x18[_0xd64e[57]](_0x5fc5x5[_0xd64e[51]][_0xd64e[56]],{individualHooks:true})}else {throw  new Error(_0xd64e[58])}})[_0xd64e[40]](function(){return _0x5fc5x6[_0xd64e[47]](200)})[_0xd64e[28]](function(_0x5fc5xf){return _0x5fc5x14(_0x5fc5xf)})};exports[_0xd64e[59]]=function(_0x5fc5x5,_0x5fc5x6,_0x5fc5x14){return ChatQueue[_0xd64e[49]](_0x5fc5x5[_0xd64e[48]][_0xd64e[43]])[_0xd64e[40]](function(_0x5fc5x18){if(_0x5fc5x18){return _0x5fc5x18[_0xd64e[60]](_0x5fc5x5[_0xd64e[51]][_0xd64e[56]],{individualHooks:true})}else {throw  new Error(_0xd64e[61])}})[_0xd64e[40]](function(){return _0x5fc5x6[_0xd64e[47]](200)})[_0xd64e[28]](function(_0x5fc5xf){return _0x5fc5x14(_0x5fc5xf)})};exports[_0xd64e[62]]=function(_0x5fc5x5,_0x5fc5x6){ChatQueue[_0xd64e[49]](_0x5fc5x5[_0xd64e[48]][_0xd64e[43]])[_0xd64e[40]](function(_0x5fc5x16){if(!_0x5fc5x16){return _0x5fc5x6[_0xd64e[47]](404)};_0x5fc5x16[_0xd64e[62]]()[_0xd64e[40]](function(){return _0x5fc5x6[_0xd64e[47]](204)})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)});})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)})};exports[_0xd64e[63]]=function(_0x5fc5x5,_0x5fc5x6){ChatQueue[_0xd64e[62]]({where:{id:_0x5fc5x5[_0xd64e[12]][_0xd64e[43]]},individualHooks:true})[_0xd64e[40]](function(){return _0x5fc5x6[_0xd64e[47]](204)})[_0xd64e[28]](function(_0x5fc5xf){return handleError(_0x5fc5x6,_0x5fc5xf)})};function handleError(_0x5fc5x6,_0x5fc5xf){return _0x5fc5x6[_0xd64e[39]](500)[_0xd64e[38]](_0x5fc5xf)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var ChatQueue = require('../../models').ChatQueue;
+var UserHasChatQueue = require('../../models').UserHasChatQueue;
+
+// Get list of mailQueues
+exports.index = function (req, res) {
+
+  var attributes = ['description', 'name', 'timeout', 'strategy'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page,
+    include: [{
+      all: true
+    }]
+  };
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  ChatQueue
+    .findAndCountAll(query)
+    .then(function (result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of my chat_rooms
+exports.me = function (req, res, next) {
+  UserHasChatQueue
+    .findAll({
+      where: {
+        UserId: req.user.id
+      }
+    })
+    .then(function (userHasChatQueues) {
+      return res.status(200).send(userHasChatQueues);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single chat_queue
+exports.show = function (req, res) {
+  ChatQueue
+    .findById(req.params.id)
+    .then(function (chat_queue) {
+      if (!chat_queue) {
+        return res.sendStatus(404);
+      }
+      return res.send(chat_queue);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new chat_queue in the DB.
+exports.create = function (req, res) {
+  ChatQueue
+    .create(req.body)
+    .then(function (chat_queue) {
+      return res.status(201).send(chat_queue);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing chat_queue in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ChatQueue
+    .findById(req.params.id)
+    .then(function (chat_queue) {
+      if (!chat_queue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(chat_queue, req.body);
+      updated.save()
+        .then(function () {
+          return res.status(200).send(chat_queue);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing user_has_chatQueue in the DB.
+exports.addAgents = function (req, res, next) {
+  return ChatQueue
+    .findById(req.params.id)
+    .then(function (chatQueue) {
+      if (chatQueue) {
+        return chatQueue
+          .addUsers(req.body.agents, {
+            individualHooks: true
+          });
+      } else {
+        throw new Error('No mail queue found');
+      }
+    })
+    .then(function () {
+      return res.sendStatus(200);
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+exports.removeAgents = function (req, res, next) {
+  return ChatQueue
+    .findById(req.params.id)
+    .then(function (chatQueue) {
+      if (chatQueue) {
+        return chatQueue
+          .removeUsers(req.body.agents, {
+            individualHooks: true
+          });
+      } else {
+        throw new Error('no mail queue found');
+      }
+    })
+    .then(function () {
+      return res.sendStatus(200);
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+// Deletes a chat_queue from the DB.
+exports.destroy = function (req, res) {
+  ChatQueue
+    .findById(req.params.id)
+    .then(function (chat_queue) {
+      if (!chat_queue) {
+        return res.sendStatus(404);
+      }
+      chat_queue.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function (req, res) {
+  ChatQueue
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function () {
+      return res.sendStatus(204);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index deaa311..2e7f5d4 100644 (file)
@@ -1 +1,24 @@
-var _0xa3dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xa3dc[0];var chatQueue=require(_0xa3dc[2])[_0xa3dc[1]];exports[_0xa3dc[3]]=function(_0xbd0bx2){chatQueue[_0xa3dc[4]](function(_0xbd0bx3){onSave(_0xbd0bx2,_0xbd0bx3)});chatQueue[_0xa3dc[5]](function(_0xbd0bx3){onRemove(_0xbd0bx2,_0xbd0bx3)});};function onSave(_0xbd0bx2,_0xbd0bx3,_0xbd0bx5){_0xbd0bx2[_0xa3dc[7]](_0xa3dc[6],_0xbd0bx3)}function onRemove(_0xbd0bx2,_0xbd0bx3,_0xbd0bx5){_0xbd0bx2[_0xa3dc[7]](_0xa3dc[8],_0xbd0bx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var chatQueue = require('../../models').ChatQueue;
+
+exports.register = function (socket) {
+  chatQueue.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  chatQueue.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('chat_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('chat_queue:remove', doc);
+}
index 58941fb..172be01 100644 (file)
@@ -1 +1,20 @@
-var _0x833d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x833d[0];var should=require(_0x833d[1]);var app=require(_0x833d[2]);var request=require(_0x833d[3]);describe(_0x833d[4],function(){it(_0x833d[5],function(_0x63ddx4){request(app)[_0x833d[13]](_0x833d[12])[_0x833d[11]](200)[_0x833d[11]](_0x833d[10],/json/)[_0x833d[9]](function(_0x63ddx5,_0x63ddx6){if(_0x63ddx5){return _0x63ddx4(_0x63ddx5)};_0x63ddx6[_0x833d[8]][_0x833d[1]][_0x833d[7]][_0x833d[6]](Array);_0x63ddx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 528fed3..4ff1956 100644 (file)
@@ -1 +1,20 @@
-var _0x5f95=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x6D\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x6D\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x5f95[0];var express=require(_0x5f95[1]);var controller=require(_0x5f95[2]);var auth=require(_0x5f95[3]);var license=require(_0x5f95[4]);var router=express.Router();router[_0x5f95[9]](_0x5f95[5],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[8]]);router[_0x5f95[9]](_0x5f95[10],license[_0x5f95[6]](),license[_0x5f95[7]](),auth[_0x5f95[11]](),controller[_0x5f95[12]]);router[_0x5f95[9]](_0x5f95[13],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[14]]);router[_0x5f95[16]](_0x5f95[5],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[15]]);router[_0x5f95[16]](_0x5f95[17],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[18]]);router[_0x5f95[20]](_0x5f95[13],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[19]]);router[_0x5f95[20]](_0x5f95[17],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[21]]);router[_0x5f95[22]](_0x5f95[13],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[19]]);router[_0x5f95[24]](_0x5f95[5],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[23]]);router[_0x5f95[24]](_0x5f95[13],license[_0x5f95[6]](),license[_0x5f95[7]](),controller[_0x5f95[25]]);module[_0x5f95[26]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./chat_queue.controller');
+var auth = require('../../auth/auth.service');
+var license = require('../../config/license/license.service');
+var router = express.Router();
+
+router.get('/', license.isValidDate(), license.hasChat(), controller.index);
+router.get('/me', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.me);
+router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
+router.post('/', license.isValidDate(), license.hasChat(), controller.create);
+router.post('/:id/agents', license.isValidDate(), license.hasChat(), controller.addAgents);
+router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.put('/:id/agents', license.isValidDate(), license.hasChat(), controller.removeAgents);
+router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.delete('/', license.isValidDate(), license.hasChat(), controller.bulkDestroy);
+router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
+
+module.exports = router;
index f8c0799..2b76e17 100644 (file)
@@ -1 +1,462 @@
-var _0x68fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x64\x35","\x6D\x6F\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x65","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x67\x65\x74\x43\x68\x61\x74\x52\x6F\x6F\x6D\x73","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77","\x70\x61\x72\x61\x6D\x73","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x55\x73\x65\x72\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x65\x72\x67\x65","\x67\x65\x74\x55\x73\x65\x72\x73","\x75\x73\x65\x72\x73","\x71\x75\x65\x72\x79","\x73\x65\x74\x55\x73\x65\x72\x73","\x73\x70\x72\x65\x61\x64","\x62\x61\x73\x65\x36\x34","\x73\x6F\x72\x74","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6F\x70\x65\x6E","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x54\x79\x70\x65","\x74\x79\x70\x65","\x67\x65\x74\x52\x6F\x6F\x6D\x47\x72\x6F\x75\x70\x73","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79"];_0x68fc[0];var _=require(_0x68fc[1]);var md5=require(_0x68fc[2]);var moment=require(_0x68fc[3]);var User=require(_0x68fc[5])[_0x68fc[4]];var ChatRoom=require(_0x68fc[5])[_0x68fc[6]];var ChatMessage=require(_0x68fc[5])[_0x68fc[7]];var ChatVisitor=require(_0x68fc[5])[_0x68fc[8]];var UserHasChatRoom=require(_0x68fc[5])[_0x68fc[9]];exports[_0x68fc[10]]=function(_0xdcf7x9,_0xdcf7xa){return ChatRoom[_0x68fc[21]]({include:[{model:User,attributes:[_0x68fc[15],_0x68fc[16],_0x68fc[17],_0x68fc[18],_0x68fc[19],_0x68fc[20]]},{model:ChatMessage},{model:ChatVisitor}]})[_0x68fc[14]](function(_0xdcf7xc){return _0xdcf7xa[_0x68fc[13]](200)[_0x68fc[12]](_0xdcf7xc)})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})};exports[_0x68fc[22]]=function(_0xdcf7x9,_0xdcf7xa){return User[_0x68fc[26]](_0xdcf7x9[_0x68fc[25]][_0x68fc[15]])[_0x68fc[14]](function(_0xdcf7xe){return _0xdcf7xe[_0x68fc[24]]({include:[{model:ChatVisitor,attributes:[_0x68fc[15],_0x68fc[17],_0x68fc[18]]},{model:User,attributes:[_0x68fc[15],_0x68fc[16],_0x68fc[17],_0x68fc[18],_0x68fc[19],_0x68fc[20]]}]})})[_0x68fc[14]](function(_0xdcf7xd){if(!_0xdcf7xd){return _0xdcf7xa[_0x68fc[23]](404)};return _0xdcf7xa[_0x68fc[12]](_0xdcf7xd);})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})};exports[_0x68fc[27]]=function(_0xdcf7x9,_0xdcf7xa){return ChatRoom[_0x68fc[26]](_0xdcf7x9[_0x68fc[28]][_0x68fc[15]],{include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0x68fc[15],_0x68fc[18],_0x68fc[17]]},{model:User,attributes:[_0x68fc[15],_0x68fc[18],_0x68fc[16],_0x68fc[17]]}]},{model:User,attributes:[_0x68fc[15],_0x68fc[18],_0x68fc[16],_0x68fc[17]]}]})[_0x68fc[14]](function(_0xdcf7xf){if(!_0xdcf7xf){return _0xdcf7xa[_0x68fc[23]](404)};return _0xdcf7xa[_0x68fc[12]](_0xdcf7xf);})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})};exports[_0x68fc[29]]=function(_0xdcf7x9,_0xdcf7xa,_0xdcf7x10){var _0xdcf7x11;return ChatRoom[_0x68fc[41]]({where:{token:md5(JSON[_0x68fc[39]](_0xdcf7x9[_0x68fc[34]][_0x68fc[33]][_0x68fc[38]]())).toString(_0x68fc[37])},defaults:{type:_0x68fc[20],token:md5(JSON[_0x68fc[39]](_0xdcf7x9[_0x68fc[34]][_0x68fc[33]][_0x68fc[38]]())).toString(_0x68fc[37]),status:_0x68fc[40]},include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0x68fc[15],_0x68fc[18],_0x68fc[17]]},{model:User,attributes:[_0x68fc[15],_0x68fc[16],_0x68fc[17],_0x68fc[18],_0x68fc[19],_0x68fc[20]]}]},{model:User,attributes:[_0x68fc[15],_0x68fc[16],_0x68fc[17],_0x68fc[18],_0x68fc[19],_0x68fc[20]]}]})[_0x68fc[36]](function(_0xdcf7xf,_0xdcf7x13){_0xdcf7x11=_0xdcf7xf;if(_0xdcf7x13){return _0xdcf7x11[_0x68fc[35]](_0xdcf7x9[_0x68fc[34]][_0x68fc[33]])}else {return };})[_0x68fc[14]](function(){return _0xdcf7x11[_0x68fc[32]]()})[_0x68fc[14]](function(_0xdcf7x12){return _0xdcf7xa[_0x68fc[13]](200)[_0x68fc[12]](_[_0x68fc[31]](_0xdcf7x11[_0x68fc[30]],{Users:_0xdcf7x12}))})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)});};exports[_0x68fc[42]]=function(_0xdcf7x9,_0xdcf7xa){User[_0x68fc[26]](_0xdcf7x9[_0x68fc[25]][_0x68fc[15]])[_0x68fc[14]](function(_0xdcf7xe){_0xdcf7xe[_0x68fc[24]]({where:{type:_0xdcf7x9[_0x68fc[28]][_0x68fc[43]]},include:[{model:ChatVisitor,attributes:[_0x68fc[15],_0x68fc[17],_0x68fc[18]]}]})[_0x68fc[14]](function(_0xdcf7xd){if(!_0xdcf7xd){return _0xdcf7xa[_0x68fc[23]](404)};return _0xdcf7xa[_0x68fc[12]](_0xdcf7xd);})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})};exports[_0x68fc[44]]=function(_0xdcf7x9,_0xdcf7xa){User[_0x68fc[26]](_0xdcf7x9[_0x68fc[25]][_0x68fc[15]])[_0x68fc[14]](function(_0xdcf7xe){_0xdcf7xe[_0x68fc[24]]({include:[{model:ChatVisitor,attributes:[_0x68fc[15],_0x68fc[17],_0x68fc[18]]},{model:User,attributes:[_0x68fc[15],_0x68fc[16],_0x68fc[17],_0x68fc[18],_0x68fc[19],_0x68fc[20]]}]})[_0x68fc[14]](function(_0xdcf7xd){if(!_0xdcf7xd){return _0xdcf7xa[_0x68fc[23]](404)};return _0xdcf7xa[_0x68fc[12]](_0xdcf7xd);})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})};exports[_0x68fc[45]]=function(_0xdcf7x9,_0xdcf7xa){};exports[_0x68fc[46]]=function(_0xdcf7x9,_0xdcf7xa){if(_0xdcf7x9[_0x68fc[47]][_0x68fc[15]]){delete _0xdcf7x9[_0x68fc[47]][_0x68fc[15]]};ChatRoom[_0x68fc[26]](_0xdcf7x9[_0x68fc[28]][_0x68fc[15]])[_0x68fc[14]](function(_0xdcf7xf){if(!_0xdcf7xf){return _0xdcf7xa[_0x68fc[23]](404)};var _0xdcf7x14=_[_0x68fc[31]](_0xdcf7xf,_0xdcf7x9[_0x68fc[47]]);_0xdcf7x14[_0x68fc[48]]()[_0x68fc[14]](function(){return _0xdcf7xa[_0x68fc[13]](200)[_0x68fc[12]](_0xdcf7xf)})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)});})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)});};exports[_0x68fc[49]]=function(_0xdcf7x9,_0xdcf7xa){var _0xdcf7x11;if(_0xdcf7x9[_0x68fc[47]][_0x68fc[15]]){delete _0xdcf7x9[_0x68fc[47]][_0x68fc[15]]};return ChatRoom[_0x68fc[26]](_0xdcf7x9[_0x68fc[28]][_0x68fc[15]])[_0x68fc[14]](function(_0xdcf7xf){if(!_0xdcf7xf||!_0xdcf7x9[_0x68fc[47]][_0x68fc[33]]){return _0xdcf7xa[_0x68fc[23]](404)};return _0xdcf7xf;})[_0x68fc[14]](function(_0xdcf7xf){return _0xdcf7xf[_0x68fc[46]]({token:md5(JSON[_0x68fc[39]](_0xdcf7x9[_0x68fc[47]][_0x68fc[33]][_0x68fc[38]]())).toString(_0x68fc[37])})})[_0x68fc[14]](function(_0xdcf7xf){_0xdcf7x11=_0xdcf7xf;return _0xdcf7xf[_0x68fc[35]](_0xdcf7x9[_0x68fc[47]][_0x68fc[33]][_0x68fc[38]](),{individualHooks:true});})[_0x68fc[14]](function(){return _0xdcf7x11[_0x68fc[32]]()})[_0x68fc[14]](function(_0xdcf7x12){return _0xdcf7xa[_0x68fc[13]](200)[_0x68fc[12]](_[_0x68fc[31]](_0xdcf7x11[_0x68fc[30]],{Users:_0xdcf7x12,ChatMessages:[]}))})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)});};exports[_0x68fc[50]]=function(_0xdcf7x9,_0xdcf7xa){ChatRoom[_0x68fc[26]](_0xdcf7x9[_0x68fc[28]][_0x68fc[15]])[_0x68fc[14]](function(_0xdcf7xf){if(!_0xdcf7xf){return _0xdcf7xa[_0x68fc[23]](404)};_0xdcf7xf[_0x68fc[50]]()[_0x68fc[14]](function(){return _0xdcf7xa[_0x68fc[23]](204)})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)});})[_0x68fc[11]](function(_0xdcf7xb){return handleError(_0xdcf7xa,_0xdcf7xb)})};function handleError(_0xdcf7xa,_0xdcf7xb){return _0xdcf7xa[_0x68fc[13]](500)[_0x68fc[12]](_0xdcf7xb)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var md5 = require('md5');
+var moment = require('moment');
+
+var User = require('../../models').User;
+var ChatRoom = require('../../models').ChatRoom;
+var ChatMessage = require('../../models').ChatMessage;
+var ChatVisitor = require('../../models').ChatVisitor;
+var UserHasChatRoom = require('../../models').UserHasChatRoom;
+
+
+// Get list of chat_rooms
+exports.index = function (req, res) {
+  return ChatRoom
+    .findAll({
+      include: [{
+        model: User,
+        attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
+      }, {
+        model: ChatMessage
+      }, {
+        model: ChatVisitor
+      }]
+    })
+    .then(function (chat_rooms) {
+      return res.status(200).send(chat_rooms);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of my chat_rooms
+exports.me = function (req, res) {
+  return User
+    .findById(req.user.id)
+    .then(function (user) {
+      return user
+        .getChatRooms({
+          include: [{
+            model: ChatVisitor,
+            attributes: ['id', 'fullname', 'email']
+          }, {
+            model: User,
+            attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
+          }]
+        });
+    })
+    .then(function (chatRooms) {
+      if (!chatRooms) {
+        return res.sendStatus(404);
+      }
+      return res.send(chatRooms);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single chatRoom
+exports.show = function (req, res) {
+  return ChatRoom
+    .findById(req.params.id, {
+      include: [{
+        model: ChatMessage,
+        include: [{
+          model: ChatVisitor,
+          attributes: ['id', 'email', 'fullname']
+        }, {
+          model: User,
+          attributes: ['id', 'email', 'name', 'fullname']
+        }]
+      }, {
+        model: User,
+        attributes: ['id', 'email', 'name', 'fullname']
+      }]
+    })
+    .then(function (chatRoom) {
+      if (!chatRoom) {
+        return res.sendStatus(404);
+      }
+      return res.send(chatRoom);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single chatRoom by users
+exports.getRoomByUsers = function (req, res, next) {
+
+  var _chatRoom;
+
+  return ChatRoom
+    .findOrCreate({
+      where: {
+        token: md5(JSON.stringify(req.query.users.sort())).toString('base64')
+      },
+      defaults: {
+        type: 'internal',
+        token: md5(JSON.stringify(req.query.users.sort())).toString('base64'),
+        status: 'open'
+      },
+      include: [{
+        model: ChatMessage,
+        include: [{
+          model: ChatVisitor,
+          attributes: ['id', 'email', 'fullname']
+        }, {
+          model: User,
+          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
+        }]
+      }, {
+        model: User,
+        attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
+      }]
+    })
+    .spread(function (chatRoom, created) {
+      _chatRoom = chatRoom;
+      // _chatRoom.dataValues.ChatMessages = [];
+      if (created) {
+        return _chatRoom
+          .setUsers(req.query.users);
+      } else {
+        return;
+      }
+    })
+    .then(function () {
+      return _chatRoom
+        .getUsers();
+    })
+    .then(function (users) {
+      return res.status(200).send(_.merge(_chatRoom.dataValues, {
+        Users: users
+      }));
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single chatRoom
+exports.getRoomByType = function (req, res) {
+  User
+    .findById(req.user.id)
+    .then(function (user) {
+      user
+        .getChatRooms({
+          where: {
+            type: req.params.type
+          },
+          include: [{
+            model: ChatVisitor,
+            attributes: ['id', 'fullname', 'email']
+          }]
+        })
+        .then(function (chatRooms) {
+          if (!chatRooms) {
+            return res.sendStatus(404);
+          }
+          return res.send(chatRooms);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single chatRoom
+exports.getRoomGroups = function (req, res) {
+  User
+    .findById(req.user.id)
+    .then(function (user) {
+      user
+        .getChatRooms({
+          include: [{
+            model: ChatVisitor,
+            attributes: ['id', 'fullname', 'email']
+          }, {
+            model: User,
+            attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
+          }]
+        })
+        .then(function (chatRooms) {
+          if (!chatRooms) {
+            return res.sendStatus(404);
+          }
+          return res.send(chatRooms);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new chatRoom in the DB.
+exports.create = function (req, res) {
+  // if (req.body.to) {
+  //
+  //   var token;
+  //   var participants = {
+  //     users: {
+  //       ids: []
+  //     },
+  //     visitor: {}
+  //   };
+  //
+  //   switch (req.body.type) {
+  //     case 'internal':
+  //
+  //       if (!req.body.to.isArray) {
+  //         req.body.to = [parseInt(req.body.to, 10)];
+  //       }
+  //
+  //       participants.users.ids = req.body.to;
+  //
+  //       if (!_.contains(req.body.to, req.user.id)) {
+  //         participants.users.ids.push(req.user.id);
+  //       }
+  //
+  //       participants.users.ids.sort();
+  //
+  //       token = md5(JSON.stringify(participants)).toString(
+  //         'base64');
+  //
+  //       participants.users.fullnames = [];
+  //
+  //       User
+  //         .findAll({
+  //           where: {
+  //             id: {
+  //               $in: req.body.to
+  //             }
+  //           },
+  //           attributes: ['id', 'fullname']
+  //         })
+  //         .then(function(users) {
+  //
+  //           _.sortBy(users, 'id').forEach(function(item, index) {
+  //             participants.users.fullnames.push(item.fullname);
+  //           });
+  //
+  //           ChatRoom
+  //             .findOrCreate({
+  //               where: {
+  //                 token: token
+  //               },
+  //               defaults: _.merge({
+  //                 token: token,
+  //                 participants: JSON.stringify(participants)
+  //               }, req.body),
+  //               include: [{
+  //                 model: ChatMessage
+  //               }]
+  //             })
+  //             .spread(function(chatRoom, created) {
+  //
+  //               if (created) {
+  //                 chatRoom
+  //                   .setUsers(participants.users.ids)
+  //                   .then(function() {
+  //                     return res.status(201).send(chatRoom);
+  //                   })
+  //                   .catch(function(err) {
+  //                     return handleError(res, err);
+  //                   });
+  //               } else {
+  //                 return res.status(201).send(chatRoom);
+  //               }
+  //
+  //             })
+  //             .catch(function(err) {
+  //               return handleError(res, err);
+  //             });
+  //         })
+  //         .catch(function(err) {
+  //           return handleError(res, err);
+  //         });
+  //
+  //       break;
+  //     case 'external':
+  //
+  //       participants.visitor.id = req.body.to;
+  //       participants.users.ids.push(req.user.id);
+  //       participants.users.ids.sort();
+  //
+  //       token = md5(JSON.stringify(participants)).toString('base64');
+  //
+  //       participants.users.fullnames = [req.user.fullname];
+  //
+  //       ChatVisitor
+  //         .findById(req.body.to, {
+  //           attributes: ['id', 'fullname', 'email', 'referer']
+  //         })
+  //         .then(function(chatVisitor) {
+  //           participants.visitor.fullname = chatVisitor.fullname;
+  //           participants.visitor.referer = chatVisitor.referer;
+  //           participants.visitor.email = chatVisitor.email;
+  //
+  //           ChatRoom
+  //             .findOrCreate({
+  //               where: {
+  //                 token: token
+  //               },
+  //               defaults: _.merge({
+  //                 token: token,
+  //                 participants: JSON.stringify(participants)
+  //               }, req.body),
+  //               include: [{
+  //                 model: ChatMessage
+  //               }, {
+  //                 model: ChatVisitor
+  //               }, {
+  //                 model: User,
+  //               }]
+  //             })
+  //             .spread(function(chatRoom, created) {
+  //               if (created) {
+  //
+  //                 chatRoom
+  //                   .setUsers(participants.users.ids, {
+  //                     individualHooks: true
+  //                   })
+  //                   .then(function() {
+  //                     chatRoom
+  //                       .setChatVisitor(participants.visitor.id)
+  //                       .then(function() {
+  //                         return res.status(201).send(chatRoom);
+  //                       })
+  //                       .catch(function(err) {
+  //                         return handleError(res, err);
+  //                       });
+  //                   })
+  //                   .catch(function(err) {
+  //                     return handleError(res, err);
+  //                   });
+  //               } else {
+  //                 return res.status(201).send(chatRoom);
+  //               }
+  //
+  //             })
+  //             .catch(function(err) {
+  //               return handleError(res, err);
+  //             });
+  //         })
+  //         .catch(function(err) {
+  //           return handleError(res, err);
+  //         });
+  //
+  //       break;
+  //     default:
+  //   }
+  // } else {
+  //   return handleError(res, new Error('field "to" omitted'));
+  // }
+};
+
+// Updates an existing chatRoom in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+
+  ChatRoom
+    .findById(req.params.id)
+    .then(function (chatRoom) {
+      if (!chatRoom) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(chatRoom, req.body);
+      updated
+        .save()
+        .then(function () {
+          return res.status(200).send(chatRoom);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing chatRoom in the DB.
+exports.updateUsers = function (req, res) {
+  var _chatRoom;
+
+  if (req.body.id) {
+    delete req.body.id;
+  }
+
+  return ChatRoom
+    .findById(req.params.id)
+    .then(function (chatRoom) {
+      if (!chatRoom || !req.body.users) {
+        return res.sendStatus(404);
+      }
+      return chatRoom;
+    })
+    .then(function (chatRoom) {
+      return chatRoom
+        .update({
+          token: md5(JSON.stringify(req.body.users.sort())).toString('base64')
+        });
+    })
+    .then(function (chatRoom) {
+      _chatRoom = chatRoom;
+      return chatRoom
+        .setUsers(req.body.users.sort(), {
+          individualHooks: true
+        });
+    })
+    .then(function () {
+      return _chatRoom
+        .getUsers();
+    })
+    .then(function (users) {
+      return res.status(200).send(_.merge(_chatRoom.dataValues, {
+        Users: users,
+        ChatMessages: []
+      }));
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a chatRoom from the DB.
+exports.destroy = function (req, res) {
+  ChatRoom
+    .findById(req.params.id)
+    .then(function (chatRoom) {
+      if (!chatRoom) {
+        return res.sendStatus(404);
+      }
+
+      chatRoom
+        .destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index cdd5e2a..2f75a98 100644 (file)
@@ -1 +1,30 @@
-var _0xad6c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0xad6c[0];var User=require(_0xad6c[2])[_0xad6c[1]];var ChatRoom=require(_0xad6c[2])[_0xad6c[3]];var ChatMessage=require(_0xad6c[2])[_0xad6c[4]];var ChatVisitor=require(_0xad6c[2])[_0xad6c[5]];exports[_0xad6c[6]]=function(_0x2aafx5){ChatRoom[_0xad6c[7]](function(_0x2aafx6){onSave(_0x2aafx5,_0x2aafx6)});ChatRoom[_0xad6c[8]](function(_0x2aafx6){onSave(_0x2aafx5,_0x2aafx6)});ChatRoom[_0xad6c[9]](function(_0x2aafx6){onRemove(_0x2aafx5,_0x2aafx6)});};function onSave(_0x2aafx5,_0x2aafx6,_0x2aafx8){_0x2aafx5[_0xad6c[11]](_0xad6c[10],_0x2aafx6)}function onRemove(_0x2aafx5,_0x2aafx6,_0x2aafx8){_0x2aafx5[_0xad6c[11]](_0xad6c[12],_0x2aafx6)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var User = require('../../models').User;
+var ChatRoom = require('../../models').ChatRoom;
+var ChatMessage = require('../../models').ChatMessage;
+var ChatVisitor = require('../../models').ChatVisitor;
+
+exports.register = function (socket) {
+  ChatRoom.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  ChatRoom.afterUpdate(function (doc) {
+    onSave(socket, doc);
+  });
+  ChatRoom.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('chat_room:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('chat_room:remove', doc);
+}
index bfe74d7..c76c928 100644 (file)
@@ -1 +1,20 @@
-var _0x2184=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x6F\x6F\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x6F\x6F\x6D\x73","\x67\x65\x74"];_0x2184[0];var should=require(_0x2184[1]);var app=require(_0x2184[2]);var request=require(_0x2184[3]);describe(_0x2184[4],function(){it(_0x2184[5],function(_0xf473x4){request(app)[_0x2184[13]](_0x2184[12])[_0x2184[11]](200)[_0x2184[11]](_0x2184[10],/json/)[_0x2184[9]](function(_0xf473x5,_0xf473x6){if(_0xf473x5){return _0xf473x4(_0xf473x5)};_0xf473x6[_0x2184[8]][_0x2184[1]][_0x2184[7]][_0x2184[6]](Array);_0xf473x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/rooms', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/rooms')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 0f2360e..e8850b7 100644 (file)
@@ -1 +1,21 @@
-var _0x73d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x6D\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x6D\x65","\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x55\x73\x65\x72\x73","\x2F\x67\x72\x6F\x75\x70\x73","\x67\x65\x74\x52\x6F\x6F\x6D\x47\x72\x6F\x75\x70\x73","\x2F\x74\x79\x70\x65\x2F\x3A\x74\x79\x70\x65","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x54\x79\x70\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x55\x73\x65\x72\x73","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x73d7[0];var express=require(_0x73d7[1]);var controller=require(_0x73d7[2]);var auth=require(_0x73d7[3]);var license=require(_0x73d7[4]);var router=express.Router();router[_0x73d7[9]](_0x73d7[5],license[_0x73d7[6]](),license[_0x73d7[7]](),controller[_0x73d7[8]]);router[_0x73d7[9]](_0x73d7[10],license[_0x73d7[6]](),license[_0x73d7[7]](),auth[_0x73d7[11]](),controller[_0x73d7[12]]);router[_0x73d7[9]](_0x73d7[13],license[_0x73d7[6]](),license[_0x73d7[7]](),auth[_0x73d7[11]](),controller[_0x73d7[14]]);router[_0x73d7[9]](_0x73d7[15],license[_0x73d7[6]](),license[_0x73d7[7]](),auth[_0x73d7[11]](),controller[_0x73d7[16]]);router[_0x73d7[9]](_0x73d7[17],license[_0x73d7[6]](),license[_0x73d7[7]](),auth[_0x73d7[11]](),controller[_0x73d7[18]]);router[_0x73d7[9]](_0x73d7[19],license[_0x73d7[6]](),license[_0x73d7[7]](),controller[_0x73d7[20]]);router[_0x73d7[22]](_0x73d7[5],license[_0x73d7[6]](),license[_0x73d7[7]](),auth[_0x73d7[11]](),controller[_0x73d7[21]]);router[_0x73d7[24]](_0x73d7[19],license[_0x73d7[6]](),license[_0x73d7[7]](),controller[_0x73d7[23]]);router[_0x73d7[24]](_0x73d7[25],license[_0x73d7[6]](),license[_0x73d7[7]](),controller[_0x73d7[26]]);router[_0x73d7[27]](_0x73d7[19],license[_0x73d7[6]](),license[_0x73d7[7]](),controller[_0x73d7[23]]);router[_0x73d7[29]](_0x73d7[19],license[_0x73d7[6]](),license[_0x73d7[7]](),controller[_0x73d7[28]]);module[_0x73d7[30]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./chat_room.controller');
+var auth = require('../../auth/auth.service');
+var license = require('../../config/license/license.service');
+var router = express.Router();
+
+router.get('/', license.isValidDate(), license.hasChat(), controller.index);
+router.get('/me', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.me);
+router.get('/users', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.getRoomByUsers);
+router.get('/groups', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.getRoomGroups);
+router.get('/type/:type', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.getRoomByType);
+router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
+router.post('/', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.create);
+router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.put('/:id/users', license.isValidDate(), license.hasChat(), controller.updateUsers);
+router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
+
+module.exports = router;
index e6caaaf..4297f32 100644 (file)
@@ -1 +1,94 @@
-var _0x98bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x98bd[0];var _=require(_0x98bd[1]);var ChatVisitor=require(_0x98bd[3])[_0x98bd[2]];exports[_0x98bd[4]]=function(_0xa49ax3,_0xa49ax4){ChatVisitor[_0x98bd[9]]()[_0x98bd[8]](function(_0xa49ax6){return _0xa49ax4[_0x98bd[7]](200)[_0x98bd[6]](_0xa49ax6)})[_0x98bd[5]](function(_0xa49ax5){return handleError(_0xa49ax4,_0xa49ax5)})};exports[_0x98bd[10]]=function(_0xa49ax3,_0xa49ax4){ChatVisitor[_0x98bd[14]](_0xa49ax3[_0x98bd[13]][_0x98bd[12]])[_0x98bd[8]](function(_0xa49ax7){if(!_0xa49ax7){return _0xa49ax4[_0x98bd[11]](404)};return _0xa49ax4[_0x98bd[6]](_0xa49ax7);})[_0x98bd[5]](function(_0xa49ax5){return handleError(_0xa49ax4,_0xa49ax5)})};exports[_0x98bd[15]]=function(_0xa49ax3,_0xa49ax4){ChatVisitor[_0x98bd[15]](_0xa49ax3[_0x98bd[16]])[_0x98bd[8]](function(_0xa49ax7){return _0xa49ax4[_0x98bd[7]](201)[_0x98bd[6]](_0xa49ax7)})[_0x98bd[5]](function(_0xa49ax5){return handleError(_0xa49ax4,_0xa49ax5)})};exports[_0x98bd[17]]=function(_0xa49ax3,_0xa49ax4){if(_0xa49ax3[_0x98bd[16]][_0x98bd[12]]){delete _0xa49ax3[_0x98bd[16]][_0x98bd[12]]};ChatVisitor[_0x98bd[14]](_0xa49ax3[_0x98bd[13]][_0x98bd[12]])[_0x98bd[8]](function(_0xa49ax7){if(!_0xa49ax7){return _0xa49ax4[_0x98bd[11]](404)};var _0xa49ax8=_[_0x98bd[18]](_0xa49ax7,_0xa49ax3[_0x98bd[16]]);_0xa49ax8[_0x98bd[19]]()[_0x98bd[8]](function(){return _0xa49ax4[_0x98bd[7]](200)[_0x98bd[6]](_0xa49ax7)})[_0x98bd[5]](function(_0xa49ax5){return handleError(_0xa49ax4,_0xa49ax5)});})[_0x98bd[5]](function(_0xa49ax5){return handleError(_0xa49ax4,_0xa49ax5)});};exports[_0x98bd[20]]=function(_0xa49ax3,_0xa49ax4){ChatVisitor[_0x98bd[14]](_0xa49ax3[_0x98bd[13]][_0x98bd[12]])[_0x98bd[8]](function(_0xa49ax7){if(!_0xa49ax7){return _0xa49ax4[_0x98bd[11]](404)};_0xa49ax7[_0x98bd[20]]()[_0x98bd[8]](function(){return _0xa49ax4[_0x98bd[11]](204)})[_0x98bd[5]](function(_0xa49ax5){return handleError(_0xa49ax4,_0xa49ax5)});})[_0x98bd[5]](function(_0xa49ax5){return handleError(_0xa49ax4,_0xa49ax5)})};function handleError(_0xa49ax4,_0xa49ax5){return _0xa49ax4[_0x98bd[7]](500)[_0x98bd[6]](_0xa49ax5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ChatVisitor = require('../../models').ChatVisitor;
+
+// Get list of chat_visitors
+exports.index = function(req, res) {
+  ChatVisitor
+    .findAll()
+    .then(function(chat_visitors) {
+      return res.status(200).send(chat_visitors);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single chat_visitor
+exports.show = function(req, res) {
+  ChatVisitor
+    .findById(req.params.id)
+    .then(function(chat_visitor) {
+      if (!chat_visitor) {
+        return res.sendStatus(404);
+      }
+      return res.send(chat_visitor);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new chat_visitor in the DB.
+exports.create = function(req, res) {
+
+  ChatVisitor
+    .create(req.body)
+    .then(function(chat_visitor) {
+      return res.status(201).send(chat_visitor);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing chat_visitor in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ChatVisitor
+    .findById(req.params.id)
+    .then(function(chat_visitor) {
+      if (!chat_visitor) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(chat_visitor, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(chat_visitor);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a chat_visitor from the DB.
+exports.destroy = function(req, res) {
+  ChatVisitor
+    .findById(req.params.id)
+    .then(function(chat_visitor) {
+      if (!chat_visitor) {
+        return res.sendStatus(404);
+      }
+      chat_visitor.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 5b549bc..a283bfc 100644 (file)
@@ -1 +1,27 @@
-var _0x9c41=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9c41[0];var chat_visitor=require(_0x9c41[2])[_0x9c41[1]];exports[_0x9c41[3]]=function(_0xe753x2){chat_visitor[_0x9c41[4]](function(_0xe753x3){onSave(_0xe753x2,_0xe753x3)});chat_visitor[_0x9c41[5]](function(_0xe753x3){onSave(_0xe753x2,_0xe753x3)});chat_visitor[_0x9c41[6]](function(_0xe753x3){onRemove(_0xe753x2,_0xe753x3)});};function onSave(_0xe753x2,_0xe753x3,_0xe753x5){_0xe753x2[_0x9c41[8]](_0x9c41[7],_0xe753x3)}function onRemove(_0xe753x2,_0xe753x3,_0xe753x5){_0xe753x2[_0x9c41[8]](_0x9c41[9],_0xe753x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var chat_visitor = require('../../models').ChatVisitor;
+
+exports.register = function(socket) {
+  chat_visitor.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  chat_visitor.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  chat_visitor.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('chat_visitor:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('chat_visitor:remove', doc);
+}
index cf11fac..ff6cda5 100644 (file)
@@ -1 +1,20 @@
-var _0x3d23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x67\x65\x74"];_0x3d23[0];var should=require(_0x3d23[1]);var app=require(_0x3d23[2]);var request=require(_0x3d23[3]);describe(_0x3d23[4],function(){it(_0x3d23[5],function(_0x65f0x4){request(app)[_0x3d23[13]](_0x3d23[12])[_0x3d23[11]](200)[_0x3d23[11]](_0x3d23[10],/json/)[_0x3d23[9]](function(_0x65f0x5,_0x65f0x6){if(_0x65f0x5){return _0x65f0x4(_0x65f0x5)};_0x65f0x6[_0x3d23[8]][_0x3d23[1]][_0x3d23[7]][_0x3d23[6]](Array);_0x65f0x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/visitors', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/visitors')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 5a7959c..c58a917 100644 (file)
@@ -1 +1,15 @@
-var _0x8ecb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8ecb[0];var express=require(_0x8ecb[1]);var controller=require(_0x8ecb[2]);var license=require(_0x8ecb[3]);var router=express.Router();router[_0x8ecb[8]](_0x8ecb[4],license[_0x8ecb[5]](),license[_0x8ecb[6]](),controller[_0x8ecb[7]]);router[_0x8ecb[8]](_0x8ecb[9],license[_0x8ecb[5]](),license[_0x8ecb[6]](),controller[_0x8ecb[10]]);router[_0x8ecb[12]](_0x8ecb[4],license[_0x8ecb[5]](),license[_0x8ecb[6]](),controller[_0x8ecb[11]]);router[_0x8ecb[14]](_0x8ecb[9],license[_0x8ecb[5]](),license[_0x8ecb[6]](),controller[_0x8ecb[13]]);router[_0x8ecb[15]](_0x8ecb[9],license[_0x8ecb[5]](),license[_0x8ecb[6]](),controller[_0x8ecb[13]]);router[_0x8ecb[17]](_0x8ecb[9],license[_0x8ecb[5]](),license[_0x8ecb[6]](),controller[_0x8ecb[16]]);module[_0x8ecb[18]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./chat_visitor.controller');
+var license = require('../../config/license/license.service');
+var router = express.Router();
+
+router.get('/', license.isValidDate(), license.hasChat(), controller.index);
+router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
+router.post('/', license.isValidDate(), license.hasChat(), controller.create);
+router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
+router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
+
+module.exports = router;
index 4121601..b9339a4 100644 (file)
@@ -1 +1,269 @@
-var _0xfc05=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x6D\x75\x73\x74\x61\x63\x68\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x73\x6E\x69\x70\x70\x65\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x78\x63\x68\x61\x74\x74\x79","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x72\x65\x6D\x6F\x74\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x53\x6E\x69\x70\x70\x65\x74\x43\x6F\x64\x65","\x72\x65\x6E\x64\x65\x72","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x73\x6F\x72\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xfc05[0];var _=require(_0xfc05[1]);var util=require(_0xfc05[2]);var async=require(_0xfc05[3]);var Mustache=require(_0xfc05[4]);var sequelize=require(_0xfc05[6])[_0xfc05[5]];var ChatWebsite=require(_0xfc05[6])[_0xfc05[7]];var ChatApplication=require(_0xfc05[6])[_0xfc05[8]];var snippet=require(_0xfc05[10])[_0xfc05[9]];exports[_0xfc05[11]]=function(_0xe925x9,_0xe925xa,_0xe925xb){var _0xe925xc=[_0xfc05[12],_0xfc05[13],_0xfc05[14],_0xfc05[15]];var _0xe925xd=_0xe925x9[_0xfc05[17]][_0xfc05[16]]?parseInt(_0xe925x9[_0xfc05[17]][_0xfc05[16]],10):100;var _0xe925xe=_0xe925x9[_0xfc05[17]][_0xfc05[18]]?parseInt(_0xe925x9[_0xfc05[17]][_0xfc05[18]],10):0;var _0xe925xf={where:{},limit:_0xe925xd,offset:_0xe925xe*_0xe925xd};_[_0xfc05[32]](_0xe925x9[_0xfc05[17]],function(_0xe925x10,_0xe925x11){switch(_0xe925x11){case _0xfc05[16]:;case _0xfc05[18]:break ;;case _0xfc05[21]:_0xe925xf[_0xfc05[19]]=util[_0xfc05[24]](_0xfc05[20],_0xe925x9[_0xfc05[17]][_0xfc05[21]],_0xe925x9[_0xfc05[17]][_0xfc05[22]]||_0xfc05[23])||null;break ;;case _0xfc05[22]:break ;;case _0xfc05[30]:_0xe925xf[_0xfc05[26]][_0xfc05[25]]=[];_0xe925xc[_0xfc05[29]](function(_0xe925x12){var _0xe925x13={};_0xe925x13[_0xe925x12]={$like:_0xfc05[27]+_0xe925x10+_0xfc05[27]};_0xe925xf[_0xfc05[26]][_0xfc05[25]][_0xfc05[28]](_0xe925x13);});break ;;default:_0xe925xf[_0xfc05[26]][_0xe925x11]={$like:{}};_0xe925xf[_0xfc05[26]][_0xe925x11][_0xfc05[31]]=_0xfc05[27]+_0xe925x10+_0xfc05[27];;}});ChatWebsite[_0xfc05[47]](_0xe925xf)[_0xfc05[46]](function(_0xe925x15){var _0xe925x16=Math[_0xfc05[38]](_0xe925x15[_0xfc05[37]]/_0xe925xd);var _0xe925x17=_0xe925x16>(_0xe925xf[_0xfc05[39]]+1)?util[_0xfc05[24]](_0xfc05[40],_0xe925x9[_0xfc05[41]],_0xe925x9[_0xfc05[43]][_0xfc05[42]],_0xe925x9[_0xfc05[44]],_0xe925xe+1):null;var _0xe925x18=_0xe925xe>0?util[_0xfc05[24]](_0xfc05[40],_0xe925x9[_0xfc05[41]],_0xe925x9[_0xfc05[43]][_0xfc05[42]],_0xe925x9[_0xfc05[44]],_0xe925xe-1):null;_0xe925xa[_0xfc05[35]](200)[_0xfc05[34]]({count:_0xe925x15[_0xfc05[37]],rows:_0xe925x15[_0xfc05[45]],next_page:_0xe925x17,previous_page:_0xe925x18,total_pages:_0xe925x16});})[_0xfc05[36]](function(_0xe925x14){_0xe925xa[_0xfc05[35]](500)[_0xfc05[34]]({error:_0xfc05[33]})});};exports[_0xfc05[48]]=function(_0xe925x9,_0xe925xa){ChatWebsite[_0xfc05[52]](_0xe925x9[_0xfc05[51]][_0xfc05[50]])[_0xfc05[46]](function(_0xe925x19){if(!_0xe925x19){return _0xe925xa[_0xfc05[49]](404)};return _0xe925xa[_0xfc05[34]](_0xe925x19);})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)})};exports[_0xfc05[53]]=function(_0xe925x9,_0xe925xa){ChatWebsite[_0xfc05[52]](_0xe925x9[_0xfc05[51]][_0xfc05[50]])[_0xfc05[46]](function(_0xe925x19){var _0xe925x1a={remote:_0xe925x19[_0xfc05[15]],websiteId:_0xe925x9[_0xfc05[51]][_0xfc05[50]]};var _0xe925x1b=Mustache[_0xfc05[54]](snippet,_0xe925x1a);return _0xe925xa[_0xfc05[34]](_0xe925x1b);})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)})};exports[_0xfc05[55]]=function(_0xe925x9,_0xe925xa){ChatWebsite[_0xfc05[55]](_0xe925x9[_0xfc05[56]])[_0xfc05[46]](function(_0xe925x19){return _0xe925xa[_0xfc05[35]](201)[_0xfc05[34]](_0xe925x19)})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)})};exports[_0xfc05[57]]=function(_0xe925x9,_0xe925xa){if(_0xe925x9[_0xfc05[56]][_0xfc05[50]]){delete _0xe925x9[_0xfc05[56]][_0xfc05[50]]};return ChatWebsite[_0xfc05[52]](_0xe925x9[_0xfc05[51]][_0xfc05[50]])[_0xfc05[46]](function(_0xe925x19){if(!_0xe925x19){return _0xe925xa[_0xfc05[49]](404)};return _0xe925x19[_0xfc05[57]](_0xe925x9[_0xfc05[56]])[_0xfc05[46]](function(_0xe925x19){return _0xe925xa[_0xfc05[35]](200)[_0xfc05[34]](_0xe925x19)});})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)});};exports[_0xfc05[58]]=function(_0xe925x9,_0xe925xa){ChatWebsite[_0xfc05[59]]({where:{id:_0xe925x9[_0xfc05[51]][_0xfc05[50]]}})[_0xfc05[46]](function(_0xe925x19){if(!_0xe925x19){return _0xe925xa[_0xfc05[49]](404)};_0xe925x19[_0xfc05[58]]()[_0xfc05[46]](function(){return _0xe925xa[_0xfc05[49]](204)})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)});})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)})};exports[_0xfc05[60]]=function(_0xe925x9,_0xe925xa,_0xe925xb){ChatApplication[_0xfc05[66]]({where:{id:_0xe925x9[_0xfc05[56]][_0xfc05[61]]}})[_0xfc05[46]](function(_0xe925x1c){var _0xe925x1d=_0xe925x1c;async[_0xfc05[67]]([function(_0xe925x1e){ChatApplication[_0xfc05[58]]({where:{id:_0xe925x9[_0xfc05[56]][_0xfc05[61]]}})[_0xfc05[46]](function(){_0xe925x1e()})[_0xfc05[36]](function(_0xe925x14){_0xe925x1e(_0xe925x14)})},function(_0xe925x1e){var _0xe925x1f=[];for(var _0xe925x20=0;_0xe925x20<_0xe925x9[_0xfc05[56]][_0xfc05[61]][_0xfc05[62]];_0xe925x20++){var _0xe925x21=_[_0xfc05[59]](_0xe925x1d,{"\x69\x64":_0xe925x9[_0xfc05[56]][_0xfc05[61]][_0xe925x20]});if(_0xe925x21){_0xe925x21[_0xfc05[63]]=_0xe925x20+1;_0xe925x1f[_0xfc05[28]](_0xe925x21[_0xfc05[64]]);};};ChatApplication[_0xfc05[65]](_0xe925x1f)[_0xfc05[46]](function(){_0xe925x1e()})[_0xfc05[36]](function(_0xe925x14){_0xe925x1e(_0xe925x14)});},function(_0xe925x1e){ChatApplication[_0xfc05[66]]({where:{id:_0xe925x9[_0xfc05[56]][_0xfc05[61]]},order:_0xfc05[63],include:[{all:true}]})[_0xfc05[46]](function(_0xe925x1c){_0xe925x1e(null,_0xe925x1c)})[_0xfc05[36]](function(_0xe925x14){_0xe925x1e(_0xe925x14)})}],function(_0xe925x14,_0xe925x15){if(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)}else {return _0xe925xa[_0xfc05[35]](201)[_0xfc05[34]](_0xe925x15)}});})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)})};exports[_0xfc05[68]]=function(_0xe925x9,_0xe925xa){ChatWebsite[_0xfc05[58]]({where:{id:_0xe925x9[_0xfc05[17]][_0xfc05[50]]},individualHooks:true})[_0xfc05[46]](function(){return _0xe925xa[_0xfc05[49]](204)})[_0xfc05[36]](function(_0xe925x14){return handleError(_0xe925xa,_0xe925x14)})};function handleError(_0xe925xa,_0xe925x14){return _0xe925xa[_0xfc05[35]](500)[_0xfc05[34]](_0xe925x14)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var async = require('async');
+var Mustache = require('mustache');
+
+var sequelize = require('../../models').sequelize;
+var ChatWebsite = require('../../models').ChatWebsite;
+var ChatApplication = require('../../models').ChatApplication;
+var snippet = require('../../components/xchatty').snippet;
+
+// Get list of chat_websites
+exports.index = function (req, res, next) {
+
+  var attributes = ['name', 'address', 'description', 'remote'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  ChatWebsite
+    .findAndCountAll(query)
+    .then(function (result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single chat_website
+exports.show = function (req, res) {
+  ChatWebsite
+    .findById(req.params.id)
+    .then(function (chat_website) {
+      if (!chat_website) {
+        return res.sendStatus(404);
+      }
+      return res.send(chat_website);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a snippet for chat_website
+exports.getSnippetCode = function (req, res) {
+  ChatWebsite
+    .findById(req.params.id)
+    .then(function (chat_website) {
+      var configSnippet = {
+        remote: chat_website.remote,
+        websiteId: req.params.id
+      };
+      var html = Mustache.render(snippet, configSnippet);
+      return res.send(html);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new chat_website in the DB.
+exports.create = function (req, res) {
+  ChatWebsite
+    .create(req.body)
+    .then(function (chat_website) {
+      return res.status(201).send(chat_website);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing chat_website in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+
+  return ChatWebsite
+    .findById(req.params.id)
+    .then(function (chat_website) {
+      if (!chat_website) {
+        return res.sendStatus(404);
+      }
+
+      return chat_website
+        .update(req.body)
+        .then(function (chat_website) {
+          return res.status(200).send(chat_website);
+        })
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a chat_website from the DB.
+exports.destroy = function (req, res) {
+  ChatWebsite
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function (chat_website) {
+      if (!chat_website) {
+        return res.sendStatus(404);
+      }
+      chat_website.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Sort Mail Applications
+exports.sortApplications = function (req, res, next) {
+
+  ChatApplication
+    .findAll({
+      where: {
+        id: req.body.applications
+      }
+    })
+    .then(function (chatApplications) {
+      var tmpChatApplications = chatApplications;
+
+      async.waterfall([
+        function (callback) {
+          ChatApplication
+            .destroy({
+              where: {
+                id: req.body.applications
+              }
+            }).then(function () {
+              callback();
+            })
+            .catch(function (err) {
+              callback(err);
+            });
+        },
+        function (callback) {
+          var sortedApplications = [];
+          for (var i = 0; i < req.body.applications.length; i++) {
+            var tmpChatApplication = _.find(tmpChatApplications, {
+              'id': req.body.applications[i]
+            });
+            if (tmpChatApplication) {
+              tmpChatApplication.priority = i + 1;
+              sortedApplications.push(tmpChatApplication.dataValues);
+            }
+          }
+
+          ChatApplication
+            .bulkCreate(sortedApplications)
+            .then(function () {
+              callback();
+            })
+            .catch(function (err) {
+              callback(err);
+            });
+        },
+        function (callback) {
+          ChatApplication
+            .findAll({
+              where: {
+                id: req.body.applications
+              },
+              order: 'priority',
+              include: [{
+                all: true
+              }]
+            })
+            .then(function (chatApplications) {
+              callback(null, chatApplications);
+            })
+            .catch(function (err) {
+              callback(err);
+            });
+        }
+      ], function (err, result) {
+        if (err) {
+          return handleError(res, err);
+        } else {
+          return res.status(201).send(result);
+        }
+      });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function (req, res) {
+  ChatWebsite
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function () {
+      return res.sendStatus(204);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 00353e4..49f62d6 100644 (file)
@@ -1 +1,24 @@
-var _0xe9cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe9cf[0];var chat_website=require(_0xe9cf[2])[_0xe9cf[1]];exports[_0xe9cf[3]]=function(_0xf280x2){chat_website[_0xe9cf[4]](function(_0xf280x3){onSave(_0xf280x2,_0xf280x3)});chat_website[_0xe9cf[5]](function(_0xf280x3){onRemove(_0xf280x2,_0xf280x3)});};function onSave(_0xf280x2,_0xf280x3,_0xf280x5){_0xf280x2[_0xe9cf[7]](_0xe9cf[6],_0xf280x3)}function onRemove(_0xf280x2,_0xf280x3,_0xf280x5){_0xf280x2[_0xe9cf[7]](_0xe9cf[8],_0xf280x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var chat_website = require('../../models').ChatWebsite;
+
+exports.register = function(socket) {
+  chat_website.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  chat_website.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('chat_website:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('chat_website:remove', doc);
+}
index 1660c66..4fd8b11 100644 (file)
@@ -1 +1,20 @@
-var _0xa4b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x67\x65\x74"];_0xa4b2[0];var should=require(_0xa4b2[1]);var app=require(_0xa4b2[2]);var request=require(_0xa4b2[3]);describe(_0xa4b2[4],function(){it(_0xa4b2[5],function(_0x16ffx4){request(app)[_0xa4b2[13]](_0xa4b2[12])[_0xa4b2[11]](200)[_0xa4b2[11]](_0xa4b2[10],/json/)[_0xa4b2[9]](function(_0x16ffx5,_0x16ffx6){if(_0x16ffx5){return _0x16ffx4(_0x16ffx5)};_0x16ffx6[_0xa4b2[8]][_0xa4b2[1]][_0xa4b2[7]][_0xa4b2[6]](Array);_0x16ffx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/websites', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/websites')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index aa5313c..0899971 100644 (file)
@@ -1 +1,19 @@
-var _0x452a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x6E\x69\x70\x70\x65\x74","\x67\x65\x74\x53\x6E\x69\x70\x70\x65\x74\x43\x6F\x64\x65","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x6F\x72\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x452a[0];var express=require(_0x452a[1]);var controller=require(_0x452a[2]);var auth=require(_0x452a[3]);var license=require(_0x452a[4]);var router=express.Router();router[_0x452a[8]](_0x452a[5],auth[_0x452a[6]](),controller[_0x452a[7]]);router[_0x452a[8]](_0x452a[9],auth[_0x452a[6]](),controller[_0x452a[10]]);router[_0x452a[8]](_0x452a[11],auth[_0x452a[6]](),controller[_0x452a[12]]);router[_0x452a[14]](_0x452a[5],auth[_0x452a[6]](),controller[_0x452a[13]]);router[_0x452a[14]](_0x452a[15],auth[_0x452a[6]](),controller[_0x452a[16]]);router[_0x452a[18]](_0x452a[9],auth[_0x452a[6]](),controller[_0x452a[17]]);router[_0x452a[19]](_0x452a[9],auth[_0x452a[6]](),controller[_0x452a[17]]);router[_0x452a[21]](_0x452a[5],auth[_0x452a[6]](),controller[_0x452a[20]]);router[_0x452a[21]](_0x452a[9],auth[_0x452a[6]](),controller[_0x452a[22]]);module[_0x452a[23]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./chat_website.controller');
+var auth = require('../../auth/auth.service');
+var license = require('../../config/license/license.service');
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/snippet', auth.isAuthenticated(), controller.getSnippetCode);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/:id/applications', auth.isAuthenticated(), controller.sortApplications);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 75cb6e9..0e92164 100644 (file)
@@ -1 +1,209 @@
-var _0xdf2f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x6F\x6D\x70\x61\x6E\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x63\x6F\x6D\x70\x61\x6E\x79\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x43\x4F\x4D\x50\x41\x4E\x59","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xdf2f[0];var _=require(_0xdf2f[1]);var Company=require(_0xdf2f[3])[_0xdf2f[2]];var util=require(_0xdf2f[4]);exports[_0xdf2f[5]]=function(_0x26b5x4,_0x26b5x5){var _0x26b5x6=[_0xdf2f[6],_0xdf2f[7]];var _0x26b5x7=_0x26b5x4[_0xdf2f[9]][_0xdf2f[8]]?parseInt(_0x26b5x4[_0xdf2f[9]][_0xdf2f[8]],10):100;var _0x26b5x8=_0x26b5x4[_0xdf2f[9]][_0xdf2f[10]]?parseInt(_0x26b5x4[_0xdf2f[9]][_0xdf2f[10]],10):0;var _0x26b5x9={where:{},limit:_0x26b5x7,offset:_0x26b5x8*_0x26b5x7};_[_0xdf2f[24]](_0x26b5x4[_0xdf2f[9]],function(_0x26b5xa,_0x26b5xb){switch(_0x26b5xb){case _0xdf2f[8]:;case _0xdf2f[10]:break ;;case _0xdf2f[13]:_0x26b5x9[_0xdf2f[11]]=util[_0xdf2f[16]](_0xdf2f[12],_0x26b5x4[_0xdf2f[9]][_0xdf2f[13]],_0x26b5x4[_0xdf2f[9]][_0xdf2f[14]]||_0xdf2f[15])||null;break ;;case _0xdf2f[14]:break ;;case _0xdf2f[22]:_0x26b5x9[_0xdf2f[18]][_0xdf2f[17]]=[];_0x26b5x6[_0xdf2f[21]](function(_0x26b5xc){var _0x26b5xd={};_0x26b5xd[_0x26b5xc]={$like:_0xdf2f[19]+_0x26b5xa+_0xdf2f[19]};_0x26b5x9[_0xdf2f[18]][_0xdf2f[17]][_0xdf2f[20]](_0x26b5xd);});break ;;default:_0x26b5x9[_0xdf2f[18]][_0x26b5xb]={$like:{}};_0x26b5x9[_0xdf2f[18]][_0x26b5xb][_0xdf2f[23]]=_0xdf2f[19]+_0x26b5xa+_0xdf2f[19];;}});Company[_0xdf2f[39]](_0x26b5x9)[_0xdf2f[38]](function(_0x26b5xf){var _0x26b5x10=Math[_0xdf2f[30]](_0x26b5xf[_0xdf2f[29]]/_0x26b5x7);var _0x26b5x11=_0x26b5x10>(_0x26b5x9[_0xdf2f[31]]+1)?util[_0xdf2f[16]](_0xdf2f[32],_0x26b5x4[_0xdf2f[33]],_0x26b5x4[_0xdf2f[35]][_0xdf2f[34]],_0x26b5x4[_0xdf2f[36]],_0x26b5x8+1):null;var _0x26b5x12=_0x26b5x8>0?util[_0xdf2f[16]](_0xdf2f[32],_0x26b5x4[_0xdf2f[33]],_0x26b5x4[_0xdf2f[35]][_0xdf2f[34]],_0x26b5x4[_0xdf2f[36]],_0x26b5x8-1):null;_0x26b5x5[_0xdf2f[27]](200)[_0xdf2f[26]]({count:_0x26b5xf[_0xdf2f[29]],rows:_0x26b5xf[_0xdf2f[37]],next_page:_0x26b5x11,previous_page:_0x26b5x12,total_pages:_0x26b5x10});})[_0xdf2f[28]](function(_0x26b5xe){_0x26b5x5[_0xdf2f[27]](500)[_0xdf2f[26]]({error:_0xdf2f[25]})});};exports[_0xdf2f[40]]=function(_0x26b5x4,_0x26b5x5){console[_0xdf2f[42]](_0x26b5x4[_0xdf2f[41]]);Company[_0xdf2f[44]]({where:{name:_0x26b5x4[_0xdf2f[41]][_0xdf2f[6]]}})[_0xdf2f[38]](function(_0x26b5x13){if(!_0x26b5x13){return _0x26b5x5[_0xdf2f[43]](404)};return _0x26b5x5[_0xdf2f[26]](_0x26b5x13);})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)});};exports[_0xdf2f[45]]=function(_0x26b5x4,_0x26b5x5){Company[_0xdf2f[48]](_0x26b5x4[_0xdf2f[47]][_0xdf2f[46]])[_0xdf2f[38]](function(_0x26b5x14){if(!_0x26b5x14){return _0x26b5x5[_0xdf2f[43]](404)};return _0x26b5x5[_0xdf2f[26]](_0x26b5x14);})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)})};exports[_0xdf2f[49]]=function(_0x26b5x4,_0x26b5x5){Company[_0xdf2f[49]](_0x26b5x4[_0xdf2f[41]])[_0xdf2f[38]](function(_0x26b5x14){return _0x26b5x5[_0xdf2f[27]](201)[_0xdf2f[26]](_0x26b5x14)})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)})};exports[_0xdf2f[50]]=function(_0x26b5x4,_0x26b5x5){Company[_0xdf2f[44]]({where:{name:_0x26b5x4[_0xdf2f[41]][_0xdf2f[6]],id:{$ne:_0x26b5x4[_0xdf2f[41]][_0xdf2f[46]]}}})[_0xdf2f[38]](function(_0x26b5x13){if(!_0x26b5x13){return _0x26b5x5[_0xdf2f[43]](404)};if(_0x26b5x13[_0xdf2f[51]]>0){return _0x26b5x5[_0xdf2f[27]](500)[_0xdf2f[26]]({message:_0xdf2f[52]})};if(_0x26b5x4[_0xdf2f[41]][_0xdf2f[46]]){delete _0x26b5x4[_0xdf2f[41]][_0xdf2f[46]]};Company[_0xdf2f[55]]({where:{id:_0x26b5x4[_0xdf2f[47]][_0xdf2f[46]]}})[_0xdf2f[38]](function(_0x26b5x14){if(!_0x26b5x14){return _0x26b5x5[_0xdf2f[43]](404)};var _0x26b5x15=_[_0xdf2f[53]](_0x26b5x14,_0x26b5x4[_0xdf2f[41]]);_0x26b5x15[_0xdf2f[54]]()[_0xdf2f[38]](function(){return _0x26b5x5[_0xdf2f[27]](200)[_0xdf2f[26]](_0x26b5x14)})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)});})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)});})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)})};exports[_0xdf2f[56]]=function(_0x26b5x4,_0x26b5x5){Company[_0xdf2f[48]](_0x26b5x4[_0xdf2f[47]][_0xdf2f[46]])[_0xdf2f[38]](function(_0x26b5x14){if(!_0x26b5x14){return _0x26b5x5[_0xdf2f[43]](404)};_0x26b5x14[_0xdf2f[56]]()[_0xdf2f[38]](function(){return _0x26b5x5[_0xdf2f[43]](204)})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)});})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)})};exports[_0xdf2f[57]]=function(_0x26b5x4,_0x26b5x5){Company[_0xdf2f[56]]({where:{id:_0x26b5x4[_0xdf2f[9]][_0xdf2f[46]]},individualHooks:true})[_0xdf2f[38]](function(){return _0x26b5x5[_0xdf2f[43]](204)})[_0xdf2f[28]](function(_0x26b5xe){return handleError(_0x26b5x5,_0x26b5xe)})};function handleError(_0x26b5x5,_0x26b5xe){return _0x26b5x5[_0xdf2f[27]](500)[_0xdf2f[26]](_0x26b5xe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Company = require('../../models').Company;
+var util = require('util');
+
+// Get list of companies
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Company
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.companyValidation = function(req, res) {
+  console.log(req.body);
+  Company
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(companies) {
+      if (!companies) {
+        return res.sendStatus(404);
+      }
+      return res.send(companies);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single company
+exports.show = function(req, res) {
+  Company
+    .findById(req.params.id)
+    .then(function(company) {
+      if (!company) {
+        return res.sendStatus(404);
+      }
+      return res.send(company);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new company in the DB.
+exports.create = function(req, res) {
+  Company
+    .create(req.body)
+    .then(function(company) {
+      return res.status(201).send(company);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing company in the DB.
+exports.update = function(req, res) {
+  Company
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(companies) {
+      if (!companies) {
+        return res.sendStatus(404);
+      }
+      if (companies.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_COMPANY'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Company
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(company) {
+          if (!company) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(company, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(company);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a company from the DB.
+exports.destroy = function(req, res) {
+  Company
+    .findById(req.params.id)
+    .then(function(company) {
+      if (!company) {
+        return res.sendStatus(404);
+      }
+      company.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Company
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 4a82ae4..850be4a 100644 (file)
@@ -1 +1,24 @@
-var _0x8075=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x6F\x6D\x70\x61\x6E\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x6F\x6D\x70\x61\x6E\x79\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x6F\x6D\x70\x61\x6E\x79\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8075[0];var Company=require(_0x8075[2])[_0x8075[1]];exports[_0x8075[3]]=function(_0xb75ax2){Company[_0x8075[4]](function(_0xb75ax3){onSave(_0xb75ax2,_0xb75ax3)});Company[_0x8075[5]](function(_0xb75ax3){onRemove(_0xb75ax2,_0xb75ax3)});};function onSave(_0xb75ax2,_0xb75ax3,_0xb75ax5){_0xb75ax2[_0x8075[7]](_0x8075[6],_0xb75ax3)}function onRemove(_0xb75ax2,_0xb75ax3,_0xb75ax5){_0xb75ax2[_0x8075[7]](_0x8075[8],_0xb75ax3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Company = require('../../models').Company;
+
+exports.register = function(socket) {
+  Company.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Company.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('company:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('company:remove', doc);
+}
index cb20b08..37c8889 100644 (file)
@@ -1 +1,20 @@
-var _0xbfdd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x67\x65\x74"];_0xbfdd[0];var should=require(_0xbfdd[1]);var app=require(_0xbfdd[2]);var request=require(_0xbfdd[3]);describe(_0xbfdd[4],function(){it(_0xbfdd[5],function(_0x4d2ex4){request(app)[_0xbfdd[13]](_0xbfdd[12])[_0xbfdd[11]](200)[_0xbfdd[11]](_0xbfdd[10],/json/)[_0xbfdd[9]](function(_0x4d2ex5,_0x4d2ex6){if(_0x4d2ex5){return _0x4d2ex4(_0x4d2ex5)};_0x4d2ex6[_0xbfdd[8]][_0xbfdd[1]][_0xbfdd[7]][_0xbfdd[6]](Array);_0x4d2ex4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/contactmanager/companies', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/contactmanager/companies')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 0609abd..734f562 100644 (file)
@@ -1 +1,18 @@
-var _0x6b6c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x63\x6F\x6D\x70\x61\x6E\x79\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x6b6c[0];var express=require(_0x6b6c[1]);var controller=require(_0x6b6c[2]);var auth=require(_0x6b6c[3]);var router=express.Router();router[_0x6b6c[7]](_0x6b6c[4],auth[_0x6b6c[5]](),controller[_0x6b6c[6]]);router[_0x6b6c[7]](_0x6b6c[8],auth[_0x6b6c[5]](),controller[_0x6b6c[9]]);router[_0x6b6c[11]](_0x6b6c[4],auth[_0x6b6c[5]](),controller[_0x6b6c[10]]);router[_0x6b6c[11]](_0x6b6c[12],auth[_0x6b6c[5]](),controller[_0x6b6c[13]]);router[_0x6b6c[15]](_0x6b6c[8],auth[_0x6b6c[5]](),controller[_0x6b6c[14]]);router[_0x6b6c[16]](_0x6b6c[8],auth[_0x6b6c[5]](),controller[_0x6b6c[14]]);router[_0x6b6c[18]](_0x6b6c[4],auth[_0x6b6c[5]](),controller[_0x6b6c[17]]);router[_0x6b6c[18]](_0x6b6c[8],auth[_0x6b6c[5]](),controller[_0x6b6c[19]]);module[_0x6b6c[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./company.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.companyValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index afaba90..1948319 100644 (file)
@@ -1 +1,85 @@
-var _0x3ad0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x3ad0[0];var _=require(_0x3ad0[1]);var Contact=require(_0x3ad0[3])[_0x3ad0[2]];exports[_0x3ad0[4]]=function(_0x6804x3,_0x6804x4){Contact[_0x3ad0[9]]()[_0x3ad0[8]](function(_0x6804x6){return _0x6804x4[_0x3ad0[7]](200)[_0x3ad0[6]](_0x6804x6)})[_0x3ad0[5]](function(_0x6804x5){return handleError(_0x6804x4,_0x6804x5)})};exports[_0x3ad0[10]]=function(_0x6804x3,_0x6804x4){Contact[_0x3ad0[14]](_0x6804x3[_0x3ad0[13]][_0x3ad0[12]])[_0x3ad0[8]](function(_0x6804x7){if(!_0x6804x7){return _0x6804x4[_0x3ad0[11]](404)};return _0x6804x4[_0x3ad0[6]](_0x6804x7);})[_0x3ad0[5]](function(_0x6804x5){return handleError(_0x6804x4,_0x6804x5)})};exports[_0x3ad0[15]]=function(_0x6804x3,_0x6804x4){Contact[_0x3ad0[15]](_0x6804x3[_0x3ad0[16]])[_0x3ad0[8]](function(_0x6804x7){return _0x6804x4[_0x3ad0[7]](201)[_0x3ad0[6]](_0x6804x7)})[_0x3ad0[5]](function(_0x6804x5){return handleError(_0x6804x4,_0x6804x5)})};exports[_0x3ad0[17]]=function(_0x6804x3,_0x6804x4){if(_0x6804x3[_0x3ad0[16]][_0x3ad0[12]]){delete _0x6804x3[_0x3ad0[16]][_0x3ad0[12]]};Contact[_0x3ad0[14]](_0x6804x3[_0x3ad0[13]][_0x3ad0[12]])[_0x3ad0[8]](function(_0x6804x7){if(!_0x6804x7){return _0x6804x4[_0x3ad0[11]](404)};var _0x6804x8=_[_0x3ad0[18]](_0x6804x7,_0x6804x3[_0x3ad0[16]]);_0x6804x8[_0x3ad0[19]]()[_0x3ad0[8]](function(){return _0x6804x4[_0x3ad0[7]](200)[_0x3ad0[6]](_0x6804x7)})[_0x3ad0[5]](function(_0x6804x5){return handleError(_0x6804x4,_0x6804x5)});})[_0x3ad0[5]](function(_0x6804x5){return handleError(_0x6804x4,_0x6804x5)});};exports[_0x3ad0[20]]=function(_0x6804x3,_0x6804x4){Contact[_0x3ad0[14]](_0x6804x3[_0x3ad0[13]][_0x3ad0[12]])[_0x3ad0[8]](function(_0x6804x7){if(!_0x6804x7){return _0x6804x4[_0x3ad0[11]](404)};_0x6804x7[_0x3ad0[20]]()[_0x3ad0[8]](function(){return _0x6804x4[_0x3ad0[11]](204)})[_0x3ad0[5]](function(_0x6804x5){return handleError(_0x6804x4,_0x6804x5)});})[_0x3ad0[5]](function(_0x6804x5){return handleError(_0x6804x4,_0x6804x5)})};function handleError(_0x6804x4,_0x6804x5){return _0x6804x4[_0x3ad0[7]](500)[_0x3ad0[6]](_0x6804x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Contact = require('../../models').Contact;
+
+// Get list of contacts
+exports.index = function(req, res) {
+  Contact
+  .findAll()
+  .then(function (contacts) {
+    return res.status(200).send(contacts);
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Get a single contact
+exports.show = function(req, res) {
+  Contact
+  .findById(req.params.id)
+  .then(function (contact) {
+    if(!contact) { return res.sendStatus(404); }
+    return res.send(contact);
+  })
+  .catch(function(err){
+    return handleError(res, err);
+  });
+};
+
+// Creates a new contact in the DB.
+exports.create = function(req, res) {
+  Contact
+  .create(req.body)
+  .then(function(contact) {
+    return res.status(201).send(contact);
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Updates an existing contact in the DB.
+exports.update = function(req, res) {
+  if(req.body.id) { delete req.body.id; }
+  Contact
+  .findById(req.params.id)
+  .then(function (contact) {
+    if(!contact) { return res.sendStatus(404); }
+    var updated = _.merge(contact, req.body);
+    updated.save()
+    .then(function () {
+      return res.status(200).send(contact);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Deletes a contact from the DB.
+exports.destroy = function(req, res) {
+  Contact
+  .findById(req.params.id)
+  .then(function (contact) {
+    if(!contact) { return res.sendStatus(404); }
+    contact.destroy()
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 9af998a..e3414e8 100644 (file)
@@ -1 +1,13 @@
-var _0xbf78=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x64\x65\x66\x69\x6E\x65"];_0xbf78[0];module[_0xbf78[1]]=function(_0x95c2x1,_0x95c2x2){var _0x95c2x3=_0x95c2x1[_0xbf78[3]](_0xbf78[2],{name:String,info:String,active:Boolean});return _0x95c2x3;};
\ No newline at end of file
+'use strict';
+
+module.export = function(sequelize, DataTypes) {
+
+  var Contact = sequelize.define('Contact', {
+    name: String,
+    info: String,
+    active: Boolean
+  });
+
+  return Contact;
+
+};
index 5549932..849726b 100644 (file)
@@ -1 +1,24 @@
-var _0x740f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x6F\x6E\x74\x61\x63\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x6F\x6E\x74\x61\x63\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x740f[0];var contact=require(_0x740f[2])[_0x740f[1]];exports[_0x740f[3]]=function(_0xb9c2x2){contact[_0x740f[4]](function(_0xb9c2x3){onSave(_0xb9c2x2,_0xb9c2x3)});contact[_0x740f[5]](function(_0xb9c2x3){onRemove(_0xb9c2x2,_0xb9c2x3)});};function onSave(_0xb9c2x2,_0xb9c2x3,_0xb9c2x5){_0xb9c2x2[_0x740f[7]](_0x740f[6],_0xb9c2x3)}function onRemove(_0xb9c2x2,_0xb9c2x3,_0xb9c2x5){_0xb9c2x2[_0x740f[7]](_0x740f[8],_0xb9c2x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var contact = require('../../models').Contact;
+
+exports.register = function(socket) {
+  contact.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  contact.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('contact:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('contact:remove', doc);
+}
index c6b654b..a856862 100644 (file)
@@ -1 +1,20 @@
-var _0x6af7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74"];_0x6af7[0];var should=require(_0x6af7[1]);var app=require(_0x6af7[2]);var request=require(_0x6af7[3]);describe(_0x6af7[4],function(){it(_0x6af7[5],function(_0x6b33x4){request(app)[_0x6af7[13]](_0x6af7[12])[_0x6af7[11]](200)[_0x6af7[11]](_0x6af7[10],/json/)[_0x6af7[9]](function(_0x6b33x5,_0x6b33x6){if(_0x6b33x5){return _0x6b33x4(_0x6b33x5)};_0x6b33x6[_0x6af7[8]][_0x6af7[1]][_0x6af7[7]][_0x6af7[6]](Array);_0x6b33x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/contacts', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/contacts')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index a7b24a7..1b36b44 100644 (file)
@@ -1 +1,15 @@
-var _0x9648=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x6F\x6E\x74\x61\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9648[0];var express=require(_0x9648[1]);var controller=require(_0x9648[2]);var router=express.Router();router[_0x9648[5]](_0x9648[3],controller[_0x9648[4]]);router[_0x9648[5]](_0x9648[6],controller[_0x9648[7]]);router[_0x9648[9]](_0x9648[3],controller[_0x9648[8]]);router[_0x9648[11]](_0x9648[6],controller[_0x9648[10]]);router[_0x9648[12]](_0x9648[6],controller[_0x9648[10]]);router[_0x9648[14]](_0x9648[6],controller[_0x9648[13]]);module[_0x9648[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./contact.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 3aa3deb..f2641f7 100644 (file)
@@ -1 +1,501 @@
-var _0x1c23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x54\x61\x67","\x73\x74\x72\x65\x61\x6D","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x73\x75\x72\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x50\x68\x6F\x6E\x65\x73","\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x45\x6D\x61\x69\x6C\x73","\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x48\x69\x73\x74\x6F\x72\x79","\x63\x6F\x6E\x74\x61\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x68\x6F\x6E\x65\x73","\x62\x6F\x64\x79","\x65\x6D\x61\x69\x6C\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x73\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x6B\x65\x79\x73","\x73\x65\x74\x45\x6D\x61\x69\x6C\x73","\x73\x65\x74\x50\x68\x6F\x6E\x65\x73","\x6D\x61\x70","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x63\x6C\x6F\x6E\x65","\x61\x6C\x6C","\x65\x6D\x61\x69\x6C","\x70\x6C\x75\x63\x6B","\x75\x6E\x69\x71","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x74\x61\x67\x73","\x2C","\x73\x70\x6C\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72\x49\x64","\x75\x73\x65\x72","\x70\x68\x6F\x6E\x65","\x75\x70\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x1c23[0];var _=require(_0x1c23[1]);var Contact=require(_0x1c23[3])[_0x1c23[2]];var ContactPhone=require(_0x1c23[3])[_0x1c23[4]];var ContactEmail=require(_0x1c23[3])[_0x1c23[5]];var CustomField=require(_0x1c23[3])[_0x1c23[6]];var ReportCall=require(_0x1c23[3])[_0x1c23[7]];var ReportCallHistory=require(_0x1c23[3])[_0x1c23[9]][_0x1c23[8]];var ReportMailSession=require(_0x1c23[3])[_0x1c23[10]];var ReportMailSessionHistory=require(_0x1c23[3])[_0x1c23[9]][_0x1c23[11]];var Tag=require(_0x1c23[3])[_0x1c23[12]];var stream=require(_0x1c23[13]);var sequelize=require(_0x1c23[3])[_0x1c23[14]];var util=require(_0x1c23[15]);exports[_0x1c23[16]]=function(_0xdf3cxe,_0xdf3cxf){var _0xdf3cx10=[_0x1c23[17],_0x1c23[18],_0x1c23[19]];var _0xdf3cx11=_0xdf3cxe[_0x1c23[21]][_0x1c23[20]]?parseInt(_0xdf3cxe[_0x1c23[21]][_0x1c23[20]],10):100;var _0xdf3cx12=_0xdf3cxe[_0x1c23[21]][_0x1c23[22]]?parseInt(_0xdf3cxe[_0x1c23[21]][_0x1c23[22]],10):0;var _0xdf3cx13={where:{},limit:_0xdf3cx11,offset:_0xdf3cx12*_0xdf3cx11};_[_0x1c23[36]](_0xdf3cxe[_0x1c23[21]],function(_0xdf3cx14,_0xdf3cx15){switch(_0xdf3cx15){case _0x1c23[20]:;case _0x1c23[22]:break ;;case _0x1c23[25]:_0xdf3cx13[_0x1c23[23]]=util[_0x1c23[28]](_0x1c23[24],_0xdf3cxe[_0x1c23[21]][_0x1c23[25]],_0xdf3cxe[_0x1c23[21]][_0x1c23[26]]||_0x1c23[27])||null;break ;;case _0x1c23[26]:break ;;case _0x1c23[34]:_0xdf3cx13[_0x1c23[30]][_0x1c23[29]]=[];_0xdf3cx10[_0x1c23[33]](function(_0xdf3cx16){var _0xdf3cx17={};_0xdf3cx17[_0xdf3cx16]={$like:_0x1c23[31]+_0xdf3cx14+_0x1c23[31]};_0xdf3cx13[_0x1c23[30]][_0x1c23[29]][_0x1c23[32]](_0xdf3cx17);});break ;;default:_0xdf3cx13[_0x1c23[30]][_0xdf3cx15]={$like:{}};_0xdf3cx13[_0x1c23[30]][_0xdf3cx15][_0x1c23[35]]=_0x1c23[31]+_0xdf3cx14+_0x1c23[31];;}});Contact[_0x1c23[51]](_0xdf3cx13)[_0x1c23[50]](function(_0xdf3cx19){var _0xdf3cx1a=Math[_0x1c23[42]](_0xdf3cx19[_0x1c23[41]]/_0xdf3cx11);var _0xdf3cx1b=_0xdf3cx1a>(_0xdf3cx13[_0x1c23[43]]+1)?util[_0x1c23[28]](_0x1c23[44],_0xdf3cxe[_0x1c23[45]],_0xdf3cxe[_0x1c23[47]][_0x1c23[46]],_0xdf3cxe[_0x1c23[48]],_0xdf3cx12+1):null;var _0xdf3cx1c=_0xdf3cx12>0?util[_0x1c23[28]](_0x1c23[44],_0xdf3cxe[_0x1c23[45]],_0xdf3cxe[_0x1c23[47]][_0x1c23[46]],_0xdf3cxe[_0x1c23[48]],_0xdf3cx12-1):null;_0xdf3cxf[_0x1c23[39]](200)[_0x1c23[38]]({count:_0xdf3cx19[_0x1c23[41]],rows:_0xdf3cx19[_0x1c23[49]],next_page:_0xdf3cx1b,previous_page:_0xdf3cx1c,total_pages:_0xdf3cx1a});})[_0x1c23[40]](function(_0xdf3cx18){_0xdf3cxf[_0x1c23[39]](500)[_0x1c23[38]]({error:_0x1c23[37]})});};exports[_0x1c23[52]]=function(_0xdf3cxe,_0xdf3cxf){Contact[_0x1c23[68]](_0xdf3cxe[_0x1c23[56]][_0x1c23[55]],{include:[{model:ContactPhone,as:_0x1c23[57],include:[{model:ReportCall,as:_0x1c23[58],include:[{all:true}]},{model:ReportCall,as:_0x1c23[59],include:[{all:true}]},{model:ReportCallHistory,as:_0x1c23[60],include:[{all:true}]},{model:ReportCallHistory,as:_0x1c23[61],include:[{all:true}]}]},{model:ContactEmail,as:_0x1c23[62],include:[{model:ReportMailSession,as:_0x1c23[63],include:[{all:true}]},{model:ReportMailSession,as:_0x1c23[64],include:[{all:true}]},{model:ReportMailSessionHistory,as:_0x1c23[65],include:[{all:true}]},{model:ReportMailSessionHistory,as:_0x1c23[66],include:[{all:true}]}]},{model:CustomField,as:_0x1c23[67]}]})[_0x1c23[50]](function(_0xdf3cx1d){if(!_0xdf3cx1d){return _0xdf3cxf[_0x1c23[54]](404)};return _0xdf3cxf[_0x1c23[38]](_0xdf3cx1d);})[_0x1c23[40]](function(_0xdf3cx18){console[_0x1c23[53]](_0xdf3cx18);return handleError(_0xdf3cxf,_0xdf3cx18);})};exports[_0x1c23[69]]=function(_0xdf3cxe,_0xdf3cxf){};exports[_0x1c23[70]]=function(_0xdf3cxe,_0xdf3cxf){Contact[_0x1c23[74]]({where:{$or:{"\x24\x50\x68\x6F\x6E\x65\x73\x2E\x70\x68\x6F\x6E\x65\x24":_0xdf3cxe[_0x1c23[72]][_0x1c23[71]],"\x24\x45\x6D\x61\x69\x6C\x73\x2E\x65\x6D\x61\x69\x6C\x24":_0xdf3cxe[_0x1c23[72]][_0x1c23[73]]}},include:[{all:true}]})[_0x1c23[50]](function(_0xdf3cx1e){console[_0x1c23[53]](_0xdf3cx1e);return _0xdf3cxf[_0x1c23[39]](200)[_0x1c23[38]](_0xdf3cx1e);})[_0x1c23[40]](function(_0xdf3cx18){console[_0x1c23[53]](_0xdf3cx18);return handleError(_0xdf3cxf,_0xdf3cx18);})};exports[_0x1c23[75]]=function(_0xdf3cxe,_0xdf3cxf,_0xdf3cx1f){var _0xdf3cx20=[],_0xdf3cx21=[],_0xdf3cx22={};Tag[_0x1c23[74]]()[_0x1c23[50]](function(_0xdf3cx29){var _0xdf3cx2a=[];var _0xdf3cx2b=_[_0x1c23[87]](_[_0x1c23[87]](_0xdf3cx29,_0x1c23[90]),_0x1c23[17]);if(_0xdf3cxe[_0x1c23[72]][_0x1c23[91]]){var _0xdf3cx2c=_0xdf3cxe[_0x1c23[72]][_0x1c23[91]][_0x1c23[93]](_0x1c23[92]);_0xdf3cx2c[_0x1c23[33]](function(_0xdf3cx25){if(!_[_0x1c23[94]](_0xdf3cx29,_0xdf3cx25)){_0xdf3cx2a[_0x1c23[32]]({name:_0xdf3cx25})}});if(_0xdf3cx2a[_0x1c23[95]]){Tag[_0x1c23[96]](_0xdf3cx2a,{individualHooks:true})};};_0xdf3cxe[_0x1c23[72]][_0x1c23[97]]=_0xdf3cxe[_0x1c23[98]][_0x1c23[55]];var _0xdf3cx2d=_[_0x1c23[88]](_[_0x1c23[87]](_0xdf3cxe[_0x1c23[72]].Phones,_0x1c23[99]));var _0xdf3cx2e=[];_0xdf3cx2d[_0x1c23[33]](function(_0xdf3cx25){_0xdf3cx2e[_0x1c23[32]](ContactPhone[_0x1c23[89]]({where:{phone:_0xdf3cx25},defaults:{phone:_0xdf3cx25}}))});return _0xdf3cx2e;})[_0x1c23[85]]()[_0x1c23[50]](function(_0xdf3cxf){_0xdf3cx20=_[_0x1c23[82]](_0xdf3cxf,function(_0xdf3cx25){return _0xdf3cx25[0]});var _0xdf3cx27=[];var _0xdf3cx28=_[_0x1c23[88]](_[_0x1c23[87]](_0xdf3cxe[_0x1c23[72]].Emails,_0x1c23[86]));_0xdf3cx28[_0x1c23[33]](function(_0xdf3cx25){_0xdf3cx27[_0x1c23[32]](ContactEmail[_0x1c23[89]]({where:{email:_0xdf3cx25},defaults:{email:_0xdf3cx25}}))});return _0xdf3cx27;})[_0x1c23[85]]()[_0x1c23[50]](function(_0xdf3cxf){_0xdf3cx21=_[_0x1c23[82]](_0xdf3cxf,function(_0xdf3cx25){return _0xdf3cx25[0]});delete _0xdf3cxe[_0x1c23[72]][_0x1c23[57]];delete _0xdf3cxe[_0x1c23[72]][_0x1c23[62]];_0xdf3cx22=_[_0x1c23[84]](_0xdf3cxe[_0x1c23[72]][_0x1c23[83]]);delete _0xdf3cxe[_0x1c23[72]][_0x1c23[83]];return Contact[_0x1c23[75]](_0xdf3cxe[_0x1c23[72]]);})[_0x1c23[50]](function(_0xdf3cx23){return [_0xdf3cx23,_0xdf3cx23[_0x1c23[81]](_0xdf3cx20)]})[_0x1c23[76]](function(_0xdf3cx23){return [_0xdf3cx23,_0xdf3cx23[_0x1c23[80]](_0xdf3cx21)]})[_0x1c23[76]](function(_0xdf3cx23){var _0xdf3cx26=_[_0x1c23[79]](_0xdf3cx22);return [_0xdf3cx23,CustomField[_0x1c23[74]]({where:{id:_0xdf3cx26}})];})[_0x1c23[76]](function(_0xdf3cx23,_0xdf3cx24){_0xdf3cx24[_0x1c23[33]](function(_0xdf3cx25){_0xdf3cx25[_0x1c23[77]]={value:_0xdf3cx22[String(_0xdf3cx25[_0x1c23[55]])]}});return [_0xdf3cx23,_0xdf3cx23[_0x1c23[78]](_0xdf3cx24)];})[_0x1c23[76]](function(_0xdf3cx23){return _0xdf3cxf[_0x1c23[39]](201)[_0x1c23[38]](_0xdf3cx23)})[_0x1c23[40]](function(_0xdf3cx18){console[_0x1c23[53]](_0xdf3cx18);return _0xdf3cx1f(_0xdf3cx18);});};exports[_0x1c23[100]]=function(_0xdf3cxe,_0xdf3cxf,_0xdf3cx1f){var _0xdf3cx20=[],_0xdf3cx21=[],_0xdf3cx22={};Tag[_0x1c23[74]]()[_0x1c23[50]](function(_0xdf3cx29){var _0xdf3cx2a=[];var _0xdf3cx2b=_[_0x1c23[87]](_[_0x1c23[87]](_0xdf3cx29,_0x1c23[90]),_0x1c23[17]);if(_0xdf3cxe[_0x1c23[72]][_0x1c23[91]]){var _0xdf3cx2c=_0xdf3cxe[_0x1c23[72]][_0x1c23[91]][_0x1c23[93]](_0x1c23[92]);_0xdf3cx2c[_0x1c23[33]](function(_0xdf3cx25){if(!_[_0x1c23[94]](_0xdf3cx29,_0xdf3cx25)){_0xdf3cx2a[_0x1c23[32]]({name:_0xdf3cx25})}});if(_0xdf3cx2a[_0x1c23[95]]){Tag[_0x1c23[96]](_0xdf3cx2a,{individualHooks:true})};};var _0xdf3cx2e=[];var _0xdf3cx2d=_[_0x1c23[88]](_[_0x1c23[87]](_0xdf3cxe[_0x1c23[72]].Phones,_0x1c23[99]));_0xdf3cx2d[_0x1c23[33]](function(_0xdf3cx25){_0xdf3cx2e[_0x1c23[32]](ContactPhone[_0x1c23[89]]({where:{phone:_0xdf3cx25},defaults:{phone:_0xdf3cx25}}))});return _0xdf3cx2e;})[_0x1c23[85]]()[_0x1c23[50]](function(_0xdf3cxf){_0xdf3cx20=_[_0x1c23[82]](_0xdf3cxf,function(_0xdf3cx25){return _0xdf3cx25[0]});var _0xdf3cx27=[];var _0xdf3cx28=_[_0x1c23[88]](_[_0x1c23[87]](_0xdf3cxe[_0x1c23[72]].Emails,_0x1c23[86]));_0xdf3cx28[_0x1c23[33]](function(_0xdf3cx25){_0xdf3cx27[_0x1c23[32]](ContactEmail[_0x1c23[89]]({where:{email:_0xdf3cx25},defaults:{email:_0xdf3cx25}}))});return _0xdf3cx27;})[_0x1c23[85]]()[_0x1c23[50]](function(_0xdf3cxf){_0xdf3cx21=_[_0x1c23[82]](_0xdf3cxf,function(_0xdf3cx25){return _0xdf3cx25[0]});delete _0xdf3cxe[_0x1c23[72]][_0x1c23[57]];delete _0xdf3cxe[_0x1c23[72]][_0x1c23[62]];_0xdf3cx22=_[_0x1c23[84]](_0xdf3cxe[_0x1c23[72]][_0x1c23[83]]);delete _0xdf3cxe[_0x1c23[72]][_0x1c23[83]];delete _0xdf3cxe[_0x1c23[72]][_0x1c23[67]];var _0xdf3cx2f=_0xdf3cxe[_0x1c23[72]][_0x1c23[55]];delete _0xdf3cxe[_0x1c23[72]][_0x1c23[55]];return Contact[_0x1c23[68]](_0xdf3cx2f);})[_0x1c23[50]](function(_0xdf3cx23){return [_0xdf3cx23,_0xdf3cx23[_0x1c23[81]](_0xdf3cx20)]})[_0x1c23[76]](function(_0xdf3cx23){return [_0xdf3cx23,_0xdf3cx23[_0x1c23[80]](_0xdf3cx21)]})[_0x1c23[76]](function(_0xdf3cx23){var _0xdf3cx26=_[_0x1c23[79]](_0xdf3cx22);return [_0xdf3cx23,CustomField[_0x1c23[74]]({where:{id:_0xdf3cx26}})];})[_0x1c23[76]](function(_0xdf3cx23,_0xdf3cx24){_0xdf3cx24[_0x1c23[33]](function(_0xdf3cx25){_0xdf3cx25[_0x1c23[77]]={value:_0xdf3cx22[String(_0xdf3cx25[_0x1c23[55]])]}});return [_0xdf3cx23,_0xdf3cx23[_0x1c23[78]](_0xdf3cx24)];})[_0x1c23[76]](function(_0xdf3cx23){return _0xdf3cx23[_0x1c23[101]](_0xdf3cxe[_0x1c23[72]])})[_0x1c23[50]](function(_0xdf3cx23){return _0xdf3cxf[_0x1c23[39]](200)[_0x1c23[38]](_0xdf3cx23)})[_0x1c23[40]](function(_0xdf3cx18){console[_0x1c23[53]](_0xdf3cx18);return handleError(_0xdf3cxf,_0xdf3cx18);});};exports[_0x1c23[102]]=function(_0xdf3cxe,_0xdf3cxf){Contact[_0x1c23[68]](_0xdf3cxe[_0x1c23[56]][_0x1c23[55]])[_0x1c23[50]](function(_0xdf3cx1d){if(!_0xdf3cx1d){return _0xdf3cxf[_0x1c23[54]](404)};_0xdf3cx1d[_0x1c23[102]]()[_0x1c23[50]](function(){return _0xdf3cxf[_0x1c23[54]](204)})[_0x1c23[40]](function(_0xdf3cx18){return handleError(_0xdf3cxf,_0xdf3cx18)});})[_0x1c23[40]](function(_0xdf3cx18){return handleError(_0xdf3cxf,_0xdf3cx18)})};exports[_0x1c23[103]]=function(_0xdf3cxe,_0xdf3cxf){Contact[_0x1c23[102]]({where:{id:_0xdf3cxe[_0x1c23[21]][_0x1c23[55]]},individualHooks:true})[_0x1c23[50]](function(){return _0xdf3cxf[_0x1c23[54]](204)})[_0x1c23[40]](function(_0xdf3cx18){return handleError(_0xdf3cxf,_0xdf3cx18)})};function handleError(_0xdf3cxf,_0xdf3cx18){return _0xdf3cxf[_0x1c23[39]](500)[_0x1c23[38]](_0xdf3cx18)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Contact = require('../../models').Contact;
+var ContactPhone = require('../../models').ContactPhone;
+var ContactEmail = require('../../models').ContactEmail;
+var CustomField = require('../../models').CustomField;
+var ReportCall = require('../../models').ReportCall;
+var ReportIntegration = require('../../models').ReportIntegration;
+var Service = require('../../models').Service;
+var ReportCallHistory = require('../../models').history.ReportCallHistory;
+var ReportMailSession = require('../../models').ReportMailSession;
+var ReportMailSessionHistory = require('../../models').history.ReportMailSessionHistory;
+var Tag = require('../../models').Tag;
+var stream = require('stream');
+var sequelize = require('../../models').sequelize;
+var util = require('util');
+
+// Get list of contacts
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'Service.name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page,
+    include: [{
+      model: Service
+    }]
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        if (value === 'service') {
+          _.find(query.include, {
+            model: Service
+          }).order = util.format('name %s', req.query.sort_order || 'ASC');
+        } else {
+          query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        }
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      case 'service':
+        _.find(query.include, {
+          model: Service
+        }).where = {
+          name: {
+            $like: '%' + value + '%'
+          }
+        };
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+  console.log(query);
+
+
+  Contact
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single managed_contact
+exports.show = function(req, res) {
+  Contact
+    .findById(req.params.id, {
+      include: [{
+        model: ContactPhone,
+        as: 'Phones',
+        include: [{
+          model: ReportCall,
+          as: 'Inbounds',
+          include: [{
+            all: true
+          }]
+        }, {
+          model: ReportCall,
+          as: 'Outbounds',
+          include: [{
+            all: true
+          }]
+        }, {
+          model: ReportCallHistory,
+          as: 'HistoryInbounds',
+          include: [{
+            all: true
+          }]
+        }, {
+          model: ReportCallHistory,
+          as: 'HistoryOutbounds',
+          include: [{
+            all: true
+          }]
+        }]
+      }, {
+        model: ContactEmail,
+        as: 'Emails',
+        include: [{
+          model: ReportMailSession,
+          as: 'InboundMessages',
+          include: [{
+            all: true
+          }]
+        }, {
+          model: ReportMailSession,
+          as: 'OutboundMessages',
+          include: [{
+            all: true
+          }]
+        }, {
+          model: ReportMailSessionHistory,
+          as: 'HistoryInboundMessages',
+          include: [{
+            all: true
+          }]
+        }, {
+          model: ReportMailSessionHistory,
+          as: 'HistoryOutboundMessages',
+          include: [{
+            all: true
+          }]
+        }]
+      }, {
+        model: CustomField,
+        as: 'CustomFields'
+      }, {
+        model: Service
+      }]
+    })
+    .then(function(managed_contact) {
+      if (!managed_contact) {
+        return res.sendStatus(404);
+      }
+      return res.status(200).send(managed_contact);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+exports.getEventContacts = function(req, res) {
+  ReportIntegration
+    .findById(req.params.id)
+    .then(function(event) {
+      var modelInclude = {};
+      switch (event.eventChannel) {
+        case 'voice':
+          modelInclude = {
+            model: ContactPhone,
+            as: 'Phones',
+            where: {
+              phone: event.calleridnum
+            }
+          };
+          break;
+        case 'mail':
+          modelInclude = {
+            model: ContactEmail,
+            as: 'Emails',
+            where: {
+              email: event.from
+            }
+          };
+          break;
+        default:
+      }
+      return Contact.findAll({
+        include: [modelInclude, {
+          model: Service,
+          where: {
+            id: _.pluck(_.pluck(req.user.Services, 'dataValues'), 'id')
+          }
+        }]
+      });
+    })
+    .then(function(contacts) {
+      return res.status(200).send(contacts);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+
+};
+
+// validate contact uniqueness
+exports.contactValidation = function(req, res) {
+  Contact.findAll({
+      where: {
+        $or: {
+          '$Phones.phone$': req.body.phones,
+          '$Emails.email$': req.body.emails
+        }
+      },
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(contacts) {
+      console.log(contacts);
+      return res.status(200).send(contacts);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Creates a new managed_contact in the DB.
+exports.create = function(req, res, next) {
+  var newPhones = [],
+    newEmails = [],
+    newCustomFields = {};
+  Tag.findAll()
+    .then(function(tags) {
+      var newTags = [];
+      var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
+      if (req.body.tags) {
+        var contactTags = req.body.tags.split(',');
+        contactTags.forEach(function(elem) {
+          if (!_.includes(tags, elem)) {
+            newTags.push({
+              name: elem
+            });
+          }
+        });
+        if (newTags.length) {
+          Tag.bulkCreate(newTags, {
+            individualHooks: true
+          });
+        }
+      }
+      req.body.UserId = req.user.id;
+      var phones = _.uniq(_.pluck(req.body.Phones, 'phone'));
+      var contactPhones = [];
+      phones.forEach(function(elem) {
+        contactPhones.push(ContactPhone.findOrCreate({
+          where: {
+            phone: elem
+          },
+          defaults: {
+            phone: elem
+          }
+        }));
+      });
+      return contactPhones;
+    })
+    .all()
+    .then(function(res) {
+      newPhones = _.map(res, function(elem) {
+        return elem[0];
+      });
+
+      var contactEmails = [];
+      var emails = _.uniq(_.pluck(req.body.Emails, 'email'));
+      emails.forEach(function(elem) {
+        contactEmails.push(ContactEmail.findOrCreate({
+          where: {
+            email: elem
+          },
+          defaults: {
+            email: elem
+          }
+        }));
+      });
+      return contactEmails;
+    })
+    .all()
+    .then(function(res) {
+      newEmails = _.map(res, function(elem) {
+        return elem[0];
+      });
+      delete req.body.Phones;
+      delete req.body.Emails;
+      newCustomFields = _.clone(req.body.customFields);
+      delete req.body.customFields;
+
+      return Contact.create(req.body);
+    })
+    .then(function(contact) {
+      return [contact, contact.setPhones(newPhones)];
+    })
+    .spread(function(contact) {
+      return [contact, contact.setEmails(newEmails)];
+    })
+    .spread(function(contact) {
+      var customFieldsIds = _.keys(newCustomFields);
+      return [contact, CustomField.findAll({
+        where: {
+          id: customFieldsIds
+        }
+      })];
+    })
+    .spread(function(contact, customFields) {
+      customFields.forEach(function(elem) {
+        elem.ContactHasCustomField = {
+          value: newCustomFields[String(elem.id)]
+        }
+      });
+      return [contact, contact.setCustomFields(customFields)];
+    })
+    .spread(function(contact) {
+      return res.status(201).send(contact);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return next(err);
+    });
+};
+
+// Updates an existing managed_contact in the DB.
+exports.update = function(req, res, next) {
+  var newPhones = [],
+    newEmails = [],
+    newCustomFields = {};
+  Tag.findAll()
+    .then(function(tags) {
+      var newTags = [];
+      var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
+      if (req.body.tags) {
+        var contactTags = req.body.tags.split(',');
+        contactTags.forEach(function(elem) {
+          if (!_.includes(tags, elem)) {
+            newTags.push({
+              name: elem
+            });
+          }
+        });
+        if (newTags.length) {
+          Tag.bulkCreate(newTags, {
+            individualHooks: true
+          });
+        }
+      }
+      var contactPhones = [];
+      var phones = _.uniq(_.pluck(req.body.Phones, 'phone'));
+      phones.forEach(function(elem) {
+        contactPhones.push(ContactPhone.findOrCreate({
+          where: {
+            phone: elem
+          },
+          defaults: {
+            phone: elem
+          }
+        }));
+      });
+      return contactPhones;
+    })
+    .all()
+    .then(function(res) {
+      newPhones = _.map(res, function(elem) {
+        return elem[0];
+      });
+
+      var contactEmails = [];
+      var emails = _.uniq(_.pluck(req.body.Emails, 'email'));
+      emails.forEach(function(elem) {
+        contactEmails.push(ContactEmail.findOrCreate({
+          where: {
+            email: elem
+          },
+          defaults: {
+            email: elem
+          }
+        }));
+      });
+      return contactEmails;
+    })
+    .all()
+    .then(function(res) {
+      newEmails = _.map(res, function(elem) {
+        return elem[0];
+      });
+      delete req.body.Phones;
+      delete req.body.Emails;
+      newCustomFields = _.clone(req.body.customFields);
+      delete req.body.customFields;
+      delete req.body.CustomFields;
+      var updateId = req.body.id;
+      delete req.body.id;
+
+      return Contact.findById(updateId);
+    })
+    .then(function(contact) {
+      return [contact, contact.setPhones(newPhones)];
+    })
+    .spread(function(contact) {
+      return [contact, contact.setEmails(newEmails)];
+    })
+    .spread(function(contact) {
+      var customFieldsIds = _.keys(newCustomFields);
+      return [contact, CustomField.findAll({
+        where: {
+          id: customFieldsIds
+        }
+      })];
+    })
+    .spread(function(contact, customFields) {
+      customFields.forEach(function(elem) {
+        elem.ContactHasCustomField = {
+          value: newCustomFields[String(elem.id)]
+        }
+      });
+      return [contact, contact.setCustomFields(customFields)];
+    })
+    .spread(function(contact) {
+      return contact.updateAttributes(req.body)
+    })
+    .then(function(contact) {
+      return res.status(200).send(contact);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Deletes a managed_contact from the DB.
+exports.destroy = function(req, res) {
+  Contact
+    .findById(req.params.id)
+    .then(function(managed_contact) {
+      if (!managed_contact) {
+        return res.sendStatus(404);
+      }
+      managed_contact.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a managed_contact from the DB.
+exports.bulkDestroy = function(req, res) {
+  Contact
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index c2f389b..addfca0 100644 (file)
@@ -1 +1,24 @@
-var _0xf911=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0xf911[0];var Contact=require(_0xf911[2])[_0xf911[1]];exports[_0xf911[3]]=function(_0x90fbx2){Contact[_0xf911[4]](function(_0x90fbx3){onSave(_0x90fbx2,_0x90fbx3)});Contact[_0xf911[5]](function(_0x90fbx3){onRemove(_0x90fbx2,_0x90fbx3)});};function onSave(_0x90fbx2,_0x90fbx3,_0x90fbx5){_0x90fbx2[_0xf911[7]](_0xf911[6],_0x90fbx3)}function onRemove(_0x90fbx2,_0x90fbx3,_0x90fbx5){_0x90fbx2[_0xf911[7]](_0xf911[8],_0x90fbx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Contact = require('../../models').Contact;
+
+exports.register = function(socket) {
+  Contact.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Contact.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('contact_manager:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('contact_manager:remove', doc);
+}
index b14c54f..e751625 100644 (file)
@@ -1 +1,20 @@
-var _0x60f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x67\x65\x74"];_0x60f7[0];var should=require(_0x60f7[1]);var app=require(_0x60f7[2]);var request=require(_0x60f7[3]);describe(_0x60f7[4],function(){it(_0x60f7[5],function(_0x9912x4){request(app)[_0x60f7[13]](_0x60f7[12])[_0x60f7[11]](200)[_0x60f7[11]](_0x60f7[10],/json/)[_0x60f7[9]](function(_0x9912x5,_0x9912x6){if(_0x9912x5){return _0x9912x4(_0x9912x5)};_0x9912x6[_0x60f7[8]][_0x60f7[1]][_0x60f7[7]][_0x60f7[6]](Array);_0x9912x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/contactmanager', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/contactmanager')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 493265b..f5b862a 100644 (file)
@@ -1 +1,19 @@
-var _0x3116=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x69\x73\x74\x6F\x72\x79","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x63\x6F\x6E\x74\x61\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x3116[0];var express=require(_0x3116[1]);var controller=require(_0x3116[2]);var auth=require(_0x3116[3]);var router=express.Router();router[_0x3116[7]](_0x3116[4],auth[_0x3116[5]](),controller[_0x3116[6]]);router[_0x3116[7]](_0x3116[8],auth[_0x3116[5]](),controller[_0x3116[9]]);router[_0x3116[7]](_0x3116[10],auth[_0x3116[5]](),controller[_0x3116[11]]);router[_0x3116[13]](_0x3116[4],auth[_0x3116[5]](),controller[_0x3116[12]]);router[_0x3116[13]](_0x3116[14],auth[_0x3116[5]](),controller[_0x3116[15]]);router[_0x3116[17]](_0x3116[8],auth[_0x3116[5]](),controller[_0x3116[16]]);router[_0x3116[18]](_0x3116[8],auth[_0x3116[5]](),controller[_0x3116[16]]);router[_0x3116[20]](_0x3116[4],auth[_0x3116[5]](),controller[_0x3116[19]]);router[_0x3116[20]](_0x3116[8],auth[_0x3116[5]](),controller[_0x3116[21]]);module[_0x3116[22]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./contact_manager.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/checkevent/:id', auth.isAuthenticated(), controller.getEventContacts);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.contactValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/custom_field/custom_field.controller.js b/server/api/custom_field/custom_field.controller.js
deleted file mode 100644 (file)
index 08a93cc..0000000
+++ /dev/null
@@ -1 +0,0 @@
-var _0xc747=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x67\x65\x74\x41\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x43\x55\x53\x54\x4F\x4D\x5F\x46\x49\x45\x4C\x44","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65"];_0xc747[0];var _=require(_0xc747[1]);var CustomField=require(_0xc747[3])[_0xc747[2]];var util=require(_0xc747[4]);exports[_0xc747[5]]=function(_0xc1ddx4,_0xc1ddx5){var _0xc1ddx6=[_0xc747[6],_0xc747[7]];var _0xc1ddx7=_0xc1ddx4[_0xc747[9]][_0xc747[8]]?parseInt(_0xc1ddx4[_0xc747[9]][_0xc747[8]],10):100;var _0xc1ddx8=_0xc1ddx4[_0xc747[9]][_0xc747[10]]?parseInt(_0xc1ddx4[_0xc747[9]][_0xc747[10]],10):0;var _0xc1ddx9={where:{active:true},limit:_0xc1ddx7,offset:_0xc1ddx8*_0xc1ddx7};_[_0xc747[24]](_0xc1ddx4[_0xc747[9]],function(_0xc1ddxa,_0xc1ddxb){switch(_0xc1ddxb){case _0xc747[8]:;case _0xc747[10]:break ;;case _0xc747[13]:_0xc1ddx9[_0xc747[11]]=util[_0xc747[16]](_0xc747[12],_0xc1ddx4[_0xc747[9]][_0xc747[13]],_0xc1ddx4[_0xc747[9]][_0xc747[14]]||_0xc747[15])||null;break ;;case _0xc747[14]:break ;;case _0xc747[22]:_0xc1ddx9[_0xc747[18]][_0xc747[17]]=[];_0xc1ddx6[_0xc747[21]](function(_0xc1ddxc){var _0xc1ddxd={};_0xc1ddxd[_0xc1ddxc]={$like:_0xc747[19]+_0xc1ddxa+_0xc747[19]};_0xc1ddx9[_0xc747[18]][_0xc747[17]][_0xc747[20]](_0xc1ddxd);});break ;;default:_0xc1ddx9[_0xc747[18]][_0xc1ddxb]={$like:{}};_0xc1ddx9[_0xc747[18]][_0xc1ddxb][_0xc747[23]]=_0xc747[19]+_0xc1ddxa+_0xc747[19];;}});CustomField[_0xc747[39]](_0xc1ddx9)[_0xc747[38]](function(_0xc1ddxf){var _0xc1ddx10=Math[_0xc747[30]](_0xc1ddxf[_0xc747[29]]/_0xc1ddx7);var _0xc1ddx11=_0xc1ddx10>(_0xc1ddx9[_0xc747[31]]+1)?util[_0xc747[16]](_0xc747[32],_0xc1ddx4[_0xc747[33]],_0xc1ddx4[_0xc747[35]][_0xc747[34]],_0xc1ddx4[_0xc747[36]],_0xc1ddx8+1):null;var _0xc1ddx12=_0xc1ddx8>0?util[_0xc747[16]](_0xc747[32],_0xc1ddx4[_0xc747[33]],_0xc1ddx4[_0xc747[35]][_0xc747[34]],_0xc1ddx4[_0xc747[36]],_0xc1ddx8-1):null;_0xc1ddx5[_0xc747[27]](200)[_0xc747[26]]({count:_0xc1ddxf[_0xc747[29]],rows:_0xc1ddxf[_0xc747[37]],next_page:_0xc1ddx11,previous_page:_0xc1ddx12,total_pages:_0xc1ddx10});})[_0xc747[28]](function(_0xc1ddxe){_0xc1ddx5[_0xc747[27]](500)[_0xc747[26]]({error:_0xc747[25]})});};exports[_0xc747[40]]=function(_0xc1ddx4,_0xc1ddx5){CustomField[_0xc747[41]]()[_0xc747[38]](function(_0xc1ddx13){return _0xc1ddx5[_0xc747[27]](200)[_0xc747[26]](_0xc1ddx13)})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)})};exports[_0xc747[42]]=function(_0xc1ddx4,_0xc1ddx5){console[_0xc747[44]](_0xc1ddx4[_0xc747[43]]);CustomField[_0xc747[41]]({where:{name:_0xc1ddx4[_0xc747[43]][_0xc747[6]]}})[_0xc747[38]](function(_0xc1ddx13){if(!_0xc1ddx13){return _0xc1ddx5[_0xc747[45]](404)};return _0xc1ddx5[_0xc747[26]](_0xc1ddx13);})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)});};exports[_0xc747[46]]=function(_0xc1ddx4,_0xc1ddx5){CustomField[_0xc747[49]](_0xc1ddx4[_0xc747[48]][_0xc747[47]])[_0xc747[38]](function(_0xc1ddx14){if(!_0xc1ddx14){return _0xc1ddx5[_0xc747[45]](404)};return _0xc1ddx5[_0xc747[26]](_0xc1ddx14);})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)})};exports[_0xc747[50]]=function(_0xc1ddx4,_0xc1ddx5){CustomField[_0xc747[50]](_0xc1ddx4[_0xc747[43]])[_0xc747[38]](function(_0xc1ddx14){return _0xc1ddx5[_0xc747[27]](201)[_0xc747[26]](_0xc1ddx14)})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)})};exports[_0xc747[51]]=function(_0xc1ddx4,_0xc1ddx5){CustomField[_0xc747[41]]({where:{name:_0xc1ddx4[_0xc747[43]][_0xc747[6]],id:{$ne:_0xc1ddx4[_0xc747[43]][_0xc747[47]]}}})[_0xc747[38]](function(_0xc1ddx13){if(!_0xc1ddx13){return _0xc1ddx5[_0xc747[45]](404)};if(_0xc1ddx13[_0xc747[52]]>0){return _0xc1ddx5[_0xc747[27]](500)[_0xc747[26]]({message:_0xc747[53]})};if(_0xc1ddx4[_0xc747[43]][_0xc747[47]]){delete _0xc1ddx4[_0xc747[43]][_0xc747[47]]};CustomField[_0xc747[49]](_0xc1ddx4[_0xc747[48]][_0xc747[47]])[_0xc747[38]](function(_0xc1ddx14){if(!_0xc1ddx14){return _0xc1ddx5[_0xc747[45]](404)};var _0xc1ddx15=_[_0xc747[54]](_0xc1ddx14,_0xc1ddx4[_0xc747[43]]);_0xc1ddx15[_0xc747[55]]()[_0xc747[38]](function(){return _0xc1ddx5[_0xc747[27]](200)[_0xc747[26]](_0xc1ddx14)})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)});})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)});})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)})};exports[_0xc747[56]]=function(_0xc1ddx4,_0xc1ddx5){CustomField[_0xc747[49]](_0xc1ddx4[_0xc747[48]][_0xc747[47]])[_0xc747[38]](function(_0xc1ddx14){if(!_0xc1ddx14){return _0xc1ddx5[_0xc747[45]](404)};_0xc1ddx14[_0xc747[51]]({active:false})[_0xc747[38]](function(){return _0xc1ddx5[_0xc747[45]](204)})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)});})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)})};exports[_0xc747[57]]=function(_0xc1ddx4,_0xc1ddx5){CustomField[_0xc747[51]]({active:false},{where:{id:_0xc1ddx4[_0xc747[9]][_0xc747[47]]},individualHooks:true})[_0xc747[38]](function(){return _0xc1ddx5[_0xc747[45]](204)})[_0xc747[28]](function(_0xc1ddxe){return handleError(_0xc1ddx5,_0xc1ddxe)})};function handleError(_0xc1ddx5,_0xc1ddxe){return _0xc1ddx5[_0xc747[27]](500)[_0xc747[26]](_0xc1ddxe)}
\ No newline at end of file
diff --git a/server/api/custom_field/custom_field.socket.js b/server/api/custom_field/custom_field.socket.js
deleted file mode 100644 (file)
index bc68b25..0000000
+++ /dev/null
@@ -1 +0,0 @@
-var _0x87da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x87da[0];var CustomField=require(_0x87da[2])[_0x87da[1]];exports[_0x87da[3]]=function(_0xe70dx2){CustomField[_0x87da[4]](function(_0xe70dx3){onSave(_0xe70dx2,_0xe70dx3)});CustomField[_0x87da[6]](function(_0xe70dx3){if(!_0xe70dx3[_0x87da[5]]){onRemove(_0xe70dx2,_0xe70dx3)}});CustomField[_0x87da[7]](function(_0xe70dx3){onRemove(_0xe70dx2,_0xe70dx3)});};function onSave(_0xe70dx2,_0xe70dx3,_0xe70dx5){_0xe70dx2[_0x87da[9]](_0x87da[8],_0xe70dx3)}function onRemove(_0xe70dx2,_0xe70dx3,_0xe70dx5){_0xe70dx2[_0x87da[9]](_0x87da[10],_0xe70dx3)}
\ No newline at end of file
diff --git a/server/api/custom_field/custom_field.spec.js b/server/api/custom_field/custom_field.spec.js
deleted file mode 100644 (file)
index e351668..0000000
+++ /dev/null
@@ -1 +0,0 @@
-var _0x4306=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x73","\x67\x65\x74"];_0x4306[0];var should=require(_0x4306[1]);var app=require(_0x4306[2]);var request=require(_0x4306[3]);describe(_0x4306[4],function(){it(_0x4306[5],function(_0xd468x4){request(app)[_0x4306[13]](_0x4306[12])[_0x4306[11]](200)[_0x4306[11]](_0x4306[10],/json/)[_0x4306[9]](function(_0xd468x5,_0xd468x6){if(_0xd468x5){return _0xd468x4(_0xd468x5)};_0xd468x6[_0x4306[8]][_0x4306[1]][_0x4306[7]][_0x4306[6]](Array);_0xd468x4();})})});
\ No newline at end of file
diff --git a/server/api/custom_field/index.js b/server/api/custom_field/index.js
deleted file mode 100644 (file)
index 3981b49..0000000
+++ /dev/null
@@ -1 +0,0 @@
-var _0xd250=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x6C\x6C","\x67\x65\x74\x41\x6C\x6C","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd250[0];var express=require(_0xd250[1]);var controller=require(_0xd250[2]);var auth=require(_0xd250[3]);var router=express.Router();router[_0xd250[7]](_0xd250[4],auth[_0xd250[5]](),controller[_0xd250[6]]);router[_0xd250[7]](_0xd250[8],auth[_0xd250[5]](),controller[_0xd250[9]]);router[_0xd250[7]](_0xd250[10],auth[_0xd250[5]](),controller[_0xd250[11]]);router[_0xd250[13]](_0xd250[4],auth[_0xd250[5]](),controller[_0xd250[12]]);router[_0xd250[13]](_0xd250[14],auth[_0xd250[5]](),controller[_0xd250[15]]);router[_0xd250[17]](_0xd250[10],auth[_0xd250[5]](),controller[_0xd250[16]]);router[_0xd250[18]](_0xd250[10],auth[_0xd250[5]](),controller[_0xd250[16]]);router[_0xd250[20]](_0xd250[4],auth[_0xd250[5]](),controller[_0xd250[19]]);router[_0xd250[20]](_0xd250[10],auth[_0xd250[5]](),controller[_0xd250[21]]);module[_0xd250[22]]=router;
\ No newline at end of file
index 0279640..f849509 100644 (file)
@@ -1 +1,423 @@
-var _0xfa6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x61\x72\x65\x6E\x74","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x72\x6F\x6C\x65","\x73\x70\x6C\x69\x74","\x70\x61\x72\x73\x65","\x66\x6F\x72\x4F\x77\x6E","\x63\x6C\x69\x65\x6E\x74\x51\x75\x65\x72\x79","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x70\x72\x65\x76\x69\x65\x77","\x6C\x6F\x67","\x6C\x65\x6E\x67\x74\x68","\x73\x70\x72\x65\x61\x64","\x61\x6C\x6C","\x66\x6F\x75\x6E\x64\x20\x72\x65\x70\x6F\x72\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x75\x69\x50\x61\x67\x69\x6E\x61\x74\x69\x6F\x6E","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x50\x44\x46","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x43\x53\x56","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x62\x6F\x64\x79","\x65\x6E\x64\x44\x61\x74\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x53\x54\x41\x52\x54\x5F\x4F\x52\x5F\x45\x4E\x44\x5F\x44\x41\x54\x45\x5F\x4D\x49\x53\x53\x49\x4E\x47","\x65\x78\x74\x72\x61\x63\x74","\x63\x72\x65\x61\x74\x65","\x73\x68\x6F\x77","\x63\x6F\x70\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x46\x69\x65\x6C\x64\x73","\x70\x6C\x75\x63\x6B","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x69\x6D\x70\x6F\x72\x74","","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x66\x69\x65\x6C\x64","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43","\x25\x73\x28\x25\x73\x29","\x25\x73\x20\x41\x53\x20\x27\x25\x73\x27","\x61\x6C\x69\x61\x73","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x20","\x2C","\x6A\x6F\x69\x6E","\x2C\x43\x4F\x55\x4E\x54\x28\x2A\x29","\x20\x46\x52\x4F\x4D\x20","\x74\x61\x62\x6C\x65","\x28\x29","\x20\x57\x48\x45\x52\x45\x20","\x70\x65\x72\x50\x61\x67\x65","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3E\x3D\x20\x27","\x27","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3C\x3D\x20\x27","\x66\x69\x6E\x64","\x20\x41\x4E\x44\x20","\x20\x4C\x49\x4B\x45\x20\x27\x25","\x25\x27","\x20\x47\x52\x4F\x55\x50\x20\x42\x59\x20","\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20","\x20\x4C\x49\x4D\x49\x54\x20","\x20\x4F\x46\x46\x53\x45\x54\x20","\x28","\x72\x75\x6C\x65\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x27","\x4C\x49\x4B\x45","\x76\x61\x6C\x75\x65","\x29","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xfa6d[0];var _=require(_0xfa6d[1]);var util=require(_0xfa6d[2]);var sequelize=require(_0xfa6d[4])[_0xfa6d[3]];var CustomReport=require(_0xfa6d[4])[_0xfa6d[5]];var ReportField=require(_0xfa6d[4])[_0xfa6d[6]];var ExtractedReport=require(_0xfa6d[4])[_0xfa6d[7]];var extractUtils=require(_0xfa6d[8]);exports[_0xfa6d[9]]=function(_0xb7dax8,_0xb7dax9,_0xb7daxa){var _0xb7daxb=[_0xfa6d[10],_0xfa6d[11],_0xfa6d[12]];var _0xb7daxc=_0xb7dax8[_0xfa6d[14]][_0xfa6d[13]]?parseInt(_0xb7dax8[_0xfa6d[14]][_0xfa6d[13]],10):100;var _0xb7daxd=_0xb7dax8[_0xfa6d[14]][_0xfa6d[15]]?parseInt(_0xb7dax8[_0xfa6d[14]][_0xfa6d[15]],10):0;var _0xb7daxe={where:{},limit:_0xb7daxc,offset:_0xb7daxd*_0xb7daxc};_[_0xfa6d[34]](_0xb7dax8[_0xfa6d[14]],function(_0xb7daxf,_0xb7dax10){switch(_0xb7dax10){case _0xfa6d[13]:;case _0xfa6d[15]:break ;;case _0xfa6d[18]:_0xb7daxe[_0xfa6d[16]]=util[_0xfa6d[21]](_0xfa6d[17],_0xb7dax8[_0xfa6d[14]][_0xfa6d[18]],_0xb7dax8[_0xfa6d[14]][_0xfa6d[19]]||_0xfa6d[20])||null;break ;;case _0xfa6d[19]:break ;;case _0xfa6d[27]:_0xb7daxe[_0xfa6d[23]][_0xfa6d[22]]=[];_0xb7daxb[_0xfa6d[26]](function(_0xb7dax11){var _0xb7dax12={};_0xb7dax12[_0xb7dax11]={$like:_0xfa6d[24]+_0xb7daxf+_0xfa6d[24]};_0xb7daxe[_0xfa6d[23]][_0xfa6d[22]][_0xfa6d[25]](_0xb7dax12);});break ;;case _0xfa6d[28]:_0xb7daxe[_0xfa6d[23]][_0xfa6d[28]]={$or:_0xb7daxf[_0xfa6d[29]](/[\s,]+/)};break ;;case _0xfa6d[32]:var _0xb7dax13=JSON[_0xfa6d[30]](_0xb7daxf);_[_0xfa6d[31]](_0xb7dax13,function(_0xb7dax14,_0xb7dax15){_0xb7daxe[_0xfa6d[23]][_0xb7dax15]=_0xb7dax14});break ;;default:_0xb7daxe[_0xfa6d[23]][_0xb7dax10]={$like:{}};_0xb7daxe[_0xfa6d[23]][_0xb7dax10][_0xfa6d[33]]=_0xfa6d[24]+_0xb7daxf+_0xfa6d[24];;}});CustomReport[_0xfa6d[49]](_0xb7daxe)[_0xfa6d[48]](function(_0xb7dax17){var _0xb7dax18=Math[_0xfa6d[40]](_0xb7dax17[_0xfa6d[39]]/_0xb7daxc);var _0xb7dax19=_0xb7dax18>(_0xb7daxe[_0xfa6d[41]]+1)?util[_0xfa6d[21]](_0xfa6d[42],_0xb7dax8[_0xfa6d[43]],_0xb7dax8[_0xfa6d[45]][_0xfa6d[44]],_0xb7dax8[_0xfa6d[46]],_0xb7daxd+1):null;var _0xb7dax1a=_0xb7daxd>0?util[_0xfa6d[21]](_0xfa6d[42],_0xb7dax8[_0xfa6d[43]],_0xb7dax8[_0xfa6d[45]][_0xfa6d[44]],_0xb7dax8[_0xfa6d[46]],_0xb7daxd-1):null;_0xb7dax9[_0xfa6d[37]](200)[_0xfa6d[36]]({count:_0xb7dax17[_0xfa6d[39]],rows:_0xb7dax17[_0xfa6d[47]],next_page:_0xb7dax19,previous_page:_0xb7dax1a,total_pages:_0xb7dax18});})[_0xfa6d[38]](function(_0xb7dax16){_0xb7dax9[_0xfa6d[37]](500)[_0xfa6d[36]]({error:_0xfa6d[35]})});};exports[_0xfa6d[50]]=function(_0xb7dax8,_0xb7dax9){CustomReport[_0xfa6d[63]](_0xb7dax8[_0xfa6d[62]][_0xfa6d[61]],{include:[{all:true}]})[_0xfa6d[48]](function(_0xb7dax1d){console[_0xfa6d[51]](_0xfa6d[55]);if(!_0xb7dax1d){return _0xb7dax9[_0xfa6d[56]](404)};var _0xb7daxe=buildReport(_0xb7dax1d[_0xfa6d[57]],_0xb7dax8[_0xfa6d[14]]);var _0xb7dax1e=[sequelize[_0xfa6d[14]](_0xb7daxe,{type:sequelize[_0xfa6d[59]][_0xfa6d[58]]})];if(_0xb7dax8[_0xfa6d[14]][_0xfa6d[60]]){var _0xb7dax1f=buildReport(_0xb7dax1d[_0xfa6d[57]],_0xb7dax8[_0xfa6d[14]],true);_0xb7dax1e[_0xfa6d[25]](sequelize[_0xfa6d[14]](_0xb7dax1f,{type:sequelize[_0xfa6d[59]][_0xfa6d[58]]}));};return _0xb7dax1e;})[_0xfa6d[54]]()[_0xfa6d[53]](function(_0xb7dax1b,_0xb7dax1c){console[_0xfa6d[51]](_0xb7dax1b[_0xfa6d[52]]);console[_0xfa6d[51]](_0xb7dax1c);_0xb7dax9[_0xfa6d[37]](200)[_0xfa6d[36]]({rows:_0xb7dax1b,count:_0xb7dax1c?_0xb7dax1c[0]:null});})[_0xfa6d[38]](function(_0xb7dax16){console[_0xfa6d[51]](_0xb7dax16);return handleError(_0xb7dax9,_0xb7dax16);})};exports[_0xfa6d[64]]=function(_0xb7dax8,_0xb7dax9){docExtract(_0xb7dax8,_0xb7dax9,_0xfa6d[65])};exports[_0xfa6d[66]]=function(_0xb7dax8,_0xb7dax9){docExtract(_0xb7dax8,_0xb7dax9,_0xfa6d[67])};function docExtract(_0xb7dax8,_0xb7dax9,_0xb7dax21){if(!_0xb7dax8[_0xfa6d[69]][_0xfa6d[68]]||!_0xb7dax8[_0xfa6d[69]][_0xfa6d[70]]){return _0xb7dax9[_0xfa6d[37]](500)[_0xfa6d[36]]({message:_0xfa6d[71]})};CustomReport[_0xfa6d[63]](_0xb7dax8[_0xfa6d[62]][_0xfa6d[61]],{include:[{all:true}]})[_0xfa6d[48]](function(_0xb7dax1d){if(!_0xb7dax1d){return _0xb7dax9[_0xfa6d[56]](404)};return [_0xb7dax1d,ExtractedReport[_0xfa6d[73]]({name:_0xb7dax1d[_0xfa6d[10]],startDate:_0xb7dax8[_0xfa6d[69]][_0xfa6d[68]],endDate:_0xb7dax8[_0xfa6d[69]][_0xfa6d[70]],output:_0xb7dax21})];})[_0xfa6d[53]](function(_0xb7dax1d,_0xb7dax22){extractUtils[_0xfa6d[72]+_0xb7dax21](_0xb7dax1d,_0xb7dax8[_0xfa6d[69]][_0xfa6d[68]],_0xb7dax8[_0xfa6d[69]][_0xfa6d[70]],_0xb7dax22[_0xfa6d[61]])})[_0xfa6d[38]](function(_0xb7dax16){console[_0xfa6d[51]](_0xb7dax16);return handleError(_0xb7dax9,_0xb7dax16);});return _0xb7dax9[_0xfa6d[56]](200);}exports[_0xfa6d[74]]=function(_0xb7dax8,_0xb7dax9){CustomReport[_0xfa6d[63]](_0xb7dax8[_0xfa6d[62]][_0xfa6d[61]],{include:[{all:true}]})[_0xfa6d[48]](function(_0xb7dax1d){if(!_0xb7dax1d){return _0xb7dax9[_0xfa6d[56]](404)};return _0xb7dax9[_0xfa6d[36]](_0xb7dax1d);})[_0xfa6d[38]](function(_0xb7dax16){return handleError(_0xb7dax9,_0xb7dax16)})};exports[_0xfa6d[75]]=function(_0xb7dax8,_0xb7dax9){CustomReport[_0xfa6d[63]](_0xb7dax8[_0xfa6d[62]][_0xfa6d[61]],{include:[{all:true}]})[_0xfa6d[48]](function(_0xb7dax1d){if(!_0xb7dax1d){return _0xb7dax9[_0xfa6d[56]](404)};var _0xb7dax23=_0xb7dax1d[_0xfa6d[57]];delete _0xb7dax23[_0xfa6d[61]];delete _0xb7dax23[_0xfa6d[76]];delete _0xb7dax23[_0xfa6d[77]];_0xb7dax23[_0xfa6d[12]]=_0xb7dax8[_0xfa6d[69]][_0xfa6d[12]];_0xb7dax23[_0xfa6d[78]]=_[_0xfa6d[79]](_0xb7dax23.Fields,_0xfa6d[57]);_[_0xfa6d[26]](_0xb7dax23.Fields,function(_0xb7dax24){delete _0xb7dax24[_0xfa6d[61]];delete _0xb7dax24[_0xfa6d[80]];delete _0xb7dax24[_0xfa6d[76]];delete _0xb7dax24[_0xfa6d[77]];});return CustomReport[_0xfa6d[73]](_0xb7dax23,{include:[{all:true}]});})[_0xfa6d[48]](function(){return _0xb7dax9[_0xfa6d[56]](201)})[_0xfa6d[38]](function(_0xb7dax16){console[_0xfa6d[51]](_0xb7dax16);return handleError(_0xb7dax9,_0xb7dax16);})};exports[_0xfa6d[81]]=function(_0xb7dax8,_0xb7dax9){CustomReport[_0xfa6d[73]](_0xb7dax8[_0xfa6d[69]],{include:[{all:true}]})[_0xfa6d[48]](function(_0xb7dax1d){return _0xb7dax9[_0xfa6d[37]](201)[_0xfa6d[36]](_0xb7dax1d)})[_0xfa6d[38]](function(_0xb7dax16){return handleError(_0xb7dax9,_0xb7dax16)})};function buildReport(_0xb7dax1d,_0xb7daxe,_0xb7dax26){var _0xb7dax27=[],_0xb7dax28=[],_0xb7dax29=[];_[_0xfa6d[26]](_0xb7dax1d.Fields,function(_0xb7dax24){var _0xb7dax2a=_0xfa6d[82];if(_0xb7dax24[_0xfa6d[83]]){switch(_0xb7dax24[_0xfa6d[83]]){case _0xfa6d[86]:_0xb7dax2a=util[_0xfa6d[21]](_0xfa6d[84],_0xb7dax24[_0xfa6d[85]]);break ;;case _0xfa6d[88]:_0xb7dax2a=util[_0xfa6d[21]](_0xfa6d[87],_0xb7dax24[_0xfa6d[85]],_0xb7dax24[_0xfa6d[85]]);break ;;case _0xfa6d[90]:_0xb7dax2a=util[_0xfa6d[21]](_0xfa6d[89],_0xb7dax24[_0xfa6d[85]],_0xb7dax24[_0xfa6d[85]]);break ;;default:_0xb7dax2a=util[_0xfa6d[21]](_0xfa6d[91],_0xb7dax24[_0xfa6d[83]],_0xb7dax24[_0xfa6d[85]]);;}}else {_0xb7dax2a=_0xb7dax24[_0xfa6d[85]]};_0xb7dax27[_0xfa6d[25]](util[_0xfa6d[21]](_0xfa6d[92],_0xb7dax2a,_0xb7dax24[_0xfa6d[93]]));if(_0xb7dax24[_0xfa6d[94]]){_0xb7dax28[_0xfa6d[25]](_0xb7dax24[_0xfa6d[85]])};if(_0xb7dax24[_0xfa6d[95]]){_0xb7dax29[_0xfa6d[25]](util[_0xfa6d[21]](_0xfa6d[17],_0xb7dax24[_0xfa6d[85]],_0xb7dax24[_0xfa6d[95]]))};});var _0xb7dax2b=getConditions(JSON[_0xfa6d[30]](_0xb7dax1d[_0xfa6d[97]])[_0xfa6d[96]]);var _0xb7dax2c=_0xfa6d[58];_0xb7dax2c+=_0xfa6d[98]+_0xb7dax27[_0xfa6d[100]](_0xfa6d[99]);if(_0xb7dax26){_0xb7dax2c+=_0xfa6d[101]};_0xb7dax2c+=_0xfa6d[102]+_0xb7dax1d[_0xfa6d[103]];_0xb7dax2c+=_0xb7dax2b!==_0xfa6d[104]?_0xfa6d[105]+_0xb7dax2b:_0xfa6d[82];var _0xb7dax2d=false;var _0xb7dax2e=false;if(_0xb7daxe){_[_0xfa6d[31]](_0xb7daxe,function(_0xb7daxf,_0xb7dax10){switch(_0xb7dax10){case _0xfa6d[15]:if(_0xb7daxe[_0xfa6d[106]]){_0xb7dax2d=parseInt(_0xb7daxe[_0xfa6d[106]],10);_0xb7dax2e=parseInt(_0xb7daxf,10)*_0xb7dax2d;};break ;;case _0xfa6d[106]:_0xb7dax2d=parseInt(_0xb7daxf,10);break ;;case _0xfa6d[68]:_0xb7dax2c+=_0xfa6d[107]+_0xb7daxf+_0xfa6d[108];break ;;case _0xfa6d[70]:_0xb7dax2c+=_0xfa6d[109]+_0xb7daxf+_0xfa6d[108];break ;;case _0xfa6d[60]:break ;;default:var _0xb7dax2f=_[_0xfa6d[110]](_0xb7dax1d.Fields,{alias:_0xb7dax10})[_0xfa6d[85]];if(_0xb7dax2f){_0xb7dax2c+=_0xfa6d[111]+_0xb7dax2f+_0xfa6d[112]+_0xb7daxf+_0xfa6d[113]}else {_0xb7dax2c+=_0xfa6d[111]+_0xb7dax10+_0xfa6d[112]+_0xb7daxf+_0xfa6d[113]};;}})};_0xb7dax2c+=_0xb7dax28[_0xfa6d[52]]?_0xfa6d[114]+_0xb7dax28[_0xfa6d[100]](_0xfa6d[99]):_0xfa6d[82];_0xb7dax2c+=_0xb7dax29[_0xfa6d[52]]?_0xfa6d[115]+_0xb7dax29[_0xfa6d[100]](_0xfa6d[99]):_0xfa6d[82];_0xb7dax2c+=_0xb7dax2d&&!_0xb7dax26?_0xfa6d[116]+_0xb7dax2d:_0xfa6d[82];_0xb7dax2c+=_0xb7dax2e&&!_0xb7dax26?_0xfa6d[117]+_0xb7dax2e:_0xfa6d[82];return _0xb7dax2c;}function getConditions(_0xb7dax31){if(!_0xb7dax31){return _0xfa6d[82]};for(var _0xb7dax32=_0xfa6d[118],_0xb7dax33=0;_0xb7dax33<_0xb7dax31[_0xfa6d[119]][_0xfa6d[52]];_0xb7dax33++){_0xb7dax33>0&&(_0xb7dax32+=_0xfa6d[98]+_0xb7dax31[_0xfa6d[120]]+_0xfa6d[98]);_0xb7dax32+=_0xb7dax31[_0xfa6d[119]][_0xb7dax33][_0xfa6d[96]]?getConditions(_0xb7dax31[_0xfa6d[119]][_0xb7dax33][_0xfa6d[96]]):_0xb7dax31[_0xfa6d[119]][_0xb7dax33][_0xfa6d[85]]+_0xfa6d[98]+_0xb7dax31[_0xfa6d[119]][_0xb7dax33][_0xfa6d[121]]+_0xfa6d[122]+(_0xb7dax31[_0xfa6d[119]][_0xb7dax33][_0xfa6d[121]]===_0xfa6d[123]?_0xfa6d[24]+_0xb7dax31[_0xfa6d[119]][_0xb7dax33][_0xfa6d[124]]+_0xfa6d[24]:_0xb7dax31[_0xfa6d[119]][_0xb7dax33][_0xfa6d[124]])+_0xfa6d[108];};return _0xb7dax32+_0xfa6d[125];}exports[_0xfa6d[73]]=function(_0xb7dax8,_0xb7dax9){CustomReport[_0xfa6d[73]](_0xb7dax8[_0xfa6d[69]])[_0xfa6d[48]](function(_0xb7dax1d){return _0xb7dax9[_0xfa6d[37]](201)[_0xfa6d[36]](_0xb7dax1d)})[_0xfa6d[38]](function(_0xb7dax16){return handleError(_0xb7dax9,_0xb7dax16)})};exports[_0xfa6d[126]]=function(_0xb7dax8,_0xb7dax9){if(_0xb7dax8[_0xfa6d[69]][_0xfa6d[61]]){delete _0xb7dax8[_0xfa6d[69]][_0xfa6d[61]]};ReportField[_0xfa6d[128]]({where:{CustomReportId:_0xb7dax8[_0xfa6d[62]][_0xfa6d[61]]}})[_0xfa6d[48]](function(){return ReportField[_0xfa6d[127]](_0xb7dax8[_0xfa6d[69]].Fields)})[_0xfa6d[48]](function(){delete _0xb7dax8[_0xfa6d[69]][_0xfa6d[78]];return CustomReport[_0xfa6d[126]](_0xb7dax8[_0xfa6d[69]],{where:{id:_0xb7dax8[_0xfa6d[62]][_0xfa6d[61]]}});})[_0xfa6d[48]](function(){return _0xb7dax9[_0xfa6d[56]](200)})[_0xfa6d[38]](function(_0xb7dax16){console[_0xfa6d[51]](_0xb7dax16);return handleError(_0xb7dax9,_0xb7dax16);});};exports[_0xfa6d[128]]=function(_0xb7dax8,_0xb7dax9){CustomReport[_0xfa6d[63]](_0xb7dax8[_0xfa6d[62]][_0xfa6d[61]])[_0xfa6d[48]](function(_0xb7dax1d){if(!_0xb7dax1d){return _0xb7dax9[_0xfa6d[56]](404)};_0xb7dax1d[_0xfa6d[128]]()[_0xfa6d[48]](function(){return _0xb7dax9[_0xfa6d[56]](204)})[_0xfa6d[38]](function(_0xb7dax16){return handleError(_0xb7dax9,_0xb7dax16)});})[_0xfa6d[38]](function(_0xb7dax16){return handleError(_0xb7dax9,_0xb7dax16)})};exports[_0xfa6d[129]]=function(_0xb7dax8,_0xb7dax9){CustomReport[_0xfa6d[128]]({where:{id:_0xb7dax8[_0xfa6d[14]][_0xfa6d[61]]},individualHooks:true})[_0xfa6d[48]](function(){return _0xb7dax9[_0xfa6d[56]](204)})[_0xfa6d[38]](function(_0xb7dax16){return handleError(_0xb7dax9,_0xb7dax16)})};function handleError(_0xb7dax9,_0xb7dax16){return _0xb7dax9[_0xfa6d[37]](500)[_0xfa6d[36]](_0xb7dax16)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var sequelize = require('../../models').sequelize;
+var CustomReport = require('../../models').CustomReport;
+var ReportField = require('../../models').ReportField;
+var ExtractedReport = require('../../models').ExtractedReport;
+var extractUtils = require('../../utils/report_extraction');
+
+// Get list of custom reports
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'description', 'parent'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      case 'role':
+        query.where.role = {
+          $or: value.split(/[\s,]+/)
+        };
+        break;
+      case 'clientQuery':
+        var params = JSON.parse(value);
+        _.forOwn(params, function(pValue, pKey) {
+          query.where[pKey] = pValue;
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  CustomReport
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.preview = function(req, res) {
+  CustomReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      console.log('found report');
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      var query = buildReport(report.dataValues, req.query);
+      // console.log(query);
+      var queries = [sequelize.query(query, {
+        type: sequelize.QueryTypes.SELECT
+      })];
+      if (req.query.uiPagination) {
+        var countQuery = buildReport(report.dataValues, req.query, true);
+        queries.push(sequelize.query(countQuery, {
+          type: sequelize.QueryTypes.SELECT
+        }));
+      }
+      return queries;
+    })
+    .all()
+    .spread(function(results, totalItems) {
+      console.log(results.length);
+      console.log(totalItems);
+      res.status(200).send({
+        rows: results,
+        count: totalItems ? totalItems[0] : null
+      });
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+exports.extractPdf = function(req, res) {
+  // console.log('extractPdf api function');
+  docExtract(req, res, 'PDF')
+};
+
+exports.extractCsv = function(req, res) {
+  // console.log('extractCsv api function');
+  docExtract(req, res, 'CSV');
+};
+
+function docExtract(req, res, typeFunction) {
+  // console.log('common docExtract api function');
+  if (!req.body.startDate || !req.body.endDate) {
+    return res.status(500).send({
+      message: 'MESSAGE_START_OR_END_DATE_MISSING'
+    });
+  }
+  CustomReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      // console.log('found the report, creating the new DB row for extracted reports..');
+      //CREATE A DB ROW IN A TABLE WITH THE REPORT INFO, QUERY DATES, AND THE STATUS 'ELABORATING'
+      return [report, ExtractedReport.create({
+        name: report.name,
+        startDate: req.body.startDate,
+        endDate: req.body.endDate,
+        output: typeFunction
+      })]
+    })
+    .spread(function(report, extractedReport) {
+      // console.log('created new extracted reports db entry, calling external extraction function: ' + typeFunction);
+      extractUtils['extract' + typeFunction](report, req.body.startDate, req.body.endDate, extractedReport.id);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+  return res.sendStatus(200);
+}
+
+// Get a single report
+exports.show = function(req, res) {
+  CustomReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      return res.send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Copy a custom report
+exports.copy = function(req, res) {
+  CustomReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      var newReport = report.dataValues;
+      delete newReport.id;
+      delete newReport.createdAt;
+      delete newReport.updatedAt;
+      newReport.parent = req.body.parent;
+      newReport.Fields = _.pluck(newReport.Fields, 'dataValues');
+      _.forEach(newReport.Fields, function(elem) {
+        delete elem.id;
+        delete elem.CustomReportId;
+        delete elem.createdAt;
+        delete elem.updatedAt;
+      });
+
+      return CustomReport.create(newReport, {
+        include: [{
+          all: true
+        }]
+      });
+    })
+    .then(function() {
+      return res.sendStatus(201);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Import a report
+exports.import = function(req, res) {
+  CustomReport
+    .create(req.body, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      return res.status(201).send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function buildReport(report, query, count) {
+  var fields = [],
+    groupBy = [],
+    orderBy = [];
+  _.forEach(report.Fields, function(elem) {
+    var field = '';
+    if (elem.function) {
+      switch (elem.function) {
+        case 'COUNT DISTINCT':
+          field = util.format('COUNT(DISTINCT %s)', elem.field);
+          break;
+        case 'GROUP_CONCAT ASC':
+          field = util.format('GROUP_CONCAT(%s ORDER BY %s ASC)', elem.field, elem.field);
+          break;
+        case 'GROUP_CONCAT DESC':
+          field = util.format('GROUP_CONCAT(%s ORDER BY %s DESC)', elem.field, elem.field);
+          break;
+        default:
+          field = util.format('%s(%s)', elem.function, elem.field);
+      }
+    } else {
+      field = elem.field;
+    }
+    fields.push(util.format('%s AS \'%s\'', field, elem.alias));
+    if (elem.groupBy) {
+      groupBy.push(elem.field);
+    }
+    if (elem.orderBy) {
+      orderBy.push(util.format('%s %s', elem.field, elem.orderBy));
+    }
+  });
+  var conditions = getConditions(JSON.parse(report.conditions).group);
+  var resultQuery = 'SELECT';
+  // query += fields.length ? ' ' + fields.join(',') : ' *';//right if you want to select all fields also
+  resultQuery += ' ' + fields.join(','); //generate a wrong query if there isn' t any field
+  if (count) {
+    resultQuery += ',COUNT(*)';
+  }
+  resultQuery += ' FROM ' + report.table;
+  resultQuery += conditions !== '()' ? ' WHERE ' + conditions : '';
+  var limit = false;
+  var offset = false;
+  if (query) {
+    _.forOwn(query, function(value, key) {
+      switch (key) {
+        case 'page':
+          if (query.perPage) {
+            limit = parseInt(query.perPage, 10);
+            offset = parseInt(value, 10) * limit;
+          }
+          break;
+        case 'perPage':
+          limit = parseInt(value, 10);
+          break;
+        case 'startDate':
+          resultQuery += ' AND createdAt >= \'' + value + '\'';
+          break;
+        case 'endDate':
+          resultQuery += ' AND createdAt <= \'' + value + '\'';
+          break;
+        case 'uiPagination':
+          break;
+        default:
+          var column = _.find(report.Fields, {
+            alias: key
+          }).field;
+          if (column) {
+            resultQuery += ' AND ' + column + ' LIKE \'%' + value + '%\'';
+          } else {
+            resultQuery += ' AND ' + key + ' LIKE \'%' + value + '%\'';
+          }
+      }
+    });
+  }
+  resultQuery += groupBy.length ? ' GROUP BY ' + groupBy.join(',') : '';
+  resultQuery += orderBy.length ? ' ORDER BY ' + orderBy.join(',') : '';
+  resultQuery += limit && !count ? ' LIMIT ' + limit : '';
+  resultQuery += offset && !count ? ' OFFSET ' + offset : '';
+  return resultQuery;
+}
+
+function getConditions(group) {
+  if (!group) return "";
+  for (var str = "(", i = 0; i < group.rules.length; i++) {
+    i > 0 && (str += " " + group.operator + " ");
+    str += group.rules[i].group ?
+      getConditions(group.rules[i].group) :
+      group.rules[i].field + " " + group.rules[i].condition + " '" + (group.rules[i].condition === 'LIKE' ? "%" + group.rules[i].value + "%" : group.rules[i].value) + "'";
+  }
+
+  return str + ')';
+}
+
+// Creates a new report in the DB.
+exports.create = function(req, res) {
+  CustomReport
+    .create(req.body)
+    .then(function(report) {
+      return res.status(201).send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ReportField.destroy({
+      where: {
+        CustomReportId: req.params.id
+      }
+    })
+    .then(function() {
+      return ReportField.bulkCreate(req.body.Fields);
+    })
+    .then(function() {
+      delete req.body.Fields;
+      return CustomReport.update(req.body, {
+        where: {
+          id: req.params.id
+        }
+      });
+    })
+    .then(function() {
+      return res.sendStatus(200);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report from the DB.
+exports.destroy = function(req, res) {
+  CustomReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      report.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  CustomReport
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index e5a0177..07bf827 100644 (file)
@@ -1 +1,24 @@
-var _0x9070=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9070[0];var CustomReport=require(_0x9070[2])[_0x9070[1]];exports[_0x9070[3]]=function(_0xd23dx2){CustomReport[_0x9070[4]](function(_0xd23dx3){onSave(_0xd23dx2,_0xd23dx3)});CustomReport[_0x9070[5]](function(_0xd23dx3){onRemove(_0xd23dx2,_0xd23dx3)});};function onSave(_0xd23dx2,_0xd23dx3,_0xd23dx5){_0xd23dx2[_0x9070[7]](_0x9070[6],_0xd23dx3)}function onRemove(_0xd23dx2,_0xd23dx3,_0xd23dx5){_0xd23dx2[_0x9070[7]](_0x9070[8],_0xd23dx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var CustomReport = require('../../models').CustomReport;
+
+exports.register = function(socket) {
+  CustomReport.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  CustomReport.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('custom_report:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('custom_report:remove', doc);
+}
index 19385e5..905f802 100644 (file)
@@ -1 +1,20 @@
-var _0x5c17=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x63\x75\x73\x74\x6F\x6D","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74"];_0x5c17[0];var should=require(_0x5c17[1]);var app=require(_0x5c17[2]);var request=require(_0x5c17[3]);describe(_0x5c17[4],function(){it(_0x5c17[5],function(_0x35b7x4){request(app)[_0x5c17[13]](_0x5c17[12])[_0x5c17[11]](200)[_0x5c17[11]](_0x5c17[10],/json/)[_0x5c17[9]](function(_0x35b7x5,_0x35b7x6){if(_0x35b7x5){return _0x35b7x4(_0x35b7x5)};_0x35b7x6[_0x5c17[8]][_0x5c17[1]][_0x5c17[7]][_0x5c17[6]](Array);_0x35b7x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/reports/custom', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytic/reports/custom')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 8df7d75..b4ac7c2 100644 (file)
@@ -1 +1,21 @@
-var _0x3e0a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x70\x72\x65\x76\x69\x65\x77\x2F\x3A\x69\x64","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x70\x64\x66\x2F\x3A\x69\x64","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x63\x73\x76\x2F\x3A\x69\x64","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x2F\x69\x6D\x70\x6F\x72\x74","\x69\x6D\x70\x6F\x72\x74","\x2F\x63\x6F\x70\x79\x2F\x3A\x69\x64","\x63\x6F\x70\x79","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x3e0a[0];var express=require(_0x3e0a[1]);var controller=require(_0x3e0a[2]);var router=express.Router();router[_0x3e0a[5]](_0x3e0a[3],controller[_0x3e0a[4]]);router[_0x3e0a[5]](_0x3e0a[6],controller[_0x3e0a[7]]);router[_0x3e0a[5]](_0x3e0a[8],controller[_0x3e0a[9]]);router[_0x3e0a[11]](_0x3e0a[3],controller[_0x3e0a[10]]);router[_0x3e0a[11]](_0x3e0a[12],controller[_0x3e0a[13]]);router[_0x3e0a[11]](_0x3e0a[14],controller[_0x3e0a[15]]);router[_0x3e0a[11]](_0x3e0a[16],controller[_0x3e0a[17]]);router[_0x3e0a[11]](_0x3e0a[18],controller[_0x3e0a[19]]);router[_0x3e0a[21]](_0x3e0a[8],controller[_0x3e0a[20]]);router[_0x3e0a[22]](_0x3e0a[8],controller[_0x3e0a[20]]);router[_0x3e0a[24]](_0x3e0a[3],controller[_0x3e0a[23]]);router[_0x3e0a[24]](_0x3e0a[8],controller[_0x3e0a[25]]);module[_0x3e0a[26]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./custom_report.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/preview/:id', controller.preview);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.post('/extract/pdf/:id', controller.extractPdf);
+router.post('/extract/csv/:id', controller.extractCsv);
+router.post('/import', controller.import);
+router.post('/copy/:id', controller.copy);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/', controller.bulkDestroy);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 93561f3..986e3f4 100644 (file)
@@ -1 +1,178 @@
-var _0x5489=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x61\x6C\x6C","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x5489[0];var _=require(_0x5489[1]);var util=require(_0x5489[2]);var Dashboard=require(_0x5489[4])[_0x5489[3]];exports[_0x5489[5]]=function(_0x2903x4,_0x2903x5){var _0x2903x6=[_0x5489[6],_0x5489[7]];var _0x2903x7=_0x2903x4[_0x5489[9]][_0x5489[8]]?parseInt(_0x2903x4[_0x5489[9]][_0x5489[8]],10):100;var _0x2903x8=_0x2903x4[_0x5489[9]][_0x5489[10]]?parseInt(_0x2903x4[_0x5489[9]][_0x5489[10]],10):0;var _0x2903x9={where:{},limit:_0x2903x7,offset:_0x2903x8*_0x2903x7};_[_0x5489[24]](_0x2903x4[_0x5489[9]],function(_0x2903xa,_0x2903xb){switch(_0x2903xb){case _0x5489[8]:;case _0x5489[10]:break ;;case _0x5489[13]:_0x2903x9[_0x5489[11]]=util[_0x5489[16]](_0x5489[12],_0x2903x4[_0x5489[9]][_0x5489[13]],_0x2903x4[_0x5489[9]][_0x5489[14]]||_0x5489[15])||null;break ;;case _0x5489[14]:break ;;case _0x5489[22]:_0x2903x9[_0x5489[18]][_0x5489[17]]=[];_0x2903x6[_0x5489[21]](function(_0x2903xc){var _0x2903xd={};_0x2903xd[_0x2903xc]={$like:_0x5489[19]+_0x2903xa+_0x5489[19]};_0x2903x9[_0x5489[18]][_0x5489[17]][_0x5489[20]](_0x2903xd);});break ;;default:_0x2903x9[_0x5489[18]][_0x2903xb]={$like:{}};_0x2903x9[_0x5489[18]][_0x2903xb][_0x5489[23]]=_0x5489[19]+_0x2903xa+_0x5489[19];;}});Dashboard[_0x5489[39]](_0x2903x9)[_0x5489[38]](function(_0x2903xf){var _0x2903x10=Math[_0x5489[30]](_0x2903xf[_0x5489[29]]/_0x2903x7);var _0x2903x11=_0x2903x10>(_0x2903x9[_0x5489[31]]+1)?util[_0x5489[16]](_0x5489[32],_0x2903x4[_0x5489[33]],_0x2903x4[_0x5489[35]][_0x5489[34]],_0x2903x4[_0x5489[36]],_0x2903x8+1):null;var _0x2903x12=_0x2903x8>0?util[_0x5489[16]](_0x5489[32],_0x2903x4[_0x5489[33]],_0x2903x4[_0x5489[35]][_0x5489[34]],_0x2903x4[_0x5489[36]],_0x2903x8-1):null;return _0x2903x5[_0x5489[27]](200)[_0x5489[26]]({count:_0x2903xf[_0x5489[29]],rows:_0x2903xf[_0x5489[37]],next_page:_0x2903x11,previous_page:_0x2903x12,total_pages:_0x2903x10});})[_0x5489[28]](function(_0x2903xe){return _0x2903x5[_0x5489[27]](500)[_0x5489[26]]({error:_0x5489[25]})});};exports[_0x5489[40]]=function(_0x2903x4,_0x2903x5){Dashboard[_0x5489[42]]()[_0x5489[38]](function(_0x2903x13){if(!_0x2903x13){return _0x2903x5[_0x5489[41]](404)};return _0x2903x5[_0x5489[27]](200)[_0x5489[26]](_0x2903x13);})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)})};exports[_0x5489[43]]=function(_0x2903x4,_0x2903x5){Dashboard[_0x5489[46]](_0x2903x4[_0x5489[45]][_0x5489[44]])[_0x5489[38]](function(_0x2903x14){if(!_0x2903x14){return _0x2903x5[_0x5489[41]](404)};return _0x2903x5[_0x5489[26]](_0x2903x14);})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)})};exports[_0x5489[47]]=function(_0x2903x4,_0x2903x5){Dashboard[_0x5489[47]](_0x2903x4[_0x5489[48]])[_0x5489[38]](function(_0x2903x14){return _0x2903x5[_0x5489[27]](201)[_0x5489[26]](_0x2903x14)})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)})};exports[_0x5489[49]]=function(_0x2903x4,_0x2903x5){if(_0x2903x4[_0x5489[48]][_0x5489[44]]){delete _0x2903x4[_0x5489[48]][_0x5489[44]]};Dashboard[_0x5489[46]](_0x2903x4[_0x5489[45]][_0x5489[44]])[_0x5489[38]](function(_0x2903x14){if(!_0x2903x14){return _0x2903x5[_0x5489[41]](404)};var _0x2903x15=_[_0x5489[50]](_0x2903x14,_0x2903x4[_0x5489[48]]);_0x2903x15[_0x5489[51]]()[_0x5489[38]](function(){return _0x2903x5[_0x5489[27]](200)[_0x5489[26]](_0x2903x14)})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)});})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)});};exports[_0x5489[52]]=function(_0x2903x4,_0x2903x5){Dashboard[_0x5489[46]](_0x2903x4[_0x5489[45]][_0x5489[44]])[_0x5489[38]](function(_0x2903x14){if(!_0x2903x14){return _0x2903x5[_0x5489[41]](404)};_0x2903x14[_0x5489[52]]()[_0x5489[38]](function(){return _0x2903x5[_0x5489[41]](204)})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)});})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)})};exports[_0x5489[53]]=function(_0x2903x4,_0x2903x5){Dashboard[_0x5489[52]]({where:{id:_0x2903x4[_0x5489[9]][_0x5489[44]]},individualHooks:true})[_0x5489[38]](function(){return _0x2903x5[_0x5489[41]](204)})[_0x5489[28]](function(_0x2903xe){return handleError(_0x2903x5,_0x2903xe)})};function handleError(_0x2903x5,_0x2903xe){return _0x2903x5[_0x5489[27]](500)[_0x5489[26]](_0x2903xe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var Dashboard = require('../../models').Dashboard;
+
+// Get list of dashboards
+exports.index = function(req, res) {
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Dashboard
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single dashboard
+exports.all = function(req, res) {
+  Dashboard
+    .findAll()
+    .then(function(dashboards) {
+      if (!dashboards) {
+        return res.sendStatus(404);
+      }
+      return res.status(200).send(dashboards);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single dashboard
+exports.show = function(req, res) {
+  Dashboard
+    .findById(req.params.id)
+    .then(function(dashboard) {
+      if (!dashboard) {
+        return res.sendStatus(404);
+      }
+      return res.send(dashboard);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new dashboard in the DB.
+exports.create = function(req, res) {
+  Dashboard
+    .create(req.body)
+    .then(function(dashboard) {
+      return res.status(201).send(dashboard);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing dashboard in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Dashboard
+    .findById(req.params.id)
+    .then(function(dashboard) {
+      if (!dashboard) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(dashboard, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(dashboard);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a dashboard from the DB.
+exports.destroy = function(req, res) {
+  Dashboard
+    .findById(req.params.id)
+    .then(function(dashboard) {
+      if (!dashboard) {
+        return res.sendStatus(404);
+      }
+      dashboard.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Dashboard
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index e3664d8..9bf2215 100644 (file)
@@ -1 +1,27 @@
-var _0xc696=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0xc696[0];var Dashboard=require(_0xc696[2])[_0xc696[1]];exports[_0xc696[3]]=function(_0x5483x2){Dashboard[_0xc696[4]](function(_0x5483x3){onSave(_0x5483x2,_0x5483x3)});Dashboard[_0xc696[5]](function(_0x5483x3){onSave(_0x5483x2,_0x5483x3)});Dashboard[_0xc696[6]](function(_0x5483x3){onRemove(_0x5483x2,_0x5483x3)});};function onSave(_0x5483x2,_0x5483x3,_0x5483x5){_0x5483x2[_0xc696[8]](_0xc696[7],_0x5483x3)}function onRemove(_0x5483x2,_0x5483x3,_0x5483x5){_0x5483x2[_0xc696[8]](_0xc696[9],_0x5483x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Dashboard = require('../../models').Dashboard;
+
+exports.register = function(socket) {
+  Dashboard.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Dashboard.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  Dashboard.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('dashboard:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('dashboard:remove', doc);
+}
index ae3b659..4784e74 100644 (file)
@@ -1 +1,20 @@
-var _0x6e18=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x67\x65\x74"];_0x6e18[0];var should=require(_0x6e18[1]);var app=require(_0x6e18[2]);var request=require(_0x6e18[3]);describe(_0x6e18[4],function(){it(_0x6e18[5],function(_0xef72x4){request(app)[_0x6e18[13]](_0x6e18[12])[_0x6e18[11]](200)[_0x6e18[11]](_0x6e18[10],/json/)[_0x6e18[9]](function(_0xef72x5,_0xef72x6){if(_0xef72x5){return _0xef72x4(_0xef72x5)};_0xef72x6[_0x6e18[8]][_0x6e18[1]][_0x6e18[7]][_0x6e18[6]](Array);_0xef72x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/dashboards', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/dashboards')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index a445864..6f966a0 100644 (file)
@@ -1 +1,18 @@
-var _0x67da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x6C\x6C","\x61\x6C\x6C","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x67da[0];var express=require(_0x67da[1]);var controller=require(_0x67da[2]);var auth=require(_0x67da[3]);var router=express.Router();router[_0x67da[7]](_0x67da[4],auth[_0x67da[5]](),controller[_0x67da[6]]);router[_0x67da[7]](_0x67da[8],auth[_0x67da[5]](),controller[_0x67da[9]]);router[_0x67da[7]](_0x67da[10],auth[_0x67da[5]](),controller[_0x67da[11]]);router[_0x67da[13]](_0x67da[4],auth[_0x67da[5]](),controller[_0x67da[12]]);router[_0x67da[15]](_0x67da[10],auth[_0x67da[5]](),controller[_0x67da[14]]);router[_0x67da[16]](_0x67da[10],auth[_0x67da[5]](),controller[_0x67da[14]]);router[_0x67da[18]](_0x67da[4],auth[_0x67da[5]](),controller[_0x67da[17]]);router[_0x67da[18]](_0x67da[10],auth[_0x67da[5]](),controller[_0x67da[19]]);module[_0x67da[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./dashboard.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/all', auth.isAuthenticated(), controller.all);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 2f06910..133d91d 100644 (file)
@@ -1 +1,386 @@
-var _0xc0cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x61\x72\x65\x6E\x74","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x72\x6F\x6C\x65","\x73\x70\x6C\x69\x74","\x70\x61\x72\x73\x65","\x66\x6F\x72\x4F\x77\x6E","\x63\x6C\x69\x65\x6E\x74\x51\x75\x65\x72\x79","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x70\x72\x65\x76\x69\x65\x77","\x6C\x6F\x67","\x6C\x65\x6E\x67\x74\x68","\x73\x70\x72\x65\x61\x64","\x61\x6C\x6C","\x66\x6F\x75\x6E\x64\x20\x72\x65\x70\x6F\x72\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x75\x69\x50\x61\x67\x69\x6E\x61\x74\x69\x6F\x6E","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x50\x44\x46","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x43\x53\x56","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x62\x6F\x64\x79","\x65\x6E\x64\x44\x61\x74\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x53\x54\x41\x52\x54\x5F\x4F\x52\x5F\x45\x4E\x44\x5F\x44\x41\x54\x45\x5F\x4D\x49\x53\x53\x49\x4E\x47","\x65\x78\x74\x72\x61\x63\x74","\x63\x72\x65\x61\x74\x65","","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x66\x69\x65\x6C\x64","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43","\x25\x73\x28\x25\x73\x29","\x25\x73\x20\x41\x53\x20\x27\x25\x73\x27","\x61\x6C\x69\x61\x73","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x20","\x2C","\x6A\x6F\x69\x6E","\x2C\x43\x4F\x55\x4E\x54\x28\x2A\x29","\x20\x46\x52\x4F\x4D\x20","\x74\x61\x62\x6C\x65","\x28\x29","\x20\x57\x48\x45\x52\x45\x20","\x70\x65\x72\x50\x61\x67\x65","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3E\x3D\x20\x27","\x27","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3C\x3D\x20\x27","\x66\x69\x6E\x64","\x20\x41\x4E\x44\x20","\x20\x4C\x49\x4B\x45\x20\x27\x25","\x25\x27","\x20\x47\x52\x4F\x55\x50\x20\x42\x59\x20","\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20","\x20\x4C\x49\x4D\x49\x54\x20","\x20\x4F\x46\x46\x53\x45\x54\x20","\x28","\x72\x75\x6C\x65\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x27","\x4C\x49\x4B\x45","\x76\x61\x6C\x75\x65","\x29","\x73\x68\x6F\x77","\x63\x6F\x70\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x46\x69\x65\x6C\x64\x73","\x70\x6C\x75\x63\x6B","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xc0cc[0];var _=require(_0xc0cc[1]);var util=require(_0xc0cc[2]);var DefaultReport=require(_0xc0cc[4])[_0xc0cc[3]];var sequelize=require(_0xc0cc[4])[_0xc0cc[5]];var CustomReport=require(_0xc0cc[4])[_0xc0cc[6]];var ExtractedReport=require(_0xc0cc[4])[_0xc0cc[7]];var extractUtils=require(_0xc0cc[8]);exports[_0xc0cc[9]]=function(_0xe7c3x8,_0xe7c3x9,_0xe7c3xa){var _0xe7c3xb=[_0xc0cc[10],_0xc0cc[11],_0xc0cc[12]];var _0xe7c3xc=_0xe7c3x8[_0xc0cc[14]][_0xc0cc[13]]?parseInt(_0xe7c3x8[_0xc0cc[14]][_0xc0cc[13]],10):100;var _0xe7c3xd=_0xe7c3x8[_0xc0cc[14]][_0xc0cc[15]]?parseInt(_0xe7c3x8[_0xc0cc[14]][_0xc0cc[15]],10):0;var _0xe7c3xe={where:{},limit:_0xe7c3xc,offset:_0xe7c3xd*_0xe7c3xc};_[_0xc0cc[34]](_0xe7c3x8[_0xc0cc[14]],function(_0xe7c3xf,_0xe7c3x10){switch(_0xe7c3x10){case _0xc0cc[13]:;case _0xc0cc[15]:break ;;case _0xc0cc[18]:_0xe7c3xe[_0xc0cc[16]]=util[_0xc0cc[21]](_0xc0cc[17],_0xe7c3x8[_0xc0cc[14]][_0xc0cc[18]],_0xe7c3x8[_0xc0cc[14]][_0xc0cc[19]]||_0xc0cc[20])||null;break ;;case _0xc0cc[19]:break ;;case _0xc0cc[27]:_0xe7c3xe[_0xc0cc[23]][_0xc0cc[22]]=[];_0xe7c3xb[_0xc0cc[26]](function(_0xe7c3x11){var _0xe7c3x12={};_0xe7c3x12[_0xe7c3x11]={$like:_0xc0cc[24]+_0xe7c3xf+_0xc0cc[24]};_0xe7c3xe[_0xc0cc[23]][_0xc0cc[22]][_0xc0cc[25]](_0xe7c3x12);});break ;;case _0xc0cc[28]:_0xe7c3xe[_0xc0cc[23]][_0xc0cc[28]]={$or:_0xe7c3xf[_0xc0cc[29]](/[\s,]+/)};break ;;case _0xc0cc[32]:var _0xe7c3x13=JSON[_0xc0cc[30]](_0xe7c3xf);_[_0xc0cc[31]](_0xe7c3x13,function(_0xe7c3x14,_0xe7c3x15){_0xe7c3xe[_0xc0cc[23]][_0xe7c3x15]=_0xe7c3x14});break ;;default:_0xe7c3xe[_0xc0cc[23]][_0xe7c3x10]={$like:{}};_0xe7c3xe[_0xc0cc[23]][_0xe7c3x10][_0xc0cc[33]]=_0xc0cc[24]+_0xe7c3xf+_0xc0cc[24];;}});DefaultReport[_0xc0cc[49]](_0xe7c3xe)[_0xc0cc[48]](function(_0xe7c3x17){var _0xe7c3x18=Math[_0xc0cc[40]](_0xe7c3x17[_0xc0cc[39]]/_0xe7c3xc);var _0xe7c3x19=_0xe7c3x18>(_0xe7c3xe[_0xc0cc[41]]+1)?util[_0xc0cc[21]](_0xc0cc[42],_0xe7c3x8[_0xc0cc[43]],_0xe7c3x8[_0xc0cc[45]][_0xc0cc[44]],_0xe7c3x8[_0xc0cc[46]],_0xe7c3xd+1):null;var _0xe7c3x1a=_0xe7c3xd>0?util[_0xc0cc[21]](_0xc0cc[42],_0xe7c3x8[_0xc0cc[43]],_0xe7c3x8[_0xc0cc[45]][_0xc0cc[44]],_0xe7c3x8[_0xc0cc[46]],_0xe7c3xd-1):null;_0xe7c3x9[_0xc0cc[37]](200)[_0xc0cc[36]]({count:_0xe7c3x17[_0xc0cc[39]],rows:_0xe7c3x17[_0xc0cc[47]],next_page:_0xe7c3x19,previous_page:_0xe7c3x1a,total_pages:_0xe7c3x18});})[_0xc0cc[38]](function(_0xe7c3x16){_0xe7c3x9[_0xc0cc[37]](500)[_0xc0cc[36]]({error:_0xc0cc[35]})});};exports[_0xc0cc[50]]=function(_0xe7c3x8,_0xe7c3x9){DefaultReport[_0xc0cc[63]](_0xe7c3x8[_0xc0cc[62]][_0xc0cc[61]],{include:[{all:true}]})[_0xc0cc[48]](function(_0xe7c3x1d){console[_0xc0cc[51]](_0xc0cc[55]);if(!_0xe7c3x1d){return _0xe7c3x9[_0xc0cc[56]](404)};var _0xe7c3xe=buildReport(_0xe7c3x1d[_0xc0cc[57]],_0xe7c3x8[_0xc0cc[14]]);var _0xe7c3x1e=[sequelize[_0xc0cc[14]](_0xe7c3xe,{type:sequelize[_0xc0cc[59]][_0xc0cc[58]]})];if(_0xe7c3x8[_0xc0cc[14]][_0xc0cc[60]]){var _0xe7c3x1f=buildReport(_0xe7c3x1d[_0xc0cc[57]],_0xe7c3x8[_0xc0cc[14]],true);_0xe7c3x1e[_0xc0cc[25]](sequelize[_0xc0cc[14]](_0xe7c3x1f,{type:sequelize[_0xc0cc[59]][_0xc0cc[58]]}));};return _0xe7c3x1e;})[_0xc0cc[54]]()[_0xc0cc[53]](function(_0xe7c3x1b,_0xe7c3x1c){console[_0xc0cc[51]](_0xe7c3x1b[_0xc0cc[52]]);console[_0xc0cc[51]](_0xe7c3x1c);_0xe7c3x9[_0xc0cc[37]](200)[_0xc0cc[36]]({rows:_0xe7c3x1b,count:_0xe7c3x1c?_0xe7c3x1c[0]:null});})[_0xc0cc[38]](function(_0xe7c3x16){console[_0xc0cc[51]](_0xe7c3x16);return handleError(_0xe7c3x9,_0xe7c3x16);})};exports[_0xc0cc[64]]=function(_0xe7c3x8,_0xe7c3x9){docExtract(_0xe7c3x8,_0xe7c3x9,_0xc0cc[65])};exports[_0xc0cc[66]]=function(_0xe7c3x8,_0xe7c3x9){docExtract(_0xe7c3x8,_0xe7c3x9,_0xc0cc[67])};function docExtract(_0xe7c3x8,_0xe7c3x9,_0xe7c3x21){if(!_0xe7c3x8[_0xc0cc[69]][_0xc0cc[68]]||!_0xe7c3x8[_0xc0cc[69]][_0xc0cc[70]]){return _0xe7c3x9[_0xc0cc[37]](500)[_0xc0cc[36]]({message:_0xc0cc[71]})};DefaultReport[_0xc0cc[63]](_0xe7c3x8[_0xc0cc[62]][_0xc0cc[61]],{include:[{all:true}]})[_0xc0cc[48]](function(_0xe7c3x1d){if(!_0xe7c3x1d){return _0xe7c3x9[_0xc0cc[56]](404)};return [_0xe7c3x1d,ExtractedReport[_0xc0cc[73]]({name:_0xe7c3x1d[_0xc0cc[10]],startDate:_0xe7c3x8[_0xc0cc[69]][_0xc0cc[68]],endDate:_0xe7c3x8[_0xc0cc[69]][_0xc0cc[70]],output:_0xe7c3x21})];})[_0xc0cc[53]](function(_0xe7c3x1d,_0xe7c3x22){extractUtils[_0xc0cc[72]+_0xe7c3x21](_0xe7c3x1d,_0xe7c3x8[_0xc0cc[69]][_0xc0cc[68]],_0xe7c3x8[_0xc0cc[69]][_0xc0cc[70]],_0xe7c3x22[_0xc0cc[61]])})[_0xc0cc[38]](function(_0xe7c3x16){console[_0xc0cc[51]](_0xe7c3x16);return handleError(_0xe7c3x9,_0xe7c3x16);});return _0xe7c3x9[_0xc0cc[56]](200);}function buildReport(_0xe7c3x1d,_0xe7c3xe,_0xe7c3x24){var _0xe7c3x25=[],_0xe7c3x26=[],_0xe7c3x27=[];_[_0xc0cc[26]](_0xe7c3x1d.Fields,function(_0xe7c3x28){var _0xe7c3x29=_0xc0cc[74];if(_0xe7c3x28[_0xc0cc[75]]){switch(_0xe7c3x28[_0xc0cc[75]]){case _0xc0cc[78]:_0xe7c3x29=util[_0xc0cc[21]](_0xc0cc[76],_0xe7c3x28[_0xc0cc[77]]);break ;;case _0xc0cc[80]:_0xe7c3x29=util[_0xc0cc[21]](_0xc0cc[79],_0xe7c3x28[_0xc0cc[77]],_0xe7c3x28[_0xc0cc[77]]);break ;;case _0xc0cc[82]:_0xe7c3x29=util[_0xc0cc[21]](_0xc0cc[81],_0xe7c3x28[_0xc0cc[77]],_0xe7c3x28[_0xc0cc[77]]);break ;;default:_0xe7c3x29=util[_0xc0cc[21]](_0xc0cc[83],_0xe7c3x28[_0xc0cc[75]],_0xe7c3x28[_0xc0cc[77]]);;}}else {_0xe7c3x29=_0xe7c3x28[_0xc0cc[77]]};_0xe7c3x25[_0xc0cc[25]](util[_0xc0cc[21]](_0xc0cc[84],_0xe7c3x29,_0xe7c3x28[_0xc0cc[85]]));if(_0xe7c3x28[_0xc0cc[86]]){_0xe7c3x26[_0xc0cc[25]](_0xe7c3x28[_0xc0cc[77]])};if(_0xe7c3x28[_0xc0cc[87]]){_0xe7c3x27[_0xc0cc[25]](util[_0xc0cc[21]](_0xc0cc[17],_0xe7c3x28[_0xc0cc[77]],_0xe7c3x28[_0xc0cc[87]]))};});var _0xe7c3x2a=getConditions(JSON[_0xc0cc[30]](_0xe7c3x1d[_0xc0cc[89]])[_0xc0cc[88]]);var _0xe7c3x2b=_0xc0cc[58];_0xe7c3x2b+=_0xc0cc[90]+_0xe7c3x25[_0xc0cc[92]](_0xc0cc[91]);if(_0xe7c3x24){_0xe7c3x2b+=_0xc0cc[93]};_0xe7c3x2b+=_0xc0cc[94]+_0xe7c3x1d[_0xc0cc[95]];_0xe7c3x2b+=_0xe7c3x2a!==_0xc0cc[96]?_0xc0cc[97]+_0xe7c3x2a:_0xc0cc[74];var _0xe7c3x2c=false;var _0xe7c3x2d=false;if(_0xe7c3xe){_[_0xc0cc[31]](_0xe7c3xe,function(_0xe7c3xf,_0xe7c3x10){switch(_0xe7c3x10){case _0xc0cc[15]:if(_0xe7c3xe[_0xc0cc[98]]){_0xe7c3x2c=parseInt(_0xe7c3xe[_0xc0cc[98]],10);_0xe7c3x2d=parseInt(_0xe7c3xf,10)*_0xe7c3x2c;};break ;;case _0xc0cc[98]:_0xe7c3x2c=parseInt(_0xe7c3xf,10);break ;;case _0xc0cc[68]:_0xe7c3x2b+=_0xc0cc[99]+_0xe7c3xf+_0xc0cc[100];break ;;case _0xc0cc[70]:_0xe7c3x2b+=_0xc0cc[101]+_0xe7c3xf+_0xc0cc[100];break ;;case _0xc0cc[60]:break ;;default:var _0xe7c3x2e=_[_0xc0cc[102]](_0xe7c3x1d.Fields,{alias:_0xe7c3x10})[_0xc0cc[77]];if(_0xe7c3x2e){_0xe7c3x2b+=_0xc0cc[103]+_0xe7c3x2e+_0xc0cc[104]+_0xe7c3xf+_0xc0cc[105]}else {_0xe7c3x2b+=_0xc0cc[103]+_0xe7c3x10+_0xc0cc[104]+_0xe7c3xf+_0xc0cc[105]};;}})};_0xe7c3x2b+=_0xe7c3x26[_0xc0cc[52]]?_0xc0cc[106]+_0xe7c3x26[_0xc0cc[92]](_0xc0cc[91]):_0xc0cc[74];_0xe7c3x2b+=_0xe7c3x27[_0xc0cc[52]]?_0xc0cc[107]+_0xe7c3x27[_0xc0cc[92]](_0xc0cc[91]):_0xc0cc[74];_0xe7c3x2b+=_0xe7c3x2c&&!_0xe7c3x24?_0xc0cc[108]+_0xe7c3x2c:_0xc0cc[74];_0xe7c3x2b+=_0xe7c3x2d&&!_0xe7c3x24?_0xc0cc[109]+_0xe7c3x2d:_0xc0cc[74];return _0xe7c3x2b;}function getConditions(_0xe7c3x30){if(!_0xe7c3x30){return _0xc0cc[74]};for(var _0xe7c3x31=_0xc0cc[110],_0xe7c3x32=0;_0xe7c3x32<_0xe7c3x30[_0xc0cc[111]][_0xc0cc[52]];_0xe7c3x32++){_0xe7c3x32>0&&(_0xe7c3x31+=_0xc0cc[90]+_0xe7c3x30[_0xc0cc[112]]+_0xc0cc[90]);_0xe7c3x31+=_0xe7c3x30[_0xc0cc[111]][_0xe7c3x32][_0xc0cc[88]]?getConditions(_0xe7c3x30[_0xc0cc[111]][_0xe7c3x32][_0xc0cc[88]]):_0xe7c3x30[_0xc0cc[111]][_0xe7c3x32][_0xc0cc[77]]+_0xc0cc[90]+_0xe7c3x30[_0xc0cc[111]][_0xe7c3x32][_0xc0cc[113]]+_0xc0cc[114]+(_0xe7c3x30[_0xc0cc[111]][_0xe7c3x32][_0xc0cc[113]]===_0xc0cc[115]?_0xc0cc[24]+_0xe7c3x30[_0xc0cc[111]][_0xe7c3x32][_0xc0cc[116]]+_0xc0cc[24]:_0xe7c3x30[_0xc0cc[111]][_0xe7c3x32][_0xc0cc[116]])+_0xc0cc[100];};return _0xe7c3x31+_0xc0cc[117];}exports[_0xc0cc[118]]=function(_0xe7c3x8,_0xe7c3x9){DefaultReport[_0xc0cc[63]](_0xe7c3x8[_0xc0cc[62]][_0xc0cc[61]],{include:[{all:true}]})[_0xc0cc[48]](function(_0xe7c3x1d){if(!_0xe7c3x1d){return _0xe7c3x9[_0xc0cc[56]](404)};return _0xe7c3x9[_0xc0cc[36]](_0xe7c3x1d);})[_0xc0cc[38]](function(_0xe7c3x16){return handleError(_0xe7c3x9,_0xe7c3x16)})};exports[_0xc0cc[119]]=function(_0xe7c3x8,_0xe7c3x9){DefaultReport[_0xc0cc[63]](_0xe7c3x8[_0xc0cc[62]][_0xc0cc[61]],{include:[{all:true}]})[_0xc0cc[48]](function(_0xe7c3x1d){if(!_0xe7c3x1d){return _0xe7c3x9[_0xc0cc[56]](404)};var _0xe7c3x33=_0xe7c3x1d[_0xc0cc[57]];delete _0xe7c3x33[_0xc0cc[61]];delete _0xe7c3x33[_0xc0cc[120]];delete _0xe7c3x33[_0xc0cc[121]];_0xe7c3x33[_0xc0cc[12]]=_0xe7c3x8[_0xc0cc[69]][_0xc0cc[12]];_0xe7c3x33[_0xc0cc[122]]=_[_0xc0cc[123]](_0xe7c3x33.Fields,_0xc0cc[57]);_[_0xc0cc[26]](_0xe7c3x33.Fields,function(_0xe7c3x28){delete _0xe7c3x28[_0xc0cc[61]];delete _0xe7c3x28[_0xc0cc[124]];delete _0xe7c3x28[_0xc0cc[120]];delete _0xe7c3x28[_0xc0cc[121]];});return CustomReport[_0xc0cc[73]](_0xe7c3x33,{include:[{all:true}]});})[_0xc0cc[48]](function(){return _0xe7c3x9[_0xc0cc[56]](201)})[_0xc0cc[38]](function(_0xe7c3x16){console[_0xc0cc[51]](_0xe7c3x16);return handleError(_0xe7c3x9,_0xe7c3x16);})};exports[_0xc0cc[73]]=function(_0xe7c3x8,_0xe7c3x9){DefaultReport[_0xc0cc[73]](_0xe7c3x8[_0xc0cc[69]])[_0xc0cc[48]](function(_0xe7c3x1d){return _0xe7c3x9[_0xc0cc[37]](201)[_0xc0cc[36]](_0xe7c3x1d)})[_0xc0cc[38]](function(_0xe7c3x16){return handleError(_0xe7c3x9,_0xe7c3x16)})};exports[_0xc0cc[125]]=function(_0xe7c3x8,_0xe7c3x9){if(_0xe7c3x8[_0xc0cc[69]][_0xc0cc[61]]){delete _0xe7c3x8[_0xc0cc[69]][_0xc0cc[61]]};DefaultReport[_0xc0cc[63]](_0xe7c3x8[_0xc0cc[62]][_0xc0cc[61]])[_0xc0cc[48]](function(_0xe7c3x1d){if(!_0xe7c3x1d){return _0xe7c3x9[_0xc0cc[56]](404)};var _0xe7c3x34=_[_0xc0cc[126]](_0xe7c3x1d,_0xe7c3x8[_0xc0cc[69]]);_0xe7c3x34[_0xc0cc[127]]()[_0xc0cc[48]](function(){return _0xe7c3x9[_0xc0cc[37]](200)[_0xc0cc[36]](_0xe7c3x1d)})[_0xc0cc[38]](function(_0xe7c3x16){return handleError(_0xe7c3x9,_0xe7c3x16)});})[_0xc0cc[38]](function(_0xe7c3x16){return handleError(_0xe7c3x9,_0xe7c3x16)});};exports[_0xc0cc[128]]=function(_0xe7c3x8,_0xe7c3x9){DefaultReport[_0xc0cc[63]](_0xe7c3x8[_0xc0cc[62]][_0xc0cc[61]])[_0xc0cc[48]](function(_0xe7c3x1d){if(!_0xe7c3x1d){return _0xe7c3x9[_0xc0cc[56]](404)};_0xe7c3x1d[_0xc0cc[128]]()[_0xc0cc[48]](function(){return _0xe7c3x9[_0xc0cc[56]](204)})[_0xc0cc[38]](function(_0xe7c3x16){return handleError(_0xe7c3x9,_0xe7c3x16)});})[_0xc0cc[38]](function(_0xe7c3x16){return handleError(_0xe7c3x9,_0xe7c3x16)})};function handleError(_0xe7c3x9,_0xe7c3x16){return _0xe7c3x9[_0xc0cc[37]](500)[_0xc0cc[36]](_0xe7c3x16)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var DefaultReport = require('../../models').DefaultReport;
+var sequelize = require('../../models').sequelize;
+var CustomReport = require('../../models').CustomReport;
+var ExtractedReport = require('../../models').ExtractedReport;
+var extractUtils = require('../../utils/report_extraction');
+
+// Get list of default reports
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'description', 'parent'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      case 'role':
+        query.where.role = {
+          $or: value.split(/[\s,]+/)
+        };
+        break;
+      case 'clientQuery':
+        var params = JSON.parse(value);
+        _.forOwn(params, function(pValue, pKey) {
+          query.where[pKey] = pValue;
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  DefaultReport
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.preview = function(req, res) {
+  DefaultReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      console.log('found report');
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      var query = buildReport(report.dataValues, req.query);
+      // console.log(query);
+      var queries = [sequelize.query(query, {
+        type: sequelize.QueryTypes.SELECT
+      })];
+      if (req.query.uiPagination) {
+        var countQuery = buildReport(report.dataValues, req.query, true);
+        queries.push(sequelize.query(countQuery, {
+          type: sequelize.QueryTypes.SELECT
+        }));
+      }
+      return queries;
+    })
+    .all()
+    .spread(function(results, totalItems) {
+      console.log(results.length);
+      console.log(totalItems);
+      res.status(200).send({
+        rows: results,
+        count: totalItems ? totalItems[0] : null
+      });
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+exports.extractPdf = function(req, res) {
+  // console.log('extractPdf api function');
+  docExtract(req, res, 'PDF')
+};
+
+exports.extractCsv = function(req, res) {
+  // console.log('extractCsv api function');
+  docExtract(req, res, 'CSV');
+};
+
+function docExtract(req, res, typeFunction) {
+  // console.log('common docExtract api function');
+  if (!req.body.startDate || !req.body.endDate) {
+    return res.status(500).send({
+      message: 'MESSAGE_START_OR_END_DATE_MISSING'
+    });
+  }
+  DefaultReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      // console.log('found the report, creating the new DB row for extracted reports..');
+      //CREATE A DB ROW IN A TABLE WITH THE REPORT INFO, QUERY DATES, AND THE STATUS 'ELABORATING'
+      return [report, ExtractedReport.create({
+        name: report.name,
+        startDate: req.body.startDate,
+        endDate: req.body.endDate,
+        output: typeFunction
+      })]
+    })
+    .spread(function(report, extractedReport) {
+      // console.log('created new extracted reports db entry, calling external extraction function: ' + typeFunction);
+      extractUtils['extract' + typeFunction](report, req.body.startDate, req.body.endDate, extractedReport.id);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+  return res.sendStatus(200);
+}
+
+function buildReport(report, query, count) {
+  var fields = [],
+    groupBy = [],
+    orderBy = [];
+  _.forEach(report.Fields, function(elem) {
+    var field = '';
+    if (elem.function) {
+      switch (elem.function) {
+        case 'COUNT DISTINCT':
+          field = util.format('COUNT(DISTINCT %s)', elem.field);
+          break;
+        case 'GROUP_CONCAT ASC':
+          field = util.format('GROUP_CONCAT(%s ORDER BY %s ASC)', elem.field, elem.field);
+          break;
+        case 'GROUP_CONCAT DESC':
+          field = util.format('GROUP_CONCAT(%s ORDER BY %s DESC)', elem.field, elem.field);
+          break;
+        default:
+          field = util.format('%s(%s)', elem.function, elem.field);
+      }
+    } else {
+      field = elem.field;
+    }
+    fields.push(util.format('%s AS \'%s\'', field, elem.alias));
+    if (elem.groupBy) {
+      groupBy.push(elem.field);
+    }
+    if (elem.orderBy) {
+      orderBy.push(util.format('%s %s', elem.field, elem.orderBy));
+    }
+  });
+  var conditions = getConditions(JSON.parse(report.conditions).group);
+  var resultQuery = 'SELECT';
+  // query += fields.length ? ' ' + fields.join(',') : ' *';//right if you want to select all fields also
+  resultQuery += ' ' + fields.join(','); //generate a wrong query if there isn' t any field
+  if (count) {
+    resultQuery += ',COUNT(*)';
+  }
+  resultQuery += ' FROM ' + report.table;
+  resultQuery += conditions !== '()' ? ' WHERE ' + conditions : '';
+  var limit = false;
+  var offset = false;
+  if (query) {
+    _.forOwn(query, function(value, key) {
+      switch (key) {
+        case 'page':
+          if (query.perPage) {
+            limit = parseInt(query.perPage, 10);
+            offset = parseInt(value, 10) * limit;
+          }
+          break;
+        case 'perPage':
+          limit = parseInt(value, 10);
+          break;
+        case 'startDate':
+          resultQuery += ' AND createdAt >= \'' + value + '\'';
+          break;
+        case 'endDate':
+          resultQuery += ' AND createdAt <= \'' + value + '\'';
+          break;
+        case 'uiPagination':
+          break;
+        default:
+          var column = _.find(report.Fields, {
+            alias: key
+          }).field;
+          if (column) {
+            resultQuery += ' AND ' + column + ' LIKE \'%' + value + '%\'';
+          } else {
+            resultQuery += ' AND ' + key + ' LIKE \'%' + value + '%\'';
+          }
+      }
+    });
+  }
+  resultQuery += groupBy.length ? ' GROUP BY ' + groupBy.join(',') : '';
+  resultQuery += orderBy.length ? ' ORDER BY ' + orderBy.join(',') : '';
+  resultQuery += limit && !count ? ' LIMIT ' + limit : '';
+  resultQuery += offset && !count ? ' OFFSET ' + offset : '';
+  return resultQuery;
+}
+
+function getConditions(group) {
+  if (!group) return "";
+  for (var str = "(", i = 0; i < group.rules.length; i++) {
+    i > 0 && (str += " " + group.operator + " ");
+    str += group.rules[i].group ?
+      getConditions(group.rules[i].group) :
+      group.rules[i].field + " " + group.rules[i].condition + " '" + (group.rules[i].condition === 'LIKE' ? "%" + group.rules[i].value + "%" : group.rules[i].value) + "'";
+  }
+
+  return str + ')';
+}
+
+// Get a single report
+exports.show = function(req, res) {
+  DefaultReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      return res.send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Copy a default report
+exports.copy = function(req, res) {
+  DefaultReport
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      var newReport = report.dataValues;
+      delete newReport.id;
+      delete newReport.createdAt;
+      delete newReport.updatedAt;
+      newReport.parent = req.body.parent;
+      newReport.Fields = _.pluck(newReport.Fields, 'dataValues');
+      _.forEach(newReport.Fields, function(elem) {
+        delete elem.id;
+        delete elem.DefaultReportId;
+        delete elem.createdAt;
+        delete elem.updatedAt;
+      });
+
+      return CustomReport.create(newReport, {
+        include: [{
+          all: true
+        }]
+      })
+    })
+    .then(function() {
+      return res.sendStatus(201);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report in the DB.
+exports.create = function(req, res) {
+  DefaultReport
+    .create(req.body)
+    .then(function(report) {
+      return res.status(201).send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  DefaultReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report from the DB.
+exports.destroy = function(req, res) {
+  DefaultReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      report.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 3ab17f0..2acd563 100644 (file)
@@ -1 +1,24 @@
-var _0x4f2e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4f2e[0];var DefaultReport=require(_0x4f2e[2])[_0x4f2e[1]];exports[_0x4f2e[3]]=function(_0x1723x2){DefaultReport[_0x4f2e[4]](function(_0x1723x3){onSave(_0x1723x2,_0x1723x3)});DefaultReport[_0x4f2e[5]](function(_0x1723x3){onRemove(_0x1723x2,_0x1723x3)});};function onSave(_0x1723x2,_0x1723x3,_0x1723x5){_0x1723x2[_0x4f2e[7]](_0x4f2e[6],_0x1723x3)}function onRemove(_0x1723x2,_0x1723x3,_0x1723x5){_0x1723x2[_0x4f2e[7]](_0x4f2e[8],_0x1723x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var DefaultReport = require('../../models').DefaultReport;
+
+exports.register = function(socket) {
+  DefaultReport.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  DefaultReport.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('default_report:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('default_report:remove', doc);
+}
index b9c519b..2a6c81d 100644 (file)
@@ -1 +1,20 @@
-var _0xd502=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x64\x65\x66\x61\x75\x6C\x74","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x64\x65\x66\x61\x75\x6C\x74","\x67\x65\x74"];_0xd502[0];var should=require(_0xd502[1]);var app=require(_0xd502[2]);var request=require(_0xd502[3]);describe(_0xd502[4],function(){it(_0xd502[5],function(_0xc2d8x4){request(app)[_0xd502[13]](_0xd502[12])[_0xd502[11]](200)[_0xd502[11]](_0xd502[10],/json/)[_0xd502[9]](function(_0xc2d8x5,_0xc2d8x6){if(_0xc2d8x5){return _0xc2d8x4(_0xc2d8x5)};_0xc2d8x6[_0xd502[8]][_0xd502[1]][_0xd502[7]][_0xd502[6]](Array);_0xc2d8x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/reports/default', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytic/reports/default')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 2bea1ee..ae7e55e 100644 (file)
@@ -1 +1,19 @@
-var _0x50a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x70\x72\x65\x76\x69\x65\x77\x2F\x3A\x69\x64","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x70\x64\x66\x2F\x3A\x69\x64","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x63\x73\x76\x2F\x3A\x69\x64","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x2F\x63\x6F\x70\x79\x2F\x3A\x69\x64","\x63\x6F\x70\x79","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x50a6[0];var express=require(_0x50a6[1]);var controller=require(_0x50a6[2]);var router=express.Router();router[_0x50a6[5]](_0x50a6[3],controller[_0x50a6[4]]);router[_0x50a6[5]](_0x50a6[6],controller[_0x50a6[7]]);router[_0x50a6[5]](_0x50a6[8],controller[_0x50a6[9]]);router[_0x50a6[11]](_0x50a6[3],controller[_0x50a6[10]]);router[_0x50a6[11]](_0x50a6[12],controller[_0x50a6[13]]);router[_0x50a6[11]](_0x50a6[14],controller[_0x50a6[15]]);router[_0x50a6[11]](_0x50a6[16],controller[_0x50a6[17]]);router[_0x50a6[19]](_0x50a6[8],controller[_0x50a6[18]]);router[_0x50a6[20]](_0x50a6[8],controller[_0x50a6[18]]);router[_0x50a6[22]](_0x50a6[8],controller[_0x50a6[21]]);module[_0x50a6[23]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./default_report.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/preview/:id', controller.preview);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.post('/extract/pdf/:id', controller.extractPdf);
+router.post('/extract/csv/:id', controller.extractCsv);
+router.post('/copy/:id', controller.copy);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index a170655..78e1902 100644 (file)
@@ -1 +1,256 @@
-var _0xfe4a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x64\x65\x73\x6B\x2E\x6A\x73","\x44\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x61\x75\x74\x68\x54\x79\x70\x65","\x62\x61\x73\x69\x63","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6F\x61\x75\x74\x68","\x63\x6F\x6E\x73\x75\x6D\x65\x72\x4B\x65\x79","\x63\x6F\x6E\x73\x75\x6D\x65\x72\x53\x65\x63\x72\x65\x74","\x74\x6F\x6B\x65\x6E","\x74\x6F\x6B\x65\x6E\x53\x65\x63\x72\x65\x74","\x63\x72\x65\x61\x74\x65\x43\x6C\x69\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x76\x32\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65","\x67\x65\x74","\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x61\x70\x69\x2F\x76\x32\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x65\x6E\x74\x72\x69\x65\x73","\x5F\x65\x6D\x62\x65\x64\x64\x65\x64","\x6A\x73\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x62\x73\x74\x72","\x2F","\x6C\x65\x6E\x67\x74\x68"];_0xfe4a[0];var _=require(_0xfe4a[1]);var util=require(_0xfe4a[2]);var desk=require(_0xfe4a[3]);var DeskAccount=require(_0xfe4a[5])[_0xfe4a[4]];exports[_0xfe4a[6]]=function(_0x6e9ex5,_0x6e9ex6){var _0x6e9ex7=[_0xfe4a[7],_0xfe4a[8],_0xfe4a[9],_0xfe4a[10]];var _0x6e9ex8=_0x6e9ex5[_0xfe4a[12]][_0xfe4a[11]]?parseInt(_0x6e9ex5[_0xfe4a[12]][_0xfe4a[11]],10):100;var _0x6e9ex9=_0x6e9ex5[_0xfe4a[12]][_0xfe4a[13]]?parseInt(_0x6e9ex5[_0xfe4a[12]][_0xfe4a[13]],10):0;var _0x6e9exa={where:{},limit:_0x6e9ex8,offset:_0x6e9ex9*_0x6e9ex8};_[_0xfe4a[27]](_0x6e9ex5[_0xfe4a[12]],function(_0x6e9exb,_0x6e9exc){switch(_0x6e9exc){case _0xfe4a[11]:;case _0xfe4a[13]:break ;;case _0xfe4a[16]:_0x6e9exa[_0xfe4a[14]]=util[_0xfe4a[19]](_0xfe4a[15],_0x6e9ex5[_0xfe4a[12]][_0xfe4a[16]],_0x6e9ex5[_0xfe4a[12]][_0xfe4a[17]]||_0xfe4a[18])||null;break ;;case _0xfe4a[17]:break ;;case _0xfe4a[25]:_0x6e9exa[_0xfe4a[21]][_0xfe4a[20]]=[];_0x6e9ex7[_0xfe4a[24]](function(_0x6e9exd){var _0x6e9exe={};_0x6e9exe[_0x6e9exd]={$like:_0xfe4a[22]+_0x6e9exb+_0xfe4a[22]};_0x6e9exa[_0xfe4a[21]][_0xfe4a[20]][_0xfe4a[23]](_0x6e9exe);});break ;;default:_0x6e9exa[_0xfe4a[21]][_0x6e9exc]={$like:{}};_0x6e9exa[_0xfe4a[21]][_0x6e9exc][_0xfe4a[26]]=_0xfe4a[22]+_0x6e9exb+_0xfe4a[22];;}});DeskAccount[_0xfe4a[42]](_0x6e9exa)[_0xfe4a[41]](function(_0x6e9ex10){var _0x6e9ex11=Math[_0xfe4a[33]](_0x6e9ex10[_0xfe4a[32]]/_0x6e9ex8);var _0x6e9ex12=_0x6e9ex11>(_0x6e9exa[_0xfe4a[34]]+1)?util[_0xfe4a[19]](_0xfe4a[35],_0x6e9ex5[_0xfe4a[36]],_0x6e9ex5[_0xfe4a[38]][_0xfe4a[37]],_0x6e9ex5[_0xfe4a[39]],_0x6e9ex9+1):null;var _0x6e9ex13=_0x6e9ex9>0?util[_0xfe4a[19]](_0xfe4a[35],_0x6e9ex5[_0xfe4a[36]],_0x6e9ex5[_0xfe4a[38]][_0xfe4a[37]],_0x6e9ex5[_0xfe4a[39]],_0x6e9ex9-1):null;return _0x6e9ex6[_0xfe4a[30]](200)[_0xfe4a[29]]({count:_0x6e9ex10[_0xfe4a[32]],rows:_0x6e9ex10[_0xfe4a[40]],next_page:_0x6e9ex12,previous_page:_0x6e9ex13,total_pages:_0x6e9ex11});})[_0xfe4a[31]](function(_0x6e9exf){return _0x6e9ex6[_0xfe4a[30]](500)[_0xfe4a[29]]({error:_0xfe4a[28]})});};exports[_0xfe4a[43]]=function(_0x6e9ex5,_0x6e9ex6){DeskAccount[_0xfe4a[47]](_0x6e9ex5[_0xfe4a[46]][_0xfe4a[45]])[_0xfe4a[41]](function(_0x6e9ex14){if(!_0x6e9ex14){return _0x6e9ex6[_0xfe4a[44]](404)};return _0x6e9ex6[_0xfe4a[29]](_0x6e9ex14);})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)})};exports[_0xfe4a[48]]=function(_0x6e9ex5,_0x6e9ex6,_0x6e9ex15){DeskAccount[_0xfe4a[48]](_0x6e9ex5[_0xfe4a[49]])[_0xfe4a[41]](function(_0x6e9ex14){return _0x6e9ex6[_0xfe4a[30]](201)[_0xfe4a[29]](_0x6e9ex14)})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)})};exports[_0xfe4a[50]]=function(_0x6e9ex5,_0x6e9ex6){if(_0x6e9ex5[_0xfe4a[49]][_0xfe4a[45]]){delete _0x6e9ex5[_0xfe4a[49]][_0xfe4a[45]]};DeskAccount[_0xfe4a[47]](_0x6e9ex5[_0xfe4a[46]][_0xfe4a[45]])[_0xfe4a[41]](function(_0x6e9ex14){if(!_0x6e9ex14){return _0x6e9ex6[_0xfe4a[44]](404)};var _0x6e9ex16=_[_0xfe4a[51]](_0x6e9ex14,_0x6e9ex5[_0xfe4a[49]]);_0x6e9ex16[_0xfe4a[52]]()[_0xfe4a[41]](function(){return _0x6e9ex6[_0xfe4a[30]](200)[_0xfe4a[29]](_0x6e9ex14)})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)});})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)});};exports[_0xfe4a[53]]=function(_0x6e9ex5,_0x6e9ex6){DeskAccount[_0xfe4a[47]](_0x6e9ex5[_0xfe4a[46]][_0xfe4a[45]])[_0xfe4a[41]](function(_0x6e9ex14){if(!_0x6e9ex14){return _0x6e9ex6[_0xfe4a[44]](404)};_0x6e9ex14[_0xfe4a[53]]()[_0xfe4a[41]](function(){return _0x6e9ex6[_0xfe4a[44]](204)})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)});})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)})};exports[_0xfe4a[54]]=function(_0x6e9ex5,_0x6e9ex6){DeskAccount[_0xfe4a[47]](_0x6e9ex5[_0xfe4a[46]][_0xfe4a[45]])[_0xfe4a[41]](function(_0x6e9ex17){var _0x6e9ex14={endpoint:stripTrailingSlash(_0x6e9ex17[_0xfe4a[10]]),retry:false};if(_0x6e9ex17[_0xfe4a[55]]===_0xfe4a[56]){_0x6e9ex14[_0xfe4a[9]]=_0x6e9ex17[_0xfe4a[9]];_0x6e9ex14[_0xfe4a[57]]=_0x6e9ex17[_0xfe4a[57]];}else {if(_0x6e9ex17[_0xfe4a[55]]===_0xfe4a[58]){_0x6e9ex14[_0xfe4a[59]]=_0x6e9ex17[_0xfe4a[59]];_0x6e9ex14[_0xfe4a[60]]=_0x6e9ex17[_0xfe4a[60]];_0x6e9ex14[_0xfe4a[61]]=_0x6e9ex17[_0xfe4a[61]];_0x6e9ex14[_0xfe4a[62]]=_0x6e9ex17[_0xfe4a[62]];}};var _0x6e9ex18=desk[_0xfe4a[63]](_0x6e9ex14);_0x6e9ex18[_0xfe4a[65]](_0xfe4a[64],function(_0x6e9exf,_0x6e9ex19,_0x6e9ex1a){if(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)};return _0x6e9ex6[_0xfe4a[44]](200);});})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)})};exports[_0xfe4a[66]]=function(_0x6e9ex5,_0x6e9ex6){var _0x6e9ex1b={};_0x6e9ex1b[_0x6e9ex5[_0xfe4a[46]][_0xfe4a[67]]]=_0x6e9ex5[_0xfe4a[49]][_0xfe4a[68]];DeskAccount[_0xfe4a[42]]({where:_0x6e9ex1b})[_0xfe4a[41]](function(_0x6e9ex10){if(_0x6e9ex10[_0xfe4a[32]]){return _0x6e9ex6[_0xfe4a[30]](200)[_0xfe4a[29]]({isValid:false,value:_0x6e9ex5[_0xfe4a[49]][_0xfe4a[68]]})};return _0x6e9ex6[_0xfe4a[30]](200)[_0xfe4a[29]]({isValid:true,value:_0x6e9ex5[_0xfe4a[49]][_0xfe4a[68]]});})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)});};exports[_0xfe4a[69]]=function(_0x6e9ex5,_0x6e9ex6){DeskAccount[_0xfe4a[47]](_0x6e9ex5[_0xfe4a[46]][_0xfe4a[45]])[_0xfe4a[41]](function(_0x6e9ex17){var _0x6e9ex14={endpoint:stripTrailingSlash(_0x6e9ex17[_0xfe4a[10]]),retry:false};if(_0x6e9ex17[_0xfe4a[55]]===_0xfe4a[56]){_0x6e9ex14[_0xfe4a[9]]=_0x6e9ex17[_0xfe4a[9]];_0x6e9ex14[_0xfe4a[57]]=_0x6e9ex17[_0xfe4a[57]];}else {if(_0x6e9ex17[_0xfe4a[55]]===_0xfe4a[58]){_0x6e9ex14[_0xfe4a[59]]=_0x6e9ex17[_0xfe4a[59]];_0x6e9ex14[_0xfe4a[60]]=_0x6e9ex17[_0xfe4a[60]];_0x6e9ex14[_0xfe4a[61]]=_0x6e9ex17[_0xfe4a[61]];_0x6e9ex14[_0xfe4a[62]]=_0x6e9ex17[_0xfe4a[62]];}};var _0x6e9ex18=desk[_0xfe4a[63]](_0x6e9ex14);_0x6e9ex18[_0xfe4a[65]](_0xfe4a[70],function(_0x6e9exf,_0x6e9ex19,_0x6e9ex1a){if(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)};return _0x6e9ex6[_0xfe4a[30]](200)[_0xfe4a[73]](_0x6e9ex19[_0xfe4a[72]][_0xfe4a[71]]);});})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)})};exports[_0xfe4a[74]]=function(_0x6e9ex5,_0x6e9ex6){DeskAccount[_0xfe4a[53]]({where:{id:_0x6e9ex5[_0xfe4a[12]][_0xfe4a[45]]},individualHooks:true})[_0xfe4a[41]](function(){return _0x6e9ex6[_0xfe4a[44]](204)})[_0xfe4a[31]](function(_0x6e9exf){return handleError(_0x6e9ex6,_0x6e9exf)})};function stripTrailingSlash(_0x6e9ex1d){if(_0x6e9ex1d[_0xfe4a[75]](-1)===_0xfe4a[76]){return _0x6e9ex1d[_0xfe4a[75]](0,_0x6e9ex1d[_0xfe4a[77]]-1)};return _0x6e9ex1d;}function handleError(_0x6e9ex6,_0x6e9exf){return _0x6e9ex6[_0xfe4a[30]](500)[_0xfe4a[29]](_0x6e9exf)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var desk = require('desk.js');
+
+var DeskAccount = require('../../models').DeskAccount;
+
+// Get list of desk_accounts
+exports.index = function(req, res) {
+  var attributes = ['description', 'name', 'username', 'remoteUri'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  DeskAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single desk_account
+exports.show = function(req, res) {
+  DeskAccount
+    .findById(req.params.id)
+    .then(function(desk_account) {
+      if (!desk_account) {
+        return res.sendStatus(404);
+      }
+      return res.send(desk_account);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new desk_account in the DB.
+exports.create = function(req, res, next) {
+  DeskAccount
+    .create(req.body)
+    .then(function(desk_account) {
+      return res.status(201).send(desk_account);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing desk_account in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  DeskAccount
+    .findById(req.params.id)
+    .then(function(desk_account) {
+      if (!desk_account) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(desk_account, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(desk_account);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a desk_account from the DB.
+exports.destroy = function(req, res) {
+  DeskAccount
+    .findById(req.params.id)
+    .then(function(desk_account) {
+      if (!desk_account) {
+        return res.sendStatus(404);
+      }
+      desk_account.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.checkAccount = function(req, res) {
+  DeskAccount
+    .findById(req.params.id)
+    .then(function(account) {
+      var desk_account = {
+        endpoint: stripTrailingSlash(account.remoteUri),
+        retry: false
+      };
+      if (account.authType === 'basic') {
+        desk_account.username = account.username;
+        desk_account.password = account.password;
+      } else if (account.authType === 'oauth') {
+        desk_account.consumerKey = account.consumerKey;
+        desk_account.consumerSecret = account.consumerSecret;
+        desk_account.token = account.token;
+        desk_account.tokenSecret = account.tokenSecret;
+      }
+      var client = desk.createClient(desk_account);
+      client.get('/api/v2/users/me', function(err, body, response) {
+        if (err) {
+          return handleError(res, err);
+        }
+        return res.sendStatus(200);
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.deskValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  DeskAccount
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getFields = function(req, res) {
+  DeskAccount
+    .findById(req.params.id)
+    .then(function(account) {
+      var desk_account = {
+        endpoint: stripTrailingSlash(account.remoteUri),
+        retry: false
+      };
+      if (account.authType === 'basic') {
+        desk_account.username = account.username;
+        desk_account.password = account.password;
+      } else if (account.authType === 'oauth') {
+        desk_account.consumerKey = account.consumerKey;
+        desk_account.consumerSecret = account.consumerSecret;
+        desk_account.token = account.token;
+        desk_account.tokenSecret = account.tokenSecret;
+      }
+      var client = desk.createClient(desk_account);
+      client.get('/api/v2/custom_fields', function(err, body, response) {
+        if (err) {
+          return handleError(res, err);
+        }
+        return res.status(200).json(body._embedded.entries);
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+}
+
+exports.bulkDestroy = function(req, res) {
+  DeskAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function stripTrailingSlash(str) {
+  if (str.substr(-1) === '/') {
+    return str.substr(0, str.length - 1);
+  }
+  return str;
+}
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 446ccb2..3f7badd 100644 (file)
@@ -1 +1,24 @@
-var _0xacdf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xacdf[0];var DeskAccount=require(_0xacdf[2])[_0xacdf[1]];exports[_0xacdf[3]]=function(_0xb243x2){DeskAccount[_0xacdf[4]](function(_0xb243x3){onSave(_0xb243x2,_0xb243x3)});DeskAccount[_0xacdf[5]](function(_0xb243x3){onRemove(_0xb243x2,_0xb243x3)});};function onSave(_0xb243x2,_0xb243x3,_0xb243x5){_0xb243x2[_0xacdf[7]](_0xacdf[6],_0xb243x3)}function onRemove(_0xb243x2,_0xb243x3,_0xb243x5){_0xb243x2[_0xacdf[7]](_0xacdf[8],_0xb243x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var DeskAccount = require('../../models').DeskAccount;
+
+exports.register = function(socket) {
+  DeskAccount.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  DeskAccount.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('desk_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('desk_account:remove', doc);
+}
index efed01f..a56fc11 100644 (file)
@@ -1 +1,20 @@
-var _0xbbbf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74"];_0xbbbf[0];var should=require(_0xbbbf[1]);var app=require(_0xbbbf[2]);var request=require(_0xbbbf[3]);describe(_0xbbbf[4],function(){it(_0xbbbf[5],function(_0x5ac4x4){request(app)[_0xbbbf[13]](_0xbbbf[12])[_0xbbbf[11]](200)[_0xbbbf[11]](_0xbbbf[10],/json/)[_0xbbbf[9]](function(_0x5ac4x5,_0x5ac4x6){if(_0x5ac4x5){return _0x5ac4x4(_0x5ac4x5)};_0x5ac4x6[_0xbbbf[8]][_0xbbbf[1]][_0xbbbf[7]][_0xbbbf[6]](Array);_0x5ac4x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/desk/accounts', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/desk/accounts')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 7a84db7..4a593d0 100644 (file)
@@ -1 +1,19 @@
-var _0x2b7c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x2b7c[0];var express=require(_0x2b7c[1]);var controller=require(_0x2b7c[2]);var auth=require(_0x2b7c[3]);var router=express.Router();router[_0x2b7c[7]](_0x2b7c[4],auth[_0x2b7c[5]](),controller[_0x2b7c[6]]);router[_0x2b7c[7]](_0x2b7c[8],auth[_0x2b7c[5]](),controller[_0x2b7c[9]]);router[_0x2b7c[7]](_0x2b7c[10],auth[_0x2b7c[5]](),controller[_0x2b7c[11]]);router[_0x2b7c[7]](_0x2b7c[12],auth[_0x2b7c[5]](),controller[_0x2b7c[13]]);router[_0x2b7c[16]](_0x2b7c[14],auth[_0x2b7c[5]](),controller[_0x2b7c[15]]);router[_0x2b7c[16]](_0x2b7c[4],auth[_0x2b7c[5]](),controller[_0x2b7c[17]]);router[_0x2b7c[19]](_0x2b7c[8],auth[_0x2b7c[5]](),controller[_0x2b7c[18]]);router[_0x2b7c[20]](_0x2b7c[8],auth[_0x2b7c[5]](),controller[_0x2b7c[18]]);router[_0x2b7c[22]](_0x2b7c[4],auth[_0x2b7c[5]](),controller[_0x2b7c[21]]);router[_0x2b7c[22]](_0x2b7c[8],auth[_0x2b7c[5]](),controller[_0x2b7c[23]]);module[_0x2b7c[24]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./desk_account.controller');
+var auth = require('../../auth/auth.service');
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
+router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
+router.post('/validate/:field', auth.isAuthenticated(), controller.deskValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 535e525..3824ca1 100644 (file)
@@ -1 +1,145 @@
-var _0xa71b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0xa71b[0];var _=require(_0xa71b[1]);var DeskConfiguration=require(_0xa71b[3])[_0xa71b[2]];var DeskField=require(_0xa71b[3])[_0xa71b[4]];function handleError(_0x98cax5,_0x98cax6){_0x98cax6=_0x98cax6||500;return function(_0x98cax7){_0x98cax5[_0xa71b[6]](_0x98cax6)[_0xa71b[5]](_0x98cax7)};}function responseWithResult(_0x98cax5,_0x98cax6){_0x98cax6=_0x98cax6||200;return function(_0x98cax9){if(_0x98cax9){_0x98cax5[_0xa71b[6]](_0x98cax6)[_0xa71b[7]](_0x98cax9)}};}function handleEntityNotFound(_0x98cax5){return function(_0x98cax9){if(!_0x98cax9){_0x98cax5[_0xa71b[6]](404)[_0xa71b[8]]();return null;};return _0x98cax9;}}function saveUpdates(_0x98caxc){return function(_0x98cax9){return _0x98cax9[_0xa71b[10]](_0x98caxc)[_0xa71b[9]](function(_0x98caxd){return _0x98caxd})}}function removeEntity(_0x98cax5){return function(_0x98cax9){if(_0x98cax9){return _0x98cax9[_0xa71b[11]]()[_0xa71b[9]](function(){_0x98cax5[_0xa71b[6]](204)[_0xa71b[8]]()})}}}exports[_0xa71b[12]]=function(_0x98caxf,_0x98cax5){DeskConfiguration[_0xa71b[15]]({where:_0x98caxf[_0xa71b[14]]})[_0xa71b[9]](responseWithResult(_0x98cax5))[_0xa71b[13]](handleError(_0x98cax5))};exports[_0xa71b[16]]=function(_0x98caxf,_0x98cax5){DeskConfiguration[_0xa71b[22]]({where:{id:_0x98caxf[_0xa71b[18]][_0xa71b[17]]},include:[{model:DeskField,as:_0xa71b[19]},{model:DeskField,as:_0xa71b[20]},{model:DeskField,as:_0xa71b[21]}]})[_0xa71b[9]](handleEntityNotFound(_0x98cax5))[_0xa71b[9]](responseWithResult(_0x98cax5))[_0xa71b[13]](handleError(_0x98cax5))};exports[_0xa71b[23]]=function(_0x98caxf,_0x98cax5){DeskConfiguration[_0xa71b[23]](_0x98caxf[_0xa71b[24]])[_0xa71b[9]](responseWithResult(_0x98cax5,201))[_0xa71b[13]](handleError(_0x98cax5))};exports[_0xa71b[25]]=function(_0x98caxf,_0x98cax5){if(_0x98caxf[_0xa71b[24]][_0xa71b[17]]){delete _0x98caxf[_0xa71b[24]][_0xa71b[17]]};DeskConfiguration[_0xa71b[26]](_0x98caxf[_0xa71b[18]][_0xa71b[17]])[_0xa71b[9]](handleEntityNotFound(_0x98cax5))[_0xa71b[9]](saveUpdates(_0x98caxf[_0xa71b[24]]))[_0xa71b[9]](responseWithResult(_0x98cax5))[_0xa71b[13]](handleError(_0x98cax5));};exports[_0xa71b[11]]=function(_0x98caxf,_0x98cax5){DeskConfiguration[_0xa71b[26]](_0x98caxf[_0xa71b[18]][_0xa71b[17]])[_0xa71b[9]](handleEntityNotFound(_0x98cax5))[_0xa71b[9]](removeEntity(_0x98cax5))[_0xa71b[13]](handleError(_0x98cax5))};exports[_0xa71b[27]]=function(_0x98caxf,_0x98cax5,_0x98cax10){var _0x98cax11;DeskConfiguration[_0xa71b[26]](_0x98caxf[_0xa71b[18]][_0xa71b[17]])[_0xa71b[9]](handleEntityNotFound(_0x98cax5))[_0xa71b[9]](function(_0x98cax14){_0x98cax11=_0x98cax14;return DeskField[_0xa71b[23]](_0x98caxf[_0xa71b[24]]);})[_0xa71b[9]](function(_0x98cax13){switch(_0x98caxf[_0xa71b[18]][_0xa71b[35]]){case _0xa71b[30]:return [_0x98cax11[_0xa71b[29]](_0x98cax13),_0x98cax13];;case _0xa71b[32]:return [_0x98cax11[_0xa71b[31]](_0x98cax13),_0x98cax13];;case _0xa71b[34]:return [_0x98cax11[_0xa71b[33]](_0x98cax13),_0x98cax13];;}})[_0xa71b[28]](function(_0x98cax12,_0x98cax13){return _0x98cax5[_0xa71b[6]](201)[_0xa71b[7]](_0x98cax13)})[_0xa71b[13]](handleError(_0x98cax5));};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/desk/configurations              ->  index
+ * POST    /api/desk/configurations              ->  create
+ * GET     /api/desk/configurations/:id          ->  show
+ * PUT     /api/desk/configurations/:id          ->  update
+ * DELETE  /api/desk/configurations/:id          ->  destroy
+ */
+
+'use strict';
+
+var _ = require('lodash');
+
+var DeskConfiguration = require('../../models').DeskConfiguration;
+var DeskField = require('../../models').DeskField;
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of DeskConfigurations
+exports.index = function(req, res) {
+  DeskConfiguration.findAll({
+      where: req.query
+    })
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single DeskConfiguration from the DB
+exports.show = function(req, res) {
+  DeskConfiguration.find({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: DeskField,
+        as: 'Subject'
+      }, {
+        model: DeskField,
+        as: 'Description'
+      }, {
+        model: DeskField,
+        as: 'Field'
+      }]
+    })
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new DeskConfiguration in the DB
+exports.create = function(req, res) {
+  DeskConfiguration.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing DeskConfiguration in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  DeskConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a DeskConfiguration from the DB
+exports.destroy = function(req, res) {
+  DeskConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.addConfigurationField = function(req, res, next) {
+  // console.log(req.params);
+  var deskConfiguration;
+  DeskConfiguration
+    .findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(desk_configuration) {
+      deskConfiguration = desk_configuration;
+      return DeskField.create(req.body)
+    })
+    .then(function(deskField) {
+      switch (req.params.type) {
+        case 'subject':
+          return [deskConfiguration.addSubject(deskField), deskField];
+        case 'description':
+          return [deskConfiguration.addDescription(deskField), deskField];
+        case 'field':
+          return [deskConfiguration.addField(deskField), deskField];
+      }
+    })
+    .spread(function(data, deskField) {
+      return res.status(201).json(deskField);
+    })
+    .catch(handleError(res));
+};
index 2fcbc37..d26e4f6 100644 (file)
@@ -1 +1,24 @@
-var _0x7ada=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7ada[0];var DeskConfiguration=require(_0x7ada[2])[_0x7ada[1]];exports[_0x7ada[3]]=function(_0x2d50x2){DeskConfiguration[_0x7ada[4]](function(_0x2d50x3){onSave(_0x2d50x2,_0x2d50x3)});DeskConfiguration[_0x7ada[5]](function(_0x2d50x3){onRemove(_0x2d50x2,_0x2d50x3)});};function onSave(_0x2d50x2,_0x2d50x3,_0x2d50x5){_0x2d50x2[_0x7ada[7]](_0x7ada[6],_0x2d50x3)}function onRemove(_0x2d50x2,_0x2d50x3,_0x2d50x5){_0x2d50x2[_0x7ada[7]](_0x7ada[8],_0x2d50x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var DeskConfiguration = require('../../models').DeskConfiguration;
+
+exports.register = function(socket) {
+  DeskConfiguration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  DeskConfiguration.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('desk_configuration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('desk_configuration:remove', doc);
+}
index a244385..91adaf0 100644 (file)
@@ -1 +1,19 @@
-var _0xee04=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xee04[0];var express=require(_0xee04[1]);var auth=require(_0xee04[2]);var controller=require(_0xee04[3]);var router=express.Router();router[_0xee04[7]](_0xee04[4],auth[_0xee04[5]](),controller[_0xee04[6]]);router[_0xee04[7]](_0xee04[8],auth[_0xee04[5]](),controller[_0xee04[9]]);router[_0xee04[11]](_0xee04[4],auth[_0xee04[5]](),controller[_0xee04[10]]);router[_0xee04[13]](_0xee04[8],auth[_0xee04[5]](),controller[_0xee04[12]]);router[_0xee04[11]](_0xee04[14],auth[_0xee04[5]](),controller[_0xee04[15]]);router[_0xee04[16]](_0xee04[8],auth[_0xee04[5]](),controller[_0xee04[12]]);router[_0xee04[18]](_0xee04[8],auth[_0xee04[5]](),controller[_0xee04[17]]);module[_0xee04[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./desk_configuration.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index 1732a60..fd6b650 100644 (file)
@@ -1 +1,97 @@
-var _0x53f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x53f7[0];var proxyquire=require(_0x53f7[2])[_0x53f7[1]]();var deskConfigurationCtrlStub={index:_0x53f7[3],show:_0x53f7[4],create:_0x53f7[5],update:_0x53f7[6],destroy:_0x53f7[7]};var routerStub={get:sinon[_0x53f7[8]](),put:sinon[_0x53f7[8]](),patch:sinon[_0x53f7[8]](),post:sinon[_0x53f7[8]](),delete:sinon[_0x53f7[8]]()};var deskConfigurationIndex=proxyquire(_0x53f7[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":deskConfigurationCtrlStub});describe(_0x53f7[10],function(){it(_0x53f7[11],function(){expect(deskConfigurationIndex)[_0x53f7[13]][_0x53f7[12]](routerStub)});describe(_0x53f7[14],function(){it(_0x53f7[15],function(){expect(routerStub[_0x53f7[21]][_0x53f7[20]](_0x53f7[19],_0x53f7[3]))[_0x53f7[13]][_0x53f7[18]][_0x53f7[17]][_0x53f7[16]]})});describe(_0x53f7[22],function(){it(_0x53f7[23],function(){expect(routerStub[_0x53f7[21]][_0x53f7[20]](_0x53f7[24],_0x53f7[4]))[_0x53f7[13]][_0x53f7[18]][_0x53f7[17]][_0x53f7[16]]})});describe(_0x53f7[25],function(){it(_0x53f7[26],function(){expect(routerStub[_0x53f7[27]][_0x53f7[20]](_0x53f7[19],_0x53f7[5]))[_0x53f7[13]][_0x53f7[18]][_0x53f7[17]][_0x53f7[16]]})});describe(_0x53f7[28],function(){it(_0x53f7[29],function(){expect(routerStub[_0x53f7[30]][_0x53f7[20]](_0x53f7[24],_0x53f7[6]))[_0x53f7[13]][_0x53f7[18]][_0x53f7[17]][_0x53f7[16]]})});describe(_0x53f7[31],function(){it(_0x53f7[29],function(){expect(routerStub[_0x53f7[32]][_0x53f7[20]](_0x53f7[24],_0x53f7[6]))[_0x53f7[13]][_0x53f7[18]][_0x53f7[17]][_0x53f7[16]]})});describe(_0x53f7[33],function(){it(_0x53f7[34],function(){expect(routerStub[_0x53f7[35]][_0x53f7[20]](_0x53f7[24],_0x53f7[7]))[_0x53f7[13]][_0x53f7[18]][_0x53f7[17]][_0x53f7[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var deskConfigurationCtrlStub = {
+  index: 'deskConfigurationCtrl.index',
+  show: 'deskConfigurationCtrl.show',
+  create: 'deskConfigurationCtrl.create',
+  update: 'deskConfigurationCtrl.update',
+  destroy: 'deskConfigurationCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var deskConfigurationIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './desk_configuration.controller': deskConfigurationCtrlStub
+});
+
+describe('DeskConfiguration API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(deskConfigurationIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/desk/configurations', function() {
+
+    it('should route to deskConfiguration.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'deskConfigurationCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/desk/configurations/:id', function() {
+
+    it('should route to deskConfiguration.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'deskConfigurationCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/desk/configurations', function() {
+
+    it('should route to deskConfiguration.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'deskConfigurationCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/desk/configurations/:id', function() {
+
+    it('should route to deskConfiguration.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'deskConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/desk/configurations/:id', function() {
+
+    it('should route to deskConfiguration.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'deskConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/desk/configurations/:id', function() {
+
+    it('should route to deskConfiguration.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'deskConfigurationCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 2a7820a..6b39f83 100644 (file)
@@ -1 +1,104 @@
-var _0x7d36=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0x7d36[0];var _=require(_0x7d36[1]);var DeskField=require(_0x7d36[3])[_0x7d36[2]];function handleError(_0x974ex4,_0x974ex5){_0x974ex5=_0x974ex5||500;return function(_0x974ex6){_0x974ex4[_0x7d36[5]](_0x974ex5)[_0x7d36[4]](_0x974ex6)};}function responseWithResult(_0x974ex4,_0x974ex5){_0x974ex5=_0x974ex5||200;return function(_0x974ex8){if(_0x974ex8){_0x974ex4[_0x7d36[5]](_0x974ex5)[_0x7d36[6]](_0x974ex8)}};}function handleEntityNotFound(_0x974ex4){return function(_0x974ex8){if(!_0x974ex8){_0x974ex4[_0x7d36[5]](404)[_0x7d36[7]]();return null;};return _0x974ex8;}}function saveUpdates(_0x974exb){return function(_0x974ex8){return _0x974ex8[_0x7d36[9]](_0x974exb)[_0x7d36[8]](function(_0x974exc){return _0x974exc})}}function removeEntity(_0x974ex4){return function(_0x974ex8){if(_0x974ex8){return _0x974ex8[_0x7d36[10]]()[_0x7d36[8]](function(){_0x974ex4[_0x7d36[5]](204)[_0x7d36[7]]()})}}}exports[_0x7d36[11]]=function(_0x974exe,_0x974ex4){DeskField[_0x7d36[13]]()[_0x7d36[8]](responseWithResult(_0x974ex4))[_0x7d36[12]](handleError(_0x974ex4))};exports[_0x7d36[14]]=function(_0x974exe,_0x974ex4){DeskField[_0x7d36[17]](_0x974exe[_0x7d36[16]][_0x7d36[15]])[_0x7d36[8]](handleEntityNotFound(_0x974ex4))[_0x7d36[8]](responseWithResult(_0x974ex4))[_0x7d36[12]](handleError(_0x974ex4))};exports[_0x7d36[18]]=function(_0x974exe,_0x974ex4){DeskField[_0x7d36[18]](_0x974exe[_0x7d36[19]])[_0x7d36[8]](responseWithResult(_0x974ex4,201))[_0x7d36[12]](handleError(_0x974ex4))};exports[_0x7d36[20]]=function(_0x974exe,_0x974ex4){if(_0x974exe[_0x7d36[19]][_0x7d36[15]]){delete _0x974exe[_0x7d36[19]][_0x7d36[15]]};DeskField[_0x7d36[17]](_0x974exe[_0x7d36[16]][_0x7d36[15]])[_0x7d36[8]](handleEntityNotFound(_0x974ex4))[_0x7d36[8]](saveUpdates(_0x974exe[_0x7d36[19]]))[_0x7d36[8]](responseWithResult(_0x974ex4))[_0x7d36[12]](handleError(_0x974ex4));};exports[_0x7d36[10]]=function(_0x974exe,_0x974ex4){DeskField[_0x7d36[17]](_0x974exe[_0x7d36[16]][_0x7d36[15]])[_0x7d36[8]](handleEntityNotFound(_0x974ex4))[_0x7d36[8]](removeEntity(_0x974ex4))[_0x7d36[12]](handleError(_0x974ex4))};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/desk/fields              ->  index
+ * POST    /api/desk/fields              ->  create
+ * GET     /api/desk/fields/:id          ->  show
+ * PUT     /api/desk/fields/:id          ->  update
+ * DELETE  /api/desk/fields/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var DeskField = require('../../models').DeskField;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of DeskFields
+exports.index = function(req, res) {
+  DeskField.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single DeskField from the DB
+exports.show = function(req, res) {
+  DeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new DeskField in the DB
+exports.create = function(req, res) {
+  DeskField.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing DeskField in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  DeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a DeskField from the DB
+exports.destroy = function(req, res) {
+  DeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
index 96b0250..b01d8f1 100644 (file)
@@ -1 +1,24 @@
-var _0x5c46=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x5c46[0];var DeskField=require(_0x5c46[2])[_0x5c46[1]];exports[_0x5c46[3]]=function(_0x14cbx2){DeskField[_0x5c46[4]](function(_0x14cbx3){onSave(_0x14cbx2,_0x14cbx3)});DeskField[_0x5c46[5]](function(_0x14cbx3){onRemove(_0x14cbx2,_0x14cbx3)});};function onSave(_0x14cbx2,_0x14cbx3,_0x14cbx5){_0x14cbx2[_0x5c46[7]](_0x5c46[6],_0x14cbx3)}function onRemove(_0x14cbx2,_0x14cbx3,_0x14cbx5){_0x14cbx2[_0x5c46[7]](_0x5c46[8],_0x14cbx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var DeskField = require('../../models').DeskField;
+
+exports.register = function(socket) {
+  DeskField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  DeskField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('desk_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('desk_field:remove', doc);
+}
index 9702ff0..266676c 100644 (file)
@@ -1 +1,18 @@
-var _0xfd47=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfd47[0];var express=require(_0xfd47[1]);var auth=require(_0xfd47[2]);var controller=require(_0xfd47[3]);var router=express.Router();router[_0xfd47[7]](_0xfd47[4],auth[_0xfd47[5]](),controller[_0xfd47[6]]);router[_0xfd47[7]](_0xfd47[8],auth[_0xfd47[5]](),controller[_0xfd47[9]]);router[_0xfd47[11]](_0xfd47[4],auth[_0xfd47[5]](),controller[_0xfd47[10]]);router[_0xfd47[13]](_0xfd47[8],auth[_0xfd47[5]](),controller[_0xfd47[12]]);router[_0xfd47[14]](_0xfd47[8],auth[_0xfd47[5]](),controller[_0xfd47[12]]);router[_0xfd47[16]](_0xfd47[8],auth[_0xfd47[5]](),controller[_0xfd47[15]]);module[_0xfd47[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./desk_field.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index d78d78f..fef888c 100644 (file)
@@ -1 +1,97 @@
-var _0xc2c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xc2c3[0];var proxyquire=require(_0xc2c3[2])[_0xc2c3[1]]();var deskFieldCtrlStub={index:_0xc2c3[3],show:_0xc2c3[4],create:_0xc2c3[5],update:_0xc2c3[6],destroy:_0xc2c3[7]};var routerStub={get:sinon[_0xc2c3[8]](),put:sinon[_0xc2c3[8]](),patch:sinon[_0xc2c3[8]](),post:sinon[_0xc2c3[8]](),delete:sinon[_0xc2c3[8]]()};var deskFieldIndex=proxyquire(_0xc2c3[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":deskFieldCtrlStub});describe(_0xc2c3[10],function(){it(_0xc2c3[11],function(){expect(deskFieldIndex)[_0xc2c3[13]][_0xc2c3[12]](routerStub)});describe(_0xc2c3[14],function(){it(_0xc2c3[15],function(){expect(routerStub[_0xc2c3[21]][_0xc2c3[20]](_0xc2c3[19],_0xc2c3[3]))[_0xc2c3[13]][_0xc2c3[18]][_0xc2c3[17]][_0xc2c3[16]]})});describe(_0xc2c3[22],function(){it(_0xc2c3[23],function(){expect(routerStub[_0xc2c3[21]][_0xc2c3[20]](_0xc2c3[24],_0xc2c3[4]))[_0xc2c3[13]][_0xc2c3[18]][_0xc2c3[17]][_0xc2c3[16]]})});describe(_0xc2c3[25],function(){it(_0xc2c3[26],function(){expect(routerStub[_0xc2c3[27]][_0xc2c3[20]](_0xc2c3[19],_0xc2c3[5]))[_0xc2c3[13]][_0xc2c3[18]][_0xc2c3[17]][_0xc2c3[16]]})});describe(_0xc2c3[28],function(){it(_0xc2c3[29],function(){expect(routerStub[_0xc2c3[30]][_0xc2c3[20]](_0xc2c3[24],_0xc2c3[6]))[_0xc2c3[13]][_0xc2c3[18]][_0xc2c3[17]][_0xc2c3[16]]})});describe(_0xc2c3[31],function(){it(_0xc2c3[29],function(){expect(routerStub[_0xc2c3[32]][_0xc2c3[20]](_0xc2c3[24],_0xc2c3[6]))[_0xc2c3[13]][_0xc2c3[18]][_0xc2c3[17]][_0xc2c3[16]]})});describe(_0xc2c3[33],function(){it(_0xc2c3[34],function(){expect(routerStub[_0xc2c3[35]][_0xc2c3[20]](_0xc2c3[24],_0xc2c3[7]))[_0xc2c3[13]][_0xc2c3[18]][_0xc2c3[17]][_0xc2c3[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var deskFieldCtrlStub = {
+  index: 'deskFieldCtrl.index',
+  show: 'deskFieldCtrl.show',
+  create: 'deskFieldCtrl.create',
+  update: 'deskFieldCtrl.update',
+  destroy: 'deskFieldCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var deskFieldIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './desk_field.controller': deskFieldCtrlStub
+});
+
+describe('DeskField API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(deskFieldIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/desk/fields', function() {
+
+    it('should route to deskField.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'deskFieldCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/desk/fields/:id', function() {
+
+    it('should route to deskField.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'deskFieldCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/desk/fields', function() {
+
+    it('should route to deskField.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'deskFieldCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/desk/fields/:id', function() {
+
+    it('should route to deskField.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'deskFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/desk/fields/:id', function() {
+
+    it('should route to deskField.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'deskFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/desk/fields/:id', function() {
+
+    it('should route to deskField.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'deskFieldCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index e8c9843..07c951f 100644 (file)
@@ -1 +1,119 @@
-var _0xc07d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x45\x76\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77\x42\x79\x43\x68\x61\x6E\x6E\x65\x6C","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x63\x68\x61\x6E\x6E\x65\x6C","\x70\x61\x72\x61\x6D\x73","\x73\x68\x6F\x77","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xc07d[0];var _=require(_0xc07d[1]);var Event=require(_0xc07d[3])[_0xc07d[2]];exports[_0xc07d[4]]=function(_0x80adx3,_0x80adx4){Event[_0xc07d[9]]({include:[{all:true}]})[_0xc07d[8]](function(_0x80adx6){return _0x80adx4[_0xc07d[7]](200)[_0xc07d[6]](_0x80adx6)})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)})};exports[_0xc07d[10]]=function(_0x80adx3,_0x80adx4){Event[_0xc07d[9]]({where:{channel:_0x80adx3[_0xc07d[14]][_0xc07d[13]][_0xc07d[12]]()},include:[{all:true}]})[_0xc07d[8]](function(_0x80adx7){if(!_0x80adx7){return _0x80adx4[_0xc07d[11]](404)};return _0x80adx4[_0xc07d[6]](_0x80adx7);})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)})};exports[_0xc07d[15]]=function(_0x80adx3,_0x80adx4){Event[_0xc07d[17]](_0x80adx3[_0xc07d[14]][_0xc07d[16]])[_0xc07d[8]](function(_0x80adx7){if(!_0x80adx7){return _0x80adx4[_0xc07d[11]](404)};return _0x80adx4[_0xc07d[6]](_0x80adx7);})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)})};exports[_0xc07d[18]]=function(_0x80adx3,_0x80adx4){Event[_0xc07d[18]](_0x80adx3[_0xc07d[19]])[_0xc07d[8]](function(_0x80adx7){return _0x80adx4[_0xc07d[7]](201)[_0xc07d[6]](_0x80adx7)})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)})};exports[_0xc07d[20]]=function(_0x80adx3,_0x80adx4){if(_0x80adx3[_0xc07d[19]][_0xc07d[16]]){delete _0x80adx3[_0xc07d[19]][_0xc07d[16]]};Event[_0xc07d[17]](_0x80adx3[_0xc07d[14]][_0xc07d[16]])[_0xc07d[8]](function(_0x80adx7){if(!_0x80adx7){return _0x80adx4[_0xc07d[11]](404)};var _0x80adx8=_[_0xc07d[21]](_0x80adx7,_0x80adx3[_0xc07d[19]]);_0x80adx8[_0xc07d[22]]()[_0xc07d[8]](function(){return _0x80adx4[_0xc07d[7]](200)[_0xc07d[6]](_0x80adx7)})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)});})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)});};exports[_0xc07d[23]]=function(_0x80adx3,_0x80adx4){Event[_0xc07d[17]](_0x80adx3[_0xc07d[14]][_0xc07d[16]])[_0xc07d[8]](function(_0x80adx7){if(!_0x80adx7){return _0x80adx4[_0xc07d[11]](404)};_0x80adx7[_0xc07d[23]]()[_0xc07d[8]](function(){return _0x80adx4[_0xc07d[11]](204)})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)});})[_0xc07d[5]](function(_0x80adx5){return handleError(_0x80adx4,_0x80adx5)})};function handleError(_0x80adx4,_0x80adx5){return _0x80adx4[_0xc07d[7]](500)[_0xc07d[6]](_0x80adx5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Event = require('../../models').Event;
+
+// Get list of events
+exports.index = function(req, res) {
+  Event
+    .findAll({
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(events) {
+      return res.status(200).send(events);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single event
+exports.showByChannel = function(req, res) {
+  Event
+    .findAll({
+      where: {
+        channel: req.params.channel.toUpperCase()
+      },
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(event) {
+      if (!event) {
+        return res.sendStatus(404);
+      }
+      return res.send(event);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single event
+exports.show = function(req, res) {
+  Event
+    .findById(req.params.id)
+    .then(function(event) {
+      if (!event) {
+        return res.sendStatus(404);
+      }
+      return res.send(event);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new event in the DB.
+exports.create = function(req, res) {
+  Event
+    .create(req.body)
+    .then(function(event) {
+      return res.status(201).send(event);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing event in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Event
+    .findById(req.params.id)
+    .then(function(event) {
+      if (!event) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(event, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(event);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a event from the DB.
+exports.destroy = function(req, res) {
+  Event
+    .findById(req.params.id)
+    .then(function(event) {
+      if (!event) {
+        return res.sendStatus(404);
+      }
+      event.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index db6bf71..cf6f9ec 100644 (file)
@@ -1 +1,36 @@
-var _0xb653=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x45\x76\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x65\x76\x65\x6E\x74\x3A","\x63\x68\x61\x6E\x6E\x65\x6C","\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x65\x76\x65\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb653[0];var Event=require(_0xb653[2])[_0xb653[1]];exports[_0xb653[3]]=function(_0xe990x2){Event[_0xb653[7]](function(_0xe990x3){Event[_0xb653[6]]({where:{id:_0xe990x3[_0xb653[5]]},include:[{all:true}]})[_0xb653[4]](function(_0xe990x4){onSave(_0xe990x2,_0xe990x4)})});Event[_0xb653[8]](function(_0xe990x3){onRemove(_0xe990x2,_0xe990x3)});};function onSave(_0xe990x2,_0xe990x3,_0xe990x6){_0xe990x2[_0xb653[13]]((_0xb653[10]+_0xe990x3[_0xb653[11]]+_0xb653[12])[_0xb653[9]](),_0xe990x3)}function onRemove(_0xe990x2,_0xe990x3,_0xe990x6){_0xe990x2[_0xb653[13]](_0xb653[14],_0xe990x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Event = require('../../models').Event;
+
+exports.register = function(socket) {
+  Event.afterCreate(function(doc) {
+    Event
+      .findOne({
+        where: {
+          id: doc.id
+        },
+        include: [{
+          all: true
+        }]
+      })
+      .then(function(event) {
+        onSave(socket, event);
+      });
+  });
+
+  Event.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit(('event:' + doc.channel + ':save').toLowerCase(), doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('event:remove', doc);
+}
index d91c89d..190d585 100644 (file)
@@ -1 +1,20 @@
-var _0xfa53=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74\x73","\x67\x65\x74"];_0xfa53[0];var should=require(_0xfa53[1]);var app=require(_0xfa53[2]);var request=require(_0xfa53[3]);describe(_0xfa53[4],function(){it(_0xfa53[5],function(_0x6571x4){request(app)[_0xfa53[13]](_0xfa53[12])[_0xfa53[11]](200)[_0xfa53[11]](_0xfa53[10],/json/)[_0xfa53[9]](function(_0x6571x5,_0x6571x6){if(_0x6571x5){return _0x6571x4(_0x6571x5)};_0x6571x6[_0xfa53[8]][_0xfa53[1]][_0xfa53[7]][_0xfa53[6]](Array);_0x6571x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/events', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/events')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index eadd753..d23b18d 100644 (file)
@@ -1 +1,16 @@
-var _0xa0c0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x76\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x3A\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x68\x6F\x77\x42\x79\x43\x68\x61\x6E\x6E\x65\x6C","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa0c0[0];var express=require(_0xa0c0[1]);var controller=require(_0xa0c0[2]);var router=express.Router();router[_0xa0c0[5]](_0xa0c0[3],controller[_0xa0c0[4]]);router[_0xa0c0[5]](_0xa0c0[6],controller[_0xa0c0[7]]);router[_0xa0c0[5]](_0xa0c0[8],controller[_0xa0c0[9]]);router[_0xa0c0[11]](_0xa0c0[3],controller[_0xa0c0[10]]);router[_0xa0c0[13]](_0xa0c0[8],controller[_0xa0c0[12]]);router[_0xa0c0[14]](_0xa0c0[8],controller[_0xa0c0[12]]);router[_0xa0c0[16]](_0xa0c0[8],controller[_0xa0c0[15]]);module[_0xa0c0[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./event.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/channel/:channel', controller.showByChannel);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 53330fd..8975490 100644 (file)
@@ -1 +1,245 @@
-var _0x21b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x66\x73","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x6C\x6F\x67","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x6A\x6F\x69\x6E","\x65\x6E\x63\x6F\x64\x65","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x74\x72\x6F\x79","\x52\x5F\x4F\x4B","\x57\x5F\x4F\x4B","\x46\x69\x6C\x65\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x20\x6F\x72\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x70\x65\x72\x6D\x69\x74\x74\x65\x64","\x65\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x20\x64\x65\x6C\x65\x74\x69\x6E\x67\x20\x66\x69\x6C\x65\x20\x3A","\x66\x69\x6C\x65\x20\x64\x65\x6C\x65\x74\x65\x64","\x75\x6E\x6C\x69\x6E\x6B","\x61\x63\x63\x65\x73\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x21b4[0];var _=require(_0x21b4[1]);var ExtractedReport=require(_0x21b4[3])[_0x21b4[2]];var util=require(_0x21b4[4]);var path=require(_0x21b4[5]);var moment=require(_0x21b4[6]);var config=require(_0x21b4[7]);var base64=require(_0x21b4[8]);var fs=require(_0x21b4[9]);exports[_0x21b4[10]]=function(_0x2cf9x9,_0x2cf9xa){var _0x2cf9xb=[_0x21b4[11],_0x21b4[12],_0x21b4[13]];var _0x2cf9xc=_0x2cf9x9[_0x21b4[15]][_0x21b4[14]]?parseInt(_0x2cf9x9[_0x21b4[15]][_0x21b4[14]],10):100;var _0x2cf9xd=_0x2cf9x9[_0x21b4[15]][_0x21b4[16]]?parseInt(_0x2cf9x9[_0x21b4[15]][_0x21b4[16]],10):0;var _0x2cf9xe={where:{},limit:_0x2cf9xc,offset:_0x2cf9xd*_0x2cf9xc};_[_0x21b4[30]](_0x2cf9x9[_0x21b4[15]],function(_0x2cf9xf,_0x2cf9x10){switch(_0x2cf9x10){case _0x21b4[14]:;case _0x21b4[16]:break ;;case _0x21b4[19]:_0x2cf9xe[_0x21b4[17]]=util[_0x21b4[22]](_0x21b4[18],_0x2cf9x9[_0x21b4[15]][_0x21b4[19]],_0x2cf9x9[_0x21b4[15]][_0x21b4[20]]||_0x21b4[21])||null;break ;;case _0x21b4[20]:break ;;case _0x21b4[28]:_0x2cf9xe[_0x21b4[24]][_0x21b4[23]]=[];_0x2cf9xb[_0x21b4[27]](function(_0x2cf9x11){var _0x2cf9x12={};_0x2cf9x12[_0x2cf9x11]={$like:_0x21b4[25]+_0x2cf9xf+_0x21b4[25]};_0x2cf9xe[_0x21b4[24]][_0x21b4[23]][_0x21b4[26]](_0x2cf9x12);});break ;;default:_0x2cf9xe[_0x21b4[24]][_0x2cf9x10]={$like:{}};_0x2cf9xe[_0x21b4[24]][_0x2cf9x10][_0x21b4[29]]=_0x21b4[25]+_0x2cf9xf+_0x21b4[25];;}});console[_0x21b4[31]](_0x2cf9xe);ExtractedReport[_0x21b4[46]](_0x2cf9xe)[_0x21b4[45]](function(_0x2cf9x14){var _0x2cf9x15=Math[_0x21b4[37]](_0x2cf9x14[_0x21b4[36]]/_0x2cf9xc);var _0x2cf9x16=_0x2cf9x15>(_0x2cf9xe[_0x21b4[38]]+1)?util[_0x21b4[22]](_0x21b4[39],_0x2cf9x9[_0x21b4[40]],_0x2cf9x9[_0x21b4[42]][_0x21b4[41]],_0x2cf9x9[_0x21b4[43]],_0x2cf9xd+1):null;var _0x2cf9x17=_0x2cf9xd>0?util[_0x21b4[22]](_0x21b4[39],_0x2cf9x9[_0x21b4[40]],_0x2cf9x9[_0x21b4[42]][_0x21b4[41]],_0x2cf9x9[_0x21b4[43]],_0x2cf9xd-1):null;_0x2cf9xa[_0x21b4[34]](200)[_0x21b4[33]]({count:_0x2cf9x14[_0x21b4[36]],rows:_0x2cf9x14[_0x21b4[44]],next_page:_0x2cf9x16,previous_page:_0x2cf9x17,total_pages:_0x2cf9x15});})[_0x21b4[35]](function(_0x2cf9x13){_0x2cf9xa[_0x21b4[34]](500)[_0x21b4[33]]({error:_0x21b4[32]})});};exports[_0x21b4[47]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x18){if(!_0x2cf9x18){return _0x2cf9xa[_0x21b4[48]](404)};return _0x2cf9xa[_0x21b4[33]](_0x2cf9x18);})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[52]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x19){if(!_0x2cf9x19){return _0x2cf9xa[_0x21b4[34]](404)[_0x21b4[33]](_0x2cf9x19)};var _0x2cf9x1a=path[_0x21b4[58]](config[_0x21b4[53]],_0x21b4[54],_0x21b4[55],_0x21b4[56],_0x2cf9x19[_0x21b4[57]]);base64[_0x21b4[59]](_0x2cf9x1a,function(_0x2cf9x13,_0x2cf9x1b){if(_0x2cf9x13){console[_0x21b4[31]](_0x2cf9x13);return handleError(_0x2cf9xa,_0x2cf9x13);}else {return _0x2cf9xa[_0x21b4[34]](200)[_0x21b4[33]](_0x2cf9x1b)}});})[_0x21b4[35]](function(_0x2cf9x13){console[_0x21b4[31]](_0x2cf9x13);return handleError(_0x2cf9xa,_0x2cf9x13);})};exports[_0x21b4[60]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[60]](_0x2cf9x9[_0x21b4[61]])[_0x21b4[45]](function(_0x2cf9x18){return _0x2cf9xa[_0x21b4[34]](201)[_0x21b4[33]](_0x2cf9x18)})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[62]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[65]]({where:{name:_0x2cf9x9[_0x21b4[61]][_0x21b4[11]],id:{$ne:_0x2cf9x9[_0x21b4[61]][_0x21b4[49]]}}})[_0x21b4[45]](function(_0x2cf9x1c){if(!_0x2cf9x1c){return _0x2cf9xa[_0x21b4[48]](404)};if(_0x2cf9x9[_0x21b4[61]][_0x21b4[49]]){delete _0x2cf9x9[_0x21b4[61]][_0x21b4[49]]};ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x18){if(!_0x2cf9x18){return _0x2cf9xa[_0x21b4[48]](404)};var _0x2cf9x1d=_[_0x21b4[63]](_0x2cf9x18,_0x2cf9x9[_0x21b4[61]]);_0x2cf9x1d[_0x21b4[64]]()[_0x21b4[45]](function(){return _0x2cf9xa[_0x21b4[34]](200)[_0x21b4[33]](_0x2cf9x18)})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)});})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)});})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[66]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x18){if(!_0x2cf9x18){return _0x2cf9xa[_0x21b4[48]](404)};_0x2cf9x18[_0x21b4[66]]()[_0x21b4[45]](function(){var _0x2cf9x1a=path[_0x21b4[58]](config[_0x21b4[53]],_0x21b4[54],_0x21b4[55],_0x21b4[56],_0x2cf9x18[_0x21b4[57]]);fs[_0x21b4[74]](_0x2cf9x1a,fs[_0x21b4[67]]|fs[_0x21b4[68]],function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[69])}else {fs[_0x21b4[73]](_0x2cf9x1a,function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[71],_0x2cf9x13)}else {console[_0x21b4[31]](_0x21b4[72])}})}});return _0x2cf9xa[_0x21b4[48]](204);})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)});})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[75]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[65]]({where:{id:_0x2cf9x9[_0x21b4[15]][_0x21b4[49]]}})[_0x21b4[45]](function(_0x2cf9x1e){_0x2cf9x1e[_0x21b4[27]](function(_0x2cf9x18){_0x2cf9x18[_0x21b4[66]]()[_0x21b4[45]](function(){var _0x2cf9x1a=path[_0x21b4[58]](config[_0x21b4[53]],_0x21b4[54],_0x21b4[55],_0x21b4[56],_0x2cf9x18[_0x21b4[57]]);fs[_0x21b4[74]](_0x2cf9x1a,fs[_0x21b4[67]]|fs[_0x21b4[68]],function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[69])}else {fs[_0x21b4[73]](_0x2cf9x1a,function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[71],_0x2cf9x13)}else {console[_0x21b4[31]](_0x21b4[72])}})}});})[_0x21b4[35]](function(_0x2cf9x13){console[_0x21b4[31]](_0x2cf9x13)})});return _0x2cf9xa[_0x21b4[48]](204);})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};function handleError(_0x2cf9xa,_0x2cf9x13){return _0x2cf9xa[_0x21b4[34]](500)[_0x21b4[33]](_0x2cf9x13)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ExtractedReport = require('../../models').ExtractedReport;
+var util = require('util');
+var path = require('path');
+var moment = require('moment');
+var config = require('../../config/environment');
+var base64 = require('file-base64');
+var fs = require('fs');
+
+// Get list of extracted_reports
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'startDate', 'endDate'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+  console.log(query);
+
+  ExtractedReport
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single extracted_reports
+exports.show = function(req, res) {
+  ExtractedReport
+    .findById(req.params.id)
+    .then(function(extracted) {
+      if (!extracted) {
+        return res.sendStatus(404);
+      }
+      return res.send(extracted);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.download = function(req, res) {
+  ExtractedReport
+    .findById(req.params.id)
+    .then(function(extract) {
+      if (!extract) {
+        return res.status(404).send(extract);
+      }
+      var filepath = path.join(config.root, 'server', 'files', 'reports', extract.savename);
+      base64.encode(filepath, function(err, base64String) {
+        if (err) {
+          console.log(err);
+          return handleError(res, err);
+        } else {
+          return res.status(200).send(base64String);
+        }
+      });
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Creates a new extracted_report in the DB.
+exports.create = function(req, res) {
+  ExtractedReport
+    .create(req.body)
+    .then(function(extracted) {
+      return res.status(201).send(extracted);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing extracted_report in the DB.
+exports.update = function(req, res) {
+  ExtractedReport
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(extracted_reports) {
+      if (!extracted_reports) {
+        return res.sendStatus(404);
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      ExtractedReport
+        .findById(req.params.id)
+        .then(function(extracted) {
+          if (!extracted) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(extracted, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(extracted);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes an extracted_report from the DB.
+exports.destroy = function(req, res) {
+  ExtractedReport
+    .findById(req.params.id)
+    .then(function(extracted) {
+      if (!extracted) {
+        return res.sendStatus(404);
+      }
+      extracted.destroy()
+        .then(function() {
+          var filepath = path.join(config.root, 'server', 'files', 'reports', extracted.savename);
+          fs.access(filepath, fs.R_OK | fs.W_OK, function(err) {
+            if (err) {
+              console.error('File does not exist or operation not permitted');
+            } else {
+              fs.unlink(filepath, function(err) {
+                if (err) {
+                  console.error('error deleting file :', err);
+                } else {
+                  console.log('file deleted');
+                }
+              })
+            }
+          });
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  ExtractedReport
+    .findAll({
+      where: {
+        id: req.query.id
+      }
+    })
+    .then(function(extracts) {
+      extracts.forEach(function(extracted) {
+        extracted.destroy()
+          .then(function() {
+            var filepath = path.join(config.root, 'server', 'files', 'reports', extracted.savename);
+            fs.access(filepath, fs.R_OK | fs.W_OK, function(err) {
+              if (err) {
+                console.error('File does not exist or operation not permitted');
+              } else {
+                fs.unlink(filepath, function(err) {
+                  if (err) {
+                    console.error('error deleting file :', err);
+                  } else {
+                    console.log('file deleted');
+                  }
+                })
+              }
+            });
+          })
+          .catch(function(err) {
+            console.log(err);
+          });
+      });
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index bc785fb..faf3482 100644 (file)
@@ -1 +1,24 @@
-var _0x9e3b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9e3b[0];var ExtractedReport=require(_0x9e3b[2])[_0x9e3b[1]];exports[_0x9e3b[3]]=function(_0xdee0x2){ExtractedReport[_0x9e3b[4]](function(_0xdee0x3){onSave(_0xdee0x2,_0xdee0x3)});ExtractedReport[_0x9e3b[5]](function(_0xdee0x3){onRemove(_0xdee0x2,_0xdee0x3)});};function onSave(_0xdee0x2,_0xdee0x3,_0xdee0x5){_0xdee0x2[_0x9e3b[7]](_0x9e3b[6],_0xdee0x3)}function onRemove(_0xdee0x2,_0xdee0x3,_0xdee0x5){_0xdee0x2[_0x9e3b[7]](_0x9e3b[8],_0xdee0x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ExtractedReport = require('../../models').ExtractedReport;
+
+exports.register = function(socket) {
+  ExtractedReport.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ExtractedReport.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('extracted_report:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('extracted_report:remove', doc);
+}
index c59bf1f..0830865 100644 (file)
@@ -1 +1,20 @@
-var _0xb747=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64","\x67\x65\x74"];_0xb747[0];var should=require(_0xb747[1]);var app=require(_0xb747[2]);var request=require(_0xb747[3]);describe(_0xb747[4],function(){it(_0xb747[5],function(_0xbec9x4){request(app)[_0xb747[13]](_0xb747[12])[_0xb747[11]](200)[_0xb747[11]](_0xb747[10],/json/)[_0xb747[9]](function(_0xbec9x5,_0xbec9x6){if(_0xbec9x5){return _0xbec9x4(_0xbec9x5)};_0xbec9x6[_0xb747[8]][_0xb747[1]][_0xb747[7]][_0xb747[6]](Array);_0xbec9x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/extracted', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytics/extracted')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index e3453d8..5f39be2 100644 (file)
@@ -1 +1,18 @@
-var _0x6b37=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x2F\x3A\x69\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x6b37[0];var express=require(_0x6b37[1]);var controller=require(_0x6b37[2]);var auth=require(_0x6b37[3]);var router=express.Router();router[_0x6b37[7]](_0x6b37[4],auth[_0x6b37[5]](),controller[_0x6b37[6]]);router[_0x6b37[7]](_0x6b37[8],auth[_0x6b37[5]](),controller[_0x6b37[9]]);router[_0x6b37[7]](_0x6b37[10],auth[_0x6b37[5]](),controller[_0x6b37[11]]);router[_0x6b37[13]](_0x6b37[4],auth[_0x6b37[5]](),controller[_0x6b37[12]]);router[_0x6b37[15]](_0x6b37[10],auth[_0x6b37[5]](),controller[_0x6b37[14]]);router[_0x6b37[16]](_0x6b37[10],auth[_0x6b37[5]](),controller[_0x6b37[14]]);router[_0x6b37[18]](_0x6b37[4],auth[_0x6b37[5]](),controller[_0x6b37[17]]);router[_0x6b37[18]](_0x6b37[10],auth[_0x6b37[5]](),controller[_0x6b37[19]]);module[_0x6b37[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./extracted_report.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/download/:id', auth.isAuthenticated(), controller.download);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index a1695b5..d550303 100644 (file)
@@ -1 +1,374 @@
-var _0x6473=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x63\x6F\x6E\x74\x65\x78\x74","\x47\x6F\x74\x6F","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78\x2C\x73\x2C\x31","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6C\x6F\x67","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x6F\x6B","\x63\x6F\x6D\x6D\x69\x74","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x65\x64\x69\x74\x65\x64","\x55\x73\x65\x72\x49\x64","\x6D\x65\x72\x67\x65","\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x20\x73\x61\x76\x65\x64","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x6473[0];var _=require(_0x6473[1]);var util=require(_0x6473[2]);var async=require(_0x6473[3]);var Trunk=require(_0x6473[5])[_0x6473[4]];var FaxAccount=require(_0x6473[5])[_0x6473[6]];var FaxApplication=require(_0x6473[5])[_0x6473[7]];var VoiceExtension=require(_0x6473[5])[_0x6473[8]];var sequelize=require(_0x6473[5])[_0x6473[9]];exports[_0x6473[10]]=function(_0x2e2ex9,_0x2e2exa,_0x2e2exb){var _0x2e2exc=[_0x6473[11],_0x6473[12],_0x6473[13]];var _0x2e2exd=_0x2e2ex9[_0x6473[15]][_0x6473[14]]?parseInt(_0x2e2ex9[_0x6473[15]][_0x6473[14]],10):100;var _0x2e2exe=_0x2e2ex9[_0x6473[15]][_0x6473[16]]?parseInt(_0x2e2ex9[_0x6473[15]][_0x6473[16]],10):0;var _0x2e2exf={where:{},limit:_0x2e2exd,offset:_0x2e2exe*_0x2e2exd};_[_0x6473[30]](_0x2e2ex9[_0x6473[15]],function(_0x2e2ex10,_0x2e2ex11){switch(_0x2e2ex11){case _0x6473[14]:;case _0x6473[16]:break ;;case _0x6473[19]:_0x2e2exf[_0x6473[17]]=util[_0x6473[22]](_0x6473[18],_0x2e2ex9[_0x6473[15]][_0x6473[19]],_0x2e2ex9[_0x6473[15]][_0x6473[20]]||_0x6473[21])||null;break ;;case _0x6473[20]:break ;;case _0x6473[28]:_0x2e2exf[_0x6473[24]][_0x6473[23]]=[];_0x2e2exc[_0x6473[27]](function(_0x2e2ex12){var _0x2e2ex13={};_0x2e2ex13[_0x2e2ex12]={$like:_0x6473[25]+_0x2e2ex10+_0x6473[25]};_0x2e2exf[_0x6473[24]][_0x6473[23]][_0x6473[26]](_0x2e2ex13);});break ;;default:_0x2e2exf[_0x6473[24]][_0x2e2ex11]={$like:{}};_0x2e2exf[_0x6473[24]][_0x2e2ex11][_0x6473[29]]=_0x6473[25]+_0x2e2ex10+_0x6473[25];;}});FaxAccount[_0x6473[45]](_0x2e2exf)[_0x6473[44]](function(_0x2e2ex15){var _0x2e2ex16=Math[_0x6473[36]](_0x2e2ex15[_0x6473[35]]/_0x2e2exd);var _0x2e2ex17=_0x2e2ex16>(_0x2e2exf[_0x6473[37]]+1)?util[_0x6473[22]](_0x6473[38],_0x2e2ex9[_0x6473[39]],_0x2e2ex9[_0x6473[41]][_0x6473[40]],_0x2e2ex9[_0x6473[42]],_0x2e2exe+1):null;var _0x2e2ex18=_0x2e2exe>0?util[_0x6473[22]](_0x6473[38],_0x2e2ex9[_0x6473[39]],_0x2e2ex9[_0x6473[41]][_0x6473[40]],_0x2e2ex9[_0x6473[42]],_0x2e2exe-1):null;_0x2e2exa[_0x6473[33]](200)[_0x6473[32]]({count:_0x2e2ex15[_0x6473[35]],rows:_0x2e2ex15[_0x6473[43]],next_page:_0x2e2ex17,previous_page:_0x2e2ex18,total_pages:_0x2e2ex16});})[_0x6473[34]](function(_0x2e2ex14){_0x2e2exa[_0x6473[33]](500)[_0x6473[32]]({error:_0x6473[31]})});};exports[_0x6473[46]]=function(_0x2e2ex9,_0x2e2exa,_0x2e2exb){FaxAccount[_0x6473[50]](_0x2e2ex9[_0x6473[49]][_0x6473[48]])[_0x6473[44]](function(_0x2e2ex19){if(!_0x2e2ex19){return _0x2e2exa[_0x6473[47]](404)};return _0x2e2exa[_0x6473[32]](_0x2e2ex19);})[_0x6473[34]](function(_0x2e2ex14){return _0x2e2exb(_0x2e2ex14)})};exports[_0x6473[51]]=function(_0x2e2ex9,_0x2e2exa,_0x2e2exb){return sequelize[_0x6473[62]]()[_0x6473[44]](function(_0x2e2ex1a){async[_0x6473[61]]([function(_0x2e2ex1b){return FaxAccount[_0x6473[51]](_0x2e2ex9[_0x6473[52]],{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex19){_0x2e2ex1b(null,_0x2e2ex19)})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)})},function(_0x2e2ex19,_0x2e2ex1b){return Trunk[_0x6473[50]](_0x2e2ex9[_0x6473[52]].TrunkId,{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex1c){_0x2e2ex1b(null,_0x2e2ex19,_0x2e2ex1c)})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)})},function(_0x2e2ex19,_0x2e2ex1c,_0x2e2ex1b){return VoiceExtension[_0x6473[51]]({context:_0x2e2ex1c[_0x6473[53]],exten:_0x2e2ex9[_0x6473[52]][_0x6473[13]],priority:1,app:_0x6473[54],appdata:_0x6473[55],type:_0x6473[56],TrunkId:_0x2e2ex1c[_0x6473[48]]},{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex1d){_0x2e2ex1b(null,_0x2e2ex19)})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)})}],function(_0x2e2ex14,_0x2e2ex19){if(_0x2e2ex14){console[_0x6473[57]](_0x2e2ex14);_0x2e2ex1a[_0x6473[58]]();return _0x2e2exa[_0x6473[33]](404)[_0x6473[32]](_0x2e2ex14);}else {console[_0x6473[57]](_0x6473[59]);_0x2e2ex1a[_0x6473[60]]();return _0x2e2exa[_0x6473[33]](201)[_0x6473[32]](_0x2e2ex19);}})})};exports[_0x6473[63]]=function(_0x2e2ex9,_0x2e2exa,_0x2e2exb){if(_0x2e2ex9[_0x6473[52]][_0x6473[48]]){delete _0x2e2ex9[_0x6473[52]][_0x6473[48]]};return sequelize[_0x6473[62]]()[_0x6473[44]](function(_0x2e2ex1a){async[_0x6473[61]]([function(_0x2e2ex1b){return FaxAccount[_0x6473[64]]({where:{id:_0x2e2ex9[_0x6473[49]][_0x6473[48]]},include:[{model:Trunk}]},{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex19){_0x2e2ex1b(null,_0x2e2ex19)})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)})},function(_0x2e2ex19,_0x2e2ex1b){return Trunk[_0x6473[50]](_0x2e2ex9[_0x6473[52]].TrunkId,{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex1e){return _0x2e2ex19[_0x6473[65]]({TrunkId:_0x2e2ex1e[_0x6473[48]]},{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex1f){_0x2e2ex1b(null,_0x2e2ex19,_0x2e2ex1e)})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)})})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)})},function(_0x2e2ex19,_0x2e2ex1e,_0x2e2ex1b){return VoiceExtension[_0x6473[64]]({where:{priority:1,exten:_0x2e2ex19[_0x6473[13]],context:_0x2e2ex19[_0x6473[4]][_0x6473[53]]}},{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex1d){if(!_0x2e2ex1d){_0x2e2ex1b(null,_0x2e2ex19)};return _0x2e2ex1d[_0x6473[65]]({exten:_0x2e2ex9[_0x6473[52]][_0x6473[13]],context:_0x2e2ex1e[_0x6473[53]],TrunkId:_0x2e2ex9[_0x6473[52]][_0x6473[67]]},{transaction:_0x2e2ex1a})[_0x6473[44]](function(){console[_0x6473[57]](_0x6473[66]);_0x2e2ex1b(null,_0x2e2ex19);})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)});})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)})},function(_0x2e2ex19,_0x2e2ex1b){var _0x2e2ex20=_[_0x6473[68]](_0x2e2ex19,_0x2e2ex9[_0x6473[52]]);return _0x2e2ex20[_0x6473[70]]({transaction:_0x2e2ex1a})[_0x6473[44]](function(){console[_0x6473[57]](_0x6473[69]);_0x2e2ex1b(null,_0x2e2ex19);})[_0x6473[34]](function(_0x2e2ex14){_0x2e2ex1b(_0x2e2ex14)});}],function(_0x2e2ex14,_0x2e2ex19){if(_0x2e2ex14){console[_0x6473[57]](_0x2e2ex14);_0x2e2ex1a[_0x6473[58]]();return _0x2e2exa[_0x6473[33]](404)[_0x6473[32]](_0x2e2ex14);}else {console[_0x6473[57]](_0x6473[59]);_0x2e2ex1a[_0x6473[60]]();return _0x2e2exa[_0x6473[33]](201)[_0x6473[32]](_0x2e2ex19);}})});};exports[_0x6473[71]]=function(_0x2e2ex9,_0x2e2exa,_0x2e2exb){FaxAccount[_0x6473[72]]({where:{id:_0x2e2ex9[_0x6473[49]][_0x6473[48]]}})[_0x6473[44]](function(_0x2e2ex19){if(!_0x2e2ex19){return _0x2e2exa[_0x6473[47]](404)};_0x2e2ex19[_0x6473[71]]()[_0x6473[44]](function(){return _0x2e2exa[_0x6473[47]](204)})[_0x6473[34]](function(_0x2e2ex14){_0x2e2exb(_0x2e2ex14)});})[_0x6473[34]](function(_0x2e2ex14){_0x2e2exb(_0x2e2ex14)})};exports[_0x6473[73]]=function(_0x2e2ex9,_0x2e2exa,_0x2e2exb){FaxApplication[_0x6473[79]]({where:{id:_0x2e2ex9[_0x6473[52]][_0x6473[75]]}})[_0x6473[44]](function(_0x2e2ex21){var _0x2e2ex22=_0x2e2ex21;return sequelize[_0x6473[62]](function(_0x2e2ex1a){return FaxApplication[_0x6473[71]]({where:{id:_0x2e2ex9[_0x6473[52]][_0x6473[75]]}},{transaction:_0x2e2ex1a})[_0x6473[44]](function(){var _0x2e2ex23=[];for(var _0x2e2ex24=0;_0x2e2ex24<_0x2e2ex9[_0x6473[52]][_0x6473[75]][_0x6473[74]];_0x2e2ex24++){var _0x2e2ex25=_[_0x6473[72]](_0x2e2ex22,{"\x69\x64":_0x2e2ex9[_0x6473[52]][_0x6473[75]][_0x2e2ex24]});if(_0x2e2ex25){_0x2e2ex25[_0x6473[76]]=_0x2e2ex24+1;_0x2e2ex23[_0x6473[26]](_0x2e2ex25[_0x6473[77]]);};};return FaxApplication[_0x6473[78]](_0x2e2ex23,{transaction:_0x2e2ex1a})[_0x6473[44]](function(_0x2e2ex1f){return _0x2e2ex1f});})})[_0x6473[44]](function(_0x2e2ex15){return _0x2e2exa[_0x6473[33]](200)[_0x6473[32]](_0x2e2ex15)})[_0x6473[34]](function(_0x2e2ex14){return handleError(_0x2e2exa,_0x2e2ex14)});})[_0x6473[34]](function(_0x2e2ex14){return _0x2e2exb(_0x2e2ex14)})};exports[_0x6473[80]]=function(_0x2e2ex9,_0x2e2exa){FaxAccount[_0x6473[71]]({where:{id:_0x2e2ex9[_0x6473[15]][_0x6473[48]]},individualHooks:true})[_0x6473[44]](function(){return _0x2e2exa[_0x6473[47]](204)})[_0x6473[34]](function(_0x2e2ex14){return handleError(_0x2e2exa,_0x2e2ex14)})};function handleError(_0x2e2exa,_0x2e2ex14){return _0x2e2exa[_0x6473[33]](500)[_0x6473[32]](_0x2e2ex14)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var async = require('async');
+
+var Trunk = require('../../models').Trunk;
+var FaxAccount = require('../../models').FaxAccount;
+var FaxApplication = require('../../models').FaxApplication;
+var VoiceExtension = require('../../models').VoiceExtension;
+var sequelize = require('../../models').sequelize;
+
+// Get list of agents
+exports.index = function(req, res, next) {
+
+  var attributes = ['description', 'name', 'phone'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  FaxAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single faxAccount
+exports.show = function(req, res, next) {
+  FaxAccount
+    .findById(req.params.id)
+    .then(function(faxAccount) {
+      if (!faxAccount) {
+        return res.sendStatus(404);
+      }
+      return res.send(faxAccount);
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Creates a new faxAccount in the DB.
+exports.create = function(req, res, next) {
+  // console.log(req.body);
+  return sequelize
+    .transaction()
+    .then(function(t) {
+      async.waterfall([
+        function(callback) {
+          return FaxAccount
+            .create(req.body, {
+              transaction: t
+            })
+            .then(function(faxAccount) {
+              callback(null, faxAccount);
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        },
+        function(faxAccount, callback) {
+          return Trunk
+            .findById(req.body.TrunkId, {
+              transaction: t
+            })
+            .then(function(faxTrunk) {
+              callback(null, faxAccount, faxTrunk);
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        },
+        function(faxAccount, faxTrunk, callback) {
+          return VoiceExtension
+            .create({
+              context: faxTrunk.context,
+              exten: req.body.phone,
+              priority: 1,
+              app: 'Goto',
+              appdata: 'inbound-fax,s,1',
+              type: 'inbound-fax',
+              TrunkId: faxTrunk.id
+            }, {
+              transaction: t
+            })
+            .then(function(voiceExtension) {
+              callback(null, faxAccount);
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        }
+      ], function(err, faxAccount) {
+        if (err) {
+          console.log(err);
+          t.rollback();
+          return res.status(404).send(err);
+        } else {
+          console.log('ok');
+          t.commit();
+          return res.status(201).send(faxAccount);
+        }
+      })
+    });
+};
+
+// Updates an existing faxAccount in the DB.
+exports.update = function(req, res, next) {
+  // console.log(req.body);
+  // console.log(req.params);
+
+  if (req.body.id) {
+    delete req.body.id;
+  }
+
+  return sequelize
+    .transaction()
+    .then(function(t) {
+      async.waterfall([
+        function(callback) {
+          return FaxAccount
+            .findOne({
+              where: {
+                id: req.params.id
+              },
+              include: [{
+                model: Trunk
+              }]
+            }, {
+              transaction: t
+            })
+            .then(function(faxAccount) {
+              callback(null, faxAccount);
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        },
+        function(faxAccount, callback) {
+          return Trunk
+            .findById(req.body.TrunkId, {
+              transaction: t
+            })
+            .then(function(trunk) {
+              return faxAccount
+                .updateAttributes({
+                  TrunkId: trunk.id
+                }, {
+                  transaction: t
+                })
+                .then(function(data) {
+                  callback(null, faxAccount, trunk);
+                })
+                .catch(function(err) {
+                  callback(err);
+                });
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        },
+        function(faxAccount, trunk, callback) {
+          return VoiceExtension
+            .findOne({
+              where: {
+                priority: 1,
+                exten: faxAccount.phone,
+                context: faxAccount.Trunk.context
+              }
+            }, {
+              transaction: t
+            })
+            .then(function(voiceExtension) {
+              if (!voiceExtension) {
+                callback(null, faxAccount);
+              }
+              return voiceExtension
+                .updateAttributes({
+                  exten: req.body.phone,
+                  context: trunk.context,
+                  TrunkId: req.body.UserId
+                }, {
+                  transaction: t
+                })
+                .then(function() {
+                  console.log('voiceExtension edited');
+                  callback(null, faxAccount);
+                })
+                .catch(function(err) {
+                  callback(err);
+                });
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        },
+        function(faxAccount, callback) {
+          var updated = _.merge(faxAccount, req.body);
+          return updated.save({
+              transaction: t
+            })
+            .then(function() {
+              console.log('faxAccount saved');
+              callback(null, faxAccount);
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        }
+      ], function(err, faxAccount) {
+        if (err) {
+          console.log(err);
+          t.rollback();
+          return res.status(404).send(err);
+        } else {
+          console.log('ok');
+          t.commit();
+          return res.status(201).send(faxAccount);
+        }
+      })
+    });
+};
+
+// Deletes a faxAccount from the DB.
+exports.destroy = function(req, res, next) {
+  FaxAccount
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(faxAccount) {
+      if (!faxAccount) {
+        return res.sendStatus(404);
+      }
+      faxAccount.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          next(err);
+        });
+    })
+    .catch(function(err) {
+      next(err);
+    });
+};
+
+exports.addApplications = function(req, res, next) {
+
+  FaxApplication
+    .findAll({
+      where: {
+        id: req.body.applications
+      }
+    })
+    .then(function(faxApplications) {
+      var tmpFaxApplications = faxApplications;
+
+      return sequelize.transaction(function(t) {
+        return FaxApplication.destroy({
+          where: {
+            id: req.body.applications
+          }
+        }, {
+          transaction: t
+        }).then(function() {
+
+          var sortedApplications = [];
+
+          for (var i = 0; i < req.body.applications.length; i++) {
+
+            var tmpFaxApplication = _.find(tmpFaxApplications, {
+              'id': req.body.applications[i]
+            });
+
+            if (tmpFaxApplication) {
+              tmpFaxApplication.priority = i + 1;
+              sortedApplications.push(tmpFaxApplication.dataValues);
+            }
+          }
+
+          return FaxApplication.bulkCreate(sortedApplications, {
+            transaction: t
+          }).then(function(data) {
+            return data;
+          });
+        });
+      }).then(function(result) {
+        return res.status(200).send(result);
+        // Transaction has been committed
+        // result is whatever the result of the promise chain returned to the transaction callback
+      }).catch(function(err) {
+        return handleError(res, err);
+        // Transaction has been rolled back
+        // err is whatever rejected the promise chain returned to the transaction callback
+      });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  FaxAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 20164c1..e28dde9 100644 (file)
@@ -1 +1,24 @@
-var _0xd315=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xd315[0];var fax_account=require(_0xd315[2])[_0xd315[1]];exports[_0xd315[3]]=function(_0xa64fx2){fax_account[_0xd315[4]](function(_0xa64fx3){onSave(_0xa64fx2,_0xa64fx3)});fax_account[_0xd315[5]](function(_0xa64fx3){onRemove(_0xa64fx2,_0xa64fx3)});};function onSave(_0xa64fx2,_0xa64fx3,_0xa64fx5){_0xa64fx2[_0xd315[7]](_0xd315[6],_0xa64fx3)}function onRemove(_0xa64fx2,_0xa64fx3,_0xa64fx5){_0xa64fx2[_0xd315[7]](_0xd315[8],_0xa64fx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var fax_account = require('../../models').FaxAccount;
+
+exports.register = function(socket) {
+  fax_account.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  fax_account.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('fax_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('fax_account:remove', doc);
+}
index cc856b4..0399e33 100644 (file)
@@ -1 +1,20 @@
-var _0xd61c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74"];_0xd61c[0];var should=require(_0xd61c[1]);var app=require(_0xd61c[2]);var request=require(_0xd61c[3]);describe(_0xd61c[4],function(){it(_0xd61c[5],function(_0xa493x4){request(app)[_0xd61c[13]](_0xd61c[12])[_0xd61c[11]](200)[_0xd61c[11]](_0xd61c[10],/json/)[_0xd61c[9]](function(_0xa493x5,_0xa493x6){if(_0xa493x5){return _0xa493x4(_0xa493x5)};_0xa493x6[_0xd61c[8]][_0xd61c[1]][_0xd61c[7]][_0xd61c[6]](Array);_0xa493x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/fax/accounts', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/fax/accounts')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 4b27013..15886c9 100644 (file)
@@ -1 +1,17 @@
-var _0xb62c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xb62c[0];var express=require(_0xb62c[1]);var controller=require(_0xb62c[2]);var auth=require(_0xb62c[3]);var router=express.Router();router[_0xb62c[7]](_0xb62c[4],auth[_0xb62c[5]](),controller[_0xb62c[6]]);router[_0xb62c[7]](_0xb62c[8],controller[_0xb62c[9]]);router[_0xb62c[11]](_0xb62c[4],controller[_0xb62c[10]]);router[_0xb62c[11]](_0xb62c[12],controller[_0xb62c[13]]);router[_0xb62c[15]](_0xb62c[8],controller[_0xb62c[14]]);router[_0xb62c[16]](_0xb62c[8],controller[_0xb62c[14]]);router[_0xb62c[18]](_0xb62c[4],controller[_0xb62c[17]]);router[_0xb62c[18]](_0xb62c[8],controller[_0xb62c[19]]);module[_0xb62c[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./fax_account.controller');
+var auth = require('../../auth/auth.service');
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.post('/:id/applications', controller.addApplications);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/', controller.bulkDestroy);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 611b2af..59b09cb 100644 (file)
@@ -1 +1,94 @@
-var _0x250f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x6C\x6F\x67","\x70\x72\x69\x6F\x72\x69\x74\x79","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x6D\x61\x78","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64"];_0x250f[0];var _=require(_0x250f[1]);var FaxApplication=require(_0x250f[3])[_0x250f[2]];exports[_0x250f[4]]=function(_0x1bc0x3,_0x1bc0x4){FaxApplication[_0x250f[10]]({where:_0x1bc0x3[_0x250f[9]]})[_0x250f[8]](function(_0x1bc0x6){return _0x1bc0x4[_0x250f[7]](200)[_0x250f[6]](_0x1bc0x6)})[_0x250f[5]](function(_0x1bc0x5){return handleError(_0x1bc0x4,_0x1bc0x5)})};exports[_0x250f[11]]=function(_0x1bc0x3,_0x1bc0x4){FaxApplication[_0x250f[15]](_0x1bc0x3[_0x250f[14]][_0x250f[13]])[_0x250f[8]](function(_0x1bc0x7){if(!_0x1bc0x7){return _0x1bc0x4[_0x250f[12]](404)};return _0x1bc0x4[_0x250f[6]](_0x1bc0x7);})[_0x250f[5]](function(_0x1bc0x5){return handleError(_0x1bc0x4,_0x1bc0x5)})};exports[_0x250f[16]]=function(_0x1bc0x3,_0x1bc0x4,_0x1bc0x8){console[_0x250f[18]](_0x1bc0x3[_0x250f[17]]);FaxApplication[_0x250f[21]](_0x250f[19],{where:{FaxAccountId:_0x1bc0x3[_0x250f[17]][_0x250f[20]]}})[_0x250f[8]](function(_0x1bc0x9){_0x1bc0x3[_0x250f[17]][_0x250f[19]]=_0x1bc0x9?++_0x1bc0x9:1;FaxApplication[_0x250f[16]](_0x1bc0x3[_0x250f[17]])[_0x250f[8]](function(_0x1bc0xa){return _0x1bc0x4[_0x250f[7]](201)[_0x250f[6]](_0x1bc0xa)})[_0x250f[5]](function(_0x1bc0x5){return _0x1bc0x8(_0x1bc0x5)});console[_0x250f[18]](_0x1bc0x9);})[_0x250f[5]](function(_0x1bc0x5){_0x1bc0x8(_0x1bc0x5)});};exports[_0x250f[22]]=function(_0x1bc0x3,_0x1bc0x4){if(_0x1bc0x3[_0x250f[17]][_0x250f[13]]){delete _0x1bc0x3[_0x250f[17]][_0x250f[13]]};FaxApplication[_0x250f[15]](_0x1bc0x3[_0x250f[14]][_0x250f[13]])[_0x250f[8]](function(_0x1bc0x7){if(!_0x1bc0x7){return _0x1bc0x4[_0x250f[12]](404)};var _0x1bc0xb=_[_0x250f[23]](_0x1bc0x7,_0x1bc0x3[_0x250f[17]]);_0x1bc0xb[_0x250f[24]]()[_0x250f[8]](function(){return _0x1bc0x4[_0x250f[7]](200)[_0x250f[6]](_0x1bc0x7)})[_0x250f[5]](function(_0x1bc0x5){return handleError(_0x1bc0x4,_0x1bc0x5)});})[_0x250f[5]](function(_0x1bc0x5){return handleError(_0x1bc0x4,_0x1bc0x5)});};exports[_0x250f[25]]=function(_0x1bc0x3,_0x1bc0x4){FaxApplication[_0x250f[26]]({where:{id:_0x1bc0x3[_0x250f[14]][_0x250f[13]]}})[_0x250f[8]](function(_0x1bc0x7){if(!_0x1bc0x7){return _0x1bc0x4[_0x250f[12]](404)};_0x1bc0x7[_0x250f[25]]()[_0x250f[8]](function(){return _0x1bc0x4[_0x250f[12]](204)})[_0x250f[5]](function(_0x1bc0x5){return handleError(_0x1bc0x4,_0x1bc0x5)});})[_0x250f[5]](function(_0x1bc0x5){return handleError(_0x1bc0x4,_0x1bc0x5)})};function handleError(_0x1bc0x4,_0x1bc0x5){return _0x1bc0x4[_0x250f[7]](500)[_0x250f[6]](_0x1bc0x5)}
\ No newline at end of file
+'use strict';
+var _ = require('lodash');
+var FaxApplication = require('../../models').FaxApplication;
+// Get list of fax_applications
+exports.index = function(req, res) {
+  FaxApplication.findAll({
+    where: req.query
+  }).then(function(fax_applications) {
+    return res.status(200).send(fax_applications);
+  }).catch(function(err) {
+    return handleError(res, err);
+  });
+};
+// Get a single fax_application
+exports.show = function(req, res) {
+  FaxApplication.findById(req.params.id).then(function(fax_application) {
+    if (!fax_application) {
+      return res.sendStatus(404);
+    }
+    return res.send(fax_application);
+  }).catch(function(err) {
+    return handleError(res, err);
+  });
+};
+// Creates a new fax_application in the DB.
+exports.create = function(req, res, next) {
+  console.log(req.body);
+  FaxApplication.max('priority', {
+    where: {
+      FaxAccountId: req.body.FaxAccountId
+    }
+  }).then(function(max) {
+    // SET PRIORITY
+    req.body.priority = max ? ++max : 1;
+    FaxApplication.create(req.body).then(function(faxApplication) {
+      return res.status(201).send(faxApplication);
+    }).catch(function(err) {
+      return next(err);
+    });
+    console.log(max);
+  }).catch(function(err) {
+    next(err);
+  });
+  // FaxApplication
+  // .create(req.body)
+  // .then(function(fax_application) {
+  //   return res.status(201).send(fax_application);
+  // })
+  // .catch(function(err) {
+  //   return handleError(res, err);
+  // });
+};
+// Updates an existing fax_application in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FaxApplication.findById(req.params.id).then(function(fax_application) {
+    if (!fax_application) {
+      return res.sendStatus(404);
+    }
+    var updated = _.merge(fax_application, req.body);
+    updated.save().then(function() {
+      return res.status(200).send(fax_application);
+    }).catch(function(err) {
+      return handleError(res, err);
+    });
+  }).catch(function(err) {
+    return handleError(res, err);
+  });
+};
+// Deletes a fax_application from the DB.
+exports.destroy = function(req, res) {
+  FaxApplication.find({
+    where: {
+      id: req.params.id
+    }
+  }).then(function(fax_application) {
+    if (!fax_application) {
+      return res.sendStatus(404);
+    }
+    fax_application.destroy().then(function() {
+      return res.sendStatus(204);
+    }).catch(function(err) {
+      return handleError(res, err);
+    });
+  }).catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 69bd08c..2a677d7 100644 (file)
@@ -1 +1,24 @@
-var _0xb9d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb9d0[0];var fax_application=require(_0xb9d0[2])[_0xb9d0[1]];exports[_0xb9d0[3]]=function(_0xc4f8x2){fax_application[_0xb9d0[4]](function(_0xc4f8x3){onSave(_0xc4f8x2,_0xc4f8x3)});fax_application[_0xb9d0[5]](function(_0xc4f8x3){onRemove(_0xc4f8x2,_0xc4f8x3)});};function onSave(_0xc4f8x2,_0xc4f8x3,_0xc4f8x5){_0xc4f8x2[_0xb9d0[7]](_0xb9d0[6],_0xc4f8x3)}function onRemove(_0xc4f8x2,_0xc4f8x3,_0xc4f8x5){_0xc4f8x2[_0xb9d0[7]](_0xb9d0[8],_0xc4f8x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var fax_application = require('../../models').FaxApplication;
+
+exports.register = function(socket) {
+  fax_application.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  fax_application.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('fax_application:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('fax_application:remove', doc);
+}
index e35de42..9eeaee8 100644 (file)
@@ -1 +1,20 @@
-var _0xbf0a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0xbf0a[0];var should=require(_0xbf0a[1]);var app=require(_0xbf0a[2]);var request=require(_0xbf0a[3]);describe(_0xbf0a[4],function(){it(_0xbf0a[5],function(_0x8dbdx4){request(app)[_0xbf0a[13]](_0xbf0a[12])[_0xbf0a[11]](200)[_0xbf0a[11]](_0xbf0a[10],/json/)[_0xbf0a[9]](function(_0x8dbdx5,_0x8dbdx6){if(_0x8dbdx5){return _0x8dbdx4(_0x8dbdx5)};_0x8dbdx6[_0xbf0a[8]][_0xbf0a[1]][_0xbf0a[7]][_0xbf0a[6]](Array);_0x8dbdx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/fax/applications', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/fax/applications')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 5ea2792..b27e419 100644 (file)
@@ -1 +1,15 @@
-var _0x120f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x120f[0];var express=require(_0x120f[1]);var controller=require(_0x120f[2]);var router=express.Router();router[_0x120f[5]](_0x120f[3],controller[_0x120f[4]]);router[_0x120f[5]](_0x120f[6],controller[_0x120f[7]]);router[_0x120f[9]](_0x120f[3],controller[_0x120f[8]]);router[_0x120f[11]](_0x120f[6],controller[_0x120f[10]]);router[_0x120f[12]](_0x120f[6],controller[_0x120f[10]]);router[_0x120f[14]](_0x120f[6],controller[_0x120f[13]]);module[_0x120f[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./fax_application.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 88c4e02..2f7a289 100644 (file)
@@ -1 +1,204 @@
-var _0xd759=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x46\x61\x78\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x42\x75\x73\x69\x6E\x65\x73\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x6F\x72","\x62\x6F\x64\x79","\x46\x61\x78\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x49\x64","\x63\x6F\x6E\x63\x61\x74","\x61\x6E\x64","\x61\x63\x74\x69\x6F\x6E\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0xd759[0];var _=require(_0xd759[1]);var util=require(_0xd759[2]);var FaxBusinessAutomation=require(_0xd759[4])[_0xd759[3]];var BusinessCondition=require(_0xd759[4])[_0xd759[5]];var BusinessAction=require(_0xd759[4])[_0xd759[6]];var sequelize=require(_0xd759[4])[_0xd759[7]];exports[_0xd759[8]]=function(_0xec8dx7,_0xec8dx8,_0xec8dx9){var _0xec8dxa=[_0xd759[9],_0xd759[10]];var _0xec8dxb=_0xec8dx7[_0xd759[12]][_0xd759[11]]?parseInt(_0xec8dx7[_0xd759[12]][_0xd759[11]],10):100;var _0xec8dxc=_0xec8dx7[_0xd759[12]][_0xd759[13]]?parseInt(_0xec8dx7[_0xd759[12]][_0xd759[13]],10):0;var _0xec8dxd={where:{},limit:_0xec8dxb,offset:_0xec8dxc*_0xec8dxb};_[_0xd759[27]](_0xec8dx7[_0xd759[12]],function(_0xec8dxe,_0xec8dxf){switch(_0xec8dxf){case _0xd759[11]:;case _0xd759[13]:break ;;case _0xd759[16]:_0xec8dxd[_0xd759[14]]=util[_0xd759[19]](_0xd759[15],_0xec8dx7[_0xd759[12]][_0xd759[16]],_0xec8dx7[_0xd759[12]][_0xd759[17]]||_0xd759[18])||null;break ;;case _0xd759[17]:break ;;case _0xd759[25]:_0xec8dxd[_0xd759[21]][_0xd759[20]]=[];_0xec8dxa[_0xd759[24]](function(_0xec8dx10){var _0xec8dx11={};_0xec8dx11[_0xec8dx10]={$like:_0xd759[22]+_0xec8dxe+_0xd759[22]};_0xec8dxd[_0xd759[21]][_0xd759[20]][_0xd759[23]](_0xec8dx11);});break ;;default:_0xec8dxd[_0xd759[21]][_0xec8dxf]={$like:{}};_0xec8dxd[_0xd759[21]][_0xec8dxf][_0xd759[26]]=_0xd759[22]+_0xec8dxe+_0xd759[22];;}});FaxBusinessAutomation[_0xd759[42]](_0xec8dxd)[_0xd759[41]](function(_0xec8dx13){var _0xec8dx14=Math[_0xd759[33]](_0xec8dx13[_0xd759[32]]/_0xec8dxb);var _0xec8dx15=_0xec8dx14>(_0xec8dxd[_0xd759[34]]+1)?util[_0xd759[19]](_0xd759[35],_0xec8dx7[_0xd759[36]],_0xec8dx7[_0xd759[38]][_0xd759[37]],_0xec8dx7[_0xd759[39]],_0xec8dxc+1):null;var _0xec8dx16=_0xec8dxc>0?util[_0xd759[19]](_0xd759[35],_0xec8dx7[_0xd759[36]],_0xec8dx7[_0xd759[38]][_0xd759[37]],_0xec8dx7[_0xd759[39]],_0xec8dxc-1):null;_0xec8dx8[_0xd759[30]](200)[_0xd759[29]]({count:_0xec8dx13[_0xd759[32]],rows:_0xec8dx13[_0xd759[40]],next_page:_0xec8dx15,previous_page:_0xec8dx16,total_pages:_0xec8dx14});})[_0xd759[31]](function(_0xec8dx12){_0xec8dx8[_0xd759[30]](500)[_0xd759[29]]({error:_0xd759[28]})});};exports[_0xd759[43]]=function(_0xec8dx7,_0xec8dx8){FaxBusinessAutomation[_0xd759[47]](_0xec8dx7[_0xd759[46]][_0xd759[45]],{include:[{all:true}]})[_0xd759[41]](function(_0xec8dx17){if(!_0xec8dx17){return _0xec8dx8[_0xd759[44]](404)};return _0xec8dx8[_0xd759[29]](_0xec8dx17);})[_0xd759[31]](function(_0xec8dx12){return handleError(_0xec8dx8,_0xec8dx12)})};exports[_0xd759[48]]=function(_0xec8dx7,_0xec8dx8,_0xec8dx9){return sequelize[_0xd759[56]](function(_0xec8dx18){return FaxBusinessAutomation[_0xd759[48]](_0xec8dx7[_0xd759[50]],{transaction:_0xec8dx18})[_0xd759[41]](function(_0xec8dx19){var _0xec8dx1a=[];if(_0xec8dx7[_0xd759[50]][_0xd759[49]]){_0xec8dx7[_0xd759[50]][_0xd759[49]][_0xd759[24]](function(_0xec8dx1b){_0xec8dx1b[_0xd759[51]]=_0xec8dx19[_0xd759[45]]});_0xec8dx1a=_0xec8dx1a[_0xd759[52]](_0xec8dx7[_0xd759[50]][_0xd759[49]]);};if(_0xec8dx7[_0xd759[50]][_0xd759[53]]){_0xec8dx7[_0xd759[50]][_0xd759[53]][_0xd759[24]](function(_0xec8dx1b){_0xec8dx1b[_0xd759[51]]=_0xec8dx19[_0xd759[45]]});_0xec8dx1a=_0xec8dx1a[_0xd759[52]](_0xec8dx7[_0xd759[50]][_0xd759[53]]);};return BusinessCondition[_0xd759[55]](_0xec8dx1a,{transaction:_0xec8dx18})[_0xd759[41]](function(_0xec8dx1c){if(_0xec8dx7[_0xd759[50]][_0xd759[54]]){_0xec8dx7[_0xd759[50]][_0xd759[54]][_0xd759[24]](function(_0xec8dx1b){_0xec8dx1b[_0xd759[51]]=_0xec8dx19[_0xd759[45]]})};return BusinessAction[_0xd759[55]](_0xec8dx7[_0xd759[50]][_0xd759[54]],{transaction:_0xec8dx18});});})})[_0xd759[41]](function(){return _0xec8dx8[_0xd759[44]](201)})[_0xd759[31]](function(_0xec8dx12){return _0xec8dx9(_0xec8dx12)})};exports[_0xd759[57]]=function(_0xec8dx7,_0xec8dx8){if(_0xec8dx7[_0xd759[50]][_0xd759[45]]){delete _0xec8dx7[_0xd759[50]][_0xd759[45]]};FaxBusinessAutomation[_0xd759[60]]({where:{id:_0xec8dx7[_0xd759[46]][_0xd759[45]]}})[_0xd759[41]](function(_0xec8dx17){if(!_0xec8dx17){return _0xec8dx8[_0xd759[44]](404)};var _0xec8dx1d=_[_0xd759[58]](_0xec8dx17,_0xec8dx7[_0xd759[50]]);_0xec8dx1d[_0xd759[59]]()[_0xd759[41]](function(){return _0xec8dx8[_0xd759[30]](200)[_0xd759[29]](_0xec8dx17)})[_0xd759[31]](function(_0xec8dx12){return handleError(_0xec8dx8,_0xec8dx12)});})[_0xd759[31]](function(_0xec8dx12){return handleError(_0xec8dx8,_0xec8dx12)});};exports[_0xd759[61]]=function(_0xec8dx7,_0xec8dx8){FaxBusinessAutomation[_0xd759[60]]({where:{id:_0xec8dx7[_0xd759[46]][_0xd759[45]]}})[_0xd759[41]](function(_0xec8dx17){if(!_0xec8dx17){return _0xec8dx8[_0xd759[44]](404)};_0xec8dx17[_0xd759[61]]()[_0xd759[41]](function(){return _0xec8dx8[_0xd759[44]](204)})[_0xd759[31]](function(_0xec8dx12){return handleError(_0xec8dx8,_0xec8dx12)});})[_0xd759[31]](function(_0xec8dx12){return handleError(_0xec8dx8,_0xec8dx12)})};function handleError(_0xec8dx8,_0xec8dx12){return _0xec8dx8[_0xd759[30]](500)[_0xd759[29]](_0xec8dx12)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var FaxBusinessAutomation = require('../../models').FaxBusinessAutomation;
+var BusinessCondition = require('../../models').BusinessCondition;
+var BusinessAction = require('../../models').BusinessAction;
+var sequelize = require('../../models').sequelize;
+
+// Get list of fax_business_automations
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  FaxBusinessAutomation
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single fax_business_automation
+exports.show = function(req, res) {
+  FaxBusinessAutomation
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(fax_business_automation) {
+      if (!fax_business_automation) {
+        return res.sendStatus(404);
+      }
+      return res.send(fax_business_automation);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new fax_business_automation in the DB.
+exports.create = function(req, res, next) {
+  return sequelize.transaction(function(t) {
+      return FaxBusinessAutomation
+        .create(req.body, {
+          transaction: t
+        })
+        .then(function(faxBusinessAutomation) {
+          var conditions = [];
+          if (req.body.or) {
+            req.body.or.forEach(function(elm) {
+              elm.FaxBusinessAutomationId = faxBusinessAutomation.id;
+            });
+            conditions = conditions.concat(req.body.or);
+          }
+
+          if (req.body.and) {
+            req.body.and.forEach(function(elm) {
+              elm.FaxBusinessAutomationId = faxBusinessAutomation.id;
+            });
+            conditions = conditions.concat(req.body.and);
+          }
+
+          return BusinessCondition
+            .bulkCreate(conditions, {
+              transaction: t
+            })
+            .then(function(businessCondtions) {
+              if (req.body.actions) {
+                req.body.actions.forEach(function(elm) {
+                  elm.FaxBusinessAutomationId = faxBusinessAutomation.id;
+                });
+              }
+
+              return BusinessAction
+                .bulkCreate(req.body.actions, {
+                  transaction: t
+                });
+            });
+        })
+    })
+    .then(function() {
+      // Transaction has been committed
+      // result is whatever the result of the promise chain returned to the transaction callback
+      return res.sendStatus(201);
+    }).catch(function(err) {
+      // Transaction has been rolled back
+      // err is whatever rejected the promise chain returned to the transaction callback
+      return next(err);
+    });
+};
+
+// Updates an existing fax_business_automation in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FaxBusinessAutomation
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(fax_business_automation) {
+      if (!fax_business_automation) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(fax_business_automation, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(fax_business_automation);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a fax_business_automation from the DB.
+exports.destroy = function(req, res) {
+  FaxBusinessAutomation
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(fax_business_automation) {
+      if (!fax_business_automation) {
+        return res.sendStatus(404);
+      }
+      fax_business_automation.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index b9c6e8a..5f03434 100644 (file)
@@ -1 +1,27 @@
-var _0x86a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x86a8[0];var FaxBusinessAutomation=require(_0x86a8[2])[_0x86a8[1]];exports[_0x86a8[3]]=function(_0xe6c8x2){FaxBusinessAutomation[_0x86a8[4]](function(_0xe6c8x3){onSave(_0xe6c8x2,_0xe6c8x3)});FaxBusinessAutomation[_0x86a8[5]](function(_0xe6c8x3,_0xe6c8x4){onSave(_0xe6c8x2,_0xe6c8x3)});FaxBusinessAutomation[_0x86a8[6]](function(_0xe6c8x3){onRemove(_0xe6c8x2,_0xe6c8x3)});};function onSave(_0xe6c8x2,_0xe6c8x3,_0xe6c8x6){_0xe6c8x2[_0x86a8[8]](_0x86a8[7],_0xe6c8x3)}function onRemove(_0xe6c8x2,_0xe6c8x3,_0xe6c8x6){_0xe6c8x2[_0x86a8[8]](_0x86a8[9],_0xe6c8x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FaxBusinessAutomation = require('../../models').FaxBusinessAutomation;
+
+exports.register = function(socket) {
+  FaxBusinessAutomation.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  FaxBusinessAutomation.afterUpdate(function(doc, options) {
+    onSave(socket, doc);
+  });
+  FaxBusinessAutomation.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('fax_business_automation:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('fax_business_automation:remove', doc);
+}
index f44a575..f9f7234 100644 (file)
@@ -1 +1,20 @@
-var _0x3159=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x3159[0];var should=require(_0x3159[1]);var app=require(_0x3159[2]);var request=require(_0x3159[3]);describe(_0x3159[4],function(){it(_0x3159[5],function(_0x47e2x4){request(app)[_0x3159[13]](_0x3159[12])[_0x3159[11]](200)[_0x3159[11]](_0x3159[10],/json/)[_0x3159[9]](function(_0x47e2x5,_0x47e2x6){if(_0x47e2x5){return _0x47e2x4(_0x47e2x5)};_0x47e2x6[_0x3159[8]][_0x3159[1]][_0x3159[7]][_0x3159[6]](Array);_0x47e2x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/fax/business/automations', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/fax/business/automations')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index c445040..ad01841 100644 (file)
@@ -1 +1,15 @@
-var _0x36c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x36c5[0];var express=require(_0x36c5[1]);var controller=require(_0x36c5[2]);var router=express.Router();router[_0x36c5[5]](_0x36c5[3],controller[_0x36c5[4]]);router[_0x36c5[5]](_0x36c5[6],controller[_0x36c5[7]]);router[_0x36c5[9]](_0x36c5[3],controller[_0x36c5[8]]);router[_0x36c5[11]](_0x36c5[6],controller[_0x36c5[10]]);router[_0x36c5[12]](_0x36c5[6],controller[_0x36c5[10]]);router[_0x36c5[14]](_0x36c5[6],controller[_0x36c5[13]]);module[_0x36c5[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./fax_business_automation.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index bafacf5..2d69e42 100644 (file)
@@ -1 +1,64 @@
-var _0x393f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x20\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x62\x6F\x64\x79","\x70\x61\x72\x73\x65","\x66\x61\x78\x42\x6F\x64\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x66\x72\x6F\x6D","\x25\x73\x2F\x25\x73\x40\x25\x73","\x74\x65\x63\x68\x6E\x6F\x6C\x6F\x67\x79","\x74\x6F","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x74\x72\x75\x65","\x6D\x61\x78\x72\x61\x74\x65","\x6D\x69\x6E\x72\x61\x74\x65","\x65\x63\x6D","\x79\x65\x73","\x6E\x6F","\x66\x61\x78\x5F\x6C\x6F\x63\x61\x6C\x69\x64","\x66\x61\x78\x5F\x66\x69\x6C\x65","\x66\x61\x78\x5F\x68\x65\x61\x64\x65\x72","\x75\x75\x69\x64","\x46\x41\x49\x4C\x45\x44","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x61\x63\x74\x69\x6F\x6E","\x74\x68\x65\x6E","\x69\x64","\x74\x72\x75\x6E\x6B","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0x393f[0];var _=require(_0x393f[1]);var util=require(_0x393f[2]);var FaxMessage=require(_0x393f[4])[_0x393f[3]];var Trunk=require(_0x393f[4])[_0x393f[5]];exports[_0x393f[6]]=function(_0xf7f3x5){FaxMessage[_0x393f[9]](function(_0xf7f3x6){console[_0x393f[8]](_0x393f[7]);onSave(_0xf7f3x5,_0xf7f3x6);})};function onSave(_0xf7f3x5,_0xf7f3x6,_0xf7f3x8){if(_0xf7f3x6[_0x393f[10]]===_0x393f[11]&&!_0xf7f3x6[_0x393f[12]]){var _0xf7f3x9=JSON[_0x393f[14]](_0xf7f3x6[_0x393f[13]]);console[_0x393f[8]](_0x393f[15],_0xf7f3x9);Trunk[_0x393f[44]](_0xf7f3x9[_0x393f[43]][_0x393f[42]])[_0x393f[41]](function(_0xf7f3xb){var _0xf7f3xc={Action:_0x393f[18],CallerID:_0xf7f3x9[_0x393f[19]],Channel:util[_0x393f[24]](_0x393f[20],_0xf7f3x9[_0x393f[21]],_0xf7f3x9[_0x393f[22]],_0xf7f3xb[_0x393f[23]]),Context:_0x393f[25],Exten:_0x393f[26],Priority:1,Async:_0x393f[27],Variable:{MAXRATE:_0xf7f3x9[_0x393f[28]],MINRATE:_0xf7f3x9[_0x393f[29]],ECM:_0xf7f3x9[_0x393f[30]]?_0x393f[31]:_0x393f[32],LOCALID:_0xf7f3x9[_0x393f[33]],FAXFILE:_0xf7f3x9[_0x393f[34]],FAXHEADER:_0xf7f3x9[_0x393f[35]],FAXUUID:_0xf7f3x9[_0x393f[36]]}};_0xf7f3x5[_0x393f[40]](_0xf7f3xc,function(_0xf7f3xa,_0xf7f3xd){if(_0xf7f3xa){_0xf7f3x6[_0x393f[38]]({status:_0x393f[37]})}else {if(_0xf7f3xd[_0x393f[39]]&&_0xf7f3xd[_0x393f[12]]){_0xf7f3x6[_0x393f[38]]({actionid:_0xf7f3xd[_0x393f[12]]})}}});})[_0x393f[17]](function(_0xf7f3xa){console[_0x393f[16]](_0xf7f3xa)});}}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var FaxMessage = require('../../models').FaxMessage;
+var Trunk = require('../../models').User;
+
+exports.register = function(ami) {
+
+  FaxMessage.afterCreate(function(doc) {
+    console.log('FaxMessage afterCreate');
+    onSave(ami, doc);
+  });
+};
+
+function onSave(ami, doc, cb) {
+  if (doc.status === 'NOT SENT' && !doc.actionid) {
+    // I have to send the fax with the Originate
+    var faxBody = JSON.parse(doc.body);
+    console.log('faxBody', faxBody);
+
+    Trunk
+      .findById(faxBody.trunk.id)
+      .then(function(trunk) {
+        var action = {
+          Action: 'originate',
+          CallerID: faxBody.from,
+          Channel: util.format('%s/%s@%s', faxBody.technology, faxBody.to, trunk.name),
+          Context: 'outbound-fax',
+          Exten: 's',
+          Priority: 1,
+          Async: 'true',
+          Variable: {
+            MAXRATE: faxBody.maxrate,
+            MINRATE: faxBody.minrate,
+            ECM: faxBody.ecm ? 'yes' : 'no',
+            LOCALID: faxBody.fax_localid,
+            FAXFILE: faxBody.fax_file,
+            // 'FAXFILE': 'test.tiff', // Scommentare se si fanno prove in locale!
+            FAXHEADER: faxBody.fax_header,
+            FAXUUID: faxBody.uuid
+          }
+        };
+
+        ami.action(action, function(err, res) {
+          if (err) {
+            doc.updateAttributes({
+              status: 'FAILED'
+            });
+          } else {
+            if (res.response && res.actionid) {
+              doc.updateAttributes({
+                actionid: res.actionid
+              });
+            }
+          }
+        });
+      })
+      .catch(function(err) {
+        console.error(err);
+      });
+  }
+}
index 0780282..e354d5f 100644 (file)
@@ -1 +1,422 @@
-var _0x477d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x66\x73","\x70\x61\x74\x68","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x6E\x6F\x64\x65\x2D\x75\x75\x69\x64","\x68\x74\x6D\x6C\x2D\x70\x64\x66","\x73\x70\x69\x6E\x64\x72\x69\x66\x74","\x66\x6F\x72\x6D\x69\x64\x61\x62\x6C\x65","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x46\x72\x6F\x6D","\x54\x6F","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x72\x65\x61\x74\x65","\x75\x70\x6C\x6F\x61\x64\x44\x69\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x66\x61\x78\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x6A\x6F\x69\x6E","\x6B\x65\x65\x70\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x6D\x75\x6C\x74\x69\x70\x6C\x65\x73","\x6F\x6E\x6C\x79\x54\x65\x78\x74","\x62\x6F\x64\x79","\x68\x74\x6D\x6C","\x76\x34","\x2E\x70\x64\x66","\x46\x61\x78\x3A\x20\x48\x54\x4D\x4C\x20\x43\x6F\x6E\x76\x65\x72\x74\x65\x64","\x6C\x6F\x67","\x74\x6F\x46\x69\x6C\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x70\x69\x70\x65","\x70\x64\x66\x53\x74\x72\x65\x61\x6D","\x46\x61\x78\x3A\x20\x48\x54\x4D\x4C\x20\x6A\x6F\x69\x6E\x65\x64\x20\x77\x69\x74\x68\x20\x50\x44\x46\x20\x75\x70\x6C\x6F\x61\x64\x65\x64","\x65\x72\x72\x6F\x72","\x46\x61\x78\x3A\x20\x50\x44\x46\x20\x52\x65\x6E\x61\x6D\x65","\x72\x65\x6E\x61\x6D\x65","\x70\x61\x72\x73\x65","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x2E\x74\x69\x66","\x67\x73","\x20\x2D\x71\x20\x2D\x64\x4E\x4F\x50\x41\x55\x53\x45\x20\x2D\x64\x42\x41\x54\x43\x48\x20\x2D\x73\x44\x45\x56\x49\x43\x45\x3D\x74\x69\x66\x66\x67\x34\x20","\x2D\x73\x50\x41\x50\x45\x52\x53\x49\x5A\x45\x3D\x6C\x65\x74\x74\x65\x72\x20\x2D\x73\x4F\x75\x74\x70\x75\x74\x46\x69\x6C\x65\x3D","\x20","\x53\x49\x50","\x74\x6F\x4E\x75\x6D","\x70\x68\x6F\x6E\x65","\x66\x61\x78\x68\x65\x61\x64\x65\x72","\x6C\x6F\x63\x61\x6C\x69\x64","\x6D\x61\x78\x72\x61\x74\x65","\x6D\x69\x6E\x72\x61\x74\x65","\x65\x63\x6D","\x54\x72\x75\x6E\x6B\x49\x64","\x46\x69\x6C\x65\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x73","\x46\x61\x78\x3A\x20\x50\x44\x46\x20\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x20\x74\x6F\x20\x54\x49\x46\x46","\x72\x6F\x6F\x6D\x49\x64","\x73\x65\x74\x46\x72\x6F\x6D","\x73\x70\x72\x65\x61\x64","\x66\x72\x6F\x6D","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x73\x65\x74\x54\x6F","\x74\x6F","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x4F\x50\x45\x4E","\x61\x63\x63\x6F\x75\x6E\x74\x49\x64","\x75\x73\x65\x72\x49\x64","\x63\x68\x6D\x6F\x64","\x65\x78\x69\x73\x74\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x67\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x46\x72\x6F\x6D\x4D\x65\x73\x73\x61\x67\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x50\x44\x46","\x52\x45\x43\x45\x49\x56\x45\x44","\x69\x6E\x62\x6F\x75\x6E\x64","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x53\x45\x4E\x54","\x46\x41\x49\x4C\x45\x44"];_0x477d[0];var _=require(_0x477d[1]);var fs=require(_0x477d[2]);var path=require(_0x477d[3]);var uploadFile=require(_0x477d[4]);var uuidLib=require(_0x477d[5]);var pdf=require(_0x477d[6]);var spindrift=require(_0x477d[7]);var formidable=require(_0x477d[8]);var exec=require(_0x477d[10])[_0x477d[9]];var config=require(_0x477d[11]);var FaxMessage=require(_0x477d[13])[_0x477d[12]];var FaxRoom=require(_0x477d[13])[_0x477d[14]];var FaxAccount=require(_0x477d[13])[_0x477d[15]];var Contact=require(_0x477d[13])[_0x477d[16]];exports[_0x477d[17]]=function(_0x2875xf,_0x2875x10){FaxMessage[_0x477d[26]]({where:_0x2875xf[_0x477d[22]],order:_0x477d[23],include:[{model:Contact,as:_0x477d[24]},{model:Contact,as:_0x477d[25]},{model:FaxRoom,include:[{model:FaxAccount}]}]})[_0x477d[21]](function(_0x2875x12){return _0x2875x10[_0x477d[20]](200)[_0x477d[19]](_0x2875x12)})[_0x477d[18]](function(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)})};exports[_0x477d[27]]=function(_0x2875xf,_0x2875x10){FaxMessage[_0x477d[31]]({where:{id:_0x2875xf[_0x477d[30]][_0x477d[29]]},include:[{model:Contact,as:_0x477d[24]},{model:Contact,as:_0x477d[25]}]})[_0x477d[21]](function(_0x2875x13){if(!_0x2875x13){return _0x2875x10[_0x477d[28]](404)};return _0x2875x10[_0x477d[19]](_0x2875x13);})[_0x477d[18]](function(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)})};exports[_0x477d[32]]=function(_0x2875xf,_0x2875x10,_0x2875x14){var _0x2875x15= new formidable.IncomingForm();_0x2875x15[_0x477d[33]]=path[_0x477d[36]](config[_0x477d[34]],_0x477d[35]);_0x2875x15[_0x477d[37]]=true;_0x2875x15[_0x477d[38]]=false;if(_0x2875xf[_0x477d[40]][_0x477d[39]]){if(_0x2875xf[_0x477d[40]][_0x477d[41]]){var _0x2875x16=uuidLib[_0x477d[42]]();var _0x2875x17=path[_0x477d[36]](config[_0x477d[34]],_0x477d[35],_0x2875x16+_0x477d[43]);pdf[_0x477d[32]](_0x2875xf[_0x477d[40]][_0x477d[41]],{"\x74\x69\x6D\x65\x6F\x75\x74":30000})[_0x477d[46]](_0x2875x17,function(_0x2875x11,_0x2875x18){console[_0x477d[45]](_0x477d[44]);convertPdfAndSendFax(_0x2875xf,_0x2875x10,_0x2875x16,_0x2875xf[_0x477d[40]]);});}}else {_0x2875x15[_0x477d[56]](_0x2875xf,function(_0x2875x11,_0x2875x19,_0x2875x1a){if(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)};if(_0x2875x19[_0x477d[41]]){var _0x2875x16=uuidLib[_0x477d[42]]();var _0x2875x17=path[_0x477d[36]](config[_0x477d[34]],_0x477d[35],_0x2875x16+_0x477d[43]);pdf[_0x477d[32]](_0x2875x19[_0x477d[41]],{"\x74\x69\x6D\x65\x6F\x75\x74":30000})[_0x477d[46]](_0x2875x17,function(_0x2875x11,_0x2875x18){console[_0x477d[45]](_0x477d[44]);var _0x2875x1b=spindrift(_0x2875x18[_0x477d[47]]);var _0x2875x1c=spindrift(_0x2875x1a[_0x477d[48]][_0x477d[3]]);var _0x2875x16=uuidLib[_0x477d[42]]();spindrift[_0x477d[36]](_0x2875x1b,_0x2875x1c)[_0x477d[51]]()[_0x477d[50]](fs[_0x477d[49]](path[_0x477d[36]](config[_0x477d[34]],_0x477d[35],_0x2875x16+_0x477d[43])));console[_0x477d[45]](_0x477d[52]);convertPdfAndSendFax(_0x2875xf,_0x2875x10,_0x2875x16,_0x2875x19);});}else {var _0x2875x16=uuidLib[_0x477d[42]]();var _0x2875x17=path[_0x477d[36]](config[_0x477d[34]],_0x477d[35],_0x2875x16+_0x477d[43]);fs[_0x477d[55]](_0x2875x1a[_0x477d[48]][_0x477d[3]],_0x2875x17,function(_0x2875x11){if(_0x2875x11){console[_0x477d[53]](_0x2875x11);return handleError(_0x2875x10,_0x2875xf);};console[_0x477d[45]](_0x477d[54]);convertPdfAndSendFax(_0x2875xf,_0x2875x10,_0x2875x16,_0x2875x19);});};})};};function convertPdfAndSendFax(_0x2875xf,_0x2875x10,_0x2875x1e,_0x2875x19){var _0x2875x1f=path[_0x477d[36]](config[_0x477d[34]],_0x477d[57],_0x477d[58],_0x477d[59],_0x477d[60],_0x477d[61],_0x2875x1e+_0x477d[43]);var _0x2875x20=path[_0x477d[36]](config[_0x477d[34]],_0x477d[57],_0x477d[58],_0x477d[59],_0x477d[60],_0x477d[62],_0x2875x1e+_0x477d[63]);var _0x2875x21=_0x477d[64]+_0x477d[65]+_0x477d[66]+_0x2875x20+_0x477d[67]+_0x2875x1f;var _0x2875x22=uuidLib[_0x477d[42]]();FaxAccount[_0x477d[93]](_0x2875x19[_0x477d[89]])[_0x477d[21]](function(_0x2875x23){if(_0x2875x23){var _0x2875x24={technology:_0x477d[68],to:_0x2875x19[_0x477d[69]],from:_0x2875x23[_0x477d[70]],fax_file:_0x2875x20,fax_header:_0x2875x23[_0x477d[71]],fax_localid:_0x2875x23[_0x477d[72]],maxrate:_0x2875x23[_0x477d[73]],minrate:_0x2875x23[_0x477d[74]],ecm:_0x2875x23[_0x477d[75]],uuid:_0x2875x22,trunk:{id:_0x2875x23[_0x477d[76]]}};fs[_0x477d[92]](_0x2875x1f,function(_0x2875x25){if(!_0x2875x25){handleError(_0x2875x10, new Error(_0x477d[77]))}else {exec(_0x2875x21,function(_0x2875x11){if(_0x2875x11){console[_0x477d[53]](_0x2875x11);handleError(_0x2875x10,_0x2875x11);}else {console[_0x477d[45]](_0x477d[78]);fs[_0x477d[91]](_0x2875x20,511,function(_0x2875x11){if(_0x2875x19[_0x477d[79]]){FaxRoom[_0x477d[83]]({where:{id:_0x2875x19[_0x477d[79]]},defaults:{}})[_0x477d[81]](function(_0x2875x26,_0x2875x27){FaxMessage[_0x477d[32]]({status:_0x477d[86],read:true,filenamePDF:_0x2875x1e+_0x477d[43],filename:_0x2875x1e+_0x477d[63],body:JSON[_0x477d[87]](_0x2875x24),uuid:_0x2875x22,FaxRoomId:_0x2875x26[_0x477d[29]]})[_0x477d[21]](function(_0x2875x28){Contact[_0x477d[83]]({where:{phone:_0x2875x24[_0x477d[82]]},defaults:{phone:_0x2875x24[_0x477d[82]],fullname:_0x2875x24[_0x477d[82]]}})[_0x477d[81]](function(_0x2875x29,_0x2875x27){_0x2875x28[_0x477d[80]](_0x2875x29)});Contact[_0x477d[83]]({where:{phone:_0x2875x24[_0x477d[85]]},defaults:{phone:_0x2875x24[_0x477d[85]],fullname:_0x2875x24[_0x477d[85]]}})[_0x477d[81]](function(_0x2875x29,_0x2875x27){_0x2875x28[_0x477d[84]](_0x2875x29)});return _0x2875x10[_0x477d[20]](200)[_0x477d[19]](_0x2875x28);})[_0x477d[18]](function(_0x2875x11){handleError(_0x2875x10,_0x2875x11)})})}else {FaxRoom[_0x477d[32]]({status:_0x477d[88],from:_0x2875x19[_0x477d[69]],FaxAccountId:_0x2875x19[_0x477d[89]],UserId:_0x2875x19[_0x477d[90]]})[_0x477d[21]](function(_0x2875x26){FaxMessage[_0x477d[32]]({status:_0x477d[86],read:true,filenamePDF:_0x2875x1e+_0x477d[43],filename:_0x2875x1e+_0x477d[63],body:JSON[_0x477d[87]](_0x2875x24),uuid:_0x2875x22,FaxRoomId:_0x2875x26[_0x477d[29]]})[_0x477d[21]](function(_0x2875x28){Contact[_0x477d[83]]({where:{phone:_0x2875x24[_0x477d[82]]},defaults:{phone:_0x2875x24[_0x477d[82]],fullname:_0x2875x24[_0x477d[82]]}})[_0x477d[81]](function(_0x2875x29,_0x2875x27){_0x2875x28[_0x477d[80]](_0x2875x29)});Contact[_0x477d[83]]({where:{phone:_0x2875x24[_0x477d[85]]},defaults:{phone:_0x2875x24[_0x477d[85]],fullname:_0x2875x24[_0x477d[85]]}})[_0x477d[81]](function(_0x2875x29,_0x2875x27){_0x2875x28[_0x477d[84]](_0x2875x29)});return _0x2875x10[_0x477d[20]](200)[_0x477d[19]](_0x2875x28);})[_0x477d[18]](function(_0x2875x11){handleError(_0x2875x10,_0x2875x11)})})[_0x477d[18]](function(_0x2875x11){handleError(_0x2875x10,_0x2875x11)})}});}})}});}});}exports[_0x477d[94]]=function(_0x2875xf,_0x2875x10){if(_0x2875xf[_0x477d[40]][_0x477d[29]]){delete _0x2875xf[_0x477d[40]][_0x477d[29]]};FaxMessage[_0x477d[31]]({where:{id:_0x2875xf[_0x477d[30]][_0x477d[29]]},include:[{model:Contact,as:_0x477d[24]},{model:Contact,as:_0x477d[25]}]})[_0x477d[21]](function(_0x2875x13){if(!_0x2875x13){return _0x2875x10[_0x477d[28]](404)};var _0x2875x2a=_[_0x477d[95]](_0x2875x13,_0x2875xf[_0x477d[40]]);_0x2875x2a[_0x477d[96]]()[_0x477d[21]](function(){return _0x2875x10[_0x477d[20]](200)[_0x477d[19]](_0x2875x13)})[_0x477d[18]](function(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)});})[_0x477d[18]](function(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)});};exports[_0x477d[97]]=function(_0x2875xf,_0x2875x10){FaxMessage[_0x477d[98]]({where:{id:_0x2875xf[_0x477d[30]][_0x477d[29]]}})[_0x477d[21]](function(_0x2875x13){if(!_0x2875x13){return _0x2875x10[_0x477d[28]](404)};_0x2875x13[_0x477d[97]]()[_0x477d[21]](function(){return _0x2875x10[_0x477d[28]](204)})[_0x477d[18]](function(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)});})[_0x477d[18]](function(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)})};exports[_0x477d[99]]=function(_0x2875xf,_0x2875x10){FaxMessage[_0x477d[93]](_0x2875xf[_0x477d[30]][_0x477d[29]])[_0x477d[21]](function(_0x2875x13){if(!_0x2875x13){return _0x2875x10[_0x477d[28]](404)};if(_0x2875x13[_0x477d[100]]){if(_0x2875x13[_0x477d[20]]===_0x477d[101]){var _0x2875x2b=path[_0x477d[36]](config[_0x477d[34]],_0x477d[57],_0x477d[58],_0x477d[59],_0x477d[102],_0x2875x13[_0x477d[100]]);fs[_0x477d[92]](_0x2875x2b,function(_0x2875x25){if(_0x2875x25){return _0x2875x10[_0x477d[103]](_0x2875x2b)}else {return _0x2875x10[_0x477d[28]](404)}});}else {if(_0x2875x13[_0x477d[20]]===_0x477d[86]||_0x2875x13[_0x477d[104]]===_0x477d[105]||_0x2875x13[_0x477d[20]]===_0x477d[106]){var _0x2875x2b=path[_0x477d[36]](config[_0x477d[34]],_0x477d[57],_0x477d[58],_0x477d[59],_0x477d[60],_0x477d[61],_0x2875x13[_0x477d[100]]);fs[_0x477d[92]](_0x2875x2b,function(_0x2875x25){if(_0x2875x25){return _0x2875x10[_0x477d[103]](_0x2875x2b)}else {return _0x2875x10[_0x477d[28]](404)}});}}}else {_0x2875x10[_0x477d[28]](404)};})[_0x477d[18]](function(_0x2875x11){return handleError(_0x2875x10,_0x2875x11)})};function handleError(_0x2875x10,_0x2875x11){return _0x2875x10[_0x477d[20]](500)[_0x477d[19]](_0x2875x11)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var fs = require('fs');
+var path = require('path');
+var uploadFile = require('upload-file');
+var uuidLib = require('node-uuid');
+var pdf = require('html-pdf');
+var spindrift = require('spindrift');
+var formidable = require('formidable');
+var exec = require('child_process').exec;
+var config = require('../../config/environment');
+
+var FaxMessage = require('../../models').FaxMessage;
+var FaxRoom = require('../../models').FaxRoom;
+var FaxAccount = require('../../models').FaxAccount;
+var Contact = require('../../models').Contact;
+
+// Get list of fax_messages
+exports.index = function(req, res) {
+  FaxMessage
+    .findAll({
+      where: req.query,
+      order: 'createdAt DESC',
+      include: [{
+        model: Contact,
+        as: 'From'
+      }, {
+        model: Contact,
+        as: 'To'
+      }, {
+        model: FaxRoom,
+        include: [{
+          model: FaxAccount
+        }]
+      }]
+    })
+    .then(function(fax_messages) {
+      return res.status(200).send(fax_messages);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single fax_message
+exports.show = function(req, res) {
+  FaxMessage
+    .findOne({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: Contact,
+        as: 'From'
+      }, {
+        model: Contact,
+        as: 'To'
+      }]
+    })
+    .then(function(fax_message) {
+      if (!fax_message) {
+        return res.sendStatus(404);
+      }
+      return res.send(fax_message);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new fax_message in the DB.
+exports.create = function(req, res, next) {
+  // FaxMessage
+  //   .create(req.body)
+  //   .then(function(fax_message) {
+  //     return res.status(201).send(fax_message);
+  //   })
+  //   .catch(function(err) {
+  //     return handleError(res, err);
+  //   });
+
+  var form = new formidable.IncomingForm();
+  // form.encoding = 'utf-8';
+  form.uploadDir = path.join(config.root, 'server/files/fax/outbound/original');
+  form.keepExtensions = true;
+  form.multiples = false;
+
+  if (req.body.onlyText) {
+    //There is not file, only text
+    // console.log(req.body);
+    if (req.body.html) {
+      //There is the html message -> convert
+      var uuid = uuidLib.v4()
+      var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
+      pdf.create(req.body.html, {
+        "timeout": 30000
+      }).toFile(dest, function(err, result) {
+        console.log('Fax: HTML Converted');
+        convertPdfAndSendFax(req, res, uuid, req.body);
+      });
+    }
+  } else {
+    form.parse(req, function(err, fields, files) {
+      if (err) {
+        return handleError(res, err);
+      }
+
+      if (fields.html) {
+        //There is HTML with PDF
+        var uuid = uuidLib.v4();
+        var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
+        pdf.create(fields.html, {
+          "timeout": 30000
+        }).toFile(dest, function(err, result) {
+          console.log('Fax: HTML Converted');
+          var pdfHTML = spindrift(result.filename);
+          var pdfUploaded = spindrift(files.file.path);
+          var uuid = uuidLib.v4();
+          spindrift.join(pdfHTML, pdfUploaded).pdfStream().pipe(fs.createWriteStream(path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf')));
+          console.log('Fax: HTML joined with PDF uploaded');
+          convertPdfAndSendFax(req, res, uuid, fields);
+        });
+      } else {
+        //There is only PDF
+        var uuid = uuidLib.v4();
+        var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
+        fs.rename(files.file.path, dest, function(err) {
+          if (err) {
+            console.error(err);
+            return handleError(res, req);
+            // return next(err);
+          }
+          console.log('Fax: PDF Rename');
+          convertPdfAndSendFax(req, res, uuid, fields);
+        });
+      }
+
+    });
+  }
+};
+
+function convertPdfAndSendFax(req, res, filenameInput, fields) {
+  var inputPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'original', filenameInput + '.pdf');
+  var resultPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'converted', filenameInput + '.tif');
+  var command = 'gs' + ' -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 ' + '-sPAPERSIZE=letter -sOutputFile=' + resultPath + ' ' + inputPath;
+  // console.log(inputPath, resultPath, command);
+
+  var uuidFax = uuidLib.v4();
+  FaxAccount
+    .findById(fields.accountId)
+    .then(function(faxAccount) {
+      // console.log('FaxAccount', faxAccount);
+
+      if (faxAccount) {
+        var faxBody = {
+          technology: 'SIP',
+          to: fields.toNum,
+          from: faxAccount.phone,
+          fax_file: resultPath,
+          fax_header: faxAccount.faxheader,
+          fax_localid: faxAccount.localid,
+          maxrate: faxAccount.maxrate,
+          minrate: faxAccount.minrate,
+          ecm: faxAccount.ecm,
+          uuid: uuidFax,
+          trunk: {
+            id: faxAccount.TrunkId
+          }
+        };
+
+        fs.exists(inputPath, function(exists) {
+          if (!exists) {
+            // console.log('File not exist');
+            handleError(res, new Error('File not exists'));
+          } else {
+            exec(command, function(err) {
+              if (err) {
+                console.error(err);
+                handleError(res, err);
+              } else {
+                console.log('Fax: PDF converted to TIFF');
+                fs.chmod(resultPath, 511, function(err) {
+                  if (fields.roomId) {
+                    // Room already exists -> create new message and associate
+                    FaxRoom
+                      .findOrCreate({
+                        where: {
+                          id: fields.roomId
+                        },
+                        defaults: {}
+                      })
+                      .spread(function(faxRoom, created) {
+                        // TODO Verify if we have to manage also the created
+                        FaxMessage
+                          .create({
+                            status: 'NOT SENT',
+                            read: true,
+                            filenamePDF: filenameInput + '.pdf',
+                            filename: filenameInput + '.tif',
+                            body: JSON.stringify(faxBody),
+                            uuid: uuidFax,
+                            FaxRoomId: faxRoom.id
+                          })
+                          .then(function(faxMessage) {
+                            // Fax message created, now association
+                            Contact
+                              .findOrCreate({
+                                where: {
+                                  phone: faxBody.from
+                                },
+                                defaults: {
+                                  phone: faxBody.from,
+                                  fullname: faxBody.from
+                                }
+                              })
+                              .spread(function(contact, created) {
+                                // console.log('Set relationship with from', created);
+                                faxMessage.setFrom(contact);
+                              });
+
+                            Contact
+                              .findOrCreate({
+                                where: {
+                                  phone: faxBody.to
+                                },
+                                defaults: {
+                                  phone: faxBody.to,
+                                  fullname: faxBody.to
+                                }
+                              })
+                              .spread(function(contact, created) {
+                                // console.log('Set relationship with to', created);
+                                faxMessage.setTo(contact);
+                              });
+
+                            return res.status(200).send(faxMessage);
+                          })
+                          .catch(function(err) {
+                            handleError(res, err);
+                            // console.error(err);
+                            // next(err);
+                          });
+                      });
+                  } else {
+                    // Room not exists -> create room, message and associate
+                    FaxRoom
+                      .create({
+                        status: 'OPEN',
+                        from: fields.toNum,
+                        FaxAccountId: fields.accountId,
+                        UserId: fields.userId
+                      })
+                      .then(function(faxRoom) {
+                        // Room created, now message
+                        FaxMessage
+                          .create({
+                            status: 'NOT SENT',
+                            read: true,
+                            filenamePDF: filenameInput + '.pdf',
+                            filename: filenameInput + '.tif',
+                            body: JSON.stringify(faxBody),
+                            uuid: uuidFax,
+                            FaxRoomId: faxRoom.id
+                          })
+                          .then(function(faxMessage) {
+                            // Fax message created, now association
+
+                            Contact
+                              .findOrCreate({
+                                where: {
+                                  phone: faxBody.from
+                                },
+                                defaults: {
+                                  phone: faxBody.from,
+                                  fullname: faxBody.from
+                                }
+                              })
+                              .spread(function(contact, created) {
+                                faxMessage.setFrom(contact);
+                              });
+
+                            Contact
+                              .findOrCreate({
+                                where: {
+                                  phone: faxBody.to
+                                },
+                                defaults: {
+                                  phone: faxBody.to,
+                                  fullname: faxBody.to
+                                }
+                              })
+                              .spread(function(contact, created) {
+                                faxMessage.setTo(contact);
+                              });
+
+                            return res.status(200).send(
+                              faxMessage);
+                          })
+                          .catch(function(err) {
+                            handleError(res, err);
+                          });
+                      })
+                      .catch(function(err) {
+                        handleError(res, err);
+                      });
+                  }
+                });
+              }
+            });
+          }
+        });
+      }
+    });
+}
+
+// Updates an existing fax_message in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FaxMessage
+    .findOne({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: Contact,
+        as: 'From'
+      }, {
+        model: Contact,
+        as: 'To'
+      }]
+    })
+    .then(function(fax_message) {
+      if (!fax_message) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(fax_message, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(fax_message);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a fax_message from the DB.
+exports.destroy = function(req, res) {
+  FaxMessage
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(fax_message) {
+      if (!fax_message) {
+        return res.sendStatus(404);
+      }
+      fax_message.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getContentFromMessage = function(req, res) {
+
+  FaxMessage
+    .findById(req.params.id)
+    .then(function(fax_message) {
+
+      // console.log(fax_message);
+
+      if (!fax_message) {
+        return res.sendStatus(404);
+      }
+
+      if (fax_message.filenamePDF) {
+
+        if (fax_message.status === 'RECEIVED') {
+          var pdfPath = path.join(config.root, 'server', 'files', 'fax', 'inbound', fax_message.filenamePDF);
+          fs.exists(pdfPath, function(exists) {
+            if (exists)
+              return res.sendFile(pdfPath);
+            else
+              return res.sendStatus(404);
+          });
+        } else if (fax_message.status === 'NOT SENT' || fax_message.directory ===
+          'SENT' || fax_message.status === 'FAILED') {
+          var pdfPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'original', fax_message.filenamePDF);
+          fs.exists(pdfPath, function(exists) {
+            if (exists)
+              return res.sendFile(pdfPath);
+            else
+              return res.sendStatus(404);
+          });
+        }
+      } else {
+        res.sendStatus(404);
+      }
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 8b0dee5..79a31ad 100644 (file)
@@ -1 +1,85 @@
-var _0xa6d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x69\x64","\x46\x72\x6F\x6D","\x54\x6F","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x75\x70\x64\x61\x74\x65","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xa6d2[0];var FaxMessage=require(_0xa6d2[2])[_0xa6d2[1]];var Contact=require(_0xa6d2[2])[_0xa6d2[3]];var FaxRoom=require(_0xa6d2[2])[_0xa6d2[4]];var FaxAccount=require(_0xa6d2[2])[_0xa6d2[5]];exports[_0xa6d2[6]]=function(_0xc982x5){FaxMessage[_0xa6d2[14]](function(_0xc982x6){FaxMessage[_0xa6d2[13]]({where:{id:_0xc982x6[_0xa6d2[10]]},include:[{model:Contact,as:_0xa6d2[11]},{model:Contact,as:_0xa6d2[12]},{model:FaxRoom,include:[{model:FaxAccount}]}]})[_0xa6d2[9]](function(_0xc982x8){onSave(_0xc982x5,_0xc982x8)})[_0xa6d2[8]](function(_0xc982x7){console[_0xa6d2[7]](_0xc982x7)})});FaxMessage[_0xa6d2[15]](function(_0xc982x6){FaxMessage[_0xa6d2[13]]({where:{id:_0xc982x6[_0xa6d2[10]]},include:[{model:Contact,as:_0xa6d2[11]},{model:Contact,as:_0xa6d2[12]},{model:FaxRoom,include:[{model:FaxAccount}]}]})[_0xa6d2[9]](function(_0xc982x8){onSave(_0xc982x5,_0xc982x8);onUpdate(_0xc982x5,_0xc982x8);})[_0xa6d2[8]](function(_0xc982x7){console[_0xa6d2[7]](_0xc982x7)})});FaxMessage[_0xa6d2[16]](function(_0xc982x6){onRemove(_0xc982x5,_0xc982x6)});};function onSave(_0xc982x5,_0xc982x6,_0xc982xa){_0xc982x5[_0xa6d2[18]](_0xa6d2[17],_0xc982x6)}function onUpdate(_0xc982x5,_0xc982x6,_0xc982xa){_0xc982x5[_0xa6d2[18]](_0xa6d2[19],_0xc982x6)}function onRemove(_0xc982x5,_0xc982x6,_0xc982xa){_0xc982x5[_0xa6d2[18]](_0xa6d2[20],_0xc982x6)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FaxMessage = require('../../models').FaxMessage;
+var Contact = require('../../models').Contact;
+var FaxRoom = require('../../models').FaxRoom;
+var FaxAccount = require('../../models').FaxAccount;
+
+exports.register = function(socket) {
+  FaxMessage.afterCreate(function(doc) {
+    FaxMessage
+      .findOne({
+        where: {
+          id: doc.id
+        },
+        include: [{
+          model: Contact,
+          as: 'From'
+        }, {
+          model: Contact,
+          as: 'To'
+        }, {
+          model: FaxRoom,
+          include: [{
+            model: FaxAccount
+          }]
+        }]
+      })
+      .then(function(faxMessage) {
+        onSave(socket, faxMessage);
+      })
+      .catch(function(err) {
+        console.error(err);
+      });
+  });
+
+  FaxMessage.afterUpdate(function(doc) {
+    FaxMessage
+      .findOne({
+        where: {
+          id: doc.id
+        },
+        include: [{
+          model: Contact,
+          as: 'From'
+        }, {
+          model: Contact,
+          as: 'To'
+        }, {
+          model: FaxRoom,
+          include: [{
+            model: FaxAccount
+          }]
+        }]
+      })
+      .then(function(faxMessage) {
+        onSave(socket, faxMessage);
+        onUpdate(socket, faxMessage);
+      })
+      .catch(function(err) {
+        console.error(err);
+      });
+  });
+
+  FaxMessage.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('fax_message:save', doc);
+  // socket.emit('fax_message:' + doc.directory + ':save', doc);
+}
+
+function onUpdate(socket, doc, cb) {
+  socket.emit('fax_message:update', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('fax_message:remove', doc);
+  // socket.emit('fax_message:' + doc.directory + ':remove', doc);
+}
index 3737650..d61f66e 100644 (file)
@@ -1 +1,20 @@
-var _0x8ca5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74"];_0x8ca5[0];var should=require(_0x8ca5[1]);var app=require(_0x8ca5[2]);var request=require(_0x8ca5[3]);describe(_0x8ca5[4],function(){it(_0x8ca5[5],function(_0xd410x4){request(app)[_0x8ca5[13]](_0x8ca5[12])[_0x8ca5[11]](200)[_0x8ca5[11]](_0x8ca5[10],/json/)[_0x8ca5[9]](function(_0xd410x5,_0xd410x6){if(_0xd410x5){return _0xd410x4(_0xd410x5)};_0xd410x6[_0x8ca5[8]][_0x8ca5[1]][_0x8ca5[7]][_0x8ca5[6]](Array);_0xd410x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/fax/messages', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/fax/messages')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 67d1585..b237a79 100644 (file)
@@ -1 +1,16 @@
-var _0x2a6f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x65\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x46\x72\x6F\x6D\x4D\x65\x73\x73\x61\x67\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2a6f[0];var express=require(_0x2a6f[1]);var controller=require(_0x2a6f[2]);var router=express.Router();router[_0x2a6f[5]](_0x2a6f[3],controller[_0x2a6f[4]]);router[_0x2a6f[5]](_0x2a6f[6],controller[_0x2a6f[7]]);router[_0x2a6f[5]](_0x2a6f[8],controller[_0x2a6f[9]]);router[_0x2a6f[11]](_0x2a6f[3],controller[_0x2a6f[10]]);router[_0x2a6f[13]](_0x2a6f[8],controller[_0x2a6f[12]]);router[_0x2a6f[14]](_0x2a6f[8],controller[_0x2a6f[12]]);router[_0x2a6f[16]](_0x2a6f[8],controller[_0x2a6f[15]]);module[_0x2a6f[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./fax_message.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id/content', controller.getContentFromMessage);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 33ab343..c5157bb 100644 (file)
@@ -1 +1,222 @@
-var _0xb54e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x73\x74\x72\x61\x74\x65\x67\x79","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x55\x73\x65\x72\x73","\x6E\x6F\x20\x66\x61\x78\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xb54e[0];var _=require(_0xb54e[1]);var util=require(_0xb54e[2]);var FaxQueue=require(_0xb54e[4])[_0xb54e[3]];exports[_0xb54e[5]]=function(_0xac9bx4,_0xac9bx5){var _0xac9bx6=[_0xb54e[6],_0xb54e[7],_0xb54e[8],_0xb54e[9]];var _0xac9bx7=_0xac9bx4[_0xb54e[11]][_0xb54e[10]]?parseInt(_0xac9bx4[_0xb54e[11]][_0xb54e[10]],10):100;var _0xac9bx8=_0xac9bx4[_0xb54e[11]][_0xb54e[12]]?parseInt(_0xac9bx4[_0xb54e[11]][_0xb54e[12]],10):0;var _0xac9bx9={where:{},limit:_0xac9bx7,offset:_0xac9bx8*_0xac9bx7,include:[{all:true}]};_[_0xb54e[26]](_0xac9bx4[_0xb54e[11]],function(_0xac9bxa,_0xac9bxb){switch(_0xac9bxb){case _0xb54e[10]:;case _0xb54e[12]:break ;;case _0xb54e[15]:_0xac9bx9[_0xb54e[13]]=util[_0xb54e[18]](_0xb54e[14],_0xac9bx4[_0xb54e[11]][_0xb54e[15]],_0xac9bx4[_0xb54e[11]][_0xb54e[16]]||_0xb54e[17])||null;break ;;case _0xb54e[16]:break ;;case _0xb54e[24]:_0xac9bx9[_0xb54e[20]][_0xb54e[19]]=[];_0xac9bx6[_0xb54e[23]](function(_0xac9bxc){var _0xac9bxd={};_0xac9bxd[_0xac9bxc]={$like:_0xb54e[21]+_0xac9bxa+_0xb54e[21]};_0xac9bx9[_0xb54e[20]][_0xb54e[19]][_0xb54e[22]](_0xac9bxd);});break ;;default:_0xac9bx9[_0xb54e[20]][_0xac9bxb]={$like:{}};_0xac9bx9[_0xb54e[20]][_0xac9bxb][_0xb54e[25]]=_0xb54e[21]+_0xac9bxa+_0xb54e[21];;}});FaxQueue[_0xb54e[40]](_0xac9bx9)[_0xb54e[39]](function(_0xac9bxf){var _0xac9bx10=Math[_0xb54e[29]](_0xac9bxf[_0xb54e[28]]/_0xac9bx7);var _0xac9bx11=_0xac9bx10>(_0xac9bx9[_0xb54e[30]]+1)?util[_0xb54e[18]](_0xb54e[31],_0xac9bx4[_0xb54e[32]],_0xac9bx4[_0xb54e[34]][_0xb54e[33]],_0xac9bx4[_0xb54e[35]],_0xac9bx8+1):null;var _0xac9bx12=_0xac9bx8>0?util[_0xb54e[18]](_0xb54e[31],_0xac9bx4[_0xb54e[32]],_0xac9bx4[_0xb54e[34]][_0xb54e[33]],_0xac9bx4[_0xb54e[35]],_0xac9bx8-1):null;_0xac9bx5[_0xb54e[38]](200)[_0xb54e[37]]({count:_0xac9bxf[_0xb54e[28]],rows:_0xac9bxf[_0xb54e[36]],next_page:_0xac9bx11,previous_page:_0xac9bx12,total_pages:_0xac9bx10});})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)});};exports[_0xb54e[41]]=function(_0xac9bx4,_0xac9bx5){FaxQueue[_0xb54e[45]](_0xac9bx4[_0xb54e[44]][_0xb54e[43]])[_0xb54e[39]](function(_0xac9bx13){if(!_0xac9bx13){return _0xac9bx5[_0xb54e[42]](404)};return _0xac9bx5[_0xb54e[37]](_0xac9bx13);})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)})};exports[_0xb54e[46]]=function(_0xac9bx4,_0xac9bx5){FaxQueue[_0xb54e[46]](_0xac9bx4[_0xb54e[47]])[_0xb54e[39]](function(_0xac9bx13){return _0xac9bx5[_0xb54e[38]](201)[_0xb54e[37]](_0xac9bx13)})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)})};exports[_0xb54e[48]]=function(_0xac9bx4,_0xac9bx5){if(_0xac9bx4[_0xb54e[47]][_0xb54e[43]]){delete _0xac9bx4[_0xb54e[47]][_0xb54e[43]]};FaxQueue[_0xb54e[51]]({where:{id:_0xac9bx4[_0xb54e[44]][_0xb54e[43]]}})[_0xb54e[39]](function(_0xac9bx13){if(!_0xac9bx13){return _0xac9bx5[_0xb54e[42]](404)};var _0xac9bx14=_[_0xb54e[49]](_0xac9bx13,_0xac9bx4[_0xb54e[47]]);_0xac9bx14[_0xb54e[50]]()[_0xb54e[39]](function(){return _0xac9bx5[_0xb54e[38]](200)[_0xb54e[37]](_0xac9bx13)})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)});})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)});};exports[_0xb54e[52]]=function(_0xac9bx4,_0xac9bx5){FaxQueue[_0xb54e[51]]({where:{id:_0xac9bx4[_0xb54e[44]][_0xb54e[43]]}})[_0xb54e[39]](function(_0xac9bx13){if(!_0xac9bx13){return _0xac9bx5[_0xb54e[42]](404)};_0xac9bx13[_0xb54e[52]]()[_0xb54e[39]](function(){return _0xac9bx5[_0xb54e[42]](204)})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)});})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)})};exports[_0xb54e[53]]=function(_0xac9bx4,_0xac9bx5,_0xac9bx15){FaxQueue[_0xb54e[45]](_0xac9bx4[_0xb54e[44]][_0xb54e[43]])[_0xb54e[39]](function(_0xac9bx16){if(_0xac9bx16){_0xac9bx16[_0xb54e[55]](_0xac9bx4[_0xb54e[47]][_0xb54e[54]])[_0xb54e[39]](function(){return _0xac9bx5[_0xb54e[42]](200)})[_0xb54e[27]](function(_0xac9bxe){return _0xac9bx15(_0xac9bxe)})}else {return _0xac9bx15( new Error(_0xb54e[56]))}})[_0xb54e[27]](function(_0xac9bxe){return _0xac9bx15(_0xac9bxe)})};exports[_0xb54e[57]]=function(_0xac9bx4,_0xac9bx5,_0xac9bx15){FaxQueue[_0xb54e[45]](_0xac9bx4[_0xb54e[44]][_0xb54e[43]])[_0xb54e[39]](function(_0xac9bx16){if(_0xac9bx16){_0xac9bx16[_0xb54e[58]](_0xac9bx4[_0xb54e[47]][_0xb54e[54]])[_0xb54e[39]](function(){return _0xac9bx5[_0xb54e[42]](200)})[_0xb54e[27]](function(_0xac9bxe){return _0xac9bx15(_0xac9bxe)})}else {return _0xac9bx15( new Error(_0xb54e[56]))}})[_0xb54e[27]](function(_0xac9bxe){return _0xac9bx15(_0xac9bxe)})};exports[_0xb54e[59]]=function(_0xac9bx4,_0xac9bx5){FaxQueue[_0xb54e[52]]({where:{id:_0xac9bx4[_0xb54e[11]][_0xb54e[43]]},individualHooks:true})[_0xb54e[39]](function(){return _0xac9bx5[_0xb54e[42]](204)})[_0xb54e[27]](function(_0xac9bxe){return handleError(_0xac9bx5,_0xac9bxe)})};function handleError(_0xac9bx5,_0xac9bxe){return _0xac9bx5[_0xb54e[38]](500)[_0xb54e[37]](_0xac9bxe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var FaxQueue = require('../../models').FaxQueue;
+
+// Get list of fax_queues
+exports.index = function(req, res) {
+
+  var attributes = ['description', 'name', 'timeout', 'strategy'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page,
+    include: [{
+      all: true
+    }]
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  FaxQueue
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single fax_queue
+exports.show = function(req, res) {
+  FaxQueue
+    .findById(req.params.id)
+    .then(function(fax_queue) {
+      if (!fax_queue) {
+        return res.sendStatus(404);
+      }
+      return res.send(fax_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new fax_queue in the DB.
+exports.create = function(req, res) {
+  FaxQueue
+    .create(req.body)
+    .then(function(fax_queue) {
+      return res.status(201).send(fax_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing fax_queue in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FaxQueue
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(fax_queue) {
+      if (!fax_queue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(fax_queue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(fax_queue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a fax_queue from the DB.
+exports.destroy = function(req, res) {
+  FaxQueue
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(fax_queue) {
+      if (!fax_queue) {
+        return res.sendStatus(404);
+      }
+      fax_queue.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.addAgents = function(req, res, next) {
+  FaxQueue
+    .findById(req.params.id)
+    .then(function(faxQueue) {
+      if (faxQueue) {
+        // QUEUE FOUND
+        // ADD AGENTS
+        faxQueue
+          .addUsers(req.body.agents)
+          .then(function() {
+            return res.sendStatus(200);
+          })
+          .catch(function(err) {
+            return next(err);
+          });
+      } else {
+        return next(new Error('no fax queue found'));
+      }
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+exports.removeAgents = function(req, res, next) {
+  FaxQueue
+    .findById(req.params.id)
+    .then(function(faxQueue) {
+      if (faxQueue) {
+        // QUEUE FOUND
+        // REMOVE AGENTS
+        faxQueue
+          .removeUsers(req.body.agents)
+          .then(function() {
+            return res.sendStatus(200);
+          })
+          .catch(function(err) {
+            return next(err);
+          });
+      } else {
+        return next(new Error('no fax queue found'));
+      }
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function(req, res) {
+  FaxQueue
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 9236ec6..243ed07 100644 (file)
@@ -1 +1,24 @@
-var _0x9354=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9354[0];var fax_queue=require(_0x9354[2])[_0x9354[1]];exports[_0x9354[3]]=function(_0x52e2x2){fax_queue[_0x9354[4]](function(_0x52e2x3){onSave(_0x52e2x2,_0x52e2x3)});fax_queue[_0x9354[5]](function(_0x52e2x3){onRemove(_0x52e2x2,_0x52e2x3)});};function onSave(_0x52e2x2,_0x52e2x3,_0x52e2x5){_0x52e2x2[_0x9354[7]](_0x9354[6],_0x52e2x3)}function onRemove(_0x52e2x2,_0x52e2x3,_0x52e2x5){_0x52e2x2[_0x9354[7]](_0x9354[8],_0x52e2x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var fax_queue = require('../../models').FaxQueue;
+
+exports.register = function(socket) {
+  fax_queue.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  fax_queue.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('fax_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('fax_queue:remove', doc);
+}
index f6b957b..9148967 100644 (file)
@@ -1 +1,20 @@
-var _0x56d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x56d6[0];var should=require(_0x56d6[1]);var app=require(_0x56d6[2]);var request=require(_0x56d6[3]);describe(_0x56d6[4],function(){it(_0x56d6[5],function(_0xf96bx4){request(app)[_0x56d6[13]](_0x56d6[12])[_0x56d6[11]](200)[_0x56d6[11]](_0x56d6[10],/json/)[_0x56d6[9]](function(_0xf96bx5,_0xf96bx6){if(_0xf96bx5){return _0xf96bx4(_0xf96bx5)};_0xf96bx6[_0x56d6[8]][_0x56d6[1]][_0x56d6[7]][_0x56d6[6]](Array);_0xf96bx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/fax/queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/fax/queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 97a66ce..89f2c19 100644 (file)
@@ -1 +1,18 @@
-var _0x63e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x63e4[0];var express=require(_0x63e4[1]);var controller=require(_0x63e4[2]);var router=express.Router();router[_0x63e4[5]](_0x63e4[3],controller[_0x63e4[4]]);router[_0x63e4[5]](_0x63e4[6],controller[_0x63e4[7]]);router[_0x63e4[9]](_0x63e4[3],controller[_0x63e4[8]]);router[_0x63e4[9]](_0x63e4[10],controller[_0x63e4[11]]);router[_0x63e4[13]](_0x63e4[6],controller[_0x63e4[12]]);router[_0x63e4[13]](_0x63e4[10],controller[_0x63e4[14]]);router[_0x63e4[15]](_0x63e4[6],controller[_0x63e4[12]]);router[_0x63e4[17]](_0x63e4[3],controller[_0x63e4[16]]);router[_0x63e4[17]](_0x63e4[6],controller[_0x63e4[18]]);module[_0x63e4[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./fax_queue.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.post('/:id/agents', controller.addAgents);
+router.put('/:id', controller.update);
+router.put('/:id/agents', controller.removeAgents);
+router.patch('/:id', controller.update);
+router.delete('/', controller.bulkDestroy);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index fb3c5a3..a139fd5 100644 (file)
@@ -1 +1,151 @@
-var _0x2f2d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x61\x78\x52\x6F\x6F\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x55\x73\x65\x72","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x70\x61\x72\x61\x6D\x73","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x46\x72\x6F\x6D","\x54\x6F","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x44\x45\x53\x43","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x2f2d[0];var _=require(_0x2f2d[1]);var FaxRoom=require(_0x2f2d[3])[_0x2f2d[2]];var FaxAccount=require(_0x2f2d[3])[_0x2f2d[4]];var FaxMessage=require(_0x2f2d[3])[_0x2f2d[5]];var Contact=require(_0x2f2d[3])[_0x2f2d[6]];var User=require(_0x2f2d[3])[_0x2f2d[7]];exports[_0x2f2d[8]]=function(_0x56cdx7,_0x56cdx8){FaxRoom[_0x2f2d[14]]({include:[{model:FaxMessage,attributes:[_0x2f2d[13]]},{model:FaxAccount},{model:User}]})[_0x2f2d[12]](function(_0x56cdxa){return _0x56cdx8[_0x2f2d[11]](200)[_0x2f2d[10]](_0x56cdxa)})[_0x2f2d[9]](function(_0x56cdx9){return handleError(_0x56cdx8,_0x56cdx9)})};exports[_0x2f2d[15]]=function(_0x56cdx7,_0x56cdx8,_0x56cdxb){FaxRoom[_0x2f2d[14]]({where:{UserId:_0x56cdx7[_0x2f2d[16]][_0x2f2d[13]]},include:[{model:FaxAccount},{model:User}]})[_0x2f2d[12]](function(_0x56cdxc){return _0x56cdx8[_0x2f2d[11]](200)[_0x2f2d[10]](_0x56cdxc)})[_0x2f2d[9]](function(_0x56cdx9){return _0x56cdxb(_0x56cdx9)})};exports[_0x2f2d[17]]=function(_0x56cdx7,_0x56cdx8){FaxRoom[_0x2f2d[23]]({where:{id:_0x56cdx7[_0x2f2d[16]][_0x2f2d[13]]},include:[{model:FaxMessage,include:[{model:FaxRoom,include:[{model:FaxAccount}]},{model:Contact,as:_0x2f2d[19]},{model:Contact,as:_0x2f2d[20]}]},{model:FaxAccount}],order:[[FaxMessage,_0x2f2d[21],_0x2f2d[22]]]})[_0x2f2d[12]](function(_0x56cdxd){if(!_0x56cdxd){return _0x56cdx8[_0x2f2d[18]](404)};return _0x56cdx8[_0x2f2d[10]](_0x56cdxd);})[_0x2f2d[9]](function(_0x56cdx9){return handleError(_0x56cdx8,_0x56cdx9)})};exports[_0x2f2d[24]]=function(_0x56cdx7,_0x56cdx8){FaxRoom[_0x2f2d[24]](_0x56cdx7[_0x2f2d[25]])[_0x2f2d[12]](function(_0x56cdxd){return _0x56cdx8[_0x2f2d[11]](201)[_0x2f2d[10]](_0x56cdxd)})[_0x2f2d[9]](function(_0x56cdx9){return handleError(_0x56cdx8,_0x56cdx9)})};exports[_0x2f2d[26]]=function(_0x56cdx7,_0x56cdx8){FaxRoom[_0x2f2d[29]](_0x56cdx7[_0x2f2d[16]][_0x2f2d[13]])[_0x2f2d[12]](function(_0x56cdxd){if(!_0x56cdxd){return _0x56cdx8[_0x2f2d[18]](404)};var _0x56cdxe=_[_0x2f2d[27]](_0x56cdxd,_0x56cdx7[_0x2f2d[25]]);_0x56cdxe[_0x2f2d[28]]()[_0x2f2d[12]](function(){return _0x56cdx8[_0x2f2d[11]](200)[_0x2f2d[10]](_0x56cdxd)})[_0x2f2d[9]](function(_0x56cdx9){return handleError(_0x56cdx8,_0x56cdx9)});})[_0x2f2d[9]](function(_0x56cdx9){return handleError(_0x56cdx8,_0x56cdx9)})};exports[_0x2f2d[30]]=function(_0x56cdx7,_0x56cdx8){FaxRoom[_0x2f2d[29]](_0x56cdx7[_0x2f2d[16]][_0x2f2d[13]])[_0x2f2d[12]](function(_0x56cdxd){if(!_0x56cdxd){return _0x56cdx8[_0x2f2d[18]](404)};_0x56cdxd[_0x2f2d[30]]()[_0x2f2d[12]](function(){return _0x56cdx8[_0x2f2d[18]](204)})[_0x2f2d[9]](function(_0x56cdx9){return handleError(_0x56cdx8,_0x56cdx9)});})[_0x2f2d[9]](function(_0x56cdx9){return handleError(_0x56cdx8,_0x56cdx9)})};function handleError(_0x56cdx8,_0x56cdx9){return _0x56cdx8[_0x2f2d[11]](500)[_0x2f2d[10]](_0x56cdx9)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var FaxRoom = require('../../models').FaxRoom;
+var FaxAccount = require('../../models').FaxAccount;
+var FaxMessage = require('../../models').FaxMessage;
+var Contact = require('../../models').Contact;
+var User = require('../../models').User;
+
+// Get list of fax_rooms
+exports.index = function(req, res) {
+  FaxRoom
+    .findAll({
+      include: [{
+        model: FaxMessage,
+        attributes: ['id']
+      }, {
+        model: FaxAccount
+      }, {
+        model: User
+      }]
+    })
+    .then(function(fax_rooms) {
+      return res.status(200).send(fax_rooms);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of agent mailRooms
+exports.agentIndex = function(req, res, next) {
+  FaxRoom
+    .findAll({
+      where: {
+        UserId: req.params.id
+      },
+      include: [{
+        model: FaxAccount
+      }, {
+        model: User
+      }]
+    })
+    .then(function(faxRooms) {
+      return res.status(200).send(faxRooms);
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Get a single fax_room
+exports.show = function(req, res) {
+  FaxRoom
+    .findOne({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: FaxMessage,
+        include: [{
+          model: FaxRoom,
+          include: [{
+            model: FaxAccount
+          }]
+        }, {
+          model: Contact,
+          as: 'From'
+        }, {
+          model: Contact,
+          as: 'To'
+        }]
+      }, {
+        model: FaxAccount
+      }],
+      order: [
+        [FaxMessage, 'createdAt', 'DESC']
+      ]
+    })
+    .then(function(fax_room) {
+      if (!fax_room) {
+        return res.sendStatus(404);
+      }
+      return res.send(fax_room);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new fax_room in the DB.
+exports.create = function(req, res) {
+  FaxRoom
+    .create(req.body)
+    .then(function(fax_room) {
+      return res.status(201).send(fax_room);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing fax_room in the DB.
+exports.update = function(req, res) {
+  // if (req.body.id) {
+  //   delete req.body.id;
+  // }
+  FaxRoom
+    .findById(req.params.id)
+    .then(function(fax_room) {
+      if (!fax_room) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(fax_room, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(fax_room);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a fax_room from the DB.
+exports.destroy = function(req, res) {
+  FaxRoom
+    .findById(req.params.id)
+    .then(function(fax_room) {
+      if (!fax_room) {
+        return res.sendStatus(404);
+      }
+      fax_room.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index a347c6f..ba9c227 100644 (file)
@@ -1 +1,64 @@
-var _0x963d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x51\x75\x65\x75\x65","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x4E\x45\x57","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x64","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x41\x58","\x66\x72\x6F\x6D","\x73\x61\x76\x65","\x66\x61\x78","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x73\x74\x72\x61\x74\x65\x67\x79","\x74\x69\x6D\x65\x6F\x75\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x67\x65\x74\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0x963d[0];var User=require(_0x963d[2])[_0x963d[1]];var FaxRoom=require(_0x963d[2])[_0x963d[3]];var FaxQueue=require(_0x963d[2])[_0x963d[4]];var FaxAccount=require(_0x963d[2])[_0x963d[5]];var FaxApplication=require(_0x963d[2])[_0x963d[6]];exports[_0x963d[7]]=function(_0x3bc3x6){FaxRoom[_0x963d[8]](function(_0x3bc3x7){onSave(_0x3bc3x6,_0x3bc3x7)})};function onSave(_0x3bc3x6,_0x3bc3x7,_0x3bc3x9){if(_0x3bc3x7[_0x963d[9]]===_0x963d[10]){FaxAccount[_0x963d[25]](_0x3bc3x7.FaxAccountId)[_0x963d[20]](function(_0x3bc3xb){_0x3bc3xb[_0x963d[24]]({include:[{model:User,attributes:[_0x963d[13]]},{model:FaxQueue,attributes:[_0x963d[13],_0x963d[21],_0x963d[22]],include:{model:User,attributes:[_0x963d[13]]}}],order:[[_0x963d[23]]]})[_0x963d[20]](function(_0x3bc3xc){var _0x3bc3xd={roomId:_0x3bc3x7[_0x963d[13]],accountId:_0x3bc3x7[_0x963d[14]],channel:_0x963d[15],msg:{from:_0x3bc3x7[_0x963d[16]]},applications:_0x3bc3xc};_0x3bc3x6[_0x963d[19]](_0x963d[18],_0x3bc3xd)[_0x963d[17]]();})[_0x963d[12]](function(_0x3bc3xa){console[_0x963d[11]](_0x3bc3xa)})})[_0x963d[12]](function(_0x3bc3xa){console[_0x963d[11]](_0x3bc3xa)})}}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var User = require('../../models').User;
+var FaxRoom = require('../../models').FaxRoom;
+var FaxQueue = require('../../models').FaxQueue;
+var FaxAccount = require('../../models').FaxAccount;
+var FaxApplication = require('../../models').FaxApplication;
+
+exports.register = function(queue) {
+  FaxRoom.afterCreate(function(doc) {
+    onSave(queue, doc);
+  });
+}
+
+function onSave(queue, doc, cb) {
+  if (doc.status === 'NEW') {
+    FaxAccount
+      .findById(doc.FaxAccountId)
+      .then(function(faxAccount) {
+        faxAccount
+          .getFaxApplications({
+            include: [{
+              model: User,
+              attributes: ['id']
+            }, {
+              model: FaxQueue,
+              attributes: ['id', 'strategy', 'timeout'],
+              include: {
+                model: User,
+                attributes: ['id']
+              }
+            }],
+            order: [
+              ['priority']
+            ]
+          })
+          .then(function(faxApplications) {
+
+            var data = {
+              roomId: doc.id,
+              accountId: doc.FaxAccountId,
+              channel: 'FAX',
+              msg: {
+                from: doc.from
+              },
+              applications: faxApplications
+            };
+
+            // Create queue process
+            queue.create('fax', data).save();
+          })
+          .catch(function(err) {
+            console.error(err);
+          });
+      })
+      .catch(function(err) {
+        console.error(err);
+      });
+  }
+}
index 6c04bb7..92f71b0 100644 (file)
@@ -1 +1,24 @@
-var _0xaedb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x52\x6F\x6F\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0xaedb[0];var fax_room=require(_0xaedb[2])[_0xaedb[1]];exports[_0xaedb[3]]=function(_0x22c8x2){fax_room[_0xaedb[4]](function(_0x22c8x3){onSave(_0x22c8x2,_0x22c8x3)});fax_room[_0xaedb[5]](function(_0x22c8x3){onRemove(_0x22c8x2,_0x22c8x3)});};function onSave(_0x22c8x2,_0x22c8x3,_0x22c8x5){_0x22c8x2[_0xaedb[7]](_0xaedb[6],_0x22c8x3)}function onRemove(_0x22c8x2,_0x22c8x3,_0x22c8x5){_0x22c8x2[_0xaedb[7]](_0xaedb[8],_0x22c8x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var fax_room = require('../../models').FaxRoom;
+
+exports.register = function(socket) {
+  fax_room.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  fax_room.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('fax_room:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('fax_room:remove', doc);
+}
index f130be3..1a5ae47 100644 (file)
@@ -1 +1,20 @@
-var _0xbe5b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x6F\x6F\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x6F\x6F\x6D\x73","\x67\x65\x74"];_0xbe5b[0];var should=require(_0xbe5b[1]);var app=require(_0xbe5b[2]);var request=require(_0xbe5b[3]);describe(_0xbe5b[4],function(){it(_0xbe5b[5],function(_0x62dbx4){request(app)[_0xbe5b[13]](_0xbe5b[12])[_0xbe5b[11]](200)[_0xbe5b[11]](_0xbe5b[10],/json/)[_0xbe5b[9]](function(_0x62dbx5,_0x62dbx6){if(_0x62dbx5){return _0x62dbx4(_0x62dbx5)};_0x62dbx6[_0xbe5b[8]][_0xbe5b[1]][_0xbe5b[7]][_0xbe5b[6]](Array);_0x62dbx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/fax/rooms', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/fax/rooms')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 52a067d..73e938a 100644 (file)
@@ -1 +1,17 @@
-var _0x6d3c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x46\x61\x78","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x67\x65\x6E\x74\x2F\x3A\x69\x64","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6d3c[0];var express=require(_0x6d3c[1]);var controller=require(_0x6d3c[2]);var license=require(_0x6d3c[3]);var router=express.Router();router[_0x6d3c[8]](_0x6d3c[4],license[_0x6d3c[5]](),license[_0x6d3c[6]](),controller[_0x6d3c[7]]);router[_0x6d3c[8]](_0x6d3c[9],controller[_0x6d3c[10]]);router[_0x6d3c[8]](_0x6d3c[11],controller[_0x6d3c[12]]);router[_0x6d3c[14]](_0x6d3c[4],controller[_0x6d3c[13]]);router[_0x6d3c[16]](_0x6d3c[11],controller[_0x6d3c[15]]);router[_0x6d3c[17]](_0x6d3c[11],controller[_0x6d3c[15]]);router[_0x6d3c[19]](_0x6d3c[11],controller[_0x6d3c[18]]);module[_0x6d3c[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./fax_room.controller');
+var license = require('../../config/license/license.service');
+
+var router = express.Router();
+
+router.get('/', license.isValidDate(), license.hasFax(), controller.index);
+router.get('/agent/:id', controller.agentIndex);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 5bbcf5e..ae9ab8a 100644 (file)
@@ -1 +1,239 @@
-var _0x8d5c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x61\x70\x69\x4B\x65\x79","\x70\x61\x72\x73\x65","\x72\x65\x71\x75\x69\x72\x65\x5F\x6C\x6F\x67\x69\x6E","\x6C\x69\x73\x74\x54\x69\x63\x6B\x65\x74\x73","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73\x2E\x6A\x73\x6F\x6E","\x67\x65\x74"];_0x8d5c[0];var _=require(_0x8d5c[1]);var util=require(_0x8d5c[2]);var _fd=require(_0x8d5c[3]);var FreshdeskAccount=require(_0x8d5c[5])[_0x8d5c[4]];function handleError(_0x33d4x6,_0x33d4x7){_0x33d4x7=_0x33d4x7||500;return function(_0x33d4x8){_0x33d4x6[_0x8d5c[7]](_0x33d4x7)[_0x8d5c[6]](_0x33d4x8)};}function responseWithResult(_0x33d4x6,_0x33d4x7){_0x33d4x7=_0x33d4x7||200;return function(_0x33d4xa){if(_0x33d4xa){_0x33d4x6[_0x8d5c[7]](_0x33d4x7)[_0x8d5c[8]](_0x33d4xa)}};}function handleEntityNotFound(_0x33d4x6){return function(_0x33d4xa){if(!_0x33d4xa){_0x33d4x6[_0x8d5c[7]](404)[_0x8d5c[9]]();return null;};return _0x33d4xa;}}function saveUpdates(_0x33d4xd){return function(_0x33d4xa){return _0x33d4xa[_0x8d5c[11]](_0x33d4xd)[_0x8d5c[10]](function(_0x33d4xe){return _0x33d4xe})}}function removeEntity(_0x33d4x6){return function(_0x33d4xa){if(_0x33d4xa){return _0x33d4xa[_0x8d5c[12]]()[_0x8d5c[10]](function(){_0x33d4x6[_0x8d5c[7]](204)[_0x8d5c[9]]()})}}}exports[_0x8d5c[13]]=function(_0x33d4x10,_0x33d4x6){var _0x33d4x11=[_0x8d5c[14],_0x8d5c[15],_0x8d5c[16],_0x8d5c[17]];var _0x33d4x12=_0x33d4x10[_0x8d5c[19]][_0x8d5c[18]]?parseInt(_0x33d4x10[_0x8d5c[19]][_0x8d5c[18]],10):100;var _0x33d4x13=_0x33d4x10[_0x8d5c[19]][_0x8d5c[20]]?parseInt(_0x33d4x10[_0x8d5c[19]][_0x8d5c[20]],10):0;var _0x33d4x14={where:{},limit:_0x33d4x12,offset:_0x33d4x13*_0x33d4x12};_[_0x8d5c[34]](_0x33d4x10[_0x8d5c[19]],function(_0x33d4x15,_0x33d4x16){switch(_0x33d4x16){case _0x8d5c[18]:;case _0x8d5c[20]:break ;;case _0x8d5c[23]:_0x33d4x14[_0x8d5c[21]]=util[_0x8d5c[26]](_0x8d5c[22],_0x33d4x10[_0x8d5c[19]][_0x8d5c[23]],_0x33d4x10[_0x8d5c[19]][_0x8d5c[24]]||_0x8d5c[25])||null;break ;;case _0x8d5c[24]:break ;;case _0x8d5c[32]:_0x33d4x14[_0x8d5c[28]][_0x8d5c[27]]=[];_0x33d4x11[_0x8d5c[31]](function(_0x33d4x17){var _0x33d4x18={};_0x33d4x18[_0x33d4x17]={$like:_0x8d5c[29]+_0x33d4x15+_0x8d5c[29]};_0x33d4x14[_0x8d5c[28]][_0x8d5c[27]][_0x8d5c[30]](_0x33d4x18);});break ;;default:_0x33d4x14[_0x8d5c[28]][_0x33d4x16]={$like:{}};_0x33d4x14[_0x8d5c[28]][_0x33d4x16][_0x8d5c[33]]=_0x8d5c[29]+_0x33d4x15+_0x8d5c[29];;}});FreshdeskAccount[_0x8d5c[46]](_0x33d4x14)[_0x8d5c[10]](function(_0x33d4x19){var _0x33d4x1a=Math[_0x8d5c[38]](_0x33d4x19[_0x8d5c[37]]/_0x33d4x12);var _0x33d4x1b=_0x33d4x1a>(_0x33d4x14[_0x8d5c[39]]+1)?util[_0x8d5c[26]](_0x8d5c[40],_0x33d4x10[_0x8d5c[41]],_0x33d4x10[_0x8d5c[43]][_0x8d5c[42]],_0x33d4x10[_0x8d5c[44]],_0x33d4x13+1):null;var _0x33d4x1c=_0x33d4x13>0?util[_0x8d5c[26]](_0x8d5c[40],_0x33d4x10[_0x8d5c[41]],_0x33d4x10[_0x8d5c[43]][_0x8d5c[42]],_0x33d4x10[_0x8d5c[44]],_0x33d4x13-1):null;return _0x33d4x6[_0x8d5c[7]](200)[_0x8d5c[6]]({count:_0x33d4x19[_0x8d5c[37]],rows:_0x33d4x19[_0x8d5c[45]],next_page:_0x33d4x1b,previous_page:_0x33d4x1c,total_pages:_0x33d4x1a});})[_0x8d5c[36]](function(_0x33d4x8){return _0x33d4x6[_0x8d5c[7]](500)[_0x8d5c[6]]({error:_0x8d5c[35]})});};exports[_0x8d5c[47]]=function(_0x33d4x10,_0x33d4x6){FreshdeskAccount[_0x8d5c[50]](_0x33d4x10[_0x8d5c[49]][_0x8d5c[48]])[_0x8d5c[10]](handleEntityNotFound(_0x33d4x6))[_0x8d5c[10]](responseWithResult(_0x33d4x6))[_0x8d5c[36]](handleError(_0x33d4x6))};exports[_0x8d5c[51]]=function(_0x33d4x10,_0x33d4x6){FreshdeskAccount[_0x8d5c[51]](_0x33d4x10[_0x8d5c[52]])[_0x8d5c[10]](responseWithResult(_0x33d4x6,201))[_0x8d5c[36]](handleError(_0x33d4x6))};exports[_0x8d5c[53]]=function(_0x33d4x10,_0x33d4x6){if(_0x33d4x10[_0x8d5c[52]][_0x8d5c[48]]){delete _0x33d4x10[_0x8d5c[52]][_0x8d5c[48]]};FreshdeskAccount[_0x8d5c[50]](_0x33d4x10[_0x8d5c[49]][_0x8d5c[48]])[_0x8d5c[10]](handleEntityNotFound(_0x33d4x6))[_0x8d5c[10]](saveUpdates(_0x33d4x10[_0x8d5c[52]]))[_0x8d5c[10]](responseWithResult(_0x33d4x6))[_0x8d5c[36]](handleError(_0x33d4x6));};exports[_0x8d5c[12]]=function(_0x33d4x10,_0x33d4x6){FreshdeskAccount[_0x8d5c[50]](_0x33d4x10[_0x8d5c[49]][_0x8d5c[48]])[_0x8d5c[10]](handleEntityNotFound(_0x33d4x6))[_0x8d5c[10]](removeEntity(_0x33d4x6))[_0x8d5c[36]](handleError(_0x33d4x6))};exports[_0x8d5c[54]]=function(_0x33d4x10,_0x33d4x6){FreshdeskAccount[_0x8d5c[12]]({where:{id:_0x33d4x10[_0x8d5c[19]][_0x8d5c[48]]},individualHooks:true})[_0x8d5c[10]](function(){return _0x33d4x6[_0x8d5c[55]](204)})[_0x8d5c[36]](function(_0x33d4x8){return handleError(_0x33d4x6,_0x33d4x8)})};exports[_0x8d5c[56]]=function(_0x33d4x10,_0x33d4x6){FreshdeskAccount[_0x8d5c[50]](_0x33d4x10[_0x8d5c[49]][_0x8d5c[48]])[_0x8d5c[10]](handleEntityNotFound(_0x33d4x6))[_0x8d5c[10]](function(_0x33d4x1d){var _0x33d4x1e= new _fd(_0x33d4x1d[_0x8d5c[17]],_0x33d4x1d[_0x8d5c[57]]);_0x33d4x1e[_0x8d5c[60]](function(_0x33d4x8,_0x33d4x1f,_0x33d4x20){if(_0x33d4x8){return _0x33d4x6[_0x8d5c[55]](400)};_0x33d4x20=JSON[_0x8d5c[58]](_0x33d4x20);if(_0x33d4x20[_0x8d5c[59]]){return _0x33d4x6[_0x8d5c[55]](400)};return _0x33d4x6[_0x8d5c[55]](200);});})[_0x8d5c[36]](handleError(_0x33d4x6))};exports[_0x8d5c[61]]=function(_0x33d4x10,_0x33d4x6){var _0x33d4x21={};_0x33d4x21[_0x33d4x10[_0x8d5c[49]][_0x8d5c[62]]]=_0x33d4x10[_0x8d5c[52]][_0x8d5c[63]];FreshdeskAccount[_0x8d5c[46]]({where:_0x33d4x21})[_0x8d5c[10]](function(_0x33d4x19){if(_0x33d4x19[_0x8d5c[37]]){return _0x33d4x6[_0x8d5c[7]](200)[_0x8d5c[6]]({isValid:false,value:_0x33d4x10[_0x8d5c[52]][_0x8d5c[63]]})};return _0x33d4x6[_0x8d5c[7]](200)[_0x8d5c[6]]({isValid:true,value:_0x33d4x10[_0x8d5c[52]][_0x8d5c[63]]});})[_0x8d5c[36]](function(_0x33d4x8){return handleError(_0x33d4x6,_0x33d4x8)});};exports[_0x8d5c[64]]=function(_0x33d4x10,_0x33d4x6,_0x33d4x22){FreshdeskAccount[_0x8d5c[50]](_0x33d4x10[_0x8d5c[49]][_0x8d5c[48]])[_0x8d5c[10]](handleEntityNotFound(_0x33d4x6))[_0x8d5c[10]](function(_0x33d4x1d){var _0x33d4x23= new _fd(_0x33d4x1d[_0x8d5c[17]],_0x33d4x1d[_0x8d5c[57]]);_0x33d4x23[_0x8d5c[66]](_0x8d5c[65],function(_0x33d4x8,_0x33d4x1f,_0x33d4x20){if(_0x33d4x8){return _0x33d4x22(_0x33d4x8)};_0x33d4x20=JSON[_0x8d5c[58]](_0x33d4x20);return _0x33d4x6[_0x8d5c[7]](200)[_0x8d5c[6]](_0x33d4x20);});})[_0x8d5c[36]](handleError(_0x33d4x6))};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/freshdesk/accounts              ->  index
+ * POST    /api/freshdesk/accounts              ->  create
+ * GET     /api/freshdesk/accounts/:id          ->  show
+ * PUT     /api/freshdesk/accounts/:id          ->  update
+ * DELETE  /api/freshdesk/accounts/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var util = require('util');
+var _fd = require('freshdesk');
+
+var FreshdeskAccount = require('../../models').FreshdeskAccount;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of FreshdeskAccounts
+exports.index = function(req, res) {
+  var attributes = ['description', 'name', 'username', 'remoteUri'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  FreshdeskAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+}
+
+// Gets a single FreshdeskAccount from the DB
+exports.show = function(req, res) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new FreshdeskAccount in the DB
+exports.create = function(req, res) {
+  FreshdeskAccount.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing FreshdeskAccount in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a FreshdeskAccount from the DB
+exports.destroy = function(req, res) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.bulkDestroy = function(req, res) {
+  FreshdeskAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.checkAccount = function(req, res) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var freshdesk = new _fd(account.remoteUri, account.apiKey);
+      freshdesk.listTickets(function(err, response, body) {
+        if (err) {
+          return res.sendStatus(400);
+        }
+        body = JSON.parse(body);
+        if (body.require_login) {
+          return res.sendStatus(400);
+        }
+        return res.sendStatus(200);
+      })
+    })
+    .catch(handleError(res));
+}
+
+exports.accountValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  FreshdeskAccount
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getFields = function(req, res, next) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var Freshdesk = new _fd(account.remoteUri, account.apiKey);
+      Freshdesk.get('/ticket_fields.json', function(err, response, body) {
+        if (err) {
+          return next(err);
+        }
+        body = JSON.parse(body);
+        return res.status(200).send(body);
+      });
+    })
+    .catch(handleError(res));
+};
index 894be80..2aabaae 100644 (file)
@@ -1 +1,24 @@
-var _0xe88a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe88a[0];var FreshdeskAccount=require(_0xe88a[2])[_0xe88a[1]];exports[_0xe88a[3]]=function(_0x9e93x2){FreshdeskAccount[_0xe88a[4]](function(_0x9e93x3){onSave(_0x9e93x2,_0x9e93x3)});FreshdeskAccount[_0xe88a[5]](function(_0x9e93x3){onRemove(_0x9e93x2,_0x9e93x3)});};function onSave(_0x9e93x2,_0x9e93x3,_0x9e93x5){_0x9e93x2[_0xe88a[7]](_0xe88a[6],_0x9e93x3)}function onRemove(_0x9e93x2,_0x9e93x3,_0x9e93x5){_0x9e93x2[_0xe88a[7]](_0xe88a[8],_0x9e93x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FreshdeskAccount = require('../../models').FreshdeskAccount;
+
+exports.register = function(socket) {
+  FreshdeskAccount.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  FreshdeskAccount.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('freshdesk_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('freshdesk_account:remove', doc);
+}
index 03bd2ea..a7385b7 100644 (file)
@@ -1 +1,21 @@
-var _0xcfe3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xcfe3[0];var express=require(_0xcfe3[1]);var auth=require(_0xcfe3[2]);var controller=require(_0xcfe3[3]);var router=express.Router();router[_0xcfe3[7]](_0xcfe3[4],auth[_0xcfe3[5]](),controller[_0xcfe3[6]]);router[_0xcfe3[7]](_0xcfe3[8],auth[_0xcfe3[5]](),controller[_0xcfe3[9]]);router[_0xcfe3[7]](_0xcfe3[10],auth[_0xcfe3[5]](),controller[_0xcfe3[11]]);router[_0xcfe3[7]](_0xcfe3[12],auth[_0xcfe3[5]](),controller[_0xcfe3[13]]);router[_0xcfe3[16]](_0xcfe3[14],auth[_0xcfe3[5]](),controller[_0xcfe3[15]]);router[_0xcfe3[16]](_0xcfe3[4],auth[_0xcfe3[5]](),controller[_0xcfe3[17]]);router[_0xcfe3[19]](_0xcfe3[8],auth[_0xcfe3[5]](),controller[_0xcfe3[18]]);router[_0xcfe3[20]](_0xcfe3[8],auth[_0xcfe3[5]](),controller[_0xcfe3[18]]);router[_0xcfe3[22]](_0xcfe3[4],auth[_0xcfe3[5]](),controller[_0xcfe3[21]]);router[_0xcfe3[22]](_0xcfe3[8],auth[_0xcfe3[5]](),controller[_0xcfe3[23]]);module[_0xcfe3[24]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./freshdesk_account.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
+router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
+router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index 01132df..6d7fc75 100644 (file)
@@ -1 +1,97 @@
-var _0x4e37=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x4e37[0];var proxyquire=require(_0x4e37[2])[_0x4e37[1]]();var freshdeskAccountCtrlStub={index:_0x4e37[3],show:_0x4e37[4],create:_0x4e37[5],update:_0x4e37[6],destroy:_0x4e37[7]};var routerStub={get:sinon[_0x4e37[8]](),put:sinon[_0x4e37[8]](),patch:sinon[_0x4e37[8]](),post:sinon[_0x4e37[8]](),delete:sinon[_0x4e37[8]]()};var freshdeskAccountIndex=proxyquire(_0x4e37[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":freshdeskAccountCtrlStub});describe(_0x4e37[10],function(){it(_0x4e37[11],function(){expect(freshdeskAccountIndex)[_0x4e37[13]][_0x4e37[12]](routerStub)});describe(_0x4e37[14],function(){it(_0x4e37[15],function(){expect(routerStub[_0x4e37[21]][_0x4e37[20]](_0x4e37[19],_0x4e37[3]))[_0x4e37[13]][_0x4e37[18]][_0x4e37[17]][_0x4e37[16]]})});describe(_0x4e37[22],function(){it(_0x4e37[23],function(){expect(routerStub[_0x4e37[21]][_0x4e37[20]](_0x4e37[24],_0x4e37[4]))[_0x4e37[13]][_0x4e37[18]][_0x4e37[17]][_0x4e37[16]]})});describe(_0x4e37[25],function(){it(_0x4e37[26],function(){expect(routerStub[_0x4e37[27]][_0x4e37[20]](_0x4e37[19],_0x4e37[5]))[_0x4e37[13]][_0x4e37[18]][_0x4e37[17]][_0x4e37[16]]})});describe(_0x4e37[28],function(){it(_0x4e37[29],function(){expect(routerStub[_0x4e37[30]][_0x4e37[20]](_0x4e37[24],_0x4e37[6]))[_0x4e37[13]][_0x4e37[18]][_0x4e37[17]][_0x4e37[16]]})});describe(_0x4e37[31],function(){it(_0x4e37[29],function(){expect(routerStub[_0x4e37[32]][_0x4e37[20]](_0x4e37[24],_0x4e37[6]))[_0x4e37[13]][_0x4e37[18]][_0x4e37[17]][_0x4e37[16]]})});describe(_0x4e37[33],function(){it(_0x4e37[34],function(){expect(routerStub[_0x4e37[35]][_0x4e37[20]](_0x4e37[24],_0x4e37[7]))[_0x4e37[13]][_0x4e37[18]][_0x4e37[17]][_0x4e37[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var freshdeskAccountCtrlStub = {
+  index: 'freshdeskAccountCtrl.index',
+  show: 'freshdeskAccountCtrl.show',
+  create: 'freshdeskAccountCtrl.create',
+  update: 'freshdeskAccountCtrl.update',
+  destroy: 'freshdeskAccountCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var freshdeskAccountIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './freshdesk_account.controller': freshdeskAccountCtrlStub
+});
+
+describe('FreshdeskAccount API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(freshdeskAccountIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/freshdesk/accounts', function() {
+
+    it('should route to freshdeskAccount.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'freshdeskAccountCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'freshdeskAccountCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/freshdesk/accounts', function() {
+
+    it('should route to freshdeskAccount.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'freshdeskAccountCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'freshdeskAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'freshdeskAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'freshdeskAccountCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index cd8e75b..4c3d44d 100644 (file)
@@ -1 +1,146 @@
-var _0x6f4c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0x6f4c[0];var _=require(_0x6f4c[1]);var FreshdeskConfiguration=require(_0x6f4c[3])[_0x6f4c[2]];var FreshdeskField=require(_0x6f4c[3])[_0x6f4c[4]];function handleError(_0xde6dx5,_0xde6dx6){_0xde6dx6=_0xde6dx6||500;return function(_0xde6dx7){_0xde6dx5[_0x6f4c[6]](_0xde6dx6)[_0x6f4c[5]](_0xde6dx7)};}function responseWithResult(_0xde6dx5,_0xde6dx6){_0xde6dx6=_0xde6dx6||200;return function(_0xde6dx9){if(_0xde6dx9){_0xde6dx5[_0x6f4c[6]](_0xde6dx6)[_0x6f4c[7]](_0xde6dx9)}};}function handleEntityNotFound(_0xde6dx5){return function(_0xde6dx9){if(!_0xde6dx9){_0xde6dx5[_0x6f4c[6]](404)[_0x6f4c[8]]();return null;};return _0xde6dx9;}}function saveUpdates(_0xde6dxc){return function(_0xde6dx9){return _0xde6dx9[_0x6f4c[10]](_0xde6dxc)[_0x6f4c[9]](function(_0xde6dxd){return _0xde6dxd})}}function removeEntity(_0xde6dx5){return function(_0xde6dx9){if(_0xde6dx9){return _0xde6dx9[_0x6f4c[11]]()[_0x6f4c[9]](function(){_0xde6dx5[_0x6f4c[6]](204)[_0x6f4c[8]]()})}}}exports[_0x6f4c[12]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[15]]({where:_0xde6dxf[_0x6f4c[14]]})[_0x6f4c[9]](responseWithResult(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[16]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[22]]({where:{id:_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]]},include:[{model:FreshdeskField,as:_0x6f4c[19]},{model:FreshdeskField,as:_0x6f4c[20]},{model:FreshdeskField,as:_0x6f4c[21]}]})[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](responseWithResult(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[23]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[23]](_0xde6dxf[_0x6f4c[24]])[_0x6f4c[9]](responseWithResult(_0xde6dx5,201))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[25]]=function(_0xde6dxf,_0xde6dx5){if(_0xde6dxf[_0x6f4c[24]][_0x6f4c[17]]){delete _0xde6dxf[_0x6f4c[24]][_0x6f4c[17]]};FreshdeskConfiguration[_0x6f4c[26]](_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]])[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](saveUpdates(_0xde6dxf[_0x6f4c[24]]))[_0x6f4c[9]](responseWithResult(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5));};exports[_0x6f4c[11]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[26]](_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]])[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](removeEntity(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[27]]=function(_0xde6dxf,_0xde6dx5,_0xde6dx10){var _0xde6dx11;FreshdeskConfiguration[_0x6f4c[26]](_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]])[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](function(_0xde6dx14){_0xde6dx11=_0xde6dx14;return FreshdeskField[_0x6f4c[23]](_0xde6dxf[_0x6f4c[24]]);})[_0x6f4c[9]](function(_0xde6dx13){switch(_0xde6dxf[_0x6f4c[18]][_0x6f4c[35]]){case _0x6f4c[30]:return [_0xde6dx11[_0x6f4c[29]](_0xde6dx13),_0xde6dx13];;case _0x6f4c[32]:return [_0xde6dx11[_0x6f4c[31]](_0xde6dx13),_0xde6dx13];;case _0x6f4c[34]:return [_0xde6dx11[_0x6f4c[33]](_0xde6dx13),_0xde6dx13];;}})[_0x6f4c[28]](function(_0xde6dx12,_0xde6dx13){return _0xde6dx5[_0x6f4c[6]](201)[_0x6f4c[7]](_0xde6dx13)})[_0x6f4c[13]](handleError(_0xde6dx5));};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/freshdesk/configurations              ->  index
+ * POST    /api/freshdesk/configurations              ->  create
+ * GET     /api/freshdesk/configurations/:id          ->  show
+ * PUT     /api/freshdesk/configurations/:id          ->  update
+ * DELETE  /api/freshdesk/configurations/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var FreshdeskConfiguration = require('../../models').FreshdeskConfiguration;
+var FreshdeskField = require('../../models').FreshdeskField;
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of FreshdeskConfigurations
+exports.index = function(req, res) {
+  FreshdeskConfiguration.findAll({
+      where: req.query
+    })
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single FreshdeskConfiguration from the DB
+exports.show = function(req, res) {
+  FreshdeskConfiguration.find({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: FreshdeskField,
+        as: 'Subject'
+      }, {
+        model: FreshdeskField,
+        as: 'Description'
+      }, {
+        model: FreshdeskField,
+        as: 'Field'
+      }]
+    })
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new FreshdeskConfiguration in the DB
+exports.create = function(req, res) {
+  FreshdeskConfiguration.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing FreshdeskConfiguration in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FreshdeskConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a FreshdeskConfiguration from the DB
+exports.destroy = function(req, res) {
+  FreshdeskConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.addConfigurationField = function(req, res, next) {
+  // console.log(req.params);
+  var freshdeskConfiguration;
+  FreshdeskConfiguration
+    .findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(salesforce_configuration) {
+      freshdeskConfiguration = salesforce_configuration;
+      return FreshdeskField.create(req.body)
+    })
+    .then(function(freshdeskField) {
+      switch (req.params.type) {
+        case 'subject':
+          return [freshdeskConfiguration.addSubject(freshdeskField), freshdeskField];
+        case 'description':
+          return [freshdeskConfiguration.addDescription(freshdeskField), freshdeskField];
+        case 'field':
+          return [freshdeskConfiguration.addField(freshdeskField), freshdeskField];
+      }
+    })
+    .spread(function(data, freshdeskField) {
+      return res.status(201).json(freshdeskField);
+    })
+    .catch(handleError(res));
+};
index 3db380a..4ce7f30 100644 (file)
@@ -1 +1,24 @@
-var _0x1ffd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x1ffd[0];var FreshdeskConfiguration=require(_0x1ffd[2])[_0x1ffd[1]];exports[_0x1ffd[3]]=function(_0xa550x2){FreshdeskConfiguration[_0x1ffd[4]](function(_0xa550x3){onSave(_0xa550x2,_0xa550x3)});FreshdeskConfiguration[_0x1ffd[5]](function(_0xa550x3){onRemove(_0xa550x2,_0xa550x3)});};function onSave(_0xa550x2,_0xa550x3,_0xa550x5){_0xa550x2[_0x1ffd[7]](_0x1ffd[6],_0xa550x3)}function onRemove(_0xa550x2,_0xa550x3,_0xa550x5){_0xa550x2[_0x1ffd[7]](_0x1ffd[8],_0xa550x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FreshdeskConfiguration = require('../../models').FreshdeskConfiguration;
+
+exports.register = function(socket) {
+  FreshdeskConfiguration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  FreshdeskConfiguration.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('freshdesk_configuration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('freshdesk_configuration:remove', doc);
+}
index 213ac6e..e08945f 100644 (file)
@@ -1 +1,19 @@
-var _0x78db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x78db[0];var express=require(_0x78db[1]);var auth=require(_0x78db[2]);var controller=require(_0x78db[3]);var router=express.Router();router[_0x78db[7]](_0x78db[4],auth[_0x78db[5]](),controller[_0x78db[6]]);router[_0x78db[7]](_0x78db[8],auth[_0x78db[5]](),controller[_0x78db[9]]);router[_0x78db[11]](_0x78db[4],auth[_0x78db[5]](),controller[_0x78db[10]]);router[_0x78db[13]](_0x78db[8],auth[_0x78db[5]](),controller[_0x78db[12]]);router[_0x78db[11]](_0x78db[14],auth[_0x78db[5]](),controller[_0x78db[15]]);router[_0x78db[16]](_0x78db[8],auth[_0x78db[5]](),controller[_0x78db[12]]);router[_0x78db[18]](_0x78db[8],auth[_0x78db[5]](),controller[_0x78db[17]]);module[_0x78db[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./freshdesk_configuration.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index e96d154..b297c23 100644 (file)
@@ -1 +1,97 @@
-var _0x9261=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x9261[0];var proxyquire=require(_0x9261[2])[_0x9261[1]]();var freshdeskConfigurationCtrlStub={index:_0x9261[3],show:_0x9261[4],create:_0x9261[5],update:_0x9261[6],destroy:_0x9261[7]};var routerStub={get:sinon[_0x9261[8]](),put:sinon[_0x9261[8]](),patch:sinon[_0x9261[8]](),post:sinon[_0x9261[8]](),delete:sinon[_0x9261[8]]()};var freshdeskConfigurationIndex=proxyquire(_0x9261[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":freshdeskConfigurationCtrlStub});describe(_0x9261[10],function(){it(_0x9261[11],function(){expect(freshdeskConfigurationIndex)[_0x9261[13]][_0x9261[12]](routerStub)});describe(_0x9261[14],function(){it(_0x9261[15],function(){expect(routerStub[_0x9261[21]][_0x9261[20]](_0x9261[19],_0x9261[3]))[_0x9261[13]][_0x9261[18]][_0x9261[17]][_0x9261[16]]})});describe(_0x9261[22],function(){it(_0x9261[23],function(){expect(routerStub[_0x9261[21]][_0x9261[20]](_0x9261[24],_0x9261[4]))[_0x9261[13]][_0x9261[18]][_0x9261[17]][_0x9261[16]]})});describe(_0x9261[25],function(){it(_0x9261[26],function(){expect(routerStub[_0x9261[27]][_0x9261[20]](_0x9261[19],_0x9261[5]))[_0x9261[13]][_0x9261[18]][_0x9261[17]][_0x9261[16]]})});describe(_0x9261[28],function(){it(_0x9261[29],function(){expect(routerStub[_0x9261[30]][_0x9261[20]](_0x9261[24],_0x9261[6]))[_0x9261[13]][_0x9261[18]][_0x9261[17]][_0x9261[16]]})});describe(_0x9261[31],function(){it(_0x9261[29],function(){expect(routerStub[_0x9261[32]][_0x9261[20]](_0x9261[24],_0x9261[6]))[_0x9261[13]][_0x9261[18]][_0x9261[17]][_0x9261[16]]})});describe(_0x9261[33],function(){it(_0x9261[34],function(){expect(routerStub[_0x9261[35]][_0x9261[20]](_0x9261[24],_0x9261[7]))[_0x9261[13]][_0x9261[18]][_0x9261[17]][_0x9261[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var freshdeskConfigurationCtrlStub = {
+  index: 'freshdeskConfigurationCtrl.index',
+  show: 'freshdeskConfigurationCtrl.show',
+  create: 'freshdeskConfigurationCtrl.create',
+  update: 'freshdeskConfigurationCtrl.update',
+  destroy: 'freshdeskConfigurationCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var freshdeskConfigurationIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './freshdesk_configuration.controller': freshdeskConfigurationCtrlStub
+});
+
+describe('FreshdeskConfiguration API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(freshdeskConfigurationIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/freshdesk/configurations', function() {
+
+    it('should route to freshdeskConfiguration.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'freshdeskConfigurationCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/freshdesk/configurations', function() {
+
+    it('should route to freshdeskConfiguration.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'freshdeskConfigurationCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index a93707d..4a35db8 100644 (file)
@@ -1 +1,104 @@
-var _0xe314=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0xe314[0];var _=require(_0xe314[1]);var FreshdeskField=require(_0xe314[3])[_0xe314[2]];function handleError(_0xf5fbx4,_0xf5fbx5){_0xf5fbx5=_0xf5fbx5||500;return function(_0xf5fbx6){_0xf5fbx4[_0xe314[5]](_0xf5fbx5)[_0xe314[4]](_0xf5fbx6)};}function responseWithResult(_0xf5fbx4,_0xf5fbx5){_0xf5fbx5=_0xf5fbx5||200;return function(_0xf5fbx8){if(_0xf5fbx8){_0xf5fbx4[_0xe314[5]](_0xf5fbx5)[_0xe314[6]](_0xf5fbx8)}};}function handleEntityNotFound(_0xf5fbx4){return function(_0xf5fbx8){if(!_0xf5fbx8){_0xf5fbx4[_0xe314[5]](404)[_0xe314[7]]();return null;};return _0xf5fbx8;}}function saveUpdates(_0xf5fbxb){return function(_0xf5fbx8){return _0xf5fbx8[_0xe314[9]](_0xf5fbxb)[_0xe314[8]](function(_0xf5fbxc){return _0xf5fbxc})}}function removeEntity(_0xf5fbx4){return function(_0xf5fbx8){if(_0xf5fbx8){return _0xf5fbx8[_0xe314[10]]()[_0xe314[8]](function(){_0xf5fbx4[_0xe314[5]](204)[_0xe314[7]]()})}}}exports[_0xe314[11]]=function(_0xf5fbxe,_0xf5fbx4){FreshdeskField[_0xe314[13]]()[_0xe314[8]](responseWithResult(_0xf5fbx4))[_0xe314[12]](handleError(_0xf5fbx4))};exports[_0xe314[14]]=function(_0xf5fbxe,_0xf5fbx4){FreshdeskField[_0xe314[17]](_0xf5fbxe[_0xe314[16]][_0xe314[15]])[_0xe314[8]](handleEntityNotFound(_0xf5fbx4))[_0xe314[8]](responseWithResult(_0xf5fbx4))[_0xe314[12]](handleError(_0xf5fbx4))};exports[_0xe314[18]]=function(_0xf5fbxe,_0xf5fbx4){FreshdeskField[_0xe314[18]](_0xf5fbxe[_0xe314[19]])[_0xe314[8]](responseWithResult(_0xf5fbx4,201))[_0xe314[12]](handleError(_0xf5fbx4))};exports[_0xe314[20]]=function(_0xf5fbxe,_0xf5fbx4){if(_0xf5fbxe[_0xe314[19]][_0xe314[15]]){delete _0xf5fbxe[_0xe314[19]][_0xe314[15]]};FreshdeskField[_0xe314[17]](_0xf5fbxe[_0xe314[16]][_0xe314[15]])[_0xe314[8]](handleEntityNotFound(_0xf5fbx4))[_0xe314[8]](saveUpdates(_0xf5fbxe[_0xe314[19]]))[_0xe314[8]](responseWithResult(_0xf5fbx4))[_0xe314[12]](handleError(_0xf5fbx4));};exports[_0xe314[10]]=function(_0xf5fbxe,_0xf5fbx4){FreshdeskField[_0xe314[17]](_0xf5fbxe[_0xe314[16]][_0xe314[15]])[_0xe314[8]](handleEntityNotFound(_0xf5fbx4))[_0xe314[8]](removeEntity(_0xf5fbx4))[_0xe314[12]](handleError(_0xf5fbx4))};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/freshdesk/fields              ->  index
+ * POST    /api/freshdesk/fields              ->  create
+ * GET     /api/freshdesk/fields/:id          ->  show
+ * PUT     /api/freshdesk/fields/:id          ->  update
+ * DELETE  /api/freshdesk/fields/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var FreshdeskField = require('../../models').FreshdeskField;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of FreshdeskFields
+exports.index = function(req, res) {
+  FreshdeskField.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single FreshdeskField from the DB
+exports.show = function(req, res) {
+  FreshdeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new FreshdeskField in the DB
+exports.create = function(req, res) {
+  FreshdeskField.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing FreshdeskField in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FreshdeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a FreshdeskField from the DB
+exports.destroy = function(req, res) {
+  FreshdeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
index d2fe796..b351442 100644 (file)
@@ -1 +1,24 @@
-var _0x2dbd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x2dbd[0];var FreshdeskField=require(_0x2dbd[2])[_0x2dbd[1]];exports[_0x2dbd[3]]=function(_0xc879x2){FreshdeskField[_0x2dbd[4]](function(_0xc879x3){onSave(_0xc879x2,_0xc879x3)});FreshdeskField[_0x2dbd[5]](function(_0xc879x3){onRemove(_0xc879x2,_0xc879x3)});};function onSave(_0xc879x2,_0xc879x3,_0xc879x5){_0xc879x2[_0x2dbd[7]](_0x2dbd[6],_0xc879x3)}function onRemove(_0xc879x2,_0xc879x3,_0xc879x5){_0xc879x2[_0x2dbd[7]](_0x2dbd[8],_0xc879x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FreshdeskField = require('../../models').FreshdeskField;
+
+exports.register = function(socket) {
+  FreshdeskField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  FreshdeskField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('freshdesk_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('freshdesk_field:remove', doc);
+}
index 237978b..d17268f 100644 (file)
@@ -1 +1,18 @@
-var _0x4e5b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4e5b[0];var express=require(_0x4e5b[1]);var auth=require(_0x4e5b[2]);var controller=require(_0x4e5b[3]);var router=express.Router();router[_0x4e5b[7]](_0x4e5b[4],auth[_0x4e5b[5]](),controller[_0x4e5b[6]]);router[_0x4e5b[7]](_0x4e5b[8],auth[_0x4e5b[5]](),controller[_0x4e5b[9]]);router[_0x4e5b[11]](_0x4e5b[4],auth[_0x4e5b[5]](),controller[_0x4e5b[10]]);router[_0x4e5b[13]](_0x4e5b[8],auth[_0x4e5b[5]](),controller[_0x4e5b[12]]);router[_0x4e5b[14]](_0x4e5b[8],auth[_0x4e5b[5]](),controller[_0x4e5b[12]]);router[_0x4e5b[16]](_0x4e5b[8],auth[_0x4e5b[5]](),controller[_0x4e5b[15]]);module[_0x4e5b[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./freshdesk_field.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index f4b68f4..b5c0fb8 100644 (file)
@@ -1 +1,97 @@
-var _0x2ecf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x2ecf[0];var proxyquire=require(_0x2ecf[2])[_0x2ecf[1]]();var freshdeskFieldCtrlStub={index:_0x2ecf[3],show:_0x2ecf[4],create:_0x2ecf[5],update:_0x2ecf[6],destroy:_0x2ecf[7]};var routerStub={get:sinon[_0x2ecf[8]](),put:sinon[_0x2ecf[8]](),patch:sinon[_0x2ecf[8]](),post:sinon[_0x2ecf[8]](),delete:sinon[_0x2ecf[8]]()};var freshdeskFieldIndex=proxyquire(_0x2ecf[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":freshdeskFieldCtrlStub});describe(_0x2ecf[10],function(){it(_0x2ecf[11],function(){expect(freshdeskFieldIndex)[_0x2ecf[13]][_0x2ecf[12]](routerStub)});describe(_0x2ecf[14],function(){it(_0x2ecf[15],function(){expect(routerStub[_0x2ecf[21]][_0x2ecf[20]](_0x2ecf[19],_0x2ecf[3]))[_0x2ecf[13]][_0x2ecf[18]][_0x2ecf[17]][_0x2ecf[16]]})});describe(_0x2ecf[22],function(){it(_0x2ecf[23],function(){expect(routerStub[_0x2ecf[21]][_0x2ecf[20]](_0x2ecf[24],_0x2ecf[4]))[_0x2ecf[13]][_0x2ecf[18]][_0x2ecf[17]][_0x2ecf[16]]})});describe(_0x2ecf[25],function(){it(_0x2ecf[26],function(){expect(routerStub[_0x2ecf[27]][_0x2ecf[20]](_0x2ecf[19],_0x2ecf[5]))[_0x2ecf[13]][_0x2ecf[18]][_0x2ecf[17]][_0x2ecf[16]]})});describe(_0x2ecf[28],function(){it(_0x2ecf[29],function(){expect(routerStub[_0x2ecf[30]][_0x2ecf[20]](_0x2ecf[24],_0x2ecf[6]))[_0x2ecf[13]][_0x2ecf[18]][_0x2ecf[17]][_0x2ecf[16]]})});describe(_0x2ecf[31],function(){it(_0x2ecf[29],function(){expect(routerStub[_0x2ecf[32]][_0x2ecf[20]](_0x2ecf[24],_0x2ecf[6]))[_0x2ecf[13]][_0x2ecf[18]][_0x2ecf[17]][_0x2ecf[16]]})});describe(_0x2ecf[33],function(){it(_0x2ecf[34],function(){expect(routerStub[_0x2ecf[35]][_0x2ecf[20]](_0x2ecf[24],_0x2ecf[7]))[_0x2ecf[13]][_0x2ecf[18]][_0x2ecf[17]][_0x2ecf[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var freshdeskFieldCtrlStub = {
+  index: 'freshdeskFieldCtrl.index',
+  show: 'freshdeskFieldCtrl.show',
+  create: 'freshdeskFieldCtrl.create',
+  update: 'freshdeskFieldCtrl.update',
+  destroy: 'freshdeskFieldCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var freshdeskFieldIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './freshdesk_field.controller': freshdeskFieldCtrlStub
+});
+
+describe('FreshdeskField API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(freshdeskFieldIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/freshdesk/fields', function() {
+
+    it('should route to freshdeskField.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'freshdeskFieldCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'freshdeskFieldCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/freshdesk/fields', function() {
+
+    it('should route to freshdeskField.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'freshdeskFieldCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'freshdeskFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'freshdeskFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'freshdeskFieldCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 85b4d03..5789126 100644 (file)
@@ -1 +1,15 @@
-var _0x6c99=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6c99[0];var express=require(_0x6c99[1]);var controller=require(_0x6c99[2]);var router=express.Router();router[_0x6c99[5]](_0x6c99[3],controller[_0x6c99[4]]);router[_0x6c99[5]](_0x6c99[6],controller[_0x6c99[7]]);router[_0x6c99[9]](_0x6c99[3],controller[_0x6c99[8]]);router[_0x6c99[11]](_0x6c99[6],controller[_0x6c99[10]]);router[_0x6c99[12]](_0x6c99[6],controller[_0x6c99[10]]);router[_0x6c99[14]](_0x6c99[6],controller[_0x6c99[13]]);module[_0x6c99[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./integration.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 9bbb990..fac2b89 100644 (file)
@@ -1 +1,179 @@
-var _0x1cbc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x61\x74\x68","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x61\x64\x6D\x2D\x7A\x69\x70","\x73\x74\x72\x69\x6E\x67\x2D\x74\x6F\x2D\x6A\x73\x6F\x6E","\x66\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x6A\x6F\x69\x6E","\x4D\x61\x78\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x66\x69\x6C\x65\x73\x20\x75\x70\x6C\x6F\x61\x64\x20\x65\x78\x63\x65\x65\x64\x65\x64","\x4F\x6E\x6C\x79\x20\x7A\x69\x70\x20\x66\x6F\x72\x6D\x61\x74\x20\x61\x63\x63\x65\x70\x74\x65\x64","\x54\x68\x65\x20\x6D\x61\x78\x69\x6D\x75\x6D\x20\x66\x69\x6C\x65\x20\x73\x69\x7A\x65\x20\x69\x73\x20\x35\x20\x4D\x62","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x64","\x66\x69\x6C\x65","\x67\x65\x74\x45\x6E\x74\x72\x69\x65\x73","\x6E\x61\x6D\x65","\x6D\x61\x6E\x69\x66\x65\x73\x74\x2E\x6A\x73\x6F\x6E","\x75\x74\x66\x38","\x67\x65\x74\x44\x61\x74\x61","\x75\x70\x6C\x6F\x61\x64\x5A\x69\x70","\x6C\x6F\x67","\x70\x61\x72\x73\x65","\x65\x78\x74\x72\x61\x63\x74\x41\x6C\x6C\x54\x6F","\x6D\x65\x72\x67\x65","\x6A\x73\x6F\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x6D\x61\x6E\x69\x66\x65\x73\x74","\x6D\x61\x6E\x69\x66\x65\x73\x74\x2E\x6A\x73\x6F\x6E\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6F\x6E","\x65\x72\x72\x6F\x72","\x75\x70\x6C\x6F\x61\x64","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x1cbc[0];var _=require(_0x1cbc[1]);var uploadFile=require(_0x1cbc[2]);var config=require(_0x1cbc[3]);var path=require(_0x1cbc[4]);var sr=require(_0x1cbc[5]);var admZip=require(_0x1cbc[6]);var str2json=require(_0x1cbc[7]);var fs=require(_0x1cbc[8]);var Integration=require(_0x1cbc[10])[_0x1cbc[9]];exports[_0x1cbc[11]]=function(_0x75c0xa,_0x75c0xb){Integration[_0x1cbc[17]]({where:_0x75c0xa[_0x1cbc[16]]})[_0x1cbc[15]](function(_0x75c0xd){return _0x75c0xb[_0x1cbc[14]](200)[_0x1cbc[13]](_0x75c0xd)})[_0x1cbc[12]](function(_0x75c0xc){return handleError(_0x75c0xb,_0x75c0xc)})};exports[_0x1cbc[18]]=function(_0x75c0xa,_0x75c0xb){Integration[_0x1cbc[22]](_0x75c0xa[_0x1cbc[21]][_0x1cbc[20]])[_0x1cbc[15]](function(_0x75c0xe){if(!_0x75c0xe){return _0x75c0xb[_0x1cbc[19]](404)};return _0x75c0xb[_0x1cbc[13]](_0x75c0xe);})[_0x1cbc[12]](function(_0x75c0xc){return handleError(_0x75c0xb,_0x75c0xc)})};exports[_0x1cbc[23]]=function(_0x75c0xa,_0x75c0xb){var _0x75c0xf= new uploadFile({dest:path[_0x1cbc[26]](config[_0x1cbc[24]],_0x1cbc[25]),maxFileSize:5*1000000,maxNumberOfFiles:1,minNumberOfFiles:1,acceptFileTypes:/(\.|\/)(zip)$/i,messages:{maxNumberOfFiles:_0x1cbc[27],acceptFileTypes:_0x1cbc[28],maxFileSize:_0x1cbc[29],invalidRequest:_0x1cbc[30]}});_0x75c0xf[_0x1cbc[48]](_0x1cbc[31],function(_0x75c0x10,_0x75c0x11){var _0x75c0x12= new admZip(_0x75c0x11[_0x1cbc[32]][_0x1cbc[4]]);var _0x75c0x13=false;var _0x75c0x14=_0x75c0x12[_0x1cbc[33]]();_0x75c0x14[_0x1cbc[44]](function(_0x75c0x15){if(_0x75c0x15[_0x1cbc[34]]===_0x1cbc[35]){var _0x75c0x16=_0x75c0x15[_0x1cbc[37]]().toString(_0x1cbc[36]);console[_0x1cbc[39]](_0x1cbc[38],_0x75c0x16);try{_0x75c0x13=JSON[_0x1cbc[40]](_0x75c0x16);console[_0x1cbc[39]](_0x1cbc[38],_0x75c0x13);Integration[_0x1cbc[23]](_[_0x1cbc[42]](_0x75c0x11[_0x1cbc[32]],_0x75c0x13))[_0x1cbc[15]](function(_0x75c0xe){_0x75c0x12[_0x1cbc[41]](path[_0x1cbc[26]](config[_0x1cbc[24]],_0x1cbc[25]),true);return _0x75c0xb[_0x1cbc[14]](201)[_0x1cbc[13]](_0x75c0xe);})[_0x1cbc[12]](function(_0x75c0xc){return handleError(_0x75c0xb,_0x75c0xc)});}catch(e){console[_0x1cbc[39]](e);var _0x75c0xc={errors:[{type:_0x1cbc[43],message:e}]};return handleError(_0x75c0xb,_0x75c0xc);};}});fs[_0x1cbc[45]](_0x75c0x11[_0x1cbc[32]][_0x1cbc[4]]);if(!_0x75c0x13){var _0x75c0xc={errors:[{type:_0x1cbc[46],message:_0x1cbc[47]}]};return handleError(_0x75c0xb,_0x75c0xc);};});_0x75c0xf[_0x1cbc[48]](_0x1cbc[49],function(_0x75c0x17){var _0x75c0xc={errors:[{type:_0x1cbc[50],message:_0x75c0x17}]};return handleError(_0x75c0xb,_0x75c0xc);});_0x75c0xf[_0x1cbc[40]](_0x75c0xa);};exports[_0x1cbc[51]]=function(_0x75c0xa,_0x75c0xb){if(_0x75c0xa[_0x1cbc[52]][_0x1cbc[20]]){delete _0x75c0xa[_0x1cbc[52]][_0x1cbc[20]]};Integration[_0x1cbc[54]]({where:{id:_0x75c0xa[_0x1cbc[21]][_0x1cbc[20]]}})[_0x1cbc[15]](function(_0x75c0xe){if(!_0x75c0xe){return _0x75c0xb[_0x1cbc[19]](404)};var _0x75c0x18=_[_0x1cbc[42]](_0x75c0xe,_0x75c0xa[_0x1cbc[52]]);_0x75c0x18[_0x1cbc[53]]()[_0x1cbc[15]](function(){return _0x75c0xb[_0x1cbc[14]](200)[_0x1cbc[13]](_0x75c0xe)})[_0x1cbc[12]](function(_0x75c0xc){return handleError(_0x75c0xb,_0x75c0xc)});})[_0x1cbc[12]](function(_0x75c0xc){return handleError(_0x75c0xb,_0x75c0xc)});};exports[_0x1cbc[55]]=function(_0x75c0xa,_0x75c0xb){Integration[_0x1cbc[54]]({where:{id:_0x75c0xa[_0x1cbc[21]][_0x1cbc[20]]}})[_0x1cbc[15]](function(_0x75c0xe){if(!_0x75c0xe){return _0x75c0xb[_0x1cbc[19]](404)};_0x75c0xe[_0x1cbc[55]]()[_0x1cbc[15]](function(){return _0x75c0xb[_0x1cbc[19]](204)})[_0x1cbc[12]](function(_0x75c0xc){return handleError(_0x75c0xb,_0x75c0xc)});})[_0x1cbc[12]](function(_0x75c0xc){return handleError(_0x75c0xb,_0x75c0xc)})};function handleError(_0x75c0xb,_0x75c0xc){return _0x75c0xb[_0x1cbc[14]](500)[_0x1cbc[13]](_0x75c0xc)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var uploadFile = require('upload-file');
+var config = require('../../config/environment');
+var path = require('path');
+var sr = require('simple-random');
+var admZip = require('adm-zip');
+var str2json = require('string-to-json');
+var fs = require('fs');
+
+var Integration = require('../../models').Integration;
+
+// Get list of integrations
+exports.index = function(req, res) {
+  Integration
+    .findAll({
+      where: req.query
+    })
+    .then(function(integrations) {
+      return res.status(200).send(integrations);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single integration
+exports.show = function(req, res) {
+  Integration
+    .findById(req.params.id)
+    .then(function(integration) {
+      if (!integration) {
+        return res.sendStatus(404);
+      }
+      return res.send(integration);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new integration in the DB.
+exports.create = function(req, res) {
+  var upload = new uploadFile({
+    dest: path.join(config.root, 'server/files/integrations'),
+    maxFileSize: 5 * 1000000,
+    maxNumberOfFiles: 1,
+    minNumberOfFiles: 1,
+    acceptFileTypes: /(\.|\/)(zip)$/i,
+    messages: {
+      maxNumberOfFiles: "Max number of files upload exceeded",
+      acceptFileTypes: "Only zip format accepted",
+      maxFileSize: "The maximum file size is 5 Mb",
+      invalidRequest: "Invalid request"
+    }
+  });
+
+  upload.on('end', function(fields, files) {
+    var zip = new admZip(files.file.path);
+
+    var manifest = false;
+    var zipEntries = zip.getEntries();
+    zipEntries.forEach(function(zipEntry) {
+      if (zipEntry.name === 'manifest.json') {
+        var str = zipEntry.getData().toString('utf8');
+        console.log('uploadZip', str);
+        try {
+          manifest = JSON.parse(str);
+          console.log('uploadZip', manifest);
+          Integration
+            .create(_.merge(files.file, manifest))
+            .then(function(integration) {
+
+              // Extract All Zip and overwrite old directory
+              zip.extractAllTo(path.join(config.root,
+                'server/files/integrations'), true);
+
+              return res.status(201).send(integration);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        } catch (e) {
+          console.log(e);
+          var err = {
+            errors: [{
+              type: 'json',
+              message: e
+            }]
+          };
+          return handleError(res, err);
+        }
+      }
+    });
+
+    fs.unlinkSync(files.file.path);
+
+    if (!manifest) {
+      var err = {
+        errors: [{
+          type: 'manifest',
+          message: 'manifest.json not found'
+        }]
+      };
+      return handleError(res, err);
+    }
+  });
+
+  upload.on('error', function(e) {
+    var err = {
+      errors: [{
+        type: 'upload',
+        message: e
+      }]
+    };
+    return handleError(res, err);
+  });
+
+  upload.parse(req);
+};
+
+// Updates an existing integration in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Integration
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(integration) {
+      if (!integration) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(integration, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(integration);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a integration from the DB.
+exports.destroy = function(req, res) {
+  Integration
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(integration) {
+      if (!integration) {
+        return res.sendStatus(404);
+      }
+      integration.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index eb531f6..a79af43 100644 (file)
@@ -1 +1,27 @@
-var _0xb72c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb72c[0];var Integration=require(_0xb72c[2])[_0xb72c[1]];exports[_0xb72c[3]]=function(_0xd5d9x2){Integration[_0xb72c[4]](function(_0xd5d9x3){onSave(_0xd5d9x2,_0xd5d9x3)});Integration[_0xb72c[5]](function(_0xd5d9x3){onSave(_0xd5d9x2,_0xd5d9x3)});Integration[_0xb72c[6]](function(_0xd5d9x3){onRemove(_0xd5d9x2,_0xd5d9x3)});};function onSave(_0xd5d9x2,_0xd5d9x3,_0xd5d9x5){_0xd5d9x2[_0xb72c[8]](_0xb72c[7],_0xd5d9x3)}function onRemove(_0xd5d9x2,_0xd5d9x3,_0xd5d9x5){_0xd5d9x2[_0xb72c[8]](_0xb72c[9],_0xd5d9x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Integration = require('../../models').Integration;
+
+exports.register = function(socket) {
+  Integration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Integration.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  Integration.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('integration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('integration:remove', doc);
+}
index 81b92c5..0d4146d 100644 (file)
@@ -1 +1,20 @@
-var _0xe9bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0xe9bd[0];var should=require(_0xe9bd[1]);var app=require(_0xe9bd[2]);var request=require(_0xe9bd[3]);describe(_0xe9bd[4],function(){it(_0xe9bd[5],function(_0x6b56x4){request(app)[_0xe9bd[13]](_0xe9bd[12])[_0xe9bd[11]](200)[_0xe9bd[11]](_0xe9bd[10],/json/)[_0xe9bd[9]](function(_0x6b56x5,_0x6b56x6){if(_0x6b56x5){return _0x6b56x4(_0x6b56x5)};_0x6b56x6[_0xe9bd[8]][_0xe9bd[1]][_0xe9bd[7]][_0xe9bd[6]](Array);_0x6b56x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/integrations', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/integrations')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 903ff22..2b5572a 100644 (file)
@@ -1 +1,18 @@
-var _0x8ca3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x6C\x6C","\x67\x65\x74\x41\x6C\x6C","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x8ca3[0];var express=require(_0x8ca3[1]);var controller=require(_0x8ca3[2]);var auth=require(_0x8ca3[3]);var router=express.Router();router[_0x8ca3[7]](_0x8ca3[4],auth[_0x8ca3[5]](),controller[_0x8ca3[6]]);router[_0x8ca3[7]](_0x8ca3[8],auth[_0x8ca3[5]](),controller[_0x8ca3[9]]);router[_0x8ca3[7]](_0x8ca3[10],auth[_0x8ca3[5]](),controller[_0x8ca3[11]]);router[_0x8ca3[13]](_0x8ca3[4],auth[_0x8ca3[5]](),controller[_0x8ca3[12]]);router[_0x8ca3[13]](_0x8ca3[14],auth[_0x8ca3[5]](),controller[_0x8ca3[15]]);router[_0x8ca3[17]](_0x8ca3[10],auth[_0x8ca3[5]](),controller[_0x8ca3[16]]);router[_0x8ca3[19]](_0x8ca3[4],auth[_0x8ca3[5]](),controller[_0x8ca3[18]]);router[_0x8ca3[19]](_0x8ca3[10],auth[_0x8ca3[5]](),controller[_0x8ca3[20]]);module[_0x8ca3[21]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./interval.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/all', auth.isAuthenticated(), controller.getAll);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.intervalValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 40b4125..e0d975e 100644 (file)
@@ -1 +1,324 @@
-var _0x1920=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x67\x65\x74\x41\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65","\x46\x69\x6E\x64\x69\x6E\x67\x20\x61\x70\x70\x20\x72\x6F\x77\x2E\x2E\x2E\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x53\x55\x42\x49\x4E\x54\x45\x52\x56\x41\x4C","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x49\x4E\x54\x45\x52\x56\x41\x4C","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x52\x4F\x55\x54\x45\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x67\x65\x74\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73"];_0x1920[0];var _=require(_0x1920[1]);var Interval=require(_0x1920[3])[_0x1920[2]];var VoiceExtension=require(_0x1920[3])[_0x1920[4]];var sequelize=require(_0x1920[3])[_0x1920[5]];var util=require(_0x1920[6]);exports[_0x1920[7]]=function(_0x7aa1x6,_0x7aa1x7){var _0x7aa1x8=[_0x1920[8]];var _0x7aa1x9=_0x7aa1x6[_0x1920[10]][_0x1920[9]]?parseInt(_0x7aa1x6[_0x1920[10]][_0x1920[9]],10):100;var _0x7aa1xa=_0x7aa1x6[_0x1920[10]][_0x1920[11]]?parseInt(_0x7aa1x6[_0x1920[10]][_0x1920[11]],10):0;var _0x7aa1xb={where:{IntervalId:null},limit:_0x7aa1x9,offset:_0x7aa1xa*_0x7aa1x9};_[_0x1920[25]](_0x7aa1x6[_0x1920[10]],function(_0x7aa1xc,_0x7aa1xd){switch(_0x7aa1xd){case _0x1920[9]:;case _0x1920[11]:break ;;case _0x1920[14]:_0x7aa1xb[_0x1920[12]]=util[_0x1920[17]](_0x1920[13],_0x7aa1x6[_0x1920[10]][_0x1920[14]],_0x7aa1x6[_0x1920[10]][_0x1920[15]]||_0x1920[16])||null;break ;;case _0x1920[15]:break ;;case _0x1920[23]:_0x7aa1xb[_0x1920[19]][_0x1920[18]]=[];_0x7aa1x8[_0x1920[22]](function(_0x7aa1xe){var _0x7aa1xf={};_0x7aa1xf[_0x7aa1xe]={$like:_0x1920[20]+_0x7aa1xc+_0x1920[20]};_0x7aa1xb[_0x1920[19]][_0x1920[18]][_0x1920[21]](_0x7aa1xf);});break ;;default:_0x7aa1xb[_0x1920[19]][_0x7aa1xd]={$like:{}};_0x7aa1xb[_0x1920[19]][_0x7aa1xd][_0x1920[24]]=_0x1920[20]+_0x7aa1xc+_0x1920[20];;}});Interval[_0x1920[30]](_0x7aa1xb)[_0x1920[29]](function(_0x7aa1x11){return _0x7aa1x7[_0x1920[28]](200)[_0x1920[27]](_0x7aa1x11)})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});};exports[_0x1920[31]]=function(_0x7aa1x6,_0x7aa1x7){Interval[_0x1920[32]]()[_0x1920[29]](function(_0x7aa1x11){return _0x7aa1x7[_0x1920[28]](200)[_0x1920[27]](_0x7aa1x11)})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)})};exports[_0x1920[33]]=function(_0x7aa1x6,_0x7aa1x7){Interval[_0x1920[37]](_0x7aa1x6[_0x1920[36]][_0x1920[35]],{include:[{all:true}]})[_0x1920[29]](function(_0x7aa1x12){if(!_0x7aa1x12){return _0x7aa1x7[_0x1920[34]](404)};return _0x7aa1x7[_0x1920[27]](_0x7aa1x12);})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)})};exports[_0x1920[38]]=function(_0x7aa1x6,_0x7aa1x7){var _0x7aa1x13={name:_0x7aa1x6[_0x1920[39]][_0x1920[8]],IntervalId:_0x7aa1x6[_0x1920[39]][_0x1920[40]]?_0x7aa1x6[_0x1920[39]][_0x1920[40]]:null};if(_0x7aa1x6[_0x1920[39]][_0x1920[35]]){_0x7aa1x13[_0x1920[35]]={$ne:_0x7aa1x6[_0x1920[39]][_0x1920[35]]}};console[_0x1920[41]](_0x7aa1x6[_0x1920[39]]);Interval[_0x1920[32]]({where:_0x7aa1x13})[_0x1920[29]](function(_0x7aa1x11){if(!_0x7aa1x11){return _0x7aa1x7[_0x1920[34]](404)};return _0x7aa1x7[_0x1920[27]](_0x7aa1x11);})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});};exports[_0x1920[42]]=function(_0x7aa1x6,_0x7aa1x7){Interval[_0x1920[32]]({where:{name:_0x7aa1x6[_0x1920[39]][_0x1920[8]],IntervalId:_0x7aa1x6[_0x1920[39]][_0x1920[40]]?_0x7aa1x6[_0x1920[39]][_0x1920[40]]:null}})[_0x1920[29]](function(_0x7aa1x14){console[_0x1920[41]](_0x7aa1x14);console[_0x1920[41]](_0x1920[43]);if(!_0x7aa1x14){return _0x7aa1x7[_0x1920[34]](404)};if(_0x7aa1x14[_0x1920[44]]>0){return _0x7aa1x7[_0x1920[28]](500)[_0x1920[27]]({message:_0x7aa1x6[_0x1920[39]][_0x1920[40]]?_0x1920[45]:_0x1920[46]})};Interval[_0x1920[42]](_0x7aa1x6[_0x1920[39]])[_0x1920[29]](function(_0x7aa1x12){return _0x7aa1x7[_0x1920[28]](201)[_0x1920[27]](_0x7aa1x12)})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)})};exports[_0x1920[47]]=function(_0x7aa1x6,_0x7aa1x7){Interval[_0x1920[32]]({where:{name:_0x7aa1x6[_0x1920[39]][_0x1920[8]],IntervalId:_0x7aa1x6[_0x1920[39]][_0x1920[40]]?_0x7aa1x6[_0x1920[39]][_0x1920[40]]:null,id:{$ne:_0x7aa1x6[_0x1920[39]][_0x1920[35]]}}})[_0x1920[29]](function(_0x7aa1x14){console[_0x1920[41]](_0x7aa1x14);console[_0x1920[41]](_0x1920[43]);if(!_0x7aa1x14){return _0x7aa1x7[_0x1920[34]](404)};if(_0x7aa1x14[_0x1920[44]]>0){return _0x7aa1x7[_0x1920[28]](500)[_0x1920[27]]({message:_0x7aa1x6[_0x1920[39]][_0x1920[40]]?_0x1920[45]:_0x1920[46]})};if(_0x7aa1x6[_0x1920[39]][_0x1920[35]]){delete _0x7aa1x6[_0x1920[39]][_0x1920[35]]};Interval[_0x1920[51]]({where:{id:_0x7aa1x6[_0x1920[36]][_0x1920[35]]}})[_0x1920[29]](function(_0x7aa1x12){if(!_0x7aa1x12){return _0x7aa1x7[_0x1920[34]](404)};var _0x7aa1x15=_[_0x1920[48]](_0x7aa1x12,_0x7aa1x6[_0x1920[39]]);return sequelize[_0x1920[50]](function(_0x7aa1x16){return _0x7aa1x15[_0x1920[49]]({transaction:_0x7aa1x16})[_0x1920[29]](function(_0x7aa1x12){VoiceExtension[_0x1920[47]]({interval:_0x7aa1x12[_0x1920[8]]},{where:{IntervalId:_0x7aa1x12[_0x1920[35]]}},{transaction:_0x7aa1x16})})})[_0x1920[29]](function(){return _0x7aa1x7[_0x1920[28]](200)[_0x1920[27]](_0x7aa1x12)})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)})};exports[_0x1920[52]]=function(_0x7aa1x6,_0x7aa1x7){Interval[_0x1920[37]](_0x7aa1x6[_0x1920[36]][_0x1920[35]])[_0x1920[29]](function(_0x7aa1x12){if(!_0x7aa1x12){return _0x7aa1x7[_0x1920[34]](404)};_0x7aa1x12[_0x1920[54]]({where:{isApp:true}})[_0x1920[29]](function(_0x7aa1x17){console[_0x1920[41]](_0x7aa1x17[_0x1920[44]]);if(_0x7aa1x17[_0x1920[44]]>0){return _0x7aa1x7[_0x1920[28]](500)[_0x1920[27]]({message:_0x1920[53]})};_0x7aa1x12[_0x1920[52]]()[_0x1920[29]](function(){return _0x7aa1x7[_0x1920[34]](204)})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)})};exports[_0x1920[55]]=function(_0x7aa1x6,_0x7aa1x7){var _0x7aa1x18=false;Interval[_0x1920[32]]({where:{id:_0x7aa1x6[_0x1920[10]][_0x1920[35]]},include:[{all:true}]})[_0x1920[29]](function(_0x7aa1x11){if(!_0x7aa1x11){return _0x7aa1x7[_0x1920[34]](404)};_0x7aa1x11[_0x1920[22]](function(_0x7aa1x19){if(_0x7aa1x19[_0x1920[56]][_0x1920[44]]>0){_0x7aa1x18=true}});if(_0x7aa1x18){return _0x7aa1x7[_0x1920[28]](500)[_0x1920[27]]({message:_0x1920[53]})};Interval[_0x1920[52]]({where:{id:_0x7aa1x6[_0x1920[10]][_0x1920[35]]},individualHooks:true})[_0x1920[29]](function(){return _0x7aa1x7[_0x1920[34]](204)})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});})[_0x1920[26]](function(_0x7aa1x10){return handleError(_0x7aa1x7,_0x7aa1x10)});};function handleError(_0x7aa1x7,_0x7aa1x10){return _0x7aa1x7[_0x1920[28]](500)[_0x1920[27]](_0x7aa1x10)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Interval = require('../../models').Interval;
+var VoiceExtension = require('../../models').VoiceExtension;
+var sequelize = require('../../models').sequelize;
+var util = require('util');
+
+// Get list of intervals
+exports.index = function(req, res) {
+
+  var attributes = ['name'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      IntervalId: null
+    },
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Interval
+    .findAndCountAll(query)
+    .then(function(intervals) {
+      return res.status(200).send(intervals);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getAll = function(req, res) {
+  Interval
+    .findAll()
+    .then(function(intervals) {
+      return res.status(200).send(intervals);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// // Get list of subintervals
+// exports.showSubsByInterval = function(req, res) {
+//   VoiceInterval
+//     .findAll({
+//       where: {
+//         VoiceIntervalId: req.params.id
+//       }
+//     })
+//     .then(function(intervals) {
+//       return res.status(200).send(intervals);
+//     })
+//     .catch(function(err) {
+//       return handleError(res, err);
+//     });
+// };
+
+// Get a single interval
+exports.show = function(req, res) {
+  Interval
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(interval) {
+      if (!interval) {
+        return res.sendStatus(404);
+      }
+      return res.send(interval);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of a route
+exports.intervalValidation = function(req, res) {
+  var where = {
+    name: req.body.name,
+    IntervalId: req.body.IntervalId ? req.body.IntervalId : null
+  };
+  if (req.body.id) {
+    where.id = {
+      $ne: req.body.id
+    };
+  }
+  console.log(req.body);
+  Interval
+    .findAll({
+      where: where
+    })
+    .then(function(intervals) {
+      if (!intervals) {
+        return res.sendStatus(404);
+      }
+      return res.send(intervals);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new interval in the DB.
+exports.create = function(req, res) {
+  Interval
+    .findAll({
+      where: {
+        name: req.body.name,
+        IntervalId: req.body.IntervalId ? req.body.IntervalId : null
+      }
+    })
+    .then(function(existingIntervals) {
+      console.log(existingIntervals);
+      console.log('Finding app row.....');
+      if (!existingIntervals) {
+        return res.sendStatus(404);
+      }
+      if (existingIntervals.length > 0) {
+        return res.status(500).send({
+          message: req.body.IntervalId ? 'MESSAGE_EXIST_SUBINTERVAL' : 'MESSAGE_EXIST_INTERVAL'
+        });
+      }
+      Interval
+        .create(req.body)
+        .then(function(interval) {
+          return res.status(201).send(interval);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing interval in the DB.
+exports.update = function(req, res) {
+  Interval
+    .findAll({
+      where: {
+        name: req.body.name,
+        IntervalId: req.body.IntervalId ? req.body.IntervalId : null,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(existingIntervals) {
+      console.log(existingIntervals);
+      console.log('Finding app row.....');
+      if (!existingIntervals) {
+        return res.sendStatus(404);
+      }
+      if (existingIntervals.length > 0) {
+        return res.status(500).send({
+          message: req.body.IntervalId ? 'MESSAGE_EXIST_SUBINTERVAL' : 'MESSAGE_EXIST_INTERVAL'
+        });
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Interval
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(interval) {
+          if (!interval) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(interval, req.body);
+          return sequelize.transaction(function(t) {
+              return updated.save({
+                  transaction: t
+                })
+                .then(function(interval) {
+                  VoiceExtension
+                    .update({
+                      interval: interval.name
+                    }, {
+                      where: {
+                        IntervalId: interval.id
+                      }
+                    }, {
+                      transaction: t
+                    })
+                })
+            })
+            .then(function() {
+              return res.status(200).send(interval);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a interval from the DB.
+exports.destroy = function(req, res) {
+  Interval
+    .findById(req.params.id)
+    .then(function(interval) {
+      if (!interval) {
+        return res.sendStatus(404);
+      }
+      interval.getVoiceExtensions({
+          where: {
+            isApp: true
+          }
+        })
+        .then(function(bindExtensions) {
+          console.log(bindExtensions.length);
+          if (bindExtensions.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_INTERVAL_ROUTE_ASSOCIATED'
+            });
+          }
+          interval.destroy()
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes multiple intervals from the DB.
+exports.bulkDestroy = function(req, res) {
+  var associatedIntervals = false;
+  Interval
+    .findAll({
+      where: {
+        id: req.query.id
+      },
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(intervals) {
+      if (!intervals) {
+        return res.sendStatus(404);
+      }
+      intervals.forEach(function(element) {
+        if (element.VoiceExtensions.length > 0) {
+          associatedIntervals = true;
+        }
+      });
+      if (associatedIntervals) {
+        return res.status(500).send({
+          message: 'MESSAGE_INTERVAL_ROUTE_ASSOCIATED'
+        });
+      }
+      Interval
+        .destroy({
+          where: {
+            id: req.query.id
+          },
+          individualHooks: true
+        })
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 3dc2e21..d8aee27 100644 (file)
@@ -1 +1,31 @@
-var _0x6b0d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x3A\x75\x70\x64\x61\x74\x65"];_0x6b0d[0];var Interval=require(_0x6b0d[2])[_0x6b0d[1]];exports[_0x6b0d[3]]=function(_0x3495x2){Interval[_0x6b0d[4]](function(_0x3495x3){onSave(_0x3495x2,_0x3495x3)});Interval[_0x6b0d[5]](function(_0x3495x3){onRemove(_0x3495x2,_0x3495x3)});Interval[_0x6b0d[6]](function(_0x3495x3){onUpdate(_0x3495x2,_0x3495x3)});};function onSave(_0x3495x2,_0x3495x3,_0x3495x5){_0x3495x2[_0x6b0d[8]](_0x6b0d[7],_0x3495x3)}function onRemove(_0x3495x2,_0x3495x3,_0x3495x5){_0x3495x2[_0x6b0d[8]](_0x6b0d[9],_0x3495x3)}function onUpdate(_0x3495x2,_0x3495x3,_0x3495x5){_0x3495x2[_0x6b0d[8]](_0x6b0d[10],_0x3495x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Interval = require('../../models').Interval;
+
+exports.register = function(socket) {
+  Interval.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Interval.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+  Interval.afterUpdate(function(doc) {
+    onUpdate(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('interval:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('interval:remove', doc);
+}
+
+function onUpdate(socket, doc, cb) {
+  socket.emit('interval:update', doc);
+}
index a67c701..280cb64 100644 (file)
@@ -1 +1,20 @@
-var _0x9e9f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x67\x65\x74"];_0x9e9f[0];var should=require(_0x9e9f[1]);var app=require(_0x9e9f[2]);var request=require(_0x9e9f[3]);describe(_0x9e9f[4],function(){it(_0x9e9f[5],function(_0x626fx4){request(app)[_0x9e9f[13]](_0x9e9f[12])[_0x9e9f[11]](200)[_0x9e9f[11]](_0x9e9f[10],/json/)[_0x9e9f[9]](function(_0x626fx5,_0x626fx6){if(_0x626fx5){return _0x626fx4(_0x626fx5)};_0x626fx6[_0x9e9f[8]][_0x9e9f[1]][_0x9e9f[7]][_0x9e9f[6]](Array);_0x626fx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/intervals', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/intervals')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/jscripty_log/index.js b/server/api/jscripty_log/index.js
new file mode 100644 (file)
index 0000000..f51cb84
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./jscripty_log.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/jscripty_log/index.spec.js b/server/api/jscripty_log/index.spec.js
new file mode 100644 (file)
index 0000000..e4800f5
--- /dev/null
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var jscriptyLogCtrlStub = {
+  index: 'jscriptyLogCtrl.index',
+  show: 'jscriptyLogCtrl.show',
+  create: 'jscriptyLogCtrl.create',
+  update: 'jscriptyLogCtrl.update',
+  destroy: 'jscriptyLogCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var jscriptyLogIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './jscripty_log.controller': jscriptyLogCtrlStub
+});
+
+describe('JscriptyLog API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(jscriptyLogIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/jscripty/logs', function() {
+
+    it('should route to jscriptyLog.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'jscriptyLogCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/jscripty/logs/:id', function() {
+
+    it('should route to jscriptyLog.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'jscriptyLogCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/jscripty/logs', function() {
+
+    it('should route to jscriptyLog.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'jscriptyLogCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/jscripty/logs/:id', function() {
+
+    it('should route to jscriptyLog.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'jscriptyLogCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/jscripty/logs/:id', function() {
+
+    it('should route to jscriptyLog.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'jscriptyLogCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/jscripty/logs/:id', function() {
+
+    it('should route to jscriptyLog.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'jscriptyLogCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/jscripty_log/jscripty_log.controller.js b/server/api/jscripty_log/jscripty_log.controller.js
new file mode 100644 (file)
index 0000000..7d441d5
--- /dev/null
@@ -0,0 +1,104 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/jscripty/logs              ->  index
+ * POST    /api/jscripty/logs              ->  create
+ * GET     /api/jscripty/logs/:id          ->  show
+ * PUT     /api/jscripty/logs/:id          ->  update
+ * DELETE  /api/jscripty/logs/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var JscriptyLog = require('../../models').JscriptyLog;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(updated => {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(() => {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of JscriptyLogs
+exports.index = function(req, res) {
+  JscriptyLog.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single JscriptyLog from the DB
+exports.show = function(req, res) {
+  JscriptyLog.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new JscriptyLog in the DB
+exports.create = function(req, res) {
+  JscriptyLog.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing JscriptyLog in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  JscriptyLog.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a JscriptyLog from the DB
+exports.destroy = function(req, res) {
+  JscriptyLog.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/jscripty_log/jscripty_log.js b/server/api/jscripty_log/jscripty_log.js
new file mode 100644 (file)
index 0000000..21c7961
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('JscriptyLog', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING
+  }, {
+    tableName: 'jscripty_logs'
+  });
+};
diff --git a/server/api/jscripty_log/jscripty_log.socket.js b/server/api/jscripty_log/jscripty_log.socket.js
new file mode 100644 (file)
index 0000000..fd4c90d
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var JscriptyLog = require('../../models').JscriptyLog;
+
+exports.register = function(socket) {
+  JscriptyLog.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  JscriptyLog.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('jscripty_log:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('jscripty_log:remove', doc);
+}
index 473b3e4..6686214 100644 (file)
@@ -1 +1,21 @@
-var _0x3a4a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2F\x3A\x69\x64\x2F\x70\x72\x6F\x6A\x65\x63\x74","\x70\x72\x6F\x6A\x65\x63\x74\x4A\x73\x6F\x6E","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x70\x72\x6F\x6A\x65\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x3a4a[0];var express=require(_0x3a4a[1]);var auth=require(_0x3a4a[2]);var controller=require(_0x3a4a[3]);var router=express.Router();router[_0x3a4a[7]](_0x3a4a[4],auth[_0x3a4a[5]](),controller[_0x3a4a[6]]);router[_0x3a4a[7]](_0x3a4a[8],auth[_0x3a4a[5]](),controller[_0x3a4a[9]]);router[_0x3a4a[7]](_0x3a4a[10],controller[_0x3a4a[11]]);router[_0x3a4a[7]](_0x3a4a[12],controller[_0x3a4a[13]]);router[_0x3a4a[15]](_0x3a4a[4],auth[_0x3a4a[5]](),controller[_0x3a4a[14]]);router[_0x3a4a[15]](_0x3a4a[16],auth[_0x3a4a[5]](),controller[_0x3a4a[17]]);router[_0x3a4a[19]](_0x3a4a[8],auth[_0x3a4a[5]](),controller[_0x3a4a[18]]);router[_0x3a4a[20]](_0x3a4a[8],auth[_0x3a4a[5]](),controller[_0x3a4a[18]]);router[_0x3a4a[22]](_0x3a4a[4],auth[_0x3a4a[5]](),controller[_0x3a4a[21]]);router[_0x3a4a[22]](_0x3a4a[8],auth[_0x3a4a[5]](),controller[_0x3a4a[23]]);module[_0x3a4a[24]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./jscripty_project.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/download', controller.download);
+router.get('/:id/project', controller.projectJson);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.projectValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index 8081d98..3860e91 100644 (file)
@@ -1 +1,97 @@
-var _0xaa8b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xaa8b[0];var proxyquire=require(_0xaa8b[2])[_0xaa8b[1]]();var jscriptyProjectCtrlStub={index:_0xaa8b[3],show:_0xaa8b[4],create:_0xaa8b[5],update:_0xaa8b[6],destroy:_0xaa8b[7]};var routerStub={get:sinon[_0xaa8b[8]](),put:sinon[_0xaa8b[8]](),patch:sinon[_0xaa8b[8]](),post:sinon[_0xaa8b[8]](),delete:sinon[_0xaa8b[8]]()};var jscriptyProjectIndex=proxyquire(_0xaa8b[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":jscriptyProjectCtrlStub});describe(_0xaa8b[10],function(){it(_0xaa8b[11],function(){expect(jscriptyProjectIndex)[_0xaa8b[13]][_0xaa8b[12]](routerStub)});describe(_0xaa8b[14],function(){it(_0xaa8b[15],function(){expect(routerStub[_0xaa8b[21]][_0xaa8b[20]](_0xaa8b[19],_0xaa8b[3]))[_0xaa8b[13]][_0xaa8b[18]][_0xaa8b[17]][_0xaa8b[16]]})});describe(_0xaa8b[22],function(){it(_0xaa8b[23],function(){expect(routerStub[_0xaa8b[21]][_0xaa8b[20]](_0xaa8b[24],_0xaa8b[4]))[_0xaa8b[13]][_0xaa8b[18]][_0xaa8b[17]][_0xaa8b[16]]})});describe(_0xaa8b[25],function(){it(_0xaa8b[26],function(){expect(routerStub[_0xaa8b[27]][_0xaa8b[20]](_0xaa8b[19],_0xaa8b[5]))[_0xaa8b[13]][_0xaa8b[18]][_0xaa8b[17]][_0xaa8b[16]]})});describe(_0xaa8b[28],function(){it(_0xaa8b[29],function(){expect(routerStub[_0xaa8b[30]][_0xaa8b[20]](_0xaa8b[24],_0xaa8b[6]))[_0xaa8b[13]][_0xaa8b[18]][_0xaa8b[17]][_0xaa8b[16]]})});describe(_0xaa8b[31],function(){it(_0xaa8b[29],function(){expect(routerStub[_0xaa8b[32]][_0xaa8b[20]](_0xaa8b[24],_0xaa8b[6]))[_0xaa8b[13]][_0xaa8b[18]][_0xaa8b[17]][_0xaa8b[16]]})});describe(_0xaa8b[33],function(){it(_0xaa8b[34],function(){expect(routerStub[_0xaa8b[35]][_0xaa8b[20]](_0xaa8b[24],_0xaa8b[7]))[_0xaa8b[13]][_0xaa8b[18]][_0xaa8b[17]][_0xaa8b[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var jscriptyProjectCtrlStub = {
+  index: 'jscriptyProjectCtrl.index',
+  show: 'jscriptyProjectCtrl.show',
+  create: 'jscriptyProjectCtrl.create',
+  update: 'jscriptyProjectCtrl.update',
+  destroy: 'jscriptyProjectCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var jscriptyProjectIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './jscripty_project.controller': jscriptyProjectCtrlStub
+});
+
+describe('JscriptyProject API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(jscriptyProjectIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/jscripty/projects', function() {
+
+    it('should route to jscriptyProject.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'jscriptyProjectCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/jscripty/projects/:id', function() {
+
+    it('should route to jscriptyProject.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'jscriptyProjectCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/jscripty/projects', function() {
+
+    it('should route to jscriptyProject.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'jscriptyProjectCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/jscripty/projects/:id', function() {
+
+    it('should route to jscriptyProject.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'jscriptyProjectCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/jscripty/projects/:id', function() {
+
+    it('should route to jscriptyProject.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'jscriptyProjectCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/jscripty/projects/:id', function() {
+
+    it('should route to jscriptyProject.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'jscriptyProjectCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 5a7274c..feaca51 100644 (file)
@@ -1 +1,281 @@
-var _0xb780=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x78\x6D\x6C\x32\x6A\x73","\x6C\x6F\x64\x61\x73\x68","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x70\x72\x6F\x6A\x65\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D\x22","\x2E\x78\x6D\x6C\x22","\x74\x78\x74\x2F\x78\x6D\x6C","\x73\x65\x74","\x64\x72\x61\x66\x74","\x70\x72\x6F\x6A\x65\x63\x74\x4A\x73\x6F\x6E","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x70\x61\x72\x73\x65\x53\x74\x72\x69\x6E\x67"];_0xb780[0];var xml=require(_0xb780[1]);var _=require(_0xb780[2]);var JscriptyProject=require(_0xb780[4])[_0xb780[3]];function handleError(_0x7b40x5,_0x7b40x6){_0x7b40x6=_0x7b40x6||500;return function(_0x7b40x7){_0x7b40x5[_0xb780[6]](_0x7b40x6)[_0xb780[5]](_0x7b40x7)};}function responseWithResult(_0x7b40x5,_0x7b40x6){_0x7b40x6=_0x7b40x6||200;return function(_0x7b40x9){if(_0x7b40x9){_0x7b40x5[_0xb780[6]](_0x7b40x6)[_0xb780[7]](_0x7b40x9)}};}function handleEntityNotFound(_0x7b40x5){return function(_0x7b40x9){if(!_0x7b40x9){_0x7b40x5[_0xb780[6]](404)[_0xb780[8]]();return null;};return _0x7b40x9;}}function saveUpdates(_0x7b40xc){return function(_0x7b40x9){return _0x7b40x9[_0xb780[10]](_0x7b40xc)[_0xb780[9]](function(_0x7b40xd){return _0x7b40xd})}}function removeEntity(_0x7b40x5){return function(_0x7b40x9){if(_0x7b40x9){return _0x7b40x9[_0xb780[11]]()[_0xb780[9]](function(){_0x7b40x5[_0xb780[6]](204)[_0xb780[8]]()})}}}exports[_0xb780[12]]=function(_0x7b40xf,_0x7b40x5){var _0x7b40x10=[_0xb780[13],_0xb780[14]];var _0x7b40x11=_0x7b40xf[_0xb780[16]][_0xb780[15]]?parseInt(_0x7b40xf[_0xb780[16]][_0xb780[15]],10):100;var _0x7b40x12=_0x7b40xf[_0xb780[16]][_0xb780[17]]?parseInt(_0x7b40xf[_0xb780[16]][_0xb780[17]],10):0;var _0x7b40x13={where:{},limit:_0x7b40x11,offset:_0x7b40x12*_0x7b40x11};_[_0xb780[31]](_0x7b40xf[_0xb780[16]],function(_0x7b40x14,_0x7b40x15){switch(_0x7b40x15){case _0xb780[15]:;case _0xb780[17]:break ;;case _0xb780[20]:_0x7b40x13[_0xb780[18]]=util[_0xb780[23]](_0xb780[19],_0x7b40xf[_0xb780[16]][_0xb780[20]],_0x7b40xf[_0xb780[16]][_0xb780[21]]||_0xb780[22])||null;break ;;case _0xb780[21]:break ;;case _0xb780[29]:_0x7b40x13[_0xb780[25]][_0xb780[24]]=[];_0x7b40x10[_0xb780[28]](function(_0x7b40x16){var _0x7b40x17={};_0x7b40x17[_0x7b40x16]={$like:_0xb780[26]+_0x7b40x14+_0xb780[26]};_0x7b40x13[_0xb780[25]][_0xb780[24]][_0xb780[27]](_0x7b40x17);});break ;;default:_0x7b40x13[_0xb780[25]][_0x7b40x15]={$like:{}};_0x7b40x13[_0xb780[25]][_0x7b40x15][_0xb780[30]]=_0xb780[26]+_0x7b40x14+_0xb780[26];;}});JscriptyProject[_0xb780[43]](_0x7b40x13)[_0xb780[9]](function(_0x7b40x18){var _0x7b40x19=Math[_0xb780[35]](_0x7b40x18[_0xb780[34]]/_0x7b40x11);var _0x7b40x1a=_0x7b40x19>(_0x7b40x13[_0xb780[36]]+1)?util[_0xb780[23]](_0xb780[37],_0x7b40xf[_0xb780[38]],_0x7b40xf[_0xb780[40]][_0xb780[39]],_0x7b40xf[_0xb780[41]],_0x7b40x12+1):null;var _0x7b40x1b=_0x7b40x12>0?util[_0xb780[23]](_0xb780[37],_0x7b40xf[_0xb780[38]],_0x7b40xf[_0xb780[40]][_0xb780[39]],_0x7b40xf[_0xb780[41]],_0x7b40x12-1):null;_0x7b40x5[_0xb780[6]](200)[_0xb780[5]]({count:_0x7b40x18[_0xb780[34]],rows:_0x7b40x18[_0xb780[42]],next_page:_0x7b40x1a,previous_page:_0x7b40x1b,total_pages:_0x7b40x19});})[_0xb780[33]](function(_0x7b40x7){_0x7b40x5[_0xb780[6]](500)[_0xb780[5]]({error:_0xb780[32]})});};exports[_0xb780[44]]=function(_0x7b40xf,_0x7b40x5){console[_0xb780[46]](_0x7b40xf[_0xb780[45]]);JscriptyProject[_0xb780[48]]({where:{name:_0x7b40xf[_0xb780[45]][_0xb780[13]]}})[_0xb780[9]](function(_0x7b40x1c){if(!_0x7b40x1c){return _0x7b40x5[_0xb780[47]](404)};return _0x7b40x5[_0xb780[5]](_0x7b40x1c);})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});};exports[_0xb780[49]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};return _0x7b40x5[_0xb780[5]](_0x7b40x1d);})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[53]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[53]](_0x7b40xf[_0xb780[45]])[_0xb780[9]](function(_0x7b40x1d){return _0x7b40x5[_0xb780[6]](201)[_0xb780[5]](_0x7b40x1d)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[54]]=function(_0x7b40xf,_0x7b40x5){if(_0x7b40xf[_0xb780[45]][_0xb780[50]]){delete _0x7b40xf[_0xb780[45]][_0xb780[50]]};JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};var _0x7b40xd=_[_0xb780[55]](_0x7b40x1d,_0x7b40xf[_0xb780[45]]);_0x7b40xd[_0xb780[56]]()[_0xb780[9]](function(){return _0x7b40x5[_0xb780[6]](200)[_0xb780[5]](_0x7b40x1d)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});};exports[_0xb780[11]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[57]]({where:{id:_0x7b40xf[_0xb780[51]][_0xb780[50]]}})[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};_0x7b40x1d[_0xb780[11]]()[_0xb780[9]](function(){return _0x7b40x5[_0xb780[47]](204)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[58]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[11]]({where:{id:_0x7b40xf[_0xb780[16]][_0xb780[50]]},individualHooks:true})[_0xb780[9]](function(){return _0x7b40x5[_0xb780[47]](204)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[59]]=function(_0x7b40xf,_0x7b40x5,_0x7b40x1e){JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};console[_0xb780[46]](_0x7b40xf[_0xb780[16]][_0xb780[60]]);_0x7b40x5[_0xb780[64]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E":_0xb780[61]+_0x7b40xf[_0xb780[16]][_0xb780[60]]+_0xb780[62],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xb780[63]});return _0x7b40x5[_0xb780[5]](_0x7b40x1d[_0xb780[65]]);})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[66]]=function(_0x7b40xf,_0x7b40x5,_0x7b40x1e){JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};xml[_0xb780[68]](_0x7b40x1d[_0xb780[67]],{normalizeTags:true,explicitArray:false},function(_0x7b40x7,_0x7b40x18){console[_0xb780[46]](_0x7b40x18);return _0x7b40x5[_0xb780[6]](200)[_0xb780[5]](_0x7b40x18);});})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/jscripty/projects              ->  index
+ * POST    /api/jscripty/projects              ->  create
+ * GET     /api/jscripty/projects/:id          ->  show
+ * PUT     /api/jscripty/projects/:id          ->  update
+ * DELETE  /api/jscripty/projects/:id          ->  destroy
+ */
+
+'use strict';
+var xml = require('xml2js');
+
+var _ = require('lodash');
+
+var JscriptyProject = require('../../models').JscriptyProject;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of JscriptyProjects
+
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  JscriptyProject
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+exports.projectValidation = function(req, res) {
+  console.log(req.body);
+  JscriptyProject
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(jscripty_projects) {
+      if (!jscripty_projects) {
+        return res.sendStatus(404);
+      }
+      return res.send(jscripty_projects);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Gets a single JscriptyProject from the DB
+
+exports.show = function(req, res) {
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      return res.send(jscripty_project);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Creates a new JscriptyProject in the DB
+exports.create = function(req, res) {
+  JscriptyProject
+    .create(req.body)
+    .then(function(jscripty_project) {
+      return res.status(201).send(jscripty_project);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Updates an existing JscriptyProject in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(jscripty_project, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(jscripty_project);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+
+// Deletes a JscriptyProject from the DB
+exports.destroy = function(req, res) {
+  JscriptyProject
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      jscripty_project.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a jscripty_project from the DB.
+exports.bulkDestroy = function(req, res) {
+  JscriptyProject
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+exports.download = function(req, res, next) {
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      console.log(req.query.filename);
+      res.set({
+        "Content-Disposition": "attachment; filename=\"" + req.query.filename +
+          ".xml\"",
+        "Content-Type": "txt/xml"
+      });
+      return res.send(jscripty_project.draft);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.projectJson = function(req, res, next) {
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+
+      xml.parseString(jscripty_project.production, {
+        normalizeTags: true,
+        explicitArray: false
+      }, function(err, result) {
+        console.log(result);
+        return res.status(200).send(result);
+
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
index bafd69c..823959f 100644 (file)
@@ -1 +1,10 @@
-var _0x1a50=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x53\x54\x52\x49\x4E\x47","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x1a50[0];module[_0x1a50[1]]=function(_0x2fecx1,_0x2fecx2){return _0x2fecx1[_0x1a50[5]](_0x1a50[2],{name:_0x2fecx2[_0x1a50[3]],description:_0x2fecx2[_0x1a50[3]]},{tableName:_0x1a50[4]})};
\ No newline at end of file
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('JscriptyProject', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING
+  }, {
+    tableName: 'jscripty_projects'
+  });
+};
index 1e10263..4f5b49e 100644 (file)
@@ -1 +1,24 @@
-var _0xbbc5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xbbc5[0];var JscriptyProject=require(_0xbbc5[2])[_0xbbc5[1]];exports[_0xbbc5[3]]=function(_0xa167x2){JscriptyProject[_0xbbc5[4]](function(_0xa167x3){onSave(_0xa167x2,_0xa167x3)});JscriptyProject[_0xbbc5[5]](function(_0xa167x3){onRemove(_0xa167x2,_0xa167x3)});};function onSave(_0xa167x2,_0xa167x3,_0xa167x5){_0xa167x2[_0xbbc5[7]](_0xbbc5[6],_0xa167x3)}function onRemove(_0xa167x2,_0xa167x3,_0xa167x5){_0xa167x2[_0xbbc5[7]](_0xbbc5[8],_0xa167x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var JscriptyProject = require('../../models').JscriptyProject;
+
+exports.register = function(socket) {
+  JscriptyProject.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  JscriptyProject.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('jscripty_project:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('jscripty_project:remove', doc);
+}
diff --git a/server/api/jscripty_report/index.js b/server/api/jscripty_report/index.js
new file mode 100644 (file)
index 0000000..12daca3
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./jscripty_report.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/jscripty_report/index.spec.js b/server/api/jscripty_report/index.spec.js
new file mode 100644 (file)
index 0000000..cec9eb9
--- /dev/null
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var jscriptyReportCtrlStub = {
+  index: 'jscriptyReportCtrl.index',
+  show: 'jscriptyReportCtrl.show',
+  create: 'jscriptyReportCtrl.create',
+  update: 'jscriptyReportCtrl.update',
+  destroy: 'jscriptyReportCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var jscriptyReportIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './jscripty_report.controller': jscriptyReportCtrlStub
+});
+
+describe('JscriptyReport API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(jscriptyReportIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/jscripty/reports', function() {
+
+    it('should route to jscriptyReport.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'jscriptyReportCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/jscripty/reports/:id', function() {
+
+    it('should route to jscriptyReport.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'jscriptyReportCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/jscripty/reports', function() {
+
+    it('should route to jscriptyReport.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'jscriptyReportCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/jscripty/reports/:id', function() {
+
+    it('should route to jscriptyReport.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'jscriptyReportCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/jscripty/reports/:id', function() {
+
+    it('should route to jscriptyReport.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'jscriptyReportCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/jscripty/reports/:id', function() {
+
+    it('should route to jscriptyReport.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'jscriptyReportCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/jscripty_report/jscripty_report.controller.js b/server/api/jscripty_report/jscripty_report.controller.js
new file mode 100644 (file)
index 0000000..4799722
--- /dev/null
@@ -0,0 +1,104 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/jscripty/reports              ->  index
+ * POST    /api/jscripty/reports              ->  create
+ * GET     /api/jscripty/reports/:id          ->  show
+ * PUT     /api/jscripty/reports/:id          ->  update
+ * DELETE  /api/jscripty/reports/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var JscriptyReport = require('../../models').JscriptyReport;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(updated => {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(() => {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of JscriptyReports
+exports.index = function(req, res) {
+  JscriptyReport.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single JscriptyReport from the DB
+exports.show = function(req, res) {
+  JscriptyReport.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new JscriptyReport in the DB
+exports.create = function(req, res) {
+  JscriptyReport.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing JscriptyReport in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  JscriptyReport.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a JscriptyReport from the DB
+exports.destroy = function(req, res) {
+  JscriptyReport.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/jscripty_report/jscripty_report.js b/server/api/jscripty_report/jscripty_report.js
new file mode 100644 (file)
index 0000000..0b2dfe1
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('JscriptyReport', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING
+  }, {
+    tableName: 'jscripty_reports'
+  });
+};
diff --git a/server/api/jscripty_report/jscripty_report.socket.js b/server/api/jscripty_report/jscripty_report.socket.js
new file mode 100644 (file)
index 0000000..dcb2985
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var JscriptyReport = require('../../models').JscriptyReport;
+
+exports.register = function(socket) {
+  JscriptyReport.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  JscriptyReport.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('jscripty_report:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('jscripty_report:remove', doc);
+}
index f5a57ee..3eb5928 100644 (file)
@@ -1 +1,19 @@
-var _0xc69e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x72\x65\x71\x75\x65\x73\x74","\x72\x65\x71\x75\x65\x73\x74","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xc69e[0];var express=require(_0xc69e[1]);var auth=require(_0xc69e[2]);var controller=require(_0xc69e[3]);var router=express.Router();router[_0xc69e[7]](_0xc69e[4],auth[_0xc69e[5]](),controller[_0xc69e[6]]);router[_0xc69e[10]](_0xc69e[8],auth[_0xc69e[5]](),controller[_0xc69e[9]]);module[_0xc69e[11]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./license.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+// router.get('/:id', auth.isAuthenticated(), controller.show);
+// router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/request', auth.isAuthenticated(), controller.request);
+// router.put('/:id', auth.isAuthenticated(), controller.update);
+// router.patch('/:id', auth.isAuthenticated(), controller.update);
+// router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index 350208c..6ccada0 100644 (file)
@@ -1 +1,161 @@
-var _0xce28=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x44\x45\x4D\x4F\x20\x4C\x49\x43\x45\x4E\x53\x45","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x64\x65\x63\x72\x79\x70\x74","\x70\x61\x72\x73\x65","\x74\x6F\x6B\x65\x6E","\x75\x75\x69\x64","\x6A\x73\x6F\x6E","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x72\x65\x71\x75\x65\x73\x74","\x6C\x6F\x67","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x50\x4F\x53\x54","\x70\x72\x6F\x76\x69\x73\x69\x6F\x6E\x69\x6E\x67","\x2F\x73\x65\x72\x76\x65\x72\x73\x2F","\x2F\x72\x65\x71\x75\x65\x73\x74","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0xce28[0];var _=require(_0xce28[1]);var rp=require(_0xce28[2]);var config=require(_0xce28[3]);var license=require(_0xce28[4]);var Settings=require(_0xce28[6])[_0xce28[5]];var demoLicense={users:1,agents:1,telephones:0,chat:false,mail:false,fax:false,description:_0xce28[7]};function handleError(_0xb706x8,_0xb706x9){_0xb706x9=_0xb706x9||500;return function(_0xb706xa){_0xb706x8[_0xce28[9]](_0xb706x9)[_0xce28[8]](_0xb706xa)};}function responseWithResult(_0xb706x8,_0xb706x9){_0xb706x9=_0xb706x9||200;return function(_0xb706xc){if(_0xb706xc){if(_0xb706xc[_0xce28[10]]){_0xb706xc[_0xce28[11]][_0xce28[10]]=license[_0xce28[12]](_0xb706xc[_0xce28[11]][_0xce28[10]]);_0xb706xc[_0xce28[11]][_0xce28[10]]=JSON[_0xce28[13]](_0xb706xc[_0xce28[11]][_0xce28[10]]);}else {_0xb706xc[_0xce28[11]][_0xce28[10]]=demoLicense};_0xb706xc[_0xce28[11]][_0xce28[10]][_0xce28[14]]=config[_0xce28[15]];_0xb706x8[_0xce28[9]](_0xb706x9)[_0xce28[16]](_0xb706xc);}};}function handleEntityNotFound(_0xb706x8){return function(_0xb706xc){if(!_0xb706xc){_0xb706xc={dataValues:{license:demoLicense}};_0xb706xc[_0xce28[11]][_0xce28[10]][_0xce28[14]]=config[_0xce28[15]];_0xb706x8[_0xce28[9]](201)[_0xce28[16]](_0xb706xc);return null;};return _0xb706xc;}}function saveUpdates(_0xb706xf){return function(_0xb706xc){return _0xb706xc[_0xce28[18]](_0xb706xf)[_0xce28[17]](function(_0xb706x10){return _0xb706x10})}}function removeEntity(_0xb706x8){return function(_0xb706xc){if(_0xb706xc){return _0xb706xc[_0xce28[20]]()[_0xce28[17]](function(){_0xb706x8[_0xce28[9]](204)[_0xce28[19]]()})}}}exports[_0xce28[21]]=function(_0xb706x12,_0xb706x8){Settings[_0xce28[23]](1)[_0xce28[17]](handleEntityNotFound(_0xb706x8))[_0xce28[17]](responseWithResult(_0xb706x8))[_0xce28[22]](handleError(_0xb706x8))};exports[_0xce28[24]]=function(_0xb706x12,_0xb706x8){};exports[_0xce28[25]]=function(_0xb706x12,_0xb706x8){};exports[_0xce28[26]]=function(_0xb706x12,_0xb706x8){return rp({method:_0xce28[29],uri:config[_0xce28[30]]+_0xce28[31]+config[_0xce28[15]]+_0xce28[32],body:_0xb706x12[_0xce28[33]],json:true})[_0xce28[17]](function(_0xb706x13){console[_0xce28[27]](_0xb706x13);_0xb706x8[_0xce28[9]](201)[_0xce28[8]](_0xb706x13);})[_0xce28[22]](function(_0xb706xa){console[_0xce28[27]](_0xb706xa);return _0xb706x8[_0xce28[9]](_0xb706xa[_0xce28[28]]||500)[_0xce28[8]](_0xb706xa);})};exports[_0xce28[34]]=function(_0xb706x12,_0xb706x8){};exports[_0xce28[20]]=function(_0xb706x12,_0xb706x8){};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/licenses              ->  index
+ * POST    /api/licenses              ->  create
+ * GET     /api/licenses/:id          ->  show
+ * PUT     /api/licenses/:id          ->  update
+ * DELETE  /api/licenses/:id          ->  destroy
+ */
+
+'use strict';
+
+var _ = require('lodash');
+var rp = require('request-promise');
+
+var config = require('../../config/environment');
+var license = require('../../config/license/license.service');
+var Settings = require('../../models').Settings;
+
+var demoLicense = {
+  users: 1,
+  agents: 1,
+  telephones: 0,
+  chat: false,
+  mail: false,
+  fax: false,
+  description: 'DEMO LICENSE'
+};
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function (err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function (entity) {
+    if (entity) {
+      if (entity.license) {
+        entity.dataValues.license = license.decrypt(entity.dataValues.license);
+        entity.dataValues.license = JSON.parse(entity.dataValues.license);
+      } else {
+        entity.dataValues.license = demoLicense;
+      }
+
+      entity.dataValues.license.token = config.uuid;
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function (entity) {
+    if (!entity) {
+      entity = {
+        dataValues: {
+          license: demoLicense
+        }
+      };
+
+      entity.dataValues.license.token = config.uuid;
+      res.status(201).json(entity);
+      return null;
+    }
+
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function (entity) {
+    return entity
+      .updateAttributes(updates)
+      .then(function (updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function (entity) {
+    if (entity) {
+      return entity
+        .destroy()
+        .then(function () {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of Licenses
+exports.index = function (req, res) {
+  // License.findAll()
+  //   .then(responseWithResult(res))
+  //   .catch(handleError(res));
+
+  Settings
+    .findById(1)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single License from the DB
+exports.show = function (req, res) {
+  // License.findById(req.params.id)
+  //   .then(handleEntityNotFound(res))
+  //   .then(responseWithResult(res))
+  //   .catch(handleError(res));
+}
+
+// Creates a new License in the DB
+exports.create = function (req, res) {
+  // License.create(req.body)
+  //   .then(responseWithResult(res, 201))
+  //   .catch(handleError(res));
+}
+
+// Creates a new License in the DB
+exports.request = function (req, res) {
+  // License.create(req.body)
+  //   .then(responseWithResult(res, 201))
+  //   .catch(handleError(res));
+  return rp({
+      method: 'POST',
+      uri: config.provisioning + '/servers/' + config.uuid + '/request',
+      body: req.body,
+      json: true // Automatically stringifies the body to JSON
+    })
+    .then(function (data) {
+      console.log(data);
+      res.status(201).send(data);
+    })
+    .catch(function (err) {
+      console.log(err);
+      return res.status(err.statusCode || 500).send(err);
+    });
+  // .catch(handleError(res));
+}
+
+// Updates an existing License in the DB
+exports.update = function (req, res) {
+  // if (req.body.id) {
+  //   delete req.body.id;
+  // }
+  // License.findById(req.params.id)
+  //   .then(handleEntityNotFound(res))
+  //   .then(saveUpdates(req.body))
+  //   .then(responseWithResult(res))
+  //   .catch(handleError(res));
+}
+
+// Deletes a License from the DB
+exports.destroy = function (req, res) {
+  // License.findById(req.params.id)
+  //   .then(handleEntityNotFound(res))
+  //   .then(removeEntity(res))
+  //   .catch(handleError(res));
+}
index b51511b..fb7f746 100644 (file)
@@ -1 +1,24 @@
-var _0x2269=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x69\x63\x65\x6E\x73\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6C\x69\x63\x65\x6E\x73\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x2269[0];exports[_0x2269[1]]=function(_0xf65bx1){};function onSave(_0xf65bx1,_0xf65bx3,_0xf65bx4){_0xf65bx1[_0x2269[3]](_0x2269[2],_0xf65bx3)}function onRemove(_0xf65bx1,_0xf65bx3,_0xf65bx4){_0xf65bx1[_0x2269[3]](_0x2269[4],_0xf65bx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+// var License = require('../../models').License;
+
+exports.register = function (socket) {
+  // License.afterCreate(function(doc) {
+  //   onSave(socket, doc);
+  // });
+  // License.afterDestroy(function(doc) {
+  //   onRemove(socket, doc);
+  // });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('license:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('license:remove', doc);
+}
index be304f4..344873c 100644 (file)
@@ -1 +1,18 @@
-var _0xa592=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x6F\x72\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xa592[0];var express=require(_0xa592[1]);var controller=require(_0xa592[2]);var router=express.Router();router[_0xa592[5]](_0xa592[3],controller[_0xa592[4]]);router[_0xa592[5]](_0xa592[6],controller[_0xa592[7]]);router[_0xa592[9]](_0xa592[3],controller[_0xa592[8]]);router[_0xa592[9]](_0xa592[10],controller[_0xa592[11]]);router[_0xa592[13]](_0xa592[6],controller[_0xa592[12]]);router[_0xa592[14]](_0xa592[6],controller[_0xa592[12]]);router[_0xa592[16]](_0xa592[3],controller[_0xa592[15]]);router[_0xa592[16]](_0xa592[6],controller[_0xa592[17]]);module[_0xa592[18]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_account.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+// router.get('/:id/applications', controller.getApplications);
+router.post('/', controller.create);
+router.post('/:id/applications', controller.sortApplications);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/', controller.bulkDestroy);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index db950f2..32461ae 100644 (file)
@@ -1 +1,291 @@
-var _0x886d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x69\x6E\x63\x6F\x6D\x69\x6E\x67","\x62\x6F\x64\x79","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x73\x6F\x72\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79","\x6C\x6F\x67","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68","\x66\x69\x6E\x64","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x886d[0];var _=require(_0x886d[1]);var util=require(_0x886d[2]);var async=require(_0x886d[3]);var sequelize=require(_0x886d[5])[_0x886d[4]];var MailAccount=require(_0x886d[5])[_0x886d[6]];var MailApplication=require(_0x886d[5])[_0x886d[7]];var MailServerIn=require(_0x886d[5])[_0x886d[8]];var MailServerOut=require(_0x886d[5])[_0x886d[9]];exports[_0x886d[10]]=function(_0xa047x9,_0xa047xa){var _0xa047xb=[_0x886d[11],_0x886d[12],_0x886d[13]];var _0xa047xc=_0xa047x9[_0x886d[15]][_0x886d[14]]?parseInt(_0xa047x9[_0x886d[15]][_0x886d[14]],10):100;var _0xa047xd=_0xa047x9[_0x886d[15]][_0x886d[16]]?parseInt(_0xa047x9[_0x886d[15]][_0x886d[16]],10):0;var _0xa047xe={where:{},limit:_0xa047xc,offset:_0xa047xd*_0xa047xc,include:[{all:true}]};_[_0x886d[30]](_0xa047x9[_0x886d[15]],function(_0xa047xf,_0xa047x10){switch(_0xa047x10){case _0x886d[14]:;case _0x886d[16]:break ;;case _0x886d[19]:_0xa047xe[_0x886d[17]]=util[_0x886d[22]](_0x886d[18],_0xa047x9[_0x886d[15]][_0x886d[19]],_0xa047x9[_0x886d[15]][_0x886d[20]]||_0x886d[21])||null;break ;;case _0x886d[20]:break ;;case _0x886d[28]:_0xa047xe[_0x886d[24]][_0x886d[23]]=[];_0xa047xb[_0x886d[27]](function(_0xa047x11){var _0xa047x12={};_0xa047x12[_0xa047x11]={$like:_0x886d[25]+_0xa047xf+_0x886d[25]};_0xa047xe[_0x886d[24]][_0x886d[23]][_0x886d[26]](_0xa047x12);});break ;;default:_0xa047xe[_0x886d[24]][_0xa047x10]={$like:{}};_0xa047xe[_0x886d[24]][_0xa047x10][_0x886d[29]]=_0x886d[25]+_0xa047xf+_0x886d[25];;}});MailAccount[_0x886d[44]](_0xa047xe)[_0x886d[43]](function(_0xa047x14){var _0xa047x15=Math[_0x886d[33]](_0xa047x14[_0x886d[32]]/_0xa047xc);var _0xa047x16=_0xa047x15>(_0xa047xe[_0x886d[34]]+1)?util[_0x886d[22]](_0x886d[35],_0xa047x9[_0x886d[36]],_0xa047x9[_0x886d[38]][_0x886d[37]],_0xa047x9[_0x886d[39]],_0xa047xd+1):null;var _0xa047x17=_0xa047xd>0?util[_0x886d[22]](_0x886d[35],_0xa047x9[_0x886d[36]],_0xa047x9[_0x886d[38]][_0x886d[37]],_0xa047x9[_0x886d[39]],_0xa047xd-1):null;_0xa047xa[_0x886d[42]](200)[_0x886d[41]]({count:_0xa047x14[_0x886d[32]],rows:_0xa047x14[_0x886d[40]],next_page:_0xa047x16,previous_page:_0xa047x17,total_pages:_0xa047x15});})[_0x886d[31]](function(_0xa047x13){return handleError(_0xa047xa,_0xa047x13)});};exports[_0x886d[45]]=function(_0xa047x9,_0xa047xa,_0xa047x18){MailAccount[_0x886d[49]](_0xa047x9[_0x886d[48]][_0x886d[47]],{include:[{all:true}]})[_0x886d[43]](function(_0xa047x19){if(!_0xa047x19){return _0xa047xa[_0x886d[46]](404)};return _0xa047xa[_0x886d[41]](_0xa047x19);})[_0x886d[31]](function(_0xa047x13){return _0xa047x18(_0xa047x13)})};exports[_0x886d[50]]=function(_0xa047x9,_0xa047xa,_0xa047x18){return sequelize[_0x886d[55]](function(_0xa047x1a){return MailAccount[_0x886d[50]]({name:_0xa047x9[_0x886d[53]][_0x886d[12]],address:_0xa047x9[_0x886d[53]][_0x886d[13]],description:_0xa047x9[_0x886d[53]][_0x886d[11]]},{transaction:_0xa047x1a})[_0x886d[43]](function(_0xa047x19){_0xa047x9[_0x886d[53]][_0x886d[52]][_0x886d[51]]=_0xa047x19[_0x886d[47]];return MailServerIn[_0x886d[50]](_0xa047x9[_0x886d[53]][_0x886d[52]],{transaction:_0xa047x1a})[_0x886d[43]](function(_0xa047x1b){_0xa047x9[_0x886d[53]][_0x886d[54]][_0x886d[51]]=_0xa047x19[_0x886d[47]];return MailServerOut[_0x886d[50]](_0xa047x9[_0x886d[53]][_0x886d[54]],{transaction:_0xa047x1a});});})})[_0x886d[43]](function(_0xa047x14){return _0xa047xa[_0x886d[42]](201)[_0x886d[41]](_0xa047x14)})[_0x886d[31]](function(_0xa047x13){return _0xa047x18(_0xa047x13)})};exports[_0x886d[56]]=function(_0xa047x9,_0xa047xa){if(_0xa047x9[_0x886d[53]][_0x886d[47]]){delete _0xa047x9[_0x886d[53]][_0x886d[47]]};MailAccount[_0x886d[49]](_0xa047x9[_0x886d[48]][_0x886d[47]])[_0x886d[43]](function(_0xa047x19){if(!_0xa047x19){return _0xa047xa[_0x886d[46]](404)};var _0xa047x1c=_[_0x886d[57]](_0xa047x19,_0xa047x9[_0x886d[53]]);_0xa047x1c[_0x886d[58]]()[_0x886d[43]](function(){return _0xa047xa[_0x886d[42]](200)[_0x886d[41]](_0xa047x19)})[_0x886d[31]](function(_0xa047x13){return handleError(_0xa047xa,_0xa047x13)});})[_0x886d[31]](function(_0xa047x13){return handleError(_0xa047xa,_0xa047x13)});};exports[_0x886d[59]]=function(_0xa047x9,_0xa047xa,_0xa047x18){MailApplication[_0x886d[68]]({where:{id:_0xa047x9[_0x886d[53]][_0x886d[62]]}})[_0x886d[43]](function(_0xa047x1d){var _0xa047x1e=_0xa047x1d;async[_0x886d[69]]([function(_0xa047x1f){MailApplication[_0x886d[60]]({where:{id:_0xa047x9[_0x886d[53]][_0x886d[62]]}})[_0x886d[43]](function(){console[_0x886d[61]](_0x886d[60]);_0xa047x1f();})[_0x886d[31]](function(_0xa047x13){_0xa047x1f(_0xa047x13)})},function(_0xa047x1f){var _0xa047x20=[];for(var _0xa047x21=0;_0xa047x21<_0xa047x9[_0x886d[53]][_0x886d[62]][_0x886d[63]];_0xa047x21++){var _0xa047x22=_[_0x886d[64]](_0xa047x1e,{"\x69\x64":_0xa047x9[_0x886d[53]][_0x886d[62]][_0xa047x21]});if(_0xa047x22){_0xa047x22[_0x886d[65]]=_0xa047x21+1;_0xa047x20[_0x886d[26]](_0xa047x22[_0x886d[66]]);};};MailApplication[_0x886d[67]](_0xa047x20)[_0x886d[43]](function(){console[_0x886d[61]](_0x886d[67]);_0xa047x1f();})[_0x886d[31]](function(_0xa047x13){_0xa047x1f(_0xa047x13)});},function(_0xa047x1f){MailApplication[_0x886d[68]]({where:{id:_0xa047x9[_0x886d[53]][_0x886d[62]]},order:_0x886d[65],include:[{all:true}]})[_0x886d[43]](function(_0xa047x1d){console[_0x886d[61]](_0xa047x1d);_0xa047x1f(null,_0xa047x1d);})[_0x886d[31]](function(_0xa047x13){_0xa047x1f(_0xa047x13)})}],function(_0xa047x13,_0xa047x14){if(_0xa047x13){return handleError(_0xa047xa,_0xa047x13)}else {return _0xa047xa[_0x886d[42]](201)[_0x886d[41]](_0xa047x14)}});})[_0x886d[31]](function(_0xa047x13){return handleError(_0xa047xa,_0xa047x13)})};exports[_0x886d[60]]=function(_0xa047x9,_0xa047xa,_0xa047x18){MailAccount[_0x886d[49]](_0xa047x9[_0x886d[48]][_0x886d[47]])[_0x886d[43]](function(_0xa047x19){if(!_0xa047x19){return _0xa047xa[_0x886d[46]](404)};_0xa047x19[_0x886d[60]]()[_0x886d[43]](function(){return _0xa047xa[_0x886d[46]](204)})[_0x886d[31]](function(_0xa047x13){return _0xa047x18(_0xa047x13)});})[_0x886d[31]](function(_0xa047x13){return _0xa047x18(_0xa047x13)})};exports[_0x886d[70]]=function(_0xa047x9,_0xa047xa){MailAccount[_0x886d[60]]({where:{id:_0xa047x9[_0x886d[15]][_0x886d[47]]},individualHooks:true})[_0x886d[43]](function(){return _0xa047xa[_0x886d[46]](204)})[_0x886d[31]](function(_0xa047x13){return handleError(_0xa047xa,_0xa047x13)})};function handleError(_0xa047xa,_0xa047x13){return _0xa047xa[_0x886d[42]](500)[_0x886d[41]](_0xa047x13)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var async = require('async');
+
+// IMAP MODULES
+// var Imap = require("mail-listener2");
+// SMTP MODULES
+// var nodemailer = require('nodemailer');
+// var smtpTransport = require('nodemailer-smtp-transport');
+
+var sequelize = require('../../models').sequelize;
+var MailAccount = require('../../models').MailAccount;
+var MailApplication = require('../../models').MailApplication;
+var MailServerIn = require('../../models').MailServerIn;
+var MailServerOut = require('../../models').MailServerOut;
+
+// Get list of mailAccounts
+exports.index = function(req, res) {
+
+  var attributes = ['description', 'name', 'address'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page,
+    include: [{
+      all: true
+    }]
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  MailAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mailAccount
+exports.show = function(req, res, next) {
+  MailAccount
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(mailAccount) {
+      if (!mailAccount) {
+        return res.sendStatus(404);
+      }
+      return res.send(mailAccount);
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Creates a new mailAccount in the DB.
+exports.create = function(req, res, next) {
+
+  return sequelize.transaction(function(t) {
+
+    // chain all your queries here. make sure you return them.
+    return MailAccount
+      .create({
+        name: req.body.name,
+        address: req.body.address,
+        description: req.body.description
+      }, {
+        transaction: t
+      }).then(function(mailAccount) {
+        // MAIL ACCOUNT ID SETUP
+        req.body.incoming.MailAccountId = mailAccount.id;
+        return MailServerIn
+          .create(req.body.incoming, {
+            transaction: t
+          })
+          .then(function(mailServerIn) {
+            // MAIL ACCOUNT ID SETUP
+            req.body.outgoing.MailAccountId = mailAccount.id;
+            return MailServerOut
+              .create(req.body.outgoing, {
+                transaction: t
+              })
+          });
+      });
+  }).then(function(result) {
+    return res.status(201).send(result);
+  }).catch(function(err) {
+    return next(err);
+  });
+};
+
+// Updates an existing mailAccount in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  MailAccount
+    .findById(req.params.id)
+    .then(function(mailAccount) {
+      if (!mailAccount) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailAccount, req.body);
+      updated
+        .save()
+        .then(function() {
+          return res.status(200).send(mailAccount);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Sort Mail Applications
+exports.sortApplications = function(req, res, next) {
+
+  MailApplication
+    .findAll({
+      where: {
+        id: req.body.applications
+      }
+    })
+    .then(function(mailApplications) {
+      var tmpMailApplications = mailApplications;
+
+      async.waterfall([
+        function(callback) {
+          MailApplication
+            .destroy({
+              where: {
+                id: req.body.applications
+              }
+            }).then(function() {
+              console.log('destroy');
+              callback();
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        },
+        function(callback) {
+          // arg1 now equals 'one' and arg2 now equals 'two'
+          var sortedApplications = [];
+          for (var i = 0; i < req.body.applications.length; i++) {
+            var tmpMailApplication = _.find(tmpMailApplications, {
+              'id': req.body.applications[i]
+            });
+            if (tmpMailApplication) {
+              tmpMailApplication.priority = i + 1;
+              sortedApplications.push(tmpMailApplication.dataValues);
+            }
+          }
+
+          MailApplication
+            .bulkCreate(sortedApplications)
+            .then(function() {
+              console.log('bulkCreate');
+              callback();
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        },
+        function(callback) {
+          // arg1 now equals 'three'
+          MailApplication
+            .findAll({
+              where: {
+                id: req.body.applications
+              },
+              order: 'priority',
+              include: [{
+                all: true
+              }]
+            })
+            .then(function(mailApplications) {
+              console.log(mailApplications);
+              callback(null, mailApplications);
+            })
+            .catch(function(err) {
+              callback(err);
+            });
+        }
+      ], function(err, result) {
+        // result now equals 'done'
+        if (err) {
+          return handleError(res, err);
+        } else {
+          return res.status(201).send(result);
+        }
+      });
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a mailAccount from the DB.
+exports.destroy = function(req, res, next) {
+  MailAccount
+    .findById(req.params.id)
+    .then(function(mailAccount) {
+      if (!mailAccount) {
+        return res.sendStatus(404);
+      }
+      mailAccount.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return next(err);
+        });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function(req, res) {
+  MailAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index b239d8c..5b51c79 100644 (file)
@@ -1 +1,27 @@
-var _0x7aca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7aca[0];var MailAccount=require(_0x7aca[2])[_0x7aca[1]];exports[_0x7aca[3]]=function(_0xf7dex2){MailAccount[_0x7aca[4]](function(_0xf7dex3){onSave(_0xf7dex2,_0xf7dex3)});MailAccount[_0x7aca[5]](function(_0xf7dex3){onSave(_0xf7dex2,_0xf7dex3)});MailAccount[_0x7aca[6]](function(_0xf7dex3){onRemove(_0xf7dex2,_0xf7dex3)});};function onSave(_0xf7dex2,_0xf7dex3,_0xf7dex5){_0xf7dex2[_0x7aca[8]](_0x7aca[7],_0xf7dex3)}function onRemove(_0xf7dex2,_0xf7dex3,_0xf7dex5){_0xf7dex2[_0x7aca[8]](_0x7aca[9],_0xf7dex3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var MailAccount = require('../../models').MailAccount;
+
+exports.register = function(socket) {
+  MailAccount.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  MailAccount.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  MailAccount.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_account:remove', doc);
+}
index 4811138..80fd2bd 100644 (file)
@@ -1 +1,20 @@
-var _0x82c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74"];_0x82c8[0];var should=require(_0x82c8[1]);var app=require(_0x82c8[2]);var request=require(_0x82c8[3]);describe(_0x82c8[4],function(){it(_0x82c8[5],function(_0x53ffx4){request(app)[_0x82c8[13]](_0x82c8[12])[_0x82c8[11]](200)[_0x82c8[11]](_0x82c8[10],/json/)[_0x82c8[9]](function(_0x53ffx5,_0x53ffx6){if(_0x53ffx5){return _0x53ffx4(_0x53ffx5)};_0x53ffx6[_0x82c8[8]][_0x82c8[1]][_0x82c8[7]][_0x82c8[6]](Array);_0x53ffx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/mail/accounts', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/mail/accounts')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 1230fa3..3c132bb 100644 (file)
@@ -1 +1,15 @@
-var _0xf72d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf72d[0];var express=require(_0xf72d[1]);var controller=require(_0xf72d[2]);var router=express.Router();router[_0xf72d[5]](_0xf72d[3],controller[_0xf72d[4]]);router[_0xf72d[5]](_0xf72d[6],controller[_0xf72d[7]]);router[_0xf72d[9]](_0xf72d[3],controller[_0xf72d[8]]);router[_0xf72d[11]](_0xf72d[6],controller[_0xf72d[10]]);router[_0xf72d[12]](_0xf72d[6],controller[_0xf72d[10]]);router[_0xf72d[14]](_0xf72d[6],controller[_0xf72d[13]]);module[_0xf72d[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_application.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index d264ba3..260557e 100644 (file)
@@ -1 +1,111 @@
-var _0xa023=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x6D\x61\x78","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xa023[0];var _=require(_0xa023[1]);var MailApplication=require(_0xa023[3])[_0xa023[2]];exports[_0xa023[4]]=function(_0x8ed6x3,_0x8ed6x4,_0x8ed6x5){MailApplication[_0xa023[11]]({where:_0x8ed6x3[_0xa023[9]],order:_0xa023[10],include:[{all:true}]})[_0xa023[8]](function(_0x8ed6x7){return _0x8ed6x4[_0xa023[7]](200)[_0xa023[6]](_0x8ed6x7)})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)})};exports[_0xa023[12]]=function(_0x8ed6x3,_0x8ed6x4,_0x8ed6x5){MailApplication[_0xa023[16]](_0x8ed6x3[_0xa023[15]][_0xa023[14]],{include:[{all:true}]})[_0xa023[8]](function(_0x8ed6x8){if(!_0x8ed6x8){return _0x8ed6x4[_0xa023[13]](404)};return _0x8ed6x4[_0xa023[6]](_0x8ed6x8);})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)})};exports[_0xa023[17]]=function(_0x8ed6x3,_0x8ed6x4,_0x8ed6x5){MailApplication[_0xa023[20]](_0xa023[10],{where:{MailAccountId:_0x8ed6x3[_0xa023[18]][_0xa023[19]]}})[_0xa023[8]](function(_0x8ed6x9){_0x8ed6x3[_0xa023[18]][_0xa023[10]]=_0x8ed6x9?++_0x8ed6x9:1;MailApplication[_0xa023[17]](_0x8ed6x3[_0xa023[18]])[_0xa023[8]](function(_0x8ed6x8){return _0x8ed6x4[_0xa023[7]](201)[_0xa023[6]](_0x8ed6x8)})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)});})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)})};exports[_0xa023[21]]=function(_0x8ed6x3,_0x8ed6x4,_0x8ed6x5){if(_0x8ed6x3[_0xa023[18]][_0xa023[14]]){delete _0x8ed6x3[_0xa023[18]][_0xa023[14]]};MailApplication[_0xa023[16]](_0x8ed6x3[_0xa023[15]][_0xa023[14]])[_0xa023[8]](function(_0x8ed6x8){if(!_0x8ed6x8){return _0x8ed6x4[_0xa023[13]](404)};var _0x8ed6xa=_[_0xa023[22]](_0x8ed6x8,_0x8ed6x3[_0xa023[18]]);_0x8ed6xa[_0xa023[23]]()[_0xa023[8]](function(){return _0x8ed6x4[_0xa023[7]](200)[_0xa023[6]](_0x8ed6x8)})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)});})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)});};exports[_0xa023[24]]=function(_0x8ed6x3,_0x8ed6x4,_0x8ed6x5){MailApplication[_0xa023[16]](_0x8ed6x3[_0xa023[15]][_0xa023[14]])[_0xa023[8]](function(_0x8ed6x8){if(!_0x8ed6x8){return _0x8ed6x4[_0xa023[13]](404)};_0x8ed6x8[_0xa023[24]]()[_0xa023[8]](function(){return _0x8ed6x4[_0xa023[13]](204)})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)});})[_0xa023[5]](function(_0x8ed6x6){return handleError(_0x8ed6x4,_0x8ed6x6)})};function handleError(_0x8ed6x4,_0x8ed6x6){return _0x8ed6x4[_0xa023[7]](500)[_0xa023[6]](_0x8ed6x6)}
\ No newline at end of file
+'use strict';
+var _ = require('lodash');
+var MailApplication = require('../../models').MailApplication;
+// Get list of mailApplications
+exports.index = function(req, res, next) {
+  MailApplication
+    .findAll({
+      where: req.query,
+      order: 'priority',
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(mailApplications) {
+      return res.status(200).send(mailApplications);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Get a single mailApplication
+exports.show = function(req, res, next) {
+  MailApplication
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(mailApplication) {
+      if (!mailApplication) {
+        return res.sendStatus(404);
+      }
+      return res.send(mailApplication);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Creates a new mailApplication in the DB.
+exports.create = function(req, res, next) {
+  MailApplication
+    .max('priority', {
+      where: {
+        MailAccountId: req.body.MailAccountId
+      }
+    }).then(function(max) {
+      // SET PRIORITY
+      req.body.priority = max ? ++max : 1;
+      MailApplication
+        .create(req.body)
+        .then(function(mailApplication) {
+          return res.status(201).send(mailApplication);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Updates an existing mailApplication in the DB.
+exports.update = function(req, res, next) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  MailApplication
+    .findById(req.params.id)
+    .then(function(mailApplication) {
+      if (!mailApplication) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailApplication, req.body);
+      updated
+        .save()
+        .then(function() {
+          return res.status(200).send(mailApplication);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Deletes a mailApplication from the DB.
+exports.destroy = function(req, res, next) {
+  MailApplication
+    .findById(req.params.id)
+    .then(function(mailApplication) {
+      if (!mailApplication) {
+        return res.sendStatus(404);
+      }
+      mailApplication
+        .destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index caba6d0..ead0c90 100644 (file)
@@ -1 +1,24 @@
-var _0x8ae1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8ae1[0];var mailApplication=require(_0x8ae1[2])[_0x8ae1[1]];exports[_0x8ae1[3]]=function(_0x143ax2){mailApplication[_0x8ae1[4]](function(_0x143ax3){onSave(_0x143ax2,_0x143ax3)});mailApplication[_0x8ae1[5]](function(_0x143ax3){onRemove(_0x143ax2,_0x143ax3)});};function onSave(_0x143ax2,_0x143ax3,_0x143ax5){_0x143ax2[_0x8ae1[7]](_0x8ae1[6],_0x143ax3)}function onRemove(_0x143ax2,_0x143ax3,_0x143ax5){_0x143ax2[_0x8ae1[7]](_0x8ae1[8],_0x143ax3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var mailApplication = require('../../models').MailApplication;
+
+exports.register = function(socket) {
+  mailApplication.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  mailApplication.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_application:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_application:remove', doc);
+}
index 51559d2..023b99b 100644 (file)
@@ -1 +1,20 @@
-var _0xaab6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0xaab6[0];var should=require(_0xaab6[1]);var app=require(_0xaab6[2]);var request=require(_0xaab6[3]);describe(_0xaab6[4],function(){it(_0xaab6[5],function(_0x78b2x4){request(app)[_0xaab6[13]](_0xaab6[12])[_0xaab6[11]](200)[_0xaab6[11]](_0xaab6[10],/json/)[_0xaab6[9]](function(_0x78b2x5,_0x78b2x6){if(_0x78b2x5){return _0x78b2x4(_0x78b2x5)};_0x78b2x6[_0xaab6[8]][_0xaab6[1]][_0xaab6[7]][_0xaab6[6]](Array);_0x78b2x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/mail/applications', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/mail/applications')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index d96486f..f154de4 100644 (file)
@@ -1 +1,15 @@
-var _0xa132=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa132[0];var express=require(_0xa132[1]);var controller=require(_0xa132[2]);var router=express.Router();router[_0xa132[5]](_0xa132[3],controller[_0xa132[4]]);router[_0xa132[5]](_0xa132[6],controller[_0xa132[7]]);router[_0xa132[9]](_0xa132[3],controller[_0xa132[8]]);router[_0xa132[11]](_0xa132[6],controller[_0xa132[10]]);router[_0xa132[12]](_0xa132[6],controller[_0xa132[10]]);router[_0xa132[14]](_0xa132[6],controller[_0xa132[13]]);module[_0xa132[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_attachment.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index eddba27..34b659f 100644 (file)
@@ -1 +1,100 @@
-var _0xe126=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x66\x73","\x66\x6F\x72\x6D\x69\x64\x61\x62\x6C\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x66\x69\x6C\x65\x4E\x61\x6D\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x6C\x6F\x61\x64\x44\x69\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x6A\x6F\x69\x6E","\x6B\x65\x65\x70\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x6D\x75\x6C\x74\x69\x70\x6C\x65\x73","\x68\x61\x73\x68","\x73\x69\x7A\x65","\x66\x69\x6C\x65","\x6E\x61\x6D\x65","\x74\x79\x70\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x70\x61\x72\x73\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x75\x6E\x6C\x69\x6E\x6B","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79"];_0xe126[0];var _=require(_0xe126[1]);var path=require(_0xe126[2]);var fs=require(_0xe126[3]);var formidable=require(_0xe126[4]);var Promise=require(_0xe126[5]);var config=require(_0xe126[6]);var MailAttachment=require(_0xe126[8])[_0xe126[7]];exports[_0xe126[9]]=function(_0xf0c9x8,_0xf0c9x9,_0xf0c9xa){MailAttachment[_0xe126[14]]()[_0xe126[13]](function(_0xf0c9xc){return _0xf0c9x9[_0xe126[12]](200)[_0xe126[11]](_0xf0c9xc)})[_0xe126[10]](function(_0xf0c9xb){return _0xf0c9xa(_0xf0c9xb)})};exports[_0xe126[15]]=function(_0xf0c9x8,_0xf0c9x9,_0xf0c9xa){MailAttachment[_0xe126[20]](_0xf0c9x8[_0xe126[19]][_0xe126[18]])[_0xe126[13]](function(_0xf0c9xd){_0xf0c9x9[_0xe126[17]](_0xf0c9xd[_0xe126[2]],_0xf0c9xd[_0xe126[16]])})[_0xe126[10]](function(_0xf0c9xb){return _0xf0c9xa(_0xf0c9xb)})};exports[_0xe126[21]]=function(_0xf0c9x8,_0xf0c9x9,_0xf0c9xa){var _0xf0c9xe= new formidable.IncomingForm();_0xf0c9xe[_0xe126[22]]=path[_0xe126[27]](config[_0xe126[23]],_0xe126[24],_0xe126[25],_0xe126[26]);_0xf0c9xe[_0xe126[28]]=true;_0xf0c9xe[_0xe126[29]]=true;_0xf0c9xe[_0xe126[30]]=true;_0xf0c9xe[_0xe126[36]](_0xf0c9x8,function(_0xf0c9xb,_0xf0c9xe,_0xf0c9xf){if(_0xf0c9xb){return _0xf0c9x9[_0xe126[12]](500)[_0xe126[11]](_0xf0c9xb)};return _0xf0c9x9[_0xe126[12]](201)[_0xe126[11]]({size:_0xf0c9xf[_0xe126[32]][_0xe126[31]],path:_0xf0c9xf[_0xe126[32]][_0xe126[2]],name:_0xf0c9xf[_0xe126[32]][_0xe126[33]],type:_0xf0c9xf[_0xe126[32]][_0xe126[34]],basename:path[_0xe126[35]](_0xf0c9xf[_0xe126[32]][_0xe126[2]])});});};exports[_0xe126[37]]=function(_0xf0c9x8,_0xf0c9x9,_0xf0c9xa){if(_0xf0c9x8[_0xe126[38]][_0xe126[18]]){delete _0xf0c9x8[_0xe126[38]][_0xe126[18]]};MailAttachment[_0xe126[20]](_0xf0c9x8[_0xe126[19]][_0xe126[18]])[_0xe126[13]](function(_0xf0c9xd){if(!_0xf0c9xd){return _0xf0c9x9[_0xe126[39]](404)};var _0xf0c9x10=_[_0xe126[40]](_0xf0c9xd,_0xf0c9x8[_0xe126[38]]);_0xf0c9x10[_0xe126[41]]()[_0xe126[13]](function(){return _0xf0c9x9[_0xe126[12]](200)[_0xe126[11]](_0xf0c9xd)})[_0xe126[10]](function(_0xf0c9xb){return _0xf0c9xa(_0xf0c9xb)});})[_0xe126[10]](function(_0xf0c9xb){return _0xf0c9xa(_0xf0c9xb)});};exports[_0xe126[42]]=function(_0xf0c9x8,_0xf0c9x9,_0xf0c9xa){var _0xf0c9x11=Promise[_0xe126[44]](require(_0xe126[3])[_0xe126[43]]);var _0xf0c9x12=path[_0xe126[27]](config[_0xe126[23]],_0xe126[24],_0xe126[25],_0xe126[26],_0xf0c9x8[_0xe126[19]][_0xe126[18]]);return _0xf0c9x11(_0xf0c9x12)[_0xe126[13]](function(){return _0xf0c9x9[_0xe126[39]](204)})[_0xe126[10]](function(_0xf0c9xb){return handleError(_0xf0c9x9,_0xf0c9xb)});};function handleError(_0xf0c9x9,_0xf0c9xb){return _0xf0c9x9[_0xe126[12]](500)[_0xe126[11]](_0xf0c9xb)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var path = require('path');
+var fs = require('fs');
+var formidable = require('formidable');
+var Promise = require('bluebird');
+
+var config = require('../../config/environment');
+var MailAttachment = require('../../models').MailAttachment;
+
+// Get list of mailAttachments
+exports.index = function (req, res, next) {
+  MailAttachment
+    .findAll()
+    .then(function (mailAttachments) {
+      return res.status(200).send(mailAttachments);
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+// Get a single mailAttachment
+exports.show = function (req, res, next) {
+  MailAttachment
+    .findById(req.params.id)
+    .then(function (mailAttachment) {
+      res.download(mailAttachment.path, mailAttachment.fileName);
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+// Creates a new mailAttachment in the DB.
+exports.create = function (req, res, next) {
+
+  var form = new formidable.IncomingForm();
+  form.uploadDir = path.join(config.root, 'server', 'files', 'attachments');
+  form.keepExtensions = true;
+  form.multiples = true;
+  form.hash = true;
+
+  form.parse(req, function (err, form, wrap) {
+    if (err) {
+      return res.status(500).send(err);
+    }
+    return res.status(201).send({
+      size: wrap.file.size,
+      path: wrap.file.path,
+      name: wrap.file.name,
+      type: wrap.file.type,
+      basename: path.basename(wrap.file.path)
+    });
+  });
+};
+
+// Updates an existing mailAttachment in the DB.
+exports.update = function (req, res, next) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  MailAttachment
+    .findById(req.params.id)
+    .then(function (mailAttachment) {
+      if (!mailAttachment) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailAttachment, req.body);
+      updated.save()
+        .then(function () {
+          return res.status(200).send(mailAttachment);
+        })
+        .catch(function (err) {
+          return next(err);
+        });
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+// Deletes a mailAttachment from the DB.
+exports.destroy = function (req, res, next) {
+  var unlink = Promise.promisify(require("fs").unlink);
+  var _path = path.join(config.root, 'server', 'files', 'attachments', req.params.id);
+
+  return unlink(_path)
+    .then(function () {
+      return res.sendStatus(204);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index b556948..65c9085 100644 (file)
@@ -1 +1,24 @@
-var _0x3883=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3883[0];var mail_attachment=require(_0x3883[2])[_0x3883[1]];exports[_0x3883[3]]=function(_0x1938x2){mail_attachment[_0x3883[4]](function(_0x1938x3){onSave(_0x1938x2,_0x1938x3)});mail_attachment[_0x3883[5]](function(_0x1938x3){onRemove(_0x1938x2,_0x1938x3)});};function onSave(_0x1938x2,_0x1938x3,_0x1938x5){_0x1938x2[_0x3883[7]](_0x3883[6],_0x1938x3)}function onRemove(_0x1938x2,_0x1938x3,_0x1938x5){_0x1938x2[_0x3883[7]](_0x3883[8],_0x1938x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var mail_attachment = require('../../models').MailAttachment;
+
+exports.register = function(socket) {
+  mail_attachment.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  mail_attachment.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_attachment:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_attachment:remove', doc);
+}
index f5fc0b4..d8a2dc4 100644 (file)
@@ -1 +1,16 @@
-var _0xbde6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xbde6[0];var express=require(_0xbde6[1]);var controller=require(_0xbde6[2]);var router=express.Router();router[_0xbde6[5]](_0xbde6[3],controller[_0xbde6[4]]);router[_0xbde6[5]](_0xbde6[6],controller[_0xbde6[7]]);router[_0xbde6[9]](_0xbde6[3],controller[_0xbde6[8]]);router[_0xbde6[11]](_0xbde6[6],controller[_0xbde6[10]]);router[_0xbde6[12]](_0xbde6[6],controller[_0xbde6[10]]);router[_0xbde6[14]](_0xbde6[3],controller[_0xbde6[13]]);router[_0xbde6[14]](_0xbde6[6],controller[_0xbde6[15]]);module[_0xbde6[16]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_business_automation.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/', controller.bulkDestroy);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 9eb4d5e..5c49502 100644 (file)
@@ -1 +1,218 @@
-var _0x118f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x4D\x61\x69\x6C\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x42\x75\x73\x69\x6E\x65\x73\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x6F\x72","\x62\x6F\x64\x79","\x4D\x61\x69\x6C\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x49\x64","\x63\x6F\x6E\x63\x61\x74","\x61\x6E\x64","\x61\x63\x74\x69\x6F\x6E\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x118f[0];var _=require(_0x118f[1]);var util=require(_0x118f[2]);var MailBusinessAutomation=require(_0x118f[4])[_0x118f[3]];var BusinessCondition=require(_0x118f[4])[_0x118f[5]];var BusinessAction=require(_0x118f[4])[_0x118f[6]];var sequelize=require(_0x118f[4])[_0x118f[7]];exports[_0x118f[8]]=function(_0xa58dx7,_0xa58dx8,_0xa58dx9){var _0xa58dxa=[_0x118f[9],_0x118f[10]];var _0xa58dxb=_0xa58dx7[_0x118f[12]][_0x118f[11]]?parseInt(_0xa58dx7[_0x118f[12]][_0x118f[11]],10):100;var _0xa58dxc=_0xa58dx7[_0x118f[12]][_0x118f[13]]?parseInt(_0xa58dx7[_0x118f[12]][_0x118f[13]],10):0;var _0xa58dxd={where:{},limit:_0xa58dxb,offset:_0xa58dxc*_0xa58dxb};_[_0x118f[27]](_0xa58dx7[_0x118f[12]],function(_0xa58dxe,_0xa58dxf){switch(_0xa58dxf){case _0x118f[11]:;case _0x118f[13]:break ;;case _0x118f[16]:_0xa58dxd[_0x118f[14]]=util[_0x118f[19]](_0x118f[15],_0xa58dx7[_0x118f[12]][_0x118f[16]],_0xa58dx7[_0x118f[12]][_0x118f[17]]||_0x118f[18])||null;break ;;case _0x118f[17]:break ;;case _0x118f[25]:_0xa58dxd[_0x118f[21]][_0x118f[20]]=[];_0xa58dxa[_0x118f[24]](function(_0xa58dx10){var _0xa58dx11={};_0xa58dx11[_0xa58dx10]={$like:_0x118f[22]+_0xa58dxe+_0x118f[22]};_0xa58dxd[_0x118f[21]][_0x118f[20]][_0x118f[23]](_0xa58dx11);});break ;;default:_0xa58dxd[_0x118f[21]][_0xa58dxf]={$like:{}};_0xa58dxd[_0x118f[21]][_0xa58dxf][_0x118f[26]]=_0x118f[22]+_0xa58dxe+_0x118f[22];;}});MailBusinessAutomation[_0x118f[42]](_0xa58dxd)[_0x118f[41]](function(_0xa58dx13){var _0xa58dx14=Math[_0x118f[33]](_0xa58dx13[_0x118f[32]]/_0xa58dxb);var _0xa58dx15=_0xa58dx14>(_0xa58dxd[_0x118f[34]]+1)?util[_0x118f[19]](_0x118f[35],_0xa58dx7[_0x118f[36]],_0xa58dx7[_0x118f[38]][_0x118f[37]],_0xa58dx7[_0x118f[39]],_0xa58dxc+1):null;var _0xa58dx16=_0xa58dxc>0?util[_0x118f[19]](_0x118f[35],_0xa58dx7[_0x118f[36]],_0xa58dx7[_0x118f[38]][_0x118f[37]],_0xa58dx7[_0x118f[39]],_0xa58dxc-1):null;_0xa58dx8[_0x118f[30]](200)[_0x118f[29]]({count:_0xa58dx13[_0x118f[32]],mailAutomations:_0xa58dx13[_0x118f[40]],next_page:_0xa58dx15,previous_page:_0xa58dx16,total_pages:_0xa58dx14});})[_0x118f[31]](function(_0xa58dx12){_0xa58dx8[_0x118f[30]](500)[_0x118f[29]]({error:_0x118f[28]})});};exports[_0x118f[43]]=function(_0xa58dx7,_0xa58dx8){MailBusinessAutomation[_0x118f[47]](_0xa58dx7[_0x118f[46]][_0x118f[45]],{include:[{all:true}]})[_0x118f[41]](function(_0xa58dx17){if(!_0xa58dx17){return _0xa58dx8[_0x118f[44]](404)};return _0xa58dx8[_0x118f[29]](_0xa58dx17);})[_0x118f[31]](function(_0xa58dx12){return handleError(_0xa58dx8,_0xa58dx12)})};exports[_0x118f[48]]=function(_0xa58dx7,_0xa58dx8,_0xa58dx9){return sequelize[_0x118f[56]](function(_0xa58dx18){return MailBusinessAutomation[_0x118f[48]](_0xa58dx7[_0x118f[50]],{transaction:_0xa58dx18})[_0x118f[41]](function(_0xa58dx17){var _0xa58dx19=[];if(_0xa58dx7[_0x118f[50]][_0x118f[49]]){_0xa58dx7[_0x118f[50]][_0x118f[49]][_0x118f[24]](function(_0xa58dx1a){_0xa58dx1a[_0x118f[51]]=_0xa58dx17[_0x118f[45]]});_0xa58dx19=_0xa58dx19[_0x118f[52]](_0xa58dx7[_0x118f[50]][_0x118f[49]]);};if(_0xa58dx7[_0x118f[50]][_0x118f[53]]){_0xa58dx7[_0x118f[50]][_0x118f[53]][_0x118f[24]](function(_0xa58dx1a){_0xa58dx1a[_0x118f[51]]=_0xa58dx17[_0x118f[45]]});_0xa58dx19=_0xa58dx19[_0x118f[52]](_0xa58dx7[_0x118f[50]][_0x118f[53]]);};return BusinessCondition[_0x118f[55]](_0xa58dx19,{transaction:_0xa58dx18})[_0x118f[41]](function(_0xa58dx1b){if(_0xa58dx7[_0x118f[50]][_0x118f[54]]){_0xa58dx7[_0x118f[50]][_0x118f[54]][_0x118f[24]](function(_0xa58dx1a){_0xa58dx1a[_0x118f[51]]=_0xa58dx17[_0x118f[45]]})};return BusinessAction[_0x118f[55]](_0xa58dx7[_0x118f[50]][_0x118f[54]],{transaction:_0xa58dx18});});})})[_0x118f[41]](function(){return _0xa58dx8[_0x118f[44]](201)})[_0x118f[31]](function(_0xa58dx12){return _0xa58dx9(_0xa58dx12)})};exports[_0x118f[57]]=function(_0xa58dx7,_0xa58dx8){if(_0xa58dx7[_0x118f[50]][_0x118f[45]]){delete _0xa58dx7[_0x118f[50]][_0x118f[45]]};MailBusinessAutomation[_0x118f[60]]({where:{id:_0xa58dx7[_0x118f[46]][_0x118f[45]]}})[_0x118f[41]](function(_0xa58dx17){if(!_0xa58dx17){return _0xa58dx8[_0x118f[44]](404)};var _0xa58dx1c=_[_0x118f[58]](_0xa58dx17,_0xa58dx7[_0x118f[50]]);_0xa58dx1c[_0x118f[59]]()[_0x118f[41]](function(){return _0xa58dx8[_0x118f[30]](200)[_0x118f[29]](_0xa58dx17)})[_0x118f[31]](function(_0xa58dx12){return handleError(_0xa58dx8,_0xa58dx12)});})[_0x118f[31]](function(_0xa58dx12){return handleError(_0xa58dx8,_0xa58dx12)});};exports[_0x118f[61]]=function(_0xa58dx7,_0xa58dx8){MailBusinessAutomation[_0x118f[47]](_0xa58dx7[_0x118f[46]][_0x118f[45]])[_0x118f[41]](function(_0xa58dx17){if(!_0xa58dx17){return _0xa58dx8[_0x118f[44]](404)};_0xa58dx17[_0x118f[61]]()[_0x118f[41]](function(){return _0xa58dx8[_0x118f[44]](204)})[_0x118f[31]](function(_0xa58dx12){return handleError(_0xa58dx8,_0xa58dx12)});})[_0x118f[31]](function(_0xa58dx12){return handleError(_0xa58dx8,_0xa58dx12)})};exports[_0x118f[62]]=function(_0xa58dx7,_0xa58dx8){MailBusinessAutomation[_0x118f[61]]({where:{id:_0xa58dx7[_0x118f[12]][_0x118f[45]]},individualHooks:true})[_0x118f[41]](function(){return _0xa58dx8[_0x118f[44]](204)})[_0x118f[31]](function(_0xa58dx12){return handleError(_0xa58dx8,_0xa58dx12)})};function handleError(_0xa58dx8,_0xa58dx12){return _0xa58dx8[_0x118f[30]](500)[_0x118f[29]](_0xa58dx12)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var MailBusinessAutomation = require('../../models').MailBusinessAutomation;
+var BusinessCondition = require('../../models').BusinessCondition;
+var BusinessAction = require('../../models').BusinessAction;
+var sequelize = require('../../models').sequelize;
+
+// Get list of agents
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  MailBusinessAutomation
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        mailAutomations: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+// Get a single mailBusinessAutomation
+exports.show = function(req, res) {
+  MailBusinessAutomation
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(mailBusinessAutomation) {
+      if (!mailBusinessAutomation) {
+        return res.sendStatus(404);
+      }
+      return res.send(mailBusinessAutomation);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new mailBusinessAutomation in the DB.
+exports.create = function(req, res, next) {
+
+  return sequelize.transaction(function(t) {
+      return MailBusinessAutomation
+        .create(req.body, {
+          transaction: t
+        })
+        .then(function(mailBusinessAutomation) {
+          var conditions = [];
+          if (req.body.or) {
+            req.body.or.forEach(function(elm) {
+              elm.MailBusinessAutomationId = mailBusinessAutomation.id;
+            });
+            conditions = conditions.concat(req.body.or);
+          }
+
+          if (req.body.and) {
+            req.body.and.forEach(function(elm) {
+              elm.MailBusinessAutomationId = mailBusinessAutomation.id;
+            });
+            conditions = conditions.concat(req.body.and);
+          }
+
+          return BusinessCondition
+            .bulkCreate(conditions, {
+              transaction: t
+            })
+            .then(function(businessCondtions) {
+              if (req.body.actions) {
+                req.body.actions.forEach(function(elm) {
+                  elm.MailBusinessAutomationId = mailBusinessAutomation.id;
+                });
+              }
+
+              return BusinessAction
+                .bulkCreate(req.body.actions, {
+                  transaction: t
+                });
+            });
+        })
+    })
+    .then(function() {
+      // Transaction has been committed
+      // result is whatever the result of the promise chain returned to the transaction callback
+      return res.sendStatus(201);
+    }).catch(function(err) {
+      // Transaction has been rolled back
+      // err is whatever rejected the promise chain returned to the transaction callback
+      return next(err);
+    });
+};
+
+// Updates an existing mailBusinessAutomation in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  MailBusinessAutomation
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(mailBusinessAutomation) {
+      if (!mailBusinessAutomation) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailBusinessAutomation, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(mailBusinessAutomation);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a mailBusinessAutomation from the DB.
+exports.destroy = function(req, res) {
+  MailBusinessAutomation
+    .findById(req.params.id)
+    .then(function(mailBusinessAutomation) {
+      if (!mailBusinessAutomation) {
+        return res.sendStatus(404);
+      }
+      mailBusinessAutomation
+        .destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function(req, res) {
+  MailBusinessAutomation
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index aab6cf5..0887a18 100644 (file)
@@ -1 +1,27 @@
-var _0x6430=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x6430[0];var MailBusinessAutomation=require(_0x6430[2])[_0x6430[1]];exports[_0x6430[3]]=function(_0xeac9x2){MailBusinessAutomation[_0x6430[4]](function(_0xeac9x3,_0xeac9x4){onSave(_0xeac9x2,_0xeac9x3)});MailBusinessAutomation[_0x6430[5]](function(_0xeac9x3,_0xeac9x4){onSave(_0xeac9x2,_0xeac9x3)});MailBusinessAutomation[_0x6430[6]](function(_0xeac9x3){onRemove(_0xeac9x2,_0xeac9x3)});};function onSave(_0xeac9x2,_0xeac9x3,_0xeac9x6){_0xeac9x2[_0x6430[8]](_0x6430[7],_0xeac9x3)}function onRemove(_0xeac9x2,_0xeac9x3,_0xeac9x6){_0xeac9x2[_0x6430[8]](_0x6430[9],_0xeac9x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var MailBusinessAutomation = require('../../models').MailBusinessAutomation;
+
+exports.register = function (socket) {
+  MailBusinessAutomation.afterCreate(function (doc, options) {
+    onSave(socket, doc);
+  });
+  MailBusinessAutomation.afterUpdate(function (doc, options) {
+    onSave(socket, doc);
+  });
+  MailBusinessAutomation.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_business_automation:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_business_automation:remove', doc);
+}
index 4d5d5dd..cd29e6c 100644 (file)
@@ -1 +1,20 @@
-var _0x14ba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x14ba[0];var should=require(_0x14ba[1]);var app=require(_0x14ba[2]);var request=require(_0x14ba[3]);describe(_0x14ba[4],function(){it(_0x14ba[5],function(_0x6b5dx4){request(app)[_0x14ba[13]](_0x14ba[12])[_0x14ba[11]](200)[_0x14ba[11]](_0x14ba[10],/json/)[_0x14ba[9]](function(_0x6b5dx5,_0x6b5dx6){if(_0x6b5dx5){return _0x6b5dx4(_0x6b5dx5)};_0x6b5dx6[_0x14ba[8]][_0x14ba[1]][_0x14ba[7]][_0x14ba[6]](Array);_0x6b5dx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/mail/business/automations', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/mail/business/automations')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index f75205a..fbaf725 100644 (file)
@@ -1 +1,19 @@
-var _0x838d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x64\x65\x6C\x65\x74\x65\x2F\x62\x75\x6C\x6B","\x62\x75\x6C\x6B\x44\x65\x6C\x65\x74\x65","\x2F\x64\x65\x6C\x65\x74\x65\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x838d[0];var express=require(_0x838d[1]);var controller=require(_0x838d[2]);var auth=require(_0x838d[3]);var router=express.Router();router[_0x838d[7]](_0x838d[4],auth[_0x838d[5]](),controller[_0x838d[6]]);router[_0x838d[7]](_0x838d[8],auth[_0x838d[5]](),controller[_0x838d[9]]);router[_0x838d[11]](_0x838d[4],auth[_0x838d[5]](),controller[_0x838d[10]]);router[_0x838d[13]](_0x838d[4],auth[_0x838d[5]](),controller[_0x838d[12]]);router[_0x838d[13]](_0x838d[14],controller[_0x838d[15]]);router[_0x838d[13]](_0x838d[16],controller[_0x838d[12]]);router[_0x838d[13]](_0x838d[8],controller[_0x838d[12]]);router[_0x838d[17]](_0x838d[8],controller[_0x838d[12]]);router[_0x838d[19]](_0x838d[8],controller[_0x838d[18]]);module[_0x838d[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_message.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/', auth.isAuthenticated(), controller.update);
+router.put('/delete/bulk', controller.bulkDelete);
+router.put('/delete/:id', controller.update);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 41978b5..14888d6 100644 (file)
@@ -1 +1,172 @@
-var _0xc32a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x73\x79\x6E\x63","\x68\x74\x6D\x6C\x2D\x74\x6F\x2D\x74\x65\x78\x74","\x66\x6F\x72\x6D\x69\x64\x61\x62\x6C\x65","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x69\x6E\x64\x65\x78","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x77\x68\x65\x72\x65","\x71\x75\x65\x72\x79","\x61\x64\x6D\x69\x6E","\x61\x67\x65\x6E\x74","\x72\x6F\x6C\x65","\x75\x73\x65\x72","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x65\x72\x72\x6F\x72","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x63\x6F\x6D\x6D\x69\x74","\x62\x6F\x64\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x6C\x65\x74\x65","\x54\x52\x41\x53\x48","\x62\x75\x6C\x6B\x55\x70\x64\x61\x74\x65"];_0xc32a[0];var _=require(_0xc32a[1]);var async=require(_0xc32a[2]);var htmlToText=require(_0xc32a[3]);var formidable=require(_0xc32a[4]);var path=require(_0xc32a[5]);var config=require(_0xc32a[6]);var sequelize=require(_0xc32a[8])[_0xc32a[7]];var MailMessage=require(_0xc32a[8])[_0xc32a[9]];var MailAttachment=require(_0xc32a[8])[_0xc32a[10]];var MailRoom=require(_0xc32a[8])[_0xc32a[11]];var MailAccount=require(_0xc32a[8])[_0xc32a[12]];var Contact=require(_0xc32a[8])[_0xc32a[13]];exports[_0xc32a[14]]=function(_0x63fcxd,_0x63fcxe,_0x63fcxf){var _0x63fcx10={order:_0xc32a[15],include:[{all:true,include:[{all:true}]}]};switch(_0x63fcxd[_0xc32a[21]][_0xc32a[20]]){case _0xc32a[18]:_0x63fcx10[_0xc32a[16]]=_0x63fcxd[_0xc32a[17]];break ;;case _0xc32a[19]:break ;;default:;};MailMessage[_0xc32a[26]](_0x63fcx10)[_0xc32a[25]](function(_0x63fcx12){return _0x63fcxe[_0xc32a[24]](200)[_0xc32a[23]](_0x63fcx12)})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)});};exports[_0xc32a[27]]=function(_0x63fcxd,_0x63fcxe,_0x63fcxf){MailMessage[_0xc32a[31]](_0x63fcxd[_0xc32a[30]][_0xc32a[29]],{include:[{all:true,include:[{all:true}]}]})[_0xc32a[25]](function(_0x63fcx13){if(!_0x63fcx13){return _0x63fcxe[_0xc32a[28]](404)};return _0x63fcxe[_0xc32a[23]](_0x63fcx13);})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)})};exports[_0xc32a[32]]=function(_0x63fcxd,_0x63fcxe,_0x63fcxf){return sequelize[_0xc32a[37]]()[_0xc32a[25]](function(_0x63fcx14){return MailMessage[_0xc32a[32]](_0x63fcxd[_0xc32a[36]],{include:[{model:MailAttachment}],transaction:_0x63fcx14})[_0xc32a[25]](function(_0x63fcx13){_0x63fcx14[_0xc32a[35]]();return _0x63fcxe[_0xc32a[24]](201)[_0xc32a[23]](_0x63fcx13);})[_0xc32a[22]](function(_0x63fcx11){console[_0xc32a[33]](_0x63fcx11);_0x63fcx14[_0xc32a[34]]();return handleError(_0x63fcxe,_0x63fcx11);})})};exports[_0xc32a[38]]=function(_0x63fcxd,_0x63fcxe,_0x63fcxf){MailMessage[_0xc32a[31]](_0x63fcxd[_0xc32a[30]][_0xc32a[29]],{include:[{all:true}]})[_0xc32a[25]](function(_0x63fcx13){if(!_0x63fcx13){return _0x63fcxe[_0xc32a[28]](404)};var _0x63fcx15=_[_0xc32a[39]](_0x63fcx13,_0x63fcxd[_0xc32a[36]]);_0x63fcx15[_0xc32a[40]]()[_0xc32a[25]](function(){return _0x63fcxe[_0xc32a[24]](200)[_0xc32a[23]](_0x63fcx15)})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)});})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)})};exports[_0xc32a[41]]=function(_0x63fcxd,_0x63fcxe,_0x63fcxf){MailMessage[_0xc32a[31]](_0x63fcxd[_0xc32a[30]][_0xc32a[29]])[_0xc32a[25]](function(_0x63fcx13){if(!_0x63fcx13){return _0x63fcxe[_0xc32a[28]](404)};_0x63fcx13[_0xc32a[41]]()[_0xc32a[25]](function(){return _0x63fcxe[_0xc32a[28]](204)})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)});})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)})};exports[_0xc32a[42]]=function(_0x63fcxd,_0x63fcxe,_0x63fcxf){MailMessage[_0xc32a[44]]({where:{id:{$in:_0x63fcxd[_0xc32a[36]][_0xc32a[29]]}},attributes:{directory:_0xc32a[43]}})[_0xc32a[25]](function(_0x63fcx13){if(!_0x63fcx13){return _0x63fcxe[_0xc32a[28]](404)};_0x63fcx13[_0xc32a[41]]()[_0xc32a[25]](function(){return _0x63fcxe[_0xc32a[28]](204)})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)});})[_0xc32a[22]](function(_0x63fcx11){return handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf)})};function handleError(_0x63fcxe,_0x63fcx11,_0x63fcxf){return _0x63fcxe[_0xc32a[24]](500)[_0xc32a[23]](_0x63fcx11)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var async = require('async');
+
+var htmlToText = require('html-to-text');
+var formidable = require('formidable');
+var path = require('path');
+
+var config = require('../../config/environment');
+var sequelize = require('../../models').sequelize;
+var MailMessage = require('../../models').MailMessage;
+var MailAttachment = require('../../models').MailAttachment;
+var MailRoom = require('../../models').MailRoom;
+var MailAccount = require('../../models').MailAccount;
+var Contact = require('../../models').Contact;
+
+// Get list of mail_messages
+exports.index = function (req, res, next) {
+  var params = {
+    order: 'createdAt DESC',
+    include: [{
+      all: true,
+      include: [{
+        all: true
+      }]
+    }]
+  };
+
+  switch (req.user.role) {
+  case 'admin':
+    params.where = req.query;
+    break;
+  case 'agent':
+    break;
+  default:
+
+  }
+
+  MailMessage
+    .findAll(params)
+    .then(function (mail_messages) {
+      return res.status(200).send(mail_messages);
+    })
+    .catch(function (err) {
+      return handleError(res, err, next);
+    });
+};
+
+// Get a single mailMessage
+exports.show = function (req, res, next) {
+  MailMessage
+    .findById(req.params.id, {
+      include: [{
+        all: true,
+        include: [{
+          all: true
+        }]
+      }]
+    })
+    .then(function (mailMessage) {
+      if (!mailMessage) {
+        return res.sendStatus(404);
+      }
+      return res.send(mailMessage);
+    })
+    .catch(function (err) {
+      return handleError(res, err, next);
+    });
+};
+
+// Creates a new mailMessage in the DB.
+exports.create = function (req, res, next) {
+  return sequelize.transaction().then(function (t) {
+    return MailMessage
+      .create(req.body, {
+        include: [{
+          model: MailAttachment
+        }],
+        transaction: t
+      }).then(function (mailMessage) {
+        t.commit();
+        return res.status(201).send(mailMessage);
+      }).catch(function (err) {
+        console.error(err);
+        t.rollback();
+        return handleError(res, err);
+      });
+  });
+};
+
+// Updates an existing mailMessage in the DB.
+exports.update = function (req, res, next) {
+
+  MailMessage
+    .findById(req.params.id, {
+      include: [{
+        all: true
+      }]
+    })
+    .then(function (mailMessage) {
+      if (!mailMessage) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailMessage, req.body);
+      updated.save()
+        .then(function () {
+          return res.status(200).send(updated);
+        })
+        .catch(function (err) {
+          return handleError(res, err, next);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err, next);
+    });
+};
+
+// Deletes a mailMessage from the DB.
+exports.destroy = function (req, res, next) {
+  MailMessage
+    .findById(req.params.id)
+    .then(function (mailMessage) {
+      if (!mailMessage) {
+        return res.sendStatus(404);
+      }
+      mailMessage.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err, next);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err, next);
+    });
+};
+
+// Deletes a mailMessage from the DB.
+exports.bulkDelete = function (req, res, next) {
+  MailMessage
+    .bulkUpdate({
+      where: {
+        id: {
+          $in: req.body.id
+        }
+      },
+      attributes: {
+        directory: 'TRASH'
+      }
+    })
+    .then(function (mailMessage) {
+      if (!mailMessage) {
+        return res.sendStatus(404);
+      }
+      mailMessage.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err, next);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err, next);
+    });
+};
+
+function handleError(res, err, next) {
+  return res.status(500).send(err);
+}
index 218a881..61eebd5 100644 (file)
@@ -1 +1,29 @@
-var _0x45e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x45e9[0];var MailMessage=require(_0x45e9[2])[_0x45e9[1]];exports[_0x45e9[3]]=function(_0x7fd8x2){MailMessage[_0x45e9[4]](function(_0x7fd8x3){onSave(_0x7fd8x2,_0x7fd8x3)});MailMessage[_0x45e9[5]](function(_0x7fd8x3){onSave(_0x7fd8x2,_0x7fd8x3)});MailMessage[_0x45e9[6]](function(_0x7fd8x3){onRemove(_0x7fd8x2,_0x7fd8x3)});};function onSave(_0x7fd8x2,_0x7fd8x3,_0x7fd8x5){_0x7fd8x2[_0x45e9[8]](_0x45e9[7],_0x7fd8x3)}function onRemove(_0x7fd8x2,_0x7fd8x3,_0x7fd8x5){_0x7fd8x2[_0x45e9[8]](_0x45e9[9],_0x7fd8x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var MailMessage = require('../../models').MailMessage;
+
+exports.register = function(socket) {
+  MailMessage.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+
+  MailMessage.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+
+  MailMessage.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_message:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_message:remove', doc);
+}
index e1afcb1..bae067a 100644 (file)
@@ -1 +1,18 @@
-var _0x7a0f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x7a0f[0];var express=require(_0x7a0f[1]);var controller=require(_0x7a0f[2]);var router=express.Router();router[_0x7a0f[5]](_0x7a0f[3],controller[_0x7a0f[4]]);router[_0x7a0f[5]](_0x7a0f[6],controller[_0x7a0f[7]]);router[_0x7a0f[9]](_0x7a0f[3],controller[_0x7a0f[8]]);router[_0x7a0f[9]](_0x7a0f[10],controller[_0x7a0f[11]]);router[_0x7a0f[13]](_0x7a0f[6],controller[_0x7a0f[12]]);router[_0x7a0f[13]](_0x7a0f[10],controller[_0x7a0f[14]]);router[_0x7a0f[15]](_0x7a0f[6],controller[_0x7a0f[12]]);router[_0x7a0f[17]](_0x7a0f[3],controller[_0x7a0f[16]]);router[_0x7a0f[17]](_0x7a0f[6],controller[_0x7a0f[18]]);module[_0x7a0f[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_queue.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.post('/:id/agents', controller.addAgents);
+router.put('/:id', controller.update);
+router.put('/:id/agents', controller.removeAgents);
+router.patch('/:id', controller.update);
+router.delete('/', controller.bulkDestroy);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 77262b9..a93d548 100644 (file)
@@ -1 +1,211 @@
-var _0x717b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x73\x74\x72\x61\x74\x65\x67\x79","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x55\x73\x65\x72\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x717b[0];var _=require(_0x717b[1]);var util=require(_0x717b[2]);var MailQueue=require(_0x717b[4])[_0x717b[3]];exports[_0x717b[5]]=function(_0x246dx4,_0x246dx5){var _0x246dx6=[_0x717b[6],_0x717b[7],_0x717b[8],_0x717b[9]];var _0x246dx7=_0x246dx4[_0x717b[11]][_0x717b[10]]?parseInt(_0x246dx4[_0x717b[11]][_0x717b[10]],10):100;var _0x246dx8=_0x246dx4[_0x717b[11]][_0x717b[12]]?parseInt(_0x246dx4[_0x717b[11]][_0x717b[12]],10):0;var _0x246dx9={where:{},limit:_0x246dx7,offset:_0x246dx8*_0x246dx7,include:[{all:true}]};_[_0x717b[26]](_0x246dx4[_0x717b[11]],function(_0x246dxa,_0x246dxb){switch(_0x246dxb){case _0x717b[10]:;case _0x717b[12]:break ;;case _0x717b[15]:_0x246dx9[_0x717b[13]]=util[_0x717b[18]](_0x717b[14],_0x246dx4[_0x717b[11]][_0x717b[15]],_0x246dx4[_0x717b[11]][_0x717b[16]]||_0x717b[17])||null;break ;;case _0x717b[16]:break ;;case _0x717b[24]:_0x246dx9[_0x717b[20]][_0x717b[19]]=[];_0x246dx6[_0x717b[23]](function(_0x246dxc){var _0x246dxd={};_0x246dxd[_0x246dxc]={$like:_0x717b[21]+_0x246dxa+_0x717b[21]};_0x246dx9[_0x717b[20]][_0x717b[19]][_0x717b[22]](_0x246dxd);});break ;;default:_0x246dx9[_0x717b[20]][_0x246dxb]={$like:{}};_0x246dx9[_0x717b[20]][_0x246dxb][_0x717b[25]]=_0x717b[21]+_0x246dxa+_0x717b[21];;}});MailQueue[_0x717b[40]](_0x246dx9)[_0x717b[39]](function(_0x246dxf){var _0x246dx10=Math[_0x717b[29]](_0x246dxf[_0x717b[28]]/_0x246dx7);var _0x246dx11=_0x246dx10>(_0x246dx9[_0x717b[30]]+1)?util[_0x717b[18]](_0x717b[31],_0x246dx4[_0x717b[32]],_0x246dx4[_0x717b[34]][_0x717b[33]],_0x246dx4[_0x717b[35]],_0x246dx8+1):null;var _0x246dx12=_0x246dx8>0?util[_0x717b[18]](_0x717b[31],_0x246dx4[_0x717b[32]],_0x246dx4[_0x717b[34]][_0x717b[33]],_0x246dx4[_0x717b[35]],_0x246dx8-1):null;_0x246dx5[_0x717b[38]](200)[_0x717b[37]]({count:_0x246dxf[_0x717b[28]],rows:_0x246dxf[_0x717b[36]],next_page:_0x246dx11,previous_page:_0x246dx12,total_pages:_0x246dx10});})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)});};exports[_0x717b[41]]=function(_0x246dx4,_0x246dx5){MailQueue[_0x717b[45]](_0x246dx4[_0x717b[44]][_0x717b[43]])[_0x717b[39]](function(_0x246dx13){if(!_0x246dx13){return _0x246dx5[_0x717b[42]](404)};return _0x246dx5[_0x717b[37]](_0x246dx13);})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)})};exports[_0x717b[46]]=function(_0x246dx4,_0x246dx5){MailQueue[_0x717b[46]](_0x246dx4[_0x717b[47]])[_0x717b[39]](function(_0x246dx13){return _0x246dx5[_0x717b[38]](201)[_0x717b[37]](_0x246dx13)})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)})};exports[_0x717b[48]]=function(_0x246dx4,_0x246dx5){if(_0x246dx4[_0x717b[47]][_0x717b[43]]){delete _0x246dx4[_0x717b[47]][_0x717b[43]]};MailQueue[_0x717b[45]](_0x246dx4[_0x717b[44]][_0x717b[43]])[_0x717b[39]](function(_0x246dx13){if(!_0x246dx13){return _0x246dx5[_0x717b[42]](404)};var _0x246dx14=_[_0x717b[49]](_0x246dx13,_0x246dx4[_0x717b[47]]);_0x246dx14[_0x717b[50]]()[_0x717b[39]](function(){return _0x246dx5[_0x717b[38]](200)[_0x717b[37]](_0x246dx13)})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)});})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)});};exports[_0x717b[51]]=function(_0x246dx4,_0x246dx5,_0x246dx15){return MailQueue[_0x717b[45]](_0x246dx4[_0x717b[44]][_0x717b[43]])[_0x717b[39]](function(_0x246dx13){if(_0x246dx13){return _0x246dx13[_0x717b[53]](_0x246dx4[_0x717b[47]][_0x717b[52]],{individualHooks:true})}else {throw  new Error(_0x717b[54])}})[_0x717b[39]](function(){return _0x246dx5[_0x717b[42]](200)})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)})};exports[_0x717b[55]]=function(_0x246dx4,_0x246dx5){return MailQueue[_0x717b[45]](_0x246dx4[_0x717b[44]][_0x717b[43]])[_0x717b[39]](function(_0x246dx13){if(_0x246dx13){return _0x246dx13[_0x717b[56]](_0x246dx4[_0x717b[47]][_0x717b[52]],{individualHooks:true})}else {throw  new Error(_0x717b[54])}})[_0x717b[39]](function(){return _0x246dx5[_0x717b[42]](200)})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)})};exports[_0x717b[57]]=function(_0x246dx4,_0x246dx5){MailQueue[_0x717b[45]](_0x246dx4[_0x717b[44]][_0x717b[43]])[_0x717b[39]](function(_0x246dx13){if(!_0x246dx13){return _0x246dx5[_0x717b[42]](404)};_0x246dx13[_0x717b[57]]()[_0x717b[39]](function(){return _0x246dx5[_0x717b[42]](204)})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)});})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)})};exports[_0x717b[58]]=function(_0x246dx4,_0x246dx5){MailQueue[_0x717b[57]]({where:{id:_0x246dx4[_0x717b[11]][_0x717b[43]]},individualHooks:true})[_0x717b[39]](function(){return _0x246dx5[_0x717b[42]](204)})[_0x717b[27]](function(_0x246dxe){return handleError(_0x246dx5,_0x246dxe)})};function handleError(_0x246dx5,_0x246dxe){return _0x246dx5[_0x717b[38]](500)[_0x717b[37]](_0x246dxe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var MailQueue = require('../../models').MailQueue;
+
+// Get list of mailQueues
+exports.index = function(req, res) {
+
+  var attributes = ['description', 'name', 'timeout', 'strategy'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page,
+    include: [{
+      all: true
+    }]
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  MailQueue
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mailQueue
+exports.show = function(req, res) {
+  MailQueue
+    .findById(req.params.id)
+    .then(function(mailQueue) {
+      if (!mailQueue) {
+        return res.sendStatus(404);
+      }
+      return res.send(mailQueue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new mailQueue in the DB.
+exports.create = function(req, res) {
+  MailQueue
+    .create(req.body)
+    .then(function(mailQueue) {
+      return res.status(201).send(mailQueue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing mailQueue in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+
+  MailQueue
+    .findById(req.params.id)
+    .then(function(mailQueue) {
+      if (!mailQueue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailQueue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(mailQueue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing user_has_mailQueue in the DB.
+exports.addAgents = function(req, res, next) {
+  return MailQueue
+    .findById(req.params.id)
+    .then(function(mailQueue) {
+      if (mailQueue) {
+        return mailQueue
+          .addUsers(req.body.agents, {
+            individualHooks: true
+          });
+      } else {
+        throw new Error('MailQueue not found');
+      }
+    })
+    .then(function() {
+      return res.sendStatus(200);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.removeAgents = function(req, res) {
+  return MailQueue
+    .findById(req.params.id)
+    .then(function(mailQueue) {
+      if (mailQueue) {
+        return mailQueue
+          .removeUsers(req.body.agents, {
+            individualHooks: true
+          });
+      } else {
+        throw new Error('MailQueue not found');
+      }
+    })
+    .then(function() {
+      return res.sendStatus(200);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a mailQueue from the DB.
+exports.destroy = function(req, res) {
+  MailQueue
+    .findById(req.params.id)
+    .then(function(mailQueue) {
+      if (!mailQueue) {
+        return res.sendStatus(404);
+      }
+      mailQueue
+        .destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function(req, res) {
+  MailQueue
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 6e2725c..3518b62 100644 (file)
@@ -1 +1,24 @@
-var _0x12e3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x12e3[0];var MailQueue=require(_0x12e3[2])[_0x12e3[1]];exports[_0x12e3[3]]=function(_0x25d0x2){MailQueue[_0x12e3[4]](function(_0x25d0x3){onSave(_0x25d0x2,_0x25d0x3)});MailQueue[_0x12e3[5]](function(_0x25d0x3){onRemove(_0x25d0x2,_0x25d0x3)});};function onSave(_0x25d0x2,_0x25d0x3,_0x25d0x5){_0x25d0x2[_0x12e3[7]](_0x12e3[6],_0x25d0x3)}function onRemove(_0x25d0x2,_0x25d0x3,_0x25d0x5){_0x25d0x2[_0x12e3[7]](_0x12e3[8],_0x25d0x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var MailQueue = require('../../models').MailQueue;
+
+exports.register = function(socket) {
+  MailQueue.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  MailQueue.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_queue:remove', doc);
+}
index 31d06da..195e672 100644 (file)
@@ -1 +1,20 @@
-var _0xc1de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0xc1de[0];var should=require(_0xc1de[1]);var app=require(_0xc1de[2]);var request=require(_0xc1de[3]);describe(_0xc1de[4],function(){it(_0xc1de[5],function(_0x227ex4){request(app)[_0xc1de[13]](_0xc1de[12])[_0xc1de[11]](200)[_0xc1de[11]](_0xc1de[10],/json/)[_0xc1de[9]](function(_0x227ex5,_0x227ex6){if(_0x227ex5){return _0x227ex4(_0x227ex5)};_0x227ex6[_0xc1de[8]][_0xc1de[1]][_0xc1de[7]][_0xc1de[6]](Array);_0x227ex4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/mail/queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/mail/queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index aad8469..cdf81b9 100644 (file)
@@ -1 +1,21 @@
-var _0xee34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x67\x65\x6E\x74\x2F\x3A\x69\x64","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x75\x70\x64\x61\x74\x65\x41\x67\x65\x6E\x74\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xee34[0];var express=require(_0xee34[1]);var controller=require(_0xee34[2]);var auth=require(_0xee34[3]);var router=express.Router();router[_0xee34[7]](_0xee34[4],auth[_0xee34[5]](),controller[_0xee34[6]]);router[_0xee34[7]](_0xee34[8],controller[_0xee34[9]]);router[_0xee34[7]](_0xee34[10],controller[_0xee34[11]]);router[_0xee34[7]](_0xee34[12],controller[_0xee34[13]]);router[_0xee34[15]](_0xee34[4],controller[_0xee34[14]]);router[_0xee34[17]](_0xee34[10],controller[_0xee34[16]]);router[_0xee34[17]](_0xee34[12],controller[_0xee34[18]]);router[_0xee34[19]](_0xee34[10],controller[_0xee34[16]]);router[_0xee34[21]](_0xee34[4],controller[_0xee34[20]]);router[_0xee34[21]](_0xee34[10],controller[_0xee34[22]]);module[_0xee34[23]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_room.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+// TODO endpoint to filter just NEW/OPEN
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/agent/:id', controller.agentIndex);
+router.get('/:id', controller.show);
+router.get('/:id/agents', controller.showAgents);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.put('/:id/agents', controller.updateAgents);
+router.patch('/:id', controller.update);
+router.delete('/', controller.bulkDestroy);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 8fec6a0..bb54e53 100644 (file)
@@ -1 +1,257 @@
-var _0x24ba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x69\x6E\x64\x65\x78","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x73\x74\x61\x74\x75\x73","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x4E\x45\x57","\x4F\x50\x45\x4E","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x77\x68\x65\x72\x65","\x69\x6E\x63\x6C\x75\x64\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6A\x6F\x62\x49\x64","\x4D\x61\x69\x6C\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x61\x73\x73\x69\x67\x6E\x65\x64","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x73\x65\x74\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x24ba[0];var _=require(_0x24ba[1]);var util=require(_0x24ba[2]);var User=require(_0x24ba[4])[_0x24ba[3]];var Contact=require(_0x24ba[4])[_0x24ba[5]];var MailRoom=require(_0x24ba[4])[_0x24ba[6]];var MailMessage=require(_0x24ba[4])[_0x24ba[7]];var MailAccount=require(_0x24ba[4])[_0x24ba[8]];var MailAttachment=require(_0x24ba[4])[_0x24ba[9]];exports[_0x24ba[10]]=function(_0xc019x9,_0xc019xa,_0xc019xb){var _0xc019xc=[_0x24ba[11],_0x24ba[12],_0x24ba[13]];var _0xc019xd=_0xc019x9[_0x24ba[15]][_0x24ba[14]]?parseInt(_0xc019x9[_0x24ba[15]][_0x24ba[14]],10):100;var _0xc019xe=_0xc019x9[_0x24ba[15]][_0x24ba[16]]?parseInt(_0xc019x9[_0x24ba[15]][_0x24ba[16]],10):0;var _0xc019xf={where:{$or:[{status:_0x24ba[17]},{status:_0x24ba[18]}]},include:[{model:User,attributes:[_0x24ba[19],_0x24ba[20],_0x24ba[21],_0x24ba[22],_0x24ba[23],_0x24ba[24]]},{model:MailAccount}],limit:_0xc019xd,offset:_0xc019xe*_0xc019xd};if(_0xc019x9[_0x24ba[25]][_0x24ba[23]]===_0x24ba[26]){_0xc019xf[_0x24ba[28]][0][_0x24ba[27]]={id:_0xc019x9[_0x24ba[25]][_0x24ba[19]]}};_[_0x24ba[41]](_0xc019x9[_0x24ba[15]],function(_0xc019x10,_0xc019x11){switch(_0xc019x11){case _0x24ba[14]:;case _0x24ba[16]:break ;;case _0x24ba[31]:_0xc019xf[_0x24ba[29]]=util[_0x24ba[34]](_0x24ba[30],_0xc019x9[_0x24ba[15]][_0x24ba[31]],_0xc019x9[_0x24ba[15]][_0x24ba[32]]||_0x24ba[33])||null;break ;;case _0x24ba[32]:break ;;case _0x24ba[39]:_0xc019xf[_0x24ba[27]][_0x24ba[35]]=[];_0xc019xc[_0x24ba[38]](function(_0xc019x12){var _0xc019x13={};_0xc019x13[_0xc019x12]={$like:_0x24ba[36]+_0xc019x10+_0x24ba[36]};_0xc019xf[_0x24ba[27]][_0x24ba[35]][_0x24ba[37]](_0xc019x13);});break ;;default:_0xc019xf[_0x24ba[27]][_0xc019x11]={$like:{}};_0xc019xf[_0x24ba[27]][_0xc019x11][_0x24ba[40]]=_0x24ba[36]+_0xc019x10+_0x24ba[36];;}});console[_0x24ba[42]](_0x24ba[15],_0xc019xf);return MailRoom[_0x24ba[55]](_0xc019xf)[_0x24ba[54]](function(_0xc019x15){console[_0x24ba[42]](_0xc019x15);var _0xc019x16=Math[_0x24ba[45]](_0xc019x15[_0x24ba[44]]/_0xc019xd);var _0xc019x17=_0xc019x16>(_0xc019xf[_0x24ba[46]]+1)?util[_0x24ba[34]](_0x24ba[47],_0xc019x9[_0x24ba[48]],_0xc019x9[_0x24ba[50]][_0x24ba[49]],_0xc019x9[_0x24ba[51]],_0xc019xe+1):null;var _0xc019x18=_0xc019xe>0?util[_0x24ba[34]](_0x24ba[47],_0xc019x9[_0x24ba[48]],_0xc019x9[_0x24ba[50]][_0x24ba[49]],_0xc019x9[_0x24ba[51]],_0xc019xe-1):null;_0xc019xa[_0x24ba[13]](200)[_0x24ba[53]]({count:_0xc019x15[_0x24ba[44]],mailRooms:_0xc019x15[_0x24ba[52]],next_page:_0xc019x17,previous_page:_0xc019x18,total_pages:_0xc019x16});})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)});};exports[_0x24ba[56]]=function(_0xc019x9,_0xc019xa,_0xc019xb){return MailRoom[_0x24ba[58]]({where:{UserId:_0xc019x9[_0x24ba[57]][_0x24ba[19]]},include:[{all:true}]})[_0x24ba[54]](function(_0xc019x19){return _0xc019xa[_0x24ba[13]](200)[_0x24ba[53]](_0xc019x19)})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};exports[_0x24ba[59]]=function(_0xc019x9,_0xc019xa,_0xc019xb){return MailRoom[_0x24ba[61]](_0xc019x9[_0x24ba[57]][_0x24ba[19]],{include:[{model:MailMessage,include:[{model:MailAttachment}]},{model:MailAccount}]})[_0x24ba[54]](function(_0xc019x1a){if(!_0xc019x1a){return _0xc019xa[_0x24ba[60]](404)};return _0xc019xa[_0x24ba[53]](_0xc019x1a);})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};exports[_0x24ba[62]]=function(_0xc019x9,_0xc019xa,_0xc019xb){return MailRoom[_0x24ba[61]](_0xc019x9[_0x24ba[57]][_0x24ba[19]])[_0x24ba[54]](function(_0xc019x1a){if(!_0xc019x1a){return _0xc019xa[_0x24ba[60]](404)};return _0xc019x1a[_0x24ba[63]]({attributes:[_0x24ba[19],_0x24ba[20],_0x24ba[21],_0x24ba[22],_0x24ba[23],_0x24ba[24]]});})[_0x24ba[54]](function(_0xc019x1b){return _0xc019xa[_0x24ba[53]](_0xc019x1b)})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};exports[_0x24ba[64]]=function(_0xc019x9,_0xc019xa,_0xc019xb){return MailRoom[_0x24ba[64]](_0xc019x9[_0x24ba[65]])[_0x24ba[54]](function(_0xc019x1a){return _0xc019xa[_0x24ba[13]](201)[_0x24ba[53]](_0xc019x1a)})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};exports[_0x24ba[66]]=function(_0xc019x9,_0xc019xa,_0xc019xb){return MailRoom[_0x24ba[61]](_0xc019x9[_0x24ba[57]][_0x24ba[19]])[_0x24ba[54]](function(_0xc019x1a){if(!_0xc019x1a){return _0xc019xa[_0x24ba[60]](404)};if(_0xc019x1a[_0x24ba[67]]){throw  new Error(_0x24ba[68])};var _0xc019x1c=_[_0x24ba[69]](_0xc019x1a,_0xc019x9[_0x24ba[65]]);return _0xc019x1c[_0x24ba[70]]();})[_0x24ba[54]](function(_0xc019x1a){return _0xc019xa[_0x24ba[13]](200)[_0x24ba[53]](_0xc019x1a)})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};exports[_0x24ba[71]]=function(_0xc019x9,_0xc019xa,_0xc019xb){return MailRoom[_0x24ba[61]](_0xc019x9[_0x24ba[57]][_0x24ba[19]])[_0x24ba[54]](function(_0xc019x1a){if(!_0xc019x1a){return _0xc019xa[_0x24ba[60]](404)};return _0xc019x1a[_0x24ba[73]](_0xc019x9[_0x24ba[65]][_0x24ba[72]]);})[_0x24ba[54]](function(){return _0xc019xa[_0x24ba[60]](200)})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};exports[_0x24ba[74]]=function(_0xc019x9,_0xc019xa,_0xc019xb){return MailRoom[_0x24ba[61]](_0xc019x9[_0x24ba[57]][_0x24ba[19]])[_0x24ba[54]](function(_0xc019x1a){if(!_0xc019x1a){return _0xc019xa[_0x24ba[60]](404)};return _0xc019x1a[_0x24ba[74]]();})[_0x24ba[54]](function(){return _0xc019xa[_0x24ba[60]](204)})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};exports[_0x24ba[75]]=function(_0xc019x9,_0xc019xa){return MailRoom[_0x24ba[74]]({where:{id:_0xc019x9[_0x24ba[15]][_0x24ba[19]]},individualHooks:true})[_0x24ba[54]](function(){return _0xc019xa[_0x24ba[60]](200)})[_0x24ba[43]](function(_0xc019x14){return handleError(_0xc019xa,_0xc019x14)})};function handleError(_0xc019xa,_0xc019x14){return _0xc019xa[_0x24ba[13]](500)[_0x24ba[53]](_0xc019x14)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var User = require('../../models').User;
+var Contact = require('../../models').Contact;
+var MailRoom = require('../../models').MailRoom;
+var MailMessage = require('../../models').MailMessage;
+var MailAccount = require('../../models').MailAccount;
+var MailAttachment = require('../../models').MailAttachment;
+
+// Get list of mailRooms
+exports.index = function (req, res, next) {
+  var attributes = ['subject', 'from', 'status'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      $or: [{
+        status: 'NEW'
+      }, {
+        status: 'OPEN'
+      }]
+    },
+    include: [{
+      model: User,
+      attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
+    }, {
+      model: MailAccount
+    }],
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  if (req.user.role === 'agent') {
+    query.include[0].where = {
+      id: req.user.id
+    }
+  }
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  console.log('query', query);
+
+
+  return MailRoom
+    .findAndCountAll(query)
+    .then(function (result) {
+      console.log(result);
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        mailRooms: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of agent mailRooms
+exports.agentIndex = function (req, res, next) {
+  return MailRoom
+    .findAll({
+      where: {
+        UserId: req.params.id
+      },
+      include: [{
+        all: true
+      }]
+    })
+    .then(function (mailRooms) {
+      return res.status(200).send(mailRooms);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mailRoom
+exports.show = function (req, res, next) {
+  return MailRoom
+    .findById(req.params.id, {
+      include: [{
+        model: MailMessage,
+        include: [{
+          model: MailAttachment
+        }, ]
+      }, {
+        model: MailAccount
+      }]
+    })
+    .then(function (mailRoom) {
+      if (!mailRoom) {
+        return res.sendStatus(404);
+      }
+
+      return res.send(mailRoom);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mailRoom
+exports.showAgents = function (req, res, next) {
+  return MailRoom
+    .findById(req.params.id)
+    .then(function (mailRoom) {
+      if (!mailRoom) {
+        return res.sendStatus(404);
+      }
+
+      return mailRoom
+        .getUsers({
+          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
+        });
+    })
+    .then(function (users) {
+      return res.send(users);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new mailRoom in the DB.
+exports.create = function (req, res, next) {
+  return MailRoom
+    .create(req.body)
+    .then(function (mailRoom) {
+      return res.status(201).send(mailRoom);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing mailRoom in the DB.
+exports.update = function (req, res, next) {
+  return MailRoom
+    .findById(req.params.id)
+    .then(function (mailRoom) {
+      if (!mailRoom) {
+        return res.sendStatus(404);
+      }
+      // CHECK IF MAIL IS ALREADY ASSIGNED
+      if (mailRoom.jobId) {
+        throw new Error('Mail already assigned');
+      }
+      var updated = _.merge(mailRoom, req.body);
+
+      return updated
+        .save();
+    })
+    .then(function (mailRoom) {
+      return res.status(200).send(mailRoom);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mailRoom
+exports.updateAgents = function (req, res, next) {
+  return MailRoom
+    .findById(req.params.id)
+    .then(function (mailRoom) {
+      if (!mailRoom) {
+        return res.sendStatus(404);
+      }
+
+      return mailRoom
+        .setUsers(req.body.agents);
+    })
+    .then(function () {
+      return res.sendStatus(200);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a mailRoom from the DB.
+exports.destroy = function (req, res, next) {
+  return MailRoom
+    .findById(req.params.id)
+    .then(function (mailRoom) {
+      if (!mailRoom) {
+        return res.sendStatus(404);
+      }
+      return mailRoom.destroy();
+    })
+    .then(function () {
+      return res.sendStatus(204);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function (req, res) {
+  return MailRoom
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function () {
+      return res.sendStatus(200);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 364f8df..4039980 100644 (file)
@@ -1 +1,47 @@
-var _0x958c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x55\x73\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x958c[0];var MailMessage=require(_0x958c[2])[_0x958c[1]];var MailRoom=require(_0x958c[2])[_0x958c[3]];var User=require(_0x958c[2])[_0x958c[4]];exports[_0x958c[5]]=function(_0x932cx4){MailRoom[_0x958c[6]](function(_0x932cx5){onSave(_0x932cx4,_0x932cx5)});MailRoom[_0x958c[7]](function(_0x932cx5){onRemove(_0x932cx4,_0x932cx5)});MailRoom[_0x958c[13]](function(_0x932cx5){MailRoom[_0x958c[12]](_0x932cx5[_0x958c[11]],{include:[{all:true}]})[_0x958c[10]](function(_0x932cx7){onSave(_0x932cx4,_0x932cx7)})[_0x958c[9]](function(_0x932cx6){console[_0x958c[8]](_0x932cx6)})});MailRoom[_0x958c[7]](function(_0x932cx5){onRemove(_0x932cx4,_0x932cx5)});};function onSave(_0x932cx4,_0x932cx5,_0x932cx9){_0x932cx4[_0x958c[15]](_0x958c[14],_0x932cx5)}function onRemove(_0x932cx4,_0x932cx5,_0x932cx9){_0x932cx4[_0x958c[15]](_0x958c[16],_0x932cx5)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+
+var MailMessage = require('../../models').MailMessage;
+var MailRoom = require('../../models').MailRoom;
+var User = require('../../models').User;
+
+exports.register = function(socket) {
+  MailRoom.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+
+  MailRoom.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+
+  MailRoom.afterUpdate(function(doc) {
+    MailRoom
+      .findById(doc.id, {
+        include: [{
+          all: true
+        }]
+      })
+      .then(function(mailRoom) {
+        onSave(socket, mailRoom);
+      })
+      .catch(function(err) {
+        console.error(err);
+      });
+  });
+
+  MailRoom.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_room:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_room:remove', doc);
+}
index 99ce18f..adb146b 100644 (file)
@@ -1 +1,15 @@
-var _0x2763=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2763[0];var express=require(_0x2763[1]);var controller=require(_0x2763[2]);var router=express.Router();router[_0x2763[5]](_0x2763[3],controller[_0x2763[4]]);router[_0x2763[5]](_0x2763[6],controller[_0x2763[7]]);router[_0x2763[9]](_0x2763[3],controller[_0x2763[8]]);router[_0x2763[11]](_0x2763[6],controller[_0x2763[10]]);router[_0x2763[12]](_0x2763[6],controller[_0x2763[10]]);router[_0x2763[14]](_0x2763[6],controller[_0x2763[13]]);module[_0x2763[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_server_in.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 8335b36..4b9bb68 100644 (file)
@@ -1 +1,98 @@
-var _0x4ee1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x65\x72\x72\x6F\x72","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x4ee1[0];var _=require(_0x4ee1[1]);var MailServerIn=require(_0x4ee1[3])[_0x4ee1[2]];exports[_0x4ee1[4]]=function(_0x499fx3,_0x499fx4){MailServerIn[_0x4ee1[9]]()[_0x4ee1[8]](function(_0x499fx6){return _0x499fx4[_0x4ee1[7]](200)[_0x4ee1[6]](_0x499fx6)})[_0x4ee1[5]](function(_0x499fx5){return handleError(_0x499fx4,_0x499fx5)})};exports[_0x4ee1[10]]=function(_0x499fx3,_0x499fx4){MailServerIn[_0x4ee1[14]](_0x499fx3[_0x4ee1[13]][_0x4ee1[12]])[_0x4ee1[8]](function(_0x499fx7){if(!_0x499fx7){return _0x499fx4[_0x4ee1[11]](404)};return _0x499fx4[_0x4ee1[6]](_0x499fx7);})[_0x4ee1[5]](function(_0x499fx5){return handleError(_0x499fx4,_0x499fx5)})};exports[_0x4ee1[15]]=function(_0x499fx3,_0x499fx4){MailServerIn[_0x4ee1[15]](_0x499fx3[_0x4ee1[16]])[_0x4ee1[8]](function(_0x499fx7){return _0x499fx4[_0x4ee1[7]](201)[_0x4ee1[6]](_0x499fx7)})[_0x4ee1[5]](function(_0x499fx5){return handleError(_0x499fx4,_0x499fx5)})};exports[_0x4ee1[17]]=function(_0x499fx3,_0x499fx4){if(_0x499fx3[_0x4ee1[16]][_0x4ee1[12]]){delete _0x499fx3[_0x4ee1[16]][_0x4ee1[12]]};return MailServerIn[_0x4ee1[14]](_0x499fx3[_0x4ee1[13]][_0x4ee1[12]])[_0x4ee1[8]](function(_0x499fx7){if(!_0x499fx7){return _0x499fx4[_0x4ee1[11]](404)};var _0x499fx8=_[_0x4ee1[19]](_0x499fx7,_0x499fx3[_0x4ee1[16]]);_0x499fx8[_0x4ee1[20]]()[_0x4ee1[8]](function(){return _0x499fx4[_0x4ee1[7]](200)[_0x4ee1[6]](_0x499fx7)})[_0x4ee1[5]](function(_0x499fx5){console[_0x4ee1[18]](_0x499fx5);return handleError(_0x499fx4,_0x499fx5);});})[_0x4ee1[5]](function(_0x499fx5){console[_0x4ee1[18]](_0x499fx5);return handleError(_0x499fx4,_0x499fx5);});};exports[_0x4ee1[21]]=function(_0x499fx3,_0x499fx4){MailServerIn[_0x4ee1[14]](_0x499fx3[_0x4ee1[13]][_0x4ee1[12]])[_0x4ee1[8]](function(_0x499fx7){if(!_0x499fx7){return _0x499fx4[_0x4ee1[11]](404)};_0x499fx7[_0x4ee1[21]]()[_0x4ee1[8]](function(){return _0x499fx4[_0x4ee1[11]](204)})[_0x4ee1[5]](function(_0x499fx5){return handleError(_0x499fx4,_0x499fx5)});})[_0x4ee1[5]](function(_0x499fx5){return handleError(_0x499fx4,_0x499fx5)})};function handleError(_0x499fx4,_0x499fx5){return _0x499fx4[_0x4ee1[7]](500)[_0x4ee1[6]](_0x499fx5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var MailServerIn = require('../../models').MailServerIn;
+
+// Get list of mail_server_ins
+exports.index = function (req, res) {
+  MailServerIn
+    .findAll()
+    .then(function (mail_server_ins) {
+      return res.status(200).send(mail_server_ins);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mailServerIn
+exports.show = function (req, res) {
+  MailServerIn
+    .findById(req.params.id)
+    .then(function (mailServerIn) {
+      if (!mailServerIn) {
+        return res.sendStatus(404);
+      }
+      return res.send(mailServerIn);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new mailServerIn in the DB.
+exports.create = function (req, res) {
+  MailServerIn
+    .create(req.body)
+    .then(function (mailServerIn) {
+      return res.status(201).send(mailServerIn);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing mailServerIn in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  return MailServerIn
+    .findById(req.params.id)
+    .then(function (mailServerIn) {
+      if (!mailServerIn) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailServerIn, req.body);
+      updated
+        .save()
+        .then(function () {
+          return res.status(200).send(mailServerIn);
+        })
+        .catch(function (err) {
+          console.error(err);
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      console.error(err);
+      return handleError(res, err);
+    });
+};
+
+// Deletes a mailServerIn from the DB.
+exports.destroy = function (req, res) {
+  MailServerIn
+    .findById(req.params.id)
+    .then(function (mailServerIn) {
+      if (!mailServerIn) {
+        return res.sendStatus(404);
+      }
+      mailServerIn
+        .destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 24633c8..811977e 100644 (file)
@@ -1 +1,27 @@
-var _0x91c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x91c8[0];var MailServerIn=require(_0x91c8[2])[_0x91c8[1]];exports[_0x91c8[3]]=function(_0x1ee7x2){MailServerIn[_0x91c8[4]](function(_0x1ee7x3){onSave(_0x1ee7x2,_0x1ee7x3)});MailServerIn[_0x91c8[5]](function(_0x1ee7x3){onSave(_0x1ee7x2,_0x1ee7x3)});MailServerIn[_0x91c8[6]](function(_0x1ee7x3){onRemove(_0x1ee7x2,_0x1ee7x3)});};function onSave(_0x1ee7x2,_0x1ee7x3,_0x1ee7x5){_0x1ee7x2[_0x91c8[8]](_0x91c8[7],_0x1ee7x3)}function onRemove(_0x1ee7x2,_0x1ee7x3,_0x1ee7x5){_0x1ee7x2[_0x91c8[8]](_0x91c8[9],_0x1ee7x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var MailServerIn = require('../../models').MailServerIn;
+
+exports.register = function(socket) {
+  MailServerIn.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  MailServerIn.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  MailServerIn.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_server_in:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_server_in:remove', doc);
+}
index c1ef880..687b16c 100644 (file)
@@ -1 +1,18 @@
-var _0x4e35=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x73\x65\x72\x76\x69\x63\x65","\x69\x6E\x64\x65\x78\x53\x65\x72\x76\x69\x63\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x73\x74","\x74\x65\x73\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x74\x65\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4e35[0];var express=require(_0x4e35[1]);var controller=require(_0x4e35[2]);var router=express.Router();router[_0x4e35[5]](_0x4e35[3],controller[_0x4e35[4]]);router[_0x4e35[5]](_0x4e35[6],controller[_0x4e35[7]]);router[_0x4e35[5]](_0x4e35[8],controller[_0x4e35[9]]);router[_0x4e35[5]](_0x4e35[10],controller[_0x4e35[11]]);router[_0x4e35[13]](_0x4e35[3],controller[_0x4e35[12]]);router[_0x4e35[13]](_0x4e35[14],controller[_0x4e35[11]]);router[_0x4e35[16]](_0x4e35[8],controller[_0x4e35[15]]);router[_0x4e35[17]](_0x4e35[8],controller[_0x4e35[15]]);router[_0x4e35[19]](_0x4e35[8],controller[_0x4e35[18]]);module[_0x4e35[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_server_out.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/service', controller.indexService);
+router.get('/:id', controller.show);
+router.get('/:id/test', controller.test);
+router.post('/', controller.create);
+router.post('/test', controller.test);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index f31eb26..8cf2b5e 100644 (file)
@@ -1 +1,166 @@
-var _0xac48=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x69\x6E\x64\x65\x78\x53\x65\x72\x76\x69\x63\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x74\x65\x73\x74","\x65\x72\x72\x6F\x72","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x45\x52\x52\x4F\x52","\x63\x6F\x6D\x6D\x69\x74","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x20","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x20\x74\x65\x73\x74\x2E\x2E","\x53\x45\x4E\x44\x49\x4E\x47","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E"];_0xac48[0];var _=require(_0xac48[1]);var MailServerOut=require(_0xac48[3])[_0xac48[2]];var MailMessage=require(_0xac48[3])[_0xac48[4]];var sequelize=require(_0xac48[3])[_0xac48[5]];exports[_0xac48[6]]=function(_0x38f4x5,_0x38f4x6){MailServerOut[_0xac48[11]]()[_0xac48[10]](function(_0x38f4x8){return _0x38f4x6[_0xac48[9]](200)[_0xac48[8]](_0x38f4x8)})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)})};exports[_0xac48[12]]=function(_0x38f4x5,_0x38f4x6){MailServerOut[_0xac48[13]]({where:{service:true}})[_0xac48[10]](function(_0x38f4x9){return _0x38f4x6[_0xac48[9]](200)[_0xac48[8]](_0x38f4x9)})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)})};exports[_0xac48[14]]=function(_0x38f4x5,_0x38f4x6){MailServerOut[_0xac48[18]](_0x38f4x5[_0xac48[17]][_0xac48[16]])[_0xac48[10]](function(_0x38f4x9){if(!_0x38f4x9){return _0x38f4x6[_0xac48[15]](404)};return _0x38f4x6[_0xac48[8]](_0x38f4x9);})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)})};exports[_0xac48[19]]=function(_0x38f4x5,_0x38f4x6){MailServerOut[_0xac48[19]](_0x38f4x5[_0xac48[20]])[_0xac48[10]](function(_0x38f4x9){return _0x38f4x6[_0xac48[9]](201)[_0xac48[8]](_0x38f4x9)})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)})};exports[_0xac48[21]]=function(_0x38f4x5,_0x38f4x6){if(_0x38f4x5[_0xac48[20]][_0xac48[16]]){delete _0x38f4x5[_0xac48[20]][_0xac48[16]]};MailServerOut[_0xac48[18]](_0x38f4x5[_0xac48[17]][_0xac48[16]])[_0xac48[10]](function(_0x38f4x9){if(!_0x38f4x9){return _0x38f4x6[_0xac48[15]](404)};var _0x38f4xa=_[_0xac48[22]](_0x38f4x9,_0x38f4x5[_0xac48[20]]);_0x38f4xa[_0xac48[23]]()[_0xac48[10]](function(){return _0x38f4x6[_0xac48[9]](200)[_0xac48[8]](_0x38f4x9)})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)});})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)});};exports[_0xac48[24]]=function(_0x38f4x5,_0x38f4x6){MailServerOut[_0xac48[18]](_0x38f4x5[_0xac48[17]][_0xac48[16]])[_0xac48[10]](function(_0x38f4x9){if(!_0x38f4x9){return _0x38f4x6[_0xac48[15]](404)};_0x38f4x9[_0xac48[24]]()[_0xac48[10]](function(){return _0x38f4x6[_0xac48[15]](204)})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)});})[_0xac48[7]](function(_0x38f4x7){return handleError(_0x38f4x6,_0x38f4x7)})};exports[_0xac48[25]]=function(_0x38f4x5,_0x38f4x6){return sequelize[_0xac48[35]]()[_0xac48[10]](function(_0x38f4xb){var _0x38f4xc;var _0x38f4xd;return MailServerOut[_0xac48[18]](_0x38f4x5[_0xac48[17]][_0xac48[16]])[_0xac48[10]](function(_0x38f4x9){if(!_0x38f4x9){_0x38f4xb[_0xac48[27]]();return _0x38f4x6[_0xac48[15]](404);}else {return _0x38f4x9}})[_0xac48[10]](function(_0x38f4x9){_0x38f4xc=_0x38f4x9;return MailMessage[_0xac48[19]]({subject:_0xac48[31]+_0x38f4x9[_0xac48[32]]+_0xac48[33],text:_0xac48[31]+_0x38f4x9[_0xac48[32]]+_0xac48[33],from:_0x38f4x9[_0xac48[32]],to:_0x38f4x9[_0xac48[32]],status:_0xac48[34]},{transaction:_0x38f4xb});})[_0xac48[10]](function(_0x38f4xe){_0x38f4xd=_0x38f4xe;return _0x38f4xc[_0xac48[21]]({state:_0xac48[30]});})[_0xac48[10]](function(){_0x38f4xb[_0xac48[29]]();return _0x38f4x6[_0xac48[9]](201)[_0xac48[8]](_0x38f4xd);})[_0xac48[7]](function(_0x38f4x7){console[_0xac48[26]](_0x38f4x7);_0x38f4xc[_0xac48[21]]({state:_0xac48[28]})[_0xac48[10]](function(){_0x38f4xb[_0xac48[27]]();return handleError(_0x38f4x6,_0x38f4x7);});});})};function handleError(_0x38f4x6,_0x38f4x7){return _0x38f4x6[_0xac48[9]](500)[_0xac48[8]](_0x38f4x7)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var MailServerOut = require('../../models').MailServerOut;
+var MailMessage = require('../../models').MailMessage;
+var sequelize = require('../../models').sequelize;
+
+// Get list of mailServerOuts
+exports.index = function (req, res) {
+  MailServerOut
+    .findAll()
+    .then(function (mailServerOuts) {
+      return res.status(200).send(mailServerOuts);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+exports.indexService = function (req, res) {
+  MailServerOut
+    .findOne({
+      where: {
+        service: true
+      }
+    })
+    .then(function (mailServerOut) {
+      return res.status(200).send(mailServerOut);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mailServerOut
+exports.show = function (req, res) {
+  MailServerOut
+    .findById(req.params.id)
+    .then(function (mailServerOut) {
+      if (!mailServerOut) {
+        return res.sendStatus(404);
+      }
+      return res.send(mailServerOut);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new mailServerOut in the DB.
+exports.create = function (req, res) {
+  MailServerOut
+    .create(req.body)
+    .then(function (mailServerOut) {
+      return res.status(201).send(mailServerOut);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing mailServerOut in the DB.
+exports.update = function (req, res) {
+
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  MailServerOut
+    .findById(req.params.id)
+    .then(function (mailServerOut) {
+      if (!mailServerOut) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mailServerOut, req.body);
+      updated
+        .save()
+        .then(function () {
+          return res.status(200).send(mailServerOut);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a mailServerOut from the DB.
+exports.destroy = function (req, res) {
+  MailServerOut
+    .findById(req.params.id)
+    .then(function (mailServerOut) {
+      if (!mailServerOut) {
+        return res.sendStatus(404);
+      }
+      mailServerOut
+        .destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+exports.test = function (req, res) {
+  return sequelize.transaction().then(function (t) {
+    var _mailServerOut;
+    var _mailMessage;
+
+    return MailServerOut
+      .findById(req.params.id)
+      .then(function (mailServerOut) {
+        if (!mailServerOut) {
+          t.rollback();
+          return res.sendStatus(404);
+        } else {
+          return mailServerOut;
+        }
+      })
+      .then(function (mailServerOut) {
+        _mailServerOut = mailServerOut;
+        return MailMessage
+          .create({
+            subject: 'MailAccount ' + mailServerOut.username + ' test..',
+            text: 'MailAccount ' + mailServerOut.username + ' test..',
+            from: mailServerOut.username,
+            to: mailServerOut.username,
+            status: 'SENDING'
+          }, {
+            transaction: t
+          });
+      })
+      .then(function (mailMessage) {
+        _mailMessage = mailMessage;
+        return _mailServerOut
+          .update({
+            state: 'CONNECTED',
+          });
+      })
+      .then(function () {
+        t.commit();
+        return res.status(201).send(_mailMessage);
+      })
+      .catch(function (err) {
+        console.error(err);
+        _mailServerOut
+          .update({
+            state: 'ERROR',
+          })
+          .then(function () {
+            t.rollback();
+            return handleError(res, err);
+          })
+      });
+  });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index e0157b2..d9e6e91 100644 (file)
@@ -1 +1,26 @@
-var _0xc0a9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x20\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x20\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xc0a9[0];var MailServerOut=require(_0xc0a9[2])[_0xc0a9[1]];exports[_0xc0a9[3]]=function(_0xb5bdx2){MailServerOut[_0xc0a9[6]](function(_0xb5bdx3){console[_0xc0a9[5]](_0xc0a9[4]);onSave(_0xb5bdx2,_0xb5bdx3);});MailServerOut[_0xc0a9[8]](function(_0xb5bdx3){console[_0xc0a9[5]](_0xc0a9[7]);onRemove(_0xb5bdx2,_0xb5bdx3);});};function onSave(_0xb5bdx2,_0xb5bdx3,_0xb5bdx5){_0xb5bdx2[_0xc0a9[10]](_0xc0a9[9],_0xb5bdx3)}function onRemove(_0xb5bdx2,_0xb5bdx3,_0xb5bdx5){_0xb5bdx2[_0xc0a9[10]](_0xc0a9[11],_0xb5bdx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var MailServerOut = require('../../models').MailServerOut;
+
+exports.register = function(socket) {
+  MailServerOut.afterCreate(function(doc) {
+    console.log('MailServerOut afterCreate');
+    onSave(socket, doc);
+  });
+  MailServerOut.afterDestroy(function(doc) {
+    console.log('MailServerOut afterDestroy');
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_server_out:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_server_out:remove', doc);
+}
index b7f5fb4..cb8e0b2 100644 (file)
@@ -1 +1,15 @@
-var _0xae32=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xae32[0];var express=require(_0xae32[1]);var controller=require(_0xae32[2]);var router=express.Router();router[_0xae32[5]](_0xae32[3],controller[_0xae32[4]]);router[_0xae32[5]](_0xae32[6],controller[_0xae32[7]]);router[_0xae32[9]](_0xae32[3],controller[_0xae32[8]]);router[_0xae32[11]](_0xae32[6],controller[_0xae32[10]]);router[_0xae32[12]](_0xae32[6],controller[_0xae32[10]]);router[_0xae32[14]](_0xae32[6],controller[_0xae32[13]]);module[_0xae32[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./mail_template.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index f7add1e..cb8ae52 100644 (file)
@@ -1 +1,150 @@
-var _0xa8bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x73\x74\x72\x61\x74\x65\x67\x79","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xa8bc[0];var _=require(_0xa8bc[1]);var util=require(_0xa8bc[2]);var MailTemplate=require(_0xa8bc[4])[_0xa8bc[3]];exports[_0xa8bc[5]]=function(_0x5578x4,_0x5578x5){var _0x5578x6=[_0xa8bc[6],_0xa8bc[7],_0xa8bc[8],_0xa8bc[9]];var _0x5578x7=_0x5578x4[_0xa8bc[11]][_0xa8bc[10]]?parseInt(_0x5578x4[_0xa8bc[11]][_0xa8bc[10]],10):100;var _0x5578x8=_0x5578x4[_0xa8bc[11]][_0xa8bc[12]]?parseInt(_0x5578x4[_0xa8bc[11]][_0xa8bc[12]],10):0;var _0x5578x9={where:{},limit:_0x5578x7,offset:_0x5578x8*_0x5578x7,include:[{all:true}]};_[_0xa8bc[26]](_0x5578x4[_0xa8bc[11]],function(_0x5578xa,_0x5578xb){switch(_0x5578xb){case _0xa8bc[10]:;case _0xa8bc[12]:break ;;case _0xa8bc[15]:_0x5578x9[_0xa8bc[13]]=util[_0xa8bc[18]](_0xa8bc[14],_0x5578x4[_0xa8bc[11]][_0xa8bc[15]],_0x5578x4[_0xa8bc[11]][_0xa8bc[16]]||_0xa8bc[17])||null;break ;;case _0xa8bc[16]:break ;;case _0xa8bc[24]:_0x5578x9[_0xa8bc[20]][_0xa8bc[19]]=[];_0x5578x6[_0xa8bc[23]](function(_0x5578xc){var _0x5578xd={};_0x5578xd[_0x5578xc]={$like:_0xa8bc[21]+_0x5578xa+_0xa8bc[21]};_0x5578x9[_0xa8bc[20]][_0xa8bc[19]][_0xa8bc[22]](_0x5578xd);});break ;;default:_0x5578x9[_0xa8bc[20]][_0x5578xb]={$like:{}};_0x5578x9[_0xa8bc[20]][_0x5578xb][_0xa8bc[25]]=_0xa8bc[21]+_0x5578xa+_0xa8bc[21];;}});MailTemplate[_0xa8bc[40]](_0x5578x9)[_0xa8bc[39]](function(_0x5578xf){var _0x5578x10=Math[_0xa8bc[29]](_0x5578xf[_0xa8bc[28]]/_0x5578x7);var _0x5578x11=_0x5578x10>(_0x5578x9[_0xa8bc[30]]+1)?util[_0xa8bc[18]](_0xa8bc[31],_0x5578x4[_0xa8bc[32]],_0x5578x4[_0xa8bc[34]][_0xa8bc[33]],_0x5578x4[_0xa8bc[35]],_0x5578x8+1):null;var _0x5578x12=_0x5578x8>0?util[_0xa8bc[18]](_0xa8bc[31],_0x5578x4[_0xa8bc[32]],_0x5578x4[_0xa8bc[34]][_0xa8bc[33]],_0x5578x4[_0xa8bc[35]],_0x5578x8-1):null;_0x5578x5[_0xa8bc[38]](200)[_0xa8bc[37]]({count:_0x5578xf[_0xa8bc[28]],rows:_0x5578xf[_0xa8bc[36]],next_page:_0x5578x11,previous_page:_0x5578x12,total_pages:_0x5578x10});})[_0xa8bc[27]](function(_0x5578xe){return handleError(_0x5578x5,_0x5578xe)});};exports[_0xa8bc[41]]=function(_0x5578x4,_0x5578x5){MailTemplate[_0xa8bc[45]](_0x5578x4[_0xa8bc[44]][_0xa8bc[43]])[_0xa8bc[39]](function(_0x5578x13){if(!_0x5578x13){return _0x5578x5[_0xa8bc[42]](404)};return _0x5578x5[_0xa8bc[37]](_0x5578x13);})[_0xa8bc[27]](function(_0x5578xe){return handleError(_0x5578x5,_0x5578xe)})};exports[_0xa8bc[46]]=function(_0x5578x4,_0x5578x5){MailTemplate[_0xa8bc[46]](_0x5578x4[_0xa8bc[47]])[_0xa8bc[39]](function(_0x5578x13){return _0x5578x5[_0xa8bc[38]](201)[_0xa8bc[37]](_0x5578x13)})[_0xa8bc[27]](function(_0x5578xe){return handleError(_0x5578x5,_0x5578xe)})};exports[_0xa8bc[48]]=function(_0x5578x4,_0x5578x5){if(_0x5578x4[_0xa8bc[47]][_0xa8bc[43]]){delete _0x5578x4[_0xa8bc[47]][_0xa8bc[43]]};MailTemplate[_0xa8bc[45]](_0x5578x4[_0xa8bc[44]][_0xa8bc[43]])[_0xa8bc[39]](function(_0x5578x13){if(!_0x5578x13){return _0x5578x5[_0xa8bc[42]](404)};var _0x5578x14=_[_0xa8bc[49]](_0x5578x13,_0x5578x4[_0xa8bc[47]]);_0x5578x14[_0xa8bc[50]]()[_0xa8bc[39]](function(){return _0x5578x5[_0xa8bc[38]](200)[_0xa8bc[37]](_0x5578x13)})[_0xa8bc[27]](function(_0x5578xe){return handleError(_0x5578x5,_0x5578xe)});})[_0xa8bc[27]](function(_0x5578xe){return handleError(_0x5578x5,_0x5578xe)});};exports[_0xa8bc[51]]=function(_0x5578x4,_0x5578x5){MailTemplate[_0xa8bc[45]](_0x5578x4[_0xa8bc[44]][_0xa8bc[43]])[_0xa8bc[39]](function(_0x5578x13){if(!_0x5578x13){return _0x5578x5[_0xa8bc[42]](404)};_0x5578x13[_0xa8bc[51]]()[_0xa8bc[39]](function(){return _0x5578x5[_0xa8bc[42]](204)})[_0xa8bc[27]](function(_0x5578xe){return handleError(_0x5578x5,_0x5578xe)});})[_0xa8bc[27]](function(_0x5578xe){return handleError(_0x5578x5,_0x5578xe)})};function handleError(_0x5578x5,_0x5578xe){return _0x5578x5[_0xa8bc[38]](500)[_0xa8bc[37]](_0x5578xe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var MailTemplate = require('../../models').MailTemplate;
+
+// Get list of mail_templates
+// Get list of mailQueues
+exports.index = function (req, res) {
+
+  var attributes = ['description', 'name', 'timeout', 'strategy'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page,
+    include: [{
+      all: true
+    }]
+  };
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  MailTemplate
+    .findAndCountAll(query)
+    .then(function (result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single mail_template
+exports.show = function (req, res) {
+  MailTemplate
+    .findById(req.params.id)
+    .then(function (mail_template) {
+      if (!mail_template) {
+        return res.sendStatus(404);
+      }
+      return res.send(mail_template);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new mail_template in the DB.
+exports.create = function (req, res) {
+  MailTemplate
+    .create(req.body)
+    .then(function (mail_template) {
+      return res.status(201).send(mail_template);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing mail_template in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  MailTemplate
+    .findById(req.params.id)
+    .then(function (mail_template) {
+      if (!mail_template) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(mail_template, req.body);
+      updated.save()
+        .then(function () {
+          return res.status(200).send(mail_template);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a mail_template from the DB.
+exports.destroy = function (req, res) {
+  MailTemplate
+    .findById(req.params.id)
+    .then(function (mail_template) {
+      if (!mail_template) {
+        return res.sendStatus(404);
+      }
+      mail_template.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 0ad00e4..a01fb2e 100644 (file)
@@ -1 +1,24 @@
-var _0x8bc8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8bc8[0];var MailTemplate=require(_0x8bc8[2])[_0x8bc8[1]];exports[_0x8bc8[3]]=function(_0xcd3cx2){MailTemplate[_0x8bc8[4]](function(_0xcd3cx3){onSave(_0xcd3cx2,_0xcd3cx3)});MailTemplate[_0x8bc8[5]](function(_0xcd3cx3){onRemove(_0xcd3cx2,_0xcd3cx3)});};function onSave(_0xcd3cx2,_0xcd3cx3,_0xcd3cx5){_0xcd3cx2[_0x8bc8[7]](_0x8bc8[6],_0xcd3cx3)}function onRemove(_0xcd3cx2,_0xcd3cx3,_0xcd3cx5){_0xcd3cx2[_0x8bc8[7]](_0x8bc8[8],_0xcd3cx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var MailTemplate = require('../../models').MailTemplate;
+
+exports.register = function(socket) {
+  MailTemplate.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  MailTemplate.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('mail_template:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('mail_template:remove', doc);
+}
index b1b8b71..d565c16 100644 (file)
@@ -1 +1,19 @@
-var _0x210b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x65\x74\x72\x69\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x74\x61\x62\x6C\x65","\x67\x65\x74\x4D\x65\x74\x72\x69\x63\x73\x42\x79\x54\x61\x62\x6C\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x6D\x65\x74\x72\x69\x63\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x210b[0];var express=require(_0x210b[1]);var controller=require(_0x210b[2]);var auth=require(_0x210b[3]);var router=express.Router();router[_0x210b[7]](_0x210b[4],auth[_0x210b[5]](),controller[_0x210b[6]]);router[_0x210b[7]](_0x210b[8],auth[_0x210b[5]](),controller[_0x210b[9]]);router[_0x210b[7]](_0x210b[10],auth[_0x210b[5]](),controller[_0x210b[11]]);router[_0x210b[13]](_0x210b[4],auth[_0x210b[5]](),controller[_0x210b[12]]);router[_0x210b[13]](_0x210b[14],auth[_0x210b[5]](),controller[_0x210b[15]]);router[_0x210b[17]](_0x210b[10],auth[_0x210b[5]](),controller[_0x210b[16]]);router[_0x210b[18]](_0x210b[10],auth[_0x210b[5]](),controller[_0x210b[16]]);router[_0x210b[20]](_0x210b[4],auth[_0x210b[5]](),controller[_0x210b[19]]);router[_0x210b[20]](_0x210b[10],auth[_0x210b[5]](),controller[_0x210b[21]]);module[_0x210b[22]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./metric.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/table', auth.isAuthenticated(), controller.getMetricsByTable);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.metricValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index cae7bba..d763596 100644 (file)
@@ -1 +1,240 @@
-var _0x6b39=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6D\x65\x74\x72\x69\x63\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x4D\x65\x74\x72\x69\x63\x73\x42\x79\x54\x61\x62\x6C\x65","\x74\x61\x62\x6C\x65","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x4D\x45\x54\x52\x49\x43","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x4D\x45\x54\x52\x49\x43\x5F\x43\x4F\x4E\x46\x49\x47\x55\x52\x41\x54\x49\x4F\x4E\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x54\x65\x78\x74\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x6b39[0];var _=require(_0x6b39[1]);var Metric=require(_0x6b39[3])[_0x6b39[2]];var util=require(_0x6b39[4]);exports[_0x6b39[5]]=function(_0x72e5x4,_0x72e5x5){var _0x72e5x6=[_0x6b39[6],_0x6b39[7]];var _0x72e5x7=_0x72e5x4[_0x6b39[9]][_0x6b39[8]]?parseInt(_0x72e5x4[_0x6b39[9]][_0x6b39[8]],10):100;var _0x72e5x8=_0x72e5x4[_0x6b39[9]][_0x6b39[10]]?parseInt(_0x72e5x4[_0x6b39[9]][_0x6b39[10]],10):0;var _0x72e5x9={where:{},limit:_0x72e5x7,offset:_0x72e5x8*_0x72e5x7};_[_0x6b39[24]](_0x72e5x4[_0x6b39[9]],function(_0x72e5xa,_0x72e5xb){switch(_0x72e5xb){case _0x6b39[8]:;case _0x6b39[10]:break ;;case _0x6b39[13]:_0x72e5x9[_0x6b39[11]]=util[_0x6b39[16]](_0x6b39[12],_0x72e5x4[_0x6b39[9]][_0x6b39[13]],_0x72e5x4[_0x6b39[9]][_0x6b39[14]]||_0x6b39[15])||null;break ;;case _0x6b39[14]:break ;;case _0x6b39[22]:_0x72e5x9[_0x6b39[18]][_0x6b39[17]]=[];_0x72e5x6[_0x6b39[21]](function(_0x72e5xc){var _0x72e5xd={};_0x72e5xd[_0x72e5xc]={$like:_0x6b39[19]+_0x72e5xa+_0x6b39[19]};_0x72e5x9[_0x6b39[18]][_0x6b39[17]][_0x6b39[20]](_0x72e5xd);});break ;;default:_0x72e5x9[_0x6b39[18]][_0x72e5xb]={$like:{}};_0x72e5x9[_0x6b39[18]][_0x72e5xb][_0x6b39[23]]=_0x6b39[19]+_0x72e5xa+_0x6b39[19];;}});Metric[_0x6b39[39]](_0x72e5x9)[_0x6b39[38]](function(_0x72e5xf){var _0x72e5x10=Math[_0x6b39[30]](_0x72e5xf[_0x6b39[29]]/_0x72e5x7);var _0x72e5x11=_0x72e5x10>(_0x72e5x9[_0x6b39[31]]+1)?util[_0x6b39[16]](_0x6b39[32],_0x72e5x4[_0x6b39[33]],_0x72e5x4[_0x6b39[35]][_0x6b39[34]],_0x72e5x4[_0x6b39[36]],_0x72e5x8+1):null;var _0x72e5x12=_0x72e5x8>0?util[_0x6b39[16]](_0x6b39[32],_0x72e5x4[_0x6b39[33]],_0x72e5x4[_0x6b39[35]][_0x6b39[34]],_0x72e5x4[_0x6b39[36]],_0x72e5x8-1):null;_0x72e5x5[_0x6b39[27]](200)[_0x6b39[26]]({count:_0x72e5xf[_0x6b39[29]],rows:_0x72e5xf[_0x6b39[37]],next_page:_0x72e5x11,previous_page:_0x72e5x12,total_pages:_0x72e5x10});})[_0x6b39[28]](function(_0x72e5xe){_0x72e5x5[_0x6b39[27]](500)[_0x6b39[26]]({error:_0x6b39[25]})});};exports[_0x6b39[40]]=function(_0x72e5x4,_0x72e5x5){console[_0x6b39[42]](_0x72e5x4[_0x6b39[41]]);Metric[_0x6b39[44]]({where:{name:_0x72e5x4[_0x6b39[41]][_0x6b39[6]]}})[_0x6b39[38]](function(_0x72e5x13){if(!_0x72e5x13){return _0x72e5x5[_0x6b39[43]](404)};return _0x72e5x5[_0x6b39[26]](_0x72e5x13);})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)});};exports[_0x6b39[45]]=function(_0x72e5x4,_0x72e5x5){console[_0x6b39[42]](_0x72e5x4[_0x6b39[9]]);Metric[_0x6b39[44]]({where:{table:_0x72e5x4[_0x6b39[9]][_0x6b39[46]]}})[_0x6b39[38]](function(_0x72e5x13){console[_0x6b39[42]](_0x72e5x13);if(!_0x72e5x13){return _0x72e5x5[_0x6b39[43]](404)};return _0x72e5x5[_0x6b39[27]](200)[_0x6b39[26]](_0x72e5x13);})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)});};exports[_0x6b39[47]]=function(_0x72e5x4,_0x72e5x5){Metric[_0x6b39[50]](_0x72e5x4[_0x6b39[49]][_0x6b39[48]])[_0x6b39[38]](function(_0x72e5x14){if(!_0x72e5x14){return _0x72e5x5[_0x6b39[43]](404)};return _0x72e5x5[_0x6b39[26]](_0x72e5x14);})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)})};exports[_0x6b39[51]]=function(_0x72e5x4,_0x72e5x5){Metric[_0x6b39[51]](_0x72e5x4[_0x6b39[41]])[_0x6b39[38]](function(_0x72e5x14){return _0x72e5x5[_0x6b39[27]](201)[_0x6b39[26]](_0x72e5x14)})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)})};exports[_0x6b39[52]]=function(_0x72e5x4,_0x72e5x5){Metric[_0x6b39[44]]({where:{name:_0x72e5x4[_0x6b39[41]][_0x6b39[6]],id:{$ne:_0x72e5x4[_0x6b39[41]][_0x6b39[48]]}}})[_0x6b39[38]](function(_0x72e5x13){if(!_0x72e5x13){return _0x72e5x5[_0x6b39[43]](404)};if(_0x72e5x13[_0x6b39[53]]>0){return _0x72e5x5[_0x6b39[27]](500)[_0x6b39[26]]({message:_0x6b39[54]})};if(_0x72e5x4[_0x6b39[41]][_0x6b39[48]]){delete _0x72e5x4[_0x6b39[41]][_0x6b39[48]]};Metric[_0x6b39[57]]({where:{id:_0x72e5x4[_0x6b39[49]][_0x6b39[48]]}})[_0x6b39[38]](function(_0x72e5x14){if(!_0x72e5x14){return _0x72e5x5[_0x6b39[43]](404)};var _0x72e5x15=_[_0x6b39[55]](_0x72e5x14,_0x72e5x4[_0x6b39[41]]);_0x72e5x15[_0x6b39[56]]()[_0x6b39[38]](function(){return _0x72e5x5[_0x6b39[27]](200)[_0x6b39[26]](_0x72e5x14)})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)});})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)});})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)})};exports[_0x6b39[58]]=function(_0x72e5x4,_0x72e5x5){Metric[_0x6b39[50]](_0x72e5x4[_0x6b39[49]][_0x6b39[48]])[_0x6b39[38]](function(_0x72e5x14){if(!_0x72e5x14){return _0x72e5x5[_0x6b39[43]](404)};_0x72e5x14[_0x6b39[60]]()[_0x6b39[38]](function(_0x72e5x16){if(_0x72e5x16[_0x6b39[53]]>0){return _0x72e5x5[_0x6b39[27]](500)[_0x6b39[26]]({message:_0x6b39[59]})};_0x72e5x14[_0x6b39[58]]()[_0x6b39[38]](function(){return _0x72e5x5[_0x6b39[43]](204)})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)});})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)});})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)})};exports[_0x6b39[61]]=function(_0x72e5x4,_0x72e5x5){Metric[_0x6b39[58]]({where:{id:_0x72e5x4[_0x6b39[9]][_0x6b39[48]]},individualHooks:true})[_0x6b39[38]](function(){return _0x72e5x5[_0x6b39[43]](204)})[_0x6b39[28]](function(_0x72e5xe){return handleError(_0x72e5x5,_0x72e5xe)})};function handleError(_0x72e5x5,_0x72e5xe){return _0x72e5x5[_0x6b39[27]](500)[_0x6b39[26]](_0x72e5xe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Metric = require('../../models').Metric;
+var util = require('util');
+
+// Get list of metrics
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Metric
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.metricValidation = function(req, res) {
+  console.log(req.body);
+  Metric
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(metrics) {
+      if (!metrics) {
+        return res.sendStatus(404);
+      }
+      return res.send(metrics);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getMetricsByTable = function(req, res) {
+  console.log(req.query);
+  Metric
+    .findAll({
+      where: {
+        table: req.query.table
+      }
+    })
+    .then(function(metrics) {
+      console.log(metrics);
+      if (!metrics) {
+        return res.sendStatus(404);
+      }
+      return res.status(200).send(metrics);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single metric
+exports.show = function(req, res) {
+  Metric
+    .findById(req.params.id)
+    .then(function(metric) {
+      if (!metric) {
+        return res.sendStatus(404);
+      }
+      return res.send(metric);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new metric in the DB.
+exports.create = function(req, res) {
+  Metric
+    .create(req.body)
+    .then(function(metric) {
+      return res.status(201).send(metric);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing metric in the DB.
+exports.update = function(req, res) {
+  Metric
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(metrics) {
+      if (!metrics) {
+        return res.sendStatus(404);
+      }
+      if (metrics.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_METRIC'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Metric
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(metric) {
+          if (!metric) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(metric, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(metric);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a metric from the DB.
+exports.destroy = function(req, res) {
+  Metric
+    .findById(req.params.id)
+    .then(function(metric) {
+      if (!metric) {
+        return res.sendStatus(404);
+      }
+      metric.getZendeskTexts()
+        .then(function(texts) {
+          if (texts.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_METRIC_CONFIGURATION_ASSOCIATED'
+            });
+          }
+          metric.destroy()
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Metric
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 2a9da44..059ce9c 100644 (file)
@@ -1 +1,24 @@
-var _0x9bec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x65\x74\x72\x69\x63\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x65\x74\x72\x69\x63\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9bec[0];var Metric=require(_0x9bec[2])[_0x9bec[1]];exports[_0x9bec[3]]=function(_0xfe9ex2){Metric[_0x9bec[4]](function(_0xfe9ex3){onSave(_0xfe9ex2,_0xfe9ex3)});Metric[_0x9bec[5]](function(_0xfe9ex3){onRemove(_0xfe9ex2,_0xfe9ex3)});};function onSave(_0xfe9ex2,_0xfe9ex3,_0xfe9ex5){_0xfe9ex2[_0x9bec[7]](_0x9bec[6],_0xfe9ex3)}function onRemove(_0xfe9ex2,_0xfe9ex3,_0xfe9ex5){_0xfe9ex2[_0x9bec[7]](_0x9bec[8],_0xfe9ex3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Metric = require('../../models').Metric;
+
+exports.register = function(socket) {
+  Metric.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Metric.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('metric:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('metric:remove', doc);
+}
index 4939029..076cab1 100644 (file)
@@ -1 +1,20 @@
-var _0xed7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x67\x65\x74"];_0xed7d[0];var should=require(_0xed7d[1]);var app=require(_0xed7d[2]);var request=require(_0xed7d[3]);describe(_0xed7d[4],function(){it(_0xed7d[5],function(_0x1fedx4){request(app)[_0xed7d[13]](_0xed7d[12])[_0xed7d[11]](200)[_0xed7d[11]](_0xed7d[10],/json/)[_0xed7d[9]](function(_0x1fedx5,_0x1fedx6){if(_0x1fedx5){return _0x1fedx4(_0x1fedx5)};_0x1fedx6[_0xed7d[8]][_0xed7d[1]][_0xed7d[7]][_0xed7d[6]](Array);_0x1fedx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/metrics', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytics/metrics')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 2f09603..8204682 100644 (file)
@@ -1 +1,15 @@
-var _0x22c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x6F\x64\x75\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x22c4[0];var express=require(_0x22c4[1]);var controller=require(_0x22c4[2]);var router=express.Router();router[_0x22c4[5]](_0x22c4[3],controller[_0x22c4[4]]);router[_0x22c4[5]](_0x22c4[6],controller[_0x22c4[7]]);router[_0x22c4[9]](_0x22c4[3],controller[_0x22c4[8]]);router[_0x22c4[11]](_0x22c4[6],controller[_0x22c4[10]]);router[_0x22c4[12]](_0x22c4[6],controller[_0x22c4[10]]);router[_0x22c4[14]](_0x22c4[6],controller[_0x22c4[13]]);module[_0x22c4[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./module.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 5a48213..9d6517c 100644 (file)
@@ -1 +1,92 @@
-var _0x8af9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x6F\x64\x75\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x8af9[0];var _=require(_0x8af9[1]);var Module=require(_0x8af9[3])[_0x8af9[2]];exports[_0x8af9[4]]=function(_0xbe5fx3,_0xbe5fx4){Module[_0x8af9[9]]()[_0x8af9[8]](function(_0xbe5fx6){return _0xbe5fx4[_0x8af9[7]](200)[_0x8af9[6]](_0xbe5fx6)})[_0x8af9[5]](function(_0xbe5fx5){return handleError(_0xbe5fx4,_0xbe5fx5)})};exports[_0x8af9[10]]=function(_0xbe5fx3,_0xbe5fx4){var _0xbe5fx7=_0xbe5fx3[_0x8af9[12]][_0x8af9[11]];Module[_0x8af9[14]](_0xbe5fx7)[_0x8af9[8]](function(_0xbe5fx8){if(!_0xbe5fx8){return _0xbe5fx4[_0x8af9[13]](404)};return _0xbe5fx4[_0x8af9[6]](_0xbe5fx8);})[_0x8af9[5]](function(_0xbe5fx5){return handleError(_0xbe5fx4,_0xbe5fx5)});};exports[_0x8af9[15]]=function(_0xbe5fx3,_0xbe5fx4){Module[_0x8af9[15]](_0xbe5fx3[_0x8af9[16]])[_0x8af9[8]](function(_0xbe5fx8){return _0xbe5fx4[_0x8af9[7]](201)[_0x8af9[6]](_0xbe5fx8)})[_0x8af9[5]](function(_0xbe5fx5){return handleError(_0xbe5fx4,_0xbe5fx5)})};exports[_0x8af9[17]]=function(_0xbe5fx3,_0xbe5fx4){var _0xbe5fx7=_0xbe5fx3[_0x8af9[16]][_0x8af9[11]];if(_0xbe5fx3[_0x8af9[16]][_0x8af9[11]]){delete _0xbe5fx3[_0x8af9[16]][_0x8af9[11]]};Module[_0x8af9[14]](_0xbe5fx7)[_0x8af9[8]](function(_0xbe5fx8){if(!_0xbe5fx8){return _0xbe5fx4[_0x8af9[13]](404)};var _0xbe5fx9=_[_0x8af9[18]](_0xbe5fx8,_0xbe5fx3[_0x8af9[16]]);_0xbe5fx9[_0x8af9[19]]()[_0x8af9[8]](function(){return _0xbe5fx4[_0x8af9[7]](200)[_0x8af9[6]](_0xbe5fx8)})[_0x8af9[5]](function(_0xbe5fx5){return handleError(_0xbe5fx4,_0xbe5fx5)});})[_0x8af9[5]](function(_0xbe5fx5){return handleError(_0xbe5fx4,_0xbe5fx5)});};exports[_0x8af9[20]]=function(_0xbe5fx3,_0xbe5fx4){var _0xbe5fx7=_0xbe5fx3[_0x8af9[12]][_0x8af9[11]];Module[_0x8af9[14]](_0xbe5fx7)[_0x8af9[8]](function(_0xbe5fx8){if(!_0xbe5fx8){return _0xbe5fx4[_0x8af9[13]](404)};_0xbe5fx8[_0x8af9[20]]()[_0x8af9[8]](function(){return _0xbe5fx4[_0x8af9[13]](204)})[_0x8af9[5]](function(_0xbe5fx5){return handleError(_0xbe5fx4,_0xbe5fx5)});})[_0x8af9[5]](function(_0xbe5fx5){return handleError(_0xbe5fx4,_0xbe5fx5)});};function handleError(_0xbe5fx4,_0xbe5fx5){return _0xbe5fx4[_0x8af9[7]](500)[_0x8af9[6]](_0xbe5fx5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Module = require('../../models').Module;
+
+// Get list of modules
+exports.index = function(req, res) {
+  Module
+  .findAll()
+  .then(function (modules) {
+    return res.status(200).send(modules);
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Get a single module
+exports.show = function(req, res) {
+  var moduleId = req.params.id;
+
+  Module
+  .findById(moduleId)
+  .then(function (module) {
+    if(!module) { return res.sendStatus(404); }
+    return res.send(module);
+  })
+  .catch(function(err){
+    return handleError(res, err);
+  });
+};
+
+// Creates a new module in the DB.
+exports.create = function(req, res) {
+  Module
+  .create(req.body)
+  .then(function(module) {
+    return res.status(201).send(module);
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Updates an existing module in the DB.
+exports.update = function(req, res) {
+  var moduleId = req.body.id;
+
+  if(req.body.id) { delete req.body.id; }
+
+  Module
+  .findById(moduleId)
+  .then(function (module) {
+    if(!module) { return res.sendStatus(404); }
+    var updated = _.merge(module, req.body);
+    updated.save()
+    .then(function () {
+      return res.status(200).send(module);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Deletes a module from the DB.
+exports.destroy = function(req, res) {
+  var moduleId = req.params.id;
+
+  Module
+  .findById(moduleId)
+  .then(function (module) {
+    if(!module) { return res.sendStatus(404); }
+    module.destroy()
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 3e7fc7c..0eade3b 100644 (file)
@@ -1 +1,24 @@
-var _0xa969=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x6F\x64\x75\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x6F\x64\x75\x6C\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x6F\x64\x75\x6C\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xa969[0];var module=require(_0xa969[2])[_0xa969[1]];exports[_0xa969[3]]=function(_0xe2aax2){module[_0xa969[4]](function(_0xe2aax3){onSave(_0xe2aax2,_0xe2aax3)});module[_0xa969[5]](function(_0xe2aax3){onRemove(_0xe2aax2,_0xe2aax3)});};function onSave(_0xe2aax2,_0xe2aax3,_0xe2aax5){_0xe2aax2[_0xa969[7]](_0xa969[6],_0xe2aax3)}function onRemove(_0xe2aax2,_0xe2aax3,_0xe2aax5){_0xe2aax2[_0xa969[7]](_0xa969[8],_0xe2aax3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var module = require('../../models').Module;
+
+exports.register = function(socket) {
+  module.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  module.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('module:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('module:remove', doc);
+}
index 6c5de60..45aa629 100644 (file)
@@ -1 +1,20 @@
-var _0x8513=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x6F\x64\x75\x6C\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x6F\x64\x75\x6C\x65\x73","\x67\x65\x74"];_0x8513[0];var should=require(_0x8513[1]);var app=require(_0x8513[2]);var request=require(_0x8513[3]);describe(_0x8513[4],function(){it(_0x8513[5],function(_0x7cf3x4){request(app)[_0x8513[13]](_0x8513[12])[_0x8513[11]](200)[_0x8513[11]](_0x8513[10],/json/)[_0x8513[9]](function(_0x7cf3x5,_0x7cf3x6){if(_0x7cf3x5){return _0x7cf3x4(_0x7cf3x5)};_0x7cf3x6[_0x8513[8]][_0x8513[1]][_0x8513[7]][_0x8513[6]](Array);_0x7cf3x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/modules', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/modules')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 6b971f2..f341cb4 100644 (file)
@@ -1 +1,15 @@
-var _0x5464=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5464[0];var express=require(_0x5464[1]);var controller=require(_0x5464[2]);var router=express.Router();router[_0x5464[5]](_0x5464[3],controller[_0x5464[4]]);router[_0x5464[8]](_0x5464[6],controller[_0x5464[7]]);router[_0x5464[10]](_0x5464[3],controller[_0x5464[9]]);router[_0x5464[11]](_0x5464[3],controller[_0x5464[9]]);router[_0x5464[13]](_0x5464[3],controller[_0x5464[12]]);module[_0x5464[14]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./setting.controller');
+
+var router = express.Router();
+
+// router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 0e959a7..3ebcb5c 100644 (file)
@@ -1 +1,110 @@
-var _0x2d57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x63\x72\x79\x70\x74\x6F","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x61\x64\x64\x72\x65\x73\x73","\x6E\x65\x74\x6D\x61\x73\x6B","\x6D\x61\x63","\x66\x6F\x72\x6D\x61\x74","\x70\x61\x72\x73\x65","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x68\x65\x78","\x75\x74\x66\x38","\x66\x69\x6E\x61\x6C"];_0x2d57[0];var _=require(_0x2d57[1]);var util=require(_0x2d57[2]);var crypto=require(_0x2d57[3]);var Setting=require(_0x2d57[5])[_0x2d57[4]];exports[_0x2d57[6]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[11]]()[_0x2d57[10]](function(_0xd13ax8){return _0xd13ax6[_0x2d57[9]](200)[_0x2d57[8]](_0xd13ax8)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};exports[_0x2d57[12]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[24]](_0xd13ax5[_0x2d57[23]][_0x2d57[22]])[_0x2d57[10]](function(_0xd13ax9){if(!_0xd13ax9){return _0xd13ax6[_0x2d57[13]](404)};if(_0xd13ax9[_0x2d57[14]]){_0xd13ax9[_0x2d57[14]]=decrypt(_0x2d57[15],util[_0x2d57[20]](_0x2d57[16],_0xd13ax9[_0x2d57[17]],_0xd13ax9[_0x2d57[18]],_0xd13ax9[_0x2d57[19]]),_0xd13ax9[_0x2d57[14]]);_0xd13ax9[_0x2d57[14]]=JSON[_0x2d57[21]](_0xd13ax9[_0x2d57[14]]);};return _0xd13ax6[_0x2d57[8]](_0xd13ax9);})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};exports[_0x2d57[25]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[25]](_0xd13ax5[_0x2d57[26]])[_0x2d57[10]](function(_0xd13ax9){return _0xd13ax6[_0x2d57[9]](201)[_0x2d57[8]](_0xd13ax9)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};exports[_0x2d57[27]]=function(_0xd13ax5,_0xd13ax6){if(_0xd13ax5[_0x2d57[26]][_0x2d57[22]]){delete _0xd13ax5[_0x2d57[26]][_0x2d57[22]]};Setting[_0x2d57[24]](_0xd13ax5[_0x2d57[23]][_0x2d57[22]])[_0x2d57[10]](function(_0xd13ax9){if(!_0xd13ax9){return _0xd13ax6[_0x2d57[13]](404)};var _0xd13axa=_[_0x2d57[28]](_0xd13ax9,_0xd13ax5[_0x2d57[26]]);_0xd13axa[_0x2d57[29]]()[_0x2d57[10]](function(){return _0xd13ax6[_0x2d57[9]](200)[_0x2d57[8]](_0xd13ax9)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)});})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)});};exports[_0x2d57[30]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[24]](_0xd13ax5[_0x2d57[23]][_0x2d57[22]])[_0x2d57[10]](function(_0xd13ax9){if(!_0xd13ax9){return _0xd13ax6[_0x2d57[13]](404)};_0xd13ax9[_0x2d57[30]]()[_0x2d57[10]](function(){return _0xd13ax6[_0x2d57[13]](204)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)});})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};function handleError(_0xd13ax6,_0xd13ax7){return _0xd13ax6[_0x2d57[9]](500)[_0x2d57[8]](_0xd13ax7)}function decrypt(_0xd13axd,_0xd13axe,_0xd13axf){var _0xd13ax10=crypto[_0x2d57[31]](_0xd13axd,_0xd13axe);var _0xd13ax11=_0xd13ax10[_0x2d57[27]](_0xd13axf,_0x2d57[32],_0x2d57[33]);_0xd13ax11+=_0xd13ax10[_0x2d57[34]](_0x2d57[33]);return _0xd13ax11;}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var crypto = require('crypto');
+
+var Setting = require('../../models').Setting;
+
+// Get list of settings
+exports.index = function(req, res) {
+  Setting
+    .findAll()
+    .then(function(settings) {
+      return res.status(200).send(settings);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single setting
+exports.show = function(req, res) {
+  Setting
+    .findById(req.params.id)
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+
+      if (setting.license) {
+        setting.license = decrypt('aes-256-ctr', util.format('%s:%s:%s',
+          setting.address, setting.netmask, setting.mac), setting.license);
+        setting.license = JSON.parse(setting.license);
+      }
+
+      return res.send(setting);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new setting in the DB.
+exports.create = function(req, res) {
+  Setting
+    .create(req.body)
+    .then(function(setting) {
+      return res.status(201).send(setting);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing setting in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Setting
+    .findById(req.params.id)
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(setting, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(setting);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a setting from the DB.
+exports.destroy = function(req, res) {
+  Setting
+    .findById(req.params.id)
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+      setting.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
+
+function decrypt(algorithm, password, text) {
+  var decipher = crypto.createDecipher(algorithm, password)
+  var dec = decipher.update(text, 'hex', 'utf8')
+  dec += decipher.final('utf8');
+  return dec;
+}
index d3a3d72..0784c1f 100644 (file)
@@ -1 +1,24 @@
-var _0x71fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x74\x74\x69\x6E\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x65\x74\x74\x69\x6E\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0x71fb[0];var Setting=require(_0x71fb[2])[_0x71fb[1]];exports[_0x71fb[3]]=function(_0x129fx2){Setting[_0x71fb[4]](function(_0x129fx3){onSave(_0x129fx2,_0x129fx3)});Setting[_0x71fb[5]](function(_0x129fx3){onRemove(_0x129fx2,_0x129fx3)});};function onSave(_0x129fx2,_0x129fx3,_0x129fx5){_0x129fx2[_0x71fb[7]](_0x71fb[6],_0x129fx3)}function onRemove(_0x129fx2,_0x129fx3,_0x129fx5){_0x129fx2[_0x71fb[7]](_0x71fb[8],_0x129fx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Setting = require('../../models').Setting;
+
+exports.register = function(socket) {
+  Setting.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Setting.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('setting:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('setting:remove', doc);
+}
index 1679a0a..eec76c9 100644 (file)
@@ -1 +1,20 @@
-var _0xddea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x67\x65\x74"];_0xddea[0];var should=require(_0xddea[1]);var app=require(_0xddea[2]);var request=require(_0xddea[3]);describe(_0xddea[4],function(){it(_0xddea[5],function(_0xac79x4){request(app)[_0xddea[13]](_0xddea[12])[_0xddea[11]](200)[_0xddea[11]](_0xddea[10],/json/)[_0xddea[9]](function(_0xac79x5,_0xac79x6){if(_0xac79x5){return _0xac79x4(_0xac79x5)};_0xac79x6[_0xddea[8]][_0xddea[1]][_0xddea[7]][_0xddea[6]](Array);_0xac79x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/settings', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/settings')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 362c51c..fd9d420 100644 (file)
@@ -1 +1,11 @@
-var _0x2302=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x3A\x61\x63\x74\x69\x6F\x6E\x2F\x3A\x73\x74\x61\x74\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x2302[0];var express=require(_0x2302[1]);var controller=require(_0x2302[2]);var auth=require(_0x2302[3]);var router=express.Router();router[_0x2302[7]](_0x2302[4],auth[_0x2302[5]](),controller[_0x2302[6]]);module[_0x2302[8]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./motionbar.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/:action/:state', auth.isAuthenticated(), controller.action);
+
+module.exports = router;
index 2feee20..f0a79be 100644 (file)
@@ -1 +1,32 @@
-var _0xe0da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x61\x63\x74\x69\x6F\x6E","\x75\x73\x65\x72\x49\x64","\x71\x75\x65\x72\x79","\x55\x73\x65\x20\x75\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x49\x64","\x62\x6F\x64\x79","\x70\x61\x72\x61\x6D\x73","\x73\x74\x61\x74\x65","\x41\x64\x6D\x69\x6E\x49\x64","\x69\x64","\x75\x73\x65\x72","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65"];_0xe0da[0];var _=require(_0xe0da[1]);var Motionbar=require(_0xe0da[3])[_0xe0da[2]];exports[_0xe0da[4]]=function(_0x6f27x3,_0x6f27x4){if(!_0x6f27x3[_0xe0da[6]][_0xe0da[5]]){return handleError(_0x6f27x4,{message:_0xe0da[7]})};_0x6f27x3[_0xe0da[9]][_0xe0da[8]]=parseInt(_0x6f27x3[_0xe0da[6]][_0xe0da[5]],10);_0x6f27x3[_0xe0da[9]][_0xe0da[4]]=_0x6f27x3[_0xe0da[10]][_0xe0da[4]];_0x6f27x3[_0xe0da[9]][_0xe0da[11]]=_0x6f27x3[_0xe0da[10]][_0xe0da[11]];_0x6f27x3[_0xe0da[9]][_0xe0da[12]]=_0x6f27x3[_0xe0da[14]][_0xe0da[13]];Motionbar[_0xe0da[19]](_0x6f27x3[_0xe0da[9]])[_0xe0da[18]](function(_0x6f27x6){return _0x6f27x4[_0xe0da[17]](201)[_0xe0da[16]](_0x6f27x6)})[_0xe0da[15]](function(_0x6f27x5){return handleError(_0x6f27x4,_0x6f27x5)});};function handleError(_0x6f27x4,_0x6f27x5){return _0x6f27x4[_0xe0da[17]](500)[_0xe0da[16]](_0x6f27x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Motionbar = require('../../models').Motionbar;
+
+// Get list of motionbars
+exports.action = function(req, res) {
+
+  if (!req.query.userId) {
+    return handleError(res, {
+      message: 'Use userId'
+    });
+  }
+
+  req.body.UserId = parseInt(req.query.userId, 10);
+  req.body.action = req.params.action;
+  req.body.state = req.params.state;
+  req.body.AdminId = req.user.id;
+
+  Motionbar
+    .create(req.body)
+    .then(function(action) {
+      return res.status(201).send(action);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 787cfb4..0eb15d4 100644 (file)
@@ -1 +1,27 @@
-var _0x806f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x49\x64","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x806f[0];var Motionbar=require(_0x806f[2])[_0x806f[1]];exports[_0x806f[3]]=function(_0xf97dx2){Motionbar[_0x806f[4]](function(_0xf97dx3){onSave(_0xf97dx2,_0xf97dx3)});Motionbar[_0x806f[5]](function(_0xf97dx3){onRemove(_0xf97dx2,_0xf97dx3)});};function onSave(_0xf97dx2,_0xf97dx3,_0xf97dx5){if(_0xf97dx2[_0x806f[6]]==_0xf97dx3[_0x806f[7]]){_0xf97dx2[_0x806f[9]](_0x806f[8],_0xf97dx3)}}function onRemove(_0xf97dx2,_0xf97dx3,_0xf97dx5){_0xf97dx2[_0x806f[9]](_0x806f[10],_0xf97dx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Motionbar = require('../../models').Motionbar;
+
+exports.register = function(socket) {
+  Motionbar.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Motionbar.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  // doc.UserId is string. You don't use ===
+  if (socket.userId == doc.UserId) {
+    socket.emit('motionbar:save', doc);
+  }
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('motionbar:remove', doc);
+}
index 6b1d548..bbbac7f 100644 (file)
@@ -1 +1,20 @@
-var _0x52ec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x67\x65\x74"];_0x52ec[0];var should=require(_0x52ec[1]);var app=require(_0x52ec[2]);var request=require(_0x52ec[3]);describe(_0x52ec[4],function(){it(_0x52ec[5],function(_0xa8f2x4){request(app)[_0x52ec[13]](_0x52ec[12])[_0x52ec[11]](200)[_0x52ec[11]](_0x52ec[10],/json/)[_0x52ec[9]](function(_0xa8f2x5,_0xa8f2x6){if(_0xa8f2x5){return _0xa8f2x4(_0xa8f2x5)};_0xa8f2x6[_0x52ec[8]][_0x52ec[1]][_0x52ec[7]][_0x52ec[6]](Array);_0xa8f2x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/motionbar', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/motionbar')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 4264d5c..92aec80 100644 (file)
@@ -1 +1,16 @@
-var _0x76e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x76e0[0];var express=require(_0x76e0[1]);var controller=require(_0x76e0[2]);var router=express.Router();router[_0x76e0[5]](_0x76e0[3],controller[_0x76e0[4]]);router[_0x76e0[5]](_0x76e0[6],controller[_0x76e0[7]]);router[_0x76e0[5]](_0x76e0[8],controller[_0x76e0[9]]);router[_0x76e0[11]](_0x76e0[3],controller[_0x76e0[10]]);router[_0x76e0[13]](_0x76e0[8],controller[_0x76e0[12]]);router[_0x76e0[14]](_0x76e0[8],controller[_0x76e0[12]]);router[_0x76e0[16]](_0x76e0[8],controller[_0x76e0[15]]);module[_0x76e0[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_agent.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/describe', controller.describe);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 5755639..ffc7705 100644 (file)
@@ -1 +1,105 @@
-var _0x71db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x71db[0];var _=require(_0x71db[1]);var ReportAgent=require(_0x71db[3])[_0x71db[2]];exports[_0x71db[4]]=function(_0x2fc4x3,_0x2fc4x4){ReportAgent[_0x71db[9]]()[_0x71db[8]](function(_0x2fc4x6){return _0x2fc4x4[_0x71db[7]](200)[_0x71db[6]](_0x2fc4x6)})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)})};exports[_0x71db[10]]=function(_0x2fc4x3,_0x2fc4x4){ReportAgent[_0x71db[10]]()[_0x71db[8]](function(_0x2fc4x7){return _0x2fc4x4[_0x71db[7]](200)[_0x71db[6]](_0x2fc4x7)})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)})};exports[_0x71db[11]]=function(_0x2fc4x3,_0x2fc4x4){ReportAgent[_0x71db[15]](_0x2fc4x3[_0x71db[14]][_0x71db[13]])[_0x71db[8]](function(_0x2fc4x8){if(!_0x2fc4x8){return _0x2fc4x4[_0x71db[12]](404)};return _0x2fc4x4[_0x71db[6]](_0x2fc4x8);})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)})};exports[_0x71db[16]]=function(_0x2fc4x3,_0x2fc4x4){ReportAgent[_0x71db[16]](_0x2fc4x3[_0x71db[17]])[_0x71db[8]](function(_0x2fc4x8){return _0x2fc4x4[_0x71db[7]](201)[_0x71db[6]](_0x2fc4x8)})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)})};exports[_0x71db[18]]=function(_0x2fc4x3,_0x2fc4x4){if(_0x2fc4x3[_0x71db[17]][_0x71db[13]]){delete _0x2fc4x3[_0x71db[17]][_0x71db[13]]};ReportAgent[_0x71db[15]](_0x2fc4x3[_0x71db[14]][_0x71db[13]])[_0x71db[8]](function(_0x2fc4x8){if(!_0x2fc4x8){return _0x2fc4x4[_0x71db[12]](404)};var _0x2fc4x9=_[_0x71db[19]](_0x2fc4x8,_0x2fc4x3[_0x71db[17]]);_0x2fc4x9[_0x71db[20]]()[_0x71db[8]](function(){return _0x2fc4x4[_0x71db[7]](200)[_0x71db[6]](_0x2fc4x8)})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)});})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)});};exports[_0x71db[21]]=function(_0x2fc4x3,_0x2fc4x4){ReportAgent[_0x71db[15]](_0x2fc4x3[_0x71db[14]][_0x71db[13]])[_0x71db[8]](function(_0x2fc4x8){if(!_0x2fc4x8){return _0x2fc4x4[_0x71db[12]](404)};_0x2fc4x8[_0x71db[21]]()[_0x71db[8]](function(){return _0x2fc4x4[_0x71db[12]](204)})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)});})[_0x71db[5]](function(_0x2fc4x5){return handleError(_0x2fc4x4,_0x2fc4x5)})};function handleError(_0x2fc4x4,_0x2fc4x5){return _0x2fc4x4[_0x71db[7]](500)[_0x71db[6]](_0x2fc4x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ReportAgent = require('../../models').ReportAgent;
+
+// Get list of report_agents
+exports.index = function(req, res) {
+  ReportAgent
+    .findAll()
+    .then(function(report_agents) {
+      return res.status(200).send(report_agents);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of fields
+exports.describe = function(req, res) {
+  ReportAgent
+    .describe()
+    .then(function(fields) {
+      return res.status(200).send(fields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single report_agent
+exports.show = function(req, res) {
+  ReportAgent
+    .findById(req.params.id)
+    .then(function(report_agent) {
+      if (!report_agent) {
+        return res.sendStatus(404);
+      }
+      return res.send(report_agent);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report_agent in the DB.
+exports.create = function(req, res) {
+  ReportAgent
+    .create(req.body)
+    .then(function(report_agent) {
+      return res.status(201).send(report_agent);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report_agent in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ReportAgent
+    .findById(req.params.id)
+    .then(function(report_agent) {
+      if (!report_agent) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report_agent, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report_agent);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report_agent from the DB.
+exports.destroy = function(req, res) {
+  ReportAgent
+    .findById(req.params.id)
+    .then(function(report_agent) {
+      if (!report_agent) {
+        return res.sendStatus(404);
+      }
+      report_agent.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 74ef444..f6d496d 100644 (file)
@@ -1 +1,50 @@
-var _0x8713=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8713[0];var ReportAgent=require(_0x8713[2])[_0x8713[1]];exports[_0x8713[3]]=function(_0xd29cx2){ReportAgent[_0x8713[4]](function(_0xd29cx3){onSave(_0xd29cx2,_0xd29cx3)});ReportAgent[_0x8713[5]](function(_0xd29cx3){onSave(_0xd29cx2,_0xd29cx3)});ReportAgent[_0x8713[6]](function(_0xd29cx3){onRemove(_0xd29cx2,_0xd29cx3)});};function onSave(_0xd29cx2,_0xd29cx3,_0xd29cx5){if(_0xd29cx2[_0x8713[7]]===_0xd29cx3[_0x8713[8]]||_0xd29cx2[_0x8713[9]]===_0x8713[10]){_0xd29cx2[_0x8713[12]](_0x8713[11],_0xd29cx3)}}function onRemove(_0xd29cx2,_0xd29cx3,_0xd29cx5){_0xd29cx2[_0x8713[12]](_0x8713[13],_0xd29cx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportAgent = require('../../models').ReportAgent;
+
+exports.register = function(socket) {
+  ReportAgent.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportAgent.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportAgent.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  // socket.emit('report_agent:save', {
+  //   id: doc.id,
+  //   uniqueid: doc.uniqueid,
+  //   calleridnum: doc.callerinum,
+  //   calleridname: doc.calleridname,
+  //   queue: doc.queue,
+  //   interface: doc.interface,
+  //   membername: doc.membername,
+  //   agentcalledAt: doc.agentcalledAt,
+  //   agentconnectAt: doc.agentconnectAt,
+  //   holdtime: doc.holdtime,
+  //   agentcomplete: doc.agentcomplete,
+  //   agentcompleteAt: doc.agentcompleteAt,
+  //   talktime: doc.talktime,
+  //   agentacw: doc.agentacw,
+  //   acwtime: doc.acwtime,
+  //   agentringnoanswer: doc.agentringnoanswer,
+  //   agentringnoanswerAt: doc.agentringnoanswerAt,
+  //   lastevent: doc.lastevent
+  // });
+  if (socket.name === doc.membername || socket.role === 'admin') {
+    socket.emit('report_agent:save', doc);
+  }
+
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_agent:remove', doc);
+}
index e3339e0..6de144c 100644 (file)
@@ -1 +1,15 @@
-var _0xf1fd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf1fd[0];var express=require(_0xf1fd[1]);var controller=require(_0xf1fd[2]);var router=express.Router();router[_0xf1fd[5]](_0xf1fd[3],controller[_0xf1fd[4]]);router[_0xf1fd[5]](_0xf1fd[6],controller[_0xf1fd[7]]);router[_0xf1fd[9]](_0xf1fd[3],controller[_0xf1fd[8]]);router[_0xf1fd[11]](_0xf1fd[6],controller[_0xf1fd[10]]);router[_0xf1fd[12]](_0xf1fd[6],controller[_0xf1fd[10]]);router[_0xf1fd[14]](_0xf1fd[6],controller[_0xf1fd[13]]);module[_0xf1fd[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_chat.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 894eb55..d727f82 100644 (file)
@@ -1 +1,96 @@
-var _0xa8e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xa8e7[0];var _=require(_0xa8e7[1]);var ReportChat=require(_0xa8e7[3])[_0xa8e7[2]];var sequelize=require(_0xa8e7[3])[_0xa8e7[4]];exports[_0xa8e7[5]]=function(_0xde94x4,_0xde94x5){ReportChat[_0xa8e7[10]]()[_0xa8e7[9]](function(_0xde94x7){return _0xde94x5[_0xa8e7[8]](200)[_0xa8e7[7]](_0xde94x7)})[_0xa8e7[6]](function(_0xde94x6){return handleError(_0xde94x5,_0xde94x6)})};exports[_0xa8e7[11]]=function(_0xde94x4,_0xde94x5){ReportChat[_0xa8e7[15]](_0xde94x4[_0xa8e7[14]][_0xa8e7[13]])[_0xa8e7[9]](function(_0xde94x8){if(!_0xde94x8){return _0xde94x5[_0xa8e7[12]](404)};return _0xde94x5[_0xa8e7[7]](_0xde94x8);})[_0xa8e7[6]](function(_0xde94x6){return handleError(_0xde94x5,_0xde94x6)})};exports[_0xa8e7[16]]=function(_0xde94x4,_0xde94x5){ReportChat[_0xa8e7[16]](_0xde94x4[_0xa8e7[17]])[_0xa8e7[9]](function(_0xde94x8){return _0xde94x5[_0xa8e7[8]](201)[_0xa8e7[7]](_0xde94x8)})[_0xa8e7[6]](function(_0xde94x6){return handleError(_0xde94x5,_0xde94x6)})};exports[_0xa8e7[18]]=function(_0xde94x4,_0xde94x5,_0xde94x9){if(_0xde94x4[_0xa8e7[17]][_0xa8e7[13]]){delete _0xde94x4[_0xa8e7[17]][_0xa8e7[13]]};return ReportChat[_0xa8e7[15]](_0xde94x4[_0xa8e7[14]][_0xa8e7[13]])[_0xa8e7[9]](function(_0xde94x8){if(!_0xde94x8){return _0xde94x5[_0xa8e7[12]](404)};var _0xde94xa=_[_0xa8e7[19]](_0xde94x8,_0xde94x4[_0xa8e7[17]]);return _0xde94xa[_0xa8e7[20]]()[_0xa8e7[9]](function(){return _0xde94x5[_0xa8e7[8]](200)[_0xa8e7[7]](_0xde94x8)});})[_0xa8e7[6]](sequelize.ValidationError,function(_0xde94x6){return handleError(_0xde94x5,_0xde94x6)})[_0xa8e7[6]](function(_0xde94x6){return handleError(_0xde94x5,_0xde94x6)});};exports[_0xa8e7[21]]=function(_0xde94x4,_0xde94x5){ReportChat[_0xa8e7[15]](_0xde94x4[_0xa8e7[14]][_0xa8e7[13]])[_0xa8e7[9]](function(_0xde94x8){if(!_0xde94x8){return _0xde94x5[_0xa8e7[12]](404)};_0xde94x8[_0xa8e7[21]]()[_0xa8e7[9]](function(){return _0xde94x5[_0xa8e7[12]](204)})[_0xa8e7[6]](function(_0xde94x6){return handleError(_0xde94x5,_0xde94x6)});})[_0xa8e7[6]](function(_0xde94x6){return handleError(_0xde94x5,_0xde94x6)})};function handleError(_0xde94x5,_0xde94x6){return _0xde94x5[_0xa8e7[8]](500)[_0xa8e7[7]](_0xde94x6)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ReportChat = require('../../models').ReportChat;
+var sequelize = require('../../models').sequelize;
+
+// Get list of report_chats
+exports.index = function (req, res) {
+  ReportChat
+    .findAll()
+    .then(function (report_chats) {
+      return res.status(200).send(report_chats);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single reportChat
+exports.show = function (req, res) {
+  ReportChat
+    .findById(req.params.id)
+    .then(function (reportChat) {
+      if (!reportChat) {
+        return res.sendStatus(404);
+      }
+      return res.send(reportChat);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new reportChat in the DB.
+exports.create = function (req, res) {
+  ReportChat
+    .create(req.body)
+    .then(function (reportChat) {
+      return res.status(201).send(reportChat);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing reportChat in the DB.
+exports.update = function (req, res, next) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+
+  return ReportChat
+    .findById(req.params.id)
+    .then(function (reportChat) {
+      if (!reportChat) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(reportChat, req.body);
+      return updated
+        .save()
+        .then(function () {
+          return res.status(200).send(reportChat);
+        });
+    })
+    .catch(sequelize.ValidationError, function (err) {
+      return handleError(res, err);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a reportChat from the DB.
+exports.destroy = function (req, res) {
+  ReportChat
+    .findById(req.params.id)
+    .then(function (reportChat) {
+      if (!reportChat) {
+        return res.sendStatus(404);
+      }
+      reportChat.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 50de784..21c35bc 100644 (file)
@@ -1 +1,39 @@
-var _0xe1d1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x61\x67\x65\x6E\x74\x69\x64","\x63\x68\x61\x6E\x67\x65\x64","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x3A\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x3A\x75\x70\x64\x61\x74\x65","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe1d1[0];var ReportChat=require(_0xe1d1[2])[_0xe1d1[1]];exports[_0xe1d1[3]]=function(_0xc910x2){ReportChat[_0xe1d1[4]](function(_0xc910x3){onSave(_0xc910x2,_0xc910x3)});ReportChat[_0xe1d1[5]](function(_0xc910x3){onUpdate(_0xc910x2,_0xc910x3)});ReportChat[_0xe1d1[6]](function(_0xc910x3){onRemove(_0xc910x2,_0xc910x3)});};function onSave(_0xc910x2,_0xc910x3,_0xc910x5){if(_0xc910x2[_0xe1d1[7]]===_0xc910x3[_0xe1d1[8]]||_0xc910x2[_0xe1d1[9]]===_0xe1d1[10]){_0xc910x2[_0xe1d1[12]](_0xe1d1[11],_0xc910x3)}}function onUpdate(_0xc910x2,_0xc910x3,_0xc910x5){if(_0xc910x2[_0xe1d1[7]]===_0xc910x3[_0xe1d1[8]]||_0xc910x2[_0xe1d1[9]]===_0xe1d1[10]){if(_0xc910x3[_0xe1d1[14]](_0xe1d1[13])){_0xc910x2[_0xe1d1[12]](_0xe1d1[15],_0xc910x3)}else {_0xc910x2[_0xe1d1[12]](_0xe1d1[16],_0xc910x3)}}}function onRemove(_0xc910x2,_0xc910x3,_0xc910x5){_0xc910x2[_0xe1d1[12]](_0xe1d1[17],_0xc910x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportChat = require('../../models').ReportChat;
+
+exports.register = function (socket) {
+  ReportChat.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  ReportChat.afterUpdate(function (doc) {
+    onUpdate(socket, doc);
+  });
+  ReportChat.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  if (socket.name === doc.membername || socket.role === 'admin') {
+    socket.emit('report_chat:save', doc);
+  }
+}
+
+function onUpdate(socket, doc, cb) {
+  if (socket.name === doc.membername || socket.role === 'admin') {
+    if (doc.changed('agentid')) {
+      socket.emit('report_chat:assignment', doc);
+    } else {
+      socket.emit('report_chat:update', doc);
+    }
+  }
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_chat:remove', doc);
+}
index 350bdaa..df7a454 100644 (file)
@@ -1 +1,20 @@
-var _0xf90e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x73","\x67\x65\x74"];_0xf90e[0];var should=require(_0xf90e[1]);var app=require(_0xf90e[2]);var request=require(_0xf90e[3]);describe(_0xf90e[4],function(){it(_0xf90e[5],function(_0x4c74x4){request(app)[_0xf90e[13]](_0xf90e[12])[_0xf90e[11]](200)[_0xf90e[11]](_0xf90e[10],/json/)[_0xf90e[9]](function(_0x4c74x5,_0x4c74x6){if(_0x4c74x5){return _0x4c74x4(_0x4c74x5)};_0x4c74x6[_0xf90e[8]][_0xf90e[1]][_0xf90e[7]][_0xf90e[6]](Array);_0x4c74x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/report/chats', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/report/chats')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index b904a83..030bd33 100644 (file)
@@ -1 +1,16 @@
-var _0x4246=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4246[0];var express=require(_0x4246[1]);var controller=require(_0x4246[2]);var router=express.Router();router[_0x4246[5]](_0x4246[3],controller[_0x4246[4]]);router[_0x4246[5]](_0x4246[6],controller[_0x4246[7]]);router[_0x4246[5]](_0x4246[8],controller[_0x4246[9]]);router[_0x4246[11]](_0x4246[3],controller[_0x4246[10]]);router[_0x4246[13]](_0x4246[8],controller[_0x4246[12]]);router[_0x4246[14]](_0x4246[8],controller[_0x4246[12]]);router[_0x4246[16]](_0x4246[8],controller[_0x4246[15]]);module[_0x4246[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_chat_session.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/describe', controller.describe);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 088f07c..7d61812 100644 (file)
@@ -1 +1,113 @@
-var _0xe1e8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0xe1e8[0];var _=require(_0xe1e8[1]);var ReportChatSession=require(_0xe1e8[3])[_0xe1e8[2]];exports[_0xe1e8[4]]=function(_0xe320x3,_0xe320x4){ReportChatSession[_0xe1e8[9]]()[_0xe1e8[8]](function(_0xe320x6){return _0xe320x4[_0xe1e8[7]](200)[_0xe1e8[6]](_0xe320x6)})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)})};exports[_0xe1e8[10]]=function(_0xe320x3,_0xe320x4){ReportChatSession[_0xe1e8[10]]()[_0xe1e8[8]](function(_0xe320x7){return _0xe320x4[_0xe1e8[7]](200)[_0xe1e8[6]](_0xe320x7)})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)})};exports[_0xe1e8[11]]=function(_0xe320x3,_0xe320x4){ReportChatSession[_0xe1e8[15]](_0xe320x3[_0xe1e8[14]][_0xe1e8[13]])[_0xe1e8[8]](function(_0xe320x8){if(!_0xe320x8){return _0xe320x4[_0xe1e8[12]](404)};return _0xe320x4[_0xe1e8[6]](_0xe320x8);})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)})};exports[_0xe1e8[16]]=function(_0xe320x3,_0xe320x4){ReportChatSession[_0xe1e8[16]](_0xe320x3[_0xe1e8[17]])[_0xe1e8[8]](function(_0xe320x8){return _0xe320x4[_0xe1e8[7]](201)[_0xe1e8[6]](_0xe320x8)})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)})};exports[_0xe1e8[18]]=function(_0xe320x3,_0xe320x4){if(_0xe320x3[_0xe1e8[17]][_0xe1e8[13]]){delete _0xe320x3[_0xe1e8[17]][_0xe1e8[13]]};ReportChatSession[_0xe1e8[21]]({where:{id:_0xe320x3[_0xe1e8[14]][_0xe1e8[13]]}})[_0xe1e8[8]](function(_0xe320x8){if(!_0xe320x8){return _0xe320x4[_0xe1e8[12]](404)};var _0xe320x9=_[_0xe1e8[19]](_0xe320x8,_0xe320x3[_0xe1e8[17]]);_0xe320x9[_0xe1e8[20]]()[_0xe1e8[8]](function(){return _0xe320x4[_0xe1e8[7]](200)[_0xe1e8[6]](_0xe320x8)})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)});})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)});};exports[_0xe1e8[22]]=function(_0xe320x3,_0xe320x4){ReportChatSession[_0xe1e8[21]]({where:{id:_0xe320x3[_0xe1e8[14]][_0xe1e8[13]]}})[_0xe1e8[8]](function(_0xe320x8){if(!_0xe320x8){return _0xe320x4[_0xe1e8[12]](404)};_0xe320x8[_0xe1e8[22]]()[_0xe1e8[8]](function(){return _0xe320x4[_0xe1e8[12]](204)})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)});})[_0xe1e8[5]](function(_0xe320x5){return handleError(_0xe320x4,_0xe320x5)})};function handleError(_0xe320x4,_0xe320x5){return _0xe320x4[_0xe1e8[7]](500)[_0xe1e8[6]](_0xe320x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ReportChatSession = require('../../models').ReportChatSession;
+
+// Get list of report_chat_sessions
+exports.index = function(req, res) {
+  ReportChatSession
+    .findAll()
+    .then(function(report_chat_sessions) {
+      return res.status(200).send(report_chat_sessions);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of fields
+exports.describe = function(req, res) {
+  ReportChatSession
+    .describe()
+    .then(function(fields) {
+      return res.status(200).send(fields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single report_chat_session
+exports.show = function(req, res) {
+  ReportChatSession
+    .findById(req.params.id)
+    .then(function(report_chat_session) {
+      if (!report_chat_session) {
+        return res.sendStatus(404);
+      }
+      return res.send(report_chat_session);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report_chat_session in the DB.
+exports.create = function(req, res) {
+  ReportChatSession
+    .create(req.body)
+    .then(function(report_chat_session) {
+      return res.status(201).send(report_chat_session);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report_chat_session in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ReportChatSession
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(report_chat_session) {
+      if (!report_chat_session) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report_chat_session, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report_chat_session);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report_chat_session from the DB.
+exports.destroy = function(req, res) {
+  ReportChatSession
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(report_chat_session) {
+      if (!report_chat_session) {
+        return res.sendStatus(404);
+      }
+      report_chat_session.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 1ab896b..a378e10 100644 (file)
@@ -1 +1,27 @@
-var _0x521a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x521a[0];var ReportChatSession=require(_0x521a[2])[_0x521a[1]];exports[_0x521a[3]]=function(_0x787ax2){ReportChatSession[_0x521a[4]](function(_0x787ax3){onSave(_0x787ax2,_0x787ax3)});ReportChatSession[_0x521a[5]](function(_0x787ax3){onSave(_0x787ax2,_0x787ax3)});ReportChatSession[_0x521a[6]](function(_0x787ax3){onRemove(_0x787ax2,_0x787ax3)});};function onSave(_0x787ax2,_0x787ax3,_0x787ax5){_0x787ax2[_0x521a[8]](_0x521a[7],_0x787ax3)}function onRemove(_0x787ax2,_0x787ax3,_0x787ax5){_0x787ax2[_0x521a[8]](_0x521a[9],_0x787ax3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportChatSession = require('../../models').ReportChatSession;
+
+exports.register = function(socket) {
+  ReportChatSession.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportChatSession.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportChatSession.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('report_chat_session:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_chat_session:remove', doc);
+}
index 3f1efaf..f58cff0 100644 (file)
@@ -1 +1,20 @@
-var _0x3841=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x67\x65\x74"];_0x3841[0];var should=require(_0x3841[1]);var app=require(_0x3841[2]);var request=require(_0x3841[3]);describe(_0x3841[4],function(){it(_0x3841[5],function(_0xbcf6x4){request(app)[_0x3841[13]](_0x3841[12])[_0x3841[11]](200)[_0x3841[11]](_0x3841[10],/json/)[_0x3841[9]](function(_0xbcf6x5,_0xbcf6x6){if(_0xbcf6x5){return _0xbcf6x4(_0xbcf6x5)};_0xbcf6x6[_0x3841[8]][_0x3841[1]][_0x3841[7]][_0x3841[6]](Array);_0xbcf6x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/report/chat/sessions', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/report/chat/sessions')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index ac14fa7..451980f 100644 (file)
@@ -1 +1,16 @@
-var _0x6ada=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6ada[0];var express=require(_0x6ada[1]);var controller=require(_0x6ada[2]);var router=express.Router();router[_0x6ada[5]](_0x6ada[3],controller[_0x6ada[4]]);router[_0x6ada[5]](_0x6ada[6],controller[_0x6ada[7]]);router[_0x6ada[5]](_0x6ada[8],controller[_0x6ada[9]]);router[_0x6ada[11]](_0x6ada[3],controller[_0x6ada[10]]);router[_0x6ada[13]](_0x6ada[8],controller[_0x6ada[12]]);router[_0x6ada[14]](_0x6ada[8],controller[_0x6ada[12]]);router[_0x6ada[16]](_0x6ada[8],controller[_0x6ada[15]]);module[_0x6ada[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_integration.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/describe', controller.describe);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index f71f42f..fa049b3 100644 (file)
@@ -1 +1,105 @@
-var _0xdae1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xdae1[0];var _=require(_0xdae1[1]);var ReportIntegration=require(_0xdae1[3])[_0xdae1[2]];exports[_0xdae1[4]]=function(_0xc499x3,_0xc499x4){ReportIntegration[_0xdae1[9]]()[_0xdae1[8]](function(_0xc499x6){return _0xc499x4[_0xdae1[7]](200)[_0xdae1[6]](_0xc499x6)})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)})};exports[_0xdae1[10]]=function(_0xc499x3,_0xc499x4){ReportIntegration[_0xdae1[10]]()[_0xdae1[8]](function(_0xc499x7){return _0xc499x4[_0xdae1[7]](200)[_0xdae1[6]](_0xc499x7)})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)})};exports[_0xdae1[11]]=function(_0xc499x3,_0xc499x4){ReportIntegration[_0xdae1[15]](_0xc499x3[_0xdae1[14]][_0xdae1[13]])[_0xdae1[8]](function(_0xc499x8){if(!_0xc499x8){return _0xc499x4[_0xdae1[12]](404)};return _0xc499x4[_0xdae1[6]](_0xc499x8);})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)})};exports[_0xdae1[16]]=function(_0xc499x3,_0xc499x4){ReportIntegration[_0xdae1[16]](_0xc499x3[_0xdae1[17]])[_0xdae1[8]](function(_0xc499x8){return _0xc499x4[_0xdae1[7]](201)[_0xdae1[6]](_0xc499x8)})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)})};exports[_0xdae1[18]]=function(_0xc499x3,_0xc499x4){if(_0xc499x3[_0xdae1[17]][_0xdae1[13]]){delete _0xc499x3[_0xdae1[17]][_0xdae1[13]]};ReportIntegration[_0xdae1[15]](_0xc499x3[_0xdae1[14]][_0xdae1[13]])[_0xdae1[8]](function(_0xc499x8){if(!_0xc499x8){return _0xc499x4[_0xdae1[12]](404)};var _0xc499x9=_[_0xdae1[19]](_0xc499x8,_0xc499x3[_0xdae1[17]]);_0xc499x9[_0xdae1[20]]()[_0xdae1[8]](function(){return _0xc499x4[_0xdae1[7]](200)[_0xdae1[6]](_0xc499x8)})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)});})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)});};exports[_0xdae1[21]]=function(_0xc499x3,_0xc499x4){ReportIntegration[_0xdae1[15]](_0xc499x3[_0xdae1[14]][_0xdae1[13]])[_0xdae1[8]](function(_0xc499x8){if(!_0xc499x8){return _0xc499x4[_0xdae1[12]](404)};_0xc499x8[_0xdae1[21]]()[_0xdae1[8]](function(){return _0xc499x4[_0xdae1[12]](204)})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)});})[_0xdae1[5]](function(_0xc499x5){return handleError(_0xc499x4,_0xc499x5)})};function handleError(_0xc499x4,_0xc499x5){return _0xc499x4[_0xdae1[7]](500)[_0xdae1[6]](_0xc499x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ReportIntegration = require('../../models').ReportIntegration;
+
+// Get list of report_integrations
+exports.index = function(req, res) {
+  ReportIntegration
+    .findAll()
+    .then(function(report_integrations) {
+      return res.status(200).send(report_integrations);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of fields
+exports.describe = function(req, res) {
+  ReportIntegration
+    .describe()
+    .then(function(fields) {
+      return res.status(200).send(fields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single report_integration
+exports.show = function(req, res) {
+  ReportIntegration
+    .findById(req.params.id)
+    .then(function(report_integration) {
+      if (!report_integration) {
+        return res.sendStatus(404);
+      }
+      return res.send(report_integration);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report_integration in the DB.
+exports.create = function(req, res) {
+  ReportIntegration
+    .create(req.body)
+    .then(function(report_integration) {
+      return res.status(201).send(report_integration);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report_integration in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ReportIntegration
+    .findById(req.params.id)
+    .then(function(report_integration) {
+      if (!report_integration) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report_integration, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report_integration);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report_integration from the DB.
+exports.destroy = function(req, res) {
+  ReportIntegration
+    .findById(req.params.id)
+    .then(function(report_integration) {
+      if (!report_integration) {
+        return res.sendStatus(404);
+      }
+      report_integration.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index f53db63..2bd59ab 100644 (file)
@@ -1 +1,23 @@
-var _0x3332=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x25\x73","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x69\x74"];_0x3332[0];var util=require(_0x3332[1]);var ReportIntegration=require(_0x3332[3])[_0x3332[2]];exports[_0x3332[4]]=function(_0xd4a8x3){ReportIntegration[_0x3332[5]](function(_0xd4a8x4){onSave(_0xd4a8x3,_0xd4a8x4)})};function onSave(_0xd4a8x3,_0xd4a8x4,_0xd4a8x6){if(_0xd4a8x3[_0x3332[6]]===_0xd4a8x4[_0x3332[7]]){_0xd4a8x3[_0x3332[11]](util[_0x3332[10]](_0x3332[8],_0xd4a8x4[_0x3332[9]]),_0xd4a8x4)}}
\ No newline at end of file
+/**
+ * Broadcast integrations update when the model changes
+ */
+
+'use strict';
+
+var util = require('util');
+var ReportIntegration = require('../../models').ReportIntegration;
+
+exports.register = function(socket) {
+  ReportIntegration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  console.log('socket name is ', socket.name);
+  console.log('doc membername is ', doc.membername);
+  if (socket.name === doc.membername) {
+    console.log('emitting');
+    socket.emit(util.format('report_integration:%s', doc.integration), doc);
+  }
+}
index da747c5..c895f2a 100644 (file)
@@ -1 +1,15 @@
-var _0xc16f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc16f[0];var express=require(_0xc16f[1]);var controller=require(_0xc16f[2]);var router=express.Router();router[_0xc16f[5]](_0xc16f[3],controller[_0xc16f[4]]);router[_0xc16f[5]](_0xc16f[6],controller[_0xc16f[7]]);router[_0xc16f[9]](_0xc16f[3],controller[_0xc16f[8]]);router[_0xc16f[11]](_0xc16f[6],controller[_0xc16f[10]]);router[_0xc16f[12]](_0xc16f[6],controller[_0xc16f[10]]);router[_0xc16f[14]](_0xc16f[6],controller[_0xc16f[13]]);module[_0xc16f[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_mail.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 3283d4a..ccc28b5 100644 (file)
@@ -1 +1,93 @@
-var _0x80b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x80b8[0];var _=require(_0x80b8[1]);var ReportMail=require(_0x80b8[3])[_0x80b8[2]];exports[_0x80b8[4]]=function(_0xd434x3,_0xd434x4){ReportMail[_0x80b8[9]]()[_0x80b8[8]](function(_0xd434x6){return _0xd434x4[_0x80b8[7]](200)[_0x80b8[6]](_0xd434x6)})[_0x80b8[5]](function(_0xd434x5){return handleError(_0xd434x4,_0xd434x5)})};exports[_0x80b8[10]]=function(_0xd434x3,_0xd434x4){ReportMail[_0x80b8[14]](_0xd434x3[_0x80b8[13]][_0x80b8[12]])[_0x80b8[8]](function(_0xd434x7){if(!_0xd434x7){return _0xd434x4[_0x80b8[11]](404)};return _0xd434x4[_0x80b8[6]](_0xd434x7);})[_0x80b8[5]](function(_0xd434x5){return handleError(_0xd434x4,_0xd434x5)})};exports[_0x80b8[15]]=function(_0xd434x3,_0xd434x4){ReportMail[_0x80b8[15]](_0xd434x3[_0x80b8[16]])[_0x80b8[8]](function(_0xd434x7){return _0xd434x4[_0x80b8[7]](201)[_0x80b8[6]](_0xd434x7)})[_0x80b8[5]](function(_0xd434x5){return handleError(_0xd434x4,_0xd434x5)})};exports[_0x80b8[17]]=function(_0xd434x3,_0xd434x4){if(_0xd434x3[_0x80b8[16]][_0x80b8[12]]){delete _0xd434x3[_0x80b8[16]][_0x80b8[12]]};ReportMail[_0x80b8[14]](_0xd434x3[_0x80b8[13]][_0x80b8[12]])[_0x80b8[8]](function(_0xd434x7){if(!_0xd434x7){return _0xd434x4[_0x80b8[11]](404)};var _0xd434x8=_[_0x80b8[18]](_0xd434x7,_0xd434x3[_0x80b8[16]]);_0xd434x8[_0x80b8[19]]()[_0x80b8[8]](function(){return _0xd434x4[_0x80b8[7]](200)[_0x80b8[6]](_0xd434x7)})[_0x80b8[5]](function(_0xd434x5){return handleError(_0xd434x4,_0xd434x5)});})[_0x80b8[5]](function(_0xd434x5){return handleError(_0xd434x4,_0xd434x5)});};exports[_0x80b8[20]]=function(_0xd434x3,_0xd434x4){ReportMail[_0x80b8[14]](_0xd434x3[_0x80b8[13]][_0x80b8[12]])[_0x80b8[8]](function(_0xd434x7){if(!_0xd434x7){return _0xd434x4[_0x80b8[11]](404)};_0xd434x7[_0x80b8[20]]()[_0x80b8[8]](function(){return _0xd434x4[_0x80b8[11]](204)})[_0x80b8[5]](function(_0xd434x5){return handleError(_0xd434x4,_0xd434x5)});})[_0x80b8[5]](function(_0xd434x5){return handleError(_0xd434x4,_0xd434x5)})};function handleError(_0xd434x4,_0xd434x5){return _0xd434x4[_0x80b8[7]](500)[_0x80b8[6]](_0xd434x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ReportMail = require('../../models').ReportMail;
+
+// Get list of report_mails
+exports.index = function(req, res) {
+  ReportMail
+    .findAll()
+    .then(function(report_mails) {
+      return res.status(200).send(report_mails);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single reportMail
+exports.show = function(req, res) {
+  ReportMail
+    .findById(req.params.id)
+    .then(function(reportMail) {
+      if (!reportMail) {
+        return res.sendStatus(404);
+      }
+      return res.send(reportMail);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new reportMail in the DB.
+exports.create = function(req, res) {
+  ReportMail
+    .create(req.body)
+    .then(function(reportMail) {
+      return res.status(201).send(reportMail);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing reportMail in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ReportMail
+    .findById(req.params.id)
+    .then(function(reportMail) {
+      if (!reportMail) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(reportMail, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(reportMail);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a reportMail from the DB.
+exports.destroy = function(req, res) {
+  ReportMail
+    .findById(req.params.id)
+    .then(function(reportMail) {
+      if (!reportMail) {
+        return res.sendStatus(404);
+      }
+      reportMail.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 816ee4f..1fec069 100644 (file)
@@ -1 +1,35 @@
-var _0x392f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x3A\x75\x70\x64\x61\x74\x65","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x3A\x72\x65\x6D\x6F\x76\x65"];_0x392f[0];var ReportMail=require(_0x392f[2])[_0x392f[1]];exports[_0x392f[3]]=function(_0xaafcx2){ReportMail[_0x392f[4]](function(_0xaafcx3){onSave(_0xaafcx2,_0xaafcx3)});ReportMail[_0x392f[5]](function(_0xaafcx3){onUpdate(_0xaafcx2,_0xaafcx3)});ReportMail[_0x392f[6]](function(_0xaafcx3){onRemove(_0xaafcx2,_0xaafcx3)});};function onSave(_0xaafcx2,_0xaafcx3,_0xaafcx5){if(_0xaafcx2[_0x392f[7]]===_0xaafcx3[_0x392f[8]]||_0xaafcx2[_0x392f[9]]===_0x392f[10]){_0xaafcx2[_0x392f[12]](_0x392f[11],_0xaafcx3)}}function onUpdate(_0xaafcx2,_0xaafcx3,_0xaafcx5){if(_0xaafcx2[_0x392f[7]]===_0xaafcx3[_0x392f[8]]||_0xaafcx2[_0x392f[9]]===_0x392f[10]){_0xaafcx2[_0x392f[12]](_0x392f[13],_0xaafcx3)}}function onRemove(_0xaafcx2,_0xaafcx3,_0xaafcx5){_0xaafcx2[_0x392f[12]](_0x392f[14],_0xaafcx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportMail = require('../../models').ReportMail;
+
+exports.register = function(socket) {
+  ReportMail.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportMail.afterUpdate(function(doc) {
+    onUpdate(socket, doc);
+  });
+  ReportMail.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  if (socket.name === doc.membername || socket.role === 'admin') {
+    socket.emit('report_mail:save', doc);
+  }
+}
+
+function onUpdate(socket, doc, cb) {
+  if (socket.name === doc.membername || socket.role === 'admin') {
+    socket.emit('report_mail:update', doc);
+  }
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_mail:remove', doc);
+}
index 6290732..80e5153 100644 (file)
@@ -1 +1,20 @@
-var _0xba90=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x73","\x67\x65\x74"];_0xba90[0];var should=require(_0xba90[1]);var app=require(_0xba90[2]);var request=require(_0xba90[3]);describe(_0xba90[4],function(){it(_0xba90[5],function(_0x8915x4){request(app)[_0xba90[13]](_0xba90[12])[_0xba90[11]](200)[_0xba90[11]](_0xba90[10],/json/)[_0xba90[9]](function(_0x8915x5,_0x8915x6){if(_0x8915x5){return _0x8915x4(_0x8915x5)};_0x8915x6[_0xba90[8]][_0xba90[1]][_0xba90[7]][_0xba90[6]](Array);_0x8915x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/report/mails', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/report/mails')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 378c882..e63d04d 100644 (file)
@@ -1 +1,16 @@
-var _0x9b0c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9b0c[0];var express=require(_0x9b0c[1]);var controller=require(_0x9b0c[2]);var router=express.Router();router[_0x9b0c[5]](_0x9b0c[3],controller[_0x9b0c[4]]);router[_0x9b0c[5]](_0x9b0c[6],controller[_0x9b0c[7]]);router[_0x9b0c[5]](_0x9b0c[8],controller[_0x9b0c[9]]);router[_0x9b0c[11]](_0x9b0c[3],controller[_0x9b0c[10]]);router[_0x9b0c[13]](_0x9b0c[8],controller[_0x9b0c[12]]);router[_0x9b0c[14]](_0x9b0c[8],controller[_0x9b0c[12]]);router[_0x9b0c[16]](_0x9b0c[8],controller[_0x9b0c[15]]);module[_0x9b0c[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_mail_session.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/describe', controller.describe);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 59f2f15..55856c3 100644 (file)
@@ -1 +1,113 @@
-var _0x869c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x869c[0];var _=require(_0x869c[1]);var ReportMailSession=require(_0x869c[3])[_0x869c[2]];exports[_0x869c[4]]=function(_0x8f46x3,_0x8f46x4){ReportMailSession[_0x869c[9]]()[_0x869c[8]](function(_0x8f46x6){return _0x8f46x4[_0x869c[7]](200)[_0x869c[6]](_0x8f46x6)})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)})};exports[_0x869c[10]]=function(_0x8f46x3,_0x8f46x4){ReportMailSession[_0x869c[10]]()[_0x869c[8]](function(_0x8f46x7){return _0x8f46x4[_0x869c[7]](200)[_0x869c[6]](_0x8f46x7)})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)})};exports[_0x869c[11]]=function(_0x8f46x3,_0x8f46x4){ReportMailSession[_0x869c[15]](_0x8f46x3[_0x869c[14]][_0x869c[13]])[_0x869c[8]](function(_0x8f46x8){if(!_0x8f46x8){return _0x8f46x4[_0x869c[12]](404)};return _0x8f46x4[_0x869c[6]](_0x8f46x8);})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)})};exports[_0x869c[16]]=function(_0x8f46x3,_0x8f46x4){ReportMailSession[_0x869c[16]](_0x8f46x3[_0x869c[17]])[_0x869c[8]](function(_0x8f46x8){return _0x8f46x4[_0x869c[7]](201)[_0x869c[6]](_0x8f46x8)})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)})};exports[_0x869c[18]]=function(_0x8f46x3,_0x8f46x4){if(_0x8f46x3[_0x869c[17]][_0x869c[13]]){delete _0x8f46x3[_0x869c[17]][_0x869c[13]]};ReportMailSession[_0x869c[21]]({where:{id:_0x8f46x3[_0x869c[14]][_0x869c[13]]}})[_0x869c[8]](function(_0x8f46x8){if(!_0x8f46x8){return _0x8f46x4[_0x869c[12]](404)};var _0x8f46x9=_[_0x869c[19]](_0x8f46x8,_0x8f46x3[_0x869c[17]]);_0x8f46x9[_0x869c[20]]()[_0x869c[8]](function(){return _0x8f46x4[_0x869c[7]](200)[_0x869c[6]](_0x8f46x8)})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)});})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)});};exports[_0x869c[22]]=function(_0x8f46x3,_0x8f46x4){ReportMailSession[_0x869c[21]]({where:{id:_0x8f46x3[_0x869c[14]][_0x869c[13]]}})[_0x869c[8]](function(_0x8f46x8){if(!_0x8f46x8){return _0x8f46x4[_0x869c[12]](404)};_0x8f46x8[_0x869c[22]]()[_0x869c[8]](function(){return _0x8f46x4[_0x869c[12]](204)})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)});})[_0x869c[5]](function(_0x8f46x5){return handleError(_0x8f46x4,_0x8f46x5)})};function handleError(_0x8f46x4,_0x8f46x5){return _0x8f46x4[_0x869c[7]](500)[_0x869c[6]](_0x8f46x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ReportMailSession = require('../../models').ReportMailSession;
+
+// Get list of report_mail_sessions
+exports.index = function(req, res) {
+  ReportMailSession
+    .findAll()
+    .then(function(report_mail_sessions) {
+      return res.status(200).send(report_mail_sessions);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of fields
+exports.describe = function(req, res) {
+  ReportMailSession
+    .describe()
+    .then(function(fields) {
+      return res.status(200).send(fields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single report_mail_session
+exports.show = function(req, res) {
+  ReportMailSession
+    .findById(req.params.id)
+    .then(function(report_mail_session) {
+      if (!report_mail_session) {
+        return res.sendStatus(404);
+      }
+      return res.send(report_mail_session);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report_mail_session in the DB.
+exports.create = function(req, res) {
+  ReportMailSession
+    .create(req.body)
+    .then(function(report_mail_session) {
+      return res.status(201).send(report_mail_session);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report_mail_session in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ReportMailSession
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(report_mail_session) {
+      if (!report_mail_session) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report_mail_session, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report_mail_session);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report_mail_session from the DB.
+exports.destroy = function(req, res) {
+  ReportMailSession
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(report_mail_session) {
+      if (!report_mail_session) {
+        return res.sendStatus(404);
+      }
+      report_mail_session.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index ae445aa..6489a0d 100644 (file)
@@ -1 +1,27 @@
-var _0x396d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x396d[0];var ReportMailSession=require(_0x396d[2])[_0x396d[1]];exports[_0x396d[3]]=function(_0xcda0x2){ReportMailSession[_0x396d[4]](function(_0xcda0x3){onSave(_0xcda0x2,_0xcda0x3)});ReportMailSession[_0x396d[5]](function(_0xcda0x3){onSave(_0xcda0x2,_0xcda0x3)});ReportMailSession[_0x396d[6]](function(_0xcda0x3){onRemove(_0xcda0x2,_0xcda0x3)});};function onSave(_0xcda0x2,_0xcda0x3,_0xcda0x5){_0xcda0x2[_0x396d[8]](_0x396d[7],_0xcda0x3)}function onRemove(_0xcda0x2,_0xcda0x3,_0xcda0x5){_0xcda0x2[_0x396d[8]](_0x396d[9],_0xcda0x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportMailSession = require('../../models').ReportMailSession;
+
+exports.register = function(socket) {
+  ReportMailSession.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportMailSession.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportMailSession.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('report_mail_session:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_mail_session:remove', doc);
+}
index d9bc777..d528b0c 100644 (file)
@@ -1 +1,20 @@
-var _0x4e79=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x67\x65\x74"];_0x4e79[0];var should=require(_0x4e79[1]);var app=require(_0x4e79[2]);var request=require(_0x4e79[3]);describe(_0x4e79[4],function(){it(_0x4e79[5],function(_0xfdf2x4){request(app)[_0x4e79[13]](_0x4e79[12])[_0x4e79[11]](200)[_0x4e79[11]](_0x4e79[10],/json/)[_0x4e79[9]](function(_0xfdf2x5,_0xfdf2x6){if(_0xfdf2x5){return _0xfdf2x4(_0xfdf2x5)};_0xfdf2x6[_0x4e79[8]][_0x4e79[1]][_0x4e79[7]][_0x4e79[6]](Array);_0xfdf2x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/report/mail/sessions', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/report/mail/sessions')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index b9ce988..f92d5aa 100644 (file)
@@ -1 +1,16 @@
-var _0x6ac0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6ac0[0];var express=require(_0x6ac0[1]);var controller=require(_0x6ac0[2]);var router=express.Router();router[_0x6ac0[5]](_0x6ac0[3],controller[_0x6ac0[4]]);router[_0x6ac0[5]](_0x6ac0[6],controller[_0x6ac0[7]]);router[_0x6ac0[5]](_0x6ac0[8],controller[_0x6ac0[9]]);router[_0x6ac0[11]](_0x6ac0[3],controller[_0x6ac0[10]]);router[_0x6ac0[13]](_0x6ac0[8],controller[_0x6ac0[12]]);router[_0x6ac0[14]](_0x6ac0[8],controller[_0x6ac0[12]]);router[_0x6ac0[16]](_0x6ac0[8],controller[_0x6ac0[15]]);module[_0x6ac0[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_queue.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/describe', controller.describe);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 64b0a1f..eb1e8d3 100644 (file)
@@ -1 +1,105 @@
-var _0xca73=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xca73[0];var _=require(_0xca73[1]);var ReportQueue=require(_0xca73[3])[_0xca73[2]];exports[_0xca73[4]]=function(_0xe748x3,_0xe748x4){ReportQueue[_0xca73[9]]()[_0xca73[8]](function(_0xe748x6){return _0xe748x4[_0xca73[7]](200)[_0xca73[6]](_0xe748x6)})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)})};exports[_0xca73[10]]=function(_0xe748x3,_0xe748x4){ReportQueue[_0xca73[10]]()[_0xca73[8]](function(_0xe748x7){return _0xe748x4[_0xca73[7]](200)[_0xca73[6]](_0xe748x7)})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)})};exports[_0xca73[11]]=function(_0xe748x3,_0xe748x4){ReportQueue[_0xca73[15]](_0xe748x3[_0xca73[14]][_0xca73[13]])[_0xca73[8]](function(_0xe748x8){if(!_0xe748x8){return _0xe748x4[_0xca73[12]](404)};return _0xe748x4[_0xca73[6]](_0xe748x8);})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)})};exports[_0xca73[16]]=function(_0xe748x3,_0xe748x4){ReportQueue[_0xca73[16]](_0xe748x3[_0xca73[17]])[_0xca73[8]](function(_0xe748x8){return _0xe748x4[_0xca73[7]](201)[_0xca73[6]](_0xe748x8)})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)})};exports[_0xca73[18]]=function(_0xe748x3,_0xe748x4){if(_0xe748x3[_0xca73[17]][_0xca73[13]]){delete _0xe748x3[_0xca73[17]][_0xca73[13]]};ReportQueue[_0xca73[15]](_0xe748x3[_0xca73[14]][_0xca73[13]])[_0xca73[8]](function(_0xe748x8){if(!_0xe748x8){return _0xe748x4[_0xca73[12]](404)};var _0xe748x9=_[_0xca73[19]](_0xe748x8,_0xe748x3[_0xca73[17]]);_0xe748x9[_0xca73[20]]()[_0xca73[8]](function(){return _0xe748x4[_0xca73[7]](200)[_0xca73[6]](_0xe748x8)})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)});})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)});};exports[_0xca73[21]]=function(_0xe748x3,_0xe748x4){ReportQueue[_0xca73[15]](_0xe748x3[_0xca73[14]][_0xca73[13]])[_0xca73[8]](function(_0xe748x8){if(!_0xe748x8){return _0xe748x4[_0xca73[12]](404)};_0xe748x8[_0xca73[21]]()[_0xca73[8]](function(){return _0xe748x4[_0xca73[12]](204)})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)});})[_0xca73[5]](function(_0xe748x5){return handleError(_0xe748x4,_0xe748x5)})};function handleError(_0xe748x4,_0xe748x5){return _0xe748x4[_0xca73[7]](500)[_0xca73[6]](_0xe748x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ReportQueue = require('../../models').ReportQueue;
+
+// Get list of report_queues
+exports.index = function(req, res) {
+  ReportQueue
+    .findAll()
+    .then(function(report_queues) {
+      return res.status(200).send(report_queues);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of fields
+exports.describe = function(req, res) {
+  ReportQueue
+    .describe()
+    .then(function(fields) {
+      return res.status(200).send(fields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single report_queue
+exports.show = function(req, res) {
+  ReportQueue
+    .findById(req.params.id)
+    .then(function(report_queue) {
+      if (!report_queue) {
+        return res.sendStatus(404);
+      }
+      return res.send(report_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report_queue in the DB.
+exports.create = function(req, res) {
+  ReportQueue
+    .create(req.body)
+    .then(function(report_queue) {
+      return res.status(201).send(report_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report_queue in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ReportQueue
+    .findById(req.params.id)
+    .then(function(report_queue) {
+      if (!report_queue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report_queue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report_queue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report_queue from the DB.
+exports.destroy = function(req, res) {
+  ReportQueue
+    .findById(req.params.id)
+    .then(function(report_queue) {
+      if (!report_queue) {
+        return res.sendStatus(404);
+      }
+      report_queue.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 13e272b..9f57869 100644 (file)
@@ -1 +1,29 @@
-var _0x1b18=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x1b18[0];var ReportQueue=require(_0x1b18[2])[_0x1b18[1]];exports[_0x1b18[3]]=function(_0x8c00x2){ReportQueue[_0x1b18[4]](function(_0x8c00x3){onSave(_0x8c00x2,_0x8c00x3)});ReportQueue[_0x1b18[5]](function(_0x8c00x3){onSave(_0x8c00x2,_0x8c00x3)});ReportQueue[_0x1b18[6]](function(_0x8c00x3){onRemove(_0x8c00x2,_0x8c00x3)});};function onSave(_0x8c00x2,_0x8c00x3,_0x8c00x5){if(_0x8c00x2[_0x1b18[7]]===_0x1b18[8]){_0x8c00x2[_0x1b18[10]](_0x1b18[9],_0x8c00x3)}}function onRemove(_0x8c00x2,_0x8c00x3,_0x8c00x5){_0x8c00x2[_0x1b18[10]](_0x1b18[11],_0x8c00x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportQueue = require('../../models').ReportQueue;
+
+exports.register = function(socket) {
+  ReportQueue.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportQueue.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportQueue.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  if (socket.role === 'admin') {
+    socket.emit('report_queue:save', doc);
+  }
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_queue:remove', doc);
+}
index 9e14cb1..75fa91c 100644 (file)
@@ -1 +1,12 @@
-var _0x42ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x65\x78\x70\x6F\x72\x74\x73"];_0x42ef[0];var express=require(_0x42ef[1]);var controller=require(_0x42ef[2]);var router=express.Router();router[_0x42ef[5]](_0x42ef[3],controller[_0x42ef[4]]);router[_0x42ef[8]](_0x42ef[6],controller[_0x42ef[7]]);router[_0x42ef[9]](_0x42ef[6],controller[_0x42ef[7]]);module[_0x42ef[10]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./report_tree.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+
+module.exports = router;
index 0db5aca..a6b11b0 100644 (file)
@@ -1 +1,46 @@
-var _0xfd7e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0xfd7e[0];var _=require(_0xfd7e[1]);var util=require(_0xfd7e[2]);var ReportTree=require(_0xfd7e[4])[_0xfd7e[3]];exports[_0xfd7e[5]]=function(_0x672ex4,_0x672ex5){ReportTree[_0xfd7e[11]]()[_0xfd7e[10]](function(_0x672ex7){if(!_0x672ex7){return _0x672ex5[_0xfd7e[7]](404)};return _0x672ex5[_0xfd7e[9]](200)[_0xfd7e[8]](_0x672ex7);})[_0xfd7e[6]](function(_0x672ex6){return handleError(_0x672ex5,_0x672ex6)})};exports[_0xfd7e[12]]=function(_0x672ex4,_0x672ex5){ReportTree[_0xfd7e[18]](_0x672ex4[_0xfd7e[17]][_0xfd7e[16]])[_0xfd7e[10]](function(_0x672ex8){if(!_0x672ex8){return _0x672ex5[_0xfd7e[7]](404)};var _0x672ex9=_[_0xfd7e[14]](_0x672ex8,_0x672ex4[_0xfd7e[13]]);_0x672ex9[_0xfd7e[15]]()[_0xfd7e[10]](function(){return _0x672ex5[_0xfd7e[9]](200)[_0xfd7e[8]](_0x672ex8)})[_0xfd7e[6]](function(_0x672ex6){return handleError(_0x672ex5,_0x672ex6)});})[_0xfd7e[6]](function(_0x672ex6){return handleError(_0x672ex5,_0x672ex6)})};function handleError(_0x672ex5,_0x672ex6){return _0x672ex5[_0xfd7e[9]](500)[_0xfd7e[8]](_0x672ex6)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var ReportTree = require('../../models').ReportTree;
+
+// Get the reports trees
+exports.index = function(req, res) {
+  ReportTree
+    .findAll()
+    .then(function(trees) {
+      if (!trees) {
+        return res.sendStatus(404);
+      }
+      return res.status(200).send(trees);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report in the DB.
+exports.update = function(req, res) {
+  ReportTree
+    .findById(req.params.id)
+    .then(function(tree) {
+      if (!tree) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(tree, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(tree);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 49c40f4..389fa7a 100644 (file)
@@ -1 +1,27 @@
-var _0x8976=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8976[0];var ReportTree=require(_0x8976[2])[_0x8976[1]];exports[_0x8976[3]]=function(_0x2dc9x2){ReportTree[_0x8976[4]](function(_0x2dc9x3){onSave(_0x2dc9x2,_0x2dc9x3)});ReportTree[_0x8976[5]](function(_0x2dc9x3){onSave(_0x2dc9x2,_0x2dc9x3)});ReportTree[_0x8976[6]](function(_0x2dc9x3){onRemove(_0x2dc9x2,_0x2dc9x3)});};function onSave(_0x2dc9x2,_0x2dc9x3,_0x2dc9x5){_0x2dc9x2[_0x8976[8]](_0x8976[7],_0x2dc9x3)}function onRemove(_0x2dc9x2,_0x2dc9x3,_0x2dc9x5){_0x2dc9x2[_0x8976[8]](_0x8976[9],_0x2dc9x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportTree = require('../../models').ReportTree;
+
+exports.register = function(socket) {
+  ReportTree.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportTree.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportTree.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('report_tree:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_tree:remove', doc);
+}
index ba1d828..37d897a 100644 (file)
@@ -1 +1,20 @@
-var _0x6958=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x74\x72\x65\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x74\x72\x65\x65\x73","\x67\x65\x74"];_0x6958[0];var should=require(_0x6958[1]);var app=require(_0x6958[2]);var request=require(_0x6958[3]);describe(_0x6958[4],function(){it(_0x6958[5],function(_0x1635x4){request(app)[_0x6958[13]](_0x6958[12])[_0x6958[11]](200)[_0x6958[11]](_0x6958[10],/json/)[_0x6958[9]](function(_0x1635x5,_0x1635x6){if(_0x1635x5){return _0x1635x4(_0x1635x5)};_0x1635x6[_0x6958[8]][_0x6958[1]][_0x6958[7]][_0x6958[6]](Array);_0x1635x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/reports/trees', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytic/reports/trees')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index b7cce00..d8b47b0 100644 (file)
@@ -1 +1,21 @@
-var _0xabdd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xabdd[0];var express=require(_0xabdd[1]);var auth=require(_0xabdd[2]);var controller=require(_0xabdd[3]);var router=express.Router();router[_0xabdd[7]](_0xabdd[4],auth[_0xabdd[5]](),controller[_0xabdd[6]]);router[_0xabdd[7]](_0xabdd[8],auth[_0xabdd[5]](),controller[_0xabdd[9]]);router[_0xabdd[7]](_0xabdd[10],auth[_0xabdd[5]](),controller[_0xabdd[11]]);router[_0xabdd[7]](_0xabdd[12],auth[_0xabdd[5]](),controller[_0xabdd[13]]);router[_0xabdd[16]](_0xabdd[14],auth[_0xabdd[5]](),controller[_0xabdd[15]]);router[_0xabdd[16]](_0xabdd[4],auth[_0xabdd[5]](),controller[_0xabdd[17]]);router[_0xabdd[19]](_0xabdd[8],auth[_0xabdd[5]](),controller[_0xabdd[18]]);router[_0xabdd[20]](_0xabdd[8],auth[_0xabdd[5]](),controller[_0xabdd[18]]);router[_0xabdd[22]](_0xabdd[4],auth[_0xabdd[5]](),controller[_0xabdd[21]]);router[_0xabdd[22]](_0xabdd[8],auth[_0xabdd[5]](),controller[_0xabdd[23]]);module[_0xabdd[24]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./salesforce_account.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
+router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
+router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index c72b92c..a03b303 100644 (file)
@@ -1 +1,97 @@
-var _0x3581=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x3581[0];var proxyquire=require(_0x3581[2])[_0x3581[1]]();var salesforceAccountCtrlStub={index:_0x3581[3],show:_0x3581[4],create:_0x3581[5],update:_0x3581[6],destroy:_0x3581[7]};var routerStub={get:sinon[_0x3581[8]](),put:sinon[_0x3581[8]](),patch:sinon[_0x3581[8]](),post:sinon[_0x3581[8]](),delete:sinon[_0x3581[8]]()};var salesforceAccountIndex=proxyquire(_0x3581[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":salesforceAccountCtrlStub});describe(_0x3581[10],function(){it(_0x3581[11],function(){expect(salesforceAccountIndex)[_0x3581[13]][_0x3581[12]](routerStub)});describe(_0x3581[14],function(){it(_0x3581[15],function(){expect(routerStub[_0x3581[21]][_0x3581[20]](_0x3581[19],_0x3581[3]))[_0x3581[13]][_0x3581[18]][_0x3581[17]][_0x3581[16]]})});describe(_0x3581[22],function(){it(_0x3581[23],function(){expect(routerStub[_0x3581[21]][_0x3581[20]](_0x3581[24],_0x3581[4]))[_0x3581[13]][_0x3581[18]][_0x3581[17]][_0x3581[16]]})});describe(_0x3581[25],function(){it(_0x3581[26],function(){expect(routerStub[_0x3581[27]][_0x3581[20]](_0x3581[19],_0x3581[5]))[_0x3581[13]][_0x3581[18]][_0x3581[17]][_0x3581[16]]})});describe(_0x3581[28],function(){it(_0x3581[29],function(){expect(routerStub[_0x3581[30]][_0x3581[20]](_0x3581[24],_0x3581[6]))[_0x3581[13]][_0x3581[18]][_0x3581[17]][_0x3581[16]]})});describe(_0x3581[31],function(){it(_0x3581[29],function(){expect(routerStub[_0x3581[32]][_0x3581[20]](_0x3581[24],_0x3581[6]))[_0x3581[13]][_0x3581[18]][_0x3581[17]][_0x3581[16]]})});describe(_0x3581[33],function(){it(_0x3581[34],function(){expect(routerStub[_0x3581[35]][_0x3581[20]](_0x3581[24],_0x3581[7]))[_0x3581[13]][_0x3581[18]][_0x3581[17]][_0x3581[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var salesforceAccountCtrlStub = {
+  index: 'salesforceAccountCtrl.index',
+  show: 'salesforceAccountCtrl.show',
+  create: 'salesforceAccountCtrl.create',
+  update: 'salesforceAccountCtrl.update',
+  destroy: 'salesforceAccountCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var salesforceAccountIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './salesforce_account.controller': salesforceAccountCtrlStub
+});
+
+describe('SalesforceAccount API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(salesforceAccountIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/salesforce/accounts', function() {
+
+    it('should route to salesforceAccount.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'salesforceAccountCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/salesforce/accounts/:id', function() {
+
+    it('should route to salesforceAccount.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'salesforceAccountCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/salesforce/accounts', function() {
+
+    it('should route to salesforceAccount.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'salesforceAccountCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/salesforce/accounts/:id', function() {
+
+    it('should route to salesforceAccount.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'salesforceAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/salesforce/accounts/:id', function() {
+
+    it('should route to salesforceAccount.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'salesforceAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/salesforce/accounts/:id', function() {
+
+    it('should route to salesforceAccount.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'salesforceAccountCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index bd315bf..69c55e6 100644 (file)
@@ -1 +1,253 @@
-var _0xaa41=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x73\x66\x6F\x72\x63\x65","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x63\x6F\x6E\x63\x61\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6C\x6F\x67\x69\x6E","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x66\x69\x65\x6C\x64\x73","\x64\x65\x73\x63\x72\x69\x62\x65","\x54\x61\x73\x6B","\x73\x6F\x62\x6A\x65\x63\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xaa41[0];var _=require(_0xaa41[1]);var util=require(_0xaa41[2]);var jsforce=require(_0xaa41[3]);var SalesforceAccount=require(_0xaa41[5])[_0xaa41[4]];function handleError(_0xead9x6,_0xead9x7){_0xead9x7=_0xead9x7||500;return function(_0xead9x8){_0xead9x6[_0xaa41[7]](_0xead9x7)[_0xaa41[6]](_0xead9x8)};}function responseWithResult(_0xead9x6,_0xead9x7){_0xead9x7=_0xead9x7||200;return function(_0xead9xa){if(_0xead9xa){_0xead9x6[_0xaa41[7]](_0xead9x7)[_0xaa41[8]](_0xead9xa)}};}function handleEntityNotFound(_0xead9x6){return function(_0xead9xa){if(!_0xead9xa){_0xead9x6[_0xaa41[7]](404)[_0xaa41[9]]();return null;};return _0xead9xa;}}function saveUpdates(_0xead9xd){return function(_0xead9xa){return _0xead9xa[_0xaa41[11]](_0xead9xd)[_0xaa41[10]](function(_0xead9xe){return _0xead9xe})}}function removeEntity(_0xead9x6){return function(_0xead9xa){if(_0xead9xa){return _0xead9xa[_0xaa41[12]]()[_0xaa41[10]](function(){_0xead9x6[_0xaa41[7]](204)[_0xaa41[9]]()})}}}exports[_0xaa41[13]]=function(_0xead9x10,_0xead9x6){var _0xead9x11=[_0xaa41[14],_0xaa41[15],_0xaa41[16],_0xaa41[17]];var _0xead9x12=_0xead9x10[_0xaa41[19]][_0xaa41[18]]?parseInt(_0xead9x10[_0xaa41[19]][_0xaa41[18]],10):100;var _0xead9x13=_0xead9x10[_0xaa41[19]][_0xaa41[20]]?parseInt(_0xead9x10[_0xaa41[19]][_0xaa41[20]],10):0;var _0xead9x14={where:{},limit:_0xead9x12,offset:_0xead9x13*_0xead9x12};_[_0xaa41[34]](_0xead9x10[_0xaa41[19]],function(_0xead9x15,_0xead9x16){switch(_0xead9x16){case _0xaa41[18]:;case _0xaa41[20]:break ;;case _0xaa41[23]:_0xead9x14[_0xaa41[21]]=util[_0xaa41[26]](_0xaa41[22],_0xead9x10[_0xaa41[19]][_0xaa41[23]],_0xead9x10[_0xaa41[19]][_0xaa41[24]]||_0xaa41[25])||null;break ;;case _0xaa41[24]:break ;;case _0xaa41[32]:_0xead9x14[_0xaa41[28]][_0xaa41[27]]=[];_0xead9x11[_0xaa41[31]](function(_0xead9x17){var _0xead9x18={};_0xead9x18[_0xead9x17]={$like:_0xaa41[29]+_0xead9x15+_0xaa41[29]};_0xead9x14[_0xaa41[28]][_0xaa41[27]][_0xaa41[30]](_0xead9x18);});break ;;default:_0xead9x14[_0xaa41[28]][_0xead9x16]={$like:{}};_0xead9x14[_0xaa41[28]][_0xead9x16][_0xaa41[33]]=_0xaa41[29]+_0xead9x15+_0xaa41[29];;}});SalesforceAccount[_0xaa41[46]](_0xead9x14)[_0xaa41[10]](function(_0xead9x19){var _0xead9x1a=Math[_0xaa41[38]](_0xead9x19[_0xaa41[37]]/_0xead9x12);var _0xead9x1b=_0xead9x1a>(_0xead9x14[_0xaa41[39]]+1)?util[_0xaa41[26]](_0xaa41[40],_0xead9x10[_0xaa41[41]],_0xead9x10[_0xaa41[43]][_0xaa41[42]],_0xead9x10[_0xaa41[44]],_0xead9x13+1):null;var _0xead9x1c=_0xead9x13>0?util[_0xaa41[26]](_0xaa41[40],_0xead9x10[_0xaa41[41]],_0xead9x10[_0xaa41[43]][_0xaa41[42]],_0xead9x10[_0xaa41[44]],_0xead9x13-1):null;return _0xead9x6[_0xaa41[7]](200)[_0xaa41[6]]({count:_0xead9x19[_0xaa41[37]],rows:_0xead9x19[_0xaa41[45]],next_page:_0xead9x1b,previous_page:_0xead9x1c,total_pages:_0xead9x1a});})[_0xaa41[36]](function(_0xead9x8){return _0xead9x6[_0xaa41[7]](500)[_0xaa41[6]]({error:_0xaa41[35]})});};exports[_0xaa41[47]]=function(_0xead9x10,_0xead9x6){SalesforceAccount[_0xaa41[50]](_0xead9x10[_0xaa41[49]][_0xaa41[48]])[_0xaa41[10]](handleEntityNotFound(_0xead9x6))[_0xaa41[10]](responseWithResult(_0xead9x6))[_0xaa41[36]](handleError(_0xead9x6))};exports[_0xaa41[51]]=function(_0xead9x10,_0xead9x6){SalesforceAccount[_0xaa41[51]](_0xead9x10[_0xaa41[52]])[_0xaa41[10]](responseWithResult(_0xead9x6,201))[_0xaa41[36]](handleError(_0xead9x6))};exports[_0xaa41[53]]=function(_0xead9x10,_0xead9x6){if(_0xead9x10[_0xaa41[52]][_0xaa41[48]]){delete _0xead9x10[_0xaa41[52]][_0xaa41[48]]};SalesforceAccount[_0xaa41[50]](_0xead9x10[_0xaa41[49]][_0xaa41[48]])[_0xaa41[10]](handleEntityNotFound(_0xead9x6))[_0xaa41[10]](saveUpdates(_0xead9x10[_0xaa41[52]]))[_0xaa41[10]](responseWithResult(_0xead9x6))[_0xaa41[36]](handleError(_0xead9x6));};exports[_0xaa41[12]]=function(_0xead9x10,_0xead9x6){SalesforceAccount[_0xaa41[50]](_0xead9x10[_0xaa41[49]][_0xaa41[48]])[_0xaa41[10]](handleEntityNotFound(_0xead9x6))[_0xaa41[10]](removeEntity(_0xead9x6))[_0xaa41[36]](handleError(_0xead9x6))};exports[_0xaa41[54]]=function(_0xead9x10,_0xead9x6){SalesforceAccount[_0xaa41[50]](_0xead9x10[_0xaa41[49]][_0xaa41[48]])[_0xaa41[10]](handleEntityNotFound(_0xead9x6))[_0xaa41[10]](function(_0xead9x1d){var _0xead9x1e= new jsforce.Connection({oauth2:{loginUrl:_0xead9x1d[_0xaa41[17]],clientId:_0xead9x1d[_0xaa41[55]],clientSecret:_0xead9x1d[_0xaa41[56]]}});var _0xead9x1f=_0xead9x1d[_0xaa41[59]][_0xaa41[58]](_0xead9x1d[_0xaa41[57]]);_0xead9x1e[_0xaa41[61]](_0xead9x1d[_0xaa41[16]],_0xead9x1f,function(_0xead9x8,_0xead9x20){if(_0xead9x8){return _0xead9x6[_0xaa41[7]](400)[_0xaa41[6]](_0xead9x8)};return _0xead9x6[_0xaa41[60]](200);});})[_0xaa41[36]](handleError(_0xead9x6))};exports[_0xaa41[62]]=function(_0xead9x10,_0xead9x6){var _0xead9x21={};_0xead9x21[_0xead9x10[_0xaa41[49]][_0xaa41[63]]]=_0xead9x10[_0xaa41[52]][_0xaa41[64]];SalesforceAccount[_0xaa41[46]]({where:_0xead9x21})[_0xaa41[10]](function(_0xead9x19){if(_0xead9x19[_0xaa41[37]]){return _0xead9x6[_0xaa41[7]](200)[_0xaa41[6]]({isValid:false,value:_0xead9x10[_0xaa41[52]][_0xaa41[64]]})};return _0xead9x6[_0xaa41[7]](200)[_0xaa41[6]]({isValid:true,value:_0xead9x10[_0xaa41[52]][_0xaa41[64]]});})[_0xaa41[36]](function(_0xead9x8){return handleError(_0xead9x6,_0xead9x8)});};exports[_0xaa41[65]]=function(_0xead9x10,_0xead9x6){SalesforceAccount[_0xaa41[50]](_0xead9x10[_0xaa41[49]][_0xaa41[48]])[_0xaa41[10]](handleEntityNotFound(_0xead9x6))[_0xaa41[10]](function(_0xead9x1d){var _0xead9x1e= new jsforce.Connection({oauth2:{loginUrl:_0xead9x1d[_0xaa41[17]],clientId:_0xead9x1d[_0xaa41[55]],clientSecret:_0xead9x1d[_0xaa41[56]]}});var _0xead9x1f=_0xead9x1d[_0xaa41[59]][_0xaa41[58]](_0xead9x1d[_0xaa41[57]]);_0xead9x1e[_0xaa41[61]](_0xead9x1d[_0xaa41[16]],_0xead9x1f,function(_0xead9x8,_0xead9x20){if(_0xead9x8){return _0xead9x6[_0xaa41[7]](400)[_0xaa41[6]](_0xead9x8)};_0xead9x1e[_0xaa41[69]](_0xaa41[68])[_0xaa41[67]](function(_0xead9x8,_0xead9x22){if(_0xead9x8){return _0xead9x6[_0xaa41[7]](400)[_0xaa41[6]](_0xead9x8)};return _0xead9x6[_0xaa41[7]](200)[_0xaa41[6]](_0xead9x22[_0xaa41[66]]);});});})[_0xaa41[36]](handleError(_0xead9x6))};exports[_0xaa41[70]]=function(_0xead9x10,_0xead9x6){SalesforceAccount[_0xaa41[12]]({where:{id:_0xead9x10[_0xaa41[19]][_0xaa41[48]]},individualHooks:true})[_0xaa41[10]](function(){return _0xead9x6[_0xaa41[60]](204)})[_0xaa41[36]](function(_0xead9x8){return handleError(_0xead9x6,_0xead9x8)})};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/salesforce/accounts              ->  index
+ * POST    /api/salesforce/accounts              ->  create
+ * GET     /api/salesforce/accounts/:id          ->  show
+ * PUT     /api/salesforce/accounts/:id          ->  update
+ * DELETE  /api/salesforce/accounts/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var util = require('util');
+var jsforce = require('jsforce');
+
+var SalesforceAccount = require('../../models').SalesforceAccount;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SalesforceAccounts
+exports.index = function(req, res) {
+  var attributes = ['description', 'name', 'username', 'remoteUri'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  SalesforceAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+}
+
+// Gets a single SalesforceAccount from the DB
+exports.show = function(req, res) {
+  SalesforceAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SalesforceAccount in the DB
+exports.create = function(req, res) {
+  SalesforceAccount.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SalesforceAccount in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SalesforceAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SalesforceAccount from the DB
+exports.destroy = function(req, res) {
+  SalesforceAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.checkAccount = function(req, res) {
+  SalesforceAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var conn = new jsforce.Connection({
+        oauth2: {
+          loginUrl: account.remoteUri,
+          clientId: account.clientId,
+          clientSecret: account.clientSecret,
+        }
+      });
+      var pwd = account.password.concat(account.securityToken);
+      conn.login(account.username, pwd, function(err, userInfo) {
+        if (err) {
+          return res.status(400).send(err);
+        }
+        return res.sendStatus(200);
+      });
+    })
+    .catch(handleError(res));
+}
+
+exports.accountValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  SalesforceAccount
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getFields = function(req, res) {
+  SalesforceAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var conn = new jsforce.Connection({
+        oauth2: {
+          loginUrl: account.remoteUri,
+          clientId: account.clientId,
+          clientSecret: account.clientSecret,
+        }
+      });
+      var pwd = account.password.concat(account.securityToken);
+      conn.login(account.username, pwd, function(err, userInfo) {
+        if (err) {
+          return res.status(400).send(err);
+        }
+        conn.sobject("Task").describe(function(err, meta) {
+          if (err) {
+            return res.status(400).send(err);
+          }
+          return res.status(200).send(meta.fields);
+        });
+      });
+    })
+    .catch(handleError(res));
+};
+
+exports.bulkDestroy = function(req, res) {
+  SalesforceAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
index 9740bd1..2c58d15 100644 (file)
@@ -1 +1,24 @@
-var _0xa21c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xa21c[0];var SalesforceAccount=require(_0xa21c[2])[_0xa21c[1]];exports[_0xa21c[3]]=function(_0xf57ax2){SalesforceAccount[_0xa21c[4]](function(_0xf57ax3){onSave(_0xf57ax2,_0xf57ax3)});SalesforceAccount[_0xa21c[5]](function(_0xf57ax3){onRemove(_0xf57ax2,_0xf57ax3)});};function onSave(_0xf57ax2,_0xf57ax3,_0xf57ax5){_0xf57ax2[_0xa21c[7]](_0xa21c[6],_0xf57ax3)}function onRemove(_0xf57ax2,_0xf57ax3,_0xf57ax5){_0xf57ax2[_0xa21c[7]](_0xa21c[8],_0xf57ax3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SalesforceAccount = require('../../models').SalesforceAccount;
+
+exports.register = function(socket) {
+  SalesforceAccount.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SalesforceAccount.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('salesforce_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('salesforce_account:remove', doc);
+}
index 8c8d861..7936a09 100644 (file)
@@ -1 +1,18 @@
-var _0xedf7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xedf7[0];var express=require(_0xedf7[1]);var auth=require(_0xedf7[2]);var controller=require(_0xedf7[3]);var router=express.Router();router[_0xedf7[7]](_0xedf7[4],auth[_0xedf7[5]](),controller[_0xedf7[6]]);router[_0xedf7[7]](_0xedf7[8],auth[_0xedf7[5]](),controller[_0xedf7[9]]);router[_0xedf7[11]](_0xedf7[4],auth[_0xedf7[5]](),controller[_0xedf7[10]]);router[_0xedf7[13]](_0xedf7[8],auth[_0xedf7[5]](),controller[_0xedf7[12]]);router[_0xedf7[11]](_0xedf7[14],auth[_0xedf7[5]](),controller[_0xedf7[15]]);router[_0xedf7[16]](_0xedf7[8],auth[_0xedf7[5]](),controller[_0xedf7[12]]);router[_0xedf7[18]](_0xedf7[8],auth[_0xedf7[5]](),controller[_0xedf7[17]]);module[_0xedf7[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./salesforce_configuration.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index f854643..0d1e211 100644 (file)
@@ -1 +1,97 @@
-var _0x7c3d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x7c3d[0];var proxyquire=require(_0x7c3d[2])[_0x7c3d[1]]();var salesforceConfigurationCtrlStub={index:_0x7c3d[3],show:_0x7c3d[4],create:_0x7c3d[5],update:_0x7c3d[6],destroy:_0x7c3d[7]};var routerStub={get:sinon[_0x7c3d[8]](),put:sinon[_0x7c3d[8]](),patch:sinon[_0x7c3d[8]](),post:sinon[_0x7c3d[8]](),delete:sinon[_0x7c3d[8]]()};var salesforceConfigurationIndex=proxyquire(_0x7c3d[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":salesforceConfigurationCtrlStub});describe(_0x7c3d[10],function(){it(_0x7c3d[11],function(){expect(salesforceConfigurationIndex)[_0x7c3d[13]][_0x7c3d[12]](routerStub)});describe(_0x7c3d[14],function(){it(_0x7c3d[15],function(){expect(routerStub[_0x7c3d[21]][_0x7c3d[20]](_0x7c3d[19],_0x7c3d[3]))[_0x7c3d[13]][_0x7c3d[18]][_0x7c3d[17]][_0x7c3d[16]]})});describe(_0x7c3d[22],function(){it(_0x7c3d[23],function(){expect(routerStub[_0x7c3d[21]][_0x7c3d[20]](_0x7c3d[24],_0x7c3d[4]))[_0x7c3d[13]][_0x7c3d[18]][_0x7c3d[17]][_0x7c3d[16]]})});describe(_0x7c3d[25],function(){it(_0x7c3d[26],function(){expect(routerStub[_0x7c3d[27]][_0x7c3d[20]](_0x7c3d[19],_0x7c3d[5]))[_0x7c3d[13]][_0x7c3d[18]][_0x7c3d[17]][_0x7c3d[16]]})});describe(_0x7c3d[28],function(){it(_0x7c3d[29],function(){expect(routerStub[_0x7c3d[30]][_0x7c3d[20]](_0x7c3d[24],_0x7c3d[6]))[_0x7c3d[13]][_0x7c3d[18]][_0x7c3d[17]][_0x7c3d[16]]})});describe(_0x7c3d[31],function(){it(_0x7c3d[29],function(){expect(routerStub[_0x7c3d[32]][_0x7c3d[20]](_0x7c3d[24],_0x7c3d[6]))[_0x7c3d[13]][_0x7c3d[18]][_0x7c3d[17]][_0x7c3d[16]]})});describe(_0x7c3d[33],function(){it(_0x7c3d[34],function(){expect(routerStub[_0x7c3d[35]][_0x7c3d[20]](_0x7c3d[24],_0x7c3d[7]))[_0x7c3d[13]][_0x7c3d[18]][_0x7c3d[17]][_0x7c3d[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var salesforceConfigurationCtrlStub = {
+  index: 'salesforceConfigurationCtrl.index',
+  show: 'salesforceConfigurationCtrl.show',
+  create: 'salesforceConfigurationCtrl.create',
+  update: 'salesforceConfigurationCtrl.update',
+  destroy: 'salesforceConfigurationCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var salesforceConfigurationIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './salesforce_configuration.controller': salesforceConfigurationCtrlStub
+});
+
+describe('SalesforceConfiguration API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(salesforceConfigurationIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/salesforce/configurations', function() {
+
+    it('should route to salesforceConfiguration.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'salesforceConfigurationCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/salesforce/configurations/:id', function() {
+
+    it('should route to salesforceConfiguration.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'salesforceConfigurationCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/salesforce/configurations', function() {
+
+    it('should route to salesforceConfiguration.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'salesforceConfigurationCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/salesforce/configurations/:id', function() {
+
+    it('should route to salesforceConfiguration.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'salesforceConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/salesforce/configurations/:id', function() {
+
+    it('should route to salesforceConfiguration.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'salesforceConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/salesforce/configurations/:id', function() {
+
+    it('should route to salesforceConfiguration.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'salesforceConfigurationCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 0d838f3..523aef6 100644 (file)
@@ -1 +1,147 @@
-var _0x792f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0x792f[0];var _=require(_0x792f[1]);var SalesforceConfiguration=require(_0x792f[3])[_0x792f[2]];var SalesforceField=require(_0x792f[3])[_0x792f[4]];function handleError(_0x7d24x5,_0x7d24x6){_0x7d24x6=_0x7d24x6||500;return function(_0x7d24x7){_0x7d24x5[_0x792f[6]](_0x7d24x6)[_0x792f[5]](_0x7d24x7)};}function responseWithResult(_0x7d24x5,_0x7d24x6){_0x7d24x6=_0x7d24x6||200;return function(_0x7d24x9){if(_0x7d24x9){_0x7d24x5[_0x792f[6]](_0x7d24x6)[_0x792f[7]](_0x7d24x9)}};}function handleEntityNotFound(_0x7d24x5){return function(_0x7d24x9){if(!_0x7d24x9){_0x7d24x5[_0x792f[6]](404)[_0x792f[8]]();return null;};return _0x7d24x9;}}function saveUpdates(_0x7d24xc){return function(_0x7d24x9){return _0x7d24x9[_0x792f[10]](_0x7d24xc)[_0x792f[9]](function(_0x7d24xd){return _0x7d24xd})}}function removeEntity(_0x7d24x5){return function(_0x7d24x9){if(_0x7d24x9){return _0x7d24x9[_0x792f[11]]()[_0x792f[9]](function(){_0x7d24x5[_0x792f[6]](204)[_0x792f[8]]()})}}}exports[_0x792f[12]]=function(_0x7d24xf,_0x7d24x5){SalesforceConfiguration[_0x792f[15]]({where:_0x7d24xf[_0x792f[14]]})[_0x792f[9]](responseWithResult(_0x7d24x5))[_0x792f[13]](handleError(_0x7d24x5))};exports[_0x792f[16]]=function(_0x7d24xf,_0x7d24x5){SalesforceConfiguration[_0x792f[22]]({where:{id:_0x7d24xf[_0x792f[18]][_0x792f[17]]},include:[{model:SalesforceField,as:_0x792f[19]},{model:SalesforceField,as:_0x792f[20]},{model:SalesforceField,as:_0x792f[21]}]})[_0x792f[9]](handleEntityNotFound(_0x7d24x5))[_0x792f[9]](responseWithResult(_0x7d24x5))[_0x792f[13]](handleError(_0x7d24x5))};exports[_0x792f[23]]=function(_0x7d24xf,_0x7d24x5){SalesforceConfiguration[_0x792f[23]](_0x7d24xf[_0x792f[24]])[_0x792f[9]](responseWithResult(_0x7d24x5,201))[_0x792f[13]](handleError(_0x7d24x5))};exports[_0x792f[25]]=function(_0x7d24xf,_0x7d24x5){if(_0x7d24xf[_0x792f[24]][_0x792f[17]]){delete _0x7d24xf[_0x792f[24]][_0x792f[17]]};SalesforceConfiguration[_0x792f[26]](_0x7d24xf[_0x792f[18]][_0x792f[17]])[_0x792f[9]](handleEntityNotFound(_0x7d24x5))[_0x792f[9]](saveUpdates(_0x7d24xf[_0x792f[24]]))[_0x792f[9]](responseWithResult(_0x7d24x5))[_0x792f[13]](handleError(_0x7d24x5));};exports[_0x792f[11]]=function(_0x7d24xf,_0x7d24x5){SalesforceConfiguration[_0x792f[26]](_0x7d24xf[_0x792f[18]][_0x792f[17]])[_0x792f[9]](handleEntityNotFound(_0x7d24x5))[_0x792f[9]](removeEntity(_0x7d24x5))[_0x792f[13]](handleError(_0x7d24x5))};exports[_0x792f[27]]=function(_0x7d24xf,_0x7d24x5,_0x7d24x10){var _0x7d24x11;SalesforceConfiguration[_0x792f[26]](_0x7d24xf[_0x792f[18]][_0x792f[17]])[_0x792f[9]](handleEntityNotFound(_0x7d24x5))[_0x792f[9]](function(_0x7d24x14){_0x7d24x11=_0x7d24x14;return SalesforceField[_0x792f[23]](_0x7d24xf[_0x792f[24]]);})[_0x792f[9]](function(_0x7d24x13){switch(_0x7d24xf[_0x792f[18]][_0x792f[35]]){case _0x792f[30]:return [_0x7d24x11[_0x792f[29]](_0x7d24x13),_0x7d24x13];;case _0x792f[32]:return [_0x7d24x11[_0x792f[31]](_0x7d24x13),_0x7d24x13];;case _0x792f[34]:return [_0x7d24x11[_0x792f[33]](_0x7d24x13),_0x7d24x13];;}})[_0x792f[28]](function(_0x7d24x12,_0x7d24x13){return _0x7d24x5[_0x792f[6]](201)[_0x792f[7]](_0x7d24x13)})[_0x792f[13]](handleError(_0x7d24x5));};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/salesforce/configurations              ->  index
+ * POST    /api/salesforce/configurations              ->  create
+ * GET     /api/salesforce/configurations/:id          ->  show
+ * PUT     /api/salesforce/configurations/:id          ->  update
+ * DELETE  /api/salesforce/configurations/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var SalesforceConfiguration = require('../../models').SalesforceConfiguration;
+var SalesforceField = require('../../models').SalesforceField;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SalesforceConfigurations
+exports.index = function(req, res) {
+  SalesforceConfiguration.findAll({
+      where: req.query
+    })
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SalesforceConfiguration from the DB
+exports.show = function(req, res) {
+  SalesforceConfiguration.find({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: SalesforceField,
+        as: 'Subject'
+      }, {
+        model: SalesforceField,
+        as: 'Description'
+      }, {
+        model: SalesforceField,
+        as: 'Field'
+      }]
+    })
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SalesforceConfiguration in the DB
+exports.create = function(req, res) {
+  SalesforceConfiguration.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SalesforceConfiguration in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SalesforceConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SalesforceConfiguration from the DB
+exports.destroy = function(req, res) {
+  SalesforceConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.addConfigurationField = function(req, res, next) {
+  // console.log(req.params);
+  var salesforceConfiguration;
+  SalesforceConfiguration
+    .findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(salesforce_configuration) {
+      salesforceConfiguration = salesforce_configuration;
+      return SalesforceField.create(req.body)
+    })
+    .then(function(salesforceField) {
+      switch (req.params.type) {
+        case 'subject':
+          return [salesforceConfiguration.addSubject(salesforceField), salesforceField];
+        case 'description':
+          return [salesforceConfiguration.addDescription(salesforceField), salesforceField];
+        case 'field':
+          return [salesforceConfiguration.addField(salesforceField), salesforceField];
+      }
+    })
+    .spread(function(data, salesforceField) {
+      return res.status(201).json(salesforceField);
+    })
+    .catch(handleError(res));
+};
index c679365..c45a482 100644 (file)
@@ -1 +1,24 @@
-var _0xca74=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xca74[0];var SalesforceConfiguration=require(_0xca74[2])[_0xca74[1]];exports[_0xca74[3]]=function(_0x8585x2){SalesforceConfiguration[_0xca74[4]](function(_0x8585x3){onSave(_0x8585x2,_0x8585x3)});SalesforceConfiguration[_0xca74[5]](function(_0x8585x3){onRemove(_0x8585x2,_0x8585x3)});};function onSave(_0x8585x2,_0x8585x3,_0x8585x5){_0x8585x2[_0xca74[7]](_0xca74[6],_0x8585x3)}function onRemove(_0x8585x2,_0x8585x3,_0x8585x5){_0x8585x2[_0xca74[7]](_0xca74[8],_0x8585x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SalesforceConfiguration = require('../../models').SalesforceConfiguration;
+
+exports.register = function(socket) {
+  SalesforceConfiguration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SalesforceConfiguration.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('salesforce_configuration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('salesforce_configuration:remove', doc);
+}
index 9e302d4..4a0ccb2 100644 (file)
@@ -1 +1,18 @@
-var _0xb6af=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb6af[0];var express=require(_0xb6af[1]);var auth=require(_0xb6af[2]);var controller=require(_0xb6af[3]);var router=express.Router();router[_0xb6af[7]](_0xb6af[4],auth[_0xb6af[5]](),controller[_0xb6af[6]]);router[_0xb6af[7]](_0xb6af[8],auth[_0xb6af[5]](),controller[_0xb6af[9]]);router[_0xb6af[11]](_0xb6af[4],auth[_0xb6af[5]](),controller[_0xb6af[10]]);router[_0xb6af[13]](_0xb6af[8],auth[_0xb6af[5]](),controller[_0xb6af[12]]);router[_0xb6af[14]](_0xb6af[8],auth[_0xb6af[5]](),controller[_0xb6af[12]]);router[_0xb6af[16]](_0xb6af[8],auth[_0xb6af[5]](),controller[_0xb6af[15]]);module[_0xb6af[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./salesforce_field.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index 96390aa..639e318 100644 (file)
@@ -1 +1,97 @@
-var _0x1528=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x1528[0];var proxyquire=require(_0x1528[2])[_0x1528[1]]();var salesforceFieldCtrlStub={index:_0x1528[3],show:_0x1528[4],create:_0x1528[5],update:_0x1528[6],destroy:_0x1528[7]};var routerStub={get:sinon[_0x1528[8]](),put:sinon[_0x1528[8]](),patch:sinon[_0x1528[8]](),post:sinon[_0x1528[8]](),delete:sinon[_0x1528[8]]()};var salesforceFieldIndex=proxyquire(_0x1528[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":salesforceFieldCtrlStub});describe(_0x1528[10],function(){it(_0x1528[11],function(){expect(salesforceFieldIndex)[_0x1528[13]][_0x1528[12]](routerStub)});describe(_0x1528[14],function(){it(_0x1528[15],function(){expect(routerStub[_0x1528[21]][_0x1528[20]](_0x1528[19],_0x1528[3]))[_0x1528[13]][_0x1528[18]][_0x1528[17]][_0x1528[16]]})});describe(_0x1528[22],function(){it(_0x1528[23],function(){expect(routerStub[_0x1528[21]][_0x1528[20]](_0x1528[24],_0x1528[4]))[_0x1528[13]][_0x1528[18]][_0x1528[17]][_0x1528[16]]})});describe(_0x1528[25],function(){it(_0x1528[26],function(){expect(routerStub[_0x1528[27]][_0x1528[20]](_0x1528[19],_0x1528[5]))[_0x1528[13]][_0x1528[18]][_0x1528[17]][_0x1528[16]]})});describe(_0x1528[28],function(){it(_0x1528[29],function(){expect(routerStub[_0x1528[30]][_0x1528[20]](_0x1528[24],_0x1528[6]))[_0x1528[13]][_0x1528[18]][_0x1528[17]][_0x1528[16]]})});describe(_0x1528[31],function(){it(_0x1528[29],function(){expect(routerStub[_0x1528[32]][_0x1528[20]](_0x1528[24],_0x1528[6]))[_0x1528[13]][_0x1528[18]][_0x1528[17]][_0x1528[16]]})});describe(_0x1528[33],function(){it(_0x1528[34],function(){expect(routerStub[_0x1528[35]][_0x1528[20]](_0x1528[24],_0x1528[7]))[_0x1528[13]][_0x1528[18]][_0x1528[17]][_0x1528[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var salesforceFieldCtrlStub = {
+  index: 'salesforceFieldCtrl.index',
+  show: 'salesforceFieldCtrl.show',
+  create: 'salesforceFieldCtrl.create',
+  update: 'salesforceFieldCtrl.update',
+  destroy: 'salesforceFieldCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var salesforceFieldIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './salesforce_field.controller': salesforceFieldCtrlStub
+});
+
+describe('SalesforceField API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(salesforceFieldIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/salesforce/fields', function() {
+
+    it('should route to salesforceField.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'salesforceFieldCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/salesforce/fields/:id', function() {
+
+    it('should route to salesforceField.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'salesforceFieldCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/salesforce/fields', function() {
+
+    it('should route to salesforceField.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'salesforceFieldCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/salesforce/fields/:id', function() {
+
+    it('should route to salesforceField.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'salesforceFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/salesforce/fields/:id', function() {
+
+    it('should route to salesforceField.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'salesforceFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/salesforce/fields/:id', function() {
+
+    it('should route to salesforceField.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'salesforceFieldCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 049d5d3..bab61d7 100644 (file)
@@ -1 +1,104 @@
-var _0xdfb4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0xdfb4[0];var _=require(_0xdfb4[1]);var SalesforceField=require(_0xdfb4[3])[_0xdfb4[2]];function handleError(_0x3adex4,_0x3adex5){_0x3adex5=_0x3adex5||500;return function(_0x3adex6){_0x3adex4[_0xdfb4[5]](_0x3adex5)[_0xdfb4[4]](_0x3adex6)};}function responseWithResult(_0x3adex4,_0x3adex5){_0x3adex5=_0x3adex5||200;return function(_0x3adex8){if(_0x3adex8){_0x3adex4[_0xdfb4[5]](_0x3adex5)[_0xdfb4[6]](_0x3adex8)}};}function handleEntityNotFound(_0x3adex4){return function(_0x3adex8){if(!_0x3adex8){_0x3adex4[_0xdfb4[5]](404)[_0xdfb4[7]]();return null;};return _0x3adex8;}}function saveUpdates(_0x3adexb){return function(_0x3adex8){return _0x3adex8[_0xdfb4[9]](_0x3adexb)[_0xdfb4[8]](function(_0x3adexc){return _0x3adexc})}}function removeEntity(_0x3adex4){return function(_0x3adex8){if(_0x3adex8){return _0x3adex8[_0xdfb4[10]]()[_0xdfb4[8]](function(){_0x3adex4[_0xdfb4[5]](204)[_0xdfb4[7]]()})}}}exports[_0xdfb4[11]]=function(_0x3adexe,_0x3adex4){SalesforceField[_0xdfb4[13]]()[_0xdfb4[8]](responseWithResult(_0x3adex4))[_0xdfb4[12]](handleError(_0x3adex4))};exports[_0xdfb4[14]]=function(_0x3adexe,_0x3adex4){SalesforceField[_0xdfb4[17]](_0x3adexe[_0xdfb4[16]][_0xdfb4[15]])[_0xdfb4[8]](handleEntityNotFound(_0x3adex4))[_0xdfb4[8]](responseWithResult(_0x3adex4))[_0xdfb4[12]](handleError(_0x3adex4))};exports[_0xdfb4[18]]=function(_0x3adexe,_0x3adex4){SalesforceField[_0xdfb4[18]](_0x3adexe[_0xdfb4[19]])[_0xdfb4[8]](responseWithResult(_0x3adex4,201))[_0xdfb4[12]](handleError(_0x3adex4))};exports[_0xdfb4[20]]=function(_0x3adexe,_0x3adex4){if(_0x3adexe[_0xdfb4[19]][_0xdfb4[15]]){delete _0x3adexe[_0xdfb4[19]][_0xdfb4[15]]};SalesforceField[_0xdfb4[17]](_0x3adexe[_0xdfb4[16]][_0xdfb4[15]])[_0xdfb4[8]](handleEntityNotFound(_0x3adex4))[_0xdfb4[8]](saveUpdates(_0x3adexe[_0xdfb4[19]]))[_0xdfb4[8]](responseWithResult(_0x3adex4))[_0xdfb4[12]](handleError(_0x3adex4));};exports[_0xdfb4[10]]=function(_0x3adexe,_0x3adex4){SalesforceField[_0xdfb4[17]](_0x3adexe[_0xdfb4[16]][_0xdfb4[15]])[_0xdfb4[8]](handleEntityNotFound(_0x3adex4))[_0xdfb4[8]](removeEntity(_0x3adex4))[_0xdfb4[12]](handleError(_0x3adex4))};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/salesforce/fields              ->  index
+ * POST    /api/salesforce/fields              ->  create
+ * GET     /api/salesforce/fields/:id          ->  show
+ * PUT     /api/salesforce/fields/:id          ->  update
+ * DELETE  /api/salesforce/fields/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var SalesforceField = require('../../models').SalesforceField;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SalesforceFields
+exports.index = function(req, res) {
+  SalesforceField.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SalesforceField from the DB
+exports.show = function(req, res) {
+  SalesforceField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SalesforceField in the DB
+exports.create = function(req, res) {
+  SalesforceField.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SalesforceField in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SalesforceField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SalesforceField from the DB
+exports.destroy = function(req, res) {
+  SalesforceField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
index 2860c92..b3f5775 100644 (file)
@@ -1 +1,24 @@
-var _0x7f2d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7f2d[0];var SalesforceField=require(_0x7f2d[2])[_0x7f2d[1]];exports[_0x7f2d[3]]=function(_0xb469x2){SalesforceField[_0x7f2d[4]](function(_0xb469x3){onSave(_0xb469x2,_0xb469x3)});SalesforceField[_0x7f2d[5]](function(_0xb469x3){onRemove(_0xb469x2,_0xb469x3)});};function onSave(_0xb469x2,_0xb469x3,_0xb469x5){_0xb469x2[_0x7f2d[7]](_0x7f2d[6],_0xb469x3)}function onRemove(_0xb469x2,_0xb469x3,_0xb469x5){_0xb469x2[_0x7f2d[7]](_0x7f2d[8],_0xb469x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SalesforceField = require('../../models').SalesforceField;
+
+exports.register = function(socket) {
+  SalesforceField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SalesforceField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('salesforce_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('salesforce_field:remove', doc);
+}
diff --git a/server/api/service/index.js b/server/api/service/index.js
new file mode 100644 (file)
index 0000000..c1bf88f
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./service.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/customfields/:id', auth.isAuthenticated(), controller.showCustomField);
+router.get('/:id/customfields', auth.isAuthenticated(), controller.getCustomFields);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.serviceValidation);
+router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
+router.post('/:id/customfields', auth.isAuthenticated(), controller.createCustomField);
+router.put('/customfields/:id', auth.isAuthenticated(), controller.updateCustomField);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.put('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+router.delete('/customfields/:id', auth.isAuthenticated(), controller.deactivateCustomField);
+
+module.exports = router;
diff --git a/server/api/service/service.controller.js b/server/api/service/service.controller.js
new file mode 100644 (file)
index 0000000..af2ad7a
--- /dev/null
@@ -0,0 +1,431 @@
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var User = require('../../models').User;
+var Service = require('../../models').Service;
+var UserHasService = require('../../models').UserHasService;
+var CustomField = require('../../models').CustomField;
+var Contact = require('../../models').Contact;
+
+// Get list of services
+exports.index = function(req, res) {
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Service
+  // .scope('customFields')
+    .findAndCountAll(query)
+    .then(function(result) {
+      console.log(result.count);
+      var total_pages = Math.ceil(result.count / per_page);
+      console.log(total_pages);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get all custom_fields
+exports.getCustomFields = function(req, res) {
+  CustomField
+    .findAll({
+      where: {
+        ServiceId: req.params.id,
+        active: true
+      }
+    })
+    .then(function(customFields) {
+      return res.status(200).send(customFields);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+exports.showCustomField = function(req, res) {
+  CustomField
+    .findById(req.params.id)
+    .then(function(customField) {
+      if (!customField) {
+        return res.sendStatus(404);
+      }
+      return res.send(customField);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.updateCustomField = function(req, res) {
+  CustomField
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(customFields) {
+      if (!customFields) {
+        return res.sendStatus(404);
+      }
+      if (customFields.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_CUSTOM_FIELD'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      CustomField
+        .findById(req.params.id)
+        .then(function(customField) {
+          if (!customField) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(customField, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(customField);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.createCustomField = function(req, res) {
+  req.body.ServiceId = req.params.id;
+  CustomField
+    .create(req.body)
+    .then(function(customField) {
+      return res.status(201).send(customField);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single service
+exports.show = function(req, res) {
+  Service
+    .findById(req.params.id)
+    .then(function(service) {
+      if (!service) {
+        return res.sendStatus(404);
+      }
+      return res.send(service);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of a service
+exports.serviceValidation = function(req, res) {
+  console.log(req.body);
+  Service
+    .findAll({
+      where: {
+        id: req.body.id
+      }
+    })
+    .then(function(service) {
+      if (!service) {
+        return res.sendStatus(404);
+      }
+      return res.send(service);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new service in the DB.
+exports.create = function(req, res) {
+  Service
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(existingServices) {
+      console.log(existingServices);
+      console.log('Finding app row.....');
+      if (!existingServices) {
+        return res.sendStatus(404);
+      }
+      if (existingServices.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_SERVICE'
+        });
+      }
+      Service
+        .create(req.body)
+        .then(function(service) {
+          return res.status(201).send(service);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing service in the DB.
+exports.update = function(req, res) {
+  Service
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(existingServices) {
+      console.log(existingServices);
+      console.log('Finding app row.....');
+      if (!existingServices) {
+        return res.sendStatus(404);
+      }
+      if (existingServices.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_SERVICE'
+        });
+      }
+      return Service
+        .findById(req.params.id);
+    })
+    .then(function(service) {
+      if (!service) {
+        return res.sendStatus(404);
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      var updated = _.merge(service, req.body);
+      return updated.save();
+    })
+    .then(function(service) {
+      return res.status(200).send(service);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+
+// Updates an existing user_has_service in the DB.
+exports.addAgents = function(req, res, next) {
+
+  console.log('addAgents');
+  console.log(req.params);
+  console.log(req.body);
+  User
+    .findAll({
+      where: {
+        id: {
+          $in: req.body.agents
+        }
+      }
+    })
+    .then(function(users) {
+      // console.log(users);
+      var userHasServices = _.map(users, function(user) {
+        return {
+          service: req.params.id,
+          membername: user.name,
+          UserId: user.id
+        };
+      });
+
+      UserHasService
+        .bulkCreate(userHasServices, {
+          individualHooks: true
+        })
+        .then(function() {
+          return res.sendStatus(200);
+        })
+        .catch(function(err) {
+          return next(err);
+        });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+exports.removeAgents = function(req, res, next) {
+  Service
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(service) {
+      if (service) {
+        // SERVICE FOUND
+        // REMOVE AGENTS
+        service
+          .removeUsers(req.body.agents, {
+            individualHooks: true
+          })
+          .then(function() {
+            return res.sendStatus(200);
+          })
+          .catch(function(err) {
+            return next(err);
+          });
+      } else {
+        return next(new Error('no service found'));
+      }
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a service from the DB.
+exports.destroy = function(req, res) {
+  destroyService(req.params.id, res);
+};
+
+// Deletes multiple services from the DB.
+exports.bulkDestroy = function(req, res) { //add the check for associated contacts
+  destroyService(req.query.id, res);
+};
+
+function destroyService(id, res) {
+  return delOrUpdateCf(id)
+    .all()
+    .then(function() {
+      return Service.destroy({
+        where: {
+          id: id
+        },
+        individualHooks: true
+      });
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+}
+
+function delOrUpdateCf(id) {
+  return CustomField.findAll({
+      where: {
+        ServiceId: id
+      },
+      include: [{
+        model: Contact
+      }]
+    })
+    .then(function(customFields) {
+      console.log(customFields.length);
+      var delOrDeact = [];
+      _.forEach(customFields, function(elem) {
+        if (elem.Contacts.length) {
+          delOrDeact.push(elem.update({
+            active: false
+          }));
+        } else {
+          delOrDeact.push(elem.destroy());
+        }
+      });
+      return delOrDeact;
+    })
+}
+
+exports.deactivateCustomField = function(req, res) {
+  CustomField
+    .findById(req.params.id, {
+      include: [{
+        model: Contact
+      }]
+    })
+    .then(function(customField) {
+      if (!customField) {
+        return res.sendStatus(404);
+      }
+      if (customField.Contacts.length) {
+        return customField.update({
+          active: false
+        });
+      } else {
+        return customField.destroy();
+      }
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/service/service.socket.js b/server/api/service/service.socket.js
new file mode 100644 (file)
index 0000000..981784a
--- /dev/null
@@ -0,0 +1,33 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Service = require('../../models').Service;
+var CustomField = require('../../models').CustomField;
+
+exports.register = function(socket) {
+  Service.afterCreate(function(doc) {
+    onSave(socket, doc, 'service');
+  });
+  Service.afterDestroy(function(doc) {
+    console.log('destroy');
+    onRemove(socket, doc, 'service');
+  });
+  CustomField.afterCreate(function(doc) {
+    onSave(socket, doc, 'custom_field');
+  });
+  CustomField.afterDestroy(function(doc) {
+    onRemove(socket, doc, 'custom_field');
+  });
+}
+
+function onSave(socket, doc, type, cb) {
+  socket.emit(type + ':save', doc);
+}
+
+function onRemove(socket, doc, type, cb) {
+  console.log(type);
+  socket.emit(type + ':remove', doc);
+}
diff --git a/server/api/service/service.spec.js b/server/api/service/service.spec.js
new file mode 100644 (file)
index 0000000..7d84147
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/contactmanager/services', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/contactmanager/services')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 2e06fbd..d39a451 100644 (file)
@@ -1 +1,18 @@
-var _0x1791=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x2F\x69\x6E\x66\x6F","\x67\x65\x74\x49\x6E\x66\x6F","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1791[0];var express=require(_0x1791[1]);var controller=require(_0x1791[2]);var auth=require(_0x1791[3]);var router=express.Router();router[_0x1791[7]](_0x1791[4],auth[_0x1791[5]](),controller[_0x1791[6]]);router[_0x1791[7]](_0x1791[8],auth[_0x1791[5]](),controller[_0x1791[9]]);router[_0x1791[7]](_0x1791[10],controller[_0x1791[11]]);router[_0x1791[7]](_0x1791[12],auth[_0x1791[5]](),controller[_0x1791[13]]);router[_0x1791[15]](_0x1791[4],auth[_0x1791[5]](),controller[_0x1791[14]]);router[_0x1791[17]](_0x1791[12],auth[_0x1791[5]](),controller[_0x1791[16]]);router[_0x1791[18]](_0x1791[12],auth[_0x1791[5]](),controller[_0x1791[16]]);router[_0x1791[20]](_0x1791[12],auth[_0x1791[5]](),controller[_0x1791[19]]);module[_0x1791[21]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./setting.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/internal', auth.isAuthenticated(), controller.getInternal);
+router.get('/info', controller.getInfo);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 0ee81d8..4cbb858 100644 (file)
@@ -1 +1,152 @@
-var _0x581b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x6C\x6F\x67","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x6C\x75\x63\x6B","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x69\x6E\x5F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x64\x65\x78\x4F\x66","\x76\x61\x6C\x75\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x49\x6E\x66\x6F","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x70\x61\x63\x6B\x61\x67\x65\x2E\x6A\x73\x6F\x6E","\x6E\x61\x6D\x65","\x76\x65\x72\x73\x69\x6F\x6E","\x65\x6E\x67\x69\x6E\x65\x73","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x581b[0];var _=require(_0x581b[1]);var Settings=require(_0x581b[3])[_0x581b[2]];var Agent=require(_0x581b[3])[_0x581b[4]];exports[_0x581b[5]]=function(_0x1ccdx4,_0x1ccdx5){Settings[_0x581b[10]]()[_0x581b[9]](function(_0x1ccdx7){return _0x1ccdx5[_0x581b[8]](200)[_0x581b[7]](_0x1ccdx7)})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)})};exports[_0x581b[11]]=function(_0x1ccdx4,_0x1ccdx5){Settings[_0x581b[19]]()[_0x581b[9]](function(_0x1ccdx8){Agent[_0x581b[10]]({where:{internal:{$gte:_0x1ccdx8[_0x581b[16]]}}})[_0x581b[9]](function(_0x1ccdx9){var _0x1ccdxa=_[_0x581b[14]](_[_0x581b[14]](_0x1ccdx9,_0x581b[13]),_0x581b[15]);var _0x1ccdxb=_0x1ccdx8[_0x581b[16]];var _0x1ccdxc={value:null};do{if(_0x1ccdxa[_0x581b[17]](_0x1ccdxb)=== -1){_0x1ccdxc[_0x581b[18]]=_0x1ccdxb}else {_0x1ccdxb++}}while(!_0x1ccdxc[_0x581b[18]]);;return _0x1ccdx5[_0x581b[8]](200)[_0x581b[7]](_0x1ccdxc);})[_0x581b[6]](function(_0x1ccdx6){console[_0x581b[12]](_0x1ccdx6);return handleError(_0x1ccdx5,_0x1ccdx6);})})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)})};exports[_0x581b[20]]=function(_0x1ccdx4,_0x1ccdx5){var _0x1ccdxd=require(_0x581b[21]);return _0x1ccdx5[_0x581b[8]](200)[_0x581b[7]]({name:_0x1ccdxd[_0x581b[22]],version:_0x1ccdxd[_0x581b[23]],engines:_0x1ccdxd[_0x581b[24]]});};exports[_0x581b[25]]=function(_0x1ccdx4,_0x1ccdx5){Settings[_0x581b[29]](_0x1ccdx4[_0x581b[28]][_0x581b[27]])[_0x581b[9]](function(_0x1ccdxe){if(!_0x1ccdxe){return _0x1ccdx5[_0x581b[26]](404)};return _0x1ccdx5[_0x581b[7]](_0x1ccdxe);})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)})};exports[_0x581b[30]]=function(_0x1ccdx4,_0x1ccdx5){Settings[_0x581b[30]](_0x1ccdx4[_0x581b[31]])[_0x581b[9]](function(_0x1ccdxe){return _0x1ccdx5[_0x581b[8]](201)[_0x581b[7]](_0x1ccdxe)})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)})};exports[_0x581b[32]]=function(_0x1ccdx4,_0x1ccdx5){if(_0x1ccdx4[_0x581b[31]][_0x581b[27]]){delete _0x1ccdx4[_0x581b[31]][_0x581b[27]]};Settings[_0x581b[35]]({where:{id:_0x1ccdx4[_0x581b[28]][_0x581b[27]]}})[_0x581b[9]](function(_0x1ccdxe){if(!_0x1ccdxe){return _0x1ccdx5[_0x581b[26]](404)};var _0x1ccdxf=_[_0x581b[33]](_0x1ccdxe,_0x1ccdx4[_0x581b[31]]);_0x1ccdxf[_0x581b[34]]()[_0x581b[9]](function(){return _0x1ccdx5[_0x581b[8]](200)[_0x581b[7]](_0x1ccdxe)})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)});})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)});};exports[_0x581b[36]]=function(_0x1ccdx4,_0x1ccdx5){Settings[_0x581b[35]]({where:{id:_0x1ccdx4[_0x581b[28]][_0x581b[27]]}})[_0x581b[9]](function(_0x1ccdxe){if(!_0x1ccdxe){return _0x1ccdx5[_0x581b[26]](404)};_0x1ccdxe[_0x581b[36]]()[_0x581b[9]](function(){return _0x1ccdx5[_0x581b[26]](204)})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)});})[_0x581b[6]](function(_0x1ccdx6){return handleError(_0x1ccdx5,_0x1ccdx6)})};function handleError(_0x1ccdx5,_0x1ccdx6){return _0x1ccdx5[_0x581b[8]](500)[_0x581b[7]](_0x1ccdx6)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Settings = require('../../models').Settings;
+var Agent = require('../../models').User;
+
+// Get list of settings
+exports.index = function(req, res) {
+  Settings
+    .findAll()
+    .then(function(settings) {
+      return res.status(200).send(settings);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of settings
+exports.getInternal = function(req, res) {
+  Settings
+    .findOne()
+    .then(function(result) {
+      Agent
+        .findAll({
+          where: {
+            internal: {
+              $gte: result.min_internal
+            }
+          }
+        })
+        .then(function(internals) {
+          var pluckdInternals = _.pluck(_.pluck(internals, 'dataValues'), 'internal');
+          var lastChecked = result.min_internal;
+          var internalNumber = {
+            value: null
+          };
+          do {
+            if (pluckdInternals.indexOf(lastChecked) === -1) {
+              internalNumber.value = lastChecked;
+            } else {
+              lastChecked++;
+            }
+          } while (!internalNumber.value)
+          return res.status(200).send(internalNumber);
+        })
+        .catch(function(err) {
+          console.log(err);
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of settings
+exports.getInfo = function(req, res) {
+
+  var info = require('../../../package.json');
+
+  return res.status(200).send({
+    name: info.name,
+    version: info.version,
+    engines: info.engines
+  });
+};
+
+// Get a single setting
+exports.show = function(req, res) {
+  Settings
+    .findById(req.params.id)
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+      return res.send(setting);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new setting in the DB.
+exports.create = function(req, res) {
+  Settings
+    .create(req.body)
+    .then(function(setting) {
+      return res.status(201).send(setting);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing setting in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Settings
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(setting, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(setting);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a setting from the DB.
+exports.destroy = function(req, res) {
+  Settings
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+      setting.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 7f585a7..611827e 100644 (file)
@@ -1 +1,24 @@
-var _0x4033=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x74\x74\x69\x6E\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x65\x74\x74\x69\x6E\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4033[0];var Settings=require(_0x4033[2])[_0x4033[1]];exports[_0x4033[3]]=function(_0x6f1bx2){Settings[_0x4033[4]](function(_0x6f1bx3){onSave(_0x6f1bx2,_0x6f1bx3)});Settings[_0x4033[5]](function(_0x6f1bx3){onRemove(_0x6f1bx2,_0x6f1bx3)});};function onSave(_0x6f1bx2,_0x6f1bx3,_0x6f1bx5){_0x6f1bx2[_0x4033[7]](_0x4033[6],_0x6f1bx3)}function onRemove(_0x6f1bx2,_0x6f1bx3,_0x6f1bx5){_0x6f1bx2[_0x4033[7]](_0x4033[8],_0x6f1bx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Settings = require('../../models').Settings;
+
+exports.register = function(socket) {
+  Settings.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Settings.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('setting:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('setting:remove', doc);
+}
index c20abe7..eec76c9 100644 (file)
@@ -1 +1,20 @@
-var _0x9c94=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x67\x65\x74"];_0x9c94[0];var should=require(_0x9c94[1]);var app=require(_0x9c94[2]);var request=require(_0x9c94[3]);describe(_0x9c94[4],function(){it(_0x9c94[5],function(_0x897dx4){request(app)[_0x9c94[13]](_0x9c94[12])[_0x9c94[11]](200)[_0x9c94[11]](_0x9c94[10],/json/)[_0x9c94[9]](function(_0x897dx5,_0x897dx6){if(_0x897dx5){return _0x897dx4(_0x897dx5)};_0x897dx6[_0x9c94[8]][_0x9c94[1]][_0x9c94[7]][_0x9c94[6]](Array);_0x897dx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/settings', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/settings')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 77855cd..9d53bf8 100644 (file)
@@ -1 +1,17 @@
-var _0x80cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x6F\x64\x62\x63\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x80cb[0];var express=require(_0x80cb[1]);var controller=require(_0x80cb[2]);var auth=require(_0x80cb[3]);var router=express.Router();router[_0x80cb[7]](_0x80cb[4],auth[_0x80cb[5]](),controller[_0x80cb[6]]);router[_0x80cb[7]](_0x80cb[8],auth[_0x80cb[5]](),controller[_0x80cb[9]]);router[_0x80cb[11]](_0x80cb[4],auth[_0x80cb[5]](),controller[_0x80cb[10]]);router[_0x80cb[11]](_0x80cb[12],auth[_0x80cb[5]](),controller[_0x80cb[13]]);router[_0x80cb[15]](_0x80cb[8],auth[_0x80cb[5]](),controller[_0x80cb[14]]);router[_0x80cb[16]](_0x80cb[8],auth[_0x80cb[5]](),controller[_0x80cb[14]]);router[_0x80cb[18]](_0x80cb[8],auth[_0x80cb[5]](),controller[_0x80cb[17]]);module[_0x80cb[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./square_odbc.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.odbcValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index e2b05d4..a444b26 100644 (file)
@@ -1 +1,209 @@
-var _0x8977=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6F\x64\x62\x63\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x4F\x44\x42\x43","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x8977[0];var _=require(_0x8977[1]);var SquareOdbc=require(_0x8977[3])[_0x8977[2]];var util=require(_0x8977[4]);exports[_0x8977[5]]=function(_0xb6ddx4,_0xb6ddx5){var _0xb6ddx6=[_0x8977[6],_0x8977[7]];var _0xb6ddx7=_0xb6ddx4[_0x8977[9]][_0x8977[8]]?parseInt(_0xb6ddx4[_0x8977[9]][_0x8977[8]],10):100;var _0xb6ddx8=_0xb6ddx4[_0x8977[9]][_0x8977[10]]?parseInt(_0xb6ddx4[_0x8977[9]][_0x8977[10]],10):0;var _0xb6ddx9={where:{},limit:_0xb6ddx7,offset:_0xb6ddx8*_0xb6ddx7};_[_0x8977[24]](_0xb6ddx4[_0x8977[9]],function(_0xb6ddxa,_0xb6ddxb){switch(_0xb6ddxb){case _0x8977[8]:;case _0x8977[10]:break ;;case _0x8977[13]:_0xb6ddx9[_0x8977[11]]=util[_0x8977[16]](_0x8977[12],_0xb6ddx4[_0x8977[9]][_0x8977[13]],_0xb6ddx4[_0x8977[9]][_0x8977[14]]||_0x8977[15])||null;break ;;case _0x8977[14]:break ;;case _0x8977[22]:_0xb6ddx9[_0x8977[18]][_0x8977[17]]=[];_0xb6ddx6[_0x8977[21]](function(_0xb6ddxc){var _0xb6ddxd={};_0xb6ddxd[_0xb6ddxc]={$like:_0x8977[19]+_0xb6ddxa+_0x8977[19]};_0xb6ddx9[_0x8977[18]][_0x8977[17]][_0x8977[20]](_0xb6ddxd);});break ;;default:_0xb6ddx9[_0x8977[18]][_0xb6ddxb]={$like:{}};_0xb6ddx9[_0x8977[18]][_0xb6ddxb][_0x8977[23]]=_0x8977[19]+_0xb6ddxa+_0x8977[19];;}});SquareOdbc[_0x8977[39]](_0xb6ddx9)[_0x8977[38]](function(_0xb6ddxf){var _0xb6ddx10=Math[_0x8977[30]](_0xb6ddxf[_0x8977[29]]/_0xb6ddx7);var _0xb6ddx11=_0xb6ddx10>(_0xb6ddx9[_0x8977[31]]+1)?util[_0x8977[16]](_0x8977[32],_0xb6ddx4[_0x8977[33]],_0xb6ddx4[_0x8977[35]][_0x8977[34]],_0xb6ddx4[_0x8977[36]],_0xb6ddx8+1):null;var _0xb6ddx12=_0xb6ddx8>0?util[_0x8977[16]](_0x8977[32],_0xb6ddx4[_0x8977[33]],_0xb6ddx4[_0x8977[35]][_0x8977[34]],_0xb6ddx4[_0x8977[36]],_0xb6ddx8-1):null;_0xb6ddx5[_0x8977[27]](200)[_0x8977[26]]({count:_0xb6ddxf[_0x8977[29]],rows:_0xb6ddxf[_0x8977[37]],next_page:_0xb6ddx11,previous_page:_0xb6ddx12,total_pages:_0xb6ddx10});})[_0x8977[28]](function(_0xb6ddxe){_0xb6ddx5[_0x8977[27]](500)[_0x8977[26]]({error:_0x8977[25]})});};exports[_0x8977[40]]=function(_0xb6ddx4,_0xb6ddx5){console[_0x8977[42]](_0xb6ddx4[_0x8977[41]]);SquareOdbc[_0x8977[44]]({where:{name:_0xb6ddx4[_0x8977[41]][_0x8977[6]]}})[_0x8977[38]](function(_0xb6ddx13){if(!_0xb6ddx13){return _0xb6ddx5[_0x8977[43]](404)};return _0xb6ddx5[_0x8977[26]](_0xb6ddx13);})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)});};exports[_0x8977[45]]=function(_0xb6ddx4,_0xb6ddx5){SquareOdbc[_0x8977[48]](_0xb6ddx4[_0x8977[47]][_0x8977[46]])[_0x8977[38]](function(_0xb6ddx14){if(!_0xb6ddx14){return _0xb6ddx5[_0x8977[43]](404)};return _0xb6ddx5[_0x8977[26]](_0xb6ddx14);})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)})};exports[_0x8977[49]]=function(_0xb6ddx4,_0xb6ddx5){SquareOdbc[_0x8977[49]](_0xb6ddx4[_0x8977[41]])[_0x8977[38]](function(_0xb6ddx14){return _0xb6ddx5[_0x8977[27]](201)[_0x8977[26]](_0xb6ddx14)})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)})};exports[_0x8977[50]]=function(_0xb6ddx4,_0xb6ddx5){SquareOdbc[_0x8977[44]]({where:{name:_0xb6ddx4[_0x8977[41]][_0x8977[6]],id:{$ne:_0xb6ddx4[_0x8977[41]][_0x8977[46]]}}})[_0x8977[38]](function(_0xb6ddx13){if(!_0xb6ddx13){return _0xb6ddx5[_0x8977[43]](404)};if(_0xb6ddx13[_0x8977[51]]>0){return _0xb6ddx5[_0x8977[27]](500)[_0x8977[26]]({message:_0x8977[52]})};if(_0xb6ddx4[_0x8977[41]][_0x8977[46]]){delete _0xb6ddx4[_0x8977[41]][_0x8977[46]]};SquareOdbc[_0x8977[48]](_0xb6ddx4[_0x8977[47]][_0x8977[46]])[_0x8977[38]](function(_0xb6ddx14){if(!_0xb6ddx14){return _0xb6ddx5[_0x8977[43]](404)};var _0xb6ddx15=_[_0x8977[53]](_0xb6ddx14,_0xb6ddx4[_0x8977[41]]);_0xb6ddx15[_0x8977[54]]()[_0x8977[38]](function(){return _0xb6ddx5[_0x8977[27]](200)[_0x8977[26]](_0xb6ddx14)})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)});})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)});})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)})};exports[_0x8977[55]]=function(_0xb6ddx4,_0xb6ddx5){SquareOdbc[_0x8977[56]]({where:{id:_0xb6ddx4[_0x8977[47]][_0x8977[46]]}})[_0x8977[38]](function(_0xb6ddx14){if(!_0xb6ddx14){return _0xb6ddx5[_0x8977[43]](404)};_0xb6ddx14[_0x8977[55]]()[_0x8977[38]](function(){return _0xb6ddx5[_0x8977[43]](204)})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)});})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)})};exports[_0x8977[57]]=function(_0xb6ddx4,_0xb6ddx5){SquareOdbc[_0x8977[55]]({where:{id:_0xb6ddx4[_0x8977[9]][_0x8977[46]]},individualHooks:true})[_0x8977[38]](function(){return _0xb6ddx5[_0x8977[43]](204)})[_0x8977[28]](function(_0xb6ddxe){return handleError(_0xb6ddx5,_0xb6ddxe)})};function handleError(_0xb6ddx5,_0xb6ddxe){return _0xb6ddx5[_0x8977[27]](500)[_0x8977[26]](_0xb6ddxe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var SquareOdbc = require('../../models').SquareOdbc;
+var util = require('util');
+
+// Get list of square_odbcs
+exports.index = function(req, res) {
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  SquareOdbc
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.odbcValidation = function(req, res) {
+  console.log(req.body);
+  SquareOdbc
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(square_odbcs) {
+      if (!square_odbcs) {
+        return res.sendStatus(404);
+      }
+      return res.send(square_odbcs);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single square_odbc
+exports.show = function(req, res) {
+  SquareOdbc
+    .findById(req.params.id)
+    .then(function(square_odbc) {
+      if (!square_odbc) {
+        return res.sendStatus(404);
+      }
+      return res.send(square_odbc);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new square_odbc in the DB.
+exports.create = function(req, res) {
+  SquareOdbc
+    .create(req.body)
+    .then(function(square_odbc) {
+      return res.status(201).send(square_odbc);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing square_odbc in the DB.
+exports.update = function(req, res) {
+  SquareOdbc
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(square_odbcs) {
+      if (!square_odbcs) {
+        return res.sendStatus(404);
+      }
+      if (square_odbcs.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_ODBC'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      SquareOdbc
+        .findById(req.params.id)
+        .then(function(square_odbc) {
+          if (!square_odbc) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(square_odbc, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(square_odbc);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a square_odbc from the DB.
+exports.destroy = function(req, res) {
+  SquareOdbc
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(square_odbc) {
+      if (!square_odbc) {
+        return res.sendStatus(404);
+      }
+      square_odbc.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a square_project from the DB.
+exports.bulkDestroy = function(req, res) {
+  SquareOdbc
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 049f8fd..af0c04a 100644 (file)
@@ -1 +1,24 @@
-var _0xace0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x3A\x72\x65\x6D\x6F\x76\x65"];_0xace0[0];var SquareOdbc=require(_0xace0[2])[_0xace0[1]];exports[_0xace0[3]]=function(_0xfd4fx2){SquareOdbc[_0xace0[4]](function(_0xfd4fx3){onSave(_0xfd4fx2,_0xfd4fx3)});SquareOdbc[_0xace0[5]](function(_0xfd4fx3){onRemove(_0xfd4fx2,_0xfd4fx3)});};function onSave(_0xfd4fx2,_0xfd4fx3,_0xfd4fx5){_0xfd4fx2[_0xace0[7]](_0xace0[6],_0xfd4fx3)}function onRemove(_0xfd4fx2,_0xfd4fx3,_0xfd4fx5){_0xfd4fx2[_0xace0[7]](_0xace0[8],_0xfd4fx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SquareOdbc = require('../../models').SquareOdbc;
+
+exports.register = function(socket) {
+  SquareOdbc.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SquareOdbc.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('square_odbc:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('square_odbc:remove', doc);
+}
index 6d5f0d7..ce9350c 100644 (file)
@@ -1 +1,20 @@
-var _0x174b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x67\x65\x74"];_0x174b[0];var should=require(_0x174b[1]);var app=require(_0x174b[2]);var request=require(_0x174b[3]);describe(_0x174b[4],function(){it(_0x174b[5],function(_0xc809x4){request(app)[_0x174b[13]](_0x174b[12])[_0x174b[11]](200)[_0x174b[11]](_0x174b[10],/json/)[_0x174b[9]](function(_0xc809x5,_0xc809x6){if(_0xc809x5){return _0xc809x4(_0xc809x5)};_0xc809x6[_0x174b[8]][_0x174b[1]][_0x174b[7]][_0x174b[6]](Array);_0xc809x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/square/odbc', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/square/odbc')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 1d4b2a7..e242768 100644 (file)
@@ -1 +1,19 @@
-var _0x4cd9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x70\x72\x6F\x6A\x65\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x4cd9[0];var express=require(_0x4cd9[1]);var controller=require(_0x4cd9[2]);var auth=require(_0x4cd9[3]);var router=express.Router();router[_0x4cd9[7]](_0x4cd9[4],auth[_0x4cd9[5]](),controller[_0x4cd9[6]]);router[_0x4cd9[7]](_0x4cd9[8],auth[_0x4cd9[5]](),controller[_0x4cd9[9]]);router[_0x4cd9[7]](_0x4cd9[10],controller[_0x4cd9[11]]);router[_0x4cd9[13]](_0x4cd9[4],auth[_0x4cd9[5]](),controller[_0x4cd9[12]]);router[_0x4cd9[13]](_0x4cd9[14],auth[_0x4cd9[5]](),controller[_0x4cd9[15]]);router[_0x4cd9[17]](_0x4cd9[8],auth[_0x4cd9[5]](),controller[_0x4cd9[16]]);router[_0x4cd9[18]](_0x4cd9[8],auth[_0x4cd9[5]](),controller[_0x4cd9[16]]);router[_0x4cd9[20]](_0x4cd9[4],auth[_0x4cd9[5]](),controller[_0x4cd9[19]]);router[_0x4cd9[20]](_0x4cd9[8],auth[_0x4cd9[5]](),controller[_0x4cd9[21]]);module[_0x4cd9[22]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./square_project.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/download', controller.download);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.projectValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 56161e6..40dc276 100644 (file)
@@ -1 +1,211 @@
-var _0x98ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x70\x72\x6F\x6A\x65\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D\x22","\x2E\x78\x6D\x6C\x22","\x74\x78\x74\x2F\x78\x6D\x6C","\x73\x65\x74","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E"];_0x98ea[0];var _=require(_0x98ea[1]);var path=require(_0x98ea[2]);var config=require(_0x98ea[3]);var util=require(_0x98ea[4]);var SquareProject=require(_0x98ea[6])[_0x98ea[5]];exports[_0x98ea[7]]=function(_0x724dx6,_0x724dx7){var _0x724dx8=[_0x98ea[8],_0x98ea[9]];var _0x724dx9=_0x724dx6[_0x98ea[11]][_0x98ea[10]]?parseInt(_0x724dx6[_0x98ea[11]][_0x98ea[10]],10):100;var _0x724dxa=_0x724dx6[_0x98ea[11]][_0x98ea[12]]?parseInt(_0x724dx6[_0x98ea[11]][_0x98ea[12]],10):0;var _0x724dxb={where:{},limit:_0x724dx9,offset:_0x724dxa*_0x724dx9};_[_0x98ea[26]](_0x724dx6[_0x98ea[11]],function(_0x724dxc,_0x724dxd){switch(_0x724dxd){case _0x98ea[10]:;case _0x98ea[12]:break ;;case _0x98ea[15]:_0x724dxb[_0x98ea[13]]=util[_0x98ea[18]](_0x98ea[14],_0x724dx6[_0x98ea[11]][_0x98ea[15]],_0x724dx6[_0x98ea[11]][_0x98ea[16]]||_0x98ea[17])||null;break ;;case _0x98ea[16]:break ;;case _0x98ea[24]:_0x724dxb[_0x98ea[20]][_0x98ea[19]]=[];_0x724dx8[_0x98ea[23]](function(_0x724dxe){var _0x724dxf={};_0x724dxf[_0x724dxe]={$like:_0x98ea[21]+_0x724dxc+_0x98ea[21]};_0x724dxb[_0x98ea[20]][_0x98ea[19]][_0x98ea[22]](_0x724dxf);});break ;;default:_0x724dxb[_0x98ea[20]][_0x724dxd]={$like:{}};_0x724dxb[_0x98ea[20]][_0x724dxd][_0x98ea[25]]=_0x98ea[21]+_0x724dxc+_0x98ea[21];;}});SquareProject[_0x98ea[41]](_0x724dxb)[_0x98ea[40]](function(_0x724dx11){var _0x724dx12=Math[_0x98ea[32]](_0x724dx11[_0x98ea[31]]/_0x724dx9);var _0x724dx13=_0x724dx12>(_0x724dxb[_0x98ea[33]]+1)?util[_0x98ea[18]](_0x98ea[34],_0x724dx6[_0x98ea[35]],_0x724dx6[_0x98ea[37]][_0x98ea[36]],_0x724dx6[_0x98ea[38]],_0x724dxa+1):null;var _0x724dx14=_0x724dxa>0?util[_0x98ea[18]](_0x98ea[34],_0x724dx6[_0x98ea[35]],_0x724dx6[_0x98ea[37]][_0x98ea[36]],_0x724dx6[_0x98ea[38]],_0x724dxa-1):null;_0x724dx7[_0x98ea[29]](200)[_0x98ea[28]]({count:_0x724dx11[_0x98ea[31]],rows:_0x724dx11[_0x98ea[39]],next_page:_0x724dx13,previous_page:_0x724dx14,total_pages:_0x724dx12});})[_0x98ea[30]](function(_0x724dx10){_0x724dx7[_0x98ea[29]](500)[_0x98ea[28]]({error:_0x98ea[27]})});};exports[_0x98ea[42]]=function(_0x724dx6,_0x724dx7){console[_0x98ea[44]](_0x724dx6[_0x98ea[43]]);SquareProject[_0x98ea[46]]({where:{name:_0x724dx6[_0x98ea[43]][_0x98ea[8]]}})[_0x98ea[40]](function(_0x724dx15){if(!_0x724dx15){return _0x724dx7[_0x98ea[45]](404)};return _0x724dx7[_0x98ea[28]](_0x724dx15);})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)});};exports[_0x98ea[47]]=function(_0x724dx6,_0x724dx7){SquareProject[_0x98ea[50]](_0x724dx6[_0x98ea[49]][_0x98ea[48]])[_0x98ea[40]](function(_0x724dx16){if(!_0x724dx16){return _0x724dx7[_0x98ea[45]](404)};return _0x724dx7[_0x98ea[28]](_0x724dx16);})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)})};exports[_0x98ea[51]]=function(_0x724dx6,_0x724dx7){SquareProject[_0x98ea[51]](_0x724dx6[_0x98ea[43]])[_0x98ea[40]](function(_0x724dx16){return _0x724dx7[_0x98ea[29]](201)[_0x98ea[28]](_0x724dx16)})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)})};exports[_0x98ea[52]]=function(_0x724dx6,_0x724dx7){if(_0x724dx6[_0x98ea[43]][_0x98ea[48]]){delete _0x724dx6[_0x98ea[43]][_0x98ea[48]]};SquareProject[_0x98ea[50]](_0x724dx6[_0x98ea[49]][_0x98ea[48]])[_0x98ea[40]](function(_0x724dx16){if(!_0x724dx16){return _0x724dx7[_0x98ea[45]](404)};var _0x724dx17=_[_0x98ea[53]](_0x724dx16,_0x724dx6[_0x98ea[43]]);_0x724dx17[_0x98ea[54]]()[_0x98ea[40]](function(){return _0x724dx7[_0x98ea[29]](200)[_0x98ea[28]](_0x724dx16)})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)});})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)});};exports[_0x98ea[55]]=function(_0x724dx6,_0x724dx7){SquareProject[_0x98ea[56]]({where:{id:_0x724dx6[_0x98ea[49]][_0x98ea[48]]}})[_0x98ea[40]](function(_0x724dx16){if(!_0x724dx16){return _0x724dx7[_0x98ea[45]](404)};_0x724dx16[_0x98ea[55]]()[_0x98ea[40]](function(){return _0x724dx7[_0x98ea[45]](204)})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)});})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)})};exports[_0x98ea[57]]=function(_0x724dx6,_0x724dx7){SquareProject[_0x98ea[55]]({where:{id:_0x724dx6[_0x98ea[11]][_0x98ea[48]]},individualHooks:true})[_0x98ea[40]](function(){return _0x724dx7[_0x98ea[45]](204)})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)})};exports[_0x98ea[58]]=function(_0x724dx6,_0x724dx7,_0x724dx18){SquareProject[_0x98ea[50]](_0x724dx6[_0x98ea[49]][_0x98ea[48]])[_0x98ea[40]](function(_0x724dx16){if(!_0x724dx16){return _0x724dx7[_0x98ea[45]](404)};console[_0x98ea[44]](_0x724dx6[_0x98ea[11]][_0x98ea[59]]);_0x724dx7[_0x98ea[63]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E":_0x98ea[60]+_0x724dx6[_0x98ea[11]][_0x98ea[59]]+_0x98ea[61],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x98ea[62]});return _0x724dx7[_0x98ea[28]](_0x724dx16[_0x98ea[64]]);})[_0x98ea[30]](function(_0x724dx10){return handleError(_0x724dx7,_0x724dx10)})};function handleError(_0x724dx7,_0x724dx10){return _0x724dx7[_0x98ea[29]](500)[_0x98ea[28]](_0x724dx10)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var path = require('path');
+var config = require('../../config/environment');
+var util = require('util');
+
+var SquareProject = require('../../models').SquareProject;
+
+// Get list of square_projects
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  SquareProject
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.projectValidation = function(req, res) {
+  console.log(req.body);
+  SquareProject
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(square_projects) {
+      if (!square_projects) {
+        return res.sendStatus(404);
+      }
+      return res.send(square_projects);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single square_project
+exports.show = function(req, res) {
+  SquareProject
+    .findById(req.params.id)
+    .then(function(square_project) {
+      if (!square_project) {
+        return res.sendStatus(404);
+      }
+      return res.send(square_project);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new square_project in the DB.
+exports.create = function(req, res) {
+  SquareProject
+    .create(req.body)
+    .then(function(square_project) {
+      return res.status(201).send(square_project);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing square_project in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SquareProject
+    .findById(req.params.id)
+    .then(function(square_project) {
+      if (!square_project) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(square_project, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(square_project);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a square_project from the DB.
+exports.destroy = function(req, res) {
+  SquareProject
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(square_project) {
+      if (!square_project) {
+        return res.sendStatus(404);
+      }
+      square_project.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a square_project from the DB.
+exports.bulkDestroy = function(req, res) {
+  SquareProject
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.download = function(req, res, next) {
+  SquareProject
+    .findById(req.params.id)
+    .then(function(square_project) {
+      if (!square_project) {
+        return res.sendStatus(404);
+      }
+      console.log(req.query.filename);
+      res.set({
+        "Content-Disposition": "attachment; filename=\"" + req.query.filename +
+          ".xml\"",
+        "Content-Type": "txt/xml"
+      });
+      return res.send(square_project.preproduction);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 8667083..bc43e25 100644 (file)
@@ -1 +1,27 @@
-var _0x7872=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7872[0];var SquareProject=require(_0x7872[2])[_0x7872[1]];exports[_0x7872[3]]=function(_0xe746x2){SquareProject[_0x7872[4]](function(_0xe746x3){onSave(_0xe746x2,_0xe746x3)});SquareProject[_0x7872[5]](function(_0xe746x3){onSave(_0xe746x2,_0xe746x3)});SquareProject[_0x7872[6]](function(_0xe746x3){onRemove(_0xe746x2,_0xe746x3)});};function onSave(_0xe746x2,_0xe746x3,_0xe746x5){_0xe746x2[_0x7872[8]](_0x7872[7],_0xe746x3)}function onRemove(_0xe746x2,_0xe746x3,_0xe746x5){_0xe746x2[_0x7872[8]](_0x7872[9],_0xe746x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SquareProject = require('../../models').SquareProject;
+
+exports.register = function(socket) {
+  SquareProject.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SquareProject.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  SquareProject.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('square_project:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('square_project:remove', doc);
+}
index 5b8fdfa..10a8297 100644 (file)
@@ -1 +1,20 @@
-var _0xfbf6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x67\x65\x74"];_0xfbf6[0];var should=require(_0xfbf6[1]);var app=require(_0xfbf6[2]);var request=require(_0xfbf6[3]);describe(_0xfbf6[4],function(){it(_0xfbf6[5],function(_0x3d47x4){request(app)[_0xfbf6[13]](_0xfbf6[12])[_0xfbf6[11]](200)[_0xfbf6[11]](_0xfbf6[10],/json/)[_0xfbf6[9]](function(_0x3d47x5,_0x3d47x6){if(_0x3d47x5){return _0x3d47x4(_0x3d47x5)};_0x3d47x6[_0xfbf6[8]][_0xfbf6[1]][_0xfbf6[7]][_0xfbf6[6]](Array);_0x3d47x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/square/projects', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/square/projects')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 380b728..e87249c 100644 (file)
@@ -1 +1,21 @@
-var _0xe9af=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xe9af[0];var express=require(_0xe9af[1]);var auth=require(_0xe9af[2]);var controller=require(_0xe9af[3]);var router=express.Router();router[_0xe9af[7]](_0xe9af[4],auth[_0xe9af[5]](),controller[_0xe9af[6]]);router[_0xe9af[7]](_0xe9af[8],auth[_0xe9af[5]](),controller[_0xe9af[9]]);router[_0xe9af[7]](_0xe9af[10],auth[_0xe9af[5]](),controller[_0xe9af[11]]);router[_0xe9af[7]](_0xe9af[12],auth[_0xe9af[5]](),controller[_0xe9af[13]]);router[_0xe9af[16]](_0xe9af[14],auth[_0xe9af[5]](),controller[_0xe9af[15]]);router[_0xe9af[16]](_0xe9af[4],auth[_0xe9af[5]](),controller[_0xe9af[17]]);router[_0xe9af[19]](_0xe9af[12],auth[_0xe9af[5]](),controller[_0xe9af[18]]);router[_0xe9af[20]](_0xe9af[12],auth[_0xe9af[5]](),controller[_0xe9af[18]]);router[_0xe9af[22]](_0xe9af[4],auth[_0xe9af[5]](),controller[_0xe9af[21]]);router[_0xe9af[22]](_0xe9af[12],auth[_0xe9af[5]](),controller[_0xe9af[23]]);module[_0xe9af[24]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sugarcrm_account.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
+router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index e1583a2..758de1a 100644 (file)
@@ -1 +1,97 @@
-var _0xf7dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xf7dc[0];var proxyquire=require(_0xf7dc[2])[_0xf7dc[1]]();var sugarcrmAccountCtrlStub={index:_0xf7dc[3],show:_0xf7dc[4],create:_0xf7dc[5],update:_0xf7dc[6],destroy:_0xf7dc[7]};var routerStub={get:sinon[_0xf7dc[8]](),put:sinon[_0xf7dc[8]](),patch:sinon[_0xf7dc[8]](),post:sinon[_0xf7dc[8]](),delete:sinon[_0xf7dc[8]]()};var sugarcrmAccountIndex=proxyquire(_0xf7dc[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":sugarcrmAccountCtrlStub});describe(_0xf7dc[10],function(){it(_0xf7dc[11],function(){expect(sugarcrmAccountIndex)[_0xf7dc[13]][_0xf7dc[12]](routerStub)});describe(_0xf7dc[14],function(){it(_0xf7dc[15],function(){expect(routerStub[_0xf7dc[21]][_0xf7dc[20]](_0xf7dc[19],_0xf7dc[3]))[_0xf7dc[13]][_0xf7dc[18]][_0xf7dc[17]][_0xf7dc[16]]})});describe(_0xf7dc[22],function(){it(_0xf7dc[23],function(){expect(routerStub[_0xf7dc[21]][_0xf7dc[20]](_0xf7dc[24],_0xf7dc[4]))[_0xf7dc[13]][_0xf7dc[18]][_0xf7dc[17]][_0xf7dc[16]]})});describe(_0xf7dc[25],function(){it(_0xf7dc[26],function(){expect(routerStub[_0xf7dc[27]][_0xf7dc[20]](_0xf7dc[19],_0xf7dc[5]))[_0xf7dc[13]][_0xf7dc[18]][_0xf7dc[17]][_0xf7dc[16]]})});describe(_0xf7dc[28],function(){it(_0xf7dc[29],function(){expect(routerStub[_0xf7dc[30]][_0xf7dc[20]](_0xf7dc[24],_0xf7dc[6]))[_0xf7dc[13]][_0xf7dc[18]][_0xf7dc[17]][_0xf7dc[16]]})});describe(_0xf7dc[31],function(){it(_0xf7dc[29],function(){expect(routerStub[_0xf7dc[32]][_0xf7dc[20]](_0xf7dc[24],_0xf7dc[6]))[_0xf7dc[13]][_0xf7dc[18]][_0xf7dc[17]][_0xf7dc[16]]})});describe(_0xf7dc[33],function(){it(_0xf7dc[34],function(){expect(routerStub[_0xf7dc[35]][_0xf7dc[20]](_0xf7dc[24],_0xf7dc[7]))[_0xf7dc[13]][_0xf7dc[18]][_0xf7dc[17]][_0xf7dc[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var sugarcrmAccountCtrlStub = {
+  index: 'sugarcrmAccountCtrl.index',
+  show: 'sugarcrmAccountCtrl.show',
+  create: 'sugarcrmAccountCtrl.create',
+  update: 'sugarcrmAccountCtrl.update',
+  destroy: 'sugarcrmAccountCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var sugarcrmAccountIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sugarcrm_account.controller': sugarcrmAccountCtrlStub
+});
+
+describe('SugarcrmAccount API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(sugarcrmAccountIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sugarcrm/accounts', function() {
+
+    it('should route to sugarcrmAccount.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'sugarcrmAccountCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'sugarcrmAccountCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sugarcrm/accounts', function() {
+
+    it('should route to sugarcrmAccount.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'sugarcrmAccountCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'sugarcrmAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'sugarcrmAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'sugarcrmAccountCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 6062588..cb7d78d 100644 (file)
@@ -1 +1,259 @@
-var _0x636a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6E\x6F\x64\x65\x2D\x73\x75\x67\x61\x72\x63\x72\x6D\x2D\x63\x6C\x69\x65\x6E\x74","\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x70\x61\x73\x73\x77\x6F\x72\x64","\x69\x6E\x69\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6C\x6F\x67\x69\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x43\x61\x73\x65\x73","\x67\x65\x74\x5F\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x63\x61\x6C\x6C","\x73\x75\x62\x73\x74\x72","\x2F","\x6C\x65\x6E\x67\x74\x68"];_0x636a[0];var _=require(_0x636a[1]);var util=require(_0x636a[2]);var SugarcrmAccount=require(_0x636a[4])[_0x636a[3]];function handleError(_0x6c9fx5,_0x6c9fx6){_0x6c9fx6=_0x6c9fx6||500;return function(_0x6c9fx7){_0x6c9fx5[_0x636a[6]](_0x6c9fx6)[_0x636a[5]](_0x6c9fx7)};}function responseWithResult(_0x6c9fx5,_0x6c9fx6){_0x6c9fx6=_0x6c9fx6||200;return function(_0x6c9fx9){if(_0x6c9fx9){_0x6c9fx5[_0x636a[6]](_0x6c9fx6)[_0x636a[7]](_0x6c9fx9)}};}function handleEntityNotFound(_0x6c9fx5){return function(_0x6c9fx9){if(!_0x6c9fx9){_0x6c9fx5[_0x636a[6]](404)[_0x636a[8]]();return null;};return _0x6c9fx9;}}function saveUpdates(_0x6c9fxc){return function(_0x6c9fx9){return _0x6c9fx9[_0x636a[10]](_0x6c9fxc)[_0x636a[9]](function(_0x6c9fxd){return _0x6c9fxd})}}function removeEntity(_0x6c9fx5){return function(_0x6c9fx9){if(_0x6c9fx9){return _0x6c9fx9[_0x636a[11]]()[_0x636a[9]](function(){_0x6c9fx5[_0x636a[6]](204)[_0x636a[8]]()})}}}exports[_0x636a[12]]=function(_0x6c9fxf,_0x6c9fx5){var _0x6c9fx10=[_0x636a[13],_0x636a[14],_0x636a[15],_0x636a[16]];var _0x6c9fx11=_0x6c9fxf[_0x636a[18]][_0x636a[17]]?parseInt(_0x6c9fxf[_0x636a[18]][_0x636a[17]],10):100;var _0x6c9fx12=_0x6c9fxf[_0x636a[18]][_0x636a[19]]?parseInt(_0x6c9fxf[_0x636a[18]][_0x636a[19]],10):0;var _0x6c9fx13={where:{},limit:_0x6c9fx11,offset:_0x6c9fx12*_0x6c9fx11};_[_0x636a[33]](_0x6c9fxf[_0x636a[18]],function(_0x6c9fx14,_0x6c9fx15){switch(_0x6c9fx15){case _0x636a[17]:;case _0x636a[19]:break ;;case _0x636a[22]:_0x6c9fx13[_0x636a[20]]=util[_0x636a[25]](_0x636a[21],_0x6c9fxf[_0x636a[18]][_0x636a[22]],_0x6c9fxf[_0x636a[18]][_0x636a[23]]||_0x636a[24])||null;break ;;case _0x636a[23]:break ;;case _0x636a[31]:_0x6c9fx13[_0x636a[27]][_0x636a[26]]=[];_0x6c9fx10[_0x636a[30]](function(_0x6c9fx16){var _0x6c9fx17={};_0x6c9fx17[_0x6c9fx16]={$like:_0x636a[28]+_0x6c9fx14+_0x636a[28]};_0x6c9fx13[_0x636a[27]][_0x636a[26]][_0x636a[29]](_0x6c9fx17);});break ;;default:_0x6c9fx13[_0x636a[27]][_0x6c9fx15]={$like:{}};_0x6c9fx13[_0x636a[27]][_0x6c9fx15][_0x636a[32]]=_0x636a[28]+_0x6c9fx14+_0x636a[28];;}});SugarcrmAccount[_0x636a[45]](_0x6c9fx13)[_0x636a[9]](function(_0x6c9fx18){var _0x6c9fx19=Math[_0x636a[37]](_0x6c9fx18[_0x636a[36]]/_0x6c9fx11);var _0x6c9fx1a=_0x6c9fx19>(_0x6c9fx13[_0x636a[38]]+1)?util[_0x636a[25]](_0x636a[39],_0x6c9fxf[_0x636a[40]],_0x6c9fxf[_0x636a[42]][_0x636a[41]],_0x6c9fxf[_0x636a[43]],_0x6c9fx12+1):null;var _0x6c9fx1b=_0x6c9fx12>0?util[_0x636a[25]](_0x636a[39],_0x6c9fxf[_0x636a[40]],_0x6c9fxf[_0x636a[42]][_0x636a[41]],_0x6c9fxf[_0x636a[43]],_0x6c9fx12-1):null;return _0x6c9fx5[_0x636a[6]](200)[_0x636a[5]]({count:_0x6c9fx18[_0x636a[36]],rows:_0x6c9fx18[_0x636a[44]],next_page:_0x6c9fx1a,previous_page:_0x6c9fx1b,total_pages:_0x6c9fx19});})[_0x636a[35]](function(_0x6c9fx7){return _0x6c9fx5[_0x636a[6]](500)[_0x636a[5]]({error:_0x636a[34]})});};exports[_0x636a[46]]=function(_0x6c9fxf,_0x6c9fx5){SugarcrmAccount[_0x636a[49]](_0x6c9fxf[_0x636a[48]][_0x636a[47]])[_0x636a[9]](handleEntityNotFound(_0x6c9fx5))[_0x636a[9]](responseWithResult(_0x6c9fx5))[_0x636a[35]](handleError(_0x6c9fx5))};exports[_0x636a[50]]=function(_0x6c9fxf,_0x6c9fx5){SugarcrmAccount[_0x636a[50]](_0x6c9fxf[_0x636a[51]])[_0x636a[9]](responseWithResult(_0x6c9fx5,201))[_0x636a[35]](handleError(_0x6c9fx5))};exports[_0x636a[52]]=function(_0x6c9fxf,_0x6c9fx5){if(_0x6c9fxf[_0x636a[51]][_0x636a[47]]){delete _0x6c9fxf[_0x636a[51]][_0x636a[47]]};SugarcrmAccount[_0x636a[49]](_0x6c9fxf[_0x636a[48]][_0x636a[47]])[_0x636a[9]](handleEntityNotFound(_0x6c9fx5))[_0x636a[9]](saveUpdates(_0x6c9fxf[_0x636a[51]]))[_0x636a[9]](responseWithResult(_0x6c9fx5))[_0x636a[35]](handleError(_0x6c9fx5));};exports[_0x636a[11]]=function(_0x6c9fxf,_0x6c9fx5){SugarcrmAccount[_0x636a[49]](_0x6c9fxf[_0x636a[48]][_0x636a[47]])[_0x636a[9]](handleEntityNotFound(_0x6c9fx5))[_0x636a[9]](removeEntity(_0x6c9fx5))[_0x636a[35]](handleError(_0x6c9fx5))};exports[_0x636a[53]]=function(_0x6c9fxf,_0x6c9fx5){SugarcrmAccount[_0x636a[49]](_0x6c9fxf[_0x636a[48]][_0x636a[47]])[_0x636a[9]](handleEntityNotFound(_0x6c9fx5))[_0x636a[9]](function(_0x6c9fx1c){var _0x6c9fx1d=require(_0x636a[54]);_0x6c9fx1d[_0x636a[57]]({apiURL:stripTrailingSlash(_0x6c9fx1c[_0x636a[16]])+_0x636a[55],login:_0x6c9fx1c[_0x636a[15]],passwd:_0x6c9fx1c[_0x636a[56]]});_0x6c9fx1d[_0x636a[59]](function(_0x6c9fx1e){if(!_0x6c9fx1e){return _0x6c9fx5[_0x636a[58]](400)};return _0x6c9fx5[_0x636a[58]](200);});})[_0x636a[35]](handleError(_0x6c9fx5))};exports[_0x636a[60]]=function(_0x6c9fxf,_0x6c9fx5){SugarcrmAccount[_0x636a[11]]({where:{id:_0x6c9fxf[_0x636a[18]][_0x636a[47]]},individualHooks:true})[_0x636a[9]](function(){return _0x6c9fx5[_0x636a[58]](204)})[_0x636a[35]](function(_0x6c9fx7){return handleError(_0x6c9fx5,_0x6c9fx7)})};exports[_0x636a[61]]=function(_0x6c9fxf,_0x6c9fx5){var _0x6c9fx1f={};_0x6c9fx1f[_0x6c9fxf[_0x636a[48]][_0x636a[62]]]=_0x6c9fxf[_0x636a[51]][_0x636a[63]];SugarcrmAccount[_0x636a[45]]({where:_0x6c9fx1f})[_0x636a[9]](function(_0x6c9fx18){if(_0x6c9fx18[_0x636a[36]]){return _0x6c9fx5[_0x636a[6]](200)[_0x636a[5]]({isValid:false,value:_0x6c9fxf[_0x636a[51]][_0x636a[63]]})};return _0x6c9fx5[_0x636a[6]](200)[_0x636a[5]]({isValid:true,value:_0x6c9fxf[_0x636a[51]][_0x636a[63]]});})[_0x636a[35]](function(_0x6c9fx7){return handleError(_0x6c9fx5,_0x6c9fx7)});};exports[_0x636a[64]]=function(_0x6c9fxf,_0x6c9fx5){var _0x6c9fx1d=require(_0x636a[54]);SugarcrmAccount[_0x636a[49]](_0x6c9fxf[_0x636a[48]][_0x636a[47]])[_0x636a[9]](handleEntityNotFound(_0x6c9fx5))[_0x636a[9]](function(_0x6c9fx1c){_0x6c9fx1d[_0x636a[57]]({apiURL:stripTrailingSlash(_0x6c9fx1c[_0x636a[16]])+_0x636a[55],login:_0x6c9fx1c[_0x636a[15]],passwd:_0x6c9fx1c[_0x636a[56]]});_0x6c9fx1d[_0x636a[59]](function(_0x6c9fx1e){if(!_0x6c9fx1e){return _0x6c9fx5[_0x636a[58]](400)};var _0x6c9fx20={session:_0x6c9fx1e,module_name:_0x636a[65]};_0x6c9fx1d[_0x636a[68]](_0x636a[66],_0x6c9fx20,function(_0x6c9fx18,_0x6c9fx7){if(_0x6c9fx7){return _0x6c9fx5[_0x636a[58]](400)};return _0x6c9fx5[_0x636a[6]](200)[_0x636a[5]](_0x6c9fx18[_0x636a[67]]);});});})[_0x636a[35]](handleError(_0x6c9fx5));};function stripTrailingSlash(_0x6c9fx22){if(_0x6c9fx22[_0x636a[69]](-1)===_0x636a[70]){return _0x6c9fx22[_0x636a[69]](0,_0x6c9fx22[_0x636a[71]]-1)};return _0x6c9fx22;}
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sugarcrm/accounts              ->  index
+ * POST    /api/sugarcrm/accounts              ->  create
+ * GET     /api/sugarcrm/accounts/:id          ->  show
+ * PUT     /api/sugarcrm/accounts/:id          ->  update
+ * DELETE  /api/sugarcrm/accounts/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var util = require('util');
+
+var SugarcrmAccount = require('../../models').SugarcrmAccount;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SugarcrmAccounts
+exports.index = function(req, res) {
+  var attributes = ['description', 'name', 'username', 'remoteUri'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  SugarcrmAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+}
+
+// Gets a single SugarcrmAccount from the DB
+exports.show = function(req, res) {
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SugarcrmAccount in the DB
+exports.create = function(req, res) {
+  SugarcrmAccount.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SugarcrmAccount in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SugarcrmAccount from the DB
+exports.destroy = function(req, res) {
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.checkAccount = function(req, res) {
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var sugar = require('node-sugarcrm-client');
+      sugar.init({
+        apiURL: stripTrailingSlash(account.remoteUri) + "/service/v4_1/rest.php",
+        login: account.username,
+        passwd: account.password
+      });
+      sugar.login(function(sessionId) {
+        if (!sessionId) {
+          return res.sendStatus(400);
+        }
+        return res.sendStatus(200);
+      });
+    })
+    .catch(handleError(res));
+}
+
+exports.bulkDestroy = function(req, res) {
+  SugarcrmAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.accountValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  SugarcrmAccount
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getFields = function(req, res) {
+  var sugar = require('node-sugarcrm-client');
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      sugar.init({
+        apiURL: stripTrailingSlash(account.remoteUri) + "/service/v4_1/rest.php",
+        login: account.username,
+        passwd: account.password
+      });
+      sugar.login(function(sessionId) {
+        if (!sessionId) {
+          return res.sendStatus(400);
+        }
+        var params = {
+          session: sessionId,
+          module_name: "Cases"
+        };
+        sugar.call("get_module_fields", params, function(result, err) {
+          if (err) {
+            return res.sendStatus(400);
+          }
+          return res.status(200).send(result.module_fields);
+        });
+      });
+    })
+    .catch(handleError(res));
+};
+
+function stripTrailingSlash(str) {
+  if (str.substr(-1) === '/') {
+    return str.substr(0, str.length - 1);
+  }
+  return str;
+}
index 4f02052..859bf6d 100644 (file)
@@ -1 +1,24 @@
-var _0x4c42=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4c42[0];var SugarcrmAccount=require(_0x4c42[2])[_0x4c42[1]];exports[_0x4c42[3]]=function(_0xd372x2){SugarcrmAccount[_0x4c42[4]](function(_0xd372x3){onSave(_0xd372x2,_0xd372x3)});SugarcrmAccount[_0x4c42[5]](function(_0xd372x3){onRemove(_0xd372x2,_0xd372x3)});};function onSave(_0xd372x2,_0xd372x3,_0xd372x5){_0xd372x2[_0x4c42[7]](_0x4c42[6],_0xd372x3)}function onRemove(_0xd372x2,_0xd372x3,_0xd372x5){_0xd372x2[_0x4c42[7]](_0x4c42[8],_0xd372x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SugarcrmAccount = require('../../models').SugarcrmAccount;
+
+exports.register = function(socket) {
+  SugarcrmAccount.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SugarcrmAccount.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sugarcrm_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sugarcrm_account:remove', doc);
+}
index 07b97f4..90111bf 100644 (file)
@@ -1 +1,18 @@
-var _0x6746=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6746[0];var express=require(_0x6746[1]);var auth=require(_0x6746[2]);var controller=require(_0x6746[3]);var router=express.Router();router[_0x6746[7]](_0x6746[4],auth[_0x6746[5]](),controller[_0x6746[6]]);router[_0x6746[7]](_0x6746[8],auth[_0x6746[5]](),controller[_0x6746[9]]);router[_0x6746[11]](_0x6746[4],auth[_0x6746[5]](),controller[_0x6746[10]]);router[_0x6746[13]](_0x6746[8],auth[_0x6746[5]](),controller[_0x6746[12]]);router[_0x6746[11]](_0x6746[14],auth[_0x6746[5]](),controller[_0x6746[15]]);router[_0x6746[16]](_0x6746[8],auth[_0x6746[5]](),controller[_0x6746[12]]);router[_0x6746[18]](_0x6746[8],auth[_0x6746[5]](),controller[_0x6746[17]]);module[_0x6746[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sugarcrm_configuration.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index 1b2ca15..ba1b022 100644 (file)
@@ -1 +1,97 @@
-var _0x4325=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x4325[0];var proxyquire=require(_0x4325[2])[_0x4325[1]]();var sugarcrmConfigurationCtrlStub={index:_0x4325[3],show:_0x4325[4],create:_0x4325[5],update:_0x4325[6],destroy:_0x4325[7]};var routerStub={get:sinon[_0x4325[8]](),put:sinon[_0x4325[8]](),patch:sinon[_0x4325[8]](),post:sinon[_0x4325[8]](),delete:sinon[_0x4325[8]]()};var sugarcrmConfigurationIndex=proxyquire(_0x4325[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":sugarcrmConfigurationCtrlStub});describe(_0x4325[10],function(){it(_0x4325[11],function(){expect(sugarcrmConfigurationIndex)[_0x4325[13]][_0x4325[12]](routerStub)});describe(_0x4325[14],function(){it(_0x4325[15],function(){expect(routerStub[_0x4325[21]][_0x4325[20]](_0x4325[19],_0x4325[3]))[_0x4325[13]][_0x4325[18]][_0x4325[17]][_0x4325[16]]})});describe(_0x4325[22],function(){it(_0x4325[23],function(){expect(routerStub[_0x4325[21]][_0x4325[20]](_0x4325[24],_0x4325[4]))[_0x4325[13]][_0x4325[18]][_0x4325[17]][_0x4325[16]]})});describe(_0x4325[25],function(){it(_0x4325[26],function(){expect(routerStub[_0x4325[27]][_0x4325[20]](_0x4325[19],_0x4325[5]))[_0x4325[13]][_0x4325[18]][_0x4325[17]][_0x4325[16]]})});describe(_0x4325[28],function(){it(_0x4325[29],function(){expect(routerStub[_0x4325[30]][_0x4325[20]](_0x4325[24],_0x4325[6]))[_0x4325[13]][_0x4325[18]][_0x4325[17]][_0x4325[16]]})});describe(_0x4325[31],function(){it(_0x4325[29],function(){expect(routerStub[_0x4325[32]][_0x4325[20]](_0x4325[24],_0x4325[6]))[_0x4325[13]][_0x4325[18]][_0x4325[17]][_0x4325[16]]})});describe(_0x4325[33],function(){it(_0x4325[34],function(){expect(routerStub[_0x4325[35]][_0x4325[20]](_0x4325[24],_0x4325[7]))[_0x4325[13]][_0x4325[18]][_0x4325[17]][_0x4325[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var sugarcrmConfigurationCtrlStub = {
+  index: 'sugarcrmConfigurationCtrl.index',
+  show: 'sugarcrmConfigurationCtrl.show',
+  create: 'sugarcrmConfigurationCtrl.create',
+  update: 'sugarcrmConfigurationCtrl.update',
+  destroy: 'sugarcrmConfigurationCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var sugarcrmConfigurationIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sugarcrm_configuration.controller': sugarcrmConfigurationCtrlStub
+});
+
+describe('SugarcrmConfiguration API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(sugarcrmConfigurationIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sugarcrm/configurations', function() {
+
+    it('should route to sugarcrmConfiguration.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'sugarcrmConfigurationCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sugarcrm/configurations', function() {
+
+    it('should route to sugarcrmConfiguration.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'sugarcrmConfigurationCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 33efb46..5918283 100644 (file)
@@ -1 +1,145 @@
-var _0x4e46=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0x4e46[0];var _=require(_0x4e46[1]);var SugarcrmConfiguration=require(_0x4e46[3])[_0x4e46[2]];var SugarcrmField=require(_0x4e46[3])[_0x4e46[4]];function handleError(_0x5534x5,_0x5534x6){_0x5534x6=_0x5534x6||500;return function(_0x5534x7){_0x5534x5[_0x4e46[6]](_0x5534x6)[_0x4e46[5]](_0x5534x7)};}function responseWithResult(_0x5534x5,_0x5534x6){_0x5534x6=_0x5534x6||200;return function(_0x5534x9){if(_0x5534x9){_0x5534x5[_0x4e46[6]](_0x5534x6)[_0x4e46[7]](_0x5534x9)}};}function handleEntityNotFound(_0x5534x5){return function(_0x5534x9){if(!_0x5534x9){_0x5534x5[_0x4e46[6]](404)[_0x4e46[8]]();return null;};return _0x5534x9;}}function saveUpdates(_0x5534xc){return function(_0x5534x9){return _0x5534x9[_0x4e46[10]](_0x5534xc)[_0x4e46[9]](function(_0x5534xd){return _0x5534xd})}}function removeEntity(_0x5534x5){return function(_0x5534x9){if(_0x5534x9){return _0x5534x9[_0x4e46[11]]()[_0x4e46[9]](function(){_0x5534x5[_0x4e46[6]](204)[_0x4e46[8]]()})}}}exports[_0x4e46[12]]=function(_0x5534xf,_0x5534x5){SugarcrmConfiguration[_0x4e46[15]]({where:_0x5534xf[_0x4e46[14]]})[_0x4e46[9]](responseWithResult(_0x5534x5))[_0x4e46[13]](handleError(_0x5534x5))};exports[_0x4e46[16]]=function(_0x5534xf,_0x5534x5){SugarcrmConfiguration[_0x4e46[22]]({where:{id:_0x5534xf[_0x4e46[18]][_0x4e46[17]]},include:[{model:SugarcrmField,as:_0x4e46[19]},{model:SugarcrmField,as:_0x4e46[20]},{model:SugarcrmField,as:_0x4e46[21]}]})[_0x4e46[9]](handleEntityNotFound(_0x5534x5))[_0x4e46[9]](responseWithResult(_0x5534x5))[_0x4e46[13]](handleError(_0x5534x5))};exports[_0x4e46[23]]=function(_0x5534xf,_0x5534x5){SugarcrmConfiguration[_0x4e46[23]](_0x5534xf[_0x4e46[24]])[_0x4e46[9]](responseWithResult(_0x5534x5,201))[_0x4e46[13]](handleError(_0x5534x5))};exports[_0x4e46[25]]=function(_0x5534xf,_0x5534x5){if(_0x5534xf[_0x4e46[24]][_0x4e46[17]]){delete _0x5534xf[_0x4e46[24]][_0x4e46[17]]};SugarcrmConfiguration[_0x4e46[26]](_0x5534xf[_0x4e46[18]][_0x4e46[17]])[_0x4e46[9]](handleEntityNotFound(_0x5534x5))[_0x4e46[9]](saveUpdates(_0x5534xf[_0x4e46[24]]))[_0x4e46[9]](responseWithResult(_0x5534x5))[_0x4e46[13]](handleError(_0x5534x5));};exports[_0x4e46[11]]=function(_0x5534xf,_0x5534x5){SugarcrmConfiguration[_0x4e46[26]](_0x5534xf[_0x4e46[18]][_0x4e46[17]])[_0x4e46[9]](handleEntityNotFound(_0x5534x5))[_0x4e46[9]](removeEntity(_0x5534x5))[_0x4e46[13]](handleError(_0x5534x5))};exports[_0x4e46[27]]=function(_0x5534xf,_0x5534x5,_0x5534x10){var _0x5534x11;SugarcrmConfiguration[_0x4e46[26]](_0x5534xf[_0x4e46[18]][_0x4e46[17]])[_0x4e46[9]](handleEntityNotFound(_0x5534x5))[_0x4e46[9]](function(_0x5534x14){_0x5534x11=_0x5534x14;return SugarcrmField[_0x4e46[23]](_0x5534xf[_0x4e46[24]]);})[_0x4e46[9]](function(_0x5534x13){switch(_0x5534xf[_0x4e46[18]][_0x4e46[35]]){case _0x4e46[30]:return [_0x5534x11[_0x4e46[29]](_0x5534x13),_0x5534x13];;case _0x4e46[32]:return [_0x5534x11[_0x4e46[31]](_0x5534x13),_0x5534x13];;case _0x4e46[34]:return [_0x5534x11[_0x4e46[33]](_0x5534x13),_0x5534x13];;}})[_0x4e46[28]](function(_0x5534x12,_0x5534x13){return _0x5534x5[_0x4e46[6]](201)[_0x4e46[7]](_0x5534x13)})[_0x4e46[13]](handleError(_0x5534x5));};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sugarcrm/configurations              ->  index
+ * POST    /api/sugarcrm/configurations              ->  create
+ * GET     /api/sugarcrm/configurations/:id          ->  show
+ * PUT     /api/sugarcrm/configurations/:id          ->  update
+ * DELETE  /api/sugarcrm/configurations/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var SugarcrmConfiguration = require('../../models').SugarcrmConfiguration;
+var SugarcrmField = require('../../models').SugarcrmField;
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SugarcrmConfigurations
+exports.index = function(req, res) {
+  SugarcrmConfiguration.findAll({
+      where: req.query
+    })
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SugarcrmConfiguration from the DB
+exports.show = function(req, res) {
+  SugarcrmConfiguration.find({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: SugarcrmField,
+        as: 'Subject'
+      }, {
+        model: SugarcrmField,
+        as: 'Description'
+      }, {
+        model: SugarcrmField,
+        as: 'Field'
+      }]
+    })
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SugarcrmConfiguration in the DB
+exports.create = function(req, res) {
+  SugarcrmConfiguration.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SugarcrmConfiguration in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SugarcrmConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SugarcrmConfiguration from the DB
+exports.destroy = function(req, res) {
+  SugarcrmConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.addConfigurationField = function(req, res, next) {
+  var sugarcrmConfiguration;
+  SugarcrmConfiguration
+    .findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(sugarcrm_configuration) {
+      sugarcrmConfiguration = sugarcrm_configuration;
+      return SugarcrmField.create(req.body)
+    })
+    .then(function(sugarcrmField) {
+      switch (req.params.type) {
+        case 'subject':
+          return [sugarcrmConfiguration.addSubject(sugarcrmField), sugarcrmField];
+        case 'description':
+          return [sugarcrmConfiguration.addDescription(sugarcrmField), sugarcrmField];
+        case 'field':
+          return [sugarcrmConfiguration.addField(sugarcrmField), sugarcrmField];
+      }
+    })
+    .spread(function(data, sugarcrmField) {
+      return res.status(201).json(sugarcrmField);
+    })
+    .catch(handleError(res));
+};
index d6ef4f7..c4464da 100644 (file)
@@ -1 +1,24 @@
-var _0x6566=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x6566[0];var SugarcrmConfiguration=require(_0x6566[2])[_0x6566[1]];exports[_0x6566[3]]=function(_0x6750x2){SugarcrmConfiguration[_0x6566[4]](function(_0x6750x3){onSave(_0x6750x2,_0x6750x3)});SugarcrmConfiguration[_0x6566[5]](function(_0x6750x3){onRemove(_0x6750x2,_0x6750x3)});};function onSave(_0x6750x2,_0x6750x3,_0x6750x5){_0x6750x2[_0x6566[7]](_0x6566[6],_0x6750x3)}function onRemove(_0x6750x2,_0x6750x3,_0x6750x5){_0x6750x2[_0x6566[7]](_0x6566[8],_0x6750x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SugarcrmConfiguration = require('../../models').SugarcrmConfiguration;
+
+exports.register = function(socket) {
+  SugarcrmConfiguration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SugarcrmConfiguration.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sugarcrm_configuration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sugarcrm_configuration:remove', doc);
+}
index 59216ec..edc0dc9 100644 (file)
@@ -1 +1,18 @@
-var _0xdd88=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdd88[0];var express=require(_0xdd88[1]);var auth=require(_0xdd88[2]);var controller=require(_0xdd88[3]);var router=express.Router();router[_0xdd88[7]](_0xdd88[4],auth[_0xdd88[5]](),controller[_0xdd88[6]]);router[_0xdd88[7]](_0xdd88[8],auth[_0xdd88[5]](),controller[_0xdd88[9]]);router[_0xdd88[11]](_0xdd88[4],auth[_0xdd88[5]](),controller[_0xdd88[10]]);router[_0xdd88[13]](_0xdd88[8],auth[_0xdd88[5]](),controller[_0xdd88[12]]);router[_0xdd88[14]](_0xdd88[8],auth[_0xdd88[5]](),controller[_0xdd88[12]]);router[_0xdd88[16]](_0xdd88[8],auth[_0xdd88[5]](),controller[_0xdd88[15]]);module[_0xdd88[17]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sugarcrm_field.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index 8ddd6b5..f8a20f7 100644 (file)
@@ -1 +1,97 @@
-var _0x4b8c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x4b8c[0];var proxyquire=require(_0x4b8c[2])[_0x4b8c[1]]();var sugarcrmFieldCtrlStub={index:_0x4b8c[3],show:_0x4b8c[4],create:_0x4b8c[5],update:_0x4b8c[6],destroy:_0x4b8c[7]};var routerStub={get:sinon[_0x4b8c[8]](),put:sinon[_0x4b8c[8]](),patch:sinon[_0x4b8c[8]](),post:sinon[_0x4b8c[8]](),delete:sinon[_0x4b8c[8]]()};var sugarcrmFieldIndex=proxyquire(_0x4b8c[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":sugarcrmFieldCtrlStub});describe(_0x4b8c[10],function(){it(_0x4b8c[11],function(){expect(sugarcrmFieldIndex)[_0x4b8c[13]][_0x4b8c[12]](routerStub)});describe(_0x4b8c[14],function(){it(_0x4b8c[15],function(){expect(routerStub[_0x4b8c[21]][_0x4b8c[20]](_0x4b8c[19],_0x4b8c[3]))[_0x4b8c[13]][_0x4b8c[18]][_0x4b8c[17]][_0x4b8c[16]]})});describe(_0x4b8c[22],function(){it(_0x4b8c[23],function(){expect(routerStub[_0x4b8c[21]][_0x4b8c[20]](_0x4b8c[24],_0x4b8c[4]))[_0x4b8c[13]][_0x4b8c[18]][_0x4b8c[17]][_0x4b8c[16]]})});describe(_0x4b8c[25],function(){it(_0x4b8c[26],function(){expect(routerStub[_0x4b8c[27]][_0x4b8c[20]](_0x4b8c[19],_0x4b8c[5]))[_0x4b8c[13]][_0x4b8c[18]][_0x4b8c[17]][_0x4b8c[16]]})});describe(_0x4b8c[28],function(){it(_0x4b8c[29],function(){expect(routerStub[_0x4b8c[30]][_0x4b8c[20]](_0x4b8c[24],_0x4b8c[6]))[_0x4b8c[13]][_0x4b8c[18]][_0x4b8c[17]][_0x4b8c[16]]})});describe(_0x4b8c[31],function(){it(_0x4b8c[29],function(){expect(routerStub[_0x4b8c[32]][_0x4b8c[20]](_0x4b8c[24],_0x4b8c[6]))[_0x4b8c[13]][_0x4b8c[18]][_0x4b8c[17]][_0x4b8c[16]]})});describe(_0x4b8c[33],function(){it(_0x4b8c[34],function(){expect(routerStub[_0x4b8c[35]][_0x4b8c[20]](_0x4b8c[24],_0x4b8c[7]))[_0x4b8c[13]][_0x4b8c[18]][_0x4b8c[17]][_0x4b8c[16]]})});});
\ No newline at end of file
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var sugarcrmFieldCtrlStub = {
+  index: 'sugarcrmFieldCtrl.index',
+  show: 'sugarcrmFieldCtrl.show',
+  create: 'sugarcrmFieldCtrl.create',
+  update: 'sugarcrmFieldCtrl.update',
+  destroy: 'sugarcrmFieldCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var sugarcrmFieldIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sugarcrm_field.controller': sugarcrmFieldCtrlStub
+});
+
+describe('SugarcrmField API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(sugarcrmFieldIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sugarcrm/fields', function() {
+
+    it('should route to sugarcrmField.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'sugarcrmFieldCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'sugarcrmFieldCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sugarcrm/fields', function() {
+
+    it('should route to sugarcrmField.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'sugarcrmFieldCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'sugarcrmFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'sugarcrmFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'sugarcrmFieldCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
index 2fce438..eb6fe3d 100644 (file)
@@ -1 +1,104 @@
-var _0x3a66=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0x3a66[0];var _=require(_0x3a66[1]);var SugarcrmField=require(_0x3a66[3])[_0x3a66[2]];function handleError(_0x6b70x4,_0x6b70x5){_0x6b70x5=_0x6b70x5||500;return function(_0x6b70x6){_0x6b70x4[_0x3a66[5]](_0x6b70x5)[_0x3a66[4]](_0x6b70x6)};}function responseWithResult(_0x6b70x4,_0x6b70x5){_0x6b70x5=_0x6b70x5||200;return function(_0x6b70x8){if(_0x6b70x8){_0x6b70x4[_0x3a66[5]](_0x6b70x5)[_0x3a66[6]](_0x6b70x8)}};}function handleEntityNotFound(_0x6b70x4){return function(_0x6b70x8){if(!_0x6b70x8){_0x6b70x4[_0x3a66[5]](404)[_0x3a66[7]]();return null;};return _0x6b70x8;}}function saveUpdates(_0x6b70xb){return function(_0x6b70x8){return _0x6b70x8[_0x3a66[9]](_0x6b70xb)[_0x3a66[8]](function(_0x6b70xc){return _0x6b70xc})}}function removeEntity(_0x6b70x4){return function(_0x6b70x8){if(_0x6b70x8){return _0x6b70x8[_0x3a66[10]]()[_0x3a66[8]](function(){_0x6b70x4[_0x3a66[5]](204)[_0x3a66[7]]()})}}}exports[_0x3a66[11]]=function(_0x6b70xe,_0x6b70x4){SugarcrmField[_0x3a66[13]]()[_0x3a66[8]](responseWithResult(_0x6b70x4))[_0x3a66[12]](handleError(_0x6b70x4))};exports[_0x3a66[14]]=function(_0x6b70xe,_0x6b70x4){SugarcrmField[_0x3a66[17]](_0x6b70xe[_0x3a66[16]][_0x3a66[15]])[_0x3a66[8]](handleEntityNotFound(_0x6b70x4))[_0x3a66[8]](responseWithResult(_0x6b70x4))[_0x3a66[12]](handleError(_0x6b70x4))};exports[_0x3a66[18]]=function(_0x6b70xe,_0x6b70x4){SugarcrmField[_0x3a66[18]](_0x6b70xe[_0x3a66[19]])[_0x3a66[8]](responseWithResult(_0x6b70x4,201))[_0x3a66[12]](handleError(_0x6b70x4))};exports[_0x3a66[20]]=function(_0x6b70xe,_0x6b70x4){if(_0x6b70xe[_0x3a66[19]][_0x3a66[15]]){delete _0x6b70xe[_0x3a66[19]][_0x3a66[15]]};SugarcrmField[_0x3a66[17]](_0x6b70xe[_0x3a66[16]][_0x3a66[15]])[_0x3a66[8]](handleEntityNotFound(_0x6b70x4))[_0x3a66[8]](saveUpdates(_0x6b70xe[_0x3a66[19]]))[_0x3a66[8]](responseWithResult(_0x6b70x4))[_0x3a66[12]](handleError(_0x6b70x4));};exports[_0x3a66[10]]=function(_0x6b70xe,_0x6b70x4){SugarcrmField[_0x3a66[17]](_0x6b70xe[_0x3a66[16]][_0x3a66[15]])[_0x3a66[8]](handleEntityNotFound(_0x6b70x4))[_0x3a66[8]](removeEntity(_0x6b70x4))[_0x3a66[12]](handleError(_0x6b70x4))};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sugarcrm/fields              ->  index
+ * POST    /api/sugarcrm/fields              ->  create
+ * GET     /api/sugarcrm/fields/:id          ->  show
+ * PUT     /api/sugarcrm/fields/:id          ->  update
+ * DELETE  /api/sugarcrm/fields/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var SugarcrmField = require('../../models').SugarcrmField;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) { 
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SugarcrmFields
+exports.index = function(req, res) {
+  SugarcrmField.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SugarcrmField from the DB
+exports.show = function(req, res) {
+  SugarcrmField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SugarcrmField in the DB
+exports.create = function(req, res) {
+  SugarcrmField.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SugarcrmField in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SugarcrmField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SugarcrmField from the DB
+exports.destroy = function(req, res) {
+  SugarcrmField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
index de0ecfe..bcc89cc 100644 (file)
@@ -1 +1,24 @@
-var _0x9824=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9824[0];var SugarcrmField=require(_0x9824[2])[_0x9824[1]];exports[_0x9824[3]]=function(_0x5f7dx2){SugarcrmField[_0x9824[4]](function(_0x5f7dx3){onSave(_0x5f7dx2,_0x5f7dx3)});SugarcrmField[_0x9824[5]](function(_0x5f7dx3){onRemove(_0x5f7dx2,_0x5f7dx3)});};function onSave(_0x5f7dx2,_0x5f7dx3,_0x5f7dx5){_0x5f7dx2[_0x9824[7]](_0x9824[6],_0x5f7dx3)}function onRemove(_0x5f7dx2,_0x5f7dx3,_0x5f7dx5){_0x5f7dx2[_0x9824[7]](_0x9824[8],_0x5f7dx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SugarcrmField = require('../../models').SugarcrmField;
+
+exports.register = function(socket) {
+  SugarcrmField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SugarcrmField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sugarcrm_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sugarcrm_field:remove', doc);
+}
index df2a66d..10661b9 100644 (file)
@@ -1 +1,18 @@
-var _0x415c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x61\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x74\x61\x67\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x415c[0];var express=require(_0x415c[1]);var controller=require(_0x415c[2]);var auth=require(_0x415c[3]);var router=express.Router();router[_0x415c[7]](_0x415c[4],auth[_0x415c[5]](),controller[_0x415c[6]]);router[_0x415c[7]](_0x415c[8],auth[_0x415c[5]](),controller[_0x415c[9]]);router[_0x415c[11]](_0x415c[4],auth[_0x415c[5]](),controller[_0x415c[10]]);router[_0x415c[11]](_0x415c[12],auth[_0x415c[5]](),controller[_0x415c[13]]);router[_0x415c[15]](_0x415c[8],auth[_0x415c[5]](),controller[_0x415c[14]]);router[_0x415c[16]](_0x415c[8],auth[_0x415c[5]](),controller[_0x415c[14]]);router[_0x415c[18]](_0x415c[4],auth[_0x415c[5]](),controller[_0x415c[17]]);router[_0x415c[18]](_0x415c[8],auth[_0x415c[5]](),controller[_0x415c[19]]);module[_0x415c[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./tag.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.tagValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index ab364cb..d7ba837 100644 (file)
@@ -1 +1,210 @@
-var _0x389d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x54\x61\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x6C\x6F\x67","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x74\x61\x67\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x54\x41\x47","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x389d[0];var _=require(_0x389d[1]);var Tag=require(_0x389d[3])[_0x389d[2]];var util=require(_0x389d[4]);exports[_0x389d[5]]=function(_0xdb3dx4,_0xdb3dx5){var _0xdb3dx6=[_0x389d[6],_0x389d[7]];var _0xdb3dx7=_0xdb3dx4[_0x389d[9]][_0x389d[8]]?parseInt(_0xdb3dx4[_0x389d[9]][_0x389d[8]],10):100;var _0xdb3dx8=_0xdb3dx4[_0x389d[9]][_0x389d[10]]?parseInt(_0xdb3dx4[_0x389d[9]][_0x389d[10]],10):0;var _0xdb3dx9={where:{},limit:_0xdb3dx7,offset:_0xdb3dx8*_0xdb3dx7};_[_0x389d[24]](_0xdb3dx4[_0x389d[9]],function(_0xdb3dxa,_0xdb3dxb){switch(_0xdb3dxb){case _0x389d[8]:;case _0x389d[10]:break ;;case _0x389d[13]:_0xdb3dx9[_0x389d[11]]=util[_0x389d[16]](_0x389d[12],_0xdb3dx4[_0x389d[9]][_0x389d[13]],_0xdb3dx4[_0x389d[9]][_0x389d[14]]||_0x389d[15])||null;break ;;case _0x389d[14]:break ;;case _0x389d[22]:_0xdb3dx9[_0x389d[18]][_0x389d[17]]=[];_0xdb3dx6[_0x389d[21]](function(_0xdb3dxc){var _0xdb3dxd={};_0xdb3dxd[_0xdb3dxc]={$like:_0x389d[19]+_0xdb3dxa+_0x389d[19]};_0xdb3dx9[_0x389d[18]][_0x389d[17]][_0x389d[20]](_0xdb3dxd);});break ;;default:_0xdb3dx9[_0x389d[18]][_0xdb3dxb]={$like:{}};_0xdb3dx9[_0x389d[18]][_0xdb3dxb][_0x389d[23]]=_0x389d[19]+_0xdb3dxa+_0x389d[19];;}});console[_0x389d[25]](_0xdb3dx9);Tag[_0x389d[40]](_0xdb3dx9)[_0x389d[39]](function(_0xdb3dxf){var _0xdb3dx10=Math[_0x389d[31]](_0xdb3dxf[_0x389d[30]]/_0xdb3dx7);var _0xdb3dx11=_0xdb3dx10>(_0xdb3dx9[_0x389d[32]]+1)?util[_0x389d[16]](_0x389d[33],_0xdb3dx4[_0x389d[34]],_0xdb3dx4[_0x389d[36]][_0x389d[35]],_0xdb3dx4[_0x389d[37]],_0xdb3dx8+1):null;var _0xdb3dx12=_0xdb3dx8>0?util[_0x389d[16]](_0x389d[33],_0xdb3dx4[_0x389d[34]],_0xdb3dx4[_0x389d[36]][_0x389d[35]],_0xdb3dx4[_0x389d[37]],_0xdb3dx8-1):null;_0xdb3dx5[_0x389d[28]](200)[_0x389d[27]]({count:_0xdb3dxf[_0x389d[30]],rows:_0xdb3dxf[_0x389d[38]],next_page:_0xdb3dx11,previous_page:_0xdb3dx12,total_pages:_0xdb3dx10});})[_0x389d[29]](function(_0xdb3dxe){_0xdb3dx5[_0x389d[28]](500)[_0x389d[27]]({error:_0x389d[26]})});};exports[_0x389d[41]]=function(_0xdb3dx4,_0xdb3dx5){console[_0x389d[25]](_0xdb3dx4[_0x389d[42]]);Tag[_0x389d[44]]({where:{name:_0xdb3dx4[_0x389d[42]][_0x389d[6]]}})[_0x389d[39]](function(_0xdb3dx13){if(!_0xdb3dx13){return _0xdb3dx5[_0x389d[43]](404)};return _0xdb3dx5[_0x389d[27]](_0xdb3dx13);})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)});};exports[_0x389d[45]]=function(_0xdb3dx4,_0xdb3dx5){Tag[_0x389d[48]](_0xdb3dx4[_0x389d[47]][_0x389d[46]])[_0x389d[39]](function(_0xdb3dx14){if(!_0xdb3dx14){return _0xdb3dx5[_0x389d[43]](404)};return _0xdb3dx5[_0x389d[27]](_0xdb3dx14);})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)})};exports[_0x389d[49]]=function(_0xdb3dx4,_0xdb3dx5){Tag[_0x389d[49]](_0xdb3dx4[_0x389d[42]])[_0x389d[39]](function(_0xdb3dx14){return _0xdb3dx5[_0x389d[28]](201)[_0x389d[27]](_0xdb3dx14)})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)})};exports[_0x389d[50]]=function(_0xdb3dx4,_0xdb3dx5){Tag[_0x389d[44]]({where:{name:_0xdb3dx4[_0x389d[42]][_0x389d[6]],id:{$ne:_0xdb3dx4[_0x389d[42]][_0x389d[46]]}}})[_0x389d[39]](function(_0xdb3dx13){if(!_0xdb3dx13){return _0xdb3dx5[_0x389d[43]](404)};if(_0xdb3dx13[_0x389d[51]]>0){return _0xdb3dx5[_0x389d[28]](500)[_0x389d[27]]({message:_0x389d[52]})};if(_0xdb3dx4[_0x389d[42]][_0x389d[46]]){delete _0xdb3dx4[_0x389d[42]][_0x389d[46]]};Tag[_0x389d[55]]({where:{id:_0xdb3dx4[_0x389d[47]][_0x389d[46]]}})[_0x389d[39]](function(_0xdb3dx14){if(!_0xdb3dx14){return _0xdb3dx5[_0x389d[43]](404)};var _0xdb3dx15=_[_0x389d[53]](_0xdb3dx14,_0xdb3dx4[_0x389d[42]]);_0xdb3dx15[_0x389d[54]]()[_0x389d[39]](function(){return _0xdb3dx5[_0x389d[28]](200)[_0x389d[27]](_0xdb3dx14)})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)});})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)});})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)})};exports[_0x389d[56]]=function(_0xdb3dx4,_0xdb3dx5){Tag[_0x389d[48]](_0xdb3dx4[_0x389d[47]][_0x389d[46]])[_0x389d[39]](function(_0xdb3dx14){if(!_0xdb3dx14){return _0xdb3dx5[_0x389d[43]](404)};_0xdb3dx14[_0x389d[56]]()[_0x389d[39]](function(){return _0xdb3dx5[_0x389d[43]](204)})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)});})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)})};exports[_0x389d[57]]=function(_0xdb3dx4,_0xdb3dx5){Tag[_0x389d[56]]({where:{id:_0xdb3dx4[_0x389d[9]][_0x389d[46]]},individualHooks:true})[_0x389d[39]](function(){return _0xdb3dx5[_0x389d[43]](204)})[_0x389d[29]](function(_0xdb3dxe){return handleError(_0xdb3dx5,_0xdb3dxe)})};function handleError(_0xdb3dx5,_0xdb3dxe){return _0xdb3dx5[_0x389d[28]](500)[_0x389d[27]](_0xdb3dxe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Tag = require('../../models').Tag;
+var util = require('util');
+
+// Get list of tags
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+  console.log(query);
+
+  Tag
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.tagValidation = function(req, res) {
+  console.log(req.body);
+  Tag
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(tags) {
+      if (!tags) {
+        return res.sendStatus(404);
+      }
+      return res.send(tags);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single tag
+exports.show = function(req, res) {
+  Tag
+    .findById(req.params.id)
+    .then(function(tag) {
+      if (!tag) {
+        return res.sendStatus(404);
+      }
+      return res.send(tag);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new tag in the DB.
+exports.create = function(req, res) {
+  Tag
+    .create(req.body)
+    .then(function(tag) {
+      return res.status(201).send(tag);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing tag in the DB.
+exports.update = function(req, res) {
+  Tag
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(tags) {
+      if (!tags) {
+        return res.sendStatus(404);
+      }
+      if (tags.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_TAG'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Tag
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(tag) {
+          if (!tag) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(tag, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(tag);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a tag from the DB.
+exports.destroy = function(req, res) {
+  Tag
+    .findById(req.params.id)
+    .then(function(tag) {
+      if (!tag) {
+        return res.sendStatus(404);
+      }
+      tag.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Tag
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 7fe43da..790b0a2 100644 (file)
@@ -1 +1,24 @@
-var _0xc454=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x61\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x61\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x61\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0xc454[0];var Tag=require(_0xc454[2])[_0xc454[1]];exports[_0xc454[3]]=function(_0xcbd1x2){Tag[_0xc454[4]](function(_0xcbd1x3){onSave(_0xcbd1x2,_0xcbd1x3)});Tag[_0xc454[5]](function(_0xcbd1x3){onRemove(_0xcbd1x2,_0xcbd1x3)});};function onSave(_0xcbd1x2,_0xcbd1x3,_0xcbd1x5){_0xcbd1x2[_0xc454[7]](_0xc454[6],_0xcbd1x3)}function onRemove(_0xcbd1x2,_0xcbd1x3,_0xcbd1x5){_0xcbd1x2[_0xc454[7]](_0xc454[8],_0xcbd1x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Tag = require('../../models').Tag;
+
+exports.register = function(socket) {
+  Tag.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Tag.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('tag:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('tag:remove', doc);
+}
index 11d3dc7..794a03a 100644 (file)
@@ -1 +1,20 @@
-var _0x73f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x67\x65\x74"];_0x73f7[0];var should=require(_0x73f7[1]);var app=require(_0x73f7[2]);var request=require(_0x73f7[3]);describe(_0x73f7[4],function(){it(_0x73f7[5],function(_0x232bx4){request(app)[_0x73f7[13]](_0x73f7[12])[_0x73f7[11]](200)[_0x73f7[11]](_0x73f7[10],/json/)[_0x73f7[9]](function(_0x232bx5,_0x232bx6){if(_0x232bx5){return _0x232bx4(_0x232bx5)};_0x232bx6[_0x73f7[8]][_0x73f7[1]][_0x73f7[7]][_0x73f7[6]](Array);_0x232bx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/tags', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/tags')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 149fbf7..1bb002a 100644 (file)
@@ -1 +1,19 @@
-var _0x396b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x65\x61\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x396b[0];var express=require(_0x396b[1]);var controller=require(_0x396b[2]);var auth=require(_0x396b[3]);var router=express.Router();router[_0x396b[7]](_0x396b[4],auth[_0x396b[5]](),controller[_0x396b[6]]);router[_0x396b[7]](_0x396b[8],auth[_0x396b[5]](),controller[_0x396b[9]]);router[_0x396b[11]](_0x396b[4],auth[_0x396b[5]](),controller[_0x396b[10]]);router[_0x396b[11]](_0x396b[12],auth[_0x396b[5]](),controller[_0x396b[13]]);router[_0x396b[15]](_0x396b[8],auth[_0x396b[5]](),controller[_0x396b[14]]);router[_0x396b[15]](_0x396b[12],auth[_0x396b[5]](),controller[_0x396b[16]]);router[_0x396b[17]](_0x396b[8],auth[_0x396b[5]](),controller[_0x396b[14]]);router[_0x396b[19]](_0x396b[4],auth[_0x396b[5]](),controller[_0x396b[18]]);router[_0x396b[19]](_0x396b[8],auth[_0x396b[5]](),controller[_0x396b[20]]);module[_0x396b[21]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./team.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.put('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 7c2fc13..ab40542 100644 (file)
@@ -1 +1,235 @@
-var _0x7727=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x54\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x74\x65\x61\x6D","\x6C\x6F\x67","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x55\x73\x65\x72\x73","\x6E\x6F\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73"];_0x7727[0];var _=require(_0x7727[1]);var util=require(_0x7727[2]);var Team=require(_0x7727[4])[_0x7727[3]];var User=require(_0x7727[4])[_0x7727[5]];exports[_0x7727[6]]=function(_0xed2ex5,_0xed2ex6){var _0xed2ex7=[_0x7727[7],_0x7727[8]];var _0xed2ex8=_0xed2ex5[_0x7727[10]][_0x7727[9]]?parseInt(_0xed2ex5[_0x7727[10]][_0x7727[9]],10):100;var _0xed2ex9=_0xed2ex5[_0x7727[10]][_0x7727[11]]?parseInt(_0xed2ex5[_0x7727[10]][_0x7727[11]],10):0;var _0xed2exa={where:{},include:[{model:User,required:false}],limit:_0xed2ex8,offset:_0xed2ex9*_0xed2ex8};_[_0x7727[25]](_0xed2ex5[_0x7727[10]],function(_0xed2exb,_0xed2exc){switch(_0xed2exc){case _0x7727[9]:;case _0x7727[11]:break ;;case _0x7727[14]:_0xed2exa[_0x7727[12]]=util[_0x7727[17]](_0x7727[13],_0xed2ex5[_0x7727[10]][_0x7727[14]],_0xed2ex5[_0x7727[10]][_0x7727[15]]||_0x7727[16])||null;break ;;case _0x7727[15]:break ;;case _0x7727[23]:_0xed2exa[_0x7727[19]][_0x7727[18]]=[];_0xed2ex7[_0x7727[22]](function(_0xed2exd){var _0xed2exe={};_0xed2exe[_0xed2exd]={$like:_0x7727[20]+_0xed2exb+_0x7727[20]};_0xed2exa[_0x7727[19]][_0x7727[18]][_0x7727[21]](_0xed2exe);});break ;;default:_0xed2exa[_0x7727[19]][_0xed2exc]={$like:{}};_0xed2exa[_0x7727[19]][_0xed2exc][_0x7727[24]]=_0x7727[20]+_0xed2exb+_0x7727[20];;}});console[_0x7727[27]](_0x7727[26],_0xed2exa);Team[_0x7727[42]](_0xed2exa)[_0x7727[41]](function(_0xed2ex10){var _0xed2ex11=Math[_0x7727[33]](_0xed2ex10[_0x7727[32]]/_0xed2ex8);var _0xed2ex12=_0xed2ex11>(_0xed2exa[_0x7727[34]]+1)?util[_0x7727[17]](_0x7727[35],_0xed2ex5[_0x7727[36]],_0xed2ex5[_0x7727[38]][_0x7727[37]],_0xed2ex5[_0x7727[39]],_0xed2ex9+1):null;var _0xed2ex13=_0xed2ex9>0?util[_0x7727[17]](_0x7727[35],_0xed2ex5[_0x7727[36]],_0xed2ex5[_0x7727[38]][_0x7727[37]],_0xed2ex5[_0x7727[39]],_0xed2ex9-1):null;_0xed2ex6[_0x7727[30]](200)[_0x7727[29]]({count:_0xed2ex10[_0x7727[32]],rows:_0xed2ex10[_0x7727[40]],next_page:_0xed2ex12,previous_page:_0xed2ex13,total_pages:_0xed2ex11});})[_0x7727[31]](function(_0xed2exf){_0xed2ex6[_0x7727[30]](500)[_0x7727[29]]({error:_0x7727[28]})});};exports[_0x7727[43]]=function(_0xed2ex5,_0xed2ex6){Team[_0x7727[47]]({where:{id:_0xed2ex5[_0x7727[46]][_0x7727[45]]},include:[User]})[_0x7727[41]](function(_0xed2ex14){if(!_0xed2ex14){return _0xed2ex6[_0x7727[44]](404)};return _0xed2ex6[_0x7727[29]](_0xed2ex14);})[_0x7727[31]](function(_0xed2exf){return handleError(_0xed2ex6,_0xed2exf)})};exports[_0x7727[48]]=function(_0xed2ex5,_0xed2ex6){Team[_0x7727[48]](_0xed2ex5[_0x7727[49]])[_0x7727[41]](function(_0xed2ex14){return _0xed2ex6[_0x7727[30]](201)[_0x7727[29]](_0xed2ex14)})[_0x7727[31]](function(_0xed2exf){return handleError(_0xed2ex6,_0xed2exf)})};exports[_0x7727[50]]=function(_0xed2ex5,_0xed2ex6){if(_0xed2ex5[_0x7727[49]][_0x7727[45]]){delete _0xed2ex5[_0x7727[49]][_0x7727[45]]};Team[_0x7727[47]]({where:{id:_0xed2ex5[_0x7727[46]][_0x7727[45]]}})[_0x7727[41]](function(_0xed2ex14){if(!_0xed2ex14){return _0xed2ex6[_0x7727[44]](404)};var _0xed2ex15=_[_0x7727[51]](_0xed2ex14,_0xed2ex5[_0x7727[49]]);_0xed2ex15[_0x7727[52]]()[_0x7727[41]](function(){return _0xed2ex6[_0x7727[30]](200)[_0x7727[29]](_0xed2ex14)})[_0x7727[31]](function(_0xed2exf){return handleError(_0xed2ex6,_0xed2exf)});})[_0x7727[31]](function(_0xed2exf){return handleError(_0xed2ex6,_0xed2exf)});};exports[_0x7727[53]]=function(_0xed2ex5,_0xed2ex6){Team[_0x7727[47]]({where:{id:_0xed2ex5[_0x7727[46]][_0x7727[45]]}})[_0x7727[41]](function(_0xed2ex14){if(!_0xed2ex14){return _0xed2ex6[_0x7727[44]](404)};_0xed2ex14[_0x7727[53]]()[_0x7727[41]](function(){return _0xed2ex6[_0x7727[44]](204)})[_0x7727[31]](function(_0xed2exf){return handleError(_0xed2ex6,_0xed2exf)});})[_0x7727[31]](function(_0xed2exf){return handleError(_0xed2ex6,_0xed2exf)})};exports[_0x7727[54]]=function(_0xed2ex5,_0xed2ex6){Team[_0x7727[53]]({where:{id:_0xed2ex5[_0x7727[10]][_0x7727[45]]},individualHooks:true})[_0x7727[41]](function(){return _0xed2ex6[_0x7727[44]](204)})[_0x7727[31]](function(_0xed2exf){return handleError(_0xed2ex6,_0xed2exf)})};exports[_0x7727[55]]=function(_0xed2ex5,_0xed2ex6,_0xed2ex16){Team[_0x7727[59]](_0xed2ex5[_0x7727[46]][_0x7727[45]])[_0x7727[41]](function(_0xed2ex14){if(_0xed2ex14){_0xed2ex14[_0x7727[57]](_0xed2ex5[_0x7727[49]][_0x7727[56]])[_0x7727[41]](function(){return _0xed2ex6[_0x7727[44]](200)})[_0x7727[31]](function(_0xed2exf){return _0xed2ex16(_0xed2exf)})}else {return _0xed2ex16( new Error(_0x7727[58]))}})[_0x7727[31]](function(_0xed2exf){return _0xed2ex16(_0xed2exf)})};exports[_0x7727[60]]=function(_0xed2ex5,_0xed2ex6,_0xed2ex16){Team[_0x7727[59]](_0xed2ex5[_0x7727[46]][_0x7727[45]])[_0x7727[41]](function(_0xed2ex14){if(_0xed2ex14){_0xed2ex14[_0x7727[61]](_0xed2ex5[_0x7727[49]][_0x7727[56]])[_0x7727[41]](function(){return _0xed2ex6[_0x7727[44]](200)})[_0x7727[31]](function(_0xed2exf){return _0xed2ex16(_0xed2exf)})}else {return _0xed2ex16( new Error(_0x7727[58]))}})[_0x7727[31]](function(_0xed2exf){return _0xed2ex16(_0xed2exf)})};function handleError(_0xed2ex6,_0xed2exf){return _0xed2ex6[_0x7727[30]](500)[_0x7727[29]](_0xed2exf)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var Team = require('../../models').Team;
+var User = require('../../models').User;
+
+// Get list of teams
+exports.index = function (req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    include: [{
+      model: User,
+      required: false
+    }],
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  console.log('team', query);
+
+  Team
+    .findAndCountAll(query)
+    .then(function (result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single team
+exports.show = function (req, res) {
+  Team
+    .find({
+      where: {
+        id: req.params.id
+      },
+      include: [User]
+    })
+    .then(function (team) {
+      if (!team) {
+        return res.sendStatus(404);
+      }
+      return res.send(team);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new team in the DB.
+exports.create = function (req, res) {
+  Team
+    .create(req.body)
+    .then(function (team) {
+      return res.status(201).send(team);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing team in the DB.
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Team
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function (team) {
+      if (!team) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(team, req.body);
+      updated.save()
+        .then(function () {
+          return res.status(200).send(team);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a team from the DB.
+exports.destroy = function (req, res) {
+  Team
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function (team) {
+      if (!team) {
+        return res.sendStatus(404);
+      }
+      team.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function (req, res) {
+  Team
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function () {
+      return res.sendStatus(204);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing user_has_mail_queue in the DB.
+exports.addAgents = function (req, res, next) {
+  Team
+    .findById(req.params.id)
+    .then(function (team) {
+      if (team) {
+        // QUEUE FOUND
+        // ADD AGENTS
+        team
+          .addUsers(req.body.agents)
+          .then(function () {
+            return res.sendStatus(200);
+          })
+          .catch(function (err) {
+            return next(err);
+          });
+      } else {
+        return next(new Error('no mail queue found'));
+      }
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+exports.removeAgents = function (req, res, next) {
+  Team
+    .findById(req.params.id)
+    .then(function (team) {
+      if (team) {
+        // QUEUE FOUND
+        // REMOVE AGENTS
+        team
+          .removeUsers(req.body.agents)
+          .then(function () {
+            return res.sendStatus(200);
+          })
+          .catch(function (err) {
+            return next(err);
+          });
+      } else {
+        return next(new Error('no mail queue found'));
+      }
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index cf3ce47..3f89dc2 100644 (file)
@@ -1 +1,27 @@
-var _0xe8c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x65\x61\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x65\x61\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe8c3[0];var team=require(_0xe8c3[2])[_0xe8c3[1]];exports[_0xe8c3[3]]=function(_0x3f54x2){team[_0xe8c3[4]](function(_0x3f54x3){onSave(_0x3f54x2,_0x3f54x3)});team[_0xe8c3[5]](function(_0x3f54x3){onSave(_0x3f54x2,_0x3f54x3)});team[_0xe8c3[6]](function(_0x3f54x3){onRemove(_0x3f54x2,_0x3f54x3)});};function onSave(_0x3f54x2,_0x3f54x3,_0x3f54x5){_0x3f54x2[_0xe8c3[8]](_0xe8c3[7],_0x3f54x3)}function onRemove(_0x3f54x2,_0x3f54x3,_0x3f54x5){_0x3f54x2[_0xe8c3[8]](_0xe8c3[9],_0x3f54x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var team = require('../../models').Team;
+
+exports.register = function(socket) {
+  team.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  team.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  team.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('team:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('team:remove', doc);
+}
index 1266eb6..b76928a 100644 (file)
@@ -1 +1,20 @@
-var _0xdc09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74"];_0xdc09[0];var should=require(_0xdc09[1]);var app=require(_0xdc09[2]);var request=require(_0xdc09[3]);describe(_0xdc09[4],function(){it(_0xdc09[5],function(_0xe241x4){request(app)[_0xdc09[13]](_0xdc09[12])[_0xdc09[11]](200)[_0xdc09[11]](_0xdc09[10],/json/)[_0xdc09[9]](function(_0xe241x5,_0xe241x6){if(_0xe241x5){return _0xe241x4(_0xe241x5)};_0xe241x6[_0xdc09[8]][_0xdc09[1]][_0xdc09[7]][_0xdc09[6]](Array);_0xe241x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/teams', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/teams')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 544ca75..c05b6eb 100644 (file)
@@ -1 +1,20 @@
-var _0x346e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x69\x73\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x4C\x69\x6D\x69\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x346e[0];var express=require(_0x346e[1]);var auth=require(_0x346e[2]);var controller=require(_0x346e[3]);var license=require(_0x346e[4]);var router=express.Router();router[_0x346e[8]](_0x346e[5],auth[_0x346e[6]](),controller[_0x346e[7]]);router[_0x346e[8]](_0x346e[9],auth[_0x346e[6]](),controller[_0x346e[10]]);router[_0x346e[8]](_0x346e[11],auth[_0x346e[6]](),controller[_0x346e[12]]);router[_0x346e[16]](_0x346e[5],auth[_0x346e[6]](),license[_0x346e[13]](),license[_0x346e[14]](),controller[_0x346e[15]]);router[_0x346e[18]](_0x346e[11],auth[_0x346e[6]](),controller[_0x346e[17]]);router[_0x346e[19]](_0x346e[11],auth[_0x346e[6]](),controller[_0x346e[17]]);router[_0x346e[21]](_0x346e[11],auth[_0x346e[6]](),controller[_0x346e[20]]);module[_0x346e[22]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./telephone.controller');
+var license = require('../../config/license/license.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/internal', auth.isAuthenticated(), controller.getInternal);
+// router.get('/internal/:internal', auth.isAuthenticated(), controller.getInternalValidation);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), license.isValidDate(), license.isTelephonesLimit(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
index bddde1e..293f14e 100644 (file)
@@ -1 +1,208 @@
-var _0xaa8b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x72\x65\x71\x2E\x70\x61\x72\x61\x6D\x73","\x70\x61\x72\x61\x6D\x73","\x6C\x6F\x67","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x61\x78","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x72\x6F\x6C\x65","\x75\x70\x64\x61\x74\x65"];_0xaa8b[0];var util=require(_0xaa8b[1]);var _=require(_0xaa8b[2]);var Telephone=require(_0xaa8b[4])[_0xaa8b[3]];function handleError(_0xd5f4x5,_0xd5f4x6){_0xd5f4x6=_0xd5f4x6||500;return function(_0xd5f4x7){_0xd5f4x5[_0xaa8b[6]](_0xd5f4x6)[_0xaa8b[5]](_0xd5f4x7)};}function responseWithResult(_0xd5f4x5,_0xd5f4x6){_0xd5f4x6=_0xd5f4x6||200;return function(_0xd5f4x9){if(_0xd5f4x9){_0xd5f4x5[_0xaa8b[6]](_0xd5f4x6)[_0xaa8b[7]](_0xd5f4x9)}};}function handleEntityNotFound(_0xd5f4x5){return function(_0xd5f4x9){if(!_0xd5f4x9){_0xd5f4x5[_0xaa8b[6]](404)[_0xaa8b[8]]();return null;};return _0xd5f4x9;}}function saveUpdates(_0xd5f4xc){return function(_0xd5f4x9){return _0xd5f4x9[_0xaa8b[10]](_0xd5f4xc)[_0xaa8b[9]](function(_0xd5f4xd){return _0xd5f4xd})}}function removeEntity(_0xd5f4x5){return function(_0xd5f4x9){if(_0xd5f4x9){return _0xd5f4x9[_0xaa8b[11]]()[_0xaa8b[9]](function(){_0xd5f4x5[_0xaa8b[6]](204)[_0xaa8b[8]]()})}}}exports[_0xaa8b[12]]=function(_0xd5f4xf,_0xd5f4x5){var _0xd5f4x10=[_0xaa8b[13],_0xaa8b[14]];var _0xd5f4x11=_0xd5f4xf[_0xaa8b[16]][_0xaa8b[15]]?parseInt(_0xd5f4xf[_0xaa8b[16]][_0xaa8b[15]],10):100;var _0xd5f4x12=_0xd5f4xf[_0xaa8b[16]][_0xaa8b[17]]?parseInt(_0xd5f4xf[_0xaa8b[16]][_0xaa8b[17]],10):0;var _0xd5f4x13={where:{role:_0xaa8b[18]},limit:_0xd5f4x11,offset:_0xd5f4x12*_0xd5f4x11};_[_0xaa8b[32]](_0xd5f4xf[_0xaa8b[16]],function(_0xd5f4x14,_0xd5f4x15){switch(_0xd5f4x15){case _0xaa8b[15]:;case _0xaa8b[17]:break ;;case _0xaa8b[21]:_0xd5f4x13[_0xaa8b[19]]=util[_0xaa8b[24]](_0xaa8b[20],_0xd5f4xf[_0xaa8b[16]][_0xaa8b[21]],_0xd5f4xf[_0xaa8b[16]][_0xaa8b[22]]||_0xaa8b[23])||null;break ;;case _0xaa8b[22]:break ;;case _0xaa8b[30]:_0xd5f4x13[_0xaa8b[26]][_0xaa8b[25]]=[];_0xd5f4x10[_0xaa8b[29]](function(_0xd5f4x16){var _0xd5f4x17={};_0xd5f4x17[_0xd5f4x16]={$like:_0xaa8b[27]+_0xd5f4x14+_0xaa8b[27]};_0xd5f4x13[_0xaa8b[26]][_0xaa8b[25]][_0xaa8b[28]](_0xd5f4x17);});break ;;default:_0xd5f4x13[_0xaa8b[26]][_0xd5f4x15]={$like:{}};_0xd5f4x13[_0xaa8b[26]][_0xd5f4x15][_0xaa8b[31]]=_0xaa8b[27]+_0xd5f4x14+_0xaa8b[27];;}});Telephone[_0xaa8b[44]](_0xd5f4x13)[_0xaa8b[9]](function(_0xd5f4x18){var _0xd5f4x19=Math[_0xaa8b[36]](_0xd5f4x18[_0xaa8b[35]]/_0xd5f4x11);var _0xd5f4x1a=_0xd5f4x19>(_0xd5f4x13[_0xaa8b[37]]+1)?util[_0xaa8b[24]](_0xaa8b[38],_0xd5f4xf[_0xaa8b[39]],_0xd5f4xf[_0xaa8b[41]][_0xaa8b[40]],_0xd5f4xf[_0xaa8b[42]],_0xd5f4x12+1):null;var _0xd5f4x1b=_0xd5f4x12>0?util[_0xaa8b[24]](_0xaa8b[38],_0xd5f4xf[_0xaa8b[39]],_0xd5f4xf[_0xaa8b[41]][_0xaa8b[40]],_0xd5f4xf[_0xaa8b[42]],_0xd5f4x12-1):null;return _0xd5f4x5[_0xaa8b[6]](200)[_0xaa8b[5]]({count:_0xd5f4x18[_0xaa8b[35]],rows:_0xd5f4x18[_0xaa8b[43]],next_page:_0xd5f4x1a,previous_page:_0xd5f4x1b,total_pages:_0xd5f4x19});})[_0xaa8b[34]](function(_0xd5f4x7){return _0xd5f4x5[_0xaa8b[6]](500)[_0xaa8b[5]]({error:_0xaa8b[33]})});};exports[_0xaa8b[45]]=function(_0xd5f4xf,_0xd5f4x5){console[_0xaa8b[48]](_0xaa8b[46],_0xd5f4xf[_0xaa8b[47]]);Telephone[_0xaa8b[50]](_0xd5f4xf[_0xaa8b[47]][_0xaa8b[49]])[_0xaa8b[9]](handleEntityNotFound(_0xd5f4x5))[_0xaa8b[9]](responseWithResult(_0xd5f4x5))[_0xaa8b[34]](handleError(_0xd5f4x5));};exports[_0xaa8b[51]]=function(_0xd5f4xf,_0xd5f4x5){var _0xd5f4x1c;return Telephone[_0xaa8b[53]](_0xaa8b[52])[_0xaa8b[9]](function(_0xd5f4x1d){_0xd5f4x1c=_0xd5f4x1d?_0xd5f4x1d:0;_0xd5f4x5[_0xaa8b[6]](200)[_0xaa8b[5]]({internal:_0xd5f4x1c+1});})[_0xaa8b[34]](function(_0xd5f4x7){return handleError(_0xd5f4x5,_0xd5f4x7)});};exports[_0xaa8b[54]]=function(_0xd5f4xf,_0xd5f4x5){console[_0xaa8b[48]](_0xaa8b[46],_0xd5f4xf[_0xaa8b[47]]);return Telephone[_0xaa8b[57]]({where:{internal:_0xd5f4xf[_0xaa8b[56]][_0xaa8b[52]]}})[_0xaa8b[9]](function(_0xd5f4x1e){if(!_0xd5f4x1e){return _0xd5f4x5[_0xaa8b[55]](404)};return _0xd5f4x5[_0xaa8b[5]](_0xd5f4x1e);})[_0xaa8b[34]](function(_0xd5f4x7){return handleError(_0xd5f4x5,_0xd5f4x7)});};exports[_0xaa8b[58]]=function(_0xd5f4xf,_0xd5f4x5){_0xd5f4xf[_0xaa8b[56]][_0xaa8b[59]]=_0xaa8b[18];Telephone[_0xaa8b[58]](_0xd5f4xf[_0xaa8b[56]])[_0xaa8b[9]](responseWithResult(_0xd5f4x5,201))[_0xaa8b[34]](handleError(_0xd5f4x5));};exports[_0xaa8b[60]]=function(_0xd5f4xf,_0xd5f4x5){if(_0xd5f4xf[_0xaa8b[56]][_0xaa8b[49]]){delete _0xd5f4xf[_0xaa8b[56]][_0xaa8b[49]]};Telephone[_0xaa8b[50]](_0xd5f4xf[_0xaa8b[47]][_0xaa8b[49]])[_0xaa8b[9]](handleEntityNotFound(_0xd5f4x5))[_0xaa8b[9]](saveUpdates(_0xd5f4xf[_0xaa8b[56]]))[_0xaa8b[9]](responseWithResult(_0xd5f4x5))[_0xaa8b[34]](handleError(_0xd5f4x5));};exports[_0xaa8b[11]]=function(_0xd5f4xf,_0xd5f4x5){Telephone[_0xaa8b[50]](_0xd5f4xf[_0xaa8b[47]][_0xaa8b[49]])[_0xaa8b[9]](handleEntityNotFound(_0xd5f4x5))[_0xaa8b[9]](removeEntity(_0xd5f4x5))[_0xaa8b[34]](handleError(_0xd5f4x5))};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/telephones              ->  index
+ * POST    /api/telephones              ->  create
+ * GET     /api/telephones/:id          ->  show
+ * PUT     /api/telephones/:id          ->  update
+ * DELETE  /api/telephones/:id          ->  destroy
+ */
+
+'use strict';
+
+var util = require('util');
+var _ = require('lodash');
+
+var Telephone = require('../../models').User;
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function (err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function (entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function (entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function (entity) {
+    return entity.updateAttributes(updates)
+      .then(function (updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function (entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function () {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of Telephones
+exports.index = function (req, res) {
+  // Telephone.findAll()
+  //   .then(responseWithResult(res))
+  //   .catch(handleError(res));
+  var attributes = ['fullname', 'name'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      role: 'telephone'
+    },
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Telephone
+    .findAndCountAll(query)
+    .then(function (result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+
+}
+
+// Gets a single Telephone from the DB
+exports.show = function (req, res) {
+  console.log('req.params', req.params);
+  Telephone.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Get list of settings
+exports.getInternal = function (req, res) {
+
+  var _tinternal;
+
+  return Telephone
+    .max('internal')
+    .then(function (tinternal) {
+      _tinternal = tinternal ? tinternal : 0;
+
+      res.status(200).send({
+        internal: _tinternal + 1
+      });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of an internal number
+exports.getInternalValidation = function (req, res) {
+  console.log('req.params', req.params);
+  return Telephone
+    .findAll({
+      where: {
+        internal: req.body.internal
+      }
+    })
+    .then(function (internals) {
+      if (!internals) {
+        return res.sendStatus(404);
+      }
+      return res.send(internals);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new Telephone in the DB
+exports.create = function (req, res) {
+  req.body.role = 'telephone';
+  Telephone.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing Telephone in the DB
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Telephone.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a Telephone from the DB
+exports.destroy = function (req, res) {
+  Telephone.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
index 0ae1af0..11f6d7a 100644 (file)
@@ -1 +1,24 @@
-var _0x4cf7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4cf7[0];exports[_0x4cf7[1]]=function(_0x25a1x1){};function onSave(_0x25a1x1,_0x25a1x3,_0x25a1x4){_0x25a1x1[_0x4cf7[3]](_0x4cf7[2],_0x25a1x3)}function onRemove(_0x25a1x1,_0x25a1x3,_0x25a1x4){_0x25a1x1[_0x4cf7[3]](_0x4cf7[4],_0x25a1x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+// var Telephone = require('../../models').Telephone;
+
+exports.register = function (socket) {
+  // Telephone.afterCreate(function(doc) {
+  //   onSave(socket, doc);
+  // });
+  // Telephone.afterDestroy(function(doc) {
+  //   onRemove(socket, doc);
+  // });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('telephone:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('telephone:remove', doc);
+}
index 9ba0c91..845c9f0 100644 (file)
@@ -1 +1,15 @@
-var _0xba29=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x68\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xba29[0];var express=require(_0xba29[1]);var controller=require(_0xba29[2]);var router=express.Router();router[_0xba29[5]](_0xba29[3],controller[_0xba29[4]]);router[_0xba29[5]](_0xba29[6],controller[_0xba29[7]]);router[_0xba29[9]](_0xba29[3],controller[_0xba29[8]]);router[_0xba29[11]](_0xba29[6],controller[_0xba29[10]]);router[_0xba29[12]](_0xba29[6],controller[_0xba29[10]]);router[_0xba29[14]](_0xba29[6],controller[_0xba29[13]]);module[_0xba29[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./thing.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 8bb7280..7d4d710 100644 (file)
@@ -1 +1,98 @@
-var _0xfd29=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x54\x68\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xfd29[0];var _=require(_0xfd29[1]);var Thing=require(_0xfd29[3])[_0xfd29[2]];exports[_0xfd29[4]]=function(_0xa00ex3,_0xa00ex4,_0xa00ex5){Thing[_0xfd29[9]]()[_0xfd29[8]](function(_0xa00ex7){return _0xa00ex4[_0xfd29[7]](200)[_0xfd29[6]](_0xa00ex7)})[_0xfd29[5]](function(_0xa00ex6){return _0xa00ex5(_0xa00ex6)})};exports[_0xfd29[10]]=function(_0xa00ex3,_0xa00ex4,_0xa00ex5){Thing[_0xfd29[14]](_0xa00ex3[_0xfd29[13]][_0xfd29[12]])[_0xfd29[8]](function(_0xa00ex8){if(!_0xa00ex8){return _0xa00ex4[_0xfd29[11]](404)};return _0xa00ex4[_0xfd29[6]](_0xa00ex8);})[_0xfd29[5]](function(_0xa00ex6){return _0xa00ex5(_0xa00ex6)})};exports[_0xfd29[15]]=function(_0xa00ex3,_0xa00ex4,_0xa00ex5){Thing[_0xfd29[15]](_0xa00ex3[_0xfd29[16]])[_0xfd29[8]](function(_0xa00ex8){return _0xa00ex4[_0xfd29[7]](201)[_0xfd29[6]](_0xa00ex8)})[_0xfd29[5]](function(_0xa00ex6){return _0xa00ex5(_0xa00ex6)})};exports[_0xfd29[17]]=function(_0xa00ex3,_0xa00ex4,_0xa00ex5){if(_0xa00ex3[_0xfd29[16]][_0xfd29[12]]){delete _0xa00ex3[_0xfd29[16]][_0xfd29[12]]};Thing[_0xfd29[14]](_0xa00ex3[_0xfd29[13]][_0xfd29[12]])[_0xfd29[8]](function(_0xa00ex8){if(!_0xa00ex8){return _0xa00ex4[_0xfd29[11]](404)};var _0xa00ex9=_[_0xfd29[18]](_0xa00ex8,_0xa00ex3[_0xfd29[16]]);_0xa00ex9[_0xfd29[19]]()[_0xfd29[8]](function(){return _0xa00ex4[_0xfd29[7]](200)[_0xfd29[6]](_0xa00ex8)})[_0xfd29[5]](function(_0xa00ex6){return _0xa00ex5(_0xa00ex6)});})[_0xfd29[5]](function(_0xa00ex6){return _0xa00ex5(_0xa00ex6)});};exports[_0xfd29[20]]=function(_0xa00ex3,_0xa00ex4,_0xa00ex5){Thing[_0xfd29[14]](_0xa00ex3[_0xfd29[13]][_0xfd29[12]])[_0xfd29[8]](function(_0xa00ex8){if(!_0xa00ex8){return _0xa00ex4[_0xfd29[11]](404)};_0xa00ex8[_0xfd29[20]]()[_0xfd29[8]](function(){return _0xa00ex4[_0xfd29[11]](204)})[_0xfd29[5]](function(_0xa00ex6){return _0xa00ex5(_0xa00ex6)});})[_0xfd29[5]](function(_0xa00ex6){return _0xa00ex5(_0xa00ex6)})};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /things              ->  index
+ * POST    /things              ->  create
+ * GET     /things/:id          ->  show
+ * PUT     /things/:id          ->  update
+ * DELETE  /things/:id          ->  destroy
+ */
+
+'use strict';
+
+var _ = require('lodash');
+var Thing = require('../../models').Thing;
+
+// Get list of things
+exports.index = function(req, res, next) {
+  Thing
+    .findAll()
+    .then(function(things) {
+      return res.status(200).send(things);
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Get a single thing
+exports.show = function(req, res, next) {
+  Thing
+    .findById(req.params.id)
+    .then(function(thing) {
+      if (!thing) {
+        return res.sendStatus(404);
+      }
+      return res.send(thing);
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Creates a new thing in the DB.
+exports.create = function(req, res, next) {
+  Thing
+    .create(req.body)
+    .then(function(thing) {
+      return res.status(201).send(thing);
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Updates an existing thing in the DB.
+exports.update = function(req, res, next) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Thing
+    .findById(req.params.id)
+    .then(function(thing) {
+      if (!thing) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(thing, req.body);
+      updated.save()
+      .then(function() {
+        return res.status(200).send(thing);
+      })
+      .catch(function(err) {
+        return next(err);
+      });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a thing from the DB.
+exports.destroy = function(req, res, next) {
+  Thing
+    .findById(req.params.id)
+    .then(function(thing) {
+      if (!thing) {
+        return res.sendStatus(404);
+      }
+      thing.destroy()
+      .then(function() {
+        return res.sendStatus(204);
+      })
+      .catch(function(err) {
+        return next(err);
+      });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
index b9b3144..55b9c5a 100644 (file)
@@ -1 +1,27 @@
-var _0x429f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x68\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x68\x69\x6E\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x68\x69\x6E\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0x429f[0];var thing=require(_0x429f[2])[_0x429f[1]];exports[_0x429f[3]]=function(_0xbc92x2){thing[_0x429f[4]](function(_0xbc92x3){onSave(_0xbc92x2,_0xbc92x3)});thing[_0x429f[5]](function(_0xbc92x3){onRemove(_0xbc92x2,_0xbc92x3)});};function onSave(_0xbc92x2,_0xbc92x3,_0xbc92x5){_0xbc92x2[_0x429f[7]](_0x429f[6],_0xbc92x3)}function onRemove(_0xbc92x2,_0xbc92x3,_0xbc92x5){_0xbc92x2[_0x429f[7]](_0x429f[8],_0xbc92x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+//var thing = require('./thing.model');
+var thing = require('../../models').Thing;
+
+exports.register = function (socket) {
+
+  thing.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+
+  thing.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('thing:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('thing:remove', doc);
+}
index 3827b23..17c8c6c 100644 (file)
@@ -1 +1,20 @@
-var _0xa22a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x68\x69\x6E\x67\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x68\x69\x6E\x67\x73","\x67\x65\x74"];_0xa22a[0];var should=require(_0xa22a[1]);var app=require(_0xa22a[2]);var request=require(_0xa22a[3]);describe(_0xa22a[4],function(){it(_0xa22a[5],function(_0x3497x4){request(app)[_0xa22a[13]](_0xa22a[12])[_0xa22a[11]](200)[_0xa22a[11]](_0xa22a[10],/json/)[_0xa22a[9]](function(_0x3497x5,_0x3497x6){if(_0x3497x5){return _0x3497x4(_0x3497x5)};_0x3497x6[_0xa22a[8]][_0xa22a[1]][_0xa22a[7]][_0xa22a[6]](Array);_0x3497x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/things', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/things')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 7eaa03a..e2c0971 100644 (file)
@@ -1 +1,17 @@
-var _0xfe0d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xfe0d[0];var express=require(_0xfe0d[1]);var controller=require(_0xfe0d[2]);var auth=require(_0xfe0d[3]);var router=express.Router();router[_0xfe0d[7]](_0xfe0d[4],auth[_0xfe0d[5]](),controller[_0xfe0d[6]]);router[_0xfe0d[7]](_0xfe0d[8],auth[_0xfe0d[5]](),controller[_0xfe0d[9]]);router[_0xfe0d[11]](_0xfe0d[4],auth[_0xfe0d[5]](),controller[_0xfe0d[10]]);router[_0xfe0d[13]](_0xfe0d[8],auth[_0xfe0d[5]](),controller[_0xfe0d[12]]);router[_0xfe0d[14]](_0xfe0d[8],auth[_0xfe0d[5]](),controller[_0xfe0d[12]]);router[_0xfe0d[16]](_0xfe0d[8],auth[_0xfe0d[5]](),controller[_0xfe0d[15]]);router[_0xfe0d[16]](_0xfe0d[4],auth[_0xfe0d[5]](),controller[_0xfe0d[17]]);module[_0xfe0d[18]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./trigger.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+
+module.exports = router;
index 5b0650a..87dccb3 100644 (file)
@@ -1 +1,168 @@
-var _0xcb22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xcb22[0];var _=require(_0xcb22[1]);var util=require(_0xcb22[2]);var Trigger=require(_0xcb22[4])[_0xcb22[3]];exports[_0xcb22[5]]=function(_0x8087x4,_0x8087x5,_0x8087x6){var _0x8087x7=[_0xcb22[6],_0xcb22[7],_0xcb22[8]];var _0x8087x8=_0x8087x4[_0xcb22[10]][_0xcb22[9]]?parseInt(_0x8087x4[_0xcb22[10]][_0xcb22[9]],10):100;var _0x8087x9=_0x8087x4[_0xcb22[10]][_0xcb22[11]]?parseInt(_0x8087x4[_0xcb22[10]][_0xcb22[11]],10):0;var _0x8087xa={where:{},limit:_0x8087x8,offset:_0x8087x9*_0x8087x8};_[_0xcb22[25]](_0x8087x4[_0xcb22[10]],function(_0x8087xb,_0x8087xc){switch(_0x8087xc){case _0xcb22[9]:;case _0xcb22[11]:break ;;case _0xcb22[14]:_0x8087xa[_0xcb22[12]]=util[_0xcb22[17]](_0xcb22[13],_0x8087x4[_0xcb22[10]][_0xcb22[14]],_0x8087x4[_0xcb22[10]][_0xcb22[15]]||_0xcb22[16])||null;break ;;case _0xcb22[15]:break ;;case _0xcb22[23]:_0x8087xa[_0xcb22[19]][_0xcb22[18]]=[];_0x8087x7[_0xcb22[22]](function(_0x8087xd){var _0x8087xe={};_0x8087xe[_0x8087xd]={$like:_0xcb22[20]+_0x8087xb+_0xcb22[20]};_0x8087xa[_0xcb22[19]][_0xcb22[18]][_0xcb22[21]](_0x8087xe);});break ;;default:_0x8087xa[_0xcb22[19]][_0x8087xc]={$like:{}};_0x8087xa[_0xcb22[19]][_0x8087xc][_0xcb22[24]]=_0xcb22[20]+_0x8087xb+_0xcb22[20];;}});Trigger[_0xcb22[40]](_0x8087xa)[_0xcb22[39]](function(_0x8087x10){var _0x8087x11=Math[_0xcb22[31]](_0x8087x10[_0xcb22[30]]/_0x8087x8);var _0x8087x12=_0x8087x11>(_0x8087xa[_0xcb22[32]]+1)?util[_0xcb22[17]](_0xcb22[33],_0x8087x4[_0xcb22[34]],_0x8087x4[_0xcb22[36]][_0xcb22[35]],_0x8087x4[_0xcb22[37]],_0x8087x9+1):null;var _0x8087x13=_0x8087x9>0?util[_0xcb22[17]](_0xcb22[33],_0x8087x4[_0xcb22[34]],_0x8087x4[_0xcb22[36]][_0xcb22[35]],_0x8087x4[_0xcb22[37]],_0x8087x9-1):null;_0x8087x5[_0xcb22[28]](200)[_0xcb22[27]]({count:_0x8087x10[_0xcb22[30]],rows:_0x8087x10[_0xcb22[38]],next_page:_0x8087x12,previous_page:_0x8087x13,total_pages:_0x8087x11});})[_0xcb22[29]](function(_0x8087xf){_0x8087x5[_0xcb22[28]](500)[_0xcb22[27]]({error:_0xcb22[26]})});};exports[_0xcb22[41]]=function(_0x8087x4,_0x8087x5){Trigger[_0xcb22[45]](_0x8087x4[_0xcb22[44]][_0xcb22[43]])[_0xcb22[39]](function(Trigger){if(!Trigger){return _0x8087x5[_0xcb22[42]](404)};return _0x8087x5[_0xcb22[27]](Trigger);})[_0xcb22[29]](function(_0x8087xf){return handleError(_0x8087x5,_0x8087xf)})};exports[_0xcb22[46]]=function(_0x8087x4,_0x8087x5){Trigger[_0xcb22[46]](_0x8087x4[_0xcb22[47]])[_0xcb22[39]](function(){return _0x8087x5[_0xcb22[42]](201)})[_0xcb22[29]](function(_0x8087xf){return handleError(_0x8087x5,_0x8087xf)})};exports[_0xcb22[48]]=function(_0x8087x4,_0x8087x5,_0x8087x6){if(_0x8087x4[_0xcb22[47]][_0xcb22[43]]){delete _0x8087x4[_0xcb22[47]][_0xcb22[43]]};Trigger[_0xcb22[45]](_0x8087x4[_0xcb22[44]][_0xcb22[43]])[_0xcb22[39]](function(Trigger){if(!Trigger){return _0x8087x5[_0xcb22[42]](404)};var _0x8087x14=_[_0xcb22[49]](Trigger,_0x8087x4[_0xcb22[47]]);_0x8087x14[_0xcb22[50]]()[_0xcb22[39]](function(){return _0x8087x5[_0xcb22[28]](200)[_0xcb22[27]](Trigger)})[_0xcb22[29]](function(_0x8087xf){return _0x8087x6(_0x8087xf)});})[_0xcb22[29]](function(_0x8087xf){return _0x8087x6(_0x8087xf)});};exports[_0xcb22[51]]=function(_0x8087x4,_0x8087x5){Trigger[_0xcb22[45]](_0x8087x4[_0xcb22[44]][_0xcb22[43]])[_0xcb22[39]](function(Trigger){if(!Trigger){return _0x8087x5[_0xcb22[42]](404)};Trigger[_0xcb22[51]]()[_0xcb22[39]](function(){return _0x8087x5[_0xcb22[42]](204)})[_0xcb22[29]](function(_0x8087xf){return handleError(_0x8087x5,_0x8087xf)});})[_0xcb22[29]](function(_0x8087xf){return handleError(_0x8087x5,_0x8087xf)})};exports[_0xcb22[52]]=function(_0x8087x4,_0x8087x5){Trigger[_0xcb22[51]]({where:{id:_0x8087x4[_0xcb22[10]][_0xcb22[43]]},individualHooks:true})[_0xcb22[39]](function(){return _0x8087x5[_0xcb22[42]](204)})[_0xcb22[29]](function(_0x8087xf){return handleError(_0x8087x5,_0x8087xf)})};function handleError(_0x8087x5,_0x8087xf){return _0x8087x5[_0xcb22[28]](500)[_0xcb22[27]](_0x8087xf)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var Trigger = require('../../models').Trigger;
+
+// Get list of agents
+exports.index = function(req, res, next) {
+
+  var attributes = ['fullname', 'name', 'email'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Trigger
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single Trigger
+exports.show = function(req, res) {
+  Trigger
+    .findById(req.params.id)
+    .then(function(Trigger) {
+      if (!Trigger) {
+        return res.sendStatus(404);
+      }
+      return res.send(Trigger);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new Trigger in the DB.
+exports.create = function(req, res) {
+  Trigger
+    .create(req.body)
+    .then(function() {
+      return res.sendStatus(201);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing Trigger in the DB.
+exports.update = function(req, res, next) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Trigger
+    .findById(req.params.id)
+    .then(function(Trigger) {
+      if (!Trigger) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(Trigger, req.body);
+      updated
+        .save()
+        .then(function() {
+          return res.status(200).send(Trigger);
+        })
+        .catch(function(err) {
+          // return handleError(res, err);
+          return next(err);
+
+        });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a Trigger from the DB.
+exports.destroy = function(req, res) {
+  Trigger
+    .findById(req.params.id)
+    .then(function(Trigger) {
+      if (!Trigger) {
+        return res.sendStatus(404);
+      }
+      Trigger.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Trigger
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 98b82df..7fe5fa2 100644 (file)
@@ -1 +1,24 @@
-var _0x79c7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x72\x69\x67\x67\x65\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x72\x69\x67\x67\x65\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x79c7[0];var Trigger=require(_0x79c7[2])[_0x79c7[1]];exports[_0x79c7[3]]=function(_0x4795x2){Trigger[_0x79c7[4]](function(_0x4795x3){onSave(_0x4795x2,_0x4795x3)});Trigger[_0x79c7[5]](function(_0x4795x3){onRemove(_0x4795x2,_0x4795x3)});};function onSave(_0x4795x2,_0x4795x3,_0x4795x5){_0x4795x2[_0x79c7[7]](_0x79c7[6],_0x4795x3)}function onRemove(_0x4795x2,_0x4795x3,_0x4795x5){_0x4795x2[_0x79c7[7]](_0x79c7[8],_0x4795x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Trigger = require('../../models').Trigger;
+
+exports.register = function(socket) {
+  Trigger.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Trigger.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('trigger:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('trigger:remove', doc);
+}
index cc4d110..c88586d 100644 (file)
@@ -1 +1,20 @@
-var _0xcf4d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x67\x65\x74"];_0xcf4d[0];var should=require(_0xcf4d[1]);var app=require(_0xcf4d[2]);var request=require(_0xcf4d[3]);describe(_0xcf4d[4],function(){it(_0xcf4d[5],function(_0x10c0x4){request(app)[_0xcf4d[13]](_0xcf4d[12])[_0xcf4d[11]](200)[_0xcf4d[11]](_0xcf4d[10],/json/)[_0xcf4d[9]](function(_0x10c0x5,_0x10c0x6){if(_0x10c0x5){return _0x10c0x4(_0x10c0x5)};_0x10c0x6[_0xcf4d[8]][_0xcf4d[1]][_0xcf4d[7]][_0xcf4d[6]](Array);_0x10c0x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/triggers', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/triggers')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 1760dea..ea72fdd 100644 (file)
@@ -1 +1,18 @@
-var _0x33d5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x74\x72\x75\x6E\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x33d5[0];var express=require(_0x33d5[1]);var controller=require(_0x33d5[2]);var config=require(_0x33d5[3]);var auth=require(_0x33d5[4]);var router=express.Router();router[_0x33d5[8]](_0x33d5[5],auth[_0x33d5[6]](),controller[_0x33d5[7]]);router[_0x33d5[8]](_0x33d5[9],auth[_0x33d5[6]](),controller[_0x33d5[10]]);router[_0x33d5[12]](_0x33d5[5],auth[_0x33d5[6]](),controller[_0x33d5[11]]);router[_0x33d5[12]](_0x33d5[13],auth[_0x33d5[6]](),controller[_0x33d5[14]]);router[_0x33d5[16]](_0x33d5[9],auth[_0x33d5[6]](),controller[_0x33d5[15]]);router[_0x33d5[18]](_0x33d5[5],auth[_0x33d5[6]](),controller[_0x33d5[17]]);router[_0x33d5[18]](_0x33d5[9],auth[_0x33d5[6]](),controller[_0x33d5[19]]);module[_0x33d5[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./trunk.controller');
+var config = require('../../config/environment');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.trunkValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 6c8e79b..32b4a66 100644 (file)
@@ -1 +1,90 @@
-var _0x75aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x67\x69\x73\x74\x65\x72","\x63\x72\x65\x61\x74\x65\x20\x74\x72\x75\x6E\x6B\x20\x68\x6F\x6F\x6B","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x20\x74\x72\x75\x6E\x6B\x20\x68\x6F\x6F\x6B","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x64\x65\x6C\x65\x74\x65\x20\x74\x72\x75\x6E\x6B\x20\x68\x6F\x6F\x6B","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x6C\x6F\x6E\x65","\x69\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x5B\x25\x73\x5D\x0A","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x6F\x74\x68\x65\x72\x46\x69\x65\x6C\x64\x73","\x25\x73\x0A","\x25\x73\x3D\x25\x73\x0A","\x63\x61\x74\x63\x68","\x70\x6C\x75\x63\x6B","\x66\x6F\x72\x45\x61\x63\x68","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x66","\x6A\x6F\x69\x6E","\x77","\x30\x37\x37\x37","\x54\x72\x75\x6E\x6B\x73\x20\x66\x69\x6C\x65\x20\x73\x61\x76\x65\x64\x21","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70","\x65\x72\x72\x6F\x72","\x61\x63\x74\x69\x6F\x6E","\x77\x72\x69\x74\x65\x46\x69\x6C\x65","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0x75aa[0];var fs=require(_0x75aa[1]);var util=require(_0x75aa[2]);var path=require(_0x75aa[3]);var config=require(_0x75aa[4]);var Trunk=require(_0x75aa[6])[_0x75aa[5]];var VoiceExtension=require(_0x75aa[6])[_0x75aa[7]];var _=require(_0x75aa[8]);exports[_0x75aa[9]]=function(_0xc7cax8){Trunk[_0x75aa[12]](function(_0xc7cax9){console[_0x75aa[11]](_0x75aa[10]);trunksRewrite(_0xc7cax9,_0xc7cax8,false);});Trunk[_0x75aa[14]](function(_0xc7cax9){console[_0x75aa[11]](_0x75aa[13]);trunksRewrite(_0xc7cax9,_0xc7cax8,false);});Trunk[_0x75aa[16]](function(_0xc7cax9){console[_0x75aa[11]](_0x75aa[15]);trunksRewrite(_0xc7cax9,_0xc7cax8,true);});};function trunksRewrite(_0xc7cax9,_0xc7cax8,_0xc7caxb){var _0xc7caxc=_0x75aa[17];if(!_0xc7caxb){var _0xc7caxd=_[_0x75aa[19]](_0xc7cax9[_0x75aa[18]]);delete _0xc7caxd[_0x75aa[20]];delete _0xc7caxd[_0x75aa[21]];delete _0xc7caxd[_0x75aa[22]];_0xc7caxc+=util[_0x75aa[25]](_0x75aa[23],_0xc7caxd[_0x75aa[24]]);if(_0xc7caxd[_0x75aa[26]]){_0xc7caxc+=util[_0x75aa[25]](_0x75aa[27],_0xc7caxd[_0x75aa[26]]);delete _0xc7caxd[_0x75aa[26]];};for(var _0xc7caxe in _0xc7caxd){if(_0xc7caxd[_0xc7caxe]){_0xc7caxc+=util[_0x75aa[25]](_0x75aa[28],_0xc7caxe,_0xc7caxd[_0xc7caxe])}};};Trunk[_0x75aa[44]]({where:{id:{$ne:_0xc7cax9[_0x75aa[20]]}}})[_0x75aa[43]](function(_0xc7cax10){var _0xc7cax11=_[_0x75aa[30]](_0xc7cax10,_0x75aa[18]);_0xc7cax11[_0x75aa[31]](function(_0xc7cax12){delete _0xc7cax12[_0x75aa[20]];delete _0xc7cax12[_0x75aa[21]];delete _0xc7cax12[_0x75aa[22]];_0xc7caxc+=util[_0x75aa[25]](_0x75aa[23],_0xc7cax12[_0x75aa[24]]);if(_0xc7cax12[_0x75aa[26]]){_0xc7caxc+=util[_0x75aa[25]](_0x75aa[27],_0xc7cax12[_0x75aa[26]]);delete _0xc7cax12[_0x75aa[26]];};for(var _0xc7caxe in _0xc7cax12){if(_0xc7cax12[_0xc7caxe]){_0xc7caxc+=util[_0x75aa[25]](_0x75aa[28],_0xc7caxe,_0xc7cax12[_0xc7caxe])}};});fs[_0x75aa[42]](path[_0x75aa[34]](config[_0x75aa[32]],_0x75aa[33]),_0xc7caxc,{flags:_0x75aa[35],mode:parseInt(_0x75aa[36],8)},function(_0xc7caxf){if(_0xc7caxf){throw _0xc7caxf};console[_0x75aa[11]](_0x75aa[37]);_0xc7cax8[_0x75aa[41]]({Action:_0x75aa[38],Module:_0x75aa[39]},function(_0xc7caxf,_0xc7cax13){if(_0xc7caxf){console[_0x75aa[40]](_0xc7caxf)}else {console[_0x75aa[11]](_0xc7cax13)}});});})[_0x75aa[29]](function(_0xc7caxf){console[_0x75aa[11]](_0xc7caxf)});}
\ No newline at end of file
+'use strict';
+
+var fs = require('fs');
+var util = require('util');
+var path = require('path');
+var config = require('../../config/environment');
+var Trunk = require('../../models').Trunk;
+var VoiceExtension = require('../../models').VoiceExtension;
+var _ = require('lodash');
+
+exports.register = function(ami) {
+  Trunk.afterCreate(function(doc) {
+    console.log('create trunk hook');
+    trunksRewrite(doc, ami, false);
+  })
+  Trunk.afterUpdate(function(doc) {
+    console.log('update trunk hook');
+    trunksRewrite(doc, ami, false);
+  })
+  Trunk.afterDelete(function(doc) {
+    console.log('delete trunk hook');
+    trunksRewrite(doc, ami, true);
+  })
+}
+
+function trunksRewrite(doc, ami, deleteTrunk) {
+  var trunksFile = '';
+  if (!deleteTrunk) {
+    var newTrunk = _.clone(doc.dataValues);
+    delete newTrunk.id;
+    delete newTrunk.createdAt;
+    delete newTrunk.updatedAt;
+    trunksFile += util.format('[%s]\n', newTrunk.name);
+    if (newTrunk.otherFields) {
+      trunksFile += util.format('%s\n', newTrunk.otherFields);
+      delete newTrunk.otherFields;
+    }
+    for (var key in newTrunk) {
+      if (newTrunk[key]) {
+        trunksFile += util.format('%s=%s\n', key, newTrunk[key]);
+      }
+    }
+  }
+  Trunk
+    .findAll({
+      where: {
+        id: {
+          $ne: doc.id
+        }
+      }
+    })
+    .then(function(trunks) {
+      var oldTrunks = _.pluck(trunks, 'dataValues');
+      oldTrunks.forEach(function(element) {
+        delete element.id;
+        delete element.createdAt;
+        delete element.updatedAt;
+        trunksFile += util.format('[%s]\n', element.name);
+        if (element.otherFields) {
+          trunksFile += util.format('%s\n', element.otherFields);
+          delete element.otherFields;
+        }
+        for (var key in element) {
+          if (element[key]) {
+            trunksFile += util.format('%s=%s\n', key, element[key]);
+          }
+        }
+      });
+      fs.writeFile(path.join(config.root, 'server/files/asterisk/sip_xcally_trunks.conf'), trunksFile, {
+        flags: 'w',
+        mode: parseInt('0777', 8)
+      }, function(err) {
+        if (err) throw err;
+        console.log("Trunks file saved!");
+        ami.action({
+          Action: 'Reload',
+          Module: 'chan_sip'
+        }, function(err, res) {
+          if (err) {
+            console.error(err);
+          } else {
+            console.log(res);
+          }
+        });
+      });
+    })
+    .catch(function(err) {
+      console.log(err);
+    });
+}
index 8aed4fc..2ccdd9a 100644 (file)
@@ -1 +1,298 @@
-var _0x8d03=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x68\x6F\x73\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x72\x6F\x6C\x65","\x73\x70\x6C\x69\x74","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x74\x72\x75\x6E\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x74\x72\x75\x6E\x6B\x73\x20\x66\x69\x6E\x64\x61\x6C\x6C","\x46\x69\x6E\x64\x69\x6E\x67\x20\x61\x70\x70\x20\x72\x6F\x77\x2E\x2E\x2E\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x54\x52\x55\x4E\x4B","\x74\x72\x75\x6E\x6B\x73\x20\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x63\x75\x74\x64\x69\x67\x69\x74\x73","\x6C\x69\x74\x65\x72\x61\x6C","\x73\x61\x76\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x54\x52\x55\x4E\x4B\x5F\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x67\x65\x74\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73"];_0x8d03[0];var _=require(_0x8d03[1]);var Trunk=require(_0x8d03[3])[_0x8d03[2]];var VoiceExtension=require(_0x8d03[3])[_0x8d03[4]];var sequelize=require(_0x8d03[3])[_0x8d03[5]];var util=require(_0x8d03[6]);exports[_0x8d03[7]]=function(_0x591fx6,_0x591fx7,_0x591fx8){var _0x591fx9=[_0x8d03[8],_0x8d03[9],_0x8d03[10],_0x8d03[11]];var _0x591fxa=_0x591fx6[_0x8d03[13]][_0x8d03[12]]?parseInt(_0x591fx6[_0x8d03[13]][_0x8d03[12]],10):100;var _0x591fxb=_0x591fx6[_0x8d03[13]][_0x8d03[14]]?parseInt(_0x591fx6[_0x8d03[13]][_0x8d03[14]],10):0;var _0x591fxc={where:{},limit:_0x591fxa,offset:_0x591fxb*_0x591fxa};_[_0x8d03[30]](_0x591fx6[_0x8d03[13]],function(_0x591fxd,_0x591fxe){switch(_0x591fxe){case _0x8d03[12]:;case _0x8d03[14]:break ;;case _0x8d03[17]:_0x591fxc[_0x8d03[15]]=util[_0x8d03[20]](_0x8d03[16],_0x591fx6[_0x8d03[13]][_0x8d03[17]],_0x591fx6[_0x8d03[13]][_0x8d03[18]]||_0x8d03[19])||null;break ;;case _0x8d03[18]:break ;;case _0x8d03[26]:_0x591fxc[_0x8d03[22]][_0x8d03[21]]=[];_0x591fx9[_0x8d03[25]](function(_0x591fxf){var _0x591fx10={};_0x591fx10[_0x591fxf]={$like:_0x8d03[23]+_0x591fxd+_0x8d03[23]};_0x591fxc[_0x8d03[22]][_0x8d03[21]][_0x8d03[24]](_0x591fx10);});break ;;case _0x8d03[27]:_0x591fxc[_0x8d03[22]][_0x8d03[27]]={$or:_0x591fxd[_0x8d03[28]](/[\s,]+/)};break ;;default:_0x591fxc[_0x8d03[22]][_0x591fxe]={$like:{}};_0x591fxc[_0x8d03[22]][_0x591fxe][_0x8d03[29]]=_0x8d03[23]+_0x591fxd+_0x8d03[23];;}});Trunk[_0x8d03[44]](_0x591fxc)[_0x8d03[43]](function(_0x591fx12){var _0x591fx13=Math[_0x8d03[36]](_0x591fx12[_0x8d03[35]]/_0x591fxa);var _0x591fx14=_0x591fx13>(_0x591fxc[_0x8d03[37]]+1)?util[_0x8d03[20]](_0x8d03[38],_0x591fx6[_0x8d03[39]],_0x591fx6[_0x8d03[40]][_0x8d03[9]],_0x591fx6[_0x8d03[41]],_0x591fxb+1):null;var _0x591fx15=_0x591fxb>0?util[_0x8d03[20]](_0x8d03[38],_0x591fx6[_0x8d03[39]],_0x591fx6[_0x8d03[40]][_0x8d03[9]],_0x591fx6[_0x8d03[41]],_0x591fxb-1):null;_0x591fx7[_0x8d03[33]](200)[_0x8d03[32]]({count:_0x591fx12[_0x8d03[35]],rows:_0x591fx12[_0x8d03[42]],next_page:_0x591fx14,previous_page:_0x591fx15,total_pages:_0x591fx13});})[_0x8d03[34]](function(_0x591fx11){_0x591fx7[_0x8d03[33]](500)[_0x8d03[32]]({error:_0x8d03[31]})});};exports[_0x8d03[45]]=function(_0x591fx6,_0x591fx7){Trunk[_0x8d03[49]](_0x591fx6[_0x8d03[48]][_0x8d03[47]])[_0x8d03[43]](function(_0x591fx16){if(!_0x591fx16){return _0x591fx7[_0x8d03[46]](404)};return _0x591fx7[_0x8d03[32]](_0x591fx16);})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)})};exports[_0x8d03[50]]=function(_0x591fx6,_0x591fx7){console[_0x8d03[52]](_0x591fx6[_0x8d03[51]]);Trunk[_0x8d03[53]]({where:{name:_0x591fx6[_0x8d03[51]][_0x8d03[8]]}})[_0x8d03[43]](function(_0x591fx17){if(!_0x591fx17){return _0x591fx7[_0x8d03[46]](404)};return _0x591fx7[_0x8d03[32]](_0x591fx17);})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)});};exports[_0x8d03[54]]=function(_0x591fx6,_0x591fx7){Trunk[_0x8d03[53]]({where:{name:_0x591fx6[_0x8d03[51]][_0x8d03[8]]}})[_0x8d03[43]](function(_0x591fx18){console[_0x8d03[52]](_0x591fx18);console[_0x8d03[52]](_0x8d03[56]);if(!_0x591fx18){return _0x591fx7[_0x8d03[46]](404)};if(_0x591fx18[_0x8d03[57]]>0){return _0x591fx7[_0x8d03[33]](500)[_0x8d03[32]]({message:_0x8d03[58]})};Trunk[_0x8d03[54]](_0x591fx6[_0x8d03[51]])[_0x8d03[43]](function(_0x591fx16){return _0x591fx7[_0x8d03[33]](201)[_0x8d03[32]](_0x591fx16)})[_0x8d03[34]](function(_0x591fx11){console[_0x8d03[52]](_0x8d03[59],_0x591fx11);return handleError(_0x591fx7,_0x591fx11);});})[_0x8d03[34]](function(_0x591fx11){console[_0x8d03[52]](_0x8d03[55],_0x591fx11);return handleError(_0x591fx7,_0x591fx11);})};exports[_0x8d03[60]]=function(_0x591fx6,_0x591fx7,_0x591fx8){Trunk[_0x8d03[53]]({where:{name:_0x591fx6[_0x8d03[51]][_0x8d03[8]],id:{$ne:_0x591fx6[_0x8d03[51]][_0x8d03[47]]}}})[_0x8d03[43]](function(_0x591fx18){console[_0x8d03[52]](_0x591fx18);console[_0x8d03[52]](_0x8d03[56]);if(!_0x591fx18){return _0x591fx7[_0x8d03[46]](404)};if(_0x591fx18[_0x8d03[57]]>0){return _0x591fx7[_0x8d03[33]](500)[_0x8d03[32]]({message:_0x8d03[58]})};if(_0x591fx6[_0x8d03[51]][_0x8d03[47]]){delete _0x591fx6[_0x8d03[51]][_0x8d03[47]]};Trunk[_0x8d03[49]](_0x591fx6[_0x8d03[48]][_0x8d03[47]])[_0x8d03[43]](function(_0x591fx16){if(!_0x591fx16){return _0x591fx7[_0x8d03[46]](404)};var _0x591fx19=_[_0x8d03[61]](_0x591fx16,_0x591fx6[_0x8d03[51]]);return sequelize[_0x8d03[65]](function(_0x591fx1a){return _0x591fx19[_0x8d03[64]]({transaction:_0x591fx1a})[_0x8d03[43]](function(_0x591fx16){return VoiceExtension[_0x8d03[60]]({trunk:_0x591fx16[_0x8d03[8]],cutdigits:sequelize[_0x8d03[63]](_0x8d03[62])},{where:{TrunkId:_0x591fx16[_0x8d03[47]]}},{transaction:_0x591fx1a})[_0x8d03[43]](function(){return _0x591fx7[_0x8d03[33]](200)[_0x8d03[32]](_0x591fx16)})})})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)});})[_0x8d03[34]](function(_0x591fx11){return _0x591fx8(_0x591fx11)});})[_0x8d03[34]](function(_0x591fx11){return _0x591fx8(_0x591fx11)})};exports[_0x8d03[66]]=function(_0x591fx6,_0x591fx7){Trunk[_0x8d03[49]](_0x591fx6[_0x8d03[48]][_0x8d03[47]])[_0x8d03[43]](function(_0x591fx16){if(!_0x591fx16){return _0x591fx7[_0x8d03[46]](404)};_0x591fx16[_0x8d03[68]]({where:{isApp:true}})[_0x8d03[43]](function(_0x591fx1b){console[_0x8d03[52]](_0x591fx1b[_0x8d03[57]]);if(_0x591fx1b[_0x8d03[57]]>0){return _0x591fx7[_0x8d03[33]](500)[_0x8d03[32]]({message:_0x8d03[67]})};_0x591fx16[_0x8d03[66]]()[_0x8d03[43]](function(){return _0x591fx7[_0x8d03[46]](204)})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)});})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)});})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)})};exports[_0x8d03[69]]=function(_0x591fx6,_0x591fx7){var _0x591fx1c=false;Trunk[_0x8d03[53]]({where:{id:_0x591fx6[_0x8d03[13]][_0x8d03[47]]},include:[{all:true}]})[_0x8d03[43]](function(_0x591fx17){if(!_0x591fx17){return _0x591fx7[_0x8d03[46]](404)};_0x591fx17[_0x8d03[25]](function(_0x591fx1d){if(_0x591fx1d[_0x8d03[70]][_0x8d03[57]]>0){_0x591fx1c=true}});if(_0x591fx1c){return _0x591fx7[_0x8d03[33]](500)[_0x8d03[32]]({message:_0x8d03[67]})};Trunk[_0x8d03[66]]({where:{id:_0x591fx6[_0x8d03[13]][_0x8d03[47]]},individualHooks:true})[_0x8d03[43]](function(){return _0x591fx7[_0x8d03[46]](204)})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)});})[_0x8d03[34]](function(_0x591fx11){return handleError(_0x591fx7,_0x591fx11)});};function handleError(_0x591fx7,_0x591fx11){return _0x591fx7[_0x8d03[33]](500)[_0x8d03[32]](_0x591fx11)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Trunk = require('../../models').Trunk;
+var VoiceExtension = require('../../models').VoiceExtension;
+var sequelize = require('../../models').sequelize;
+var util = require('util');
+
+// Get list of trunks
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'host', 'context', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      case 'role':
+        query.where.role = {
+          $or: value.split(/[\s,]+/)
+        };
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Trunk
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+// Get a single trunk
+exports.show = function(req, res) {
+  Trunk
+    .findById(req.params.id)
+    .then(function(trunk) {
+      if (!trunk) {
+        return res.sendStatus(404);
+      }
+      return res.send(trunk);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of a trunk
+exports.trunkValidation = function(req, res) {
+  console.log(req.body);
+  Trunk
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(trunks) {
+      if (!trunks) {
+        return res.sendStatus(404);
+      }
+      return res.send(trunks);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new trunk in the DB.
+exports.create = function(req, res) {
+  Trunk
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(existingTrunks) {
+      console.log(existingTrunks);
+      console.log('Finding app row.....');
+      if (!existingTrunks) {
+        return res.sendStatus(404);
+      }
+      if (existingTrunks.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_TRUNK'
+        });
+      }
+      Trunk
+        .create(req.body)
+        .then(function(trunk) {
+          return res.status(201).send(trunk);
+        })
+        .catch(function(err) {
+          console.log('trunks create', err);
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      console.log('trunks findall', err);
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing trunk in the DB.
+exports.update = function(req, res, next) {
+  Trunk
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(existingTrunks) {
+      console.log(existingTrunks);
+      console.log('Finding app row.....');
+      if (!existingTrunks) {
+        return res.sendStatus(404);
+      }
+      if (existingTrunks.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_TRUNK'
+        });
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Trunk
+        .findById(req.params.id)
+        .then(function(trunk) {
+          if (!trunk) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(trunk, req.body);
+          return sequelize.transaction(function(t) {
+              return updated.save({
+                  transaction: t
+                })
+                .then(function(trunk) {
+                  return VoiceExtension
+                    .update({
+                      trunk: trunk.name,
+                      cutdigits: sequelize.literal('cutdigits')
+                    }, {
+                      where: {
+                        TrunkId: trunk.id
+                      }
+                    }, {
+                      transaction: t
+                    })
+                    .then(function() {
+                      return res.status(200).send(trunk);
+                    })
+                })
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return next(err);
+        });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a trunk from the DB.
+exports.destroy = function(req, res) {
+  Trunk
+    .findById(req.params.id)
+    .then(function(trunk) {
+      if (!trunk) {
+        return res.sendStatus(404);
+      }
+      trunk.getVoiceExtensions({
+          where: {
+            isApp: true
+          }
+        })
+        .then(function(outbound_dials) {
+          console.log(outbound_dials.length);
+          if (outbound_dials.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_TRUNK_OUTBOUND_ASSOCIATED'
+            });
+          }
+          trunk.destroy()
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes multiple trunk from the DB.
+exports.bulkDestroy = function(req, res) {
+  var associatedTrunks = false;
+  Trunk
+    .findAll({
+      where: {
+        id: req.query.id
+      },
+      include: [{
+        all: true
+      }]
+    })
+    .then(function(trunks) {
+      if (!trunks) {
+        return res.sendStatus(404);
+      }
+      trunks.forEach(function(element) {
+        if (element.VoiceExtensions.length > 0) {
+          associatedTrunks = true;
+        }
+      });
+      if (associatedTrunks) {
+        return res.status(500).send({
+          message: 'MESSAGE_TRUNK_OUTBOUND_ASSOCIATED'
+        });
+      }
+      Trunk
+        .destroy({
+          where: {
+            id: req.query.id
+          },
+          individualHooks: true
+        })
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index cfd9f72..d4f7e36 100644 (file)
@@ -1 +1,24 @@
-var _0x546d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x72\x75\x6E\x6B\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x72\x75\x6E\x6B\x3A\x72\x65\x6D\x6F\x76\x65"];_0x546d[0];var Trunk=require(_0x546d[2])[_0x546d[1]];exports[_0x546d[3]]=function(_0xc553x2){Trunk[_0x546d[4]](function(_0xc553x3){onSave(_0xc553x2,_0xc553x3)});Trunk[_0x546d[5]](function(_0xc553x3){onRemove(_0xc553x2,_0xc553x3)});};function onSave(_0xc553x2,_0xc553x3,_0xc553x5){_0xc553x2[_0x546d[7]](_0x546d[6],_0xc553x3)}function onRemove(_0xc553x2,_0xc553x3,_0xc553x5){_0xc553x2[_0x546d[7]](_0x546d[8],_0xc553x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Trunk = require('../../models').User;
+
+exports.register = function(socket) {
+  Trunk.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Trunk.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('trunk:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('trunk:remove', doc);
+}
index 872c7dd..48ad76c 100644 (file)
@@ -1 +1,20 @@
-var _0xccc0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x67\x65\x74"];_0xccc0[0];var should=require(_0xccc0[1]);var app=require(_0xccc0[2]);var request=require(_0xccc0[3]);describe(_0xccc0[4],function(){it(_0xccc0[5],function(_0x7f83x4){request(app)[_0xccc0[13]](_0xccc0[12])[_0xccc0[11]](200)[_0xccc0[11]](_0xccc0[10],/json/)[_0xccc0[9]](function(_0x7f83x5,_0x7f83x6){if(_0x7f83x5){return _0x7f83x4(_0x7f83x5)};_0x7f83x6[_0xccc0[8]][_0xccc0[1]][_0xccc0[7]][_0xccc0[6]](Array);_0x7f83x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/trunks', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/trunks')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index b91e260..d57b32c 100644 (file)
@@ -1 +1,18 @@
-var _0xbe8a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x70\x64\x61\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x61\x64\x6D\x69\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x70\x75\x6C\x6C","\x70\x75\x6C\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0xbe8a[0];var express=require(_0xbe8a[1]);var controller=require(_0xbe8a[2]);var auth=require(_0xbe8a[3]);var router=express.Router();router[_0xbe8a[9]](_0xbe8a[4],auth[_0xbe8a[5]](),auth[_0xbe8a[7]](_0xbe8a[6]),controller[_0xbe8a[8]]);router[_0xbe8a[9]](_0xbe8a[10],auth[_0xbe8a[5]](),auth[_0xbe8a[7]](_0xbe8a[6]),controller[_0xbe8a[11]]);module[_0xbe8a[12]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./update.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), auth.hasRole('admin'), controller.index);
+router.get('/pull', auth.isAuthenticated(), auth.hasRole('admin'), controller.pull);
+// router.get('/checkout/:hash', controller.checkout);
+// router.get('/:id', controller.show);
+// router.post('/', controller.create);
+// router.put('/:id', controller.update);
+// router.patch('/:id', controller.update);
+// router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 3d8d386..6637294 100644 (file)
@@ -1 +1,127 @@
-var _0x30db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x6F\x6F\x74","\x6A\x6F\x69\x6E","\x73\x69\x6D\x70\x6C\x65\x2D\x67\x69\x74","\x55\x70\x64\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x76\x65\x72\x73\x69\x6F\x6E","\x7C","\x73\x70\x6C\x69\x74","\x6D\x65\x73\x73\x61\x67\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x61\x6C\x6C","\x4C\x61\x74\x65\x73\x74\x20\x61\x76\x61\x69\x6C\x61\x62\x6C\x65\x20\x74\x61\x67\x3A\x20\x25\x73","\x6C\x61\x74\x65\x73\x74","\x6C\x6F\x67","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x73\x68\x6F\x77","\x70\x75\x6C\x6C","\x63\x68\x65\x63\x6B\x6F\x75\x74","\x72\x65\x71\x2E\x70\x61\x72\x61\x6D\x73\x2E\x68\x61\x73\x68","\x68\x61\x73\x68","\x70\x61\x72\x61\x6D\x73","\x63\x72\x65\x61\x74\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x69\x64","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x30db[0];var _=require(_0x30db[1]);var path=require(_0x30db[2]);var config=require(_0x30db[3]);var Git=require(_0x30db[6])(path[_0x30db[5]](config[_0x30db[4]]));var Update=require(_0x30db[8])[_0x30db[7]];exports[_0x30db[9]]=function(_0xc85bx6,_0xc85bx7){Git[_0x30db[20]](function(_0xc85bx8,_0xc85bx9){if(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)};var _0xc85bxa=[];_0xc85bx9[_0x30db[17]][_0x30db[16]](function(_0xc85bxb){_0xc85bxb[_0x30db[10]]=_0xc85bxb[_0x30db[13]][_0x30db[12]](_0x30db[11])[1]||_0x30db[14];_0xc85bxb[_0x30db[13]]=_0xc85bxb[_0x30db[13]][_0x30db[12]](_0x30db[11])[0];_0xc85bxa[_0x30db[15]](_0xc85bxb);});console[_0x30db[20]](_0x30db[18],_0xc85bx9[_0x30db[19]]);return _0xc85bx7[_0x30db[22]](200)[_0x30db[21]](_0xc85bxa);})};exports[_0x30db[23]]=function(_0xc85bx6,_0xc85bx7){};exports[_0x30db[24]]=function(_0xc85bx6,_0xc85bx7){Git[_0x30db[24]](function(_0xc85bx8,_0xc85bxc){if(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)};return _0xc85bx7[_0x30db[22]](201)[_0x30db[21]](_0xc85bxc);})};exports[_0x30db[25]]=function(_0xc85bx6,_0xc85bx7){console[_0x30db[20]](_0x30db[26],_0xc85bx6[_0x30db[28]][_0x30db[27]]);Git[_0x30db[25]](_0xc85bx6[_0x30db[28]][_0x30db[27]],function(_0xc85bx8,_0xc85bxc){if(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)};return _0xc85bx7[_0x30db[22]](201)[_0x30db[21]](_0xc85bxc);});};exports[_0x30db[29]]=function(_0xc85bx6,_0xc85bx7){Update[_0x30db[29]](_0xc85bx6[_0x30db[32]])[_0x30db[31]](function(_0xc85bxc){return _0xc85bx7[_0x30db[22]](201)[_0x30db[21]](_0xc85bxc)})[_0x30db[30]](function(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)})};exports[_0x30db[33]]=function(_0xc85bx6,_0xc85bx7){if(_0xc85bx6[_0x30db[32]][_0x30db[34]]){delete _0xc85bx6[_0x30db[32]][_0x30db[34]]};Update[_0x30db[38]]({where:{id:_0xc85bx6[_0x30db[28]][_0x30db[34]]}})[_0x30db[31]](function(_0xc85bxc){if(!_0xc85bxc){return _0xc85bx7[_0x30db[35]](404)};var _0xc85bxd=_[_0x30db[36]](_0xc85bxc,_0xc85bx6[_0x30db[32]]);_0xc85bxd[_0x30db[37]]()[_0x30db[31]](function(){return _0xc85bx7[_0x30db[22]](200)[_0x30db[21]](_0xc85bxc)})[_0x30db[30]](function(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)});})[_0x30db[30]](function(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)});};exports[_0x30db[39]]=function(_0xc85bx6,_0xc85bx7){Update[_0x30db[38]]({where:{id:_0xc85bx6[_0x30db[28]][_0x30db[34]]}})[_0x30db[31]](function(_0xc85bxc){if(!_0xc85bxc){return _0xc85bx7[_0x30db[35]](404)};_0xc85bxc[_0x30db[39]]()[_0x30db[31]](function(){return _0xc85bx7[_0x30db[35]](204)})[_0x30db[30]](function(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)});})[_0x30db[30]](function(_0xc85bx8){return handleError(_0xc85bx7,_0xc85bx8)})};function handleError(_0xc85bx7,_0xc85bx8){return _0xc85bx7[_0x30db[22]](500)[_0x30db[21]](_0xc85bx8)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var path = require("path");
+var config = require('../../config/environment');
+
+var Git = require('simple-git')(path.join(config.root));
+
+var Update = require('../../models').Update;
+
+// Get list of updates
+exports.index = function(req, res) {
+  Git
+    .log(function(err, logs) {
+      if (err) {
+        return handleError(res, err);
+      }
+
+      var versions = [];
+      logs.all.forEach(function(log) {
+        log.version = log.message.split('|')[1] || 'unknown';
+        log.message = log.message.split('|')[0];
+        versions.push(log);
+      });
+      //logs.all = _.take(logs.all, 10);
+      console.log("Latest available tag: %s", logs.latest);
+      return res.status(200).send(versions);
+    });
+};
+
+// Get a single update
+exports.show = function(req, res) {
+
+};
+
+// Get a single update
+exports.pull = function(req, res) {
+  Git
+    .pull(function(err, update) {
+      if (err) {
+        return handleError(res, err);
+      }
+      return res.status(201).send(update);
+    });
+};
+
+// Get a single update
+exports.checkout = function(req, res) {
+  console.log('req.params.hash', req.params.hash);
+  Git
+    .checkout(req.params.hash, function(err, update) {
+      if (err) {
+        return handleError(res, err);
+      }
+      return res.status(201).send(update);
+    });
+};
+
+// Creates a new update in the DB.
+exports.create = function(req, res) {
+  Update
+    .create(req.body)
+    .then(function(update) {
+      return res.status(201).send(update);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing update in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Update
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(update) {
+      if (!update) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(update, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(update);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a update from the DB.
+exports.destroy = function(req, res) {
+  Update
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(update) {
+      if (!update) {
+        return res.sendStatus(404);
+      }
+      update.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index b53ae65..6333030 100644 (file)
@@ -1 +1,11 @@
-var _0xda7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x55\x70\x64\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x64\x65\x66\x69\x6E\x65"];_0xda7d[0];module[_0xda7d[1]]=function(_0x5daex1,_0x5daex2){var _0x5daex3=_0x5daex1[_0xda7d[4]](_0xda7d[2],{name:_0x5daex2[_0xda7d[3]],description:_0x5daex2[_0xda7d[3]]});return _0x5daex3;};
\ No newline at end of file
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+
+  var Update = sequelize.define('Update', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING
+  });
+
+  return Update;
+};
index 51550fd..149d026 100644 (file)
@@ -1 +1,24 @@
-var _0xf9f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x70\x64\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x70\x64\x61\x74\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x70\x64\x61\x74\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xf9f5[0];var Update=require(_0xf9f5[2])[_0xf9f5[1]];exports[_0xf9f5[3]]=function(_0x85dex2){Update[_0xf9f5[4]](function(_0x85dex3){onSave(_0x85dex2,_0x85dex3)});Update[_0xf9f5[5]](function(_0x85dex3){onRemove(_0x85dex2,_0x85dex3)});};function onSave(_0x85dex2,_0x85dex3,_0x85dex5){_0x85dex2[_0xf9f5[7]](_0xf9f5[6],_0x85dex3)}function onRemove(_0x85dex2,_0x85dex3,_0x85dex5){_0x85dex2[_0xf9f5[7]](_0xf9f5[8],_0x85dex3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Update = require('../../models').Update;
+
+exports.register = function(socket) {
+  Update.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  Update.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('update:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('update:remove', doc);
+}
index 73a221d..21276e3 100644 (file)
@@ -1 +1,20 @@
-var _0x699b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65\x73","\x67\x65\x74"];_0x699b[0];var should=require(_0x699b[1]);var app=require(_0x699b[2]);var request=require(_0x699b[3]);describe(_0x699b[4],function(){it(_0x699b[5],function(_0xb180x4){request(app)[_0x699b[13]](_0x699b[12])[_0x699b[11]](200)[_0x699b[11]](_0x699b[10],/json/)[_0x699b[9]](function(_0xb180x5,_0xb180x6){if(_0xb180x5){return _0xb180x4(_0xb180x5)};_0xb180x6[_0x699b[8]][_0x699b[1]][_0x699b[7]][_0x699b[6]](Array);_0xb180x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/updates', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/updates')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 1458ac5..3b2eded 100644 (file)
@@ -1 +1,17 @@
-var _0x504b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x70\x6C\x6F\x61\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2F\x73\x74\x72\x65\x61\x6D\x2F\x3A\x69\x64","\x73\x74\x72\x65\x61\x6D","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x504b[0];var express=require(_0x504b[1]);var controller=require(_0x504b[2]);var auth=require(_0x504b[3]);var router=express.Router();router[_0x504b[7]](_0x504b[4],auth[_0x504b[5]](),controller[_0x504b[6]]);router[_0x504b[7]](_0x504b[8],auth[_0x504b[5]](),controller[_0x504b[9]]);router[_0x504b[7]](_0x504b[10],auth[_0x504b[5]](),controller[_0x504b[11]]);router[_0x504b[13]](_0x504b[4],auth[_0x504b[5]](),controller[_0x504b[12]]);router[_0x504b[15]](_0x504b[8],auth[_0x504b[5]](),controller[_0x504b[14]]);router[_0x504b[16]](_0x504b[8],auth[_0x504b[5]](),controller[_0x504b[14]]);router[_0x504b[18]](_0x504b[8],auth[_0x504b[5]](),controller[_0x504b[17]]);module[_0x504b[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./upload.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.download);
+router.get('/stream/:id', auth.isAuthenticated(), controller.stream);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 7386c8f..2457a8b 100644 (file)
@@ -1 +1,270 @@
-var _0x26cd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x70\x6C\x6F\x61\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x73\x6F\x78","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x66\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x6A\x6F\x69\x6E","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x4D\x61\x78\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x66\x69\x6C\x65\x73\x20\x75\x70\x6C\x6F\x61\x64\x20\x65\x78\x63\x65\x65\x64\x65\x64","\x4F\x6E\x6C\x79\x20\x77\x61\x76\x2C\x6D\x70\x33\x2C\x67\x73\x6D\x2C\x20\x61\x6E\x64\x20\x6F\x67\x67\x20\x66\x6F\x72\x6D\x61\x74\x20\x61\x63\x63\x65\x70\x74\x65\x64","\x54\x68\x65\x20\x6D\x61\x78\x69\x6D\x75\x6D\x20\x66\x69\x6C\x65\x20\x73\x69\x7A\x65\x20\x69\x73\x20\x31\x35\x20\x4D\x62","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x64","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","","\x6E\x61\x6D\x65","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x70\x61\x74\x68","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x70\x61\x74\x68","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x2E\x77\x61\x76","\x30\x37\x37\x37","\x63\x68\x6D\x6F\x64\x53\x79\x6E\x63","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x20\x52\x65\x73\x75\x6C\x74\x3A\x20","\x6C\x6F\x67","\x69\x64\x65\x6E\x74\x69\x66\x79","\x77\x61\x76","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x65\x72\x72\x6F\x72","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x20\x43\x6F\x6E\x76\x65\x72\x73\x69\x6F\x6E\x20\x45\x72\x72\x6F\x72\x3A\x20","\x75\x6E\x6C\x69\x6E\x6B","\x6F\x6E","\x70\x72\x6F\x67\x72\x65\x73\x73","\x73\x72\x63","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x66\x6F\x72\x6D\x61\x74","\x66\x6F\x72\x6D\x61\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x62\x69\x74\x52\x61\x74\x65","\x62\x69\x74\x52\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x64\x65\x73\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x62\x69\x74\x52\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x43\x6F\x6E\x76\x65\x72\x73\x69\x6F\x6E\x20\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x73\x74\x61\x72\x74","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x20\x55\x70\x6C\x6F\x61\x64\x20\x65\x72\x72\x6F\x72\x20\x3A","\x70\x61\x72\x73\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x2E","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x53\x65\x6E\x74\x20\x66\x69\x6C\x65\x20\x75\x6E\x64\x65\x72\x20\x3A","\x73\x74\x72\x65\x61\x6D","\x65\x6E\x63\x6F\x64\x65"];_0x26cd[0];var _=require(_0x26cd[1]);var Upload=require(_0x26cd[3])[_0x26cd[2]];var uploadFile=require(_0x26cd[4]);var sr=require(_0x26cd[5]);var sox=require(_0x26cd[6]);var path=require(_0x26cd[7]);var config=require(_0x26cd[8]);var fs=require(_0x26cd[9]);var sequelize=require(_0x26cd[3])[_0x26cd[10]];var base64=require(_0x26cd[11]);exports[_0x26cd[12]]=function(_0x9146xb,_0x9146xc){Upload[_0x26cd[17]]()[_0x26cd[16]](function(_0x9146xe){return _0x9146xc[_0x26cd[15]](200)[_0x26cd[14]](_0x9146xe)})[_0x26cd[13]](function(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)})};exports[_0x26cd[18]]=function(_0x9146xb,_0x9146xc){Upload[_0x26cd[22]](_0x9146xb[_0x26cd[21]][_0x26cd[20]])[_0x26cd[16]](function(_0x9146xf){if(!_0x9146xf){return _0x9146xc[_0x26cd[19]](404)};return _0x9146xc[_0x26cd[14]](_0x9146xf);})[_0x26cd[13]](function(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)})};exports[_0x26cd[23]]=function(_0x9146xb,_0x9146xc){var _0x9146xf= new uploadFile({dest:path[_0x26cd[26]](config[_0x26cd[24]],_0x26cd[25]),maxFileSize:15*1000000,maxNumberOfFiles:10,minNumberOfFiles:0,acceptFileTypes:/(\.|\/)(wav|mp3|gsm|ogg)$/i,rename:function(_0x9146x10,_0x9146x11){return sr()+path[_0x26cd[28]](_0x9146x11[_0x26cd[27]])},messages:{maxNumberOfFiles:_0x26cd[29],acceptFileTypes:_0x26cd[30],maxFileSize:_0x26cd[31],invalidRequest:_0x26cd[32]}});_0x9146xf[_0x26cd[55]](_0x26cd[33],function(_0x9146x12,_0x9146x13){var _0x9146x14={};_0x9146x14[_0x26cd[34]]=_0x26cd[35];_0x9146x14[_0x26cd[36]]=_0x9146x14[_0x26cd[37]]=path[_0x26cd[39]](_0x9146x13[_0x26cd[38]][_0x26cd[7]],path[_0x26cd[28]](_0x9146x13[_0x26cd[38]][_0x26cd[27]]));_0x9146x14[_0x26cd[40]]=path[_0x26cd[39]](_0x9146x13[_0x26cd[38]][_0x26cd[27]],path[_0x26cd[28]](_0x9146x13[_0x26cd[38]][_0x26cd[27]]));_0x9146x14[_0x26cd[41]]=path[_0x26cd[26]](config[_0x26cd[24]],_0x26cd[25]);_0x9146x14[_0x26cd[42]]=path[_0x26cd[26]](config[_0x26cd[24]],_0x26cd[43]);if(!_0x9146x13[_0x26cd[38]][_0x26cd[27]]){return _0x9146xc[_0x26cd[15]](500)[_0x26cd[14]](_0x9146xf)};var _0x9146x15=path[_0x26cd[26]](_0x9146x14[_0x26cd[41]],_0x9146x14[_0x26cd[40]]+path[_0x26cd[28]](_0x9146x13[_0x26cd[38]][_0x26cd[27]]));var _0x9146x16=path[_0x26cd[26]](_0x9146x14[_0x26cd[42]],_0x9146x14[_0x26cd[40]]+_0x26cd[44]);fs[_0x26cd[46]](_0x9146x15,parseInt(_0x26cd[45],8));sox[_0x26cd[49]](_0x9146x15,function(_0x9146xd,_0x9146x17){console[_0x26cd[48]](_0x26cd[47],_0x9146x17)});var _0x9146x18=sox[_0x26cd[51]](_0x9146x15,_0x9146x16,{sampleRate:8000,format:_0x26cd[50],channelCount:1,bitRate:192*1024,compressionQuality:5});_0x9146x18[_0x26cd[55]](_0x26cd[52],function(_0x9146xd){console[_0x26cd[52]](_0x26cd[53],_0x9146xd);fs[_0x26cd[54]](_0x9146x15,function(_0x9146xd){if(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)}});return handleError(_0x9146xc,_0x9146xd);});_0x9146x18[_0x26cd[55]](_0x26cd[56],function(_0x9146x19,_0x9146x1a){});_0x9146x18[_0x26cd[55]](_0x26cd[57],function(_0x9146x1b){_0x9146x14[_0x26cd[58]]=_0x9146x1b[_0x26cd[59]];_0x9146x14[_0x26cd[60]]=_0x9146x1b[_0x26cd[61]]*1000;_0x9146x14[_0x26cd[62]]=_0x9146x1b[_0x26cd[63]];_0x9146x14[_0x26cd[64]]=_0x9146x1b[_0x26cd[65]];_0x9146x14[_0x26cd[66]]=_0x9146x1b[_0x26cd[67]];_0x9146x14[_0x26cd[68]]=_0x9146x1b[_0x26cd[69]];});_0x9146x18[_0x26cd[55]](_0x26cd[70],function(_0x9146x1b){_0x9146x14[_0x26cd[71]]=_0x9146x1b[_0x26cd[59]];_0x9146x14[_0x26cd[72]]=_0x9146x1b[_0x26cd[61]]*1000;_0x9146x14[_0x26cd[73]]=_0x9146x1b[_0x26cd[63]];_0x9146x14[_0x26cd[74]]=_0x9146x1b[_0x26cd[65]];_0x9146x14[_0x26cd[75]]=_0x9146x1b[_0x26cd[67]];_0x9146x14[_0x26cd[76]]=_0x9146x1b[_0x26cd[69]];});_0x9146x18[_0x26cd[55]](_0x26cd[33],function(){console[_0x26cd[48]](_0x26cd[77]);fs[_0x26cd[46]](_0x9146x16,parseInt(_0x26cd[45],8));Upload[_0x26cd[23]](_0x9146x14)[_0x26cd[16]](function(_0x9146xf){return _0x9146xc[_0x26cd[15]](201)[_0x26cd[14]](_0x9146xf)})[_0x26cd[13]](function(_0x9146xd){console[_0x26cd[48]](_0x9146xd);return handleError(_0x9146xc,_0x9146xd);});});_0x9146x18[_0x26cd[78]]();});_0x9146xf[_0x26cd[55]](_0x26cd[52],function(_0x9146xd){console[_0x26cd[48]](_0x26cd[79],_0x9146xd);return handleError(_0x9146xc,_0x9146xd);});_0x9146xf[_0x26cd[80]](_0x9146xb);};exports[_0x26cd[81]]=function(_0x9146xb,_0x9146xc){if(_0x9146xb[_0x26cd[82]][_0x26cd[20]]){delete _0x9146xb[_0x26cd[82]][_0x26cd[20]]};Upload[_0x26cd[22]](_0x9146xb[_0x26cd[21]][_0x26cd[20]])[_0x26cd[16]](function(_0x9146xf){if(!_0x9146xf){return _0x9146xc[_0x26cd[19]](404)};var _0x9146x1c=_[_0x26cd[83]](_0x9146xf,_0x9146xb[_0x26cd[82]]);_0x9146x1c[_0x26cd[84]]()[_0x26cd[16]](function(){return _0x9146xc[_0x26cd[15]](200)[_0x26cd[14]](_0x9146xf)})[_0x26cd[13]](function(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)});})[_0x26cd[13]](function(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)});};exports[_0x26cd[85]]=function(_0x9146xb,_0x9146xc){Upload[_0x26cd[22]](_0x9146xb[_0x26cd[21]][_0x26cd[20]])[_0x26cd[16]](function(_0x9146xf){if(!_0x9146xf){return _0x9146xc[_0x26cd[15]](404)[_0x26cd[14]](_0x9146xf)};var _0x9146x1d=path[_0x26cd[26]](_0x9146xf[_0x26cd[41]],_0x9146xf[_0x26cd[40]]+_0x26cd[86]+_0x9146xf[_0x26cd[58]]);var _0x9146x1e=path[_0x26cd[26]](_0x9146xf[_0x26cd[42]],_0x9146xf[_0x26cd[40]]+_0x26cd[86]+_0x9146xf[_0x26cd[71]]);return sequelize[_0x26cd[87]](function(_0x9146x1f){return _0x9146xf[_0x26cd[85]]({transaction:_0x9146x1f})[_0x26cd[16]](function(){fs[_0x26cd[54]](_0x9146x1d,function(_0x9146xd){if(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)}});fs[_0x26cd[54]](_0x9146x1e,function(_0x9146xd){if(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)}});return _0x9146xc[_0x26cd[15]](200)[_0x26cd[14]](_0x9146xf);})})[_0x26cd[13]](function(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)});})[_0x26cd[13]](function(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)})};exports[_0x26cd[88]]=function(_0x9146xb,_0x9146xc){Upload[_0x26cd[22]](_0x9146xb[_0x26cd[21]][_0x26cd[20]])[_0x26cd[16]](function(_0x9146xf){if(!_0x9146xf){return _0x9146xc[_0x26cd[15]](404)[_0x26cd[14]](_0x9146xf)};var _0x9146x1d=path[_0x26cd[26]](_0x9146xf[_0x26cd[41]],_0x9146xf[_0x26cd[40]]+_0x26cd[86]+_0x9146xf[_0x26cd[58]]);_0x9146xc[_0x26cd[15]](200)[_0x26cd[88]](_0x9146x1d,_0x9146xf[_0x26cd[37]]+_0x26cd[86]+_0x9146xf[_0x26cd[58]],function(_0x9146xd){if(_0x9146xd){return handleError(_0x9146xc,_0x9146xd)}else {console[_0x26cd[48]](_0x26cd[89],_0x9146x1d)}});})};exports[_0x26cd[90]]=function(_0x9146xb,_0x9146xc){Upload[_0x26cd[22]](_0x9146xb[_0x26cd[21]][_0x26cd[20]])[_0x26cd[16]](function(_0x9146xf){if(!_0x9146xf){return _0x9146xc[_0x26cd[15]](404)[_0x26cd[14]](_0x9146xf)};var _0x9146x1d=path[_0x26cd[26]](_0x9146xf[_0x26cd[42]],_0x9146xf[_0x26cd[40]]+_0x26cd[86]+_0x9146xf[_0x26cd[58]]);base64[_0x26cd[91]](_0x9146x1d,function(_0x9146xd,_0x9146x20){if(_0x9146xd){console[_0x26cd[48]](_0x9146xd);return handleError(_0x9146xc,_0x9146xd);}else {return _0x9146xc[_0x26cd[15]](200)[_0x26cd[14]](_0x9146x20)}});})};function handleError(_0x9146xc,_0x9146xd){return _0x9146xc[_0x26cd[15]](500)[_0x26cd[14]](_0x9146xd)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Upload = require('../../models').Upload;
+var uploadFile = require('upload-file');
+var sr = require('simple-random');
+var sox = require('sox');
+var path = require('path');
+var config = require('../../config/environment');
+var fs = require('fs');
+var sequelize = require('../../models').sequelize;
+var base64 = require('file-base64');
+
+// Get list of uploads
+exports.index = function(req, res) {
+  Upload
+    .findAll()
+    .then(function(uploads) {
+      return res.status(200).send(uploads);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single upload
+exports.show = function(req, res) {
+  Upload
+    .findById(req.params.id)
+    .then(function(upload) {
+      if (!upload) {
+        return res.sendStatus(404);
+      }
+      return res.send(upload);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new upload in the DB.
+exports.create = function(req, res) {
+  var upload = new uploadFile({
+    dest: path.join(config.root, 'server/files/sounds/original'),
+    maxFileSize: 15 * 1000000,
+    maxNumberOfFiles: 10,
+    minNumberOfFiles: 0,
+    acceptFileTypes: /(\.|\/)(wav|mp3|gsm|ogg)$/i,
+    rename: function(name, file) {
+      return sr() + path.extname(file.filename);
+    },
+    messages: {
+      maxNumberOfFiles: "Max number of files upload exceeded",
+      acceptFileTypes: "Only wav,mp3,gsm, and ogg format accepted",
+      maxFileSize: "The maximum file size is 15 Mb",
+      invalidRequest: "Invalid request"
+    }
+  });
+
+  upload.on('end', function(fields, files) {
+    var job_details = {};
+    job_details.description = "";
+    job_details.name = job_details.display_name = path.basename(files.file.path, path.extname(files.file.filename));
+    job_details.save_name = path.basename(files.file.filename, path.extname(files.file.filename));
+    job_details.original_path = path.join(config.root, 'server/files/sounds/original');
+    job_details.converted_path = path.join(config.root, 'server/files/sounds/converted');
+
+    if (!files.file.filename) {
+      return res.status(500).send(upload);
+    }
+
+    var filepath = path.join(job_details.original_path, job_details.save_name + path.extname(files.file.filename));
+    var destination = path.join(job_details.converted_path, job_details.save_name + '.wav');
+    //
+
+    fs.chmodSync(filepath, parseInt('0777', 8));
+    sox.identify(filepath, function(err, result) {
+      console.log('************** Result: ', result);
+    });
+
+    var job = sox.transcode(filepath, destination, {
+      sampleRate: 8000,
+      format: 'wav',
+      channelCount: 1,
+      bitRate: 192 * 1024,
+      compressionQuality: 5,
+    });
+
+
+
+    job.on('error', function(err) {
+      console.error('********** Conversion Error: ', err);
+      fs.unlink(filepath, function(err) {
+        if (err)
+          return handleError(res, err);
+      });
+      return handleError(res, err);
+    });
+
+    job.on('progress', function(amountDone, amountTotal) {
+      // console.log("*********** Progress", amountDone, amountTotal);
+    });
+
+    job.on('src', function(info) {
+      // console.log('********** src: ', info);
+      /* info looks like:
+      {
+        format: 'wav',
+        duration: 1.5,
+        sampleCount: 66150,
+        channelCount: 1,
+        bitRate: 722944,
+        sampleRate: 44100,
+      }
+      */
+      job_details.original_format = info.format;
+      job_details.original_duration = info.duration * 1000;
+      job_details.original_sampleCount = info.sampleCount;
+      job_details.original_channelCount = info.channelCount;
+      job_details.original_bitRate = info.bitRate;
+      job_details.original_sampleRate = info.sampleRate;
+    });
+
+    job.on('dest', function(info) {
+      // console.log('********** dest: ', info);
+      /* info looks like:
+      {
+        sampleRate: 44100,
+        format: 'mp3',
+        channelCount: 2,
+        sampleCount: 67958,
+        duration: 1.540998,
+        bitRate: 196608,
+      }
+      */
+      job_details.converted_format = info.format;
+      job_details.converted_duration = info.duration * 1000;
+      job_details.converted_sampleCount = info.sampleCount;
+      job_details.converted_channelCount = info.channelCount;
+      job_details.converted_bitRate = info.bitRate;
+      job_details.converted_sampleRate = info.sampleRate;
+    });
+
+    job.on('end', function() {
+      console.log("Conversion completed");
+      fs.chmodSync(destination, parseInt('0777', 8));
+      Upload
+        .create(job_details)
+        .then(function(upload) {
+          return res.status(201).send(upload);
+        })
+        .catch(function(err) {
+          console.log(err);
+          return handleError(res, err);
+        });
+    });
+
+    job.start();
+
+  });
+
+  upload.on('error', function(err) {
+    console.log('********** Upload error :', err)
+    return handleError(res, err);
+  });
+
+  upload.parse(req);
+};
+
+// Updates an existing upload in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Upload
+    .findById(req.params.id)
+    .then(function(upload) {
+      if (!upload) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(upload, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(upload);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a upload from the DB.
+exports.destroy = function(req, res) {
+  Upload
+    .findById(req.params.id)
+    .then(function(upload) {
+      if (!upload) {
+        return res.status(404).send(upload);
+      }
+      var original_filepath = path.join(upload.original_path, upload.save_name + '.' + upload.original_format);
+      var converted_filepath = path.join(upload.converted_path, upload.save_name + '.' + upload.converted_format);
+      return sequelize.transaction(function(t) {
+          return upload.destroy({
+              transaction: t
+            })
+            .then(function() {
+              fs.unlink(original_filepath, function(err) {
+                if (err)
+                  return handleError(res, err);
+              });
+              fs.unlink(converted_filepath, function(err) {
+                if (err)
+                  return handleError(res, err);
+              });
+              return res.status(200).send(upload);
+            })
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+//Download an uploaded file
+exports.download = function(req, res) {
+  Upload
+    .findById(req.params.id)
+    .then(function(upload) {
+      if (!upload) {
+        return res.status(404).send(upload);
+      }
+      var original_filepath = path.join(upload.original_path, upload.save_name + '.' + upload.original_format);
+      res.status(200).download(original_filepath, upload.display_name + '.' + upload.original_format, function(err) {
+        if (err) {
+          return handleError(res, err);
+        } else {
+          console.log("Sent file under :", original_filepath);
+        }
+      });
+    })
+};
+
+//Stream an uploaded file
+exports.stream = function(req, res) {
+  Upload
+    .findById(req.params.id)
+    .then(function(upload) {
+      if (!upload) {
+        return res.status(404).send(upload);
+      }
+      var original_filepath = path.join(upload.converted_path, upload.save_name + '.' + upload.original_format);
+      base64.encode(original_filepath, function(err, base64String) {
+        if (err) {
+          console.log(err);
+          return handleError(res, err);
+        } else {
+          return res.status(200).send(base64String);
+        }
+      });
+    })
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 38a1d2d..938d94b 100644 (file)
@@ -1 +1,24 @@
-var _0x3490=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x70\x6C\x6F\x61\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x70\x6C\x6F\x61\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x70\x6C\x6F\x61\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3490[0];var upload=require(_0x3490[2])[_0x3490[1]];exports[_0x3490[3]]=function(_0x8492x2){upload[_0x3490[4]](function(_0x8492x3){onSave(_0x8492x2,_0x8492x3)});upload[_0x3490[5]](function(_0x8492x3){onRemove(_0x8492x2,_0x8492x3)});};function onSave(_0x8492x2,_0x8492x3,_0x8492x5){_0x8492x2[_0x3490[7]](_0x3490[6],_0x8492x3)}function onRemove(_0x8492x2,_0x8492x3,_0x8492x5){_0x8492x2[_0x3490[7]](_0x3490[8],_0x8492x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var upload = require('../../models').Upload;
+
+exports.register = function(socket) {
+  upload.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  upload.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('upload:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('upload:remove', doc);
+}
index cec6b06..bde9f38 100644 (file)
@@ -1 +1,20 @@
-var _0xea64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x67\x65\x74"];_0xea64[0];var should=require(_0xea64[1]);var app=require(_0xea64[2]);var request=require(_0xea64[3]);describe(_0xea64[4],function(){it(_0xea64[5],function(_0x80d9x4){request(app)[_0xea64[13]](_0xea64[12])[_0xea64[11]](200)[_0xea64[11]](_0xea64[10],/json/)[_0xea64[9]](function(_0x80d9x5,_0x80d9x6){if(_0x80d9x5){return _0x80d9x4(_0x80d9x5)};_0x80d9x6[_0xea64[8]][_0xea64[1]][_0xea64[7]][_0xea64[6]](Array);_0x80d9x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/uploads', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/uploads')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index c573054..9fd4e3e 100644 (file)
@@ -1 +1,26 @@
-var _0x2310=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x6D\x65","\x6D\x65","\x2F\x61\x6C\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x2F\x61\x76\x61\x74\x61\x72\x2F\x3A\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x61\x76\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72\x42\x79\x49\x64","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x75\x73\x65\x72\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x2F\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x70\x75\x74","\x2F\x70\x61\x73\x73\x77\x6F\x72\x64\x2F\x3A\x69\x64\x2F\x72\x65\x73\x65\x74","\x61\x64\x6D\x69\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x72\x65\x73\x65\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x75\x70\x64\x61\x74\x65","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x69\x73\x55\x73\x65\x72\x73\x4C\x69\x6D\x69\x74","\x63\x72\x65\x61\x74\x65","\x63\x68\x61\x6E\x67\x65\x41\x76\x61\x74\x61\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x2310[0];var express=require(_0x2310[1]);var controller=require(_0x2310[2]);var config=require(_0x2310[3]);var auth=require(_0x2310[4]);var license=require(_0x2310[5]);var router=express.Router();router[_0x2310[9]](_0x2310[6],auth[_0x2310[7]](),controller[_0x2310[8]]);router[_0x2310[9]](_0x2310[10],auth[_0x2310[7]](),controller[_0x2310[11]]);router[_0x2310[9]](_0x2310[12],auth[_0x2310[7]](),controller[_0x2310[13]]);router[_0x2310[9]](_0x2310[14],controller[_0x2310[15]]);router[_0x2310[9]](_0x2310[16],controller[_0x2310[17]]);router[_0x2310[9]](_0x2310[18],auth[_0x2310[7]](),controller[_0x2310[19]]);router[_0x2310[22]](_0x2310[20],auth[_0x2310[7]](),controller[_0x2310[21]]);router[_0x2310[25]](_0x2310[23],auth[_0x2310[7]](),controller[_0x2310[24]]);router[_0x2310[25]](_0x2310[26],auth[_0x2310[7]](),auth[_0x2310[28]](_0x2310[27]),controller[_0x2310[29]]);router[_0x2310[25]](_0x2310[18],auth[_0x2310[7]](),controller[_0x2310[30]]);router[_0x2310[22]](_0x2310[6],auth[_0x2310[7]](),license[_0x2310[31]](),license[_0x2310[32]](),controller[_0x2310[33]]);router[_0x2310[22]](_0x2310[16],auth[_0x2310[7]](),controller[_0x2310[34]]);router[_0x2310[36]](_0x2310[6],auth[_0x2310[7]](),controller[_0x2310[35]]);router[_0x2310[36]](_0x2310[18],auth[_0x2310[7]](),controller[_0x2310[37]]);module[_0x2310[38]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./user.controller');
+var config = require('../../config/environment');
+var auth = require('../../auth/auth.service');
+var license = require('../../config/license/license.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/me', auth.isAuthenticated(), controller.me);
+router.get('/all', auth.isAuthenticated(), controller.getUsers);
+router.get('/avatar/:filename', controller.getAvatar);
+router.get('/:id/avatar', controller.getAvatarById);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/validate/:field', auth.isAuthenticated(), controller.userValidation);
+router.put('/password', auth.isAuthenticated(), controller.changePassword);
+router.put('/password/:id/reset', auth.isAuthenticated(), auth.hasRole('admin'), controller.resetPassword);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/', auth.isAuthenticated(), license.isValidDate(), license.isUsersLimit(), controller.create);
+router.post('/:id/avatar', auth.isAuthenticated(), controller.changeAvatar);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 7ace567..d26deb4 100644 (file)
@@ -1 +1,75 @@
-var _0xf004=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x66\x6F\x72\x6D\x61\x74","\x73\x61\x76\x65","\x63\x68\x61\x6E\x67\x65\x64","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x65\x78\x74\x65\x6E","\x5F\x70\x72\x65\x76\x69\x6F\x75\x73\x44\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x61\x70\x70\x64\x61\x74\x61","\x53\x49\x50\x2F","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x55\x73\x65\x72\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x69\x61\x6C","\x69\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0xf004[0];var fs=require(_0xf004[1]);var util=require(_0xf004[2]);var path=require(_0xf004[3]);var config=require(_0xf004[4]);var User=require(_0xf004[6])[_0xf004[5]];var VoiceExtension=require(_0xf004[6])[_0xf004[7]];exports[_0xf004[8]]=function(_0x5f07x7){User[_0xf004[9]](function(_0x5f07x8){createCallerID(_0x5f07x8);createExtension(_0x5f07x8);});User[_0xf004[10]](function(_0x5f07x8){updateExtension(_0x5f07x8);createCallerID(_0x5f07x8);});};function createCallerID(_0x5f07x8){if(_0x5f07x8[_0xf004[11]]&&_0x5f07x8[_0xf004[12]]){_0x5f07x8[_0xf004[13]]=util[_0xf004[15]](_0xf004[14],_0x5f07x8[_0xf004[11]],_0x5f07x8[_0xf004[12]]);_0x5f07x8[_0xf004[16]]();};return ;}function updateExtension(_0x5f07x8){if(_0x5f07x8[_0xf004[17]](_0xf004[11])){_0x5f07x8[_0xf004[26]]()[_0xf004[25]](function(_0x5f07xc){_0x5f07xc[_0xf004[24]](function(_0x5f07xd){_0x5f07xd[_0xf004[20]]=(_0x5f07xd[_0xf004[20]]===_0x5f07x8[_0xf004[21]][_0xf004[12]])?_0x5f07x8[_0xf004[12]]:_0x5f07x8[_0xf004[11]];_0x5f07xd[_0xf004[22]]=_0xf004[23]+_0x5f07x8[_0xf004[11]];_0x5f07xd[_0xf004[16]]();})})[_0xf004[19]](function(_0x5f07xb){console[_0xf004[18]](_0x5f07xb)})}}function createExtension(_0x5f07x8){if(_0x5f07x8[_0xf004[12]]){var _0x5f07xf=[{context:_0xf004[27],exten:_0x5f07x8[_0xf004[12]],priority:1,app:_0xf004[28],appdata:_0xf004[23]+_0x5f07x8[_0xf004[11]],UserId:_0x5f07x8[_0xf004[29]],type:_0xf004[12]},{context:_0xf004[27],exten:_0x5f07x8[_0xf004[11]],priority:1,app:_0xf004[28],appdata:_0xf004[23]+_0x5f07x8[_0xf004[11]],UserId:_0x5f07x8[_0xf004[29]],type:_0xf004[12]}];return VoiceExtension[_0xf004[30]](_0x5f07xf)[_0xf004[19]](function(_0x5f07xb){console[_0xf004[18]](_0x5f07xb)});}}
\ No newline at end of file
+'use strict';
+
+var fs = require('fs');
+var util = require('util');
+var path = require('path');
+var config = require('../../config/environment');
+var User = require('../../models').User;
+var VoiceExtension = require('../../models').VoiceExtension;
+
+exports.register = function (ami) {
+  User.afterCreate(function (doc) {
+    createCallerID(doc);
+    createExtension(doc);
+  })
+  User.afterUpdate(function (doc) {
+    updateExtension(doc);
+    createCallerID(doc);
+  })
+}
+
+
+function createCallerID(doc) {
+  if (doc.name && doc.internal) {
+    doc.callerid = util.format('"%s" <%s>', doc.name, doc.internal);
+    doc.save();
+  }
+
+  return;
+}
+
+function updateExtension(doc) {
+  if (doc.changed('name')) {
+    doc
+      .getUserExtensions()
+      .then(function (userExtensions) {
+        userExtensions.forEach(function (elem) {
+          elem.exten = (elem.exten === doc._previousDataValues.internal) ? doc.internal : doc.name;
+          elem.appdata = 'SIP/' + doc.name;
+          elem.save();
+        })
+      })
+      .catch(function (err) {
+        console.log(err);
+      });
+  }
+}
+
+
+function createExtension(doc) {
+  if (doc.internal) {
+    var userDials = [{
+      context: 'from-sip',
+      exten: doc.internal,
+      priority: 1,
+      app: 'Dial',
+      appdata: 'SIP/' + doc.name,
+      UserId: doc.id,
+      type: 'internal'
+    }, {
+      context: 'from-sip',
+      exten: doc.name,
+      priority: 1,
+      app: 'Dial',
+      appdata: 'SIP/' + doc.name,
+      UserId: doc.id,
+      type: 'internal'
+    }];
+
+    return VoiceExtension
+      .bulkCreate(userDials)
+      .catch(function (err) {
+        console.log(err);
+      });
+  }
+}
index 592c3a1..3e2e864 100644 (file)
@@ -1 +1,447 @@
-var _0x1088=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x6F\x64\x75\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x70\x61\x74\x68","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x69\x6E\x64\x65\x78","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x65\x61\x63\x68","\x73\x6F\x72\x74","\x6B\x65\x79\x73","\x62\x75\x69\x6C\x64","\x70\x72\x6F\x76\x69\x64\x65\x72","\x6C\x6F\x63\x61\x6C","\x69\x64","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x35\x68","\x73\x69\x67\x6E","\x73\x61\x76\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79","\x6C\x6F\x67","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x6F\x6C\x64\x50\x61\x73\x73\x77\x6F\x72\x64","\x6E\x65\x77\x50\x61\x73\x73\x77\x6F\x72\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x73\x65\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x41\x76\x61\x74\x61\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x69\x6D\x61\x67\x65\x73","\x6A\x6F\x69\x6E","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x4D\x61\x78\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x66\x69\x6C\x65\x73\x20\x75\x70\x6C\x6F\x61\x64\x20\x65\x78\x63\x65\x65\x64\x65\x64","\x4F\x6E\x6C\x79\x20\x6A\x70\x65\x67\x20\x61\x6E\x64\x20\x70\x6E\x67\x20\x66\x6F\x72\x6D\x61\x74\x20\x61\x63\x63\x65\x70\x74\x65\x64","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x64","\x66\x69\x6C\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6F\x6E","\x65\x72\x72\x6F\x72","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x20\x55\x70\x6C\x6F\x61\x64\x20\x65\x72\x72\x6F\x72\x20\x3A","\x70\x61\x72\x73\x65","\x6D\x65","\x75\x73\x65\x72\x70\x69\x63","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x70\x64\x61\x74\x65","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x75\x73\x65\x72\x70\x69\x63\x2E\x70\x6E\x67","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x65\x78\x69\x73\x74\x73","\x67\x65\x74\x41\x76\x61\x74\x61\x72\x42\x79\x49\x64","\x76\x69\x73\x69\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D\x65\x72\x2E\x70\x6E\x67","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x61\x75\x74\x68\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x2F","\x72\x65\x64\x69\x72\x65\x63\x74"];_0x1088[0];var User=require(_0x1088[2])[_0x1088[1]];var Module=require(_0x1088[2])[_0x1088[3]];var config=require(_0x1088[4]);var passport=require(_0x1088[5]);var moment=require(_0x1088[6]);var jwt=require(_0x1088[7]);var uploadFile=require(_0x1088[8]);var path=require(_0x1088[9]);var fs=require(_0x1088[10]);var _=require(_0x1088[11]);var util=require(_0x1088[12]);var sr=require(_0x1088[13]);exports[_0x1088[14]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x10=[_0x1088[15],_0x1088[16],_0x1088[17],_0x1088[18]];var _0xba66x11=_0xba66xd[_0x1088[20]][_0x1088[19]]?parseInt(_0xba66xd[_0x1088[20]][_0x1088[19]],10):100;var _0xba66x12=_0xba66xd[_0x1088[20]][_0x1088[21]]?parseInt(_0xba66xd[_0x1088[20]][_0x1088[21]],10):0;var _0xba66x13={where:{role:[_0x1088[22],_0x1088[23]]},limit:_0xba66x11,offset:_0xba66x12*_0xba66x11};_[_0x1088[37]](_0xba66xd[_0x1088[20]],function(_0xba66x14,_0xba66x15){switch(_0xba66x15){case _0x1088[19]:;case _0x1088[21]:break ;;case _0x1088[26]:_0xba66x13[_0x1088[24]]=util[_0x1088[29]](_0x1088[25],_0xba66xd[_0x1088[20]][_0x1088[26]],_0xba66xd[_0x1088[20]][_0x1088[27]]||_0x1088[28])||null;break ;;case _0x1088[27]:break ;;case _0x1088[35]:_0xba66x13[_0x1088[31]][_0x1088[30]]=[];_0xba66x10[_0x1088[34]](function(_0xba66x16){var _0xba66x17={};_0xba66x17[_0xba66x16]={$like:_0x1088[32]+_0xba66x14+_0x1088[32]};_0xba66x13[_0x1088[31]][_0x1088[30]][_0x1088[33]](_0xba66x17);});break ;;default:_0xba66x13[_0x1088[31]][_0xba66x15]={$like:{}};_0xba66x13[_0x1088[31]][_0xba66x15][_0x1088[36]]=_0x1088[32]+_0xba66x14+_0x1088[32];;}});User[_0x1088[52]](_0xba66x13)[_0x1088[51]](function(_0xba66x19){var _0xba66x1a=Math[_0x1088[43]](_0xba66x19[_0x1088[42]]/_0xba66x11);var _0xba66x1b=_0xba66x1a>(_0xba66x13[_0x1088[44]]+1)?util[_0x1088[29]](_0x1088[45],_0xba66xd[_0x1088[46]],_0xba66xd[_0x1088[48]][_0x1088[47]],_0xba66xd[_0x1088[49]],_0xba66x12+1):null;var _0xba66x1c=_0xba66x12>0?util[_0x1088[29]](_0x1088[45],_0xba66xd[_0x1088[46]],_0xba66xd[_0x1088[48]][_0x1088[47]],_0xba66xd[_0x1088[49]],_0xba66x12-1):null;return _0xba66xe[_0x1088[40]](200)[_0x1088[39]]({count:_0xba66x19[_0x1088[42]],rows:_0xba66x19[_0x1088[50]],next_page:_0xba66x1b,previous_page:_0xba66x1c,total_pages:_0xba66x1a});})[_0x1088[41]](function(_0xba66x18){return _0xba66xe[_0x1088[40]](500)[_0x1088[39]]({error:_0x1088[38]})});};exports[_0x1088[53]]=function(_0xba66xd,_0xba66xe,_0xba66xf){User[_0x1088[55]]({where:{role:{$in:[_0x1088[22],_0x1088[23],_0x1088[54]]}}})[_0x1088[51]](function(_0xba66x1d){return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x1d)})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})};exports[_0x1088[56]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x1e=_0xba66xd[_0x1088[57]];_(_0xba66x1e)[_0x1088[60]]()[_0x1088[59]]()[_0x1088[58]](function(_0xba66x15){var _0xba66x14=_0xba66x1e[_0xba66x15]});var _0xba66x1f=User[_0x1088[61]](_0xba66xd[_0x1088[57]]);_0xba66x1f[_0x1088[62]]=_0x1088[63];_0xba66x1f[_0x1088[69]]()[_0x1088[51]](function(_0xba66x20){var _0xba66x21=jwt[_0x1088[68]]({id:_0xba66x20[_0x1088[64]]},config[_0x1088[66]][_0x1088[65]],{expiresIn:_0x1088[67]});return _0xba66xe[_0x1088[40]](201)[_0x1088[39]]({token:_0xba66x21});})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)});};exports[_0x1088[70]]=function(_0xba66xd,_0xba66xe,_0xba66xf){User[_0x1088[73]](_0xba66xd[_0x1088[72]][_0x1088[64]])[_0x1088[51]](function(_0xba66x20){if(_0xba66x20){return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x20)}else {return _0xba66xe[_0x1088[71]](404)}})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})};exports[_0x1088[74]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x22=_0xba66xd[_0x1088[72]][_0x1088[64]];User[_0x1088[73]](_0xba66x22)[_0x1088[51]](function(_0xba66x20){if(_0xba66x20){_0xba66x20[_0x1088[74]]()[_0x1088[51]](function(_0xba66x20){console[_0x1088[75]](_0xba66x20);return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x20);})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})}else {return _0xba66xe[_0x1088[71]](404)}})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)});};exports[_0x1088[76]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x22=_0xba66xd[_0x1088[23]][_0x1088[64]];var _0xba66x23=String(_0xba66xd[_0x1088[57]][_0x1088[77]]);var _0xba66x24=String(_0xba66xd[_0x1088[57]][_0x1088[78]]);User[_0x1088[73]](_0xba66x22)[_0x1088[51]](function(_0xba66x20){if(_0xba66x20[_0x1088[79]](_0xba66x23)){_0xba66x20[_0x1088[80]]=_0xba66x24;_0xba66x20[_0x1088[69]]()[_0x1088[51]](function(){return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x20)})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)});}else {return _0xba66xe[_0x1088[71]](403)}});};exports[_0x1088[81]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x24=String(_0xba66xd[_0x1088[57]][_0x1088[78]]);User[_0x1088[73]](_0xba66xd[_0x1088[72]][_0x1088[64]])[_0x1088[51]](function(_0xba66x20){_0xba66x20[_0x1088[80]]=_0xba66x24;_0xba66x20[_0x1088[69]]()[_0x1088[51]](function(){return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x20)})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)});});};exports[_0x1088[82]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x25= new uploadFile({dest:path[_0x1088[87]](config[_0x1088[83]],_0x1088[84],_0x1088[85],_0x1088[86]),maxNumberOfFiles:1,minNumberOfFiles:0,acceptFileTypes:/(\.|\/)(jpeg|png)$/i,rename:function(_0xba66x26,_0xba66x27){return sr()+path[_0x1088[89]](_0xba66x27[_0x1088[88]])},messages:{maxNumberOfFiles:_0x1088[90],acceptFileTypes:_0x1088[91],invalidRequest:_0x1088[92]}});_0xba66x25[_0x1088[96]](_0x1088[93],function(_0xba66x28,_0xba66x29){if(!_0xba66x29[_0x1088[94]][_0x1088[88]]){return _0xba66xe[_0x1088[40]](500)[_0x1088[39]](_0xba66x25)}else {User[_0x1088[73]](_0xba66xd[_0x1088[72]][_0x1088[64]])[_0x1088[51]](function(_0xba66x20){if(_0xba66x20){_0xba66x20[_0x1088[95]]({userpic:_0xba66x29[_0x1088[94]][_0x1088[88]]})[_0x1088[51]](function(){return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x20)})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})}else {return _0xba66xe[_0x1088[71]](404)}})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})}});_0xba66x25[_0x1088[96]](_0x1088[97],function(_0xba66x18){console[_0x1088[75]](_0x1088[98],_0xba66x18);return handleError(_0xba66xe,_0xba66x18);});_0xba66x25[_0x1088[99]](_0xba66xd);};exports[_0x1088[100]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x22=_0xba66xd[_0x1088[23]][_0x1088[64]];User[_0x1088[102]]({where:{id:_0xba66x22},attributes:[_0x1088[64],_0x1088[15],_0x1088[16],_0x1088[17],_0x1088[18],_0x1088[101]],include:[Module]})[_0x1088[51]](function(_0xba66x20){if(!_0xba66x20){return _0xba66xe[_0x1088[71]](401)};return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x20);})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)});};exports[_0x1088[103]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x22=_0xba66xd[_0x1088[23]][_0x1088[64]];User[_0x1088[73]](_0xba66xd[_0x1088[72]][_0x1088[64]])[_0x1088[51]](function(_0xba66x20){if(_0xba66x20){_0xba66x20[_0x1088[95]](_0xba66xd[_0x1088[57]])[_0x1088[51]](function(_0xba66x20){return _0xba66xe[_0x1088[40]](200)[_0x1088[39]](_0xba66x20)})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})}else {return _0xba66xe[_0x1088[71]](500)}})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)});};exports[_0x1088[104]]=function(_0xba66xd,_0xba66xe,_0xba66xf){var _0xba66x2a=path[_0x1088[87]](config[_0x1088[83]],_0x1088[84],_0x1088[85],_0x1088[86],_0xba66xd[_0x1088[72]][_0x1088[88]]);fs[_0x1088[107]](_0xba66x2a,function(_0xba66x2b){if(!_0xba66x2b){_0xba66x2a=path[_0x1088[87]](config[_0x1088[83]],_0x1088[84],_0x1088[85],_0x1088[86],_0x1088[105])};return _0xba66xe[_0x1088[106]](_0xba66x2a);});};exports[_0x1088[108]]=function(_0xba66xd,_0xba66xe,_0xba66xf){if(_0xba66xd[_0x1088[72]][_0x1088[64]]===_0x1088[109]){var _0xba66x2a=path[_0x1088[87]](config[_0x1088[83]],_0x1088[84],_0x1088[85],_0x1088[86],_0x1088[110]);fs[_0x1088[107]](_0xba66x2a,function(_0xba66x2b){return _0xba66xe[_0x1088[106]](_0xba66x2a)});}else {User[_0x1088[73]](_0xba66xd[_0x1088[72]][_0x1088[64]])[_0x1088[51]](function(_0xba66x20){if(_0xba66x20){var _0xba66x2a=path[_0x1088[87]](config[_0x1088[83]],_0x1088[84],_0x1088[85],_0x1088[86],_0xba66x20[_0x1088[101]]?_0xba66x20[_0x1088[101]]:_0x1088[105]);fs[_0x1088[107]](_0xba66x2a,function(_0xba66x2b){if(!_0xba66x2b){_0xba66x2a=path[_0x1088[87]](config[_0x1088[83]],_0x1088[84],_0x1088[85],_0x1088[86],_0x1088[105])};return _0xba66xe[_0x1088[106]](_0xba66x2a);});}else {return _0xba66xe[_0x1088[71]](500)}})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})}};exports[_0x1088[111]]=function(_0xba66xd,_0xba66xe){User[_0x1088[74]]({where:{id:_0xba66xd[_0x1088[20]][_0x1088[64]]},individualHooks:true})[_0x1088[51]](function(){return _0xba66xe[_0x1088[71]](204)})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)})};exports[_0x1088[112]]=function(_0xba66xd,_0xba66xe){var _0xba66x2c={};_0xba66x2c[_0xba66xd[_0x1088[72]][_0x1088[113]]]=_0xba66xd[_0x1088[57]][_0x1088[114]];User[_0x1088[52]]({where:_0xba66x2c})[_0x1088[51]](function(_0xba66x19){if(_0xba66x19[_0x1088[42]]){return _0xba66xe[_0x1088[40]](200)[_0x1088[39]]({isValid:false,value:_0xba66xd[_0x1088[57]][_0x1088[114]]})};return _0xba66xe[_0x1088[40]](200)[_0x1088[39]]({isValid:true,value:_0xba66xd[_0x1088[57]][_0x1088[114]]});})[_0x1088[41]](function(_0xba66x18){return handleError(_0xba66xe,_0xba66x18)});};exports[_0x1088[115]]=function(_0xba66xd,_0xba66xe,_0xba66xf){_0xba66xe[_0x1088[117]](_0x1088[116])};function handleError(_0xba66xe,_0xba66x18){return _0xba66xe[_0x1088[40]](500)[_0x1088[39]](_0xba66x18)}
\ No newline at end of file
+'use strict';
+
+var User = require('../../models').User;
+var Module = require('../../models').Module;
+var config = require('../../config/environment');
+
+var passport = require('passport');
+var moment = require('moment');
+var jwt = require('jsonwebtoken');
+var uploadFile = require('upload-file');
+var path = require('path');
+var fs = require('fs');
+var _ = require('lodash');
+var util = require('util');
+var sr = require('simple-random');
+
+/**
+ * Get list of admin/user
+ */
+exports.index = function(req, res, next) {
+
+  var attributes = ['fullname', 'name', 'email', 'role'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      role: ['admin', 'user']
+    },
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  User
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+
+};
+
+/**
+ * Get list of admin/user/agent
+ */
+exports.getUsers = function(req, res, next) {
+  User
+    .findAll({
+      where: {
+        role: {
+          $in: ['admin', 'user', 'agent']
+        }
+      }
+    })
+    .then(function(users) {
+      return res.status(200).send(users);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+/**
+ * Creates a new user
+ */
+exports.create = function(req, res, next) {
+
+  var body = req.body;
+  _(body).keys().sort().each(function(key) {
+    var value = body[key];
+  });
+
+  var newUser = User.build(req.body);
+  newUser.provider = 'local';
+  newUser
+    .save()
+    .then(function(user) {
+      var token = jwt.sign({
+        id: user.id
+      }, config.session.secret, {
+        expiresIn: "5h"
+      });
+      return res.status(201).send({
+        token: token
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+/**
+ * Get a single user
+ */
+exports.show = function(req, res, next) {
+
+  User
+    .findById(req.params.id)
+    .then(function(user) {
+      if (user) {
+        return res.status(200).send(user);
+      } else {
+        return res.sendStatus(404);
+      }
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+/**
+ * Deletes a user
+ */
+exports.destroy = function(req, res, next) {
+  var userId = req.params.id;
+  // console.log(req.params);
+  // console.log(req.body);
+
+  User
+    .findById(userId)
+    .then(function(user) {
+      if (user) {
+        user
+          .destroy()
+          .then(function(user) {
+            console.log(user);
+            return res.status(200).send(user);
+          })
+          .catch(function(err) {
+            return handleError(res, err);
+          });
+      } else {
+        return res.sendStatus(404);
+      }
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+/**
+ * Change a user password
+ */
+exports.changePassword = function(req, res, next) {
+  var userId = req.user.id;
+  var oldPass = String(req.body.oldPassword);
+  var newPass = String(req.body.newPassword);
+  User
+    .findById(userId)
+    .then(function(user) {
+      if (user.authenticate(oldPass)) {
+        user.password = newPass;
+        user.save()
+          .then(function() {
+            return res.status(200).send(user);
+          })
+          .catch(function(err) {
+            return handleError(res, err);
+          });
+      } else {
+        return res.sendStatus(403);
+      }
+    });
+};
+
+/**
+ * Change a user password by admin
+ */
+exports.resetPassword = function(req, res, next) {
+  var newPass = String(req.body.newPassword);
+  User
+    .findById(req.params.id)
+    .then(function(user) {
+      user.password = newPass;
+      user.save()
+        .then(function() {
+          return res.status(200).send(user);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    });
+};
+
+/**
+ * Change the avatar of the user
+ */
+exports.changeAvatar = function(req, res, next) {
+
+  var upload = new uploadFile({
+    dest: path.join(config.root, 'server', 'files', 'images'),
+    maxNumberOfFiles: 1,
+    minNumberOfFiles: 0,
+    acceptFileTypes: /(\.|\/)(jpeg|png)$/i,
+    rename: function(name, file) {
+      return sr() + path.extname(file.filename);
+      // return 'avatar' + req.params.id + path.extname(file.filename);
+    },
+    messages: {
+      maxNumberOfFiles: "Max number of files upload exceeded",
+      acceptFileTypes: "Only jpeg and png format accepted",
+      // maxFileSize: "The maximum file size is 5 Mb",
+      invalidRequest: "Invalid request"
+    }
+  });
+
+  upload.on('end', function(fields, files) {
+    if (!files.file.filename) {
+      return res.status(500).send(upload);
+    } else {
+      User
+        .findById(req.params.id)
+        .then(function(user) {
+          if (user) {
+            user.updateAttributes({
+                userpic: files.file.filename
+              })
+              .then(function() {
+                return res.status(200).send(user);
+              })
+              .catch(function(err) {
+                return handleError(res, err);
+              });
+          } else {
+            return res.sendStatus(404);
+          }
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    }
+  });
+
+  upload.on('error', function(err) {
+    console.log('********** Upload error :', err)
+    return handleError(res, err);
+  });
+
+  upload.parse(req);
+};
+
+
+/**
+ * Get my info
+ */
+exports.me = function(req, res, next) {
+  var userId = req.user.id;
+
+  User
+    .findOne({
+      where: {
+        id: userId
+      },
+      attributes: ['id', 'fullname', 'name', 'email', 'role', 'userpic'],
+      include: [Module]
+    })
+    .then(function(user) {
+      if (!user) {
+        return res.sendStatus(401);
+      }
+      return res.status(200).send(user);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+/**
+ * Update my user
+ */
+exports.update = function(req, res, next) {
+  var userId = req.user.id;
+
+  User
+    .findById(req.params.id)
+    .then(function(user) {
+      if (user) {
+        user
+          .updateAttributes(req.body)
+          .then(function(user) {
+            return res.status(200).send(user);
+          })
+          .catch(function(err) {
+            return handleError(res, err);
+          });
+      } else {
+        return res.sendStatus(500);
+      }
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+/**
+ * Get my avatar
+ */
+exports.getAvatar = function(req, res, next) {
+  // var userId = req.params.id;
+
+  var imgPath = path.join(config.root, 'server', 'files', 'images', req.params.filename);
+
+  fs.exists(imgPath, function(exists) {
+    if (!exists) {
+      imgPath = path.join(config.root, 'server', 'files', 'images', 'userpic.png');
+    }
+
+    return res.sendFile(imgPath);
+  });
+};
+
+/**
+ * Get my avatar by id
+ */
+exports.getAvatarById = function(req, res, next) {
+
+  // console.log('getAvatarById');
+  // console.log(req.params);
+
+  if (req.params.id === 'visitor') {
+    var imgPath = path.join(config.root, 'server', 'files', 'images', 'customer.png');
+
+    fs.exists(imgPath, function(exists) {
+      return res.sendFile(imgPath);
+    });
+
+  } else {
+    User
+      .findById(req.params.id)
+      .then(function(user) {
+        if (user) {
+          var imgPath = path.join(config.root, 'server', 'files', 'images', user.userpic ? user.userpic : 'userpic.png');
+
+          fs.exists(imgPath, function(exists) {
+            if (!exists) {
+              imgPath = path.join(config.root, 'server', 'files', 'images', 'userpic.png');
+            }
+
+            return res.sendFile(imgPath);
+          });
+        } else {
+          return res.sendStatus(500);
+        }
+      })
+      .catch(function(err) {
+        return handleError(res, err);
+      });
+  }
+};
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function(req, res) {
+  User
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.userValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  User
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+
+};
+
+/**
+ * Authentication callback
+ */
+exports.authCallback = function(req, res, next) {
+  res.redirect('/');
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index d8fed74..e1071aa 100644 (file)
@@ -1 +1,31 @@
-var _0x1e36=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x1e36[0];var user=require(_0x1e36[2])[_0x1e36[1]];exports[_0x1e36[3]]=function(_0x5706x2){user[_0x1e36[4]](function(_0x5706x3){onSave(_0x5706x2,_0x5706x3)});user[_0x1e36[5]](function(_0x5706x3){onSave(_0x5706x2,_0x5706x3)});user[_0x1e36[6]](function(_0x5706x3){onRemove(_0x5706x2,_0x5706x3)});};function onSave(_0x5706x2,_0x5706x3,_0x5706x5){if(_0x5706x3[_0x1e36[7]]===_0x1e36[8]){_0x5706x2[_0x1e36[10]](_0x1e36[9],_0x5706x3)}}function onRemove(_0x5706x2,_0x5706x3,_0x5706x5){if(_0x5706x3[_0x1e36[7]]===_0x1e36[8]){_0x5706x2[_0x1e36[10]](_0x1e36[11],_0x5706x3)}}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var user = require('../../models').User;
+
+exports.register = function(socket) {
+  user.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  user.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  user.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  if (doc.role === 'admin') {
+    socket.emit('user:save', doc);
+  }
+}
+
+function onRemove(socket, doc, cb) {
+  if (doc.role === 'admin') {
+    socket.emit('user:remove', doc);
+  }
+}
index 679d804..bce94e7 100644 (file)
@@ -1 +1,15 @@
-var _0x9dd5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9dd5[0];var express=require(_0x9dd5[1]);var controller=require(_0x9dd5[2]);var router=express.Router();router[_0x9dd5[5]](_0x9dd5[3],controller[_0x9dd5[4]]);router[_0x9dd5[5]](_0x9dd5[6],controller[_0x9dd5[7]]);router[_0x9dd5[9]](_0x9dd5[3],controller[_0x9dd5[8]]);router[_0x9dd5[11]](_0x9dd5[6],controller[_0x9dd5[10]]);router[_0x9dd5[12]](_0x9dd5[6],controller[_0x9dd5[10]]);router[_0x9dd5[14]](_0x9dd5[6],controller[_0x9dd5[13]]);module[_0x9dd5[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./user_has_chat_queue.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index be5898c..b399892 100644 (file)
@@ -1 +1,103 @@
-var _0x3ded=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x3ded[0];var _=require(_0x3ded[1]);var UserHasChatQueue=require(_0x3ded[3])[_0x3ded[2]];exports[_0x3ded[4]]=function(_0x2a94x3,_0x2a94x4){UserHasChatQueue[_0x3ded[10]](_0x2a94x3[_0x3ded[9]]?{where:_0x2a94x3[_0x3ded[9]]}:{})[_0x3ded[8]](function(_0x2a94x6){return _0x2a94x4[_0x3ded[7]](200)[_0x3ded[6]](_0x2a94x6)})[_0x3ded[5]](function(_0x2a94x5){return handleError(_0x2a94x4,_0x2a94x5)})};exports[_0x3ded[11]]=function(_0x2a94x3,_0x2a94x4){UserHasChatQueue[_0x3ded[15]](_0x2a94x3[_0x3ded[14]][_0x3ded[13]])[_0x3ded[8]](function(_0x2a94x7){if(!_0x2a94x7){return _0x2a94x4[_0x3ded[12]](404)};return _0x2a94x4[_0x3ded[6]](_0x2a94x7);})[_0x3ded[5]](function(_0x2a94x5){return handleError(_0x2a94x4,_0x2a94x5)})};exports[_0x3ded[16]]=function(_0x2a94x3,_0x2a94x4){UserHasChatQueue[_0x3ded[16]](_0x2a94x3[_0x3ded[17]])[_0x3ded[8]](function(_0x2a94x7){return _0x2a94x4[_0x3ded[7]](201)[_0x3ded[6]](_0x2a94x7)})[_0x3ded[5]](function(_0x2a94x5){return handleError(_0x2a94x4,_0x2a94x5)})};exports[_0x3ded[18]]=function(_0x2a94x3,_0x2a94x4){if(_0x2a94x3[_0x3ded[17]][_0x3ded[13]]){delete _0x2a94x3[_0x3ded[17]][_0x3ded[13]]};UserHasChatQueue[_0x3ded[21]]({where:{id:_0x2a94x3[_0x3ded[14]][_0x3ded[13]]}})[_0x3ded[8]](function(_0x2a94x7){if(!_0x2a94x7){return _0x2a94x4[_0x3ded[12]](404)};var _0x2a94x8=_[_0x3ded[19]](_0x2a94x7,_0x2a94x3[_0x3ded[17]]);_0x2a94x8[_0x3ded[20]]()[_0x3ded[8]](function(){return _0x2a94x4[_0x3ded[7]](200)[_0x3ded[6]](_0x2a94x7)})[_0x3ded[5]](function(_0x2a94x5){return handleError(_0x2a94x4,_0x2a94x5)});})[_0x3ded[5]](function(_0x2a94x5){return handleError(_0x2a94x4,_0x2a94x5)});};exports[_0x3ded[22]]=function(_0x2a94x3,_0x2a94x4){UserHasChatQueue[_0x3ded[21]]({where:{id:_0x2a94x3[_0x3ded[14]][_0x3ded[13]]}})[_0x3ded[8]](function(_0x2a94x7){if(!_0x2a94x7){return _0x2a94x4[_0x3ded[12]](404)};_0x2a94x7[_0x3ded[22]]()[_0x3ded[8]](function(){return _0x2a94x4[_0x3ded[12]](204)})[_0x3ded[5]](function(_0x2a94x5){return handleError(_0x2a94x4,_0x2a94x5)});})[_0x3ded[5]](function(_0x2a94x5){return handleError(_0x2a94x4,_0x2a94x5)})};function handleError(_0x2a94x4,_0x2a94x5){return _0x2a94x4[_0x3ded[7]](500)[_0x3ded[6]](_0x2a94x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var UserHasChatQueue = require('../../models').UserHasChatQueue;
+
+// Get list of userHasChatQueues
+exports.index = function(req, res) {
+  UserHasChatQueue
+    .findAll(req.query ? {
+      where: req.query
+    } : {})
+    .then(function(userHasChatQueues) {
+      return res.status(200).send(userHasChatQueues);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single userHasChatQueue
+exports.show = function(req, res) {
+  UserHasChatQueue
+    .findById(req.params.id)
+    .then(function(userHasChatQueue) {
+      if (!userHasChatQueue) {
+        return res.sendStatus(404);
+      }
+      return res.send(userHasChatQueue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new userHasChatQueue in the DB.
+exports.create = function(req, res) {
+  UserHasChatQueue
+    .create(req.body)
+    .then(function(userHasChatQueue) {
+      return res.status(201).send(userHasChatQueue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing userHasChatQueue in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  UserHasChatQueue
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(userHasChatQueue) {
+      if (!userHasChatQueue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(userHasChatQueue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(userHasChatQueue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a userHasChatQueue from the DB.
+exports.destroy = function(req, res) {
+  UserHasChatQueue
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(userHasChatQueue) {
+      if (!userHasChatQueue) {
+        return res.sendStatus(404);
+      }
+      userHasChatQueue.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index d05c3af..d760d5e 100644 (file)
@@ -1 +1,24 @@
-var _0xd172=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xd172[0];var UserHasChatQueue=require(_0xd172[2])[_0xd172[1]];exports[_0xd172[3]]=function(_0x4a22x2){UserHasChatQueue[_0xd172[4]](function(_0x4a22x3){onSave(_0x4a22x2,_0x4a22x3)});UserHasChatQueue[_0xd172[5]](function(_0x4a22x3){onRemove(_0x4a22x2,_0x4a22x3)});};function onSave(_0x4a22x2,_0x4a22x3,_0x4a22x5){_0x4a22x2[_0xd172[7]](_0xd172[6],_0x4a22x3)}function onRemove(_0x4a22x2,_0x4a22x3,_0x4a22x5){_0x4a22x2[_0xd172[7]](_0xd172[8],_0x4a22x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var UserHasChatQueue = require('../../models').UserHasChatQueue;
+
+exports.register = function(socket) {
+  UserHasChatQueue.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  UserHasChatQueue.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('user_has_chat_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('user_has_chat_queue:remove', doc);
+}
index 64f4f5d..539163a 100644 (file)
@@ -1 +1,20 @@
-var _0xab54=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0xab54[0];var should=require(_0xab54[1]);var app=require(_0xab54[2]);var request=require(_0xab54[3]);describe(_0xab54[4],function(){it(_0xab54[5],function(_0x9c94x4){request(app)[_0xab54[13]](_0xab54[12])[_0xab54[11]](200)[_0xab54[11]](_0xab54[10],/json/)[_0xab54[9]](function(_0x9c94x5,_0x9c94x6){if(_0x9c94x5){return _0x9c94x4(_0x9c94x5)};_0x9c94x6[_0xab54[8]][_0xab54[1]][_0xab54[7]][_0xab54[6]](Array);_0x9c94x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/user_has_queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/user_has_queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index ee2d9ae..381448d 100644 (file)
@@ -1 +1,16 @@
-var _0xc409=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x3A\x75\x73\x65\x72\x49\x64\x2F\x3A\x63\x68\x61\x74\x52\x6F\x6F\x6D\x49\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xc409[0];var express=require(_0xc409[1]);var controller=require(_0xc409[2]);var auth=require(_0xc409[3]);var router=express.Router();router[_0xc409[6]](_0xc409[4],controller[_0xc409[5]]);module[_0xc409[7]]=router;
\ No newline at end of file
+'use strict';
+
+var express     = require('express');
+var controller  = require('./user_has_chat_room.controller');
+var auth        = require('../../auth/auth.service');
+
+var router = express.Router();
+
+// router.get('/', controller.index);
+// router.get('/:id', controller.show);
+// router.post('/', controller.create);
+router.put('/:userId/:chatRoomId', controller.update);
+// router.patch('/:id', controller.update);
+// router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 3d25259..d747380 100644 (file)
@@ -1 +1,96 @@
-var _0xfc5f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x75\x73\x65\x72\x49\x64","\x63\x68\x61\x74\x52\x6F\x6F\x6D\x49\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xfc5f[0];var _=require(_0xfc5f[1]);var UserHasChatRoom=require(_0xfc5f[3])[_0xfc5f[2]];exports[_0xfc5f[4]]=function(_0xa469x3,_0xa469x4){UserHasChatRoom[_0xfc5f[9]]()[_0xfc5f[8]](function(_0xa469x6){return _0xa469x4[_0xfc5f[7]](200)[_0xfc5f[6]](_0xa469x6)})[_0xfc5f[5]](function(_0xa469x5){return handleError(_0xa469x4,_0xa469x5)})};exports[_0xfc5f[10]]=function(_0xa469x3,_0xa469x4){UserHasChatRoom[_0xfc5f[14]](_0xa469x3[_0xfc5f[13]][_0xfc5f[12]])[_0xfc5f[8]](function(_0xa469x7){if(!_0xa469x7){return _0xa469x4[_0xfc5f[11]](404)};return _0xa469x4[_0xfc5f[6]](_0xa469x7);})[_0xfc5f[5]](function(_0xa469x5){return handleError(_0xa469x4,_0xa469x5)})};exports[_0xfc5f[15]]=function(_0xa469x3,_0xa469x4){UserHasChatRoom[_0xfc5f[15]](_0xa469x3[_0xfc5f[16]])[_0xfc5f[8]](function(_0xa469x7){return _0xa469x4[_0xfc5f[7]](201)[_0xfc5f[6]](_0xa469x7)})[_0xfc5f[5]](function(_0xa469x5){return handleError(_0xa469x4,_0xa469x5)})};exports[_0xfc5f[17]]=function(_0xa469x3,_0xa469x4){UserHasChatRoom[_0xfc5f[21]]({where:{UserId:_0xa469x3[_0xfc5f[13]][_0xfc5f[19]],ChatRoomId:_0xa469x3[_0xfc5f[13]][_0xfc5f[20]]},limit:1})[_0xfc5f[8]](function(_0xa469x7){if(!_0xa469x7){return _0xa469x4[_0xfc5f[11]](404)};_0xa469x7[_0xfc5f[18]](_0xa469x3[_0xfc5f[16]])[_0xfc5f[8]](function(){return _0xa469x4[_0xfc5f[7]](200)[_0xfc5f[6]](_0xa469x7)})[_0xfc5f[5]](function(_0xa469x5){return handleError(_0xa469x4,_0xa469x5)});})[_0xfc5f[5]](function(_0xa469x5){return handleError(_0xa469x4,_0xa469x5)})};exports[_0xfc5f[22]]=function(_0xa469x3,_0xa469x4){UserHasChatRoom[_0xfc5f[14]](_0xa469x3[_0xfc5f[13]][_0xfc5f[12]])[_0xfc5f[8]](function(_0xa469x7){if(!_0xa469x7){return _0xa469x4[_0xfc5f[11]](404)};_0xa469x7[_0xfc5f[22]]()[_0xfc5f[8]](function(){return _0xa469x4[_0xfc5f[11]](204)})[_0xfc5f[5]](function(_0xa469x5){return handleError(_0xa469x4,_0xa469x5)});})[_0xfc5f[5]](function(_0xa469x5){return handleError(_0xa469x4,_0xa469x5)})};function handleError(_0xa469x4,_0xa469x5){return _0xa469x4[_0xfc5f[7]](500)[_0xfc5f[6]](_0xa469x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var UserHasChatRoom = require('../../models').UserHasChatRoom;
+
+// Get list of user_has_chat_rooms
+exports.index = function(req, res) {
+  UserHasChatRoom
+  .findAll()
+  .then(function (user_has_chat_rooms) {
+    return res.status(200).send(user_has_chat_rooms);
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Get a single user_has_chat_room
+exports.show = function(req, res) {
+  UserHasChatRoom
+  .findById(req.params.id)
+  .then(function (user_has_chat_room) {
+    if(!user_has_chat_room) { return res.sendStatus(404); }
+    return res.send(user_has_chat_room);
+  })
+  .catch(function(err){
+    return handleError(res, err);
+  });
+};
+
+// Creates a new user_has_chat_room in the DB.
+exports.create = function(req, res) {
+
+  UserHasChatRoom
+    .create(req.body)
+    .then(function(user_has_chat_room) {
+      return res.status(201).send(user_has_chat_room);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing user_has_chat_room in the DB.
+exports.update = function(req, res) {
+
+  UserHasChatRoom
+    .findOne({
+      where: {
+        UserId: req.params.userId,
+        ChatRoomId: req.params.chatRoomId
+      },
+      limit: 1
+    })
+    .then(function (user_has_chat_room) {
+      if (!user_has_chat_room) {
+        return res.sendStatus(404);
+      }
+
+      user_has_chat_room
+        .updateAttributes(req.body)
+        .then(function () {
+          return res.status(200).send(user_has_chat_room);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a user_has_chat_room from the DB.
+exports.destroy = function(req, res) {
+
+  UserHasChatRoom
+  .findById(req.params.id)
+  .then(function (user_has_chat_room) {
+    if(!user_has_chat_room) { return res.sendStatus(404); }
+    user_has_chat_room.destroy()
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+  })
+  .catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 1a7b18e..c58a829 100644 (file)
@@ -1 +1,58 @@
-var _0x528e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x5F\x63\x68\x61\x74\x52\x6F\x6F\x6D","\x6C\x6F\x67","\x69\x64","\x70\x6C\x75\x63\x6B","\x75\x73\x65\x72\x49\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x65\x6D\x61\x69\x6C","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x528e[0];var _=require(_0x528e[1]);var User=require(_0x528e[3])[_0x528e[2]];var ChatRoom=require(_0x528e[3])[_0x528e[4]];var ChatVisitor=require(_0x528e[3])[_0x528e[5]];var UserHasChatRoom=require(_0x528e[3])[_0x528e[6]];exports[_0x528e[7]]=function(_0x1183x6){UserHasChatRoom[_0x528e[8]](function(_0x1183x7){onSave(_0x1183x6,_0x1183x7)});UserHasChatRoom[_0x528e[9]](function(_0x1183x7){onRemove(_0x1183x6,_0x1183x7)});};function onSave(_0x1183x6,_0x1183x7){var _0x1183x9;return ChatRoom[_0x528e[26]](_0x1183x7.ChatRoomId,{include:[{model:ChatVisitor,attributes:[_0x528e[16],_0x528e[23],_0x528e[24]]},{model:User,attributes:[_0x528e[16],_0x528e[23],_0x528e[25],_0x528e[24]]}]})[_0x528e[22]](function(_0x1183xb){_0x1183x9=_0x1183xb;_0x1183x9[_0x528e[13]][_0x528e[12]]=[];console[_0x528e[15]](_0x528e[14],_0x1183x9);var _0x1183xc=_[_0x528e[17]](_0x1183x9.Users,_0x528e[16]);_0x1183xc[_0x528e[21]](function(_0x1183xd){if(_0x1183x6[_0x528e[18]]==_0x1183xd){_0x1183x6[_0x528e[20]](_0x528e[19],_0x1183x9[_0x528e[13]])}});return ;})[_0x528e[11]](function(_0x1183xa){console[_0x528e[10]](_0x1183xa)});}function onRemove(_0x1183x6,_0x1183x7){_0x1183x6[_0x528e[20]](_0x528e[27],_0x1183x7)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+var _ = require('lodash');
+var User = require('../../models').User;
+var ChatRoom = require('../../models').ChatRoom;
+var ChatVisitor = require('../../models').ChatVisitor;
+var UserHasChatRoom = require('../../models').UserHasChatRoom;
+
+exports.register = function (socket) {
+  UserHasChatRoom.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  UserHasChatRoom.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc) {
+
+  var _chatRoom;
+
+  return ChatRoom
+    .findById(doc.ChatRoomId, {
+      include: [{
+        model: ChatVisitor,
+        attributes: ['id', 'email', 'fullname']
+      }, {
+        model: User,
+        attributes: ['id', 'email', 'name', 'fullname']
+      }]
+    })
+    .then(function (chatRoom) {
+      _chatRoom = chatRoom;
+      _chatRoom.dataValues.ChatMessages = [];
+
+      console.log('_chatRoom', _chatRoom);
+
+      var ids = _.pluck(_chatRoom.Users, 'id');
+
+      ids.forEach(function (id) {
+        if (socket.userId == id) {
+          socket.emit('user_has_chat_room:save', _chatRoom.dataValues)
+        }
+      });
+
+      return;
+    })
+    .catch(function (err) {
+      console.error(err);
+    });
+}
+
+function onRemove(socket, doc) {
+  socket.emit('user_has_chat_room:remove', doc);
+}
index 0f3591e..b33382a 100644 (file)
@@ -1 +1,20 @@
-var _0xe8e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x72\x6F\x6F\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x72\x6F\x6F\x6D\x73","\x67\x65\x74"];_0xe8e9[0];var should=require(_0xe8e9[1]);var app=require(_0xe8e9[2]);var request=require(_0xe8e9[3]);describe(_0xe8e9[4],function(){it(_0xe8e9[5],function(_0xce41x4){request(app)[_0xe8e9[13]](_0xe8e9[12])[_0xe8e9[11]](200)[_0xe8e9[11]](_0xe8e9[10],/json/)[_0xe8e9[9]](function(_0xce41x5,_0xce41x6){if(_0xce41x5){return _0xce41x4(_0xce41x5)};_0xce41x6[_0xe8e9[8]][_0xe8e9[1]][_0xe8e9[7]][_0xe8e9[6]](Array);_0xce41x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/chat/user_has_rooms', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/chat/user_has_rooms')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 6fa482c..5805e3d 100644 (file)
@@ -1 +1,15 @@
-var _0xcabf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcabf[0];var express=require(_0xcabf[1]);var controller=require(_0xcabf[2]);var router=express.Router();router[_0xcabf[5]](_0xcabf[3],controller[_0xcabf[4]]);router[_0xcabf[5]](_0xcabf[6],controller[_0xcabf[7]]);router[_0xcabf[9]](_0xcabf[3],controller[_0xcabf[8]]);router[_0xcabf[11]](_0xcabf[6],controller[_0xcabf[10]]);router[_0xcabf[12]](_0xcabf[6],controller[_0xcabf[10]]);router[_0xcabf[14]](_0xcabf[6],controller[_0xcabf[13]]);module[_0xcabf[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./user_has_fax_queue.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 032cba5..f92e570 100644 (file)
@@ -1 +1,103 @@
-var _0x6bf6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x6bf6[0];var _=require(_0x6bf6[1]);var UserHasFaxQueue=require(_0x6bf6[3])[_0x6bf6[2]];exports[_0x6bf6[4]]=function(_0x50e7x3,_0x50e7x4){UserHasFaxQueue[_0x6bf6[10]](_0x50e7x3[_0x6bf6[9]]?{where:_0x50e7x3[_0x6bf6[9]]}:{})[_0x6bf6[8]](function(_0x50e7x6){return _0x50e7x4[_0x6bf6[7]](200)[_0x6bf6[6]](_0x50e7x6)})[_0x6bf6[5]](function(_0x50e7x5){return handleError(_0x50e7x4,_0x50e7x5)})};exports[_0x6bf6[11]]=function(_0x50e7x3,_0x50e7x4){UserHasFaxQueue[_0x6bf6[15]](_0x50e7x3[_0x6bf6[14]][_0x6bf6[13]])[_0x6bf6[8]](function(_0x50e7x7){if(!_0x50e7x7){return _0x50e7x4[_0x6bf6[12]](404)};return _0x50e7x4[_0x6bf6[6]](_0x50e7x7);})[_0x6bf6[5]](function(_0x50e7x5){return handleError(_0x50e7x4,_0x50e7x5)})};exports[_0x6bf6[16]]=function(_0x50e7x3,_0x50e7x4){UserHasFaxQueue[_0x6bf6[16]](_0x50e7x3[_0x6bf6[17]])[_0x6bf6[8]](function(_0x50e7x7){return _0x50e7x4[_0x6bf6[7]](201)[_0x6bf6[6]](_0x50e7x7)})[_0x6bf6[5]](function(_0x50e7x5){return handleError(_0x50e7x4,_0x50e7x5)})};exports[_0x6bf6[18]]=function(_0x50e7x3,_0x50e7x4){if(_0x50e7x3[_0x6bf6[17]][_0x6bf6[13]]){delete _0x50e7x3[_0x6bf6[17]][_0x6bf6[13]]};UserHasFaxQueue[_0x6bf6[21]]({where:{id:_0x50e7x3[_0x6bf6[14]][_0x6bf6[13]]}})[_0x6bf6[8]](function(_0x50e7x7){if(!_0x50e7x7){return _0x50e7x4[_0x6bf6[12]](404)};var _0x50e7x8=_[_0x6bf6[19]](_0x50e7x7,_0x50e7x3[_0x6bf6[17]]);_0x50e7x8[_0x6bf6[20]]()[_0x6bf6[8]](function(){return _0x50e7x4[_0x6bf6[7]](200)[_0x6bf6[6]](_0x50e7x7)})[_0x6bf6[5]](function(_0x50e7x5){return handleError(_0x50e7x4,_0x50e7x5)});})[_0x6bf6[5]](function(_0x50e7x5){return handleError(_0x50e7x4,_0x50e7x5)});};exports[_0x6bf6[22]]=function(_0x50e7x3,_0x50e7x4){UserHasFaxQueue[_0x6bf6[21]]({where:{id:_0x50e7x3[_0x6bf6[14]][_0x6bf6[13]]}})[_0x6bf6[8]](function(_0x50e7x7){if(!_0x50e7x7){return _0x50e7x4[_0x6bf6[12]](404)};_0x50e7x7[_0x6bf6[22]]()[_0x6bf6[8]](function(){return _0x50e7x4[_0x6bf6[12]](204)})[_0x6bf6[5]](function(_0x50e7x5){return handleError(_0x50e7x4,_0x50e7x5)});})[_0x6bf6[5]](function(_0x50e7x5){return handleError(_0x50e7x4,_0x50e7x5)})};function handleError(_0x50e7x4,_0x50e7x5){return _0x50e7x4[_0x6bf6[7]](500)[_0x6bf6[6]](_0x50e7x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var UserHasFaxQueue = require('../../models').UserHasFaxQueue;
+
+// Get list of user_has_fax_queues
+exports.index = function(req, res) {
+  UserHasFaxQueue
+    .findAll(req.query ? {
+      where: req.query
+    } : {})
+    .then(function(user_has_fax_queues) {
+      return res.status(200).send(user_has_fax_queues);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single user_has_fax_queue
+exports.show = function(req, res) {
+  UserHasFaxQueue
+    .findById(req.params.id)
+    .then(function(user_has_fax_queue) {
+      if (!user_has_fax_queue) {
+        return res.sendStatus(404);
+      }
+      return res.send(user_has_fax_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new user_has_fax_queue in the DB.
+exports.create = function(req, res) {
+  UserHasFaxQueue
+    .create(req.body)
+    .then(function(user_has_fax_queue) {
+      return res.status(201).send(user_has_fax_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing user_has_fax_queue in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  UserHasFaxQueue
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(user_has_fax_queue) {
+      if (!user_has_fax_queue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(user_has_fax_queue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(user_has_fax_queue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a user_has_fax_queue from the DB.
+exports.destroy = function(req, res) {
+  UserHasFaxQueue
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(user_has_fax_queue) {
+      if (!user_has_fax_queue) {
+        return res.sendStatus(404);
+      }
+      user_has_fax_queue.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 45fe0b7..4b0602a 100644 (file)
@@ -1 +1,30 @@
-var _0xcd0c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xcd0c[0];var UserHasFaxQueue=require(_0xcd0c[2])[_0xcd0c[1]];exports[_0xcd0c[3]]=function(_0xe6c3x2){UserHasFaxQueue[_0xcd0c[4]](function(_0xe6c3x3){onSave(_0xe6c3x2,_0xe6c3x3)});UserHasFaxQueue[_0xcd0c[5]](function(_0xe6c3x3){onRemove(_0xe6c3x2,_0xe6c3x3)});UserHasFaxQueue[_0xcd0c[6]](function(_0xe6c3x3){onSave(_0xe6c3x2,_0xe6c3x3)});UserHasFaxQueue[_0xcd0c[7]](function(_0xe6c3x3){onRemove(_0xe6c3x2,_0xe6c3x3)});};function onSave(_0xe6c3x2,_0xe6c3x3,_0xe6c3x5){_0xe6c3x2[_0xcd0c[9]](_0xcd0c[8],_0xe6c3x3)}function onRemove(_0xe6c3x2,_0xe6c3x3,_0xe6c3x5){_0xe6c3x2[_0xcd0c[9]](_0xcd0c[10],_0xe6c3x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var UserHasFaxQueue = require('../../models').UserHasFaxQueue;
+
+exports.register = function(socket) {
+  UserHasFaxQueue.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  UserHasFaxQueue.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+  UserHasFaxQueue.afterBulkCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  UserHasFaxQueue.afterBulkDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('user_has_fax_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('user_has_fax_queue:remove', doc);
+}
index 0aa4311..992672c 100644 (file)
@@ -1 +1,20 @@
-var _0x67d3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x67d3[0];var should=require(_0x67d3[1]);var app=require(_0x67d3[2]);var request=require(_0x67d3[3]);describe(_0x67d3[4],function(){it(_0x67d3[5],function(_0x2e1fx4){request(app)[_0x67d3[13]](_0x67d3[12])[_0x67d3[11]](200)[_0x67d3[11]](_0x67d3[10],/json/)[_0x67d3[9]](function(_0x2e1fx5,_0x2e1fx6){if(_0x2e1fx5){return _0x2e1fx4(_0x2e1fx5)};_0x2e1fx6[_0x67d3[8]][_0x67d3[1]][_0x67d3[7]][_0x67d3[6]](Array);_0x2e1fx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/fax/user_has_queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/fax/user_has_queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index b646eae..50b083e 100644 (file)
@@ -1 +1,15 @@
-var _0x866f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x866f[0];var express=require(_0x866f[1]);var controller=require(_0x866f[2]);var router=express.Router();router[_0x866f[5]](_0x866f[3],controller[_0x866f[4]]);router[_0x866f[5]](_0x866f[6],controller[_0x866f[7]]);router[_0x866f[9]](_0x866f[3],controller[_0x866f[8]]);router[_0x866f[11]](_0x866f[6],controller[_0x866f[10]]);router[_0x866f[12]](_0x866f[6],controller[_0x866f[10]]);router[_0x866f[14]](_0x866f[6],controller[_0x866f[13]]);module[_0x866f[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./user_has_mail_queue.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index e8c6adf..c15bc9d 100644 (file)
@@ -1 +1,95 @@
-var _0xca7b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xca7b[0];var _=require(_0xca7b[1]);var UserHasMailQueue=require(_0xca7b[3])[_0xca7b[2]];exports[_0xca7b[4]]=function(_0xd15ax3,_0xd15ax4){UserHasMailQueue[_0xca7b[10]](_0xd15ax3[_0xca7b[9]]?{where:_0xd15ax3[_0xca7b[9]]}:{})[_0xca7b[8]](function(_0xd15ax6){return _0xd15ax4[_0xca7b[7]](200)[_0xca7b[6]](_0xd15ax6)})[_0xca7b[5]](function(_0xd15ax5){return handleError(_0xd15ax4,_0xd15ax5)})};exports[_0xca7b[11]]=function(_0xd15ax3,_0xd15ax4){UserHasMailQueue[_0xca7b[15]](_0xd15ax3[_0xca7b[14]][_0xca7b[13]])[_0xca7b[8]](function(_0xd15ax7){if(!_0xd15ax7){return _0xd15ax4[_0xca7b[12]](404)};return _0xd15ax4[_0xca7b[6]](_0xd15ax7);})[_0xca7b[5]](function(_0xd15ax5){return handleError(_0xd15ax4,_0xd15ax5)})};exports[_0xca7b[16]]=function(_0xd15ax3,_0xd15ax4){UserHasMailQueue[_0xca7b[16]](_0xd15ax3[_0xca7b[17]])[_0xca7b[8]](function(_0xd15ax7){return _0xd15ax4[_0xca7b[7]](201)[_0xca7b[6]](_0xd15ax7)})[_0xca7b[5]](function(_0xd15ax5){return handleError(_0xd15ax4,_0xd15ax5)})};exports[_0xca7b[18]]=function(_0xd15ax3,_0xd15ax4){if(_0xd15ax3[_0xca7b[17]][_0xca7b[13]]){delete _0xd15ax3[_0xca7b[17]][_0xca7b[13]]};UserHasMailQueue[_0xca7b[15]](_0xd15ax3[_0xca7b[14]][_0xca7b[13]])[_0xca7b[8]](function(_0xd15ax7){if(!_0xd15ax7){return _0xd15ax4[_0xca7b[12]](404)};var _0xd15ax8=_[_0xca7b[19]](_0xd15ax7,_0xd15ax3[_0xca7b[17]]);_0xd15ax8[_0xca7b[20]]()[_0xca7b[8]](function(){return _0xd15ax4[_0xca7b[7]](200)[_0xca7b[6]](_0xd15ax7)})[_0xca7b[5]](function(_0xd15ax5){return handleError(_0xd15ax4,_0xd15ax5)});})[_0xca7b[5]](function(_0xd15ax5){return handleError(_0xd15ax4,_0xd15ax5)});};exports[_0xca7b[21]]=function(_0xd15ax3,_0xd15ax4){UserHasMailQueue[_0xca7b[15]](_0xd15ax3[_0xca7b[14]][_0xca7b[13]])[_0xca7b[8]](function(_0xd15ax7){if(!_0xd15ax7){return _0xd15ax4[_0xca7b[12]](404)};_0xd15ax7[_0xca7b[21]]()[_0xca7b[8]](function(){return _0xd15ax4[_0xca7b[12]](204)})[_0xca7b[5]](function(_0xd15ax5){return handleError(_0xd15ax4,_0xd15ax5)});})[_0xca7b[5]](function(_0xd15ax5){return handleError(_0xd15ax4,_0xd15ax5)})};function handleError(_0xd15ax4,_0xd15ax5){return _0xd15ax4[_0xca7b[7]](500)[_0xca7b[6]](_0xd15ax5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var UserHasMailQueue = require('../../models').UserHasMailQueue;
+
+// Get list of user_has_mail_queues
+exports.index = function(req, res) {
+  UserHasMailQueue
+    .findAll(req.query ? {
+      where: req.query
+    } : {})
+    .then(function(user_has_mail_queues) {
+      return res.status(200).send(user_has_mail_queues);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single user_has_mail_queue
+exports.show = function(req, res) {
+  UserHasMailQueue
+    .findById(req.params.id)
+    .then(function(user_has_mail_queue) {
+      if (!user_has_mail_queue) {
+        return res.sendStatus(404);
+      }
+      return res.send(user_has_mail_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new user_has_mail_queue in the DB.
+exports.create = function(req, res) {
+  UserHasMailQueue
+    .create(req.body)
+    .then(function(user_has_mail_queue) {
+      return res.status(201).send(user_has_mail_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing user_has_mail_queue in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  UserHasMailQueue
+    .findById(req.params.id)
+    .then(function(user_has_mail_queue) {
+      if (!user_has_mail_queue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(user_has_mail_queue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(user_has_mail_queue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a user_has_mail_queue from the DB.
+exports.destroy = function(req, res) {
+  UserHasMailQueue
+    .findById(req.params.id)
+    .then(function(user_has_mail_queue) {
+      if (!user_has_mail_queue) {
+        return res.sendStatus(404);
+      }
+      user_has_mail_queue.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 25fc7a8..bea513c 100644 (file)
@@ -1 +1,24 @@
-var _0x6462=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x6462[0];var UserHasMailQueue=require(_0x6462[2])[_0x6462[1]];exports[_0x6462[3]]=function(_0x31cfx2){UserHasMailQueue[_0x6462[4]](function(_0x31cfx3){onSave(_0x31cfx2,_0x31cfx3)});UserHasMailQueue[_0x6462[5]](function(_0x31cfx3){onRemove(_0x31cfx2,_0x31cfx3)});};function onSave(_0x31cfx2,_0x31cfx3,_0x31cfx5){_0x31cfx2[_0x6462[7]](_0x6462[6],_0x31cfx3)}function onRemove(_0x31cfx2,_0x31cfx3,_0x31cfx5){_0x31cfx2[_0x6462[7]](_0x6462[8],_0x31cfx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var UserHasMailQueue = require('../../models').UserHasMailQueue;
+
+exports.register = function(socket) {
+  UserHasMailQueue.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  UserHasMailQueue.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('user_has_mail_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('user_has_mail_queue:remove', doc);
+}
index d71af1a..d516012 100644 (file)
@@ -1 +1,20 @@
-var _0x9432=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x9432[0];var should=require(_0x9432[1]);var app=require(_0x9432[2]);var request=require(_0x9432[3]);describe(_0x9432[4],function(){it(_0x9432[5],function(_0x3bfax4){request(app)[_0x9432[13]](_0x9432[12])[_0x9432[11]](200)[_0x9432[11]](_0x9432[10],/json/)[_0x9432[9]](function(_0x3bfax5,_0x3bfax6){if(_0x3bfax5){return _0x3bfax4(_0x3bfax5)};_0x3bfax6[_0x9432[8]][_0x9432[1]][_0x9432[7]][_0x9432[6]](Array);_0x3bfax4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/mail/user_has_queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/mail/user_has_queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
diff --git a/server/api/user_has_service/index.js b/server/api/user_has_service/index.js
new file mode 100644 (file)
index 0000000..1e7edf7
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./user_has_service.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
diff --git a/server/api/user_has_service/user_has_service.controller.js b/server/api/user_has_service/user_has_service.controller.js
new file mode 100644 (file)
index 0000000..377090e
--- /dev/null
@@ -0,0 +1,98 @@
+'use strict';
+
+var _ = require('lodash');
+var UserHasService = require('../../models').UserHasService;
+
+// Get list of user_has_voice_queues
+exports.index = function(req, res) {
+  UserHasService
+    .findAll(req.query ? {
+      where: req.query
+    } : {})
+    .then(function(user_has_voice_queues) {
+      return res.status(200).send(user_has_voice_queues);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single userHasService
+exports.show = function(req, res) {
+  UserHasService
+    .findById(req.params.id)
+    .then(function(userHasService) {
+      if (!userHasService) {
+        return res.sendStatus(404);
+      }
+      return res.send(userHasService);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new userHasService in the DB.
+exports.create = function(req, res, next) {
+  console.log(req.body);
+  UserHasService
+    .create(req.body)
+    .then(function(userHasService) {
+      return res.status(201).send(userHasService);
+    })
+    .catch(function(err) {
+      console.error(err);
+      return next(err);
+      // return handleError(res, err);
+    });
+};
+
+// Updates an existing userHasService in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  UserHasService
+    .findById(req.params.id)
+    .then(function(userHasService) {
+      if (!userHasService) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(userHasService, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(userHasService);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a userHasService from the DB.
+exports.destroy = function(req, res) {
+  UserHasService
+    .findById(req.params.id)
+    .then(function(userHasService) {
+      if (!userHasService) {
+        return res.sendStatus(404);
+      }
+      userHasService.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/user_has_service/user_has_service.socket.js b/server/api/user_has_service/user_has_service.socket.js
new file mode 100644 (file)
index 0000000..816d536
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var UserHasService = require('../../models').UserHasService;
+
+exports.register = function(socket) {
+  UserHasService.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  UserHasService.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  UserHasService.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('user_has_service:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('user_has_service:remove', doc);
+}
diff --git a/server/api/user_has_service/user_has_service.spec.js b/server/api/user_has_service/user_has_service.spec.js
new file mode 100644 (file)
index 0000000..0822ab1
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/contactmanager/user_has_service', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/contactmanager/user_has_service')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 0325390..723bdc1 100644 (file)
@@ -1 +1,15 @@
-var _0x53f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x53f9[0];var express=require(_0x53f9[1]);var controller=require(_0x53f9[2]);var router=express.Router();router[_0x53f9[5]](_0x53f9[3],controller[_0x53f9[4]]);router[_0x53f9[5]](_0x53f9[6],controller[_0x53f9[7]]);router[_0x53f9[9]](_0x53f9[3],controller[_0x53f9[8]]);router[_0x53f9[11]](_0x53f9[6],controller[_0x53f9[10]]);router[_0x53f9[12]](_0x53f9[6],controller[_0x53f9[10]]);router[_0x53f9[14]](_0x53f9[6],controller[_0x53f9[13]]);module[_0x53f9[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./user_has_team.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 5d23496..7f0f426 100644 (file)
@@ -1 +1,96 @@
-var _0xdf96=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x71\x75\x65\x72\x79","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xdf96[0];var _=require(_0xdf96[1]);var UserHasTeam=require(_0xdf96[3])[_0xdf96[2]];exports[_0xdf96[4]]=function(_0xd9b6x3,_0xd9b6x4){console[_0xdf96[6]](_0xd9b6x3[_0xdf96[5]]);UserHasTeam[_0xdf96[11]]({where:_0xd9b6x3[_0xdf96[5]]})[_0xdf96[10]](function(_0xd9b6x6){return _0xd9b6x4[_0xdf96[9]](200)[_0xdf96[8]](_0xd9b6x6)})[_0xdf96[7]](function(_0xd9b6x5){return handleError(_0xd9b6x4,_0xd9b6x5)});};exports[_0xdf96[12]]=function(_0xd9b6x3,_0xd9b6x4){UserHasTeam[_0xdf96[16]](_0xd9b6x3[_0xdf96[15]][_0xdf96[14]])[_0xdf96[10]](function(_0xd9b6x7){if(!_0xd9b6x7){return _0xd9b6x4[_0xdf96[13]](404)};return _0xd9b6x4[_0xdf96[8]](_0xd9b6x7);})[_0xdf96[7]](function(_0xd9b6x5){return handleError(_0xd9b6x4,_0xd9b6x5)})};exports[_0xdf96[17]]=function(_0xd9b6x3,_0xd9b6x4){UserHasTeam[_0xdf96[17]](_0xd9b6x3[_0xdf96[18]])[_0xdf96[10]](function(_0xd9b6x7){return _0xd9b6x4[_0xdf96[9]](201)[_0xdf96[8]](_0xd9b6x7)})[_0xdf96[7]](function(_0xd9b6x5){return handleError(_0xd9b6x4,_0xd9b6x5)})};exports[_0xdf96[19]]=function(_0xd9b6x3,_0xd9b6x4){if(_0xd9b6x3[_0xdf96[18]][_0xdf96[14]]){delete _0xd9b6x3[_0xdf96[18]][_0xdf96[14]]};UserHasTeam[_0xdf96[16]](_0xd9b6x3[_0xdf96[15]][_0xdf96[14]])[_0xdf96[10]](function(_0xd9b6x7){if(!_0xd9b6x7){return _0xd9b6x4[_0xdf96[13]](404)};var _0xd9b6x8=_[_0xdf96[20]](_0xd9b6x7,_0xd9b6x3[_0xdf96[18]]);_0xd9b6x8[_0xdf96[21]]()[_0xdf96[10]](function(){return _0xd9b6x4[_0xdf96[9]](200)[_0xdf96[8]](_0xd9b6x7)})[_0xdf96[7]](function(_0xd9b6x5){return handleError(_0xd9b6x4,_0xd9b6x5)});})[_0xdf96[7]](function(_0xd9b6x5){return handleError(_0xd9b6x4,_0xd9b6x5)});};exports[_0xdf96[22]]=function(_0xd9b6x3,_0xd9b6x4){UserHasTeam[_0xdf96[16]](_0xd9b6x3[_0xdf96[15]][_0xdf96[14]])[_0xdf96[10]](function(_0xd9b6x7){if(!_0xd9b6x7){return _0xd9b6x4[_0xdf96[13]](404)};_0xd9b6x7[_0xdf96[22]]()[_0xdf96[10]](function(){return _0xd9b6x4[_0xdf96[13]](204)})[_0xdf96[7]](function(_0xd9b6x5){return handleError(_0xd9b6x4,_0xd9b6x5)});})[_0xdf96[7]](function(_0xd9b6x5){return handleError(_0xd9b6x4,_0xd9b6x5)})};function handleError(_0xd9b6x4,_0xd9b6x5){return _0xd9b6x4[_0xdf96[9]](500)[_0xdf96[8]](_0xd9b6x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var UserHasTeam = require('../../models').UserHasTeam;
+
+// Get list of user_has_teams
+exports.index = function(req, res) {
+  console.log(req.query);
+  UserHasTeam
+    .findAll({
+      where: req.query
+    })
+    .then(function(user_has_teams) {
+      return res.status(200).send(user_has_teams);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single user_has_team
+exports.show = function(req, res) {
+  UserHasTeam
+    .findById(req.params.id)
+    .then(function(user_has_team) {
+      if (!user_has_team) {
+        return res.sendStatus(404);
+      }
+      return res.send(user_has_team);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new user_has_team in the DB.
+exports.create = function(req, res) {
+  UserHasTeam
+    .create(req.body)
+    .then(function(user_has_team) {
+      return res.status(201).send(user_has_team);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing user_has_team in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  UserHasTeam
+    .findById(req.params.id)
+    .then(function(user_has_team) {
+      if (!user_has_team) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(user_has_team, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(user_has_team);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a user_has_team from the DB.
+exports.destroy = function(req, res) {
+  UserHasTeam
+    .findById(req.params.id)
+    .then(function(user_has_team) {
+      if (!user_has_team) {
+        return res.sendStatus(404);
+      }
+      user_has_team.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index a3b2a22..6d5861d 100644 (file)
@@ -1 +1,13 @@
-var _0xb7d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x64\x65\x66\x69\x6E\x65"];_0xb7d4[0];module[_0xb7d4[1]]=function(_0x5702x1,_0x5702x2){var _0x5702x3=_0x5702x1[_0xb7d4[3]](_0xb7d4[2],{name:String,info:String,active:Boolean});return _0x5702x3;};
\ No newline at end of file
+'use strict';
+
+module.export = function(sequelize, DataTypes) {
+
+  var UserHasTeam = sequelize.define('UserHasTeam', {
+    name: String,
+    info: String,
+    active: Boolean
+  });
+
+  return UserHasTeam;
+
+};
index 7cc94c6..879043c 100644 (file)
@@ -1 +1,24 @@
-var _0x8003=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8003[0];var user_has_team=require(_0x8003[2])[_0x8003[1]];exports[_0x8003[3]]=function(_0x9711x2){user_has_team[_0x8003[4]](function(_0x9711x3){onSave(_0x9711x2,_0x9711x3)});user_has_team[_0x8003[5]](function(_0x9711x3){onRemove(_0x9711x2,_0x9711x3)});};function onSave(_0x9711x2,_0x9711x3,_0x9711x5){_0x9711x2[_0x8003[7]](_0x8003[6],_0x9711x3)}function onRemove(_0x9711x2,_0x9711x3,_0x9711x5){_0x9711x2[_0x8003[7]](_0x8003[8],_0x9711x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var user_has_team = require('../../models').UserHasTeam;
+
+exports.register = function(socket) {
+  user_has_team.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  user_has_team.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('user_has_team:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('user_has_team:remove', doc);
+}
index 0b0a245..5cc5226 100644 (file)
@@ -1 +1,20 @@
-var _0x932c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x67\x65\x74"];_0x932c[0];var should=require(_0x932c[1]);var app=require(_0x932c[2]);var request=require(_0x932c[3]);describe(_0x932c[4],function(){it(_0x932c[5],function(_0xb305x4){request(app)[_0x932c[13]](_0x932c[12])[_0x932c[11]](200)[_0x932c[11]](_0x932c[10],/json/)[_0x932c[9]](function(_0xb305x5,_0xb305x6){if(_0xb305x5){return _0xb305x4(_0xb305x5)};_0xb305x6[_0x932c[8]][_0x932c[1]][_0x932c[7]][_0x932c[6]](Array);_0xb305x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/user_has_teams', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/user_has_teams')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index ebc5712..72551d5 100644 (file)
@@ -1 +1,15 @@
-var _0xda1a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xda1a[0];var express=require(_0xda1a[1]);var controller=require(_0xda1a[2]);var router=express.Router();router[_0xda1a[5]](_0xda1a[3],controller[_0xda1a[4]]);router[_0xda1a[5]](_0xda1a[6],controller[_0xda1a[7]]);router[_0xda1a[9]](_0xda1a[3],controller[_0xda1a[8]]);router[_0xda1a[11]](_0xda1a[6],controller[_0xda1a[10]]);router[_0xda1a[12]](_0xda1a[6],controller[_0xda1a[10]]);router[_0xda1a[14]](_0xda1a[6],controller[_0xda1a[13]]);module[_0xda1a[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./user_has_voice_queue.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
\ No newline at end of file
index 23c788c..f3e5d22 100644 (file)
@@ -1 +1,98 @@
-var _0xcb38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xcb38[0];var _=require(_0xcb38[1]);var UserHasVoiceQueue=require(_0xcb38[3])[_0xcb38[2]];exports[_0xcb38[4]]=function(_0xd490x3,_0xd490x4){UserHasVoiceQueue[_0xcb38[10]](_0xd490x3[_0xcb38[9]]?{where:_0xd490x3[_0xcb38[9]]}:{})[_0xcb38[8]](function(_0xd490x6){return _0xd490x4[_0xcb38[7]](200)[_0xcb38[6]](_0xd490x6)})[_0xcb38[5]](function(_0xd490x5){return handleError(_0xd490x4,_0xd490x5)})};exports[_0xcb38[11]]=function(_0xd490x3,_0xd490x4){UserHasVoiceQueue[_0xcb38[15]](_0xd490x3[_0xcb38[14]][_0xcb38[13]])[_0xcb38[8]](function(_0xd490x7){if(!_0xd490x7){return _0xd490x4[_0xcb38[12]](404)};return _0xd490x4[_0xcb38[6]](_0xd490x7);})[_0xcb38[5]](function(_0xd490x5){return handleError(_0xd490x4,_0xd490x5)})};exports[_0xcb38[16]]=function(_0xd490x3,_0xd490x4,_0xd490x8){console[_0xcb38[18]](_0xd490x3[_0xcb38[17]]);UserHasVoiceQueue[_0xcb38[16]](_0xd490x3[_0xcb38[17]])[_0xcb38[8]](function(_0xd490x7){return _0xd490x4[_0xcb38[7]](201)[_0xcb38[6]](_0xd490x7)})[_0xcb38[5]](function(_0xd490x5){console[_0xcb38[19]](_0xd490x5);return _0xd490x8(_0xd490x5);});};exports[_0xcb38[20]]=function(_0xd490x3,_0xd490x4){if(_0xd490x3[_0xcb38[17]][_0xcb38[13]]){delete _0xd490x3[_0xcb38[17]][_0xcb38[13]]};UserHasVoiceQueue[_0xcb38[15]](_0xd490x3[_0xcb38[14]][_0xcb38[13]])[_0xcb38[8]](function(_0xd490x7){if(!_0xd490x7){return _0xd490x4[_0xcb38[12]](404)};var _0xd490x9=_[_0xcb38[21]](_0xd490x7,_0xd490x3[_0xcb38[17]]);_0xd490x9[_0xcb38[22]]()[_0xcb38[8]](function(){return _0xd490x4[_0xcb38[7]](200)[_0xcb38[6]](_0xd490x7)})[_0xcb38[5]](function(_0xd490x5){return handleError(_0xd490x4,_0xd490x5)});})[_0xcb38[5]](function(_0xd490x5){return handleError(_0xd490x4,_0xd490x5)});};exports[_0xcb38[23]]=function(_0xd490x3,_0xd490x4){UserHasVoiceQueue[_0xcb38[15]](_0xd490x3[_0xcb38[14]][_0xcb38[13]])[_0xcb38[8]](function(_0xd490x7){if(!_0xd490x7){return _0xd490x4[_0xcb38[12]](404)};_0xd490x7[_0xcb38[23]]()[_0xcb38[8]](function(){return _0xd490x4[_0xcb38[12]](204)})[_0xcb38[5]](function(_0xd490x5){return handleError(_0xd490x4,_0xd490x5)});})[_0xcb38[5]](function(_0xd490x5){return handleError(_0xd490x4,_0xd490x5)})};function handleError(_0xd490x4,_0xd490x5){return _0xd490x4[_0xcb38[7]](500)[_0xcb38[6]](_0xd490x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
+
+// Get list of user_has_voice_queues
+exports.index = function(req, res) {
+  UserHasVoiceQueue
+    .findAll(req.query ? {
+      where: req.query
+    } : {})
+    .then(function(user_has_voice_queues) {
+      return res.status(200).send(user_has_voice_queues);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single userHasVoiceQueue
+exports.show = function(req, res) {
+  UserHasVoiceQueue
+    .findById(req.params.id)
+    .then(function(userHasVoiceQueue) {
+      if (!userHasVoiceQueue) {
+        return res.sendStatus(404);
+      }
+      return res.send(userHasVoiceQueue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new userHasVoiceQueue in the DB.
+exports.create = function(req, res, next) {
+  console.log(req.body);
+  UserHasVoiceQueue
+    .create(req.body)
+    .then(function(userHasVoiceQueue) {
+      return res.status(201).send(userHasVoiceQueue);
+    })
+    .catch(function(err) {
+      console.error(err);
+      return next(err);
+      // return handleError(res, err);
+    });
+};
+
+// Updates an existing userHasVoiceQueue in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  UserHasVoiceQueue
+    .findById(req.params.id)
+    .then(function(userHasVoiceQueue) {
+      if (!userHasVoiceQueue) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(userHasVoiceQueue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(userHasVoiceQueue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a userHasVoiceQueue from the DB.
+exports.destroy = function(req, res) {
+  UserHasVoiceQueue
+    .findById(req.params.id)
+    .then(function(userHasVoiceQueue) {
+      if (!userHasVoiceQueue) {
+        return res.sendStatus(404);
+      }
+      userHasVoiceQueue.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 567e505..73e229c 100644 (file)
@@ -1 +1,41 @@
-var _0xc6d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x6C\x6F\x67\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x41\x74","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x63\x61\x6C\x6C\x73\x74\x61\x6B\x65\x6E","\x6C\x61\x73\x74\x63\x61\x6C\x6C","\x73\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x64\x65\x73\x63","\x73\x74\x61\x74\x75\x73\x41\x74","\x70\x61\x75\x73\x65\x64","\x70\x61\x75\x73\x65\x64\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xc6d8[0];var UserHasVoiceQueue=require(_0xc6d8[2])[_0xc6d8[1]];exports[_0xc6d8[3]]=function(_0x961bx2){UserHasVoiceQueue[_0xc6d8[4]](function(_0x961bx3){onSave(_0x961bx2,_0x961bx3)});UserHasVoiceQueue[_0xc6d8[5]](function(_0x961bx3){onSave(_0x961bx2,_0x961bx3)});UserHasVoiceQueue[_0xc6d8[6]](function(_0x961bx3){onRemove(_0x961bx2,_0x961bx3)});};function onSave(_0x961bx2,_0x961bx3,_0x961bx5){_0x961bx2[_0xc6d8[21]](_0xc6d8[7],{logged:_0x961bx3[_0xc6d8[8]],loggedAt:_0x961bx3[_0xc6d8[9]],queue:_0x961bx3[_0xc6d8[10]],membername:_0x961bx3[_0xc6d8[11]],interface:_0x961bx3[_0xc6d8[12]],callstaken:_0x961bx3[_0xc6d8[13]],lastcall:_0x961bx3[_0xc6d8[14]],status:_0x961bx3[_0xc6d8[15]],statusdesc:_0x961bx3[_0xc6d8[16]],statusAt:_0x961bx3[_0xc6d8[17]],paused:_0x961bx3[_0xc6d8[18]],pausedAt:_0x961bx3[_0xc6d8[19]],reason:_0x961bx3[_0xc6d8[20]]})}function onRemove(_0x961bx2,_0x961bx3,_0x961bx5){_0x961bx2[_0xc6d8[21]](_0xc6d8[22],_0x961bx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
+
+exports.register = function(socket) {
+  UserHasVoiceQueue.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  UserHasVoiceQueue.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  UserHasVoiceQueue.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('user_has_voice_queue:save', {
+    logged: doc.logged,
+    loggedAt: doc.loggedAt,
+    queue: doc.queue,
+    membername: doc.membername,
+    interface: doc.interface,
+    callstaken: doc.callstaken,
+    lastcall: doc.lastcall,
+    status: doc.status,
+    statusdesc: doc.statusdesc,
+    statusAt: doc.statusAt,
+    paused: doc.paused,
+    pausedAt: doc.pausedAt,
+    reason: doc.reason
+  });
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('user_has_voice_queue:remove', doc);
+}
index fde04da..0ac501f 100644 (file)
@@ -1 +1,20 @@
-var _0x708b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x708b[0];var should=require(_0x708b[1]);var app=require(_0x708b[2]);var request=require(_0x708b[3]);describe(_0x708b[4],function(){it(_0x708b[5],function(_0x25cex4){request(app)[_0x708b[13]](_0x708b[12])[_0x708b[11]](200)[_0x708b[11]](_0x708b[10],/json/)[_0x708b[9]](function(_0x25cex5,_0x25cex6){if(_0x25cex5){return _0x25cex4(_0x25cex5)};_0x25cex6[_0x708b[8]][_0x708b[1]][_0x708b[7]][_0x708b[6]](Array);_0x25cex4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/voice/user_has_queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/voice/user_has_queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index a28a480..c2fafbf 100644 (file)
@@ -1 +1,18 @@
-var _0xfadf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xfadf[0];var express=require(_0xfadf[1]);var controller=require(_0xfadf[2]);var auth=require(_0xfadf[3]);var router=express.Router();router[_0xfadf[7]](_0xfadf[4],auth[_0xfadf[5]](),controller[_0xfadf[6]]);router[_0xfadf[7]](_0xfadf[8],auth[_0xfadf[5]](),controller[_0xfadf[9]]);router[_0xfadf[11]](_0xfadf[4],auth[_0xfadf[5]](),controller[_0xfadf[10]]);router[_0xfadf[11]](_0xfadf[12],auth[_0xfadf[5]](),controller[_0xfadf[13]]);router[_0xfadf[15]](_0xfadf[8],auth[_0xfadf[5]](),controller[_0xfadf[14]]);router[_0xfadf[16]](_0xfadf[8],auth[_0xfadf[5]](),controller[_0xfadf[14]]);router[_0xfadf[18]](_0xfadf[4],auth[_0xfadf[5]](),controller[_0xfadf[17]]);router[_0xfadf[18]](_0xfadf[8],auth[_0xfadf[5]](),controller[_0xfadf[19]]);module[_0xfadf[20]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./variable.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.variableValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 119e4eb..5cd10db 100644 (file)
@@ -1 +1,220 @@
-var _0xc754=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x76\x61\x72\x69\x61\x62\x6C\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x56\x41\x52\x49\x41\x42\x4C\x45","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x56\x41\x52\x49\x41\x42\x4C\x45\x5F\x43\x4F\x4E\x46\x49\x47\x55\x52\x41\x54\x49\x4F\x4E\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x54\x65\x78\x74\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xc754[0];var _=require(_0xc754[1]);var Variable=require(_0xc754[3])[_0xc754[2]];var util=require(_0xc754[4]);exports[_0xc754[5]]=function(_0x3801x4,_0x3801x5){var _0x3801x6=[_0xc754[6],_0xc754[7]];var _0x3801x7=_0x3801x4[_0xc754[9]][_0xc754[8]]?parseInt(_0x3801x4[_0xc754[9]][_0xc754[8]],10):100;var _0x3801x8=_0x3801x4[_0xc754[9]][_0xc754[10]]?parseInt(_0x3801x4[_0xc754[9]][_0xc754[10]],10):0;var _0x3801x9={where:{},limit:_0x3801x7,offset:_0x3801x8*_0x3801x7};_[_0xc754[24]](_0x3801x4[_0xc754[9]],function(_0x3801xa,_0x3801xb){switch(_0x3801xb){case _0xc754[8]:;case _0xc754[10]:break ;;case _0xc754[13]:_0x3801x9[_0xc754[11]]=util[_0xc754[16]](_0xc754[12],_0x3801x4[_0xc754[9]][_0xc754[13]],_0x3801x4[_0xc754[9]][_0xc754[14]]||_0xc754[15])||null;break ;;case _0xc754[14]:break ;;case _0xc754[22]:_0x3801x9[_0xc754[18]][_0xc754[17]]=[];_0x3801x6[_0xc754[21]](function(_0x3801xc){var _0x3801xd={};_0x3801xd[_0x3801xc]={$like:_0xc754[19]+_0x3801xa+_0xc754[19]};_0x3801x9[_0xc754[18]][_0xc754[17]][_0xc754[20]](_0x3801xd);});break ;;default:_0x3801x9[_0xc754[18]][_0x3801xb]={$like:{}};_0x3801x9[_0xc754[18]][_0x3801xb][_0xc754[23]]=_0xc754[19]+_0x3801xa+_0xc754[19];;}});Variable[_0xc754[39]](_0x3801x9)[_0xc754[38]](function(_0x3801xf){var _0x3801x10=Math[_0xc754[30]](_0x3801xf[_0xc754[29]]/_0x3801x7);var _0x3801x11=_0x3801x10>(_0x3801x9[_0xc754[31]]+1)?util[_0xc754[16]](_0xc754[32],_0x3801x4[_0xc754[33]],_0x3801x4[_0xc754[35]][_0xc754[34]],_0x3801x4[_0xc754[36]],_0x3801x8+1):null;var _0x3801x12=_0x3801x8>0?util[_0xc754[16]](_0xc754[32],_0x3801x4[_0xc754[33]],_0x3801x4[_0xc754[35]][_0xc754[34]],_0x3801x4[_0xc754[36]],_0x3801x8-1):null;_0x3801x5[_0xc754[27]](200)[_0xc754[26]]({count:_0x3801xf[_0xc754[29]],rows:_0x3801xf[_0xc754[37]],next_page:_0x3801x11,previous_page:_0x3801x12,total_pages:_0x3801x10});})[_0xc754[28]](function(_0x3801xe){_0x3801x5[_0xc754[27]](500)[_0xc754[26]]({error:_0xc754[25]})});};exports[_0xc754[40]]=function(_0x3801x4,_0x3801x5){console[_0xc754[42]](_0x3801x4[_0xc754[41]]);Variable[_0xc754[44]]({where:{name:_0x3801x4[_0xc754[41]][_0xc754[6]]}})[_0xc754[38]](function(_0x3801x13){if(!_0x3801x13){return _0x3801x5[_0xc754[43]](404)};return _0x3801x5[_0xc754[26]](_0x3801x13);})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)});};exports[_0xc754[45]]=function(_0x3801x4,_0x3801x5){Variable[_0xc754[48]](_0x3801x4[_0xc754[47]][_0xc754[46]])[_0xc754[38]](function(_0x3801x14){if(!_0x3801x14){return _0x3801x5[_0xc754[43]](404)};return _0x3801x5[_0xc754[26]](_0x3801x14);})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)})};exports[_0xc754[49]]=function(_0x3801x4,_0x3801x5){Variable[_0xc754[49]](_0x3801x4[_0xc754[41]])[_0xc754[38]](function(_0x3801x14){return _0x3801x5[_0xc754[27]](201)[_0xc754[26]](_0x3801x14)})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)})};exports[_0xc754[50]]=function(_0x3801x4,_0x3801x5){Variable[_0xc754[44]]({where:{name:_0x3801x4[_0xc754[41]][_0xc754[6]],id:{$ne:_0x3801x4[_0xc754[41]][_0xc754[46]]}}})[_0xc754[38]](function(_0x3801x13){if(!_0x3801x13){return _0x3801x5[_0xc754[43]](404)};if(_0x3801x13[_0xc754[51]]>0){return _0x3801x5[_0xc754[27]](500)[_0xc754[26]]({message:_0xc754[52]})};if(_0x3801x4[_0xc754[41]][_0xc754[46]]){delete _0x3801x4[_0xc754[41]][_0xc754[46]]};Variable[_0xc754[55]]({where:{id:_0x3801x4[_0xc754[47]][_0xc754[46]]}})[_0xc754[38]](function(_0x3801x14){if(!_0x3801x14){return _0x3801x5[_0xc754[43]](404)};var _0x3801x15=_[_0xc754[53]](_0x3801x14,_0x3801x4[_0xc754[41]]);_0x3801x15[_0xc754[54]]()[_0xc754[38]](function(){return _0x3801x5[_0xc754[27]](200)[_0xc754[26]](_0x3801x14)})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)});})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)});})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)})};exports[_0xc754[56]]=function(_0x3801x4,_0x3801x5){Variable[_0xc754[48]](_0x3801x4[_0xc754[47]][_0xc754[46]])[_0xc754[38]](function(_0x3801x14){if(!_0x3801x14){return _0x3801x5[_0xc754[43]](404)};_0x3801x14[_0xc754[58]]()[_0xc754[38]](function(_0x3801x16){if(_0x3801x16[_0xc754[51]]>0){return _0x3801x5[_0xc754[27]](500)[_0xc754[26]]({message:_0xc754[57]})};_0x3801x14[_0xc754[56]]()[_0xc754[38]](function(){return _0x3801x5[_0xc754[43]](204)})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)});})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)});})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)})};exports[_0xc754[59]]=function(_0x3801x4,_0x3801x5){Variable[_0xc754[56]]({where:{id:_0x3801x4[_0xc754[9]][_0xc754[46]]},individualHooks:true})[_0xc754[38]](function(){return _0x3801x5[_0xc754[43]](204)})[_0xc754[28]](function(_0x3801xe){return handleError(_0x3801x5,_0x3801xe)})};function handleError(_0x3801x5,_0x3801xe){return _0x3801x5[_0xc754[27]](500)[_0xc754[26]](_0x3801xe)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var Variable = require('../../models').Variable;
+var util = require('util');
+
+// Get list of variables
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Variable
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.variableValidation = function(req, res) {
+  console.log(req.body);
+  Variable
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(variables) {
+      if (!variables) {
+        return res.sendStatus(404);
+      }
+      return res.send(variables);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single variable
+exports.show = function(req, res) {
+  Variable
+    .findById(req.params.id)
+    .then(function(variable) {
+      if (!variable) {
+        return res.sendStatus(404);
+      }
+      return res.send(variable);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new variable in the DB.
+exports.create = function(req, res) {
+  Variable
+    .create(req.body)
+    .then(function(variable) {
+      return res.status(201).send(variable);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing variable in the DB.
+exports.update = function(req, res) {
+  Variable
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(variables) {
+      if (!variables) {
+        return res.sendStatus(404);
+      }
+      if (variables.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_VARIABLE'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Variable
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(variable) {
+          if (!variable) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(variable, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(variable);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a variable from the DB.
+exports.destroy = function(req, res) {
+  Variable
+    .findById(req.params.id)
+    .then(function(variable) {
+      if (!variable) {
+        return res.sendStatus(404);
+      }
+      variable.getZendeskTexts()
+        .then(function(texts) {
+          if (texts.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_VARIABLE_CONFIGURATION_ASSOCIATED'
+            });
+          }
+          variable.destroy()
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Variable
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 9383980..739f11c 100644 (file)
@@ -1 +1,24 @@
-var _0x8879=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8879[0];var Variable=require(_0x8879[2])[_0x8879[1]];exports[_0x8879[3]]=function(_0x2e8dx2){Variable[_0x8879[4]](function(_0x2e8dx3){onSave(_0x2e8dx2,_0x2e8dx3)});Variable[_0x8879[5]](function(_0x2e8dx3){onRemove(_0x2e8dx2,_0x2e8dx3)});};function onSave(_0x2e8dx2,_0x2e8dx3,_0x2e8dx5){_0x2e8dx2[_0x8879[7]](_0x8879[6],_0x2e8dx3)}function onRemove(_0x2e8dx2,_0x2e8dx3,_0x2e8dx5){_0x2e8dx2[_0x8879[7]](_0x8879[8],_0x2e8dx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Variable = require('../../models').Variable;
+
+exports.register = function(socket) {
+  Variable.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Variable.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('variable:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('variable:remove', doc);
+}
index 7d2573b..0a463f7 100644 (file)
@@ -1 +1,20 @@
-var _0x8220=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x67\x65\x74"];_0x8220[0];var should=require(_0x8220[1]);var app=require(_0x8220[2]);var request=require(_0x8220[3]);describe(_0x8220[4],function(){it(_0x8220[5],function(_0xb03ax4){request(app)[_0x8220[13]](_0x8220[12])[_0x8220[11]](200)[_0x8220[11]](_0x8220[10],/json/)[_0x8220[9]](function(_0xb03ax5,_0xb03ax6){if(_0xb03ax5){return _0xb03ax4(_0xb03ax5)};_0xb03ax6[_0x8220[8]][_0x8220[1]][_0x8220[7]][_0x8220[6]](Array);_0xb03ax4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/variables', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/variables')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 94bda39..1b436c8 100644 (file)
@@ -1 +1,16 @@
-var _0x5e6e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x63\x6F\x6E\x74\x65\x78\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x5e6e[0];var express=require(_0x5e6e[1]);var controller=require(_0x5e6e[2]);var auth=require(_0x5e6e[3]);var router=express.Router();router[_0x5e6e[7]](_0x5e6e[4],auth[_0x5e6e[5]](),controller[_0x5e6e[6]]);router[_0x5e6e[7]](_0x5e6e[8],auth[_0x5e6e[5]](),controller[_0x5e6e[9]]);router[_0x5e6e[11]](_0x5e6e[4],auth[_0x5e6e[5]](),controller[_0x5e6e[10]]);router[_0x5e6e[11]](_0x5e6e[12],auth[_0x5e6e[5]](),controller[_0x5e6e[13]]);router[_0x5e6e[15]](_0x5e6e[8],auth[_0x5e6e[5]](),controller[_0x5e6e[14]]);router[_0x5e6e[17]](_0x5e6e[4],auth[_0x5e6e[5]](),controller[_0x5e6e[16]]);router[_0x5e6e[17]](_0x5e6e[8],auth[_0x5e6e[5]](),controller[_0x5e6e[18]]);module[_0x5e6e[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./voice_context.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.contextValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+module.exports = router;
index 4f82c87..a8737f4 100644 (file)
@@ -1 +1,71 @@
-var _0x9c1d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x6E\x61\x6D\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x6E\x74\x72\x79","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x64\x65\x6C\x65\x74\x65\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74","\x62\x65\x66\x6F\x72\x65\x44\x65\x6C\x65\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","","\x5B\x25\x73\x5D\x0A\x73\x77\x69\x74\x63\x68\x20\x3D\x3E\x20\x52\x65\x61\x6C\x74\x69\x6D\x65\x0A","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x66\x6F\x72\x45\x61\x63\x68","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73\x2E\x63\x6F\x6E\x66","\x6A\x6F\x69\x6E","\x77","\x30\x37\x37\x37","\x43\x6F\x6E\x74\x65\x78\x74\x73\x20\x66\x69\x6C\x65\x20\x73\x61\x76\x65\x64\x21","\x52\x65\x6C\x6F\x61\x64","\x65\x72\x72\x6F\x72","\x61\x63\x74\x69\x6F\x6E","\x77\x72\x69\x74\x65\x46\x69\x6C\x65","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x41\x6C\x6C"];_0x9c1d[0];var VoiceContext=require(_0x9c1d[2])[_0x9c1d[1]];var fs=require(_0x9c1d[3]);var util=require(_0x9c1d[4]);var path=require(_0x9c1d[5]);var config=require(_0x9c1d[6]);exports[_0x9c1d[7]]=function(_0x4908x6){VoiceContext[_0x9c1d[13]](function(_0x4908x7){if(_0x4908x7[_0x9c1d[9]](_0x9c1d[8])){throw  new Error(_0x9c1d[10])};if(_0x4908x7[_0x9c1d[11]]){throw  new Error(_0x9c1d[12])};});VoiceContext[_0x9c1d[15]](function(_0x4908x8){if(_0x4908x8[_0x9c1d[11]]){throw  new Error(_0x9c1d[14])}});VoiceContext[_0x9c1d[16]](function(_0x4908x9){rewriteContexts(_0x4908x9,_0x4908x6,false)});VoiceContext[_0x9c1d[17]](function(_0x4908x9){rewriteContexts(_0x4908x9,_0x4908x6,true)});};function rewriteContexts(_0x4908x9,_0x4908x6,_0x4908xb){var _0x4908xc=_0x9c1d[18];if(!_0x4908xb){_0x4908xc=util[_0x9c1d[20]](_0x9c1d[19],_0x4908x9[_0x9c1d[8]])};VoiceContext[_0x9c1d[36]]({where:{id:{$ne:_0x4908x9[_0x9c1d[35]]}}})[_0x9c1d[34]](function(_0x4908xe){_0x4908xe[_0x9c1d[23]](function(_0x4908xf){_0x4908xc+=util[_0x9c1d[20]](_0x9c1d[19],_0x4908xf[_0x9c1d[8]])});fs[_0x9c1d[33]](path[_0x9c1d[26]](config[_0x9c1d[24]],_0x9c1d[25]),_0x4908xc,{flags:_0x9c1d[27],mode:parseInt(_0x9c1d[28],8)},function(_0x4908xd){if(_0x4908xd){throw _0x4908xd};console[_0x9c1d[21]](_0x9c1d[29]);_0x4908x6[_0x9c1d[32]]({Action:_0x9c1d[30]},function(_0x4908xd,_0x4908x10){if(_0x4908xd){console[_0x9c1d[31]](_0x4908xd)}else {console[_0x9c1d[21]](_0x4908x10)}});});})[_0x9c1d[22]](function(_0x4908xd){console[_0x9c1d[21]](_0x4908xd)});}
\ No newline at end of file
+'use strict';
+
+var VoiceContext = require('../../models').VoiceContext;
+var fs = require('fs');
+var util = require('util');
+var path = require('path');
+var config = require('../../config/environment');
+
+exports.register = function(ami) {
+  VoiceContext.beforeUpdate(function(updatedContext) {
+    if (updatedContext.changed('name')) {
+      throw new Error("You can't modify a context name");
+    }
+    if (updatedContext.defaultEntry) {
+      throw new Error("You can't modify a default context");
+    }
+  });
+
+  VoiceContext.beforeDelete(function(context) {
+    if (context.defaultEntry) {
+      throw new Error("You can't delete a default context");
+    }
+  });
+
+  VoiceContext.afterCreate(function(doc) {
+    rewriteContexts(doc, ami, false);
+  })
+
+  VoiceContext.afterDelete(function(doc) {
+    rewriteContexts(doc, ami, true);
+  })
+}
+
+function rewriteContexts(doc, ami, deleteContext) {
+  var contextValues = '';
+  if (!deleteContext) {
+    contextValues = util.format('[%s]\nswitch => Realtime\n', doc.name);
+  }
+  VoiceContext
+    .findAll({
+      where: {
+        id: {
+          $ne: doc.id
+        }
+      }
+    })
+    .then(function(contexts) {
+      contexts.forEach(function(element) {
+        contextValues += util.format('[%s]\nswitch => Realtime\n', element.name);
+      });
+      fs.writeFile(path.join(config.root, 'server/files/asterisk/sip_xcally_contexts.conf'), contextValues, {
+        flags: 'w',
+        mode: parseInt('0777', 8)
+      }, function(err) {
+        if (err) throw err;
+        console.log("Contexts file saved!");
+        ami.action({
+          Action: 'Reload',
+        }, function(err, res) {
+          if (err) {
+            console.error(err);
+          } else {
+            console.log(res);
+          }
+        });
+      });
+    })
+    .catch(function(err) {
+      console.log(err);
+    });
+}
index 9669887..662a803 100644 (file)
@@ -1 +1,282 @@
-var _0x271d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x6F\x6E\x74\x65\x78\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x46\x69\x6E\x64\x69\x6E\x67\x20\x61\x70\x70\x20\x72\x6F\x77\x2E\x2E\x2E\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x52\x4F\x55\x54\x45","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x43\x4F\x4E\x54\x45\x58\x54\x5F\x52\x4F\x55\x54\x45\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x6C\x75\x63\x6B"];_0x271d[0];var _=require(_0x271d[1]);var util=require(_0x271d[2]);var sequelize=require(_0x271d[4])[_0x271d[3]];var VoiceContext=require(_0x271d[4])[_0x271d[5]];var VoiceExtension=require(_0x271d[4])[_0x271d[6]];exports[_0x271d[7]]=function(_0x94fax6,_0x94fax7,_0x94fax8){var _0x94fax9=[_0x271d[8],_0x271d[9]];var _0x94faxa=_0x94fax6[_0x271d[11]][_0x271d[10]]?parseInt(_0x94fax6[_0x271d[11]][_0x271d[10]],10):100;var _0x94faxb=_0x94fax6[_0x271d[11]][_0x271d[12]]?parseInt(_0x94fax6[_0x271d[11]][_0x271d[12]],10):0;var _0x94faxc={where:{},limit:_0x94faxa,offset:_0x94faxb*_0x94faxa};_[_0x271d[26]](_0x94fax6[_0x271d[11]],function(_0x94faxd,_0x94faxe){switch(_0x94faxe){case _0x271d[10]:;case _0x271d[12]:break ;;case _0x271d[15]:_0x94faxc[_0x271d[13]]=util[_0x271d[18]](_0x271d[14],_0x94fax6[_0x271d[11]][_0x271d[15]],_0x94fax6[_0x271d[11]][_0x271d[16]]||_0x271d[17])||null;break ;;case _0x271d[16]:break ;;case _0x271d[24]:_0x94faxc[_0x271d[20]][_0x271d[19]]=[];_0x94fax9[_0x271d[23]](function(_0x94faxf){var _0x94fax10={};_0x94fax10[_0x94faxf]={$like:_0x271d[21]+_0x94faxd+_0x271d[21]};_0x94faxc[_0x271d[20]][_0x271d[19]][_0x271d[22]](_0x94fax10);});break ;;default:_0x94faxc[_0x271d[20]][_0x94faxe]={$like:{}};_0x94faxc[_0x271d[20]][_0x94faxe][_0x271d[25]]=_0x271d[21]+_0x94faxd+_0x271d[21];;}});VoiceContext[_0x271d[41]](_0x94faxc)[_0x271d[40]](function(_0x94fax12){var _0x94fax13=Math[_0x271d[32]](_0x94fax12[_0x271d[31]]/_0x94faxa);var _0x94fax14=_0x94fax13>(_0x94faxc[_0x271d[33]]+1)?util[_0x271d[18]](_0x271d[34],_0x94fax6[_0x271d[35]],_0x94fax6[_0x271d[37]][_0x271d[36]],_0x94fax6[_0x271d[38]],_0x94faxb+1):null;var _0x94fax15=_0x94faxb>0?util[_0x271d[18]](_0x271d[34],_0x94fax6[_0x271d[35]],_0x94fax6[_0x271d[37]][_0x271d[36]],_0x94fax6[_0x271d[38]],_0x94faxb-1):null;_0x94fax7[_0x271d[29]](200)[_0x271d[28]]({count:_0x94fax12[_0x271d[31]],rows:_0x94fax12[_0x271d[39]],next_page:_0x94fax14,previous_page:_0x94fax15,total_pages:_0x94fax13});})[_0x271d[30]](function(_0x94fax11){_0x94fax7[_0x271d[29]](500)[_0x271d[28]]({error:_0x271d[27]})});};exports[_0x271d[42]]=function(_0x94fax6,_0x94fax7){VoiceContext[_0x271d[46]](_0x94fax6[_0x271d[45]][_0x271d[44]])[_0x271d[40]](function(_0x94fax16){if(!_0x94fax16){return _0x94fax7[_0x271d[43]](404)};return _0x94fax7[_0x271d[28]](_0x94fax16);})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)})};exports[_0x271d[47]]=function(_0x94fax6,_0x94fax7){console[_0x271d[49]](_0x94fax6[_0x271d[48]]);VoiceContext[_0x271d[50]]({where:{name:_0x94fax6[_0x271d[48]][_0x271d[8]]}})[_0x271d[40]](function(_0x94fax17){if(!_0x94fax17){return _0x94fax7[_0x271d[43]](404)};return _0x94fax7[_0x271d[28]](_0x94fax17);})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});};exports[_0x271d[51]]=function(_0x94fax6,_0x94fax7){VoiceContext[_0x271d[50]]({where:{name:_0x94fax6[_0x271d[48]][_0x271d[8]]}})[_0x271d[40]](function(_0x94fax18){console[_0x271d[49]](_0x94fax18);console[_0x271d[49]](_0x271d[52]);if(!_0x94fax18){return _0x94fax7[_0x271d[43]](404)};if(_0x94fax18[_0x271d[53]]>0){return _0x94fax7[_0x271d[29]](500)[_0x271d[28]]({message:_0x271d[54]})};VoiceContext[_0x271d[51]](_0x94fax6[_0x271d[48]])[_0x271d[40]](function(_0x94fax16){return _0x94fax7[_0x271d[29]](201)[_0x271d[28]](_0x94fax16)})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)})};exports[_0x271d[55]]=function(_0x94fax6,_0x94fax7){VoiceContext[_0x271d[50]]({where:{name:_0x94fax6[_0x271d[48]][_0x271d[8]],id:{$ne:_0x94fax6[_0x271d[48]][_0x271d[44]]}}})[_0x271d[40]](function(_0x94fax18){console[_0x271d[49]](_0x94fax18);console[_0x271d[49]](_0x271d[52]);if(!_0x94fax18){return _0x94fax7[_0x271d[43]](404)};if(_0x94fax18[_0x271d[53]]>0){return _0x94fax7[_0x271d[29]](500)[_0x271d[28]]({message:_0x271d[54]})};if(_0x94fax6[_0x271d[48]][_0x271d[44]]){delete _0x94fax6[_0x271d[48]][_0x271d[44]]};VoiceContext[_0x271d[46]](_0x94fax6[_0x271d[45]][_0x271d[44]])[_0x271d[40]](function(_0x94fax16){if(!_0x94fax16){return _0x94fax7[_0x271d[43]](404)};var _0x94fax19=_[_0x271d[56]](_0x94fax16,_0x94fax6[_0x271d[48]]);_0x94fax19[_0x271d[57]]()[_0x271d[40]](function(){return _0x94fax7[_0x271d[29]](200)[_0x271d[28]](_0x94fax16)})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)})};exports[_0x271d[58]]=function(_0x94fax6,_0x94fax7){VoiceContext[_0x271d[46]](_0x94fax6[_0x271d[45]][_0x271d[44]])[_0x271d[40]](function(_0x94fax16){if(!_0x94fax16){return _0x94fax7[_0x271d[43]](404)};VoiceExtension[_0x271d[50]]({where:{context:_0x94fax16[_0x271d[8]]}})[_0x271d[40]](function(_0x94fax1a){if(_0x94fax1a[_0x271d[53]]>0){return _0x94fax7[_0x271d[29]](500)[_0x271d[28]]({message:_0x271d[59]})};_0x94fax16[_0x271d[58]]()[_0x271d[40]](function(){return _0x94fax7[_0x271d[43]](204)})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)})};exports[_0x271d[60]]=function(_0x94fax6,_0x94fax7){VoiceContext[_0x271d[50]]({where:{id:_0x94fax6[_0x271d[11]][_0x271d[44]]}})[_0x271d[40]](function(_0x94fax17){if(!_0x94fax17){return _0x94fax7[_0x271d[43]](404)};var _0x94fax1b=_[_0x271d[62]](_[_0x271d[62]](_0x94fax17,_0x271d[61]),_0x271d[8]);VoiceExtension[_0x271d[50]]({where:{context:_0x94fax1b}})[_0x271d[40]](function(_0x94fax1a){if(_0x94fax1a[_0x271d[53]]>0){return _0x94fax7[_0x271d[29]](500)[_0x271d[28]]({message:_0x271d[59]})};VoiceContext[_0x271d[58]]({where:{id:_0x94fax6[_0x271d[11]][_0x271d[44]]},individualHooks:true})[_0x271d[40]](function(){return _0x94fax7[_0x271d[43]](204)})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)});})[_0x271d[30]](function(_0x94fax11){return handleError(_0x94fax7,_0x94fax11)})};function handleError(_0x94fax7,_0x94fax11){return _0x94fax7[_0x271d[29]](500)[_0x271d[28]](_0x94fax11)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var sequelize = require('../../models').sequelize;
+
+var VoiceContext = require('../../models').VoiceContext;
+var VoiceExtension = require('../../models').VoiceExtension;
+
+// Get list of agents
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  VoiceContext
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single voice_context
+exports.show = function(req, res) {
+  VoiceContext
+    .findById(req.params.id)
+    .then(function(voice_context) {
+      if (!voice_context) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_context);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of a context
+exports.contextValidation = function(req, res) {
+  console.log(req.body);
+  VoiceContext
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(voice_contexts) {
+      if (!voice_contexts) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_contexts);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new voice_context in the DB.
+exports.create = function(req, res) {
+  VoiceContext
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(existingContexts) {
+      console.log(existingContexts);
+      console.log('Finding app row.....');
+      if (!existingContexts) {
+        return res.sendStatus(404);
+      }
+      if (existingContexts.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_ROUTE'
+        });
+      }
+      VoiceContext
+        .create(req.body)
+        .then(function(voice_context) {
+          return res.status(201).send(voice_context);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+
+};
+
+// Updates an existing voice_context in the DB.
+exports.update = function(req, res) {
+  VoiceContext
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(existingContexts) {
+      console.log(existingContexts);
+      console.log('Finding app row.....');
+      if (!existingContexts) {
+        return res.sendStatus(404);
+      }
+      if (existingContexts.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_ROUTE'
+        });
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      VoiceContext
+        .findById(req.params.id)
+        .then(function(voice_context) {
+          if (!voice_context) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(voice_context, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(voice_context);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+
+};
+
+// Deletes a voice_context from the DB.
+exports.destroy = function(req, res) {
+  VoiceContext
+    .findById(req.params.id)
+    .then(function(voice_context) {
+      if (!voice_context) {
+        return res.sendStatus(404);
+      }
+      VoiceExtension
+        .findAll({
+          where: {
+            context: voice_context.name
+          }
+        })
+        .then(function(contextExtensions) {
+          if (contextExtensions.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_CONTEXT_ROUTE_ASSOCIATED'
+            });
+          }
+          voice_context.destroy()
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a context from the DB.
+exports.bulkDestroy = function(req, res) {
+  VoiceContext
+    .findAll({
+      where: {
+        id: req.query.id
+      }
+    })
+    .then(function(voice_contexts) {
+      if (!voice_contexts) {
+        return res.sendStatus(404);
+      }
+      var destroyContextsNames = _.pluck(_.pluck(voice_contexts, 'dataValues'), 'name');
+      VoiceExtension
+        .findAll({
+          where: {
+            context: destroyContextsNames
+          }
+        })
+        .then(function(contextExtensions) {
+          if (contextExtensions.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_CONTEXT_ROUTE_ASSOCIATED'
+            });
+          }
+          VoiceContext
+            .destroy({
+              where: {
+                id: req.query.id
+              },
+              individualHooks: true
+            })
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 032aa6a..c3841ec 100644 (file)
@@ -1 +1,24 @@
-var _0x8017=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8017[0];var VoiceContext=require(_0x8017[2])[_0x8017[1]];exports[_0x8017[3]]=function(_0xdf38x2){VoiceContext[_0x8017[4]](function(_0xdf38x3){onSave(_0xdf38x2,_0xdf38x3)});VoiceContext[_0x8017[5]](function(_0xdf38x3){onRemove(_0xdf38x2,_0xdf38x3)});};function onSave(_0xdf38x2,_0xdf38x3,_0xdf38x5){_0xdf38x2[_0x8017[7]](_0x8017[6],_0xdf38x3)}function onRemove(_0xdf38x2,_0xdf38x3,_0xdf38x5){_0xdf38x2[_0x8017[7]](_0x8017[8],_0xdf38x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var VoiceContext = require('../../models').VoiceContext;
+
+exports.register = function(socket) {
+  VoiceContext.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  VoiceContext.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('voice_context:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('voice_context:remove', doc);
+}
index 88dfc62..1a60777 100644 (file)
@@ -1 +1,20 @@
-var _0x6db9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x67\x65\x74"];_0x6db9[0];var should=require(_0x6db9[1]);var app=require(_0x6db9[2]);var request=require(_0x6db9[3]);describe(_0x6db9[4],function(){it(_0x6db9[5],function(_0x4275x4){request(app)[_0x6db9[13]](_0x6db9[12])[_0x6db9[11]](200)[_0x6db9[11]](_0x6db9[10],/json/)[_0x6db9[9]](function(_0x4275x5,_0x4275x6){if(_0x4275x5){return _0x4275x4(_0x4275x5)};_0x4275x6[_0x6db9[8]][_0x6db9[1]][_0x6db9[7]][_0x6db9[6]](Array);_0x4275x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/voice/contexts', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/voice/contexts')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 0bf9237..cf428d7 100644 (file)
@@ -1 +1,22 @@
-var _0x2feb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x72\x6F\x75\x74\x65\x2F\x3A\x72\x6F\x75\x74\x65","\x73\x68\x6F\x77\x42\x79\x52\x6F\x75\x74\x65","\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x41\x70\x70\x73\x42\x79\x52\x6F\x75\x74\x65","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x72\x6F\x75\x74\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x73\x6F\x72\x74\x41\x70\x70\x73\x42\x79\x52\x6F\x75\x74\x65","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x2feb[0];var express=require(_0x2feb[1]);var controller=require(_0x2feb[2]);var auth=require(_0x2feb[3]);var router=express.Router();router[_0x2feb[7]](_0x2feb[4],auth[_0x2feb[5]](),controller[_0x2feb[6]]);router[_0x2feb[7]](_0x2feb[8],auth[_0x2feb[5]](),controller[_0x2feb[9]]);router[_0x2feb[7]](_0x2feb[10],auth[_0x2feb[5]](),controller[_0x2feb[11]]);router[_0x2feb[7]](_0x2feb[12],auth[_0x2feb[5]](),controller[_0x2feb[11]]);router[_0x2feb[7]](_0x2feb[13],auth[_0x2feb[5]](),controller[_0x2feb[14]]);router[_0x2feb[17]](_0x2feb[15],auth[_0x2feb[5]](),controller[_0x2feb[16]]);router[_0x2feb[17]](_0x2feb[13],auth[_0x2feb[5]](),controller[_0x2feb[18]]);router[_0x2feb[17]](_0x2feb[4],auth[_0x2feb[5]](),controller[_0x2feb[19]]);router[_0x2feb[21]](_0x2feb[12],auth[_0x2feb[5]](),controller[_0x2feb[20]]);router[_0x2feb[21]](_0x2feb[10],auth[_0x2feb[5]](),controller[_0x2feb[22]]);router[_0x2feb[24]](_0x2feb[4],auth[_0x2feb[5]](),controller[_0x2feb[23]]);router[_0x2feb[24]](_0x2feb[12],auth[_0x2feb[5]](),controller[_0x2feb[25]]);module[_0x2feb[26]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./voice_extension.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/route/:route', auth.isAuthenticated(), controller.showByRoute);
+router.get('/applications/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/applications', auth.isAuthenticated(), controller.showAppsByRoute);
+router.post('/validate', auth.isAuthenticated(), controller.routeValidation);
+router.post('/:id/applications', auth.isAuthenticated(), controller.sortAppsByRoute);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.put('/applications/:id', auth.isAuthenticated(), controller.updateApplication);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 42e223e..c3c727b 100644 (file)
@@ -1 +1,1348 @@
-var _0x2c4e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65","\x25\x73\x3F\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73\x3A\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73","\x53\x65\x74","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D\x25\x73","\x44\x69\x61\x6C","\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73","\x4E\x6F\x4F\x70","\x44\x69\x61\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x41\x6E\x73\x77\x65\x72","","\x51\x75\x65\x75\x65","\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73","\x51\x75\x65\x75\x65\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x50\x6C\x61\x79\x62\x61\x63\x6B","\x25\x73\x2C\x25\x73","\x50\x6C\x61\x79\x62\x61\x63\x6B\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x41\x47\x49","\x61\x67\x69\x3A\x2F\x2F\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73","\x41\x47\x49\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x47\x6F\x74\x6F","\x25\x73\x2C\x25\x73\x2C\x25\x64","\x47\x6F\x74\x6F\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x48\x61\x6E\x67\x75\x70","\x25\x73","\x48\x61\x6E\x67\x75\x70\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x25\x73\x3D\x25\x73","\x53\x65\x74\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x63\x75\x73\x74\x6F\x6D","\x43\x75\x73\x74\x6F\x6D\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77\x42\x79\x52\x6F\x75\x74\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E","\x61\x70\x70","\x61\x70\x70\x64\x61\x74\x61","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x72\x6F\x75\x74\x65","\x70\x61\x72\x61\x6D\x73","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77\x41\x70\x70\x73\x42\x79\x52\x6F\x75\x74\x65","\x69\x64","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x72\x6F\x75\x74\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x74\x79\x70\x65","\x73\x6F\x72\x74\x41\x70\x70\x73\x42\x79\x52\x6F\x75\x74\x65","\x61\x70\x70\x47\x72\x6F\x75\x70","\x69\x73\x41\x70\x70","\x66\x69\x6E\x64","\x63\x6C\x6F\x6E\x65\x44\x65\x65\x70","\x63\x75\x73\x74\x6F\x6D\x41\x70\x70","\x25\x73\x25\x73\x25\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x69\x73\x49\x6E\x74\x65\x72\x76\x61\x6C","\x66\x69\x6C\x74\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x73\x70\x6C\x69\x63\x65","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65\x46\x72\x6F\x6D\x41\x72\x72\x61\x79","\x3F\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73\x3A\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x75\x6E\x73\x68\x69\x66\x74","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x6C\x75\x63\x6B","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x52\x4F\x55\x54\x45","\x6D\x61\x78","\x63\x61\x6C\x6C\x65\x72\x49\x44","\x72\x65\x6D\x6F\x76\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x74\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x49\x64","\x63\x75\x74\x64\x69\x67\x69\x74\x73","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x70\x70\x5F\x6F\x70\x74\x69\x6F\x6E\x73","\x74\x69\x6D\x65\x6F\x75\x74","\x75\x72\x6C","\x2C","\x72\x65\x70\x6C\x61\x63\x65","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x44\x69\x61\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x61\x75\x64\x69\x6F\x66\x69\x6C\x65","\x71\x75\x65\x75\x65","\x70\x72\x6F\x6A\x65\x63\x74","\x61\x6C\x74\x5F\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x6C\x74\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x61\x6C\x74\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x63\x61\x75\x73\x65\x63\x6F\x64\x65","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x6D\x61\x69\x6C\x62\x6F\x78","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x2c4e[0];var _=require(_0x2c4e[1]);var VoiceExtension=require(_0x2c4e[3])[_0x2c4e[2]];var Interval=require(_0x2c4e[3])[_0x2c4e[4]];var sequelize=require(_0x2c4e[3])[_0x2c4e[5]];var Sequelize=require(_0x2c4e[3])[_0x2c4e[6]];var util=require(_0x2c4e[7]);var async=require(_0x2c4e[8]);var Applications={Dial:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[11],appdata:_0x2c4e[12]},{app:_0x2c4e[13],appdata:_0x2c4e[14],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[16]}],Queue:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[17],appdata:_0x2c4e[18]},{app:_0x2c4e[19],appdata:_0x2c4e[20],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[21]}],Playback:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[22],appdata:_0x2c4e[23],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[24]}],AGI:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[25],appdata:_0x2c4e[26],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[27]}],Goto:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[28],appdata:_0x2c4e[29],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[30]}],Hangup:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[31],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[33]}],Set:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[11],appdata:_0x2c4e[34],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[35]}],custom:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[36],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[37]}],Voicemail:[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[38],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[39]}]};exports[_0x2c4e[40]]=function(_0x234fx9,_0x234fxa){VoiceExtension[_0x2c4e[45]]()[_0x2c4e[44]](function(_0x234fxc){return _0x234fxa[_0x2c4e[43]](200)[_0x2c4e[42]](_0x234fxc)})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})};exports[_0x2c4e[46]]=function(_0x234fx9,_0x234fxa,_0x234fxd){var _0x234fxe=[_0x2c4e[47],_0x2c4e[48],_0x2c4e[49],_0x2c4e[50]];var _0x234fxf=_0x234fx9[_0x2c4e[52]][_0x2c4e[51]]?parseInt(_0x234fx9[_0x2c4e[52]][_0x2c4e[51]],10):100;var _0x234fx10=_0x234fx9[_0x2c4e[52]][_0x2c4e[53]]?parseInt(_0x234fx9[_0x2c4e[52]][_0x2c4e[53]],10):0;var _0x234fx11={where:{type:_0x234fx9[_0x2c4e[55]][_0x2c4e[54]],VoiceExtensionId:null,app:_0x2c4e[15]},limit:_0x234fxf,offset:_0x234fx10*_0x234fxf};_[_0x2c4e[69]](_0x234fx9[_0x2c4e[52]],function(_0x234fx12,_0x234fx13){switch(_0x234fx13){case _0x2c4e[51]:;case _0x2c4e[53]:break ;;case _0x2c4e[58]:_0x234fx11[_0x2c4e[56]]=util[_0x2c4e[61]](_0x2c4e[57],_0x234fx9[_0x2c4e[52]][_0x2c4e[58]],_0x234fx9[_0x2c4e[52]][_0x2c4e[59]]||_0x2c4e[60])||null;break ;;case _0x2c4e[59]:break ;;case _0x2c4e[67]:_0x234fx11[_0x2c4e[63]][_0x2c4e[62]]=[];_0x234fxe[_0x2c4e[66]](function(_0x234fx14){var _0x234fx15={};_0x234fx15[_0x234fx14]={$like:_0x2c4e[64]+_0x234fx12+_0x2c4e[64]};_0x234fx11[_0x2c4e[63]][_0x2c4e[62]][_0x2c4e[65]](_0x234fx15);});break ;;default:_0x234fx11[_0x2c4e[63]][_0x234fx13]={$like:{}};_0x234fx11[_0x2c4e[63]][_0x234fx13][_0x2c4e[68]]=_0x2c4e[64]+_0x234fx12+_0x2c4e[64];;}});VoiceExtension[_0x2c4e[80]](_0x234fx11)[_0x2c4e[44]](function(_0x234fx16){var _0x234fx17=Math[_0x2c4e[72]](_0x234fx16[_0x2c4e[71]]/_0x234fxf);var _0x234fx18=_0x234fx17>(_0x234fx11[_0x2c4e[73]]+1)?util[_0x2c4e[61]](_0x2c4e[74],_0x234fx9[_0x2c4e[75]],_0x234fx9[_0x2c4e[77]][_0x2c4e[76]],_0x234fx9[_0x2c4e[78]],_0x234fx10+1):null;var _0x234fx19=_0x234fx10>0?util[_0x2c4e[61]](_0x2c4e[74],_0x234fx9[_0x2c4e[75]],_0x234fx9[_0x2c4e[77]][_0x2c4e[76]],_0x234fx9[_0x2c4e[78]],_0x234fx10-1):null;_0x234fxa[_0x2c4e[43]](200)[_0x2c4e[42]]({count:_0x234fx16[_0x2c4e[71]],rows:_0x234fx16[_0x2c4e[79]],next_page:_0x234fx18,previous_page:_0x234fx19,total_pages:_0x234fx17});})[_0x2c4e[41]](function(_0x234fxb){_0x234fxa[_0x2c4e[43]](500)[_0x2c4e[42]]({error:_0x2c4e[70]})});};exports[_0x2c4e[81]]=function(_0x234fx9,_0x234fxa){VoiceExtension[_0x2c4e[45]]({where:{VoiceExtensionId:_0x234fx9[_0x2c4e[55]][_0x2c4e[82]],isApp:true}})[_0x2c4e[44]](function(_0x234fxc){return _0x234fxa[_0x2c4e[43]](200)[_0x2c4e[42]](_0x234fxc)})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})};exports[_0x2c4e[83]]=function(_0x234fx9,_0x234fxa){VoiceExtension[_0x2c4e[85]](_0x234fx9[_0x2c4e[55]][_0x2c4e[82]])[_0x2c4e[44]](function(_0x234fx1a){if(!_0x234fx1a){return _0x234fxa[_0x2c4e[84]](404)};return _0x234fxa[_0x2c4e[42]](_0x234fx1a);})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})};exports[_0x2c4e[86]]=function(_0x234fx9,_0x234fxa){VoiceExtension[_0x2c4e[45]]({where:{exten:_0x234fx9[_0x2c4e[87]][_0x2c4e[48]],context:_0x234fx9[_0x2c4e[87]][_0x2c4e[47]],type:_0x234fx9[_0x2c4e[87]][_0x2c4e[88]]}})[_0x2c4e[44]](function(_0x234fx1a){if(!_0x234fx1a){return _0x234fxa[_0x2c4e[84]](404)};return _0x234fxa[_0x2c4e[42]](_0x234fx1a);})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})};exports[_0x2c4e[89]]=function(_0x234fx9,_0x234fxa,_0x234fxd){VoiceExtension[_0x2c4e[45]]({where:{appGroup:_0x234fx9[_0x2c4e[87]][_0x2c4e[107]]}})[_0x2c4e[44]](function(_0x234fx1b){return sequelize[_0x2c4e[109]](function(_0x234fx1c){return VoiceExtension[_0x2c4e[108]]({where:{appGroup:_0x234fx9[_0x2c4e[87]][_0x2c4e[107]]}},{transaction:_0x234fx1c})[_0x2c4e[44]](function(){var _0x234fx1d=2;_0x234fx9[_0x2c4e[87]][_0x2c4e[107]][_0x2c4e[66]](function(_0x234fx1e){var _0x234fx1f=_[_0x2c4e[92]](_0x234fx1b,function(_0x234fx20){return (_0x234fx20[_0x2c4e[90]]==_0x234fx1e&&_0x234fx20[_0x2c4e[91]]===true)});var _0x234fx21=_[_0x2c4e[93]](Applications[_0x234fx1f[_0x2c4e[49]]]);if(!_0x234fx21||_0x234fx1f[_0x2c4e[94]]){_0x234fx21=[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[36],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[37]}]};var _0x234fx22=util[_0x2c4e[61]](_0x2c4e[95],_0x234fx1f[_0x2c4e[47]],_0x234fx1f[_0x2c4e[48]],_0x234fx1d);_0x234fx1f[_0x2c4e[96]]=_0x234fx1f[_0x2c4e[96]]||_0x2c4e[97];var _0x234fx23=_[_0x2c4e[99]](_0x234fx1b,function(_0x234fx20){return (_0x234fx20[_0x2c4e[90]]==_0x234fx1e&&_0x234fx20[_0x2c4e[98]]===true)});if(_0x234fx23&&_0x234fx23[_0x2c4e[100]]>0){_0x234fx21[_0x2c4e[101]](0,1);_0x234fx23[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx21[_0x2c4e[105]]({app:_0x2c4e[102],appdata:_0x234fx20[_0x2c4e[96]]+_0x2c4e[103],IntervalId:_0x234fx20[_0x2c4e[104]]?_0x234fx20[_0x2c4e[104]]:null,isInterval:true,interval:_0x234fx20[_0x2c4e[96]]})});};_0x234fx1d=appCreate(_0x234fx21,_0x234fx1f,_0x234fx22,_0x234fx23||[],_0x234fx1d);return VoiceExtension[_0x2c4e[106]](_0x234fx21,{transaction:_0x234fx1c});});})})[_0x2c4e[44]](function(){return _0x234fxa[_0x2c4e[84]](201)})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})})[_0x2c4e[41]](function(_0x234fxb){return _0x234fxd(_0x234fxb)})};exports[_0x2c4e[110]]=function(_0x234fx9,_0x234fxa,_0x234fxd){var _0x234fx21;var _0x234fx22;var _0x234fx25;VoiceExtension[_0x2c4e[116]](_0x2c4e[112],{where:{VoiceExtensionId:_0x234fx9[_0x2c4e[87]][_0x2c4e[111]]}})[_0x2c4e[44]](function(_0x234fx26){if(_0x234fx9[_0x2c4e[87]][_0x2c4e[111]]){_0x234fx9[_0x2c4e[87]][_0x2c4e[112]]=_0x234fx26?++_0x234fx26:2;_0x234fx21=_[_0x2c4e[93]](Applications[_0x234fx9[_0x2c4e[87]][_0x2c4e[49]]]);if(!_0x234fx21||_0x234fx9[_0x2c4e[87]][_0x2c4e[94]]){_0x234fx21=[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[36],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[37]}]};_0x234fx22=util[_0x2c4e[61]](_0x2c4e[95],_0x234fx9[_0x2c4e[87]][_0x2c4e[47]],_0x234fx9[_0x2c4e[87]][_0x2c4e[48]],_0x234fx9[_0x2c4e[87]][_0x2c4e[112]]);_0x234fx9[_0x2c4e[87]][_0x2c4e[96]]=_0x234fx9[_0x2c4e[87]][_0x2c4e[96]]||_0x2c4e[97];Interval[_0x2c4e[45]]({where:{IntervalId:(_0x234fx9[_0x2c4e[87]][_0x2c4e[104]]!==null)?_0x234fx9[_0x2c4e[87]][_0x2c4e[104]]:0}})[_0x2c4e[44]](function(_0x234fx27){var _0x234fx28=[];var _0x234fx29;if(_0x234fx27&&_0x234fx27[_0x2c4e[100]]>0){_0x234fx21[_0x2c4e[101]](0,1);_0x234fx28=_[_0x2c4e[114]](_0x234fx27,_0x2c4e[113]);_0x234fx28[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx21[_0x2c4e[105]]({app:_0x2c4e[102],appdata:_0x234fx20[_0x2c4e[96]]+_0x2c4e[103],IntervalId:_0x234fx20[_0x2c4e[82]],interval:_0x234fx29,isInterval:true})});};appCreate(_0x234fx21,_0x234fx9[_0x2c4e[87]],_0x234fx22,_0x234fx28);VoiceExtension[_0x2c4e[106]](_0x234fx21)[_0x2c4e[44]](function(_0x234fx2a){return _0x234fxa[_0x2c4e[43]](201)[_0x2c4e[42]](_0x234fx2a)});});}else {VoiceExtension[_0x2c4e[45]]({where:{exten:_0x234fx9[_0x2c4e[87]][_0x2c4e[48]],context:_0x234fx9[_0x2c4e[87]][_0x2c4e[47]],type:_0x234fx9[_0x2c4e[87]][_0x2c4e[88]]}})[_0x2c4e[44]](function(_0x234fx2b){if(!_0x234fx2b){return _0x234fxa[_0x2c4e[84]](404)};if(_0x234fx2b[_0x2c4e[100]]>0){return _0x234fxa[_0x2c4e[43]](500)[_0x2c4e[42]]({message:_0x2c4e[115]})};_0x234fx9[_0x2c4e[87]][_0x2c4e[112]]=1;VoiceExtension[_0x2c4e[110]](_0x234fx9[_0x2c4e[87]])[_0x2c4e[44]](function(_0x234fx2a){return _0x234fxa[_0x2c4e[43]](201)[_0x2c4e[42]](_0x234fx2a)})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)});})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})}})[_0x2c4e[41]](function(_0x234fxb){_0x234fxd(_0x234fxb)});};function appCreate(_0x234fx21,_0x234fx2d,_0x234fx22,_0x234fx28,_0x234fx1d){var _0x234fx2e=_0x234fx28[_0x2c4e[100]];if(_0x234fx2d[_0x2c4e[94]]){_0x234fx2d[_0x2c4e[49]]=_0x2c4e[36]};switch(_0x234fx2d[_0x2c4e[49]]){case _0x2c4e[13]:if(!_0x234fx2d[_0x2c4e[117]]){_[_0x2c4e[118]](_0x234fx21,{app:_0x2c4e[11]})};_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[13]:if(_0x234fx2d[_0x2c4e[88]]===_0x2c4e[119]){_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[120]]=_0x234fx2d[_0x2c4e[120]];_0x234fx20[_0x2c4e[121]]=_0x234fx2d[_0x2c4e[121]];_0x234fx20[_0x2c4e[122]]=_0x234fx2d[_0x2c4e[122]]||0;_0x234fx20[_0x2c4e[117]]=_0x234fx2d[_0x2c4e[117]]||null;}else {_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[123]]=_0x234fx2d[_0x2c4e[123]];_0x234fx20[_0x2c4e[124]]=_0x234fx2d[_0x2c4e[124]]||_0x2c4e[18];_0x234fx20[_0x2c4e[125]]=_0x234fx2d[_0x2c4e[125]]||_0x2c4e[18];_0x234fx20[_0x2c4e[126]]=_0x234fx2d[_0x2c4e[126]]||_0x2c4e[18];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[123]],_0x234fx20[_0x2c4e[125]],_0x234fx20[_0x2c4e[124]]?_0x234fx20[_0x2c4e[124]][_0x2c4e[128]](_0x2c4e[127],_0x2c4e[18]):_0x2c4e[18],_0x234fx20[_0x2c4e[126]]);};break ;;case _0x2c4e[11]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[117]]);break ;;case _0x2c4e[15]:if(_0x234fx2d[_0x2c4e[88]]===_0x2c4e[119]){_0x234fx20[_0x2c4e[50]]=_0x2c4e[129]};break ;;default:;};});break ;;case _0x2c4e[19]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[19]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[124]]=_0x234fx2d[_0x2c4e[124]]||_0x2c4e[18];_0x234fx20[_0x2c4e[130]]=_0x234fx2d[_0x2c4e[130]]||_0x2c4e[18];_0x234fx20[_0x2c4e[131]]=_0x234fx2d[_0x2c4e[131]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[123]]=_0x234fx2d[_0x2c4e[123]];_0x234fx20[_0x2c4e[124]]=_0x234fx2d[_0x2c4e[124]];_0x234fx20[_0x2c4e[125]]=_0x234fx2d[_0x2c4e[125]]||_0x2c4e[18];_0x234fx20[_0x2c4e[126]]=_0x234fx2d[_0x2c4e[126]]||_0x2c4e[18];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[131]],_0x234fx20[_0x2c4e[124]]?_0x234fx20[_0x2c4e[124]][_0x2c4e[128]](_0x2c4e[127],_0x2c4e[18]):_0x2c4e[18],_0x234fx20[_0x2c4e[126]],_0x234fx20[_0x2c4e[130]],_0x234fx20[_0x2c4e[125]]);break ;;default:;};});break ;;case _0x2c4e[22]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[22]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[130]]=_0x234fx2d[_0x2c4e[130]]||_0x2c4e[18];_0x234fx20[_0x2c4e[124]]=_0x234fx2d[_0x2c4e[124]]||_0x2c4e[18];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[130]],_0x234fx20[_0x2c4e[124]]?_0x234fx20[_0x2c4e[124]][_0x2c4e[128]](_0x2c4e[127],_0x2c4e[18]):_0x2c4e[18]);break ;;default:;};});break ;;case _0x2c4e[25]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[25]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[132]]=_0x234fx2d[_0x2c4e[132]];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[132]]);break ;;default:;};});break ;;case _0x2c4e[28]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[28]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[133]]=_0x234fx2d[_0x2c4e[133]];_0x234fx20[_0x2c4e[134]]=_0x234fx2d[_0x2c4e[134]];_0x234fx20[_0x2c4e[135]]=_0x234fx2d[_0x2c4e[135]];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[135]],_0x234fx20[_0x2c4e[134]],_0x234fx20[_0x2c4e[133]]);break ;;default:;};});break ;;case _0x2c4e[31]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[31]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[136]]=_0x234fx2d[_0x2c4e[136]];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[136]]);break ;;default:;};});break ;;case _0x2c4e[11]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[11]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[137]]=_0x234fx2d[_0x2c4e[137]];_0x234fx20[_0x2c4e[138]]=_0x234fx2d[_0x2c4e[138]];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[137]],_0x234fx20[_0x2c4e[138]]);break ;;default:;};});break ;;case _0x2c4e[36]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[36]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[49]]=_0x234fx20[_0x2c4e[94]]=_0x234fx2d[_0x2c4e[94]];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[50]]);break ;;default:;};});break ;;case _0x2c4e[38]:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[38]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[139]]=_0x234fx2d[_0x2c4e[139]];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[139]]);break ;;default:;};});break ;;default:_0x234fx21[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx20[_0x2c4e[48]]=_0x234fx2d[_0x2c4e[48]];_0x234fx20[_0x2c4e[88]]=_0x234fx2d[_0x2c4e[88]];_0x234fx20[_0x2c4e[47]]=_0x234fx2d[_0x2c4e[47]];_0x234fx20[_0x2c4e[111]]=_0x234fx2d[_0x2c4e[111]];_0x234fx20[_0x2c4e[112]]=_0x234fx1d?_0x234fx1d++:_0x234fx2d[_0x2c4e[112]]++;_0x234fx20[_0x2c4e[90]]=_0x234fx22;switch(_0x234fx20[_0x2c4e[49]]){case _0x2c4e[9]:_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[104]]?_0x2c4e[97]:_0x234fx2d[_0x2c4e[96]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+1,_0x234fx20[_0x2c4e[47]],(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[102]:_0x234fx20[_0x2c4e[49]]=_0x2c4e[9];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx20[_0x2c4e[47]],_0x234fx20[_0x2c4e[112]]+_0x234fx2e-_0x234fx24,_0x234fx20[_0x2c4e[47]],(_0x234fx24+1)<_0x234fx2e?(_0x234fx20[_0x2c4e[112]]+1):(_0x234fx20[_0x2c4e[112]]+2));break ;;case _0x2c4e[36]:_0x234fx20[_0x2c4e[104]]=_0x234fx2d[_0x2c4e[104]];_0x234fx20[_0x2c4e[96]]=_0x234fx2d[_0x2c4e[96]];_0x234fx20[_0x2c4e[49]]=_0x234fx20[_0x2c4e[94]]=_0x234fx2d[_0x2c4e[94]];_0x234fx20[_0x2c4e[50]]=util[_0x2c4e[61]](_0x234fx20[_0x2c4e[50]],_0x234fx2d[_0x2c4e[50]]);break ;;default:;};});;};if(_0x234fx1d){return _0x234fx1d};}exports[_0x2c4e[140]]=function(_0x234fx9,_0x234fxa){VoiceExtension[_0x2c4e[45]]({where:{exten:_0x234fx9[_0x2c4e[87]][_0x2c4e[48]],context:_0x234fx9[_0x2c4e[87]][_0x2c4e[47]],type:_0x234fx9[_0x2c4e[87]][_0x2c4e[88]],VoiceExtensionId:null,id:{$ne:_0x234fx9[_0x2c4e[87]][_0x2c4e[82]]}}})[_0x2c4e[44]](function(_0x234fx2b){if(!_0x234fx2b){return _0x234fxa[_0x2c4e[84]](404)};if(_0x234fx2b[_0x2c4e[100]]>0){return _0x234fxa[_0x2c4e[43]](500)[_0x2c4e[42]]({message:_0x2c4e[115]})};if(_0x234fx9[_0x2c4e[87]][_0x2c4e[82]]){delete _0x234fx9[_0x2c4e[87]][_0x2c4e[82]]};VoiceExtension[_0x2c4e[92]]({where:{id:_0x234fx9[_0x2c4e[55]][_0x2c4e[82]]}})[_0x2c4e[44]](function(_0x234fx1a){if(!_0x234fx1a){return _0x234fxa[_0x2c4e[84]](404)};var _0x234fx2f=_[_0x2c4e[141]](_0x234fx1a,_0x234fx9[_0x2c4e[87]]);return sequelize[_0x2c4e[109]](function(_0x234fx1c){return _0x234fx2f[_0x2c4e[142]]({transaction:_0x234fx1c})[_0x2c4e[44]](function(_0x234fx30){VoiceExtension[_0x2c4e[45]]({where:{VoiceExtensionId:_0x234fx30[_0x2c4e[82]],isApp:true}})[_0x2c4e[44]](function(_0x234fx2a){return VoiceExtension[_0x2c4e[108]]({where:{VoiceExtensionId:_0x234fx30[_0x2c4e[82]]}},{transaction:_0x234fx1c})[_0x2c4e[44]](function(){_0x234fx2a=_[_0x2c4e[114]](_0x234fx2a,_0x2c4e[113]);var _0x234fx31=_[_0x2c4e[99]](_[_0x2c4e[114]](_0x234fx2a,_0x2c4e[104]),function(_0x234fx20){return _0x234fx20!==null});Interval[_0x2c4e[45]]({where:{IntervalId:_0x234fx31}})[_0x2c4e[44]](function(_0x234fx28){var _0x234fx1d=2;var _0x234fx25;_0x234fx2a[_0x2c4e[66]](function(_0x234fx1f){var _0x234fx21=_[_0x2c4e[93]](Applications[_0x234fx1f[_0x2c4e[49]]]);if(!_0x234fx21||_0x234fx1f[_0x2c4e[94]]){_0x234fx21=[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[36],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[37]}]};_0x234fx1f[_0x2c4e[47]]=_0x234fx30[_0x2c4e[47]];_0x234fx1f[_0x2c4e[48]]=_0x234fx30[_0x2c4e[48]];var _0x234fx22=util[_0x2c4e[61]](_0x2c4e[95],_0x234fx1f[_0x2c4e[47]],_0x234fx1f[_0x2c4e[48]],_0x234fx1d);_0x234fx1f[_0x2c4e[96]]=_0x234fx1f[_0x2c4e[96]]||_0x2c4e[97];var _0x234fx23=_[_0x2c4e[99]](_0x234fx28,function(_0x234fx20){return (_0x234fx20[_0x2c4e[104]]==_0x234fx1f[_0x2c4e[104]])});if(_0x234fx23&&_0x234fx23[_0x2c4e[100]]>0){_0x234fx21[_0x2c4e[101]](0,1);_0x234fx23[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx21[_0x2c4e[105]]({app:_0x2c4e[102],appdata:_0x234fx20[_0x2c4e[96]]+_0x2c4e[103],IntervalId:_0x234fx20[_0x2c4e[82]],isInterval:true,interval:_0x234fx20[_0x2c4e[96]]})});};_0x234fx1d=appCreate(_0x234fx21,_0x234fx1f,_0x234fx22,_0x234fx23||[],_0x234fx1d);VoiceExtension[_0x2c4e[106]](_0x234fx21);});return _0x234fxa[_0x2c4e[84]](200);});})})})})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)});})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)});})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})};exports[_0x2c4e[143]]=function(_0x234fx9,_0x234fxa,_0x234fxd){var _0x234fx25;if(_0x234fx9[_0x2c4e[87]][_0x2c4e[50]]){delete _0x234fx9[_0x2c4e[87]][_0x2c4e[50]]};VoiceExtension[_0x2c4e[85]](_0x234fx9[_0x2c4e[87]][_0x2c4e[82]])[_0x2c4e[44]](function(_0x234fx32){if(!_0x234fx32){return _0x234fxa[_0x2c4e[84]](404)};delete _0x234fx9[_0x2c4e[87]][_0x2c4e[82]];var _0x234fx2f=_[_0x2c4e[141]](_0x234fx32,_0x234fx9[_0x2c4e[87]]);return sequelize[_0x2c4e[109]](function(_0x234fx1c){return _0x234fx2f[_0x2c4e[142]]({transaction:_0x234fx1c})[_0x2c4e[44]](function(){VoiceExtension[_0x2c4e[45]]({where:{VoiceExtensionId:_0x234fx9[_0x2c4e[87]][_0x2c4e[111]],isApp:true}})[_0x2c4e[44]](function(_0x234fx2a){return VoiceExtension[_0x2c4e[108]]({where:{VoiceExtensionId:_0x234fx9[_0x2c4e[87]][_0x2c4e[111]]}},{transaction:_0x234fx1c})[_0x2c4e[44]](function(){_0x234fx2a=_[_0x2c4e[114]](_0x234fx2a,_0x2c4e[113]);var _0x234fx31=_[_0x2c4e[99]](_[_0x2c4e[114]](_0x234fx2a,_0x2c4e[104]),function(_0x234fx20){return _0x234fx20!==null});return Interval[_0x2c4e[45]]({where:{IntervalId:_0x234fx31}})[_0x2c4e[44]](function(_0x234fx28){var _0x234fx1d=2;var _0x234fx25;_0x234fx2a[_0x2c4e[66]](function(_0x234fx1f){var _0x234fx21=_[_0x2c4e[93]](Applications[_0x234fx1f[_0x2c4e[49]]]);if(!_0x234fx21||_0x234fx1f[_0x2c4e[94]]){_0x234fx21=[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[36],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[37]}]};var _0x234fx22=util[_0x2c4e[61]](_0x2c4e[95],_0x234fx1f[_0x2c4e[47]],_0x234fx1f[_0x2c4e[48]],_0x234fx1d);_0x234fx1f[_0x2c4e[96]]=_0x234fx1f[_0x2c4e[96]]||_0x2c4e[97];var _0x234fx23=_[_0x2c4e[99]](_0x234fx28,function(_0x234fx20){return (_0x234fx20[_0x2c4e[104]]==_0x234fx1f[_0x2c4e[104]])});if(_0x234fx23&&_0x234fx23[_0x2c4e[100]]>0){_0x234fx21[_0x2c4e[101]](0,1);_0x234fx23[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx21[_0x2c4e[105]]({app:_0x2c4e[102],appdata:_0x234fx20[_0x2c4e[96]]+_0x2c4e[103],IntervalId:_0x234fx20[_0x2c4e[82]],isInterval:true,interval:_0x234fx20[_0x2c4e[96]]})});};_0x234fx1d=appCreate(_0x234fx21,_0x234fx1f,_0x234fx22,_0x234fx23||[],_0x234fx1d);VoiceExtension[_0x2c4e[106]](_0x234fx21);});});})})})})[_0x2c4e[44]](function(_0x234fx16){return _0x234fxa[_0x2c4e[43]](201)[_0x2c4e[42]](_0x234fx16)})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)});})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)});};exports[_0x2c4e[108]]=function(_0x234fx9,_0x234fxa,_0x234fxd){VoiceExtension[_0x2c4e[85]](_0x234fx9[_0x2c4e[55]][_0x2c4e[82]])[_0x2c4e[44]](function(_0x234fx1a){if(!_0x234fx1a){return _0x234fxa[_0x2c4e[84]](404)};if(!_0x234fx1a[_0x2c4e[111]]){_0x234fx1a[_0x2c4e[108]]()[_0x2c4e[44]](function(){return _0x234fxa[_0x2c4e[84]](204)})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})}else {VoiceExtension[_0x2c4e[45]]({where:{appGroup:_0x234fx1a[_0x2c4e[90]]}})[_0x2c4e[44]](function(_0x234fxc){if(!_0x234fxc){return _0x234fxa[_0x2c4e[84]](404)};return sequelize[_0x2c4e[109]](function(_0x234fx1c){return VoiceExtension[_0x2c4e[108]]({where:{appGroup:_0x234fx1a[_0x2c4e[90]]}},{transaction:_0x234fx1c})[_0x2c4e[44]](function(_0x234fx33){return VoiceExtension[_0x2c4e[45]]({where:{VoiceExtensionId:_0x234fx1a[_0x2c4e[111]],priority:{$gt:_0x234fxc[_0x234fx33-1][_0x2c4e[112]]}}})[_0x2c4e[44]](function(_0x234fx1b){return VoiceExtension[_0x2c4e[108]]({where:{VoiceExtensionId:_0x234fx1a[_0x2c4e[111]],priority:{$gt:_0x234fxc[_0x234fx33-1][_0x2c4e[112]]}}},{transaction:_0x234fx1c})[_0x2c4e[44]](function(){var _0x234fx34=_[_0x2c4e[114]](_[_0x2c4e[99]](_[_0x2c4e[114]](_0x234fx1b,_0x2c4e[113]),function(_0x234fx20){return _0x234fx20[_0x2c4e[91]]===true}),_0x2c4e[90]);var _0x234fx1d=_0x234fxc[0][_0x2c4e[112]];_0x234fx34[_0x2c4e[66]](function(_0x234fx1e){var _0x234fx1f=_[_0x2c4e[92]](_0x234fx1b,function(_0x234fx20){return (_0x234fx20[_0x2c4e[90]]==_0x234fx1e&&_0x234fx20[_0x2c4e[91]]===true)});var _0x234fx21=_[_0x2c4e[93]](Applications[_0x234fx1f[_0x2c4e[49]]]);if(!_0x234fx21||_0x234fx1f[_0x2c4e[94]]){_0x234fx21=[{app:_0x2c4e[9],appdata:_0x2c4e[10]},{app:_0x2c4e[36],appdata:_0x2c4e[32],isApp:true},{app:_0x2c4e[15],appdata:_0x2c4e[37]}]};var _0x234fx22=util[_0x2c4e[61]](_0x2c4e[95],_0x234fx1f[_0x2c4e[47]],_0x234fx1f[_0x2c4e[48]],_0x234fx1d);_0x234fx1f[_0x2c4e[96]]=_0x234fx1f[_0x2c4e[96]]||_0x2c4e[97];var _0x234fx23=_[_0x2c4e[99]](_0x234fx1b,function(_0x234fx20){return (_0x234fx20[_0x2c4e[90]]==_0x234fx1e&&_0x234fx20[_0x2c4e[98]]===true)});if(_0x234fx23&&_0x234fx23[_0x2c4e[100]]>0){_0x234fx21[_0x2c4e[101]](0,1);_0x234fx23[_0x2c4e[66]](function(_0x234fx20,_0x234fx24){_0x234fx21[_0x2c4e[105]]({app:_0x2c4e[102],appdata:_0x234fx20[_0x2c4e[96]]+_0x2c4e[103],IntervalId:_0x234fx20[_0x2c4e[104]]?_0x234fx20[_0x2c4e[104]]:null,isInterval:true,interval:_0x234fx20[_0x2c4e[96]]})});};_0x234fx1d=appCreate(_0x234fx21,_0x234fx1f,_0x234fx22,_0x234fx23||[],_0x234fx1d);VoiceExtension[_0x2c4e[106]](_0x234fx21);});})})})})[_0x2c4e[44]](function(_0x234fx16){_0x234fxa[_0x2c4e[84]](201)})[_0x2c4e[41]](function(_0x234fxb){return _0x234fxd(_0x234fxb)});})};})[_0x2c4e[41]](function(_0x234fxb){return _0x234fxd(_0x234fxb)})};exports[_0x2c4e[144]]=function(_0x234fx9,_0x234fxa){VoiceExtension[_0x2c4e[108]]({where:{id:_0x234fx9[_0x2c4e[52]][_0x2c4e[82]]},individualHooks:true})[_0x2c4e[44]](function(){return _0x234fxa[_0x2c4e[84]](204)})[_0x2c4e[41]](function(_0x234fxb){return handleError(_0x234fxa,_0x234fxb)})};function handleError(_0x234fxa,_0x234fxb){return _0x234fxa[_0x2c4e[43]](500)[_0x2c4e[42]](_0x234fxb)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var VoiceExtension = require('../../models').VoiceExtension;
+var Interval = require('../../models').Interval;
+var sequelize = require('../../models').sequelize;
+var Sequelize = require('../../models').Sequelize;
+var util = require('util');
+var async = require('async');
+
+var Applications = {
+  Dial: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'Set',
+    appdata: 'CALLERID(all)=%s'
+  }, {
+    app: 'Dial',
+    appdata: '%s,%s,%s,%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Dial Application End'
+  }],
+  Queue: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'Answer',
+    appdata: ''
+  }, {
+    app: 'Queue',
+    appdata: '%s,%s,%s,%s,%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Queue Application End'
+  }],
+  Playback: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'Playback',
+    appdata: '%s,%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Playback Application End'
+  }],
+  AGI: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'AGI',
+    appdata: 'agi://127.0.0.1/square,%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'AGI Application End'
+  }],
+  Goto: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'Goto',
+    appdata: '%s,%s,%d',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Goto Application End'
+  }],
+  Hangup: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'Hangup',
+    appdata: '%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Hangup Application End'
+  }],
+  Set: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'Set',
+    appdata: '%s=%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Set Application End'
+  }],
+  custom: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'custom',
+    appdata: '%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Custom Application End'
+  }],
+  Voicemail: [{
+    app: 'GotoIfTime',
+    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+  }, {
+    app: 'Voicemail',
+    appdata: '%s',
+    isApp: true
+  }, {
+    app: 'NoOp',
+    appdata: 'Voicemail Application End'
+  }]
+};
+
+// Get list of voice_extensions
+exports.index = function(req, res) {
+  VoiceExtension
+    .findAll()
+    .then(function(voice_extensions) {
+      return res.status(200).send(voice_extensions);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get list of agents
+exports.showByRoute = function(req, res, next) {
+
+  var attributes = ['context', 'exten', 'app', 'appdata'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      type: req.params.route,
+      VoiceExtensionId: null,
+      app: 'NoOp'
+    },
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  VoiceExtension
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+
+// Get list of voice_extensions by route
+exports.showAppsByRoute = function(req, res) {
+  VoiceExtension
+    .findAll({
+      where: {
+        VoiceExtensionId: req.params.id,
+        isApp: true
+      }
+    })
+    .then(function(voice_extensions) {
+      return res.status(200).send(voice_extensions);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single voice_extension or application
+exports.show = function(req, res) {
+  VoiceExtension
+    .findById(req.params.id)
+    .then(function(voice_extension) {
+      if (!voice_extension) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_extension);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of a route
+exports.routeValidation = function(req, res) {
+  VoiceExtension
+    .findAll({
+      where: {
+        exten: req.body.exten,
+        context: req.body.context,
+        type: req.body.type
+      }
+    })
+    .then(function(voice_extension) {
+      if (!voice_extension) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_extension);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// exports.sortAppsByRoute = function(req, res, next) {
+//   return sequelize
+//     .transaction()
+//     .then(function(t) {
+//       async.waterfall([
+//           function(callback) {
+//             VoiceExtension
+//               .findAll({
+//                 where: {
+//                   appGroup: req.body.applications
+//                 }
+//               })
+//               .then(function(voiceApplications) {
+//                 callback(null, voiceApplications);
+//               })
+//               .catch(function(err) {
+//                 callback(err);
+//               });
+//           },
+//           function(voiceApplications, callback) {
+//             console.log('found ad saved applications');
+//             console.log('destroying old applications from db');
+//             return VoiceExtension.destroy({
+//                 where: {
+//                   appGroup: req.body.applications
+//                 }
+//               }, {
+//                 transaction: t
+//               })
+//               .then(function() {
+//                 callback(null, voiceApplications);
+//               })
+//               .catch(function(err) {
+//                 callback(err);
+//               });
+//           },
+//           function(voiceApplications, callback) {
+//             console.log('destroyed old applications from db');
+//             var priority = 2;
+//             console.log('iterating sorted applications ids');
+//             req.body.applications.forEach(function(sortedElem) {
+//               var tmpElem = _.find(voiceApplications, function(elem) {
+//                 return (elem.appGroup == sortedElem && elem.isApp === true);
+//               });
+//               var application = _.cloneDeep(Applications[tmpElem.app]);
+//               if (!application || tmpElem.customApp) {
+//                 application = [{
+//                   app: 'GotoIfTime',
+//                   appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+//                 }, {
+//                   app: 'custom',
+//                   appdata: '%s',
+//                   isApp: true
+//                 }, {
+//                   app: 'NoOp',
+//                   appdata: 'Custom Application End'
+//                 }];
+//               }
+//               //console.log('PRIORITY');
+//               //console.log(priority);
+//               var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
+//               tmpElem.interval = tmpElem.interval || '*,*,*,*';
+//               var tmpIntervals = _.filter(voiceApplications, function(elem) {
+//                 return (elem.appGroup == sortedElem && elem.isInterval === true);
+//               });
+//               if (tmpIntervals && tmpIntervals.length > 0) {
+//                 console.log('found custom interval, adding to app');
+//                 application.splice(0, 1);
+//                 tmpIntervals.forEach(function(elem, index) {
+//
+//                   application.unshift({
+//                     app: 'GotoIfTimeFromArray',
+//                     appdata: elem.interval + '?%s,${EXTEN},%s:%s,${EXTEN},%s',
+//                     IntervalId: elem.IntervalId ? elem.IntervalId : null,
+//                     isInterval: true,
+//                     interval: elem.interval,
+//                   });
+//                 })
+//               }
+//               priority = appCreate(application, tmpElem, appGroup, tmpIntervals || [], priority);
+//               //console.log('returned priority');
+//               //console.log(priority);
+//               console.log('creating group of extensions');
+//               return VoiceExtension
+//                 .bulkCreate(application, {
+//                   transaction: t
+//                 })
+//             });
+//             callback();
+//           }
+//         ],
+//         function(err, result) {
+//           if (err) {
+//             console.log(err);
+//             t.rollback();
+//           } else {
+//             console.log('commit');
+//             t.commit();
+//             console.log('finished creating, now searching the sorted and saved apps');
+//             VoiceExtension
+//               .findAll({
+//                 where: {
+//                   VoiceExtensionId: req.params.id,
+//                   isApp: true
+//                 }
+//               })
+//               .then(function(voiceExtensions) {
+//                 console.log('found sorted applications, returning');
+//                 //console.log(_.pluck(voiceExtensions, 'dataValues'));
+//                 return res.status(201).send(voiceExtensions);
+//               })
+//           }
+//         });
+//     });
+// }
+
+exports.sortAppsByRoute = function(req, res, next) {
+  // console.log('finding and saving old applications');
+  VoiceExtension
+    .findAll({
+      where: {
+        appGroup: req.body.applications
+      }
+    })
+    .then(function(voiceApplications) {
+      // console.log('found ad saved applications');
+      return sequelize.transaction(function(t) {
+          // console.log('destroying old applications from db');
+          return VoiceExtension.destroy({
+              where: {
+                appGroup: req.body.applications
+              }
+            }, {
+              transaction: t
+            })
+            .then(function() {
+              var priority = 2;
+              req.body.applications.forEach(function(sortedElem) {
+                var tmpElem = _.find(voiceApplications, function(elem) {
+                  return (elem.appGroup == sortedElem && elem.isApp === true);
+                });
+                var application = _.cloneDeep(Applications[tmpElem.app]);
+                if (!application || tmpElem.customApp) {
+                  application = [{
+                    app: 'GotoIfTime',
+                    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                  }, {
+                    app: 'custom',
+                    appdata: '%s',
+                    isApp: true
+                  }, {
+                    app: 'NoOp',
+                    appdata: 'Custom Application End'
+                  }];
+                }
+                var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
+                tmpElem.interval = tmpElem.interval || '*,*,*,*';
+                var tmpIntervals = _.filter(voiceApplications, function(elem) {
+                  return (elem.appGroup == sortedElem && elem.isInterval === true);
+                });
+                if (tmpIntervals && tmpIntervals.length > 0) {
+                  // console.log('found custom interval, adding to app');
+                  application.splice(0, 1);
+                  tmpIntervals.forEach(function(elem, index) {
+
+                    application.unshift({
+                      app: 'GotoIfTimeFromArray',
+                      appdata: elem.interval + '?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                      IntervalId: elem.IntervalId ? elem.IntervalId : null,
+                      isInterval: true,
+                      interval: elem.interval,
+                    });
+                  })
+                }
+                priority = appCreate(application, tmpElem, appGroup, tmpIntervals || [], priority);
+                //console.log('returned priority');
+                //console.log(priority);
+                // console.log('creating group of extensions');
+                return VoiceExtension
+                  .bulkCreate(application, {
+                    transaction: t
+                  })
+              });
+            })
+        })
+        .then(function() {
+          // console.log('finished creating, now searching the sorted and saved apps');
+          // VoiceExtension
+          //   .findAll({
+          //     where: {
+          //       VoiceExtensionId: req.params.id,
+          //       isApp: true
+          //     }
+          //   })
+          //   .then(function(voiceExtensions) {
+          //     console.log('found sorted applications, returning');
+          //     //console.log(_.pluck(voiceExtensions, 'dataValues'));
+          //     return res.status(201).send(voiceExtensions);
+          //   })
+          return res.sendStatus(201);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// // Creates a new voice_extension in the DB.
+// exports.create = function(req, res) {
+//   VoiceExtension
+//     .create(req.body)
+//     .then(function(voice_extension) {
+//       return res.status(201).send(voice_extension);
+//     })
+//     .catch(function(err) {
+//       return handleError(res, err);
+//     });
+// };
+
+// Creates a new voiceApplication in the DB.
+exports.create = function(req, res, next) {
+  // //console.log(req.body);
+  var application;
+  var appGroup;
+  var interval;
+  VoiceExtension
+    .max('priority', {
+      where: {
+        VoiceExtensionId: req.body.VoiceExtensionId
+      }
+    }).then(function(max) {
+      // SET PRIORITY
+      if (req.body.VoiceExtensionId) {
+        req.body.priority = max ? ++max : 2;
+        application = _.cloneDeep(Applications[req.body.app]);
+        if (!application || req.body.customApp) {
+          application = [{
+            app: 'GotoIfTime',
+            appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+          }, {
+            app: 'custom',
+            appdata: '%s',
+            isApp: true
+          }, {
+            app: 'NoOp',
+            appdata: 'Custom Application End'
+          }];
+        }
+        appGroup = util.format('%s%s%s', req.body.context, req.body.exten, req.body.priority);
+        // interval = createInterval(req.body);
+
+
+        req.body.interval = req.body.interval || '*,*,*,*';
+        Interval
+          .findAll({
+            where: {
+              IntervalId: (req.body.IntervalId !== null) ? req.body.IntervalId : 0
+            }
+          })
+          .then(function(Intervals) {
+            var intervals = [];
+            var gotoInterval;
+            if (Intervals && Intervals.length > 0) {
+              application.splice(0, 1);
+              intervals = _.pluck(Intervals, 'dataValues');
+              intervals.forEach(function(elem, index) {
+                // gotoInterval = createInterval(elem);
+                application.unshift({
+                  app: 'GotoIfTimeFromArray',
+                  appdata: elem.interval + '?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                  IntervalId: elem.id,
+                  interval: gotoInterval,
+                  isInterval: true
+                });
+              })
+            }
+            appCreate(application, req.body, appGroup, intervals);
+            VoiceExtension
+              .bulkCreate(application)
+              .then(function(voiceExtensions) {
+                return res.status(201).send(voiceExtensions);
+              })
+          })
+      } else {
+        VoiceExtension
+          .findAll({
+            where: {
+              exten: req.body.exten,
+              context: req.body.context,
+              type: req.body.type,
+            }
+          })
+          .then(function(existingExtensions) {
+            //console.log(existingExtensions);
+            //console.log('Finding app row.....');
+            if (!existingExtensions) {
+              return res.sendStatus(404);
+            }
+            if (existingExtensions.length > 0) {
+              return res.status(500).send({
+                message: 'MESSAGE_EXIST_ROUTE'
+              });
+            }
+            req.body.priority = 1;
+            VoiceExtension
+              .create(req.body)
+              .then(function(voiceExtensions) {
+                return res.status(201).send(voiceExtensions);
+              })
+              .catch(function(err) {
+                return handleError(res, err);
+              })
+          })
+          .catch(function(err) {
+            return handleError(res, err);
+          });
+      }
+      // //console.log(application);
+
+    })
+    .catch(function(err) {
+      next(err);
+    });
+};
+
+// function createInterval(element) {
+//   var interval = [];
+//   if (element.t_from && element.t_from !== '') {
+//     interval[0] = element.t_from;
+//     if (element.t_to && element.t_to !== '') {
+//       interval[0] += '-' + element.t_to;
+//     }
+//   } else {
+//     interval[0] = '*';
+//   }
+//
+//   if (element.wd_from && element.wd_from !== '') {
+//     interval[1] = element.wd_from;
+//     if (element.wd_to && element.wd_to !== '') {
+//       interval[1] += '-' + element.wd_to;
+//     }
+//   } else {
+//     interval[1] = '*';
+//   }
+//
+//   if (element.md_from && element.md_from !== '') {
+//     interval[2] = element.md_from;
+//     if (element.md_to && element.md_to !== '') {
+//       interval[2] += '-' + element.md_to;
+//     }
+//   } else {
+//     interval[2] = '*';
+//   }
+//
+//   if (element.m_from && element.m_from !== '') {
+//     interval[3] = element.m_from;
+//     if (element.m_to && element.m_to !== '') {
+//       interval[3] += '-' + element.m_to;
+//     }
+//   } else {
+//     interval[3] = '*';
+//   }
+//
+//   return interval.join(',');
+// }
+
+function appCreate(application, element, appGroup, intervals, priority) {
+  var intLength = intervals.length;
+  if (element.customApp) {
+    element.app = 'custom'; //in questo modo posso rimuovere il default dello switch, ma lo lascio per completezza
+  }
+  switch (element.app) {
+    case 'Dial':
+      if (!element.callerID) {
+        _.remove(application, {
+          app: 'Set'
+        });
+      }
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'Dial':
+            if (element.type === 'outbound') {
+              elem.IntervalId = element.IntervalId;
+              elem.interval = element.interval;
+              elem.trunk = element.trunk;
+              elem.TrunkId = element.TrunkId;
+              elem.cutdigits = element.cutdigits || 0;
+              elem.callerID = element.callerID || null;
+              // elem.appdata = util.format('SIP/${EXTEN:%d}@%s', elem.cutdigits, elem.trunk);
+            } else {
+              elem.IntervalId = element.IntervalId;
+              elem.interval = element.interval;
+              elem.interface = element.interface;
+              elem.app_options = element.app_options || '';
+              elem.timeout = element.timeout || '';
+              elem.url = element.url || '';
+              elem.appdata = util.format(elem.appdata, element.interface, elem.timeout, elem.app_options ? elem.app_options.replace(',', '') : '', elem.url);
+            }
+            break;
+          case 'Set':
+            elem.appdata = util.format(elem.appdata, element.callerID);
+            break;
+          case 'NoOp':
+            if (element.type === 'outbound') {
+              elem.appdata = 'Outbound Dial Application End';
+            }
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'Queue':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'Queue':
+            elem.IntervalId = element.IntervalId;
+            elem.app_options = element.app_options || '';
+            elem.audiofile = element.audiofile || '';
+            elem.queue = element.queue;
+            elem.interval = element.interval;
+            elem.interface = element.interface;
+            elem.app_options = element.app_options;
+            elem.timeout = element.timeout || '';
+            elem.url = element.url || '';
+            elem.appdata = util.format(elem.appdata, elem.queue, elem.app_options ? elem.app_options.replace(',', '') : '', elem.url, elem.audiofile, elem.timeout);
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'Playback':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'Playback':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.audiofile = element.audiofile || '';
+            elem.app_options = element.app_options || '';
+            elem.appdata = util.format(elem.appdata, elem.audiofile, elem.app_options ? elem.app_options.replace(',', '') : '');
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'AGI':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'AGI':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.project = element.project;
+            elem.appdata = util.format(elem.appdata, elem.project);
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'Goto':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'Goto':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.alt_priority = element.alt_priority;
+            elem.alt_extension = element.alt_extension;
+            elem.alt_context = element.alt_context;
+            elem.appdata = util.format(elem.appdata, elem.alt_context, elem.alt_extension, elem.alt_priority);
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'Hangup':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'Hangup':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.causecode = element.causecode;
+            elem.appdata = util.format(elem.appdata, elem.causecode);
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'Set':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'Set':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.variable = element.variable;
+            elem.value = element.value;
+            elem.appdata = util.format(elem.appdata, elem.variable, elem.value);
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'custom':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'custom':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.app = elem.customApp = element.customApp;
+            elem.appdata = util.format(elem.appdata, element.appdata);
+            break;
+          default:
+
+        }
+      });
+      break;
+    case 'Voicemail':
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'Voicemail':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.mailbox = element.mailbox;
+            elem.appdata = util.format(elem.appdata, elem.mailbox);
+            break;
+          default:
+
+        }
+      });
+      break;
+    default:
+      application.forEach(function(elem, index) {
+        elem.exten = element.exten;
+        elem.type = element.type;
+        elem.context = element.context;
+        elem.VoiceExtensionId = element.VoiceExtensionId;
+        elem.priority = priority ? priority++ : element.priority++;
+        elem.appGroup = appGroup;
+        switch (elem.app) {
+          case 'GotoIfTime':
+            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+            break;
+          case 'GotoIfTimeFromArray':
+            elem.app = 'GotoIfTime';
+            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+            break;
+          case 'custom':
+            elem.IntervalId = element.IntervalId;
+            elem.interval = element.interval;
+            elem.app = elem.customApp = element.customApp;
+            elem.appdata = util.format(elem.appdata, element.appdata);
+            break;
+          default:
+
+        }
+      });
+
+  }
+  if (priority) {
+    return priority;
+  }
+}
+
+// Updates an existing voice_extension in the DB.
+exports.update = function(req, res) {
+  VoiceExtension
+    .findAll({
+      where: {
+        exten: req.body.exten,
+        context: req.body.context,
+        type: req.body.type,
+        VoiceExtensionId: null,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(existingExtensions) {
+      //console.log(existingExtensions);
+      //console.log('Finding app row.....');
+      if (!existingExtensions) {
+        return res.sendStatus(404);
+      }
+      if (existingExtensions.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_ROUTE'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      VoiceExtension
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(voice_extension) {
+          if (!voice_extension) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(voice_extension, req.body);
+          return sequelize.transaction(function(t) {
+              return updated.save({
+                  transaction: t
+                })
+                .then(function(updatedRoute) {
+                  VoiceExtension
+                    .findAll({
+                      where: {
+                        VoiceExtensionId: updatedRoute.id,
+                        isApp: true
+                      }
+                    })
+                    .then(function(voiceExtensions) {
+                      return VoiceExtension.destroy({
+                          where: {
+                            VoiceExtensionId: updatedRoute.id
+                          }
+                        }, {
+                          transaction: t
+                        })
+                        .then(function() {
+                          voiceExtensions = _.pluck(voiceExtensions, 'dataValues');
+                          var intervalIds = _.filter(_.pluck(voiceExtensions, 'IntervalId'), function(elem) {
+                            return elem !== null;
+                          });
+                          Interval
+                            .findAll({
+                              where: {
+                                IntervalId: intervalIds
+                              }
+                            })
+                            .then(function(intervals) {
+                              var priority = 2;
+                              var interval;
+                              voiceExtensions.forEach(function(tmpElem) {
+                                var application = _.cloneDeep(Applications[tmpElem.app]);
+                                if (!application || tmpElem.customApp) {
+                                  application = [{
+                                    app: 'GotoIfTime',
+                                    appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                                  }, {
+                                    app: 'custom',
+                                    appdata: '%s',
+                                    isApp: true
+                                  }, {
+                                    app: 'NoOp',
+                                    appdata: 'Custom Application End'
+                                  }];
+                                }
+                                tmpElem.context = updatedRoute.context;
+                                tmpElem.exten = updatedRoute.exten;
+                                var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
+                                tmpElem.interval = tmpElem.interval || '*,*,*,*';
+                                var tmpIntervals = _.filter(intervals, function(elem) {
+                                  return (elem.IntervalId == tmpElem.IntervalId);
+                                });
+                                if (tmpIntervals && tmpIntervals.length > 0) {
+                                  application.splice(0, 1);
+                                  tmpIntervals.forEach(function(elem, index) {
+                                    application.unshift({
+                                      app: 'GotoIfTimeFromArray',
+                                      appdata: elem.interval + '?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                                      IntervalId: elem.id,
+                                      isInterval: true,
+                                      interval: elem.interval
+                                    });
+                                  })
+                                }
+                                priority = appCreate(application, tmpElem, appGroup, tmpIntervals || [], priority);
+                                VoiceExtension
+                                  .bulkCreate(application)
+                              });
+                              return res.sendStatus(200);
+                            })
+                        })
+                    })
+                })
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing voice_extension in the DB.
+exports.updateApplication = function(req, res, next) {
+  var interval;
+  if (req.body.appdata) {
+    delete req.body.appdata;
+  }
+
+  //console.log('Finding app row.....');
+  VoiceExtension
+    .findById(req.body.id)
+    .then(function(voiceExtension) {
+      if (!voiceExtension) {
+        return res.sendStatus(404);
+      }
+      delete req.body.id;
+      var updated = _.merge(voiceExtension, req.body);
+      //console.log('Updating app row.....');
+      return sequelize.transaction(function(t) {
+          return updated.save({
+              transaction: t
+            })
+            .then(function() {
+              //console.log('Finding extension apps..');
+              VoiceExtension
+                .findAll({
+                  where: {
+                    VoiceExtensionId: req.body.VoiceExtensionId,
+                    isApp: true
+                  }
+                })
+                .then(function(voiceExtensions) {
+                  //console.log('Extensions found');
+                  //console.log('Destroying extension rows...');
+                  return VoiceExtension.destroy({
+                      where: {
+                        VoiceExtensionId: req.body.VoiceExtensionId
+                      }
+                    }, {
+                      transaction: t
+                    })
+                    .then(function() {
+                      voiceExtensions = _.pluck(voiceExtensions, 'dataValues');
+                      var intervalIds = _.filter(_.pluck(voiceExtensions, 'IntervalId'), function(elem) {
+                        return elem !== null;
+                      });
+                      return Interval
+                        .findAll({
+                          where: {
+                            IntervalId: intervalIds
+                          }
+                        })
+                        .then(function(intervals) {
+                          //console.log('Creating extension rows...');
+                          var priority = 2;
+                          var interval;
+                          voiceExtensions.forEach(function(tmpElem) {
+                            //console.log('Creating app..');
+                            var application = _.cloneDeep(Applications[tmpElem.app]);
+                            if (!application || tmpElem.customApp) {
+                              application = [{
+                                app: 'GotoIfTime',
+                                appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                              }, {
+                                app: 'custom',
+                                appdata: '%s',
+                                isApp: true
+                              }, {
+                                app: 'NoOp',
+                                appdata: 'Custom Application End'
+                              }];
+                            }
+                            //console.log('PRIORITY');
+                            //console.log(priority);
+                            var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
+                            tmpElem.interval = tmpElem.interval || '*,*,*,*';
+                            var tmpIntervals = _.filter(intervals, function(elem) {
+                              return (elem.IntervalId == tmpElem.IntervalId);
+                            });
+                            if (tmpIntervals && tmpIntervals.length > 0) {
+                              application.splice(0, 1);
+                              tmpIntervals.forEach(function(elem, index) {
+                                // interval = createInterval(elem);
+                                application.unshift({
+                                  app: 'GotoIfTimeFromArray',
+                                  appdata: elem.interval + '?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                                  IntervalId: elem.id,
+                                  isInterval: true,
+                                  interval: elem.interval
+                                });
+                              })
+                            }
+                            priority = appCreate(application, tmpElem, appGroup, tmpIntervals || [], priority);
+                            //console.log('returned priority');
+                            //console.log(priority);
+                            VoiceExtension
+                              .bulkCreate(application)
+                          });
+                          //console.log('THE END');
+                        })
+                    })
+                })
+            })
+        })
+        .then(function(result) {
+          return res.status(201).send(result);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+
+};
+
+// Deletes a voice_extension from the DB.
+exports.destroy = function(req, res, next) {
+  VoiceExtension
+    .findById(req.params.id)
+    .then(function(voice_extension) {
+      if (!voice_extension) {
+        return res.sendStatus(404);
+      }
+      if (!voice_extension.VoiceExtensionId) {
+        voice_extension.destroy()
+          .then(function() {
+            return res.sendStatus(204);
+          })
+          .catch(function(err) {
+            return handleError(res, err);
+          });
+      } else {
+        //console.log('isApplication');
+        VoiceExtension
+          .findAll({
+            where: {
+              appGroup: voice_extension.appGroup
+            }
+          })
+          .then(function(voice_extensions) {
+            //console.log('found extensions');
+            if (!voice_extensions) {
+              return res.sendStatus(404);
+            }
+            return sequelize.transaction(function(t) {
+                //console.log('trying to delete');
+                return VoiceExtension.destroy({
+                    where: {
+                      appGroup: voice_extension.appGroup
+                    }
+                  }, {
+                    transaction: t
+                  })
+                  .then(function(deleted_rows) {
+                    //console.log('the length of the group is', deleted_rows);
+                    // //console.log(voice_extensions);
+                    return VoiceExtension
+                      .findAll({
+                        where: {
+                          VoiceExtensionId: voice_extension.VoiceExtensionId,
+                          priority: {
+                            $gt: voice_extensions[deleted_rows - 1].priority
+                          }
+                        }
+                      })
+                      .then(function(voiceApplications) {
+                        return VoiceExtension
+                          .destroy({
+                            where: {
+                              VoiceExtensionId: voice_extension.VoiceExtensionId,
+                              priority: {
+                                $gt: voice_extensions[deleted_rows - 1].priority
+                              }
+                            }
+                          }, {
+                            transaction: t
+                          })
+                          .then(function() {
+                            var appGroups = _.pluck(_.filter(_.pluck(voiceApplications, 'dataValues'), function(elem) {
+                              return elem.isApp === true;
+                            }), 'appGroup');
+                            var priority = voice_extensions[0].priority;
+                            appGroups.forEach(function(sortedElem) {
+                              var tmpElem = _.find(voiceApplications, function(elem) {
+                                return (elem.appGroup == sortedElem && elem.isApp === true);
+                              });
+                              var application = _.cloneDeep(Applications[tmpElem.app]);
+                              if (!application || tmpElem.customApp) {
+                                application = [{
+                                  app: 'GotoIfTime',
+                                  appdata: '%s?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                                }, {
+                                  app: 'custom',
+                                  appdata: '%s',
+                                  isApp: true
+                                }, {
+                                  app: 'NoOp',
+                                  appdata: 'Custom Application End'
+                                }];
+                              }
+                              //console.log('PRIORITY');
+                              //console.log(priority);
+                              var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
+                              tmpElem.interval = tmpElem.interval || '*,*,*,*';
+                              var tmpIntervals = _.filter(voiceApplications, function(elem) {
+                                return (elem.appGroup == sortedElem && elem.isInterval === true);
+                              });
+                              if (tmpIntervals && tmpIntervals.length > 0) {
+                                application.splice(0, 1);
+                                tmpIntervals.forEach(function(elem, index) {
+
+                                  application.unshift({
+                                    app: 'GotoIfTimeFromArray',
+                                    appdata: elem.interval + '?%s,${EXTEN},%s:%s,${EXTEN},%s',
+                                    IntervalId: elem.IntervalId ? elem.IntervalId : null,
+                                    isInterval: true,
+                                    interval: elem.interval,
+                                  });
+                                })
+                              }
+                              priority = appCreate(application, tmpElem, appGroup, tmpIntervals || [], priority);
+                              //console.log('returned priority');
+                              //console.log(priority);
+                              VoiceExtension
+                                .bulkCreate(application)
+                            });
+                          })
+                      })
+                  })
+              })
+              .then(function(result) {
+                // VoiceExtension
+                //   .findAll({
+                //     where: {
+                //       VoiceExtensionId: voice_extension.VoiceExtensionId,
+                //       isApp: true
+                //     }
+                //   })
+                //   .then(function(voiceExtensions) {
+                //     // //console.log(_.pluck(voiceExtensions, 'dataValues'));
+                //     return res.status(201).send(voiceExtensions);
+                //   })
+                res.sendStatus(201);
+              })
+              .catch(function(err) {
+                return next(err);
+              });
+          })
+      }
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+
+// Deletes a agent from the DB.
+exports.bulkDestroy = function(req, res) {
+  VoiceExtension
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 387f119..da477d1 100644 (file)
@@ -1 +1,34 @@
-var _0x5194=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x75\x70\x64\x61\x74\x65"];_0x5194[0];var VoiceExtension=require(_0x5194[2])[_0x5194[1]];exports[_0x5194[3]]=function(_0x7553x2){VoiceExtension[_0x5194[4]](function(_0x7553x3){onSave(_0x7553x2,_0x7553x3)});VoiceExtension[_0x5194[5]](function(_0x7553x3){onRemove(_0x7553x2,_0x7553x3)});VoiceExtension[_0x5194[6]](function(_0x7553x3){onRemove(_0x7553x2,_0x7553x3)});VoiceExtension[_0x5194[7]](function(_0x7553x3){onUpdate(_0x7553x2,_0x7553x3)});};function onSave(_0x7553x2,_0x7553x3,_0x7553x5){_0x7553x2[_0x5194[9]](_0x5194[8],_0x7553x3)}function onRemove(_0x7553x2,_0x7553x3,_0x7553x5){_0x7553x2[_0x5194[9]](_0x5194[10],_0x7553x3)}function onUpdate(_0x7553x2,_0x7553x3,_0x7553x5){_0x7553x2[_0x5194[9]](_0x5194[11],_0x7553x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var VoiceExtension = require('../../models').VoiceExtension;
+
+exports.register = function(socket) {
+  VoiceExtension.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  VoiceExtension.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+  VoiceExtension.afterBulkDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+  VoiceExtension.afterUpdate(function(doc) {
+    onUpdate(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('voice_extension:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('voice_extension:remove', doc);
+}
+
+function onUpdate(socket, doc, cb) {
+  socket.emit('voice_extension:update', doc);
+}
index 5b58bfb..0971536 100644 (file)
@@ -1 +1,20 @@
-var _0x8249=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x67\x65\x74"];_0x8249[0];var should=require(_0x8249[1]);var app=require(_0x8249[2]);var request=require(_0x8249[3]);describe(_0x8249[4],function(){it(_0x8249[5],function(_0x6128x4){request(app)[_0x8249[13]](_0x8249[12])[_0x8249[11]](200)[_0x8249[11]](_0x8249[10],/json/)[_0x8249[9]](function(_0x6128x5,_0x6128x6){if(_0x6128x5){return _0x6128x4(_0x6128x5)};_0x6128x6[_0x8249[8]][_0x8249[1]][_0x8249[7]][_0x8249[6]](Array);_0x6128x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/voice/extensions', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/voice/extensions')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 5ea6609..59cc818 100644 (file)
@@ -1 +1,21 @@
-var _0x3984=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x73\x74\x72\x65\x61\x6D","\x73\x74\x72\x65\x61\x6D","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x6C\x65\x73","\x73\x68\x6F\x77\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x6D\x6F\x68\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x6C\x65\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x3984[0];var express=require(_0x3984[1]);var controller=require(_0x3984[2]);var auth=require(_0x3984[3]);var router=express.Router();router[_0x3984[7]](_0x3984[4],auth[_0x3984[5]](),controller[_0x3984[6]]);router[_0x3984[7]](_0x3984[8],auth[_0x3984[5]](),controller[_0x3984[9]]);router[_0x3984[7]](_0x3984[10],auth[_0x3984[5]](),controller[_0x3984[11]]);router[_0x3984[7]](_0x3984[12],auth[_0x3984[5]](),controller[_0x3984[13]]);router[_0x3984[15]](_0x3984[4],auth[_0x3984[5]](),controller[_0x3984[14]]);router[_0x3984[15]](_0x3984[16],auth[_0x3984[5]](),controller[_0x3984[17]]);router[_0x3984[15]](_0x3984[12],auth[_0x3984[5]](),controller[_0x3984[18]]);router[_0x3984[20]](_0x3984[10],auth[_0x3984[5]](),controller[_0x3984[19]]);router[_0x3984[22]](_0x3984[4],auth[_0x3984[5]](),controller[_0x3984[21]]);router[_0x3984[22]](_0x3984[10],auth[_0x3984[5]](),controller[_0x3984[23]]);router[_0x3984[22]](_0x3984[12],auth[_0x3984[5]](),controller[_0x3984[24]]);module[_0x3984[25]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./voice_musiconhold.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/stream', auth.isAuthenticated(), controller.stream);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/files', auth.isAuthenticated(), controller.showAudioFiles);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.mohValidation);
+router.post('/:id/files', auth.isAuthenticated(), controller.addFiles);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+router.delete('/:id/files', auth.isAuthenticated(), controller.deleteAudioFiles);
+
+module.exports = router;
index 4336074..72f8b70 100644 (file)
@@ -1 +1,357 @@
-var _0x4c2f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x66\x73","\x72\x65\x6D\x6F\x76\x65","\x55\x70\x6C\x6F\x61\x64","\x66\x73\x2D\x65\x78\x74\x72\x61","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x73\x6F\x72\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x46\x69\x6C\x65\x73","\x6C\x6F\x67","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x6A\x6F\x69\x6E","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x2E\x77\x61\x76","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x63\x6F\x70\x79\x53\x79\x6E\x63","\x30\x37\x37\x37","\x63\x68\x6D\x6F\x64\x53\x79\x6E\x63","\x73\x6F\x75\x6E\x64\x73","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x66\x69\x6C\x65\x73","\x72\x65\x61\x64\x64\x69\x72","\x64\x65\x6C\x65\x74\x65\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x2F","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x75\x6E\x6C\x69\x6E\x6B","\x6D\x6F\x68\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65","\x74\x68\x61\x74\x65\x72\x72\x6F\x72","\x46\x69\x6E\x64\x69\x6E\x67\x20\x61\x70\x70\x20\x72\x6F\x77\x2E\x2E\x2E\x2E\x2E","\x65\x72\x72\x6F\x72\x31","\x6C\x65\x6E\x67\x74\x68","\x65\x72\x72\x6F\x72\x32","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x4D\x4F\x48","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x66\x69\x6C\x65\x20\x65\x72\x72\x6F\x72","\x4D\x45\x53\x53\x41\x47\x45\x5F\x46\x49\x4C\x45\x5F\x43\x52\x45\x41\x54\x49\x4F\x4E\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x6D\x6D\x69\x74","\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x6D\x6B\x64\x69\x72","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x74\x72\x65\x61\x6D","\x65\x6E\x63\x6F\x64\x65"];_0x4c2f[0];var _=require(_0x4c2f[1]);var VoiceMusicOnHold=require(_0x4c2f[3])[_0x4c2f[2]];var fs=require(_0x4c2f[4]);var remove=require(_0x4c2f[5]);var Upload=require(_0x4c2f[3])[_0x4c2f[6]];var fse=require(_0x4c2f[7]);var path=require(_0x4c2f[8]);var config=require(_0x4c2f[9]);var sequelize=require(_0x4c2f[3])[_0x4c2f[10]];var util=require(_0x4c2f[11]);var base64=require(_0x4c2f[12]);exports[_0x4c2f[13]]=function(_0xe7adxc,_0xe7adxd){var _0xe7adxe=[_0x4c2f[14],_0x4c2f[15],_0x4c2f[16],_0x4c2f[17]];var _0xe7adxf=_0xe7adxc[_0x4c2f[19]][_0x4c2f[18]]?parseInt(_0xe7adxc[_0x4c2f[19]][_0x4c2f[18]],10):100;var _0xe7adx10=_0xe7adxc[_0x4c2f[19]][_0x4c2f[20]]?parseInt(_0xe7adxc[_0x4c2f[19]][_0x4c2f[20]],10):0;var _0xe7adx11={where:{},limit:_0xe7adxf,offset:_0xe7adx10*_0xe7adxf};_[_0x4c2f[34]](_0xe7adxc[_0x4c2f[19]],function(_0xe7adx12,_0xe7adx13){switch(_0xe7adx13){case _0x4c2f[18]:;case _0x4c2f[20]:break ;;case _0x4c2f[23]:_0xe7adx11[_0x4c2f[21]]=util[_0x4c2f[26]](_0x4c2f[22],_0xe7adxc[_0x4c2f[19]][_0x4c2f[23]],_0xe7adxc[_0x4c2f[19]][_0x4c2f[24]]||_0x4c2f[25])||null;break ;;case _0x4c2f[24]:break ;;case _0x4c2f[32]:_0xe7adx11[_0x4c2f[28]][_0x4c2f[27]]=[];_0xe7adxe[_0x4c2f[31]](function(_0xe7adx14){var _0xe7adx15={};_0xe7adx15[_0xe7adx14]={$like:_0x4c2f[29]+_0xe7adx12+_0x4c2f[29]};_0xe7adx11[_0x4c2f[28]][_0x4c2f[27]][_0x4c2f[30]](_0xe7adx15);});break ;;default:_0xe7adx11[_0x4c2f[28]][_0xe7adx13]={$like:{}};_0xe7adx11[_0x4c2f[28]][_0xe7adx13][_0x4c2f[33]]=_0x4c2f[29]+_0xe7adx12+_0x4c2f[29];;}});VoiceMusicOnHold[_0x4c2f[48]](_0xe7adx11)[_0x4c2f[47]](function(_0xe7adx17){var _0xe7adx18=Math[_0x4c2f[37]](_0xe7adx17[_0x4c2f[36]]/_0xe7adxf);var _0xe7adx19=_0xe7adx18>(_0xe7adx11[_0x4c2f[38]]+1)?util[_0x4c2f[26]](_0x4c2f[39],_0xe7adxc[_0x4c2f[40]],_0xe7adxc[_0x4c2f[42]][_0x4c2f[41]],_0xe7adxc[_0x4c2f[43]],_0xe7adx10+1):null;var _0xe7adx1a=_0xe7adx10>0?util[_0x4c2f[26]](_0x4c2f[39],_0xe7adxc[_0x4c2f[40]],_0xe7adxc[_0x4c2f[42]][_0x4c2f[41]],_0xe7adxc[_0x4c2f[43]],_0xe7adx10-1):null;_0xe7adxd[_0x4c2f[46]](200)[_0x4c2f[45]]({count:_0xe7adx17[_0x4c2f[36]],rows:_0xe7adx17[_0x4c2f[44]],next_page:_0xe7adx19,previous_page:_0xe7adx1a,total_pages:_0xe7adx18});})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)});};exports[_0x4c2f[49]]=function(_0xe7adxc,_0xe7adxd){VoiceMusicOnHold[_0x4c2f[53]](_0xe7adxc[_0x4c2f[52]][_0x4c2f[51]])[_0x4c2f[47]](function(_0xe7adx1b){if(!_0xe7adx1b){return _0xe7adxd[_0x4c2f[50]](404)};return _0xe7adxd[_0x4c2f[45]](_0xe7adx1b);})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)})};exports[_0x4c2f[54]]=function(_0xe7adxc,_0xe7adxd){VoiceMusicOnHold[_0x4c2f[53]](_0xe7adxc[_0x4c2f[52]][_0x4c2f[51]])[_0x4c2f[47]](function(_0xe7adx1b){if(!_0xe7adx1b){return _0xe7adxd[_0x4c2f[50]](404)};Upload[_0x4c2f[67]]({where:{id:_0xe7adxc[_0x4c2f[66]][_0x4c2f[65]]}})[_0x4c2f[47]](function(_0xe7adx1c){var _0xe7adx1d=path[_0x4c2f[58]](config[_0x4c2f[56]],_0x4c2f[57]);var _0xe7adx1e;_0xe7adx1c[_0x4c2f[31]](function(_0xe7adx1f){_0xe7adx1e=path[_0x4c2f[58]](_0xe7adx1b[_0x4c2f[15]],_0xe7adx1f[_0x4c2f[59]]+_0x4c2f[60]);fse[_0x4c2f[62]](path[_0x4c2f[58]](_0xe7adx1d,_0xe7adx1f[_0x4c2f[61]]+_0x4c2f[60]),_0xe7adx1e);});fs[_0x4c2f[64]](_0xe7adx1e,parseInt(_0x4c2f[63],8));_0xe7adxd[_0x4c2f[50]](200);})[_0x4c2f[35]](function(_0xe7adx16){console[_0x4c2f[55]](_0xe7adx16);return handleError(_0xe7adxd,_0xe7adx16);});})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)})};exports[_0x4c2f[68]]=function(_0xe7adxc,_0xe7adxd){var _0xe7adx20={};VoiceMusicOnHold[_0x4c2f[53]](_0xe7adxc[_0x4c2f[52]][_0x4c2f[51]])[_0x4c2f[47]](function(_0xe7adx1b){if(!_0xe7adx1b){return _0xe7adxd[_0x4c2f[50]](404)};_0xe7adx20[_0x4c2f[8]]=_0xe7adx1b[_0x4c2f[15]];fs[_0x4c2f[70]](_0xe7adx1b[_0x4c2f[15]],function(_0xe7adx16,_0xe7adx21){if(!_0xe7adx16){_0xe7adx20[_0x4c2f[69]]=_0xe7adx21;return _0xe7adxd[_0x4c2f[45]](_0xe7adx20);}else {throw _0xe7adx16}});})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)});};exports[_0x4c2f[71]]=function(_0xe7adxc,_0xe7adxd){VoiceMusicOnHold[_0x4c2f[53]](_0xe7adxc[_0x4c2f[52]][_0x4c2f[51]])[_0x4c2f[47]](function(_0xe7adx1b){if(!_0xe7adx1b){return _0xe7adxd[_0x4c2f[50]](404)};var _0xe7adx22=_0xe7adx1b[_0x4c2f[15]]+_0x4c2f[72]+_0xe7adxc[_0x4c2f[19]][_0x4c2f[73]];fs[_0x4c2f[74]](_0xe7adx22,function(_0xe7adx16){if(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)}else {return _0xe7adxd[_0x4c2f[50]](204)}});})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)})};exports[_0x4c2f[75]]=function(_0xe7adxc,_0xe7adxd){console[_0x4c2f[55]](_0xe7adxc[_0x4c2f[66]]);VoiceMusicOnHold[_0x4c2f[67]]({where:{name:_0xe7adxc[_0x4c2f[66]][_0x4c2f[14]]}})[_0x4c2f[47]](function(_0xe7adx23){if(!_0xe7adx23){return _0xe7adxd[_0x4c2f[50]](404)};return _0xe7adxd[_0x4c2f[45]](_0xe7adx23);})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)});};exports[_0x4c2f[76]]=function(_0xe7adxc,_0xe7adxd){VoiceMusicOnHold[_0x4c2f[67]]({where:{name:_0xe7adxc[_0x4c2f[66]][_0x4c2f[14]]}})[_0x4c2f[47]](function(_0xe7adx24){console[_0x4c2f[55]](_0xe7adx24);console[_0x4c2f[55]](_0x4c2f[78]);if(!_0xe7adx24){console[_0x4c2f[55]](_0x4c2f[79]);return _0xe7adxd[_0x4c2f[50]](404);};if(_0xe7adx24[_0x4c2f[80]]>0){console[_0x4c2f[55]](_0x4c2f[81]);return _0xe7adxd[_0x4c2f[46]](500)[_0x4c2f[45]]({message:_0x4c2f[82]});};return sequelize[_0x4c2f[90]]()[_0x4c2f[47]](function(_0xe7adx25){_0xe7adxc[_0x4c2f[66]][_0x4c2f[15]]=path[_0x4c2f[58]](config[_0x4c2f[56]],_0x4c2f[83],_0xe7adxc[_0x4c2f[66]][_0x4c2f[14]]);return VoiceMusicOnHold[_0x4c2f[76]](_0xe7adxc[_0x4c2f[66]],{transaction:_0xe7adx25})[_0x4c2f[47]](function(_0xe7adx1b){fs[_0x4c2f[89]](_0xe7adx1b[_0x4c2f[15]],parseInt(_0x4c2f[63],8),function(_0xe7adx16){if(_0xe7adx16){console[_0x4c2f[55]](_0x4c2f[85]);_0xe7adx25[_0x4c2f[84]]();return _0xe7adxd[_0x4c2f[46]](500)[_0x4c2f[45]]({message:_0x4c2f[86]});};_0xe7adx25[_0x4c2f[87]]();console[_0x4c2f[55]](_0x4c2f[88]);return _0xe7adxd[_0x4c2f[46]](201)[_0x4c2f[45]](_0xe7adx1b);})})[_0x4c2f[35]](function(_0xe7adx16){_0xe7adx25[_0x4c2f[84]]()});});})[_0x4c2f[35]](function(_0xe7adx16){console[_0x4c2f[55]](_0x4c2f[77]);return handleError(_0xe7adxd,_0xe7adx16);})};exports[_0x4c2f[91]]=function(_0xe7adxc,_0xe7adxd){if(_0xe7adxc[_0x4c2f[66]][_0x4c2f[51]]){delete _0xe7adxc[_0x4c2f[66]][_0x4c2f[51]]};VoiceMusicOnHold[_0x4c2f[94]]({where:{id:_0xe7adxc[_0x4c2f[52]][_0x4c2f[51]]}})[_0x4c2f[47]](function(_0xe7adx1b){if(!_0xe7adx1b){return _0xe7adxd[_0x4c2f[50]](404)};var _0xe7adx26=_[_0x4c2f[92]](_0xe7adx1b,_0xe7adxc[_0x4c2f[66]]);_0xe7adx26[_0x4c2f[93]]()[_0x4c2f[47]](function(){return _0xe7adxd[_0x4c2f[46]](200)[_0x4c2f[45]](_0xe7adx1b)})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)});})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)});};exports[_0x4c2f[95]]=function(_0xe7adxc,_0xe7adxd){VoiceMusicOnHold[_0x4c2f[53]](_0xe7adxc[_0x4c2f[52]][_0x4c2f[51]])[_0x4c2f[47]](function(_0xe7adx1b){if(!_0xe7adx1b){return _0xe7adxd[_0x4c2f[50]](404)};return sequelize[_0x4c2f[90]](function(_0xe7adx25){return _0xe7adx1b[_0x4c2f[95]]({transaction:_0xe7adx25})[_0x4c2f[47]](function(){remove(_0xe7adx1b[_0x4c2f[15]],function(_0xe7adx16){if(_0xe7adx16){console[_0x4c2f[55]](_0xe7adx16)};return _0xe7adxd[_0x4c2f[50]](204);})})})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)});})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)})};exports[_0x4c2f[96]]=function(_0xe7adxc,_0xe7adxd){VoiceMusicOnHold[_0x4c2f[67]]({where:{id:_0xe7adxc[_0x4c2f[19]][_0x4c2f[51]]}})[_0x4c2f[47]](function(_0xe7adx27){if(!_0xe7adx27){return _0xe7adxd[_0x4c2f[50]](404)};return sequelize[_0x4c2f[90]](function(_0xe7adx25){_0xe7adx27[_0x4c2f[31]](function(_0xe7adx28){return _0xe7adx28[_0x4c2f[95]]({transaction:_0xe7adx25})[_0x4c2f[47]](function(){remove(_0xe7adx28[_0x4c2f[15]],function(_0xe7adx16){if(_0xe7adx16){console[_0x4c2f[55]](_0xe7adx16);throw _0xe7adx16;}})})})})[_0x4c2f[47]](function(){return _0xe7adxd[_0x4c2f[50]](204)})[_0x4c2f[35]](function(_0xe7adx16){console[_0x4c2f[55]](_0xe7adx16);return handleError(_0xe7adxd,_0xe7adx16);});})[_0x4c2f[35]](function(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)})};exports[_0x4c2f[97]]=function(_0xe7adxc,_0xe7adxd){var _0xe7adx29=decodeURI(_0xe7adxc[_0x4c2f[19]][_0x4c2f[8]]);base64[_0x4c2f[98]](_0xe7adx29,function(_0xe7adx16,_0xe7adx2a){if(_0xe7adx16){return handleError(_0xe7adxd,_0xe7adx16)}else {return _0xe7adxd[_0x4c2f[46]](200)[_0x4c2f[45]](_0xe7adx2a)}});};function handleError(_0xe7adxd,_0xe7adx16){return _0xe7adxd[_0x4c2f[46]](500)[_0x4c2f[45]](_0xe7adx16)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var VoiceMusicOnHold = require('../../models').VoiceMusicOnHold;
+var fs = require('fs');
+var remove = require('remove');
+var Upload = require('../../models').Upload;
+var fse = require('fs-extra');
+var path = require('path');
+var config = require('../../config/environment');
+var sequelize = require('../../models').sequelize;
+var util = require('util');
+var base64 = require('file-base64');
+
+// Get list of voice_musiconholds
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'directory', 'sort', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+
+  VoiceMusicOnHold
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single voice_musiconhold
+exports.show = function(req, res) {
+  VoiceMusicOnHold
+    .findById(req.params.id)
+    .then(function(voice_musiconhold) {
+      if (!voice_musiconhold) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_musiconhold);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Add files to moh class
+exports.addFiles = function(req, res) {
+  VoiceMusicOnHold
+    .findById(req.params.id)
+    .then(function(voice_musiconhold) {
+      if (!voice_musiconhold) {
+        return res.sendStatus(404);
+      }
+      Upload
+        .findAll({
+          where: {
+            id: req.body.sounds
+          }
+        })
+        .then(function(soundFiles) {
+          var origin = path.join(config.root, 'server/files/sounds/converted');
+          var dest;
+          soundFiles.forEach(function(elem) {
+            dest = path.join(voice_musiconhold.directory, elem.display_name + '.wav');
+            fse.copySync(path.join(origin, elem.save_name + '.wav'), dest);
+          });
+          fs.chmodSync(dest, parseInt('0777', 8));
+          res.sendStatus(200);
+        })
+        .catch(function(err) {
+          console.log(err);
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.showAudioFiles = function(req, res) {
+  var fileObject = {};
+  VoiceMusicOnHold
+    .findById(req.params.id)
+    .then(function(voice_musiconhold) {
+      if (!voice_musiconhold) {
+        return res.sendStatus(404);
+      }
+      fileObject.path = voice_musiconhold.directory;
+      fs.readdir(voice_musiconhold.directory, function(err, files) {
+        if (!err) {
+          fileObject.files = files;
+          return res.send(fileObject);
+        } else {
+          throw err;
+        }
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.deleteAudioFiles = function(req, res) {
+  VoiceMusicOnHold
+    .findById(req.params.id)
+    .then(function(voice_musiconhold) {
+      if (!voice_musiconhold) {
+        return res.sendStatus(404);
+      }
+      var deletePath = voice_musiconhold.directory + '/' + req.query.filename;
+      fs.unlink(deletePath, function(err) {
+        if (err) {
+          return handleError(res, err);
+        } else {
+          return res.sendStatus(204);
+        }
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of a route
+exports.mohValidation = function(req, res) {
+  console.log(req.body);
+  VoiceMusicOnHold
+    .findAll({
+      where: {
+        name: req.body.name,
+      }
+    })
+    .then(function(voice_mohs) {
+      if (!voice_mohs) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_mohs);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new voice_musiconhold in the DB.
+exports.create = function(req, res) {
+  VoiceMusicOnHold
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(existingMohs) {
+      console.log(existingMohs);
+      console.log('Finding app row.....');
+      if (!existingMohs) {
+        console.log('error1');
+        return res.sendStatus(404);
+      }
+      if (existingMohs.length > 0) {
+        console.log('error2');
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_MOH'
+        });
+      }
+      return sequelize.transaction().then(function(t) {
+        req.body.directory = path.join(config.root, 'server/files/moh', req.body.name);
+        return VoiceMusicOnHold
+          .create(req.body, {
+            transaction: t
+          })
+          .then(function(voice_musiconhold) {
+            fs.mkdir(voice_musiconhold.directory, parseInt('0777', 8), function(err) {
+              if (err) {
+                console.log('file error');
+                t.rollback();
+                return res.status(500).send({
+                  message: 'MESSAGE_FILE_CREATION_ERROR'
+                });
+              }
+              t.commit();
+              console.log('file created');
+              return res.status(201).send(voice_musiconhold);
+            });
+          })
+          .catch(function(err) {
+            t.rollback();
+          });
+      })
+    })
+    .catch(function(err) {
+      console.log('thaterror');
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing voice_musiconhold in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  VoiceMusicOnHold
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(voice_musiconhold) {
+      if (!voice_musiconhold) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(voice_musiconhold, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(voice_musiconhold);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a voice_musiconhold from the DB.
+exports.destroy = function(req, res) {
+  VoiceMusicOnHold
+    .findById(req.params.id)
+    .then(function(voice_musiconhold) {
+      if (!voice_musiconhold) {
+        return res.sendStatus(404);
+      }
+      return sequelize.transaction(function(t) {
+          return voice_musiconhold.destroy({
+              transaction: t
+            })
+            .then(function() {
+              remove(voice_musiconhold.directory, function(err) {
+                if (err) {
+                  console.log(err);
+                }
+                return res.sendStatus(204);
+              });
+            })
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes multiple voice_musiconholds from the DB.
+exports.bulkDestroy = function(req, res) {
+  VoiceMusicOnHold
+    .findAll({
+      where: {
+        id: req.query.id
+      }
+    })
+    .then(function(voice_musiconholds) {
+      if (!voice_musiconholds) {
+        return res.sendStatus(404);
+      }
+      return sequelize.transaction(function(t) {
+          voice_musiconholds.forEach(function(element) {
+            return element.destroy({
+                transaction: t
+              })
+              .then(function() {
+                remove(element.directory, function(err) {
+                  if (err) {
+                    console.log(err);
+                    throw err
+                  }
+                });
+              })
+          })
+        })
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          console.log(err);
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// stream a moh file
+exports.stream = function(req, res) {
+  var filepath = decodeURI(req.query.path);
+  base64.encode(filepath, function(err, base64String) {
+    if (err) {
+      return handleError(res, err);
+    } else {
+      return res.status(200).send(base64String);
+    }
+  });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 4b49094..efa073f 100644 (file)
@@ -1 +1,24 @@
-var _0x1498=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x1498[0];var VoiceMusicOnHold=require(_0x1498[2])[_0x1498[1]];exports[_0x1498[3]]=function(_0x91f5x2){VoiceMusicOnHold[_0x1498[4]](function(_0x91f5x3){onSave(_0x91f5x2,_0x91f5x3)});VoiceMusicOnHold[_0x1498[5]](function(_0x91f5x3){onRemove(_0x91f5x2,_0x91f5x3)});};function onSave(_0x91f5x2,_0x91f5x3,_0x91f5x5){_0x91f5x2[_0x1498[7]](_0x1498[6],_0x91f5x3)}function onRemove(_0x91f5x2,_0x91f5x3,_0x91f5x5){_0x91f5x2[_0x1498[7]](_0x1498[8],_0x91f5x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var VoiceMusicOnHold = require('../../models').VoiceMusicOnHold;
+
+exports.register = function(socket) {
+  VoiceMusicOnHold.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  VoiceMusicOnHold.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('voice_musiconhold:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('voice_musiconhold:remove', doc);
+}
index 1eb2256..e992daf 100644 (file)
@@ -1 +1,20 @@
-var _0x43d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x67\x65\x74"];_0x43d2[0];var should=require(_0x43d2[1]);var app=require(_0x43d2[2]);var request=require(_0x43d2[3]);describe(_0x43d2[4],function(){it(_0x43d2[5],function(_0xb65dx4){request(app)[_0x43d2[13]](_0x43d2[12])[_0x43d2[11]](200)[_0x43d2[11]](_0x43d2[10],/json/)[_0x43d2[9]](function(_0xb65dx5,_0xb65dx6){if(_0xb65dx5){return _0xb65dx4(_0xb65dx5)};_0xb65dx6[_0x43d2[8]][_0x43d2[1]][_0x43d2[7]][_0x43d2[6]](Array);_0xb65dx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/voice/musiconhold', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/voice/musiconhold')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 9daa7c9..a11cd5b 100644 (file)
@@ -1 +1,19 @@
-var _0x22c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x71\x75\x65\x75\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x2F\x3A\x6E\x61\x6D\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x22c8[0];var express=require(_0x22c8[1]);var controller=require(_0x22c8[2]);var auth=require(_0x22c8[3]);var router=express.Router();router[_0x22c8[7]](_0x22c8[4],auth[_0x22c8[5]](),controller[_0x22c8[6]]);router[_0x22c8[7]](_0x22c8[8],auth[_0x22c8[5]](),controller[_0x22c8[9]]);router[_0x22c8[11]](_0x22c8[4],auth[_0x22c8[5]](),controller[_0x22c8[10]]);router[_0x22c8[11]](_0x22c8[12],auth[_0x22c8[5]](),controller[_0x22c8[13]]);router[_0x22c8[11]](_0x22c8[14],auth[_0x22c8[5]](),controller[_0x22c8[15]]);router[_0x22c8[17]](_0x22c8[8],auth[_0x22c8[5]](),controller[_0x22c8[16]]);router[_0x22c8[17]](_0x22c8[14],auth[_0x22c8[5]](),controller[_0x22c8[18]]);router[_0x22c8[20]](_0x22c8[4],auth[_0x22c8[5]](),controller[_0x22c8[19]]);router[_0x22c8[20]](_0x22c8[21],auth[_0x22c8[5]](),controller[_0x22c8[22]]);module[_0x22c8[23]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./voice_queue.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.queueValidation);
+router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.put('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:name', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 952b858..004e716 100644 (file)
@@ -1 +1,339 @@
-var _0x4206=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x73\x74\x72\x61\x74\x65\x67\x79","\x63\x6F\x6E\x74\x65\x78\x74","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x6C\x6F\x67","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x71\x75\x65\x75\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x46\x69\x6E\x64\x69\x6E\x67\x20\x61\x70\x70\x20\x72\x6F\x77\x2E\x2E\x2E\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x51\x55\x45\x55\x45","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x53\x49\x50\x2F\x25\x73","\x6D\x61\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x61\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x6E\x6F\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x51\x55\x45\x55\x45\x5F\x52\x4F\x55\x54\x45\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x6C\x75\x63\x6B"];_0x4206[0];var _=require(_0x4206[1]);var util=require(_0x4206[2]);var User=require(_0x4206[4])[_0x4206[3]];var VoiceQueue=require(_0x4206[4])[_0x4206[5]];var UserHasVoiceQueue=require(_0x4206[4])[_0x4206[6]];var VoiceExtension=require(_0x4206[4])[_0x4206[7]];exports[_0x4206[8]]=function(_0xdf06x7,_0xdf06x8){var _0xdf06x9=[_0x4206[9],_0x4206[10],_0x4206[11],_0x4206[12]];var _0xdf06xa=_0xdf06x7[_0x4206[14]][_0x4206[13]]?parseInt(_0xdf06x7[_0x4206[14]][_0x4206[13]],10):100;var _0xdf06xb=_0xdf06x7[_0x4206[14]][_0x4206[15]]?parseInt(_0xdf06x7[_0x4206[14]][_0x4206[15]],10):0;var _0xdf06xc={where:{},limit:_0xdf06xa,offset:_0xdf06xb*_0xdf06xa};_[_0x4206[29]](_0xdf06x7[_0x4206[14]],function(_0xdf06xd,_0xdf06xe){switch(_0xdf06xe){case _0x4206[13]:;case _0x4206[15]:break ;;case _0x4206[18]:_0xdf06xc[_0x4206[16]]=util[_0x4206[21]](_0x4206[17],_0xdf06x7[_0x4206[14]][_0x4206[18]],_0xdf06x7[_0x4206[14]][_0x4206[19]]||_0x4206[20])||null;break ;;case _0x4206[19]:break ;;case _0x4206[27]:_0xdf06xc[_0x4206[23]][_0x4206[22]]=[];_0xdf06x9[_0x4206[26]](function(_0xdf06xf){var _0xdf06x10={};_0xdf06x10[_0xdf06xf]={$like:_0x4206[24]+_0xdf06xd+_0x4206[24]};_0xdf06xc[_0x4206[23]][_0x4206[22]][_0x4206[25]](_0xdf06x10);});break ;;default:_0xdf06xc[_0x4206[23]][_0xdf06xe]={$like:{}};_0xdf06xc[_0x4206[23]][_0xdf06xe][_0x4206[28]]=_0x4206[24]+_0xdf06xd+_0x4206[24];;}});VoiceQueue[_0x4206[44]](_0xdf06xc)[_0x4206[43]](function(_0xdf06x12){console[_0x4206[32]](_0xdf06x12[_0x4206[31]]);var _0xdf06x13=Math[_0x4206[33]](_0xdf06x12[_0x4206[31]]/_0xdf06xa);console[_0x4206[32]](_0xdf06x13);var _0xdf06x14=_0xdf06x13>(_0xdf06xc[_0x4206[34]]+1)?util[_0x4206[21]](_0x4206[35],_0xdf06x7[_0x4206[36]],_0xdf06x7[_0x4206[38]][_0x4206[37]],_0xdf06x7[_0x4206[39]],_0xdf06xb+1):null;var _0xdf06x15=_0xdf06xb>0?util[_0x4206[21]](_0x4206[35],_0xdf06x7[_0x4206[36]],_0xdf06x7[_0x4206[38]][_0x4206[37]],_0xdf06x7[_0x4206[39]],_0xdf06xb-1):null;_0xdf06x8[_0x4206[42]](200)[_0x4206[41]]({count:_0xdf06x12[_0x4206[31]],rows:_0xdf06x12[_0x4206[40]],next_page:_0xdf06x14,previous_page:_0xdf06x15,total_pages:_0xdf06x13});})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});};exports[_0x4206[45]]=function(_0xdf06x7,_0xdf06x8){VoiceQueue[_0x4206[49]](_0xdf06x7[_0x4206[48]][_0x4206[47]])[_0x4206[43]](function(_0xdf06x16){if(!_0xdf06x16){return _0xdf06x8[_0x4206[46]](404)};return _0xdf06x8[_0x4206[41]](_0xdf06x16);})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)})};exports[_0x4206[50]]=function(_0xdf06x7,_0xdf06x8){console[_0x4206[32]](_0xdf06x7[_0x4206[51]]);VoiceQueue[_0x4206[52]]({where:{name:_0xdf06x7[_0x4206[51]][_0x4206[9]]}})[_0x4206[43]](function(_0xdf06x16){if(!_0xdf06x16){return _0xdf06x8[_0x4206[46]](404)};return _0xdf06x8[_0x4206[41]](_0xdf06x16);})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});};exports[_0x4206[53]]=function(_0xdf06x7,_0xdf06x8){VoiceQueue[_0x4206[52]]({where:{name:_0xdf06x7[_0x4206[51]][_0x4206[9]]}})[_0x4206[43]](function(_0xdf06x17){console[_0x4206[32]](_0xdf06x17);console[_0x4206[32]](_0x4206[54]);if(!_0xdf06x17){return _0xdf06x8[_0x4206[46]](404)};if(_0xdf06x17[_0x4206[55]]>0){return _0xdf06x8[_0x4206[42]](500)[_0x4206[41]]({message:_0x4206[56]})};VoiceQueue[_0x4206[53]](_0xdf06x7[_0x4206[51]])[_0x4206[43]](function(_0xdf06x16){return _0xdf06x8[_0x4206[42]](201)[_0x4206[41]](_0xdf06x16)})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)})};exports[_0x4206[57]]=function(_0xdf06x7,_0xdf06x8){VoiceQueue[_0x4206[60]]({where:{name:_0xdf06x7[_0x4206[48]][_0x4206[47]]}})[_0x4206[43]](function(_0xdf06x18){if(!_0xdf06x18){return _0xdf06x8[_0x4206[46]](404)};if(_0xdf06x7[_0x4206[51]][_0x4206[47]]){delete _0xdf06x7[_0x4206[51]][_0x4206[47]]};var _0xdf06x19=_[_0x4206[58]](_0xdf06x18,_0xdf06x7[_0x4206[51]]);_0xdf06x19[_0x4206[59]]()[_0x4206[43]](function(){return _0xdf06x8[_0x4206[42]](200)[_0x4206[41]](_0xdf06x18)})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)})};exports[_0x4206[61]]=function(_0xdf06x7,_0xdf06x8,_0xdf06x1a){console[_0x4206[32]](_0x4206[61]);console[_0x4206[32]](_0xdf06x7[_0x4206[48]]);console[_0x4206[32]](_0xdf06x7[_0x4206[51]]);User[_0x4206[52]]({where:{id:{$in:_0xdf06x7[_0x4206[51]][_0x4206[65]]}}})[_0x4206[43]](function(_0xdf06x1b){var _0xdf06x1c=_[_0x4206[63]](_0xdf06x1b,function(_0xdf06x1d){return {queue:_0xdf06x7[_0x4206[48]][_0x4206[47]],location:util[_0x4206[21]](_0x4206[62],_0xdf06x1d[_0x4206[9]]),membername:_0xdf06x1d[_0x4206[9]],VoiceQueueName:_0xdf06x7[_0x4206[48]][_0x4206[47]],UserId:_0xdf06x1d[_0x4206[47]]}});UserHasVoiceQueue[_0x4206[64]](_0xdf06x1c,{individualHooks:true})[_0x4206[43]](function(){return _0xdf06x8[_0x4206[46]](200)})[_0x4206[30]](function(_0xdf06x11){return _0xdf06x1a(_0xdf06x11)});})[_0x4206[30]](function(_0xdf06x11){return _0xdf06x1a(_0xdf06x11)});};exports[_0x4206[66]]=function(_0xdf06x7,_0xdf06x8,_0xdf06x1a){VoiceQueue[_0x4206[60]]({where:{name:_0xdf06x7[_0x4206[48]][_0x4206[47]]}})[_0x4206[43]](function(_0xdf06x18){if(_0xdf06x18){_0xdf06x18[_0x4206[67]](_0xdf06x7[_0x4206[51]][_0x4206[65]],{individualHooks:true})[_0x4206[43]](function(){return _0xdf06x8[_0x4206[46]](200)})[_0x4206[30]](function(_0xdf06x11){return _0xdf06x1a(_0xdf06x11)})}else {return _0xdf06x1a( new Error(_0x4206[68]))}})[_0x4206[30]](function(_0xdf06x11){return _0xdf06x1a(_0xdf06x11)})};exports[_0x4206[69]]=function(_0xdf06x7,_0xdf06x8){VoiceQueue[_0x4206[60]]({where:{name:_0xdf06x7[_0x4206[48]][_0x4206[9]]}})[_0x4206[43]](function(_0xdf06x16){if(!_0xdf06x16){return _0xdf06x8[_0x4206[46]](404)};VoiceExtension[_0x4206[52]]({where:{queue:_0xdf06x16[_0x4206[9]]}})[_0x4206[43]](function(_0xdf06x1e){if(_0xdf06x1e[_0x4206[55]]>0){return _0xdf06x8[_0x4206[42]](500)[_0x4206[41]]({message:_0x4206[70]})};_0xdf06x16[_0x4206[69]]()[_0x4206[43]](function(){return _0xdf06x8[_0x4206[46]](204)})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)})};exports[_0x4206[71]]=function(_0xdf06x7,_0xdf06x8){VoiceQueue[_0x4206[52]]({where:{name:_0xdf06x7[_0x4206[14]][_0x4206[9]]}})[_0x4206[43]](function(_0xdf06x1f){if(!_0xdf06x1f){return _0xdf06x8[_0x4206[46]](404)};var _0xdf06x20=_[_0x4206[73]](_[_0x4206[73]](_0xdf06x1f,_0x4206[72]),_0x4206[9]);console[_0x4206[32]](_0xdf06x20);VoiceExtension[_0x4206[52]]({where:{queue:_0xdf06x20}})[_0x4206[43]](function(_0xdf06x1e){if(_0xdf06x1e[_0x4206[55]]>0){return _0xdf06x8[_0x4206[42]](500)[_0x4206[41]]({message:_0x4206[70]})};VoiceQueue[_0x4206[69]]({where:{name:_0xdf06x7[_0x4206[14]][_0x4206[9]]},individualHooks:true})[_0x4206[43]](function(){return _0xdf06x8[_0x4206[46]](204)})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)});})[_0x4206[30]](function(_0xdf06x11){return handleError(_0xdf06x8,_0xdf06x11)})};function handleError(_0xdf06x8,_0xdf06x11){return _0xdf06x8[_0x4206[42]](500)[_0x4206[41]](_0xdf06x11)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+
+var User = require('../../models').User;
+var VoiceQueue = require('../../models').VoiceQueue;
+var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
+var VoiceExtension = require('../../models').VoiceExtension;
+
+// Get list of voice_queues
+exports.index = function(req, res) {
+  // console.log(req.query.page);
+  var attributes = ['name', 'description', 'strategy', 'context'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  VoiceQueue
+    .findAndCountAll(query)
+    .then(function(result) {
+      console.log(result.count);
+      var total_pages = Math.ceil(result.count / per_page);
+      console.log(total_pages);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single voice_queue
+exports.show = function(req, res) {
+  VoiceQueue
+    .findById(req.params.id)
+    .then(function(voice_queue) {
+      if (!voice_queue) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of a queue
+exports.queueValidation = function(req, res) {
+  console.log(req.body);
+  VoiceQueue
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(voice_queue) {
+      if (!voice_queue) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_queue);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new voice_queue in the DB.
+exports.create = function(req, res) {
+  VoiceQueue
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(existingQueues) {
+      console.log(existingQueues);
+      console.log('Finding app row.....');
+      if (!existingQueues) {
+        return res.sendStatus(404);
+      }
+      if (existingQueues.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_QUEUE'
+        });
+      }
+      VoiceQueue
+        .create(req.body)
+        .then(function(voice_queue) {
+          return res.status(201).send(voice_queue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing voice_queue in the DB.
+exports.update = function(req, res) {
+  VoiceQueue
+    .find({
+      where: {
+        name: req.params.id
+      }
+    })
+    .then(function(voiceQueue) {
+      if (!voiceQueue) {
+        return res.sendStatus(404);
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      var updated = _.merge(voiceQueue, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(voiceQueue);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+
+// Updates an existing user_has_voiceQueue in the DB.
+exports.addAgents = function(req, res, next) {
+
+  console.log('addAgents');
+  console.log(req.params);
+  console.log(req.body);
+  User
+    .findAll({
+      where: {
+        id: {
+          $in: req.body.agents
+        }
+      }
+    })
+    .then(function(users) {
+      // console.log(users);
+      var userHasVoiceQueues = _.map(users, function(user) {
+        return {
+          queue: req.params.id,
+          location: util.format('SIP/%s', user.name),
+          membername: user.name,
+          VoiceQueueName: req.params.id,
+          UserId: user.id
+        };
+      });
+
+      UserHasVoiceQueue
+        .bulkCreate(userHasVoiceQueues, {
+          individualHooks: true
+        })
+        .then(function() {
+          return res.sendStatus(200);
+        })
+        .catch(function(err) {
+          return next(err);
+        });
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+exports.removeAgents = function(req, res, next) {
+  VoiceQueue
+    .find({
+      where: {
+        name: req.params.id
+      }
+    })
+    .then(function(voiceQueue) {
+      if (voiceQueue) {
+        // QUEUE FOUND
+        // REMOVE AGENTS
+        voiceQueue
+          .removeUsers(req.body.agents, {
+            individualHooks: true
+          })
+          .then(function() {
+            return res.sendStatus(200);
+          })
+          .catch(function(err) {
+            return next(err);
+          });
+      } else {
+        return next(new Error('no queue found'));
+      }
+    })
+    .catch(function(err) {
+      return next(err);
+    });
+};
+
+// Deletes a voice_queue from the DB.
+exports.destroy = function(req, res) {
+  VoiceQueue
+    .find({
+      where: {
+        name: req.params.name
+      }
+    })
+    .then(function(voice_queue) {
+      if (!voice_queue) {
+        return res.sendStatus(404);
+      }
+      VoiceExtension
+        .findAll({
+          where: {
+            queue: voice_queue.name
+          }
+        })
+        .then(function(contextExtensions) {
+          if (contextExtensions.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_QUEUE_ROUTE_ASSOCIATED'
+            });
+          }
+          voice_queue.destroy()
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes multiple voice_queues from the DB.
+exports.bulkDestroy = function(req, res) {
+  VoiceQueue
+    .findAll({
+      where: {
+        name: req.query.name
+      }
+    })
+    .then(function(voice_queues) {
+      if (!voice_queues) {
+        return res.sendStatus(404);
+      }
+      var destroyQueuesNames = _.pluck(_.pluck(voice_queues, 'dataValues'), 'name');
+      console.log(destroyQueuesNames);
+      VoiceExtension
+        .findAll({
+          where: {
+            queue: destroyQueuesNames
+          }
+        })
+        .then(function(contextExtensions) {
+          if (contextExtensions.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_QUEUE_ROUTE_ASSOCIATED'
+            });
+          }
+          VoiceQueue
+            .destroy({
+              where: {
+                name: req.query.name
+              },
+              individualHooks: true
+            })
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 8a447c5..6cb2204 100644 (file)
@@ -1 +1,24 @@
-var _0x4e64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4e64[0];var VoiceQueue=require(_0x4e64[2])[_0x4e64[1]];exports[_0x4e64[3]]=function(_0x7b84x2){VoiceQueue[_0x4e64[4]](function(_0x7b84x3){onSave(_0x7b84x2,_0x7b84x3)});VoiceQueue[_0x4e64[5]](function(_0x7b84x3){onRemove(_0x7b84x2,_0x7b84x3)});};function onSave(_0x7b84x2,_0x7b84x3,_0x7b84x5){_0x7b84x2[_0x4e64[7]](_0x4e64[6],_0x7b84x3)}function onRemove(_0x7b84x2,_0x7b84x3,_0x7b84x5){_0x7b84x2[_0x4e64[7]](_0x4e64[8],_0x7b84x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var VoiceQueue = require('../../models').VoiceQueue;
+
+exports.register = function(socket) {
+  VoiceQueue.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  VoiceQueue.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('voice_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('voice_queue:remove', doc);
+}
index 1e91587..fd49ebd 100644 (file)
@@ -1 +1,20 @@
-var _0xba88=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0xba88[0];var should=require(_0xba88[1]);var app=require(_0xba88[2]);var request=require(_0xba88[3]);describe(_0xba88[4],function(){it(_0xba88[5],function(_0x5f1bx4){request(app)[_0xba88[13]](_0xba88[12])[_0xba88[11]](200)[_0xba88[11]](_0xba88[10],/json/)[_0xba88[9]](function(_0x5f1bx5,_0x5f1bx6){if(_0x5f1bx5){return _0x5f1bx4(_0x5f1bx5)};_0x5f1bx6[_0xba88[8]][_0xba88[1]][_0xba88[7]][_0xba88[6]](Array);_0x5f1bx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/voice/queues', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/voice/queues')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 3ca5ced..04c5ac8 100644 (file)
@@ -1 +1,21 @@
-var _0xbe75=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x2F\x6D\x65\x73\x73\x61\x67\x65\x73\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x4D\x65\x73\x73\x61\x67\x65","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x6D\x61\x69\x6C\x62\x6F\x78\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x2F\x6D\x65\x73\x73\x61\x67\x65\x73\x2F\x3A\x69\x64\x2F\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79\x4D\x65\x73\x73\x61\x67\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbe75[0];var express=require(_0xbe75[1]);var controller=require(_0xbe75[2]);var auth=require(_0xbe75[3]);var router=express.Router();router[_0xbe75[7]](_0xbe75[4],auth[_0xbe75[5]](),controller[_0xbe75[6]]);router[_0xbe75[7]](_0xbe75[8],auth[_0xbe75[5]](),controller[_0xbe75[9]]);router[_0xbe75[7]](_0xbe75[10],auth[_0xbe75[5]](),controller[_0xbe75[11]]);router[_0xbe75[7]](_0xbe75[12],auth[_0xbe75[5]](),controller[_0xbe75[13]]);router[_0xbe75[15]](_0xbe75[4],auth[_0xbe75[5]](),controller[_0xbe75[14]]);router[_0xbe75[15]](_0xbe75[16],auth[_0xbe75[5]](),controller[_0xbe75[17]]);router[_0xbe75[19]](_0xbe75[8],auth[_0xbe75[5]](),controller[_0xbe75[18]]);router[_0xbe75[21]](_0xbe75[20],auth[_0xbe75[5]](),controller[_0xbe75[18]]);router[_0xbe75[23]](_0xbe75[4],auth[_0xbe75[5]](),controller[_0xbe75[22]]);router[_0xbe75[23]](_0xbe75[8],auth[_0xbe75[5]](),controller[_0xbe75[24]]);router[_0xbe75[23]](_0xbe75[25],auth[_0xbe75[5]](),controller[_0xbe75[26]]);module[_0xbe75[27]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./voice_voicemail.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:uniqueid', auth.isAuthenticated(), controller.show);
+router.get('/:uniqueid/messages', auth.isAuthenticated(), controller.getMessages);
+router.get('/messages/:id/download', auth.isAuthenticated(), controller.downloadMessage);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.mailboxValidation);
+router.put('/:uniqueid', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:uniqueid', auth.isAuthenticated(), controller.destroy);
+router.delete('/messages/:id/delete', auth.isAuthenticated(), controller.destroyMessage);
+
+module.exports = router;
index d122ec6..eed06af 100644 (file)
@@ -1 +1,298 @@
-var _0x7e5e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x73\x74\x72\x65\x61\x6D","\x69\x6E\x64\x65\x78","\x6D\x61\x69\x6C\x62\x6F\x78","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x6F\x6E\x74\x65\x78\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x61\x69\x6C\x62\x6F\x78\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x4D\x41\x49\x4C\x42\x4F\x58","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x74\x72\x6F\x79\x4D\x65\x73\x73\x61\x67\x65","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x4D\x65\x73\x73\x61\x67\x65","\x6D\x73\x67\x5F\x69\x64","\x2E\x77\x61\x76","\x4F\x4B","\x61\x75\x64\x69\x6F\x2F\x77\x61\x76","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x77\x72\x69\x74\x65\x48\x65\x61\x64","\x65\x6E\x64","\x70\x69\x70\x65"];_0x7e5e[0];var _=require(_0x7e5e[1]);var VoiceVoicemail=require(_0x7e5e[3])[_0x7e5e[2]];var VoiceVoicemailMessages=require(_0x7e5e[3])[_0x7e5e[4]];var stream=require(_0x7e5e[5]);exports[_0x7e5e[6]]=function(_0x60f2x5,_0x60f2x6){var _0x60f2x7=[_0x7e5e[7],_0x7e5e[8],_0x7e5e[9]];var _0x60f2x8=_0x60f2x5[_0x7e5e[11]][_0x7e5e[10]]?parseInt(_0x60f2x5[_0x7e5e[11]][_0x7e5e[10]],10):100;var _0x60f2x9=_0x60f2x5[_0x7e5e[11]][_0x7e5e[12]]?parseInt(_0x60f2x5[_0x7e5e[11]][_0x7e5e[12]],10):0;var _0x60f2xa={where:{},limit:_0x60f2x8,offset:_0x60f2x9*_0x60f2x8};_[_0x7e5e[26]](_0x60f2x5[_0x7e5e[11]],function(_0x60f2xb,_0x60f2xc){switch(_0x60f2xc){case _0x7e5e[10]:;case _0x7e5e[12]:break ;;case _0x7e5e[15]:_0x60f2xa[_0x7e5e[13]]=util[_0x7e5e[18]](_0x7e5e[14],_0x60f2x5[_0x7e5e[11]][_0x7e5e[15]],_0x60f2x5[_0x7e5e[11]][_0x7e5e[16]]||_0x7e5e[17])||null;break ;;case _0x7e5e[16]:break ;;case _0x7e5e[24]:_0x60f2xa[_0x7e5e[20]][_0x7e5e[19]]=[];_0x60f2x7[_0x7e5e[23]](function(_0x60f2xd){var _0x60f2xe={};_0x60f2xe[_0x60f2xd]={$like:_0x7e5e[21]+_0x60f2xb+_0x7e5e[21]};_0x60f2xa[_0x7e5e[20]][_0x7e5e[19]][_0x7e5e[22]](_0x60f2xe);});break ;;default:_0x60f2xa[_0x7e5e[20]][_0x60f2xc]={$like:{}};_0x60f2xa[_0x7e5e[20]][_0x60f2xc][_0x7e5e[25]]=_0x7e5e[21]+_0x60f2xb+_0x7e5e[21];;}});VoiceVoicemail[_0x7e5e[31]](_0x60f2xa)[_0x7e5e[30]](function(_0x60f2x10){return _0x60f2x6[_0x7e5e[29]](200)[_0x7e5e[28]](_0x60f2x10)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)});};exports[_0x7e5e[32]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemail[_0x7e5e[36]]({where:{uniqueid:_0x60f2x5[_0x7e5e[35]][_0x7e5e[34]]}})[_0x7e5e[30]](function(_0x60f2x11){if(!_0x60f2x11){return _0x60f2x6[_0x7e5e[33]](404)};return _0x60f2x6[_0x7e5e[28]](_0x60f2x11);})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})};exports[_0x7e5e[37]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemail[_0x7e5e[36]]({where:{uniqueid:_0x60f2x5[_0x7e5e[35]][_0x7e5e[34]]}})[_0x7e5e[30]](function(_0x60f2x11){VoiceVoicemailMessages[_0x7e5e[39]]({where:{mailboxcontext:_0x60f2x11[_0x7e5e[38]],mailboxuser:_0x60f2x11[_0x7e5e[7]]}})[_0x7e5e[30]](function(_0x60f2x12){return _0x60f2x6[_0x7e5e[29]](200)[_0x7e5e[28]](_0x60f2x12)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})};exports[_0x7e5e[40]]=function(_0x60f2x5,_0x60f2x6){console[_0x7e5e[42]](_0x60f2x5[_0x7e5e[41]]);VoiceVoicemail[_0x7e5e[39]]({where:{mailbox:_0x60f2x5[_0x7e5e[41]][_0x7e5e[7]],context:_0x60f2x5[_0x7e5e[41]][_0x7e5e[38]]}})[_0x7e5e[30]](function(_0x60f2x13){if(!_0x60f2x13){return _0x60f2x6[_0x7e5e[33]](404)};return _0x60f2x6[_0x7e5e[28]](_0x60f2x13);})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)});};exports[_0x7e5e[43]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemail[_0x7e5e[39]]({where:{mailbox:_0x60f2x5[_0x7e5e[41]][_0x7e5e[7]],context:_0x60f2x5[_0x7e5e[41]][_0x7e5e[38]]}})[_0x7e5e[30]](function(_0x60f2x13){if(!_0x60f2x13){return _0x60f2x6[_0x7e5e[33]](404)};if(_0x60f2x13[_0x7e5e[44]]>0){return _0x60f2x6[_0x7e5e[29]](500)[_0x7e5e[28]]({message:_0x7e5e[45]})};VoiceVoicemail[_0x7e5e[43]](_0x60f2x5[_0x7e5e[41]])[_0x7e5e[30]](function(_0x60f2x11){return _0x60f2x6[_0x7e5e[29]](201)[_0x7e5e[28]](_0x60f2x11)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)});})};exports[_0x7e5e[46]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemail[_0x7e5e[39]]({where:{mailbox:_0x60f2x5[_0x7e5e[41]][_0x7e5e[7]],context:_0x60f2x5[_0x7e5e[41]][_0x7e5e[38]],uniqueid:{$ne:_0x60f2x5[_0x7e5e[41]][_0x7e5e[34]]}}})[_0x7e5e[30]](function(_0x60f2x13){if(!_0x60f2x13){return _0x60f2x6[_0x7e5e[33]](404)};if(_0x60f2x13[_0x7e5e[44]]>0){return _0x60f2x6[_0x7e5e[29]](500)[_0x7e5e[28]]({message:_0x7e5e[45]})};if(_0x60f2x5[_0x7e5e[41]][_0x7e5e[34]]){delete _0x60f2x5[_0x7e5e[41]][_0x7e5e[34]]};VoiceVoicemail[_0x7e5e[36]]({where:{uniqueid:_0x60f2x5[_0x7e5e[35]][_0x7e5e[34]]}})[_0x7e5e[30]](function(_0x60f2x11){if(!_0x60f2x11){return _0x60f2x6[_0x7e5e[33]](404)};var _0x60f2x14=_[_0x7e5e[47]](_0x60f2x11,_0x60f2x5[_0x7e5e[41]]);_0x60f2x14[_0x7e5e[48]]()[_0x7e5e[30]](function(){return _0x60f2x6[_0x7e5e[29]](200)[_0x7e5e[28]](_0x60f2x11)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)});})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)});})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})};exports[_0x7e5e[49]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemail[_0x7e5e[36]]({where:{uniqueid:_0x60f2x5[_0x7e5e[35]][_0x7e5e[34]]}})[_0x7e5e[30]](function(_0x60f2x11){if(!_0x60f2x11){return _0x60f2x6[_0x7e5e[33]](404)};_0x60f2x11[_0x7e5e[49]]()[_0x7e5e[30]](function(){return _0x60f2x6[_0x7e5e[33]](204)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)});})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})};exports[_0x7e5e[50]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemail[_0x7e5e[49]]({where:{uniqueid:_0x60f2x5[_0x7e5e[11]][_0x7e5e[34]]},individualHooks:true})[_0x7e5e[30]](function(){return _0x60f2x6[_0x7e5e[33]](204)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})};exports[_0x7e5e[51]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemailMessages[_0x7e5e[54]](_0x60f2x5[_0x7e5e[35]][_0x7e5e[53]])[_0x7e5e[30]](function(_0x60f2x15){if(!_0x60f2x15){return _0x60f2x6[_0x7e5e[33]](404)};_0x60f2x15[_0x7e5e[52]]=null;_0x60f2x15[_0x7e5e[49]]()[_0x7e5e[30]](function(){return _0x60f2x6[_0x7e5e[33]](204)})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)});})[_0x7e5e[27]](function(_0x60f2xf){return handleError(_0x60f2x6,_0x60f2xf)})};exports[_0x7e5e[55]]=function(_0x60f2x5,_0x60f2x6){VoiceVoicemailMessages[_0x7e5e[54]](_0x60f2x5[_0x7e5e[35]][_0x7e5e[53]])[_0x7e5e[30]](function(_0x60f2x16){if(!_0x60f2x16){return _0x60f2x6[_0x7e5e[33]](404)};var _0x60f2x17=_0x60f2x16[_0x7e5e[56]]+_0x7e5e[57];_0x60f2x6[_0x7e5e[61]](200,_0x7e5e[58],{"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x7e5e[59],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E":_0x7e5e[60]+_0x60f2x17,"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x4C\x65\x6E\x67\x74\x68":_0x60f2x16[_0x7e5e[52]][_0x7e5e[44]]});var _0x60f2x18= new stream.PassThrough();_0x60f2x18[_0x7e5e[62]]( new Buffer(_0x60f2x16[_0x7e5e[52]]));_0x60f2x18[_0x7e5e[63]](_0x60f2x6);})};function handleError(_0x60f2x6,_0x60f2xf){return _0x60f2x6[_0x7e5e[29]](500)[_0x7e5e[28]](_0x60f2xf)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var VoiceVoicemail = require('../../models').VoiceVoicemail;
+var VoiceVoicemailMessages = require('../../models').VoiceVoicemailMessages;
+var stream = require('stream');
+
+// Get list of voice_voicemails
+exports.index = function(req, res) {
+
+  var attributes = ['mailbox', 'fullname', 'email'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+
+  VoiceVoicemail
+    .findAndCountAll(query)
+    .then(function(voice_voicemails) {
+      return res.status(200).send(voice_voicemails);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single voice_voicemail
+exports.show = function(req, res) {
+  VoiceVoicemail
+    .find({
+      where: {
+        uniqueid: req.params.uniqueid
+      }
+    })
+    .then(function(voice_voicemail) {
+      if (!voice_voicemail) {
+        return res.sendStatus(404);
+      }
+      return res.send(voice_voicemail);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getMessages = function(req, res) {
+  VoiceVoicemail
+    .find({
+      where: {
+        uniqueid: req.params.uniqueid
+      }
+    })
+    .then(function(voice_voicemail) {
+      VoiceVoicemailMessages
+        .findAll({
+          where: {
+            mailboxcontext: voice_voicemail.context,
+            mailboxuser: voice_voicemail.mailbox
+          }
+        })
+        .then(function(voicemailMessages) {
+          return res.status(200).send(voicemailMessages);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// validate mailbox uniqueness
+exports.mailboxValidation = function(req, res) {
+  console.log(req.body);
+  VoiceVoicemail
+    .findAll({
+      where: {
+        mailbox: req.body.mailbox,
+        context: req.body.context
+      }
+    })
+    .then(function(voicemails) {
+      if (!voicemails) {
+        return res.sendStatus(404);
+      }
+      return res.send(voicemails);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Creates a new voice_voicemail in the DB.
+exports.create = function(req, res) {
+  VoiceVoicemail
+    .findAll({
+      where: {
+        mailbox: req.body.mailbox,
+        context: req.body.context
+      }
+    })
+    .then(function(voicemails) {
+      if (!voicemails) {
+        return res.sendStatus(404);
+      }
+      if (voicemails.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_MAILBOX'
+        })
+      }
+      VoiceVoicemail
+        .create(req.body)
+        .then(function(voice_voicemail) {
+          return res.status(201).send(voice_voicemail);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+};
+
+// Updates an existing voice_voicemail in the DB.
+exports.update = function(req, res) {
+  VoiceVoicemail
+    .findAll({
+      where: {
+        mailbox: req.body.mailbox,
+        context: req.body.context,
+        uniqueid: {
+          $ne: req.body.uniqueid
+        }
+      }
+    })
+    .then(function(voicemails) {
+      if (!voicemails) {
+        return res.sendStatus(404);
+      }
+      if (voicemails.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_MAILBOX'
+        })
+      }
+      if (req.body.uniqueid) {
+        delete req.body.uniqueid;
+      }
+      VoiceVoicemail
+        .find({
+          where: {
+            uniqueid: req.params.uniqueid
+          }
+        })
+        .then(function(voice_voicemail) {
+          if (!voice_voicemail) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(voice_voicemail, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(voice_voicemail);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+
+};
+
+// Deletes a voice_voicemail from the DB.
+exports.destroy = function(req, res) {
+  VoiceVoicemail
+    .find({
+      where: {
+        uniqueid: req.params.uniqueid
+      }
+    })
+    .then(function(voice_voicemail) {
+      if (!voice_voicemail) {
+        return res.sendStatus(404);
+      }
+      voice_voicemail.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a voice_voicemail from the DB.
+exports.bulkDestroy = function(req, res) {
+  VoiceVoicemail
+    .destroy({
+      where: {
+        uniqueid: req.query.uniqueid
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a voice_voicemail message from the DB.
+exports.destroyMessage = function(req, res) {
+  VoiceVoicemailMessages
+    .findById(req.params.id)
+    .then(function(voicemailMessage) {
+      if (!voicemailMessage) {
+        return res.sendStatus(404);
+      }
+      voicemailMessage.recording = null;
+      voicemailMessage.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.downloadMessage = function(req, res) {
+  VoiceVoicemailMessages
+    .findById(req.params.id)
+    .then(function(message) {
+      if (!message) {
+        return res.sendStatus(404);
+      }
+      var filename = message.msg_id + '.wav';
+      res.writeHead(200, "OK", {
+        "Content-Type": "audio/wav",
+        "Content-Disposition": "attachment; filename=" + filename,
+        "Content-Length": message.recording.length
+      });
+      var bufferStream = new stream.PassThrough();
+      bufferStream.end(new Buffer(message.recording));
+      bufferStream.pipe(res)
+    })
+};
+
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 0e0778d..41e7a38 100644 (file)
@@ -1 +1,39 @@
-var _0x8cd9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x3A\x73\x61\x76\x65","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8cd9[0];var VoiceVoicemail=require(_0x8cd9[2])[_0x8cd9[1]];var VoiceVoicemailMessages=require(_0x8cd9[2])[_0x8cd9[3]];exports[_0x8cd9[4]]=function(_0x99f9x3){VoiceVoicemail[_0x8cd9[5]](function(_0x99f9x4){onSave(_0x99f9x3,_0x99f9x4)});VoiceVoicemail[_0x8cd9[6]](function(_0x99f9x4){onRemove(_0x99f9x3,_0x99f9x4)});VoiceVoicemailMessages[_0x8cd9[5]](function(_0x99f9x4){onMessageSave(_0x99f9x3,_0x99f9x4)});VoiceVoicemailMessages[_0x8cd9[6]](function(_0x99f9x4){onMessageRemove(_0x99f9x3,_0x99f9x4)});};function onSave(_0x99f9x3,_0x99f9x4,_0x99f9x6){_0x99f9x3[_0x8cd9[8]](_0x8cd9[7],_0x99f9x4)}function onRemove(_0x99f9x3,_0x99f9x4,_0x99f9x6){_0x99f9x3[_0x8cd9[8]](_0x8cd9[9],_0x99f9x4)}function onMessageSave(_0x99f9x3,_0x99f9x4,_0x99f9x6){_0x99f9x3[_0x8cd9[8]](_0x8cd9[10],_0x99f9x4)}function onMessageRemove(_0x99f9x3,_0x99f9x4,_0x99f9x6){_0x99f9x3[_0x8cd9[8]](_0x8cd9[11],_0x99f9x4)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var VoiceVoicemail = require('../../models').VoiceVoicemail;
+var VoiceVoicemailMessages = require('../../models').VoiceVoicemailMessages;
+
+exports.register = function(socket) {
+  VoiceVoicemail.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  VoiceVoicemail.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+  VoiceVoicemailMessages.afterCreate(function(doc) {
+    onMessageSave(socket, doc);
+  });
+  VoiceVoicemailMessages.afterDestroy(function(doc) {
+    onMessageRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('voice_voicemail:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('voice_voicemail:remove', doc);
+}
+
+function onMessageSave(socket, doc, cb) {
+  socket.emit('voice_voicemail_messages:save', doc);
+}
+
+function onMessageRemove(socket, doc, cb) {
+  socket.emit('voice_voicemail_messages:remove', doc);
+}
index 57d7b65..5785825 100644 (file)
@@ -1 +1,20 @@
-var _0xfa23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x67\x65\x74"];_0xfa23[0];var should=require(_0xfa23[1]);var app=require(_0xfa23[2]);var request=require(_0xfa23[3]);describe(_0xfa23[4],function(){it(_0xfa23[5],function(_0x11b8x4){request(app)[_0xfa23[13]](_0xfa23[12])[_0xfa23[11]](200)[_0xfa23[11]](_0xfa23[10],/json/)[_0xfa23[9]](function(_0x11b8x5,_0x11b8x6){if(_0x11b8x5){return _0x11b8x4(_0x11b8x5)};_0x11b8x6[_0xfa23[8]][_0xfa23[1]][_0xfa23[7]][_0xfa23[6]](Array);_0x11b8x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/voice/voicemails', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/voice/voicemails')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 30f6434..374e711 100644 (file)
@@ -1 +1,19 @@
-var _0xaa14=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x77\x69\x64\x67\x65\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x6F\x75\x6E\x74\x65\x72","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x63\x6F\x75\x6E\x74\x65\x72","\x67\x65\x74","\x2F\x74\x61\x62\x6C\x65","\x74\x61\x62\x6C\x65","\x2F\x70\x69\x65\x63\x68\x61\x72\x74","\x70\x69\x65\x63\x68\x61\x72\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xaa14[0];var express=require(_0xaa14[1]);var controller=require(_0xaa14[2]);var auth=require(_0xaa14[3]);var router=express.Router();router[_0xaa14[7]](_0xaa14[4],auth[_0xaa14[5]](),controller[_0xaa14[6]]);router[_0xaa14[7]](_0xaa14[8],auth[_0xaa14[5]](),controller[_0xaa14[9]]);router[_0xaa14[7]](_0xaa14[10],auth[_0xaa14[5]](),controller[_0xaa14[11]]);module[_0xaa14[12]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./widget.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+// router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/counter', auth.isAuthenticated(), controller.counter);
+router.get('/table', auth.isAuthenticated(), controller.table);
+router.get('/piechart', auth.isAuthenticated(), controller.piechart);
+// router.get('/:id', auth.isAuthenticated(), controller.show);
+// router.post('/', auth.isAuthenticated(), controller.create);
+// router.put('/:id', auth.isAuthenticated(), controller.update);
+// router.patch('/:id', auth.isAuthenticated(), controller.update);
+// router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index 053537d..f9bc793 100644 (file)
@@ -1 +1,181 @@
-var _0x4165=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x72\x65\x70\x6F\x72\x74\x5F\x25\x73","\x74\x61\x62\x6C\x65","\x71\x75\x65\x72\x79","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x61\x73\x20\x63\x6F\x75\x6E\x74\x20\x46\x52\x4F\x4D\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x25\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x66\x69\x65\x6C\x64\x73","\x69\x73\x41\x72\x72\x61\x79","\x70\x61\x72\x73\x65","\x63\x6F\x6C\x75\x6D\x6E","\x61\x6C\x69\x61\x73","\x20\x41\x53\x20\x22","\x22","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x53\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x2C","\x6A\x6F\x69\x6E","\x2A","\x53\x45\x4C\x45\x43\x54\x20\x25\x73\x20\x46\x52\x4F\x4D\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x25\x73","\x70\x69\x65\x63\x68\x61\x72\x74","","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x20\x57\x48\x45\x52\x45\x20\x25\x73","\x53\x45\x4C\x45\x43\x54\x20\x25\x73\x20\x46\x52\x4F\x4D\x20\x25\x73\x25\x73"];_0x4165[0];var _=require(_0x4165[1]);var util=require(_0x4165[2]);var sequelize=require(_0x4165[4])[_0x4165[3]];exports[_0x4165[5]]=function(_0xefc0x4,_0xefc0x5){var _0xefc0x6=util[_0x4165[9]](_0x4165[6],_0xefc0x4[_0x4165[8]][_0x4165[7]]);sequelize[_0x4165[8]](util[_0x4165[9]](_0x4165[14],_0xefc0x6,decodeURIComponent(_0xefc0x4[_0x4165[8]][_0x4165[15]])),{type:sequelize[_0x4165[17]][_0x4165[16]]})[_0x4165[13]](function(_0xefc0x8){return _0xefc0x5[_0x4165[12]](200)[_0x4165[11]](_0xefc0x8)})[_0x4165[10]](function(_0xefc0x7){return handleError(_0xefc0x5,_0xefc0x7)});};exports[_0x4165[7]]=function(_0xefc0x4,_0xefc0x5){var _0xefc0x9=[];var _0xefc0xa;if(_0xefc0x4[_0x4165[8]][_0x4165[18]]){if(_[_0x4165[19]](_0xefc0x4[_0x4165[8]][_0x4165[18]])){_0xefc0x4[_0x4165[8]][_0x4165[18]][_0x4165[26]](function(_0xefc0xb){_0xefc0xa=JSON[_0x4165[20]](_0xefc0xb);if(_0xefc0xa[_0x4165[21]]&&_0xefc0xa[_0x4165[22]]){_0xefc0x9[_0x4165[25]](_0xefc0xa[_0x4165[21]]+_0x4165[23]+_0xefc0xa[_0x4165[22]]+_0x4165[24])};})}else {if(_[_0x4165[27]](_0xefc0x4[_0x4165[8]][_0x4165[18]])){_0xefc0xa=JSON[_0x4165[20]](_0xefc0x4[_0x4165[8]][_0x4165[18]]);if(_0xefc0xa[_0x4165[21]]&&_0xefc0xa[_0x4165[22]]){_0xefc0x9[_0x4165[25]](_0xefc0xa[_0x4165[21]]+_0x4165[23]+_0xefc0xa[_0x4165[22]]+_0x4165[24])};}}};var _0xefc0xc=_0xefc0x9[_0x4165[28]]?_0xefc0x9[_0x4165[30]](_0x4165[29]):_0x4165[31];var _0xefc0x6=util[_0x4165[9]](_0x4165[6],_0xefc0x4[_0x4165[8]][_0x4165[7]]);sequelize[_0x4165[8]](util[_0x4165[9]](_0x4165[32],_0xefc0xc,_0xefc0x6,decodeURIComponent(_0xefc0x4[_0x4165[8]][_0x4165[15]])),{type:sequelize[_0x4165[17]][_0x4165[16]]})[_0x4165[13]](function(_0xefc0x8){return _0xefc0x5[_0x4165[12]](200)[_0x4165[11]](_0xefc0x8)})[_0x4165[10]](function(_0xefc0x7){return handleError(_0xefc0x5,_0xefc0x7)});};exports[_0x4165[33]]=function(_0xefc0x4,_0xefc0x5){var _0xefc0x9=[];var _0xefc0xa;if(_0xefc0x4[_0x4165[8]][_0x4165[18]]){if(_[_0x4165[19]](_0xefc0x4[_0x4165[8]][_0x4165[18]])){_0xefc0x4[_0x4165[8]][_0x4165[18]][_0x4165[26]](function(_0xefc0xb){_0xefc0xa=JSON[_0x4165[20]](_0xefc0xb);if(_0xefc0xa[_0x4165[21]]&&_0xefc0xa[_0x4165[22]]){_0xefc0x9[_0x4165[25]](_0xefc0xa[_0x4165[21]]+_0x4165[23]+_0xefc0xa[_0x4165[22]]+_0x4165[24])};})}else {if(_[_0x4165[27]](_0xefc0x4[_0x4165[8]][_0x4165[18]])){_0xefc0xa=JSON[_0x4165[20]](_0xefc0x4[_0x4165[8]][_0x4165[18]]);if(_0xefc0xa[_0x4165[21]]&&_0xefc0xa[_0x4165[22]]){_0xefc0x9[_0x4165[25]](_0xefc0xa[_0x4165[21]]+_0x4165[23]+_0xefc0xa[_0x4165[22]]+_0x4165[24])};}}};var _0xefc0xc=_0xefc0x9[_0x4165[28]]?_0xefc0x9[_0x4165[30]](_0x4165[29]):_0x4165[31];var _0xefc0x6=util[_0x4165[9]](_0x4165[6],_0xefc0x4[_0x4165[8]][_0x4165[7]]);var _0xefc0xd=_0x4165[34];if(_0xefc0x4[_0x4165[8]][_0x4165[15]]!==_0x4165[35]){_0xefc0xd=util[_0x4165[9]](_0x4165[36],decodeURIComponent(_0xefc0x4[_0x4165[8]][_0x4165[15]]))};sequelize[_0x4165[8]](util[_0x4165[9]](_0x4165[37],_0xefc0xc,_0xefc0x6,_0xefc0xd),{type:sequelize[_0x4165[17]][_0x4165[16]]})[_0x4165[13]](function(_0xefc0x8){return _0xefc0x5[_0x4165[12]](200)[_0x4165[11]](_0xefc0x8)})[_0x4165[10]](function(_0xefc0x7){return handleError(_0xefc0x5,_0xefc0x7)});};function handleError(_0xefc0x5,_0xefc0x7){return _0xefc0x5[_0x4165[12]](500)[_0x4165[11]](_0xefc0x7)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var sequelize = require('../../models').sequelize;
+
+// var ReportAgent = require('../../models').ReportAgent;
+// var ReportCall = require('../../models').ReportCall;
+// var ReportDial = require('../../models').ReportDial;
+// var ReportMember = require('../../models').ReportMember;
+// var ReportQueue = require('../../models').ReportQueue;
+
+
+
+exports.counter = function(req, res) {
+  var table = util.format('report_%s', req.query.table);
+  sequelize.query(util.format("SELECT COUNT(*) as count FROM %s WHERE %s", table, decodeURIComponent(req.query.condition)), {
+      type: sequelize.QueryTypes.SELECT
+    })
+    .then(function(result) {
+      return res.status(200).send(result);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.table = function(req, res) {
+  var columns = [];
+  var elem;
+  if (req.query.fields) {
+    if (_.isArray(req.query.fields)) {
+      req.query.fields.forEach(function(element) {
+        elem = JSON.parse(element);
+        if (elem.column && elem.alias) {
+          columns.push(elem.column + ' AS "' + elem.alias + '"');
+        }
+      });
+    } else if (_.isString(req.query.fields)) {
+      elem = JSON.parse(req.query.fields);
+      if (elem.column && elem.alias) {
+        columns.push(elem.column + ' AS "' + elem.alias + '"');
+      }
+    }
+  }
+  var select = columns.length ? columns.join(',') : '*';
+  var table = util.format('report_%s', req.query.table);
+  sequelize.query(util.format("SELECT %s FROM %s WHERE %s", select, table, decodeURIComponent(req.query.condition)), {
+      type: sequelize.QueryTypes.SELECT
+    })
+    .then(function(result) {
+      return res.status(200).send(result);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.piechart = function(req, res) {
+  var columns = [];
+  var elem;
+  if (req.query.fields) {
+    if (_.isArray(req.query.fields)) {
+      req.query.fields.forEach(function(element) {
+        elem = JSON.parse(element);
+        if (elem.column && elem.alias) {
+          columns.push(elem.column + ' AS "' + elem.alias + '"');
+        }
+      });
+    } else if (_.isString(req.query.fields)) {
+      elem = JSON.parse(req.query.fields);
+      if (elem.column && elem.alias) {
+        columns.push(elem.column + ' AS "' + elem.alias + '"');
+      }
+    }
+  }
+  var select = columns.length ? columns.join(',') : '*';
+  var table = util.format('report_%s', req.query.table);
+  var where = '';
+  if (req.query.condition !== 'undefined') {
+    where = util.format(' WHERE %s', decodeURIComponent(req.query.condition));
+  }
+  sequelize.query(util.format("SELECT %s FROM %s%s", select, table, where), {
+      type: sequelize.QueryTypes.SELECT
+    })
+    .then(function(result) {
+      return res.status(200).send(result);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// // Get list of widgets
+// exports.index = function(req, res) {
+//   Widget
+//   .findAll()
+//   .then(function (widgets) {
+//     return res.status(200).send(widgets);
+//   })
+//   .catch(function(err) {
+//     return handleError(res, err);
+//   });
+// };
+//
+// // Get a single widget
+// exports.show = function(req, res) {
+//   Widget
+//   .findById(req.params.id)
+//   .then(function (widget) {
+//     if(!widget) { return res.sendStatus(404); }
+//     return res.send(widget);
+//   })
+//   .catch(function(err){
+//     return handleError(res, err);
+//   });
+// };
+//
+// // Creates a new widget in the DB.
+// exports.create = function(req, res) {
+//   Widget
+//   .create(req.body)
+//   .then(function(widget) {
+//     return res.status(201).send(widget);
+//   })
+//   .catch(function(err) {
+//     return handleError(res, err);
+//   });
+// };
+//
+// // Updates an existing widget in the DB.
+// exports.update = function(req, res) {
+//   if(req.body.id) { delete req.body.id; }
+//   Widget
+//   .find({
+//     where: {
+//       id: req.params.id
+//     }
+//   })
+//   .then(function (widget) {
+//     if(!widget) { return res.sendStatus(404); }
+//     var updated = _.merge(widget, req.body);
+//     updated.save()
+//     .then(function () {
+//       return res.status(200).send(widget);
+//     })
+//     .catch(function(err) {
+//       return handleError(res, err);
+//     });
+//   })
+//   .catch(function(err) {
+//     return handleError(res, err);
+//   });
+// };
+//
+// // Deletes a widget from the DB.
+// exports.destroy = function(req, res) {
+//   Widget
+//   .find({
+//     where: {
+//       id: req.params.id
+//     }
+//   })
+//   .then(function (widget) {
+//     if(!widget) { return res.sendStatus(404); }
+//     widget.destroy()
+//     .then(function() {
+//       return res.sendStatus(204);
+//     })
+//     .catch(function(err) {
+//       return handleError(res, err);
+//     });
+//   })
+//   .catch(function(err) {
+//     return handleError(res, err);
+//   });
+// };
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 7761ba3..94ea420 100644 (file)
@@ -1 +1,20 @@
-var _0x306a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74\x73","\x67\x65\x74"];_0x306a[0];var should=require(_0x306a[1]);var app=require(_0x306a[2]);var request=require(_0x306a[3]);describe(_0x306a[4],function(){it(_0x306a[5],function(_0x25d7x4){request(app)[_0x306a[13]](_0x306a[12])[_0x306a[11]](200)[_0x306a[11]](_0x306a[10],/json/)[_0x306a[9]](function(_0x25d7x5,_0x25d7x6){if(_0x25d7x5){return _0x25d7x4(_0x25d7x5)};_0x25d7x6[_0x306a[8]][_0x306a[1]][_0x306a[7]][_0x306a[6]](Array);_0x25d7x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/widgets', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/widgets')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index 4e9090c..aa25480 100644 (file)
@@ -1 +1,29 @@
-var _0x5a10=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x78\x63\x68\x61\x74\x74\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x6A\x71\x75\x65\x72\x79","\x67\x65\x74\x4A\x71\x75\x65\x72\x79\x4C\x69\x62\x72\x61\x72\x79","\x67\x65\x74","\x2F\x61\x73\x73\x65\x74\x73","\x67\x65\x74\x41\x73\x73\x65\x74\x73","\x2F\x73\x74\x61\x74\x75\x73","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x2F\x73\x69\x67\x6E\x75\x70","\x73\x69\x67\x6E\x75\x70\x43\x75\x73\x74\x6F\x6D\x65\x72","\x2F\x72\x65\x61\x64","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x2F\x73\x65\x6E\x64","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65","\x2F\x73\x69\x67\x6E\x6F\x75\x74","\x73\x69\x67\x6E\x6F\x75\x74\x43\x75\x73\x74\x6F\x6D\x65\x72","\x2F\x73\x75\x62\x6D\x69\x74","\x73\x75\x62\x6D\x69\x74\x45\x6E\x71\x75\x69\x72\x79","\x2F\x75\x6E\x73\x65\x72\x76\x65\x64","\x75\x6E\x73\x65\x72\x76\x65\x64\x43\x75\x73\x74\x6F\x6D\x65\x72","\x2F\x74\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x67\x65\x74\x54\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x2F\x3A\x69\x64","\x67\x65\x74\x4A\x73\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x2F\x3A\x69\x64\x2F\x73\x74\x79\x6C\x65\x73","\x67\x65\x74\x53\x74\x79\x6C\x65\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5a10[0];var express=require(_0x5a10[1]);var controller=require(_0x5a10[2]);var router=express.Router();router[_0x5a10[5]](_0x5a10[3],controller[_0x5a10[4]]);router[_0x5a10[5]](_0x5a10[6],controller[_0x5a10[7]]);router[_0x5a10[5]](_0x5a10[8],controller[_0x5a10[9]]);router[_0x5a10[5]](_0x5a10[10],controller[_0x5a10[11]]);router[_0x5a10[5]](_0x5a10[12],controller[_0x5a10[13]]);router[_0x5a10[5]](_0x5a10[14],controller[_0x5a10[15]]);router[_0x5a10[5]](_0x5a10[16],controller[_0x5a10[17]]);router[_0x5a10[5]](_0x5a10[18],controller[_0x5a10[19]]);router[_0x5a10[5]](_0x5a10[20],controller[_0x5a10[21]]);router[_0x5a10[5]](_0x5a10[22],controller[_0x5a10[23]]);router[_0x5a10[5]](_0x5a10[24],controller[_0x5a10[25]]);router[_0x5a10[5]](_0x5a10[26],controller[_0x5a10[27]]);router[_0x5a10[30]](_0x5a10[28],controller[_0x5a10[29]]);router[_0x5a10[32]](_0x5a10[24],controller[_0x5a10[31]]);router[_0x5a10[33]](_0x5a10[24],controller[_0x5a10[31]]);router[_0x5a10[35]](_0x5a10[24],controller[_0x5a10[34]]);module[_0x5a10[36]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./xchatty.controller');
+
+var router = express.Router();
+
+router.get('/jquery', controller.getJqueryLibrary);
+router.get('/assets', controller.getAssets);
+
+router.get('/status', controller.getStatus);
+router.get('/signup', controller.signupCustomer);
+router.get('/read', controller.getMessages);
+router.get('/send', controller.sendMessage);
+router.get('/signout', controller.signoutCustomer);
+router.get('/submit', controller.submitEnquiry);
+router.get('/unserved', controller.unservedCustomer);
+router.get('/transcript', controller.getTranscript);
+
+router.get('/:id', controller.getJsByWebsite);
+router.get('/:id/styles', controller.getStyleByWebsite);
+
+// router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 5605943..17a3330 100644 (file)
@@ -1 +1,566 @@
-var _0xbbc9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6D\x69\x6E","\x6D\x75\x73\x74\x61\x63\x68\x65","\x71\x75\x65\x72\x79\x73\x74\x72\x69\x6E\x67","\x70\x61\x74\x68","\x6D\x64\x35","\x66\x73","\x75\x61\x2D\x70\x61\x72\x73\x65\x72\x2D\x6A\x73","\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65\x2D\x70\x61\x72\x73\x65\x72","\x69\x70\x61\x64\x64\x72\x2E\x6A\x73","\x67\x65\x6F\x69\x70\x2D\x6C\x69\x74\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x58\x63\x68\x61\x74\x74\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x78\x63\x68\x61\x74\x74\x79","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x55\x73\x65\x72","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x4A\x73\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74","\x6E\x6F\x77","\x73\x65\x74","\x6A\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x72\x65\x6D\x6F\x74\x65","\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79\x2F","\x66\x61\x6C\x73\x65","\x74\x72\x75\x65","\x22\x22","\x6E\x75\x6C\x6C","\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79\x2F\x61\x73\x73\x65\x74\x73","\x61\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x5F\x73\x68\x61\x70\x65","\x68\x65\x61\x64\x65\x72\x5F\x6F\x6E\x6C\x69\x6E\x65","\x6F\x6E\x6C\x69\x6E\x65\x5F\x6D\x65\x73\x73\x61\x67\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65\x5F\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x65\x6D\x61\x69\x6C\x5F\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x73\x74\x61\x72\x74\x5F\x63\x68\x61\x74\x5F\x62\x75\x74\x74\x6F\x6E","\x6F\x66\x66\x6C\x69\x6E\x65\x5F\x6D\x65\x73\x73\x61\x67\x65","\x68\x65\x61\x64\x65\x72\x5F\x6F\x66\x66\x6C\x69\x6E\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x65\x6E\x71\x75\x69\x72\x79\x5F\x62\x75\x74\x74\x6F\x6E","\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x5F\x74\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x72\x65\x6E\x64\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x53\x74\x79\x6C\x65\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x74\x65\x78\x74\x2F\x63\x73\x73","\x63\x73\x73","\x63\x6F\x6C\x6F\x72","\x63\x6F\x6C\x6F\x72\x5F\x66\x6F\x63\x75\x73","\x63\x6F\x6C\x6F\x72\x5F\x62\x75\x74\x74\x6F\x6E","\x67\x65\x74\x41\x73\x73\x65\x74\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x78\x63\x68\x61\x74\x74\x79","\x61\x73\x73\x65\x74\x73","\x72\x65\x73\x6F\x75\x72\x63\x65","\x71\x75\x65\x72\x79","\x6A\x6F\x69\x6E","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x67\x65\x74\x4A\x71\x75\x65\x72\x79\x4C\x69\x62\x72\x61\x72\x79","\x6A\x71\x75\x65\x72\x79","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x73\x73\x69\x6F\x6E","\x6F\x70\x65\x6E\x5F\x73\x74\x61\x74\x65","\x64\x61\x74\x61","\x72\x6F\x6F\x6D\x5F\x69\x64","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","","\x65\x6D\x61\x69\x6C","\x61\x76\x61\x74\x61\x72","\x6C\x65\x6E\x67\x74\x68","\x76\x69\x73\x69\x74\x6F\x72\x5F\x69\x64","\x73\x69\x67\x6E\x65\x64\x5F\x75\x70","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x28","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x29","\x6F\x70\x65\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x67\x65\x6E\x74","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x6E\x61\x6D\x65","\x69\x73\x5F\x6E\x65\x77\x5F\x70\x61\x67\x65","\x77\x68\x65\x72\x65","\x6C\x61\x73\x74\x5F\x69\x64","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65","\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x6C\x6F\x67","\x6D\x65\x73\x73\x61\x67\x65","\x4D\x65\x73\x73\x61\x67\x65","\x63\x72\x65\x61\x74\x65","\x73\x69\x67\x6E\x6F\x75\x74\x43\x75\x73\x74\x6F\x6D\x65\x72","\x63\x6C\x6F\x73\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x69\x67\x6E\x75\x70\x43\x75\x73\x74\x6F\x6D\x65\x72","\x67\x65\x74\x52\x65\x73\x75\x6C\x74","\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74","\x68\x65\x61\x64\x65\x72\x73","\x73\x65\x74\x55\x41","\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65","\x70\x61\x72\x73\x65","\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x72\x65\x66\x65\x72\x65\x72","\x77\x65\x62\x63\x68\x61\x74","\x62\x72\x6F\x77\x73\x65\x72","\x20","\x76\x65\x72\x73\x69\x6F\x6E","\x65\x6E\x67\x69\x6E\x65","\x6F\x73","\x6D\x6F\x64\x65\x6C","\x64\x65\x76\x69\x63\x65","\x76\x65\x6E\x64\x6F\x72","\x74\x79\x70\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x62\x61\x73\x65\x36\x34","\x75\x6E\x73\x65\x72\x76\x65\x64\x43\x75\x73\x74\x6F\x6D\x65\x72","\x75\x6E\x73\x65\x72\x76\x65\x64","\x73\x75\x62\x6D\x69\x74\x45\x6E\x71\x75\x69\x72\x79","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x63\x6F\x6D\x6D\x69\x74","\x45\x6E\x71\x75\x69\x72\x79","\x77\x65\x62\x73\x69\x74\x65\x49\x64","\x65\x6E\x71\x75\x69\x72\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x54\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x72\x65\x70\x6C\x61\x63\x65","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x74\x65\x78\x74\x2F\x63\x73\x76","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xbbc9[0];var _=require(_0xbbc9[1]);var jsmin=require(_0xbbc9[2])[_0xbbc9[2]];var Mustache=require(_0xbbc9[3]);var querystring=require(_0xbbc9[4]);var path=require(_0xbbc9[5]);var md5=require(_0xbbc9[6]);var fs=require(_0xbbc9[7]);var UAParser=require(_0xbbc9[8]);var uaParser= new UAParser();var languageParser=require(_0xbbc9[9]);var ipaddr=require(_0xbbc9[10]);var geoip=require(_0xbbc9[11]);var csv=require(_0xbbc9[12]);var config=require(_0xbbc9[13]);var Xchatty=require(_0xbbc9[15])[_0xbbc9[14]];var xchatty_components=require(_0xbbc9[16]);var sequelize=require(_0xbbc9[15])[_0xbbc9[17]];var User=require(_0xbbc9[15])[_0xbbc9[18]];var Agent=require(_0xbbc9[15])[_0xbbc9[18]];var ChatRoom=require(_0xbbc9[15])[_0xbbc9[19]];var ChatEnquiry=require(_0xbbc9[15])[_0xbbc9[20]];var ChatVisitor=require(_0xbbc9[15])[_0xbbc9[21]];var ChatMessage=require(_0xbbc9[15])[_0xbbc9[22]];var ChatWebsite=require(_0xbbc9[15])[_0xbbc9[23]];var id=1;exports[_0xbbc9[24]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){Xchatty[_0xbbc9[29]]()[_0xbbc9[28]](function(_0xedfcx1e){return _0xedfcx1b[_0xbbc9[27]](200)[_0xbbc9[26]](_0xedfcx1e)})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)})};exports[_0xbbc9[30]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){ChatWebsite[_0xbbc9[57]](_0xedfcx1a[_0xbbc9[36]][_0xbbc9[35]])[_0xbbc9[28]](function(_0xedfcx1f){_0xedfcx1b[_0xbbc9[33]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xbbc9[31],"\x78\x2D\x74\x69\x6D\x65\x73\x74\x61\x6D\x70":Date[_0xbbc9[32]](),"\x78\x2D\x73\x65\x6E\x74":true});var _0xedfcx20=xchatty_components[_0xbbc9[34]];var _0xedfcx21={websiteId:_0xedfcx1a[_0xbbc9[36]][_0xbbc9[35]],rootPath:_0xedfcx1f[_0xbbc9[37]]+_0xbbc9[38],signedUp:_0xbbc9[39],windowFocused:_0xbbc9[39],isNewPage:_0xbbc9[40],processingSignUp:_0xbbc9[39],processingEnquiry:_0xbbc9[39],processingSend:_0xbbc9[39],visitorFullname:_0xbbc9[41],visitorAvatar:_0xbbc9[41],timerReadMessages:_0xbbc9[42],timerCheckStatus:_0xbbc9[42],isOnline:_0xbbc9[39],decayHistory:0,defaultTimeout:2000,isInitialStatusCheck:_0xbbc9[40],muteNotificationSoundOnce:_0xbbc9[39],assetBase:_0xedfcx1f[_0xbbc9[37]]+_0xbbc9[43],hasSessionSaf:_0xbbc9[39],restoreOpenState:_0xbbc9[39],animateHover:_0xedfcx1f[_0xbbc9[44]],hideEmail:_0xbbc9[39],hideOffline:_0xbbc9[39],headerShape:_0xedfcx1f[_0xbbc9[45]],HeaderOnline:_0xedfcx1f[_0xbbc9[46]],OnlineMessage:_0xedfcx1f[_0xbbc9[47]],UsernamePlaceholder:_0xedfcx1f[_0xbbc9[48]],EmailPlaceholder:_0xedfcx1f[_0xbbc9[49]],StartChatButtonText:_0xedfcx1f[_0xbbc9[50]],OfflineMessage:_0xedfcx1f[_0xbbc9[51]],HeaderOffline:_0xedfcx1f[_0xbbc9[52]],EnquiryMessagePlaceholder:_0xedfcx1f[_0xbbc9[53]],EnquiryButtonText:_0xedfcx1f[_0xbbc9[54]],downloadTranscript:_0xedfcx1f[_0xbbc9[55]]};_0xedfcx20=Mustache[_0xbbc9[56]](_0xedfcx20,_0xedfcx21);_0xedfcx1b[_0xbbc9[26]](_0xedfcx20);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})};exports[_0xbbc9[58]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){ChatWebsite[_0xbbc9[57]](_0xedfcx1a[_0xbbc9[36]][_0xbbc9[35]])[_0xbbc9[28]](function(_0xedfcx1f){_0xedfcx1b[_0xbbc9[33]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xbbc9[59],"\x78\x2D\x74\x69\x6D\x65\x73\x74\x61\x6D\x70":Date[_0xbbc9[32]](),"\x78\x2D\x73\x65\x6E\x74":true});var _0xedfcx22=xchatty_components[_0xbbc9[60]];var _0xedfcx23={assetBase:_0xedfcx1f[_0xbbc9[37]]+_0xbbc9[43],color:_0xedfcx1f[_0xbbc9[61]],colorFocus:_0xedfcx1f[_0xbbc9[62]],colorButton:_0xedfcx1f[_0xbbc9[63]]};_0xedfcx22=Mustache[_0xbbc9[56]](_0xedfcx22,_0xedfcx23);_0xedfcx1b[_0xbbc9[26]](_0xedfcx22);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})};exports[_0xbbc9[64]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){_0xedfcx1b[_0xbbc9[73]](path[_0xbbc9[72]](config[_0xbbc9[65]],_0xbbc9[66],_0xbbc9[67],_0xbbc9[68],_0xbbc9[69],_0xedfcx1a[_0xbbc9[71]][_0xbbc9[70]]))};exports[_0xbbc9[74]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){_0xedfcx1b[_0xbbc9[33]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xbbc9[31],"\x78\x2D\x74\x69\x6D\x65\x73\x74\x61\x6D\x70":Date[_0xbbc9[32]](),"\x78\x2D\x73\x65\x6E\x74":true});var _0xedfcx24=xchatty_components[_0xbbc9[75]];_0xedfcx1b[_0xbbc9[26]](_0xedfcx24);};exports[_0xbbc9[76]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){if(!_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]]){_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]]={}};Agent[_0xbbc9[29]]({where:{online:true,role:_0xbbc9[94]}})[_0xbbc9[28]](function(_0xedfcx25){if(_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[78]]){_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[78]]=_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[78]]===_0xbbc9[40]?true:false};var _0xedfcx26={success:true,has_session_saf:null,signed_up:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]]?true:false,fullname:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[81]]?_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[81]]:_0xbbc9[82],email:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[83]]?_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[83]]:_0xbbc9[82],avatar:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[84]]?_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[84]]:_0xbbc9[82],open_state:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[78]]||_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]]?true:false,online:_0xedfcx25[_0xbbc9[85]]?true:false};if(_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[86]]){ChatRoom[_0xbbc9[93]]({where:{ChatVisitorId:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[86]],status:_0xbbc9[92]}})[_0xbbc9[28]](function(_0xedfcx27){if(_0xedfcx27){_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]]=_0xedfcx27[_0xbbc9[35]];_0xedfcx26[_0xbbc9[87]]=true;}else {_0xedfcx26[_0xbbc9[87]]=false};_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]](_0xedfcx26)+_0xbbc9[91]);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})}else {_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]](_0xedfcx26)+_0xbbc9[91])};})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)});};exports[_0xbbc9[95]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){var _0xedfcx28={where:{ChatRoomId:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]]},include:[{model:User,attributes:[_0xbbc9[35],_0xbbc9[96],_0xbbc9[81],_0xbbc9[83]]},{model:ChatVisitor,attributes:[_0xbbc9[35],_0xbbc9[81],_0xbbc9[83]]}]};if(_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[97]]===_0xbbc9[39]){_0xedfcx28[_0xbbc9[98]][_0xbbc9[35]]={$gt:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[99]]}};ChatMessage[_0xbbc9[29]](_0xedfcx28)[_0xbbc9[28]](function(_0xedfcx29){var _0xedfcx2a={success:true,messages:_0xedfcx29,composing:false,composing_fullname:null};_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]](_0xedfcx2a)+_0xbbc9[91]);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)});};exports[_0xbbc9[100]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){var _0xedfcx28={where:{ChatRoomId:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]]},include:[{model:User,attributes:[_0xbbc9[35],_0xbbc9[96],_0xbbc9[81],_0xbbc9[83]]},{model:ChatVisitor,attributes:[_0xbbc9[35],_0xbbc9[81],_0xbbc9[83]]}]};if(_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[97]]===_0xbbc9[39]){_0xedfcx28[_0xbbc9[98]][_0xbbc9[35]]={$gt:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[99]]}};ChatMessage[_0xbbc9[105]]({body:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[104]][_0xbbc9[103]],ChatRoomId:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]],ChatVisitorId:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[86]]})[_0xbbc9[28]](function(_0xedfcx2b){console[_0xbbc9[102]](_0xbbc9[101],_0xedfcx2b);ChatMessage[_0xbbc9[29]](_0xedfcx28)[_0xbbc9[28]](function(_0xedfcx29){var _0xedfcx2a={errors:[],success:true,data:_0xedfcx2b,messages:_0xedfcx29};_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]](_0xedfcx2a)+_0xbbc9[91]);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)});})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)});};exports[_0xbbc9[106]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){ChatRoom[_0xbbc9[57]](_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]])[_0xbbc9[28]](function(_0xedfcx27){_0xedfcx27[_0xbbc9[108]]({status:_0xbbc9[107]})[_0xbbc9[28]](function(_0xedfcx27){var _0xedfcx2a={success:true,errors:[]};_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]]={};_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]](_0xedfcx2a)+_0xbbc9[91]);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})};exports[_0xbbc9[109]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){var _0xedfcx2c=uaParser[_0xbbc9[113]](_0xedfcx1a[_0xbbc9[112]][_0xbbc9[111]])[_0xbbc9[110]]();var _0xedfcx2d=languageParser[_0xbbc9[115]](_0xedfcx1a[_0xbbc9[112]][_0xbbc9[114]]);var _0xedfcx2e={fullname:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[116]][_0xbbc9[81]],email:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[116]][_0xbbc9[83]],remote_address:_0xedfcx1a[_0xbbc9[118]][_0xbbc9[117]],user_agent:_0xedfcx1a[_0xbbc9[112]][_0xbbc9[111]],visitor_language:_0xedfcx1a[_0xbbc9[112]][_0xbbc9[114]],referer:_0xedfcx1a[_0xbbc9[112]][_0xbbc9[119]],origin:_0xbbc9[120],browser:_0xedfcx2c[_0xbbc9[121]][_0xbbc9[96]]+_0xbbc9[122]+_0xedfcx2c[_0xbbc9[121]][_0xbbc9[123]],engine:_0xedfcx2c[_0xbbc9[124]][_0xbbc9[96]]+_0xbbc9[122]+_0xedfcx2c[_0xbbc9[124]][_0xbbc9[123]],os:_0xedfcx2c[_0xbbc9[125]][_0xbbc9[96]]+_0xbbc9[122]+_0xedfcx2c[_0xbbc9[125]][_0xbbc9[123]],device:_0xedfcx2c[_0xbbc9[127]][_0xbbc9[126]]?_0xedfcx2c[_0xbbc9[127]][_0xbbc9[126]]+_0xbbc9[122]+_0xedfcx2c[_0xbbc9[127]][_0xbbc9[128]]+_0xbbc9[122]+_0xedfcx2c[_0xbbc9[127]][_0xbbc9[129]]:null,ChatWebsiteId:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[130]]};return ChatVisitor[_0xbbc9[105]](_0xedfcx2e)[_0xbbc9[28]](function(_0xedfcx2f){_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[81]]=_0xedfcx2f[_0xbbc9[81]];_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[83]]=_0xedfcx2f[_0xbbc9[83]];_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[84]]=md5(_0xedfcx2f[_0xbbc9[83]]).toString(_0xbbc9[131]);_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[86]]=_0xedfcx2f[_0xbbc9[35]];var _0xedfcx2a={success:true,errors:[],chatVisitor:{id:_0xedfcx2f[_0xbbc9[35]]}};_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]](_0xedfcx2a)+_0xbbc9[91]);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)});};exports[_0xbbc9[132]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){ChatVisitor[_0xbbc9[57]](_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[86]])[_0xbbc9[28]](function(_0xedfcx2f){_0xedfcx2f[_0xbbc9[108]]({status:_0xbbc9[133]})[_0xbbc9[28]](function(){var _0xedfcx2a={success:true,errors:[]};_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]]={};_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]](_0xedfcx2a)+_0xbbc9[91]);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})};exports[_0xbbc9[134]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){var _0xedfcx30;var _0xedfcx31;return sequelize[_0xbbc9[140]]()[_0xbbc9[28]](function(_0xedfcx32){return ChatVisitor[_0xbbc9[105]]({fullname:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[137]][_0xbbc9[81]],email:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[137]][_0xbbc9[83]],remote_address:_0xedfcx1a[_0xbbc9[118]][_0xbbc9[117]],user_agent:_0xedfcx1a[_0xbbc9[112]][_0xbbc9[111]],visitor_language:_0xedfcx1a[_0xbbc9[112]][_0xbbc9[114]],referer:_0xedfcx1a[_0xbbc9[112]][_0xbbc9[119]],origin:_0xbbc9[139],status:_0xbbc9[133]},{transaction:_0xedfcx32})[_0xbbc9[28]](function(_0xedfcx2f){_0xedfcx30=_0xedfcx2f;return ChatEnquiry[_0xbbc9[105]]({username:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[137]][_0xbbc9[81]],email:_0xedfcx2f[_0xbbc9[83]],text:_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[137]][_0xbbc9[103]],ChatWebsiteId:parseInt(_0xedfcx1a[_0xbbc9[71]][_0xbbc9[79]][_0xbbc9[137]][_0xbbc9[138]],10),ChatVisitorId:_0xedfcx30[_0xbbc9[35]]},{include:[{all:true,include:[{all:true}]}],transaction:_0xedfcx32});})[_0xbbc9[28]](function(){_0xedfcx32[_0xbbc9[136]]();_0xedfcx1b[_0xbbc9[26]](_0xedfcx1a[_0xbbc9[71]][_0xbbc9[88]]+_0xbbc9[89]+JSON[_0xbbc9[90]]({success:true,errors:[]})+_0xbbc9[91]);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx32[_0xbbc9[135]]();_0xedfcx1c(_0xedfcx1d);})});};exports[_0xbbc9[141]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){if(_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]]&&_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[86]]&&_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]]){ChatMessage[_0xbbc9[29]]({where:{ChatRoomId:_0xedfcx1a[_0xbbc9[77]][_0xbbc9[68]][_0xbbc9[80]]}})[_0xbbc9[28]](function(_0xedfcx29){var _0xedfcx33=[];_0xedfcx29[_0xbbc9[146]](function(_0xedfcx2b){var _0xedfcx34={name:_0xedfcx2b[_0xbbc9[81]],text:_0xedfcx2b[_0xbbc9[143]][_0xbbc9[142]](/(\r\n|\n|\r)/gm,_0xbbc9[122]),date:_0xedfcx2b[_0xbbc9[144]]};_0xedfcx33[_0xbbc9[145]](_0xedfcx34);});var _0xedfcx35=csv(_0xedfcx33);_0xedfcx1b[_0xbbc9[129]](_0xbbc9[147])[_0xbbc9[27]](200)[_0xbbc9[26]](_0xedfcx35);})[_0xbbc9[25]](function(_0xedfcx1d){_0xedfcx1c(_0xedfcx1d)})}};exports[_0xbbc9[148]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){Xchatty[_0xbbc9[57]](_0xedfcx1a[_0xbbc9[36]][_0xbbc9[35]])[_0xbbc9[28]](function(_0xedfcx36){if(!_0xedfcx36){return _0xedfcx1b[_0xbbc9[149]](404)};return _0xedfcx1b[_0xbbc9[26]](_0xedfcx36);})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)})};exports[_0xbbc9[105]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){Xchatty[_0xbbc9[105]](_0xedfcx1a[_0xbbc9[143]])[_0xbbc9[28]](function(_0xedfcx36){return _0xedfcx1b[_0xbbc9[27]](201)[_0xbbc9[26]](_0xedfcx36)})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)})};exports[_0xbbc9[150]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){if(_0xedfcx1a[_0xbbc9[143]][_0xbbc9[35]]){delete _0xedfcx1a[_0xbbc9[143]][_0xbbc9[35]]};Xchatty[_0xbbc9[57]](_0xedfcx1a[_0xbbc9[36]][_0xbbc9[35]])[_0xbbc9[28]](function(_0xedfcx36){if(!_0xedfcx36){return _0xedfcx1b[_0xbbc9[149]](404)};var _0xedfcx37=_[_0xbbc9[151]](_0xedfcx36,_0xedfcx1a[_0xbbc9[143]]);_0xedfcx37[_0xbbc9[152]]()[_0xbbc9[28]](function(){return _0xedfcx1b[_0xbbc9[27]](200)[_0xbbc9[26]](_0xedfcx36)})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)});})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)});};exports[_0xbbc9[153]]=function(_0xedfcx1a,_0xedfcx1b,_0xedfcx1c){Xchatty[_0xbbc9[57]](_0xedfcx1a[_0xbbc9[36]][_0xbbc9[35]])[_0xbbc9[28]](function(_0xedfcx36){if(!_0xedfcx36){return _0xedfcx1b[_0xbbc9[149]](404)};_0xedfcx36[_0xbbc9[153]]()[_0xbbc9[28]](function(){return _0xedfcx1b[_0xbbc9[149]](204)})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)});})[_0xbbc9[25]](function(_0xedfcx1d){return _0xedfcx1c(_0xedfcx1d)})};
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var jsmin = require('jsmin').jsmin;
+var Mustache = require('mustache');
+var querystring = require('querystring');
+var path = require('path');
+var md5 = require('md5');
+var fs = require('fs');
+var UAParser = require('ua-parser-js');
+var uaParser = new UAParser();
+var languageParser = require('accept-language-parser');
+var ipaddr = require('ipaddr.js');
+var geoip = require('geoip-lite');
+var csv = require('to-csv')
+
+var config = require('../../config/environment');
+var Xchatty = require('../../models').Xchatty;
+var xchatty_components = require('../../components/xchatty');
+
+var sequelize = require('../../models').sequelize;
+var User = require('../../models').User;
+var Agent = require('../../models').User;
+var ChatRoom = require('../../models').ChatRoom;
+var ChatEnquiry = require('../../models').ChatEnquiry;
+var ChatVisitor = require('../../models').ChatVisitor;
+var ChatMessage = require('../../models').ChatMessage;
+var ChatWebsite = require('../../models').ChatWebsite;
+
+var id = 1;
+
+// var ip = addr.toIPv4Address().octets.join('.');
+
+// Get list of xchattys
+exports.index = function (req, res, next) {
+  Xchatty
+    .findAll()
+    .then(function (xchattys) {
+      return res.status(200).send(xchattys);
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+exports.getJsByWebsite = function (req, res, next) {
+
+  // TO DO: Find the configuration of the website and replace configuration in the file
+  ChatWebsite
+    .findById(req.params.id)
+    .then(function (chatWebsite) {
+      res.set({
+        'Content-Type': 'application/javascript',
+        'x-timestamp': Date.now(),
+        'x-sent': true
+      });
+
+      var js = xchatty_components.js;
+      /*jshint multistr: true */
+      var configJS = {
+        websiteId: req.params.id,
+        // rootPath: path.join(chatWebsite.remote, 'api', 'xchatty/'),
+        rootPath: chatWebsite.remote + '/api/xchatty/',
+        signedUp: 'false',
+        windowFocused: 'false',
+        isNewPage: 'true',
+        processingSignUp: 'false',
+        processingEnquiry: 'false',
+        processingSend: 'false',
+        visitorFullname: '""',
+        visitorAvatar: '""',
+        timerReadMessages: 'null',
+        timerCheckStatus: 'null',
+        isOnline: 'false',
+        decayHistory: 0,
+        defaultTimeout: 2000,
+        isInitialStatusCheck: 'true',
+        muteNotificationSoundOnce: 'false',
+        assetBase: chatWebsite.remote + '/api/xchatty/assets',
+        hasSessionSaf: 'false',
+        restoreOpenState: 'false',
+        animateHover: chatWebsite.animation,
+        hideEmail: 'false',
+        hideOffline: 'false',
+        headerShape: chatWebsite.header_shape,
+        HeaderOnline: chatWebsite.header_online,
+        OnlineMessage: chatWebsite.online_message,
+        UsernamePlaceholder: chatWebsite.username_placeholder,
+        EmailPlaceholder: chatWebsite.email_placeholder,
+        StartChatButtonText: chatWebsite.start_chat_button,
+        OfflineMessage: chatWebsite.offline_message,
+        HeaderOffline: chatWebsite.header_offline,
+        EnquiryMessagePlaceholder: chatWebsite.enquiry_message_placeholder,
+        EnquiryButtonText: chatWebsite.enquiry_button,
+        downloadTranscript: chatWebsite.download_transcript
+      };
+
+      js = Mustache.render(js, configJS);
+      res.send(js);
+
+    })
+    .catch(function (err) {
+      next(err);
+    });
+
+};
+
+exports.getStyleByWebsite = function (req, res, next) {
+
+  // TO DO: Find the configuration of the website and replace configuration in the file
+  ChatWebsite
+    .findById(req.params.id)
+    .then(function (chatWebsite) {
+
+      res.set({
+        'Content-Type': 'text/css',
+        'x-timestamp': Date.now(),
+        'x-sent': true
+      });
+
+      var css = xchatty_components.css;
+
+      var configCSS = {
+        // assetBase: path.join(chatWebsite.remote, 'api', 'xchatty',
+        //   'assets'),
+        assetBase: chatWebsite.remote + '/api/xchatty/assets',
+        color: chatWebsite.color,
+        colorFocus: chatWebsite.color_focus,
+        colorButton: chatWebsite.color_button
+      };
+
+      css = Mustache.render(css, configCSS);
+      res.send(css);
+    })
+    .catch(function (err) {
+      next(err);
+    });
+};
+
+exports.getAssets = function (req, res, next) {
+  res.download(path.join(config.root, 'server', 'components', 'xchatty', 'assets', req.query.resource));
+};
+
+exports.getJqueryLibrary = function (req, res, next) {
+
+  // TODO: Find the configuration of the website and replace configuration in the file
+  res.set({
+    'Content-Type': 'application/javascript',
+    'x-timestamp': Date.now(),
+    'x-sent': true
+  });
+
+  var jquery = xchatty_components.jquery;
+  res.send(jquery);
+
+};
+
+exports.getStatus = function (req, res, next) {
+
+  if (!req.session.xchatty) {
+    req.session.xchatty = {};
+  }
+  // Get all users (later agents) online in the interface
+  Agent
+    .findAll({
+      where: {
+        online: true,
+        role: 'agent'
+      }
+    })
+    .then(function (users) {
+
+      if (req.query.data.open_state)
+        req.session.xchatty.open_state = req.query.data.open_state === 'true' ? true : false;
+
+      var jsonResponse = {
+        success: true,
+        has_session_saf: null,
+        signed_up: req.session.xchatty.room_id ? true : false,
+        fullname: req.session.xchatty.fullname ? req.session.xchatty.fullname : '',
+        email: req.session.xchatty.email ? req.session.xchatty.email : '',
+        avatar: req.session.xchatty.avatar ? req.session.xchatty.avatar : '',
+        open_state: req.session.xchatty.open_state || req.session.xchatty.room_id ? true : false,
+        online: users.length ? true : false
+      };
+
+      if (req.session.xchatty.visitor_id) {
+        ChatRoom
+          .findOne({
+            where: {
+              ChatVisitorId: req.session.xchatty.visitor_id,
+              status: 'open'
+            }
+          })
+          .then(function (chatRoom) {
+            if (chatRoom) {
+              req.session.xchatty.room_id = chatRoom.id;
+              jsonResponse.signed_up = true;
+            } else {
+              jsonResponse.signed_up = false;
+            }
+
+            res.send(req.query.callback + '(' + JSON.stringify(jsonResponse) + ')');
+          })
+          .catch(function (err) {
+            next(err);
+          });
+      } else {
+        res.send(req.query.callback + '(' + JSON.stringify(jsonResponse) + ')');
+      }
+
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+exports.getMessages = function (req, res, next) {
+
+  /*jshint multistr: true */
+  var condition = {
+    where: {
+      ChatRoomId: req.session.xchatty.room_id
+    },
+    include: [{
+      model: User,
+      attributes: ['id', 'name', 'fullname', 'email']
+    }, {
+      model: ChatVisitor,
+      attributes: ['id', 'fullname', 'email']
+    }]
+  };
+
+  if (req.query.data.is_new_page === 'false') {
+    condition.where.id = {
+      $gt: req.query.data.last_id
+    };
+  }
+
+  ChatMessage
+    .findAll(condition)
+    .then(function (chatMessages) {
+      var json = {
+        success: true,
+        messages: chatMessages,
+        composing: false,
+        composing_fullname: null
+      };
+
+      res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
+    })
+    .catch(function (err) {
+      next(err);
+    });
+};
+
+exports.sendMessage = function (req, res, next) {
+
+  /*jshint multistr: true */
+  var condition = {
+    where: {
+      ChatRoomId: req.session.xchatty.room_id
+    },
+    include: [{
+      model: User,
+      attributes: ['id', 'name', 'fullname', 'email']
+    }, {
+      model: ChatVisitor,
+      attributes: ['id', 'fullname', 'email']
+    }]
+  };
+
+  if (req.query.data.is_new_page === 'false') {
+    condition.where.id = {
+      $gt: req.query.data.last_id
+    };
+  }
+
+  ChatMessage
+    .create({
+      body: req.query.data.Message.message,
+      ChatRoomId: req.session.xchatty.room_id,
+      ChatVisitorId: req.session.xchatty.visitor_id
+    })
+    .then(function (chatMessage) {
+      console.log('chatMessage', chatMessage);
+      ChatMessage
+        .findAll(condition)
+        .then(function (chatMessages) {
+          var json = {
+            errors: [],
+            success: true,
+            data: chatMessage,
+            messages: chatMessages
+          };
+
+          res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
+        })
+        .catch(function (err) {
+          next(err);
+        });
+    })
+    .catch(function (err) {
+      next(err);
+    });
+
+};
+
+exports.signoutCustomer = function (req, res, next) {
+
+  ChatRoom
+    .findById(req.session.xchatty.room_id)
+    .then(function (chatRoom) {
+      chatRoom.updateAttributes({
+          status: 'close'
+        })
+        .then(function (chatRoom) {
+          var json = {
+            success: true,
+            errors: []
+          };
+          req.session.xchatty = {};
+          res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
+        })
+        .catch(function (err) {
+          next(err);
+        })
+    })
+    .catch(function (err) {
+      next(err);
+    });
+};
+
+exports.signupCustomer = function (req, res, next) {
+  var ua = uaParser.setUA(req.headers['user-agent']).getResult();
+  var languages = languageParser.parse(req.headers['accept-language']);
+  // var addr = ipaddr.parse(req.connection.remoteAddress);
+
+  // var ipv4Addr = "151.0.175.186";
+  // var geo = geoip.lookup(ipv4Addr);
+
+  var body = {
+    fullname: req.query.data.Discussion.fullname,
+    email: req.query.data.Discussion.email,
+    // remote_address: addr,
+    remote_address: req.connection.remoteAddress,
+    user_agent: req.headers['user-agent'],
+    visitor_language: req.headers['accept-language'],
+    referer: req.headers.referer,
+    origin: 'webchat',
+    browser: ua.browser.name + ' ' + ua.browser.version,
+    engine: ua.engine.name + ' ' + ua.engine.version,
+    os: ua.os.name + ' ' + ua.os.version,
+    device: ua.device.model ? ua.device.model + ' ' + ua.device.vendor + ' ' + ua.device.type : null,
+    // country: geo.country,
+    // city: geo.city,
+    // region: geo.region,
+    // latitude: geo.ll.length ? geo.ll[0].toString() : null,
+    // longitude: geo.ll.length ? geo.ll[1].toString() : null,
+    ChatWebsiteId: req.query.chatWebsiteId
+  };
+
+  return ChatVisitor
+    .create(body)
+    .then(function (chatVisitor) {
+
+      req.session.xchatty.fullname = chatVisitor.fullname;
+      req.session.xchatty.email = chatVisitor.email;
+      req.session.xchatty.avatar = md5(chatVisitor.email).toString('base64');
+      req.session.xchatty.visitor_id = chatVisitor.id;
+
+      var json = {
+        success: true,
+        errors: [],
+        chatVisitor: {
+          id: chatVisitor.id
+        }
+      };
+
+      /*jshint multistr: true */
+      res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
+    })
+    .catch(function (err) {
+      next(err);
+    });
+};
+
+exports.unservedCustomer = function (req, res, next) {
+
+  ChatVisitor
+    .findById(req.session.xchatty.visitor_id)
+    .then(function (chatVisitor) {
+
+      chatVisitor.updateAttributes({
+          status: 'unserved'
+        }).then(function () {
+          var json = {
+            success: true,
+            errors: []
+          };
+          req.session.xchatty = {};
+          res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
+        })
+        .catch(function (err) {
+          next(err);
+        });
+    })
+    .catch(function (err) {
+      next(err);
+    });
+};
+
+exports.submitEnquiry = function (req, res, next) {
+
+  var _chatVisitor;
+  var _chatEnquiry;
+
+  return sequelize.transaction().then(function (t) {
+
+    return ChatVisitor
+      .create({
+        fullname: req.query.data.Enquiry.fullname,
+        email: req.query.data.Enquiry.email,
+        remote_address: req.connection.remoteAddress,
+        user_agent: req.headers['user-agent'],
+        visitor_language: req.headers['accept-language'],
+        referer: req.headers.referer,
+        origin: 'enquiry',
+        status: 'unserved'
+      }, {
+        transaction: t
+      })
+      .then(function (chatVisitor) {
+        _chatVisitor = chatVisitor;
+        return ChatEnquiry
+          .create({
+            username: req.query.data.Enquiry.fullname,
+            email: chatVisitor.email,
+            text: req.query.data.Enquiry.message,
+            ChatWebsiteId: parseInt(req.query.data.Enquiry.websiteId, 10),
+            ChatVisitorId: _chatVisitor.id
+          }, {
+            include: [{
+              all: true,
+              include: [{
+                all: true
+              }]
+            }],
+            transaction: t
+          });
+      })
+      .then(function () {
+        t.commit();
+        res.send(req.query.callback + '(' + JSON.stringify({
+          success: true,
+          errors: []
+        }) + ')');
+      })
+      .catch(function (err) {
+        t.rollback();
+        next(err);
+      });
+  });
+};
+
+exports.getTranscript = function (req, res, next) {
+  if (req.session.xchatty && req.session.xchatty.visitor_id && req.session.xchatty
+    .room_id) {
+    ChatMessage
+      .findAll({
+        where: {
+          ChatRoomId: req.session.xchatty.room_id
+        }
+      })
+      .then(function (chatMessages) {
+
+        var chatMessageForCSV = [];
+        chatMessages.forEach(function (chatMessage) {
+          var chatMsg = {
+            name: chatMessage.fullname,
+            text: chatMessage.body.replace(/(\r\n|\n|\r)/gm, " "),
+            date: chatMessage.createdAt
+          };
+          chatMessageForCSV.push(chatMsg);
+        });
+        var csv_transcript = csv(chatMessageForCSV);
+        res.type('text/csv').status(200).send(csv_transcript);
+      })
+      .catch(function (err) {
+        next(err);
+      });
+  }
+};
+
+// Get a single xchatty
+exports.show = function (req, res, next) {
+  Xchatty
+    .findById(req.params.id)
+    .then(function (xchatty) {
+      if (!xchatty) {
+        return res.sendStatus(404);
+      }
+      return res.send(xchatty);
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+// Creates a new xchatty in the DB.
+exports.create = function (req, res, next) {
+  Xchatty
+    .create(req.body)
+    .then(function (xchatty) {
+      return res.status(201).send(xchatty);
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+// Updates an existing xchatty in the DB.
+exports.update = function (req, res, next) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Xchatty
+    .findById(req.params.id)
+    .then(function (xchatty) {
+      if (!xchatty) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(xchatty, req.body);
+      updated.save()
+        .then(function () {
+          return res.status(200).send(xchatty);
+        })
+        .catch(function (err) {
+          return next(err);
+        });
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
+
+// Deletes a xchatty from the DB.
+exports.destroy = function (req, res, next) {
+  Xchatty
+    .findById(req.params.id)
+    .then(function (xchatty) {
+      if (!xchatty) {
+        return res.sendStatus(404);
+      }
+      xchatty.destroy()
+        .then(function () {
+          return res.sendStatus(204);
+        })
+        .catch(function (err) {
+          return next(err);
+        });
+    })
+    .catch(function (err) {
+      return next(err);
+    });
+};
index ba5be29..b8ec557 100644 (file)
@@ -1 +1,24 @@
-var _0xade2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x58\x63\x68\x61\x74\x74\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x78\x63\x68\x61\x74\x74\x79\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x78\x63\x68\x61\x74\x74\x79\x3A\x72\x65\x6D\x6F\x76\x65"];_0xade2[0];var xchatty=require(_0xade2[2])[_0xade2[1]];exports[_0xade2[3]]=function(_0x3724x2){};function onSave(_0x3724x2,_0x3724x4,_0x3724x5){_0x3724x2[_0xade2[5]](_0xade2[4],_0x3724x4)}function onRemove(_0x3724x2,_0x3724x4,_0x3724x5){_0x3724x2[_0xade2[5]](_0xade2[6],_0x3724x4)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var xchatty = require('../../models').Xchatty;
+
+exports.register = function(socket) {
+  // xchatty.afterCreate(function (doc) {
+  //   onSave(socket, doc);
+  // });
+  // xchatty.afterDestroy(function (doc) {
+  //   onRemove(socket, doc);
+  // });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('xchatty:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('xchatty:remove', doc);
+}
index 30e29d4..d64cd4a 100644 (file)
@@ -1 +1,20 @@
-var _0x53d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x7A\x65\x6E\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x53d4[0];var express=require(_0x53d4[1]);var auth=require(_0x53d4[2]);var controller=require(_0x53d4[3]);var router=express.Router();router[_0x53d4[7]](_0x53d4[4],auth[_0x53d4[5]](),controller[_0x53d4[6]]);router[_0x53d4[7]](_0x53d4[8],auth[_0x53d4[5]](),controller[_0x53d4[9]]);router[_0x53d4[7]](_0x53d4[10],auth[_0x53d4[5]](),controller[_0x53d4[11]]);router[_0x53d4[7]](_0x53d4[12],auth[_0x53d4[5]](),controller[_0x53d4[13]]);router[_0x53d4[16]](_0x53d4[14],auth[_0x53d4[5]](),controller[_0x53d4[15]]);router[_0x53d4[16]](_0x53d4[4],auth[_0x53d4[5]](),controller[_0x53d4[17]]);router[_0x53d4[19]](_0x53d4[8],auth[_0x53d4[5]](),controller[_0x53d4[18]]);router[_0x53d4[20]](_0x53d4[8],auth[_0x53d4[5]](),controller[_0x53d4[18]]);router[_0x53d4[22]](_0x53d4[4],auth[_0x53d4[5]](),controller[_0x53d4[21]]);router[_0x53d4[22]](_0x53d4[8],auth[_0x53d4[5]](),controller[_0x53d4[23]]);module[_0x53d4[24]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./zendesk_account.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
+router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
+router.post('/validate/:field', auth.isAuthenticated(), controller.zendeskValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index e8c873f..2cac790 100644 (file)
@@ -1 +1,253 @@
-var _0x1f39=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6E\x6F\x64\x65\x2D\x7A\x65\x6E\x64\x65\x73\x6B","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x7A\x65\x6E\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x63\x72\x65\x61\x74\x65\x43\x6C\x69\x65\x6E\x74","\x65\x72\x72\x6F\x72","\x76\x65\x72\x69\x66\x69\x65\x64","\x61\x75\x74\x68","\x75\x73\x65\x72\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x6C\x69\x73\x74","\x74\x69\x63\x6B\x65\x74\x66\x69\x65\x6C\x64\x73"];_0x1f39[0];var _=require(_0x1f39[1]);var util=require(_0x1f39[2]);var zendesk=require(_0x1f39[3]);var ZendeskAccount=require(_0x1f39[5])[_0x1f39[4]];exports[_0x1f39[6]]=function(_0xd503x5,_0xd503x6,_0xd503x7){var _0xd503x8=[_0x1f39[7],_0x1f39[8],_0x1f39[9],_0x1f39[10]];var _0xd503x9=_0xd503x5[_0x1f39[12]][_0x1f39[11]]?parseInt(_0xd503x5[_0x1f39[12]][_0x1f39[11]],10):100;var _0xd503xa=_0xd503x5[_0x1f39[12]][_0x1f39[13]]?parseInt(_0xd503x5[_0x1f39[12]][_0x1f39[13]],10):0;var _0xd503xb={where:{},limit:_0xd503x9,offset:_0xd503xa*_0xd503x9};_[_0x1f39[27]](_0xd503x5[_0x1f39[12]],function(_0xd503xc,_0xd503xd){switch(_0xd503xd){case _0x1f39[11]:;case _0x1f39[13]:break ;;case _0x1f39[16]:_0xd503xb[_0x1f39[14]]=util[_0x1f39[19]](_0x1f39[15],_0xd503x5[_0x1f39[12]][_0x1f39[16]],_0xd503x5[_0x1f39[12]][_0x1f39[17]]||_0x1f39[18])||null;break ;;case _0x1f39[17]:break ;;case _0x1f39[25]:_0xd503xb[_0x1f39[21]][_0x1f39[20]]=[];_0xd503x8[_0x1f39[24]](function(_0xd503xe){var _0xd503xf={};_0xd503xf[_0xd503xe]={$like:_0x1f39[22]+_0xd503xc+_0x1f39[22]};_0xd503xb[_0x1f39[21]][_0x1f39[20]][_0x1f39[23]](_0xd503xf);});break ;;default:_0xd503xb[_0x1f39[21]][_0xd503xd]={$like:{}};_0xd503xb[_0x1f39[21]][_0xd503xd][_0x1f39[26]]=_0x1f39[22]+_0xd503xc+_0x1f39[22];;}});ZendeskAccount[_0x1f39[42]](_0xd503xb)[_0x1f39[41]](function(_0xd503x11){var _0xd503x12=Math[_0x1f39[33]](_0xd503x11[_0x1f39[32]]/_0xd503x9);var _0xd503x13=_0xd503x12>(_0xd503xb[_0x1f39[34]]+1)?util[_0x1f39[19]](_0x1f39[35],_0xd503x5[_0x1f39[36]],_0xd503x5[_0x1f39[38]][_0x1f39[37]],_0xd503x5[_0x1f39[39]],_0xd503xa+1):null;var _0xd503x14=_0xd503xa>0?util[_0x1f39[19]](_0x1f39[35],_0xd503x5[_0x1f39[36]],_0xd503x5[_0x1f39[38]][_0x1f39[37]],_0xd503x5[_0x1f39[39]],_0xd503xa-1):null;return _0xd503x6[_0x1f39[30]](200)[_0x1f39[29]]({count:_0xd503x11[_0x1f39[32]],rows:_0xd503x11[_0x1f39[40]],next_page:_0xd503x13,previous_page:_0xd503x14,total_pages:_0xd503x12});})[_0x1f39[31]](function(_0xd503x10){return _0xd503x6[_0x1f39[30]](500)[_0x1f39[29]]({error:_0x1f39[28]})});};exports[_0x1f39[43]]=function(_0xd503x5,_0xd503x6){ZendeskAccount[_0x1f39[47]](_0xd503x5[_0x1f39[46]][_0x1f39[45]])[_0x1f39[41]](function(_0xd503x15){if(!_0xd503x15){return _0xd503x6[_0x1f39[44]](404)};return _0xd503x6[_0x1f39[29]](_0xd503x15);})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)})};exports[_0x1f39[48]]=function(_0xd503x5,_0xd503x6){ZendeskAccount[_0x1f39[48]](_0xd503x5[_0x1f39[49]])[_0x1f39[41]](function(_0xd503x15){return _0xd503x6[_0x1f39[30]](201)[_0x1f39[29]](_0xd503x15)})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)})};exports[_0x1f39[50]]=function(_0xd503x5,_0xd503x6){if(_0xd503x5[_0x1f39[49]][_0x1f39[45]]){delete _0xd503x5[_0x1f39[49]][_0x1f39[45]]};ZendeskAccount[_0x1f39[47]](_0xd503x5[_0x1f39[46]][_0x1f39[45]])[_0x1f39[41]](function(_0xd503x15){if(!_0xd503x15){return _0xd503x6[_0x1f39[44]](404)};var _0xd503x16=_[_0x1f39[51]](_0xd503x15,_0xd503x5[_0x1f39[49]]);_0xd503x16[_0x1f39[52]]()[_0x1f39[41]](function(){return _0xd503x6[_0x1f39[30]](200)[_0x1f39[29]](_0xd503x15)})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)});})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)});};exports[_0x1f39[53]]=function(_0xd503x5,_0xd503x6){ZendeskAccount[_0x1f39[47]](_0xd503x5[_0x1f39[46]][_0x1f39[45]])[_0x1f39[41]](function(_0xd503x15){if(!_0xd503x15){return _0xd503x6[_0x1f39[44]](404)};_0xd503x15[_0x1f39[53]]()[_0x1f39[41]](function(){return _0xd503x6[_0x1f39[44]](204)})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)});})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)})};exports[_0x1f39[54]]=function(_0xd503x5,_0xd503x6){ZendeskAccount[_0x1f39[53]]({where:{id:_0xd503x5[_0x1f39[12]][_0x1f39[45]]},individualHooks:true})[_0x1f39[41]](function(){return _0xd503x6[_0x1f39[44]](204)})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)})};exports[_0x1f39[55]]=function(_0xd503x5,_0xd503x6){var _0xd503x17={};_0xd503x17[_0xd503x5[_0x1f39[46]][_0x1f39[56]]]=_0xd503x5[_0x1f39[49]][_0x1f39[57]];ZendeskAccount[_0x1f39[42]]({where:_0xd503x17})[_0x1f39[41]](function(_0xd503x11){if(_0xd503x11[_0x1f39[32]]){return _0xd503x6[_0x1f39[30]](200)[_0x1f39[29]]({isValid:false,value:_0xd503x5[_0x1f39[49]][_0x1f39[57]]})};return _0xd503x6[_0x1f39[30]](200)[_0x1f39[29]]({isValid:true,value:_0xd503x5[_0x1f39[49]][_0x1f39[57]]});})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)});};exports[_0x1f39[58]]=function(_0xd503x5,_0xd503x6){ZendeskAccount[_0x1f39[47]](_0xd503x5[_0x1f39[46]][_0x1f39[45]])[_0x1f39[41]](function(_0xd503x18){var _0xd503x19={username:_0xd503x18[_0x1f39[9]],remoteUri:_0xd503x18[_0x1f39[10]]};if(_0xd503x18[_0x1f39[59]]===_0x1f39[60]){_0xd503x19[_0x1f39[60]]=_0xd503x18[_0x1f39[60]]}else {if(_0xd503x18[_0x1f39[59]]===_0x1f39[61]){_0xd503x19[_0x1f39[61]]=_0xd503x18[_0x1f39[61]]}};var _0xd503x1a=zendesk[_0x1f39[62]](_0xd503x19);_0xd503x1a[_0x1f39[66]][_0x1f39[65]](function(_0xd503x10,_0xd503x1b,_0xd503x11){if(_0xd503x10){console[_0x1f39[63]](_0xd503x10);return handleError(_0xd503x6,_0xd503x10);};if(!_0xd503x11[_0x1f39[64]]){return _0xd503x6[_0x1f39[44]](500)};return _0xd503x6[_0x1f39[44]](204);});})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)})};exports[_0x1f39[67]]=function(_0xd503x5,_0xd503x6){ZendeskAccount[_0x1f39[47]](_0xd503x5[_0x1f39[46]][_0x1f39[45]])[_0x1f39[41]](function(_0xd503x18){var _0xd503x19={username:_0xd503x18[_0x1f39[9]],remoteUri:_0xd503x18[_0x1f39[10]]};if(_0xd503x18[_0x1f39[59]]===_0x1f39[60]){_0xd503x19[_0x1f39[60]]=_0xd503x18[_0x1f39[60]]}else {if(_0xd503x18[_0x1f39[59]]===_0x1f39[61]){_0xd503x19[_0x1f39[61]]=_0xd503x18[_0x1f39[61]]}};var _0xd503x1a=zendesk[_0x1f39[62]](_0xd503x19);_0xd503x1a[_0x1f39[69]][_0x1f39[68]](function(_0xd503x10,_0xd503x1b,_0xd503x11){if(_0xd503x10){console[_0x1f39[63]](_0xd503x10);return handleError(_0xd503x6,_0xd503x10);};return _0xd503x6[_0x1f39[30]](200)[_0x1f39[29]](_0xd503x11);});})[_0x1f39[31]](function(_0xd503x10){return handleError(_0xd503x6,_0xd503x10)})};function handleError(_0xd503x6,_0xd503x10){return _0xd503x6[_0x1f39[30]](500)[_0x1f39[29]](_0xd503x10)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var zendesk = require('node-zendesk');
+
+var ZendeskAccount = require('../../models').ZendeskAccount;
+
+// Get list of zendesk_accounts
+exports.index = function(req, res, next) {
+
+  var attributes = ['description', 'name', 'username', 'remoteUri'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  ZendeskAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single zendesk_account
+exports.show = function(req, res) {
+  ZendeskAccount
+    .findById(req.params.id)
+    .then(function(zendesk_account) {
+      if (!zendesk_account) {
+        return res.sendStatus(404);
+      }
+      return res.send(zendesk_account);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new zendesk_account in the DB.
+exports.create = function(req, res) {
+  ZendeskAccount
+    .create(req.body)
+    .then(function(zendesk_account) {
+      return res.status(201).send(zendesk_account);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing zendesk_account in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ZendeskAccount
+    .findById(req.params.id)
+    .then(function(zendesk_account) {
+      if (!zendesk_account) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(zendesk_account, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(zendesk_account);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a zendesk_account from the DB.
+exports.destroy = function(req, res) {
+  ZendeskAccount
+    .findById(req.params.id)
+    .then(function(zendesk_account) {
+      if (!zendesk_account) {
+        return res.sendStatus(404);
+      }
+      zendesk_account.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  ZendeskAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.zendeskValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  ZendeskAccount
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+
+};
+
+exports.checkAccount = function(req, res) {
+  ZendeskAccount
+    .findById(req.params.id)
+    .then(function(account) {
+      var accountZendesk = {
+        username: account.username,
+        remoteUri: account.remoteUri,
+        // debug: true
+      };
+      if (account.authType === 'password') {
+        accountZendesk.password = account.password;
+      } else if (account.authType === 'token') {
+        accountZendesk.token = account.token;
+        // accountZendesk.oauth = true;
+      }
+      // console.log(accountZendesk);
+      var client = zendesk.createClient(accountZendesk);
+      client.users.auth(function(err, res2, result) {
+        if (err) {
+          console.error(err);
+          return handleError(res, err);
+        }
+        // console.log(result);
+        if (!result.verified) {
+          return res.sendStatus(500);
+        }
+        return res.sendStatus(204);
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getFields = function(req, res) {
+  ZendeskAccount
+    .findById(req.params.id)
+    .then(function(account) {
+      var accountZendesk = {
+        username: account.username,
+        remoteUri: account.remoteUri,
+        // debug: true
+      };
+      if (account.authType === 'password') {
+        accountZendesk.password = account.password;
+      } else if (account.authType === 'token') {
+        accountZendesk.token = account.token;
+      }
+      var client = zendesk.createClient(accountZendesk);
+      client.ticketfields.list(function(err, res2, result) {
+        if (err) {
+          console.error(err);
+          return handleError(res, err);
+        }
+        return res.status(200).send(result);
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+}
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index bb4faa8..96c8214 100644 (file)
@@ -1 +1,24 @@
-var _0x5284=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x5284[0];var ZendeskAccount=require(_0x5284[2])[_0x5284[1]];exports[_0x5284[3]]=function(_0xa766x2){ZendeskAccount[_0x5284[4]](function(_0xa766x3){onSave(_0xa766x2,_0xa766x3)});ZendeskAccount[_0x5284[5]](function(_0xa766x3){onRemove(_0xa766x2,_0xa766x3)});};function onSave(_0xa766x2,_0xa766x3,_0xa766x5){_0xa766x2[_0x5284[7]](_0x5284[6],_0xa766x3)}function onRemove(_0xa766x2,_0xa766x3,_0xa766x5){_0xa766x2[_0x5284[7]](_0x5284[8],_0xa766x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ZendeskAccount = require('../../models').ZendeskAccount;
+
+exports.register = function(socket) {
+  ZendeskAccount.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  ZendeskAccount.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('zendesk_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('zendesk_account:remove', doc);
+}
index 48e3c53..68c8389 100644 (file)
@@ -1 +1,20 @@
-var _0xa0e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74"];_0xa0e6[0];var should=require(_0xa0e6[1]);var app=require(_0xa0e6[2]);var request=require(_0xa0e6[3]);describe(_0xa0e6[4],function(){it(_0xa0e6[5],function(_0x1c31x4){request(app)[_0xa0e6[13]](_0xa0e6[12])[_0xa0e6[11]](200)[_0xa0e6[11]](_0xa0e6[10],/json/)[_0xa0e6[9]](function(_0x1c31x5,_0x1c31x6){if(_0x1c31x5){return _0x1c31x4(_0x1c31x5)};_0x1c31x6[_0xa0e6[8]][_0xa0e6[1]][_0xa0e6[7]][_0xa0e6[6]](Array);_0x1c31x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/zendesk/accounts', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/zendesk/accounts')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index f23b656..9df7d1b 100644 (file)
@@ -1 +1,16 @@
-var _0xbbae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbbae[0];var express=require(_0xbbae[1]);var controller=require(_0xbbae[2]);var auth=require(_0xbbae[3]);var router=express.Router();router[_0xbbae[7]](_0xbbae[4],auth[_0xbbae[5]](),controller[_0xbbae[6]]);router[_0xbbae[7]](_0xbbae[8],auth[_0xbbae[5]](),controller[_0xbbae[9]]);router[_0xbbae[11]](_0xbbae[4],auth[_0xbbae[5]](),controller[_0xbbae[10]]);router[_0xbbae[13]](_0xbbae[8],auth[_0xbbae[5]](),controller[_0xbbae[12]]);router[_0xbbae[11]](_0xbbae[14],auth[_0xbbae[5]](),controller[_0xbbae[15]]);router[_0xbbae[16]](_0xbbae[8],auth[_0xbbae[5]](),controller[_0xbbae[12]]);router[_0xbbae[18]](_0xbbae[8],auth[_0xbbae[5]](),controller[_0xbbae[17]]);module[_0xbbae[19]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./zendesk_configuration.controller');
+var auth = require('../../auth/auth.service');
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
index f58cc66..1bcfaae 100644 (file)
@@ -1 +1,162 @@
-var _0xc395=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0xc395[0];var _=require(_0xc395[1]);var ZendeskConfiguration=require(_0xc395[3])[_0xc395[2]];var ZendeskField=require(_0xc395[3])[_0xc395[4]];exports[_0xc395[5]]=function(_0xed91x4,_0xed91x5){ZendeskConfiguration[_0xc395[11]]({where:_0xed91x4[_0xc395[10]]})[_0xc395[9]](function(_0xed91x7){return _0xed91x5[_0xc395[8]](200)[_0xc395[7]](_0xed91x7)})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)})};exports[_0xc395[12]]=function(_0xed91x4,_0xed91x5){ZendeskConfiguration[_0xc395[19]]({where:{id:_0xed91x4[_0xc395[15]][_0xc395[14]]},include:[{model:ZendeskField,as:_0xc395[16]},{model:ZendeskField,as:_0xc395[17]},{model:ZendeskField,as:_0xc395[18]}]})[_0xc395[9]](function(_0xed91x8){if(!_0xed91x8){return _0xed91x5[_0xc395[13]](404)};return _0xed91x5[_0xc395[7]](_0xed91x8);})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)})};exports[_0xc395[20]]=function(_0xed91x4,_0xed91x5){ZendeskConfiguration[_0xc395[20]](_0xed91x4[_0xc395[21]])[_0xc395[9]](function(_0xed91x8){return _0xed91x5[_0xc395[8]](201)[_0xc395[7]](_0xed91x8)})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)})};exports[_0xc395[22]]=function(_0xed91x4,_0xed91x5){if(_0xed91x4[_0xc395[21]][_0xc395[14]]){delete _0xed91x4[_0xc395[21]][_0xc395[14]]};ZendeskConfiguration[_0xc395[25]](_0xed91x4[_0xc395[15]][_0xc395[14]])[_0xc395[9]](function(_0xed91x8){if(!_0xed91x8){return _0xed91x5[_0xc395[13]](404)};var _0xed91x9=_[_0xc395[23]](_0xed91x8,_0xed91x4[_0xc395[21]]);_0xed91x9[_0xc395[24]]()[_0xc395[9]](function(){return _0xed91x5[_0xc395[8]](200)[_0xc395[7]](_0xed91x8)})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)});})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)});};exports[_0xc395[26]]=function(_0xed91x4,_0xed91x5){ZendeskConfiguration[_0xc395[25]](_0xed91x4[_0xc395[15]][_0xc395[14]])[_0xc395[9]](function(_0xed91x8){if(!_0xed91x8){return _0xed91x5[_0xc395[13]](404)};_0xed91x8[_0xc395[26]]()[_0xc395[9]](function(){return _0xed91x5[_0xc395[13]](204)})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)});})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)})};exports[_0xc395[27]]=function(_0xed91x4,_0xed91x5,_0xed91xa){ZendeskConfiguration[_0xc395[25]](_0xed91x4[_0xc395[15]][_0xc395[14]])[_0xc395[9]](function(_0xed91xb){if(!_0xed91xb){return _0xed91x5[_0xc395[13]](500)};ZendeskField[_0xc395[20]](_0xed91x4[_0xc395[21]])[_0xc395[9]](function(_0xed91xc){switch(_0xed91x4[_0xc395[15]][_0xc395[34]]){case _0xc395[29]:_0xed91xb[_0xc395[28]](_0xed91xc)[_0xc395[9]](function(){return _0xed91x5[_0xc395[8]](200)[_0xc395[7]](_0xed91xc)})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)});break ;;case _0xc395[31]:_0xed91xb[_0xc395[30]](_0xed91xc)[_0xc395[9]](function(){return _0xed91x5[_0xc395[8]](200)[_0xc395[7]](_0xed91xc)})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)});break ;;case _0xc395[33]:_0xed91xb[_0xc395[32]](_0xed91xc)[_0xc395[9]](function(){return _0xed91x5[_0xc395[8]](200)[_0xc395[7]](_0xed91xc)})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)});break ;;}})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)});})[_0xc395[6]](function(_0xed91x6){return handleError(_0xed91x5,_0xed91x6)})};function handleError(_0xed91x5,_0xed91x6){return _0xed91x5[_0xc395[8]](500)[_0xc395[7]](_0xed91x6)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ZendeskConfiguration = require('../../models').ZendeskConfiguration;
+var ZendeskField = require('../../models').ZendeskField;
+
+// Get list of zendesk_configurations
+exports.index = function(req, res) {
+  ZendeskConfiguration
+    .findAll({
+      where: req.query
+    })
+    .then(function(zendesk_configurations) {
+      return res.status(200).send(zendesk_configurations);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single zendesk_configuration
+exports.show = function(req, res) {
+  ZendeskConfiguration
+    .find({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: ZendeskField,
+        as: 'Subject'
+      }, {
+        model: ZendeskField,
+        as: 'Description'
+      }, {
+        model: ZendeskField,
+        as: 'Field'
+      }]
+    })
+    .then(function(zendesk_configuration) {
+      if (!zendesk_configuration) {
+        return res.sendStatus(404);
+      }
+      return res.send(zendesk_configuration);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new zendesk_configuration in the DB.
+exports.create = function(req, res) {
+  ZendeskConfiguration
+    .create(req.body)
+    .then(function(zendesk_configuration) {
+      return res.status(201).send(zendesk_configuration);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing zendesk_configuration in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ZendeskConfiguration
+    .findById(req.params.id)
+    .then(function(zendesk_configuration) {
+      if (!zendesk_configuration) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(zendesk_configuration, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(zendesk_configuration);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a zendesk_configuration from the DB.
+exports.destroy = function(req, res) {
+  ZendeskConfiguration
+    .findById(req.params.id)
+    .then(function(zendesk_configuration) {
+      if (!zendesk_configuration) {
+        return res.sendStatus(404);
+      }
+      zendesk_configuration.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.addConfigurationField = function(req, res, next) {
+  // console.log(req.params);
+  ZendeskConfiguration
+    .findById(req.params.id)
+    .then(function(configuration) {
+      if (!configuration) {
+        return res.sendStatus(500);
+      }
+      ZendeskField
+        .create(req.body)
+        .then(function(field) {
+          switch (req.params.type) {
+            case 'subject':
+              configuration.addSubject(field)
+                .then(function() {
+                  return res.status(200).send(field);
+                })
+                .catch(function(err) {
+                  return handleError(res, err);
+                });
+              break;
+            case 'description':
+              configuration.addDescription(field)
+                .then(function() {
+                  return res.status(200).send(field);
+                })
+                .catch(function(err) {
+                  return handleError(res, err);
+                });
+              break;
+            case 'field':
+              configuration.addField(field)
+                .then(function() {
+                  return res.status(200).send(field);
+                })
+                .catch(function(err) {
+                  return handleError(res, err);
+                });
+              break;
+          }
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+          // return next(err);
+        });
+    })
+    .catch(function(err) {
+      // return next(err);
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index af4365a..d9a56f1 100644 (file)
@@ -1 +1,24 @@
-var _0x9055=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9055[0];var ZendeskConfiguration=require(_0x9055[2])[_0x9055[1]];exports[_0x9055[3]]=function(_0x6073x2){ZendeskConfiguration[_0x9055[4]](function(_0x6073x3){onSave(_0x6073x2,_0x6073x3)});ZendeskConfiguration[_0x9055[5]](function(_0x6073x3){onRemove(_0x6073x2,_0x6073x3)});};function onSave(_0x6073x2,_0x6073x3,_0x6073x5){_0x6073x2[_0x9055[7]](_0x9055[6],_0x6073x3)}function onRemove(_0x6073x2,_0x6073x3,_0x6073x5){_0x6073x2[_0x9055[7]](_0x9055[8],_0x6073x3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ZendeskConfiguration = require('../../models').ZendeskConfiguration;
+
+exports.register = function(socket) {
+  ZendeskConfiguration.afterCreate(function (doc) {
+    onSave(socket, doc);
+  });
+  ZendeskConfiguration.afterDestroy(function (doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('zendesk_configuration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('zendesk_configuration:remove', doc);
+}
index e056a12..3589f5d 100644 (file)
@@ -1 +1,20 @@
-var _0x1fe0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x1fe0[0];var should=require(_0x1fe0[1]);var app=require(_0x1fe0[2]);var request=require(_0x1fe0[3]);describe(_0x1fe0[4],function(){it(_0x1fe0[5],function(_0xe8d3x4){request(app)[_0x1fe0[13]](_0x1fe0[12])[_0x1fe0[11]](200)[_0x1fe0[11]](_0x1fe0[10],/json/)[_0x1fe0[9]](function(_0xe8d3x5,_0xe8d3x6){if(_0xe8d3x5){return _0xe8d3x4(_0xe8d3x5)};_0xe8d3x6[_0x1fe0[8]][_0x1fe0[1]][_0x1fe0[7]][_0x1fe0[6]](Array);_0xe8d3x4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/zendesk/configurations', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/zendesk/configurations')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
\ No newline at end of file
index e92febf..76f5c48 100644 (file)
@@ -1 +1,15 @@
-var _0x479e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x479e[0];var express=require(_0x479e[1]);var controller=require(_0x479e[2]);var router=express.Router();router[_0x479e[5]](_0x479e[3],controller[_0x479e[4]]);router[_0x479e[5]](_0x479e[6],controller[_0x479e[7]]);router[_0x479e[9]](_0x479e[3],controller[_0x479e[8]]);router[_0x479e[11]](_0x479e[6],controller[_0x479e[10]]);router[_0x479e[12]](_0x479e[6],controller[_0x479e[10]]);router[_0x479e[14]](_0x479e[6],controller[_0x479e[13]]);module[_0x479e[15]]=router;
\ No newline at end of file
+'use strict';
+
+var express = require('express');
+var controller = require('./zendesk_field.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
index 294ec53..48d0c38 100644 (file)
@@ -1 +1,93 @@
-var _0x7e45=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x7e45[0];var _=require(_0x7e45[1]);var ZendeskField=require(_0x7e45[3])[_0x7e45[2]];exports[_0x7e45[4]]=function(_0x9f59x3,_0x9f59x4){ZendeskField[_0x7e45[9]]()[_0x7e45[8]](function(_0x9f59x6){return _0x9f59x4[_0x7e45[7]](200)[_0x7e45[6]](_0x9f59x6)})[_0x7e45[5]](function(_0x9f59x5){return handleError(_0x9f59x4,_0x9f59x5)})};exports[_0x7e45[10]]=function(_0x9f59x3,_0x9f59x4){ZendeskField[_0x7e45[14]](_0x9f59x3[_0x7e45[13]][_0x7e45[12]])[_0x7e45[8]](function(_0x9f59x7){if(!_0x9f59x7){return _0x9f59x4[_0x7e45[11]](404)};return _0x9f59x4[_0x7e45[6]](_0x9f59x7);})[_0x7e45[5]](function(_0x9f59x5){return handleError(_0x9f59x4,_0x9f59x5)})};exports[_0x7e45[15]]=function(_0x9f59x3,_0x9f59x4){ZendeskField[_0x7e45[15]](_0x9f59x3[_0x7e45[16]])[_0x7e45[8]](function(_0x9f59x7){return _0x9f59x4[_0x7e45[7]](201)[_0x7e45[6]](_0x9f59x7)})[_0x7e45[5]](function(_0x9f59x5){return handleError(_0x9f59x4,_0x9f59x5)})};exports[_0x7e45[17]]=function(_0x9f59x3,_0x9f59x4){if(_0x9f59x3[_0x7e45[16]][_0x7e45[12]]){delete _0x9f59x3[_0x7e45[16]][_0x7e45[12]]};ZendeskField[_0x7e45[14]](_0x9f59x3[_0x7e45[13]][_0x7e45[12]])[_0x7e45[8]](function(_0x9f59x7){if(!_0x9f59x7){return _0x9f59x4[_0x7e45[11]](404)};var _0x9f59x8=_[_0x7e45[18]](_0x9f59x7,_0x9f59x3[_0x7e45[16]]);_0x9f59x8[_0x7e45[19]]()[_0x7e45[8]](function(){return _0x9f59x4[_0x7e45[7]](200)[_0x7e45[6]](_0x9f59x7)})[_0x7e45[5]](function(_0x9f59x5){return handleError(_0x9f59x4,_0x9f59x5)});})[_0x7e45[5]](function(_0x9f59x5){return handleError(_0x9f59x4,_0x9f59x5)});};exports[_0x7e45[20]]=function(_0x9f59x3,_0x9f59x4){ZendeskField[_0x7e45[14]](_0x9f59x3[_0x7e45[13]][_0x7e45[12]])[_0x7e45[8]](function(_0x9f59x7){if(!_0x9f59x7){return _0x9f59x4[_0x7e45[11]](404)};_0x9f59x7[_0x7e45[20]]()[_0x7e45[8]](function(){return _0x9f59x4[_0x7e45[11]](204)})[_0x7e45[5]](function(_0x9f59x5){return handleError(_0x9f59x4,_0x9f59x5)});})[_0x7e45[5]](function(_0x9f59x5){return handleError(_0x9f59x4,_0x9f59x5)})};function handleError(_0x9f59x4,_0x9f59x5){return _0x9f59x4[_0x7e45[7]](500)[_0x7e45[6]](_0x9f59x5)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ZendeskField = require('../../models').ZendeskField;
+
+// Get list of zendesk_fields
+exports.index = function(req, res) {
+  ZendeskField
+    .findAll()
+    .then(function(zendesk_fields) {
+      return res.status(200).send(zendesk_fields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single zendesk_field
+exports.show = function(req, res) {
+  ZendeskField
+    .findById(req.params.id)
+    .then(function(zendesk_field) {
+      if (!zendesk_field) {
+        return res.sendStatus(404);
+      }
+      return res.send(zendesk_field);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new zendesk_field in the DB.
+exports.create = function(req, res) {
+  ZendeskField
+    .create(req.body)
+    .then(function(zendesk_field) {
+      return res.status(201).send(zendesk_field);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing zendesk_field in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  ZendeskField
+    .findById(req.params.id)
+    .then(function(zendesk_field) {
+      if (!zendesk_field) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(zendesk_field, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(zendesk_field);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a zendesk_field from the DB.
+exports.destroy = function(req, res) {
+  ZendeskField
+    .findById(req.params.id)
+    .then(function(zendesk_field) {
+      if (!zendesk_field) {
+        return res.sendStatus(404);
+      }
+      zendesk_field.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
index 01cd7d9..8a5419b 100644 (file)
@@ -1 +1,24 @@
-var _0x824e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x824e[0];var ZendeskField=require(_0x824e[2])[_0x824e[1]];exports[_0x824e[3]]=function(_0xea5bx2){ZendeskField[_0x824e[4]](function(_0xea5bx3){onSave(_0xea5bx2,_0xea5bx3)});ZendeskField[_0x824e[5]](function(_0xea5bx3){onRemove(_0xea5bx2,_0xea5bx3)});};function onSave(_0xea5bx2,_0xea5bx3,_0xea5bx5){_0xea5bx2[_0x824e[7]](_0x824e[6],_0xea5bx3)}function onRemove(_0xea5bx2,_0xea5bx3,_0xea5bx5){_0xea5bx2[_0x824e[7]](_0x824e[8],_0xea5bx3)}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ZendeskField = require('../../models').ZendeskField;
+
+exports.register = function(socket) {
+  ZendeskField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ZendeskField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('zendesk_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('zendesk_field:remove', doc);
+}
index f6614ad..1527fe8 100644 (file)
@@ -1 +1,20 @@
-var _0x1fab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74"];_0x1fab[0];var should=require(_0x1fab[1]);var app=require(_0x1fab[2]);var request=require(_0x1fab[3]);describe(_0x1fab[4],function(){it(_0x1fab[5],function(_0xf0dfx4){request(app)[_0x1fab[13]](_0x1fab[12])[_0x1fab[11]](200)[_0x1fab[11]](_0x1fab[10],/json/)[_0x1fab[9]](function(_0xf0dfx5,_0xf0dfx6){if(_0xf0dfx5){return _0xf0dfx4(_0xf0dfx5)};_0xf0dfx6[_0x1fab[8]][_0x1fab[1]][_0x1fab[7]][_0x1fab[6]](Array);_0xf0dfx4();})})});
\ No newline at end of file
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/zendesk/fields', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/zendesk/fields')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
index 36873d1..c05723a 100644 (file)
@@ -1 +1 @@
-var _0x1df1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4E\x4F\x44\x45\x5F\x45\x4E\x56","\x65\x6E\x76","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x4E\x4F\x44\x45\x5F\x54\x4C\x53\x5F\x52\x45\x4A\x45\x43\x54\x5F\x55\x4E\x41\x55\x54\x48\x4F\x52\x49\x5A\x45\x44","\x75\x6E\x63\x61\x75\x67\x68\x74\x45\x78\x63\x65\x70\x74\x69\x6F\x6E","\x6F\x62\x6A\x65\x63\x74","\x6D\x65\x73\x73\x61\x67\x65","\x0A\x4D\x65\x73\x73\x61\x67\x65\x3A\x20","\x6C\x6F\x67","\x73\x74\x61\x63\x6B","\x0A\x53\x74\x61\x63\x6B\x74\x72\x61\x63\x65\x3A","\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x64\x75\x6D\x70\x45\x72\x72\x6F\x72\x20\x3A\x3A\x20\x61\x72\x67\x75\x6D\x65\x6E\x74\x20\x69\x73\x20\x6E\x6F\x74\x20\x61\x6E\x20\x6F\x62\x6A\x65\x63\x74","\x6F\x6E","\x6F\x73","\x68\x74\x74\x70","\x75\x74\x69\x6C","\x63\x72\x79\x70\x74\x6F","\x43\x72\x6F\x6E\x4A\x6F\x62","\x63\x72\x6F\x6E","\x73\x68\x65\x6C\x6C\x6A\x73\x2F\x67\x6C\x6F\x62\x61\x6C","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x73","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x2F\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x63\x6C\x69\x65\x6E\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F","\x70\x6F\x72\x74","\x61\x73\x74\x65\x72\x69\x73\x6B","\x68\x6F\x73\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x61\x73\x74\x65\x72\x69\x73\x6B\x2D\x6D\x61\x6E\x61\x67\x65\x72","\x6B\x65\x65\x70\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x6B\x75\x65","\x6C\x69\x73\x74\x65\x6E","\x61\x70\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x6F\x75\x74\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x68\x69\x73\x74\x6F\x72\x79","\x74\x68\x65\x6E","\x73\x79\x6E\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x73\x65\x65\x64\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64","\x73\x65\x65\x64\x50\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6F\x63\x6B\x65\x74\x69\x6F","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6B\x75\x65\x2E\x6D\x61\x69\x6C","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6B\x75\x65\x2E\x63\x68\x61\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6B\x75\x65\x2E\x66\x61\x78","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73\x2F\x6D\x61\x69\x6C","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73\x2F\x66\x61\x78","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x69\x6E\x69\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x69\x6D\x61\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6D\x74\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x6D\x69","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x67\x69","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x69\x70","\x45\x78\x70\x72\x65\x73\x73\x20\x73\x65\x72\x76\x65\x72\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20\x25\x64\x2C\x20\x69\x6E\x20\x25\x73\x20\x6D\x6F\x64\x65","\x67\x65\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1df1[0];process[_0x1df1[2]][_0x1df1[1]]=process[_0x1df1[2]][_0x1df1[1]]||_0x1df1[3];process[_0x1df1[2]][_0x1df1[4]]=0;process[_0x1df1[14]](_0x1df1[5],function(_0xed79x1){if( typeof _0xed79x1===_0x1df1[6]){if(_0xed79x1[_0x1df1[7]]){console[_0x1df1[9]](_0x1df1[8]+_0xed79x1[_0x1df1[7]])};if(_0xed79x1[_0x1df1[10]]){console[_0x1df1[9]](_0x1df1[11]);console[_0x1df1[9]](_0x1df1[12]);console[_0x1df1[9]](_0xed79x1[_0x1df1[10]]);};}else {console[_0x1df1[9]](_0x1df1[13])}});var os=require(_0x1df1[15]);var http=require(_0x1df1[16]);var util=require(_0x1df1[17]);var crypto=require(_0x1df1[18]);var cronjob=require(_0x1df1[20])[_0x1df1[19]];var shelljs=require(_0x1df1[21]);var express=require(_0x1df1[22]);var models=require(_0x1df1[23]);var config=require(_0x1df1[24]);var Settings=models[_0x1df1[25]];var app=express();var server=require(_0x1df1[16])[_0x1df1[26]](app);var io=require(_0x1df1[29])(server,{serveClient:(config[_0x1df1[2]]===_0x1df1[27])?false:true,path:_0x1df1[28]});var ami=require(_0x1df1[35])(config[_0x1df1[31]][_0x1df1[30]],config[_0x1df1[31]][_0x1df1[32]],config[_0x1df1[31]][_0x1df1[33]],config[_0x1df1[31]][_0x1df1[34]],true);ami[_0x1df1[36]]();var kue=require(_0x1df1[37]);kue[_0x1df1[39]][_0x1df1[38]](3001);var _setting;var _license;require(_0x1df1[40])(app);require(_0x1df1[41])(app);models[_0x1df1[70]][_0x1df1[46]]()[_0x1df1[45]](function(){require(_0x1df1[41])(app);if(config[_0x1df1[48]]){require(_0x1df1[49])};if(config[_0x1df1[50]]){require(_0x1df1[51])};require(_0x1df1[52])(io);require(_0x1df1[53])(kue);require(_0x1df1[54])(kue);require(_0x1df1[55])(io,kue);require(_0x1df1[56])();require(_0x1df1[57])();require(_0x1df1[58])();require(_0x1df1[60])[_0x1df1[59]]();require(_0x1df1[61])[_0x1df1[59]]();require(_0x1df1[62])(ami);require(_0x1df1[63])();require(_0x1df1[64])(ami);require(_0x1df1[65])(io,ami);require(_0x1df1[66])();server[_0x1df1[38]](config[_0x1df1[30]],config[_0x1df1[67]],function(){console[_0x1df1[9]](_0x1df1[68],config[_0x1df1[30]],app[_0x1df1[69]](_0x1df1[2]))});})[_0x1df1[45]](function(){return models[_0x1df1[47]][_0x1df1[46]]()})[_0x1df1[45]](function(){require(_0x1df1[44])(cronjob)})[_0x1df1[43]](function(_0xed79x1){console[_0x1df1[42]](_0xed79x1)});exports=module[_0x1df1[71]]=app;
\ No newline at end of file
+var _0x4099=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4E\x4F\x44\x45\x5F\x45\x4E\x56","\x65\x6E\x76","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x4E\x4F\x44\x45\x5F\x54\x4C\x53\x5F\x52\x45\x4A\x45\x43\x54\x5F\x55\x4E\x41\x55\x54\x48\x4F\x52\x49\x5A\x45\x44","\x75\x6E\x63\x61\x75\x67\x68\x74\x45\x78\x63\x65\x70\x74\x69\x6F\x6E","\x6F\x62\x6A\x65\x63\x74","\x6D\x65\x73\x73\x61\x67\x65","\x0A\x4D\x65\x73\x73\x61\x67\x65\x3A\x20","\x6C\x6F\x67","\x73\x74\x61\x63\x6B","\x0A\x53\x74\x61\x63\x6B\x74\x72\x61\x63\x65\x3A","\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x64\x75\x6D\x70\x45\x72\x72\x6F\x72\x20\x3A\x3A\x20\x61\x72\x67\x75\x6D\x65\x6E\x74\x20\x69\x73\x20\x6E\x6F\x74\x20\x61\x6E\x20\x6F\x62\x6A\x65\x63\x74","\x6F\x6E","\x6F\x73","\x68\x74\x74\x70","\x75\x74\x69\x6C","\x63\x72\x79\x70\x74\x6F","\x43\x72\x6F\x6E\x4A\x6F\x62","\x63\x72\x6F\x6E","\x73\x68\x65\x6C\x6C\x6A\x73\x2F\x67\x6C\x6F\x62\x61\x6C","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x73","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x2F\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x63\x6C\x69\x65\x6E\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F","\x70\x6F\x72\x74","\x61\x73\x74\x65\x72\x69\x73\x6B","\x68\x6F\x73\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x61\x73\x74\x65\x72\x69\x73\x6B\x2D\x6D\x61\x6E\x61\x67\x65\x72","\x6B\x65\x65\x70\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x6B\x75\x65","\x6C\x69\x73\x74\x65\x6E","\x61\x70\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x6F\x75\x74\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x68\x69\x73\x74\x6F\x72\x79","\x74\x68\x65\x6E","\x73\x79\x6E\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x73\x65\x65\x64\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64","\x73\x65\x65\x64\x50\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6F\x63\x6B\x65\x74\x69\x6F","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6B\x75\x65\x2E\x6D\x61\x69\x6C","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6B\x75\x65\x2E\x63\x68\x61\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6B\x75\x65\x2E\x66\x61\x78","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73\x2F\x6D\x61\x69\x6C","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73\x2F\x66\x61\x78","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x69\x6E\x69\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x69\x6D\x61\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6D\x74\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x6D\x69","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x67\x69","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x69\x70","\x45\x78\x70\x72\x65\x73\x73\x20\x73\x65\x72\x76\x65\x72\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20\x25\x64\x2C\x20\x69\x6E\x20\x25\x73\x20\x6D\x6F\x64\x65","\x67\x65\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4099[0];process[_0x4099[2]][_0x4099[1]]=process[_0x4099[2]][_0x4099[1]]||_0x4099[3];process[_0x4099[2]][_0x4099[4]]=0;process[_0x4099[14]](_0x4099[5],function(_0x4656x1){if( typeof _0x4656x1===_0x4099[6]){if(_0x4656x1[_0x4099[7]]){console[_0x4099[9]](_0x4099[8]+_0x4656x1[_0x4099[7]])};if(_0x4656x1[_0x4099[10]]){console[_0x4099[9]](_0x4099[11]);console[_0x4099[9]](_0x4099[12]);console[_0x4099[9]](_0x4656x1[_0x4099[10]]);};}else {console[_0x4099[9]](_0x4099[13])}});var os=require(_0x4099[15]);var http=require(_0x4099[16]);var util=require(_0x4099[17]);var crypto=require(_0x4099[18]);var cronjob=require(_0x4099[20])[_0x4099[19]];var shelljs=require(_0x4099[21]);var express=require(_0x4099[22]);var models=require(_0x4099[23]);var config=require(_0x4099[24]);var Settings=models[_0x4099[25]];var app=express();var server=require(_0x4099[16])[_0x4099[26]](app);var io=require(_0x4099[29])(server,{serveClient:(config[_0x4099[2]]===_0x4099[27])?false:true,path:_0x4099[28]});var ami=require(_0x4099[35])(config[_0x4099[31]][_0x4099[30]],config[_0x4099[31]][_0x4099[32]],config[_0x4099[31]][_0x4099[33]],config[_0x4099[31]][_0x4099[34]],true);ami[_0x4099[36]]();var kue=require(_0x4099[37]);kue[_0x4099[39]][_0x4099[38]](3001);var _setting;var _license;require(_0x4099[40])(app);require(_0x4099[41])(app);models[_0x4099[69]][_0x4099[46]]()[_0x4099[45]](function(){require(_0x4099[41])(app);if(config[_0x4099[48]]){require(_0x4099[49])};if(config[_0x4099[50]]){require(_0x4099[51])};require(_0x4099[52])(io);require(_0x4099[53])(kue);require(_0x4099[54])(kue);require(_0x4099[55])(io,kue);require(_0x4099[56])();require(_0x4099[57])();require(_0x4099[58])(ami);require(_0x4099[60])[_0x4099[59]]();require(_0x4099[61])[_0x4099[59]]();require(_0x4099[62])(ami);require(_0x4099[63])();require(_0x4099[64])(ami);require(_0x4099[65])();server[_0x4099[38]](config[_0x4099[30]],config[_0x4099[66]],function(){console[_0x4099[9]](_0x4099[67],config[_0x4099[30]],app[_0x4099[68]](_0x4099[2]))});})[_0x4099[45]](function(){return models[_0x4099[47]][_0x4099[46]]()})[_0x4099[45]](function(){require(_0x4099[44])(cronjob)})[_0x4099[43]](function(_0x4656x1){console[_0x4099[42]](_0x4656x1)});exports=module[_0x4099[70]]=app;
\ No newline at end of file
index 1d71a36..1e97df5 100644 (file)
@@ -1 +1 @@
-var _0xe6ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x65\x78\x70\x72\x65\x73\x73\x2D\x6A\x77\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x75\x73\x65\x72","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x73\x65","\x71\x75\x65\x72\x79","\x61\x63\x63\x65\x73\x73\x5F\x74\x6F\x6B\x65\x6E","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x73","\x42\x65\x61\x72\x65\x72\x20","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x72\x6F\x6C\x65\x20\x6E\x65\x65\x64\x73\x20\x74\x6F\x20\x62\x65\x20\x73\x65\x74","\x72\x6F\x6C\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x52\x6F\x6C\x65\x73","\x31\x64","\x73\x69\x67\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6A\x73\x6F\x6E","\x74\x6F\x6B\x65\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x63\x6F\x6F\x6B\x69\x65","\x2F","\x72\x65\x64\x69\x72\x65\x63\x74","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x68\x61\x73\x52\x6F\x6C\x65","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65"];_0xe6ac[0];var passport=require(_0xe6ac[1]);var config=require(_0xe6ac[2]);var jwt=require(_0xe6ac[3]);var expressJwt=require(_0xe6ac[4]);var compose=require(_0xe6ac[5]);var User=require(_0xe6ac[7])[_0xe6ac[6]];var validateJwt=expressJwt({secret:config[_0xe6ac[9]][_0xe6ac[8]]});function isAuthenticated(){return compose()[_0xe6ac[16]](function(_0x3551x9,_0x3551xa,_0x3551xb){if(_0x3551x9[_0xe6ac[17]]&&_0x3551x9[_0xe6ac[17]][_0xe6ac[19]](_0xe6ac[18])){_0x3551x9[_0xe6ac[21]][_0xe6ac[20]]=_0xe6ac[22]+_0x3551x9[_0xe6ac[17]][_0xe6ac[18]]};validateJwt(_0x3551x9,_0x3551xa,_0x3551xb);})[_0xe6ac[16]](function(_0x3551x9,_0x3551xa,_0x3551xb){User[_0xe6ac[15]](_0x3551x9[_0xe6ac[12]][_0xe6ac[14]])[_0xe6ac[13]](function(_0x3551xd){if(!_0x3551xd){return _0x3551xa[_0xe6ac[11]](401)};_0x3551x9[_0xe6ac[12]]=_0x3551xd;return _0x3551xb();})[_0xe6ac[10]](function(_0x3551xc){return _0x3551xb(_0x3551xc)})})}function hasRole(_0x3551xf){if(!_0x3551xf){throw  new Error(_0xe6ac[23])};return compose()[_0xe6ac[16]](isAuthenticated())[_0xe6ac[16]](function _0x3551x10(_0x3551x9,_0x3551xa,_0x3551xb){if(config[_0xe6ac[26]][_0xe6ac[25]](_0x3551x9[_0xe6ac[12]][_0xe6ac[24]])>=config[_0xe6ac[26]][_0xe6ac[25]](_0x3551xf)){return _0x3551xb()}else {return _0x3551xa[_0xe6ac[11]](403)}});}function signToken(_0x3551x12,_0x3551x13,_0x3551x14){var _0x3551x15=60*24*365*5;if(!_0x3551x14){_0x3551x15=_0xe6ac[27]};return jwt[_0xe6ac[28]]({id:_0x3551x12},config[_0xe6ac[9]][_0xe6ac[8]],{expiresIn:_0x3551x15});}function setTokenCookie(_0x3551x9,_0x3551xa){if(!_0x3551x9[_0xe6ac[12]]){return _0x3551xa[_0xe6ac[30]](404,{message:_0xe6ac[29]})};var _0x3551x17=signToken(_0x3551x9[_0xe6ac[12]][_0xe6ac[14]],_0x3551x9[_0xe6ac[12]][_0xe6ac[24]]);_0x3551xa[_0xe6ac[33]](_0xe6ac[31],JSON[_0xe6ac[32]](_0x3551x17));_0x3551xa[_0xe6ac[35]](_0xe6ac[34]);}exports[_0xe6ac[36]]=isAuthenticated;exports[_0xe6ac[37]]=hasRole;exports[_0xe6ac[38]]=signToken;exports[_0xe6ac[39]]=setTokenCookie;
\ No newline at end of file
+var _0x4d9b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x65\x78\x70\x72\x65\x73\x73\x2D\x6A\x77\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x53\x65\x72\x76\x69\x63\x65","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x75\x73\x65\x72","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x73\x65","\x71\x75\x65\x72\x79","\x61\x63\x63\x65\x73\x73\x5F\x74\x6F\x6B\x65\x6E","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x73","\x42\x65\x61\x72\x65\x72\x20","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x72\x6F\x6C\x65\x20\x6E\x65\x65\x64\x73\x20\x74\x6F\x20\x62\x65\x20\x73\x65\x74","\x72\x6F\x6C\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x52\x6F\x6C\x65\x73","\x31\x64","\x73\x69\x67\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6A\x73\x6F\x6E","\x74\x6F\x6B\x65\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x63\x6F\x6F\x6B\x69\x65","\x2F","\x72\x65\x64\x69\x72\x65\x63\x74","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x68\x61\x73\x52\x6F\x6C\x65","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65"];_0x4d9b[0];var passport=require(_0x4d9b[1]);var config=require(_0x4d9b[2]);var jwt=require(_0x4d9b[3]);var expressJwt=require(_0x4d9b[4]);var compose=require(_0x4d9b[5]);var User=require(_0x4d9b[7])[_0x4d9b[6]];var Service=require(_0x4d9b[7])[_0x4d9b[8]];var validateJwt=expressJwt({secret:config[_0x4d9b[10]][_0x4d9b[9]]});function isAuthenticated(){return compose()[_0x4d9b[17]](function(_0x8520xa,_0x8520xb,_0x8520xc){if(_0x8520xa[_0x4d9b[18]]&&_0x8520xa[_0x4d9b[18]][_0x4d9b[20]](_0x4d9b[19])){_0x8520xa[_0x4d9b[22]][_0x4d9b[21]]=_0x4d9b[23]+_0x8520xa[_0x4d9b[18]][_0x4d9b[19]]};validateJwt(_0x8520xa,_0x8520xb,_0x8520xc);})[_0x4d9b[17]](function(_0x8520xa,_0x8520xb,_0x8520xc){User[_0x4d9b[16]](_0x8520xa[_0x4d9b[13]][_0x4d9b[15]],{include:[{model:Service}]})[_0x4d9b[14]](function(_0x8520xe){if(!_0x8520xe){return _0x8520xb[_0x4d9b[12]](401)};_0x8520xa[_0x4d9b[13]]=_0x8520xe;return _0x8520xc();})[_0x4d9b[11]](function(_0x8520xd){return _0x8520xc(_0x8520xd)})})}function hasRole(_0x8520x10){if(!_0x8520x10){throw  new Error(_0x4d9b[24])};return compose()[_0x4d9b[17]](isAuthenticated())[_0x4d9b[17]](function _0x8520x11(_0x8520xa,_0x8520xb,_0x8520xc){if(config[_0x4d9b[27]][_0x4d9b[26]](_0x8520xa[_0x4d9b[13]][_0x4d9b[25]])>=config[_0x4d9b[27]][_0x4d9b[26]](_0x8520x10)){return _0x8520xc()}else {return _0x8520xb[_0x4d9b[12]](403)}});}function signToken(_0x8520x13,_0x8520x14,_0x8520x15){var _0x8520x16=60*24*365*5;if(!_0x8520x15){_0x8520x16=_0x4d9b[28]};return jwt[_0x4d9b[29]]({id:_0x8520x13},config[_0x4d9b[10]][_0x4d9b[9]],{expiresIn:_0x8520x16});}function setTokenCookie(_0x8520xa,_0x8520xb){if(!_0x8520xa[_0x4d9b[13]]){return _0x8520xb[_0x4d9b[31]](404,{message:_0x4d9b[30]})};var _0x8520x18=signToken(_0x8520xa[_0x4d9b[13]][_0x4d9b[15]],_0x8520xa[_0x4d9b[13]][_0x4d9b[25]]);_0x8520xb[_0x4d9b[34]](_0x4d9b[32],JSON[_0x4d9b[33]](_0x8520x18));_0x8520xb[_0x4d9b[36]](_0x4d9b[35]);}exports[_0x4d9b[37]]=isAuthenticated;exports[_0x4d9b[38]]=hasRole;exports[_0x4d9b[39]]=signToken;exports[_0x4d9b[40]]=setTokenCookie;
\ No newline at end of file
index 9816ada..3e9eca1 100644 (file)
@@ -1 +1 @@
-var _0x1b8c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x65\x6D\x61\x69\x6C","\x75\x73\x65\x72\x5F\x61\x62\x6F\x75\x74\x5F\x6D\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1b8c[0];var express=require(_0x1b8c[1]);var passport=require(_0x1b8c[2]);var auth=require(_0x1b8c[3]);var router=express.Router();router[_0x1b8c[9]](_0x1b8c[10],passport[_0x1b8c[7]](_0x1b8c[5],{scope:[_0x1b8c[11],_0x1b8c[12]],failureRedirect:_0x1b8c[6],session:false}))[_0x1b8c[9]](_0x1b8c[4],passport[_0x1b8c[7]](_0x1b8c[5],{failureRedirect:_0x1b8c[6],session:false}),auth[_0x1b8c[8]]);module[_0x1b8c[13]]=router;
\ No newline at end of file
+var _0xd4dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x65\x6D\x61\x69\x6C","\x75\x73\x65\x72\x5F\x61\x62\x6F\x75\x74\x5F\x6D\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd4dc[0];var express=require(_0xd4dc[1]);var passport=require(_0xd4dc[2]);var auth=require(_0xd4dc[3]);var router=express.Router();router[_0xd4dc[9]](_0xd4dc[10],passport[_0xd4dc[7]](_0xd4dc[5],{scope:[_0xd4dc[11],_0xd4dc[12]],failureRedirect:_0xd4dc[6],session:false}))[_0xd4dc[9]](_0xd4dc[4],passport[_0xd4dc[7]](_0xd4dc[5],{failureRedirect:_0xd4dc[6],session:false}),auth[_0xd4dc[8]]);module[_0xd4dc[13]]=router;
\ No newline at end of file
index 31e02ed..bb7afe9 100644 (file)
@@ -1 +1 @@
-var _0x5349=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x73\x65\x74\x75\x70","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x65\x6D\x61\x69\x6C\x73","\x75\x73\x65\x72","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0x5349[0]);var FacebookStrategy=require(_0x5349[2])[_0x5349[1]];exports[_0x5349[3]]=function(_0x8346x3,_0x8346x4){passport[_0x5349[17]]( new FacebookStrategy({clientID:_0x8346x4[_0x5349[5]][_0x5349[4]],clientSecret:_0x8346x4[_0x5349[5]][_0x5349[6]],callbackURL:_0x8346x4[_0x5349[5]][_0x5349[7]]},function(_0x8346x5,_0x8346x6,_0x8346x7,_0x8346x8){_0x8346x3[_0x5349[16]]({"\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x69\x64":_0x8346x7[_0x5349[8]]},function(_0x8346x9,_0x8346xa){if(_0x8346x9){return _0x8346x8(_0x8346x9)};if(!_0x8346xa){_0x8346xa= new _0x8346x3({name:_0x8346x7[_0x5349[9]],email:_0x8346x7[_0x5349[11]][0][_0x5349[10]],role:_0x5349[12],username:_0x8346x7[_0x5349[13]],provider:_0x5349[5],facebook:_0x8346x7[_0x5349[14]]});_0x8346xa[_0x5349[15]](function(_0x8346x9){if(_0x8346x9){_0x8346x8(_0x8346x9)};return _0x8346x8(_0x8346x9,_0x8346xa);});}else {return _0x8346x8(_0x8346x9,_0x8346xa)};})}))};
\ No newline at end of file
+var _0x2e25=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x73\x65\x74\x75\x70","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x65\x6D\x61\x69\x6C\x73","\x75\x73\x65\x72","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0x2e25[0]);var FacebookStrategy=require(_0x2e25[2])[_0x2e25[1]];exports[_0x2e25[3]]=function(_0xf973x3,_0xf973x4){passport[_0x2e25[17]]( new FacebookStrategy({clientID:_0xf973x4[_0x2e25[5]][_0x2e25[4]],clientSecret:_0xf973x4[_0x2e25[5]][_0x2e25[6]],callbackURL:_0xf973x4[_0x2e25[5]][_0x2e25[7]]},function(_0xf973x5,_0xf973x6,_0xf973x7,_0xf973x8){_0xf973x3[_0x2e25[16]]({"\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x69\x64":_0xf973x7[_0x2e25[8]]},function(_0xf973x9,_0xf973xa){if(_0xf973x9){return _0xf973x8(_0xf973x9)};if(!_0xf973xa){_0xf973xa= new _0xf973x3({name:_0xf973x7[_0x2e25[9]],email:_0xf973x7[_0x2e25[11]][0][_0x2e25[10]],role:_0x2e25[12],username:_0xf973x7[_0x2e25[13]],provider:_0x2e25[5],facebook:_0xf973x7[_0x2e25[14]]});_0xf973xa[_0x2e25[15]](function(_0xf973x9){if(_0xf973x9){_0xf973x8(_0xf973x9)};return _0xf973x8(_0xf973x9,_0xf973xa);});}else {return _0xf973x8(_0xf973x9,_0xf973xa)};})}))};
\ No newline at end of file
index 89f1f4a..eef5777 100644 (file)
@@ -1 +1 @@
-var _0x7bbf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x6F\x6F\x67\x6C\x65","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x61\x70\x69\x73\x2E\x63\x6F\x6D\x2F\x61\x75\x74\x68\x2F\x75\x73\x65\x72\x69\x6E\x66\x6F\x2E\x70\x72\x6F\x66\x69\x6C\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x61\x70\x69\x73\x2E\x63\x6F\x6D\x2F\x61\x75\x74\x68\x2F\x75\x73\x65\x72\x69\x6E\x66\x6F\x2E\x65\x6D\x61\x69\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x7bbf[0];var express=require(_0x7bbf[1]);var passport=require(_0x7bbf[2]);var auth=require(_0x7bbf[3]);var router=express.Router();router[_0x7bbf[9]](_0x7bbf[10],passport[_0x7bbf[7]](_0x7bbf[5],{failureRedirect:_0x7bbf[6],scope:[_0x7bbf[11],_0x7bbf[12]],session:false}))[_0x7bbf[9]](_0x7bbf[4],passport[_0x7bbf[7]](_0x7bbf[5],{failureRedirect:_0x7bbf[6],session:false}),auth[_0x7bbf[8]]);module[_0x7bbf[13]]=router;
\ No newline at end of file
+var _0x9785=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x6F\x6F\x67\x6C\x65","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x61\x70\x69\x73\x2E\x63\x6F\x6D\x2F\x61\x75\x74\x68\x2F\x75\x73\x65\x72\x69\x6E\x66\x6F\x2E\x70\x72\x6F\x66\x69\x6C\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x61\x70\x69\x73\x2E\x63\x6F\x6D\x2F\x61\x75\x74\x68\x2F\x75\x73\x65\x72\x69\x6E\x66\x6F\x2E\x65\x6D\x61\x69\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x9785[0];var express=require(_0x9785[1]);var passport=require(_0x9785[2]);var auth=require(_0x9785[3]);var router=express.Router();router[_0x9785[9]](_0x9785[10],passport[_0x9785[7]](_0x9785[5],{failureRedirect:_0x9785[6],scope:[_0x9785[11],_0x9785[12]],session:false}))[_0x9785[9]](_0x9785[4],passport[_0x9785[7]](_0x9785[5],{failureRedirect:_0x9785[6],session:false}),auth[_0x9785[8]]);module[_0x9785[13]]=router;
\ No newline at end of file
index 124ab47..feb51e5 100644 (file)
@@ -1 +1 @@
-var _0xfc5a=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x4F\x41\x75\x74\x68\x32\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x67\x6F\x6F\x67\x6C\x65\x2D\x6F\x61\x75\x74\x68","\x73\x65\x74\x75\x70","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x67\x6F\x6F\x67\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x65\x6D\x61\x69\x6C\x73","\x75\x73\x65\x72","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0xfc5a[0]);var GoogleStrategy=require(_0xfc5a[2])[_0xfc5a[1]];exports[_0xfc5a[3]]=function(_0x8b72x3,_0x8b72x4){passport[_0xfc5a[17]]( new GoogleStrategy({clientID:_0x8b72x4[_0xfc5a[5]][_0xfc5a[4]],clientSecret:_0x8b72x4[_0xfc5a[5]][_0xfc5a[6]],callbackURL:_0x8b72x4[_0xfc5a[5]][_0xfc5a[7]]},function(_0x8b72x5,_0x8b72x6,_0x8b72x7,_0x8b72x8){_0x8b72x3[_0xfc5a[16]]({"\x67\x6F\x6F\x67\x6C\x65\x2E\x69\x64":_0x8b72x7[_0xfc5a[8]]},function(_0x8b72x9,_0x8b72xa){if(!_0x8b72xa){_0x8b72xa= new _0x8b72x3({name:_0x8b72x7[_0xfc5a[9]],email:_0x8b72x7[_0xfc5a[11]][0][_0xfc5a[10]],role:_0xfc5a[12],username:_0x8b72x7[_0xfc5a[13]],provider:_0xfc5a[5],google:_0x8b72x7[_0xfc5a[14]]});_0x8b72xa[_0xfc5a[15]](function(_0x8b72x9){if(_0x8b72x9){_0x8b72x8(_0x8b72x9)};return _0x8b72x8(_0x8b72x9,_0x8b72xa);});}else {return _0x8b72x8(_0x8b72x9,_0x8b72xa)}})}))};
\ No newline at end of file
+var _0xa303=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x4F\x41\x75\x74\x68\x32\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x67\x6F\x6F\x67\x6C\x65\x2D\x6F\x61\x75\x74\x68","\x73\x65\x74\x75\x70","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x67\x6F\x6F\x67\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x65\x6D\x61\x69\x6C\x73","\x75\x73\x65\x72","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0xa303[0]);var GoogleStrategy=require(_0xa303[2])[_0xa303[1]];exports[_0xa303[3]]=function(_0x992ex3,_0x992ex4){passport[_0xa303[17]]( new GoogleStrategy({clientID:_0x992ex4[_0xa303[5]][_0xa303[4]],clientSecret:_0x992ex4[_0xa303[5]][_0xa303[6]],callbackURL:_0x992ex4[_0xa303[5]][_0xa303[7]]},function(_0x992ex5,_0x992ex6,_0x992ex7,_0x992ex8){_0x992ex3[_0xa303[16]]({"\x67\x6F\x6F\x67\x6C\x65\x2E\x69\x64":_0x992ex7[_0xa303[8]]},function(_0x992ex9,_0x992exa){if(!_0x992exa){_0x992exa= new _0x992ex3({name:_0x992ex7[_0xa303[9]],email:_0x992ex7[_0xa303[11]][0][_0xa303[10]],role:_0xa303[12],username:_0x992ex7[_0xa303[13]],provider:_0xa303[5],google:_0x992ex7[_0xa303[14]]});_0x992exa[_0xa303[15]](function(_0x992ex9){if(_0x992ex9){_0x992ex8(_0x992ex9)};return _0x992ex8(_0x992ex9,_0x992exa);});}else {return _0x992ex8(_0x992ex9,_0x992exa)}})}))};
\ No newline at end of file
index 22e3d9b..975d990 100644 (file)
@@ -1 +1 @@
-var _0x39c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x74\x75\x70","\x2E\x2F\x6C\x6F\x63\x61\x6C\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x67\x6F\x6F\x67\x6C\x65\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x74\x77\x69\x74\x74\x65\x72\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2F\x6C\x6F\x63\x61\x6C","\x2E\x2F\x6C\x6F\x63\x61\x6C","\x75\x73\x65","\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2E\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2F\x74\x77\x69\x74\x74\x65\x72","\x2E\x2F\x74\x77\x69\x74\x74\x65\x72","\x2F\x67\x6F\x6F\x67\x6C\x65","\x2E\x2F\x67\x6F\x6F\x67\x6C\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x39c6[0];var express=require(_0x39c6[1]);var passport=require(_0x39c6[2]);var config=require(_0x39c6[3]);var User=require(_0x39c6[5])[_0x39c6[4]];require(_0x39c6[7])[_0x39c6[6]](User,config);require(_0x39c6[8])[_0x39c6[6]](User,config);require(_0x39c6[9])[_0x39c6[6]](User,config);require(_0x39c6[10])[_0x39c6[6]](User,config);var router=express.Router();router[_0x39c6[13]](_0x39c6[11],require(_0x39c6[12]));router[_0x39c6[13]](_0x39c6[14],require(_0x39c6[15]));router[_0x39c6[13]](_0x39c6[16],require(_0x39c6[17]));router[_0x39c6[13]](_0x39c6[18],require(_0x39c6[19]));module[_0x39c6[20]]=router;
\ No newline at end of file
+var _0x1431=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x74\x75\x70","\x2E\x2F\x6C\x6F\x63\x61\x6C\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x67\x6F\x6F\x67\x6C\x65\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x74\x77\x69\x74\x74\x65\x72\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2F\x6C\x6F\x63\x61\x6C","\x2E\x2F\x6C\x6F\x63\x61\x6C","\x75\x73\x65","\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2E\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2F\x74\x77\x69\x74\x74\x65\x72","\x2E\x2F\x74\x77\x69\x74\x74\x65\x72","\x2F\x67\x6F\x6F\x67\x6C\x65","\x2E\x2F\x67\x6F\x6F\x67\x6C\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1431[0];var express=require(_0x1431[1]);var passport=require(_0x1431[2]);var config=require(_0x1431[3]);var User=require(_0x1431[5])[_0x1431[4]];require(_0x1431[7])[_0x1431[6]](User,config);require(_0x1431[8])[_0x1431[6]](User,config);require(_0x1431[9])[_0x1431[6]](User,config);require(_0x1431[10])[_0x1431[6]](User,config);var router=express.Router();router[_0x1431[13]](_0x1431[11],require(_0x1431[12]));router[_0x1431[13]](_0x1431[14],require(_0x1431[15]));router[_0x1431[13]](_0x1431[16],require(_0x1431[17]));router[_0x1431[13]](_0x1431[18],require(_0x1431[19]));module[_0x1431[20]]=router;
\ No newline at end of file
index a5145eb..337aa63 100644 (file)
@@ -1 +1 @@
-var _0xf50e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x61\x73\x79\x6E\x63","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x6C\x6F\x63\x61\x6C\x2D\x6C\x6F\x67\x69\x6E","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x69\x64","\x72\x6F\x6C\x65","\x72\x65\x6D\x65\x6D\x62\x65\x72","\x62\x6F\x64\x79","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x63\x61\x74\x63\x68","\x6E\x61\x6D\x65","\x6C\x6F\x67\x69\x6E","\x2E\x2F\x6C\x6F\x63\x61\x6C\x2E\x61\x6D\x69","\x65\x61\x63\x68\x53\x65\x72\x69\x65\x73","\x74\x68\x65\x6E","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x6C\x6F\x67\x6F\x75\x74","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x73\x65\x72","\x6C\x6F\x67\x6F\x75\x74","\x72\x65\x64\x69\x72\x65\x63\x74","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xf50e[0];var express=require(_0xf50e[1]);var passport=require(_0xf50e[2]);var async=require(_0xf50e[3]);var auth=require(_0xf50e[4]);var User=require(_0xf50e[6])[_0xf50e[5]];var license=require(_0xf50e[7]);var router=express.Router();router[_0xf50e[27]](_0xf50e[8],function(_0xbc5fx8,_0xbc5fx9,_0xbc5fxa){passport[_0xf50e[26]](_0xf50e[9],function(_0xbc5fxb,_0xbc5fxc,_0xbc5fxd){var _0xbc5fxe=_0xbc5fxb||_0xbc5fxd;if(_0xbc5fxe){return _0xbc5fx9[_0xf50e[11]](401)[_0xf50e[10]](_0xbc5fxe)};if(!_0xbc5fxc){return _0xbc5fx9[_0xf50e[11]](404)[_0xf50e[10]]({message:_0xf50e[12]})};var _0xbc5fxf=auth[_0xf50e[17]](_0xbc5fxc[_0xf50e[13]],_0xbc5fxc[_0xf50e[14]],_0xbc5fx8[_0xf50e[16]][_0xf50e[15]]||false);User[_0xf50e[25]](_0xbc5fxc[_0xf50e[13]])[_0xf50e[23]](function(_0xbc5fxc){_0xbc5fxc[_0xf50e[24]]({attributes:[_0xf50e[19]]})[_0xf50e[23]](function(_0xbc5fx10){async[_0xf50e[22]](_0xbc5fx10,function _0xbc5fx11(_0xbc5fx12,_0xbc5fx13){require(_0xf50e[21])[_0xf50e[20]](_0xbc5fxc[_0xf50e[13]],_0xbc5fxc[_0xf50e[19]],_0xbc5fx12[_0xf50e[19]],_0xbc5fx13)},function _0xbc5fx14(){return _0xbc5fx9[_0xf50e[10]]({token:_0xbc5fxf,userId:_0xbc5fxc[_0xf50e[13]]})})})[_0xf50e[18]](function(_0xbc5fxb){return _0xbc5fxa(_0xbc5fxb)})})[_0xf50e[18]](function(_0xbc5fxb){return _0xbc5fxa(_0xbc5fxb)});})(_0xbc5fx8,_0xbc5fx9,_0xbc5fxa)});router[_0xf50e[33]](_0xf50e[28],auth[_0xf50e[29]](),function(_0xbc5fx8,_0xbc5fx9,_0xbc5fxa){User[_0xf50e[25]](_0xbc5fx8[_0xf50e[30]][_0xf50e[13]])[_0xf50e[23]](function(_0xbc5fxc){_0xbc5fxc[_0xf50e[24]]({attributes:[_0xf50e[19]]})[_0xf50e[23]](function(_0xbc5fx10){async[_0xf50e[22]](_0xbc5fx10,function _0xbc5fx11(_0xbc5fx12,_0xbc5fx13){require(_0xf50e[21])[_0xf50e[31]](_0xbc5fx8[_0xf50e[30]][_0xf50e[13]],_0xbc5fx8[_0xf50e[30]][_0xf50e[19]],_0xbc5fx12[_0xf50e[19]],_0xbc5fx13)},function _0xbc5fx14(){_0xbc5fx8[_0xf50e[31]]();_0xbc5fx9[_0xf50e[32]](_0xf50e[8]);})})[_0xf50e[18]](function(_0xbc5fxb){return _0xbc5fxa(_0xbc5fxb)})})[_0xf50e[18]](function(_0xbc5fxb){return _0xbc5fxa(_0xbc5fxb)})});module[_0xf50e[34]]=router;
\ No newline at end of file
+var _0x873f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x61\x73\x79\x6E\x63","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x6C\x6F\x63\x61\x6C\x2D\x6C\x6F\x67\x69\x6E","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x69\x64","\x72\x6F\x6C\x65","\x72\x65\x6D\x65\x6D\x62\x65\x72","\x62\x6F\x64\x79","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x63\x61\x74\x63\x68","\x6E\x61\x6D\x65","\x6C\x6F\x67\x69\x6E","\x2E\x2F\x6C\x6F\x63\x61\x6C\x2E\x61\x6D\x69","\x65\x61\x63\x68\x53\x65\x72\x69\x65\x73","\x74\x68\x65\x6E","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x6C\x6F\x67\x6F\x75\x74","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x73\x65\x72","\x6C\x6F\x67\x6F\x75\x74","\x72\x65\x64\x69\x72\x65\x63\x74","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x873f[0];var express=require(_0x873f[1]);var passport=require(_0x873f[2]);var async=require(_0x873f[3]);var auth=require(_0x873f[4]);var User=require(_0x873f[6])[_0x873f[5]];var license=require(_0x873f[7]);var router=express.Router();router[_0x873f[27]](_0x873f[8],function(_0xcf36x8,_0xcf36x9,_0xcf36xa){passport[_0x873f[26]](_0x873f[9],function(_0xcf36xb,_0xcf36xc,_0xcf36xd){var _0xcf36xe=_0xcf36xb||_0xcf36xd;if(_0xcf36xe){return _0xcf36x9[_0x873f[11]](401)[_0x873f[10]](_0xcf36xe)};if(!_0xcf36xc){return _0xcf36x9[_0x873f[11]](404)[_0x873f[10]]({message:_0x873f[12]})};var _0xcf36xf=auth[_0x873f[17]](_0xcf36xc[_0x873f[13]],_0xcf36xc[_0x873f[14]],_0xcf36x8[_0x873f[16]][_0x873f[15]]||false);User[_0x873f[25]](_0xcf36xc[_0x873f[13]])[_0x873f[23]](function(_0xcf36xc){_0xcf36xc[_0x873f[24]]({attributes:[_0x873f[19]]})[_0x873f[23]](function(_0xcf36x10){async[_0x873f[22]](_0xcf36x10,function _0xcf36x11(_0xcf36x12,_0xcf36x13){require(_0x873f[21])[_0x873f[20]](_0xcf36xc[_0x873f[13]],_0xcf36xc[_0x873f[19]],_0xcf36x12[_0x873f[19]],_0xcf36x13)},function _0xcf36x14(){return _0xcf36x9[_0x873f[10]]({token:_0xcf36xf,userId:_0xcf36xc[_0x873f[13]]})})})[_0x873f[18]](function(_0xcf36xb){return _0xcf36xa(_0xcf36xb)})})[_0x873f[18]](function(_0xcf36xb){return _0xcf36xa(_0xcf36xb)});})(_0xcf36x8,_0xcf36x9,_0xcf36xa)});router[_0x873f[33]](_0x873f[28],auth[_0x873f[29]](),function(_0xcf36x8,_0xcf36x9,_0xcf36xa){User[_0x873f[25]](_0xcf36x8[_0x873f[30]][_0x873f[13]])[_0x873f[23]](function(_0xcf36xc){_0xcf36xc[_0x873f[24]]({attributes:[_0x873f[19]]})[_0x873f[23]](function(_0xcf36x10){async[_0x873f[22]](_0xcf36x10,function _0xcf36x11(_0xcf36x12,_0xcf36x13){require(_0x873f[21])[_0x873f[31]](_0xcf36x8[_0x873f[30]][_0x873f[13]],_0xcf36x8[_0x873f[30]][_0x873f[19]],_0xcf36x12[_0x873f[19]],_0xcf36x13)},function _0xcf36x14(){_0xcf36x8[_0x873f[31]]();_0xcf36x9[_0x873f[32]](_0x873f[8]);})})[_0x873f[18]](function(_0xcf36xb){return _0xcf36xa(_0xcf36xb)})})[_0x873f[18]](function(_0xcf36xb){return _0xcf36xa(_0xcf36xb)})});module[_0x873f[34]]=router;
\ No newline at end of file
index 6bc919c..35cc339 100644 (file)
@@ -1 +1 @@
-var _0x9137=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x61\x6D\x69","\x6C\x6F\x67\x6F\x75\x74","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x53\x49\x50\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x61\x74\x61","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x55\x73\x65\x72\x49\x64","\x6C\x6F\x67","\x51\x75\x65\x75\x65\x52\x65\x6D\x6F\x76\x65","\x61\x63\x74\x69\x6F\x6E","\x6C\x6F\x67\x69\x6E","\x51\x75\x65\x75\x65\x41\x64\x64"];_0x9137[0];var util=require(_0x9137[1]);var amiController=require(_0x9137[2]);exports[_0x9137[3]]=function(_0x123fx3,_0x123fx4,_0x123fx5,_0x123fx6){var _0x123fx7={action:_0x9137[4],queue:_0x123fx5,interface:util[_0x9137[6]](_0x9137[5],_0x123fx4),paused:false};_0x123fx7[_0x9137[7]]=JSON[_0x9137[8]](_0x123fx7);_0x123fx7[_0x9137[9]]=_0x123fx3;amiController[_0x9137[12]](_0x123fx7,function(_0x123fx8,_0x123fx9){if(_0x123fx8){console[_0x9137[10]](_0x123fx8)};var _0x123fx7={action:_0x9137[11],queue:_0x123fx5,interface:util[_0x9137[6]](_0x9137[5],_0x123fx4)};_0x123fx7[_0x9137[7]]=JSON[_0x9137[8]](_0x123fx7);_0x123fx7[_0x9137[9]]=_0x123fx3;amiController[_0x9137[12]](_0x123fx7,_0x123fx6);});};exports[_0x9137[13]]=function(_0x123fx3,_0x123fx4,_0x123fx5,_0x123fx6){var _0x123fx7={action:_0x9137[14],queue:_0x123fx5,interface:util[_0x9137[6]](_0x9137[5],_0x123fx4),penalty:0,paused:false,membername:_0x123fx4};_0x123fx7[_0x9137[7]]=JSON[_0x9137[8]](_0x123fx7);_0x123fx7[_0x9137[9]]=_0x123fx3;amiController[_0x9137[12]](_0x123fx7,_0x123fx6);};
\ No newline at end of file
+var _0xa4fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x61\x6D\x69","\x6C\x6F\x67\x6F\x75\x74","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x53\x49\x50\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x61\x74\x61","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x55\x73\x65\x72\x49\x64","\x6C\x6F\x67","\x51\x75\x65\x75\x65\x52\x65\x6D\x6F\x76\x65","\x61\x63\x74\x69\x6F\x6E","\x6C\x6F\x67\x69\x6E","\x51\x75\x65\x75\x65\x41\x64\x64"];_0xa4fb[0];var util=require(_0xa4fb[1]);var amiController=require(_0xa4fb[2]);exports[_0xa4fb[3]]=function(_0xfaeex3,_0xfaeex4,_0xfaeex5,_0xfaeex6){var _0xfaeex7={action:_0xa4fb[4],queue:_0xfaeex5,interface:util[_0xa4fb[6]](_0xa4fb[5],_0xfaeex4),paused:false};_0xfaeex7[_0xa4fb[7]]=JSON[_0xa4fb[8]](_0xfaeex7);_0xfaeex7[_0xa4fb[9]]=_0xfaeex3;amiController[_0xa4fb[12]](_0xfaeex7,function(_0xfaeex8,_0xfaeex9){if(_0xfaeex8){console[_0xa4fb[10]](_0xfaeex8)};var _0xfaeex7={action:_0xa4fb[11],queue:_0xfaeex5,interface:util[_0xa4fb[6]](_0xa4fb[5],_0xfaeex4)};_0xfaeex7[_0xa4fb[7]]=JSON[_0xa4fb[8]](_0xfaeex7);_0xfaeex7[_0xa4fb[9]]=_0xfaeex3;amiController[_0xa4fb[12]](_0xfaeex7,_0xfaeex6);});};exports[_0xa4fb[13]]=function(_0xfaeex3,_0xfaeex4,_0xfaeex5,_0xfaeex6){var _0xfaeex7={action:_0xa4fb[14],queue:_0xfaeex5,interface:util[_0xa4fb[6]](_0xa4fb[5],_0xfaeex4),penalty:0,paused:false,membername:_0xfaeex4};_0xfaeex7[_0xa4fb[7]]=JSON[_0xa4fb[8]](_0xfaeex7);_0xfaeex7[_0xa4fb[9]]=_0xfaeex3;amiController[_0xa4fb[12]](_0xfaeex7,_0xfaeex6);};
\ No newline at end of file
index 6b0cd17..dfadb73 100644 (file)
@@ -1 +1 @@
-var _0x2d61=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x6C\x6F\x63\x61\x6C","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x73\x65\x74\x75\x70","\x6C\x6F\x63\x61\x6C\x2D\x6C\x6F\x67\x69\x6E","\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x61\x74\x63\x68","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x6C\x6F\x67\x69\x6E\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64\x2E","\x74\x68\x65\x6E","\x69\x73\x56\x61\x6C\x69\x64\x41\x67\x65\x6E\x74","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x57\x72\x6F\x6E\x67\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x2E","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0x2d61[0]);var LocalStrategy=require(_0x2d61[2])[_0x2d61[1]];var Settings=require(_0x2d61[4])[_0x2d61[3]];var license=require(_0x2d61[5]);exports[_0x2d61[6]]=function(_0x2f90x5,_0x2f90x6){passport[_0x2d61[17]](_0x2d61[7], new LocalStrategy({usernameField:_0x2d61[8],passwordField:_0x2d61[9]},function(_0x2f90x7,_0x2f90x8,_0x2f90x9){var _0x2f90xa;var _0x2f90xb;var _0x2f90xc;return _0x2f90x5[_0x2d61[16]]({where:{name:_0x2f90x7}})[_0x2d61[12]](function(_0x2f90xf){_0x2f90xa=_0x2f90xf;if(!_0x2f90xa||!_0x2f90xf[_0x2d61[14]](_0x2f90x8)){throw  new Error({message:_0x2d61[15]})};return _0x2f90xa;})[_0x2d61[12]](license[_0x2d61[13]]())[_0x2d61[12]](function(_0x2f90xe){if(_0x2f90xe){return _0x2f90x9(null,_0x2f90xa)}else {return _0x2f90x9(null,false,{message:_0x2d61[11]})}})[_0x2d61[10]](function(_0x2f90xd){return _0x2f90x9(null,false,_0x2f90xd)});}))};
\ No newline at end of file
+var _0x4e73=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x6C\x6F\x63\x61\x6C","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x73\x65\x74\x75\x70","\x6C\x6F\x63\x61\x6C\x2D\x6C\x6F\x67\x69\x6E","\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x61\x74\x63\x68","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x6C\x6F\x67\x69\x6E\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64\x2E","\x74\x68\x65\x6E","\x69\x73\x56\x61\x6C\x69\x64\x41\x67\x65\x6E\x74","\x6C\x6F\x67","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x57\x72\x6F\x6E\x67\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x2E","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0x4e73[0]);var LocalStrategy=require(_0x4e73[2])[_0x4e73[1]];var Settings=require(_0x4e73[4])[_0x4e73[3]];var license=require(_0x4e73[5]);exports[_0x4e73[6]]=function(_0x7029x5,_0x7029x6){passport[_0x4e73[18]](_0x4e73[7], new LocalStrategy({usernameField:_0x4e73[8],passwordField:_0x4e73[9]},function(_0x7029x7,_0x7029x8,_0x7029x9){var _0x7029xa;var _0x7029xb;var _0x7029xc;return _0x7029x5[_0x4e73[17]]({where:{name:_0x7029x7}})[_0x4e73[12]](function(_0x7029xf){console[_0x4e73[14]](_0x7029xf);_0x7029xa=_0x7029xf;if(!_0x7029xa||!_0x7029xf[_0x4e73[15]](_0x7029x8)){throw  new Error({message:_0x4e73[16]})};return _0x7029xa;})[_0x4e73[12]](license[_0x4e73[13]]())[_0x4e73[12]](function(_0x7029xe){if(_0x7029xe){return _0x7029x9(null,_0x7029xa)}else {return _0x7029x9(null,false,{message:_0x4e73[11]})}})[_0x4e73[10]](function(_0x7029xd){return _0x7029x9(null,false,_0x7029xd)});}))};
\ No newline at end of file
index be0110b..087a759 100644 (file)
@@ -1 +1 @@
-var _0x9f53=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x74\x77\x69\x74\x74\x65\x72","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x65\x78\x70\x6F\x72\x74\x73"];_0x9f53[0];var express=require(_0x9f53[1]);var passport=require(_0x9f53[2]);var auth=require(_0x9f53[3]);var router=express.Router();router[_0x9f53[9]](_0x9f53[10],passport[_0x9f53[7]](_0x9f53[5],{failureRedirect:_0x9f53[6],session:false}))[_0x9f53[9]](_0x9f53[4],passport[_0x9f53[7]](_0x9f53[5],{failureRedirect:_0x9f53[6],session:false}),auth[_0x9f53[8]]);module[_0x9f53[11]]=router;
\ No newline at end of file
+var _0x1977=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x74\x77\x69\x74\x74\x65\x72","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x65\x78\x70\x6F\x72\x74\x73"];_0x1977[0];var express=require(_0x1977[1]);var passport=require(_0x1977[2]);var auth=require(_0x1977[3]);var router=express.Router();router[_0x1977[9]](_0x1977[10],passport[_0x1977[7]](_0x1977[5],{failureRedirect:_0x1977[6],session:false}))[_0x1977[9]](_0x1977[4],passport[_0x1977[7]](_0x1977[5],{failureRedirect:_0x1977[6],session:false}),auth[_0x1977[8]]);module[_0x1977[11]]=router;
\ No newline at end of file
index c57bb54..2895b02 100644 (file)
@@ -1 +1 @@
-var _0xb8ec=["\x73\x65\x74\x75\x70","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x74\x77\x69\x74\x74\x65\x72","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x74\x77\x69\x74\x74\x65\x72","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x75\x73\x65\x72","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];exports[_0xb8ec[0]]=function(_0x91f2x1,_0x91f2x2){var _0x91f2x3=require(_0xb8ec[1]);var _0x91f2x4=require(_0xb8ec[3])[_0xb8ec[2]];_0x91f2x3[_0xb8ec[15]]( new _0x91f2x4({consumerKey:_0x91f2x2[_0xb8ec[5]][_0xb8ec[4]],consumerSecret:_0x91f2x2[_0xb8ec[5]][_0xb8ec[6]],callbackURL:_0x91f2x2[_0xb8ec[5]][_0xb8ec[7]]},function(_0x91f2x5,_0x91f2x6,_0x91f2x7,_0x91f2x8){_0x91f2x1[_0xb8ec[14]]({"\x74\x77\x69\x74\x74\x65\x72\x2E\x69\x64\x5F\x73\x74\x72":_0x91f2x7[_0xb8ec[8]]},function(_0x91f2x9,_0x91f2xa){if(_0x91f2x9){return _0x91f2x8(_0x91f2x9)};if(!_0x91f2xa){_0x91f2xa= new _0x91f2x1({name:_0x91f2x7[_0xb8ec[9]],username:_0x91f2x7[_0xb8ec[10]],role:_0xb8ec[11],provider:_0xb8ec[5],twitter:_0x91f2x7[_0xb8ec[12]]});_0x91f2xa[_0xb8ec[13]](function(_0x91f2x9){if(_0x91f2x9){return _0x91f2x8(_0x91f2x9)};return _0x91f2x8(_0x91f2x9,_0x91f2xa);});}else {return _0x91f2x8(_0x91f2x9,_0x91f2xa)};})}));};
\ No newline at end of file
+var _0x3cd3=["\x73\x65\x74\x75\x70","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x74\x77\x69\x74\x74\x65\x72","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x74\x77\x69\x74\x74\x65\x72","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x75\x73\x65\x72","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];exports[_0x3cd3[0]]=function(_0xfbaex1,_0xfbaex2){var _0xfbaex3=require(_0x3cd3[1]);var _0xfbaex4=require(_0x3cd3[3])[_0x3cd3[2]];_0xfbaex3[_0x3cd3[15]]( new _0xfbaex4({consumerKey:_0xfbaex2[_0x3cd3[5]][_0x3cd3[4]],consumerSecret:_0xfbaex2[_0x3cd3[5]][_0x3cd3[6]],callbackURL:_0xfbaex2[_0x3cd3[5]][_0x3cd3[7]]},function(_0xfbaex5,_0xfbaex6,_0xfbaex7,_0xfbaex8){_0xfbaex1[_0x3cd3[14]]({"\x74\x77\x69\x74\x74\x65\x72\x2E\x69\x64\x5F\x73\x74\x72":_0xfbaex7[_0x3cd3[8]]},function(_0xfbaex9,_0xfbaexa){if(_0xfbaex9){return _0xfbaex8(_0xfbaex9)};if(!_0xfbaexa){_0xfbaexa= new _0xfbaex1({name:_0xfbaex7[_0x3cd3[9]],username:_0xfbaex7[_0x3cd3[10]],role:_0x3cd3[11],provider:_0x3cd3[5],twitter:_0xfbaex7[_0x3cd3[12]]});_0xfbaexa[_0x3cd3[13]](function(_0xfbaex9){if(_0xfbaex9){return _0xfbaex8(_0xfbaex9)};return _0xfbaex8(_0xfbaex9,_0xfbaexa);});}else {return _0xfbaex8(_0xfbaex9,_0xfbaexa)};})}));};
\ No newline at end of file
index 242c585..1730d71 100644 (file)
@@ -1 +1 @@
-var _0x5fbf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x67\x69","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x78\x6D\x6C\x32\x6A\x73","\x77\x61\x69\x74\x2E\x66\x6F\x72","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x68\x65\x6C\x6C\x6A\x73","\x6F\x64\x62\x63","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x53\x65\x74\x74\x69\x6E\x67\x73","\x55\x73\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x54\x72\x75\x6E\x6B","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x55\x70\x6C\x6F\x61\x64","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C","\x61\x6E\x73\x77\x65\x72","\x2D\x2D\x41\x4E\x53\x57\x45\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6C\x6F\x67","\x41\x6E\x73\x77\x65\x72\x69\x6E\x67\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x2E\x2E\x2E","\x41\x4E\x53\x57\x45\x52\x0A","\x73\x65\x6E\x64","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x2D\x2D\x43\x55\x53\x54\x4F\x4D\x20\x41\x50\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x63\x75\x73\x74\x6F\x6D\x20\x61\x70\x70\x20\x22","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x22\x2E\x2E\x2E","\x6F\x70\x74\x69\x6F\x6E\x73","\x65\x78\x65\x63","\x64\x69\x61\x6C","\x2D\x2D\x49\x4E\x54\x45\x52\x4E\x41\x4C\x5F\x44\x49\x41\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x73\x69\x70\x5F\x69\x64","\x66\x69\x6E\x64","\x43\x61\x6C\x6C\x69\x6E\x67\x20","\x53\x49\x50\x2F\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x2E\x2E\x2E","\x74\x69\x6D\x65\x6F\x75\x74","\x6F\x70\x74\x73","\x75\x72\x6C","\x44\x49\x41\x4C","\x2C","\x6A\x6F\x69\x6E","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x2D\x2D\x45\x58\x54\x45\x52\x4E\x41\x4C\x5F\x44\x49\x41\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x53\x49\x50\x2F\x25\x73\x40\x25\x73","\x70\x68\x6F\x6E\x65","\x71\x75\x65\x75\x65","\x2D\x2D\x51\x55\x45\x55\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x71\x75\x65\x75\x65\x5F\x69\x64","\x66\x69\x6C\x65\x5F\x69\x64","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4A\x6F\x69\x6E\x69\x6E\x67\x20","\x20\x71\x75\x65\x75\x65\x2E\x2E\x2E","\x51\x55\x45\x55\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2D\x2D\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x25\x73\x40\x25\x73","\x62\x6F\x78\x6E\x75\x6D\x62\x65\x72","\x63\x6F\x6E\x74\x65\x78\x74","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x2E\x2E","\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C","\x6D\x61\x74\x68","\x2D\x2D\x4D\x41\x54\x48\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x43\x61\x6C\x63\x75\x6C\x61\x74\x69\x6E\x67\x20\x65\x78\x70\x72\x65\x73\x73\x69\x6F\x6E\x2E\x2E\x2E","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x53\x61\x76\x69\x6E\x67\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x6E\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x2D\x2D\x50\x4C\x41\x59\x42\x41\x43\x4B\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x70\x6C\x61\x79\x62\x61\x63\x6B\x2E\x2E\x2E","\x50\x4C\x41\x59\x42\x41\x43\x4B","\x6D\x65\x6E\x75","\x2D\x2D\x4D\x45\x4E\x55\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x54\x68\x65\x72\x65\x20\x61\x72\x65\x20","\x72\x65\x74\x72\x79","\x20\x72\x65\x74\x72\x69\x65\x73","\x2F\x76\x61\x72\x2F\x77\x77\x77\x2F\x68\x74\x6D\x6C\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x62\x31\x39\x36\x34\x32\x64\x32\x66\x37\x31\x65\x39\x63\x66\x66\x66\x62\x64\x37\x38\x33\x66\x63\x63\x37\x39\x63\x37\x34\x31\x35","\x41\x6E\x6E\x6F\x75\x6E\x63\x69\x6E\x67\x20\x61\x6E\x64\x20\x77\x61\x69\x74\x69\x6E\x67\x20\x66\x6F\x72\x20\x75\x73\x65\x72\x20\x65\x6E\x74\x72\x79\x2E\x2E\x2E","\x47\x45\x54\x20\x44\x41\x54\x41\x20\x25\x73\x20\x25\x73\x20\x25\x73\x0A","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x64\x69\x67\x69\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x61\x62\x65\x6C","\x74\x61\x67","\x72\x65\x73\x75\x6C\x74","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20","\x3A","\x20\x62\x6C\x6F\x63\x6B\x20\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65","\x20\x28\x74\x69\x6D\x65\x6F\x75\x74\x29","\x53\x61\x76\x69\x6E\x67\x20\x75\x73\x65\x72\x20\x65\x6E\x74\x72\x79\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x64\x61\x74\x61","\x4D\x65\x6E\x75\x20\x74\x69\x6D\x65\x6F\x75\x74\x21","\x30","\x74","\x52\x75\x6E\x20\x6F\x75\x74\x20\x6F\x66\x20\x72\x65\x74\x72\x69\x65\x73\x21","\x2D","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x2D\x2D\x53\x41\x59\x4E\x55\x4D\x42\x45\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x6E\x75\x6D\x62\x65\x72\x2E\x2E\x2E","\x53\x41\x59\x20\x4E\x55\x4D\x42\x45\x52\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x6E\x75\x6D\x62\x65\x72","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x2D\x2D\x53\x41\x59\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x70\x68\x6F\x6E\x65\x74\x69\x63\x2E\x2E\x2E","\x53\x41\x59\x20\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x74\x65\x78\x74","\x74\x74\x73","\x2D\x2D\x47\x4F\x4F\x47\x4C\x45\x5F\x54\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x67\x69\x5F\x73\x63\x72\x69\x70\x74\x73","\x67\x6F\x6F\x67\x6C\x65\x74\x74\x73\x2E\x61\x67\x69","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x41\x50\x49\x2E\x2E\x2E","\x41\x47\x49","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x2D\x2D\x49\x53\x50\x45\x45\x43\x48\x5F\x54\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x2F\x76\x61\x72\x2F\x77\x77\x77\x2F\x68\x74\x6D\x6C\x2F\x61\x67\x69\x73\x71\x75\x61\x72\x65\x2F\x61\x67\x69\x73\x63\x72\x69\x70\x74\x73\x2F\x69\x73\x70\x65\x65\x63\x68\x2D\x74\x74\x73\x2E\x61\x67\x69","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6B\x65\x79","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x69\x53\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x41\x50\x49\x2E\x2E\x2E","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x2D\x2D\x47\x45\x54\x44\x49\x47\x49\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x2D\x31","\x54\x68\x65\x72\x65\x20\x69\x73\x20\x61\x20\x72\x65\x73\x75\x6C\x74\x2C\x20\x69\x73\x20\x6F\x76\x65\x72\x20\x74\x68\x65\x20\x6D\x69\x6E\x69\x6D\x75\x6D\x20\x6C\x65\x6E\x67\x74\x68\x20\x61\x6E\x64\x20\x6E\x6F\x74\x20\x64\x75\x65\x20\x74\x6F\x20\x61\x6E\x20\x68\x61\x6E\x67\x75\x70\x21","\x78","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x68\x61\x6E\x67\x75\x70\x21","\x4E\x6F\x20\x65\x6E\x74\x72\x79\x20\x6F\x72\x20\x6E\x6F\x74\x20\x6C\x6F\x6E\x67\x20\x65\x6E\x6F\x75\x67\x68\x21","\x69","\x72\x65\x63\x6F\x72\x64","\x2D\x2D\x52\x45\x43\x4F\x52\x44\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x63\x61\x6C\x6C\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x2E\x2E","\x52\x45\x43\x4F\x52\x44\x20\x46\x49\x4C\x45\x20\x25\x73\x20\x77\x61\x76\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73\x20\x25\x73\x20\x25\x73\x0A","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x63\x6F\x64\x65","\x53\x61\x76\x69\x6E\x67\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x20\x69\x6E\x20\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x53\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x25\x73\x20\x25\x73\x0A","\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x2D\x2D\x47\x4F\x54\x4F\x49\x46\x54\x49\x4D\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x66\x61\x6C\x73\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x64","\x66\x69\x6C\x74\x65\x72","\x49\x73\x20\x61\x20\x67\x72\x6F\x75\x70\x20\x6F\x66\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x21","\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x21","\x43\x68\x65\x63\x6B\x69\x6E\x67\x20\x69\x66\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x2E\x2E\x2E","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x20","\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x21","\x74\x72\x75\x65","\x66\x6F\x72\x45\x61\x63\x68","\x54\x68\x65\x72\x65\x20\x61\x72\x65\x20\x6E\x6F\x20\x73\x75\x62\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2C\x20\x73\x6F\x20\x69\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x61\x6C\x77\x61\x79\x73\x20\x74\x72\x75\x65\x21","\x49\x73\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x21","\x54\x68\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x21","\x54\x68\x65\x20\x66\x69\x6E\x61\x6C\x20\x72\x65\x73\x75\x6C\x74\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x22","\x22\x21","\x76\x73\x77\x69\x74\x63\x68","\x2D\x2D\x56\x41\x52\x49\x41\x42\x4C\x45\x5F\x53\x57\x49\x54\x43\x48\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x47\x65\x74\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x76\x61\x6C\x75\x65\x20\x61\x6E\x64\x20\x73\x65\x61\x72\x63\x68\x69\x6E\x67\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x65\x78\x69\x74\x2E\x2E\x2E","\x73\x79\x73\x74\x65\x6D","\x2D\x2D\x53\x59\x53\x54\x45\x4D\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x63\x6F\x6D\x6D\x61\x6E\x64","\x74\x72\x69\x6D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x73\x79\x73\x74\x65\x6D\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E\x2E\x2E","\x72\x65\x70\x6C\x61\x63\x65","\x50\x72\x6F\x67\x72\x61\x6D\x20\x6F\x75\x74\x70\x75\x74\x3A","\x53\x61\x76\x69\x6E\x67\x20\x74\x68\x65\x20\x6F\x75\x74\x70\x75\x74\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x22","\x2D\x2D\x41\x47\x49\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x41\x47\x49\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E\x2E\x2E","\x61\x72\x67\x73","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x2D\x2D\x53\x55\x42\x50\x52\x4F\x4A\x45\x43\x54\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x4D\x6F\x76\x69\x6E\x67\x20\x74\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x22\x22","\x61\x67\x69\x3A\x2F\x2F\x31\x39\x32\x2E\x31\x36\x38\x2E\x32\x2E\x31\x34\x37\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x2D\x2D\x49\x53\x50\x45\x45\x43\x48\x5F\x41\x53\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x69\x73\x70\x65\x65\x63\x68\x2D\x61\x73\x72\x2E\x61\x67\x69","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6D\x6F\x64\x65\x6C","\x31","\x23","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x41\x53\x52\x20\x41\x50\x49\x2E\x2E\x2E","\x64\x61\x74\x61\x62\x61\x73\x65","\x2D\x2D\x44\x41\x54\x41\x42\x41\x53\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6F\x64\x62\x63\x5F\x69\x64","\x54\x72\x79\x69\x6E\x67\x20\x74\x6F\x20\x67\x65\x74\x20\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\x2E\x2E","\x71\x75\x65\x72\x79","\x64\x73\x6E","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x65\x72\x72\x6F\x72\x3A\x20","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x73\x75\x63\x63\x65\x64\x65\x64\x2C\x20\x65\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x71\x75\x65\x72\x79\x2E\x2E\x2E","\x51\x75\x65\x72\x79\x20\x65\x72\x72\x6F\x72\x3A\x20","\x51\x75\x65\x72\x79\x20\x65\x78\x65\x63\x75\x74\x65\x64\x2C\x20\x63\x6C\x6F\x73\x69\x6E\x67\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\x2E\x2E","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x6C\x6F\x73\x69\x6E\x67\x20\x65\x72\x72\x6F\x72\x3A\x20","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x6C\x6F\x73\x65\x64\x2C\x20\x73\x61\x76\x69\x6E\x67\x20\x72\x65\x73\x75\x6C\x74\x69\x6E\x67\x20\x72\x6F\x77\x73\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x63\x6C\x6F\x73\x65","\x6F\x70\x65\x6E","\x67\x6F\x74\x6F\x63","\x2D\x2D\x47\x4F\x54\x4F\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x47\x6F\x69\x6E\x67\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x20\x2E\x2E\x2E","\x4C\x6F\x63\x61\x6C\x2F\x25\x73\x40\x25\x73","\x67\x6F\x74\x6F\x69\x66","\x2D\x2D\x47\x4F\x54\x4F\x49\x46\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x76\x61\x6C\x75\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x2E\x2E","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x68\x65\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x73\x20","\x68\x61\x6E\x67\x75\x70","\x2D\x2D\x48\x41\x4E\x47\x55\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x48\x61\x6E\x67\x69\x6E\x20\x75\x70\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x2E\x2E\x2E","\x6E\x6F\x6F\x70","\x2D\x2D\x4E\x4F\x4F\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6F\x75\x74\x70\x75\x74","\x4E\x4F\x4F\x50\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20","\x4E\x4F\x4F\x50","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x2D\x2D\x53\x41\x59\x44\x49\x47\x49\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x64\x69\x67\x69\x74\x73\x2E\x2E\x2E","\x53\x41\x59\x20\x44\x49\x47\x49\x54\x53\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x64\x69\x67\x69\x74\x73","\x73\x65\x74","\x2D\x2D\x53\x45\x54\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x76\x69\x6E\x67\x20\x76\x61\x6C\x75\x65\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x6D\x78\x63\x65\x6C\x6C","\x69\x73\x41\x72\x72\x61\x79","\x24","\x66\x6F\x72\x49\x6E","\x72\x65\x64\x75\x63\x65","\x65\x64\x67\x65","\x73\x6F\x75\x72\x63\x65","\x76\x61\x6C\x75\x65","\x24\x2E\x74\x61\x72\x67\x65\x74","\x6D\x61\x74\x63\x68","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x66\x6F\x72\x4D\x65\x74\x68\x6F\x64","\x28","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x29","\x72\x65\x70\x6C\x61\x63\x65\x64","\x76\x65\x72\x74\x69\x63\x65\x73","\x73\x74\x61\x72\x74","\x69\x73\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x66\x6F\x72","\x4E\x6F\x20\x74\x61\x72\x67\x65\x74\x20\x66\x6F\x75\x6E\x64\x2C\x20\x68\x61\x6E\x67\x75\x70\x21","\x66\x69\x6E\x61\x6C\x6C\x79","\x4E\x6F\x20\x74\x61\x72\x67\x65\x74\x20\x66\x6F\x75\x6E\x64\x2C\x20\x73\x74\x6F\x70\x70\x69\x6E\x67\x20\x22\x46\x69\x6E\x61\x6C\x6C\x79\x22\x20\x62\x72\x61\x6E\x63\x68\x21","\x65\x6E\x64","\x65\x72\x72\x6F\x72","\x2F\x2F\x45\x72\x72\x6F\x72\x3A","\x6F\x6E","\x2F\x2F\x43\x6F\x6E\x74\x65\x78\x74\x20\x63\x6C\x6F\x73\x65","\x2F\x2F\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x22\x46\x69\x6E\x61\x6C\x6C\x79\x22\x20\x62\x72\x61\x6E\x63\x68\x21","\x6C\x61\x75\x6E\x63\x68\x46\x69\x62\x65\x72","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x65\x78\x69\x74\x20\x74\x69\x6D\x65\x20\x66\x72\x6F\x6D\x20\x49\x56\x52","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x75\x70\x64\x61\x74\x65","\x2F\x2F\x43\x6F\x6E\x74\x65\x78\x74\x20\x48\x61\x6E\x67\x75\x70","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x52\x65\x63\x65\x69\x76\x65\x64\x20\x6E\x65\x77\x20\x63\x61\x6C\x6C\x20\x66\x72\x6F\x6D\x3A\x20","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x65\x72\x69\x64","\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x3A\x20","\x61\x67\x69\x5F\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B","\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B\x5F\x73\x63\x72\x69\x70\x74","\x61\x67\x69\x5F\x72\x65\x71\x75\x65\x73\x74","\x61\x67\x69\x5F\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x67\x69\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x61\x67\x69\x5F\x74\x79\x70\x65","\x61\x67\x69\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x70\x72\x65\x73","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x61\x6E\x69\x32","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x74\x6F\x6E","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x74\x6E\x73","\x61\x67\x69\x5F\x64\x6E\x69\x64","\x61\x67\x69\x5F\x72\x64\x6E\x69\x73","\x61\x67\x69\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x61\x67\x69\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x61\x67\x69\x5F\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x67\x69\x5F\x65\x6E\x68\x61\x6E\x63\x65\x64","\x61\x67\x69\x5F\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x61\x67\x69\x5F\x74\x68\x72\x65\x61\x64\x69\x64","\x61\x67\x69\x5F\x61\x72\x67\x5F\x31","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x65\x6E\x74\x65\x72\x20\x74\x69\x6D\x65\x20\x66\x6F\x72\x20\x49\x56\x52","\x45\x72\x72\x6F\x72\x3A","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x6D\x78\x67\x72\x61\x70\x68\x6D\x6F\x64\x65\x6C","\x4E\x6F\x20\x72\x6F\x6F\x74\x20\x69\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74\x21","\x70\x61\x72\x73\x65\x53\x74\x72\x69\x6E\x67","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x70\x75\x62\x6C\x69\x73\x68\x65\x64\x21","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x66\x6F\x75\x6E\x64\x21","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x61\x72\x67\x75\x6D\x65\x6E\x74\x21","\x73\x70\x6C\x69\x74","\x2A","\x74\x5F\x66\x72\x6F\x6D","\x48\x48\x3A\x6D\x6D","\x74\x5F\x74\x6F","\x77\x64\x5F\x66\x72\x6F\x6D","\x77\x64\x5F\x74\x6F","\x6D\x64\x5F\x66\x72\x6F\x6D","\x6D\x64\x5F\x74\x6F","\x6D\x5F\x66\x72\x6F\x6D","\x6D\x5F\x74\x6F","\x45","\x44","\x4D","\x70\x75\x73\x68","\x69\x73\x42\x65\x74\x77\x65\x65\x6E","\x69\x6E\x64\x65\x78\x4F\x66","\x53\x65\x74\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x53\x65\x6E\x64\x69\x6E\x67\x20\x73\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20","\x25\x73\x2F\x25\x73","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x70\x61\x74\x68","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x63\x6C\x6F\x6E\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74","\x61\x67\x69\x5F\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65\x20\x41\x47\x49\x2E\x2E\x2E","\x6C\x69\x73\x74\x65\x6E","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72"];_0x5fbf[0];var _=require(_0x5fbf[1]);var agi=require(_0x5fbf[2]);var util=require(_0x5fbf[3]);var moment=require(_0x5fbf[4]);var xml=require(_0x5fbf[5]);var wait=require(_0x5fbf[6]);var sr=require(_0x5fbf[7]);var path=require(_0x5fbf[8]);var config=require(_0x5fbf[9]);var sh=require(_0x5fbf[10]);var db=require(_0x5fbf[11])();var SquareProject=require(_0x5fbf[13])[_0x5fbf[12]];var Variable=require(_0x5fbf[13])[_0x5fbf[14]];var SquareOdbc=require(_0x5fbf[13])[_0x5fbf[15]];var Settings=require(_0x5fbf[13])[_0x5fbf[16]];var User=require(_0x5fbf[13])[_0x5fbf[17]];var VoiceQueue=require(_0x5fbf[13])[_0x5fbf[18]];var Trunk=require(_0x5fbf[13])[_0x5fbf[19]];var Interval=require(_0x5fbf[13])[_0x5fbf[20]];var Upload=require(_0x5fbf[13])[_0x5fbf[21]];var ReportSquare=require(_0x5fbf[13])[_0x5fbf[22]];var ReportSquareDetail=require(_0x5fbf[13])[_0x5fbf[23]];var users,trunks,variables,intervals,projects,sounds,queues,dbConnections,generalUniqueId;var agiPort;var weekDaysCollection={mon:1,tue:2,wed:3,thu:4,fri:5,sat:6,sun:7};var monthsCollection={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12};var methods={};methods[_0x5fbf[24]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[25]);console[_0x5fbf[26]](_0x5fbf[27]);_0x8a3ex24[_0x5fbf[29]](_0x5fbf[28],function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[30]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[31]);console[_0x5fbf[26]](_0x5fbf[32]+_0x8a3ex25[_0x5fbf[33]]+_0x5fbf[34]);_0x8a3ex24[_0x5fbf[36]](_0x8a3ex25[_0x5fbf[33]],_0x8a3ex25[_0x5fbf[35]],function(_0x8a3ex27,_0x8a3ex28){if(_0x8a3ex26){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)}});};methods[_0x5fbf[37]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[38]);if(!users){getUsers(false)};var _0x8a3ex29=_[_0x5fbf[40]](users,{id:parseInt(_0x8a3ex25[_0x5fbf[39]])});console[_0x5fbf[26]](_0x5fbf[41]+util[_0x5fbf[44]](_0x5fbf[42],_0x8a3ex29[_0x5fbf[43]])+_0x5fbf[45]);var _0x8a3ex2a=[util[_0x5fbf[44]](_0x5fbf[42],_0x8a3ex29[_0x5fbf[43]]),_0x8a3ex25[_0x5fbf[46]],_0x8a3ex25[_0x5fbf[47]],_0x8a3ex25[_0x5fbf[48]]];_0x8a3ex24[_0x5fbf[36]](_0x5fbf[49],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[52]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[53]);if(!trunks){getTrunks(false)};var _0x8a3ex2b=_[_0x5fbf[40]](trunks,{id:parseInt(_0x8a3ex25[_0x5fbf[54]])});console[_0x5fbf[26]](_0x5fbf[41]+util[_0x5fbf[44]](_0x5fbf[42],_0x8a3ex2b[_0x5fbf[43]])+_0x5fbf[45]);var _0x8a3ex2a=[util[_0x5fbf[44]](_0x5fbf[55],_0x8a3ex25[_0x5fbf[56]],_0x8a3ex2b[_0x5fbf[43]]),_0x8a3ex25[_0x5fbf[46]],_0x8a3ex25[_0x5fbf[47]],_0x8a3ex25[_0x5fbf[48]]];_0x8a3ex24[_0x5fbf[36]](_0x5fbf[49],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[57]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[58]);if(!queues){getQueues(false)};var _0x8a3ex2c=_[_0x5fbf[40]](queues,{name:_0x8a3ex25[_0x5fbf[59]]});var _0x8a3ex2d=getFilePath(_0x8a3ex25[_0x5fbf[60]]);var _0x8a3ex2a=[_0x8a3ex2c[_0x5fbf[43]],_0x8a3ex25[_0x5fbf[47]],_0x8a3ex25[_0x5fbf[48]],_0x8a3ex2d,_0x8a3ex25[_0x5fbf[46]],_0x8a3ex25[_0x5fbf[2]],_0x8a3ex25[_0x5fbf[61]],_0x8a3ex25[_0x5fbf[62]],_0x5fbf[63],_0x8a3ex25[_0x5fbf[64]]];console[_0x5fbf[26]](_0x5fbf[65]+_0x8a3ex2c[_0x5fbf[43]]+_0x5fbf[66]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[67],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[68]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[69]);var _0x8a3ex2a=[util[_0x5fbf[44]](_0x5fbf[70],_0x8a3ex25[_0x5fbf[71]],_0x8a3ex25[_0x5fbf[72]]),_0x8a3ex25[_0x5fbf[47]]];console[_0x5fbf[26]](_0x5fbf[73]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[74],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[75]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[76]);console[_0x5fbf[26]](_0x5fbf[77]);var _0x8a3ex2e=eval(_0x8a3ex25[_0x5fbf[78]]);console[_0x5fbf[26]](_0x5fbf[79]);setVariable(_0x8a3ex24,_0x8a3ex25[_0x5fbf[80]],_0x8a3ex2e,_0x8a3ex26);};methods[_0x5fbf[81]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[82]);var _0x8a3ex2f=getFilePath(_0x8a3ex25[_0x5fbf[60]]);var _0x8a3ex2a=[_0x8a3ex2f,_0x8a3ex25[_0x5fbf[47]]];console[_0x5fbf[26]](_0x5fbf[83]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[84],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[85]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[86]);var _0x8a3ex28={};console[_0x5fbf[26]](_0x5fbf[87]+_0x8a3ex25[_0x5fbf[88]]+_0x5fbf[89]);if(_0x8a3ex25[_0x5fbf[88]]>0){_0x8a3ex25[_0x5fbf[88]]--;var _0x8a3ex30=_0x5fbf[90];console[_0x5fbf[26]](_0x5fbf[91]);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[92],_0x8a3ex30,parseInt(_0x8a3ex25[_0x5fbf[93]])*1000,_0x8a3ex25[_0x5fbf[94]]),function(_0x8a3ex27,_0x8a3ex28){var _0x8a3ex31={uniqueid:_0x8a3ex24[_0x5fbf[95]],node:_0x8a3ex25[_0x5fbf[96]],application:_0x8a3ex25[_0x5fbf[97]],data:_0x8a3ex28[_0x5fbf[98]]||null};ReportSquareDetail[_0x5fbf[103]](_0x8a3ex31)[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[99]+_0x8a3ex25[_0x5fbf[97]]+_0x5fbf[100]+_0x8a3ex25[_0x5fbf[96]]+_0x5fbf[101],_0x8a3ex27)});if(_0x8a3ex28[_0x5fbf[98]]!==_0x5fbf[104]){var _0x8a3ex32=parseInt(_0x8a3ex25[_0x5fbf[80]]);if(_0x8a3ex32){console[_0x5fbf[26]](_0x5fbf[105]);setVariable(_0x8a3ex24,_0x8a3ex32,_0x8a3ex28[_0x5fbf[98]]);};_0x8a3ex28[_0x5fbf[106]]=_0x8a3ex28[_0x5fbf[98]];_0x8a3ex26(null,_0x8a3ex28);}else {console[_0x5fbf[26]](_0x5fbf[107]);_0x8a3ex28={code:200,result:_0x5fbf[108],data:_0x5fbf[109]};_0x8a3ex26(null,_0x8a3ex28);};});}else {console[_0x5fbf[26]](_0x5fbf[110]);_0x8a3ex28={code:200,result:_0x5fbf[108],data:_0x5fbf[111]};_0x8a3ex26(null,_0x8a3ex28);};};methods[_0x5fbf[112]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[113]);console[_0x5fbf[26]](_0x5fbf[114]);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[115],_0x8a3ex25[_0x5fbf[116]],_0x8a3ex25[_0x5fbf[117]]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[118]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[119]);console[_0x5fbf[26]](_0x5fbf[120]);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[121],_0x8a3ex25[_0x5fbf[122]],_0x8a3ex25[_0x5fbf[117]]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[123]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[124]);var _0x8a3ex2a=[path[_0x5fbf[51]](config[_0x5fbf[125]],_0x5fbf[126],_0x5fbf[127]),encodeURIComponent(_0x8a3ex25[_0x5fbf[122]]),_0x8a3ex25[_0x5fbf[128]]];console[_0x5fbf[26]](_0x5fbf[129]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[130],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[131]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[132]);var _0x8a3ex2a=[_0x5fbf[133],encodeURIComponent(_0x8a3ex25[_0x5fbf[122]]),_0x8a3ex25[_0x5fbf[134]],_0x5fbf[63],_0x5fbf[63],_0x8a3ex25[_0x5fbf[135]]];console[_0x5fbf[26]](_0x5fbf[136]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[130],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[137]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[138]);var _0x8a3ex28={};console[_0x5fbf[26]](_0x5fbf[87]+_0x8a3ex25[_0x5fbf[88]]+_0x5fbf[89]);if(_0x8a3ex25[_0x5fbf[88]]>0){_0x8a3ex25[_0x5fbf[88]]--;var _0x8a3ex30=getFilePath(_0x8a3ex25[_0x5fbf[60]]);console[_0x5fbf[26]](_0x5fbf[91]);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[92],_0x8a3ex30,parseInt(_0x8a3ex25[_0x5fbf[93]])*1000,_0x8a3ex25[_0x5fbf[139]]),function(_0x8a3ex27,_0x8a3ex28){var _0x8a3ex31={uniqueid:_0x8a3ex24[_0x5fbf[95]],node:_0x8a3ex25[_0x5fbf[96]],application:_0x8a3ex25[_0x5fbf[97]],data:_0x8a3ex28[_0x5fbf[98]]||null};ReportSquareDetail[_0x5fbf[103]](_0x8a3ex31)[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[99]+_0x8a3ex25[_0x5fbf[97]]+_0x5fbf[100]+_0x8a3ex25[_0x5fbf[96]]+_0x5fbf[101],_0x8a3ex27)});if(_0x8a3ex28[_0x5fbf[98]]&&_0x8a3ex28[_0x5fbf[98]][_0x5fbf[140]]>=parseInt(_0x8a3ex25[_0x5fbf[141]])){if(_0x8a3ex28[_0x5fbf[98]]!==_0x5fbf[142]){console[_0x5fbf[26]](_0x5fbf[143]);var _0x8a3ex32=parseInt(_0x8a3ex25[_0x5fbf[80]]);if(_0x8a3ex32){console[_0x5fbf[26]](_0x5fbf[105]);setVariable(_0x8a3ex24,_0x8a3ex32,_0x8a3ex28[_0x5fbf[98]]);};_0x8a3ex28={code:200,result:_0x5fbf[108],data:_0x5fbf[144]};_0x8a3ex26(null,_0x8a3ex28);}else {console[_0x5fbf[26]](_0x5fbf[145]);_0x8a3ex28={code:500,result:_0x5fbf[142]};_0x8a3ex26(null,_0x8a3ex28);}}else {console[_0x5fbf[26]](_0x5fbf[146]);_0x8a3ex28={code:200,result:_0x5fbf[108],data:_0x5fbf[147]};_0x8a3ex26(null,_0x8a3ex28);};});}else {console[_0x5fbf[26]](_0x5fbf[110]);_0x8a3ex28={code:500,result:_0x5fbf[142]};_0x8a3ex26(null,_0x8a3ex28);};};methods[_0x5fbf[148]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[149]);var _0x8a3ex33=sr();console[_0x5fbf[26]](_0x5fbf[150]);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[151],path[_0x5fbf[51]](config[_0x5fbf[125]],_0x5fbf[152],_0x8a3ex33),_0x8a3ex25[_0x5fbf[117]],_0x8a3ex25[_0x5fbf[46]],null,true,null),function(_0x8a3ex27,_0x8a3ex28){if(_0x8a3ex28[_0x5fbf[153]]===200&&_0x8a3ex28[_0x5fbf[98]]!==_0x5fbf[142]){console[_0x5fbf[26]](_0x5fbf[154]);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[155],_0x5fbf[156],_0x8a3ex33),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});}else {_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)}});};methods[_0x5fbf[157]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[158]);var _0x8a3ex28;var _0x8a3ex34=_0x5fbf[159];var _0x8a3ex35;if(!intervals){getIntervals(false)};var _0x8a3ex36=_[_0x5fbf[40]](intervals,{id:parseInt(_0x8a3ex25[_0x5fbf[160]])});if(!_0x8a3ex36[_0x5fbf[161]]){_0x8a3ex35=_[_0x5fbf[163]](intervals,{IntervalId:parseInt(_0x8a3ex36[_0x5fbf[162]])})};if(_0x8a3ex35){console[_0x5fbf[26]](_0x5fbf[164]);if(_0x8a3ex35[_0x5fbf[140]]){console[_0x5fbf[26]](_0x5fbf[87]+_0x8a3ex35[_0x5fbf[140]]+_0x5fbf[165]);var _0x8a3ex37;console[_0x5fbf[26]](_0x5fbf[166]);_0x8a3ex35[_0x5fbf[171]](function(_0x8a3ex38,_0x8a3ex39){_0x8a3ex37=splitInterval(_0x8a3ex38[_0x5fbf[167]]);if(isIntervalValid(_0x8a3ex37)){console[_0x5fbf[26]](_0x5fbf[168]+_0x8a3ex39+_0x5fbf[169]);_0x8a3ex34=_0x5fbf[170];};});}else {console[_0x5fbf[26]](_0x5fbf[172]);_0x8a3ex34=_0x5fbf[170];};}else {console[_0x5fbf[26]](_0x5fbf[173]);var _0x8a3ex3a=splitInterval(_0x8a3ex36[_0x5fbf[167]]);if(isIntervalValid(_0x8a3ex3a)){console[_0x5fbf[26]](_0x5fbf[174]);_0x8a3ex34=_0x5fbf[170];};};console[_0x5fbf[26]](_0x5fbf[175]+_0x8a3ex34+_0x5fbf[176]);_0x8a3ex28={code:200,result:_0x5fbf[108],data:_0x8a3ex34};_0x8a3ex26(null,_0x8a3ex28);};methods[_0x5fbf[177]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[178]);console[_0x5fbf[26]](_0x5fbf[179]);var _0x8a3ex28={data:getVariable(_0x8a3ex24,_0x8a3ex25[_0x5fbf[80]])};_0x8a3ex26(null,_0x8a3ex28);};methods[_0x5fbf[180]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[181]);var _0x8a3ex31={uniqueid:_0x8a3ex24[_0x5fbf[95]],node:_0x8a3ex25[_0x5fbf[96]],application:_0x8a3ex25[_0x5fbf[97]],data:_[_0x5fbf[183]](_0x8a3ex25[_0x5fbf[182]])||null};ReportSquareDetail[_0x5fbf[103]](_0x8a3ex31)[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[99]+_0x8a3ex25[_0x5fbf[97]]+_0x5fbf[100]+_0x8a3ex25[_0x5fbf[96]]+_0x5fbf[101],_0x8a3ex27)});console[_0x5fbf[26]](_0x5fbf[184]);sh[_0x5fbf[36]](_[_0x5fbf[183]](_0x8a3ex25[_0x5fbf[182]]),function(_0x8a3ex3b,_0x8a3ex3c){var _0x8a3ex3d=_0x8a3ex3c[_0x5fbf[185]](/(\r\n|\n|\r)/gm,_0x5fbf[63]);console[_0x5fbf[26]](_0x5fbf[186],_0x8a3ex3d);console[_0x5fbf[26]](_0x5fbf[187]);setVariable(_0x8a3ex24,_0x8a3ex25[_0x5fbf[80]],_0x5fbf[188]+_0x8a3ex3d+_0x5fbf[188],_0x8a3ex26);});};methods[_0x5fbf[2]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[189]);console[_0x5fbf[26]](_0x5fbf[190]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[130],_0x8a3ex25[_0x5fbf[182]],_0x8a3ex25[_0x5fbf[191]],function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[192]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[193]);if(!projects){getProjects(false)};var _0x8a3ex3e=_[_0x5fbf[40]](projects,{id:parseInt(_0x8a3ex25[_0x5fbf[194]])});console[_0x5fbf[26]](_0x5fbf[195]+_0x8a3ex3e[_0x5fbf[43]]+_0x5fbf[34]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[130],util[_0x5fbf[44]](_0x5fbf[196],_0x8a3ex3e[_0x5fbf[43]]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[197]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[198]);var _0x8a3ex2a=[path[_0x5fbf[51]](config[_0x5fbf[125]],_0x5fbf[126],_0x5fbf[199]),_0x8a3ex25[_0x5fbf[200]],_0x5fbf[63],(_0x8a3ex25[_0x5fbf[201]]===_0x5fbf[108]?_0x5fbf[63]:_0x8a3ex25[_0x5fbf[201]]),_0x5fbf[202],_0x5fbf[203],_0x5fbf[63],_0x8a3ex25[_0x5fbf[135]]];console[_0x5fbf[26]](_0x5fbf[204]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[130],_0x8a3ex2a[_0x5fbf[51]](_0x5fbf[50]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[205]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[206]);if(!dbConnections){getDbConnections(false)};var _0x8a3ex3f=_[_0x5fbf[40]](dbConnections,{id:parseInt(_0x8a3ex25[_0x5fbf[207]])});console[_0x5fbf[26]](_0x5fbf[208]);var _0x8a3ex31={uniqueid:_0x8a3ex24[_0x5fbf[95]],node:_0x8a3ex25[_0x5fbf[96]],application:_0x8a3ex25[_0x5fbf[97]],data:_0x8a3ex25[_0x5fbf[209]]||null};ReportSquareDetail[_0x5fbf[103]](_0x8a3ex31)[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[99]+_0x8a3ex25[_0x5fbf[97]]+_0x5fbf[100]+_0x8a3ex25[_0x5fbf[96]]+_0x5fbf[101],_0x8a3ex27)});db[_0x5fbf[218]](_0x8a3ex3f[_0x5fbf[210]],function(_0x8a3ex27){if(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[211],_0x8a3ex27);var _0x8a3ex28={code:500,result:_0x5fbf[142]};_0x8a3ex26(null,_0x8a3ex28);}else {console[_0x5fbf[26]](_0x5fbf[212]);db[_0x5fbf[209]](_0x8a3ex25[_0x5fbf[209]],function(_0x8a3ex27,_0x8a3ex40){if(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[213],_0x8a3ex27);var _0x8a3ex28={code:500,result:_0x5fbf[142]};_0x8a3ex26(null,_0x8a3ex28);}else {console[_0x5fbf[26]](_0x5fbf[214]);db[_0x5fbf[217]](function(_0x8a3ex27){if(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[215],_0x8a3ex27);var _0x8a3ex28={code:500,result:_0x5fbf[142]};_0x8a3ex26(null,_0x8a3ex28);}else {console[_0x5fbf[26]](_0x5fbf[216]);setVariable(_0x8a3ex24,_0x8a3ex25[_0x5fbf[80]],_0x8a3ex40,_0x8a3ex26);}});}});}});};methods[_0x5fbf[219]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[220]);console[_0x5fbf[26]](_0x5fbf[221]+_0x8a3ex25[_0x5fbf[222]]+_0x5fbf[223]);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[49],util[_0x5fbf[44]](_0x5fbf[224],_0x8a3ex25[_0x5fbf[222]],_0x8a3ex25[_0x5fbf[72]]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[225]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[226]);var _0x8a3ex28={code:200,result:_0x5fbf[108]};console[_0x5fbf[26]](_0x5fbf[227]);_0x8a3ex28[_0x5fbf[106]]=String(eval(_0x8a3ex25[_0x5fbf[228]])?_0x5fbf[170]:_0x5fbf[159]);console[_0x5fbf[26]](_0x5fbf[229]+_0x8a3ex28[_0x5fbf[106]]);_0x8a3ex26(null,_0x8a3ex28);};methods[_0x5fbf[230]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[231]);console[_0x5fbf[26]](_0x5fbf[232]);_0x8a3ex24[_0x5fbf[230]]();};methods[_0x5fbf[233]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[234]);var _0x8a3ex3c=(_0x8a3ex25[_0x5fbf[235]])?_0x5fbf[188]+_0x8a3ex25[_0x5fbf[235]]+_0x5fbf[188]:_0x5fbf[188]+_0x8a3ex25[_0x5fbf[96]]+_0x5fbf[188];console[_0x5fbf[26]](_0x5fbf[236]+_0x8a3ex3c);_0x8a3ex24[_0x5fbf[36]](_0x5fbf[237],_0x8a3ex3c,function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[238]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[239]);console[_0x5fbf[26]](_0x5fbf[240]);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[241],_0x8a3ex25[_0x5fbf[242]],_0x8a3ex25[_0x5fbf[117]]),function(_0x8a3ex27,_0x8a3ex28){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)});};methods[_0x5fbf[243]]=function(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[244]);console[_0x5fbf[26]](_0x5fbf[245]);setVariable(_0x8a3ex24,_0x8a3ex25[_0x5fbf[80]],_0x8a3ex25[_0x5fbf[246]],_0x8a3ex26);};function getVertices(_0x8a3ex42){return _[_0x5fbf[251]](_0x8a3ex42,function(_0x8a3ex2e,_0x8a3ex43,_0x8a3ex44){if(_0x8a3ex44===_0x5fbf[247]){return _0x8a3ex2e};if(_[_0x5fbf[248]](_0x8a3ex43)){_[_0x5fbf[250]](_0x8a3ex43,function(_0x8a3ex45,_0x8a3ex46){_0x8a3ex2e[_0x8a3ex45[_0x5fbf[249]][_0x5fbf[162]]]=_0x8a3ex45[_0x5fbf[249]];_0x8a3ex2e[_0x8a3ex45[_0x5fbf[249]][_0x5fbf[162]]][_0x5fbf[97]]=_0x8a3ex44;});return _0x8a3ex2e;};_0x8a3ex2e[_0x8a3ex43[_0x5fbf[249]][_0x5fbf[162]]]=_0x8a3ex43[_0x5fbf[249]];_0x8a3ex2e[_0x8a3ex43[_0x5fbf[249]][_0x5fbf[162]]][_0x5fbf[97]]=_0x8a3ex44;return _0x8a3ex2e;},{})}function getTargetBySource(_0x8a3ex42,_0x8a3ex48,_0x8a3ex45){return _[_0x5fbf[98]](_[_0x5fbf[40]](_0x8a3ex42[_0x5fbf[247]],function(_0x8a3ex43){if(_0x8a3ex43[_0x5fbf[249]][_0x5fbf[252]]&&_0x8a3ex43[_0x5fbf[249]][_0x5fbf[253]]){if(_0x8a3ex43[_0x5fbf[249]][_0x5fbf[253]]===_0x8a3ex48){if(_0x8a3ex43[_0x5fbf[249]][_0x5fbf[254]]&&_0x8a3ex43[_0x5fbf[249]][_0x5fbf[254]]!==_0x8a3ex45){return false};return true;}};return false;}),_0x5fbf[255])}function replaceAllVariables(_0x8a3ex24,_0x8a3ex25,_0x8a3ex26){var _0x8a3ex4a=_0x8a3ex25;for(var _0x8a3ex46 in _0x8a3ex4a){var _0x8a3ex28=_0x8a3ex4a[_0x8a3ex46][_0x5fbf[256]](/{+(.*?)}/gi);if(_0x8a3ex28){for(var _0x8a3ex4b in _0x8a3ex28){var _0x8a3ex45=wait[_0x5fbf[259]](_0x8a3ex24,_0x5fbf[257],_0x8a3ex28[_0x8a3ex4b][_0x5fbf[258]](1,_0x8a3ex28[_0x8a3ex4b][_0x5fbf[140]]-1));if(_0x8a3ex45[_0x5fbf[153]]===200&&_0x8a3ex45[_0x5fbf[98]]!==_0x5fbf[108]){var _0x8a3ex4c=_0x8a3ex45[_0x5fbf[98]][_0x5fbf[258]](_0x8a3ex45[_0x5fbf[98]][_0x5fbf[261]](_0x5fbf[260])+1,_0x8a3ex45[_0x5fbf[98]][_0x5fbf[261]](_0x5fbf[262]));_0x8a3ex4a[_0x8a3ex46]=_0x8a3ex4a[_0x8a3ex46][_0x5fbf[185]](_0x8a3ex28[_0x8a3ex4b],_0x8a3ex4c);};}};};_0x8a3ex4a[_0x5fbf[263]]=true;return _0x8a3ex4a;}function xstart(_0x8a3ex24){var _0x8a3ex42=_0x8a3ex24[_0x5fbf[125]];var _0x8a3ex4e=_0x8a3ex24[_0x5fbf[264]];if(_0x8a3ex42[_0x5fbf[265]]){if(!_[_0x5fbf[248]](_0x8a3ex42[_0x5fbf[265]])){var _0x8a3ex48=_0x8a3ex42[_0x5fbf[265]][_0x5fbf[249]][_0x5fbf[162]];var _0x8a3ex28={};do{var _0x8a3ex25=_0x8a3ex4e[_0x8a3ex48][_0x5fbf[263]]?_0x8a3ex4e[_0x8a3ex48]:replaceAllVariables(_0x8a3ex24,_0x8a3ex4e[_0x8a3ex48]);if(_0x8a3ex25){if(_[_0x5fbf[266]](methods[_0x8a3ex25[_0x5fbf[97]]])){_0x8a3ex28=wait[_0x5fbf[267]](methods[_0x8a3ex25[_0x5fbf[97]]],_0x8a3ex24,_0x8a3ex25)}else {_0x8a3ex28=wait[_0x5fbf[267]](methods[_0x5fbf[233]],_0x8a3ex24,_0x8a3ex25)};if(_0x8a3ex28[_0x5fbf[153]]===200&&_0x8a3ex28[_0x5fbf[98]]!==_0x5fbf[142]){var _0x8a3ex4f=getTargetBySource(_0x8a3ex42,_0x8a3ex48,_0x8a3ex28[_0x5fbf[106]]);if(_0x8a3ex4f){}else {if(_0x8a3ex25[_0x5fbf[97]]===_0x5fbf[85]){if(_0x8a3ex25[_0x5fbf[88]]>0){_0x8a3ex4f=getTargetBySource(_0x8a3ex42,_0x8a3ex48,_0x5fbf[147]);if(_0x8a3ex4f){}else {_0x8a3ex4f=_0x8a3ex48};}};if(_0x8a3ex25[_0x5fbf[97]]===_0x5fbf[137]&&_0x8a3ex25[_0x5fbf[88]]>0){_0x8a3ex4f=_0x8a3ex48};};_0x8a3ex48=_0x8a3ex4f;}else {_0x8a3ex48=null};}else {_0x8a3ex48=null};}while(_0x8a3ex48);;console[_0x5fbf[26]](_0x5fbf[268]);_0x8a3ex24[_0x5fbf[230]]();}};}function xfinally(_0x8a3ex24){var _0x8a3ex42=_0x8a3ex24[_0x5fbf[125]];var _0x8a3ex4e=_0x8a3ex24[_0x5fbf[264]];if(_0x8a3ex42[_0x5fbf[269]]){if(!_[_0x5fbf[248]](_0x8a3ex42[_0x5fbf[269]])){var _0x8a3ex48=_0x8a3ex42[_0x5fbf[269]][_0x5fbf[249]][_0x5fbf[162]];var _0x8a3ex28={};do{var _0x8a3ex25=replaceAllVariables(_0x8a3ex24,_0x8a3ex4e[_0x8a3ex48]);if(_0x8a3ex25){if(_[_0x5fbf[266]](methods[_0x8a3ex25[_0x5fbf[97]]])){_0x8a3ex28=wait[_0x5fbf[267]](methods[_0x8a3ex25[_0x5fbf[97]]],_0x8a3ex24,_0x8a3ex25)}else {_0x8a3ex28=wait[_0x5fbf[267]](methods[_0x5fbf[233]],_0x8a3ex24,_0x8a3ex25)};if(_0x8a3ex28[_0x5fbf[153]]===200&&_0x8a3ex28[_0x5fbf[98]]!==_0x5fbf[142]){var _0x8a3ex4f=getTargetBySource(_0x8a3ex42,_0x8a3ex48,_0x8a3ex28[_0x5fbf[106]]);if(_0x8a3ex4f){}else {if(_0x8a3ex25[_0x5fbf[97]]===_0x5fbf[85]){if(_0x8a3ex25[_0x5fbf[88]]>0){_0x8a3ex4f=getTargetBySource(_0x8a3ex42,_0x8a3ex48,_0x5fbf[147]);if(_0x8a3ex4f){}else {_0x8a3ex4f=_0x8a3ex48};}};if(_0x8a3ex25[_0x5fbf[97]]===_0x5fbf[137]&&_0x8a3ex25[_0x5fbf[88]]>0){_0x8a3ex4f=_0x8a3ex48};};_0x8a3ex48=_0x8a3ex4f;}else {_0x8a3ex48=null};}else {_0x8a3ex48=null};}while(_0x8a3ex48);;_0x8a3ex24[_0x5fbf[230]]();console[_0x5fbf[26]](_0x5fbf[270]);}};_0x8a3ex24[_0x5fbf[271]]();}function main(_0x8a3ex24){_0x8a3ex24[_0x5fbf[274]](_0x5fbf[272],function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[273],_0x8a3ex27)});_0x8a3ex24[_0x5fbf[274]](_0x5fbf[217],function(){console[_0x5fbf[26]](_0x5fbf[275])});_0x8a3ex24[_0x5fbf[274]](_0x5fbf[230],function(){if(_0x8a3ex24[_0x5fbf[269]]){_0x8a3ex24[_0x5fbf[269]]=false;console[_0x5fbf[26]](_0x5fbf[276]);wait[_0x5fbf[277]](xfinally,_0x8a3ex24);}else {ReportSquare[_0x5fbf[280]]({leaveAt:moment()[_0x5fbf[44]](_0x5fbf[279])},{where:{uniqueid:_0x8a3ex24[_0x5fbf[95]]}})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[278],_0x8a3ex27)});console[_0x5fbf[26]](_0x5fbf[281]);}});_0x8a3ex24[_0x5fbf[274]](_0x5fbf[93],function(_0x8a3ex28){});_0x8a3ex24[_0x5fbf[274]](_0x5fbf[282],function(_0x8a3ex52){console[_0x5fbf[26]](_0x8a3ex52);console[_0x5fbf[26]](_0x5fbf[283]+_0x8a3ex52[_0x5fbf[284]]+_0x5fbf[285]+_0x8a3ex52[_0x5fbf[286]]);var _0x8a3ex53={network:_0x8a3ex52[_0x5fbf[287]],network_script:_0x8a3ex52[_0x5fbf[288]],request:_0x8a3ex52[_0x5fbf[289]],channel:_0x8a3ex52[_0x5fbf[290]],language:_0x8a3ex52[_0x5fbf[291]],type:_0x8a3ex52[_0x5fbf[292]],uniqueid:_0x8a3ex52[_0x5fbf[286]],version:_0x8a3ex52[_0x5fbf[293]],callerid:_0x8a3ex52[_0x5fbf[284]],calleridname:_0x8a3ex52[_0x5fbf[294]],callingpres:_0x8a3ex52[_0x5fbf[295]],callingani2:_0x8a3ex52[_0x5fbf[296]],callington:_0x8a3ex52[_0x5fbf[297]],callingtns:_0x8a3ex52[_0x5fbf[298]],dnid:_0x8a3ex52[_0x5fbf[299]],rdnis:_0x8a3ex52[_0x5fbf[300]],context:_0x8a3ex52[_0x5fbf[301]],extension:_0x8a3ex52[_0x5fbf[302]],priority:_0x8a3ex52[_0x5fbf[303]],enhanced:_0x8a3ex52[_0x5fbf[304]],accountcode:_0x8a3ex52[_0x5fbf[305]],threadid:_0x8a3ex52[_0x5fbf[306]],project_name:_0x8a3ex52[_0x5fbf[307]],joinAt:moment()[_0x5fbf[44]](_0x5fbf[279])};ReportSquare[_0x5fbf[103]](_0x8a3ex53)[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[308],_0x8a3ex27)});if(_0x8a3ex52[_0x5fbf[307]]){SquareProject[_0x5fbf[317]]({where:{name:_0x8a3ex52[_0x5fbf[307]]},attributes:[_0x5fbf[162],_0x5fbf[310]]})[_0x5fbf[316]](function(_0x8a3ex3e){if(_0x8a3ex3e){if(_0x8a3ex3e[_0x5fbf[310]]){xml[_0x5fbf[313]](_0x8a3ex3e[_0x5fbf[310]],{normalizeTags:true,explicitArray:false},function(_0x8a3ex27,_0x8a3ex2e){var _0x8a3ex42=_0x8a3ex2e[_0x5fbf[311]][_0x5fbf[125]];if(_0x8a3ex42){_0x8a3ex24[_0x5fbf[125]]=_0x8a3ex42;_0x8a3ex24[_0x5fbf[269]]=true;_0x8a3ex24[_0x5fbf[95]]=_0x8a3ex52[_0x5fbf[286]];_0x8a3ex24[_0x5fbf[264]]=getVertices(_0x8a3ex42);wait[_0x5fbf[277]](xstart,_0x8a3ex24);}else {console[_0x5fbf[26]](_0x5fbf[312]);_0x8a3ex24[_0x5fbf[271]]();};})}else {console[_0x5fbf[26]](_0x5fbf[314]);_0x8a3ex24[_0x5fbf[271]]();}}else {console[_0x5fbf[26]](_0x5fbf[315]);_0x8a3ex24[_0x5fbf[271]]();}})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x5fbf[309],_0x8a3ex27);_0x8a3ex24[_0x5fbf[271]]();})}else {console[_0x5fbf[26]](_0x5fbf[318]);_0x8a3ex24[_0x5fbf[271]]();};});}function splitInterval(_0x8a3ex36){var _0x8a3ex55={};var _0x8a3ex3a=_0x8a3ex36[_0x5fbf[319]](_0x5fbf[50]);var _0x8a3ex56;_0x8a3ex3a[_0x5fbf[171]](function(_0x8a3ex57,_0x8a3ex39){switch(_0x8a3ex39){case 0:if(_0x8a3ex57!==_0x5fbf[320]){_0x8a3ex56=_0x8a3ex57[_0x5fbf[319]](_0x5fbf[111]);_0x8a3ex55[_0x5fbf[321]]=moment(_0x8a3ex56[0],_0x5fbf[322]);_0x8a3ex55[_0x5fbf[323]]=moment(_0x8a3ex56[1],_0x5fbf[322]);}else {_0x8a3ex55[_0x5fbf[321]]=null;_0x8a3ex55[_0x5fbf[323]]=null;};break ;;case 1:if(_0x8a3ex57!==_0x5fbf[320]){_0x8a3ex56=_0x8a3ex57[_0x5fbf[319]](_0x5fbf[111]);_0x8a3ex55[_0x5fbf[324]]=weekDaysCollection[_0x8a3ex56[0]];_0x8a3ex55[_0x5fbf[325]]=_0x8a3ex56[1]?weekDaysCollection[_0x8a3ex56[1]]:null;}else {_0x8a3ex55[_0x5fbf[324]]=null;_0x8a3ex55[_0x5fbf[325]]=null;};break ;;case 2:if(_0x8a3ex57!==_0x5fbf[320]){_0x8a3ex56=_0x8a3ex57[_0x5fbf[319]](_0x5fbf[111]);_0x8a3ex55[_0x5fbf[326]]=_0x8a3ex56[0];_0x8a3ex55[_0x5fbf[327]]=_0x8a3ex56[1]?_0x8a3ex56[1]:null;}else {_0x8a3ex55[_0x5fbf[326]]=null;_0x8a3ex55[_0x5fbf[327]]=null;};break ;;case 3:if(_0x8a3ex57!==_0x5fbf[320]){_0x8a3ex56=_0x8a3ex57[_0x5fbf[319]](_0x5fbf[111]);_0x8a3ex55[_0x5fbf[328]]=monthsCollection[_0x8a3ex56[0]];_0x8a3ex55[_0x5fbf[329]]=_0x8a3ex56[1]?monthsCollection[_0x8a3ex56[1]]:null;}else {_0x8a3ex55[_0x5fbf[328]]=null;_0x8a3ex55[_0x5fbf[329]]=null;};break ;;default:;}});return _0x8a3ex55;}function isIntervalValid(_0x8a3ex36){var _0x8a3ex59=moment()[_0x5fbf[44]](_0x5fbf[322]);var _0x8a3ex5a=moment()[_0x5fbf[44]](_0x5fbf[330]);var _0x8a3ex5b=moment()[_0x5fbf[44]](_0x5fbf[331]);var _0x8a3ex5c=moment()[_0x5fbf[44]](_0x5fbf[332]);var _0x8a3ex5d,_0x8a3ex5e,_0x8a3ex5f,_0x8a3ex60;var _0x8a3ex61=[1,2,3,4,5,6,7,8,9,10,11,12];var _0x8a3ex62=[1,2,3,4,5,6,7];var _0x8a3ex63=[];for(var _0x8a3ex64=1;_0x8a3ex64<=31;_0x8a3ex64++){_0x8a3ex63[_0x5fbf[333]](_0x8a3ex64)};_0x8a3ex5d=(_0x8a3ex36[_0x5fbf[321]]&&_0x8a3ex36[_0x5fbf[323]])?moment(_0x8a3ex59,_0x5fbf[322])[_0x5fbf[334]](moment(_0x8a3ex36[_0x5fbf[321]],_0x5fbf[322]),moment(_0x8a3ex36[_0x5fbf[323]],_0x5fbf[322])):true;if(_0x8a3ex36[_0x5fbf[324]]){if(_0x8a3ex36[_0x5fbf[325]]){var _0x8a3ex65=_[_0x5fbf[163]](_0x8a3ex62,function(_0x8a3ex38){return (_0x8a3ex38>=_0x8a3ex36[_0x5fbf[324]])||(_0x8a3ex38<=_0x8a3ex36[_0x5fbf[325]])});_0x8a3ex5e=(_0x8a3ex65[_0x5fbf[335]](parseInt(_0x8a3ex5a))!== -1)?true:false;}else {_0x8a3ex5e=(parseInt(_0x8a3ex5a)===_0x8a3ex36[_0x5fbf[324]])?true:false}}else {_0x8a3ex5e=true};if(_0x8a3ex36[_0x5fbf[326]]){if(_0x8a3ex36[_0x5fbf[327]]){var _0x8a3ex66=_[_0x5fbf[163]](_0x8a3ex63,function(_0x8a3ex38){return (_0x8a3ex38>=_0x8a3ex36[_0x5fbf[326]])||(_0x8a3ex38<=_0x8a3ex36[_0x5fbf[327]])});_0x8a3ex5f=(_0x8a3ex66[_0x5fbf[335]](parseInt(_0x8a3ex5b))!== -1)?true:false;}else {_0x8a3ex5f=(parseInt(_0x8a3ex5b)===_0x8a3ex36[_0x5fbf[326]])?true:false}}else {_0x8a3ex5f=true};if(_0x8a3ex36[_0x5fbf[328]]){if(_0x8a3ex36[_0x5fbf[329]]){var _0x8a3ex67=_[_0x5fbf[163]](_0x8a3ex61,function(_0x8a3ex38){return (_0x8a3ex38>=_0x8a3ex36[_0x5fbf[328]])||(_0x8a3ex38<=_0x8a3ex36[_0x5fbf[329]])});_0x8a3ex60=(_0x8a3ex67[_0x5fbf[335]](parseInt(_0x8a3ex5c))!== -1)?true:false;}else {_0x8a3ex60=(parseInt(_0x8a3ex5c)===_0x8a3ex36[_0x5fbf[328]])?true:false}}else {_0x8a3ex60=true};return _0x8a3ex5d&&_0x8a3ex5e&&_0x8a3ex5f&&_0x8a3ex60;}function setVariable(_0x8a3ex24,_0x8a3ex69,_0x8a3ex45,_0x8a3ex26){console[_0x5fbf[26]](_0x5fbf[336]);if(!variables){getVariables(false)};var _0x8a3ex4b=_[_0x5fbf[40]](variables,{id:parseInt(_0x8a3ex69)});console[_0x5fbf[26]](_0x5fbf[337],_0x8a3ex45);_0x8a3ex24[_0x5fbf[29]](util[_0x5fbf[44]](_0x5fbf[155],_0x8a3ex4b[_0x5fbf[43]],_0x8a3ex45),function(_0x8a3ex27,_0x8a3ex28){if(_0x8a3ex26){_0x8a3ex26(_0x8a3ex27,_0x8a3ex28)}});}function getVariable(_0x8a3ex24,_0x8a3ex69){if(!variables){getVariables(false)};var _0x8a3ex4b=_[_0x5fbf[40]](variables,{id:parseInt(_0x8a3ex69)});var _0x8a3ex45=wait[_0x5fbf[259]](_0x8a3ex24,_0x5fbf[257],_0x8a3ex4b[_0x5fbf[43]]);if(_0x8a3ex45[_0x5fbf[153]]===200&&_0x8a3ex45[_0x5fbf[98]]!==_0x5fbf[108]){return _0x8a3ex45[_0x5fbf[98]][_0x5fbf[258]](_0x8a3ex45[_0x5fbf[98]][_0x5fbf[261]](_0x5fbf[260])+1,_0x8a3ex45[_0x5fbf[98]][_0x5fbf[261]](_0x5fbf[262]))};return _0x5fbf[63];}function getFilePath(_0x8a3ex69){if(!sounds){getSounds(false)};if(_0x8a3ex69>0){var _0x8a3ex6c=_[_0x5fbf[40]](sounds,{id:parseInt(_0x8a3ex69)});return util[_0x5fbf[44]](_0x5fbf[338],_0x8a3ex6c[_0x5fbf[339]],_0x8a3ex6c[_0x5fbf[340]]);};return _0x5fbf[63];}function getUsers(_0x8a3ex6e){User[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){users=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(User,users,_0x5fbf[162])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function getQueues(_0x8a3ex6e){VoiceQueue[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){queues=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(VoiceQueue,queues,_0x5fbf[43])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function getTrunks(_0x8a3ex6e){Trunk[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){trunks=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(Trunk,trunks,_0x5fbf[162])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function getVariables(_0x8a3ex6e){Variable[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){variables=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(Variable,variables,_0x5fbf[162])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function getDbConnections(_0x8a3ex6e){SquareOdbc[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){dbConnections=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(SquareOdbc,dbConnections,_0x5fbf[162])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function getIntervals(_0x8a3ex6e){Interval[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){intervals=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(Interval,intervals,_0x5fbf[162])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function getProjects(_0x8a3ex6e){SquareProject[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){projects=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(SquareProject,projects,_0x5fbf[162])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function getSounds(_0x8a3ex6e){Upload[_0x5fbf[342]]()[_0x5fbf[316]](function(_0x8a3ex2e){sounds=_[_0x5fbf[341]](_0x8a3ex2e);if(_0x8a3ex6e){synchUpdates(Upload,sounds,_0x5fbf[162])};})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}function synchUpdates(_0x8a3ex77,_0x8a3ex78,_0x8a3ex46){var _0x8a3ex79={};_0x8a3ex77[_0x5fbf[343]](function(_0x8a3ex7a){_0x8a3ex79[_0x8a3ex46]=_0x8a3ex7a[_0x8a3ex46];updateCollection(_0x8a3ex78,_0x8a3ex79,_0x8a3ex7a);});_0x8a3ex77[_0x5fbf[344]](function(_0x8a3ex7a){_0x8a3ex79[_0x8a3ex46]=_0x8a3ex7a[_0x8a3ex46];updateCollection(_0x8a3ex78,_0x8a3ex79,_0x8a3ex7a);});_0x8a3ex77[_0x5fbf[346]](function(_0x8a3ex7a){_0x8a3ex79[_0x8a3ex46]=_0x8a3ex7a[_0x8a3ex46];_[_0x5fbf[345]](_0x8a3ex78,_0x8a3ex79);});}function updateCollection(_0x8a3ex78,_0x8a3ex79,_0x8a3ex7a){var _0x8a3ex7c=_[_0x5fbf[40]](_0x8a3ex78,_0x8a3ex79);var _0x8a3ex39=_0x8a3ex78[_0x5fbf[335]](_0x8a3ex7c);if(_0x8a3ex7c){_[_0x5fbf[347]](_0x8a3ex78[_0x8a3ex39],_0x8a3ex7a)}else {_0x8a3ex78[_0x5fbf[348]](_0x8a3ex7a)};}function getPort(){Settings[_0x5fbf[317]]()[_0x5fbf[316]](function(_0x8a3ex2e){agiPort=_0x8a3ex2e[_0x5fbf[349]]})[_0x5fbf[102]](function(_0x8a3ex27){console[_0x5fbf[26]](_0x8a3ex27)})}module[_0x5fbf[350]]=function(){console[_0x5fbf[26]](_0x5fbf[351]);getPort();var _0x8a3ex7e=agi[_0x5fbf[353]](main)[_0x5fbf[352]](agiPort?agiPort:4573);getUsers(true);getQueues(true);getTrunks(true);getVariables(true);getIntervals(true);getProjects(true);getSounds(true);getDbConnections(true);};
\ No newline at end of file
+var _0x783b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x67\x69","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x78\x6D\x6C\x32\x6A\x73","\x77\x61\x69\x74\x2E\x66\x6F\x72","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x68\x65\x6C\x6C\x6A\x73","\x6F\x64\x62\x63","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x53\x65\x74\x74\x69\x6E\x67\x73","\x55\x73\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x54\x72\x75\x6E\x6B","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x55\x70\x6C\x6F\x61\x64","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C","\x61\x6E\x73\x77\x65\x72","\x2D\x2D\x41\x4E\x53\x57\x45\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6C\x6F\x67","\x41\x6E\x73\x77\x65\x72\x69\x6E\x67\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x2E\x2E\x2E","\x41\x4E\x53\x57\x45\x52\x0A","\x73\x65\x6E\x64","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x2D\x2D\x43\x55\x53\x54\x4F\x4D\x20\x41\x50\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x63\x75\x73\x74\x6F\x6D\x20\x61\x70\x70\x20\x22","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x22\x2E\x2E\x2E","\x6F\x70\x74\x69\x6F\x6E\x73","\x65\x78\x65\x63","\x64\x69\x61\x6C","\x2D\x2D\x49\x4E\x54\x45\x52\x4E\x41\x4C\x5F\x44\x49\x41\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x73\x69\x70\x5F\x69\x64","\x66\x69\x6E\x64","\x43\x61\x6C\x6C\x69\x6E\x67\x20","\x53\x49\x50\x2F\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x2E\x2E\x2E","\x74\x69\x6D\x65\x6F\x75\x74","\x6F\x70\x74\x73","\x75\x72\x6C","\x44\x49\x41\x4C","\x2C","\x6A\x6F\x69\x6E","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x2D\x2D\x45\x58\x54\x45\x52\x4E\x41\x4C\x5F\x44\x49\x41\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x53\x49\x50\x2F\x25\x73\x40\x25\x73","\x70\x68\x6F\x6E\x65","\x71\x75\x65\x75\x65","\x2D\x2D\x51\x55\x45\x55\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x71\x75\x65\x75\x65\x5F\x69\x64","\x66\x69\x6C\x65\x5F\x69\x64","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4A\x6F\x69\x6E\x69\x6E\x67\x20","\x20\x71\x75\x65\x75\x65\x2E\x2E\x2E","\x51\x55\x45\x55\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2D\x2D\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x25\x73\x40\x25\x73","\x62\x6F\x78\x6E\x75\x6D\x62\x65\x72","\x63\x6F\x6E\x74\x65\x78\x74","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x2E\x2E","\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C","\x6D\x61\x74\x68","\x2D\x2D\x4D\x41\x54\x48\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x43\x61\x6C\x63\x75\x6C\x61\x74\x69\x6E\x67\x20\x65\x78\x70\x72\x65\x73\x73\x69\x6F\x6E\x2E\x2E\x2E","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x53\x61\x76\x69\x6E\x67\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x6E\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x2D\x2D\x50\x4C\x41\x59\x42\x41\x43\x4B\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x70\x6C\x61\x79\x62\x61\x63\x6B\x2E\x2E\x2E","\x50\x4C\x41\x59\x42\x41\x43\x4B","\x6D\x65\x6E\x75","\x2D\x2D\x4D\x45\x4E\x55\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x54\x68\x65\x72\x65\x20\x61\x72\x65\x20","\x72\x65\x74\x72\x79","\x20\x72\x65\x74\x72\x69\x65\x73","\x2F\x76\x61\x72\x2F\x77\x77\x77\x2F\x68\x74\x6D\x6C\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x62\x31\x39\x36\x34\x32\x64\x32\x66\x37\x31\x65\x39\x63\x66\x66\x66\x62\x64\x37\x38\x33\x66\x63\x63\x37\x39\x63\x37\x34\x31\x35","\x41\x6E\x6E\x6F\x75\x6E\x63\x69\x6E\x67\x20\x61\x6E\x64\x20\x77\x61\x69\x74\x69\x6E\x67\x20\x66\x6F\x72\x20\x75\x73\x65\x72\x20\x65\x6E\x74\x72\x79\x2E\x2E\x2E","\x47\x45\x54\x20\x44\x41\x54\x41\x20\x25\x73\x20\x25\x73\x20\x25\x73\x0A","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x64\x69\x67\x69\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x61\x62\x65\x6C","\x74\x61\x67","\x72\x65\x73\x75\x6C\x74","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20","\x3A","\x20\x62\x6C\x6F\x63\x6B\x20\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65","\x20\x28\x74\x69\x6D\x65\x6F\x75\x74\x29","\x53\x61\x76\x69\x6E\x67\x20\x75\x73\x65\x72\x20\x65\x6E\x74\x72\x79\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x64\x61\x74\x61","\x4D\x65\x6E\x75\x20\x74\x69\x6D\x65\x6F\x75\x74\x21","\x30","\x74","\x52\x75\x6E\x20\x6F\x75\x74\x20\x6F\x66\x20\x72\x65\x74\x72\x69\x65\x73\x21","\x2D","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x2D\x2D\x53\x41\x59\x4E\x55\x4D\x42\x45\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x6E\x75\x6D\x62\x65\x72\x2E\x2E\x2E","\x53\x41\x59\x20\x4E\x55\x4D\x42\x45\x52\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x6E\x75\x6D\x62\x65\x72","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x2D\x2D\x53\x41\x59\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x70\x68\x6F\x6E\x65\x74\x69\x63\x2E\x2E\x2E","\x53\x41\x59\x20\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x74\x65\x78\x74","\x74\x74\x73","\x2D\x2D\x47\x4F\x4F\x47\x4C\x45\x5F\x54\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x67\x69\x5F\x73\x63\x72\x69\x70\x74\x73","\x67\x6F\x6F\x67\x6C\x65\x74\x74\x73\x2E\x61\x67\x69","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x41\x50\x49\x2E\x2E\x2E","\x41\x47\x49","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x2D\x2D\x49\x53\x50\x45\x45\x43\x48\x5F\x54\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x2F\x76\x61\x72\x2F\x77\x77\x77\x2F\x68\x74\x6D\x6C\x2F\x61\x67\x69\x73\x71\x75\x61\x72\x65\x2F\x61\x67\x69\x73\x63\x72\x69\x70\x74\x73\x2F\x69\x73\x70\x65\x65\x63\x68\x2D\x74\x74\x73\x2E\x61\x67\x69","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6B\x65\x79","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x69\x53\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x41\x50\x49\x2E\x2E\x2E","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x2D\x2D\x47\x45\x54\x44\x49\x47\x49\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x2D\x31","\x54\x68\x65\x72\x65\x20\x69\x73\x20\x61\x20\x72\x65\x73\x75\x6C\x74\x2C\x20\x69\x73\x20\x6F\x76\x65\x72\x20\x74\x68\x65\x20\x6D\x69\x6E\x69\x6D\x75\x6D\x20\x6C\x65\x6E\x67\x74\x68\x20\x61\x6E\x64\x20\x6E\x6F\x74\x20\x64\x75\x65\x20\x74\x6F\x20\x61\x6E\x20\x68\x61\x6E\x67\x75\x70\x21","\x78","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x68\x61\x6E\x67\x75\x70\x21","\x4E\x6F\x20\x65\x6E\x74\x72\x79\x20\x6F\x72\x20\x6E\x6F\x74\x20\x6C\x6F\x6E\x67\x20\x65\x6E\x6F\x75\x67\x68\x21","\x69","\x72\x65\x63\x6F\x72\x64","\x2D\x2D\x52\x45\x43\x4F\x52\x44\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x63\x61\x6C\x6C\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x2E\x2E","\x52\x45\x43\x4F\x52\x44\x20\x46\x49\x4C\x45\x20\x25\x73\x20\x77\x61\x76\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73\x20\x25\x73\x20\x25\x73\x0A","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x63\x6F\x64\x65","\x53\x61\x76\x69\x6E\x67\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x20\x69\x6E\x20\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x53\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x25\x73\x20\x25\x73\x0A","\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x2D\x2D\x47\x4F\x54\x4F\x49\x46\x54\x49\x4D\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x66\x61\x6C\x73\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x64","\x66\x69\x6C\x74\x65\x72","\x49\x73\x20\x61\x20\x67\x72\x6F\x75\x70\x20\x6F\x66\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x21","\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x21","\x43\x68\x65\x63\x6B\x69\x6E\x67\x20\x69\x66\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x2E\x2E\x2E","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x20","\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x21","\x74\x72\x75\x65","\x66\x6F\x72\x45\x61\x63\x68","\x54\x68\x65\x72\x65\x20\x61\x72\x65\x20\x6E\x6F\x20\x73\x75\x62\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2C\x20\x73\x6F\x20\x69\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x61\x6C\x77\x61\x79\x73\x20\x74\x72\x75\x65\x21","\x49\x73\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x21","\x54\x68\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x21","\x54\x68\x65\x20\x66\x69\x6E\x61\x6C\x20\x72\x65\x73\x75\x6C\x74\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x22","\x22\x21","\x76\x73\x77\x69\x74\x63\x68","\x2D\x2D\x56\x41\x52\x49\x41\x42\x4C\x45\x5F\x53\x57\x49\x54\x43\x48\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x47\x65\x74\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x76\x61\x6C\x75\x65\x20\x61\x6E\x64\x20\x73\x65\x61\x72\x63\x68\x69\x6E\x67\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x65\x78\x69\x74\x2E\x2E\x2E","\x73\x79\x73\x74\x65\x6D","\x2D\x2D\x53\x59\x53\x54\x45\x4D\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x63\x6F\x6D\x6D\x61\x6E\x64","\x74\x72\x69\x6D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x73\x79\x73\x74\x65\x6D\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E\x2E\x2E","\x72\x65\x70\x6C\x61\x63\x65","\x50\x72\x6F\x67\x72\x61\x6D\x20\x6F\x75\x74\x70\x75\x74\x3A","\x53\x61\x76\x69\x6E\x67\x20\x74\x68\x65\x20\x6F\x75\x74\x70\x75\x74\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x22","\x2D\x2D\x41\x47\x49\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x41\x47\x49\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E\x2E\x2E","\x61\x72\x67\x73","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x2D\x2D\x53\x55\x42\x50\x52\x4F\x4A\x45\x43\x54\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x4D\x6F\x76\x69\x6E\x67\x20\x74\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x22\x22","\x61\x67\x69\x3A\x2F\x2F\x31\x39\x32\x2E\x31\x36\x38\x2E\x32\x2E\x31\x34\x37\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x2D\x2D\x49\x53\x50\x45\x45\x43\x48\x5F\x41\x53\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x69\x73\x70\x65\x65\x63\x68\x2D\x61\x73\x72\x2E\x61\x67\x69","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6D\x6F\x64\x65\x6C","\x31","\x23","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x41\x53\x52\x20\x41\x50\x49\x2E\x2E\x2E","\x64\x61\x74\x61\x62\x61\x73\x65","\x2D\x2D\x44\x41\x54\x41\x42\x41\x53\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6F\x64\x62\x63\x5F\x69\x64","\x54\x72\x79\x69\x6E\x67\x20\x74\x6F\x20\x67\x65\x74\x20\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\x2E\x2E","\x71\x75\x65\x72\x79","\x64\x73\x6E","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x65\x72\x72\x6F\x72\x3A\x20","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x73\x75\x63\x63\x65\x64\x65\x64\x2C\x20\x65\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x71\x75\x65\x72\x79\x2E\x2E\x2E","\x51\x75\x65\x72\x79\x20\x65\x72\x72\x6F\x72\x3A\x20","\x51\x75\x65\x72\x79\x20\x65\x78\x65\x63\x75\x74\x65\x64\x2C\x20\x63\x6C\x6F\x73\x69\x6E\x67\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\x2E\x2E","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x6C\x6F\x73\x69\x6E\x67\x20\x65\x72\x72\x6F\x72\x3A\x20","\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x6C\x6F\x73\x65\x64\x2C\x20\x73\x61\x76\x69\x6E\x67\x20\x72\x65\x73\x75\x6C\x74\x69\x6E\x67\x20\x72\x6F\x77\x73\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x63\x6C\x6F\x73\x65","\x6F\x70\x65\x6E","\x67\x6F\x74\x6F\x63","\x2D\x2D\x47\x4F\x54\x4F\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x47\x6F\x69\x6E\x67\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x20\x2E\x2E\x2E","\x4C\x6F\x63\x61\x6C\x2F\x25\x73\x40\x25\x73","\x67\x6F\x74\x6F\x69\x66","\x2D\x2D\x47\x4F\x54\x4F\x49\x46\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x76\x61\x6C\x75\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x2E\x2E","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x68\x65\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x73\x20","\x68\x61\x6E\x67\x75\x70","\x2D\x2D\x48\x41\x4E\x47\x55\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x48\x61\x6E\x67\x69\x6E\x20\x75\x70\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x2E\x2E\x2E","\x6E\x6F\x6F\x70","\x2D\x2D\x4E\x4F\x4F\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6F\x75\x74\x70\x75\x74","\x4E\x4F\x4F\x50\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20","\x4E\x4F\x4F\x50","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x2D\x2D\x53\x41\x59\x44\x49\x47\x49\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x64\x69\x67\x69\x74\x73\x2E\x2E\x2E","\x53\x41\x59\x20\x44\x49\x47\x49\x54\x53\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x64\x69\x67\x69\x74\x73","\x73\x65\x74","\x2D\x2D\x53\x45\x54\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x76\x69\x6E\x67\x20\x76\x61\x6C\x75\x65\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x6D\x78\x63\x65\x6C\x6C","\x69\x73\x41\x72\x72\x61\x79","\x24","\x66\x6F\x72\x49\x6E","\x72\x65\x64\x75\x63\x65","\x65\x64\x67\x65","\x73\x6F\x75\x72\x63\x65","\x76\x61\x6C\x75\x65","\x24\x2E\x74\x61\x72\x67\x65\x74","\x6D\x61\x74\x63\x68","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x66\x6F\x72\x4D\x65\x74\x68\x6F\x64","\x28","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x29","\x72\x65\x70\x6C\x61\x63\x65\x64","\x76\x65\x72\x74\x69\x63\x65\x73","\x73\x74\x61\x72\x74","\x69\x73\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x66\x6F\x72","\x4E\x6F\x20\x74\x61\x72\x67\x65\x74\x20\x66\x6F\x75\x6E\x64\x2C\x20\x68\x61\x6E\x67\x75\x70\x21","\x66\x69\x6E\x61\x6C\x6C\x79","\x4E\x6F\x20\x74\x61\x72\x67\x65\x74\x20\x66\x6F\x75\x6E\x64\x2C\x20\x73\x74\x6F\x70\x70\x69\x6E\x67\x20\x22\x46\x69\x6E\x61\x6C\x6C\x79\x22\x20\x62\x72\x61\x6E\x63\x68\x21","\x65\x6E\x64","\x65\x72\x72\x6F\x72","\x2F\x2F\x45\x72\x72\x6F\x72\x3A","\x6F\x6E","\x2F\x2F\x43\x6F\x6E\x74\x65\x78\x74\x20\x63\x6C\x6F\x73\x65","\x2F\x2F\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x22\x46\x69\x6E\x61\x6C\x6C\x79\x22\x20\x62\x72\x61\x6E\x63\x68\x21","\x6C\x61\x75\x6E\x63\x68\x46\x69\x62\x65\x72","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x65\x78\x69\x74\x20\x74\x69\x6D\x65\x20\x66\x72\x6F\x6D\x20\x49\x56\x52","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x75\x70\x64\x61\x74\x65","\x2F\x2F\x43\x6F\x6E\x74\x65\x78\x74\x20\x48\x61\x6E\x67\x75\x70","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x52\x65\x63\x65\x69\x76\x65\x64\x20\x6E\x65\x77\x20\x63\x61\x6C\x6C\x20\x66\x72\x6F\x6D\x3A\x20","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x65\x72\x69\x64","\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x3A\x20","\x61\x67\x69\x5F\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B","\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B\x5F\x73\x63\x72\x69\x70\x74","\x61\x67\x69\x5F\x72\x65\x71\x75\x65\x73\x74","\x61\x67\x69\x5F\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x67\x69\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x61\x67\x69\x5F\x74\x79\x70\x65","\x61\x67\x69\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x70\x72\x65\x73","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x61\x6E\x69\x32","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x74\x6F\x6E","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x74\x6E\x73","\x61\x67\x69\x5F\x64\x6E\x69\x64","\x61\x67\x69\x5F\x72\x64\x6E\x69\x73","\x61\x67\x69\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x61\x67\x69\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x61\x67\x69\x5F\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x67\x69\x5F\x65\x6E\x68\x61\x6E\x63\x65\x64","\x61\x67\x69\x5F\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x61\x67\x69\x5F\x74\x68\x72\x65\x61\x64\x69\x64","\x61\x67\x69\x5F\x61\x72\x67\x5F\x31","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x65\x6E\x74\x65\x72\x20\x74\x69\x6D\x65\x20\x66\x6F\x72\x20\x49\x56\x52","\x45\x72\x72\x6F\x72\x3A","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x6D\x78\x67\x72\x61\x70\x68\x6D\x6F\x64\x65\x6C","\x4E\x6F\x20\x72\x6F\x6F\x74\x20\x69\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74\x21","\x70\x61\x72\x73\x65\x53\x74\x72\x69\x6E\x67","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x70\x75\x62\x6C\x69\x73\x68\x65\x64\x21","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x66\x6F\x75\x6E\x64\x21","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x61\x72\x67\x75\x6D\x65\x6E\x74\x21","\x73\x70\x6C\x69\x74","\x2A","\x74\x5F\x66\x72\x6F\x6D","\x48\x48\x3A\x6D\x6D","\x74\x5F\x74\x6F","\x77\x64\x5F\x66\x72\x6F\x6D","\x77\x64\x5F\x74\x6F","\x6D\x64\x5F\x66\x72\x6F\x6D","\x6D\x64\x5F\x74\x6F","\x6D\x5F\x66\x72\x6F\x6D","\x6D\x5F\x74\x6F","\x45","\x44","\x4D","\x70\x75\x73\x68","\x69\x73\x42\x65\x74\x77\x65\x65\x6E","\x69\x6E\x64\x65\x78\x4F\x66","\x53\x65\x74\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x53\x65\x6E\x64\x69\x6E\x67\x20\x73\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20","\x25\x73\x2F\x25\x73","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x70\x61\x74\x68","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x63\x6C\x6F\x6E\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74","\x61\x67\x69\x5F\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65\x20\x41\x47\x49\x2E\x2E\x2E","\x6C\x69\x73\x74\x65\x6E","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72"];_0x783b[0];var _=require(_0x783b[1]);var agi=require(_0x783b[2]);var util=require(_0x783b[3]);var moment=require(_0x783b[4]);var xml=require(_0x783b[5]);var wait=require(_0x783b[6]);var sr=require(_0x783b[7]);var path=require(_0x783b[8]);var config=require(_0x783b[9]);var sh=require(_0x783b[10]);var db=require(_0x783b[11])();var SquareProject=require(_0x783b[13])[_0x783b[12]];var Variable=require(_0x783b[13])[_0x783b[14]];var SquareOdbc=require(_0x783b[13])[_0x783b[15]];var Settings=require(_0x783b[13])[_0x783b[16]];var User=require(_0x783b[13])[_0x783b[17]];var VoiceQueue=require(_0x783b[13])[_0x783b[18]];var Trunk=require(_0x783b[13])[_0x783b[19]];var Interval=require(_0x783b[13])[_0x783b[20]];var Upload=require(_0x783b[13])[_0x783b[21]];var ReportSquare=require(_0x783b[13])[_0x783b[22]];var ReportSquareDetail=require(_0x783b[13])[_0x783b[23]];var users,trunks,variables,intervals,projects,sounds,queues,dbConnections,generalUniqueId;var agiPort;var weekDaysCollection={mon:1,tue:2,wed:3,thu:4,fri:5,sat:6,sun:7};var monthsCollection={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12};var methods={};methods[_0x783b[24]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[25]);console[_0x783b[26]](_0x783b[27]);_0x83b0x24[_0x783b[29]](_0x783b[28],function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[30]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[31]);console[_0x783b[26]](_0x783b[32]+_0x83b0x25[_0x783b[33]]+_0x783b[34]);_0x83b0x24[_0x783b[36]](_0x83b0x25[_0x783b[33]],_0x83b0x25[_0x783b[35]],function(_0x83b0x27,_0x83b0x28){if(_0x83b0x26){_0x83b0x26(_0x83b0x27,_0x83b0x28)}});};methods[_0x783b[37]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[38]);if(!users){getUsers(false)};var _0x83b0x29=_[_0x783b[40]](users,{id:parseInt(_0x83b0x25[_0x783b[39]])});console[_0x783b[26]](_0x783b[41]+util[_0x783b[44]](_0x783b[42],_0x83b0x29[_0x783b[43]])+_0x783b[45]);var _0x83b0x2a=[util[_0x783b[44]](_0x783b[42],_0x83b0x29[_0x783b[43]]),_0x83b0x25[_0x783b[46]],_0x83b0x25[_0x783b[47]],_0x83b0x25[_0x783b[48]]];_0x83b0x24[_0x783b[36]](_0x783b[49],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[52]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[53]);if(!trunks){getTrunks(false)};var _0x83b0x2b=_[_0x783b[40]](trunks,{id:parseInt(_0x83b0x25[_0x783b[54]])});console[_0x783b[26]](_0x783b[41]+util[_0x783b[44]](_0x783b[42],_0x83b0x2b[_0x783b[43]])+_0x783b[45]);var _0x83b0x2a=[util[_0x783b[44]](_0x783b[55],_0x83b0x25[_0x783b[56]],_0x83b0x2b[_0x783b[43]]),_0x83b0x25[_0x783b[46]],_0x83b0x25[_0x783b[47]],_0x83b0x25[_0x783b[48]]];_0x83b0x24[_0x783b[36]](_0x783b[49],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[57]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[58]);if(!queues){getQueues(false)};var _0x83b0x2c=_[_0x783b[40]](queues,{name:_0x83b0x25[_0x783b[59]]});var _0x83b0x2d=getFilePath(_0x83b0x25[_0x783b[60]]);var _0x83b0x2a=[_0x83b0x2c[_0x783b[43]],_0x83b0x25[_0x783b[47]],_0x83b0x25[_0x783b[48]],_0x83b0x2d,_0x83b0x25[_0x783b[46]],_0x83b0x25[_0x783b[2]],_0x83b0x25[_0x783b[61]],_0x83b0x25[_0x783b[62]],_0x783b[63],_0x83b0x25[_0x783b[64]]];console[_0x783b[26]](_0x783b[65]+_0x83b0x2c[_0x783b[43]]+_0x783b[66]);_0x83b0x24[_0x783b[36]](_0x783b[67],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[68]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[69]);var _0x83b0x2a=[util[_0x783b[44]](_0x783b[70],_0x83b0x25[_0x783b[71]],_0x83b0x25[_0x783b[72]]),_0x83b0x25[_0x783b[47]]];console[_0x783b[26]](_0x783b[73]);_0x83b0x24[_0x783b[36]](_0x783b[74],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[75]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[76]);console[_0x783b[26]](_0x783b[77]);var _0x83b0x2e=eval(_0x83b0x25[_0x783b[78]]);console[_0x783b[26]](_0x783b[79]);setVariable(_0x83b0x24,_0x83b0x25[_0x783b[80]],_0x83b0x2e,_0x83b0x26);};methods[_0x783b[81]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[82]);var _0x83b0x2f=getFilePath(_0x83b0x25[_0x783b[60]]);var _0x83b0x2a=[_0x83b0x2f,_0x83b0x25[_0x783b[47]]];console[_0x783b[26]](_0x783b[83]);_0x83b0x24[_0x783b[36]](_0x783b[84],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[85]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[86]);var _0x83b0x28={};console[_0x783b[26]](_0x783b[87]+_0x83b0x25[_0x783b[88]]+_0x783b[89]);if(_0x83b0x25[_0x783b[88]]>0){_0x83b0x25[_0x783b[88]]--;var _0x83b0x30=_0x783b[90];console[_0x783b[26]](_0x783b[91]);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[92],_0x83b0x30,parseInt(_0x83b0x25[_0x783b[93]])*1000,_0x83b0x25[_0x783b[94]]),function(_0x83b0x27,_0x83b0x28){var _0x83b0x31={uniqueid:_0x83b0x24[_0x783b[95]],node:_0x83b0x25[_0x783b[96]],application:_0x83b0x25[_0x783b[97]],data:_0x83b0x28[_0x783b[98]]||null};ReportSquareDetail[_0x783b[103]](_0x83b0x31)[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x783b[99]+_0x83b0x25[_0x783b[97]]+_0x783b[100]+_0x83b0x25[_0x783b[96]]+_0x783b[101],_0x83b0x27)});if(_0x83b0x28[_0x783b[98]]!==_0x783b[104]){var _0x83b0x32=parseInt(_0x83b0x25[_0x783b[80]]);if(_0x83b0x32){console[_0x783b[26]](_0x783b[105]);setVariable(_0x83b0x24,_0x83b0x32,_0x83b0x28[_0x783b[98]]);};_0x83b0x28[_0x783b[106]]=_0x83b0x28[_0x783b[98]];_0x83b0x26(null,_0x83b0x28);}else {console[_0x783b[26]](_0x783b[107]);_0x83b0x28={code:200,result:_0x783b[108],data:_0x783b[109]};_0x83b0x26(null,_0x83b0x28);};});}else {console[_0x783b[26]](_0x783b[110]);_0x83b0x28={code:200,result:_0x783b[108],data:_0x783b[111]};_0x83b0x26(null,_0x83b0x28);};};methods[_0x783b[112]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[113]);console[_0x783b[26]](_0x783b[114]);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[115],_0x83b0x25[_0x783b[116]],_0x83b0x25[_0x783b[117]]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[118]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[119]);console[_0x783b[26]](_0x783b[120]);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[121],_0x83b0x25[_0x783b[122]],_0x83b0x25[_0x783b[117]]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[123]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[124]);var _0x83b0x2a=[path[_0x783b[51]](config[_0x783b[125]],_0x783b[126],_0x783b[127]),encodeURIComponent(_0x83b0x25[_0x783b[122]]),_0x83b0x25[_0x783b[128]]];console[_0x783b[26]](_0x783b[129]);_0x83b0x24[_0x783b[36]](_0x783b[130],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[131]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[132]);var _0x83b0x2a=[_0x783b[133],encodeURIComponent(_0x83b0x25[_0x783b[122]]),_0x83b0x25[_0x783b[134]],_0x783b[63],_0x783b[63],_0x83b0x25[_0x783b[135]]];console[_0x783b[26]](_0x783b[136]);_0x83b0x24[_0x783b[36]](_0x783b[130],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[137]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[138]);var _0x83b0x28={};console[_0x783b[26]](_0x783b[87]+_0x83b0x25[_0x783b[88]]+_0x783b[89]);if(_0x83b0x25[_0x783b[88]]>0){_0x83b0x25[_0x783b[88]]--;var _0x83b0x30=getFilePath(_0x83b0x25[_0x783b[60]]);console[_0x783b[26]](_0x783b[91]);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[92],_0x83b0x30,parseInt(_0x83b0x25[_0x783b[93]])*1000,_0x83b0x25[_0x783b[139]]),function(_0x83b0x27,_0x83b0x28){var _0x83b0x31={uniqueid:_0x83b0x24[_0x783b[95]],node:_0x83b0x25[_0x783b[96]],application:_0x83b0x25[_0x783b[97]],data:_0x83b0x28[_0x783b[98]]||null};ReportSquareDetail[_0x783b[103]](_0x83b0x31)[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x783b[99]+_0x83b0x25[_0x783b[97]]+_0x783b[100]+_0x83b0x25[_0x783b[96]]+_0x783b[101],_0x83b0x27)});if(_0x83b0x28[_0x783b[98]]&&_0x83b0x28[_0x783b[98]][_0x783b[140]]>=parseInt(_0x83b0x25[_0x783b[141]])){if(_0x83b0x28[_0x783b[98]]!==_0x783b[142]){console[_0x783b[26]](_0x783b[143]);var _0x83b0x32=parseInt(_0x83b0x25[_0x783b[80]]);if(_0x83b0x32){console[_0x783b[26]](_0x783b[105]);setVariable(_0x83b0x24,_0x83b0x32,_0x83b0x28[_0x783b[98]]);};_0x83b0x28={code:200,result:_0x783b[108],data:_0x783b[144]};_0x83b0x26(null,_0x83b0x28);}else {console[_0x783b[26]](_0x783b[145]);_0x83b0x28={code:500,result:_0x783b[142]};_0x83b0x26(null,_0x83b0x28);}}else {console[_0x783b[26]](_0x783b[146]);_0x83b0x28={code:200,result:_0x783b[108],data:_0x783b[147]};_0x83b0x26(null,_0x83b0x28);};});}else {console[_0x783b[26]](_0x783b[110]);_0x83b0x28={code:500,result:_0x783b[142]};_0x83b0x26(null,_0x83b0x28);};};methods[_0x783b[148]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[149]);var _0x83b0x33=sr();console[_0x783b[26]](_0x783b[150]);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[151],path[_0x783b[51]](config[_0x783b[125]],_0x783b[152],_0x83b0x33),_0x83b0x25[_0x783b[117]],_0x83b0x25[_0x783b[46]],null,true,null),function(_0x83b0x27,_0x83b0x28){if(_0x83b0x28[_0x783b[153]]===200&&_0x83b0x28[_0x783b[98]]!==_0x783b[142]){console[_0x783b[26]](_0x783b[154]);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[155],_0x783b[156],_0x83b0x33),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});}else {_0x83b0x26(_0x83b0x27,_0x83b0x28)}});};methods[_0x783b[157]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[158]);var _0x83b0x28;var _0x83b0x34=_0x783b[159];var _0x83b0x35;if(!intervals){getIntervals(false)};var _0x83b0x36=_[_0x783b[40]](intervals,{id:parseInt(_0x83b0x25[_0x783b[160]])});if(!_0x83b0x36[_0x783b[161]]){_0x83b0x35=_[_0x783b[163]](intervals,{IntervalId:parseInt(_0x83b0x36[_0x783b[162]])})};if(_0x83b0x35){console[_0x783b[26]](_0x783b[164]);if(_0x83b0x35[_0x783b[140]]){console[_0x783b[26]](_0x783b[87]+_0x83b0x35[_0x783b[140]]+_0x783b[165]);var _0x83b0x37;console[_0x783b[26]](_0x783b[166]);_0x83b0x35[_0x783b[171]](function(_0x83b0x38,_0x83b0x39){_0x83b0x37=splitInterval(_0x83b0x38[_0x783b[167]]);if(isIntervalValid(_0x83b0x37)){console[_0x783b[26]](_0x783b[168]+_0x83b0x39+_0x783b[169]);_0x83b0x34=_0x783b[170];};});}else {console[_0x783b[26]](_0x783b[172]);_0x83b0x34=_0x783b[170];};}else {console[_0x783b[26]](_0x783b[173]);var _0x83b0x3a=splitInterval(_0x83b0x36[_0x783b[167]]);if(isIntervalValid(_0x83b0x3a)){console[_0x783b[26]](_0x783b[174]);_0x83b0x34=_0x783b[170];};};console[_0x783b[26]](_0x783b[175]+_0x83b0x34+_0x783b[176]);_0x83b0x28={code:200,result:_0x783b[108],data:_0x83b0x34};_0x83b0x26(null,_0x83b0x28);};methods[_0x783b[177]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[178]);console[_0x783b[26]](_0x783b[179]);var _0x83b0x28={data:getVariable(_0x83b0x24,_0x83b0x25[_0x783b[80]])};_0x83b0x26(null,_0x83b0x28);};methods[_0x783b[180]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[181]);var _0x83b0x31={uniqueid:_0x83b0x24[_0x783b[95]],node:_0x83b0x25[_0x783b[96]],application:_0x83b0x25[_0x783b[97]],data:_[_0x783b[183]](_0x83b0x25[_0x783b[182]])||null};ReportSquareDetail[_0x783b[103]](_0x83b0x31)[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x783b[99]+_0x83b0x25[_0x783b[97]]+_0x783b[100]+_0x83b0x25[_0x783b[96]]+_0x783b[101],_0x83b0x27)});console[_0x783b[26]](_0x783b[184]);sh[_0x783b[36]](_[_0x783b[183]](_0x83b0x25[_0x783b[182]]),function(_0x83b0x3b,_0x83b0x3c){var _0x83b0x3d=_0x83b0x3c[_0x783b[185]](/(\r\n|\n|\r)/gm,_0x783b[63]);console[_0x783b[26]](_0x783b[186],_0x83b0x3d);console[_0x783b[26]](_0x783b[187]);setVariable(_0x83b0x24,_0x83b0x25[_0x783b[80]],_0x783b[188]+_0x83b0x3d+_0x783b[188],_0x83b0x26);});};methods[_0x783b[2]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[189]);console[_0x783b[26]](_0x783b[190]);_0x83b0x24[_0x783b[36]](_0x783b[130],_0x83b0x25[_0x783b[182]],_0x83b0x25[_0x783b[191]],function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[192]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[193]);if(!projects){getProjects(false)};var _0x83b0x3e=_[_0x783b[40]](projects,{id:parseInt(_0x83b0x25[_0x783b[194]])});console[_0x783b[26]](_0x783b[195]+_0x83b0x3e[_0x783b[43]]+_0x783b[34]);_0x83b0x24[_0x783b[36]](_0x783b[130],util[_0x783b[44]](_0x783b[196],_0x83b0x3e[_0x783b[43]]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[197]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[198]);var _0x83b0x2a=[path[_0x783b[51]](config[_0x783b[125]],_0x783b[126],_0x783b[199]),_0x83b0x25[_0x783b[200]],_0x783b[63],(_0x83b0x25[_0x783b[201]]===_0x783b[108]?_0x783b[63]:_0x83b0x25[_0x783b[201]]),_0x783b[202],_0x783b[203],_0x783b[63],_0x83b0x25[_0x783b[135]]];console[_0x783b[26]](_0x783b[204]);_0x83b0x24[_0x783b[36]](_0x783b[130],_0x83b0x2a[_0x783b[51]](_0x783b[50]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[205]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[206]);if(!dbConnections){getDbConnections(false)};var _0x83b0x3f=_[_0x783b[40]](dbConnections,{id:parseInt(_0x83b0x25[_0x783b[207]])});console[_0x783b[26]](_0x783b[208]);var _0x83b0x31={uniqueid:_0x83b0x24[_0x783b[95]],node:_0x83b0x25[_0x783b[96]],application:_0x83b0x25[_0x783b[97]],data:_0x83b0x25[_0x783b[209]]||null};ReportSquareDetail[_0x783b[103]](_0x83b0x31)[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x783b[99]+_0x83b0x25[_0x783b[97]]+_0x783b[100]+_0x83b0x25[_0x783b[96]]+_0x783b[101],_0x83b0x27)});db[_0x783b[218]](_0x83b0x3f[_0x783b[210]],function(_0x83b0x27){if(_0x83b0x27){console[_0x783b[26]](_0x783b[211],_0x83b0x27);var _0x83b0x28={code:500,result:_0x783b[142]};_0x83b0x26(null,_0x83b0x28);}else {console[_0x783b[26]](_0x783b[212]);db[_0x783b[209]](_0x83b0x25[_0x783b[209]],function(_0x83b0x27,_0x83b0x40){if(_0x83b0x27){console[_0x783b[26]](_0x783b[213],_0x83b0x27);var _0x83b0x28={code:500,result:_0x783b[142]};_0x83b0x26(null,_0x83b0x28);}else {console[_0x783b[26]](_0x783b[214]);db[_0x783b[217]](function(_0x83b0x27){if(_0x83b0x27){console[_0x783b[26]](_0x783b[215],_0x83b0x27);var _0x83b0x28={code:500,result:_0x783b[142]};_0x83b0x26(null,_0x83b0x28);}else {console[_0x783b[26]](_0x783b[216]);setVariable(_0x83b0x24,_0x83b0x25[_0x783b[80]],_0x83b0x40,_0x83b0x26);}});}});}});};methods[_0x783b[219]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[220]);console[_0x783b[26]](_0x783b[221]+_0x83b0x25[_0x783b[222]]+_0x783b[223]);_0x83b0x24[_0x783b[36]](_0x783b[49],util[_0x783b[44]](_0x783b[224],_0x83b0x25[_0x783b[222]],_0x83b0x25[_0x783b[72]]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[225]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[226]);var _0x83b0x28={code:200,result:_0x783b[108]};console[_0x783b[26]](_0x783b[227]);_0x83b0x28[_0x783b[106]]=String(eval(_0x83b0x25[_0x783b[228]])?_0x783b[170]:_0x783b[159]);console[_0x783b[26]](_0x783b[229]+_0x83b0x28[_0x783b[106]]);_0x83b0x26(null,_0x83b0x28);};methods[_0x783b[230]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[231]);console[_0x783b[26]](_0x783b[232]);_0x83b0x24[_0x783b[230]]();};methods[_0x783b[233]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[234]);var _0x83b0x3c=(_0x83b0x25[_0x783b[235]])?_0x783b[188]+_0x83b0x25[_0x783b[235]]+_0x783b[188]:_0x783b[188]+_0x83b0x25[_0x783b[96]]+_0x783b[188];console[_0x783b[26]](_0x783b[236]+_0x83b0x3c);_0x83b0x24[_0x783b[36]](_0x783b[237],_0x83b0x3c,function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[238]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[239]);console[_0x783b[26]](_0x783b[240]);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[241],_0x83b0x25[_0x783b[242]],_0x83b0x25[_0x783b[117]]),function(_0x83b0x27,_0x83b0x28){_0x83b0x26(_0x83b0x27,_0x83b0x28)});};methods[_0x783b[243]]=function(_0x83b0x24,_0x83b0x25,_0x83b0x26){console[_0x783b[26]](_0x783b[244]);console[_0x783b[26]](_0x783b[245]);setVariable(_0x83b0x24,_0x83b0x25[_0x783b[80]],_0x83b0x25[_0x783b[246]],_0x83b0x26);};function getVertices(_0x83b0x42){return _[_0x783b[251]](_0x83b0x42,function(_0x83b0x2e,_0x83b0x43,_0x83b0x44){if(_0x83b0x44===_0x783b[247]){return _0x83b0x2e};if(_[_0x783b[248]](_0x83b0x43)){_[_0x783b[250]](_0x83b0x43,function(_0x83b0x45,_0x83b0x46){_0x83b0x2e[_0x83b0x45[_0x783b[249]][_0x783b[162]]]=_0x83b0x45[_0x783b[249]];_0x83b0x2e[_0x83b0x45[_0x783b[249]][_0x783b[162]]][_0x783b[97]]=_0x83b0x44;});return _0x83b0x2e;};_0x83b0x2e[_0x83b0x43[_0x783b[249]][_0x783b[162]]]=_0x83b0x43[_0x783b[249]];_0x83b0x2e[_0x83b0x43[_0x783b[249]][_0x783b[162]]][_0x783b[97]]=_0x83b0x44;return _0x83b0x2e;},{})}function getTargetBySource(_0x83b0x42,_0x83b0x48,_0x83b0x45){return _[_0x783b[98]](_[_0x783b[40]](_0x83b0x42[_0x783b[247]],function(_0x83b0x43){if(_0x83b0x43[_0x783b[249]][_0x783b[252]]&&_0x83b0x43[_0x783b[249]][_0x783b[253]]){if(_0x83b0x43[_0x783b[249]][_0x783b[253]]===_0x83b0x48){if(_0x83b0x43[_0x783b[249]][_0x783b[254]]&&_0x83b0x43[_0x783b[249]][_0x783b[254]]!==_0x83b0x45){return false};return true;}};return false;}),_0x783b[255])}function replaceAllVariables(_0x83b0x24,_0x83b0x25,_0x83b0x26){var _0x83b0x4a=_0x83b0x25;for(var _0x83b0x46 in _0x83b0x4a){var _0x83b0x28=_0x83b0x4a[_0x83b0x46][_0x783b[256]](/{+(.*?)}/gi);if(_0x83b0x28){for(var _0x83b0x4b in _0x83b0x28){var _0x83b0x45=wait[_0x783b[259]](_0x83b0x24,_0x783b[257],_0x83b0x28[_0x83b0x4b][_0x783b[258]](1,_0x83b0x28[_0x83b0x4b][_0x783b[140]]-1));if(_0x83b0x45[_0x783b[153]]===200&&_0x83b0x45[_0x783b[98]]!==_0x783b[108]){var _0x83b0x4c=_0x83b0x45[_0x783b[98]][_0x783b[258]](_0x83b0x45[_0x783b[98]][_0x783b[261]](_0x783b[260])+1,_0x83b0x45[_0x783b[98]][_0x783b[261]](_0x783b[262]));_0x83b0x4a[_0x83b0x46]=_0x83b0x4a[_0x83b0x46][_0x783b[185]](_0x83b0x28[_0x83b0x4b],_0x83b0x4c);};}};};_0x83b0x4a[_0x783b[263]]=true;return _0x83b0x4a;}function xstart(_0x83b0x24){var _0x83b0x42=_0x83b0x24[_0x783b[125]];var _0x83b0x4e=_0x83b0x24[_0x783b[264]];if(_0x83b0x42[_0x783b[265]]){if(!_[_0x783b[248]](_0x83b0x42[_0x783b[265]])){var _0x83b0x48=_0x83b0x42[_0x783b[265]][_0x783b[249]][_0x783b[162]];var _0x83b0x28={};do{var _0x83b0x25=_0x83b0x4e[_0x83b0x48][_0x783b[263]]?_0x83b0x4e[_0x83b0x48]:replaceAllVariables(_0x83b0x24,_0x83b0x4e[_0x83b0x48]);if(_0x83b0x25){if(_[_0x783b[266]](methods[_0x83b0x25[_0x783b[97]]])){_0x83b0x28=wait[_0x783b[267]](methods[_0x83b0x25[_0x783b[97]]],_0x83b0x24,_0x83b0x25)}else {_0x83b0x28=wait[_0x783b[267]](methods[_0x783b[233]],_0x83b0x24,_0x83b0x25)};if(_0x83b0x28[_0x783b[153]]===200&&_0x83b0x28[_0x783b[98]]!==_0x783b[142]){var _0x83b0x4f=getTargetBySource(_0x83b0x42,_0x83b0x48,_0x83b0x28[_0x783b[106]]);if(_0x83b0x4f){}else {if(_0x83b0x25[_0x783b[97]]===_0x783b[85]){if(_0x83b0x25[_0x783b[88]]>0){_0x83b0x4f=getTargetBySource(_0x83b0x42,_0x83b0x48,_0x783b[147]);if(_0x83b0x4f){}else {_0x83b0x4f=_0x83b0x48};}};if(_0x83b0x25[_0x783b[97]]===_0x783b[137]&&_0x83b0x25[_0x783b[88]]>0){_0x83b0x4f=_0x83b0x48};};_0x83b0x48=_0x83b0x4f;}else {_0x83b0x48=null};}else {_0x83b0x48=null};}while(_0x83b0x48);;console[_0x783b[26]](_0x783b[268]);_0x83b0x24[_0x783b[230]]();}};}function xfinally(_0x83b0x24){var _0x83b0x42=_0x83b0x24[_0x783b[125]];var _0x83b0x4e=_0x83b0x24[_0x783b[264]];if(_0x83b0x42[_0x783b[269]]){if(!_[_0x783b[248]](_0x83b0x42[_0x783b[269]])){var _0x83b0x48=_0x83b0x42[_0x783b[269]][_0x783b[249]][_0x783b[162]];var _0x83b0x28={};do{var _0x83b0x25=replaceAllVariables(_0x83b0x24,_0x83b0x4e[_0x83b0x48]);if(_0x83b0x25){if(_[_0x783b[266]](methods[_0x83b0x25[_0x783b[97]]])){_0x83b0x28=wait[_0x783b[267]](methods[_0x83b0x25[_0x783b[97]]],_0x83b0x24,_0x83b0x25)}else {_0x83b0x28=wait[_0x783b[267]](methods[_0x783b[233]],_0x83b0x24,_0x83b0x25)};if(_0x83b0x28[_0x783b[153]]===200&&_0x83b0x28[_0x783b[98]]!==_0x783b[142]){var _0x83b0x4f=getTargetBySource(_0x83b0x42,_0x83b0x48,_0x83b0x28[_0x783b[106]]);if(_0x83b0x4f){}else {if(_0x83b0x25[_0x783b[97]]===_0x783b[85]){if(_0x83b0x25[_0x783b[88]]>0){_0x83b0x4f=getTargetBySource(_0x83b0x42,_0x83b0x48,_0x783b[147]);if(_0x83b0x4f){}else {_0x83b0x4f=_0x83b0x48};}};if(_0x83b0x25[_0x783b[97]]===_0x783b[137]&&_0x83b0x25[_0x783b[88]]>0){_0x83b0x4f=_0x83b0x48};};_0x83b0x48=_0x83b0x4f;}else {_0x83b0x48=null};}else {_0x83b0x48=null};}while(_0x83b0x48);;_0x83b0x24[_0x783b[230]]();console[_0x783b[26]](_0x783b[270]);}};_0x83b0x24[_0x783b[271]]();}function main(_0x83b0x24){_0x83b0x24[_0x783b[274]](_0x783b[272],function(_0x83b0x27){console[_0x783b[26]](_0x783b[273],_0x83b0x27)});_0x83b0x24[_0x783b[274]](_0x783b[217],function(){console[_0x783b[26]](_0x783b[275])});_0x83b0x24[_0x783b[274]](_0x783b[230],function(){if(_0x83b0x24[_0x783b[269]]){_0x83b0x24[_0x783b[269]]=false;console[_0x783b[26]](_0x783b[276]);wait[_0x783b[277]](xfinally,_0x83b0x24);}else {ReportSquare[_0x783b[280]]({leaveAt:moment()[_0x783b[44]](_0x783b[279])},{where:{uniqueid:_0x83b0x24[_0x783b[95]]}})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x783b[278],_0x83b0x27)});console[_0x783b[26]](_0x783b[281]);}});_0x83b0x24[_0x783b[274]](_0x783b[93],function(_0x83b0x28){});_0x83b0x24[_0x783b[274]](_0x783b[282],function(_0x83b0x52){console[_0x783b[26]](_0x83b0x52);console[_0x783b[26]](_0x783b[283]+_0x83b0x52[_0x783b[284]]+_0x783b[285]+_0x83b0x52[_0x783b[286]]);var _0x83b0x53={network:_0x83b0x52[_0x783b[287]],network_script:_0x83b0x52[_0x783b[288]],request:_0x83b0x52[_0x783b[289]],channel:_0x83b0x52[_0x783b[290]],language:_0x83b0x52[_0x783b[291]],type:_0x83b0x52[_0x783b[292]],uniqueid:_0x83b0x52[_0x783b[286]],version:_0x83b0x52[_0x783b[293]],callerid:_0x83b0x52[_0x783b[284]],calleridname:_0x83b0x52[_0x783b[294]],callingpres:_0x83b0x52[_0x783b[295]],callingani2:_0x83b0x52[_0x783b[296]],callington:_0x83b0x52[_0x783b[297]],callingtns:_0x83b0x52[_0x783b[298]],dnid:_0x83b0x52[_0x783b[299]],rdnis:_0x83b0x52[_0x783b[300]],context:_0x83b0x52[_0x783b[301]],extension:_0x83b0x52[_0x783b[302]],priority:_0x83b0x52[_0x783b[303]],enhanced:_0x83b0x52[_0x783b[304]],accountcode:_0x83b0x52[_0x783b[305]],threadid:_0x83b0x52[_0x783b[306]],project_name:_0x83b0x52[_0x783b[307]],joinAt:moment()[_0x783b[44]](_0x783b[279])};ReportSquare[_0x783b[103]](_0x83b0x53)[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x783b[308],_0x83b0x27)});if(_0x83b0x52[_0x783b[307]]){SquareProject[_0x783b[317]]({where:{name:_0x83b0x52[_0x783b[307]]},attributes:[_0x783b[162],_0x783b[310]]})[_0x783b[316]](function(_0x83b0x3e){if(_0x83b0x3e){if(_0x83b0x3e[_0x783b[310]]){xml[_0x783b[313]](_0x83b0x3e[_0x783b[310]],{normalizeTags:true,explicitArray:false},function(_0x83b0x27,_0x83b0x2e){var _0x83b0x42=_0x83b0x2e[_0x783b[311]][_0x783b[125]];if(_0x83b0x42){_0x83b0x24[_0x783b[125]]=_0x83b0x42;_0x83b0x24[_0x783b[269]]=true;_0x83b0x24[_0x783b[95]]=_0x83b0x52[_0x783b[286]];_0x83b0x24[_0x783b[264]]=getVertices(_0x83b0x42);wait[_0x783b[277]](xstart,_0x83b0x24);}else {console[_0x783b[26]](_0x783b[312]);_0x83b0x24[_0x783b[271]]();};})}else {console[_0x783b[26]](_0x783b[314]);_0x83b0x24[_0x783b[271]]();}}else {console[_0x783b[26]](_0x783b[315]);_0x83b0x24[_0x783b[271]]();}})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x783b[309],_0x83b0x27);_0x83b0x24[_0x783b[271]]();})}else {console[_0x783b[26]](_0x783b[318]);_0x83b0x24[_0x783b[271]]();};});}function splitInterval(_0x83b0x36){var _0x83b0x55={};var _0x83b0x3a=_0x83b0x36[_0x783b[319]](_0x783b[50]);var _0x83b0x56;_0x83b0x3a[_0x783b[171]](function(_0x83b0x57,_0x83b0x39){switch(_0x83b0x39){case 0:if(_0x83b0x57!==_0x783b[320]){_0x83b0x56=_0x83b0x57[_0x783b[319]](_0x783b[111]);_0x83b0x55[_0x783b[321]]=moment(_0x83b0x56[0],_0x783b[322]);_0x83b0x55[_0x783b[323]]=moment(_0x83b0x56[1],_0x783b[322]);}else {_0x83b0x55[_0x783b[321]]=null;_0x83b0x55[_0x783b[323]]=null;};break ;;case 1:if(_0x83b0x57!==_0x783b[320]){_0x83b0x56=_0x83b0x57[_0x783b[319]](_0x783b[111]);_0x83b0x55[_0x783b[324]]=weekDaysCollection[_0x83b0x56[0]];_0x83b0x55[_0x783b[325]]=_0x83b0x56[1]?weekDaysCollection[_0x83b0x56[1]]:null;}else {_0x83b0x55[_0x783b[324]]=null;_0x83b0x55[_0x783b[325]]=null;};break ;;case 2:if(_0x83b0x57!==_0x783b[320]){_0x83b0x56=_0x83b0x57[_0x783b[319]](_0x783b[111]);_0x83b0x55[_0x783b[326]]=_0x83b0x56[0];_0x83b0x55[_0x783b[327]]=_0x83b0x56[1]?_0x83b0x56[1]:null;}else {_0x83b0x55[_0x783b[326]]=null;_0x83b0x55[_0x783b[327]]=null;};break ;;case 3:if(_0x83b0x57!==_0x783b[320]){_0x83b0x56=_0x83b0x57[_0x783b[319]](_0x783b[111]);_0x83b0x55[_0x783b[328]]=monthsCollection[_0x83b0x56[0]];_0x83b0x55[_0x783b[329]]=_0x83b0x56[1]?monthsCollection[_0x83b0x56[1]]:null;}else {_0x83b0x55[_0x783b[328]]=null;_0x83b0x55[_0x783b[329]]=null;};break ;;default:;}});return _0x83b0x55;}function isIntervalValid(_0x83b0x36){var _0x83b0x59=moment()[_0x783b[44]](_0x783b[322]);var _0x83b0x5a=moment()[_0x783b[44]](_0x783b[330]);var _0x83b0x5b=moment()[_0x783b[44]](_0x783b[331]);var _0x83b0x5c=moment()[_0x783b[44]](_0x783b[332]);var _0x83b0x5d,_0x83b0x5e,_0x83b0x5f,_0x83b0x60;var _0x83b0x61=[1,2,3,4,5,6,7,8,9,10,11,12];var _0x83b0x62=[1,2,3,4,5,6,7];var _0x83b0x63=[];for(var _0x83b0x64=1;_0x83b0x64<=31;_0x83b0x64++){_0x83b0x63[_0x783b[333]](_0x83b0x64)};_0x83b0x5d=(_0x83b0x36[_0x783b[321]]&&_0x83b0x36[_0x783b[323]])?moment(_0x83b0x59,_0x783b[322])[_0x783b[334]](moment(_0x83b0x36[_0x783b[321]],_0x783b[322]),moment(_0x83b0x36[_0x783b[323]],_0x783b[322])):true;if(_0x83b0x36[_0x783b[324]]){if(_0x83b0x36[_0x783b[325]]){var _0x83b0x65=_[_0x783b[163]](_0x83b0x62,function(_0x83b0x38){return (_0x83b0x38>=_0x83b0x36[_0x783b[324]])||(_0x83b0x38<=_0x83b0x36[_0x783b[325]])});_0x83b0x5e=(_0x83b0x65[_0x783b[335]](parseInt(_0x83b0x5a))!== -1)?true:false;}else {_0x83b0x5e=(parseInt(_0x83b0x5a)===_0x83b0x36[_0x783b[324]])?true:false}}else {_0x83b0x5e=true};if(_0x83b0x36[_0x783b[326]]){if(_0x83b0x36[_0x783b[327]]){var _0x83b0x66=_[_0x783b[163]](_0x83b0x63,function(_0x83b0x38){return (_0x83b0x38>=_0x83b0x36[_0x783b[326]])||(_0x83b0x38<=_0x83b0x36[_0x783b[327]])});_0x83b0x5f=(_0x83b0x66[_0x783b[335]](parseInt(_0x83b0x5b))!== -1)?true:false;}else {_0x83b0x5f=(parseInt(_0x83b0x5b)===_0x83b0x36[_0x783b[326]])?true:false}}else {_0x83b0x5f=true};if(_0x83b0x36[_0x783b[328]]){if(_0x83b0x36[_0x783b[329]]){var _0x83b0x67=_[_0x783b[163]](_0x83b0x61,function(_0x83b0x38){return (_0x83b0x38>=_0x83b0x36[_0x783b[328]])||(_0x83b0x38<=_0x83b0x36[_0x783b[329]])});_0x83b0x60=(_0x83b0x67[_0x783b[335]](parseInt(_0x83b0x5c))!== -1)?true:false;}else {_0x83b0x60=(parseInt(_0x83b0x5c)===_0x83b0x36[_0x783b[328]])?true:false}}else {_0x83b0x60=true};return _0x83b0x5d&&_0x83b0x5e&&_0x83b0x5f&&_0x83b0x60;}function setVariable(_0x83b0x24,_0x83b0x69,_0x83b0x45,_0x83b0x26){console[_0x783b[26]](_0x783b[336]);if(!variables){getVariables(false)};var _0x83b0x4b=_[_0x783b[40]](variables,{id:parseInt(_0x83b0x69)});console[_0x783b[26]](_0x783b[337],_0x83b0x45);_0x83b0x24[_0x783b[29]](util[_0x783b[44]](_0x783b[155],_0x83b0x4b[_0x783b[43]],_0x83b0x45),function(_0x83b0x27,_0x83b0x28){if(_0x83b0x26){_0x83b0x26(_0x83b0x27,_0x83b0x28)}});}function getVariable(_0x83b0x24,_0x83b0x69){if(!variables){getVariables(false)};var _0x83b0x4b=_[_0x783b[40]](variables,{id:parseInt(_0x83b0x69)});var _0x83b0x45=wait[_0x783b[259]](_0x83b0x24,_0x783b[257],_0x83b0x4b[_0x783b[43]]);if(_0x83b0x45[_0x783b[153]]===200&&_0x83b0x45[_0x783b[98]]!==_0x783b[108]){return _0x83b0x45[_0x783b[98]][_0x783b[258]](_0x83b0x45[_0x783b[98]][_0x783b[261]](_0x783b[260])+1,_0x83b0x45[_0x783b[98]][_0x783b[261]](_0x783b[262]))};return _0x783b[63];}function getFilePath(_0x83b0x69){if(!sounds){getSounds(false)};if(_0x83b0x69>0){var _0x83b0x6c=_[_0x783b[40]](sounds,{id:parseInt(_0x83b0x69)});return util[_0x783b[44]](_0x783b[338],_0x83b0x6c[_0x783b[339]],_0x83b0x6c[_0x783b[340]]);};return _0x783b[63];}function getUsers(_0x83b0x6e){User[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){users=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(User,users,_0x783b[162])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function getQueues(_0x83b0x6e){VoiceQueue[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){queues=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(VoiceQueue,queues,_0x783b[43])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function getTrunks(_0x83b0x6e){Trunk[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){trunks=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(Trunk,trunks,_0x783b[162])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function getVariables(_0x83b0x6e){Variable[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){variables=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(Variable,variables,_0x783b[162])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function getDbConnections(_0x83b0x6e){SquareOdbc[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){dbConnections=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(SquareOdbc,dbConnections,_0x783b[162])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function getIntervals(_0x83b0x6e){Interval[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){intervals=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(Interval,intervals,_0x783b[162])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function getProjects(_0x83b0x6e){SquareProject[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){projects=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(SquareProject,projects,_0x783b[162])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function getSounds(_0x83b0x6e){Upload[_0x783b[342]]()[_0x783b[316]](function(_0x83b0x2e){sounds=_[_0x783b[341]](_0x83b0x2e);if(_0x83b0x6e){synchUpdates(Upload,sounds,_0x783b[162])};})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}function synchUpdates(_0x83b0x77,_0x83b0x78,_0x83b0x46){var _0x83b0x79={};_0x83b0x77[_0x783b[343]](function(_0x83b0x7a){_0x83b0x79[_0x83b0x46]=_0x83b0x7a[_0x83b0x46];updateCollection(_0x83b0x78,_0x83b0x79,_0x83b0x7a);});_0x83b0x77[_0x783b[344]](function(_0x83b0x7a){_0x83b0x79[_0x83b0x46]=_0x83b0x7a[_0x83b0x46];updateCollection(_0x83b0x78,_0x83b0x79,_0x83b0x7a);});_0x83b0x77[_0x783b[346]](function(_0x83b0x7a){_0x83b0x79[_0x83b0x46]=_0x83b0x7a[_0x83b0x46];_[_0x783b[345]](_0x83b0x78,_0x83b0x79);});}function updateCollection(_0x83b0x78,_0x83b0x79,_0x83b0x7a){var _0x83b0x7c=_[_0x783b[40]](_0x83b0x78,_0x83b0x79);var _0x83b0x39=_0x83b0x78[_0x783b[335]](_0x83b0x7c);if(_0x83b0x7c){_[_0x783b[347]](_0x83b0x78[_0x83b0x39],_0x83b0x7a)}else {_0x83b0x78[_0x783b[348]](_0x83b0x7a)};}function getPort(){Settings[_0x783b[317]]()[_0x783b[316]](function(_0x83b0x2e){agiPort=_0x83b0x2e[_0x783b[349]]})[_0x783b[102]](function(_0x83b0x27){console[_0x783b[26]](_0x83b0x27)})}module[_0x783b[350]]=function(){console[_0x783b[26]](_0x783b[351]);getPort();var _0x83b0x7e=agi[_0x783b[353]](main)[_0x783b[352]](agiPort?agiPort:4573);getUsers(true);getQueues(true);getTrunks(true);getVariables(true);getIntervals(true);getProjects(true);getSounds(true);getDbConnections(true);};
\ No newline at end of file
index a131636..c3580e5 100644 (file)
@@ -1 +1 @@
-var _0x423d=["\x6D\x6F\x6D\x65\x6E\x74","\x41\x43\x57\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x53\x49\x50\x2F\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x55\x4E\x41\x56\x41\x49\x4C\x41\x42\x4C\x45\x20\x42\x59\x20\x41\x43\x57","\x65\x72\x72\x6F\x72","\x50\x41\x55\x53\x45\x20\x41\x43\x57\x20\x69\x6E\x20\x61\x6C\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20","\x71\x75\x65\x75\x65","\x41\x43\x57","\x53\x49\x4E\x47\x4C\x45\x20\x50\x41\x55\x53\x45\x20\x41\x43\x57\x20\x69\x6E\x20","\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20","\x55\x4E\x50\x41\x55\x53\x45\x20\x41\x43\x57\x20\x69\x6E\x20\x61\x6C\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20","\x61\x63\x74\x69\x6F\x6E","\x61\x67\x65\x6E\x74\x70\x61\x75\x73\x65","\x72\x65\x61\x73\x6F\x6E","\x70\x61\x75\x73\x65\x64","\x31","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x20","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x20\x75\x70\x64\x61\x74\x65\x64\x20\x73\x65\x63\x6F\x6E\x64\x73\x20","\x20\x41\x43\x57\x20\x69\x6E\x20\x71\x75\x65\x75\x65\x20","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x21","\x66\x69\x6E\x64\x41\x6C\x6C","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x75\x70\x64\x61\x74\x65\x20\x65\x72\x72\x6F\x72\x3A\x20\x20","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x423d[0]);var asteriskManager=null;function ACW(_0x8206x4){console[_0x423d[2]](_0x423d[1]);asteriskManager=_0x8206x4;}ACW[_0x423d[4]][_0x423d[3]]=function(_0x8206x5){if(asteriskManager&&asteriskManager[_0x423d[5]]()){if(_0x8206x5[_0x423d[6]]===_0x423d[7]){asteriskManager[_0x423d[17]]({action:_0x423d[8],interface:_0x8206x5[_0x423d[6]],paused:true,reason:_0x423d[9]},function(_0x8206x6,_0x8206x7){if(_0x8206x6){console[_0x423d[10]](_0x8206x6);return ;};console[_0x423d[2]](_0x423d[11]+_0x8206x5[_0x423d[6]]);asteriskManager[_0x423d[17]]({action:_0x423d[8],interface:_0x8206x5[_0x423d[6]],queue:_0x8206x5[_0x423d[12]],paused:true,reason:_0x423d[13]},function(_0x8206x6,_0x8206x7){if(_0x8206x6){console[_0x423d[10]](_0x8206x6);return ;};console[_0x423d[2]](_0x423d[14]+_0x8206x5[_0x423d[12]]+_0x423d[15]+_0x8206x5[_0x423d[6]]);findAndUpdateFlag(_0x8206x5);setTimeout(function(){asteriskManager[_0x423d[17]]({action:_0x423d[8],interface:_0x8206x5[_0x423d[6]],paused:false},function(_0x8206x6,_0x8206x7){if(_0x8206x6){console[_0x423d[10]](_0x8206x6)};console[_0x423d[2]](_0x423d[16]+_0x8206x5[_0x423d[6]]);})},5000);});})}}};ACW[_0x423d[4]][_0x423d[18]]=function(_0x8206x5){if((_0x8206x5[_0x423d[19]]===_0x423d[13]||_0x8206x5[_0x423d[19]]===_0x423d[9])&&_0x8206x5[_0x423d[20]]===_0x423d[21]){return }};function findAndUpdateTime(_0x8206x5){var _0x8206x9=require(_0x423d[23])[_0x423d[22]];_0x8206x9[_0x423d[37]]({where:{agentcomplete:true,agentacw:true,acwtime:null,queue:_0x8206x5[_0x423d[12]],interface:_0x8206x5[_0x423d[6]]}})[_0x423d[34]](function(_0x8206xa){if(_0x8206xa[_0x423d[26]]>0){var _0x8206x9=_0x8206xa[_0x8206xa[_0x423d[26]]-1];var _0x8206xb=moment()[_0x423d[29]](_0x8206x9[_0x423d[27]],_0x423d[28]);_0x8206x9[_0x423d[35]]({acwtime:_0x8206xb})[_0x423d[34]](function(_0x8206x7){console[_0x423d[2]](_0x423d[30]+_0x8206x7[_0x423d[31]]+_0x423d[32]+_0x8206xb+_0x423d[33]+_0x8206x7[_0x423d[12]])})[_0x423d[25]](function(_0x8206x6){console[_0x423d[10]](_0x423d[24]+_0x8206x6)});}else {console[_0x423d[10]]( new Error(_0x423d[36]))}})[_0x423d[25]](function(_0x8206x6){console[_0x423d[10]](_0x423d[24]+_0x8206x6)});}function findAndUpdateFlag(_0x8206x5){var _0x8206x9=require(_0x423d[23])[_0x423d[22]];_0x8206x9[_0x423d[42]]({agentacw:true},{where:{uniqueid:_0x8206x5[_0x423d[40]],destuniqueid:_0x8206x5[_0x423d[41]]}})[_0x423d[34]](function(_0x8206x9){console[_0x423d[2]](_0x423d[39])})[_0x423d[25]](function(_0x8206x6){console[_0x423d[10]](_0x423d[38]+_0x8206x6)});}module[_0x423d[43]]=ACW;
\ No newline at end of file
+var _0xb9a5=["\x6D\x6F\x6D\x65\x6E\x74","\x41\x43\x57\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x53\x49\x50\x2F\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x55\x4E\x41\x56\x41\x49\x4C\x41\x42\x4C\x45\x20\x42\x59\x20\x41\x43\x57","\x65\x72\x72\x6F\x72","\x50\x41\x55\x53\x45\x20\x41\x43\x57\x20\x69\x6E\x20\x61\x6C\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20","\x71\x75\x65\x75\x65","\x41\x43\x57","\x53\x49\x4E\x47\x4C\x45\x20\x50\x41\x55\x53\x45\x20\x41\x43\x57\x20\x69\x6E\x20","\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20","\x55\x4E\x50\x41\x55\x53\x45\x20\x41\x43\x57\x20\x69\x6E\x20\x61\x6C\x6C\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20","\x61\x63\x74\x69\x6F\x6E","\x61\x67\x65\x6E\x74\x70\x61\x75\x73\x65","\x72\x65\x61\x73\x6F\x6E","\x70\x61\x75\x73\x65\x64","\x31","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x20","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x20\x75\x70\x64\x61\x74\x65\x64\x20\x73\x65\x63\x6F\x6E\x64\x73\x20","\x20\x41\x43\x57\x20\x69\x6E\x20\x71\x75\x65\x75\x65\x20","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x21","\x66\x69\x6E\x64\x41\x6C\x6C","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x75\x70\x64\x61\x74\x65\x20\x65\x72\x72\x6F\x72\x3A\x20\x20","\x5B\x61\x63\x77\x5D\x20\x61\x67\x65\x6E\x74\x20\x61\x63\x77\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0xb9a5[0]);var asteriskManager=null;function ACW(_0x7381x4){console[_0xb9a5[2]](_0xb9a5[1]);asteriskManager=_0x7381x4;}ACW[_0xb9a5[4]][_0xb9a5[3]]=function(_0x7381x5){if(asteriskManager&&asteriskManager[_0xb9a5[5]]()){if(_0x7381x5[_0xb9a5[6]]===_0xb9a5[7]){asteriskManager[_0xb9a5[17]]({action:_0xb9a5[8],interface:_0x7381x5[_0xb9a5[6]],paused:true,reason:_0xb9a5[9]},function(_0x7381x6,_0x7381x7){if(_0x7381x6){console[_0xb9a5[10]](_0x7381x6);return ;};console[_0xb9a5[2]](_0xb9a5[11]+_0x7381x5[_0xb9a5[6]]);asteriskManager[_0xb9a5[17]]({action:_0xb9a5[8],interface:_0x7381x5[_0xb9a5[6]],queue:_0x7381x5[_0xb9a5[12]],paused:true,reason:_0xb9a5[13]},function(_0x7381x6,_0x7381x7){if(_0x7381x6){console[_0xb9a5[10]](_0x7381x6);return ;};console[_0xb9a5[2]](_0xb9a5[14]+_0x7381x5[_0xb9a5[12]]+_0xb9a5[15]+_0x7381x5[_0xb9a5[6]]);findAndUpdateFlag(_0x7381x5);setTimeout(function(){asteriskManager[_0xb9a5[17]]({action:_0xb9a5[8],interface:_0x7381x5[_0xb9a5[6]],paused:false},function(_0x7381x6,_0x7381x7){if(_0x7381x6){console[_0xb9a5[10]](_0x7381x6)};console[_0xb9a5[2]](_0xb9a5[16]+_0x7381x5[_0xb9a5[6]]);})},5000);});})}}};ACW[_0xb9a5[4]][_0xb9a5[18]]=function(_0x7381x5){if((_0x7381x5[_0xb9a5[19]]===_0xb9a5[13]||_0x7381x5[_0xb9a5[19]]===_0xb9a5[9])&&_0x7381x5[_0xb9a5[20]]===_0xb9a5[21]){return }};function findAndUpdateTime(_0x7381x5){var _0x7381x9=require(_0xb9a5[23])[_0xb9a5[22]];_0x7381x9[_0xb9a5[37]]({where:{agentcomplete:true,agentacw:true,acwtime:null,queue:_0x7381x5[_0xb9a5[12]],interface:_0x7381x5[_0xb9a5[6]]}})[_0xb9a5[34]](function(_0x7381xa){if(_0x7381xa[_0xb9a5[26]]>0){var _0x7381x9=_0x7381xa[_0x7381xa[_0xb9a5[26]]-1];var _0x7381xb=moment()[_0xb9a5[29]](_0x7381x9[_0xb9a5[27]],_0xb9a5[28]);_0x7381x9[_0xb9a5[35]]({acwtime:_0x7381xb})[_0xb9a5[34]](function(_0x7381x7){console[_0xb9a5[2]](_0xb9a5[30]+_0x7381x7[_0xb9a5[31]]+_0xb9a5[32]+_0x7381xb+_0xb9a5[33]+_0x7381x7[_0xb9a5[12]])})[_0xb9a5[25]](function(_0x7381x6){console[_0xb9a5[10]](_0xb9a5[24]+_0x7381x6)});}else {console[_0xb9a5[10]]( new Error(_0xb9a5[36]))}})[_0xb9a5[25]](function(_0x7381x6){console[_0xb9a5[10]](_0xb9a5[24]+_0x7381x6)});}function findAndUpdateFlag(_0x7381x5){var _0x7381x9=require(_0xb9a5[23])[_0xb9a5[22]];_0x7381x9[_0xb9a5[42]]({agentacw:true},{where:{uniqueid:_0x7381x5[_0xb9a5[40]],destuniqueid:_0x7381x5[_0xb9a5[41]]}})[_0xb9a5[34]](function(_0x7381x9){console[_0xb9a5[2]](_0xb9a5[39])})[_0xb9a5[25]](function(_0x7381x6){console[_0xb9a5[10]](_0xb9a5[38]+_0x7381x6)});}module[_0xb9a5[43]]=ACW;
\ No newline at end of file
index e5e195a..fd388b2 100644 (file)
@@ -1 +1 @@
-var _0x3779=["\x6D\x6F\x6D\x65\x6E\x74","\x41\x67\x65\x6E\x74\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x63\x61\x6C\x6C\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70\x41\x74","\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x72\x65\x6A\x65\x63\x74\x65\x64","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x61\x67\x65\x6E\x74\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x61\x67\x65\x6E\x74\x20\x62\x65\x67\x69\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x61\x67\x65\x6E\x74\x5D\x20\x61\x67\x65\x6E\x74\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x61\x67\x65\x6E\x74\x5D\x20\x61\x67\x65\x6E\x74","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x3779[0]);function Agent(){console[_0x3779[2]](_0x3779[1])}Agent[_0x3779[4]][_0x3779[3]]=function(_0x8315x3){_0x8315x3[_0x3779[5]]=_0x3779[3];_0x8315x3[_0x3779[6]]=moment()[_0x3779[8]](_0x3779[7]);createAgent(_0x8315x3);};Agent[_0x3779[4]][_0x3779[9]]=function(_0x8315x3){_0x8315x3[_0x3779[5]]=_0x3779[9];_0x8315x3[_0x3779[10]]=moment()[_0x3779[8]](_0x3779[7]);updateAgents(_0x8315x3);updateAgents({agentringnoanswer:true,agentringnoanswerAt:moment()[_0x3779[8]](_0x3779[7]),reason:_0x3779[11],lastevent:_0x3779[11]},{uniqueid:_0x8315x3[_0x3779[12]],destuniqueid:{$ne:_0x8315x3[_0x3779[13]]},reason:null});};Agent[_0x3779[4]][_0x3779[14]]=function(_0x8315x3){_0x8315x3[_0x3779[5]]=_0x3779[14];_0x8315x3[_0x3779[15]]=true;_0x8315x3[_0x3779[16]]=moment()[_0x3779[8]](_0x3779[7]);updateAgents(_0x8315x3);};Agent[_0x3779[4]][_0x3779[17]]=function(_0x8315x3){_0x8315x3[_0x3779[5]]=_0x3779[17];_0x8315x3[_0x3779[18]]=true;_0x8315x3[_0x3779[19]]=moment()[_0x3779[8]](_0x3779[7]);updateAgents(_0x8315x3);};Agent[_0x3779[4]][_0x3779[20]]=function(_0x8315x3){_0x8315x3[_0x3779[5]]=_0x3779[21];_0x8315x3[_0x3779[22]]=true;_0x8315x3[_0x3779[23]]=moment()[_0x3779[8]](_0x3779[7]);_0x8315x3[_0x3779[24]]=_0x3779[21];updateAgents(_0x8315x3);};Agent[_0x3779[4]][_0x3779[25]]=function(_0x8315x3){_0x8315x3[_0x3779[5]]=_0x3779[26];_0x8315x3[_0x3779[22]]=true;_0x8315x3[_0x3779[23]]=moment()[_0x3779[8]](_0x3779[7]);_0x8315x3[_0x3779[24]]=_0x3779[26];updateAgents(_0x8315x3,{uniqueid:_0x8315x3[_0x3779[12]],reason:null});};function createAgent(_0x8315x3){var _0x8315x5=require(_0x3779[28])[_0x3779[27]];_0x8315x5[_0x3779[34]](_0x8315x3)[_0x3779[33]](function(_0x8315x5){console[_0x3779[2]](_0x3779[32])})[_0x3779[31]](function(_0x8315x6){console[_0x3779[30]](_0x3779[29]+_0x8315x6)});}function updateAgents(_0x8315x3,_0x8315x8){var _0x8315x5=require(_0x3779[28])[_0x3779[27]];_0x8315x5[_0x3779[37]](_0x8315x3,{where:(_0x8315x8)?_0x8315x8:{uniqueid:_0x8315x3[_0x3779[12]],destuniqueid:_0x8315x3[_0x3779[13]]},individualHooks:true})[_0x3779[33]](function(_0x8315x5){console[_0x3779[2]](_0x3779[36])})[_0x3779[31]](function(_0x8315x6){console[_0x3779[30]](_0x3779[35]+_0x8315x6)});}module[_0x3779[38]]=Agent;
\ No newline at end of file
+var _0xca14=["\x6D\x6F\x6D\x65\x6E\x74","\x41\x67\x65\x6E\x74\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x63\x61\x6C\x6C\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70\x41\x74","\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x72\x65\x6A\x65\x63\x74\x65\x64","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x61\x67\x65\x6E\x74\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x61\x67\x65\x6E\x74\x20\x62\x65\x67\x69\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x61\x67\x65\x6E\x74\x5D\x20\x61\x67\x65\x6E\x74\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x61\x67\x65\x6E\x74\x5D\x20\x61\x67\x65\x6E\x74","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0xca14[0]);function Agent(){console[_0xca14[2]](_0xca14[1])}Agent[_0xca14[4]][_0xca14[3]]=function(_0xff54x3){_0xff54x3[_0xca14[5]]=_0xca14[3];_0xff54x3[_0xca14[6]]=moment()[_0xca14[8]](_0xca14[7]);createAgent(_0xff54x3);};Agent[_0xca14[4]][_0xca14[9]]=function(_0xff54x3){_0xff54x3[_0xca14[5]]=_0xca14[9];_0xff54x3[_0xca14[10]]=moment()[_0xca14[8]](_0xca14[7]);updateAgents(_0xff54x3);updateAgents({agentringnoanswer:true,agentringnoanswerAt:moment()[_0xca14[8]](_0xca14[7]),reason:_0xca14[11],lastevent:_0xca14[11]},{uniqueid:_0xff54x3[_0xca14[12]],destuniqueid:{$ne:_0xff54x3[_0xca14[13]]},reason:null});};Agent[_0xca14[4]][_0xca14[14]]=function(_0xff54x3){_0xff54x3[_0xca14[5]]=_0xca14[14];_0xff54x3[_0xca14[15]]=true;_0xff54x3[_0xca14[16]]=moment()[_0xca14[8]](_0xca14[7]);updateAgents(_0xff54x3);};Agent[_0xca14[4]][_0xca14[17]]=function(_0xff54x3){_0xff54x3[_0xca14[5]]=_0xca14[17];_0xff54x3[_0xca14[18]]=true;_0xff54x3[_0xca14[19]]=moment()[_0xca14[8]](_0xca14[7]);updateAgents(_0xff54x3);};Agent[_0xca14[4]][_0xca14[20]]=function(_0xff54x3){_0xff54x3[_0xca14[5]]=_0xca14[21];_0xff54x3[_0xca14[22]]=true;_0xff54x3[_0xca14[23]]=moment()[_0xca14[8]](_0xca14[7]);_0xff54x3[_0xca14[24]]=_0xca14[21];updateAgents(_0xff54x3);};Agent[_0xca14[4]][_0xca14[25]]=function(_0xff54x3){_0xff54x3[_0xca14[5]]=_0xca14[26];_0xff54x3[_0xca14[22]]=true;_0xff54x3[_0xca14[23]]=moment()[_0xca14[8]](_0xca14[7]);_0xff54x3[_0xca14[24]]=_0xca14[26];updateAgents(_0xff54x3,{uniqueid:_0xff54x3[_0xca14[12]],reason:null});};function createAgent(_0xff54x3){var _0xff54x5=require(_0xca14[28])[_0xca14[27]];_0xff54x5[_0xca14[34]](_0xff54x3)[_0xca14[33]](function(_0xff54x5){console[_0xca14[2]](_0xca14[32])})[_0xca14[31]](function(_0xff54x6){console[_0xca14[30]](_0xca14[29]+_0xff54x6)});}function updateAgents(_0xff54x3,_0xff54x8){var _0xff54x5=require(_0xca14[28])[_0xca14[27]];_0xff54x5[_0xca14[37]](_0xff54x3,{where:(_0xff54x8)?_0xff54x8:{uniqueid:_0xff54x3[_0xca14[12]],destuniqueid:_0xff54x3[_0xca14[13]]},individualHooks:true})[_0xca14[33]](function(_0xff54x5){console[_0xca14[2]](_0xca14[36])})[_0xca14[31]](function(_0xff54x6){console[_0xca14[30]](_0xca14[35]+_0xff54x6)});}module[_0xca14[38]]=Agent;
\ No newline at end of file
index 04a54d2..458dff1 100644 (file)
@@ -1 +1 @@
-var _0x9043=["\x43\x61\x6C\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x64\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x63\x61\x6C\x6C\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x63\x61\x6C\x6C\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];function Call(){console[_0x9043[1]](_0x9043[0])}Call[_0x9043[3]][_0x9043[2]]=function(_0x3273x2){create(_0x3273x2)};function create(_0x3273x2){var _0x3273x4=require(_0x9043[5])[_0x9043[4]];_0x3273x4[_0x9043[11]](_0x3273x2)[_0x9043[10]](function(_0x3273x4){console[_0x9043[1]](_0x9043[9])})[_0x9043[8]](function(_0x3273x5){console[_0x9043[7]](_0x9043[6]+_0x3273x5)});}module[_0x9043[12]]=Call;
\ No newline at end of file
+var _0x4fd9=["\x43\x61\x6C\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x64\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x63\x61\x6C\x6C\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x63\x61\x6C\x6C\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];function Call(){console[_0x4fd9[1]](_0x4fd9[0])}Call[_0x4fd9[3]][_0x4fd9[2]]=function(_0x2a8fx2){create(_0x2a8fx2)};function create(_0x2a8fx2){var _0x2a8fx4=require(_0x4fd9[5])[_0x4fd9[4]];_0x2a8fx4[_0x4fd9[11]](_0x2a8fx2)[_0x4fd9[10]](function(_0x2a8fx4){console[_0x4fd9[1]](_0x4fd9[9])})[_0x4fd9[8]](function(_0x2a8fx5){console[_0x4fd9[7]](_0x4fd9[6]+_0x2a8fx5)});}module[_0x4fd9[12]]=Call;
\ No newline at end of file
index f620aec..1503dfd 100644 (file)
@@ -1 +1 @@
-var _0x7d84=["\x44\x69\x61\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x62\x65\x67\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x6E\x64","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x62\x65\x67\x69\x6E\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x62\x65\x67\x69\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x65\x6E\x64\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x65\x6E\x64\x20\x75\x70\x64\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];function Dial(){console[_0x7d84[1]](_0x7d84[0])}Dial[_0x7d84[3]][_0x7d84[2]]=function(_0x64d6x2){create(_0x64d6x2)};Dial[_0x7d84[3]][_0x7d84[4]]=function(_0x64d6x2){findAndUpdate(_0x64d6x2)};function create(_0x64d6x2){var _0x64d6x4=require(_0x7d84[6])[_0x7d84[5]];_0x64d6x4[_0x7d84[12]](_0x64d6x2)[_0x7d84[11]](function(_0x64d6x4){console[_0x7d84[1]](_0x7d84[10])})[_0x7d84[9]](function(_0x64d6x5){console[_0x7d84[8]](_0x7d84[7]+_0x64d6x5)});}function findAndUpdate(_0x64d6x2){var _0x64d6x4=require(_0x7d84[6])[_0x7d84[5]];_0x64d6x4[_0x7d84[17]](_0x64d6x2,{where:{uniqueid:_0x64d6x2[_0x7d84[16]]}})[_0x7d84[11]](function(){console[_0x7d84[15]](_0x7d84[14])})[_0x7d84[9]](function(_0x64d6x5){console[_0x7d84[8]](_0x7d84[13]+_0x64d6x5)});}module[_0x7d84[18]]=Dial;
\ No newline at end of file
+var _0x56b3=["\x44\x69\x61\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x62\x65\x67\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x6E\x64","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x62\x65\x67\x69\x6E\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x62\x65\x67\x69\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x65\x6E\x64\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x64\x69\x61\x6C\x5D\x20\x64\x69\x61\x6C\x20\x65\x6E\x64\x20\x75\x70\x64\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];function Dial(){console[_0x56b3[1]](_0x56b3[0])}Dial[_0x56b3[3]][_0x56b3[2]]=function(_0xd5a7x2){create(_0xd5a7x2)};Dial[_0x56b3[3]][_0x56b3[4]]=function(_0xd5a7x2){findAndUpdate(_0xd5a7x2)};function create(_0xd5a7x2){var _0xd5a7x4=require(_0x56b3[6])[_0x56b3[5]];_0xd5a7x4[_0x56b3[12]](_0xd5a7x2)[_0x56b3[11]](function(_0xd5a7x4){console[_0x56b3[1]](_0x56b3[10])})[_0x56b3[9]](function(_0xd5a7x5){console[_0x56b3[8]](_0x56b3[7]+_0xd5a7x5)});}function findAndUpdate(_0xd5a7x2){var _0xd5a7x4=require(_0x56b3[6])[_0x56b3[5]];_0xd5a7x4[_0x56b3[17]](_0xd5a7x2,{where:{uniqueid:_0xd5a7x2[_0x56b3[16]]}})[_0x56b3[11]](function(){console[_0x56b3[15]](_0x56b3[14])})[_0x56b3[9]](function(_0xd5a7x5){console[_0x56b3[8]](_0x56b3[13]+_0xd5a7x5)});}module[_0x56b3[18]]=Dial;
\ No newline at end of file
index 2bc782b..0b9c3a1 100644 (file)
@@ -1 +1 @@
-var _0xe2be=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x61\x67\x65\x6E\x74","\x2E\x2F\x63\x61\x6C\x6C","\x2E\x2F\x64\x69\x61\x6C","\x2E\x2F\x6D\x65\x6D\x62\x65\x72","\x2E\x2F\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72","\x2E\x2F\x71\x75\x65\x75\x65\x5F\x6D\x65\x6D\x62\x65\x72","\x2E\x2F\x61\x63\x77","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x68\x6F\x73\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x70\x6F\x72\x74","\x69\x6E\x66\x6F","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x6F\x6E","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x63\x6C\x6F\x73\x65","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x43\x4C\x4F\x53\x45\x3A\x20\x25\x73","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x45\x52\x52\x4F\x52\x3A\x20\x25\x73","\x6D\x61\x6E\x61\x67\x65\x72\x65\x76\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x63\x61\x6C\x6C\x65\x64","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70","\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x61\x64\x64\x65\x64","\x6C\x6F\x67\x69\x6E","\x61\x64\x64\x65\x64","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x70\x61\x75\x73\x65","\x61\x67\x65\x6E\x74\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x70\x65\x6E\x61\x6C\x74\x79","\x70\x65\x6E\x61\x6C\x74\x79","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x72\x65\x6D\x6F\x76\x65\x64","\x6C\x6F\x67\x6F\x75\x74","\x72\x65\x6D\x6F\x76\x65\x64","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x73\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73","\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x62\x65\x67\x69\x6E","\x64\x69\x61\x6C\x65\x6E\x64","\x65\x6E\x64","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E","\x6A\x6F\x69\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65","\x6C\x65\x61\x76\x65","\x63\x64\x72","\x61\x64\x64","\x68\x61\x6E\x67\x75\x70","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x2E\x2E\x2F\x66\x61\x78","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x61\x6D\x69"];_0xe2be[0];var Agent=require(_0xe2be[1]);var Call=require(_0xe2be[2]);var Dial=require(_0xe2be[3]);var Member=require(_0xe2be[4]);var QueueCaller=require(_0xe2be[5]);var QueueMember=require(_0xe2be[6]);var ACW=require(_0xe2be[7]);function onDisconnect(_0xc585x9){}function onConnect(_0xc585x9){}module[_0xe2be[8]]=function(_0xc585x9){var _0xc585xb= new Agent();var _0xc585xc= new Call();var _0xc585xd= new Dial();var _0xc585xe= new Member();var _0xc585xf= new QueueMember();var _0xc585x10= new QueueCaller();var _0xc585x11= new ACW(_0xc585x9);_0xc585x9[_0xe2be[16]](_0xe2be[9],function(){console[_0xe2be[14]](_0xe2be[10],_0xc585x9[_0xe2be[12]][_0xe2be[11]],_0xc585x9[_0xe2be[12]][_0xe2be[13]]);_0xc585x9[_0xe2be[12]][_0xe2be[15]]= new Date();onConnect(_0xc585x9);});_0xc585x9[_0xe2be[16]](_0xe2be[17],function(){onDisconnect(_0xc585x9);console[_0xe2be[14]](_0xe2be[18],_0xc585x9[_0xe2be[12]][_0xe2be[11]],_0xc585x9[_0xe2be[12]][_0xe2be[13]]);});_0xc585x9[_0xe2be[16]](_0xe2be[19],function(_0xc585x12){console[_0xe2be[21]](_0xe2be[20],_0xc585x9[_0xe2be[12]][_0xe2be[11]],_0xc585x9[_0xe2be[12]][_0xe2be[13]],_0xc585x12)});_0xc585x9[_0xe2be[16]](_0xe2be[22],function(_0xc585x13){console[_0xe2be[21]](_0xe2be[23],_0xc585x9[_0xe2be[12]][_0xe2be[11]],_0xc585x9[_0xe2be[12]][_0xe2be[13]],_0xc585x13)});_0xc585x9[_0xe2be[16]](_0xe2be[24],function(_0xc585x14){});_0xc585x9[_0xe2be[16]](_0xe2be[25],function(_0xc585x14){_0xc585xb[_0xe2be[26]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[27],function(_0xc585x14){_0xc585x11[_0xe2be[27]](_0xc585x14);_0xc585xb[_0xe2be[28]](_0xc585x14);_0xc585x10[_0xe2be[28]](_0xc585x14);});_0xc585x9[_0xe2be[16]](_0xe2be[29],function(_0xc585x14){_0xc585xb[_0xe2be[9]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[30],function(_0xc585x14){_0xc585xb[_0xe2be[31]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[32],function(_0xc585x14){_0xc585xb[_0xe2be[33]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[34],function(_0xc585x14){_0xc585xe[_0xe2be[35]](_0xc585x14);_0xc585xf[_0xe2be[36]](_0xc585x14);});_0xc585x9[_0xe2be[16]](_0xe2be[37],function(_0xc585x14){_0xc585x11[_0xe2be[38]](_0xc585x14);_0xc585xe[_0xe2be[39]](_0xc585x14);_0xc585xf[_0xe2be[39]](_0xc585x14);});_0xc585x9[_0xe2be[16]](_0xe2be[40],function(_0xc585x14){_0xc585xf[_0xe2be[41]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[42],function(_0xc585x14){_0xc585xe[_0xe2be[43]](_0xc585x14);_0xc585xf[_0xe2be[44]](_0xc585x14);});_0xc585x9[_0xe2be[16]](_0xe2be[45],function(_0xc585x14){_0xc585xf[_0xe2be[46]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[47],function(_0xc585x14){_0xc585xf[_0xe2be[48]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[49],function(_0xc585x14){_0xc585xd[_0xe2be[50]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[51],function(_0xc585x14){_0xc585xd[_0xe2be[52]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[53],function(_0xc585x14){_0xc585x10[_0xe2be[54]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[55],function(_0xc585x14){_0xc585x10[_0xe2be[56]](_0xc585x14);_0xc585xb[_0xe2be[57]](_0xc585x14);});_0xc585x9[_0xe2be[16]](_0xe2be[58],function(_0xc585x14){_0xc585x10[_0xe2be[59]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[60],function(_0xc585x14){_0xc585xc[_0xe2be[61]](_0xc585x14)});_0xc585x9[_0xe2be[16]](_0xe2be[62],function(_0xc585x14){});require(_0xe2be[64])[_0xe2be[63]](_0xc585x9);require(_0xe2be[65])[_0xe2be[63]](_0xc585x9);require(_0xe2be[66])[_0xe2be[63]](_0xc585x9);require(_0xe2be[67])[_0xe2be[63]](_0xc585x9);};
\ No newline at end of file
+var _0xfbb0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x61\x67\x65\x6E\x74","\x2E\x2F\x63\x61\x6C\x6C","\x2E\x2F\x64\x69\x61\x6C","\x2E\x2F\x6D\x65\x6D\x62\x65\x72","\x2E\x2F\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72","\x2E\x2F\x71\x75\x65\x75\x65\x5F\x6D\x65\x6D\x62\x65\x72","\x2E\x2F\x61\x63\x77","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x68\x6F\x73\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x70\x6F\x72\x74","\x69\x6E\x66\x6F","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x6F\x6E","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x63\x6C\x6F\x73\x65","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x43\x4C\x4F\x53\x45\x3A\x20\x25\x73","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x45\x52\x52\x4F\x52\x3A\x20\x25\x73","\x6D\x61\x6E\x61\x67\x65\x72\x65\x76\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x63\x61\x6C\x6C\x65\x64","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70","\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x61\x64\x64\x65\x64","\x6C\x6F\x67\x69\x6E","\x61\x64\x64\x65\x64","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x70\x61\x75\x73\x65","\x61\x67\x65\x6E\x74\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x70\x65\x6E\x61\x6C\x74\x79","\x70\x65\x6E\x61\x6C\x74\x79","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x72\x65\x6D\x6F\x76\x65\x64","\x6C\x6F\x67\x6F\x75\x74","\x72\x65\x6D\x6F\x76\x65\x64","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x73\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73","\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x62\x65\x67\x69\x6E","\x64\x69\x61\x6C\x65\x6E\x64","\x65\x6E\x64","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E","\x6A\x6F\x69\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65","\x6C\x65\x61\x76\x65","\x63\x64\x72","\x61\x64\x64","\x68\x61\x6E\x67\x75\x70","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x2E\x2E\x2F\x66\x61\x78","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x61\x6D\x69"];_0xfbb0[0];var Agent=require(_0xfbb0[1]);var Call=require(_0xfbb0[2]);var Dial=require(_0xfbb0[3]);var Member=require(_0xfbb0[4]);var QueueCaller=require(_0xfbb0[5]);var QueueMember=require(_0xfbb0[6]);var ACW=require(_0xfbb0[7]);function onDisconnect(_0x4ed0x9){}function onConnect(_0x4ed0x9){}module[_0xfbb0[8]]=function(_0x4ed0x9){var _0x4ed0xb= new Agent();var _0x4ed0xc= new Call();var _0x4ed0xd= new Dial();var _0x4ed0xe= new Member();var _0x4ed0xf= new QueueMember();var _0x4ed0x10= new QueueCaller();var _0x4ed0x11= new ACW(_0x4ed0x9);_0x4ed0x9[_0xfbb0[16]](_0xfbb0[9],function(){console[_0xfbb0[14]](_0xfbb0[10],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[11]],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[13]]);_0x4ed0x9[_0xfbb0[12]][_0xfbb0[15]]= new Date();onConnect(_0x4ed0x9);});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[17],function(){onDisconnect(_0x4ed0x9);console[_0xfbb0[14]](_0xfbb0[18],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[11]],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[13]]);});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[19],function(_0x4ed0x12){console[_0xfbb0[21]](_0xfbb0[20],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[11]],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[13]],_0x4ed0x12)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[22],function(_0x4ed0x13){console[_0xfbb0[21]](_0xfbb0[23],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[11]],_0x4ed0x9[_0xfbb0[12]][_0xfbb0[13]],_0x4ed0x13)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[24],function(_0x4ed0x14){});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[25],function(_0x4ed0x14){_0x4ed0xb[_0xfbb0[26]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[27],function(_0x4ed0x14){_0x4ed0x11[_0xfbb0[27]](_0x4ed0x14);_0x4ed0xb[_0xfbb0[28]](_0x4ed0x14);_0x4ed0x10[_0xfbb0[28]](_0x4ed0x14);});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[29],function(_0x4ed0x14){_0x4ed0xb[_0xfbb0[9]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[30],function(_0x4ed0x14){_0x4ed0xb[_0xfbb0[31]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[32],function(_0x4ed0x14){_0x4ed0xb[_0xfbb0[33]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[34],function(_0x4ed0x14){_0x4ed0xe[_0xfbb0[35]](_0x4ed0x14);_0x4ed0xf[_0xfbb0[36]](_0x4ed0x14);});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[37],function(_0x4ed0x14){_0x4ed0x11[_0xfbb0[38]](_0x4ed0x14);_0x4ed0xe[_0xfbb0[39]](_0x4ed0x14);_0x4ed0xf[_0xfbb0[39]](_0x4ed0x14);});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[40],function(_0x4ed0x14){_0x4ed0xf[_0xfbb0[41]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[42],function(_0x4ed0x14){_0x4ed0xe[_0xfbb0[43]](_0x4ed0x14);_0x4ed0xf[_0xfbb0[44]](_0x4ed0x14);});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[45],function(_0x4ed0x14){_0x4ed0xf[_0xfbb0[46]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[47],function(_0x4ed0x14){_0x4ed0xf[_0xfbb0[48]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[49],function(_0x4ed0x14){_0x4ed0xd[_0xfbb0[50]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[51],function(_0x4ed0x14){_0x4ed0xd[_0xfbb0[52]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[53],function(_0x4ed0x14){_0x4ed0x10[_0xfbb0[54]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[55],function(_0x4ed0x14){_0x4ed0x10[_0xfbb0[56]](_0x4ed0x14);_0x4ed0xb[_0xfbb0[57]](_0x4ed0x14);});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[58],function(_0x4ed0x14){_0x4ed0x10[_0xfbb0[59]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[60],function(_0x4ed0x14){_0x4ed0xc[_0xfbb0[61]](_0x4ed0x14)});_0x4ed0x9[_0xfbb0[16]](_0xfbb0[62],function(_0x4ed0x14){});require(_0xfbb0[64])[_0xfbb0[63]](_0x4ed0x9);require(_0xfbb0[65])[_0xfbb0[63]](_0x4ed0x9);require(_0xfbb0[66])[_0xfbb0[63]](_0x4ed0x9);require(_0xfbb0[67])[_0xfbb0[63]](_0x4ed0x9);};
\ No newline at end of file
index aa70991..0382f25 100644 (file)
@@ -1 +1 @@
-var _0x53a1=["\x6D\x6F\x6D\x65\x6E\x74","\x4D\x65\x6D\x62\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6C\x6F\x67\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x4C\x4F\x47\x49\x4E","\x65\x6E\x74\x65\x72\x64\x61\x74\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67\x6F\x75\x74","\x65\x78\x69\x74\x64\x61\x74\x65","\x70\x61\x75\x73\x65","\x50\x41\x55\x53\x45","\x70\x61\x75\x73\x65\x64","\x72\x65\x61\x73\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x63\x72\x65\x61\x74\x65\x64","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x65\x78\x69\x73\x74","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x70\x72\x65\x61\x64","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x53a1[0]);function Member(){console[_0x53a1[2]](_0x53a1[1])}Member[_0x53a1[4]][_0x53a1[3]]=function(_0x7fd2x3){_0x7fd2x3[_0x53a1[5]]=0;_0x7fd2x3[_0x53a1[6]]=_0x53a1[7];_0x7fd2x3[_0x53a1[8]]=moment()[_0x53a1[10]](_0x53a1[9]);findOrCreate(_0x7fd2x3);};Member[_0x53a1[4]][_0x53a1[11]]=function(_0x7fd2x3){_0x7fd2x3[_0x53a1[5]]=0;_0x7fd2x3[_0x53a1[6]]=_0x53a1[7];_0x7fd2x3[_0x53a1[12]]=moment()[_0x53a1[10]](_0x53a1[9]);findAndUpdate(_0x7fd2x3);};Member[_0x53a1[4]][_0x53a1[13]]=function(_0x7fd2x3){_0x7fd2x3[_0x53a1[5]]=1;_0x7fd2x3[_0x53a1[6]]=_0x53a1[14];var _0x7fd2x4=parseInt(_0x7fd2x3[_0x53a1[15]],10);if(_0x7fd2x4){_0x7fd2x3[_0x53a1[8]]=moment()[_0x53a1[10]](_0x53a1[9]);findOrCreate(_0x7fd2x3);}else {if(_0x7fd2x3[_0x53a1[16]]){delete _0x7fd2x3[_0x53a1[16]]};_0x7fd2x3[_0x53a1[12]]=moment()[_0x53a1[10]](_0x53a1[9]);findAndUpdate(_0x7fd2x3);};};function findOrCreate(_0x7fd2x3){var _0x7fd2x6=require(_0x53a1[18])[_0x53a1[17]];_0x7fd2x6[_0x53a1[27]]({where:{queue:_0x7fd2x3[_0x53a1[25]],membername:_0x7fd2x3[_0x53a1[26]],state:_0x7fd2x3[_0x53a1[5]],enterdate:{$ne:null},exitdate:null},defaults:_0x7fd2x3})[_0x53a1[24]](function(_0x7fd2x7,_0x7fd2x8){if(_0x7fd2x8){console[_0x53a1[2]](_0x53a1[19])}else {console[_0x53a1[2]](_0x53a1[20]);_0x7fd2x7[_0x53a1[23]]({exitdate:moment()[_0x53a1[10]](_0x53a1[9])})[_0x53a1[22]](function(_0x7fd2x9){console[_0x53a1[2]](_0x53a1[21]);findOrCreate(_0x7fd2x3);});}});}function findAndUpdate(_0x7fd2x3){var _0x7fd2x6=require(_0x53a1[18])[_0x53a1[17]];_0x7fd2x6[_0x53a1[31]](_0x7fd2x3,{where:{queue:_0x7fd2x3[_0x53a1[25]],membername:_0x7fd2x3[_0x53a1[26]],state:_0x7fd2x3[_0x53a1[5]],enterdate:{$ne:null},exitdate:null,reason:null}})[_0x53a1[22]](function(_0x7fd2x6){console[_0x53a1[2]](_0x53a1[21])})[_0x53a1[30]](function(_0x7fd2xb){console[_0x53a1[29]](_0x53a1[28]+_0x7fd2xb)});}module[_0x53a1[32]]=Member;
\ No newline at end of file
+var _0xbd68=["\x6D\x6F\x6D\x65\x6E\x74","\x4D\x65\x6D\x62\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6C\x6F\x67\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x4C\x4F\x47\x49\x4E","\x65\x6E\x74\x65\x72\x64\x61\x74\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67\x6F\x75\x74","\x65\x78\x69\x74\x64\x61\x74\x65","\x70\x61\x75\x73\x65","\x50\x41\x55\x53\x45","\x70\x61\x75\x73\x65\x64","\x72\x65\x61\x73\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x63\x72\x65\x61\x74\x65\x64","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x65\x78\x69\x73\x74","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x70\x72\x65\x61\x64","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x5B\x6D\x65\x6D\x62\x65\x72\x5D\x20\x6D\x65\x6D\x62\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0xbd68[0]);function Member(){console[_0xbd68[2]](_0xbd68[1])}Member[_0xbd68[4]][_0xbd68[3]]=function(_0x7a90x3){_0x7a90x3[_0xbd68[5]]=0;_0x7a90x3[_0xbd68[6]]=_0xbd68[7];_0x7a90x3[_0xbd68[8]]=moment()[_0xbd68[10]](_0xbd68[9]);findOrCreate(_0x7a90x3);};Member[_0xbd68[4]][_0xbd68[11]]=function(_0x7a90x3){_0x7a90x3[_0xbd68[5]]=0;_0x7a90x3[_0xbd68[6]]=_0xbd68[7];_0x7a90x3[_0xbd68[12]]=moment()[_0xbd68[10]](_0xbd68[9]);findAndUpdate(_0x7a90x3);};Member[_0xbd68[4]][_0xbd68[13]]=function(_0x7a90x3){_0x7a90x3[_0xbd68[5]]=1;_0x7a90x3[_0xbd68[6]]=_0xbd68[14];var _0x7a90x4=parseInt(_0x7a90x3[_0xbd68[15]],10);if(_0x7a90x4){_0x7a90x3[_0xbd68[8]]=moment()[_0xbd68[10]](_0xbd68[9]);findOrCreate(_0x7a90x3);}else {if(_0x7a90x3[_0xbd68[16]]){delete _0x7a90x3[_0xbd68[16]]};_0x7a90x3[_0xbd68[12]]=moment()[_0xbd68[10]](_0xbd68[9]);findAndUpdate(_0x7a90x3);};};function findOrCreate(_0x7a90x3){var _0x7a90x6=require(_0xbd68[18])[_0xbd68[17]];_0x7a90x6[_0xbd68[27]]({where:{queue:_0x7a90x3[_0xbd68[25]],membername:_0x7a90x3[_0xbd68[26]],state:_0x7a90x3[_0xbd68[5]],enterdate:{$ne:null},exitdate:null},defaults:_0x7a90x3})[_0xbd68[24]](function(_0x7a90x7,_0x7a90x8){if(_0x7a90x8){console[_0xbd68[2]](_0xbd68[19])}else {console[_0xbd68[2]](_0xbd68[20]);_0x7a90x7[_0xbd68[23]]({exitdate:moment()[_0xbd68[10]](_0xbd68[9])})[_0xbd68[22]](function(_0x7a90x9){console[_0xbd68[2]](_0xbd68[21]);findOrCreate(_0x7a90x3);});}});}function findAndUpdate(_0x7a90x3){var _0x7a90x6=require(_0xbd68[18])[_0xbd68[17]];_0x7a90x6[_0xbd68[31]](_0x7a90x3,{where:{queue:_0x7a90x3[_0xbd68[25]],membername:_0x7a90x3[_0xbd68[26]],state:_0x7a90x3[_0xbd68[5]],enterdate:{$ne:null},exitdate:null,reason:null}})[_0xbd68[22]](function(_0x7a90x6){console[_0xbd68[2]](_0xbd68[21])})[_0xbd68[30]](function(_0x7a90xb){console[_0xbd68[29]](_0xbd68[28]+_0x7a90xb)});}module[_0xbd68[32]]=Member;
\ No newline at end of file
index 658c48a..a128f1f 100644 (file)
@@ -1 +1 @@
-var _0x3690=["\x6D\x6F\x6D\x65\x6E\x74","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6A\x6F\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6C\x65\x61\x76\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x71\x75\x65\x75\x65\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x71\x75\x65\x75\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x5D\x20\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x5D\x20\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x20\x75\x70\x64\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x3690[0]);function QueueCaller(){console[_0x3690[2]](_0x3690[1])}QueueCaller[_0x3690[4]][_0x3690[3]]=function(_0xbdbbx3){_0xbdbbx3[_0x3690[5]]=moment()[_0x3690[7]](_0x3690[6]);create(_0xbdbbx3);};QueueCaller[_0x3690[4]][_0x3690[8]]=function(_0xbdbbx3){_0xbdbbx3[_0x3690[9]]=moment()[_0x3690[7]](_0x3690[6]);findAndUpdate(_0xbdbbx3);};QueueCaller[_0x3690[4]][_0x3690[10]]=function(_0xbdbbx3){_0xbdbbx3[_0x3690[11]]=true;_0xbdbbx3[_0x3690[12]]=moment()[_0x3690[7]](_0x3690[6]);findAndUpdate(_0xbdbbx3);};QueueCaller[_0x3690[4]][_0x3690[13]]=function(_0xbdbbx3){_0xbdbbx3[_0x3690[14]]=moment()[_0x3690[7]](_0x3690[6]);findAndUpdate(_0xbdbbx3);};function create(_0xbdbbx3){var _0xbdbbx5=require(_0x3690[16])[_0x3690[15]];_0xbdbbx5[_0x3690[22]](_0xbdbbx3)[_0x3690[21]](function(_0xbdbbx5){console[_0x3690[2]](_0x3690[20])})[_0x3690[19]](function(_0xbdbbx6){console[_0x3690[18]](_0x3690[17]+_0xbdbbx6)});}function findAndUpdate(_0xbdbbx3){var _0xbdbbx5=require(_0x3690[16])[_0x3690[15]];_0xbdbbx5[_0x3690[27]](_0xbdbbx3,{where:{uniqueid:_0xbdbbx3[_0x3690[26]]},individualHooks:true})[_0x3690[21]](function(_0xbdbbx5){console[_0x3690[25]](_0x3690[24])})[_0x3690[19]](function(_0xbdbbx6){console[_0x3690[18]](_0x3690[23]+_0xbdbbx6)});}module[_0x3690[28]]=QueueCaller;
\ No newline at end of file
+var _0x8d79=["\x6D\x6F\x6D\x65\x6E\x74","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6A\x6F\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6C\x65\x61\x76\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x71\x75\x65\x75\x65\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x71\x75\x65\x75\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x5D\x20\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x5D\x20\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x20\x75\x70\x64\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x8d79[0]);function QueueCaller(){console[_0x8d79[2]](_0x8d79[1])}QueueCaller[_0x8d79[4]][_0x8d79[3]]=function(_0xc240x3){_0xc240x3[_0x8d79[5]]=moment()[_0x8d79[7]](_0x8d79[6]);create(_0xc240x3);};QueueCaller[_0x8d79[4]][_0x8d79[8]]=function(_0xc240x3){_0xc240x3[_0x8d79[9]]=moment()[_0x8d79[7]](_0x8d79[6]);findAndUpdate(_0xc240x3);};QueueCaller[_0x8d79[4]][_0x8d79[10]]=function(_0xc240x3){_0xc240x3[_0x8d79[11]]=true;_0xc240x3[_0x8d79[12]]=moment()[_0x8d79[7]](_0x8d79[6]);findAndUpdate(_0xc240x3);};QueueCaller[_0x8d79[4]][_0x8d79[13]]=function(_0xc240x3){_0xc240x3[_0x8d79[14]]=moment()[_0x8d79[7]](_0x8d79[6]);findAndUpdate(_0xc240x3);};function create(_0xc240x3){var _0xc240x5=require(_0x8d79[16])[_0x8d79[15]];_0xc240x5[_0x8d79[22]](_0xc240x3)[_0x8d79[21]](function(_0xc240x5){console[_0x8d79[2]](_0x8d79[20])})[_0x8d79[19]](function(_0xc240x6){console[_0x8d79[18]](_0x8d79[17]+_0xc240x6)});}function findAndUpdate(_0xc240x3){var _0xc240x5=require(_0x8d79[16])[_0x8d79[15]];_0xc240x5[_0x8d79[27]](_0xc240x3,{where:{uniqueid:_0xc240x3[_0x8d79[26]]},individualHooks:true})[_0x8d79[21]](function(_0xc240x5){console[_0x8d79[25]](_0x8d79[24])})[_0x8d79[19]](function(_0xc240x6){console[_0x8d79[18]](_0x8d79[23]+_0xc240x6)});}module[_0x8d79[28]]=QueueCaller;
\ No newline at end of file
index acd6575..6adf2ed 100644 (file)
@@ -1 +1 @@
-var _0x7644=["\x6D\x6F\x6D\x65\x6E\x74","\x51\x75\x65\x75\x65\x4D\x65\x6D\x62\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x64\x64\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x64","\x70\x61\x75\x73\x65\x64\x41\x74","\x70\x65\x6E\x61\x6C\x74\x79","\x72\x65\x6D\x6F\x76\x65\x64","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x73\x74\x61\x74\x75\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x5D\x20\x75\x70\x64\x61\x74\x65\x20\x6D\x65\x6D\x62\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x5D\x20\x75\x70\x64\x61\x74\x65\x20\x6D\x65\x6D\x62\x65\x72","\x74\x68\x65\x6E","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x7644[0]);function QueueMember(){console[_0x7644[2]](_0x7644[1])}QueueMember[_0x7644[4]][_0x7644[3]]=function(_0x69c1x3){_0x69c1x3[_0x7644[5]]=true;_0x69c1x3[_0x7644[6]]=moment()[_0x7644[8]](_0x7644[7]);findAndUpdate(_0x69c1x3);};QueueMember[_0x7644[4]][_0x7644[9]]=function(_0x69c1x3){var _0x69c1x4=parseInt(_0x69c1x3[_0x7644[10]],10);if(_0x69c1x4){_0x69c1x3[_0x7644[11]]=moment()[_0x7644[8]](_0x7644[7])}else {_0x69c1x3[_0x7644[11]]=null};findAndUpdate(_0x69c1x3);};QueueMember[_0x7644[4]][_0x7644[12]]=function(_0x69c1x3){findAndUpdate(_0x69c1x3)};QueueMember[_0x7644[4]][_0x7644[13]]=function(_0x69c1x3){_0x69c1x3[_0x7644[5]]=false;_0x69c1x3[_0x7644[6]]=null;findAndUpdate(_0x69c1x3);};QueueMember[_0x7644[4]][_0x7644[14]]=function(_0x69c1x3){findAndUpdate(_0x69c1x3)};QueueMember[_0x7644[4]][_0x7644[15]]=function(_0x69c1x3){findAndUpdate(_0x69c1x3)};function findAndUpdate(_0x69c1x3,_0x69c1x6){var _0x69c1x7=require(_0x7644[17])[_0x7644[16]];_0x69c1x7[_0x7644[25]](_0x69c1x3,{where:{queue:_0x69c1x3[_0x7644[23]],membername:_0x69c1x3[_0x7644[24]]},individualHooks:true})[_0x7644[22]](function(_0x69c1x9){console[_0x7644[2]](_0x7644[21])})[_0x7644[20]](function(_0x69c1x8){console[_0x7644[19]](_0x7644[18]+_0x69c1x8)});}module[_0x7644[26]]=QueueMember;
\ No newline at end of file
+var _0xd45c=["\x6D\x6F\x6D\x65\x6E\x74","\x51\x75\x65\x75\x65\x4D\x65\x6D\x62\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x64\x64\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x64","\x70\x61\x75\x73\x65\x64\x41\x74","\x70\x65\x6E\x61\x6C\x74\x79","\x72\x65\x6D\x6F\x76\x65\x64","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x73\x74\x61\x74\x75\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x5D\x20\x75\x70\x64\x61\x74\x65\x20\x6D\x65\x6D\x62\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x5D\x20\x75\x70\x64\x61\x74\x65\x20\x6D\x65\x6D\x62\x65\x72","\x74\x68\x65\x6E","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0xd45c[0]);function QueueMember(){console[_0xd45c[2]](_0xd45c[1])}QueueMember[_0xd45c[4]][_0xd45c[3]]=function(_0x7b0ax3){_0x7b0ax3[_0xd45c[5]]=true;_0x7b0ax3[_0xd45c[6]]=moment()[_0xd45c[8]](_0xd45c[7]);findAndUpdate(_0x7b0ax3);};QueueMember[_0xd45c[4]][_0xd45c[9]]=function(_0x7b0ax3){var _0x7b0ax4=parseInt(_0x7b0ax3[_0xd45c[10]],10);if(_0x7b0ax4){_0x7b0ax3[_0xd45c[11]]=moment()[_0xd45c[8]](_0xd45c[7])}else {_0x7b0ax3[_0xd45c[11]]=null};findAndUpdate(_0x7b0ax3);};QueueMember[_0xd45c[4]][_0xd45c[12]]=function(_0x7b0ax3){findAndUpdate(_0x7b0ax3)};QueueMember[_0xd45c[4]][_0xd45c[13]]=function(_0x7b0ax3){_0x7b0ax3[_0xd45c[5]]=false;_0x7b0ax3[_0xd45c[6]]=null;findAndUpdate(_0x7b0ax3);};QueueMember[_0xd45c[4]][_0xd45c[14]]=function(_0x7b0ax3){findAndUpdate(_0x7b0ax3)};QueueMember[_0xd45c[4]][_0xd45c[15]]=function(_0x7b0ax3){findAndUpdate(_0x7b0ax3)};function findAndUpdate(_0x7b0ax3,_0x7b0ax6){var _0x7b0ax7=require(_0xd45c[17])[_0xd45c[16]];_0x7b0ax7[_0xd45c[25]](_0x7b0ax3,{where:{queue:_0x7b0ax3[_0xd45c[23]],membername:_0x7b0ax3[_0xd45c[24]]},individualHooks:true})[_0xd45c[22]](function(_0x7b0ax9){console[_0xd45c[2]](_0xd45c[21])})[_0xd45c[20]](function(_0x7b0ax8){console[_0xd45c[19]](_0xd45c[18]+_0x7b0ax8)});}module[_0xd45c[26]]=QueueMember;
\ No newline at end of file
index 96af5d7..7e3f006 100644 (file)
@@ -1 +1 @@
-var _0x365b=[];
\ No newline at end of file
+var _0x1eae=[];
\ No newline at end of file
index ff833b5..6dfda11 100644 (file)
@@ -1 +1 @@
-var _0x50a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x2E\x2F\x70\x72\x6F\x63\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x20\x53\x74\x61\x72\x74\x69\x6E\x67\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x50\x72\x6F\x63\x65\x73\x73\x65\x73"];_0x50a6[0];var util=require(_0x50a6[1]);var Process=require(_0x50a6[2]);module[_0x50a6[3]]=function(_0x5e69x3){console[_0x50a6[5]](_0x50a6[4]);var _0x5e69x4= new Process();_0x5e69x4[_0x50a6[6]](function(_0x5e69x5,_0x5e69x6){if(_0x5e69x6){console[_0x50a6[5]](_0x5e69x6);return ;}});};
\ No newline at end of file
+var _0x8700=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x2E\x2F\x70\x72\x6F\x63\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x20\x53\x74\x61\x72\x74\x69\x6E\x67\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x50\x72\x6F\x63\x65\x73\x73\x65\x73"];_0x8700[0];var util=require(_0x8700[1]);var Process=require(_0x8700[2]);module[_0x8700[3]]=function(_0xb47ex3){console[_0x8700[5]](_0x8700[4]);var _0xb47ex4= new Process();_0xb47ex4[_0x8700[6]](function(_0xb47ex5,_0xb47ex6){if(_0xb47ex6){console[_0x8700[5]](_0xb47ex6);return ;}});};
\ No newline at end of file
index 483693e..6938157 100644 (file)
@@ -1 +1 @@
-var _0x5a05=["\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x50\x72\x6F\x63\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x50\x72\x6F\x63\x65\x73\x73\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x50\x72\x6F\x63\x65\x73\x73\x65\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x65\x78\x70\x6F\x72\x74\x73"];var AutodialerProcess=require(_0x5a05[1])[_0x5a05[0]];var Contact=require(_0x5a05[1])[_0x5a05[2]];function Process(){console[_0x5a05[4]](_0x5a05[3])}Process[_0x5a05[6]][_0x5a05[5]]=function(_0x892ax4){AutodialerProcess[_0x5a05[9]]({where:{enable:true},include:[Contact]})[_0x5a05[8]](function(_0x892ax6){_0x892ax4(_0x892ax6)})[_0x5a05[7]](function(_0x892ax5){_0x892ax4(null,_0x892ax5)})};module[_0x5a05[10]]=Process;
\ No newline at end of file
+var _0x9ea3=["\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x50\x72\x6F\x63\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x50\x72\x6F\x63\x65\x73\x73\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x50\x72\x6F\x63\x65\x73\x73\x65\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x65\x78\x70\x6F\x72\x74\x73"];var AutodialerProcess=require(_0x9ea3[1])[_0x9ea3[0]];var Contact=require(_0x9ea3[1])[_0x9ea3[2]];function Process(){console[_0x9ea3[4]](_0x9ea3[3])}Process[_0x9ea3[6]][_0x9ea3[5]]=function(_0xf3d2x4){AutodialerProcess[_0x9ea3[9]]({where:{enable:true},include:[Contact]})[_0x9ea3[8]](function(_0xf3d2x6){_0xf3d2x4(_0xf3d2x6)})[_0x9ea3[7]](function(_0xf3d2x5){_0xf3d2x4(null,_0xf3d2x5)})};module[_0x9ea3[10]]=Process;
\ No newline at end of file
index 7d35ac6..c247ae5 100644 (file)
@@ -1 +1 @@
-var _0x26df=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x65\x74\x74\x69\x6E\x67\x73","\x63\x61\x74\x63\x68","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x5F\x74\x69\x6D\x65\x6F\x75\x74","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x62\x6F\x6F\x6C\x65\x61\x6E","\x41\x4E\x44","\x24\x61\x6E\x64","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x72\x75\x6C\x65\x73","\x6C\x6F\x67","\x69\x64","\x64\x61\x74\x61","\x73\x74\x61\x74\x75\x73","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x3D","\x3C\x3E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x68\x6F\x75\x72\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x3E","\x3E\x3D","\x3C","\x3C\x3D","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x65\x72\x72\x6F\x72","\x66\x61\x78"];_0x26df[0];var _=require(_0x26df[1]);var config=require(_0x26df[2]);var moment=require(_0x26df[3]);var sequelize=require(_0x26df[5])[_0x26df[4]];var Automation=require(_0x26df[5])[_0x26df[6]];var FaxRoom=require(_0x26df[5])[_0x26df[7]];var Settings=require(_0x26df[5])[_0x26df[8]];var automationTimeout;var activeAutomations={};function getTimeout(){Settings[_0x26df[12]]()[_0x26df[11]](function(_0x2776xc){automationTimeout=_0x2776xc[_0x26df[10]]})[_0x26df[9]](function(_0x2776xb){})}function executeAutomation(_0x2776xe){var _0x2776xf={where:{}};var _0x2776x10={};var _0x2776x11=JSON[_0x26df[15]](_0x2776xe[_0x26df[14]])[_0x26df[13]];var _0x2776x12=JSON[_0x26df[15]](_0x2776xe[_0x26df[16]])[_0x26df[13]];var _0x2776x13={};var _0x2776x14=_0x2776x11[_0x26df[17]]===_0x26df[18]?_0x26df[19]:_0x26df[20];_0x2776xf[_0x26df[21]][_0x2776x14]=[];_0x2776x11[_0x26df[25]][_0x26df[24]](function(_0x2776x15){if(_0x2776x15[_0x26df[22]]){_0x2776xf[_0x26df[21]][_0x2776x14][_0x26df[23]](getCondition(_0x2776x15))}else {if(_0x2776x15[_0x26df[13]]){var _0x2776x16=_0x2776x15[_0x26df[13]][_0x26df[17]]===_0x26df[18]?_0x26df[19]:_0x26df[20];var _0x2776x17={};_0x2776x17[_0x2776x16]=[];_0x2776x15[_0x26df[13]][_0x26df[25]][_0x26df[24]](function(_0x2776x18){_0x2776x17[_0x2776x16][_0x26df[23]](getCondition(_0x2776x18))});_0x2776xf[_0x26df[21]][_0x2776x14][_0x26df[23]](_0x2776x17);}}});FaxRoom[_0x26df[32]](_0x2776xf)[_0x26df[11]](function(_0x2776x19){_0x2776x19[_0x26df[24]](function(_0x2776x1a){_0x2776x12[_0x26df[25]][_0x26df[24]](function(_0x2776x15){switch(_0x2776x15[_0x26df[31]][_0x26df[30]]){case _0x26df[29]:setStatus(_0x2776x1a[_0x26df[27]],_0x2776x15[_0x26df[28]]);break ;;default:;}})})})[_0x26df[9]](function(_0x2776xb){console[_0x26df[26]](_0x2776xb)});}function setStatus(_0x2776x1c,_0x2776x1d){FaxRoom[_0x26df[33]]({status:_0x2776x1d},{where:{id:_0x2776x1c}})[_0x26df[9]](function(_0x2776xb){console[_0x26df[26]](_0x2776xb)})}function getCondition(_0x2776x15){var _0x2776xc={};switch(_0x2776x15[_0x26df[31]][_0x26df[30]]){case _0x26df[29]:switch(_0x2776x15[_0x26df[22]]){case _0x26df[34]:_0x2776xc[_0x2776x15[_0x26df[31]][_0x26df[30]]]=_0x2776x15[_0x26df[28]];break ;;case _0x26df[35]:_0x2776xc[_0x2776x15[_0x26df[31]][_0x26df[30]]]={$ne:_0x2776x15[_0x26df[28]]};break ;;default:;};break ;;case _0x26df[44]:var _0x2776x1f=moment()[_0x26df[39]](parseInt(_0x2776x15[_0x26df[28]],10),_0x26df[38])[_0x26df[37]](_0x26df[36]);switch(_0x2776x15[_0x26df[22]]){case _0x26df[40]:_0x2776xc[_0x2776x15[_0x26df[31]][_0x26df[30]]]={lt:_0x2776x1f};break ;;case _0x26df[41]:_0x2776xc[_0x2776x15[_0x26df[31]][_0x26df[30]]]={$lte:_0x2776x1f};break ;;case _0x26df[42]:_0x2776xc[_0x2776x15[_0x26df[31]][_0x26df[30]]]={$gt:_0x2776x1f};break ;;case _0x26df[43]:_0x2776xc[_0x2776x15[_0x26df[31]][_0x26df[30]]]={$gte:_0x2776x1f};break ;;default:;};break ;;default:;};return _0x2776xc;}function createInterval(_0x2776xe){activeAutomations[_0x26df[45]+_0x2776xe[_0x26df[27]]]=setInterval(function(){executeAutomation(_0x2776xe)},automationTimeout*1000)}module[_0x26df[46]]=function(){getTimeout();Automation[_0x26df[47]](function(_0x2776x21,_0x2776x22){createInterval(_0x2776x21)});Automation[_0x26df[48]](function(_0x2776x21,_0x2776x22){clearInterval(activeAutomations[_0x26df[45]+_0x2776x21[_0x26df[27]]]);createInterval(_0x2776x21);});Automation[_0x26df[49]](function(_0x2776x21,_0x2776x22){clearInterval(activeAutomations[_0x26df[45]+_0x2776x21[_0x26df[27]]])});Automation[_0x26df[32]]({where:{status:true,channel:_0x26df[51]}})[_0x26df[11]](function(_0x2776x23){_0x2776x23[_0x26df[24]](function(_0x2776xe){createInterval(_0x2776xe)})})[_0x26df[9]](function(_0x2776xb){console[_0x26df[50]](_0x2776xb)});};
\ No newline at end of file
+var _0x3cd1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x65\x74\x74\x69\x6E\x67\x73","\x63\x61\x74\x63\x68","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x5F\x74\x69\x6D\x65\x6F\x75\x74","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x62\x6F\x6F\x6C\x65\x61\x6E","\x41\x4E\x44","\x24\x61\x6E\x64","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x72\x75\x6C\x65\x73","\x6C\x6F\x67","\x69\x64","\x64\x61\x74\x61","\x73\x74\x61\x74\x75\x73","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x3D","\x3C\x3E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x68\x6F\x75\x72\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x3E","\x3E\x3D","\x3C","\x3C\x3D","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x65\x72\x72\x6F\x72","\x66\x61\x78"];_0x3cd1[0];var _=require(_0x3cd1[1]);var config=require(_0x3cd1[2]);var moment=require(_0x3cd1[3]);var sequelize=require(_0x3cd1[5])[_0x3cd1[4]];var Automation=require(_0x3cd1[5])[_0x3cd1[6]];var FaxRoom=require(_0x3cd1[5])[_0x3cd1[7]];var Settings=require(_0x3cd1[5])[_0x3cd1[8]];var automationTimeout;var activeAutomations={};function getTimeout(){Settings[_0x3cd1[12]]()[_0x3cd1[11]](function(_0x82e4xc){automationTimeout=_0x82e4xc[_0x3cd1[10]]})[_0x3cd1[9]](function(_0x82e4xb){})}function executeAutomation(_0x82e4xe){var _0x82e4xf={where:{}};var _0x82e4x10={};var _0x82e4x11=JSON[_0x3cd1[15]](_0x82e4xe[_0x3cd1[14]])[_0x3cd1[13]];var _0x82e4x12=JSON[_0x3cd1[15]](_0x82e4xe[_0x3cd1[16]])[_0x3cd1[13]];var _0x82e4x13={};var _0x82e4x14=_0x82e4x11[_0x3cd1[17]]===_0x3cd1[18]?_0x3cd1[19]:_0x3cd1[20];_0x82e4xf[_0x3cd1[21]][_0x82e4x14]=[];_0x82e4x11[_0x3cd1[25]][_0x3cd1[24]](function(_0x82e4x15){if(_0x82e4x15[_0x3cd1[22]]){_0x82e4xf[_0x3cd1[21]][_0x82e4x14][_0x3cd1[23]](getCondition(_0x82e4x15))}else {if(_0x82e4x15[_0x3cd1[13]]){var _0x82e4x16=_0x82e4x15[_0x3cd1[13]][_0x3cd1[17]]===_0x3cd1[18]?_0x3cd1[19]:_0x3cd1[20];var _0x82e4x17={};_0x82e4x17[_0x82e4x16]=[];_0x82e4x15[_0x3cd1[13]][_0x3cd1[25]][_0x3cd1[24]](function(_0x82e4x18){_0x82e4x17[_0x82e4x16][_0x3cd1[23]](getCondition(_0x82e4x18))});_0x82e4xf[_0x3cd1[21]][_0x82e4x14][_0x3cd1[23]](_0x82e4x17);}}});FaxRoom[_0x3cd1[32]](_0x82e4xf)[_0x3cd1[11]](function(_0x82e4x19){_0x82e4x19[_0x3cd1[24]](function(_0x82e4x1a){_0x82e4x12[_0x3cd1[25]][_0x3cd1[24]](function(_0x82e4x15){switch(_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]){case _0x3cd1[29]:setStatus(_0x82e4x1a[_0x3cd1[27]],_0x82e4x15[_0x3cd1[28]]);break ;;default:;}})})})[_0x3cd1[9]](function(_0x82e4xb){console[_0x3cd1[26]](_0x82e4xb)});}function setStatus(_0x82e4x1c,_0x82e4x1d){FaxRoom[_0x3cd1[33]]({status:_0x82e4x1d},{where:{id:_0x82e4x1c}})[_0x3cd1[9]](function(_0x82e4xb){console[_0x3cd1[26]](_0x82e4xb)})}function getCondition(_0x82e4x15){var _0x82e4xc={};switch(_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]){case _0x3cd1[29]:switch(_0x82e4x15[_0x3cd1[22]]){case _0x3cd1[34]:_0x82e4xc[_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]]=_0x82e4x15[_0x3cd1[28]];break ;;case _0x3cd1[35]:_0x82e4xc[_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]]={$ne:_0x82e4x15[_0x3cd1[28]]};break ;;default:;};break ;;case _0x3cd1[44]:var _0x82e4x1f=moment()[_0x3cd1[39]](parseInt(_0x82e4x15[_0x3cd1[28]],10),_0x3cd1[38])[_0x3cd1[37]](_0x3cd1[36]);switch(_0x82e4x15[_0x3cd1[22]]){case _0x3cd1[40]:_0x82e4xc[_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]]={lt:_0x82e4x1f};break ;;case _0x3cd1[41]:_0x82e4xc[_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]]={$lte:_0x82e4x1f};break ;;case _0x3cd1[42]:_0x82e4xc[_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]]={$gt:_0x82e4x1f};break ;;case _0x3cd1[43]:_0x82e4xc[_0x82e4x15[_0x3cd1[31]][_0x3cd1[30]]]={$gte:_0x82e4x1f};break ;;default:;};break ;;default:;};return _0x82e4xc;}function createInterval(_0x82e4xe){activeAutomations[_0x3cd1[45]+_0x82e4xe[_0x3cd1[27]]]=setInterval(function(){executeAutomation(_0x82e4xe)},automationTimeout*1000)}module[_0x3cd1[46]]=function(){getTimeout();Automation[_0x3cd1[47]](function(_0x82e4x21,_0x82e4x22){createInterval(_0x82e4x21)});Automation[_0x3cd1[48]](function(_0x82e4x21,_0x82e4x22){clearInterval(activeAutomations[_0x3cd1[45]+_0x82e4x21[_0x3cd1[27]]]);createInterval(_0x82e4x21);});Automation[_0x3cd1[49]](function(_0x82e4x21,_0x82e4x22){clearInterval(activeAutomations[_0x3cd1[45]+_0x82e4x21[_0x3cd1[27]]])});Automation[_0x3cd1[32]]({where:{status:true,channel:_0x3cd1[51]}})[_0x3cd1[11]](function(_0x82e4x23){_0x82e4x23[_0x3cd1[24]](function(_0x82e4xe){createInterval(_0x82e4xe)})})[_0x3cd1[9]](function(_0x82e4xb){console[_0x3cd1[50]](_0x82e4xb)});};
\ No newline at end of file
index 62d48dc..b4914ea 100644 (file)
@@ -1 +1 @@
-var _0x7d88=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x53\x65\x74\x74\x69\x6E\x67\x73","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x5F\x74\x69\x6D\x65\x6F\x75\x74","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x62\x6F\x6F\x6C\x65\x61\x6E","\x41\x4E\x44","\x24\x61\x6E\x64","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x72\x75\x6C\x65\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x64","\x64\x61\x74\x61","\x73\x74\x61\x74\x75\x73","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x3D","\x3C\x3E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x68\x6F\x75\x72\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x3E","\x3E\x3D","\x3C","\x3C\x3D","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x65\x72\x72\x6F\x72","\x6D\x61\x69\x6C"];_0x7d88[0];var _=require(_0x7d88[1]);var config=require(_0x7d88[2]);var moment=require(_0x7d88[3]);var sequelize=require(_0x7d88[5])[_0x7d88[4]];var Automation=require(_0x7d88[5])[_0x7d88[6]];var MailRoom=require(_0x7d88[5])[_0x7d88[7]];var Settings=require(_0x7d88[5])[_0x7d88[8]];var automationTimeout;var activeAutomations={};function getTimeout(){return Settings[_0x7d88[11]]()[_0x7d88[10]](function(_0xfea3xb){automationTimeout=_0xfea3xb[_0x7d88[9]];return ;})}function executeAutomation(_0xfea3xd){var _0xfea3xe={where:{}};var _0xfea3xf={};var _0xfea3x10=JSON[_0x7d88[14]](_0xfea3xd[_0x7d88[13]])[_0x7d88[12]];var _0xfea3x11=JSON[_0x7d88[14]](_0xfea3xd[_0x7d88[15]])[_0x7d88[12]];var _0xfea3x12={};var _0xfea3x13=_0xfea3x10[_0x7d88[16]]===_0x7d88[17]?_0x7d88[18]:_0x7d88[19];_0xfea3xe[_0x7d88[20]][_0xfea3x13]=[];_0xfea3x10[_0x7d88[24]][_0x7d88[23]](function(_0xfea3x14){if(_0xfea3x14[_0x7d88[21]]){_0xfea3xe[_0x7d88[20]][_0xfea3x13][_0x7d88[22]](getCondition(_0xfea3x14))}else {if(_0xfea3x14[_0x7d88[12]]){var _0xfea3x15=_0xfea3x14[_0x7d88[12]][_0x7d88[16]]===_0x7d88[17]?_0x7d88[18]:_0x7d88[19];var _0xfea3x16={};_0xfea3x16[_0xfea3x15]=[];_0xfea3x14[_0x7d88[12]][_0x7d88[24]][_0x7d88[23]](function(_0xfea3x17){_0xfea3x16[_0xfea3x15][_0x7d88[22]](getCondition(_0xfea3x17))});_0xfea3xe[_0x7d88[20]][_0xfea3x13][_0x7d88[22]](_0xfea3x16);}}});MailRoom[_0x7d88[32]](_0xfea3xe)[_0x7d88[10]](function(_0xfea3x19){_0xfea3x19[_0x7d88[23]](function(_0xfea3x1a){_0xfea3x11[_0x7d88[24]][_0x7d88[23]](function(_0xfea3x14){switch(_0xfea3x14[_0x7d88[31]][_0x7d88[30]]){case _0x7d88[29]:setStatus(_0xfea3x1a[_0x7d88[27]],_0xfea3x14[_0x7d88[28]]);break ;;default:;}})})})[_0x7d88[26]](function(_0xfea3x18){console[_0x7d88[25]](_0xfea3x18)});}function setStatus(_0xfea3x1c,_0xfea3x1d){MailRoom[_0x7d88[33]]({status:_0xfea3x1d},{where:{id:_0xfea3x1c}})[_0x7d88[26]](function(_0xfea3x18){console[_0x7d88[25]](_0xfea3x18)})}function getCondition(_0xfea3x14){var _0xfea3xb={};switch(_0xfea3x14[_0x7d88[31]][_0x7d88[30]]){case _0x7d88[29]:switch(_0xfea3x14[_0x7d88[21]]){case _0x7d88[34]:_0xfea3xb[_0xfea3x14[_0x7d88[31]][_0x7d88[30]]]=_0xfea3x14[_0x7d88[28]];break ;;case _0x7d88[35]:_0xfea3xb[_0xfea3x14[_0x7d88[31]][_0x7d88[30]]]={$ne:_0xfea3x14[_0x7d88[28]]};break ;;default:;};break ;;case _0x7d88[44]:var _0xfea3x1f=moment()[_0x7d88[39]](parseInt(_0xfea3x14[_0x7d88[28]],10),_0x7d88[38])[_0x7d88[37]](_0x7d88[36]);switch(_0xfea3x14[_0x7d88[21]]){case _0x7d88[40]:_0xfea3xb[_0xfea3x14[_0x7d88[31]][_0x7d88[30]]]={lt:_0xfea3x1f};break ;;case _0x7d88[41]:_0xfea3xb[_0xfea3x14[_0x7d88[31]][_0x7d88[30]]]={$lte:_0xfea3x1f};break ;;case _0x7d88[42]:_0xfea3xb[_0xfea3x14[_0x7d88[31]][_0x7d88[30]]]={$gt:_0xfea3x1f};break ;;case _0x7d88[43]:_0xfea3xb[_0xfea3x14[_0x7d88[31]][_0x7d88[30]]]={$gte:_0xfea3x1f};break ;;default:;};break ;;default:;};return _0xfea3xb;}function createInterval(_0xfea3xd){activeAutomations[_0x7d88[45]+_0xfea3xd[_0x7d88[27]]]=setInterval(function(){executeAutomation(_0xfea3xd)},automationTimeout*1000)}module[_0x7d88[46]]=function(){getTimeout();Automation[_0x7d88[47]](function(_0xfea3x21,_0xfea3x22){createInterval(_0xfea3x21)});Automation[_0x7d88[48]](function(_0xfea3x21,_0xfea3x22){clearInterval(activeAutomations[_0x7d88[45]+_0xfea3x21[_0x7d88[27]]]);createInterval(_0xfea3x21);});Automation[_0x7d88[49]](function(_0xfea3x21,_0xfea3x22){clearInterval(activeAutomations[_0x7d88[45]+_0xfea3x21[_0x7d88[27]]])});Automation[_0x7d88[32]]({where:{status:true,channel:_0x7d88[51]}})[_0x7d88[10]](function(_0xfea3x23){_0xfea3x23[_0x7d88[23]](function(_0xfea3xd){createInterval(_0xfea3xd)})})[_0x7d88[26]](function(_0xfea3x18){console[_0x7d88[50]](_0xfea3x18)});};
\ No newline at end of file
+var _0xf1e8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x53\x65\x74\x74\x69\x6E\x67\x73","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x5F\x74\x69\x6D\x65\x6F\x75\x74","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x62\x6F\x6F\x6C\x65\x61\x6E","\x41\x4E\x44","\x24\x61\x6E\x64","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x72\x75\x6C\x65\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x64","\x64\x61\x74\x61","\x73\x74\x61\x74\x75\x73","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x3D","\x3C\x3E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x68\x6F\x75\x72\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x3E","\x3E\x3D","\x3C","\x3C\x3D","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x65\x72\x72\x6F\x72","\x6D\x61\x69\x6C"];_0xf1e8[0];var _=require(_0xf1e8[1]);var config=require(_0xf1e8[2]);var moment=require(_0xf1e8[3]);var sequelize=require(_0xf1e8[5])[_0xf1e8[4]];var Automation=require(_0xf1e8[5])[_0xf1e8[6]];var MailRoom=require(_0xf1e8[5])[_0xf1e8[7]];var Settings=require(_0xf1e8[5])[_0xf1e8[8]];var automationTimeout;var activeAutomations={};function getTimeout(){return Settings[_0xf1e8[11]]()[_0xf1e8[10]](function(_0x5ab1xb){automationTimeout=_0x5ab1xb[_0xf1e8[9]];return ;})}function executeAutomation(_0x5ab1xd){var _0x5ab1xe={where:{}};var _0x5ab1xf={};var _0x5ab1x10=JSON[_0xf1e8[14]](_0x5ab1xd[_0xf1e8[13]])[_0xf1e8[12]];var _0x5ab1x11=JSON[_0xf1e8[14]](_0x5ab1xd[_0xf1e8[15]])[_0xf1e8[12]];var _0x5ab1x12={};var _0x5ab1x13=_0x5ab1x10[_0xf1e8[16]]===_0xf1e8[17]?_0xf1e8[18]:_0xf1e8[19];_0x5ab1xe[_0xf1e8[20]][_0x5ab1x13]=[];_0x5ab1x10[_0xf1e8[24]][_0xf1e8[23]](function(_0x5ab1x14){if(_0x5ab1x14[_0xf1e8[21]]){_0x5ab1xe[_0xf1e8[20]][_0x5ab1x13][_0xf1e8[22]](getCondition(_0x5ab1x14))}else {if(_0x5ab1x14[_0xf1e8[12]]){var _0x5ab1x15=_0x5ab1x14[_0xf1e8[12]][_0xf1e8[16]]===_0xf1e8[17]?_0xf1e8[18]:_0xf1e8[19];var _0x5ab1x16={};_0x5ab1x16[_0x5ab1x15]=[];_0x5ab1x14[_0xf1e8[12]][_0xf1e8[24]][_0xf1e8[23]](function(_0x5ab1x17){_0x5ab1x16[_0x5ab1x15][_0xf1e8[22]](getCondition(_0x5ab1x17))});_0x5ab1xe[_0xf1e8[20]][_0x5ab1x13][_0xf1e8[22]](_0x5ab1x16);}}});MailRoom[_0xf1e8[32]](_0x5ab1xe)[_0xf1e8[10]](function(_0x5ab1x19){_0x5ab1x19[_0xf1e8[23]](function(_0x5ab1x1a){_0x5ab1x11[_0xf1e8[24]][_0xf1e8[23]](function(_0x5ab1x14){switch(_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]){case _0xf1e8[29]:setStatus(_0x5ab1x1a[_0xf1e8[27]],_0x5ab1x14[_0xf1e8[28]]);break ;;default:;}})})})[_0xf1e8[26]](function(_0x5ab1x18){console[_0xf1e8[25]](_0x5ab1x18)});}function setStatus(_0x5ab1x1c,_0x5ab1x1d){MailRoom[_0xf1e8[33]]({status:_0x5ab1x1d},{where:{id:_0x5ab1x1c}})[_0xf1e8[26]](function(_0x5ab1x18){console[_0xf1e8[25]](_0x5ab1x18)})}function getCondition(_0x5ab1x14){var _0x5ab1xb={};switch(_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]){case _0xf1e8[29]:switch(_0x5ab1x14[_0xf1e8[21]]){case _0xf1e8[34]:_0x5ab1xb[_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]]=_0x5ab1x14[_0xf1e8[28]];break ;;case _0xf1e8[35]:_0x5ab1xb[_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]]={$ne:_0x5ab1x14[_0xf1e8[28]]};break ;;default:;};break ;;case _0xf1e8[44]:var _0x5ab1x1f=moment()[_0xf1e8[39]](parseInt(_0x5ab1x14[_0xf1e8[28]],10),_0xf1e8[38])[_0xf1e8[37]](_0xf1e8[36]);switch(_0x5ab1x14[_0xf1e8[21]]){case _0xf1e8[40]:_0x5ab1xb[_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]]={lt:_0x5ab1x1f};break ;;case _0xf1e8[41]:_0x5ab1xb[_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]]={$lte:_0x5ab1x1f};break ;;case _0xf1e8[42]:_0x5ab1xb[_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]]={$gt:_0x5ab1x1f};break ;;case _0xf1e8[43]:_0x5ab1xb[_0x5ab1x14[_0xf1e8[31]][_0xf1e8[30]]]={$gte:_0x5ab1x1f};break ;;default:;};break ;;default:;};return _0x5ab1xb;}function createInterval(_0x5ab1xd){activeAutomations[_0xf1e8[45]+_0x5ab1xd[_0xf1e8[27]]]=setInterval(function(){executeAutomation(_0x5ab1xd)},automationTimeout*1000)}module[_0xf1e8[46]]=function(){getTimeout();Automation[_0xf1e8[47]](function(_0x5ab1x21,_0x5ab1x22){createInterval(_0x5ab1x21)});Automation[_0xf1e8[48]](function(_0x5ab1x21,_0x5ab1x22){clearInterval(activeAutomations[_0xf1e8[45]+_0x5ab1x21[_0xf1e8[27]]]);createInterval(_0x5ab1x21);});Automation[_0xf1e8[49]](function(_0x5ab1x21,_0x5ab1x22){clearInterval(activeAutomations[_0xf1e8[45]+_0x5ab1x21[_0xf1e8[27]]])});Automation[_0xf1e8[32]]({where:{status:true,channel:_0xf1e8[51]}})[_0xf1e8[10]](function(_0x5ab1x23){_0x5ab1x23[_0xf1e8[23]](function(_0x5ab1xd){createInterval(_0x5ab1xd)})})[_0xf1e8[26]](function(_0x5ab1x18){console[_0xf1e8[50]](_0x5ab1x18)});};
\ No newline at end of file
index c621761..9304213 100644 (file)
@@ -10,6 +10,6 @@ module.exports = {
   db_history: dbconfhistory, // MySQL connection options
   asterisk: astconf, // Asterisk connection options
   provisioning: 'https://www.xcallymotion.com/api',
-  seedDB: false,
+  seedDB: true,
   seedPDB: false
 };
index a0cca71..97c3a69 100644 (file)
@@ -1 +1 @@
-var _0xee78=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x73\x65\x72\x76\x65\x2D\x66\x61\x76\x69\x63\x6F\x6E","\x6D\x6F\x72\x67\x61\x6E","\x63\x6F\x6D\x70\x72\x65\x73\x73\x69\x6F\x6E","\x62\x6F\x64\x79\x2D\x70\x61\x72\x73\x65\x72","\x6D\x65\x74\x68\x6F\x64\x2D\x6F\x76\x65\x72\x72\x69\x64\x65","\x63\x6F\x6F\x6B\x69\x65\x2D\x70\x61\x72\x73\x65\x72","\x65\x72\x72\x6F\x72\x68\x61\x6E\x64\x6C\x65\x72","\x70\x61\x74\x68","\x70\x61\x73\x73\x70\x6F\x72\x74","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x2D\x66\x6C\x61\x73\x68","\x65\x78\x70\x72\x65\x73\x73\x2D\x6D\x79\x73\x71\x6C\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x65\x6E\x76","\x67\x65\x74","\x76\x69\x65\x77\x73","\x72\x6F\x6F\x74","\x2F\x73\x65\x72\x76\x65\x72\x2F\x76\x69\x65\x77\x73","\x73\x65\x74","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72\x46\x69\x6C\x65","\x65\x6A\x73","\x65\x6E\x67\x69\x6E\x65","\x76\x69\x65\x77\x20\x65\x6E\x67\x69\x6E\x65","\x75\x73\x65","\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6A\x73\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x68\x6F\x73\x74","\x64\x62","\x70\x6F\x72\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x64\x61\x74\x61\x62\x61\x73\x65","\x63\x6F\x6F\x6B\x69\x65","\x6E\x61\x6D\x65","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x70\x75\x62\x6C\x69\x63","\x66\x61\x76\x69\x63\x6F\x6E\x2E\x69\x63\x6F","\x6A\x6F\x69\x6E","\x73\x74\x61\x74\x69\x63","\x61\x70\x70\x50\x61\x74\x68","\x2F\x70\x75\x62\x6C\x69\x63","\x64\x65\x76","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x2D\x6C\x69\x76\x65\x72\x65\x6C\x6F\x61\x64","\x2E\x74\x6D\x70","\x63\x6C\x69\x65\x6E\x74"];_0xee78[0];var express=require(_0xee78[1]);var favicon=require(_0xee78[2]);var morgan=require(_0xee78[3]);var compression=require(_0xee78[4]);var bodyParser=require(_0xee78[5]);var methodOverride=require(_0xee78[6]);var cookieParser=require(_0xee78[7]);var errorHandler=require(_0xee78[8]);var path=require(_0xee78[9]);var passport=require(_0xee78[10]);var session=require(_0xee78[11]);var flash=require(_0xee78[12]);var SessionStore=require(_0xee78[13]);var session=require(_0xee78[11]);var config=require(_0xee78[14]);module[_0xee78[15]]=function(_0xd213xf){var _0xd213x10=_0xd213xf[_0xee78[17]](_0xee78[16]);_0xd213xf[_0xee78[21]](_0xee78[18],config[_0xee78[19]]+_0xee78[20]);_0xd213xf[_0xee78[25]](_0xee78[22],require(_0xee78[24])[_0xee78[23]]);_0xd213xf[_0xee78[21]](_0xee78[26],_0xee78[22]);_0xd213xf[_0xee78[27]](compression());_0xd213xf[_0xee78[27]](bodyParser[_0xee78[28]]({extended:false}));_0xd213xf[_0xee78[27]](bodyParser[_0xee78[29]]());_0xd213xf[_0xee78[27]](methodOverride());_0xd213xf[_0xee78[27]](cookieParser());_0xd213xf[_0xee78[27]](passport[_0xee78[30]]());_0xd213xf[_0xee78[27]](session({secret:config[_0xee78[32]][_0xee78[31]],store: new SessionStore({host:config[_0xee78[34]][_0xee78[33]],port:config[_0xee78[34]][_0xee78[35]],user:config[_0xee78[34]][_0xee78[36]],password:config[_0xee78[34]][_0xee78[37]],database:config[_0xee78[34]][_0xee78[38]]}),cookie:config[_0xee78[32]][_0xee78[39]],name:config[_0xee78[32]][_0xee78[40]],resave:true,saveUninitialized:true}));if(_0xee78[41]===_0xd213x10){_0xd213xf[_0xee78[27]](favicon(path[_0xee78[44]](config[_0xee78[19]],_0xee78[42],_0xee78[43])));_0xd213xf[_0xee78[27]](express[_0xee78[45]](path[_0xee78[44]](config[_0xee78[19]],_0xee78[42])));_0xd213xf[_0xee78[21]](_0xee78[46],config[_0xee78[19]]+_0xee78[47]);_0xd213xf[_0xee78[27]](morgan(_0xee78[48]));};if(_0xee78[49]===_0xd213x10||_0xee78[50]===_0xd213x10){_0xd213xf[_0xee78[27]](require(_0xee78[51])());_0xd213xf[_0xee78[27]](express[_0xee78[45]](path[_0xee78[44]](config[_0xee78[19]],_0xee78[52])));_0xd213xf[_0xee78[27]](express[_0xee78[45]](path[_0xee78[44]](config[_0xee78[19]],_0xee78[53])));_0xd213xf[_0xee78[21]](_0xee78[46],_0xee78[53]);_0xd213xf[_0xee78[27]](morgan(_0xee78[48]));_0xd213xf[_0xee78[27]](errorHandler());};_0xd213xf[_0xee78[27]](flash());};
\ No newline at end of file
+var _0xa5a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x73\x65\x72\x76\x65\x2D\x66\x61\x76\x69\x63\x6F\x6E","\x6D\x6F\x72\x67\x61\x6E","\x63\x6F\x6D\x70\x72\x65\x73\x73\x69\x6F\x6E","\x62\x6F\x64\x79\x2D\x70\x61\x72\x73\x65\x72","\x6D\x65\x74\x68\x6F\x64\x2D\x6F\x76\x65\x72\x72\x69\x64\x65","\x63\x6F\x6F\x6B\x69\x65\x2D\x70\x61\x72\x73\x65\x72","\x65\x72\x72\x6F\x72\x68\x61\x6E\x64\x6C\x65\x72","\x70\x61\x74\x68","\x70\x61\x73\x73\x70\x6F\x72\x74","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x2D\x66\x6C\x61\x73\x68","\x65\x78\x70\x72\x65\x73\x73\x2D\x6D\x79\x73\x71\x6C\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x65\x6E\x76","\x67\x65\x74","\x76\x69\x65\x77\x73","\x72\x6F\x6F\x74","\x2F\x73\x65\x72\x76\x65\x72\x2F\x76\x69\x65\x77\x73","\x73\x65\x74","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72\x46\x69\x6C\x65","\x65\x6A\x73","\x65\x6E\x67\x69\x6E\x65","\x76\x69\x65\x77\x20\x65\x6E\x67\x69\x6E\x65","\x75\x73\x65","\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6A\x73\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x68\x6F\x73\x74","\x64\x62","\x70\x6F\x72\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x64\x61\x74\x61\x62\x61\x73\x65","\x63\x6F\x6F\x6B\x69\x65","\x6E\x61\x6D\x65","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x70\x75\x62\x6C\x69\x63","\x66\x61\x76\x69\x63\x6F\x6E\x2E\x69\x63\x6F","\x6A\x6F\x69\x6E","\x73\x74\x61\x74\x69\x63","\x61\x70\x70\x50\x61\x74\x68","\x2F\x70\x75\x62\x6C\x69\x63","\x64\x65\x76","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x2D\x6C\x69\x76\x65\x72\x65\x6C\x6F\x61\x64","\x2E\x74\x6D\x70","\x63\x6C\x69\x65\x6E\x74"];_0xa5a8[0];var express=require(_0xa5a8[1]);var favicon=require(_0xa5a8[2]);var morgan=require(_0xa5a8[3]);var compression=require(_0xa5a8[4]);var bodyParser=require(_0xa5a8[5]);var methodOverride=require(_0xa5a8[6]);var cookieParser=require(_0xa5a8[7]);var errorHandler=require(_0xa5a8[8]);var path=require(_0xa5a8[9]);var passport=require(_0xa5a8[10]);var session=require(_0xa5a8[11]);var flash=require(_0xa5a8[12]);var SessionStore=require(_0xa5a8[13]);var session=require(_0xa5a8[11]);var config=require(_0xa5a8[14]);module[_0xa5a8[15]]=function(_0x9772xf){var _0x9772x10=_0x9772xf[_0xa5a8[17]](_0xa5a8[16]);_0x9772xf[_0xa5a8[21]](_0xa5a8[18],config[_0xa5a8[19]]+_0xa5a8[20]);_0x9772xf[_0xa5a8[25]](_0xa5a8[22],require(_0xa5a8[24])[_0xa5a8[23]]);_0x9772xf[_0xa5a8[21]](_0xa5a8[26],_0xa5a8[22]);_0x9772xf[_0xa5a8[27]](compression());_0x9772xf[_0xa5a8[27]](bodyParser[_0xa5a8[28]]({extended:false}));_0x9772xf[_0xa5a8[27]](bodyParser[_0xa5a8[29]]());_0x9772xf[_0xa5a8[27]](methodOverride());_0x9772xf[_0xa5a8[27]](cookieParser());_0x9772xf[_0xa5a8[27]](passport[_0xa5a8[30]]());_0x9772xf[_0xa5a8[27]](session({secret:config[_0xa5a8[32]][_0xa5a8[31]],store: new SessionStore({host:config[_0xa5a8[34]][_0xa5a8[33]],port:config[_0xa5a8[34]][_0xa5a8[35]],user:config[_0xa5a8[34]][_0xa5a8[36]],password:config[_0xa5a8[34]][_0xa5a8[37]],database:config[_0xa5a8[34]][_0xa5a8[38]]}),cookie:config[_0xa5a8[32]][_0xa5a8[39]],name:config[_0xa5a8[32]][_0xa5a8[40]],resave:true,saveUninitialized:true}));if(_0xa5a8[41]===_0x9772x10){_0x9772xf[_0xa5a8[27]](favicon(path[_0xa5a8[44]](config[_0xa5a8[19]],_0xa5a8[42],_0xa5a8[43])));_0x9772xf[_0xa5a8[27]](express[_0xa5a8[45]](path[_0xa5a8[44]](config[_0xa5a8[19]],_0xa5a8[42])));_0x9772xf[_0xa5a8[21]](_0xa5a8[46],config[_0xa5a8[19]]+_0xa5a8[47]);_0x9772xf[_0xa5a8[27]](morgan(_0xa5a8[48]));};if(_0xa5a8[49]===_0x9772x10||_0xa5a8[50]===_0x9772x10){_0x9772xf[_0xa5a8[27]](require(_0xa5a8[51])());_0x9772xf[_0xa5a8[27]](express[_0xa5a8[45]](path[_0xa5a8[44]](config[_0xa5a8[19]],_0xa5a8[52])));_0x9772xf[_0xa5a8[27]](express[_0xa5a8[45]](path[_0xa5a8[44]](config[_0xa5a8[19]],_0xa5a8[53])));_0x9772xf[_0xa5a8[21]](_0xa5a8[46],_0xa5a8[53]);_0x9772xf[_0xa5a8[27]](morgan(_0xa5a8[48]));_0x9772xf[_0xa5a8[27]](errorHandler());};_0x9772xf[_0xa5a8[27]](flash());};
\ No newline at end of file
index be79118..0dcf1e9 100644 (file)
@@ -1 +1 @@
-var _0xf5c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6E\x6F\x64\x65\x2D\x75\x75\x69\x64","\x74\x69\x66\x66\x2D\x74\x6F\x2D\x70\x6E\x67","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x66\x73","\x70\x61\x74\x68","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74","\x45\x76\x65\x6E\x74","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x72\x65\x63\x65\x69\x76\x65\x66\x61\x78","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x61\x78\x52\x6F\x6F\x6D\x49\x64","\x69\x64","\x49\x4E\x43\x4F\x4D\x49\x4E\x47","\x46\x41\x58","\x63\x72\x65\x61\x74\x65","\x73\x65\x74\x46\x72\x6F\x6D","\x73\x70\x72\x65\x61\x64","\x72\x65\x6D\x6F\x74\x65\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x73\x65\x74\x54\x6F","\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x76\x34","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x66\x61\x78","\x69\x6E\x62\x6F\x75\x6E\x64","\x2E\x70\x64\x66","\x6A\x6F\x69\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x20","\x20","\x54\x68\x65\x20\x66\x69\x6C\x65\x20","\x20\x65\x78\x69\x74\x73","\x20\x77\x61\x73\x20\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x20\x69\x6E\x20\x50\x44\x46","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x74\x73","\x65\x78\x69\x73\x74\x73","\x4E\x45\x57","\x6F\x6E","\x73\x65\x6E\x64\x66\x61\x78","\x2A\x2A\x2A\x53\x65\x6E\x64\x46\x41\x58\x2A\x2A\x2A","\x6C\x6F\x67","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x76\x61\x72\x73\x65\x74","\x66\x61\x78\x73\x74\x61\x74\x75\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x76\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x53\x65\x74\x3A\x20","\x76\x61\x6C\x75\x65","\x46\x41\x49\x4C\x45\x44","\x53\x45\x4E\x54","\x66\x61\x78\x65\x72\x72\x6F\x72","\x66\x61\x78\x73\x74\x61\x74\x75\x73\x73\x74\x72\x69\x6E\x67","\x6C\x61\x73\x74\x73\x74\x61\x74\x75\x73","\x75\x73\x65\x72\x65\x76\x65\x6E\x74","\x46\x61\x78","\x53\x45\x4E\x44\x49\x4E\x47","\x75\x75\x69\x64","\x46\x41\x58\x53\x74\x61\x74\x75\x73\x3A\x20","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x61\x6D\x69"];_0xf5c4[0];var _=require(_0xf5c4[1]);var uuidLib=require(_0xf5c4[2]);var ConvertTiff=require(_0xf5c4[3]);var exec=require(_0xf5c4[5])[_0xf5c4[4]];var fs=require(_0xf5c4[6]);var path=require(_0xf5c4[7]);var FaxMessage=require(_0xf5c4[9])[_0xf5c4[8]];var FaxRoom=require(_0xf5c4[9])[_0xf5c4[10]];var Contact=require(_0xf5c4[9])[_0xf5c4[11]];var Event=require(_0xf5c4[9])[_0xf5c4[12]];var config=require(_0xf5c4[13]);exports[_0xf5c4[14]]=function(_0xfb97xc){_0xfb97xc[_0xf5c4[50]](_0xf5c4[15],function(_0xfb97xd){FaxRoom[_0xf5c4[24]]({status:_0xf5c4[49],from:_0xfb97xd[_0xf5c4[27]],FaxAccountId:1})[_0xf5c4[45]](function(_0xfb97xf){_0xfb97xd[_0xf5c4[18]]=_0xf5c4[19];_0xfb97xd[_0xf5c4[20]]=_0xfb97xf[_0xf5c4[21]];FaxMessage[_0xf5c4[24]](_0xfb97xd)[_0xf5c4[45]](function(_0xfb97x10){Event[_0xf5c4[24]]({name:_0xf5c4[22],channel:_0xf5c4[23],FaxRoomId:_0xfb97xf[_0xf5c4[21]],FaxAccountId:1})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)});Contact[_0xf5c4[28]]({where:{phone:_0xfb97xd[_0xf5c4[27]]},defaults:{phone:_0xfb97xd[_0xf5c4[27]],fullname:_0xfb97xd[_0xf5c4[27]]}})[_0xf5c4[26]](function(_0xfb97x11,_0xfb97x12){_0xfb97x10[_0xf5c4[25]](_0xfb97x11)});Contact[_0xf5c4[28]]({where:{phone:_0xfb97xd[_0xf5c4[30]]},defaults:{phone:_0xfb97xd[_0xf5c4[30]],fullname:_0xfb97xd[_0xf5c4[30]]}})[_0xf5c4[26]](function(_0xfb97x11,_0xfb97x12){_0xfb97x10[_0xf5c4[29]](_0xfb97x11)});var _0xfb97x13=uuidLib[_0xf5c4[31]]();var _0xfb97x14=_0xfb97xd[_0xf5c4[32]];var _0xfb97x15=path[_0xf5c4[39]](config[_0xf5c4[33]],_0xf5c4[34],_0xf5c4[35],_0xf5c4[36],_0xf5c4[37],_0xfb97x13+_0xf5c4[38]);var _0xfb97x16=_0xf5c4[40]+_0xfb97x14+_0xf5c4[41]+_0xfb97x15;fs[_0xf5c4[48]](_0xfb97x14,function(_0xfb97x17){if(_0xfb97x17){console[_0xf5c4[16]](_0xf5c4[42]+_0xfb97x14+_0xf5c4[43]);exec(_0xfb97x16,function(_0xfb97xe){if(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)}else {_0xfb97x10[_0xf5c4[46]]({filenamePDF:_0xfb97x13+_0xf5c4[38]})[_0xf5c4[45]](function(){console[_0xf5c4[16]](_0xf5c4[42]+_0xfb97x14+_0xf5c4[44])})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)})}});}else {console[_0xf5c4[16]](_0xf5c4[42]+_0xfb97x14+_0xf5c4[47])}});})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)});})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)})});_0xfb97xc[_0xf5c4[50]](_0xf5c4[51],function(_0xfb97xd){console[_0xf5c4[53]](_0xf5c4[52]);FaxMessage[_0xf5c4[55]]({where:{uniqueid:_0xfb97xd[_0xf5c4[54]]}})[_0xf5c4[45]](function(_0xfb97x10){if(_0xfb97x10){_0xfb97x10[_0xf5c4[46]](_0xfb97xd)}})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)});});_0xfb97xc[_0xf5c4[50]](_0xf5c4[56],function(_0xfb97xd){if(_0xfb97xd[_0xf5c4[59]][_0xf5c4[58]](_0xf5c4[57])){FaxMessage[_0xf5c4[55]]({where:{uniqueid:_0xfb97xd[_0xf5c4[54]]}})[_0xf5c4[45]](function(_0xfb97x10){if(_0xfb97x10){console[_0xf5c4[53]](_0xf5c4[60],_0xf5c4[18],_0xfb97xd[_0xf5c4[61]]);_0xfb97x10[_0xf5c4[46]]({status:_0xfb97xd[_0xf5c4[61]]==_0xf5c4[62]?_0xf5c4[62]:_0xf5c4[63]});}})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)})}else {if(_0xfb97xd[_0xf5c4[59]][_0xf5c4[58]](_0xf5c4[64])){FaxMessage[_0xf5c4[55]]({where:{uniqueid:_0xfb97xd[_0xf5c4[54]]}})[_0xf5c4[45]](function(_0xfb97x10){if(_0xfb97x10){console[_0xf5c4[53]](_0xf5c4[60],_0xf5c4[16],_0xfb97xd[_0xf5c4[61]]);_0xfb97x10[_0xf5c4[46]]({error:_0xfb97xd[_0xf5c4[61]]});}})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)})}else {if(_0xfb97xd[_0xf5c4[59]][_0xf5c4[58]](_0xf5c4[65])){FaxMessage[_0xf5c4[55]]({where:{uniqueid:_0xfb97xd[_0xf5c4[54]]}})[_0xf5c4[45]](function(_0xfb97x10){if(_0xfb97x10){console[_0xf5c4[53]](_0xf5c4[60],_0xf5c4[66],_0xfb97xd[_0xf5c4[61]]);_0xfb97x10[_0xf5c4[46]]({laststatus:_0xfb97xd[_0xf5c4[61]]});}})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)})}}}});_0xfb97xc[_0xf5c4[50]](_0xf5c4[67],function(_0xfb97xd){if(_0xfb97xd[_0xf5c4[67]]===_0xf5c4[68]){FaxMessage[_0xf5c4[55]]({where:{uuid:_0xfb97xd[_0xf5c4[70]]}})[_0xf5c4[45]](function(_0xfb97x10){if(_0xfb97x10){_0xfb97xd[_0xf5c4[18]]=_0xf5c4[69];_0xfb97x10[_0xf5c4[46]](_0xfb97xd);}})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)})}});_0xfb97xc[_0xf5c4[50]](_0xf5c4[57],function(_0xfb97xd){FaxMessage[_0xf5c4[55]]({where:{uniqueid:_0xfb97xd[_0xf5c4[54]]}})[_0xf5c4[45]](function(_0xfb97x10){if(_0xfb97x10){console[_0xf5c4[53]](_0xf5c4[71],_0xfb97xd[_0xf5c4[54]],_0xfb97xd[_0xf5c4[18]]);_0xfb97x10[_0xf5c4[46]]({operation:_0xfb97xd[_0xf5c4[72]],laststatus:_0xfb97xd[_0xf5c4[18]]});}})[_0xf5c4[17]](function(_0xfb97xe){console[_0xf5c4[16]](_0xfb97xe)})});require(_0xf5c4[73])[_0xf5c4[14]](_0xfb97xc);};
\ No newline at end of file
+var _0xd4f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6E\x6F\x64\x65\x2D\x75\x75\x69\x64","\x74\x69\x66\x66\x2D\x74\x6F\x2D\x70\x6E\x67","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x66\x73","\x70\x61\x74\x68","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74","\x45\x76\x65\x6E\x74","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x72\x65\x63\x65\x69\x76\x65\x66\x61\x78","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x61\x78\x52\x6F\x6F\x6D\x49\x64","\x69\x64","\x49\x4E\x43\x4F\x4D\x49\x4E\x47","\x46\x41\x58","\x63\x72\x65\x61\x74\x65","\x73\x65\x74\x46\x72\x6F\x6D","\x73\x70\x72\x65\x61\x64","\x72\x65\x6D\x6F\x74\x65\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x73\x65\x74\x54\x6F","\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x76\x34","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x66\x61\x78","\x69\x6E\x62\x6F\x75\x6E\x64","\x2E\x70\x64\x66","\x6A\x6F\x69\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x20","\x20","\x54\x68\x65\x20\x66\x69\x6C\x65\x20","\x20\x65\x78\x69\x74\x73","\x20\x77\x61\x73\x20\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x20\x69\x6E\x20\x50\x44\x46","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x74\x73","\x65\x78\x69\x73\x74\x73","\x4E\x45\x57","\x6F\x6E","\x73\x65\x6E\x64\x66\x61\x78","\x2A\x2A\x2A\x53\x65\x6E\x64\x46\x41\x58\x2A\x2A\x2A","\x6C\x6F\x67","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x76\x61\x72\x73\x65\x74","\x66\x61\x78\x73\x74\x61\x74\x75\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x76\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x53\x65\x74\x3A\x20","\x76\x61\x6C\x75\x65","\x46\x41\x49\x4C\x45\x44","\x53\x45\x4E\x54","\x66\x61\x78\x65\x72\x72\x6F\x72","\x66\x61\x78\x73\x74\x61\x74\x75\x73\x73\x74\x72\x69\x6E\x67","\x6C\x61\x73\x74\x73\x74\x61\x74\x75\x73","\x75\x73\x65\x72\x65\x76\x65\x6E\x74","\x46\x61\x78","\x53\x45\x4E\x44\x49\x4E\x47","\x75\x75\x69\x64","\x46\x41\x58\x53\x74\x61\x74\x75\x73\x3A\x20","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x61\x6D\x69"];_0xd4f6[0];var _=require(_0xd4f6[1]);var uuidLib=require(_0xd4f6[2]);var ConvertTiff=require(_0xd4f6[3]);var exec=require(_0xd4f6[5])[_0xd4f6[4]];var fs=require(_0xd4f6[6]);var path=require(_0xd4f6[7]);var FaxMessage=require(_0xd4f6[9])[_0xd4f6[8]];var FaxRoom=require(_0xd4f6[9])[_0xd4f6[10]];var Contact=require(_0xd4f6[9])[_0xd4f6[11]];var Event=require(_0xd4f6[9])[_0xd4f6[12]];var config=require(_0xd4f6[13]);exports[_0xd4f6[14]]=function(_0x1b5dxc){_0x1b5dxc[_0xd4f6[50]](_0xd4f6[15],function(_0x1b5dxd){FaxRoom[_0xd4f6[24]]({status:_0xd4f6[49],from:_0x1b5dxd[_0xd4f6[27]],FaxAccountId:1})[_0xd4f6[45]](function(_0x1b5dxf){_0x1b5dxd[_0xd4f6[18]]=_0xd4f6[19];_0x1b5dxd[_0xd4f6[20]]=_0x1b5dxf[_0xd4f6[21]];FaxMessage[_0xd4f6[24]](_0x1b5dxd)[_0xd4f6[45]](function(_0x1b5dx10){Event[_0xd4f6[24]]({name:_0xd4f6[22],channel:_0xd4f6[23],FaxRoomId:_0x1b5dxf[_0xd4f6[21]],FaxAccountId:1})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)});Contact[_0xd4f6[28]]({where:{phone:_0x1b5dxd[_0xd4f6[27]]},defaults:{phone:_0x1b5dxd[_0xd4f6[27]],fullname:_0x1b5dxd[_0xd4f6[27]]}})[_0xd4f6[26]](function(_0x1b5dx11,_0x1b5dx12){_0x1b5dx10[_0xd4f6[25]](_0x1b5dx11)});Contact[_0xd4f6[28]]({where:{phone:_0x1b5dxd[_0xd4f6[30]]},defaults:{phone:_0x1b5dxd[_0xd4f6[30]],fullname:_0x1b5dxd[_0xd4f6[30]]}})[_0xd4f6[26]](function(_0x1b5dx11,_0x1b5dx12){_0x1b5dx10[_0xd4f6[29]](_0x1b5dx11)});var _0x1b5dx13=uuidLib[_0xd4f6[31]]();var _0x1b5dx14=_0x1b5dxd[_0xd4f6[32]];var _0x1b5dx15=path[_0xd4f6[39]](config[_0xd4f6[33]],_0xd4f6[34],_0xd4f6[35],_0xd4f6[36],_0xd4f6[37],_0x1b5dx13+_0xd4f6[38]);var _0x1b5dx16=_0xd4f6[40]+_0x1b5dx14+_0xd4f6[41]+_0x1b5dx15;fs[_0xd4f6[48]](_0x1b5dx14,function(_0x1b5dx17){if(_0x1b5dx17){console[_0xd4f6[16]](_0xd4f6[42]+_0x1b5dx14+_0xd4f6[43]);exec(_0x1b5dx16,function(_0x1b5dxe){if(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)}else {_0x1b5dx10[_0xd4f6[46]]({filenamePDF:_0x1b5dx13+_0xd4f6[38]})[_0xd4f6[45]](function(){console[_0xd4f6[16]](_0xd4f6[42]+_0x1b5dx14+_0xd4f6[44])})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)})}});}else {console[_0xd4f6[16]](_0xd4f6[42]+_0x1b5dx14+_0xd4f6[47])}});})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)});})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)})});_0x1b5dxc[_0xd4f6[50]](_0xd4f6[51],function(_0x1b5dxd){console[_0xd4f6[53]](_0xd4f6[52]);FaxMessage[_0xd4f6[55]]({where:{uniqueid:_0x1b5dxd[_0xd4f6[54]]}})[_0xd4f6[45]](function(_0x1b5dx10){if(_0x1b5dx10){_0x1b5dx10[_0xd4f6[46]](_0x1b5dxd)}})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)});});_0x1b5dxc[_0xd4f6[50]](_0xd4f6[56],function(_0x1b5dxd){if(_0x1b5dxd[_0xd4f6[59]][_0xd4f6[58]](_0xd4f6[57])){FaxMessage[_0xd4f6[55]]({where:{uniqueid:_0x1b5dxd[_0xd4f6[54]]}})[_0xd4f6[45]](function(_0x1b5dx10){if(_0x1b5dx10){console[_0xd4f6[53]](_0xd4f6[60],_0xd4f6[18],_0x1b5dxd[_0xd4f6[61]]);_0x1b5dx10[_0xd4f6[46]]({status:_0x1b5dxd[_0xd4f6[61]]==_0xd4f6[62]?_0xd4f6[62]:_0xd4f6[63]});}})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)})}else {if(_0x1b5dxd[_0xd4f6[59]][_0xd4f6[58]](_0xd4f6[64])){FaxMessage[_0xd4f6[55]]({where:{uniqueid:_0x1b5dxd[_0xd4f6[54]]}})[_0xd4f6[45]](function(_0x1b5dx10){if(_0x1b5dx10){console[_0xd4f6[53]](_0xd4f6[60],_0xd4f6[16],_0x1b5dxd[_0xd4f6[61]]);_0x1b5dx10[_0xd4f6[46]]({error:_0x1b5dxd[_0xd4f6[61]]});}})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)})}else {if(_0x1b5dxd[_0xd4f6[59]][_0xd4f6[58]](_0xd4f6[65])){FaxMessage[_0xd4f6[55]]({where:{uniqueid:_0x1b5dxd[_0xd4f6[54]]}})[_0xd4f6[45]](function(_0x1b5dx10){if(_0x1b5dx10){console[_0xd4f6[53]](_0xd4f6[60],_0xd4f6[66],_0x1b5dxd[_0xd4f6[61]]);_0x1b5dx10[_0xd4f6[46]]({laststatus:_0x1b5dxd[_0xd4f6[61]]});}})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)})}}}});_0x1b5dxc[_0xd4f6[50]](_0xd4f6[67],function(_0x1b5dxd){if(_0x1b5dxd[_0xd4f6[67]]===_0xd4f6[68]){FaxMessage[_0xd4f6[55]]({where:{uuid:_0x1b5dxd[_0xd4f6[70]]}})[_0xd4f6[45]](function(_0x1b5dx10){if(_0x1b5dx10){_0x1b5dxd[_0xd4f6[18]]=_0xd4f6[69];_0x1b5dx10[_0xd4f6[46]](_0x1b5dxd);}})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)})}});_0x1b5dxc[_0xd4f6[50]](_0xd4f6[57],function(_0x1b5dxd){FaxMessage[_0xd4f6[55]]({where:{uniqueid:_0x1b5dxd[_0xd4f6[54]]}})[_0xd4f6[45]](function(_0x1b5dx10){if(_0x1b5dx10){console[_0xd4f6[53]](_0xd4f6[71],_0x1b5dxd[_0xd4f6[54]],_0x1b5dxd[_0xd4f6[18]]);_0x1b5dx10[_0xd4f6[46]]({operation:_0x1b5dxd[_0xd4f6[72]],laststatus:_0x1b5dxd[_0xd4f6[18]]});}})[_0xd4f6[17]](function(_0x1b5dxe){console[_0xd4f6[16]](_0x1b5dxe)})});require(_0xd4f6[73])[_0xd4f6[14]](_0x1b5dxc);};
\ No newline at end of file
index 82aac01..1a047de 100644 (file)
@@ -1 +1 @@
-var _0xb1a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x67","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5D\x20","\x69\x64","\x20\x72\x6F\x77\x20\x63\x6F\x70\x69\x65\x64","\x20\x72\x6F\x77\x20\x64\x65\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65","\x66\x6F\x72\x45\x61\x63\x68","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x63\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5D\x20","\x65\x78\x70\x6F\x72\x74\x73","\x30\x20\x2A\x2F\x36\x30\x20\x2A\x20\x2A\x20\x2A\x20\x2A","\x73\x74\x61\x72\x74"];_0xb1a1[0];var moment=require(_0xb1a1[1]);var ReportAgent=require(_0xb1a1[3])[_0xb1a1[2]];var ReportCall=require(_0xb1a1[3])[_0xb1a1[4]];var ReportDial=require(_0xb1a1[3])[_0xb1a1[5]];var ReportMember=require(_0xb1a1[3])[_0xb1a1[6]];var ReportQueue=require(_0xb1a1[3])[_0xb1a1[7]];var ReportIntegration=require(_0xb1a1[3])[_0xb1a1[8]];var ReportMailSession=require(_0xb1a1[3])[_0xb1a1[9]];var ReportAgentHistory=require(_0xb1a1[3])[_0xb1a1[11]][_0xb1a1[10]];var ReportCallHistory=require(_0xb1a1[3])[_0xb1a1[11]][_0xb1a1[12]];var ReportDialHistory=require(_0xb1a1[3])[_0xb1a1[11]][_0xb1a1[13]];var ReportMemberHistory=require(_0xb1a1[3])[_0xb1a1[11]][_0xb1a1[14]];var ReportQueueHistory=require(_0xb1a1[3])[_0xb1a1[11]][_0xb1a1[15]];var ReportIntegrationHistory=require(_0xb1a1[3])[_0xb1a1[11]][_0xb1a1[16]];var ReportMailSessionHistory=require(_0xb1a1[3])[_0xb1a1[11]][_0xb1a1[17]];function ReportAgentInReportAgentHistory(){ReportAgent[_0xb1a1[34]]({where:{createdAt:{$lte:moment()[_0xb1a1[33]](_0xb1a1[32])},reason:{$ne:null}},raw:true})[_0xb1a1[28]](function(_0x5293x12){console[_0xb1a1[23]](_0xb1a1[21]+_0x5293x12[_0xb1a1[22]]);_0x5293x12[_0xb1a1[31]](function(_0x5293x13,_0x5293x14){ReportAgentHistory[_0xb1a1[30]](_0x5293x13)[_0xb1a1[28]](function(){console[_0xb1a1[23]](_0xb1a1[24]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[26]);ReportAgent[_0xb1a1[29]]({where:{id:_0x5293x13[_0xb1a1[25]]},individualHooks:true})[_0xb1a1[28]](function(_0x5293x15){console[_0xb1a1[23]](_0xb1a1[24]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[27])})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[18]+_0x5293x11)});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[18]+_0x5293x11)})});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[19]](_0xb1a1[18]+_0x5293x11)})}function ReportCallInReportCallHistory(){ReportCall[_0xb1a1[34]]({where:{createdAt:{$lte:moment()[_0xb1a1[33]](_0xb1a1[32])}},raw:true})[_0xb1a1[28]](function(_0x5293x12){_0x5293x12[_0xb1a1[31]](function(_0x5293x13,_0x5293x14){console[_0xb1a1[23]](_0xb1a1[36]+_0x5293x12[_0xb1a1[22]]);ReportCallHistory[_0xb1a1[30]](_0x5293x13)[_0xb1a1[28]](function(){console[_0xb1a1[23]](_0xb1a1[37]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[26]);ReportCall[_0xb1a1[29]]({where:{id:_0x5293x13[_0xb1a1[25]]},individualHooks:true})[_0xb1a1[28]](function(_0x5293x15){console[_0xb1a1[23]](_0xb1a1[38]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[27])})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[35]+_0x5293x11)});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[35]+_0x5293x11)});})})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[19]](_0xb1a1[35]+_0x5293x11)})}function ReportDialInReportDialHistory(){ReportDial[_0xb1a1[34]]({where:{createdAt:{$lte:moment()[_0xb1a1[33]](_0xb1a1[32])},dialstatus:{$ne:null}},raw:true})[_0xb1a1[28]](function(_0x5293x12){console[_0xb1a1[23]](_0xb1a1[40]+_0x5293x12[_0xb1a1[22]]);_0x5293x12[_0xb1a1[31]](function(_0x5293x13,_0x5293x14){ReportDialHistory[_0xb1a1[30]](_0x5293x13)[_0xb1a1[28]](function(){console[_0xb1a1[23]](_0xb1a1[41]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[26]);ReportDial[_0xb1a1[29]]({where:{id:_0x5293x13[_0xb1a1[25]]},individualHooks:true})[_0xb1a1[28]](function(_0x5293x15){console[_0xb1a1[23]](_0xb1a1[41]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[27])})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[39]+_0x5293x11)});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[39]+_0x5293x11)})});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[19]](_0xb1a1[39]+_0x5293x11)})}function ReportMemberInReportMemberHistory(){ReportMember[_0xb1a1[34]]({where:{createdAt:{$lte:moment()[_0xb1a1[33]](_0xb1a1[32])},exitdate:{$ne:null}},raw:true})[_0xb1a1[28]](function(_0x5293x12){console[_0xb1a1[23]](_0xb1a1[43]+_0x5293x12[_0xb1a1[22]]);_0x5293x12[_0xb1a1[31]](function(_0x5293x13,_0x5293x14){ReportMemberHistory[_0xb1a1[30]](_0x5293x13)[_0xb1a1[28]](function(){console[_0xb1a1[23]](_0xb1a1[44]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[26]);ReportMember[_0xb1a1[29]]({where:{id:_0x5293x13[_0xb1a1[25]]},individualHooks:true})[_0xb1a1[28]](function(_0x5293x15){console[_0xb1a1[23]](_0xb1a1[44]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[27])})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[42]+_0x5293x11)});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[42]+_0x5293x11)})});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[19]](_0xb1a1[42]+_0x5293x11)})}function ReportQueueInReportQueueHistory(){ReportQueue[_0xb1a1[34]]({where:{createdAt:{$lte:moment()[_0xb1a1[33]](_0xb1a1[32])},queuecallerleaveAt:{$ne:null}},raw:true})[_0xb1a1[28]](function(_0x5293x12){console[_0xb1a1[23]](_0xb1a1[46]+_0x5293x12[_0xb1a1[22]]);_0x5293x12[_0xb1a1[31]](function(_0x5293x13,_0x5293x14){ReportQueueHistory[_0xb1a1[30]](_0x5293x13)[_0xb1a1[28]](function(){console[_0xb1a1[23]](_0xb1a1[47]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[26]);ReportQueue[_0xb1a1[29]]({where:{id:_0x5293x13[_0xb1a1[25]]},individualHooks:true})[_0xb1a1[28]](function(_0x5293x15){console[_0xb1a1[23]](_0xb1a1[47]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[27])})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[45]+_0x5293x11)});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[45]+_0x5293x11)})});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[19]](_0xb1a1[45]+_0x5293x11)})}function ReportIntegrationInReportIntegrationHistory(){ReportIntegration[_0xb1a1[34]]({where:{createdAt:{$lte:moment()[_0xb1a1[33]](_0xb1a1[32])}},raw:true})[_0xb1a1[28]](function(_0x5293x12){_0x5293x12[_0xb1a1[31]](function(_0x5293x13,_0x5293x14){console[_0xb1a1[23]](_0xb1a1[49]+_0x5293x12[_0xb1a1[22]]);ReportIntegrationHistory[_0xb1a1[30]](_0x5293x13)[_0xb1a1[28]](function(){console[_0xb1a1[23]](_0xb1a1[37]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[26]);ReportIntegration[_0xb1a1[29]]({where:{id:_0x5293x13[_0xb1a1[25]]},individualHooks:true})[_0xb1a1[28]](function(_0x5293x15){console[_0xb1a1[23]](_0xb1a1[50]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[27])})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[48]+_0x5293x11)});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[48]+_0x5293x11)});})})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[19]](_0xb1a1[48]+_0x5293x11)})}function ReportMailSessionInReportMailSessionHistory(){ReportMailSession[_0xb1a1[34]]({where:{createdAt:{$lte:moment()[_0xb1a1[33]](_0xb1a1[32])},mailleaveAt:{$ne:null}},raw:true})[_0xb1a1[28]](function(_0x5293x12){console[_0xb1a1[23]](_0xb1a1[52]+_0x5293x12[_0xb1a1[22]]);_0x5293x12[_0xb1a1[31]](function(_0x5293x13,_0x5293x14){ReportMailSessionHistory[_0xb1a1[30]](_0x5293x13)[_0xb1a1[28]](function(){console[_0xb1a1[23]](_0xb1a1[53]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[26]);ReportMailSession[_0xb1a1[29]]({where:{id:_0x5293x13[_0xb1a1[25]]},individualHooks:true})[_0xb1a1[28]](function(_0x5293x15){console[_0xb1a1[23]](_0xb1a1[53]+_0x5293x13[_0xb1a1[25]]+_0xb1a1[27])})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[51]+_0x5293x11)});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[23]](_0xb1a1[51]+_0x5293x11)})});})[_0xb1a1[20]](function(_0x5293x11){console[_0xb1a1[19]](_0xb1a1[51]+_0x5293x11)})}module[_0xb1a1[54]]=function(_0x5293x1c){var _0x5293x1d= new _0x5293x1c({cronTime:_0xb1a1[55],onTick:function(){ new ReportAgentInReportAgentHistory(); new ReportCallInReportCallHistory(); new ReportDialInReportDialHistory(); new ReportMemberInReportMemberHistory(); new ReportQueueInReportQueueHistory(); new ReportIntegrationInReportIntegrationHistory(); new ReportMailSessionInReportMailSessionHistory();}});_0x5293x1d[_0xb1a1[56]]();};
\ No newline at end of file
+var _0x6f29=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x67","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5D\x20","\x69\x64","\x20\x72\x6F\x77\x20\x63\x6F\x70\x69\x65\x64","\x20\x72\x6F\x77\x20\x64\x65\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65","\x66\x6F\x72\x45\x61\x63\x68","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x63\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5D\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5D\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5D\x20\x66\x6F\x75\x6E\x64\x3A\x20","\x5B\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5D\x20","\x65\x78\x70\x6F\x72\x74\x73","\x30\x20\x2A\x2F\x36\x30\x20\x2A\x20\x2A\x20\x2A\x20\x2A","\x73\x74\x61\x72\x74"];_0x6f29[0];var moment=require(_0x6f29[1]);var ReportAgent=require(_0x6f29[3])[_0x6f29[2]];var ReportCall=require(_0x6f29[3])[_0x6f29[4]];var ReportDial=require(_0x6f29[3])[_0x6f29[5]];var ReportMember=require(_0x6f29[3])[_0x6f29[6]];var ReportQueue=require(_0x6f29[3])[_0x6f29[7]];var ReportIntegration=require(_0x6f29[3])[_0x6f29[8]];var ReportMailSession=require(_0x6f29[3])[_0x6f29[9]];var ReportAgentHistory=require(_0x6f29[3])[_0x6f29[11]][_0x6f29[10]];var ReportCallHistory=require(_0x6f29[3])[_0x6f29[11]][_0x6f29[12]];var ReportDialHistory=require(_0x6f29[3])[_0x6f29[11]][_0x6f29[13]];var ReportMemberHistory=require(_0x6f29[3])[_0x6f29[11]][_0x6f29[14]];var ReportQueueHistory=require(_0x6f29[3])[_0x6f29[11]][_0x6f29[15]];var ReportIntegrationHistory=require(_0x6f29[3])[_0x6f29[11]][_0x6f29[16]];var ReportMailSessionHistory=require(_0x6f29[3])[_0x6f29[11]][_0x6f29[17]];function ReportAgentInReportAgentHistory(){ReportAgent[_0x6f29[34]]({where:{createdAt:{$lte:moment()[_0x6f29[33]](_0x6f29[32])},reason:{$ne:null}},raw:true})[_0x6f29[28]](function(_0x8fa4x12){console[_0x6f29[23]](_0x6f29[21]+_0x8fa4x12[_0x6f29[22]]);_0x8fa4x12[_0x6f29[31]](function(_0x8fa4x13,_0x8fa4x14){ReportAgentHistory[_0x6f29[30]](_0x8fa4x13)[_0x6f29[28]](function(){console[_0x6f29[23]](_0x6f29[24]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[26]);ReportAgent[_0x6f29[29]]({where:{id:_0x8fa4x13[_0x6f29[25]]},individualHooks:true})[_0x6f29[28]](function(_0x8fa4x15){console[_0x6f29[23]](_0x6f29[24]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[27])})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[18]+_0x8fa4x11)});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[18]+_0x8fa4x11)})});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[19]](_0x6f29[18]+_0x8fa4x11)})}function ReportCallInReportCallHistory(){ReportCall[_0x6f29[34]]({where:{createdAt:{$lte:moment()[_0x6f29[33]](_0x6f29[32])}},raw:true})[_0x6f29[28]](function(_0x8fa4x12){_0x8fa4x12[_0x6f29[31]](function(_0x8fa4x13,_0x8fa4x14){console[_0x6f29[23]](_0x6f29[36]+_0x8fa4x12[_0x6f29[22]]);ReportCallHistory[_0x6f29[30]](_0x8fa4x13)[_0x6f29[28]](function(){console[_0x6f29[23]](_0x6f29[37]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[26]);ReportCall[_0x6f29[29]]({where:{id:_0x8fa4x13[_0x6f29[25]]},individualHooks:true})[_0x6f29[28]](function(_0x8fa4x15){console[_0x6f29[23]](_0x6f29[38]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[27])})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[35]+_0x8fa4x11)});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[35]+_0x8fa4x11)});})})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[19]](_0x6f29[35]+_0x8fa4x11)})}function ReportDialInReportDialHistory(){ReportDial[_0x6f29[34]]({where:{createdAt:{$lte:moment()[_0x6f29[33]](_0x6f29[32])},dialstatus:{$ne:null}},raw:true})[_0x6f29[28]](function(_0x8fa4x12){console[_0x6f29[23]](_0x6f29[40]+_0x8fa4x12[_0x6f29[22]]);_0x8fa4x12[_0x6f29[31]](function(_0x8fa4x13,_0x8fa4x14){ReportDialHistory[_0x6f29[30]](_0x8fa4x13)[_0x6f29[28]](function(){console[_0x6f29[23]](_0x6f29[41]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[26]);ReportDial[_0x6f29[29]]({where:{id:_0x8fa4x13[_0x6f29[25]]},individualHooks:true})[_0x6f29[28]](function(_0x8fa4x15){console[_0x6f29[23]](_0x6f29[41]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[27])})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[39]+_0x8fa4x11)});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[39]+_0x8fa4x11)})});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[19]](_0x6f29[39]+_0x8fa4x11)})}function ReportMemberInReportMemberHistory(){ReportMember[_0x6f29[34]]({where:{createdAt:{$lte:moment()[_0x6f29[33]](_0x6f29[32])},exitdate:{$ne:null}},raw:true})[_0x6f29[28]](function(_0x8fa4x12){console[_0x6f29[23]](_0x6f29[43]+_0x8fa4x12[_0x6f29[22]]);_0x8fa4x12[_0x6f29[31]](function(_0x8fa4x13,_0x8fa4x14){ReportMemberHistory[_0x6f29[30]](_0x8fa4x13)[_0x6f29[28]](function(){console[_0x6f29[23]](_0x6f29[44]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[26]);ReportMember[_0x6f29[29]]({where:{id:_0x8fa4x13[_0x6f29[25]]},individualHooks:true})[_0x6f29[28]](function(_0x8fa4x15){console[_0x6f29[23]](_0x6f29[44]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[27])})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[42]+_0x8fa4x11)});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[42]+_0x8fa4x11)})});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[19]](_0x6f29[42]+_0x8fa4x11)})}function ReportQueueInReportQueueHistory(){ReportQueue[_0x6f29[34]]({where:{createdAt:{$lte:moment()[_0x6f29[33]](_0x6f29[32])},queuecallerleaveAt:{$ne:null}},raw:true})[_0x6f29[28]](function(_0x8fa4x12){console[_0x6f29[23]](_0x6f29[46]+_0x8fa4x12[_0x6f29[22]]);_0x8fa4x12[_0x6f29[31]](function(_0x8fa4x13,_0x8fa4x14){ReportQueueHistory[_0x6f29[30]](_0x8fa4x13)[_0x6f29[28]](function(){console[_0x6f29[23]](_0x6f29[47]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[26]);ReportQueue[_0x6f29[29]]({where:{id:_0x8fa4x13[_0x6f29[25]]},individualHooks:true})[_0x6f29[28]](function(_0x8fa4x15){console[_0x6f29[23]](_0x6f29[47]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[27])})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[45]+_0x8fa4x11)});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[45]+_0x8fa4x11)})});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[19]](_0x6f29[45]+_0x8fa4x11)})}function ReportIntegrationInReportIntegrationHistory(){ReportIntegration[_0x6f29[34]]({where:{createdAt:{$lte:moment()[_0x6f29[33]](_0x6f29[32])}},raw:true})[_0x6f29[28]](function(_0x8fa4x12){_0x8fa4x12[_0x6f29[31]](function(_0x8fa4x13,_0x8fa4x14){console[_0x6f29[23]](_0x6f29[49]+_0x8fa4x12[_0x6f29[22]]);ReportIntegrationHistory[_0x6f29[30]](_0x8fa4x13)[_0x6f29[28]](function(){console[_0x6f29[23]](_0x6f29[37]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[26]);ReportIntegration[_0x6f29[29]]({where:{id:_0x8fa4x13[_0x6f29[25]]},individualHooks:true})[_0x6f29[28]](function(_0x8fa4x15){console[_0x6f29[23]](_0x6f29[50]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[27])})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[48]+_0x8fa4x11)});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[48]+_0x8fa4x11)});})})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[19]](_0x6f29[48]+_0x8fa4x11)})}function ReportMailSessionInReportMailSessionHistory(){ReportMailSession[_0x6f29[34]]({where:{createdAt:{$lte:moment()[_0x6f29[33]](_0x6f29[32])},mailleaveAt:{$ne:null}},raw:true})[_0x6f29[28]](function(_0x8fa4x12){console[_0x6f29[23]](_0x6f29[52]+_0x8fa4x12[_0x6f29[22]]);_0x8fa4x12[_0x6f29[31]](function(_0x8fa4x13,_0x8fa4x14){ReportMailSessionHistory[_0x6f29[30]](_0x8fa4x13)[_0x6f29[28]](function(){console[_0x6f29[23]](_0x6f29[53]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[26]);ReportMailSession[_0x6f29[29]]({where:{id:_0x8fa4x13[_0x6f29[25]]},individualHooks:true})[_0x6f29[28]](function(_0x8fa4x15){console[_0x6f29[23]](_0x6f29[53]+_0x8fa4x13[_0x6f29[25]]+_0x6f29[27])})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[51]+_0x8fa4x11)});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[23]](_0x6f29[51]+_0x8fa4x11)})});})[_0x6f29[20]](function(_0x8fa4x11){console[_0x6f29[19]](_0x6f29[51]+_0x8fa4x11)})}module[_0x6f29[54]]=function(_0x8fa4x1c){var _0x8fa4x1d= new _0x8fa4x1c({cronTime:_0x6f29[55],onTick:function(){ new ReportAgentInReportAgentHistory(); new ReportCallInReportCallHistory(); new ReportDialInReportDialHistory(); new ReportMemberInReportMemberHistory(); new ReportQueueInReportQueueHistory(); new ReportIntegrationInReportIntegrationHistory(); new ReportMailSessionInReportMailSessionHistory();}});_0x8fa4x1d[_0x6f29[56]]();};
\ No newline at end of file
index 5c67829..b9ea58b 100644 (file)
@@ -1 +1 @@
-var _0x9d00=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x61\x69\x6C\x2D\x6C\x69\x73\x74\x65\x6E\x65\x72\x32","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x61\x74\x65","\x63\x68\x61\x6E\x67\x65\x64","\x73\x6F\x75\x72\x63\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x75\x73\x65\x72","\x5F\x63\x6F\x6E\x66\x69\x67","\x69\x6D\x61\x70","\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x20\x49\x4D\x41\x50\x20\x55\x50\x44\x41\x54\x45\x44","\x6C\x6F\x67","\x73\x74\x6F\x70","\x20\x49\x4D\x41\x50\x20\x44\x45\x53\x54\x52\x4F\x59","\x70\x61\x73\x73\x77\x6F\x72\x64","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x73\x6C","\x6D\x61\x69\x6C\x62\x6F\x78","\x66\x69\x6C\x74\x65\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2F","\x6A\x6F\x69\x6E","\x73\x74\x61\x72\x74","\x73\x65\x72\x76\x65\x72\x3A\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x20\x49\x4D\x41\x50\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x6F\x6E","\x73\x65\x72\x76\x65\x72\x3A\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x20\x49\x4D\x41\x50\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x20\x49\x4D\x41\x50\x20\x45\x52\x52\x4F\x52","\x45\x52\x52\x4F\x52","\x6D\x61\x69\x6C","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x73\x75\x62\x6A\x65\x63\x74","\x3B","\x66\x72\x6F\x6D","\x61\x64\x64\x72\x65\x73\x73","\x70\x6C\x75\x63\x6B","\x74\x6F","\x63\x63","\x62\x63\x63","\x52\x45\x43\x45\x49\x56\x45\x44","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x63\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x6D\x61\x70","\x69\x6E\x52\x65\x70\x6C\x79\x54\x6F","\x6D\x73\x67","\x73\x65\x74\x42\x63\x63","\x73\x65\x74\x43\x63","\x73\x65\x74\x54\x6F","\x73\x65\x74\x46\x72\x6F\x6D","\x61\x6C\x6C","\x73\x70\x72\x65\x61\x64","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x66\x69\x6E\x64\x4F\x72\x43\x72\x72\x65\x64\x69\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79"];_0x9d00[0];var _=require(_0x9d00[1]);var path=require(_0x9d00[2]);var config=require(_0x9d00[3]);var ImapListener=require(_0x9d00[4]);var MailServerIn=require(_0x9d00[6])[_0x9d00[5]];var MailMessage=require(_0x9d00[6])[_0x9d00[7]];var MailRoom=require(_0x9d00[6])[_0x9d00[8]];var Contact=require(_0x9d00[6])[_0x9d00[9]];var ContactEmail=require(_0x9d00[6])[_0x9d00[10]];var sequelize=require(_0x9d00[6])[_0x9d00[11]];module[_0x9d00[12]]={create:function(_0xa28fxb){var _0xa28fxc;function _0xa28fxd(_0xa28fxb){if(!_0xa28fxb[_0x9d00[14]](_0x9d00[13])&&!_0xa28fxb[_0x9d00[14]](_0x9d00[15])&&_0xa28fxb[_0x9d00[16]]===_0xa28fxc[_0x9d00[19]][_0x9d00[18]][_0x9d00[17]]){console[_0x9d00[22]](_0x9d00[20]+_0xa28fxb[_0x9d00[16]]+_0x9d00[21]);_0xa28fxc[_0x9d00[23]]();_0xa28fxf(_0xa28fxb);}}function _0xa28fxe(_0xa28fxb){if(_0xa28fxb[_0x9d00[16]]===_0xa28fxc[_0x9d00[19]][_0x9d00[18]][_0x9d00[17]]){console[_0x9d00[22]](_0x9d00[20]+_0xa28fxb[_0x9d00[16]]+_0x9d00[24]);_0xa28fxc[_0x9d00[23]]();_0xa28fxc=null;}}function _0xa28fxf(_0xa28fxb){if(_0xa28fxc){_0xa28fxc[_0x9d00[23]](_0xa28fxb);_0xa28fxc=null;};_0xa28fxc= new ImapListener({username:_0xa28fxb[_0x9d00[16]],password:_0xa28fxb[_0x9d00[25]],host:_0xa28fxb[_0x9d00[26]],port:_0xa28fxb[_0x9d00[27]],tls:_0xa28fxb[_0x9d00[28]],tlsOptions:{rejectUnauthorized:false},mailbox:_0xa28fxb[_0x9d00[29]],searchFilter:[_0xa28fxb[_0x9d00[30]]],markSeen:true,fetchUnreadOnStart:true,mailParserOptions:{streamAttachments:false},attachments:true,attachmentOptions:{directory:path[_0x9d00[36]](config[_0x9d00[31]],_0x9d00[32],_0x9d00[33],_0x9d00[34],_0x9d00[35])}});_0xa28fxc[_0x9d00[37]]();_0xa28fxc[_0x9d00[47]](_0x9d00[38],function(){console[_0x9d00[22]](_0x9d00[20]+_0xa28fxb[_0x9d00[16]]+_0x9d00[39]);return MailServerIn[_0x9d00[46]](_0xa28fxb[_0x9d00[45]])[_0x9d00[44]](function(_0xa28fx11){return _0xa28fx11[_0x9d00[43]]({state:_0x9d00[42]})})[_0x9d00[41]](function(_0xa28fx10){console[_0x9d00[40]](_0xa28fx10)});});_0xa28fxc[_0x9d00[47]](_0x9d00[48],function(){console[_0x9d00[22]](_0x9d00[20]+_0xa28fxb[_0x9d00[49]]+_0x9d00[50]);MailServerIn[_0x9d00[46]](_0xa28fxb[_0x9d00[45]])[_0x9d00[44]](function(_0xa28fx11){_0xa28fx11[_0x9d00[52]]({state:_0x9d00[51]})})[_0x9d00[41]](function(_0xa28fx10){console[_0x9d00[40]](_0xa28fx10)});});_0xa28fxc[_0x9d00[47]](_0x9d00[40],function(_0xa28fx10){console[_0x9d00[22]](_0x9d00[20]+_0xa28fxb[_0x9d00[49]]+_0x9d00[53],_0xa28fx10);MailServerIn[_0x9d00[46]](_0xa28fxb[_0x9d00[45]])[_0x9d00[44]](function(_0xa28fx11){_0xa28fx11[_0x9d00[52]]({state:_0x9d00[54],source:_0xa28fx10[_0x9d00[15]]})})[_0x9d00[41]](function(_0xa28fx10){console[_0x9d00[40]](_0xa28fx10)});});_0xa28fxc[_0x9d00[47]](_0x9d00[55],function(_0xa28fx12,_0xa28fx13,_0xa28fx14){var _0xa28fx15;var _0xa28fx16;var _0xa28fx17,_0xa28fx18,_0xa28fx19,_0xa28fx1a;function _0xa28fx1b(_0xa28fx1c){_0xa28fx15=_0xa28fx1c;return MailMessage[_0x9d00[68]]({messageId:_0xa28fx12[_0x9d00[56]],subject:_0xa28fx12[_0x9d00[57]],from:_[_0x9d00[61]](_0xa28fx12[_0x9d00[59]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]),to:_0xa28fx12[_0x9d00[62]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[62]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,cc:_0xa28fx12[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[63]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,bcc:_0xa28fx12[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[64]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,status:_0x9d00[65],html:_0xa28fx12[_0x9d00[66]]||null,text:_0xa28fx12[_0x9d00[67]]||null,MailAttachments:_0xa28fx12[_0x9d00[34]]||[],MailRoomId:_0xa28fx1c[_0x9d00[45]]});}function _0xa28fx1d(_0xa28fx1e){_0xa28fx16=_0xa28fx1e;return ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx16[_0x9d00[59]]},defaults:{email:_0xa28fx16[_0x9d00[59]]}});}function _0xa28fx1f(_0xa28fx20,_0xa28fx21){var _0xa28fx22=[];var _0xa28fx23=_0xa28fx16[_0x9d00[62]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[62]],_0x9d00[60]):[];_0xa28fx17=_0xa28fx20;_0xa28fx23[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24}}))});return _0xa28fx22;}function _0xa28fx25(_0xa28fx26){var _0xa28fx22=[];var _0xa28fx27=_0xa28fx16[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[63]],_0x9d00[60]):[];_0xa28fx18=_[_0x9d00[72]](_0xa28fx26,function(_0xa28fx28){return _0xa28fx28[0]});_0xa28fx27[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24}}))});return _0xa28fx22;}function _0xa28fx29(_0xa28fx2a){var _0xa28fx22=[];var _0xa28fx2b=_0xa28fx16[_0x9d00[64]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[64]],_0x9d00[60]):[];_0xa28fx19=_[_0x9d00[72]](_0xa28fx2a,function(_0xa28fx28){return _0xa28fx28[0]});_0xa28fx2b[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24}}))});return _0xa28fx22;}function _0xa28fx2c(_0xa28fx2d){_0xa28fx1a=_[_0x9d00[72]](_0xa28fx2d,function(_0xa28fx28){return _0xa28fx28[0]});return ;}return sequelize[_0x9d00[84]](function(_0xa28fx2f){if(_0xa28fx12[_0x9d00[73]]){console[_0x9d00[22]](_0x9d00[74],_0xa28fx12);return MailMessage[_0x9d00[82]]({where:{messageId:_0xa28fx12[_0x9d00[73]][0]},include:[{all:true}]})[_0x9d00[44]](function(_0xa28fx30){return _0xa28fx30[_0x9d00[81]]()})[_0x9d00[44]](function(_0xa28fx1c){_0xa28fx15=_0xa28fx1c;return MailMessage[_0x9d00[68]]({messageId:_0xa28fx12[_0x9d00[56]],subject:_0xa28fx12[_0x9d00[57]],from:_[_0x9d00[61]](_0xa28fx12[_0x9d00[59]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]),to:_0xa28fx12[_0x9d00[62]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[62]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,cc:_0xa28fx12[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[63]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,bcc:_0xa28fx12[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[64]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,status:_0x9d00[65],html:_0xa28fx12[_0x9d00[66]]||null,text:_0xa28fx12[_0x9d00[67]]||null,MailAttachments:_0xa28fx12[_0x9d00[34]]||[],MailRoomId:_0xa28fx1c[_0x9d00[45]]},{include:[{all:true}],transaction:_0xa28fx2f});})[_0x9d00[44]](function(_0xa28fx1e){_0xa28fx16=_0xa28fx1e;return ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx16[_0x9d00[59]]},defaults:{email:_0xa28fx16[_0x9d00[59]]},transaction:_0xa28fx2f});})[_0x9d00[80]](function(_0xa28fx20,_0xa28fx21){var _0xa28fx22=[];var _0xa28fx23=_0xa28fx16[_0x9d00[62]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[62]],_0x9d00[60]):[];_0xa28fx17=_0xa28fx20;_0xa28fx23[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24},transaction:_0xa28fx2f}))});return _0xa28fx22;})[_0x9d00[79]]()[_0x9d00[44]](function(_0xa28fx26){var _0xa28fx22=[];var _0xa28fx27=_0xa28fx16[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[63]],_0x9d00[60]):[];_0xa28fx18=_[_0x9d00[72]](_0xa28fx26,function(_0xa28fx28){return _0xa28fx28[0]});_0xa28fx27[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24},transaction:_0xa28fx2f}))});return _0xa28fx22;})[_0x9d00[79]]()[_0x9d00[44]](function(_0xa28fx2a){var _0xa28fx22=[];var _0xa28fx2b=_0xa28fx16[_0x9d00[64]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[64]],_0x9d00[60]):[];_0xa28fx19=_[_0x9d00[72]](_0xa28fx2a,function(_0xa28fx28){return _0xa28fx28[0]});_0xa28fx2b[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24},transaction:_0xa28fx2f}))});return _0xa28fx22;})[_0x9d00[79]]()[_0x9d00[44]](function(_0xa28fx2d){_0xa28fx1a=_[_0x9d00[72]](_0xa28fx2d,function(_0xa28fx28){return _0xa28fx28[0]});return ;})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[78]](_0xa28fx17,{transaction:_0xa28fx2f})})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[77]](_0xa28fx18,{transaction:_0xa28fx2f})})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[76]](_0xa28fx19,{transaction:_0xa28fx2f})})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[75]](_0xa28fx1a,{transaction:_0xa28fx2f})});}else {return MailRoom[_0x9d00[68]]({roomId:_0xa28fx12[_0x9d00[56]],subject:_0xa28fx12[_0x9d00[57]],from:_[_0x9d00[61]](_0xa28fx12[_0x9d00[59]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]),MailAccountId:_0xa28fxb[_0x9d00[49]]},{transaction:_0xa28fx2f})[_0x9d00[44]](function(_0xa28fx1c){_0xa28fx15=_0xa28fx1c;return MailMessage[_0x9d00[68]]({messageId:_0xa28fx12[_0x9d00[56]],subject:_0xa28fx12[_0x9d00[57]],from:_[_0x9d00[61]](_0xa28fx12[_0x9d00[59]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]),to:_0xa28fx12[_0x9d00[62]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[62]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,cc:_0xa28fx12[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[63]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,bcc:_0xa28fx12[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[64]],_0x9d00[60])[_0x9d00[36]](_0x9d00[58]):null,status:_0x9d00[65],html:_0xa28fx12[_0x9d00[66]]||null,text:_0xa28fx12[_0x9d00[67]]||null,MailAttachments:_0xa28fx12[_0x9d00[34]]||[],MailRoomId:_0xa28fx1c[_0x9d00[45]]},{include:[{all:true}],transaction:_0xa28fx2f});})[_0x9d00[44]](function(_0xa28fx1e){_0xa28fx16=_0xa28fx1e;return ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx16[_0x9d00[59]]},defaults:{email:_0xa28fx16[_0x9d00[59]]},transaction:_0xa28fx2f});})[_0x9d00[80]](function(_0xa28fx20,_0xa28fx21){var _0xa28fx22=[];var _0xa28fx23=_0xa28fx16[_0x9d00[62]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[62]],_0x9d00[60]):[];_0xa28fx17=_0xa28fx20;_0xa28fx23[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24},transaction:_0xa28fx2f}))});return _0xa28fx22;})[_0x9d00[79]]()[_0x9d00[44]](function(_0xa28fx26){var _0xa28fx22=[];var _0xa28fx27=_0xa28fx16[_0x9d00[63]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[63]],_0x9d00[60]):[];_0xa28fx18=_[_0x9d00[72]](_0xa28fx26,function(_0xa28fx28){return _0xa28fx28[0]});_0xa28fx27[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[83]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24},transaction:_0xa28fx2f}))});return _0xa28fx22;})[_0x9d00[79]]()[_0x9d00[44]](function(_0xa28fx2a){var _0xa28fx22=[];var _0xa28fx2b=_0xa28fx16[_0x9d00[64]]?_[_0x9d00[61]](_0xa28fx12[_0x9d00[64]],_0x9d00[60]):[];_0xa28fx19=_[_0x9d00[72]](_0xa28fx2a,function(_0xa28fx28){return _0xa28fx28[0]});_0xa28fx2b[_0x9d00[71]](function(_0xa28fx24){_0xa28fx22[_0x9d00[70]](ContactEmail[_0x9d00[69]]({where:{email:_0xa28fx24},defaults:{email:_0xa28fx24},transaction:_0xa28fx2f}))});return _0xa28fx22;})[_0x9d00[79]]()[_0x9d00[44]](function(_0xa28fx2d){_0xa28fx1a=_[_0x9d00[72]](_0xa28fx2d,function(_0xa28fx28){return _0xa28fx28[0]});return ;})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[78]](_0xa28fx17,{transaction:_0xa28fx2f})})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[77]](_0xa28fx18,{transaction:_0xa28fx2f})})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[76]](_0xa28fx19,{transaction:_0xa28fx2f})})[_0x9d00[44]](function(){return _0xa28fx16[_0x9d00[75]](_0xa28fx1a,{transaction:_0xa28fx2f})})}})[_0x9d00[44]](function(_0xa28fx2e){console[_0x9d00[22]](_0xa28fx2e)})[_0x9d00[41]](function(_0xa28fx10){console[_0x9d00[40]](_0xa28fx10)});});_0xa28fxc[_0x9d00[47]](_0x9d00[85],function(_0xa28fx31){console[_0x9d00[22]](_0xa28fx31[_0x9d00[2]])});}_0xa28fxf(_0xa28fxb);MailServerIn[_0x9d00[86]](function(_0xa28fxb){_0xa28fxf(_0xa28fxb)});MailServerIn[_0x9d00[87]](function(_0xa28fxb){_0xa28fxd(_0xa28fxb)});MailServerIn[_0x9d00[88]](function(_0xa28fxb){_0xa28fxe(_0xa28fxb)});}};
\ No newline at end of file
+var _0x7544=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x61\x69\x6C\x2D\x6C\x69\x73\x74\x65\x6E\x65\x72\x32","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x61\x74\x65","\x63\x68\x61\x6E\x67\x65\x64","\x73\x6F\x75\x72\x63\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x75\x73\x65\x72","\x5F\x63\x6F\x6E\x66\x69\x67","\x69\x6D\x61\x70","\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x20\x49\x4D\x41\x50\x20\x55\x50\x44\x41\x54\x45\x44","\x6C\x6F\x67","\x73\x74\x6F\x70","\x20\x49\x4D\x41\x50\x20\x44\x45\x53\x54\x52\x4F\x59","\x70\x61\x73\x73\x77\x6F\x72\x64","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x73\x6C","\x6D\x61\x69\x6C\x62\x6F\x78","\x66\x69\x6C\x74\x65\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2F","\x6A\x6F\x69\x6E","\x73\x74\x61\x72\x74","\x73\x65\x72\x76\x65\x72\x3A\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x20\x49\x4D\x41\x50\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x6F\x6E","\x73\x65\x72\x76\x65\x72\x3A\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x20\x49\x4D\x41\x50\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x20\x49\x4D\x41\x50\x20\x45\x52\x52\x4F\x52","\x45\x52\x52\x4F\x52","\x6D\x61\x69\x6C","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x73\x75\x62\x6A\x65\x63\x74","\x3B","\x66\x72\x6F\x6D","\x61\x64\x64\x72\x65\x73\x73","\x70\x6C\x75\x63\x6B","\x74\x6F","\x63\x63","\x62\x63\x63","\x52\x45\x43\x45\x49\x56\x45\x44","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x63\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x6D\x61\x70","\x69\x6E\x52\x65\x70\x6C\x79\x54\x6F","\x6D\x73\x67","\x73\x65\x74\x42\x63\x63","\x73\x65\x74\x43\x63","\x73\x65\x74\x54\x6F","\x73\x65\x74\x46\x72\x6F\x6D","\x61\x6C\x6C","\x73\x70\x72\x65\x61\x64","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x66\x69\x6E\x64\x4F\x72\x43\x72\x72\x65\x64\x69\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79"];_0x7544[0];var _=require(_0x7544[1]);var path=require(_0x7544[2]);var config=require(_0x7544[3]);var ImapListener=require(_0x7544[4]);var MailServerIn=require(_0x7544[6])[_0x7544[5]];var MailMessage=require(_0x7544[6])[_0x7544[7]];var MailRoom=require(_0x7544[6])[_0x7544[8]];var Contact=require(_0x7544[6])[_0x7544[9]];var ContactEmail=require(_0x7544[6])[_0x7544[10]];var sequelize=require(_0x7544[6])[_0x7544[11]];module[_0x7544[12]]={create:function(_0x18c2xb){var _0x18c2xc;function _0x18c2xd(_0x18c2xb){if(!_0x18c2xb[_0x7544[14]](_0x7544[13])&&!_0x18c2xb[_0x7544[14]](_0x7544[15])&&_0x18c2xb[_0x7544[16]]===_0x18c2xc[_0x7544[19]][_0x7544[18]][_0x7544[17]]){console[_0x7544[22]](_0x7544[20]+_0x18c2xb[_0x7544[16]]+_0x7544[21]);_0x18c2xc[_0x7544[23]]();_0x18c2xf(_0x18c2xb);}}function _0x18c2xe(_0x18c2xb){if(_0x18c2xb[_0x7544[16]]===_0x18c2xc[_0x7544[19]][_0x7544[18]][_0x7544[17]]){console[_0x7544[22]](_0x7544[20]+_0x18c2xb[_0x7544[16]]+_0x7544[24]);_0x18c2xc[_0x7544[23]]();_0x18c2xc=null;}}function _0x18c2xf(_0x18c2xb){if(_0x18c2xc){_0x18c2xc[_0x7544[23]](_0x18c2xb);_0x18c2xc=null;};_0x18c2xc= new ImapListener({username:_0x18c2xb[_0x7544[16]],password:_0x18c2xb[_0x7544[25]],host:_0x18c2xb[_0x7544[26]],port:_0x18c2xb[_0x7544[27]],tls:_0x18c2xb[_0x7544[28]],tlsOptions:{rejectUnauthorized:false},mailbox:_0x18c2xb[_0x7544[29]],searchFilter:[_0x18c2xb[_0x7544[30]]],markSeen:true,fetchUnreadOnStart:true,mailParserOptions:{streamAttachments:false},attachments:true,attachmentOptions:{directory:path[_0x7544[36]](config[_0x7544[31]],_0x7544[32],_0x7544[33],_0x7544[34],_0x7544[35])}});_0x18c2xc[_0x7544[37]]();_0x18c2xc[_0x7544[47]](_0x7544[38],function(){console[_0x7544[22]](_0x7544[20]+_0x18c2xb[_0x7544[16]]+_0x7544[39]);return MailServerIn[_0x7544[46]](_0x18c2xb[_0x7544[45]])[_0x7544[44]](function(_0x18c2x11){return _0x18c2x11[_0x7544[43]]({state:_0x7544[42]})})[_0x7544[41]](function(_0x18c2x10){console[_0x7544[40]](_0x18c2x10)});});_0x18c2xc[_0x7544[47]](_0x7544[48],function(){console[_0x7544[22]](_0x7544[20]+_0x18c2xb[_0x7544[49]]+_0x7544[50]);MailServerIn[_0x7544[46]](_0x18c2xb[_0x7544[45]])[_0x7544[44]](function(_0x18c2x11){_0x18c2x11[_0x7544[52]]({state:_0x7544[51]})})[_0x7544[41]](function(_0x18c2x10){console[_0x7544[40]](_0x18c2x10)});});_0x18c2xc[_0x7544[47]](_0x7544[40],function(_0x18c2x10){console[_0x7544[22]](_0x7544[20]+_0x18c2xb[_0x7544[49]]+_0x7544[53],_0x18c2x10);MailServerIn[_0x7544[46]](_0x18c2xb[_0x7544[45]])[_0x7544[44]](function(_0x18c2x11){_0x18c2x11[_0x7544[52]]({state:_0x7544[54],source:_0x18c2x10[_0x7544[15]]})})[_0x7544[41]](function(_0x18c2x10){console[_0x7544[40]](_0x18c2x10)});});_0x18c2xc[_0x7544[47]](_0x7544[55],function(_0x18c2x12,_0x18c2x13,_0x18c2x14){var _0x18c2x15;var _0x18c2x16;var _0x18c2x17,_0x18c2x18,_0x18c2x19,_0x18c2x1a;function _0x18c2x1b(_0x18c2x1c){_0x18c2x15=_0x18c2x1c;return MailMessage[_0x7544[68]]({messageId:_0x18c2x12[_0x7544[56]],subject:_0x18c2x12[_0x7544[57]],from:_[_0x7544[61]](_0x18c2x12[_0x7544[59]],_0x7544[60])[_0x7544[36]](_0x7544[58]),to:_0x18c2x12[_0x7544[62]]?_[_0x7544[61]](_0x18c2x12[_0x7544[62]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,cc:_0x18c2x12[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[63]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,bcc:_0x18c2x12[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[64]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,status:_0x7544[65],html:_0x18c2x12[_0x7544[66]]||null,text:_0x18c2x12[_0x7544[67]]||null,MailAttachments:_0x18c2x12[_0x7544[34]]||[],MailRoomId:_0x18c2x1c[_0x7544[45]]});}function _0x18c2x1d(_0x18c2x1e){_0x18c2x16=_0x18c2x1e;return ContactEmail[_0x7544[69]]({where:{email:_0x18c2x16[_0x7544[59]]},defaults:{email:_0x18c2x16[_0x7544[59]]}});}function _0x18c2x1f(_0x18c2x20,_0x18c2x21){var _0x18c2x22=[];var _0x18c2x23=_0x18c2x16[_0x7544[62]]?_[_0x7544[61]](_0x18c2x12[_0x7544[62]],_0x7544[60]):[];_0x18c2x17=_0x18c2x20;_0x18c2x23[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24}}))});return _0x18c2x22;}function _0x18c2x25(_0x18c2x26){var _0x18c2x22=[];var _0x18c2x27=_0x18c2x16[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[63]],_0x7544[60]):[];_0x18c2x18=_[_0x7544[72]](_0x18c2x26,function(_0x18c2x28){return _0x18c2x28[0]});_0x18c2x27[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24}}))});return _0x18c2x22;}function _0x18c2x29(_0x18c2x2a){var _0x18c2x22=[];var _0x18c2x2b=_0x18c2x16[_0x7544[64]]?_[_0x7544[61]](_0x18c2x12[_0x7544[64]],_0x7544[60]):[];_0x18c2x19=_[_0x7544[72]](_0x18c2x2a,function(_0x18c2x28){return _0x18c2x28[0]});_0x18c2x2b[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24}}))});return _0x18c2x22;}function _0x18c2x2c(_0x18c2x2d){_0x18c2x1a=_[_0x7544[72]](_0x18c2x2d,function(_0x18c2x28){return _0x18c2x28[0]});return ;}return sequelize[_0x7544[84]](function(_0x18c2x2f){if(_0x18c2x12[_0x7544[73]]){console[_0x7544[22]](_0x7544[74],_0x18c2x12);return MailMessage[_0x7544[82]]({where:{messageId:_0x18c2x12[_0x7544[73]][0]},include:[{all:true}]})[_0x7544[44]](function(_0x18c2x30){return _0x18c2x30[_0x7544[81]]()})[_0x7544[44]](function(_0x18c2x1c){_0x18c2x15=_0x18c2x1c;return MailMessage[_0x7544[68]]({messageId:_0x18c2x12[_0x7544[56]],subject:_0x18c2x12[_0x7544[57]],from:_[_0x7544[61]](_0x18c2x12[_0x7544[59]],_0x7544[60])[_0x7544[36]](_0x7544[58]),to:_0x18c2x12[_0x7544[62]]?_[_0x7544[61]](_0x18c2x12[_0x7544[62]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,cc:_0x18c2x12[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[63]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,bcc:_0x18c2x12[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[64]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,status:_0x7544[65],html:_0x18c2x12[_0x7544[66]]||null,text:_0x18c2x12[_0x7544[67]]||null,MailAttachments:_0x18c2x12[_0x7544[34]]||[],MailRoomId:_0x18c2x1c[_0x7544[45]]},{include:[{all:true}],transaction:_0x18c2x2f});})[_0x7544[44]](function(_0x18c2x1e){_0x18c2x16=_0x18c2x1e;return ContactEmail[_0x7544[69]]({where:{email:_0x18c2x16[_0x7544[59]]},defaults:{email:_0x18c2x16[_0x7544[59]]},transaction:_0x18c2x2f});})[_0x7544[80]](function(_0x18c2x20,_0x18c2x21){var _0x18c2x22=[];var _0x18c2x23=_0x18c2x16[_0x7544[62]]?_[_0x7544[61]](_0x18c2x12[_0x7544[62]],_0x7544[60]):[];_0x18c2x17=_0x18c2x20;_0x18c2x23[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24},transaction:_0x18c2x2f}))});return _0x18c2x22;})[_0x7544[79]]()[_0x7544[44]](function(_0x18c2x26){var _0x18c2x22=[];var _0x18c2x27=_0x18c2x16[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[63]],_0x7544[60]):[];_0x18c2x18=_[_0x7544[72]](_0x18c2x26,function(_0x18c2x28){return _0x18c2x28[0]});_0x18c2x27[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24},transaction:_0x18c2x2f}))});return _0x18c2x22;})[_0x7544[79]]()[_0x7544[44]](function(_0x18c2x2a){var _0x18c2x22=[];var _0x18c2x2b=_0x18c2x16[_0x7544[64]]?_[_0x7544[61]](_0x18c2x12[_0x7544[64]],_0x7544[60]):[];_0x18c2x19=_[_0x7544[72]](_0x18c2x2a,function(_0x18c2x28){return _0x18c2x28[0]});_0x18c2x2b[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24},transaction:_0x18c2x2f}))});return _0x18c2x22;})[_0x7544[79]]()[_0x7544[44]](function(_0x18c2x2d){_0x18c2x1a=_[_0x7544[72]](_0x18c2x2d,function(_0x18c2x28){return _0x18c2x28[0]});return ;})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[78]](_0x18c2x17,{transaction:_0x18c2x2f})})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[77]](_0x18c2x18,{transaction:_0x18c2x2f})})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[76]](_0x18c2x19,{transaction:_0x18c2x2f})})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[75]](_0x18c2x1a,{transaction:_0x18c2x2f})});}else {return MailRoom[_0x7544[68]]({roomId:_0x18c2x12[_0x7544[56]],subject:_0x18c2x12[_0x7544[57]],from:_[_0x7544[61]](_0x18c2x12[_0x7544[59]],_0x7544[60])[_0x7544[36]](_0x7544[58]),MailAccountId:_0x18c2xb[_0x7544[49]]},{transaction:_0x18c2x2f})[_0x7544[44]](function(_0x18c2x1c){_0x18c2x15=_0x18c2x1c;return MailMessage[_0x7544[68]]({messageId:_0x18c2x12[_0x7544[56]],subject:_0x18c2x12[_0x7544[57]],from:_[_0x7544[61]](_0x18c2x12[_0x7544[59]],_0x7544[60])[_0x7544[36]](_0x7544[58]),to:_0x18c2x12[_0x7544[62]]?_[_0x7544[61]](_0x18c2x12[_0x7544[62]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,cc:_0x18c2x12[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[63]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,bcc:_0x18c2x12[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[64]],_0x7544[60])[_0x7544[36]](_0x7544[58]):null,status:_0x7544[65],html:_0x18c2x12[_0x7544[66]]||null,text:_0x18c2x12[_0x7544[67]]||null,MailAttachments:_0x18c2x12[_0x7544[34]]||[],MailRoomId:_0x18c2x1c[_0x7544[45]]},{include:[{all:true}],transaction:_0x18c2x2f});})[_0x7544[44]](function(_0x18c2x1e){_0x18c2x16=_0x18c2x1e;return ContactEmail[_0x7544[69]]({where:{email:_0x18c2x16[_0x7544[59]]},defaults:{email:_0x18c2x16[_0x7544[59]]},transaction:_0x18c2x2f});})[_0x7544[80]](function(_0x18c2x20,_0x18c2x21){var _0x18c2x22=[];var _0x18c2x23=_0x18c2x16[_0x7544[62]]?_[_0x7544[61]](_0x18c2x12[_0x7544[62]],_0x7544[60]):[];_0x18c2x17=_0x18c2x20;_0x18c2x23[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24},transaction:_0x18c2x2f}))});return _0x18c2x22;})[_0x7544[79]]()[_0x7544[44]](function(_0x18c2x26){var _0x18c2x22=[];var _0x18c2x27=_0x18c2x16[_0x7544[63]]?_[_0x7544[61]](_0x18c2x12[_0x7544[63]],_0x7544[60]):[];_0x18c2x18=_[_0x7544[72]](_0x18c2x26,function(_0x18c2x28){return _0x18c2x28[0]});_0x18c2x27[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[83]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24},transaction:_0x18c2x2f}))});return _0x18c2x22;})[_0x7544[79]]()[_0x7544[44]](function(_0x18c2x2a){var _0x18c2x22=[];var _0x18c2x2b=_0x18c2x16[_0x7544[64]]?_[_0x7544[61]](_0x18c2x12[_0x7544[64]],_0x7544[60]):[];_0x18c2x19=_[_0x7544[72]](_0x18c2x2a,function(_0x18c2x28){return _0x18c2x28[0]});_0x18c2x2b[_0x7544[71]](function(_0x18c2x24){_0x18c2x22[_0x7544[70]](ContactEmail[_0x7544[69]]({where:{email:_0x18c2x24},defaults:{email:_0x18c2x24},transaction:_0x18c2x2f}))});return _0x18c2x22;})[_0x7544[79]]()[_0x7544[44]](function(_0x18c2x2d){_0x18c2x1a=_[_0x7544[72]](_0x18c2x2d,function(_0x18c2x28){return _0x18c2x28[0]});return ;})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[78]](_0x18c2x17,{transaction:_0x18c2x2f})})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[77]](_0x18c2x18,{transaction:_0x18c2x2f})})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[76]](_0x18c2x19,{transaction:_0x18c2x2f})})[_0x7544[44]](function(){return _0x18c2x16[_0x7544[75]](_0x18c2x1a,{transaction:_0x18c2x2f})})}})[_0x7544[44]](function(_0x18c2x2e){console[_0x7544[22]](_0x18c2x2e)})[_0x7544[41]](function(_0x18c2x10){console[_0x7544[40]](_0x18c2x10)});});_0x18c2xc[_0x7544[47]](_0x7544[85],function(_0x18c2x31){console[_0x7544[22]](_0x18c2x31[_0x7544[2]])});}_0x18c2xf(_0x18c2xb);MailServerIn[_0x7544[86]](function(_0x18c2xb){_0x18c2xf(_0x18c2xb)});MailServerIn[_0x7544[87]](function(_0x18c2xb){_0x18c2xd(_0x18c2xb)});MailServerIn[_0x7544[88]](function(_0x18c2xb){_0x18c2xe(_0x18c2xb)});}};
\ No newline at end of file
index d8ccdb4..6b9ed02 100644 (file)
@@ -1 +1 @@
-var _0x7eaf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65","\x2E\x2F\x69\x6D\x61\x70","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0x7eaf[0];var MailAccount=require(_0x7eaf[2])[_0x7eaf[1]];var MailServerIn=require(_0x7eaf[2])[_0x7eaf[3]];module[_0x7eaf[4]]={init:function(){MailServerIn[_0x7eaf[7]](function(_0xcb5ex3){require(_0x7eaf[6])[_0x7eaf[5]](_0xcb5ex3)});MailAccount[_0x7eaf[12]]({include:[{all:true}]})[_0x7eaf[11]](function(_0xcb5ex5){for(var _0xcb5ex6=0;_0xcb5ex6<_0xcb5ex5[_0x7eaf[10]];_0xcb5ex6++){if(_0xcb5ex5[_0xcb5ex6][_0x7eaf[3]]){require(_0x7eaf[6])[_0x7eaf[5]](_0xcb5ex5[_0xcb5ex6].MailServerIn)}}})[_0x7eaf[9]](function(_0xcb5ex4){console[_0x7eaf[8]](_0xcb5ex4)});}};
\ No newline at end of file
+var _0xbaf8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65","\x2E\x2F\x69\x6D\x61\x70","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0xbaf8[0];var MailAccount=require(_0xbaf8[2])[_0xbaf8[1]];var MailServerIn=require(_0xbaf8[2])[_0xbaf8[3]];module[_0xbaf8[4]]={init:function(){MailServerIn[_0xbaf8[7]](function(_0x6221x3){require(_0xbaf8[6])[_0xbaf8[5]](_0x6221x3)});MailAccount[_0xbaf8[12]]({include:[{all:true}]})[_0xbaf8[11]](function(_0x6221x5){for(var _0x6221x6=0;_0x6221x6<_0x6221x5[_0xbaf8[10]];_0x6221x6++){if(_0x6221x5[_0x6221x6][_0xbaf8[3]]){require(_0xbaf8[6])[_0xbaf8[5]](_0x6221x5[_0x6221x6].MailServerIn)}}})[_0xbaf8[9]](function(_0x6221x4){console[_0xbaf8[8]](_0x6221x4)});}};
\ No newline at end of file
index 2147354..3b6e7a4 100644 (file)
@@ -1 +1 @@
-var _0x6775=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x66\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x65\x78\x70\x6F\x72\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x70\x61\x72\x73\x65","\x64\x69\x72","\x6E\x61\x6D\x65","\x6D\x61\x69\x6E","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0x6775[0];var path=require(_0x6775[1]);var fs=require(_0x6775[2]);var Integration=require(_0x6775[4])[_0x6775[3]];module[_0x6775[5]]=function(_0x4b85x4,_0x4b85x5){Integration[_0x6775[16]]()[_0x6775[15]](function(_0x4b85x7){_0x4b85x7[_0x6775[14]](function(_0x4b85x8){var _0x4b85x9=path[_0x6775[8]](_0x4b85x8[_0x6775[1]]);var _0x4b85xa=path[_0x6775[12]](_0x4b85x9[_0x6775[9]],_0x4b85x9[_0x6775[10]],_0x4b85x8[_0x6775[11]]);if(fs[_0x6775[13]](_0x4b85xa)){require(_0x4b85xa)(_0x4b85x4,_0x4b85x5)};})})[_0x6775[7]](function(_0x4b85x6){console[_0x6775[6]](_0x4b85x6)})};
\ No newline at end of file
+var _0xfd7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x66\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x65\x78\x70\x6F\x72\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x70\x61\x72\x73\x65","\x64\x69\x72","\x6E\x61\x6D\x65","\x6D\x61\x69\x6E","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0xfd7d[0];var path=require(_0xfd7d[1]);var fs=require(_0xfd7d[2]);var Integration=require(_0xfd7d[4])[_0xfd7d[3]];module[_0xfd7d[5]]=function(_0xb106x4,_0xb106x5){Integration[_0xfd7d[16]]()[_0xfd7d[15]](function(_0xb106x7){_0xb106x7[_0xfd7d[14]](function(_0xb106x8){var _0xb106x9=path[_0xfd7d[8]](_0xb106x8[_0xfd7d[1]]);var _0xb106xa=path[_0xfd7d[12]](_0xb106x9[_0xfd7d[9]],_0xb106x9[_0xfd7d[10]],_0xb106x8[_0xfd7d[11]]);if(fs[_0xfd7d[13]](_0xb106xa)){require(_0xb106xa)(_0xb106x4,_0xb106x5)};})})[_0xfd7d[7]](function(_0xb106x6){console[_0xfd7d[6]](_0xb106x6)})};
\ No newline at end of file
index fe43cf4..8038ea8 100644 (file)
@@ -1 +1 @@
-var _0xfaf0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x54\x72\x69\x67\x67\x65\x72\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x20\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x64\x61\x74\x61","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x68\x61\x6E\x64\x6C\x65\x45\x76\x65\x6E\x74","\x7A\x65\x6E\x64\x65\x73\x6B","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64\x3A\x20","\x73\x74\x61\x74\x65","\x6D\x61\x70","\x69\x6E\x64\x65\x78\x4F\x66","\x61\x63\x74\x69\x76\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x6C\x65\x6E\x67\x74\x68","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x66\x69\x6E\x64","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xfaf0[0];var _=require(_0xfaf0[1]);var IntegrationModel=require(_0xfaf0[3])[_0xfaf0[2]];var Zendesk=require(_0xfaf0[4]);function Integration(){console[_0xfaf0[6]](_0xfaf0[5]);var _0x7cd2x5= new Zendesk();var _0x7cd2x6=[];IntegrationModel[_0xfaf0[8]]({where:{active:1}})[_0xfaf0[7]](function(_0x7cd2x7){_0x7cd2x6=_0x7cd2x7;synchIntegrations(_0x7cd2x6);});this[_0xfaf0[9]]=function(_0x7cd2x8,_0x7cd2x9,_0x7cd2xa){console[_0xfaf0[6]](_0xfaf0[10]);if(integrationIsActive(_0x7cd2x8[_0xfaf0[11]],_0x7cd2x6)){switch(_0x7cd2x8[_0xfaf0[11]]){case _0xfaf0[15]:_0x7cd2x5[_0xfaf0[14]](_0x7cd2x8[_0xfaf0[12]],_0x7cd2x8[_0xfaf0[13]],_0x7cd2xa,_0x7cd2x9);break ;;default:console[_0xfaf0[6]](_0xfaf0[16],_0x7cd2x8[_0xfaf0[11]]);;}};};}function integrationIsActive(_0x7cd2xc,_0x7cd2xd){var _0x7cd2xe=_[_0xfaf0[18]](_0x7cd2xd,_0xfaf0[17]);if(_[_0xfaf0[19]](_0x7cd2xe,_0x7cd2xc)>=0){return true};return false;}function synchIntegrations(_0x7cd2xd){IntegrationModel[_0xfaf0[25]](function(_0x7cd2x9){if(_0x7cd2x9[_0xfaf0[20]]){updateCollection(_0x7cd2xd,_0x7cd2x9)}else {_[_0xfaf0[22]](_0x7cd2xd,{id:_0x7cd2x9[_0xfaf0[21]]})};console[_0xfaf0[6]](_0xfaf0[23],_0x7cd2xd[_0xfaf0[24]]);})}function updateCollection(_0x7cd2x11,_0x7cd2x9){var _0x7cd2x12=_[_0xfaf0[26]](_0x7cd2x11,{id:_0x7cd2x9[_0xfaf0[21]]});var _0x7cd2x13=_0x7cd2x11[_0xfaf0[19]](_0x7cd2x12);if(_0x7cd2x12){_[_0xfaf0[27]](_0x7cd2x11[_0x7cd2x13],_0x7cd2x9)}else {_0x7cd2x11[_0xfaf0[28]](_0x7cd2x9)};}module[_0xfaf0[29]]=Integration;
\ No newline at end of file
+var _0xc8b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x54\x72\x69\x67\x67\x65\x72\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x76\x61\x72\x73\x65\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x6B\x65\x79\x73","\x68\x65\x61\x64","\x66\x69\x6E\x64\x49\x6E\x64\x65\x78","\x70\x75\x73\x68","\x6F\x6E","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x20\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x64\x61\x74\x61","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x68\x61\x6E\x64\x6C\x65\x45\x76\x65\x6E\x74","\x7A\x65\x6E\x64\x65\x73\x6B","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64\x3A\x20","\x73\x74\x61\x74\x65","\x6D\x61\x70","\x69\x6E\x64\x65\x78\x4F\x66","\x61\x63\x74\x69\x76\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x6C\x65\x6E\x67\x74\x68","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x41\x66\x74\x65\x72\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x61\x72\x65\x20","\x41\x66\x74\x65\x72\x20\x64\x65\x73\x74\x72\x6F\x79\x2C\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xc8b5[0];var _=require(_0xc8b5[1]);var IntegrationModel=require(_0xc8b5[3])[_0xc8b5[2]];var Variable=require(_0xc8b5[3])[_0xc8b5[4]];var Zendesk=require(_0xc8b5[5]);function Integration(_0xec7bx6){console[_0xc8b5[7]](_0xc8b5[6]);var _0xec7bx7= new Zendesk();var _0xec7bx8=[];var _0xec7bx9=[];var _0xec7bxa={};_0xec7bx6[_0xc8b5[17]](_0xc8b5[8],function(_0xec7bxb){if(!_0xec7bxa[_0xc8b5[10]](_0xec7bxb[_0xc8b5[9]])){_0xec7bxa[_0xec7bxb[_0xc8b5[9]]]=[]};if(_0xec7bxb[_0xc8b5[10]](_0xc8b5[11])&&_0xec7bxb[_0xc8b5[10]](_0xc8b5[12])){var _0xec7bxc=_[_0xc8b5[15]](_0xec7bx9,{"\x6E\x61\x6D\x65":_[_0xc8b5[14]](_[_0xc8b5[13]](_0xec7bxb[_0xc8b5[11]]))});if(_0xec7bxc>=0){var _0xec7bxd={name:_[_0xc8b5[14]](_[_0xc8b5[13]](_0xec7bxb[_0xc8b5[11]])),value:_0xec7bxb[_0xc8b5[12]]};_0xec7bxa[_0xec7bxb[_0xc8b5[9]]][_0xc8b5[16]](_0xec7bxd);};};});Variable[_0xc8b5[19]]()[_0xc8b5[18]](function(_0xec7bxe){_0xec7bx9=_0xec7bxe;synchVariables(_0xec7bx9);});IntegrationModel[_0xc8b5[19]]({where:{active:1}})[_0xc8b5[18]](function(_0xec7bxf){_0xec7bx8=_0xec7bxf;synchIntegrations(_0xec7bx8);});this[_0xc8b5[20]]=function(_0xec7bx10,_0xec7bx11,_0xec7bx12){console[_0xc8b5[7]](_0xc8b5[21]);if(integrationIsActive(_0xec7bx10[_0xc8b5[22]],_0xec7bx8)){switch(_0xec7bx10[_0xc8b5[22]]){case _0xc8b5[26]:_0xec7bx7[_0xc8b5[25]](_0xec7bx10[_0xc8b5[23]],_0xec7bx10[_0xc8b5[24]],_0xec7bx12,_0xec7bx11);break ;;default:console[_0xc8b5[7]](_0xc8b5[27],_0xec7bx10[_0xc8b5[22]]);;}};};}function integrationIsActive(_0xec7bx14,_0xec7bx15){var _0xec7bx16=_[_0xc8b5[29]](_0xec7bx15,_0xc8b5[28]);if(_[_0xc8b5[30]](_0xec7bx16,_0xec7bx14)>=0){return true};return false;}function synchIntegrations(_0xec7bx15){IntegrationModel[_0xc8b5[36]](function(_0xec7bx11){if(_0xec7bx11[_0xc8b5[31]]){updateCollection(_0xec7bx15,_0xec7bx11)}else {_[_0xc8b5[33]](_0xec7bx15,{id:_0xec7bx11[_0xc8b5[32]]})};console[_0xc8b5[7]](_0xc8b5[34],_0xec7bx15[_0xc8b5[35]]);})}function synchVariables(_0xec7bx15){Variable[_0xc8b5[38]](function(_0xec7bx11){updateCollection(_0xec7bx15,_0xec7bx11);console[_0xc8b5[7]](_0xc8b5[37],_0xec7bx15[_0xc8b5[35]]);});Variable[_0xc8b5[36]](function(_0xec7bx11){updateCollection(_0xec7bx15,_0xec7bx11);console[_0xc8b5[7]](_0xc8b5[39],_0xec7bx15[_0xc8b5[35]]);});Variable[_0xc8b5[41]](function(_0xec7bx11){_[_0xc8b5[33]](_0xec7bx15,{id:_0xec7bx11[_0xc8b5[32]]});console[_0xc8b5[7]](_0xc8b5[40],_0xec7bx15[_0xc8b5[35]]);});}function updateCollection(_0xec7bx1a,_0xec7bx11){var _0xec7bx1b=_[_0xc8b5[42]](_0xec7bx1a,{id:_0xec7bx11[_0xc8b5[32]]});var _0xec7bxc=_0xec7bx1a[_0xc8b5[30]](_0xec7bx1b);if(_0xec7bx1b){_[_0xc8b5[43]](_0xec7bx1a[_0xec7bxc],_0xec7bx11)}else {_0xec7bx1a[_0xc8b5[44]](_0xec7bx11)};}module[_0xc8b5[45]]=Integration;
\ No newline at end of file
index f309e92..0ce1e2b 100644 (file)
@@ -1 +1 @@
-var _0xde72=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x5A\x65\x6E\x64\x65\x73\x6B\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x5A\x65\x6E\x64\x65\x73\x6B\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x68\x61\x6E\x64\x6C\x65\x45\x76\x65\x6E\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x50\x61\x73\x73\x65\x64\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x20\x61\x72\x65\x20\x6E\x6F\x74\x20\x65\x6E\x6F\x75\x67\x68\x20\x74\x6F\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x6E\x65\x77\x20\x74\x69\x63\x6B\x65\x74\x3A\x20\x6D\x69\x73\x73\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x49\x64\x20\x6F\x72\x20\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x49\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x72\x69","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x3A","\x74\x6F\x6B\x65\x6E","\x2F\x74\x6F\x6B\x65\x6E\x3A","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x61\x73\x69\x63\x20","\x62\x61\x73\x65\x36\x34","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x74\x6F\x20\x73\x65\x61\x72\x63\x68\x3A","\x2F\x73\x65\x61\x72\x63\x68\x2E\x6A\x73\x6F\x6E","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x61\x67\x65\x6E\x74\x20\x6E\x61\x6D\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x76\x6F\x69\x63\x65","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64\x3A","\x72\x65\x73\x75\x6C\x74","\x6C\x65\x6E\x67\x74\x68","\x72\x65\x73\x75\x6C\x74\x73","\x63\x6F\x75\x6E\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x66\x6F\x75\x6E\x64\x3A","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x69\x72\x73\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E\x20\x55\x73\x65\x20\x74\x68\x65\x20\x61\x64\x6D\x69\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65\x2E\x6A\x73\x6F\x6E","\x75\x73\x65\x72","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x64\x6D\x69\x6E\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x74\x6F\x20\x73\x65\x61\x72\x63\x68\x3A","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x65\x6E\x64\x2D\x75\x73\x65\x72\x20\x25\x73\x3A\x25\x73","\x70\x68\x6F\x6E\x65","\x64\x65\x73\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x66\x6F\x75\x6E\x64\x3A","\x65\x6E\x64\x75\x73\x65\x72","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x3A","\x2F\x75\x73\x65\x72\x73\x2E\x6A\x73\x6F\x6E","\x50\x4F\x53\x54","\x65\x6E\x64\x2D\x75\x73\x65\x72","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x63\x72\x65\x61\x74\x65\x64\x3A\x20","\x69\x64","\x78\x43\x41\x4C\x4C\x59","\x4D\x4F\x54\x49\x4F\x4E","\x43\x54\x49","\x76\x61\x6C\x75\x65","\x66\x6F\x72\x45\x61\x63\x68","\x2F\x74\x69\x63\x6B\x65\x74\x73\x2E\x6A\x73\x6F\x6E","\x53\x75\x62\x6A\x65\x63\x74","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x63\x6F\x6E\x74\x65\x6E\x74","\x70\x75\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x20","\x6A\x6F\x69\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x0A","\x46\x69\x65\x6C\x64","\x66\x69\x6C\x74\x65\x72","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x74\x69\x63\x6B\x65\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x63\x72\x65\x61\x74\x65\x64","\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x25\x64\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64\x2F\x64\x69\x73\x70\x6C\x61\x79\x2E\x6A\x73\x6F\x6E","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x25\x64\x20\x64\x69\x73\x70\x6C\x61\x79\x65\x64\x20\x74\x6F\x20\x61\x67\x65\x6E\x74\x20\x25\x64","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x72\x72\x6F\x72\x20\x69\x6E\x20\x74\x69\x63\x6B\x65\x74\x20\x63\x72\x65\x61\x74\x69\x6F\x6E","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x4D\x65\x73\x73\x61\x67\x65\x3A","\x6D\x65\x73\x73\x61\x67\x65","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x53\x74\x61\x63\x6B\x3A","\x73\x74\x61\x63\x6B","\x73\x75\x62\x73\x74\x72","\x2F","\x65\x78\x70\x6F\x72\x74\x73"];_0xde72[0];var _=require(_0xde72[1]);var util=require(_0xde72[2]);var rp=require(_0xde72[3]);var ZendeskIntegration=require(_0xde72[5])[_0xde72[4]];var ZendeskConfiguration=require(_0xde72[5])[_0xde72[6]];function Zendesk(){console[_0xde72[8]](_0xde72[7])}Zendesk[_0xde72[10]][_0xde72[9]]=function(_0xb248x7,_0xb248x8,_0xb248x9,_0xb248xa){var _0xb248xb={uri:undefined,headers:undefined,agent:undefined,enduser:undefined,ticket:undefined,configuration:undefined};if(!_0xb248x7|| !_0xb248x8){console[_0xde72[12]](_0xde72[11]);return ;};ZendeskConfiguration[_0xde72[15]]({where:{id:_0xb248x8,AccountId:_0xb248x7},include:[{all:true}]})[_0xde72[14]](handleEntityNotFound())[_0xde72[14]](handleConnection(_0xb248xb))[_0xde72[14]](searchAgent(_0xb248xb,_0xb248x9,_0xb248xa))[_0xde72[14]](handleAgent(_0xb248xb,_0xb248x9,_0xb248xa))[_0xde72[14]](searchAdmin(_0xb248xb))[_0xde72[14]](handleAdmin(_0xb248xb))[_0xde72[14]](searchEndUser(_0xb248xb,_0xb248x9,_0xb248xa))[_0xde72[14]](handleEndUser(_0xb248xb,_0xb248x9,_0xb248xa))[_0xde72[14]](endUserCreation(_0xb248xb,_0xb248x9,_0xb248xa))[_0xde72[14]](handleEndUserCreation(_0xb248xb,_0xb248x9,_0xb248xa))[_0xde72[14]](ticketCreation(_0xb248xb))[_0xde72[14]](handleTicketDisplay(_0xb248xb))[_0xde72[14]](handleEnd(_0xb248xb))[_0xde72[13]](handleError(_0xb248xb));};function handleEntityNotFound(){return function(_0xb248xd){if(!_0xb248xd){return null};return _0xb248xd;}}function handleConnection(_0xb248xb){return function(_0xb248xf){var _0xb248x10=getAccountConfiguration(_0xb248xf.ZendeskAccount);_0xb248xb[_0xde72[16]]=_0xb248xf;_0xb248xb[_0xde72[17]]=_0xb248x10[_0xde72[17]];_0xb248xb[_0xde72[18]]=_0xb248x10[_0xde72[18]];}}function getAccountConfiguration(_0xb248x12){var _0xb248x13={uri:stripTrailingSlash(_0xb248x12[_0xde72[19]]),headers:{"\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E":undefined,"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xde72[20],"\x41\x63\x63\x65\x70\x74":_0xde72[20]}};var _0xb248x14=_0xb248x12[_0xde72[21]];if(_0xb248x12[_0xde72[22]]===_0xde72[23]){_0xb248x14=_0xb248x14+_0xde72[24]+_0xb248x12[_0xde72[23]]}else {if(_0xb248x12[_0xde72[22]]===_0xde72[25]){_0xb248x14=_0xb248x14+_0xde72[26]+_0xb248x12[_0xde72[25]]}};_0xb248x13[_0xde72[18]][_0xde72[27]]=_0xde72[28]+ new Buffer(_0xb248x14).toString(_0xde72[29]);return _0xb248x13;}function searchAgent(_0xb248xb,_0xb248x9,_0xb248xa){return function(){console[_0xde72[8]](_0xde72[30],getValueFromPropertyName(_0xb248xa,getAgentSearchPropertyFromChannel(_0xb248x9)));return rp({uri:_0xb248xb[_0xde72[17]]+_0xde72[31],qs:{"\x71\x75\x65\x72\x79":util[_0xde72[33]](_0xde72[32],getValueFromPropertyName(_0xb248xa,getAgentSearchPropertyFromChannel(_0xb248x9)))},headers:_0xb248xb[_0xde72[18]],json:true});}}function getAgentSearchPropertyFromChannel(_0xb248x9){var _0xb248x17=_0xde72[34];if(_0xb248x9){switch(_0xb248x9){case _0xde72[36]:_0xb248x17=_0xde72[35];break ;;default:_0xb248x17=_0xde72[35];console[_0xde72[12]](_0xde72[37],_0xb248x9);;}};return _0xb248x17;}function getValueFromPropertyName(_0xb248xa,_0xb248x17){return _[_0xde72[38]](_0xb248xa,_0xb248x17)}function handleAgent(_0xb248xb,_0xb248x9,_0xb248x1a){return function(_0xb248xa){if(_0xb248xa[_0xde72[40]][_0xde72[39]]>0&&_0xb248xa[_0xde72[41]]>0){console[_0xde72[8]](_0xde72[42],getValueFromPropertyName(_0xb248x1a,getAgentSearchPropertyFromChannel(_0xb248x9)));_0xb248xb[_0xde72[43]]=getMatchObject(_0xb248xa[_0xde72[40]],_0xde72[44],getValueFromPropertyName(_0xb248x1a,getAgentSearchPropertyFromChannel(_0xb248x9)));return _0xb248xb[_0xde72[43]];};return ;}}function getMatchObject(_0xb248x1c,_0xb248x17,_0xb248x1d){var _0xb248x1e=_[_0xde72[15]](_0xb248x1c,{property:_0xb248x1d});if(_0xb248x1e){return _0xb248x1e};return _[_0xde72[45]](_0xb248x1c);}function searchAdmin(_0xb248xb){return function(_0xb248xa){if(_0xb248xa){return };console[_0xde72[8]](_0xde72[46]);return rp({uri:_0xb248xb[_0xde72[17]]+_0xde72[47],headers:_0xb248xb[_0xde72[18]],json:true});}}function handleAdmin(_0xb248xb){return function(_0xb248xa){if(!_0xb248xa){return };if(_0xb248xa[_0xde72[48]]){console[_0xde72[8]](_0xde72[49]);_0xb248xb[_0xde72[43]]=_0xb248xa[_0xde72[48]];};return ;}}function searchEndUser(_0xb248xb,_0xb248x9,_0xb248xa){return function(){console[_0xde72[8]](_0xde72[50],getValueFromPropertyName(_0xb248xa,getEndUserSearchPropertyFromChannel(_0xb248x9)));return rp({uri:_0xb248xb[_0xde72[17]]+_0xde72[31],qs:{"\x71\x75\x65\x72\x79":util[_0xde72[33]](_0xde72[51],getEndUserSearchQueryFromChannel(_0xb248x9),getValueFromPropertyName(_0xb248xa,getEndUserSearchPropertyFromChannel(_0xb248x9)))},headers:_0xb248xb[_0xde72[18]],json:true});}}function getEndUserSearchQueryFromChannel(_0xb248x9){var _0xb248x17=_0xde72[34];if(_0xb248x9){switch(_0xb248x9){case _0xde72[36]:_0xb248x17=_0xde72[52];break ;;default:_0xb248x17=_0xde72[52];console[_0xde72[12]](_0xde72[37],_0xb248x9);;}};return _0xb248x17;}function getEndUserSearchPropertyFromChannel(_0xb248x9){var _0xb248x17=_0xde72[34];if(_0xb248x9){switch(_0xb248x9){case _0xde72[36]:_0xb248x17=_0xde72[53];break ;;default:_0xb248x17=_0xde72[53];console[_0xde72[12]](_0xde72[37],_0xb248x9);;}};return _0xb248x17;}function getEndUserNamePropertyFromChannel(_0xb248x9){var _0xb248x17=_0xde72[34];if(_0xb248x9){switch(_0xb248x9){case _0xde72[36]:_0xb248x17=_0xde72[53];break ;;default:_0xb248x17=_0xde72[53];console[_0xde72[12]](_0xde72[37],_0xb248x9);;}};return _0xb248x17;}function handleEndUser(_0xb248xb,_0xb248x9,_0xb248x1a){return function(_0xb248xa){if(_0xb248xa[_0xde72[40]][_0xde72[39]]>0&&_0xb248xa[_0xde72[41]]>0){console[_0xde72[8]](_0xde72[54],getValueFromPropertyName(_0xb248x1a,getEndUserSearchPropertyFromChannel(_0xb248x9)));_0xb248xb[_0xde72[55]]=_0xb248xa[_0xde72[40]][0];return _0xb248xb[_0xde72[55]];};return ;}}function endUserCreation(_0xb248xb,_0xb248x9,_0xb248x1a){return function(_0xb248xa){if(_0xb248xa){return };console[_0xde72[8]](_0xde72[56],getValueFromPropertyName(_0xb248x1a,getEndUserSearchPropertyFromChannel(_0xb248x9)));console[_0xde72[8]](getJsonForEndUserCreation(_0xb248x9,_0xb248x1a));return rp({uri:_0xb248xb[_0xde72[17]]+_0xde72[57],method:_0xde72[58],body:{user:getJsonForEndUserCreation(_0xb248x9,_0xb248x1a)},headers:_0xb248xb[_0xde72[18]],json:true});}}function getJsonForEndUserCreation(_0xb248x9,_0xb248xa){var _0xb248x28={role:_0xde72[59]};switch(_0xb248x9){case _0xde72[36]:if(_0xb248xa[_0xde72[53]]){_0xb248x28[_0xde72[44]]=getValueFromPropertyName(_0xb248xa,getEndUserNamePropertyFromChannel(_0xb248x9))}else {_0xb248x28[_0xde72[44]]=util[_0xde72[33]](_0xde72[60],getValueFromPropertyName(_0xb248xa,getAgentSearchPropertyFromChannel(_0xb248x9)))};_0xb248x28[_0xde72[52]]=getValueFromPropertyName(_0xb248xa,getEndUserSearchPropertyFromChannel(_0xb248x9));break ;;default:console[_0xde72[12]](_0xde72[37],_0xb248x9);;};return _0xb248x28;}function handleEndUserCreation(_0xb248xb,_0xb248x9,_0xb248x1a){return function(_0xb248xa){if(!_0xb248xa){return };if(_0xb248xa[_0xde72[48]]){console[_0xde72[8]](_0xde72[61],getValueFromPropertyName(_0xb248x1a,getEndUserSearchPropertyFromChannel(_0xb248x9)));_0xb248xb[_0xde72[55]]=_0xb248xa[_0xde72[48]];};return ;}}function ticketCreation(_0xb248xb){return function(){var _0xb248x2b={requester_id:_0xb248xb[_0xde72[43]][_0xde72[62]],submitter_id:_0xb248xb[_0xde72[55]][_0xde72[62]],assignee_id:_0xb248xb[_0xde72[55]][_0xde72[62]],tags:[_0xde72[63],_0xde72[64],_0xde72[65]],subject:createSubjectFromConfiguration(_0xb248xb),description:createDescriptionFromConfiguration(_0xb248xb),custom_fields:createCustomFieldsFromConfiguration(_0xb248xb)};var _0xb248x2c=createFieldsFromConfiguration(_0xb248xb);if(_0xb248x2c[_0xde72[39]]>0){_[_0xde72[67]](_0xb248x2c,function(_0xb248x2d){_0xb248x2b[_0xb248x2d[_0xde72[62]]]=_0xb248x2d[_0xde72[66]]})};return rp({uri:_0xb248xb[_0xde72[17]]+_0xde72[68],method:_0xde72[58],body:{ticket:_0xb248x2b},headers:_0xb248xb[_0xde72[18]],json:true});}}function createSubjectFromConfiguration(_0xb248xb){var _0xb248x2f=_0xde72[34];var _0xb248x30=[];if(_0xb248xb[_0xde72[16]][_0xde72[69]][_0xde72[39]]>0){_[_0xde72[67]](_0xb248xb[_0xde72[16]].Subject,function(_0xb248x31){if(_0xb248x31[_0xde72[70]]===_0xde72[71]){_0xb248x30[_0xde72[73]](_0xb248x31[_0xde72[72]])}else {if(_0xb248x31[_0xde72[70]]===_0xde72[74]){}}});_0xb248x2f=_0xb248x30[_0xde72[76]](_0xde72[75]);};return _0xb248x2f;}function createDescriptionFromConfiguration(_0xb248xb){var _0xb248x33=_0xde72[34];var _0xb248x30=[];if(_0xb248xb[_0xde72[16]][_0xde72[77]][_0xde72[39]]>0){_[_0xde72[67]](_0xb248xb[_0xde72[16]].Description,function(_0xb248x31){if(_0xb248x31[_0xde72[70]]===_0xde72[71]){_0xb248x30[_0xde72[73]](_0xb248x31[_0xde72[72]])}else {if(_0xb248x31[_0xde72[70]]===_0xde72[78]){if(_0xb248x31[_0xde72[79]]===_0xde72[71]){_0xb248x30[_0xde72[73]](util[_0xde72[33]](_0xde72[80],_0xb248x31[_0xde72[81]],_0xb248x31[_0xde72[82]]))}else {if(_0xb248x31[_0xde72[79]]===_0xde72[74]){}}}}});_0xb248x33=_0xb248x30[_0xde72[76]](_0xde72[83]);};return _0xb248x33;}function createCustomFieldsFromConfiguration(_0xb248xb){var _0xb248x35=[];var _0xb248x36=[];if(_0xb248xb[_0xde72[16]][_0xde72[84]][_0xde72[39]]>0){_0xb248x35=_[_0xde72[85]](_0xb248xb[_0xde72[16]].Field,{"\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64":true});_[_0xde72[67]](_0xb248x35,function(_0xb248x2d){if(_0xb248x2d[_0xde72[70]]===_0xde72[71]){_0xb248x36[_0xde72[73]]({id:_0xb248x2d[_0xde72[86]],value:_0xb248x2d[_0xde72[72]]})}else {if(_0xb248x2d[_0xde72[70]]===_0xde72[74]){}}});};return _0xb248x36;}function createFieldsFromConfiguration(_0xb248xb){var _0xb248x2c=[];var _0xb248x36=[];if(_0xb248xb[_0xde72[16]][_0xde72[84]][_0xde72[39]]>0){_0xb248x2c=_[_0xde72[85]](_0xb248xb[_0xde72[16]].Field,{"\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64":false});_[_0xde72[67]](_0xb248x2c,function(_0xb248x2d){if(_0xb248x2d[_0xde72[70]]===_0xde72[71]){_0xb248x36[_0xde72[73]]({id:_0xb248x2d[_0xde72[87]],value:_0xb248x2d[_0xde72[72]]})}else {if(_0xb248x2d[_0xde72[70]]===_0xde72[74]){}}});};return _0xb248x36;}function handleTicketDisplay(_0xb248xb){return function(_0xb248xa){if(_0xb248xa[_0xde72[88]]){console[_0xde72[8]](_0xde72[89]);_0xb248xb[_0xde72[88]]=_0xb248xa[_0xde72[88]];var _0xb248x39=util[_0xde72[33]](_0xde72[90],_0xb248xb[_0xde72[43]][_0xde72[62]],_0xb248xb[_0xde72[88]][_0xde72[62]]);return rp({uri:_0xb248xb[_0xde72[17]]+_0xb248x39,method:_0xde72[58],headers:_0xb248xb[_0xde72[18]],json:true});};return ;}}function handleEnd(_0xb248xb){return function(){console[_0xde72[8]](util[_0xde72[33]](_0xde72[91],_0xb248xb[_0xde72[88]][_0xde72[62]],_0xb248xb[_0xde72[43]][_0xde72[62]]));_0xb248xb=undefined;return ;}}function handleError(_0xb248xb){return function(_0xb248x3c){console[_0xde72[12]](_0xde72[92]);console[_0xde72[12]](_0xde72[93],_0xb248x3c[_0xde72[94]]);console[_0xde72[12]](_0xde72[95],_0xb248x3c[_0xde72[96]]);_0xb248xb=undefined;return ;}}function stripTrailingSlash(_0xb248x3e){if(_0xb248x3e[_0xde72[97]](-1)===_0xde72[98]){return _0xb248x3e[_0xde72[97]](0,_0xb248x3e[_0xde72[39]]-1)};return _0xb248x3e;}module[_0xde72[99]]=Zendesk;
\ No newline at end of file
+var _0xfe23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x5A\x65\x6E\x64\x65\x73\x6B\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x5A\x65\x6E\x64\x65\x73\x6B\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x68\x61\x6E\x64\x6C\x65\x45\x76\x65\x6E\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x50\x61\x73\x73\x65\x64\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x20\x61\x72\x65\x20\x6E\x6F\x74\x20\x65\x6E\x6F\x75\x67\x68\x20\x74\x6F\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x6E\x65\x77\x20\x74\x69\x63\x6B\x65\x74\x3A\x20\x6D\x69\x73\x73\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x49\x64\x20\x6F\x72\x20\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x49\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x72\x69","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x3A","\x74\x6F\x6B\x65\x6E","\x2F\x74\x6F\x6B\x65\x6E\x3A","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x61\x73\x69\x63\x20","\x62\x61\x73\x65\x36\x34","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x74\x6F\x20\x73\x65\x61\x72\x63\x68\x3A","\x2F\x73\x65\x61\x72\x63\x68\x2E\x6A\x73\x6F\x6E","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x61\x67\x65\x6E\x74\x20\x6E\x61\x6D\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x76\x6F\x69\x63\x65","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64\x3A","\x72\x65\x73\x75\x6C\x74","\x6C\x65\x6E\x67\x74\x68","\x72\x65\x73\x75\x6C\x74\x73","\x63\x6F\x75\x6E\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x66\x6F\x75\x6E\x64\x3A","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x69\x72\x73\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E\x20\x55\x73\x65\x20\x74\x68\x65\x20\x61\x64\x6D\x69\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65\x2E\x6A\x73\x6F\x6E","\x75\x73\x65\x72","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x64\x6D\x69\x6E\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x74\x6F\x20\x73\x65\x61\x72\x63\x68\x3A","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x65\x6E\x64\x2D\x75\x73\x65\x72\x20\x25\x73\x3A\x25\x73","\x70\x68\x6F\x6E\x65","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x64\x65\x73\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x66\x6F\x75\x6E\x64\x3A","\x65\x6E\x64\x75\x73\x65\x72","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x3A","\x2F\x75\x73\x65\x72\x73\x2E\x6A\x73\x6F\x6E","\x50\x4F\x53\x54","\x65\x6E\x64\x2D\x75\x73\x65\x72","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x63\x72\x65\x61\x74\x65\x64\x3A\x20","\x69\x64","\x78\x43\x41\x4C\x4C\x59","\x4D\x4F\x54\x49\x4F\x4E","\x43\x54\x49","\x76\x61\x6C\x75\x65","\x66\x6F\x72\x45\x61\x63\x68","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x62\x6F\x64\x79\x3A","\x2F\x74\x69\x63\x6B\x65\x74\x73\x2E\x6A\x73\x6F\x6E","\x53\x75\x62\x6A\x65\x63\x74","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x63\x6F\x6E\x74\x65\x6E\x74","\x70\x75\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x20","\x6A\x6F\x69\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x0A","\x46\x69\x65\x6C\x64","\x66\x69\x6C\x74\x65\x72","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x74\x69\x63\x6B\x65\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x63\x72\x65\x61\x74\x65\x64","\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x25\x64\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64\x2F\x64\x69\x73\x70\x6C\x61\x79\x2E\x6A\x73\x6F\x6E","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x25\x64\x20\x64\x69\x73\x70\x6C\x61\x79\x65\x64\x20\x74\x6F\x20\x61\x67\x65\x6E\x74\x20\x25\x64","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x72\x72\x6F\x72\x20\x69\x6E\x20\x74\x69\x63\x6B\x65\x74\x20\x63\x72\x65\x61\x74\x69\x6F\x6E","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x4D\x65\x73\x73\x61\x67\x65\x3A","\x6D\x65\x73\x73\x61\x67\x65","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x53\x74\x61\x63\x6B\x3A","\x73\x74\x61\x63\x6B","\x73\x75\x62\x73\x74\x72","\x2F","\x65\x78\x70\x6F\x72\x74\x73"];_0xfe23[0];var _=require(_0xfe23[1]);var util=require(_0xfe23[2]);var rp=require(_0xfe23[3]);var ZendeskIntegration=require(_0xfe23[5])[_0xfe23[4]];var ZendeskConfiguration=require(_0xfe23[5])[_0xfe23[6]];function Zendesk(){console[_0xfe23[8]](_0xfe23[7])}Zendesk[_0xfe23[10]][_0xfe23[9]]=function(_0x8c8cx7,_0x8c8cx8,_0x8c8cx9,_0x8c8cxa){var _0x8c8cxb={uri:undefined,headers:undefined,agent:undefined,enduser:undefined,ticket:undefined,configuration:undefined};if(!_0x8c8cx7|| !_0x8c8cx8){console[_0xfe23[12]](_0xfe23[11]);return ;};ZendeskConfiguration[_0xfe23[15]]({where:{id:_0x8c8cx8,AccountId:_0x8c8cx7},include:[{all:true}]})[_0xfe23[14]](handleEntityNotFound())[_0xfe23[14]](handleConnection(_0x8c8cxb))[_0xfe23[14]](searchAgent(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa))[_0xfe23[14]](handleAgent(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa))[_0xfe23[14]](searchAdmin(_0x8c8cxb))[_0xfe23[14]](handleAdmin(_0x8c8cxb))[_0xfe23[14]](searchEndUser(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa))[_0xfe23[14]](handleEndUser(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa))[_0xfe23[14]](endUserCreation(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa))[_0xfe23[14]](handleEndUserCreation(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa))[_0xfe23[14]](ticketCreation(_0x8c8cxb,_0x8c8cxa))[_0xfe23[14]](handleTicketDisplay(_0x8c8cxb))[_0xfe23[14]](handleEnd(_0x8c8cxb))[_0xfe23[13]](handleError(_0x8c8cxb));};function handleEntityNotFound(){return function(_0x8c8cxd){if(!_0x8c8cxd){return null};return _0x8c8cxd;}}function handleConnection(_0x8c8cxb){return function(_0x8c8cxf){var _0x8c8cx10=getAccountConfiguration(_0x8c8cxf.ZendeskAccount);_0x8c8cxb[_0xfe23[16]]=_0x8c8cxf;_0x8c8cxb[_0xfe23[17]]=_0x8c8cx10[_0xfe23[17]];_0x8c8cxb[_0xfe23[18]]=_0x8c8cx10[_0xfe23[18]];}}function getAccountConfiguration(_0x8c8cx12){var _0x8c8cx13={uri:stripTrailingSlash(_0x8c8cx12[_0xfe23[19]]),headers:{"\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E":undefined,"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xfe23[20],"\x41\x63\x63\x65\x70\x74":_0xfe23[20]}};var _0x8c8cx14=_0x8c8cx12[_0xfe23[21]];if(_0x8c8cx12[_0xfe23[22]]===_0xfe23[23]){_0x8c8cx14=_0x8c8cx14+_0xfe23[24]+_0x8c8cx12[_0xfe23[23]]}else {if(_0x8c8cx12[_0xfe23[22]]===_0xfe23[25]){_0x8c8cx14=_0x8c8cx14+_0xfe23[26]+_0x8c8cx12[_0xfe23[25]]}};_0x8c8cx13[_0xfe23[18]][_0xfe23[27]]=_0xfe23[28]+ new Buffer(_0x8c8cx14).toString(_0xfe23[29]);return _0x8c8cx13;}function searchAgent(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa){return function(){console[_0xfe23[8]](_0xfe23[30],getValueFromPropertyName(_0x8c8cxa,getAgentSearchPropertyFromChannel(_0x8c8cx9)));return rp({uri:_0x8c8cxb[_0xfe23[17]]+_0xfe23[31],qs:{"\x71\x75\x65\x72\x79":util[_0xfe23[33]](_0xfe23[32],getValueFromPropertyName(_0x8c8cxa,getAgentSearchPropertyFromChannel(_0x8c8cx9)))},headers:_0x8c8cxb[_0xfe23[18]],json:true});}}function getAgentSearchPropertyFromChannel(_0x8c8cx9){var _0x8c8cx17=_0xfe23[34];if(_0x8c8cx9){switch(_0x8c8cx9){case _0xfe23[36]:_0x8c8cx17=_0xfe23[35];break ;;default:_0x8c8cx17=_0xfe23[35];console[_0xfe23[12]](_0xfe23[37],_0x8c8cx9);;}};return _0x8c8cx17;}function getValueFromPropertyName(_0x8c8cxa,_0x8c8cx17){return _[_0xfe23[38]](_0x8c8cxa,_0x8c8cx17)}function handleAgent(_0x8c8cxb,_0x8c8cx9,_0x8c8cx1a){return function(_0x8c8cxa){if(_0x8c8cxa[_0xfe23[40]][_0xfe23[39]]>0&&_0x8c8cxa[_0xfe23[41]]>0){console[_0xfe23[8]](_0xfe23[42],getValueFromPropertyName(_0x8c8cx1a,getAgentSearchPropertyFromChannel(_0x8c8cx9)));_0x8c8cxb[_0xfe23[43]]=getMatchObject(_0x8c8cxa[_0xfe23[40]],_0xfe23[44],getValueFromPropertyName(_0x8c8cx1a,getAgentSearchPropertyFromChannel(_0x8c8cx9)));return _0x8c8cxb[_0xfe23[43]];};return ;}}function getMatchObject(_0x8c8cx1c,_0x8c8cx17,_0x8c8cx1d){var _0x8c8cx1e=_[_0xfe23[15]](_0x8c8cx1c,{property:_0x8c8cx1d});if(_0x8c8cx1e){return _0x8c8cx1e};return _[_0xfe23[45]](_0x8c8cx1c);}function searchAdmin(_0x8c8cxb){return function(_0x8c8cxa){if(_0x8c8cxa){return };console[_0xfe23[8]](_0xfe23[46]);return rp({uri:_0x8c8cxb[_0xfe23[17]]+_0xfe23[47],headers:_0x8c8cxb[_0xfe23[18]],json:true});}}function handleAdmin(_0x8c8cxb){return function(_0x8c8cxa){if(!_0x8c8cxa){return };if(_0x8c8cxa[_0xfe23[48]]){console[_0xfe23[8]](_0xfe23[49]);_0x8c8cxb[_0xfe23[43]]=_0x8c8cxa[_0xfe23[48]];};return ;}}function searchEndUser(_0x8c8cxb,_0x8c8cx9,_0x8c8cxa){return function(){console[_0xfe23[8]](_0xfe23[50],getValueFromPropertyName(_0x8c8cxa,getEndUserSearchPropertyFromChannel(_0x8c8cx9)));return rp({uri:_0x8c8cxb[_0xfe23[17]]+_0xfe23[31],qs:{"\x71\x75\x65\x72\x79":util[_0xfe23[33]](_0xfe23[51],getEndUserSearchQueryFromChannel(_0x8c8cx9),getValueFromPropertyName(_0x8c8cxa,getEndUserSearchPropertyFromChannel(_0x8c8cx9)))},headers:_0x8c8cxb[_0xfe23[18]],json:true});}}function getEndUserSearchQueryFromChannel(_0x8c8cx9){var _0x8c8cx17=_0xfe23[34];if(_0x8c8cx9){switch(_0x8c8cx9){case _0xfe23[36]:_0x8c8cx17=_0xfe23[52];break ;;default:_0x8c8cx17=_0xfe23[52];console[_0xfe23[12]](_0xfe23[37],_0x8c8cx9);;}};return _0x8c8cx17;}function getEndUserSearchPropertyFromChannel(_0x8c8cx9){var _0x8c8cx17=_0xfe23[34];if(_0x8c8cx9){switch(_0x8c8cx9){case _0xfe23[36]:_0x8c8cx17=_0xfe23[53];break ;;default:_0x8c8cx17=_0xfe23[53];console[_0xfe23[12]](_0xfe23[37],_0x8c8cx9);;}};return _0x8c8cx17;}function getEndUserNamePropertyFromChannel(_0x8c8cx9){var _0x8c8cx17=_0xfe23[34];if(_0x8c8cx9){switch(_0x8c8cx9){case _0xfe23[36]:_0x8c8cx17=_0xfe23[54];break ;;default:_0x8c8cx17=_0xfe23[54];console[_0xfe23[12]](_0xfe23[37],_0x8c8cx9);;}};return _0x8c8cx17;}function handleEndUser(_0x8c8cxb,_0x8c8cx9,_0x8c8cx1a){return function(_0x8c8cxa){if(_0x8c8cxa[_0xfe23[40]][_0xfe23[39]]>0&&_0x8c8cxa[_0xfe23[41]]>0){console[_0xfe23[8]](_0xfe23[55],getValueFromPropertyName(_0x8c8cx1a,getEndUserSearchPropertyFromChannel(_0x8c8cx9)));_0x8c8cxb[_0xfe23[56]]=_0x8c8cxa[_0xfe23[40]][0];return _0x8c8cxb[_0xfe23[56]];};return ;}}function endUserCreation(_0x8c8cxb,_0x8c8cx9,_0x8c8cx1a){return function(_0x8c8cxa){if(_0x8c8cxa){return };console[_0xfe23[8]](_0xfe23[57],getValueFromPropertyName(_0x8c8cx1a,getEndUserSearchPropertyFromChannel(_0x8c8cx9)));console[_0xfe23[8]](getJsonForEndUserCreation(_0x8c8cx9,_0x8c8cx1a));return rp({uri:_0x8c8cxb[_0xfe23[17]]+_0xfe23[58],method:_0xfe23[59],body:{user:getJsonForEndUserCreation(_0x8c8cx9,_0x8c8cx1a)},headers:_0x8c8cxb[_0xfe23[18]],json:true});}}function getJsonForEndUserCreation(_0x8c8cx9,_0x8c8cxa){var _0x8c8cx28={role:_0xfe23[60]};switch(_0x8c8cx9){case _0xfe23[36]:if(_0x8c8cxa[_0xfe23[54]]){_0x8c8cx28[_0xfe23[44]]=getValueFromPropertyName(_0x8c8cxa,getEndUserNamePropertyFromChannel(_0x8c8cx9))}else {_0x8c8cx28[_0xfe23[44]]=util[_0xfe23[33]](_0xfe23[61],getValueFromPropertyName(_0x8c8cxa,getAgentSearchPropertyFromChannel(_0x8c8cx9)))};_0x8c8cx28[_0xfe23[52]]=getValueFromPropertyName(_0x8c8cxa,getEndUserSearchPropertyFromChannel(_0x8c8cx9));break ;;default:console[_0xfe23[12]](_0xfe23[37],_0x8c8cx9);;};return _0x8c8cx28;}function handleEndUserCreation(_0x8c8cxb,_0x8c8cx9,_0x8c8cx1a){return function(_0x8c8cxa){if(!_0x8c8cxa){return };if(_0x8c8cxa[_0xfe23[48]]){console[_0xfe23[8]](_0xfe23[62],getValueFromPropertyName(_0x8c8cx1a,getEndUserSearchPropertyFromChannel(_0x8c8cx9)));_0x8c8cxb[_0xfe23[56]]=_0x8c8cxa[_0xfe23[48]];};return ;}}function ticketCreation(_0x8c8cxb,_0x8c8cx1a){return function(){var _0x8c8cx2b={requester_id:_0x8c8cxb[_0xfe23[43]][_0xfe23[63]],submitter_id:_0x8c8cxb[_0xfe23[56]][_0xfe23[63]],assignee_id:_0x8c8cxb[_0xfe23[56]][_0xfe23[63]],tags:[_0xfe23[64],_0xfe23[65],_0xfe23[66]],subject:createSubjectFromConfiguration(_0x8c8cxb,_0x8c8cx1a),description:createDescriptionFromConfiguration(_0x8c8cxb,_0x8c8cx1a),custom_fields:createCustomFieldsFromConfiguration(_0x8c8cxb,_0x8c8cx1a)};var _0x8c8cx2c=createFieldsFromConfiguration(_0x8c8cxb);if(_0x8c8cx2c[_0xfe23[39]]>0){_[_0xfe23[68]](_0x8c8cx2c,function(_0x8c8cx2d){_0x8c8cx2b[_0x8c8cx2d[_0xfe23[63]]]=_0x8c8cx2d[_0xfe23[67]]})};console[_0xfe23[8]](_0xfe23[69],_0x8c8cx2b);return rp({uri:_0x8c8cxb[_0xfe23[17]]+_0xfe23[70],method:_0xfe23[59],body:{ticket:_0x8c8cx2b},headers:_0x8c8cxb[_0xfe23[18]],json:true});}}function createSubjectFromConfiguration(_0x8c8cxb,_0x8c8cx1a){var _0x8c8cx2f=_0xfe23[34];var _0x8c8cx30=[];if(_0x8c8cxb[_0xfe23[16]][_0xfe23[71]][_0xfe23[39]]>0){_[_0xfe23[68]](_0x8c8cxb[_0xfe23[16]].Subject,function(_0x8c8cx31){if(_0x8c8cx31[_0xfe23[72]]===_0xfe23[73]){_0x8c8cx30[_0xfe23[75]](_0x8c8cx31[_0xfe23[74]])}else {if(_0x8c8cx31[_0xfe23[72]]===_0xfe23[76]&&_0x8c8cx31[_0xfe23[77]]){var _0x8c8cx32=getValueFromPropertyName(_0x8c8cx1a,_0x8c8cx31[_0xfe23[77]]);if(_0x8c8cx32){_0x8c8cx30[_0xfe23[75]](_0x8c8cx32.toString())};}else {if(_0x8c8cx31[_0xfe23[72]]===_0xfe23[78]){}}}});_0x8c8cx2f=_0x8c8cx30[_0xfe23[80]](_0xfe23[79]);};return _0x8c8cx2f;}function createDescriptionFromConfiguration(_0x8c8cxb,_0x8c8cx1a){var _0x8c8cx34=_0xfe23[34];var _0x8c8cx30=[];if(_0x8c8cxb[_0xfe23[16]][_0xfe23[81]][_0xfe23[39]]>0){_[_0xfe23[68]](_0x8c8cxb[_0xfe23[16]].Description,function(_0x8c8cx31){if(_0x8c8cx31[_0xfe23[72]]===_0xfe23[73]){_0x8c8cx30[_0xfe23[75]](_0x8c8cx31[_0xfe23[74]])}else {if(_0x8c8cx31[_0xfe23[72]]===_0xfe23[82]){if(_0x8c8cx31[_0xfe23[83]]===_0xfe23[73]){_0x8c8cx30[_0xfe23[75]](util[_0xfe23[33]](_0xfe23[84],_0x8c8cx31[_0xfe23[85]],_0x8c8cx31[_0xfe23[86]]))}else {if(_0x8c8cx31[_0xfe23[83]]===_0xfe23[76]&&_0x8c8cx31[_0xfe23[77]]){var _0x8c8cx32=getValueFromPropertyName(_0x8c8cx1a,_0x8c8cx31[_0xfe23[77]]);if(_0x8c8cx32){_0x8c8cx30[_0xfe23[75]](util[_0xfe23[33]](_0xfe23[84],_0x8c8cx31[_0xfe23[85]],_0x8c8cx32.toString()))};}else {if(_0x8c8cx31[_0xfe23[83]]===_0xfe23[78]){}}}}}});_0x8c8cx34=_0x8c8cx30[_0xfe23[80]](_0xfe23[87]);};return _0x8c8cx34;}function createCustomFieldsFromConfiguration(_0x8c8cxb,_0x8c8cx1a){var _0x8c8cx36=[];var _0x8c8cx37=[];if(_0x8c8cxb[_0xfe23[16]][_0xfe23[88]][_0xfe23[39]]>0){_0x8c8cx36=_[_0xfe23[89]](_0x8c8cxb[_0xfe23[16]].Field,{"\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64":true});_[_0xfe23[68]](_0x8c8cx36,function(_0x8c8cx2d){if(_0x8c8cx2d[_0xfe23[72]]===_0xfe23[73]){_0x8c8cx37[_0xfe23[75]]({id:_0x8c8cx2d[_0xfe23[90]],value:_0x8c8cx2d[_0xfe23[74]]})}else {if(_0x8c8cx2d[_0xfe23[72]]===_0xfe23[76]){var _0x8c8cx32=getValueFromPropertyName(_0x8c8cx1a,_0x8c8cx2d[_0xfe23[77]]);if(_0x8c8cx32){_0x8c8cx37[_0xfe23[75]]({id:_0x8c8cx2d[_0xfe23[90]],value:_0x8c8cx32.toString()})};}else {if(_0x8c8cx2d[_0xfe23[72]]===_0xfe23[78]){}}}});};return _0x8c8cx37;}function createFieldsFromConfiguration(_0x8c8cxb){var _0x8c8cx2c=[];var _0x8c8cx37=[];if(_0x8c8cxb[_0xfe23[16]][_0xfe23[88]][_0xfe23[39]]>0){_0x8c8cx2c=_[_0xfe23[89]](_0x8c8cxb[_0xfe23[16]].Field,{"\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64":false});_[_0xfe23[68]](_0x8c8cx2c,function(_0x8c8cx2d){if(_0x8c8cx2d[_0xfe23[72]]===_0xfe23[73]){_0x8c8cx37[_0xfe23[75]]({id:_0x8c8cx2d[_0xfe23[91]],value:_0x8c8cx2d[_0xfe23[74]]})}});};return _0x8c8cx37;}function handleTicketDisplay(_0x8c8cxb){return function(_0x8c8cxa){if(_0x8c8cxa[_0xfe23[92]]){console[_0xfe23[8]](_0xfe23[93]);_0x8c8cxb[_0xfe23[92]]=_0x8c8cxa[_0xfe23[92]];var _0x8c8cx3a=util[_0xfe23[33]](_0xfe23[94],_0x8c8cxb[_0xfe23[43]][_0xfe23[63]],_0x8c8cxb[_0xfe23[92]][_0xfe23[63]]);return rp({uri:_0x8c8cxb[_0xfe23[17]]+_0x8c8cx3a,method:_0xfe23[59],headers:_0x8c8cxb[_0xfe23[18]],json:true});};return ;}}function handleEnd(_0x8c8cxb){return function(){console[_0xfe23[8]](util[_0xfe23[33]](_0xfe23[95],_0x8c8cxb[_0xfe23[92]][_0xfe23[63]],_0x8c8cxb[_0xfe23[43]][_0xfe23[63]]));_0x8c8cxb=undefined;return ;}}function handleError(_0x8c8cxb){return function(_0x8c8cx3d){console[_0xfe23[12]](_0xfe23[96]);console[_0xfe23[12]](_0xfe23[97],_0x8c8cx3d[_0xfe23[98]]);console[_0xfe23[12]](_0xfe23[99],_0x8c8cx3d[_0xfe23[100]]);_0x8c8cxb=undefined;return ;}}function stripTrailingSlash(_0x8c8cx3f){if(_0x8c8cx3f[_0xfe23[101]](-1)===_0xfe23[102]){return _0x8c8cx3f[_0xfe23[101]](0,_0x8c8cx3f[_0xfe23[39]]-1)};return _0x8c8cx3f;}module[_0xfe23[103]]=Zendesk;
\ No newline at end of file
index f7fd946..959c563 100644 (file)
@@ -1 +1 @@
-var _0x9e7e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x64\x35","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x55\x73\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x63\x68\x61\x74","\x70\x72\x6F\x63\x65\x73\x73","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x63\x68\x61\x6E\x67\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x6F\x6E\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6F\x70\x65\x6E","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x61\x67\x65\x6E\x74\x69\x64","\x61\x64\x64\x55\x73\x65\x72","\x63\x68\x61\x74\x72\x6F\x6F\x6D\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x68\x61\x74\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x61\x76\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x72\x65\x61\x74\x65","\x4E\x6F\x20\x41\x76\x61\x69\x6C\x61\x62\x6C\x65\x20\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x44\x69\x61\x6C\x50\x6C\x61\x6E\x20\x65\x6E\x64\x65\x64\x2E\x2E","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x49\x64","\x64\x61\x74\x61","\x69\x64","\x6D\x65\x72\x67\x65","\x65\x6D\x61\x69\x6C","\x6E\x61\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x73\x6F\x72\x74\x42\x79","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x76\x69\x74\x65","\x69","\x6A","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x6C\x6F\x67","\x74\x72\x75\x65","\x63\x6F\x75\x6E\x74\x42\x79","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x55\x73\x65\x72\x73","\x6F\x6E\x6C\x69\x6E\x65","\x61\x70\x70","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x75\x6E\x74","\x62\x65\x65\x70\x61\x6C\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x73\x74\x72\x61\x74\x65\x67\x79","\x73\x74\x72\x61\x74\x65\x67\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x69\x73\x4F\x62\x6A\x65\x63\x74","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x75\x6E","\x6D\x6F\x6E","\x74\x75\x65","\x77\x65\x64","\x74\x68\x75","\x66\x72\x69","\x73\x61\x74","\x6A\x61\x6E","\x66\x65\x62","\x6D\x61\x72","\x61\x70\x72","\x6D\x61\x79","\x6A\x75\x6E","\x6A\x75\x6C","\x61\x75\x67","\x73\x65\x70","\x6F\x63\x74","\x6E\x6F\x76","\x64\x65\x63","\x2C","\x73\x70\x6C\x69\x74","\x2A","\x48\x48\x3A\x6D\x6D","\x2D","\x54\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x79","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x68\x69\x66\x74","\x73\x6C\x69\x63\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x44\x57\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x74\x65","\x44\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x6D\x6F\x6E\x74\x68","\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x49\x4E\x54\x45\x52\x56\x41\x4C\x20\x4F\x4B"];_0x9e7e[0];var _=require(_0x9e7e[1]);var moment=require(_0x9e7e[2]);var md5=require(_0x9e7e[3]);var ChatApplication=require(_0x9e7e[5])[_0x9e7e[4]];var ChatWebsite=require(_0x9e7e[5])[_0x9e7e[6]];var ChatVisitor=require(_0x9e7e[5])[_0x9e7e[7]];var ChatMessage=require(_0x9e7e[5])[_0x9e7e[8]];var ChatQueue=require(_0x9e7e[5])[_0x9e7e[9]];var ChatRoom=require(_0x9e7e[5])[_0x9e7e[10]];var Interval=require(_0x9e7e[5])[_0x9e7e[11]];var ReportChatSession=require(_0x9e7e[5])[_0x9e7e[12]];var ReportChat=require(_0x9e7e[5])[_0x9e7e[13]];var User=require(_0x9e7e[5])[_0x9e7e[14]];var timeouts={};module[_0x9e7e[15]]=function(_0x73e0xf){var _0x73e0x10=_0x73e0xf[_0x9e7e[16]]();_0x73e0x10[_0x9e7e[18]](_0x9e7e[17],20,function(_0x73e0x11,_0x73e0x12){onProcess(_0x73e0x11,_0x73e0x12)});ReportChat[_0x9e7e[39]](function(_0x73e0x13){var _0x73e0x14;if(_0x73e0x13[_0x9e7e[20]](_0x9e7e[19])){if(timeouts[_0x73e0x13[_0x9e7e[21]]]){clearTimeout(timeouts[_0x73e0x13[_0x9e7e[21]]][_0x9e7e[22]]);timeouts[_0x73e0x13[_0x9e7e[21]]][_0x9e7e[23]]();delete timeouts[_0x73e0x13[_0x9e7e[21]]];};ChatRoom[_0x9e7e[32]](_0x73e0x13[_0x9e7e[31]])[_0x9e7e[28]](function(_0x73e0x16){_0x73e0x14=_0x73e0x16;_0x73e0x16[_0x9e7e[30]](_0x73e0x13[_0x9e7e[29]],{individualHooks:true});})[_0x9e7e[28]](function(){_0x73e0x14[_0x9e7e[27]]({status:_0x9e7e[26]})})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)});ReportChat[_0x9e7e[27]]({agentringnoanswerAt:moment()[_0x9e7e[34]](_0x9e7e[33]),reason:_0x9e7e[35],lastevent:_0x9e7e[35]},{where:{uniqueid:_0x73e0x13[_0x9e7e[21]],reason:null},individualHooks:true})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)});ReportChatSession[_0x9e7e[27]]({chatleaveAt:moment()[_0x9e7e[34]](_0x9e7e[33]),agentid:_0x73e0x13[_0x9e7e[29]],fullname:_0x73e0x13[_0x9e7e[36]],membername:_0x73e0x13[_0x9e7e[37]],chatqueuename:_0x73e0x13[_0x9e7e[38]]},{where:{uniqueid:_0x73e0x13[_0x9e7e[21]]},individualHooks:true})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)});};});ChatVisitor[_0x9e7e[40]](function(_0x73e0x13){onSave(_0x73e0x10,_0x73e0x13)});};function onSave(_0x73e0xf,_0x73e0x13,_0x73e0x18){_0x73e0xf[_0x9e7e[43]](_0x9e7e[17],_0x73e0x13[_0x9e7e[42]])[_0x9e7e[41]]()}function onProcess(_0x73e0x11,_0x73e0x12){ChatWebsite[_0x9e7e[32]](_0x73e0x11[_0x9e7e[49]].ChatWebsiteId,{include:[{model:ChatApplication,include:[{model:ChatQueue,include:[{model:User}]},{model:User},{model:Interval,include:[{all:true}]}]}]})[_0x9e7e[28]](function(ChatWebsite){if(!ChatWebsite){_0x73e0x12( new Error(_0x9e7e[44]));return ;};if(!ChatWebsite[_0x9e7e[46]][_0x9e7e[45]]){_0x73e0x12( new Error(_0x9e7e[47]));return ;};_0x73e0x11[_0x9e7e[49]][_0x9e7e[48]]=_0x73e0x11[_0x9e7e[49]][_0x9e7e[50]];var _0x73e0x1a=_[_0x9e7e[51]](_0x73e0x11[_0x9e7e[49]],ChatWebsite[_0x9e7e[42]]);ChatRoom[_0x9e7e[43]]({type:_0x9e7e[57],ChatVisitorId:_0x73e0x1a[_0x9e7e[48]],ChatWebsiteId:_0x73e0x1a[_0x9e7e[50]]},{include:[{all:true}]})[_0x9e7e[28]](function(_0x73e0x16){onReportSession({uniqueid:_0x73e0x1a[_0x9e7e[48]],chatroomid:_0x73e0x16[_0x9e7e[50]],visitorname:_0x73e0x1a[_0x9e7e[36]],visitoremail:_0x73e0x1a[_0x9e7e[52]],websitename:_0x73e0x1a[_0x9e7e[53]],websiteid:_0x73e0x1a[_0x9e7e[50]],websiteaddress:_0x73e0x1a[_0x9e7e[54]],chatjoinAt:moment()[_0x9e7e[34]](_0x9e7e[33])});_0x73e0x1a[_0x9e7e[46]]=_[_0x9e7e[56]](_0x73e0x1a.ChatApplications,_0x9e7e[55]);onInvite(_0x73e0x1a,0,0,0,0,_0x73e0x16,_0x73e0x12);})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)});})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)})}function onInvite(_0x73e0x1c,_0x73e0x1d,_0x73e0x1e,_0x73e0x1f,_0x73e0x20,_0x73e0x16,_0x73e0x12){console[_0x9e7e[62]](_0x9e7e[58],_0x9e7e[59],_0x73e0x1d,_0x9e7e[60],_0x73e0x1e,_0x9e7e[61],_0x73e0x1f);var _0x73e0x21=0;var _0x73e0x22;if(_0x73e0x1d===_0x73e0x1c[_0x9e7e[46]][_0x9e7e[45]]){console[_0x9e7e[24]](_0x9e7e[47]);onReportSession({uniqueid:_0x73e0x1c[_0x9e7e[48]],mailunmanagedAt:moment()[_0x9e7e[34]](_0x9e7e[33]),mailleaveAt:moment()[_0x9e7e[34]](_0x9e7e[33])});_0x73e0x12( new Error(_0x9e7e[47]));return ;};if(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]]){var _0x73e0x23=_[_0x9e7e[64]](_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]].Users,{online:true})[_0x9e7e[63]];if(_0x73e0x23&&onInterval(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]?_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[65]])){if(_0x73e0x1e===_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x9e7e[45]]){if(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[22]]>_0x73e0x1f){onInvite(_0x73e0x1c,_0x73e0x1d,0,_0x73e0x1f,_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;}else {onInvite(_0x73e0x1c,++_0x73e0x1d,0,0,_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;}};switch(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[81]]){case _0x9e7e[72]:if(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x73e0x1e][_0x9e7e[67]]&&onInterval(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]?_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[65]])){_0x73e0x21=(((_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[22]]-_0x73e0x1f)>_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[22]])?_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[22]]:(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[22]]-_0x73e0x1f));onReport({uniqueid:_0x73e0x1c[_0x9e7e[48]],chatroomid:_0x73e0x16[_0x9e7e[50]],visitorname:_0x73e0x1c[_0x9e7e[36]],visitoremail:_0x73e0x1c[_0x9e7e[52]],websitename:_0x73e0x1c[_0x9e7e[53]],websiteid:_0x73e0x1c[_0x9e7e[50]],websiteaddress:_0x73e0x1c[_0x9e7e[54]],sorting:_0x73e0x20,timeslot:_0x73e0x21,application:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[68]],fullname:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x73e0x1e][_0x9e7e[36]],membername:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x73e0x1e][_0x9e7e[53]],agentid:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x73e0x1e][_0x9e7e[50]],chatqueuename:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[53]],lastevent:_0x9e7e[69],holdtime:_0x73e0x1f,agentcalledAt:moment()[_0x9e7e[34]](_0x9e7e[33])});console[_0x9e7e[62]](_0x9e7e[70],_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[53]],_0x9e7e[71],_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x73e0x1e][_0x9e7e[53]],_0x9e7e[22],_0x73e0x21,_0x9e7e[61],_0x73e0x1f);_0x73e0x22=setTimeout(function(){onReportUpdate({uniqueid:_0x73e0x1c[_0x9e7e[48]],count:_0x73e0x20,reason:_0x9e7e[22],lastevent:_0x9e7e[22],agentringnoanswerAt:moment()[_0x9e7e[34]](_0x9e7e[33])});_0x73e0x1f+=_0x73e0x21;onInvite(_0x73e0x1c,_0x73e0x1d,++_0x73e0x1e,_0x73e0x1f,++_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;},_0x73e0x21*1000);if(!timeouts[_0x73e0x1c[_0x9e7e[48]]]){timeouts[_0x73e0x1c[_0x9e7e[48]]]={}};timeouts[_0x73e0x1c[_0x9e7e[48]]][_0x9e7e[22]]=_0x73e0x22;timeouts[_0x73e0x1c[_0x9e7e[48]]][_0x9e7e[23]]=_0x73e0x12;}else {onInvite(_0x73e0x1c,_0x73e0x1d,++_0x73e0x1e,_0x73e0x1f,_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;};break ;;case _0x9e7e[79]:_0x73e0x21=(((_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[22]]-_0x73e0x1f)>_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[22]])?_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[22]]:(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[22]]-_0x73e0x1f));var _0x73e0x24=[];_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x9e7e[77]](function(_0x73e0x25){if(_0x73e0x25[_0x9e7e[67]]){_0x73e0x24[_0x9e7e[76]]({uniqueid:_0x73e0x1c[_0x9e7e[48]],chatroomid:_0x73e0x16[_0x9e7e[50]],sorting:_0x73e0x20,subject:_0x73e0x1c[_0x9e7e[73]],timeslot:_0x73e0x21,from:_0x73e0x1c[_0x9e7e[74]],attachment:_0x73e0x1c[_0x9e7e[75]],accountname:_0x73e0x1c[_0x9e7e[53]],accountaddress:_0x73e0x1c[_0x9e7e[54]],application:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[68]],fullname:_0x73e0x25[_0x9e7e[36]],membername:_0x73e0x25[_0x9e7e[53]],agentid:_0x73e0x25[_0x9e7e[50]],chatqueuename:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[53]],lastevent:_0x9e7e[69],holdtime:_0x73e0x1f,agentcalledAt:moment()[_0x9e7e[34]](_0x9e7e[33]),visitorname:_0x73e0x1c[_0x9e7e[36]],visitoremail:_0x73e0x1c[_0x9e7e[52]],websitename:_0x73e0x1c[_0x9e7e[53]],websiteid:_0x73e0x1c[_0x9e7e[50]],websiteaddress:_0x73e0x1c[_0x9e7e[54]]})}});if(_0x73e0x24[_0x9e7e[45]]&&onInterval(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]?_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[65]])){onReport(_0x73e0x24,true);_0x73e0x22=setTimeout(function(){console[_0x9e7e[62]](_0x9e7e[78],_0x73e0x20);onReportUpdate({uniqueid:_0x73e0x1c[_0x9e7e[48]],count:_0x73e0x20,reason:_0x9e7e[22],lastevent:_0x9e7e[22],agentringnoanswerAt:moment()[_0x9e7e[34]](_0x9e7e[33])});_0x73e0x1f+=_0x73e0x21;_0x73e0x1e+=_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[66]][_0x9e7e[45]];onInvite(_0x73e0x1c,_0x73e0x1d,_0x73e0x1e,_0x73e0x1f,++_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;},_0x73e0x21*1000);if(!timeouts[_0x73e0x1c[_0x9e7e[48]]]){timeouts[_0x73e0x1c[_0x9e7e[48]]]={}};timeouts[_0x73e0x1c[_0x9e7e[48]]][_0x9e7e[22]]=_0x73e0x22;timeouts[_0x73e0x1c[_0x9e7e[48]]][_0x9e7e[23]]=_0x73e0x12;}else {console[_0x9e7e[62]](_0x9e7e[70],_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[9]][_0x9e7e[53]],_0x9e7e[22],_0x73e0x21,_0x9e7e[61],_0x73e0x1f);onInvite(_0x73e0x1c,++_0x73e0x1d,0,0,_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;};break ;;default:console[_0x9e7e[24]](_0x9e7e[80]);;};}else {onInvite(_0x73e0x1c,++_0x73e0x1d,0,0,_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;};}else {_0x73e0x21=_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[22]];if(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[14]][_0x9e7e[67]]&&onInterval(_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]?_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[11]]:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[65]])){onReport({uniqueid:_0x73e0x1c[_0x9e7e[48]],chatroomid:_0x73e0x16[_0x9e7e[50]],sorting:_0x73e0x20,subject:_0x73e0x1c[_0x9e7e[73]],timeslot:_0x73e0x21,from:_0x73e0x1c[_0x9e7e[74]],attachment:_0x73e0x1c[_0x9e7e[75]],accountname:_0x73e0x1c[_0x9e7e[53]],accountaddress:_0x73e0x1c[_0x9e7e[54]],application:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[68]],fullname:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[14]][_0x9e7e[36]],membername:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[14]][_0x9e7e[53]],agentid:_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[14]][_0x9e7e[50]],lastevent:_0x9e7e[69],holdtime:_0x73e0x1f,agentcalledAt:moment()[_0x9e7e[34]](_0x9e7e[33]),visitorname:_0x73e0x1c[_0x9e7e[36]],visitoremail:_0x73e0x1c[_0x9e7e[52]],websitename:_0x73e0x1c[_0x9e7e[53]],websiteid:_0x73e0x1c[_0x9e7e[50]],websiteaddress:_0x73e0x1c[_0x9e7e[54]]});console[_0x9e7e[62]](_0x9e7e[71],_0x73e0x1c[_0x9e7e[46]][_0x73e0x1d][_0x9e7e[14]][_0x9e7e[53]],_0x9e7e[22],_0x73e0x21,_0x9e7e[61],_0x73e0x1f);_0x73e0x22=setTimeout(function(){onReportUpdate({uniqueid:_0x73e0x1c[_0x9e7e[48]],count:_0x73e0x20,reason:_0x9e7e[22],lastevent:_0x9e7e[22],agentringnoanswerAt:moment()[_0x9e7e[34]](_0x9e7e[33])});onInvite(_0x73e0x1c,++_0x73e0x1d,0,0,_0x73e0x20,_0x73e0x16,_0x73e0x12);return ;},_0x73e0x21*1000);if(!timeouts[_0x73e0x1c[_0x9e7e[48]]]){timeouts[_0x73e0x1c[_0x9e7e[48]]]={}};timeouts[_0x73e0x1c[_0x9e7e[48]]][_0x9e7e[22]]=_0x73e0x22;timeouts[_0x73e0x1c[_0x9e7e[48]]][_0x9e7e[23]]=_0x73e0x12;}else {onInvite(_0x73e0x1c,++_0x73e0x1d,0,0,++_0x73e0x20,_0x73e0x16,_0x73e0x12);return;};};}function onReport(_0x73e0x27,_0x73e0x28){if(_0x73e0x28){ReportChat[_0x9e7e[82]](_0x73e0x27,{individualHooks:true})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)})}else {ReportChat[_0x9e7e[43]](_0x73e0x27)[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)})}}function onReportSession(_0x73e0x27){ReportChatSession[_0x9e7e[84]]({where:{uniqueid:_0x73e0x27[_0x9e7e[21]]},defaults:_0x73e0x27})[_0x9e7e[83]](function(ReportChatSession,_0x73e0x2a){if(!_0x73e0x2a){ReportChatSession[_0x9e7e[27]](_0x73e0x27,{individualHooks:true})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)})}})}function onReportUpdate(_0x73e0x27){ReportChat[_0x9e7e[27]](_0x73e0x27,{where:{uniqueid:_0x73e0x27[_0x9e7e[21]],sorting:_0x73e0x27[_0x9e7e[78]]},individualHooks:true})[_0x9e7e[25]](function(_0x73e0x15){console[_0x9e7e[24]](_0x73e0x15)})}function onInterval(_0x73e0x2d){if(_[_0x9e7e[85]](_0x73e0x2d)){for(var _0x73e0x1d=0;_0x73e0x1d<_0x73e0x2d[_0x9e7e[86]][_0x9e7e[45]];_0x73e0x1d++){if(!onCheckInterval(_0x73e0x2d[_0x9e7e[86]][_0x73e0x1d][_0x9e7e[65]])){return false}};return true;}else {return onCheckInterval(_0x73e0x2d)}}function onCheckInterval(_0x73e0x2d){var _0x73e0x2f=[_0x9e7e[87],_0x9e7e[88],_0x9e7e[89],_0x9e7e[90],_0x9e7e[91],_0x9e7e[92],_0x9e7e[93]];var _0x73e0x30=[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];var _0x73e0x31=[_0x9e7e[94],_0x9e7e[95],_0x9e7e[96],_0x9e7e[97],_0x9e7e[98],_0x9e7e[99],_0x9e7e[100],_0x9e7e[101],_0x9e7e[102],_0x9e7e[103],_0x9e7e[104],_0x9e7e[105]];var _0x73e0x1d,_0x73e0x32;var _0x73e0x33=_0x73e0x2d[_0x9e7e[107]](_0x9e7e[106])[0];var _0x73e0x34=_0x73e0x2d[_0x9e7e[107]](_0x9e7e[106])[1];var _0x73e0x35=_0x73e0x2d[_0x9e7e[107]](_0x9e7e[106])[2];var _0x73e0x36=_0x73e0x2d[_0x9e7e[107]](_0x9e7e[106])[3];if(_0x73e0x33!==_0x9e7e[108]){var _0x73e0x37=moment()[_0x9e7e[34]](_0x9e7e[109]);var _0x73e0x38=_0x73e0x33[_0x9e7e[107]](_0x9e7e[110])[0];var _0x73e0x39=_0x73e0x33[_0x9e7e[107]](_0x9e7e[110])[1];if((_0x73e0x37<_0x73e0x38)||(_0x73e0x37>_0x73e0x39)){console[_0x9e7e[62]](_0x9e7e[111]);return false;};};if(_0x73e0x34!==_0x9e7e[108]){var _0x73e0x3a=_0x73e0x2f[moment()[_0x9e7e[112]]()];var _0x73e0x3b=_[_0x9e7e[113]](_0x73e0x2f,_0x73e0x34[_0x9e7e[107]](_0x9e7e[110])[0]);var _0x73e0x3c=_[_0x9e7e[113]](_0x73e0x2f,_0x73e0x34[_0x9e7e[107]](_0x9e7e[110])[1]);for(_0x73e0x1d=0;_0x73e0x1d<_0x73e0x3b;_0x73e0x1d++){_0x73e0x32=_0x73e0x2f[_0x9e7e[114]]();_0x73e0x2f[_0x9e7e[76]](_0x73e0x32);};_0x73e0x3b=_[_0x9e7e[113]](_0x73e0x2f,_0x73e0x34[_0x9e7e[107]](_0x9e7e[110])[0]);_0x73e0x3c=_[_0x9e7e[113]](_0x73e0x2f,_0x73e0x34[_0x9e7e[107]](_0x9e7e[110])[1])+1;_0x73e0x2f=_0x73e0x2f[_0x9e7e[115]](_0x73e0x3b,_0x73e0x3c);if(!_[_0x9e7e[116]](_0x73e0x2f,_0x73e0x3a)){console[_0x9e7e[62]](_0x9e7e[117]);return false;};};if(_0x73e0x35!==_0x9e7e[108]){var _0x73e0x3d=moment()[_0x9e7e[118]]();var _0x73e0x3e=_[_0x9e7e[113]](_0x73e0x30,parseInt(_0x73e0x35[_0x9e7e[107]](_0x9e7e[110])[0],10));var _0x73e0x3f=_[_0x9e7e[113]](_0x73e0x30,parseInt(_0x73e0x35[_0x9e7e[107]](_0x9e7e[110])[1]));for(_0x73e0x1d=0;_0x73e0x1d<_0x73e0x3e;_0x73e0x1d++){_0x73e0x32=_0x73e0x30[_0x9e7e[114]]();_0x73e0x30[_0x9e7e[76]](_0x73e0x32);};_0x73e0x3e=_[_0x9e7e[113]](_0x73e0x30,parseInt(_0x73e0x35[_0x9e7e[107]](_0x9e7e[110])[0],10));_0x73e0x3f=_[_0x9e7e[113]](_0x73e0x30,parseInt(_0x73e0x35[_0x9e7e[107]](_0x9e7e[110])[1]),10)+1;_0x73e0x30=_0x73e0x30[_0x9e7e[115]](_0x73e0x3e,_0x73e0x3f);if(!_[_0x9e7e[116]](_0x73e0x30,_0x73e0x3d)){console[_0x9e7e[62]](_0x9e7e[119]);return false;};};if(_0x73e0x36!==_0x9e7e[108]){var _0x73e0x40=_0x73e0x31[moment()[_0x9e7e[120]]()];var _0x73e0x41=_[_0x9e7e[113]](_0x73e0x31,_0x73e0x36[_0x9e7e[107]](_0x9e7e[110])[0]);var _0x73e0x42=_[_0x9e7e[113]](_0x73e0x31,_0x73e0x36[_0x9e7e[107]](_0x9e7e[110])[1]);for(_0x73e0x1d=0;_0x73e0x1d<_0x73e0x41;_0x73e0x1d++){_0x73e0x32=_0x73e0x31[_0x9e7e[114]]();_0x73e0x31[_0x9e7e[76]](_0x73e0x32);};_0x73e0x41=_[_0x9e7e[113]](_0x73e0x31,_0x73e0x36[_0x9e7e[107]](_0x9e7e[110])[0]);_0x73e0x42=_[_0x9e7e[113]](_0x73e0x31,_0x73e0x36[_0x9e7e[107]](_0x9e7e[110])[1])+1;_0x73e0x31=_0x73e0x31[_0x9e7e[115]](_0x73e0x41,_0x73e0x42);if(!_[_0x9e7e[116]](_0x73e0x31,_0x73e0x40)){console[_0x9e7e[62]](_0x9e7e[121]);return false;};};console[_0x9e7e[62]](_0x9e7e[122]);return true;}
\ No newline at end of file
+var _0x78dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x64\x35","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x55\x73\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x63\x68\x61\x74","\x70\x72\x6F\x63\x65\x73\x73","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x63\x68\x61\x6E\x67\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x6F\x6E\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6F\x70\x65\x6E","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x61\x67\x65\x6E\x74\x69\x64","\x61\x64\x64\x55\x73\x65\x72","\x63\x68\x61\x74\x72\x6F\x6F\x6D\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x68\x61\x74\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x61\x76\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x72\x65\x61\x74\x65","\x4E\x6F\x20\x41\x76\x61\x69\x6C\x61\x62\x6C\x65\x20\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x44\x69\x61\x6C\x50\x6C\x61\x6E\x20\x65\x6E\x64\x65\x64\x2E\x2E","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x49\x64","\x64\x61\x74\x61","\x69\x64","\x6D\x65\x72\x67\x65","\x65\x6D\x61\x69\x6C","\x6E\x61\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x73\x6F\x72\x74\x42\x79","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x76\x69\x74\x65","\x69","\x6A","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x6C\x6F\x67","\x74\x72\x75\x65","\x63\x6F\x75\x6E\x74\x42\x79","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x55\x73\x65\x72\x73","\x6F\x6E\x6C\x69\x6E\x65","\x61\x70\x70","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x75\x6E\x74","\x62\x65\x65\x70\x61\x6C\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x73\x74\x72\x61\x74\x65\x67\x79","\x73\x74\x72\x61\x74\x65\x67\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x69\x73\x4F\x62\x6A\x65\x63\x74","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x75\x6E","\x6D\x6F\x6E","\x74\x75\x65","\x77\x65\x64","\x74\x68\x75","\x66\x72\x69","\x73\x61\x74","\x6A\x61\x6E","\x66\x65\x62","\x6D\x61\x72","\x61\x70\x72","\x6D\x61\x79","\x6A\x75\x6E","\x6A\x75\x6C","\x61\x75\x67","\x73\x65\x70","\x6F\x63\x74","\x6E\x6F\x76","\x64\x65\x63","\x2C","\x73\x70\x6C\x69\x74","\x2A","\x48\x48\x3A\x6D\x6D","\x2D","\x54\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x79","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x68\x69\x66\x74","\x73\x6C\x69\x63\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x44\x57\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x74\x65","\x44\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x6D\x6F\x6E\x74\x68","\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x49\x4E\x54\x45\x52\x56\x41\x4C\x20\x4F\x4B"];_0x78dc[0];var _=require(_0x78dc[1]);var moment=require(_0x78dc[2]);var md5=require(_0x78dc[3]);var ChatApplication=require(_0x78dc[5])[_0x78dc[4]];var ChatWebsite=require(_0x78dc[5])[_0x78dc[6]];var ChatVisitor=require(_0x78dc[5])[_0x78dc[7]];var ChatMessage=require(_0x78dc[5])[_0x78dc[8]];var ChatQueue=require(_0x78dc[5])[_0x78dc[9]];var ChatRoom=require(_0x78dc[5])[_0x78dc[10]];var Interval=require(_0x78dc[5])[_0x78dc[11]];var ReportChatSession=require(_0x78dc[5])[_0x78dc[12]];var ReportChat=require(_0x78dc[5])[_0x78dc[13]];var User=require(_0x78dc[5])[_0x78dc[14]];var timeouts={};module[_0x78dc[15]]=function(_0x34e7xf){var _0x34e7x10=_0x34e7xf[_0x78dc[16]]();_0x34e7x10[_0x78dc[18]](_0x78dc[17],20,function(_0x34e7x11,_0x34e7x12){onProcess(_0x34e7x11,_0x34e7x12)});ReportChat[_0x78dc[39]](function(_0x34e7x13){var _0x34e7x14;if(_0x34e7x13[_0x78dc[20]](_0x78dc[19])){if(timeouts[_0x34e7x13[_0x78dc[21]]]){clearTimeout(timeouts[_0x34e7x13[_0x78dc[21]]][_0x78dc[22]]);timeouts[_0x34e7x13[_0x78dc[21]]][_0x78dc[23]]();delete timeouts[_0x34e7x13[_0x78dc[21]]];};ChatRoom[_0x78dc[32]](_0x34e7x13[_0x78dc[31]])[_0x78dc[28]](function(_0x34e7x16){_0x34e7x14=_0x34e7x16;_0x34e7x16[_0x78dc[30]](_0x34e7x13[_0x78dc[29]],{individualHooks:true});})[_0x78dc[28]](function(){_0x34e7x14[_0x78dc[27]]({status:_0x78dc[26]})})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)});ReportChat[_0x78dc[27]]({agentringnoanswerAt:moment()[_0x78dc[34]](_0x78dc[33]),reason:_0x78dc[35],lastevent:_0x78dc[35]},{where:{uniqueid:_0x34e7x13[_0x78dc[21]],reason:null},individualHooks:true})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)});ReportChatSession[_0x78dc[27]]({chatleaveAt:moment()[_0x78dc[34]](_0x78dc[33]),agentid:_0x34e7x13[_0x78dc[29]],fullname:_0x34e7x13[_0x78dc[36]],membername:_0x34e7x13[_0x78dc[37]],chatqueuename:_0x34e7x13[_0x78dc[38]]},{where:{uniqueid:_0x34e7x13[_0x78dc[21]]},individualHooks:true})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)});};});ChatVisitor[_0x78dc[40]](function(_0x34e7x13){onSave(_0x34e7x10,_0x34e7x13)});};function onSave(_0x34e7xf,_0x34e7x13,_0x34e7x18){_0x34e7xf[_0x78dc[43]](_0x78dc[17],_0x34e7x13[_0x78dc[42]])[_0x78dc[41]]()}function onProcess(_0x34e7x11,_0x34e7x12){ChatWebsite[_0x78dc[32]](_0x34e7x11[_0x78dc[49]].ChatWebsiteId,{include:[{model:ChatApplication,include:[{model:ChatQueue,include:[{model:User}]},{model:User},{model:Interval,include:[{all:true}]}]}]})[_0x78dc[28]](function(ChatWebsite){if(!ChatWebsite){_0x34e7x12( new Error(_0x78dc[44]));return ;};if(!ChatWebsite[_0x78dc[46]][_0x78dc[45]]){_0x34e7x12( new Error(_0x78dc[47]));return ;};_0x34e7x11[_0x78dc[49]][_0x78dc[48]]=_0x34e7x11[_0x78dc[49]][_0x78dc[50]];var _0x34e7x1a=_[_0x78dc[51]](_0x34e7x11[_0x78dc[49]],ChatWebsite[_0x78dc[42]]);ChatRoom[_0x78dc[43]]({type:_0x78dc[57],ChatVisitorId:_0x34e7x1a[_0x78dc[48]],ChatWebsiteId:_0x34e7x1a[_0x78dc[50]]},{include:[{all:true}]})[_0x78dc[28]](function(_0x34e7x16){onReportSession({uniqueid:_0x34e7x1a[_0x78dc[48]],chatroomid:_0x34e7x16[_0x78dc[50]],visitorname:_0x34e7x1a[_0x78dc[36]],visitoremail:_0x34e7x1a[_0x78dc[52]],websitename:_0x34e7x1a[_0x78dc[53]],websiteid:_0x34e7x1a[_0x78dc[50]],websiteaddress:_0x34e7x1a[_0x78dc[54]],chatjoinAt:moment()[_0x78dc[34]](_0x78dc[33])});_0x34e7x1a[_0x78dc[46]]=_[_0x78dc[56]](_0x34e7x1a.ChatApplications,_0x78dc[55]);onInvite(_0x34e7x1a,0,0,0,0,_0x34e7x16,_0x34e7x12);})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)});})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)})}function onInvite(_0x34e7x1c,_0x34e7x1d,_0x34e7x1e,_0x34e7x1f,_0x34e7x20,_0x34e7x16,_0x34e7x12){console[_0x78dc[62]](_0x78dc[58],_0x78dc[59],_0x34e7x1d,_0x78dc[60],_0x34e7x1e,_0x78dc[61],_0x34e7x1f);var _0x34e7x21=0;var _0x34e7x22;if(_0x34e7x1d===_0x34e7x1c[_0x78dc[46]][_0x78dc[45]]){console[_0x78dc[24]](_0x78dc[47]);onReportSession({uniqueid:_0x34e7x1c[_0x78dc[48]],mailunmanagedAt:moment()[_0x78dc[34]](_0x78dc[33]),mailleaveAt:moment()[_0x78dc[34]](_0x78dc[33])});_0x34e7x12( new Error(_0x78dc[47]));return ;};if(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]]){var _0x34e7x23=_[_0x78dc[64]](_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]].Users,{online:true})[_0x78dc[63]];if(_0x34e7x23&&onInterval(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]?_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[65]])){if(_0x34e7x1e===_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x78dc[45]]){if(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[22]]>_0x34e7x1f){onInvite(_0x34e7x1c,_0x34e7x1d,0,_0x34e7x1f,_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;}else {onInvite(_0x34e7x1c,++_0x34e7x1d,0,0,_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;}};switch(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[81]]){case _0x78dc[72]:if(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x34e7x1e][_0x78dc[67]]&&onInterval(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]?_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[65]])){_0x34e7x21=(((_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[22]]-_0x34e7x1f)>_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[22]])?_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[22]]:(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[22]]-_0x34e7x1f));onReport({uniqueid:_0x34e7x1c[_0x78dc[48]],chatroomid:_0x34e7x16[_0x78dc[50]],visitorname:_0x34e7x1c[_0x78dc[36]],visitoremail:_0x34e7x1c[_0x78dc[52]],websitename:_0x34e7x1c[_0x78dc[53]],websiteid:_0x34e7x1c[_0x78dc[50]],websiteaddress:_0x34e7x1c[_0x78dc[54]],sorting:_0x34e7x20,timeslot:_0x34e7x21,application:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[68]],fullname:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x34e7x1e][_0x78dc[36]],membername:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x34e7x1e][_0x78dc[53]],agentid:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x34e7x1e][_0x78dc[50]],chatqueuename:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[53]],lastevent:_0x78dc[69],holdtime:_0x34e7x1f,agentcalledAt:moment()[_0x78dc[34]](_0x78dc[33])});console[_0x78dc[62]](_0x78dc[70],_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[53]],_0x78dc[71],_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x34e7x1e][_0x78dc[53]],_0x78dc[22],_0x34e7x21,_0x78dc[61],_0x34e7x1f);_0x34e7x22=setTimeout(function(){onReportUpdate({uniqueid:_0x34e7x1c[_0x78dc[48]],count:_0x34e7x20,reason:_0x78dc[22],lastevent:_0x78dc[22],agentringnoanswerAt:moment()[_0x78dc[34]](_0x78dc[33])});_0x34e7x1f+=_0x34e7x21;onInvite(_0x34e7x1c,_0x34e7x1d,++_0x34e7x1e,_0x34e7x1f,++_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;},_0x34e7x21*1000);if(!timeouts[_0x34e7x1c[_0x78dc[48]]]){timeouts[_0x34e7x1c[_0x78dc[48]]]={}};timeouts[_0x34e7x1c[_0x78dc[48]]][_0x78dc[22]]=_0x34e7x22;timeouts[_0x34e7x1c[_0x78dc[48]]][_0x78dc[23]]=_0x34e7x12;}else {onInvite(_0x34e7x1c,_0x34e7x1d,++_0x34e7x1e,_0x34e7x1f,_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;};break ;;case _0x78dc[79]:_0x34e7x21=(((_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[22]]-_0x34e7x1f)>_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[22]])?_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[22]]:(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[22]]-_0x34e7x1f));var _0x34e7x24=[];_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x78dc[77]](function(_0x34e7x25){if(_0x34e7x25[_0x78dc[67]]){_0x34e7x24[_0x78dc[76]]({uniqueid:_0x34e7x1c[_0x78dc[48]],chatroomid:_0x34e7x16[_0x78dc[50]],sorting:_0x34e7x20,subject:_0x34e7x1c[_0x78dc[73]],timeslot:_0x34e7x21,from:_0x34e7x1c[_0x78dc[74]],attachment:_0x34e7x1c[_0x78dc[75]],accountname:_0x34e7x1c[_0x78dc[53]],accountaddress:_0x34e7x1c[_0x78dc[54]],application:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[68]],fullname:_0x34e7x25[_0x78dc[36]],membername:_0x34e7x25[_0x78dc[53]],agentid:_0x34e7x25[_0x78dc[50]],chatqueuename:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[53]],lastevent:_0x78dc[69],holdtime:_0x34e7x1f,agentcalledAt:moment()[_0x78dc[34]](_0x78dc[33]),visitorname:_0x34e7x1c[_0x78dc[36]],visitoremail:_0x34e7x1c[_0x78dc[52]],websitename:_0x34e7x1c[_0x78dc[53]],websiteid:_0x34e7x1c[_0x78dc[50]],websiteaddress:_0x34e7x1c[_0x78dc[54]]})}});if(_0x34e7x24[_0x78dc[45]]&&onInterval(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]?_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[65]])){onReport(_0x34e7x24,true);_0x34e7x22=setTimeout(function(){console[_0x78dc[62]](_0x78dc[78],_0x34e7x20);onReportUpdate({uniqueid:_0x34e7x1c[_0x78dc[48]],count:_0x34e7x20,reason:_0x78dc[22],lastevent:_0x78dc[22],agentringnoanswerAt:moment()[_0x78dc[34]](_0x78dc[33])});_0x34e7x1f+=_0x34e7x21;_0x34e7x1e+=_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[66]][_0x78dc[45]];onInvite(_0x34e7x1c,_0x34e7x1d,_0x34e7x1e,_0x34e7x1f,++_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;},_0x34e7x21*1000);if(!timeouts[_0x34e7x1c[_0x78dc[48]]]){timeouts[_0x34e7x1c[_0x78dc[48]]]={}};timeouts[_0x34e7x1c[_0x78dc[48]]][_0x78dc[22]]=_0x34e7x22;timeouts[_0x34e7x1c[_0x78dc[48]]][_0x78dc[23]]=_0x34e7x12;}else {console[_0x78dc[62]](_0x78dc[70],_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[9]][_0x78dc[53]],_0x78dc[22],_0x34e7x21,_0x78dc[61],_0x34e7x1f);onInvite(_0x34e7x1c,++_0x34e7x1d,0,0,_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;};break ;;default:console[_0x78dc[24]](_0x78dc[80]);;};}else {onInvite(_0x34e7x1c,++_0x34e7x1d,0,0,_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;};}else {_0x34e7x21=_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[22]];if(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[14]][_0x78dc[67]]&&onInterval(_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]?_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[11]]:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[65]])){onReport({uniqueid:_0x34e7x1c[_0x78dc[48]],chatroomid:_0x34e7x16[_0x78dc[50]],sorting:_0x34e7x20,subject:_0x34e7x1c[_0x78dc[73]],timeslot:_0x34e7x21,from:_0x34e7x1c[_0x78dc[74]],attachment:_0x34e7x1c[_0x78dc[75]],accountname:_0x34e7x1c[_0x78dc[53]],accountaddress:_0x34e7x1c[_0x78dc[54]],application:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[68]],fullname:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[14]][_0x78dc[36]],membername:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[14]][_0x78dc[53]],agentid:_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[14]][_0x78dc[50]],lastevent:_0x78dc[69],holdtime:_0x34e7x1f,agentcalledAt:moment()[_0x78dc[34]](_0x78dc[33]),visitorname:_0x34e7x1c[_0x78dc[36]],visitoremail:_0x34e7x1c[_0x78dc[52]],websitename:_0x34e7x1c[_0x78dc[53]],websiteid:_0x34e7x1c[_0x78dc[50]],websiteaddress:_0x34e7x1c[_0x78dc[54]]});console[_0x78dc[62]](_0x78dc[71],_0x34e7x1c[_0x78dc[46]][_0x34e7x1d][_0x78dc[14]][_0x78dc[53]],_0x78dc[22],_0x34e7x21,_0x78dc[61],_0x34e7x1f);_0x34e7x22=setTimeout(function(){onReportUpdate({uniqueid:_0x34e7x1c[_0x78dc[48]],count:_0x34e7x20,reason:_0x78dc[22],lastevent:_0x78dc[22],agentringnoanswerAt:moment()[_0x78dc[34]](_0x78dc[33])});onInvite(_0x34e7x1c,++_0x34e7x1d,0,0,_0x34e7x20,_0x34e7x16,_0x34e7x12);return ;},_0x34e7x21*1000);if(!timeouts[_0x34e7x1c[_0x78dc[48]]]){timeouts[_0x34e7x1c[_0x78dc[48]]]={}};timeouts[_0x34e7x1c[_0x78dc[48]]][_0x78dc[22]]=_0x34e7x22;timeouts[_0x34e7x1c[_0x78dc[48]]][_0x78dc[23]]=_0x34e7x12;}else {onInvite(_0x34e7x1c,++_0x34e7x1d,0,0,++_0x34e7x20,_0x34e7x16,_0x34e7x12);return;};};}function onReport(_0x34e7x27,_0x34e7x28){if(_0x34e7x28){ReportChat[_0x78dc[82]](_0x34e7x27,{individualHooks:true})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)})}else {ReportChat[_0x78dc[43]](_0x34e7x27)[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)})}}function onReportSession(_0x34e7x27){ReportChatSession[_0x78dc[84]]({where:{uniqueid:_0x34e7x27[_0x78dc[21]]},defaults:_0x34e7x27})[_0x78dc[83]](function(ReportChatSession,_0x34e7x2a){if(!_0x34e7x2a){ReportChatSession[_0x78dc[27]](_0x34e7x27,{individualHooks:true})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)})}})}function onReportUpdate(_0x34e7x27){ReportChat[_0x78dc[27]](_0x34e7x27,{where:{uniqueid:_0x34e7x27[_0x78dc[21]],sorting:_0x34e7x27[_0x78dc[78]]},individualHooks:true})[_0x78dc[25]](function(_0x34e7x15){console[_0x78dc[24]](_0x34e7x15)})}function onInterval(_0x34e7x2d){if(_[_0x78dc[85]](_0x34e7x2d)){for(var _0x34e7x1d=0;_0x34e7x1d<_0x34e7x2d[_0x78dc[86]][_0x78dc[45]];_0x34e7x1d++){if(!onCheckInterval(_0x34e7x2d[_0x78dc[86]][_0x34e7x1d][_0x78dc[65]])){return false}};return true;}else {return onCheckInterval(_0x34e7x2d)}}function onCheckInterval(_0x34e7x2d){var _0x34e7x2f=[_0x78dc[87],_0x78dc[88],_0x78dc[89],_0x78dc[90],_0x78dc[91],_0x78dc[92],_0x78dc[93]];var _0x34e7x30=[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];var _0x34e7x31=[_0x78dc[94],_0x78dc[95],_0x78dc[96],_0x78dc[97],_0x78dc[98],_0x78dc[99],_0x78dc[100],_0x78dc[101],_0x78dc[102],_0x78dc[103],_0x78dc[104],_0x78dc[105]];var _0x34e7x1d,_0x34e7x32;var _0x34e7x33=_0x34e7x2d[_0x78dc[107]](_0x78dc[106])[0];var _0x34e7x34=_0x34e7x2d[_0x78dc[107]](_0x78dc[106])[1];var _0x34e7x35=_0x34e7x2d[_0x78dc[107]](_0x78dc[106])[2];var _0x34e7x36=_0x34e7x2d[_0x78dc[107]](_0x78dc[106])[3];if(_0x34e7x33!==_0x78dc[108]){var _0x34e7x37=moment()[_0x78dc[34]](_0x78dc[109]);var _0x34e7x38=_0x34e7x33[_0x78dc[107]](_0x78dc[110])[0];var _0x34e7x39=_0x34e7x33[_0x78dc[107]](_0x78dc[110])[1];if((_0x34e7x37<_0x34e7x38)||(_0x34e7x37>_0x34e7x39)){console[_0x78dc[62]](_0x78dc[111]);return false;};};if(_0x34e7x34!==_0x78dc[108]){var _0x34e7x3a=_0x34e7x2f[moment()[_0x78dc[112]]()];var _0x34e7x3b=_[_0x78dc[113]](_0x34e7x2f,_0x34e7x34[_0x78dc[107]](_0x78dc[110])[0]);var _0x34e7x3c=_[_0x78dc[113]](_0x34e7x2f,_0x34e7x34[_0x78dc[107]](_0x78dc[110])[1]);for(_0x34e7x1d=0;_0x34e7x1d<_0x34e7x3b;_0x34e7x1d++){_0x34e7x32=_0x34e7x2f[_0x78dc[114]]();_0x34e7x2f[_0x78dc[76]](_0x34e7x32);};_0x34e7x3b=_[_0x78dc[113]](_0x34e7x2f,_0x34e7x34[_0x78dc[107]](_0x78dc[110])[0]);_0x34e7x3c=_[_0x78dc[113]](_0x34e7x2f,_0x34e7x34[_0x78dc[107]](_0x78dc[110])[1])+1;_0x34e7x2f=_0x34e7x2f[_0x78dc[115]](_0x34e7x3b,_0x34e7x3c);if(!_[_0x78dc[116]](_0x34e7x2f,_0x34e7x3a)){console[_0x78dc[62]](_0x78dc[117]);return false;};};if(_0x34e7x35!==_0x78dc[108]){var _0x34e7x3d=moment()[_0x78dc[118]]();var _0x34e7x3e=_[_0x78dc[113]](_0x34e7x30,parseInt(_0x34e7x35[_0x78dc[107]](_0x78dc[110])[0],10));var _0x34e7x3f=_[_0x78dc[113]](_0x34e7x30,parseInt(_0x34e7x35[_0x78dc[107]](_0x78dc[110])[1]));for(_0x34e7x1d=0;_0x34e7x1d<_0x34e7x3e;_0x34e7x1d++){_0x34e7x32=_0x34e7x30[_0x78dc[114]]();_0x34e7x30[_0x78dc[76]](_0x34e7x32);};_0x34e7x3e=_[_0x78dc[113]](_0x34e7x30,parseInt(_0x34e7x35[_0x78dc[107]](_0x78dc[110])[0],10));_0x34e7x3f=_[_0x78dc[113]](_0x34e7x30,parseInt(_0x34e7x35[_0x78dc[107]](_0x78dc[110])[1]),10)+1;_0x34e7x30=_0x34e7x30[_0x78dc[115]](_0x34e7x3e,_0x34e7x3f);if(!_[_0x78dc[116]](_0x34e7x30,_0x34e7x3d)){console[_0x78dc[62]](_0x78dc[119]);return false;};};if(_0x34e7x36!==_0x78dc[108]){var _0x34e7x40=_0x34e7x31[moment()[_0x78dc[120]]()];var _0x34e7x41=_[_0x78dc[113]](_0x34e7x31,_0x34e7x36[_0x78dc[107]](_0x78dc[110])[0]);var _0x34e7x42=_[_0x78dc[113]](_0x34e7x31,_0x34e7x36[_0x78dc[107]](_0x78dc[110])[1]);for(_0x34e7x1d=0;_0x34e7x1d<_0x34e7x41;_0x34e7x1d++){_0x34e7x32=_0x34e7x31[_0x78dc[114]]();_0x34e7x31[_0x78dc[76]](_0x34e7x32);};_0x34e7x41=_[_0x78dc[113]](_0x34e7x31,_0x34e7x36[_0x78dc[107]](_0x78dc[110])[0]);_0x34e7x42=_[_0x78dc[113]](_0x34e7x31,_0x34e7x36[_0x78dc[107]](_0x78dc[110])[1])+1;_0x34e7x31=_0x34e7x31[_0x78dc[115]](_0x34e7x41,_0x34e7x42);if(!_[_0x78dc[116]](_0x34e7x31,_0x34e7x40)){console[_0x78dc[62]](_0x78dc[121]);return false;};};console[_0x78dc[62]](_0x78dc[122]);return true;}
\ No newline at end of file
index 5b5ce07..0f0d97d 100644 (file)
@@ -1 +1 @@
-var _0xc083=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x73\x79\x6E\x63","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x45\x76\x65\x6E\x74","\x46\x61\x78\x51\x75\x65\x75\x65","\x6C\x65\x6E\x67\x74\x68","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x55\x4E\x41\x53\x53\x49\x47\x4E\x45\x44","\x46\x41\x58","\x72\x6F\x6F\x6D\x49\x64","\x61\x63\x63\x6F\x75\x6E\x74\x49\x64","\x70\x75\x73\x68","\x44\x69\x61\x6C\x50\x6C\x61\x6E\x20\x65\x6E\x64\x65\x64\x2E\x2E","\x74\x69\x6D\x65\x6F\x75\x74","\x41\x54\x54\x45\x4D\x50\x54","\x69\x64","\x75\x73\x65\x72\x73","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x66\x6F\x72\x45\x61\x63\x68","\x62\x65\x65\x70\x61\x6C\x6C","\x53\x74\x72\x61\x74\x65\x67\x79\x20\x75\x6E\x6B\x6E\x6F\x77\x6E\x2E\x2E","\x6C\x6F\x67","\x73\x74\x72\x61\x74\x65\x67\x79","\x46\x41\x58\x3A\x51\x55\x45\x55\x45\x3A","\x41\x53\x53\x49\x47\x4E\x45\x44","\x46\x41\x58\x3A\x41\x47\x45\x4E\x54\x3A","\x75\x73\x65\x72\x49\x64","\x64\x61\x74\x61","\x61\x67\x65\x6E\x74","\x55\x73\x65\x72\x73","\x71\x75\x65\x75\x65","\x61\x70\x70","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x65\x6D\x69\x74","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x66\x61\x78","\x70\x72\x6F\x63\x65\x73\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2E\x6B\x75\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x71\x75\x65\x72\x79","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E"];_0xc083[0];var _=require(_0xc083[1]);var config=require(_0xc083[2]);var async=require(_0xc083[3]);var sockets={};var User=require(_0xc083[5])[_0xc083[4]];var Event=require(_0xc083[5])[_0xc083[6]];var FaxQueue=require(_0xc083[5])[_0xc083[7]];function invite(_0x9f9dx9,_0x9f9dxa,_0x9f9dxb,_0x9f9dxc,_0x9f9dxd){var _0x9f9dxe=0;var _0x9f9dxf=0;var _0x9f9dx10=[];var _0x9f9dx11=[];if(_0x9f9dxa===_0x9f9dx9[_0xc083[9]][_0xc083[8]]){_0x9f9dx10[_0xc083[14]]({name:_0xc083[10],channel:_0xc083[11],FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxAccountId:_0x9f9dx9[_0xc083[13]]});traceEvent(_0x9f9dx10,function(){});_0x9f9dxd( new Error(_0xc083[15]));return ;};if(_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]){_0x9f9dxf=(((_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]]-_0x9f9dxe)>_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[16]])?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[16]]:(_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]]-_0x9f9dxe));switch(_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[25]]){case _0xc083[20]:_0x9f9dx10[_0xc083[14]]({name:_0xc083[17],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0x9f9dxb][_0xc083[18]],FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]});_0x9f9dx11[_0xc083[14]](_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0x9f9dxb][_0xc083[18]]);break ;;case _0xc083[22]:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0xc083[21]](function(_0x9f9dx12){var _0x9f9dx13={name:_0xc083[17],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx12[_0xc083[18]],FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]};_0x9f9dx10[_0xc083[14]](_0x9f9dx13);_0x9f9dx11[_0xc083[14]](_0x9f9dx12[_0xc083[18]]);});break ;;default:console[_0xc083[24]](_0xc083[23]);;};traceEvent(_0x9f9dx10,function(){emitEvent(_0x9f9dx11,_0xc083[26]+_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]],{timeout:_0x9f9dxf,roomId:_0x9f9dx9[_0xc083[12]]},function(_0x9f9dx14){clearInterval(_0x9f9dx15);clearTimeout(_0x9f9dx16);var _0x9f9dx10=[{name:_0xc083[27],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx14,FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]}];traceEvent(_0x9f9dx10,function(){_0x9f9dxd()});})});}else {_0x9f9dxf=_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]];_0x9f9dx11[_0xc083[14]](_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0x9f9dxb][_0xc083[18]]);_0x9f9dx10=[{name:_0xc083[17],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0x9f9dxb][_0xc083[18]],FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]}];traceEvent(_0x9f9dx10,function(){emitEvent(_0x9f9dx11,_0xc083[28]+_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0x9f9dxb][_0xc083[18]],{timeout:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]],roomId:_0x9f9dx9[_0xc083[12]]},function(_0x9f9dx14){clearInterval(_0x9f9dx15);clearTimeout(_0x9f9dx16);var _0x9f9dx10=[{name:_0xc083[27],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx14,FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]}];traceEvent(_0x9f9dx10,function(){_0x9f9dxd()});})});};var _0x9f9dx15=setInterval(function(){var _0x9f9dxf=0;_0x9f9dxb++;if(_0x9f9dxb===_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0xc083[8]]){_0x9f9dxb=0};if(_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]){_0x9f9dxe+=_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[16]];_0x9f9dxf=(((_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]]-_0x9f9dxe)>_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[16]])?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[16]]:(_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]]-_0x9f9dxe));var _0x9f9dx10=[];var _0x9f9dx11=[];switch(_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[25]]){case _0xc083[20]:var _0x9f9dx13={name:_0xc083[17],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0x9f9dxb][_0xc083[18]],FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]};_0x9f9dx10[_0xc083[14]](_0x9f9dx13);_0x9f9dx11[_0xc083[14]](_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0x9f9dxb][_0xc083[18]]);break ;;case _0xc083[22]:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0xc083[21]](function(_0x9f9dx12){var _0x9f9dx13={name:_0xc083[17],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx12[_0xc083[18]],FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]};_0x9f9dx10[_0xc083[14]](_0x9f9dx13);_0x9f9dx11[_0xc083[14]](_0x9f9dx12[_0xc083[18]]);});break ;;default:console[_0xc083[24]](_0xc083[23]);;};traceEvent(_0x9f9dx10,function(){emitEvent(_0x9f9dx11,_0xc083[26]+_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]],{timeout:_0x9f9dxf,roomId:_0x9f9dx9[_0xc083[12]]},function(_0x9f9dx14){console[_0xc083[24]](_0xc083[29],_0x9f9dx14);clearInterval(_0x9f9dx15);clearTimeout(_0x9f9dx16);var _0x9f9dx10=[{name:_0xc083[27],channel:_0xc083[11],timeout:_0x9f9dxf,UserId:_0x9f9dx14,FaxRoomId:_0x9f9dx9[_0xc083[12]],FaxQueueId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[18]]:null,FaxAccountId:_0x9f9dx9[_0xc083[13]],FaxApplicationId:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[18]]}];traceEvent(_0x9f9dx10,function(){_0x9f9dxd()});})});};},_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]]?_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[16]]*1000:_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]]*1000);var _0x9f9dx16=setTimeout(function(){clearInterval(_0x9f9dx15);invite(_0x9f9dx9,++_0x9f9dxa,0,_0x9f9dxc,_0x9f9dxd);},_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[16]]*1000);}function processing(_0x9f9dx18,_0x9f9dxd,_0x9f9dxc){var _0x9f9dxe=0;var _0x9f9dx19=[function(_0x9f9dx1a){_0x9f9dx1a(null,_0x9f9dx18[_0xc083[30]],_0x9f9dxd,_0x9f9dxc)},function(_0x9f9dx9,_0x9f9dxd,_0x9f9dxc,_0x9f9dx1a){for(var _0x9f9dxa=0;_0x9f9dxa<_0x9f9dx9[_0xc083[9]][_0xc083[8]];_0x9f9dxa++){switch(_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[34]]){case _0xc083[31]:if(!_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]]){_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]]=[]};_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0xc083[14]](_0x9f9dx9[_0xc083[9]][_0x9f9dxa].User);break ;;case _0xc083[33]:for(var _0x9f9dxb=0;_0x9f9dxb<_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[32]][_0xc083[8]];_0x9f9dxb++){if(!_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]]){_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]]=[]};_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[19]][_0xc083[14]](_0x9f9dx9[_0xc083[9]][_0x9f9dxa][_0xc083[7]][_0xc083[32]][_0x9f9dxb]);};break ;;default:;}};_0x9f9dx1a(null,_0x9f9dx9,_0x9f9dxd,_0x9f9dxc);}];async[_0xc083[35]](_0x9f9dx19,function(_0x9f9dx1b,_0x9f9dx9,_0x9f9dxd,_0x9f9dxc){invite(_0x9f9dx9,0,0,_0x9f9dxc,_0x9f9dxd)});}function traceEvent(_0x9f9dx10,_0x9f9dx1d){Event[_0xc083[39]](_0x9f9dx10)[_0xc083[38]](function(){if(_0x9f9dx1d){_0x9f9dx1d()}})[_0xc083[37]](function(_0x9f9dx1b){console[_0xc083[36]](_0x9f9dx1b)})}function emitEvent(_0x9f9dx11,_0x9f9dx1f,_0x9f9dx20,_0x9f9dx1d){_0x9f9dx11[_0xc083[21]](function(_0x9f9dx12){console[_0xc083[24]](_0x9f9dx1f,_0x9f9dx12);if(sockets[_0x9f9dx12]){sockets[_0x9f9dx12][_0xc083[40]](_0x9f9dx1f,_0x9f9dx20,_0x9f9dx1d)};})}module[_0xc083[41]]=function(_0x9f9dxc,_0x9f9dx21){var _0x9f9dx22=_0x9f9dx21[_0xc083[42]]();_0x9f9dx22[_0xc083[44]](_0xc083[43],20,function(_0x9f9dx18,_0x9f9dxd){processing(_0x9f9dx18,_0x9f9dxd,_0x9f9dxc)});require(_0xc083[46])[_0xc083[45]](_0x9f9dx22);_0x9f9dxc[_0xc083[51]](_0xc083[47],function(_0x9f9dx23){if(_0x9f9dx23[_0xc083[49]][_0xc083[48]][_0xc083[29]]){sockets[_0x9f9dx23[_0xc083[49]][_0xc083[48]][_0xc083[29]]]=_0x9f9dx23};_0x9f9dx23[_0xc083[51]](_0xc083[50],function(){if(sockets[_0x9f9dx23[_0xc083[49]][_0xc083[48]][_0xc083[29]]]){delete sockets[_0x9f9dx23[_0xc083[49]][_0xc083[48]][_0xc083[29]]]}});});};
\ No newline at end of file
+var _0xa860=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x73\x79\x6E\x63","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x45\x76\x65\x6E\x74","\x46\x61\x78\x51\x75\x65\x75\x65","\x6C\x65\x6E\x67\x74\x68","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x55\x4E\x41\x53\x53\x49\x47\x4E\x45\x44","\x46\x41\x58","\x72\x6F\x6F\x6D\x49\x64","\x61\x63\x63\x6F\x75\x6E\x74\x49\x64","\x70\x75\x73\x68","\x44\x69\x61\x6C\x50\x6C\x61\x6E\x20\x65\x6E\x64\x65\x64\x2E\x2E","\x74\x69\x6D\x65\x6F\x75\x74","\x41\x54\x54\x45\x4D\x50\x54","\x69\x64","\x75\x73\x65\x72\x73","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x66\x6F\x72\x45\x61\x63\x68","\x62\x65\x65\x70\x61\x6C\x6C","\x53\x74\x72\x61\x74\x65\x67\x79\x20\x75\x6E\x6B\x6E\x6F\x77\x6E\x2E\x2E","\x6C\x6F\x67","\x73\x74\x72\x61\x74\x65\x67\x79","\x46\x41\x58\x3A\x51\x55\x45\x55\x45\x3A","\x41\x53\x53\x49\x47\x4E\x45\x44","\x46\x41\x58\x3A\x41\x47\x45\x4E\x54\x3A","\x75\x73\x65\x72\x49\x64","\x64\x61\x74\x61","\x61\x67\x65\x6E\x74","\x55\x73\x65\x72\x73","\x71\x75\x65\x75\x65","\x61\x70\x70","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x65\x6D\x69\x74","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x66\x61\x78","\x70\x72\x6F\x63\x65\x73\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2E\x6B\x75\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x71\x75\x65\x72\x79","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E"];_0xa860[0];var _=require(_0xa860[1]);var config=require(_0xa860[2]);var async=require(_0xa860[3]);var sockets={};var User=require(_0xa860[5])[_0xa860[4]];var Event=require(_0xa860[5])[_0xa860[6]];var FaxQueue=require(_0xa860[5])[_0xa860[7]];function invite(_0x1100x9,_0x1100xa,_0x1100xb,_0x1100xc,_0x1100xd){var _0x1100xe=0;var _0x1100xf=0;var _0x1100x10=[];var _0x1100x11=[];if(_0x1100xa===_0x1100x9[_0xa860[9]][_0xa860[8]]){_0x1100x10[_0xa860[14]]({name:_0xa860[10],channel:_0xa860[11],FaxRoomId:_0x1100x9[_0xa860[12]],FaxAccountId:_0x1100x9[_0xa860[13]]});traceEvent(_0x1100x10,function(){});_0x1100xd( new Error(_0xa860[15]));return ;};if(_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]){_0x1100xf=(((_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]]-_0x1100xe)>_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[16]])?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[16]]:(_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]]-_0x1100xe));switch(_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[25]]){case _0xa860[20]:_0x1100x10[_0xa860[14]]({name:_0xa860[17],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0x1100xb][_0xa860[18]],FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]});_0x1100x11[_0xa860[14]](_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0x1100xb][_0xa860[18]]);break ;;case _0xa860[22]:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0xa860[21]](function(_0x1100x12){var _0x1100x13={name:_0xa860[17],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x12[_0xa860[18]],FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]};_0x1100x10[_0xa860[14]](_0x1100x13);_0x1100x11[_0xa860[14]](_0x1100x12[_0xa860[18]]);});break ;;default:console[_0xa860[24]](_0xa860[23]);;};traceEvent(_0x1100x10,function(){emitEvent(_0x1100x11,_0xa860[26]+_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]],{timeout:_0x1100xf,roomId:_0x1100x9[_0xa860[12]]},function(_0x1100x14){clearInterval(_0x1100x15);clearTimeout(_0x1100x16);var _0x1100x10=[{name:_0xa860[27],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x14,FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]}];traceEvent(_0x1100x10,function(){_0x1100xd()});})});}else {_0x1100xf=_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]];_0x1100x11[_0xa860[14]](_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0x1100xb][_0xa860[18]]);_0x1100x10=[{name:_0xa860[17],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0x1100xb][_0xa860[18]],FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]}];traceEvent(_0x1100x10,function(){emitEvent(_0x1100x11,_0xa860[28]+_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0x1100xb][_0xa860[18]],{timeout:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]],roomId:_0x1100x9[_0xa860[12]]},function(_0x1100x14){clearInterval(_0x1100x15);clearTimeout(_0x1100x16);var _0x1100x10=[{name:_0xa860[27],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x14,FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]}];traceEvent(_0x1100x10,function(){_0x1100xd()});})});};var _0x1100x15=setInterval(function(){var _0x1100xf=0;_0x1100xb++;if(_0x1100xb===_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0xa860[8]]){_0x1100xb=0};if(_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]){_0x1100xe+=_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[16]];_0x1100xf=(((_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]]-_0x1100xe)>_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[16]])?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[16]]:(_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]]-_0x1100xe));var _0x1100x10=[];var _0x1100x11=[];switch(_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[25]]){case _0xa860[20]:var _0x1100x13={name:_0xa860[17],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0x1100xb][_0xa860[18]],FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]};_0x1100x10[_0xa860[14]](_0x1100x13);_0x1100x11[_0xa860[14]](_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0x1100xb][_0xa860[18]]);break ;;case _0xa860[22]:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0xa860[21]](function(_0x1100x12){var _0x1100x13={name:_0xa860[17],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x12[_0xa860[18]],FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]};_0x1100x10[_0xa860[14]](_0x1100x13);_0x1100x11[_0xa860[14]](_0x1100x12[_0xa860[18]]);});break ;;default:console[_0xa860[24]](_0xa860[23]);;};traceEvent(_0x1100x10,function(){emitEvent(_0x1100x11,_0xa860[26]+_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]],{timeout:_0x1100xf,roomId:_0x1100x9[_0xa860[12]]},function(_0x1100x14){console[_0xa860[24]](_0xa860[29],_0x1100x14);clearInterval(_0x1100x15);clearTimeout(_0x1100x16);var _0x1100x10=[{name:_0xa860[27],channel:_0xa860[11],timeout:_0x1100xf,UserId:_0x1100x14,FaxRoomId:_0x1100x9[_0xa860[12]],FaxQueueId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[18]]:null,FaxAccountId:_0x1100x9[_0xa860[13]],FaxApplicationId:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[18]]}];traceEvent(_0x1100x10,function(){_0x1100xd()});})});};},_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]]?_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[16]]*1000:_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]]*1000);var _0x1100x16=setTimeout(function(){clearInterval(_0x1100x15);invite(_0x1100x9,++_0x1100xa,0,_0x1100xc,_0x1100xd);},_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[16]]*1000);}function processing(_0x1100x18,_0x1100xd,_0x1100xc){var _0x1100xe=0;var _0x1100x19=[function(_0x1100x1a){_0x1100x1a(null,_0x1100x18[_0xa860[30]],_0x1100xd,_0x1100xc)},function(_0x1100x9,_0x1100xd,_0x1100xc,_0x1100x1a){for(var _0x1100xa=0;_0x1100xa<_0x1100x9[_0xa860[9]][_0xa860[8]];_0x1100xa++){switch(_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[34]]){case _0xa860[31]:if(!_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]]){_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]]=[]};_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0xa860[14]](_0x1100x9[_0xa860[9]][_0x1100xa].User);break ;;case _0xa860[33]:for(var _0x1100xb=0;_0x1100xb<_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[32]][_0xa860[8]];_0x1100xb++){if(!_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]]){_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]]=[]};_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[19]][_0xa860[14]](_0x1100x9[_0xa860[9]][_0x1100xa][_0xa860[7]][_0xa860[32]][_0x1100xb]);};break ;;default:;}};_0x1100x1a(null,_0x1100x9,_0x1100xd,_0x1100xc);}];async[_0xa860[35]](_0x1100x19,function(_0x1100x1b,_0x1100x9,_0x1100xd,_0x1100xc){invite(_0x1100x9,0,0,_0x1100xc,_0x1100xd)});}function traceEvent(_0x1100x10,_0x1100x1d){Event[_0xa860[39]](_0x1100x10)[_0xa860[38]](function(){if(_0x1100x1d){_0x1100x1d()}})[_0xa860[37]](function(_0x1100x1b){console[_0xa860[36]](_0x1100x1b)})}function emitEvent(_0x1100x11,_0x1100x1f,_0x1100x20,_0x1100x1d){_0x1100x11[_0xa860[21]](function(_0x1100x12){console[_0xa860[24]](_0x1100x1f,_0x1100x12);if(sockets[_0x1100x12]){sockets[_0x1100x12][_0xa860[40]](_0x1100x1f,_0x1100x20,_0x1100x1d)};})}module[_0xa860[41]]=function(_0x1100xc,_0x1100x21){var _0x1100x22=_0x1100x21[_0xa860[42]]();_0x1100x22[_0xa860[44]](_0xa860[43],20,function(_0x1100x18,_0x1100xd){processing(_0x1100x18,_0x1100xd,_0x1100xc)});require(_0xa860[46])[_0xa860[45]](_0x1100x22);_0x1100xc[_0xa860[51]](_0xa860[47],function(_0x1100x23){if(_0x1100x23[_0xa860[49]][_0xa860[48]][_0xa860[29]]){sockets[_0x1100x23[_0xa860[49]][_0xa860[48]][_0xa860[29]]]=_0x1100x23};_0x1100x23[_0xa860[51]](_0xa860[50],function(){if(sockets[_0x1100x23[_0xa860[49]][_0xa860[48]][_0xa860[29]]]){delete sockets[_0x1100x23[_0xa860[49]][_0xa860[48]][_0xa860[29]]]}});});};
\ No newline at end of file
index ec0f63b..2cb9031 100644 (file)
@@ -1 +1 @@
-var _0xe32a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x55\x73\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x6D\x61\x69\x6C","\x70\x72\x6F\x63\x65\x73\x73","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x63\x68\x61\x6E\x67\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x6F\x6E\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x6D\x61\x69\x6C\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x61\x67\x65\x6E\x74\x69\x64","\x61\x64\x64\x55\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x74\x61\x74\x75\x73","\x4E\x45\x57","\x73\x61\x76\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x72\x65\x61\x74\x65","\x4E\x6F\x20\x41\x76\x61\x69\x6C\x61\x62\x6C\x65\x20\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x44\x69\x61\x6C\x50\x6C\x61\x6E\x20\x65\x6E\x64\x65\x64\x2E\x2E","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x64\x61\x74\x61","\x69\x64","\x6D\x65\x72\x67\x65","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x63\x63","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x73\x6F\x72\x74\x42\x79","\x69\x6E\x76\x69\x74\x65","\x69","\x6A","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x6C\x6F\x67","\x74\x72\x75\x65","\x63\x6F\x75\x6E\x74\x42\x79","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x55\x73\x65\x72\x73","\x6F\x6E\x6C\x69\x6E\x65","\x61\x70\x70","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x75\x6E\x74","\x62\x65\x65\x70\x61\x6C\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x73\x74\x72\x61\x74\x65\x67\x79","\x73\x74\x72\x61\x74\x65\x67\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x69\x73\x4F\x62\x6A\x65\x63\x74","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x75\x6E","\x6D\x6F\x6E","\x74\x75\x65","\x77\x65\x64","\x74\x68\x75","\x66\x72\x69","\x73\x61\x74","\x6A\x61\x6E","\x66\x65\x62","\x6D\x61\x72","\x61\x70\x72","\x6D\x61\x79","\x6A\x75\x6E","\x6A\x75\x6C","\x61\x75\x67","\x73\x65\x70","\x6F\x63\x74","\x6E\x6F\x76","\x64\x65\x63","\x2C","\x73\x70\x6C\x69\x74","\x2A","\x48\x48\x3A\x6D\x6D","\x2D","\x54\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x79","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x68\x69\x66\x74","\x73\x6C\x69\x63\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x44\x57\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x74\x65","\x44\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x6D\x6F\x6E\x74\x68","\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x49\x4E\x54\x45\x52\x56\x41\x4C\x20\x4F\x4B"];_0xe32a[0];var _=require(_0xe32a[1]);var moment=require(_0xe32a[2]);var MailApplication=require(_0xe32a[4])[_0xe32a[3]];var MailAccount=require(_0xe32a[4])[_0xe32a[5]];var MailQueue=require(_0xe32a[4])[_0xe32a[6]];var MailRoom=require(_0xe32a[4])[_0xe32a[7]];var Interval=require(_0xe32a[4])[_0xe32a[8]];var ReportMailSession=require(_0xe32a[4])[_0xe32a[9]];var ReportMail=require(_0xe32a[4])[_0xe32a[10]];var User=require(_0xe32a[4])[_0xe32a[11]];var timeouts={};module[_0xe32a[12]]=function(_0x148fxc){var _0x148fxd=_0x148fxc[_0xe32a[13]]();_0x148fxd[_0xe32a[15]](_0xe32a[14],20,function(_0x148fxe,_0x148fxf){onProcess(_0x148fxe,_0x148fxf)});ReportMail[_0xe32a[34]](function(_0x148fx10){if(_0x148fx10[_0xe32a[17]](_0xe32a[16])){if(timeouts[_0x148fx10[_0xe32a[18]]]){clearTimeout(timeouts[_0x148fx10[_0xe32a[18]]][_0xe32a[19]]);timeouts[_0x148fx10[_0xe32a[18]]][_0xe32a[20]]();delete timeouts[_0x148fx10[_0xe32a[18]]];};return MailRoom[_0xe32a[33]](_0x148fx10[_0xe32a[18]])[_0xe32a[29]](function(_0x148fx12){return _0x148fx12[_0xe32a[32]](_0x148fx10[_0xe32a[31]])})[_0xe32a[29]](function(){return ReportMail[_0xe32a[28]]({agentringnoanswerAt:moment()[_0xe32a[24]](_0xe32a[23]),reason:_0xe32a[30],lastevent:_0xe32a[30]},{where:{uniqueid:_0x148fx10[_0xe32a[18]],reason:null},individualHooks:true})})[_0xe32a[29]](function(){return ReportMailSession[_0xe32a[28]]({mailleaveAt:moment()[_0xe32a[24]](_0xe32a[23]),fullname:_0x148fx10[_0xe32a[25]],membername:_0x148fx10[_0xe32a[26]],mailqueuename:_0x148fx10[_0xe32a[27]]},{where:{uniqueid:_0x148fx10[_0xe32a[18]]},individualHooks:true})})[_0xe32a[22]](function(_0x148fx11){console[_0xe32a[21]](_0x148fx11)});}});MailRoom[_0xe32a[35]](function(_0x148fx10){onSave(_0x148fxd,_0x148fx10)});MailRoom[_0xe32a[36]](function(_0x148fx10){onSave(_0x148fxd,_0x148fx10)});};function onSave(_0x148fxc,_0x148fx10,_0x148fx14){if(_0x148fx10[_0xe32a[37]]===_0xe32a[38]){_0x148fxc[_0xe32a[41]](_0xe32a[14],_0x148fx10[_0xe32a[40]])[_0xe32a[39]]()}}function onProcess(_0x148fxe,_0x148fxf){MailAccount[_0xe32a[33]](_0x148fxe[_0xe32a[47]].MailAccountId,{include:[{model:MailApplication,include:[{model:MailQueue,include:[{model:User}]},{model:User},{model:Interval,include:[{all:true}]}]}]})[_0xe32a[29]](function(_0x148fx16){if(!_0x148fx16){_0x148fxf( new Error(_0xe32a[42]));return ;};if(!_0x148fx16[_0xe32a[44]][_0xe32a[43]]){_0x148fxf( new Error(_0xe32a[45]));return ;};_0x148fxe[_0xe32a[47]][_0xe32a[46]]=_0x148fxe[_0xe32a[47]][_0xe32a[48]];var _0x148fx17=_[_0xe32a[49]](_0x148fxe[_0xe32a[47]],_0x148fx16[_0xe32a[40]]);onReportSession({uniqueid:_0x148fx17[_0xe32a[46]],subject:_0x148fx17[_0xe32a[50]],from:_0x148fx17[_0xe32a[51]],cc:_0x148fx17[_0xe32a[52]],attachment:_0x148fx17[_0xe32a[53]],accountname:_0x148fx17[_0xe32a[54]],accountaddress:_0x148fx17[_0xe32a[55]],mailjoinAt:moment()[_0xe32a[24]](_0xe32a[23])});_0x148fx17[_0xe32a[44]]=_[_0xe32a[57]](_0x148fx17.MailApplications,_0xe32a[56]);onInvite(_0x148fx17,0,0,0,0,_0x148fxf);})[_0xe32a[22]](function(_0x148fx11){console[_0xe32a[21]](_0x148fx11)})}function onInvite(_0x148fx19,_0x148fx1a,_0x148fx1b,_0x148fx1c,_0x148fx1d,_0x148fxf){console[_0xe32a[62]](_0xe32a[58],_0xe32a[59],_0x148fx1a,_0xe32a[60],_0x148fx1b,_0xe32a[61],_0x148fx1c);var _0x148fx1e=0;var _0x148fx1f;if(_0x148fx1a===_0x148fx19[_0xe32a[44]][_0xe32a[43]]){console[_0xe32a[21]](_0xe32a[45]);onReportSession({uniqueid:_0x148fx19[_0xe32a[46]],mailunmanagedAt:moment()[_0xe32a[24]](_0xe32a[23]),mailleaveAt:moment()[_0xe32a[24]](_0xe32a[23])});_0x148fxf( new Error(_0xe32a[45]));return ;};if(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]]){var _0x148fx20=_[_0xe32a[64]](_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]].Users,{online:true})[_0xe32a[63]];if(_0x148fx20&&onInterval(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]?_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[65]])){if(_0x148fx1b===_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0xe32a[43]]){if(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[19]]>_0x148fx1c){onInvite(_0x148fx19,_0x148fx1a,0,_0x148fx1c,_0x148fx1d,_0x148fxf);return ;}else {onInvite(_0x148fx19,++_0x148fx1a,0,0,_0x148fx1d,_0x148fxf);return ;}};switch(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[78]]){case _0xe32a[72]:if(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0x148fx1b][_0xe32a[67]]&&onInterval(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]?_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[65]])){_0x148fx1e=(((_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[19]]-_0x148fx1c)>_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[19]])?_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[19]]:(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[19]]-_0x148fx1c));onReport({uniqueid:_0x148fx19[_0xe32a[46]],sorting:_0x148fx1d,subject:_0x148fx19[_0xe32a[50]],timeslot:_0x148fx1e,from:_0x148fx19[_0xe32a[51]],attachment:_0x148fx19[_0xe32a[53]],accountname:_0x148fx19[_0xe32a[54]],accountaddress:_0x148fx19[_0xe32a[55]],application:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[68]],fullname:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0x148fx1b][_0xe32a[25]],membername:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0x148fx1b][_0xe32a[54]],agentid:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0x148fx1b][_0xe32a[48]],mailqueuename:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[54]],lastevent:_0xe32a[69],holdtime:_0x148fx1c,agentcalledAt:moment()[_0xe32a[24]](_0xe32a[23])});console[_0xe32a[62]](_0xe32a[70],_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[54]],_0xe32a[71],_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0x148fx1b][_0xe32a[54]],_0xe32a[19],_0x148fx1e,_0xe32a[61],_0x148fx1c);_0x148fx1f=setTimeout(function(){onReportUpdate({uniqueid:_0x148fx19[_0xe32a[46]],count:_0x148fx1d,reason:_0xe32a[19],lastevent:_0xe32a[19],agentringnoanswerAt:moment()[_0xe32a[24]](_0xe32a[23])});_0x148fx1c+=_0x148fx1e;onInvite(_0x148fx19,_0x148fx1a,++_0x148fx1b,_0x148fx1c,++_0x148fx1d,_0x148fxf);return ;},_0x148fx1e*1000);if(!timeouts[_0x148fx19[_0xe32a[46]]]){timeouts[_0x148fx19[_0xe32a[46]]]={}};timeouts[_0x148fx19[_0xe32a[46]]][_0xe32a[19]]=_0x148fx1f;timeouts[_0x148fx19[_0xe32a[46]]][_0xe32a[20]]=_0x148fxf;}else {onInvite(_0x148fx19,_0x148fx1a,++_0x148fx1b,_0x148fx1c,_0x148fx1d,_0x148fxf);return ;};break ;;case _0xe32a[76]:_0x148fx1e=(((_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[19]]-_0x148fx1c)>_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[19]])?_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[19]]:(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[19]]-_0x148fx1c));var _0x148fx21=[];_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0xe32a[74]](function(_0x148fx22){if(_0x148fx22[_0xe32a[67]]){_0x148fx21[_0xe32a[73]]({uniqueid:_0x148fx19[_0xe32a[46]],sorting:_0x148fx1d,subject:_0x148fx19[_0xe32a[50]],timeslot:_0x148fx1e,from:_0x148fx19[_0xe32a[51]],attachment:_0x148fx19[_0xe32a[53]],accountname:_0x148fx19[_0xe32a[54]],accountaddress:_0x148fx19[_0xe32a[55]],application:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[68]],fullname:_0x148fx22[_0xe32a[25]],membername:_0x148fx22[_0xe32a[54]],agentid:_0x148fx22[_0xe32a[48]],mailqueuename:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[54]],lastevent:_0xe32a[69],holdtime:_0x148fx1c,agentcalledAt:moment()[_0xe32a[24]](_0xe32a[23])})}});if(_0x148fx21[_0xe32a[43]]&&onInterval(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]?_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[65]])){onReport(_0x148fx21,true);_0x148fx1f=setTimeout(function(){console[_0xe32a[62]](_0xe32a[75],_0x148fx1d);onReportUpdate({uniqueid:_0x148fx19[_0xe32a[46]],count:_0x148fx1d,reason:_0xe32a[19],lastevent:_0xe32a[19],agentringnoanswerAt:moment()[_0xe32a[24]](_0xe32a[23])});_0x148fx1c+=_0x148fx1e;_0x148fx1b+=_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[66]][_0xe32a[43]];onInvite(_0x148fx19,_0x148fx1a,_0x148fx1b,_0x148fx1c,++_0x148fx1d,_0x148fxf);return ;},_0x148fx1e*1000);if(!timeouts[_0x148fx19[_0xe32a[46]]]){timeouts[_0x148fx19[_0xe32a[46]]]={}};timeouts[_0x148fx19[_0xe32a[46]]][_0xe32a[19]]=_0x148fx1f;timeouts[_0x148fx19[_0xe32a[46]]][_0xe32a[20]]=_0x148fxf;}else {console[_0xe32a[62]](_0xe32a[70],_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[6]][_0xe32a[54]],_0xe32a[19],_0x148fx1e,_0xe32a[61],_0x148fx1c);onInvite(_0x148fx19,++_0x148fx1a,0,0,_0x148fx1d,_0x148fxf);return ;};break ;;default:console[_0xe32a[21]](_0xe32a[77]);;};}else {onInvite(_0x148fx19,++_0x148fx1a,0,0,_0x148fx1d,_0x148fxf);return ;};}else {_0x148fx1e=_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[19]];if(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[11]][_0xe32a[67]]&&onInterval(_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]?_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[8]]:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[65]])){onReport({uniqueid:_0x148fx19[_0xe32a[46]],sorting:_0x148fx1d,subject:_0x148fx19[_0xe32a[50]],timeslot:_0x148fx1e,from:_0x148fx19[_0xe32a[51]],attachment:_0x148fx19[_0xe32a[53]],accountname:_0x148fx19[_0xe32a[54]],accountaddress:_0x148fx19[_0xe32a[55]],application:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[68]],fullname:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[11]][_0xe32a[25]],membername:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[11]][_0xe32a[54]],agentid:_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[11]][_0xe32a[48]],lastevent:_0xe32a[69],holdtime:_0x148fx1c,agentcalledAt:moment()[_0xe32a[24]](_0xe32a[23])});console[_0xe32a[62]](_0xe32a[71],_0x148fx19[_0xe32a[44]][_0x148fx1a][_0xe32a[11]][_0xe32a[54]],_0xe32a[19],_0x148fx1e,_0xe32a[61],_0x148fx1c);_0x148fx1f=setTimeout(function(){onReportUpdate({uniqueid:_0x148fx19[_0xe32a[46]],count:_0x148fx1d,reason:_0xe32a[19],lastevent:_0xe32a[19],agentringnoanswerAt:moment()[_0xe32a[24]](_0xe32a[23])});onInvite(_0x148fx19,++_0x148fx1a,0,0,_0x148fx1d,_0x148fxf);return ;},_0x148fx1e*1000);if(!timeouts[_0x148fx19[_0xe32a[46]]]){timeouts[_0x148fx19[_0xe32a[46]]]={}};timeouts[_0x148fx19[_0xe32a[46]]][_0xe32a[19]]=_0x148fx1f;timeouts[_0x148fx19[_0xe32a[46]]][_0xe32a[20]]=_0x148fxf;}else {onInvite(_0x148fx19,++_0x148fx1a,0,0,++_0x148fx1d,_0x148fxf);return;};};}function onReport(_0x148fx24,_0x148fx25){if(_0x148fx25){ReportMail[_0xe32a[79]](_0x148fx24,{individualHooks:true})[_0xe32a[22]](function(_0x148fx11){console[_0xe32a[21]](_0x148fx11)})}else {ReportMail[_0xe32a[41]](_0x148fx24)[_0xe32a[22]](function(_0x148fx11){console[_0xe32a[21]](_0x148fx11)})}}function onReportSession(_0x148fx24){ReportMailSession[_0xe32a[81]]({where:{uniqueid:_0x148fx24[_0xe32a[18]]},defaults:_0x148fx24})[_0xe32a[80]](function(_0x148fx27,_0x148fx28){if(!_0x148fx28){_0x148fx27[_0xe32a[28]](_0x148fx24,{individualHooks:true})[_0xe32a[22]](function(_0x148fx11){console[_0xe32a[21]](_0x148fx11)})}})}function onReportUpdate(_0x148fx24){ReportMail[_0xe32a[28]](_0x148fx24,{where:{uniqueid:_0x148fx24[_0xe32a[18]],sorting:_0x148fx24[_0xe32a[75]]},individualHooks:true})[_0xe32a[22]](function(_0x148fx11){console[_0xe32a[21]](_0x148fx11)})}function onInterval(_0x148fx2b){if(_[_0xe32a[82]](_0x148fx2b)){for(var _0x148fx1a=0;_0x148fx1a<_0x148fx2b[_0xe32a[83]][_0xe32a[43]];_0x148fx1a++){if(!onCheckInterval(_0x148fx2b[_0xe32a[83]][_0x148fx1a][_0xe32a[65]])){return false}};return true;}else {return onCheckInterval(_0x148fx2b)}}function onCheckInterval(_0x148fx2b){var _0x148fx2d=[_0xe32a[84],_0xe32a[85],_0xe32a[86],_0xe32a[87],_0xe32a[88],_0xe32a[89],_0xe32a[90]];var _0x148fx2e=[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];var _0x148fx2f=[_0xe32a[91],_0xe32a[92],_0xe32a[93],_0xe32a[94],_0xe32a[95],_0xe32a[96],_0xe32a[97],_0xe32a[98],_0xe32a[99],_0xe32a[100],_0xe32a[101],_0xe32a[102]];var _0x148fx1a,_0x148fx30;var _0x148fx31=_0x148fx2b[_0xe32a[104]](_0xe32a[103])[0];var _0x148fx32=_0x148fx2b[_0xe32a[104]](_0xe32a[103])[1];var _0x148fx33=_0x148fx2b[_0xe32a[104]](_0xe32a[103])[2];var _0x148fx34=_0x148fx2b[_0xe32a[104]](_0xe32a[103])[3];if(_0x148fx31!==_0xe32a[105]){var _0x148fx35=moment()[_0xe32a[24]](_0xe32a[106]);var _0x148fx36=_0x148fx31[_0xe32a[104]](_0xe32a[107])[0];var _0x148fx37=_0x148fx31[_0xe32a[104]](_0xe32a[107])[1];if((_0x148fx35<_0x148fx36)||(_0x148fx35>_0x148fx37)){console[_0xe32a[62]](_0xe32a[108]);return false;};};if(_0x148fx32!==_0xe32a[105]){var _0x148fx38=_0x148fx2d[moment()[_0xe32a[109]]()];var _0x148fx39=_[_0xe32a[110]](_0x148fx2d,_0x148fx32[_0xe32a[104]](_0xe32a[107])[0]);var _0x148fx3a=_[_0xe32a[110]](_0x148fx2d,_0x148fx32[_0xe32a[104]](_0xe32a[107])[1]);for(_0x148fx1a=0;_0x148fx1a<_0x148fx39;_0x148fx1a++){_0x148fx30=_0x148fx2d[_0xe32a[111]]();_0x148fx2d[_0xe32a[73]](_0x148fx30);};_0x148fx39=_[_0xe32a[110]](_0x148fx2d,_0x148fx32[_0xe32a[104]](_0xe32a[107])[0]);_0x148fx3a=_[_0xe32a[110]](_0x148fx2d,_0x148fx32[_0xe32a[104]](_0xe32a[107])[1])+1;_0x148fx2d=_0x148fx2d[_0xe32a[112]](_0x148fx39,_0x148fx3a);if(!_[_0xe32a[113]](_0x148fx2d,_0x148fx38)){console[_0xe32a[62]](_0xe32a[114]);return false;};};if(_0x148fx33!==_0xe32a[105]){var _0x148fx3b=moment()[_0xe32a[115]]();var _0x148fx3c=_[_0xe32a[110]](_0x148fx2e,parseInt(_0x148fx33[_0xe32a[104]](_0xe32a[107])[0],10));var _0x148fx3d=_[_0xe32a[110]](_0x148fx2e,parseInt(_0x148fx33[_0xe32a[104]](_0xe32a[107])[1]));for(_0x148fx1a=0;_0x148fx1a<_0x148fx3c;_0x148fx1a++){_0x148fx30=_0x148fx2e[_0xe32a[111]]();_0x148fx2e[_0xe32a[73]](_0x148fx30);};_0x148fx3c=_[_0xe32a[110]](_0x148fx2e,parseInt(_0x148fx33[_0xe32a[104]](_0xe32a[107])[0],10));_0x148fx3d=_[_0xe32a[110]](_0x148fx2e,parseInt(_0x148fx33[_0xe32a[104]](_0xe32a[107])[1]),10)+1;_0x148fx2e=_0x148fx2e[_0xe32a[112]](_0x148fx3c,_0x148fx3d);if(!_[_0xe32a[113]](_0x148fx2e,_0x148fx3b)){console[_0xe32a[62]](_0xe32a[116]);return false;};};if(_0x148fx34!==_0xe32a[105]){var _0x148fx3e=_0x148fx2f[moment()[_0xe32a[117]]()];var _0x148fx3f=_[_0xe32a[110]](_0x148fx2f,_0x148fx34[_0xe32a[104]](_0xe32a[107])[0]);var _0x148fx40=_[_0xe32a[110]](_0x148fx2f,_0x148fx34[_0xe32a[104]](_0xe32a[107])[1]);for(_0x148fx1a=0;_0x148fx1a<_0x148fx3f;_0x148fx1a++){_0x148fx30=_0x148fx2f[_0xe32a[111]]();_0x148fx2f[_0xe32a[73]](_0x148fx30);};_0x148fx3f=_[_0xe32a[110]](_0x148fx2f,_0x148fx34[_0xe32a[104]](_0xe32a[107])[0]);_0x148fx40=_[_0xe32a[110]](_0x148fx2f,_0x148fx34[_0xe32a[104]](_0xe32a[107])[1])+1;_0x148fx2f=_0x148fx2f[_0xe32a[112]](_0x148fx3f,_0x148fx40);if(!_[_0xe32a[113]](_0x148fx2f,_0x148fx3e)){console[_0xe32a[62]](_0xe32a[118]);return false;};};console[_0xe32a[62]](_0xe32a[119]);return true;}
\ No newline at end of file
+var _0x699a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x55\x73\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x6D\x61\x69\x6C","\x70\x72\x6F\x63\x65\x73\x73","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x63\x68\x61\x6E\x67\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x6F\x6E\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x6D\x61\x69\x6C\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x61\x67\x65\x6E\x74\x69\x64","\x61\x64\x64\x55\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x74\x61\x74\x75\x73","\x4E\x45\x57","\x73\x61\x76\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x72\x65\x61\x74\x65","\x4E\x6F\x20\x41\x76\x61\x69\x6C\x61\x62\x6C\x65\x20\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x44\x69\x61\x6C\x50\x6C\x61\x6E\x20\x65\x6E\x64\x65\x64\x2E\x2E","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x64\x61\x74\x61","\x69\x64","\x6D\x65\x72\x67\x65","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x63\x63","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x73\x6F\x72\x74\x42\x79","\x69\x6E\x76\x69\x74\x65","\x69","\x6A","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x6C\x6F\x67","\x74\x72\x75\x65","\x63\x6F\x75\x6E\x74\x42\x79","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x55\x73\x65\x72\x73","\x6F\x6E\x6C\x69\x6E\x65","\x61\x70\x70","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x75\x6E\x74","\x62\x65\x65\x70\x61\x6C\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x73\x74\x72\x61\x74\x65\x67\x79","\x73\x74\x72\x61\x74\x65\x67\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x69\x73\x4F\x62\x6A\x65\x63\x74","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x75\x6E","\x6D\x6F\x6E","\x74\x75\x65","\x77\x65\x64","\x74\x68\x75","\x66\x72\x69","\x73\x61\x74","\x6A\x61\x6E","\x66\x65\x62","\x6D\x61\x72","\x61\x70\x72","\x6D\x61\x79","\x6A\x75\x6E","\x6A\x75\x6C","\x61\x75\x67","\x73\x65\x70","\x6F\x63\x74","\x6E\x6F\x76","\x64\x65\x63","\x2C","\x73\x70\x6C\x69\x74","\x2A","\x48\x48\x3A\x6D\x6D","\x2D","\x54\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x79","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x68\x69\x66\x74","\x73\x6C\x69\x63\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x44\x57\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x74\x65","\x44\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x6D\x6F\x6E\x74\x68","\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x49\x4E\x54\x45\x52\x56\x41\x4C\x20\x4F\x4B"];_0x699a[0];var _=require(_0x699a[1]);var moment=require(_0x699a[2]);var MailApplication=require(_0x699a[4])[_0x699a[3]];var MailAccount=require(_0x699a[4])[_0x699a[5]];var MailQueue=require(_0x699a[4])[_0x699a[6]];var MailRoom=require(_0x699a[4])[_0x699a[7]];var Interval=require(_0x699a[4])[_0x699a[8]];var ReportMailSession=require(_0x699a[4])[_0x699a[9]];var ReportMail=require(_0x699a[4])[_0x699a[10]];var User=require(_0x699a[4])[_0x699a[11]];var timeouts={};module[_0x699a[12]]=function(_0xce88xc){var _0xce88xd=_0xce88xc[_0x699a[13]]();_0xce88xd[_0x699a[15]](_0x699a[14],20,function(_0xce88xe,_0xce88xf){onProcess(_0xce88xe,_0xce88xf)});ReportMail[_0x699a[34]](function(_0xce88x10){if(_0xce88x10[_0x699a[17]](_0x699a[16])){if(timeouts[_0xce88x10[_0x699a[18]]]){clearTimeout(timeouts[_0xce88x10[_0x699a[18]]][_0x699a[19]]);timeouts[_0xce88x10[_0x699a[18]]][_0x699a[20]]();delete timeouts[_0xce88x10[_0x699a[18]]];};return MailRoom[_0x699a[33]](_0xce88x10[_0x699a[18]])[_0x699a[29]](function(_0xce88x12){return _0xce88x12[_0x699a[32]](_0xce88x10[_0x699a[31]])})[_0x699a[29]](function(){return ReportMail[_0x699a[28]]({agentringnoanswerAt:moment()[_0x699a[24]](_0x699a[23]),reason:_0x699a[30],lastevent:_0x699a[30]},{where:{uniqueid:_0xce88x10[_0x699a[18]],reason:null},individualHooks:true})})[_0x699a[29]](function(){return ReportMailSession[_0x699a[28]]({mailleaveAt:moment()[_0x699a[24]](_0x699a[23]),fullname:_0xce88x10[_0x699a[25]],membername:_0xce88x10[_0x699a[26]],mailqueuename:_0xce88x10[_0x699a[27]]},{where:{uniqueid:_0xce88x10[_0x699a[18]]},individualHooks:true})})[_0x699a[22]](function(_0xce88x11){console[_0x699a[21]](_0xce88x11)});}});MailRoom[_0x699a[35]](function(_0xce88x10){onSave(_0xce88xd,_0xce88x10)});MailRoom[_0x699a[36]](function(_0xce88x10){onSave(_0xce88xd,_0xce88x10)});};function onSave(_0xce88xc,_0xce88x10,_0xce88x14){if(_0xce88x10[_0x699a[37]]===_0x699a[38]){_0xce88xc[_0x699a[41]](_0x699a[14],_0xce88x10[_0x699a[40]])[_0x699a[39]]()}}function onProcess(_0xce88xe,_0xce88xf){MailAccount[_0x699a[33]](_0xce88xe[_0x699a[47]].MailAccountId,{include:[{model:MailApplication,include:[{model:MailQueue,include:[{model:User}]},{model:User},{model:Interval,include:[{all:true}]}]}]})[_0x699a[29]](function(_0xce88x16){if(!_0xce88x16){_0xce88xf( new Error(_0x699a[42]));return ;};if(!_0xce88x16[_0x699a[44]][_0x699a[43]]){_0xce88xf( new Error(_0x699a[45]));return ;};_0xce88xe[_0x699a[47]][_0x699a[46]]=_0xce88xe[_0x699a[47]][_0x699a[48]];var _0xce88x17=_[_0x699a[49]](_0xce88xe[_0x699a[47]],_0xce88x16[_0x699a[40]]);onReportSession({uniqueid:_0xce88x17[_0x699a[46]],subject:_0xce88x17[_0x699a[50]],from:_0xce88x17[_0x699a[51]],cc:_0xce88x17[_0x699a[52]],attachment:_0xce88x17[_0x699a[53]],accountname:_0xce88x17[_0x699a[54]],accountaddress:_0xce88x17[_0x699a[55]],mailjoinAt:moment()[_0x699a[24]](_0x699a[23])});_0xce88x17[_0x699a[44]]=_[_0x699a[57]](_0xce88x17.MailApplications,_0x699a[56]);onInvite(_0xce88x17,0,0,0,0,_0xce88xf);})[_0x699a[22]](function(_0xce88x11){console[_0x699a[21]](_0xce88x11)})}function onInvite(_0xce88x19,_0xce88x1a,_0xce88x1b,_0xce88x1c,_0xce88x1d,_0xce88xf){console[_0x699a[62]](_0x699a[58],_0x699a[59],_0xce88x1a,_0x699a[60],_0xce88x1b,_0x699a[61],_0xce88x1c);var _0xce88x1e=0;var _0xce88x1f;if(_0xce88x1a===_0xce88x19[_0x699a[44]][_0x699a[43]]){console[_0x699a[21]](_0x699a[45]);onReportSession({uniqueid:_0xce88x19[_0x699a[46]],mailunmanagedAt:moment()[_0x699a[24]](_0x699a[23]),mailleaveAt:moment()[_0x699a[24]](_0x699a[23])});_0xce88xf( new Error(_0x699a[45]));return ;};if(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]]){var _0xce88x20=_[_0x699a[64]](_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]].Users,{online:true})[_0x699a[63]];if(_0xce88x20&&onInterval(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]?_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[65]])){if(_0xce88x1b===_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0x699a[43]]){if(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[19]]>_0xce88x1c){onInvite(_0xce88x19,_0xce88x1a,0,_0xce88x1c,_0xce88x1d,_0xce88xf);return ;}else {onInvite(_0xce88x19,++_0xce88x1a,0,0,_0xce88x1d,_0xce88xf);return ;}};switch(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[78]]){case _0x699a[72]:if(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0xce88x1b][_0x699a[67]]&&onInterval(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]?_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[65]])){_0xce88x1e=(((_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[19]]-_0xce88x1c)>_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[19]])?_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[19]]:(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[19]]-_0xce88x1c));onReport({uniqueid:_0xce88x19[_0x699a[46]],sorting:_0xce88x1d,subject:_0xce88x19[_0x699a[50]],timeslot:_0xce88x1e,from:_0xce88x19[_0x699a[51]],attachment:_0xce88x19[_0x699a[53]],accountname:_0xce88x19[_0x699a[54]],accountaddress:_0xce88x19[_0x699a[55]],application:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[68]],fullname:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0xce88x1b][_0x699a[25]],membername:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0xce88x1b][_0x699a[54]],agentid:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0xce88x1b][_0x699a[48]],mailqueuename:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[54]],lastevent:_0x699a[69],holdtime:_0xce88x1c,agentcalledAt:moment()[_0x699a[24]](_0x699a[23])});console[_0x699a[62]](_0x699a[70],_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[54]],_0x699a[71],_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0xce88x1b][_0x699a[54]],_0x699a[19],_0xce88x1e,_0x699a[61],_0xce88x1c);_0xce88x1f=setTimeout(function(){onReportUpdate({uniqueid:_0xce88x19[_0x699a[46]],count:_0xce88x1d,reason:_0x699a[19],lastevent:_0x699a[19],agentringnoanswerAt:moment()[_0x699a[24]](_0x699a[23])});_0xce88x1c+=_0xce88x1e;onInvite(_0xce88x19,_0xce88x1a,++_0xce88x1b,_0xce88x1c,++_0xce88x1d,_0xce88xf);return ;},_0xce88x1e*1000);if(!timeouts[_0xce88x19[_0x699a[46]]]){timeouts[_0xce88x19[_0x699a[46]]]={}};timeouts[_0xce88x19[_0x699a[46]]][_0x699a[19]]=_0xce88x1f;timeouts[_0xce88x19[_0x699a[46]]][_0x699a[20]]=_0xce88xf;}else {onInvite(_0xce88x19,_0xce88x1a,++_0xce88x1b,_0xce88x1c,_0xce88x1d,_0xce88xf);return ;};break ;;case _0x699a[76]:_0xce88x1e=(((_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[19]]-_0xce88x1c)>_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[19]])?_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[19]]:(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[19]]-_0xce88x1c));var _0xce88x21=[];_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0x699a[74]](function(_0xce88x22){if(_0xce88x22[_0x699a[67]]){_0xce88x21[_0x699a[73]]({uniqueid:_0xce88x19[_0x699a[46]],sorting:_0xce88x1d,subject:_0xce88x19[_0x699a[50]],timeslot:_0xce88x1e,from:_0xce88x19[_0x699a[51]],attachment:_0xce88x19[_0x699a[53]],accountname:_0xce88x19[_0x699a[54]],accountaddress:_0xce88x19[_0x699a[55]],application:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[68]],fullname:_0xce88x22[_0x699a[25]],membername:_0xce88x22[_0x699a[54]],agentid:_0xce88x22[_0x699a[48]],mailqueuename:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[54]],lastevent:_0x699a[69],holdtime:_0xce88x1c,agentcalledAt:moment()[_0x699a[24]](_0x699a[23])})}});if(_0xce88x21[_0x699a[43]]&&onInterval(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]?_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[65]])){onReport(_0xce88x21,true);_0xce88x1f=setTimeout(function(){console[_0x699a[62]](_0x699a[75],_0xce88x1d);onReportUpdate({uniqueid:_0xce88x19[_0x699a[46]],count:_0xce88x1d,reason:_0x699a[19],lastevent:_0x699a[19],agentringnoanswerAt:moment()[_0x699a[24]](_0x699a[23])});_0xce88x1c+=_0xce88x1e;_0xce88x1b+=_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[66]][_0x699a[43]];onInvite(_0xce88x19,_0xce88x1a,_0xce88x1b,_0xce88x1c,++_0xce88x1d,_0xce88xf);return ;},_0xce88x1e*1000);if(!timeouts[_0xce88x19[_0x699a[46]]]){timeouts[_0xce88x19[_0x699a[46]]]={}};timeouts[_0xce88x19[_0x699a[46]]][_0x699a[19]]=_0xce88x1f;timeouts[_0xce88x19[_0x699a[46]]][_0x699a[20]]=_0xce88xf;}else {console[_0x699a[62]](_0x699a[70],_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[6]][_0x699a[54]],_0x699a[19],_0xce88x1e,_0x699a[61],_0xce88x1c);onInvite(_0xce88x19,++_0xce88x1a,0,0,_0xce88x1d,_0xce88xf);return ;};break ;;default:console[_0x699a[21]](_0x699a[77]);;};}else {onInvite(_0xce88x19,++_0xce88x1a,0,0,_0xce88x1d,_0xce88xf);return ;};}else {_0xce88x1e=_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[19]];if(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[11]][_0x699a[67]]&&onInterval(_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]?_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[8]]:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[65]])){onReport({uniqueid:_0xce88x19[_0x699a[46]],sorting:_0xce88x1d,subject:_0xce88x19[_0x699a[50]],timeslot:_0xce88x1e,from:_0xce88x19[_0x699a[51]],attachment:_0xce88x19[_0x699a[53]],accountname:_0xce88x19[_0x699a[54]],accountaddress:_0xce88x19[_0x699a[55]],application:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[68]],fullname:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[11]][_0x699a[25]],membername:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[11]][_0x699a[54]],agentid:_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[11]][_0x699a[48]],lastevent:_0x699a[69],holdtime:_0xce88x1c,agentcalledAt:moment()[_0x699a[24]](_0x699a[23])});console[_0x699a[62]](_0x699a[71],_0xce88x19[_0x699a[44]][_0xce88x1a][_0x699a[11]][_0x699a[54]],_0x699a[19],_0xce88x1e,_0x699a[61],_0xce88x1c);_0xce88x1f=setTimeout(function(){onReportUpdate({uniqueid:_0xce88x19[_0x699a[46]],count:_0xce88x1d,reason:_0x699a[19],lastevent:_0x699a[19],agentringnoanswerAt:moment()[_0x699a[24]](_0x699a[23])});onInvite(_0xce88x19,++_0xce88x1a,0,0,_0xce88x1d,_0xce88xf);return ;},_0xce88x1e*1000);if(!timeouts[_0xce88x19[_0x699a[46]]]){timeouts[_0xce88x19[_0x699a[46]]]={}};timeouts[_0xce88x19[_0x699a[46]]][_0x699a[19]]=_0xce88x1f;timeouts[_0xce88x19[_0x699a[46]]][_0x699a[20]]=_0xce88xf;}else {onInvite(_0xce88x19,++_0xce88x1a,0,0,++_0xce88x1d,_0xce88xf);return;};};}function onReport(_0xce88x24,_0xce88x25){if(_0xce88x25){ReportMail[_0x699a[79]](_0xce88x24,{individualHooks:true})[_0x699a[22]](function(_0xce88x11){console[_0x699a[21]](_0xce88x11)})}else {ReportMail[_0x699a[41]](_0xce88x24)[_0x699a[22]](function(_0xce88x11){console[_0x699a[21]](_0xce88x11)})}}function onReportSession(_0xce88x24){ReportMailSession[_0x699a[81]]({where:{uniqueid:_0xce88x24[_0x699a[18]]},defaults:_0xce88x24})[_0x699a[80]](function(_0xce88x27,_0xce88x28){if(!_0xce88x28){_0xce88x27[_0x699a[28]](_0xce88x24,{individualHooks:true})[_0x699a[22]](function(_0xce88x11){console[_0x699a[21]](_0xce88x11)})}})}function onReportUpdate(_0xce88x24){ReportMail[_0x699a[28]](_0xce88x24,{where:{uniqueid:_0xce88x24[_0x699a[18]],sorting:_0xce88x24[_0x699a[75]]},individualHooks:true})[_0x699a[22]](function(_0xce88x11){console[_0x699a[21]](_0xce88x11)})}function onInterval(_0xce88x2b){if(_[_0x699a[82]](_0xce88x2b)){for(var _0xce88x1a=0;_0xce88x1a<_0xce88x2b[_0x699a[83]][_0x699a[43]];_0xce88x1a++){if(!onCheckInterval(_0xce88x2b[_0x699a[83]][_0xce88x1a][_0x699a[65]])){return false}};return true;}else {return onCheckInterval(_0xce88x2b)}}function onCheckInterval(_0xce88x2b){var _0xce88x2d=[_0x699a[84],_0x699a[85],_0x699a[86],_0x699a[87],_0x699a[88],_0x699a[89],_0x699a[90]];var _0xce88x2e=[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];var _0xce88x2f=[_0x699a[91],_0x699a[92],_0x699a[93],_0x699a[94],_0x699a[95],_0x699a[96],_0x699a[97],_0x699a[98],_0x699a[99],_0x699a[100],_0x699a[101],_0x699a[102]];var _0xce88x1a,_0xce88x30;var _0xce88x31=_0xce88x2b[_0x699a[104]](_0x699a[103])[0];var _0xce88x32=_0xce88x2b[_0x699a[104]](_0x699a[103])[1];var _0xce88x33=_0xce88x2b[_0x699a[104]](_0x699a[103])[2];var _0xce88x34=_0xce88x2b[_0x699a[104]](_0x699a[103])[3];if(_0xce88x31!==_0x699a[105]){var _0xce88x35=moment()[_0x699a[24]](_0x699a[106]);var _0xce88x36=_0xce88x31[_0x699a[104]](_0x699a[107])[0];var _0xce88x37=_0xce88x31[_0x699a[104]](_0x699a[107])[1];if((_0xce88x35<_0xce88x36)||(_0xce88x35>_0xce88x37)){console[_0x699a[62]](_0x699a[108]);return false;};};if(_0xce88x32!==_0x699a[105]){var _0xce88x38=_0xce88x2d[moment()[_0x699a[109]]()];var _0xce88x39=_[_0x699a[110]](_0xce88x2d,_0xce88x32[_0x699a[104]](_0x699a[107])[0]);var _0xce88x3a=_[_0x699a[110]](_0xce88x2d,_0xce88x32[_0x699a[104]](_0x699a[107])[1]);for(_0xce88x1a=0;_0xce88x1a<_0xce88x39;_0xce88x1a++){_0xce88x30=_0xce88x2d[_0x699a[111]]();_0xce88x2d[_0x699a[73]](_0xce88x30);};_0xce88x39=_[_0x699a[110]](_0xce88x2d,_0xce88x32[_0x699a[104]](_0x699a[107])[0]);_0xce88x3a=_[_0x699a[110]](_0xce88x2d,_0xce88x32[_0x699a[104]](_0x699a[107])[1])+1;_0xce88x2d=_0xce88x2d[_0x699a[112]](_0xce88x39,_0xce88x3a);if(!_[_0x699a[113]](_0xce88x2d,_0xce88x38)){console[_0x699a[62]](_0x699a[114]);return false;};};if(_0xce88x33!==_0x699a[105]){var _0xce88x3b=moment()[_0x699a[115]]();var _0xce88x3c=_[_0x699a[110]](_0xce88x2e,parseInt(_0xce88x33[_0x699a[104]](_0x699a[107])[0],10));var _0xce88x3d=_[_0x699a[110]](_0xce88x2e,parseInt(_0xce88x33[_0x699a[104]](_0x699a[107])[1]));for(_0xce88x1a=0;_0xce88x1a<_0xce88x3c;_0xce88x1a++){_0xce88x30=_0xce88x2e[_0x699a[111]]();_0xce88x2e[_0x699a[73]](_0xce88x30);};_0xce88x3c=_[_0x699a[110]](_0xce88x2e,parseInt(_0xce88x33[_0x699a[104]](_0x699a[107])[0],10));_0xce88x3d=_[_0x699a[110]](_0xce88x2e,parseInt(_0xce88x33[_0x699a[104]](_0x699a[107])[1]),10)+1;_0xce88x2e=_0xce88x2e[_0x699a[112]](_0xce88x3c,_0xce88x3d);if(!_[_0x699a[113]](_0xce88x2e,_0xce88x3b)){console[_0x699a[62]](_0x699a[116]);return false;};};if(_0xce88x34!==_0x699a[105]){var _0xce88x3e=_0xce88x2f[moment()[_0x699a[117]]()];var _0xce88x3f=_[_0x699a[110]](_0xce88x2f,_0xce88x34[_0x699a[104]](_0x699a[107])[0]);var _0xce88x40=_[_0x699a[110]](_0xce88x2f,_0xce88x34[_0x699a[104]](_0x699a[107])[1]);for(_0xce88x1a=0;_0xce88x1a<_0xce88x3f;_0xce88x1a++){_0xce88x30=_0xce88x2f[_0x699a[111]]();_0xce88x2f[_0x699a[73]](_0xce88x30);};_0xce88x3f=_[_0x699a[110]](_0xce88x2f,_0xce88x34[_0x699a[104]](_0x699a[107])[0]);_0xce88x40=_[_0x699a[110]](_0xce88x2f,_0xce88x34[_0x699a[104]](_0x699a[107])[1])+1;_0xce88x2f=_0xce88x2f[_0x699a[112]](_0xce88x3f,_0xce88x40);if(!_[_0x699a[113]](_0xce88x2f,_0xce88x3e)){console[_0x699a[62]](_0x699a[118]);return false;};};console[_0x699a[62]](_0x699a[119]);return true;}
\ No newline at end of file
index e0a005e..7f004ec 100644 (file)
@@ -1 +1 @@
-var _0xcbf0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x75\x74\x69\x6C","\x75\x72\x6C","\x43\x72\x6F\x6E\x4A\x6F\x62","\x63\x72\x6F\x6E","\x70\x72\x6F\x76\x69\x73\x69\x6F\x6E\x69\x6E\x67","\x2F\x73\x65\x72\x76\x65\x72\x73\x2F","\x75\x75\x69\x64","\x2F\x63\x68\x65\x63\x6B","\x6C\x6F\x67","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2A\x20\x2A\x20\x2A\x20\x2A\x20\x2A","\x43\x68\x65\x63\x6B\x20\x4C\x69\x63\x65\x6E\x73\x65\x20\x53\x74\x61\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x69\x63\x65\x6E\x73\x65","\x75\x70\x64\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x73\x74\x61\x72\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xcbf0[0];var config=require(_0xcbf0[1]);var rp=require(_0xcbf0[2]);var util=require(_0xcbf0[3]);var url=require(_0xcbf0[4]);var CronJob=require(_0xcbf0[6])[_0xcbf0[5]];var provisioning=config[_0xcbf0[7]]+_0xcbf0[8]+config[_0xcbf0[9]]+_0xcbf0[10];console[_0xcbf0[11]](provisioning);var Settings=require(_0xcbf0[13])[_0xcbf0[12]];function licenseManager(){var _0xbce8x9= new CronJob({cronTime:_0xcbf0[14],onTick:function(){console[_0xcbf0[11]](_0xcbf0[15]);var _0xbce8xa;return rp({uri:provisioning,json:true})[_0xcbf0[22]](function(_0xbce8xd){_0xbce8xa=_0xbce8xd;return Settings[_0xcbf0[21]]({where:{id:1}});})[_0xcbf0[20]](function(_0xbce8xc){return _0xbce8xc[_0xcbf0[19]]({license:_0xbce8xa[_0xcbf0[18]]})})[_0xcbf0[17]](function(_0xbce8xb){console[_0xcbf0[16]](_0xbce8xb)});},start:false});_0xbce8x9[_0xcbf0[23]]();return {};}module[_0xcbf0[24]]=licenseManager;
\ No newline at end of file
+var _0x5d3f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x75\x74\x69\x6C","\x75\x72\x6C","\x43\x72\x6F\x6E\x4A\x6F\x62","\x63\x72\x6F\x6E","\x70\x72\x6F\x76\x69\x73\x69\x6F\x6E\x69\x6E\x67","\x2F\x73\x65\x72\x76\x65\x72\x73\x2F","\x75\x75\x69\x64","\x2F\x63\x68\x65\x63\x6B","\x6C\x6F\x67","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2A\x20\x2A\x20\x2A\x20\x2A\x20\x2A","\x43\x68\x65\x63\x6B\x20\x4C\x69\x63\x65\x6E\x73\x65\x20\x53\x74\x61\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x69\x63\x65\x6E\x73\x65","\x75\x70\x64\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x73\x74\x61\x72\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x5d3f[0];var config=require(_0x5d3f[1]);var rp=require(_0x5d3f[2]);var util=require(_0x5d3f[3]);var url=require(_0x5d3f[4]);var CronJob=require(_0x5d3f[6])[_0x5d3f[5]];var provisioning=config[_0x5d3f[7]]+_0x5d3f[8]+config[_0x5d3f[9]]+_0x5d3f[10];console[_0x5d3f[11]](provisioning);var Settings=require(_0x5d3f[13])[_0x5d3f[12]];function licenseManager(){var _0x53d2x9= new CronJob({cronTime:_0x5d3f[14],onTick:function(){console[_0x5d3f[11]](_0x5d3f[15]);var _0x53d2xa;return rp({uri:provisioning,json:true})[_0x5d3f[22]](function(_0x53d2xd){_0x53d2xa=_0x53d2xd;return Settings[_0x5d3f[21]]({where:{id:1}});})[_0x5d3f[20]](function(_0x53d2xc){return _0x53d2xc[_0x5d3f[19]]({license:_0x53d2xa[_0x5d3f[18]]})})[_0x5d3f[17]](function(_0x53d2xb){console[_0x5d3f[16]](_0x53d2xb)});},start:false});_0x53d2x9[_0x5d3f[23]]();return {};}module[_0x5d3f[24]]=licenseManager;
\ No newline at end of file
index 3d869a3..405cc82 100644 (file)
@@ -1 +1 @@
-var _0xe2ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x6D\x6F\x6D\x65\x6E\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","","\x72\x65\x70\x6C\x61\x63\x65","\x6F\x75\x74\x70\x75\x74","\x64\x6D\x69\x64\x65\x63\x6F\x64\x65\x20\x2D\x2D\x73\x74\x72\x69\x6E\x67\x20\x73\x79\x73\x74\x65\x6D\x2D\x75\x75\x69\x64","\x2D","\x73\x70\x6C\x69\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x53\x65\x74\x74\x69\x6E\x67\x73","\x44\x45\x4D\x4F\x20\x4C\x49\x43\x45\x4E\x53\x45","\x63\x61\x74\x63\x68","\x6C\x69\x63\x65\x6E\x73\x65","\x70\x61\x72\x73\x65","\x63\x68\x61\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x75\x73\x65","\x6D\x61\x69\x6C","\x66\x61\x78","\x65\x78\x70\x69\x72\x61\x74\x69\x6F\x6E","\x69\x73\x53\x61\x6D\x65\x4F\x72\x42\x65\x66\x6F\x72\x65","\x75\x73\x65\x72\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x75\x73\x65\x72\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x63\x6F\x75\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x6F\x6E\x6C\x69\x6E\x65","\x61\x67\x65\x6E\x74\x73","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x69\x73\x55\x73\x65\x72\x73\x4C\x69\x6D\x69\x74","\x69\x73\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x4C\x69\x6D\x69\x74","\x68\x61\x73\x43\x68\x61\x74","\x68\x61\x73\x4D\x61\x69\x6C","\x68\x61\x73\x46\x61\x78","\x69\x73\x56\x61\x6C\x69\x64\x41\x67\x65\x6E\x74","\x64\x65\x6D\x6F\x4C\x69\x63\x65\x6E\x73\x65","\x64\x65\x63\x72\x79\x70\x74"];_0xe2ca[0];var compose=require(_0xe2ca[1]);var moment=require(_0xe2ca[2]);var crypto=require(_0xe2ca[3]);var util=require(_0xe2ca[4]);var config=require(_0xe2ca[5]);var uuid=exec(_0xe2ca[9],{silent:true})[_0xe2ca[8]][_0xe2ca[7]](/\r?\n|\r/g,_0xe2ca[6]);var prefix=uuid[_0xe2ca[11]](_0xe2ca[10])[4];var suffix=uuid[_0xe2ca[11]](_0xe2ca[10])[0];var User=require(_0xe2ca[13])[_0xe2ca[12]];var Telephone=require(_0xe2ca[13])[_0xe2ca[14]];var Settings=require(_0xe2ca[13])[_0xe2ca[15]];var demoLicense={users:1,agents:1,telephones:0,chat:false,mail:false,fax:false,description:_0xe2ca[16]};function hasChat(){return compose()[_0xe2ca[24]](function(_0x76d7xe,_0x76d7xf,_0x76d7x10){return Settings[_0xe2ca[23]]({where:{id:1}})[_0xe2ca[22]](function(_0x76d7x12){var _0x76d7x13=null,_0x76d7x14=false;if(_0x76d7x12[_0xe2ca[18]]){_0x76d7x13=decrypt(_0x76d7x12[_0xe2ca[18]]);_0x76d7x13=JSON[_0xe2ca[19]](_0x76d7x13);}else {_0x76d7x13=demoLicense};_0x76d7x14=_0x76d7x13[_0xe2ca[20]];if(!_0x76d7x14){return _0x76d7xf[_0xe2ca[21]](403)};return _0x76d7x10();})[_0xe2ca[17]](function(_0x76d7x11){return _0x76d7x10(_0x76d7x11)})})}function hasMail(){return compose()[_0xe2ca[24]](function(_0x76d7xe,_0x76d7xf,_0x76d7x10){return Settings[_0xe2ca[23]]({where:{id:1}})[_0xe2ca[22]](function(_0x76d7x12){var _0x76d7x13=null,_0x76d7x16=false;if(_0x76d7x12[_0xe2ca[18]]){_0x76d7x13=decrypt(_0x76d7x12[_0xe2ca[18]]);_0x76d7x13=JSON[_0xe2ca[19]](_0x76d7x13);}else {_0x76d7x13=demoLicense};_0x76d7x16=_0x76d7x13[_0xe2ca[25]];if(!_0x76d7x16){return _0x76d7xf[_0xe2ca[21]](403)};return _0x76d7x10();})[_0xe2ca[17]](function(_0x76d7x11){return _0x76d7x10(_0x76d7x11)})})}function hasFax(){return compose()[_0xe2ca[24]](function(_0x76d7xe,_0x76d7xf,_0x76d7x10){return Settings[_0xe2ca[23]]({where:{id:1}})[_0xe2ca[22]](function(_0x76d7x12){var _0x76d7x13=null,_0x76d7x18=false;if(_0x76d7x12[_0xe2ca[18]]){_0x76d7x13=decrypt(_0x76d7x12[_0xe2ca[18]]);_0x76d7x13=JSON[_0xe2ca[19]](_0x76d7x13);}else {_0x76d7x13=demoLicense};_0x76d7x18=_0x76d7x13[_0xe2ca[26]];if(!_0x76d7x18){return _0x76d7xf[_0xe2ca[21]](403)};return _0x76d7x10();})[_0xe2ca[17]](function(_0x76d7x11){return _0x76d7x10(_0x76d7x11)})})}function isValidDate(){return compose()[_0xe2ca[24]](function(_0x76d7xe,_0x76d7xf,_0x76d7x10){return Settings[_0xe2ca[23]]({where:{id:1}})[_0xe2ca[22]](function(_0x76d7x12){var _0x76d7x13=null,_0x76d7x1a=false;if(_0x76d7x12[_0xe2ca[18]]){_0x76d7x13=decrypt(_0x76d7x12[_0xe2ca[18]]);_0x76d7x13=JSON[_0xe2ca[19]](_0x76d7x13);if(moment()[_0xe2ca[28]](_0x76d7x13[_0xe2ca[27]])){_0x76d7x1a=true};};if(!_0x76d7x1a){return _0x76d7xf[_0xe2ca[21]](403)};return _0x76d7x10();})[_0xe2ca[17]](function(_0x76d7x11){return _0x76d7x10(_0x76d7x11)})})}function isUsersLimit(){return compose()[_0xe2ca[24]](function(_0x76d7xe,_0x76d7xf,_0x76d7x10){var _0x76d7x1c;return Settings[_0xe2ca[23]]({where:{id:1}})[_0xe2ca[22]](function(_0x76d7x12){_0x76d7x1c=_0x76d7x12;return User[_0xe2ca[36]]({where:{$or:[{role:_0xe2ca[34]},{role:_0xe2ca[35]}]}});})[_0xe2ca[33]](function(_0x76d7x1d){var _0x76d7x13=null,_0x76d7x1e=false;if(_0x76d7x1c[_0xe2ca[18]]){_0x76d7x13=decrypt(_0x76d7x1c[_0xe2ca[18]]);_0x76d7x13=JSON[_0xe2ca[19]](_0x76d7x13);}else {_0x76d7x13=demoLicense};if(_0x76d7x13[_0xe2ca[29]]>_0x76d7x1d){_0x76d7x1e=true};if(!_0x76d7x1e){return _0x76d7xf[_0xe2ca[32]](403)[_0xe2ca[31]]({message:_0xe2ca[30]})};return _0x76d7x10();})[_0xe2ca[17]](function(_0x76d7x11){return _0x76d7x10(_0x76d7x11)});})}function isTelephonesLimit(){return compose()[_0xe2ca[24]](function(_0x76d7xe,_0x76d7xf,_0x76d7x10){var _0x76d7x1c;return Settings[_0xe2ca[23]]({where:{id:1}})[_0xe2ca[22]](function(_0x76d7x12){_0x76d7x1c=_0x76d7x12;return User[_0xe2ca[36]]({where:{role:_0xe2ca[39]}});})[_0xe2ca[33]](function(_0x76d7x20){var _0x76d7x13=null,_0x76d7x1e=false;if(_0x76d7x1c[_0xe2ca[18]]){_0x76d7x13=decrypt(_0x76d7x1c[_0xe2ca[18]]);_0x76d7x13=JSON[_0xe2ca[19]](_0x76d7x13);}else {_0x76d7x13=demoLicense};if(_0x76d7x13[_0xe2ca[37]]>_0x76d7x20){_0x76d7x1e=true};if(!_0x76d7x1e){return _0x76d7xf[_0xe2ca[32]](403)[_0xe2ca[31]]({message:_0xe2ca[38]})};return _0x76d7x10();})[_0xe2ca[17]](function(_0x76d7x11){return _0x76d7x10(_0x76d7x11)});})}function isValidAgent(){return function(_0x76d7x22){var _0x76d7x1c;var _0x76d7x23=false;if(_0x76d7x22[_0xe2ca[40]]===_0xe2ca[34]||_0x76d7x22[_0xe2ca[40]]===_0xe2ca[35]||(_0x76d7x22[_0xe2ca[40]]===_0xe2ca[41]&&_0x76d7x22[_0xe2ca[42]])){_0x76d7x23=true};return Settings[_0xe2ca[23]]({where:{id:1}})[_0xe2ca[22]](function(_0x76d7x12){_0x76d7x1c=_0x76d7x12;return User[_0xe2ca[36]]({where:{role:_0xe2ca[41],online:true}});})[_0xe2ca[33]](function(_0x76d7x24){var _0x76d7x13=null;if(_0x76d7x1c[_0xe2ca[18]]){_0x76d7x13=decrypt(_0x76d7x1c[_0xe2ca[18]]);_0x76d7x13=JSON[_0xe2ca[19]](_0x76d7x13);}else {_0x76d7x13=demoLicense};if(_0x76d7x13[_0xe2ca[43]]>_0x76d7x24){_0x76d7x23=true};return _0x76d7x23;});}}function decrypt(_0x76d7x26){var _0x76d7x27=crypto[_0xe2ca[47]](_0xe2ca[44],util[_0xe2ca[46]](_0xe2ca[45],prefix,uuid,suffix));var _0x76d7x13=_0x76d7x27[_0xe2ca[50]](_0x76d7x26,_0xe2ca[48],_0xe2ca[49]);_0x76d7x13+=_0x76d7x27[_0xe2ca[51]](_0xe2ca[49]);return _0x76d7x13;}exports[_0xe2ca[52]]=isValidDate;exports[_0xe2ca[53]]=isUsersLimit;exports[_0xe2ca[54]]=isTelephonesLimit;exports[_0xe2ca[55]]=hasChat;exports[_0xe2ca[56]]=hasMail;exports[_0xe2ca[57]]=hasFax;exports[_0xe2ca[58]]=isValidAgent;exports[_0xe2ca[59]]=demoLicense;exports[_0xe2ca[60]]=decrypt;
\ No newline at end of file
+var _0x3f44=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x6D\x6F\x6D\x65\x6E\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","","\x72\x65\x70\x6C\x61\x63\x65","\x6F\x75\x74\x70\x75\x74","\x64\x6D\x69\x64\x65\x63\x6F\x64\x65\x20\x2D\x2D\x73\x74\x72\x69\x6E\x67\x20\x73\x79\x73\x74\x65\x6D\x2D\x75\x75\x69\x64","\x2D","\x73\x70\x6C\x69\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x53\x65\x74\x74\x69\x6E\x67\x73","\x44\x45\x4D\x4F\x20\x4C\x49\x43\x45\x4E\x53\x45","\x63\x61\x74\x63\x68","\x6C\x69\x63\x65\x6E\x73\x65","\x70\x61\x72\x73\x65","\x63\x68\x61\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x75\x73\x65","\x6D\x61\x69\x6C","\x66\x61\x78","\x65\x78\x70\x69\x72\x61\x74\x69\x6F\x6E","\x69\x73\x53\x61\x6D\x65\x4F\x72\x42\x65\x66\x6F\x72\x65","\x75\x73\x65\x72\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x75\x73\x65\x72\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x63\x6F\x75\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x6F\x6E\x6C\x69\x6E\x65","\x61\x67\x65\x6E\x74\x73","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x69\x73\x55\x73\x65\x72\x73\x4C\x69\x6D\x69\x74","\x69\x73\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x4C\x69\x6D\x69\x74","\x68\x61\x73\x43\x68\x61\x74","\x68\x61\x73\x4D\x61\x69\x6C","\x68\x61\x73\x46\x61\x78","\x69\x73\x56\x61\x6C\x69\x64\x41\x67\x65\x6E\x74","\x64\x65\x6D\x6F\x4C\x69\x63\x65\x6E\x73\x65","\x64\x65\x63\x72\x79\x70\x74"];_0x3f44[0];var compose=require(_0x3f44[1]);var moment=require(_0x3f44[2]);var crypto=require(_0x3f44[3]);var util=require(_0x3f44[4]);var config=require(_0x3f44[5]);var uuid=exec(_0x3f44[9],{silent:true})[_0x3f44[8]][_0x3f44[7]](/\r?\n|\r/g,_0x3f44[6]);var prefix=uuid[_0x3f44[11]](_0x3f44[10])[4];var suffix=uuid[_0x3f44[11]](_0x3f44[10])[0];var User=require(_0x3f44[13])[_0x3f44[12]];var Telephone=require(_0x3f44[13])[_0x3f44[14]];var Settings=require(_0x3f44[13])[_0x3f44[15]];var demoLicense={users:1,agents:1,telephones:0,chat:false,mail:false,fax:false,description:_0x3f44[16]};function hasChat(){return compose()[_0x3f44[24]](function(_0x4edbxe,_0x4edbxf,_0x4edbx10){return Settings[_0x3f44[23]]({where:{id:1}})[_0x3f44[22]](function(_0x4edbx12){var _0x4edbx13=null,_0x4edbx14=false;if(_0x4edbx12[_0x3f44[18]]){_0x4edbx13=decrypt(_0x4edbx12[_0x3f44[18]]);_0x4edbx13=JSON[_0x3f44[19]](_0x4edbx13);}else {_0x4edbx13=demoLicense};_0x4edbx14=_0x4edbx13[_0x3f44[20]];if(!_0x4edbx14){return _0x4edbxf[_0x3f44[21]](403)};return _0x4edbx10();})[_0x3f44[17]](function(_0x4edbx11){return _0x4edbx10(_0x4edbx11)})})}function hasMail(){return compose()[_0x3f44[24]](function(_0x4edbxe,_0x4edbxf,_0x4edbx10){return Settings[_0x3f44[23]]({where:{id:1}})[_0x3f44[22]](function(_0x4edbx12){var _0x4edbx13=null,_0x4edbx16=false;if(_0x4edbx12[_0x3f44[18]]){_0x4edbx13=decrypt(_0x4edbx12[_0x3f44[18]]);_0x4edbx13=JSON[_0x3f44[19]](_0x4edbx13);}else {_0x4edbx13=demoLicense};_0x4edbx16=_0x4edbx13[_0x3f44[25]];if(!_0x4edbx16){return _0x4edbxf[_0x3f44[21]](403)};return _0x4edbx10();})[_0x3f44[17]](function(_0x4edbx11){return _0x4edbx10(_0x4edbx11)})})}function hasFax(){return compose()[_0x3f44[24]](function(_0x4edbxe,_0x4edbxf,_0x4edbx10){return Settings[_0x3f44[23]]({where:{id:1}})[_0x3f44[22]](function(_0x4edbx12){var _0x4edbx13=null,_0x4edbx18=false;if(_0x4edbx12[_0x3f44[18]]){_0x4edbx13=decrypt(_0x4edbx12[_0x3f44[18]]);_0x4edbx13=JSON[_0x3f44[19]](_0x4edbx13);}else {_0x4edbx13=demoLicense};_0x4edbx18=_0x4edbx13[_0x3f44[26]];if(!_0x4edbx18){return _0x4edbxf[_0x3f44[21]](403)};return _0x4edbx10();})[_0x3f44[17]](function(_0x4edbx11){return _0x4edbx10(_0x4edbx11)})})}function isValidDate(){return compose()[_0x3f44[24]](function(_0x4edbxe,_0x4edbxf,_0x4edbx10){return Settings[_0x3f44[23]]({where:{id:1}})[_0x3f44[22]](function(_0x4edbx12){var _0x4edbx13=null,_0x4edbx1a=false;if(_0x4edbx12[_0x3f44[18]]){_0x4edbx13=decrypt(_0x4edbx12[_0x3f44[18]]);_0x4edbx13=JSON[_0x3f44[19]](_0x4edbx13);if(moment()[_0x3f44[28]](_0x4edbx13[_0x3f44[27]])){_0x4edbx1a=true};};if(!_0x4edbx1a){return _0x4edbxf[_0x3f44[21]](403)};return _0x4edbx10();})[_0x3f44[17]](function(_0x4edbx11){return _0x4edbx10(_0x4edbx11)})})}function isUsersLimit(){return compose()[_0x3f44[24]](function(_0x4edbxe,_0x4edbxf,_0x4edbx10){var _0x4edbx1c;return Settings[_0x3f44[23]]({where:{id:1}})[_0x3f44[22]](function(_0x4edbx12){_0x4edbx1c=_0x4edbx12;return User[_0x3f44[36]]({where:{$or:[{role:_0x3f44[34]},{role:_0x3f44[35]}]}});})[_0x3f44[33]](function(_0x4edbx1d){var _0x4edbx13=null,_0x4edbx1e=false;if(_0x4edbx1c[_0x3f44[18]]){_0x4edbx13=decrypt(_0x4edbx1c[_0x3f44[18]]);_0x4edbx13=JSON[_0x3f44[19]](_0x4edbx13);}else {_0x4edbx13=demoLicense};if(_0x4edbx13[_0x3f44[29]]>_0x4edbx1d){_0x4edbx1e=true};if(!_0x4edbx1e){return _0x4edbxf[_0x3f44[32]](403)[_0x3f44[31]]({message:_0x3f44[30]})};return _0x4edbx10();})[_0x3f44[17]](function(_0x4edbx11){return _0x4edbx10(_0x4edbx11)});})}function isTelephonesLimit(){return compose()[_0x3f44[24]](function(_0x4edbxe,_0x4edbxf,_0x4edbx10){var _0x4edbx1c;return Settings[_0x3f44[23]]({where:{id:1}})[_0x3f44[22]](function(_0x4edbx12){_0x4edbx1c=_0x4edbx12;return User[_0x3f44[36]]({where:{role:_0x3f44[39]}});})[_0x3f44[33]](function(_0x4edbx20){var _0x4edbx13=null,_0x4edbx1e=false;if(_0x4edbx1c[_0x3f44[18]]){_0x4edbx13=decrypt(_0x4edbx1c[_0x3f44[18]]);_0x4edbx13=JSON[_0x3f44[19]](_0x4edbx13);}else {_0x4edbx13=demoLicense};if(_0x4edbx13[_0x3f44[37]]>_0x4edbx20){_0x4edbx1e=true};if(!_0x4edbx1e){return _0x4edbxf[_0x3f44[32]](403)[_0x3f44[31]]({message:_0x3f44[38]})};return _0x4edbx10();})[_0x3f44[17]](function(_0x4edbx11){return _0x4edbx10(_0x4edbx11)});})}function isValidAgent(){return function(_0x4edbx22){var _0x4edbx1c;var _0x4edbx23=false;if(_0x4edbx22[_0x3f44[40]]===_0x3f44[34]||_0x4edbx22[_0x3f44[40]]===_0x3f44[35]||(_0x4edbx22[_0x3f44[40]]===_0x3f44[41]&&_0x4edbx22[_0x3f44[42]])){_0x4edbx23=true};return Settings[_0x3f44[23]]({where:{id:1}})[_0x3f44[22]](function(_0x4edbx12){_0x4edbx1c=_0x4edbx12;return User[_0x3f44[36]]({where:{role:_0x3f44[41],online:true}});})[_0x3f44[33]](function(_0x4edbx24){var _0x4edbx13=null;if(_0x4edbx1c[_0x3f44[18]]){_0x4edbx13=decrypt(_0x4edbx1c[_0x3f44[18]]);_0x4edbx13=JSON[_0x3f44[19]](_0x4edbx13);}else {_0x4edbx13=demoLicense};if(_0x4edbx13[_0x3f44[43]]>_0x4edbx24){_0x4edbx23=true};return _0x4edbx23;});}}function decrypt(_0x4edbx26){var _0x4edbx27=crypto[_0x3f44[47]](_0x3f44[44],util[_0x3f44[46]](_0x3f44[45],prefix,uuid,suffix));var _0x4edbx13=_0x4edbx27[_0x3f44[50]](_0x4edbx26,_0x3f44[48],_0x3f44[49]);_0x4edbx13+=_0x4edbx27[_0x3f44[51]](_0x3f44[49]);return _0x4edbx13;}exports[_0x3f44[52]]=isValidDate;exports[_0x3f44[53]]=isUsersLimit;exports[_0x3f44[54]]=isTelephonesLimit;exports[_0x3f44[55]]=hasChat;exports[_0x3f44[56]]=hasMail;exports[_0x3f44[57]]=hasFax;exports[_0x3f44[58]]=isValidAgent;exports[_0x3f44[59]]=demoLicense;exports[_0x3f44[60]]=decrypt;
\ No newline at end of file
index 96c93e3..3441836 100644 (file)
@@ -1 +1 @@
-var _0x7aef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x78\x63\x61\x6C\x6C\x79\x73\x68\x75\x74\x74\x6C\x65\x2D\x73\x65\x63\x72\x65\x74","\x61\x70\x70\x2D\x69\x64","\x73\x65\x63\x72\x65\x74",""];_0x7aef[0];module[_0x7aef[1]]={DOMAIN:_0x7aef[2],SESSION_SECRET:_0x7aef[3],FACEBOOK_ID:_0x7aef[4],FACEBOOK_SECRET:_0x7aef[5],TWITTER_ID:_0x7aef[4],TWITTER_SECRET:_0x7aef[5],GOOGLE_ID:_0x7aef[4],GOOGLE_SECRET:_0x7aef[5],DEBUG:_0x7aef[6]};
\ No newline at end of file
+var _0x892d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x78\x63\x61\x6C\x6C\x79\x73\x68\x75\x74\x74\x6C\x65\x2D\x73\x65\x63\x72\x65\x74","\x61\x70\x70\x2D\x69\x64","\x73\x65\x63\x72\x65\x74",""];_0x892d[0];module[_0x892d[1]]={DOMAIN:_0x892d[2],SESSION_SECRET:_0x892d[3],FACEBOOK_ID:_0x892d[4],FACEBOOK_SECRET:_0x892d[5],TWITTER_ID:_0x892d[4],TWITTER_SECRET:_0x892d[5],GOOGLE_ID:_0x892d[4],GOOGLE_SECRET:_0x892d[5],DEBUG:_0x892d[6]};
\ No newline at end of file
index 99f935b..f940ecb 100644 (file)
@@ -1 +1 @@
-var _0x15ab=["\x77\x69\x6E\x73\x74\x6F\x6E","\x70\x61\x74\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x6D\x69\x74\x45\x72\x72\x73","\x64\x65\x62\x75\x67","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x73","\x64\x65\x62\x75\x67\x54\x6F\x46\x69\x6C\x65","\x6C\x6F\x67\x67\x69\x6E\x67","\x64\x65\x62\x75\x67\x2D\x66\x69\x6C\x65","\x61\x64\x64","\x69\x6E\x66\x6F\x2D\x66\x69\x6C\x65","\x69\x6E\x66\x6F","\x77\x61\x72\x6E\x2D\x66\x69\x6C\x65","\x77\x61\x72\x6E","\x65\x72\x72\x6F\x72\x2D\x66\x69\x6C\x65","\x65\x72\x72\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x65\x61\x6D"];var winston=require(_0x15ab[0]);var path=require(_0x15ab[1]);var config=require(_0x15ab[2]);winston[_0x15ab[3]]=true;var debug= new winston.Logger({transports:[ new winston[_0x15ab[5]].Console({level:_0x15ab[4],handleExceptions:true,json:false,colorize:true})]});if(config[_0x15ab[7]][_0x15ab[6]]){debug[_0x15ab[9]](winston[_0x15ab[5]].File,{name:_0x15ab[8],level:_0x15ab[4],filename:config[_0x15ab[7]][_0x15ab[4]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false})};var info= new winston.Logger({transports:[ new winston[_0x15ab[5]].File({name:_0x15ab[10],level:_0x15ab[11],filename:config[_0x15ab[7]][_0x15ab[11]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0x15ab[5]].Console({level:_0x15ab[11],handleExceptions:true,json:false,colorize:true})]});var warn= new winston.Logger({transports:[ new winston[_0x15ab[5]].File({name:_0x15ab[12],level:_0x15ab[13],filename:config[_0x15ab[7]][_0x15ab[13]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0x15ab[5]].Console({level:_0x15ab[13],handleExceptions:true,json:false,colorize:true})]});var error= new winston.Logger({transports:[ new winston[_0x15ab[5]].File({name:_0x15ab[14],level:_0x15ab[15],filename:config[_0x15ab[7]][_0x15ab[15]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0x15ab[5]].Console({level:_0x15ab[15],handleExceptions:true,json:false,colorize:true})]});var loggers={debug:function(_0x96f1x9,_0x96f1xa){debug[_0x15ab[4]](_0x96f1x9,_0x96f1xa)},info:function(_0x96f1x9,_0x96f1xa){info[_0x15ab[11]](_0x96f1x9,_0x96f1xa)},warn:function(_0x96f1x9,_0x96f1xa){warn[_0x15ab[13]](_0x96f1x9,_0x96f1xa)},error:function(_0x96f1x9,_0x96f1xa){error[_0x15ab[15]](_0x96f1x9,_0x96f1xa)},log:function(_0x96f1xb,_0x96f1x9,_0x96f1xa){var _0x96f1xc=exports[_0x96f1xb];_0x96f1xc(_0x96f1x9,_0x96f1xa);}};module[_0x15ab[16]]=loggers;module[_0x15ab[16]][_0x15ab[17]]={write:function(_0x96f1xd,_0x96f1xe){loggers[_0x15ab[11]](_0x96f1xd)}};
\ No newline at end of file
+var _0xe95b=["\x77\x69\x6E\x73\x74\x6F\x6E","\x70\x61\x74\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x6D\x69\x74\x45\x72\x72\x73","\x64\x65\x62\x75\x67","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x73","\x64\x65\x62\x75\x67\x54\x6F\x46\x69\x6C\x65","\x6C\x6F\x67\x67\x69\x6E\x67","\x64\x65\x62\x75\x67\x2D\x66\x69\x6C\x65","\x61\x64\x64","\x69\x6E\x66\x6F\x2D\x66\x69\x6C\x65","\x69\x6E\x66\x6F","\x77\x61\x72\x6E\x2D\x66\x69\x6C\x65","\x77\x61\x72\x6E","\x65\x72\x72\x6F\x72\x2D\x66\x69\x6C\x65","\x65\x72\x72\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x65\x61\x6D"];var winston=require(_0xe95b[0]);var path=require(_0xe95b[1]);var config=require(_0xe95b[2]);winston[_0xe95b[3]]=true;var debug= new winston.Logger({transports:[ new winston[_0xe95b[5]].Console({level:_0xe95b[4],handleExceptions:true,json:false,colorize:true})]});if(config[_0xe95b[7]][_0xe95b[6]]){debug[_0xe95b[9]](winston[_0xe95b[5]].File,{name:_0xe95b[8],level:_0xe95b[4],filename:config[_0xe95b[7]][_0xe95b[4]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false})};var info= new winston.Logger({transports:[ new winston[_0xe95b[5]].File({name:_0xe95b[10],level:_0xe95b[11],filename:config[_0xe95b[7]][_0xe95b[11]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0xe95b[5]].Console({level:_0xe95b[11],handleExceptions:true,json:false,colorize:true})]});var warn= new winston.Logger({transports:[ new winston[_0xe95b[5]].File({name:_0xe95b[12],level:_0xe95b[13],filename:config[_0xe95b[7]][_0xe95b[13]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0xe95b[5]].Console({level:_0xe95b[13],handleExceptions:true,json:false,colorize:true})]});var error= new winston.Logger({transports:[ new winston[_0xe95b[5]].File({name:_0xe95b[14],level:_0xe95b[15],filename:config[_0xe95b[7]][_0xe95b[15]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0xe95b[5]].Console({level:_0xe95b[15],handleExceptions:true,json:false,colorize:true})]});var loggers={debug:function(_0x7827x9,_0x7827xa){debug[_0xe95b[4]](_0x7827x9,_0x7827xa)},info:function(_0x7827x9,_0x7827xa){info[_0xe95b[11]](_0x7827x9,_0x7827xa)},warn:function(_0x7827x9,_0x7827xa){warn[_0xe95b[13]](_0x7827x9,_0x7827xa)},error:function(_0x7827x9,_0x7827xa){error[_0xe95b[15]](_0x7827x9,_0x7827xa)},log:function(_0x7827xb,_0x7827x9,_0x7827xa){var _0x7827xc=exports[_0x7827xb];_0x7827xc(_0x7827x9,_0x7827xa);}};module[_0xe95b[16]]=loggers;module[_0xe95b[16]][_0xe95b[17]]={write:function(_0x7827xd,_0x7827xe){loggers[_0xe95b[11]](_0x7827xd)}};
\ No newline at end of file
index aa71c06..0a537e2 100644 (file)
@@ -1 +1 @@
-var _0x6e3d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x75\x73\x65\x72\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x6C\x6F\x63\x61\x6C","\x61\x67\x65\x6E\x74","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x43\x61\x72\x65\x72\x69","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69","\x37\x35\x78\x63\x61\x6C\x6C\x79\x37\x35","\x64\x79\x6E\x61\x6D\x69\x63","\x46\x52\x49\x45\x4E\x44","\x75\x64\x70","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x79\x65\x73","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x61\x6C\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x61\x6E\x69\x65\x6C\x65\x20\x43\x69\x6E\x74\x69","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69","\x41\x6E\x64\x72\x65\x61\x20\x42\x69\x61\x6E\x63\x6F","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F","\x4D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x20\x42\x75\x6E\x67\x61\x72\x6F","\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F","\x56\x61\x6C\x65\x72\x69\x6F\x20\x43\x69\x6F\x74\x74\x61","\x76\x61\x6C\x65\x72\x69\x6F\x2E\x63\x69\x6F\x74\x74\x61\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x76\x61\x6C\x65\x72\x69\x6F\x2E\x63\x69\x6F\x74\x74\x61","\x61\x64\x6D\x69\x6E","\x43\x6C\x61\x72\x6F\x74\x65\x63\x68","\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x6C\x61\x72\x6F\x74\x65\x63\x68","\x41\x62\x69\x67\x61\x65\x6C","\x61\x62\x69\x67\x61\x65\x6C\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x62\x69\x67\x61\x65\x6C","\x54\x6F\x6E\x79\x20\x52\x75\x73\x73\x65\x6C\x6C","\x74\x6F\x6E\x79\x72\x40\x78\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x2E\x63\x6F\x2E\x7A\x61","\x74\x6F\x6E\x79\x2E\x72\x75\x73\x73\x65\x6C\x6C","\x43\x6F\x6C\x69\x6E\x20\x46\x61\x69\x72","\x63\x6F\x6C\x69\x6E\x66\x40\x78\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x2E\x63\x6F\x2E\x7A\x61","\x63\x6F\x6C\x69\x6E\x2E\x66\x61\x69\x72","\x44\x69\x65\x67\x6F\x20\x47\x6F\x73\x6D\x61\x72","\x64\x69\x65\x67\x6F\x2E\x67\x6F\x73\x6D\x61\x72\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x69\x65\x67\x6F\x2E\x67\x6F\x73\x6D\x61\x72","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x49\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x69\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x69\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F","\x75\x70\x64","\x41\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x20\x42\x65\x73\x73\x6F\x6E\x65","\x61\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x2E\x62\x65\x73\x73\x6F\x6E\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x2E\x62\x65\x73\x73\x6F\x6E\x65","\x46\x65\x6C\x69\x63\x65\x20\x42\x72\x69\x73\x63\x65\x73\x65","\x66\x65\x6C\x69\x63\x65\x2E\x62\x72\x69\x73\x63\x65\x73\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x66\x65\x6C\x69\x63\x65\x2E\x62\x72\x69\x73\x63\x65\x73\x65","\x78\x43\x61\x6C\x6C\x79","\x69\x6E\x66\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x78\x63\x61\x6C\x6C\x79","\x33\x38\x38\x78\x73\x68\x75\x74\x74\x6C\x65\x33\x38\x38","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x74\x72\x75\x6E\x6B\x73","\x63\x69\x74\x61\x6C\x69\x61","\x66\x72\x69\x65\x6E\x64","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x30\x31\x31\x31\x39\x38\x32\x37\x37\x37\x30","\x54\x21\x4E\x50\x6E\x76\x2D\x71\x6A\x43\x4D\x65\x39\x76","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x74","\x76\x6F\x69\x70\x2E\x65\x75\x74\x65\x6C\x69\x61\x2E\x69\x74","\x72\x66\x63\x32\x38\x33\x33","\x20\x22\x22\x20\x3C\x3E","\x75\x6C\x61\x77\x3B\x61\x6C\x61\x77\x3B\x67\x73\x6D","\x6E\x6F","\x54\x72\x75\x6E\x6B","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x64\x75\x6C\x65\x73","\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x42\x4F\x41\x52\x44","\x75\x73\x65\x72\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x55\x53\x45\x52\x53","\x61\x67\x65\x6E\x74\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x47\x45\x4E\x54\x53","\x74\x65\x61\x6D\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x54\x45\x41\x4D\x53","\x63\x68\x61\x74","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x48\x41\x54","\x76\x6F\x69\x63\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45","\x6D\x61\x69\x6C","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x4D\x41\x49\x4C","\x66\x61\x78","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x46\x41\x58","\x61\x75\x64\x69\x6F","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x55\x44\x49\x4F","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x41\x4C\x4C\x59\x53\x51\x55\x41\x52\x45","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x4E\x41\x4C\x59\x54\x49\x43\x53","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x52\x45\x41\x4C\x54\x49\x4D\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x53","\x73\x65\x74\x74\x69\x6E\x67\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x53\x45\x54\x54\x49\x4E\x47\x53","\x4D\x6F\x64\x75\x6C\x65","\x63\x61\x74\x63\x68","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x71\x75\x65\x75\x65\x20\x31","\x69\x64","\x70\x6C\x75\x63\x6B","\x61\x64\x64\x55\x73\x65\x72\x73","\x54\x31","\x66\x69\x6E\x64\x4F\x6E\x65","\x54\x65\x61\x6D","\x43\x51\x31","\x43\x51\x31\x20\x44\x65\x73\x63","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x63\x72\x65\x61\x74\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x31","\x74\x65\x61\x6D\x20\x66\x6F\x75\x6E\x64","\x74\x65\x73\x74","\x4D\x51\x31","\x4D\x51\x31\x20\x44\x65\x73\x63","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x71\x75\x65\x75\x65\x20\x31","\x46\x51\x31","\x46\x51\x31\x20\x44\x65\x73\x63","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x44\x65\x66\x61\x75\x6C\x74\x20\x54\x65\x61\x6D","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x61\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x73\x65\x72\x76\x65\x72\x20\x69\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x73\x65\x72\x76\x65\x72\x20\x6F\x75\x74","\x73\x6D\x74\x70\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x68\x6F\x6B\x75\x63\x6C\x6F\x6B\x61","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x69\x6D\x61\x70\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x49\x4E\x42\x4F\x58","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x78\x43\x61\x6C\x6C\x79\x20\x44\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x4E\x6F\x4F\x70","\x46\x61\x78\x20\x55\x55\x49\x44\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x55\x73\x65\x72\x45\x76\x65\x6E\x74","\x46\x61\x78\x2C\x75\x75\x69\x64\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x53\x65\x74","\x46\x41\x58\x4F\x50\x54\x28\x66\x69\x6C\x65\x6E\x61\x6D\x65\x29\x3A\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x24\x7B\x45\x43\x4D\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x24\x7B\x46\x41\x58\x48\x45\x41\x44\x45\x52\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x3A\x24\x7B\x4C\x4F\x43\x41\x4C\x49\x44\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x41\x58\x52\x41\x54\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x49\x4E\x52\x41\x54\x45\x7D","\x53\x65\x6E\x64\x46\x41\x58","\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x2C\x64","\x45\x52\x52\x4F\x52\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x4E\x4F\x5F\x53\x54\x41\x54\x55\x53\x22\x20\x22\x4E\x4F\x5F\x50\x41\x47\x45\x53\x22","\x68","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x53\x74\x72\x69\x6E\x67\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D","\x46\x61\x78\x45\x72\x72\x6F\x72\x20\x3A\x20\x24\x7B\x46\x41\x58\x45\x52\x52\x4F\x52\x7D","\x52\x65\x6D\x6F\x74\x65\x53\x74\x61\x74\x69\x6F\x6E\x49\x44\x20\x3A\x20\x24\x7B\x52\x45\x4D\x4F\x54\x45\x53\x54\x41\x54\x49\x4F\x4E\x49\x44\x7D","\x46\x61\x78\x50\x61\x67\x65\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D","\x46\x61\x78\x42\x69\x74\x52\x61\x74\x65\x20\x3A\x20\x24\x7B\x46\x41\x58\x42\x49\x54\x52\x41\x54\x45\x7D","\x46\x61\x78\x52\x65\x73\x6F\x6C\x75\x74\x69\x6F\x6E\x20\x3A\x20\x24\x7B\x46\x41\x58\x52\x45\x53\x4F\x4C\x55\x54\x49\x4F\x4E\x7D","\x4F\x4B\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D\x22","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x2A\x2A\x2A\x2A\x20\x46\x41\x58\x20\x52\x45\x43\x45\x49\x56\x45\x44\x20\x66\x72\x6F\x6D\x20\x24\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x63\x29\x7D\x20\x2A\x2A\x2A\x2A","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x79\x65\x73","\x46\x49\x4C\x45\x4E\x41\x4D\x45\x3A\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D","\x46\x41\x58\x46\x49\x4C\x45\x3A\x24\x7B\x46\x49\x4C\x45\x4E\x41\x4D\x45\x7D\x2E\x74\x69\x66","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x52\x65\x63\x65\x69\x76\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x4D\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x7D","\x2A\x2A\x2A\x2A\x20\x52\x45\x43\x45\x49\x56\x49\x4E\x47\x20\x46\x41\x58\x20\x3A\x20\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x20\x2A\x2A\x2A\x2A","\x52\x65\x63\x65\x69\x76\x65\x46\x61\x78","\x2F\x74\x6D\x70\x2F\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x48\x61\x6E\x67\x75\x70","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x71\x75\x61\x72\x65\x20\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x31","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65\x20\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x31","\x71\x75\x65\x75\x65","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65\x20\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x32","\x78\x43\x61\x6C\x6C\x79\x20\x53\x68\x6F\x70","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x23\x66\x35\x31\x31\x31\x31","\x68\x74\x74\x70\x3A\x2F\x2F\x31\x38\x35\x2E\x34\x33\x2E\x32\x31\x30\x2E\x35\x37\x3A\x39\x30\x30\x30","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x20\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x27\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E\x27","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x31","\x56\x61\x72\x69\x61\x62\x6C\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x68\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x61\x75\x6C\x74","\x66\x69\x6C\x65\x73","\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68","\x61\x6C\x70\x68\x61","\x77\x61\x76","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x53\x65\x74\x74\x69\x6E\x67\x73","\x4D\x6F\x74\x69\x6F\x6E\x20\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6C\x6F\x63\x6B","\x43\x6C\x6F\x63\x6B","\x68\x68\x3A\x6D\x6D\x3A\x73\x73\x20\x61","\x64\x64\x64\x64\x2C\x20\x4D\x4D\x4D\x4D\x20\x44\x6F\x20\x59\x59\x59\x59","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x69\x66\x72\x61\x6D\x65","\x49\x66\x72\x61\x6D\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x65\x6D\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B","\x31\x2E\x30\x2E\x30","\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x73\x2E\x72\x2E\x6C\x2E","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x7A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x5A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x32\x2E\x70\x6E\x67","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2E\x70\x6E\x67","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x53\x75\x67\x61\x72\x43\x52\x4D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x32\x2E\x70\x6E\x67","\x73\x75\x67\x61\x72\x63\x72\x6D","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x75\x67\x61\x72\x43\x52\x4D","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x4D\x6F\x74\x69\x6F\x6E\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x72\x6F\x63\x6B\x65\x74\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x7D\x5D","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x62\x6F\x6F\x6B\x2D\x6F\x70\x65\x6E\x22\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x31\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x74\x72\x75\x65\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x32\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x7D\x5D","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65"];_0x6e3d[0];var _=require(_0x6e3d[1]);var models=require(_0x6e3d[2]);models[_0x6e3d[69]][_0x6e3d[68]]([{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[8],email:_0x6e3d[9],name:_0x6e3d[10],password:_0x6e3d[11],defaultuser:_0x6e3d[10],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1000},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[20],email:_0x6e3d[21],name:_0x6e3d[22],password:_0x6e3d[11],defaultuser:_0x6e3d[22],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1001},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[23],email:_0x6e3d[24],name:_0x6e3d[25],password:_0x6e3d[11],defaultuser:_0x6e3d[25],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1002},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[26],email:_0x6e3d[27],name:_0x6e3d[28],password:_0x6e3d[11],defaultuser:_0x6e3d[28],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1003},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[29],email:_0x6e3d[30],name:_0x6e3d[31],password:_0x6e3d[11],defaultuser:_0x6e3d[31],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1004},{provider:_0x6e3d[6],role:_0x6e3d[32],fullname:_0x6e3d[33],email:_0x6e3d[34],name:_0x6e3d[35],password:_0x6e3d[35],defaultuser:_0x6e3d[35],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1005},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[36],email:_0x6e3d[37],name:_0x6e3d[38],password:_0x6e3d[11],defaultuser:_0x6e3d[38],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1006},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[39],email:_0x6e3d[40],name:_0x6e3d[41],password:_0x6e3d[35],defaultuser:_0x6e3d[41],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1007},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[42],email:_0x6e3d[43],name:_0x6e3d[44],password:_0x6e3d[35],defaultuser:_0x6e3d[44],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1008},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[45],email:_0x6e3d[46],name:_0x6e3d[47],password:_0x6e3d[11],defaultuser:_0x6e3d[47],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1009},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[48],email:_0x6e3d[49],name:_0x6e3d[50],password:_0x6e3d[11],defaultuser:_0x6e3d[50],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[51],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1010},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[52],email:_0x6e3d[53],name:_0x6e3d[54],password:_0x6e3d[11],defaultuser:_0x6e3d[54],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[51],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1011},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[55],email:_0x6e3d[56],name:_0x6e3d[57],password:_0x6e3d[11],defaultuser:_0x6e3d[57],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[51],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1012},{provider:_0x6e3d[6],role:_0x6e3d[32],fullname:_0x6e3d[58],email:_0x6e3d[59],name:_0x6e3d[60],password:_0x6e3d[61],defaultuser:_0x6e3d[60],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1013},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[62],email:_0x6e3d[63],name:_0x6e3d[64],password:_0x6e3d[11],defaultuser:_0x6e3d[64],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1014},{provider:_0x6e3d[6],role:_0x6e3d[7],fullname:_0x6e3d[65],email:_0x6e3d[66],name:_0x6e3d[67],password:_0x6e3d[11],defaultuser:_0x6e3d[67],host:_0x6e3d[12],type:_0x6e3d[13],transport:_0x6e3d[14],allow:_0x6e3d[15],qualify:_0x6e3d[16],nat:_0x6e3d[17],disallow:_0x6e3d[18],context:_0x6e3d[19],internal:1015}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[3])});models[_0x6e3d[83]][_0x6e3d[68]]([{name:_0x6e3d[71],type:_0x6e3d[72],insecure:_0x6e3d[73],defaultuser:_0x6e3d[74],secret:_0x6e3d[75],password:_0x6e3d[75],context:_0x6e3d[76],language:_0x6e3d[77],host:_0x6e3d[78],fromdomain:_0x6e3d[78],dtmfmode:_0x6e3d[79],qualify:_0x6e3d[16],nat:_0x6e3d[17],callerid:_0x6e3d[80],limitonpeers:_0x6e3d[16],callcounter:_0x6e3d[16],disallow:_0x6e3d[18],allow:_0x6e3d[81],canreinvite:_0x6e3d[82],directmedia:_0x6e3d[82]}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[70])});models[_0x6e3d[113]][_0x6e3d[68]]([{name:_0x6e3d[85],title:_0x6e3d[86]},{name:_0x6e3d[87],title:_0x6e3d[88]},{name:_0x6e3d[89],title:_0x6e3d[90]},{name:_0x6e3d[91],title:_0x6e3d[92]},{name:_0x6e3d[93],title:_0x6e3d[94]},{name:_0x6e3d[95],title:_0x6e3d[96]},{name:_0x6e3d[97],title:_0x6e3d[98]},{name:_0x6e3d[99],title:_0x6e3d[100]},{name:_0x6e3d[101],title:_0x6e3d[102]},{name:_0x6e3d[103],title:_0x6e3d[104]},{name:_0x6e3d[105],title:_0x6e3d[106]},{name:_0x6e3d[107],title:_0x6e3d[108]},{name:_0x6e3d[109],title:_0x6e3d[110]},{name:_0x6e3d[111],title:_0x6e3d[112]}],{ignoreDuplicates:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[84])});models[_0x6e3d[121]][_0x6e3d[125]]({name:_0x6e3d[119],description:_0x6e3d[138],defaultEntry:true})[_0x6e3d[5]](function(_0xc657x4){models[_0x6e3d[69]][_0x6e3d[137]]({where:{role:_0x6e3d[7]}})[_0x6e3d[5]](function(_0xc657x5){_0xc657x4[_0x6e3d[118]](_[_0x6e3d[117]](_0xc657x5,_0x6e3d[116]))[_0x6e3d[5]](function(){models[_0x6e3d[126]][_0x6e3d[125]]({name:_0x6e3d[122],description:_0x6e3d[123],timeout:5,strategy:_0x6e3d[124]})[_0x6e3d[5]](function(_0xc657x6){console[_0x6e3d[4]](_0x6e3d[115]);models[_0x6e3d[121]][_0x6e3d[120]]({where:{name:_0x6e3d[119]},include:[{all:true}]})[_0x6e3d[5]](function(_0xc657x4){_0xc657x6[_0x6e3d[118]](_[_0x6e3d[117]](_0xc657x4.Users,_0x6e3d[116]))[_0x6e3d[114]](function(_0xc657x3){})})[_0x6e3d[114]](function(_0xc657x3){});});models[_0x6e3d[132]][_0x6e3d[125]]({name:_0x6e3d[130],description:_0x6e3d[131],timeout:5,strategy:_0x6e3d[124]})[_0x6e3d[5]](function(_0xc657x7){console[_0x6e3d[4]](_0x6e3d[127]);models[_0x6e3d[121]][_0x6e3d[120]]({where:{name:_0x6e3d[119]},include:[{all:true}]})[_0x6e3d[5]](function(_0xc657x4){if(_0xc657x4){console[_0x6e3d[4]](_0x6e3d[128])}else {console[_0x6e3d[4]](_0x6e3d[129])};_0xc657x7[_0x6e3d[118]](_[_0x6e3d[117]](_0xc657x4.Users,_0x6e3d[116]))[_0x6e3d[114]](function(_0xc657x3){});})[_0x6e3d[114]](function(_0xc657x3){});});models[_0x6e3d[136]][_0x6e3d[125]]({name:_0x6e3d[134],description:_0x6e3d[135],timeout:5,strategy:_0x6e3d[124]})[_0x6e3d[5]](function(_0xc657x8){console[_0x6e3d[4]](_0x6e3d[133]);models[_0x6e3d[121]][_0x6e3d[120]]({where:{name:_0x6e3d[119]},include:[{all:true}]})[_0x6e3d[5]](function(_0xc657x4){_0xc657x8[_0x6e3d[118]](_[_0x6e3d[117]](_0xc657x4.Users,_0x6e3d[116]))[_0x6e3d[114]](function(_0xc657x3){})})[_0x6e3d[114]](function(_0xc657x3){});});})[_0x6e3d[114]](function(_0xc657x3){})})[_0x6e3d[114]](function(_0xc657x3){})})[_0x6e3d[114]](function(_0xc657x3){});models[_0x6e3d[152]][_0x6e3d[125]]({name:_0x6e3d[151],description:_0x6e3d[151],address:_0x6e3d[143]})[_0x6e3d[5]](function(_0xc657x9){console[_0x6e3d[4]](_0x6e3d[139]);models[_0x6e3d[150]][_0x6e3d[125]]({description:_0x6e3d[60],host:_0x6e3d[146],username:_0x6e3d[143],password:_0x6e3d[144],port:143,mailbox:_0x6e3d[147],ssl:false,delete:false,filter:_0x6e3d[148],protocol:_0x6e3d[149],MailAccountId:_0xc657x9[_0x6e3d[116]]})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[140]);models[_0x6e3d[145]][_0x6e3d[125]]({description:_0x6e3d[60],host:_0x6e3d[142],username:_0x6e3d[143],password:_0x6e3d[144],port:587,ssl:false,MailAccountId:_0xc657x9[_0x6e3d[116]]})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[141])})[_0x6e3d[114]](function(_0xc657x3){});})[_0x6e3d[114]](function(_0xc657x3){});});models[_0x6e3d[180]][_0x6e3d[68]]([{context:_0x6e3d[154],exten:_0x6e3d[155],priority:1,app:_0x6e3d[156],appdata:_0x6e3d[157],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:2,app:_0x6e3d[158],appdata:_0x6e3d[159],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:3,app:_0x6e3d[160],appdata:_0x6e3d[161],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:4,app:_0x6e3d[160],appdata:_0x6e3d[162],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:5,app:_0x6e3d[160],appdata:_0x6e3d[163],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:6,app:_0x6e3d[160],appdata:_0x6e3d[164],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:7,app:_0x6e3d[160],appdata:_0x6e3d[165],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:8,app:_0x6e3d[160],appdata:_0x6e3d[166],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:9,app:_0x6e3d[167],appdata:_0x6e3d[168],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[155],priority:10,app:_0x6e3d[156],appdata:_0x6e3d[169],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:1,app:_0x6e3d[156],appdata:_0x6e3d[171],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:2,app:_0x6e3d[156],appdata:_0x6e3d[172],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:3,app:_0x6e3d[156],appdata:_0x6e3d[173],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:4,app:_0x6e3d[156],appdata:_0x6e3d[174],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:5,app:_0x6e3d[156],appdata:_0x6e3d[175],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:6,app:_0x6e3d[156],appdata:_0x6e3d[176],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:7,app:_0x6e3d[156],appdata:_0x6e3d[177],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:8,app:_0x6e3d[156],appdata:_0x6e3d[178],type:_0x6e3d[154]},{context:_0x6e3d[154],exten:_0x6e3d[170],priority:9,app:_0x6e3d[156],appdata:_0x6e3d[179],type:_0x6e3d[154]}],{ignoreDuplicates:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[153])});models[_0x6e3d[180]][_0x6e3d[68]]([{context:_0x6e3d[181],exten:_0x6e3d[155],priority:1,app:_0x6e3d[156],appdata:_0x6e3d[182],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:2,app:_0x6e3d[160],appdata:_0x6e3d[183],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:3,app:_0x6e3d[160],appdata:_0x6e3d[184],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:4,app:_0x6e3d[160],appdata:_0x6e3d[185],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:5,app:_0x6e3d[160],appdata:_0x6e3d[186],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:6,app:_0x6e3d[160],appdata:_0x6e3d[164],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:7,app:_0x6e3d[160],appdata:_0x6e3d[165],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:8,app:_0x6e3d[160],appdata:_0x6e3d[166],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:9,app:_0x6e3d[156],appdata:_0x6e3d[171],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:10,app:_0x6e3d[156],appdata:_0x6e3d[187],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:11,app:_0x6e3d[156],appdata:_0x6e3d[188],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:12,app:_0x6e3d[156],appdata:_0x6e3d[189],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:13,app:_0x6e3d[156],appdata:_0x6e3d[190],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:14,app:_0x6e3d[156],appdata:_0x6e3d[191],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:15,app:_0x6e3d[192],appdata:_0x6e3d[193],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[155],priority:16,app:_0x6e3d[194],type:_0x6e3d[181]},{context:_0x6e3d[181],exten:_0x6e3d[170],priority:1,app:_0x6e3d[156],appdata:_0x6e3d[171],type:_0x6e3d[181]}],{ignoreDuplicates:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[153])});models[_0x6e3d[198]][_0x6e3d[68]]([{name:_0x6e3d[196],description:_0x6e3d[197]}],{ignoreDuplicates:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[195])});models[_0x6e3d[218]][_0x6e3d[125]]({name:_0x6e3d[204],description:_0x6e3d[204],address:_0x6e3d[205],color:_0x6e3d[206],color_focus:_0x6e3d[206],color_button:_0x6e3d[206],remote:_0x6e3d[207],animation:true,header_shape:_0x6e3d[208],header_online:_0x6e3d[209],online_message:_0x6e3d[210],username_placeholder:_0x6e3d[211],email_placeholder:_0x6e3d[212],start_chat_button:_0x6e3d[213],header_offline:_0x6e3d[214],offline_message:_0x6e3d[215],enquiry_message_placeholder:_0x6e3d[216],enquiry_button:_0x6e3d[217],download_transcript:true})[_0x6e3d[5]](function(_0xc657xa){console[_0x6e3d[4]](_0x6e3d[199]);models[_0x6e3d[126]][_0x6e3d[137]]()[_0x6e3d[5]](function(_0xc657xb){models[_0x6e3d[202]][_0x6e3d[125]]({app:_0x6e3d[201],appdata:_0xc657xb[0][_0x6e3d[116]],priority:1,timeout:30,ChatWebsiteId:_0xc657xa[_0x6e3d[116]],ChatQueueId:_0xc657xb[0][_0x6e3d[116]]})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[200])})[_0x6e3d[114]](function(_0xc657x3){});models[_0x6e3d[202]][_0x6e3d[125]]({app:_0x6e3d[201],appdata:_0xc657xb[1][_0x6e3d[116]],priority:2,timeout:30,ChatWebsiteId:_0xc657xa[_0x6e3d[116]],ChatQueueId:_0xc657xb[1][_0x6e3d[116]]})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[203])})[_0x6e3d[114]](function(_0xc657x3){});})[_0x6e3d[114]](function(_0xc657x3){});})[_0x6e3d[114]](function(_0xc657x3){});models[_0x6e3d[221]][_0x6e3d[68]]([{name:_0x6e3d[220],description:_0x6e3d[197]}],{ignoreDuplicates:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[219])});models[_0x6e3d[224]][_0x6e3d[68]]([{name:_0x6e3d[19],description:_0x6e3d[223],defaultEntry:true},{name:_0x6e3d[76],description:_0x6e3d[223],defaultEntry:true},{name:_0x6e3d[181],description:_0x6e3d[223],defaultEntry:true},{name:_0x6e3d[154],description:_0x6e3d[223],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[222])});models[_0x6e3d[231]][_0x6e3d[68]]([{name:_0x6e3d[226],mode:_0x6e3d[227],directory:_0x6e3d[228],sort:_0x6e3d[229],format:_0x6e3d[230],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[225])});models[_0x6e3d[232]][_0x6e3d[68]]([{id:1,min_internal:1000}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[225])});models[_0x6e3d[244]][_0x6e3d[68]]([{name:_0x6e3d[233],model:JSON[_0x6e3d[243]]({title:_0x6e3d[233],rows:[{columns:[{styleClass:_0x6e3d[234],widgets:[{type:_0x6e3d[235],title:_0x6e3d[236],config:{timePattern:_0x6e3d[237],datePattern:_0x6e3d[238]}}]},{styleClass:_0x6e3d[239],widgets:[{type:_0x6e3d[240],title:_0x6e3d[241],config:{url:_0x6e3d[242]}}]}]}]}),defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[225])});models[_0x6e3d[268]][_0x6e3d[68]]([{name:_0x6e3d[246],version:_0x6e3d[247],active:false,author:_0x6e3d[248],logo:_0x6e3d[249],state:_0x6e3d[250],description:_0x6e3d[251]},{name:_0x6e3d[252],version:_0x6e3d[247],active:false,author:_0x6e3d[248],logo:_0x6e3d[253],state:_0x6e3d[254],description:_0x6e3d[255]},{name:_0x6e3d[256],version:_0x6e3d[247],active:false,author:_0x6e3d[248],logo:_0x6e3d[257],state:_0x6e3d[258],description:_0x6e3d[259]},{name:_0x6e3d[260],version:_0x6e3d[247],active:false,author:_0x6e3d[248],logo:_0x6e3d[261],state:_0x6e3d[262],description:_0x6e3d[263]},{name:_0x6e3d[264],version:_0x6e3d[247],active:false,author:_0x6e3d[248],logo:_0x6e3d[265],state:_0x6e3d[266],description:_0x6e3d[267]}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[245])});models[_0x6e3d[271]][_0x6e3d[68]]([{id:1,tree:_0x6e3d[269]},{id:2,tree:_0x6e3d[270]}],{ignoreDuplicates:true,individualHooks:true})[_0x6e3d[5]](function(){console[_0x6e3d[4]](_0x6e3d[245])});
\ No newline at end of file
+var _0x7bb2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x75\x73\x65\x72\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x6C\x6F\x63\x61\x6C","\x61\x67\x65\x6E\x74","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x43\x61\x72\x65\x72\x69","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69","\x37\x35\x78\x63\x61\x6C\x6C\x79\x37\x35","\x64\x79\x6E\x61\x6D\x69\x63","\x46\x52\x49\x45\x4E\x44","\x75\x64\x70","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x79\x65\x73","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x61\x6C\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x61\x6E\x69\x65\x6C\x65\x20\x43\x69\x6E\x74\x69","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69","\x41\x6E\x64\x72\x65\x61\x20\x42\x69\x61\x6E\x63\x6F","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F","\x4D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x20\x42\x75\x6E\x67\x61\x72\x6F","\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F","\x56\x61\x6C\x65\x72\x69\x6F\x20\x43\x69\x6F\x74\x74\x61","\x76\x61\x6C\x65\x72\x69\x6F\x2E\x63\x69\x6F\x74\x74\x61\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x76\x61\x6C\x65\x72\x69\x6F\x2E\x63\x69\x6F\x74\x74\x61","\x61\x64\x6D\x69\x6E","\x43\x6C\x61\x72\x6F\x74\x65\x63\x68","\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x6C\x61\x72\x6F\x74\x65\x63\x68","\x41\x62\x69\x67\x61\x65\x6C","\x61\x62\x69\x67\x61\x65\x6C\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x62\x69\x67\x61\x65\x6C","\x54\x6F\x6E\x79\x20\x52\x75\x73\x73\x65\x6C\x6C","\x74\x6F\x6E\x79\x72\x40\x78\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x2E\x63\x6F\x2E\x7A\x61","\x74\x6F\x6E\x79\x2E\x72\x75\x73\x73\x65\x6C\x6C","\x43\x6F\x6C\x69\x6E\x20\x46\x61\x69\x72","\x63\x6F\x6C\x69\x6E\x66\x40\x78\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x2E\x63\x6F\x2E\x7A\x61","\x63\x6F\x6C\x69\x6E\x2E\x66\x61\x69\x72","\x44\x69\x65\x67\x6F\x20\x47\x6F\x73\x6D\x61\x72","\x64\x69\x65\x67\x6F\x2E\x67\x6F\x73\x6D\x61\x72\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x69\x65\x67\x6F\x2E\x67\x6F\x73\x6D\x61\x72","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x49\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x69\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x69\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F","\x75\x70\x64","\x41\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x20\x42\x65\x73\x73\x6F\x6E\x65","\x61\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x2E\x62\x65\x73\x73\x6F\x6E\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x2E\x62\x65\x73\x73\x6F\x6E\x65","\x46\x65\x6C\x69\x63\x65\x20\x42\x72\x69\x73\x63\x65\x73\x65","\x66\x65\x6C\x69\x63\x65\x2E\x62\x72\x69\x73\x63\x65\x73\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x66\x65\x6C\x69\x63\x65\x2E\x62\x72\x69\x73\x63\x65\x73\x65","\x78\x43\x61\x6C\x6C\x79","\x69\x6E\x66\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x78\x63\x61\x6C\x6C\x79","\x33\x38\x38\x78\x73\x68\x75\x74\x74\x6C\x65\x33\x38\x38","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x74\x72\x75\x6E\x6B\x73","\x63\x69\x74\x61\x6C\x69\x61","\x66\x72\x69\x65\x6E\x64","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x30\x31\x31\x31\x39\x38\x32\x37\x37\x37\x30","\x54\x21\x4E\x50\x6E\x76\x2D\x71\x6A\x43\x4D\x65\x39\x76","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x74","\x76\x6F\x69\x70\x2E\x65\x75\x74\x65\x6C\x69\x61\x2E\x69\x74","\x72\x66\x63\x32\x38\x33\x33","\x20\x22\x22\x20\x3C\x3E","\x75\x6C\x61\x77\x3B\x61\x6C\x61\x77\x3B\x67\x73\x6D","\x6E\x6F","\x54\x72\x75\x6E\x6B","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x64\x75\x6C\x65\x73","\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x42\x4F\x41\x52\x44","\x75\x73\x65\x72\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x55\x53\x45\x52\x53","\x61\x67\x65\x6E\x74\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x47\x45\x4E\x54\x53","\x74\x65\x61\x6D\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x54\x45\x41\x4D\x53","\x63\x68\x61\x74","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x48\x41\x54","\x76\x6F\x69\x63\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45","\x6D\x61\x69\x6C","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x4D\x41\x49\x4C","\x66\x61\x78","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x46\x41\x58","\x61\x75\x64\x69\x6F","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x55\x44\x49\x4F","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x41\x4C\x4C\x59\x53\x51\x55\x41\x52\x45","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x4E\x41\x4C\x59\x54\x49\x43\x53","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x52\x45\x41\x4C\x54\x49\x4D\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x53","\x73\x65\x74\x74\x69\x6E\x67\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x53\x45\x54\x54\x49\x4E\x47\x53","\x4D\x6F\x64\x75\x6C\x65","\x63\x61\x74\x63\x68","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x71\x75\x65\x75\x65\x20\x31","\x69\x64","\x70\x6C\x75\x63\x6B","\x61\x64\x64\x55\x73\x65\x72\x73","\x54\x31","\x66\x69\x6E\x64\x4F\x6E\x65","\x54\x65\x61\x6D","\x43\x51\x31","\x43\x51\x31\x20\x44\x65\x73\x63","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x63\x72\x65\x61\x74\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x31","\x74\x65\x61\x6D\x20\x66\x6F\x75\x6E\x64","\x74\x65\x73\x74","\x4D\x51\x31","\x4D\x51\x31\x20\x44\x65\x73\x63","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x71\x75\x65\x75\x65\x20\x31","\x46\x51\x31","\x46\x51\x31\x20\x44\x65\x73\x63","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x44\x65\x66\x61\x75\x6C\x74\x20\x54\x65\x61\x6D","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x61\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x73\x65\x72\x76\x65\x72\x20\x69\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x73\x65\x72\x76\x65\x72\x20\x6F\x75\x74","\x73\x6D\x74\x70\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x68\x6F\x6B\x75\x63\x6C\x6F\x6B\x61","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x69\x6D\x61\x70\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x49\x4E\x42\x4F\x58","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x78\x43\x61\x6C\x6C\x79\x20\x44\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x61\x63\x63\x6F\x75\x6E\x74","\x73\x65\x74\x54\x72\x75\x6E\x6B","\x47\x6F\x74\x6F","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78\x2C\x73\x2C\x31","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65\x20\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x31","\x71\x75\x65\x75\x65","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65\x20\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x32","\x46\x41\x31\x20\x44\x65\x73\x63","\x46\x41\x31","\x78\x43\x41\x4C\x4C\x59","\x39\x36\x30\x30","\x31\x34\x34\x30\x30","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x4E\x6F\x4F\x70","\x46\x61\x78\x20\x55\x55\x49\x44\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x55\x73\x65\x72\x45\x76\x65\x6E\x74","\x46\x61\x78\x2C\x75\x75\x69\x64\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x53\x65\x74","\x46\x41\x58\x4F\x50\x54\x28\x66\x69\x6C\x65\x6E\x61\x6D\x65\x29\x3A\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x24\x7B\x45\x43\x4D\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x24\x7B\x46\x41\x58\x48\x45\x41\x44\x45\x52\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x3A\x24\x7B\x4C\x4F\x43\x41\x4C\x49\x44\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x41\x58\x52\x41\x54\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x49\x4E\x52\x41\x54\x45\x7D","\x53\x65\x6E\x64\x46\x41\x58","\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x2C\x64","\x45\x52\x52\x4F\x52\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x4E\x4F\x5F\x53\x54\x41\x54\x55\x53\x22\x20\x22\x4E\x4F\x5F\x50\x41\x47\x45\x53\x22","\x68","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x53\x74\x72\x69\x6E\x67\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D","\x46\x61\x78\x45\x72\x72\x6F\x72\x20\x3A\x20\x24\x7B\x46\x41\x58\x45\x52\x52\x4F\x52\x7D","\x52\x65\x6D\x6F\x74\x65\x53\x74\x61\x74\x69\x6F\x6E\x49\x44\x20\x3A\x20\x24\x7B\x52\x45\x4D\x4F\x54\x45\x53\x54\x41\x54\x49\x4F\x4E\x49\x44\x7D","\x46\x61\x78\x50\x61\x67\x65\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D","\x46\x61\x78\x42\x69\x74\x52\x61\x74\x65\x20\x3A\x20\x24\x7B\x46\x41\x58\x42\x49\x54\x52\x41\x54\x45\x7D","\x46\x61\x78\x52\x65\x73\x6F\x6C\x75\x74\x69\x6F\x6E\x20\x3A\x20\x24\x7B\x46\x41\x58\x52\x45\x53\x4F\x4C\x55\x54\x49\x4F\x4E\x7D","\x4F\x4B\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D\x22","\x2A\x2A\x2A\x2A\x20\x46\x41\x58\x20\x52\x45\x43\x45\x49\x56\x45\x44\x20\x66\x72\x6F\x6D\x20\x24\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x63\x29\x7D\x20\x2A\x2A\x2A\x2A","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x79\x65\x73","\x46\x49\x4C\x45\x4E\x41\x4D\x45\x3A\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D","\x46\x41\x58\x46\x49\x4C\x45\x3A\x24\x7B\x46\x49\x4C\x45\x4E\x41\x4D\x45\x7D\x2E\x74\x69\x66","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x52\x65\x63\x65\x69\x76\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x4D\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x7D","\x2A\x2A\x2A\x2A\x20\x52\x45\x43\x45\x49\x56\x49\x4E\x47\x20\x46\x41\x58\x20\x3A\x20\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x20\x2A\x2A\x2A\x2A","\x52\x65\x63\x65\x69\x76\x65\x46\x61\x78","\x2F\x74\x6D\x70\x2F\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x48\x61\x6E\x67\x75\x70","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x71\x75\x61\x72\x65\x20\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x31","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x78\x43\x61\x6C\x6C\x79\x20\x53\x68\x6F\x70","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x23\x66\x35\x31\x31\x31\x31","\x68\x74\x74\x70\x3A\x2F\x2F\x31\x38\x35\x2E\x34\x33\x2E\x32\x31\x30\x2E\x35\x37\x3A\x39\x30\x30\x30","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x20\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x27\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E\x27","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x31","\x56\x61\x72\x69\x61\x62\x6C\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x68\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x61\x75\x6C\x74","\x66\x69\x6C\x65\x73","\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68","\x61\x6C\x70\x68\x61","\x77\x61\x76","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x53\x65\x74\x74\x69\x6E\x67\x73","\x4D\x6F\x74\x69\x6F\x6E\x20\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6C\x6F\x63\x6B","\x43\x6C\x6F\x63\x6B","\x68\x68\x3A\x6D\x6D\x3A\x73\x73\x20\x61","\x64\x64\x64\x64\x2C\x20\x4D\x4D\x4D\x4D\x20\x44\x6F\x20\x59\x59\x59\x59","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x69\x66\x72\x61\x6D\x65","\x49\x66\x72\x61\x6D\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x65\x6D\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B","\x31\x2E\x30\x2E\x30","\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x73\x2E\x72\x2E\x6C\x2E","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x7A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x5A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x32\x2E\x70\x6E\x67","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2E\x70\x6E\x67","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x53\x75\x67\x61\x72\x43\x52\x4D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x32\x2E\x70\x6E\x67","\x73\x75\x67\x61\x72\x63\x72\x6D","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x75\x67\x61\x72\x43\x52\x4D","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x4D\x6F\x74\x69\x6F\x6E\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x72\x6F\x63\x6B\x65\x74\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x7D\x5D","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x62\x6F\x6F\x6B\x2D\x6F\x70\x65\x6E\x22\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x31\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x74\x72\x75\x65\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x32\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x7D\x5D","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x4D\x6F\x74\x69\x6F\x6E\x20\x53\x65\x72\x76\x69\x63\x65","\x53\x65\x72\x76\x69\x63\x65"];_0x7bb2[0];var _=require(_0x7bb2[1]);var models=require(_0x7bb2[2]);models[_0x7bb2[69]][_0x7bb2[68]]([{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[8],email:_0x7bb2[9],name:_0x7bb2[10],password:_0x7bb2[11],defaultuser:_0x7bb2[10],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1000},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[20],email:_0x7bb2[21],name:_0x7bb2[22],password:_0x7bb2[11],defaultuser:_0x7bb2[22],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1001},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[23],email:_0x7bb2[24],name:_0x7bb2[25],password:_0x7bb2[11],defaultuser:_0x7bb2[25],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1002},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[26],email:_0x7bb2[27],name:_0x7bb2[28],password:_0x7bb2[11],defaultuser:_0x7bb2[28],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1003},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[29],email:_0x7bb2[30],name:_0x7bb2[31],password:_0x7bb2[11],defaultuser:_0x7bb2[31],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1004},{provider:_0x7bb2[6],role:_0x7bb2[32],fullname:_0x7bb2[33],email:_0x7bb2[34],name:_0x7bb2[35],password:_0x7bb2[35],defaultuser:_0x7bb2[35],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1005},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[36],email:_0x7bb2[37],name:_0x7bb2[38],password:_0x7bb2[11],defaultuser:_0x7bb2[38],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1006},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[39],email:_0x7bb2[40],name:_0x7bb2[41],password:_0x7bb2[35],defaultuser:_0x7bb2[41],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1007},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[42],email:_0x7bb2[43],name:_0x7bb2[44],password:_0x7bb2[35],defaultuser:_0x7bb2[44],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1008},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[45],email:_0x7bb2[46],name:_0x7bb2[47],password:_0x7bb2[11],defaultuser:_0x7bb2[47],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1009},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[48],email:_0x7bb2[49],name:_0x7bb2[50],password:_0x7bb2[11],defaultuser:_0x7bb2[50],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[51],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1010},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[52],email:_0x7bb2[53],name:_0x7bb2[54],password:_0x7bb2[11],defaultuser:_0x7bb2[54],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[51],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1011},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[55],email:_0x7bb2[56],name:_0x7bb2[57],password:_0x7bb2[11],defaultuser:_0x7bb2[57],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[51],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1012},{provider:_0x7bb2[6],role:_0x7bb2[32],fullname:_0x7bb2[58],email:_0x7bb2[59],name:_0x7bb2[60],password:_0x7bb2[61],defaultuser:_0x7bb2[60],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1013},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[62],email:_0x7bb2[63],name:_0x7bb2[64],password:_0x7bb2[11],defaultuser:_0x7bb2[64],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1014},{provider:_0x7bb2[6],role:_0x7bb2[7],fullname:_0x7bb2[65],email:_0x7bb2[66],name:_0x7bb2[67],password:_0x7bb2[11],defaultuser:_0x7bb2[67],host:_0x7bb2[12],type:_0x7bb2[13],transport:_0x7bb2[14],allow:_0x7bb2[15],qualify:_0x7bb2[16],nat:_0x7bb2[17],disallow:_0x7bb2[18],context:_0x7bb2[19],internal:1015}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[3])});models[_0x7bb2[83]][_0x7bb2[68]]([{name:_0x7bb2[71],type:_0x7bb2[72],insecure:_0x7bb2[73],defaultuser:_0x7bb2[74],secret:_0x7bb2[75],password:_0x7bb2[75],context:_0x7bb2[76],language:_0x7bb2[77],host:_0x7bb2[78],fromdomain:_0x7bb2[78],dtmfmode:_0x7bb2[79],qualify:_0x7bb2[16],nat:_0x7bb2[17],callerid:_0x7bb2[80],limitonpeers:_0x7bb2[16],callcounter:_0x7bb2[16],disallow:_0x7bb2[18],allow:_0x7bb2[81],canreinvite:_0x7bb2[82],directmedia:_0x7bb2[82]}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[70])});models[_0x7bb2[113]][_0x7bb2[68]]([{name:_0x7bb2[85],title:_0x7bb2[86]},{name:_0x7bb2[87],title:_0x7bb2[88]},{name:_0x7bb2[89],title:_0x7bb2[90]},{name:_0x7bb2[91],title:_0x7bb2[92]},{name:_0x7bb2[93],title:_0x7bb2[94]},{name:_0x7bb2[95],title:_0x7bb2[96]},{name:_0x7bb2[97],title:_0x7bb2[98]},{name:_0x7bb2[99],title:_0x7bb2[100]},{name:_0x7bb2[101],title:_0x7bb2[102]},{name:_0x7bb2[103],title:_0x7bb2[104]},{name:_0x7bb2[105],title:_0x7bb2[106]},{name:_0x7bb2[107],title:_0x7bb2[108]},{name:_0x7bb2[109],title:_0x7bb2[110]},{name:_0x7bb2[111],title:_0x7bb2[112]}],{ignoreDuplicates:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[84])});models[_0x7bb2[121]][_0x7bb2[125]]({name:_0x7bb2[119],description:_0x7bb2[138],defaultEntry:true})[_0x7bb2[5]](function(_0x3906x4){models[_0x7bb2[69]][_0x7bb2[137]]({where:{role:_0x7bb2[7]}})[_0x7bb2[5]](function(_0x3906x5){_0x3906x4[_0x7bb2[118]](_[_0x7bb2[117]](_0x3906x5,_0x7bb2[116]))[_0x7bb2[5]](function(){models[_0x7bb2[126]][_0x7bb2[125]]({name:_0x7bb2[122],description:_0x7bb2[123],timeout:5,strategy:_0x7bb2[124]})[_0x7bb2[5]](function(_0x3906x6){console[_0x7bb2[4]](_0x7bb2[115]);models[_0x7bb2[121]][_0x7bb2[120]]({where:{name:_0x7bb2[119]},include:[{all:true}]})[_0x7bb2[5]](function(_0x3906x4){_0x3906x6[_0x7bb2[118]](_[_0x7bb2[117]](_0x3906x4.Users,_0x7bb2[116]))[_0x7bb2[114]](function(_0x3906x3){})})[_0x7bb2[114]](function(_0x3906x3){});});models[_0x7bb2[132]][_0x7bb2[125]]({name:_0x7bb2[130],description:_0x7bb2[131],timeout:5,strategy:_0x7bb2[124]})[_0x7bb2[5]](function(_0x3906x7){console[_0x7bb2[4]](_0x7bb2[127]);models[_0x7bb2[121]][_0x7bb2[120]]({where:{name:_0x7bb2[119]},include:[{all:true}]})[_0x7bb2[5]](function(_0x3906x4){if(_0x3906x4){console[_0x7bb2[4]](_0x7bb2[128])}else {console[_0x7bb2[4]](_0x7bb2[129])};_0x3906x7[_0x7bb2[118]](_[_0x7bb2[117]](_0x3906x4.Users,_0x7bb2[116]))[_0x7bb2[114]](function(_0x3906x3){});})[_0x7bb2[114]](function(_0x3906x3){});});models[_0x7bb2[136]][_0x7bb2[125]]({name:_0x7bb2[134],description:_0x7bb2[135],timeout:5,strategy:_0x7bb2[124]})[_0x7bb2[5]](function(_0x3906x8){console[_0x7bb2[4]](_0x7bb2[133]);models[_0x7bb2[121]][_0x7bb2[120]]({where:{name:_0x7bb2[119]},include:[{all:true}]})[_0x7bb2[5]](function(_0x3906x4){_0x3906x8[_0x7bb2[118]](_[_0x7bb2[117]](_0x3906x4.Users,_0x7bb2[116]))[_0x7bb2[114]](function(_0x3906x3){})})[_0x7bb2[114]](function(_0x3906x3){});});})[_0x7bb2[114]](function(_0x3906x3){})})[_0x7bb2[114]](function(_0x3906x3){})})[_0x7bb2[114]](function(_0x3906x3){});models[_0x7bb2[152]][_0x7bb2[125]]({name:_0x7bb2[151],description:_0x7bb2[151],address:_0x7bb2[143]})[_0x7bb2[5]](function(_0x3906x9){console[_0x7bb2[4]](_0x7bb2[139]);models[_0x7bb2[150]][_0x7bb2[125]]({description:_0x7bb2[60],host:_0x7bb2[146],username:_0x7bb2[143],password:_0x7bb2[144],port:143,mailbox:_0x7bb2[147],ssl:false,delete:false,filter:_0x7bb2[148],protocol:_0x7bb2[149],MailAccountId:_0x3906x9[_0x7bb2[116]]})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[140]);models[_0x7bb2[145]][_0x7bb2[125]]({description:_0x7bb2[60],host:_0x7bb2[142],username:_0x7bb2[143],password:_0x7bb2[144],port:587,ssl:false,MailAccountId:_0x3906x9[_0x7bb2[116]]})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[141])})[_0x7bb2[114]](function(_0x3906x3){});})[_0x7bb2[114]](function(_0x3906x3){});});models[_0x7bb2[168]][_0x7bb2[125]]({description:_0x7bb2[163],name:_0x7bb2[164],phone:_0x7bb2[74],ecm:true,faxheader:_0x7bb2[165],localid:_0x7bb2[74],maxrate:_0x7bb2[166],minrate:_0x7bb2[167]})[_0x7bb2[5]](function(_0x3906xa){console[_0x7bb2[4]](_0x7bb2[153]);models[_0x7bb2[83]][_0x7bb2[120]]({where:{name:_0x7bb2[71]}})[_0x7bb2[5]](function(_0x3906xb){_0x3906xa[_0x7bb2[154]](_0x3906xb)[_0x7bb2[114]](function(_0x3906x3){});models[_0x7bb2[158]][_0x7bb2[125]]({context:_0x7bb2[76],exten:_0x7bb2[74],priority:1,app:_0x7bb2[155],appdata:_0x7bb2[156],type:_0x7bb2[157],TrunkId:_0x3906xb[_0x7bb2[116]]});})[_0x7bb2[114]](function(_0x3906x3){});models[_0x7bb2[136]][_0x7bb2[137]]()[_0x7bb2[5]](function(_0x3906xc){models[_0x7bb2[161]][_0x7bb2[125]]({app:_0x7bb2[160],appdata:_0x3906xc[0][_0x7bb2[116]],priority:1,timeout:30,FaxAccountId:_0x3906xa[_0x7bb2[116]],FaxQueueId:_0x3906xc[0][_0x7bb2[116]]})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[159])})[_0x7bb2[114]](function(_0x3906x3){});models[_0x7bb2[161]][_0x7bb2[125]]({app:_0x7bb2[160],appdata:_0x3906xc[1][_0x7bb2[116]],priority:2,timeout:30,FaxAccountId:_0x3906xa[_0x7bb2[116]],FaxQueueId:_0x3906xc[1][_0x7bb2[116]]})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[162])})[_0x7bb2[114]](function(_0x3906x3){});})[_0x7bb2[114]](function(_0x3906x3){});})[_0x7bb2[114]](function(_0x3906x3){});models[_0x7bb2[158]][_0x7bb2[68]]([{context:_0x7bb2[170],exten:_0x7bb2[171],priority:1,app:_0x7bb2[172],appdata:_0x7bb2[173],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:2,app:_0x7bb2[174],appdata:_0x7bb2[175],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:3,app:_0x7bb2[176],appdata:_0x7bb2[177],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:4,app:_0x7bb2[176],appdata:_0x7bb2[178],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:5,app:_0x7bb2[176],appdata:_0x7bb2[179],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:6,app:_0x7bb2[176],appdata:_0x7bb2[180],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:7,app:_0x7bb2[176],appdata:_0x7bb2[181],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:8,app:_0x7bb2[176],appdata:_0x7bb2[182],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:9,app:_0x7bb2[183],appdata:_0x7bb2[184],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[171],priority:10,app:_0x7bb2[172],appdata:_0x7bb2[185],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:1,app:_0x7bb2[172],appdata:_0x7bb2[187],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:2,app:_0x7bb2[172],appdata:_0x7bb2[188],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:3,app:_0x7bb2[172],appdata:_0x7bb2[189],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:4,app:_0x7bb2[172],appdata:_0x7bb2[190],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:5,app:_0x7bb2[172],appdata:_0x7bb2[191],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:6,app:_0x7bb2[172],appdata:_0x7bb2[192],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:7,app:_0x7bb2[172],appdata:_0x7bb2[193],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:8,app:_0x7bb2[172],appdata:_0x7bb2[194],type:_0x7bb2[170]},{context:_0x7bb2[170],exten:_0x7bb2[186],priority:9,app:_0x7bb2[172],appdata:_0x7bb2[195],type:_0x7bb2[170]}],{ignoreDuplicates:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[169])});models[_0x7bb2[158]][_0x7bb2[68]]([{context:_0x7bb2[157],exten:_0x7bb2[171],priority:1,app:_0x7bb2[172],appdata:_0x7bb2[196],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:2,app:_0x7bb2[176],appdata:_0x7bb2[197],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:3,app:_0x7bb2[176],appdata:_0x7bb2[198],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:4,app:_0x7bb2[176],appdata:_0x7bb2[199],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:5,app:_0x7bb2[176],appdata:_0x7bb2[200],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:6,app:_0x7bb2[176],appdata:_0x7bb2[180],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:7,app:_0x7bb2[176],appdata:_0x7bb2[181],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:8,app:_0x7bb2[176],appdata:_0x7bb2[182],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:9,app:_0x7bb2[172],appdata:_0x7bb2[187],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:10,app:_0x7bb2[172],appdata:_0x7bb2[201],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:11,app:_0x7bb2[172],appdata:_0x7bb2[202],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:12,app:_0x7bb2[172],appdata:_0x7bb2[203],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:13,app:_0x7bb2[172],appdata:_0x7bb2[204],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:14,app:_0x7bb2[172],appdata:_0x7bb2[205],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:15,app:_0x7bb2[206],appdata:_0x7bb2[207],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[171],priority:16,app:_0x7bb2[208],type:_0x7bb2[157]},{context:_0x7bb2[157],exten:_0x7bb2[186],priority:1,app:_0x7bb2[172],appdata:_0x7bb2[187],type:_0x7bb2[157]}],{ignoreDuplicates:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[169])});models[_0x7bb2[212]][_0x7bb2[68]]([{name:_0x7bb2[210],description:_0x7bb2[211]}],{ignoreDuplicates:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[209])});models[_0x7bb2[229]][_0x7bb2[125]]({name:_0x7bb2[215],description:_0x7bb2[215],address:_0x7bb2[216],color:_0x7bb2[217],color_focus:_0x7bb2[217],color_button:_0x7bb2[217],remote:_0x7bb2[218],animation:true,header_shape:_0x7bb2[219],header_online:_0x7bb2[220],online_message:_0x7bb2[221],username_placeholder:_0x7bb2[222],email_placeholder:_0x7bb2[223],start_chat_button:_0x7bb2[224],header_offline:_0x7bb2[225],offline_message:_0x7bb2[226],enquiry_message_placeholder:_0x7bb2[227],enquiry_button:_0x7bb2[228],download_transcript:true})[_0x7bb2[5]](function(_0x3906xd){console[_0x7bb2[4]](_0x7bb2[213]);models[_0x7bb2[126]][_0x7bb2[137]]()[_0x7bb2[5]](function(_0x3906xe){models[_0x7bb2[214]][_0x7bb2[125]]({app:_0x7bb2[160],appdata:_0x3906xe[0][_0x7bb2[116]],priority:1,timeout:30,ChatWebsiteId:_0x3906xd[_0x7bb2[116]],ChatQueueId:_0x3906xe[0][_0x7bb2[116]]})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[159])})[_0x7bb2[114]](function(_0x3906x3){});models[_0x7bb2[214]][_0x7bb2[125]]({app:_0x7bb2[160],appdata:_0x3906xe[1][_0x7bb2[116]],priority:2,timeout:30,ChatWebsiteId:_0x3906xd[_0x7bb2[116]],ChatQueueId:_0x3906xe[1][_0x7bb2[116]]})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[162])})[_0x7bb2[114]](function(_0x3906x3){});})[_0x7bb2[114]](function(_0x3906x3){});})[_0x7bb2[114]](function(_0x3906x3){});models[_0x7bb2[232]][_0x7bb2[68]]([{name:_0x7bb2[231],description:_0x7bb2[211]}],{ignoreDuplicates:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[230])});models[_0x7bb2[235]][_0x7bb2[68]]([{name:_0x7bb2[19],description:_0x7bb2[234],defaultEntry:true},{name:_0x7bb2[76],description:_0x7bb2[234],defaultEntry:true},{name:_0x7bb2[157],description:_0x7bb2[234],defaultEntry:true},{name:_0x7bb2[170],description:_0x7bb2[234],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[233])});models[_0x7bb2[242]][_0x7bb2[68]]([{name:_0x7bb2[237],mode:_0x7bb2[238],directory:_0x7bb2[239],sort:_0x7bb2[240],format:_0x7bb2[241],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[236])});models[_0x7bb2[243]][_0x7bb2[68]]([{id:1,min_internal:1000}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[236])});models[_0x7bb2[255]][_0x7bb2[68]]([{name:_0x7bb2[244],model:JSON[_0x7bb2[254]]({title:_0x7bb2[244],rows:[{columns:[{styleClass:_0x7bb2[245],widgets:[{type:_0x7bb2[246],title:_0x7bb2[247],config:{timePattern:_0x7bb2[248],datePattern:_0x7bb2[249]}}]},{styleClass:_0x7bb2[250],widgets:[{type:_0x7bb2[251],title:_0x7bb2[252],config:{url:_0x7bb2[253]}}]}]}]}),defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[236])});models[_0x7bb2[279]][_0x7bb2[68]]([{name:_0x7bb2[257],version:_0x7bb2[258],active:false,author:_0x7bb2[259],logo:_0x7bb2[260],state:_0x7bb2[261],description:_0x7bb2[262]},{name:_0x7bb2[263],version:_0x7bb2[258],active:false,author:_0x7bb2[259],logo:_0x7bb2[264],state:_0x7bb2[265],description:_0x7bb2[266]},{name:_0x7bb2[267],version:_0x7bb2[258],active:false,author:_0x7bb2[259],logo:_0x7bb2[268],state:_0x7bb2[269],description:_0x7bb2[270]},{name:_0x7bb2[271],version:_0x7bb2[258],active:false,author:_0x7bb2[259],logo:_0x7bb2[272],state:_0x7bb2[273],description:_0x7bb2[274]},{name:_0x7bb2[275],version:_0x7bb2[258],active:false,author:_0x7bb2[259],logo:_0x7bb2[276],state:_0x7bb2[277],description:_0x7bb2[278]}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[256])});models[_0x7bb2[282]][_0x7bb2[68]]([{id:1,tree:_0x7bb2[280]},{id:2,tree:_0x7bb2[281]}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[256])});models[_0x7bb2[284]][_0x7bb2[68]]([{id:1,name:_0x7bb2[283],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x7bb2[5]](function(){console[_0x7bb2[4]](_0x7bb2[256])});
\ No newline at end of file
index 22d647f..dc8139e 100644 (file)
@@ -1 +1 @@
-var _0x1079=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x75\x73\x65\x72\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x6C\x6F\x63\x61\x6C","\x61\x64\x6D\x69\x6E","\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x6F\x72","\x61\x64\x6D\x69\x6E\x40\x61\x64\x6D\x69\x6E\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x78\x63\x61\x6C\x6C\x79","\x64\x79\x6E\x61\x6D\x69\x63","\x46\x52\x49\x45\x4E\x44","\x75\x64\x70","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x79\x65\x73","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x61\x6C\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x61\x67\x65\x6E\x74","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x73\x68\x75\x74\x74\x6C\x65\x35\x35","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x64\x75\x6C\x65\x73","\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x42\x4F\x41\x52\x44","\x75\x73\x65\x72\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x55\x53\x45\x52\x53","\x61\x67\x65\x6E\x74\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x47\x45\x4E\x54\x53","\x74\x65\x61\x6D\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x54\x45\x41\x4D\x53","\x63\x68\x61\x74","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x48\x41\x54","\x76\x6F\x69\x63\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45","\x6D\x61\x69\x6C","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x4D\x41\x49\x4C","\x66\x61\x78","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x46\x41\x58","\x61\x75\x64\x69\x6F","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x55\x44\x49\x4F","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x41\x4C\x4C\x59\x53\x51\x55\x41\x52\x45","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x4E\x41\x4C\x59\x54\x49\x43\x53","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x52\x45\x41\x4C\x54\x49\x4D\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x53","\x73\x65\x74\x74\x69\x6E\x67\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x53\x45\x54\x54\x49\x4E\x47\x53","\x4D\x6F\x64\x75\x6C\x65","\x63\x61\x74\x63\x68","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x71\x75\x65\x75\x65\x20\x31","\x69\x64","\x70\x6C\x75\x63\x6B","\x61\x64\x64\x55\x73\x65\x72\x73","\x54\x31","\x66\x69\x6E\x64\x4F\x6E\x65","\x54\x65\x61\x6D","\x43\x51\x31","\x43\x51\x31\x20\x44\x65\x73\x63","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x63\x72\x65\x61\x74\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x31","\x74\x65\x61\x6D\x20\x66\x6F\x75\x6E\x64","\x74\x65\x73\x74","\x4D\x51\x31","\x4D\x51\x31\x20\x44\x65\x73\x63","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x71\x75\x65\x75\x65\x20\x31","\x46\x51\x31","\x46\x51\x31\x20\x44\x65\x73\x63","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x44\x65\x66\x61\x75\x6C\x74\x20\x54\x65\x61\x6D","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x4E\x6F\x4F\x70","\x46\x61\x78\x20\x55\x55\x49\x44\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x55\x73\x65\x72\x45\x76\x65\x6E\x74","\x46\x61\x78\x2C\x75\x75\x69\x64\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x53\x65\x74","\x46\x41\x58\x4F\x50\x54\x28\x66\x69\x6C\x65\x6E\x61\x6D\x65\x29\x3A\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x24\x7B\x45\x43\x4D\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x24\x7B\x46\x41\x58\x48\x45\x41\x44\x45\x52\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x3A\x24\x7B\x4C\x4F\x43\x41\x4C\x49\x44\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x41\x58\x52\x41\x54\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x49\x4E\x52\x41\x54\x45\x7D","\x53\x65\x6E\x64\x46\x41\x58","\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x2C\x64","\x45\x52\x52\x4F\x52\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x4E\x4F\x5F\x53\x54\x41\x54\x55\x53\x22\x20\x22\x4E\x4F\x5F\x50\x41\x47\x45\x53\x22","\x68","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x53\x74\x72\x69\x6E\x67\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D","\x46\x61\x78\x45\x72\x72\x6F\x72\x20\x3A\x20\x24\x7B\x46\x41\x58\x45\x52\x52\x4F\x52\x7D","\x52\x65\x6D\x6F\x74\x65\x53\x74\x61\x74\x69\x6F\x6E\x49\x44\x20\x3A\x20\x24\x7B\x52\x45\x4D\x4F\x54\x45\x53\x54\x41\x54\x49\x4F\x4E\x49\x44\x7D","\x46\x61\x78\x50\x61\x67\x65\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D","\x46\x61\x78\x42\x69\x74\x52\x61\x74\x65\x20\x3A\x20\x24\x7B\x46\x41\x58\x42\x49\x54\x52\x41\x54\x45\x7D","\x46\x61\x78\x52\x65\x73\x6F\x6C\x75\x74\x69\x6F\x6E\x20\x3A\x20\x24\x7B\x46\x41\x58\x52\x45\x53\x4F\x4C\x55\x54\x49\x4F\x4E\x7D","\x4F\x4B\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D\x22","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x2A\x2A\x2A\x2A\x20\x46\x41\x58\x20\x52\x45\x43\x45\x49\x56\x45\x44\x20\x66\x72\x6F\x6D\x20\x24\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x63\x29\x7D\x20\x2A\x2A\x2A\x2A","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x79\x65\x73","\x46\x49\x4C\x45\x4E\x41\x4D\x45\x3A\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D","\x46\x41\x58\x46\x49\x4C\x45\x3A\x24\x7B\x46\x49\x4C\x45\x4E\x41\x4D\x45\x7D\x2E\x74\x69\x66","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x52\x65\x63\x65\x69\x76\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x4D\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x7D","\x2A\x2A\x2A\x2A\x20\x52\x45\x43\x45\x49\x56\x49\x4E\x47\x20\x46\x41\x58\x20\x3A\x20\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x20\x2A\x2A\x2A\x2A","\x52\x65\x63\x65\x69\x76\x65\x46\x61\x78","\x2F\x74\x6D\x70\x2F\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x48\x61\x6E\x67\x75\x70","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x71\x75\x61\x72\x65\x20\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x31","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x31","\x56\x61\x72\x69\x61\x62\x6C\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x68\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x61\x75\x6C\x74","\x66\x69\x6C\x65\x73","\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68","\x61\x6C\x70\x68\x61","\x77\x61\x76","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x65\x74\x74\x69\x6E\x67\x73","\x53\x65\x74\x74\x69\x6E\x67\x73","\x4D\x6F\x74\x69\x6F\x6E\x20\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6C\x6F\x63\x6B","\x43\x6C\x6F\x63\x6B","\x68\x68\x3A\x6D\x6D\x3A\x73\x73\x20\x61","\x64\x64\x64\x64\x2C\x20\x4D\x4D\x4D\x4D\x20\x44\x6F\x20\x59\x59\x59\x59","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x69\x66\x72\x61\x6D\x65","\x49\x66\x72\x61\x6D\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x65\x6D\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B","\x31\x2E\x30\x2E\x30","\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x73\x2E\x72\x2E\x6C\x2E","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x7A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x5A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x32\x2E\x70\x6E\x67","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2E\x70\x6E\x67","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x53\x75\x67\x61\x72\x43\x52\x4D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x32\x2E\x70\x6E\x67","\x73\x75\x67\x61\x72\x63\x72\x6D","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x75\x67\x61\x72\x43\x52\x4D","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x4D\x6F\x74\x69\x6F\x6E\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x72\x6F\x63\x6B\x65\x74\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x7D\x5D","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x62\x6F\x6F\x6B\x2D\x6F\x70\x65\x6E\x22\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x31\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x74\x72\x75\x65\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x32\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x7D\x5D","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65"];_0x1079[0];var _=require(_0x1079[1]);var models=require(_0x1079[2]);models[_0x1079[29]][_0x1079[28]]([{provider:_0x1079[6],role:_0x1079[7],fullname:_0x1079[8],email:_0x1079[9],name:_0x1079[7],password:_0x1079[10],defaultuser:_0x1079[11],host:_0x1079[12],type:_0x1079[13],transport:_0x1079[14],allow:_0x1079[15],qualify:_0x1079[16],nat:_0x1079[17],disallow:_0x1079[18],context:_0x1079[19],internal:1000},{provider:_0x1079[6],role:_0x1079[20],fullname:_0x1079[21],email:_0x1079[22],name:_0x1079[23],password:_0x1079[24],defaultuser:_0x1079[23],host:_0x1079[12],type:_0x1079[13],transport:_0x1079[14],allow:_0x1079[15],qualify:_0x1079[16],nat:_0x1079[17],disallow:_0x1079[18],context:_0x1079[19],internal:1001},{provider:_0x1079[6],role:_0x1079[20],fullname:_0x1079[25],email:_0x1079[26],name:_0x1079[27],password:_0x1079[24],defaultuser:_0x1079[27],host:_0x1079[12],type:_0x1079[13],transport:_0x1079[14],allow:_0x1079[15],qualify:_0x1079[16],nat:_0x1079[17],disallow:_0x1079[18],context:_0x1079[19],internal:1002}],{ignoreDuplicates:true,individualHooks:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[3])});models[_0x1079[59]][_0x1079[28]]([{name:_0x1079[31],title:_0x1079[32]},{name:_0x1079[33],title:_0x1079[34]},{name:_0x1079[35],title:_0x1079[36]},{name:_0x1079[37],title:_0x1079[38]},{name:_0x1079[39],title:_0x1079[40]},{name:_0x1079[41],title:_0x1079[42]},{name:_0x1079[43],title:_0x1079[44]},{name:_0x1079[45],title:_0x1079[46]},{name:_0x1079[47],title:_0x1079[48]},{name:_0x1079[49],title:_0x1079[50]},{name:_0x1079[51],title:_0x1079[52]},{name:_0x1079[53],title:_0x1079[54]},{name:_0x1079[55],title:_0x1079[56]},{name:_0x1079[57],title:_0x1079[58]}],{ignoreDuplicates:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[30])});models[_0x1079[67]][_0x1079[71]]({name:_0x1079[65],description:_0x1079[84],defaultEntry:true})[_0x1079[5]](function(_0xf33ax4){models[_0x1079[29]][_0x1079[83]]({where:{role:_0x1079[20]}})[_0x1079[5]](function(_0xf33ax5){_0xf33ax4[_0x1079[64]](_[_0x1079[63]](_0xf33ax5,_0x1079[62]))[_0x1079[5]](function(){models[_0x1079[72]][_0x1079[71]]({name:_0x1079[68],description:_0x1079[69],timeout:5,strategy:_0x1079[70]})[_0x1079[5]](function(_0xf33ax6){console[_0x1079[4]](_0x1079[61]);models[_0x1079[67]][_0x1079[66]]({where:{name:_0x1079[65]},include:[{all:true}]})[_0x1079[5]](function(_0xf33ax4){_0xf33ax6[_0x1079[64]](_[_0x1079[63]](_0xf33ax4.Users,_0x1079[62]))[_0x1079[60]](function(_0xf33ax3){})})[_0x1079[60]](function(_0xf33ax3){});});models[_0x1079[78]][_0x1079[71]]({name:_0x1079[76],description:_0x1079[77],timeout:5,strategy:_0x1079[70]})[_0x1079[5]](function(_0xf33ax7){console[_0x1079[4]](_0x1079[73]);models[_0x1079[67]][_0x1079[66]]({where:{name:_0x1079[65]},include:[{all:true}]})[_0x1079[5]](function(_0xf33ax4){if(_0xf33ax4){console[_0x1079[4]](_0x1079[74])}else {console[_0x1079[4]](_0x1079[75])};_0xf33ax7[_0x1079[64]](_[_0x1079[63]](_0xf33ax4.Users,_0x1079[62]))[_0x1079[60]](function(_0xf33ax3){});})[_0x1079[60]](function(_0xf33ax3){});});models[_0x1079[82]][_0x1079[71]]({name:_0x1079[80],description:_0x1079[81],timeout:5,strategy:_0x1079[70]})[_0x1079[5]](function(_0xf33ax8){console[_0x1079[4]](_0x1079[79]);models[_0x1079[67]][_0x1079[66]]({where:{name:_0x1079[65]},include:[{all:true}]})[_0x1079[5]](function(_0xf33ax4){_0xf33ax8[_0x1079[64]](_[_0x1079[63]](_0xf33ax4.Users,_0x1079[62]))[_0x1079[60]](function(_0xf33ax3){})})[_0x1079[60]](function(_0xf33ax3){});});})[_0x1079[60]](function(_0xf33ax3){})})[_0x1079[60]](function(_0xf33ax3){})})[_0x1079[60]](function(_0xf33ax3){});models[_0x1079[112]][_0x1079[28]]([{context:_0x1079[86],exten:_0x1079[87],priority:1,app:_0x1079[88],appdata:_0x1079[89],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:2,app:_0x1079[90],appdata:_0x1079[91],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:3,app:_0x1079[92],appdata:_0x1079[93],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:4,app:_0x1079[92],appdata:_0x1079[94],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:5,app:_0x1079[92],appdata:_0x1079[95],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:6,app:_0x1079[92],appdata:_0x1079[96],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:7,app:_0x1079[92],appdata:_0x1079[97],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:8,app:_0x1079[92],appdata:_0x1079[98],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:9,app:_0x1079[99],appdata:_0x1079[100],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[87],priority:10,app:_0x1079[88],appdata:_0x1079[101],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:1,app:_0x1079[88],appdata:_0x1079[103],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:2,app:_0x1079[88],appdata:_0x1079[104],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:3,app:_0x1079[88],appdata:_0x1079[105],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:4,app:_0x1079[88],appdata:_0x1079[106],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:5,app:_0x1079[88],appdata:_0x1079[107],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:6,app:_0x1079[88],appdata:_0x1079[108],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:7,app:_0x1079[88],appdata:_0x1079[109],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:8,app:_0x1079[88],appdata:_0x1079[110],type:_0x1079[86]},{context:_0x1079[86],exten:_0x1079[102],priority:9,app:_0x1079[88],appdata:_0x1079[111],type:_0x1079[86]}],{ignoreDuplicates:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[85])});models[_0x1079[112]][_0x1079[28]]([{context:_0x1079[113],exten:_0x1079[87],priority:1,app:_0x1079[88],appdata:_0x1079[114],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:2,app:_0x1079[92],appdata:_0x1079[115],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:3,app:_0x1079[92],appdata:_0x1079[116],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:4,app:_0x1079[92],appdata:_0x1079[117],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:5,app:_0x1079[92],appdata:_0x1079[118],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:6,app:_0x1079[92],appdata:_0x1079[96],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:7,app:_0x1079[92],appdata:_0x1079[97],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:8,app:_0x1079[92],appdata:_0x1079[98],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:9,app:_0x1079[88],appdata:_0x1079[103],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:10,app:_0x1079[88],appdata:_0x1079[119],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:11,app:_0x1079[88],appdata:_0x1079[120],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:12,app:_0x1079[88],appdata:_0x1079[121],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:13,app:_0x1079[88],appdata:_0x1079[122],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:14,app:_0x1079[88],appdata:_0x1079[123],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:15,app:_0x1079[124],appdata:_0x1079[125],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[87],priority:16,app:_0x1079[126],type:_0x1079[113]},{context:_0x1079[113],exten:_0x1079[102],priority:1,app:_0x1079[88],appdata:_0x1079[103],type:_0x1079[113]}],{ignoreDuplicates:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[85])});models[_0x1079[130]][_0x1079[28]]([{name:_0x1079[128],description:_0x1079[129]}],{ignoreDuplicates:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[127])});models[_0x1079[133]][_0x1079[28]]([{name:_0x1079[132],description:_0x1079[129]}],{ignoreDuplicates:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[131])});models[_0x1079[137]][_0x1079[28]]([{name:_0x1079[19],description:_0x1079[135],defaultEntry:true},{name:_0x1079[136],description:_0x1079[135],defaultEntry:true},{name:_0x1079[113],description:_0x1079[135],defaultEntry:true},{name:_0x1079[86],description:_0x1079[135],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[134])});models[_0x1079[144]][_0x1079[28]]([{name:_0x1079[139],mode:_0x1079[140],directory:_0x1079[141],sort:_0x1079[142],format:_0x1079[143],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[138])});models[_0x1079[146]][_0x1079[71]]({min_internal:1003})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[145])});models[_0x1079[158]][_0x1079[28]]([{name:_0x1079[147],model:JSON[_0x1079[157]]({title:_0x1079[147],rows:[{columns:[{styleClass:_0x1079[148],widgets:[{type:_0x1079[149],title:_0x1079[150],config:{timePattern:_0x1079[151],datePattern:_0x1079[152]}}]},{styleClass:_0x1079[153],widgets:[{type:_0x1079[154],title:_0x1079[155],config:{url:_0x1079[156]}}]}]}]}),defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[138])});models[_0x1079[182]][_0x1079[28]]([{name:_0x1079[160],version:_0x1079[161],active:false,author:_0x1079[162],logo:_0x1079[163],state:_0x1079[164],description:_0x1079[165]},{name:_0x1079[166],version:_0x1079[161],active:false,author:_0x1079[162],logo:_0x1079[167],state:_0x1079[168],description:_0x1079[169]},{name:_0x1079[170],version:_0x1079[161],active:false,author:_0x1079[162],logo:_0x1079[171],state:_0x1079[172],description:_0x1079[173]},{name:_0x1079[174],version:_0x1079[161],active:false,author:_0x1079[162],logo:_0x1079[175],state:_0x1079[176],description:_0x1079[177]},{name:_0x1079[178],version:_0x1079[161],active:false,author:_0x1079[162],logo:_0x1079[179],state:_0x1079[180],description:_0x1079[181]}],{ignoreDuplicates:true,individualHooks:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[159])});models[_0x1079[185]][_0x1079[28]]([{id:1,tree:_0x1079[183]},{id:2,tree:_0x1079[184]}],{ignoreDuplicates:true,individualHooks:true})[_0x1079[5]](function(){console[_0x1079[4]](_0x1079[159])});
\ No newline at end of file
+var _0xdf84=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x75\x73\x65\x72\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x6C\x6F\x63\x61\x6C","\x61\x64\x6D\x69\x6E","\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x6F\x72","\x61\x64\x6D\x69\x6E\x40\x61\x64\x6D\x69\x6E\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x78\x63\x61\x6C\x6C\x79","\x64\x79\x6E\x61\x6D\x69\x63","\x46\x52\x49\x45\x4E\x44","\x75\x64\x70","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x79\x65\x73","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x61\x6C\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x61\x67\x65\x6E\x74","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x73\x68\x75\x74\x74\x6C\x65\x35\x35","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x64\x75\x6C\x65\x73","\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x42\x4F\x41\x52\x44","\x75\x73\x65\x72\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x55\x53\x45\x52\x53","\x61\x67\x65\x6E\x74\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x47\x45\x4E\x54\x53","\x74\x65\x61\x6D\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x54\x45\x41\x4D\x53","\x63\x68\x61\x74","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x48\x41\x54","\x76\x6F\x69\x63\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45","\x6D\x61\x69\x6C","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x4D\x41\x49\x4C","\x66\x61\x78","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x46\x41\x58","\x61\x75\x64\x69\x6F","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x55\x44\x49\x4F","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x41\x4C\x4C\x59\x53\x51\x55\x41\x52\x45","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x4E\x41\x4C\x59\x54\x49\x43\x53","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x52\x45\x41\x4C\x54\x49\x4D\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x53","\x73\x65\x74\x74\x69\x6E\x67\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x53\x45\x54\x54\x49\x4E\x47\x53","\x4D\x6F\x64\x75\x6C\x65","\x63\x61\x74\x63\x68","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x71\x75\x65\x75\x65\x20\x31","\x69\x64","\x70\x6C\x75\x63\x6B","\x61\x64\x64\x55\x73\x65\x72\x73","\x54\x31","\x66\x69\x6E\x64\x4F\x6E\x65","\x54\x65\x61\x6D","\x43\x51\x31","\x43\x51\x31\x20\x44\x65\x73\x63","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x63\x72\x65\x61\x74\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x31","\x74\x65\x61\x6D\x20\x66\x6F\x75\x6E\x64","\x74\x65\x73\x74","\x4D\x51\x31","\x4D\x51\x31\x20\x44\x65\x73\x63","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x71\x75\x65\x75\x65\x20\x31","\x46\x51\x31","\x46\x51\x31\x20\x44\x65\x73\x63","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x44\x65\x66\x61\x75\x6C\x74\x20\x54\x65\x61\x6D","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x4E\x6F\x4F\x70","\x46\x61\x78\x20\x55\x55\x49\x44\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x55\x73\x65\x72\x45\x76\x65\x6E\x74","\x46\x61\x78\x2C\x75\x75\x69\x64\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x53\x65\x74","\x46\x41\x58\x4F\x50\x54\x28\x66\x69\x6C\x65\x6E\x61\x6D\x65\x29\x3A\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x24\x7B\x45\x43\x4D\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x24\x7B\x46\x41\x58\x48\x45\x41\x44\x45\x52\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x3A\x24\x7B\x4C\x4F\x43\x41\x4C\x49\x44\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x41\x58\x52\x41\x54\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x49\x4E\x52\x41\x54\x45\x7D","\x53\x65\x6E\x64\x46\x41\x58","\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x2C\x64","\x45\x52\x52\x4F\x52\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x4E\x4F\x5F\x53\x54\x41\x54\x55\x53\x22\x20\x22\x4E\x4F\x5F\x50\x41\x47\x45\x53\x22","\x68","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x53\x74\x72\x69\x6E\x67\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D","\x46\x61\x78\x45\x72\x72\x6F\x72\x20\x3A\x20\x24\x7B\x46\x41\x58\x45\x52\x52\x4F\x52\x7D","\x52\x65\x6D\x6F\x74\x65\x53\x74\x61\x74\x69\x6F\x6E\x49\x44\x20\x3A\x20\x24\x7B\x52\x45\x4D\x4F\x54\x45\x53\x54\x41\x54\x49\x4F\x4E\x49\x44\x7D","\x46\x61\x78\x50\x61\x67\x65\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D","\x46\x61\x78\x42\x69\x74\x52\x61\x74\x65\x20\x3A\x20\x24\x7B\x46\x41\x58\x42\x49\x54\x52\x41\x54\x45\x7D","\x46\x61\x78\x52\x65\x73\x6F\x6C\x75\x74\x69\x6F\x6E\x20\x3A\x20\x24\x7B\x46\x41\x58\x52\x45\x53\x4F\x4C\x55\x54\x49\x4F\x4E\x7D","\x4F\x4B\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D\x22","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x2A\x2A\x2A\x2A\x20\x46\x41\x58\x20\x52\x45\x43\x45\x49\x56\x45\x44\x20\x66\x72\x6F\x6D\x20\x24\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x63\x29\x7D\x20\x2A\x2A\x2A\x2A","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x79\x65\x73","\x46\x49\x4C\x45\x4E\x41\x4D\x45\x3A\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D","\x46\x41\x58\x46\x49\x4C\x45\x3A\x24\x7B\x46\x49\x4C\x45\x4E\x41\x4D\x45\x7D\x2E\x74\x69\x66","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x52\x65\x63\x65\x69\x76\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x4D\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x7D","\x2A\x2A\x2A\x2A\x20\x52\x45\x43\x45\x49\x56\x49\x4E\x47\x20\x46\x41\x58\x20\x3A\x20\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x20\x2A\x2A\x2A\x2A","\x52\x65\x63\x65\x69\x76\x65\x46\x61\x78","\x2F\x74\x6D\x70\x2F\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x48\x61\x6E\x67\x75\x70","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x71\x75\x61\x72\x65\x20\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x31","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x31","\x56\x61\x72\x69\x61\x62\x6C\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x68\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x61\x75\x6C\x74","\x66\x69\x6C\x65\x73","\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68","\x61\x6C\x70\x68\x61","\x77\x61\x76","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x65\x74\x74\x69\x6E\x67\x73","\x53\x65\x74\x74\x69\x6E\x67\x73","\x4D\x6F\x74\x69\x6F\x6E\x20\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6C\x6F\x63\x6B","\x43\x6C\x6F\x63\x6B","\x68\x68\x3A\x6D\x6D\x3A\x73\x73\x20\x61","\x64\x64\x64\x64\x2C\x20\x4D\x4D\x4D\x4D\x20\x44\x6F\x20\x59\x59\x59\x59","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x69\x66\x72\x61\x6D\x65","\x49\x66\x72\x61\x6D\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x65\x6D\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B","\x31\x2E\x30\x2E\x30","\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x73\x2E\x72\x2E\x6C\x2E","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x7A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x5A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x32\x2E\x70\x6E\x67","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2E\x70\x6E\x67","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x53\x75\x67\x61\x72\x43\x52\x4D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x32\x2E\x70\x6E\x67","\x73\x75\x67\x61\x72\x63\x72\x6D","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x75\x67\x61\x72\x43\x52\x4D","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x4D\x6F\x74\x69\x6F\x6E\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x72\x6F\x63\x6B\x65\x74\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x7D\x5D","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x62\x6F\x6F\x6B\x2D\x6F\x70\x65\x6E\x22\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x31\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x74\x72\x75\x65\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x32\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x7D\x5D","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x4D\x6F\x74\x69\x6F\x6E\x20\x53\x65\x72\x76\x69\x63\x65","\x53\x65\x72\x76\x69\x63\x65"];_0xdf84[0];var _=require(_0xdf84[1]);var models=require(_0xdf84[2]);models[_0xdf84[29]][_0xdf84[28]]([{provider:_0xdf84[6],role:_0xdf84[7],fullname:_0xdf84[8],email:_0xdf84[9],name:_0xdf84[7],password:_0xdf84[10],defaultuser:_0xdf84[11],host:_0xdf84[12],type:_0xdf84[13],transport:_0xdf84[14],allow:_0xdf84[15],qualify:_0xdf84[16],nat:_0xdf84[17],disallow:_0xdf84[18],context:_0xdf84[19],internal:1000},{provider:_0xdf84[6],role:_0xdf84[20],fullname:_0xdf84[21],email:_0xdf84[22],name:_0xdf84[23],password:_0xdf84[24],defaultuser:_0xdf84[23],host:_0xdf84[12],type:_0xdf84[13],transport:_0xdf84[14],allow:_0xdf84[15],qualify:_0xdf84[16],nat:_0xdf84[17],disallow:_0xdf84[18],context:_0xdf84[19],internal:1001},{provider:_0xdf84[6],role:_0xdf84[20],fullname:_0xdf84[25],email:_0xdf84[26],name:_0xdf84[27],password:_0xdf84[24],defaultuser:_0xdf84[27],host:_0xdf84[12],type:_0xdf84[13],transport:_0xdf84[14],allow:_0xdf84[15],qualify:_0xdf84[16],nat:_0xdf84[17],disallow:_0xdf84[18],context:_0xdf84[19],internal:1002}],{ignoreDuplicates:true,individualHooks:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[3])});models[_0xdf84[59]][_0xdf84[28]]([{name:_0xdf84[31],title:_0xdf84[32]},{name:_0xdf84[33],title:_0xdf84[34]},{name:_0xdf84[35],title:_0xdf84[36]},{name:_0xdf84[37],title:_0xdf84[38]},{name:_0xdf84[39],title:_0xdf84[40]},{name:_0xdf84[41],title:_0xdf84[42]},{name:_0xdf84[43],title:_0xdf84[44]},{name:_0xdf84[45],title:_0xdf84[46]},{name:_0xdf84[47],title:_0xdf84[48]},{name:_0xdf84[49],title:_0xdf84[50]},{name:_0xdf84[51],title:_0xdf84[52]},{name:_0xdf84[53],title:_0xdf84[54]},{name:_0xdf84[55],title:_0xdf84[56]},{name:_0xdf84[57],title:_0xdf84[58]}],{ignoreDuplicates:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[30])});models[_0xdf84[67]][_0xdf84[71]]({name:_0xdf84[65],description:_0xdf84[84],defaultEntry:true})[_0xdf84[5]](function(_0xcb61x4){models[_0xdf84[29]][_0xdf84[83]]({where:{role:_0xdf84[20]}})[_0xdf84[5]](function(_0xcb61x5){_0xcb61x4[_0xdf84[64]](_[_0xdf84[63]](_0xcb61x5,_0xdf84[62]))[_0xdf84[5]](function(){models[_0xdf84[72]][_0xdf84[71]]({name:_0xdf84[68],description:_0xdf84[69],timeout:5,strategy:_0xdf84[70]})[_0xdf84[5]](function(_0xcb61x6){console[_0xdf84[4]](_0xdf84[61]);models[_0xdf84[67]][_0xdf84[66]]({where:{name:_0xdf84[65]},include:[{all:true}]})[_0xdf84[5]](function(_0xcb61x4){_0xcb61x6[_0xdf84[64]](_[_0xdf84[63]](_0xcb61x4.Users,_0xdf84[62]))[_0xdf84[60]](function(_0xcb61x3){})})[_0xdf84[60]](function(_0xcb61x3){});});models[_0xdf84[78]][_0xdf84[71]]({name:_0xdf84[76],description:_0xdf84[77],timeout:5,strategy:_0xdf84[70]})[_0xdf84[5]](function(_0xcb61x7){console[_0xdf84[4]](_0xdf84[73]);models[_0xdf84[67]][_0xdf84[66]]({where:{name:_0xdf84[65]},include:[{all:true}]})[_0xdf84[5]](function(_0xcb61x4){if(_0xcb61x4){console[_0xdf84[4]](_0xdf84[74])}else {console[_0xdf84[4]](_0xdf84[75])};_0xcb61x7[_0xdf84[64]](_[_0xdf84[63]](_0xcb61x4.Users,_0xdf84[62]))[_0xdf84[60]](function(_0xcb61x3){});})[_0xdf84[60]](function(_0xcb61x3){});});models[_0xdf84[82]][_0xdf84[71]]({name:_0xdf84[80],description:_0xdf84[81],timeout:5,strategy:_0xdf84[70]})[_0xdf84[5]](function(_0xcb61x8){console[_0xdf84[4]](_0xdf84[79]);models[_0xdf84[67]][_0xdf84[66]]({where:{name:_0xdf84[65]},include:[{all:true}]})[_0xdf84[5]](function(_0xcb61x4){_0xcb61x8[_0xdf84[64]](_[_0xdf84[63]](_0xcb61x4.Users,_0xdf84[62]))[_0xdf84[60]](function(_0xcb61x3){})})[_0xdf84[60]](function(_0xcb61x3){});});})[_0xdf84[60]](function(_0xcb61x3){})})[_0xdf84[60]](function(_0xcb61x3){})})[_0xdf84[60]](function(_0xcb61x3){});models[_0xdf84[112]][_0xdf84[28]]([{context:_0xdf84[86],exten:_0xdf84[87],priority:1,app:_0xdf84[88],appdata:_0xdf84[89],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:2,app:_0xdf84[90],appdata:_0xdf84[91],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:3,app:_0xdf84[92],appdata:_0xdf84[93],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:4,app:_0xdf84[92],appdata:_0xdf84[94],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:5,app:_0xdf84[92],appdata:_0xdf84[95],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:6,app:_0xdf84[92],appdata:_0xdf84[96],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:7,app:_0xdf84[92],appdata:_0xdf84[97],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:8,app:_0xdf84[92],appdata:_0xdf84[98],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:9,app:_0xdf84[99],appdata:_0xdf84[100],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[87],priority:10,app:_0xdf84[88],appdata:_0xdf84[101],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:1,app:_0xdf84[88],appdata:_0xdf84[103],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:2,app:_0xdf84[88],appdata:_0xdf84[104],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:3,app:_0xdf84[88],appdata:_0xdf84[105],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:4,app:_0xdf84[88],appdata:_0xdf84[106],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:5,app:_0xdf84[88],appdata:_0xdf84[107],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:6,app:_0xdf84[88],appdata:_0xdf84[108],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:7,app:_0xdf84[88],appdata:_0xdf84[109],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:8,app:_0xdf84[88],appdata:_0xdf84[110],type:_0xdf84[86]},{context:_0xdf84[86],exten:_0xdf84[102],priority:9,app:_0xdf84[88],appdata:_0xdf84[111],type:_0xdf84[86]}],{ignoreDuplicates:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[85])});models[_0xdf84[112]][_0xdf84[28]]([{context:_0xdf84[113],exten:_0xdf84[87],priority:1,app:_0xdf84[88],appdata:_0xdf84[114],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:2,app:_0xdf84[92],appdata:_0xdf84[115],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:3,app:_0xdf84[92],appdata:_0xdf84[116],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:4,app:_0xdf84[92],appdata:_0xdf84[117],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:5,app:_0xdf84[92],appdata:_0xdf84[118],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:6,app:_0xdf84[92],appdata:_0xdf84[96],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:7,app:_0xdf84[92],appdata:_0xdf84[97],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:8,app:_0xdf84[92],appdata:_0xdf84[98],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:9,app:_0xdf84[88],appdata:_0xdf84[103],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:10,app:_0xdf84[88],appdata:_0xdf84[119],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:11,app:_0xdf84[88],appdata:_0xdf84[120],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:12,app:_0xdf84[88],appdata:_0xdf84[121],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:13,app:_0xdf84[88],appdata:_0xdf84[122],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:14,app:_0xdf84[88],appdata:_0xdf84[123],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:15,app:_0xdf84[124],appdata:_0xdf84[125],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[87],priority:16,app:_0xdf84[126],type:_0xdf84[113]},{context:_0xdf84[113],exten:_0xdf84[102],priority:1,app:_0xdf84[88],appdata:_0xdf84[103],type:_0xdf84[113]}],{ignoreDuplicates:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[85])});models[_0xdf84[130]][_0xdf84[28]]([{name:_0xdf84[128],description:_0xdf84[129]}],{ignoreDuplicates:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[127])});models[_0xdf84[133]][_0xdf84[28]]([{name:_0xdf84[132],description:_0xdf84[129]}],{ignoreDuplicates:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[131])});models[_0xdf84[137]][_0xdf84[28]]([{name:_0xdf84[19],description:_0xdf84[135],defaultEntry:true},{name:_0xdf84[136],description:_0xdf84[135],defaultEntry:true},{name:_0xdf84[113],description:_0xdf84[135],defaultEntry:true},{name:_0xdf84[86],description:_0xdf84[135],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[134])});models[_0xdf84[144]][_0xdf84[28]]([{name:_0xdf84[139],mode:_0xdf84[140],directory:_0xdf84[141],sort:_0xdf84[142],format:_0xdf84[143],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[138])});models[_0xdf84[146]][_0xdf84[71]]({min_internal:1003})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[145])});models[_0xdf84[158]][_0xdf84[28]]([{name:_0xdf84[147],model:JSON[_0xdf84[157]]({title:_0xdf84[147],rows:[{columns:[{styleClass:_0xdf84[148],widgets:[{type:_0xdf84[149],title:_0xdf84[150],config:{timePattern:_0xdf84[151],datePattern:_0xdf84[152]}}]},{styleClass:_0xdf84[153],widgets:[{type:_0xdf84[154],title:_0xdf84[155],config:{url:_0xdf84[156]}}]}]}]}),defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[138])});models[_0xdf84[182]][_0xdf84[28]]([{name:_0xdf84[160],version:_0xdf84[161],active:false,author:_0xdf84[162],logo:_0xdf84[163],state:_0xdf84[164],description:_0xdf84[165]},{name:_0xdf84[166],version:_0xdf84[161],active:false,author:_0xdf84[162],logo:_0xdf84[167],state:_0xdf84[168],description:_0xdf84[169]},{name:_0xdf84[170],version:_0xdf84[161],active:false,author:_0xdf84[162],logo:_0xdf84[171],state:_0xdf84[172],description:_0xdf84[173]},{name:_0xdf84[174],version:_0xdf84[161],active:false,author:_0xdf84[162],logo:_0xdf84[175],state:_0xdf84[176],description:_0xdf84[177]},{name:_0xdf84[178],version:_0xdf84[161],active:false,author:_0xdf84[162],logo:_0xdf84[179],state:_0xdf84[180],description:_0xdf84[181]}],{ignoreDuplicates:true,individualHooks:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[159])});models[_0xdf84[185]][_0xdf84[28]]([{id:1,tree:_0xdf84[183]},{id:2,tree:_0xdf84[184]}],{ignoreDuplicates:true,individualHooks:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[159])});models[_0xdf84[187]][_0xdf84[28]]([{id:1,name:_0xdf84[186],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0xdf84[5]](function(){console[_0xdf84[4]](_0xdf84[159])});
\ No newline at end of file
index 0e99163..d3a2dc7 100644 (file)
@@ -1 +1 @@
-var _0x4127=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65","\x2E\x2F\x73\x6D\x74\x70","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0x4127[0];var _=require(_0x4127[1]);var MailServerOut=require(_0x4127[3])[_0x4127[2]];module[_0x4127[4]]={init:function(){MailServerOut[_0x4127[7]](function(_0xa30dx3){require(_0x4127[6])[_0x4127[5]](_0xa30dx3)});return MailServerOut[_0x4127[12]]()[_0x4127[11]](function(_0xa30dx5){_0xa30dx5[_0x4127[10]](function(_0xa30dx6){require(_0x4127[6])[_0x4127[5]](_0xa30dx6)})})[_0x4127[9]](function(_0xa30dx4){console[_0x4127[8]](_0xa30dx4)});}};
\ No newline at end of file
+var _0xa88b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x65\x78\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65","\x2E\x2F\x73\x6D\x74\x70","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0xa88b[0];var _=require(_0xa88b[1]);var MailServerOut=require(_0xa88b[3])[_0xa88b[2]];module[_0xa88b[4]]={init:function(){MailServerOut[_0xa88b[7]](function(_0x373cx3){require(_0xa88b[6])[_0xa88b[5]](_0x373cx3)});return MailServerOut[_0xa88b[12]]()[_0xa88b[11]](function(_0x373cx5){_0x373cx5[_0xa88b[10]](function(_0x373cx6){require(_0xa88b[6])[_0xa88b[5]](_0x373cx6)})})[_0xa88b[9]](function(_0x373cx4){console[_0xa88b[8]](_0x373cx4)});}};
\ No newline at end of file
index bfdb663..1a3177a 100644 (file)
@@ -1 +1 @@
-var _0xe1f0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72\x2D\x73\x6D\x74\x70\x2D\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x20\x53\x4D\x54\x50\x20\x43\x52\x45\x41\x54\x45","\x6C\x6F\x67","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x73\x6C","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x6F\x72\x74","\x75\x73\x65\x72","\x61\x75\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x65\x72","\x20\x53\x4D\x54\x50\x20\x55\x50\x44\x41\x54\x45","\x5B\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x20\x53\x4D\x54\x50\x20\x44\x45\x53\x54\x52\x4F\x59","\x73\x74\x61\x74\x75\x73","\x63\x68\x61\x6E\x67\x65\x64","\x53\x45\x4E\x44\x49\x4E\x47","\x66\x72\x6F\x6D","\x6F\x6E\x53\x65\x6E\x64","\x69\x6E\x52\x65\x70\x6C\x79\x54\x6F","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x53\x45\x4E\x54","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x74\x6F","\x63\x63","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x70\x61\x74\x68","\x6E\x61\x6D\x65","\x6D\x61\x70","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x74\x42\x63\x63","\x73\x65\x74\x43\x63","\x73\x65\x74\x54\x6F","\x73\x65\x74\x46\x72\x6F\x6D","\x61\x6C\x6C","\x62\x63\x63","\x3B","\x73\x70\x6C\x69\x74","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x4F\x50\x45\x4E","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65"];_0xe1f0[0];var _=require(_0xe1f0[1]);var Promise=require(_0xe1f0[2]);var nodemailer=require(_0xe1f0[3]);var smtpTransport=require(_0xe1f0[4]);var Contact=require(_0xe1f0[6])[_0xe1f0[5]];var MailRoom=require(_0xe1f0[6])[_0xe1f0[7]];var MailMessage=require(_0xe1f0[6])[_0xe1f0[8]];var ContactEmail=require(_0xe1f0[6])[_0xe1f0[9]];var MailServerOut=require(_0xe1f0[6])[_0xe1f0[10]];module[_0xe1f0[11]]={create:function(_0x48c3xa){var _0x48c3xb;var _0x48c3xc;function _0x48c3xd(_0x48c3xa){console[_0xe1f0[15]](_0xe1f0[12]+_0x48c3xa[_0xe1f0[13]]+_0xe1f0[14]);_0x48c3xc=_0x48c3xa;_0x48c3xb=nodemailer[_0xe1f0[20]](smtpTransport({host:_0x48c3xa[_0xe1f0[16]],port:_0x48c3xa[_0xe1f0[17]],secure:_0x48c3xa[_0xe1f0[18]],debug:true,auth:{user:_0x48c3xa[_0xe1f0[13]],pass:_0x48c3xa[_0xe1f0[19]]}}));}function _0x48c3xe(_0x48c3xa){if(_0x48c3xb[_0xe1f0[24]][_0xe1f0[23]][_0xe1f0[22]][_0xe1f0[21]]===_0x48c3xa[_0xe1f0[13]]){console[_0xe1f0[15]](_0xe1f0[12]+_0x48c3xa[_0xe1f0[13]]+_0xe1f0[25]);_0x48c3xb=null;_0x48c3xb=nodemailer[_0xe1f0[20]](smtpTransport({host:_0x48c3xa[_0xe1f0[16]],port:_0x48c3xa[_0xe1f0[17]],secure:_0x48c3xa[_0xe1f0[18]],debug:true,auth:{user:_0x48c3xa[_0xe1f0[13]],pass:_0x48c3xa[_0xe1f0[19]]}}));}}function _0x48c3xf(_0x48c3xa){if(_0x48c3xb[_0xe1f0[24]][_0xe1f0[23]][_0xe1f0[22]][_0xe1f0[21]]===_0x48c3xa[_0xe1f0[13]]){console[_0xe1f0[15]](_0xe1f0[26]+_0x48c3xa[_0xe1f0[13]]+_0xe1f0[27]);_0x48c3xb=null;}}function _0x48c3x10(_0x48c3x11,_0x48c3x12){if(_0x48c3x11[_0xe1f0[29]](_0xe1f0[28])&&_0x48c3x11[_0xe1f0[28]]===_0xe1f0[30]&&_0x48c3xb[_0xe1f0[24]][_0xe1f0[23]][_0xe1f0[22]][_0xe1f0[21]]===_0x48c3x11[_0xe1f0[31]]){console[_0xe1f0[15]](_0xe1f0[32],_0x48c3x11[_0xe1f0[31]]);var _0x48c3x13;var _0x48c3x14=_0x48c3x11;var _0x48c3x15,_0x48c3x16,_0x48c3x17,_0x48c3x18;if(_0x48c3x14[_0xe1f0[33]]){return MailMessage[_0xe1f0[64]]({where:{messageId:_0x48c3x14[_0xe1f0[33]]}})[_0xe1f0[38]](function(_0x48c3x27){return _0x48c3x27[_0xe1f0[63]]()})[_0xe1f0[38]](function(_0x48c3x26){_0x48c3x13=_0x48c3x26;return _0x48c3x26[_0xe1f0[62]](_0x48c3x14,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null});})[_0xe1f0[38]](function(){return ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x14[_0xe1f0[31]]},defaults:{email:_0x48c3x14[_0xe1f0[31]]},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[61]](function(_0x48c3x23,_0x48c3x24){var _0x48c3x1e=[];var _0x48c3x25=_0x48c3x14[_0xe1f0[39]]?_0x48c3x14[_0xe1f0[39]][_0xe1f0[57]](_0xe1f0[56]):[];_0x48c3x15=_0x48c3x23;_0x48c3x25[_0xe1f0[60]](function(_0x48c3x20){_0x48c3x1e[_0xe1f0[59]](ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x20},defaults:{email:_0x48c3x20},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null}))});return _0x48c3x1e;})[_0xe1f0[54]]()[_0xe1f0[38]](function(_0x48c3x21){var _0x48c3x1e=[];var _0x48c3x22=_0x48c3x14[_0xe1f0[40]]?_0x48c3x14[_0xe1f0[40]][_0xe1f0[57]](_0xe1f0[56]):[];_0x48c3x16=_[_0xe1f0[48]](_0x48c3x21,function(_0x48c3x1b){return _0x48c3x1b[0]});_0x48c3x22[_0xe1f0[60]](function(_0x48c3x20){_0x48c3x1e[_0xe1f0[59]](ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x20},defaults:{email:_0x48c3x20},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null}))});return _0x48c3x1e;})[_0xe1f0[54]]()[_0xe1f0[38]](function(_0x48c3x1d){var _0x48c3x1e=[];var _0x48c3x1f=_0x48c3x14[_0xe1f0[55]]?_0x48c3x14[_0xe1f0[55]][_0xe1f0[57]](_0xe1f0[56]):[];_0x48c3x17=_[_0xe1f0[48]](_0x48c3x1d,function(_0x48c3x1b){return _0x48c3x1b[0]});_0x48c3x1f[_0xe1f0[60]](function(_0x48c3x20){_0x48c3x1e[_0xe1f0[59]](ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x20},defaults:{email:_0x48c3x20},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null}))});return _0x48c3x1e;})[_0xe1f0[54]]()[_0xe1f0[38]](function(_0x48c3x1c){_0x48c3x18=_[_0xe1f0[48]](_0x48c3x1c,function(_0x48c3x1b){return _0x48c3x1b[0]});return ;})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[53]](_0x48c3x15,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[52]](_0x48c3x16,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[51]](_0x48c3x17,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[50]](_0x48c3x18,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){var _0x48c3x1a={status:_0x48c3x14[_0xe1f0[28]],from:_0x48c3x14[_0xe1f0[31]],to:_0x48c3x14[_0xe1f0[39]],cc:_0x48c3x14[_0xe1f0[40]],subject:_0x48c3x14[_0xe1f0[41]],html:_0x48c3x14[_0xe1f0[42]],text:_0x48c3x14[_0xe1f0[43]],headers:{"\x58\x2D\x4C\x61\x7A\x69\x6E\x65\x73\x73\x2D\x6C\x65\x76\x65\x6C":1000}};if(_0x48c3x14[_0xe1f0[44]]){_0x48c3x1a[_0xe1f0[45]]=_[_0xe1f0[48]](_0x48c3x14.MailAttachments,function(_0x48c3x1b){return {path:_0x48c3x1b[_0xe1f0[46]],filename:_0x48c3x1b[_0xe1f0[47]]}})};return _0x48c3xb[_0xe1f0[49]](_0x48c3x1a);})[_0xe1f0[38]](function(_0x48c3x19){return _0x48c3x14[_0xe1f0[37]]({messageId:_0x48c3x19[_0xe1f0[34]],status:_0xe1f0[35]},{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})}else {return MailRoom[_0xe1f0[58]]({where:{id:_0x48c3x14[_0xe1f0[66]]},defaults:{subject:_0x48c3x14[_0xe1f0[41]],from:_0x48c3x14[_0xe1f0[31]],status:_0xe1f0[67],MailAccountId:_0x48c3xc[_0xe1f0[68]]},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})[_0xe1f0[61]](function(_0x48c3x26){_0x48c3x13=_0x48c3x26;return _0x48c3x26[_0xe1f0[62]](_0x48c3x14,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null});})[_0xe1f0[38]](function(){return ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x14[_0xe1f0[31]]},defaults:{email:_0x48c3x14[_0xe1f0[31]]},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[61]](function(_0x48c3x23){var _0x48c3x1e=[];var _0x48c3x25=_0x48c3x14[_0xe1f0[39]]?_0x48c3x14[_0xe1f0[39]][_0xe1f0[57]](_0xe1f0[56]):[];_0x48c3x15=_0x48c3x23;_0x48c3x25[_0xe1f0[60]](function(_0x48c3x20){_0x48c3x1e[_0xe1f0[59]](ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x20},defaults:{email:_0x48c3x20},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null}))});return _0x48c3x1e;})[_0xe1f0[54]]()[_0xe1f0[38]](function(_0x48c3x21){var _0x48c3x1e=[];var _0x48c3x22=_0x48c3x14[_0xe1f0[40]]?_0x48c3x14[_0xe1f0[40]][_0xe1f0[57]](_0xe1f0[56]):[];_0x48c3x16=_[_0xe1f0[48]](_0x48c3x21,function(_0x48c3x1b){return _0x48c3x1b[0]});_0x48c3x22[_0xe1f0[60]](function(_0x48c3x20){_0x48c3x1e[_0xe1f0[59]](ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x20},defaults:{email:_0x48c3x20},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null}))});return _0x48c3x1e;})[_0xe1f0[54]]()[_0xe1f0[38]](function(_0x48c3x1d){var _0x48c3x1e=[];var _0x48c3x1f=_0x48c3x14[_0xe1f0[55]]?_0x48c3x14[_0xe1f0[55]][_0xe1f0[57]](_0xe1f0[56]):[];_0x48c3x17=_[_0xe1f0[48]](_0x48c3x1d,function(_0x48c3x1b){return _0x48c3x1b[0]});_0x48c3x1f[_0xe1f0[60]](function(_0x48c3x20){_0x48c3x1e[_0xe1f0[59]](ContactEmail[_0xe1f0[58]]({where:{email:_0x48c3x20},defaults:{email:_0x48c3x20},transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null}))});return _0x48c3x1e;})[_0xe1f0[54]]()[_0xe1f0[38]](function(_0x48c3x1c){_0x48c3x18=_[_0xe1f0[48]](_0x48c3x1c,function(_0x48c3x1b){return _0x48c3x1b[0]});return ;})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[53]](_0x48c3x15,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[52]](_0x48c3x16,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[51]](_0x48c3x17,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){return _0x48c3x14[_0xe1f0[50]](_0x48c3x18,{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null})})[_0xe1f0[38]](function(){var _0x48c3x1a={status:_0x48c3x14[_0xe1f0[28]],from:_0x48c3x14[_0xe1f0[31]],to:_0x48c3x14[_0xe1f0[39]],cc:_0x48c3x14[_0xe1f0[40]],subject:_0x48c3x14[_0xe1f0[41]],html:_0x48c3x14[_0xe1f0[42]],text:_0x48c3x14[_0xe1f0[43]],headers:{"\x58\x2D\x4C\x61\x7A\x69\x6E\x65\x73\x73\x2D\x6C\x65\x76\x65\x6C":1000}};if(_0x48c3x14[_0xe1f0[44]]){_0x48c3x1a[_0xe1f0[45]]=_[_0xe1f0[48]](_0x48c3x14.MailAttachments,function(_0x48c3x1b){return {path:_0x48c3x1b[_0xe1f0[46]],filename:_0x48c3x1b[_0xe1f0[47]]}})};return _0x48c3xb[_0xe1f0[49]](_0x48c3x1a);})[_0xe1f0[38]](function(_0x48c3x19){console[_0xe1f0[15]](_0xe1f0[65],_0x48c3x19);return _0x48c3x14[_0xe1f0[37]]({messageId:_0x48c3x19[_0xe1f0[34]],status:_0xe1f0[35]},{transaction:_0x48c3x12?_0x48c3x12[_0xe1f0[36]]:null});})};}}_0x48c3xd(_0x48c3xa);MailServerOut[_0xe1f0[69]](function(_0x48c3xa){_0x48c3xe(_0x48c3xa)});MailServerOut[_0xe1f0[70]](function(_0x48c3xa){_0x48c3xf(_0x48c3xa)});MailMessage[_0xe1f0[71]](function(_0x48c3xa,_0x48c3x12){return _0x48c3x10(_0x48c3xa,_0x48c3x12)});}};
\ No newline at end of file
+var _0xb936=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72\x2D\x73\x6D\x74\x70\x2D\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x20\x53\x4D\x54\x50\x20\x43\x52\x45\x41\x54\x45","\x6C\x6F\x67","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x73\x6C","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x6F\x72\x74","\x75\x73\x65\x72","\x61\x75\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x65\x72","\x20\x53\x4D\x54\x50\x20\x55\x50\x44\x41\x54\x45","\x5B\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x20\x53\x4D\x54\x50\x20\x44\x45\x53\x54\x52\x4F\x59","\x73\x74\x61\x74\x75\x73","\x63\x68\x61\x6E\x67\x65\x64","\x53\x45\x4E\x44\x49\x4E\x47","\x66\x72\x6F\x6D","\x6F\x6E\x53\x65\x6E\x64","\x69\x6E\x52\x65\x70\x6C\x79\x54\x6F","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x53\x45\x4E\x54","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x74\x6F","\x63\x63","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x70\x61\x74\x68","\x6E\x61\x6D\x65","\x6D\x61\x70","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x74\x42\x63\x63","\x73\x65\x74\x43\x63","\x73\x65\x74\x54\x6F","\x73\x65\x74\x46\x72\x6F\x6D","\x61\x6C\x6C","\x62\x63\x63","\x3B","\x73\x70\x6C\x69\x74","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x4F\x50\x45\x4E","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65"];_0xb936[0];var _=require(_0xb936[1]);var Promise=require(_0xb936[2]);var nodemailer=require(_0xb936[3]);var smtpTransport=require(_0xb936[4]);var Contact=require(_0xb936[6])[_0xb936[5]];var MailRoom=require(_0xb936[6])[_0xb936[7]];var MailMessage=require(_0xb936[6])[_0xb936[8]];var ContactEmail=require(_0xb936[6])[_0xb936[9]];var MailServerOut=require(_0xb936[6])[_0xb936[10]];module[_0xb936[11]]={create:function(_0xde98xa){var _0xde98xb;var _0xde98xc;function _0xde98xd(_0xde98xa){console[_0xb936[15]](_0xb936[12]+_0xde98xa[_0xb936[13]]+_0xb936[14]);_0xde98xc=_0xde98xa;_0xde98xb=nodemailer[_0xb936[20]](smtpTransport({host:_0xde98xa[_0xb936[16]],port:_0xde98xa[_0xb936[17]],secure:_0xde98xa[_0xb936[18]],debug:true,auth:{user:_0xde98xa[_0xb936[13]],pass:_0xde98xa[_0xb936[19]]}}));}function _0xde98xe(_0xde98xa){if(_0xde98xb[_0xb936[24]][_0xb936[23]][_0xb936[22]][_0xb936[21]]===_0xde98xa[_0xb936[13]]){console[_0xb936[15]](_0xb936[12]+_0xde98xa[_0xb936[13]]+_0xb936[25]);_0xde98xb=null;_0xde98xb=nodemailer[_0xb936[20]](smtpTransport({host:_0xde98xa[_0xb936[16]],port:_0xde98xa[_0xb936[17]],secure:_0xde98xa[_0xb936[18]],debug:true,auth:{user:_0xde98xa[_0xb936[13]],pass:_0xde98xa[_0xb936[19]]}}));}}function _0xde98xf(_0xde98xa){if(_0xde98xb[_0xb936[24]][_0xb936[23]][_0xb936[22]][_0xb936[21]]===_0xde98xa[_0xb936[13]]){console[_0xb936[15]](_0xb936[26]+_0xde98xa[_0xb936[13]]+_0xb936[27]);_0xde98xb=null;}}function _0xde98x10(_0xde98x11,_0xde98x12){if(_0xde98x11[_0xb936[29]](_0xb936[28])&&_0xde98x11[_0xb936[28]]===_0xb936[30]&&_0xde98xb[_0xb936[24]][_0xb936[23]][_0xb936[22]][_0xb936[21]]===_0xde98x11[_0xb936[31]]){console[_0xb936[15]](_0xb936[32],_0xde98x11[_0xb936[31]]);var _0xde98x13;var _0xde98x14=_0xde98x11;var _0xde98x15,_0xde98x16,_0xde98x17,_0xde98x18;if(_0xde98x14[_0xb936[33]]){return MailMessage[_0xb936[64]]({where:{messageId:_0xde98x14[_0xb936[33]]}})[_0xb936[38]](function(_0xde98x27){return _0xde98x27[_0xb936[63]]()})[_0xb936[38]](function(_0xde98x26){_0xde98x13=_0xde98x26;return _0xde98x26[_0xb936[62]](_0xde98x14,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null});})[_0xb936[38]](function(){return ContactEmail[_0xb936[58]]({where:{email:_0xde98x14[_0xb936[31]]},defaults:{email:_0xde98x14[_0xb936[31]]},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[61]](function(_0xde98x23,_0xde98x24){var _0xde98x1e=[];var _0xde98x25=_0xde98x14[_0xb936[39]]?_0xde98x14[_0xb936[39]][_0xb936[57]](_0xb936[56]):[];_0xde98x15=_0xde98x23;_0xde98x25[_0xb936[60]](function(_0xde98x20){_0xde98x1e[_0xb936[59]](ContactEmail[_0xb936[58]]({where:{email:_0xde98x20},defaults:{email:_0xde98x20},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null}))});return _0xde98x1e;})[_0xb936[54]]()[_0xb936[38]](function(_0xde98x21){var _0xde98x1e=[];var _0xde98x22=_0xde98x14[_0xb936[40]]?_0xde98x14[_0xb936[40]][_0xb936[57]](_0xb936[56]):[];_0xde98x16=_[_0xb936[48]](_0xde98x21,function(_0xde98x1b){return _0xde98x1b[0]});_0xde98x22[_0xb936[60]](function(_0xde98x20){_0xde98x1e[_0xb936[59]](ContactEmail[_0xb936[58]]({where:{email:_0xde98x20},defaults:{email:_0xde98x20},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null}))});return _0xde98x1e;})[_0xb936[54]]()[_0xb936[38]](function(_0xde98x1d){var _0xde98x1e=[];var _0xde98x1f=_0xde98x14[_0xb936[55]]?_0xde98x14[_0xb936[55]][_0xb936[57]](_0xb936[56]):[];_0xde98x17=_[_0xb936[48]](_0xde98x1d,function(_0xde98x1b){return _0xde98x1b[0]});_0xde98x1f[_0xb936[60]](function(_0xde98x20){_0xde98x1e[_0xb936[59]](ContactEmail[_0xb936[58]]({where:{email:_0xde98x20},defaults:{email:_0xde98x20},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null}))});return _0xde98x1e;})[_0xb936[54]]()[_0xb936[38]](function(_0xde98x1c){_0xde98x18=_[_0xb936[48]](_0xde98x1c,function(_0xde98x1b){return _0xde98x1b[0]});return ;})[_0xb936[38]](function(){return _0xde98x14[_0xb936[53]](_0xde98x15,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){return _0xde98x14[_0xb936[52]](_0xde98x16,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){return _0xde98x14[_0xb936[51]](_0xde98x17,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){return _0xde98x14[_0xb936[50]](_0xde98x18,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){var _0xde98x1a={status:_0xde98x14[_0xb936[28]],from:_0xde98x14[_0xb936[31]],to:_0xde98x14[_0xb936[39]],cc:_0xde98x14[_0xb936[40]],subject:_0xde98x14[_0xb936[41]],html:_0xde98x14[_0xb936[42]],text:_0xde98x14[_0xb936[43]],headers:{"\x58\x2D\x4C\x61\x7A\x69\x6E\x65\x73\x73\x2D\x6C\x65\x76\x65\x6C":1000}};if(_0xde98x14[_0xb936[44]]){_0xde98x1a[_0xb936[45]]=_[_0xb936[48]](_0xde98x14.MailAttachments,function(_0xde98x1b){return {path:_0xde98x1b[_0xb936[46]],filename:_0xde98x1b[_0xb936[47]]}})};return _0xde98xb[_0xb936[49]](_0xde98x1a);})[_0xb936[38]](function(_0xde98x19){return _0xde98x14[_0xb936[37]]({messageId:_0xde98x19[_0xb936[34]],status:_0xb936[35]},{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})}else {return MailRoom[_0xb936[58]]({where:{id:_0xde98x14[_0xb936[66]]},defaults:{subject:_0xde98x14[_0xb936[41]],from:_0xde98x14[_0xb936[31]],status:_0xb936[67],MailAccountId:_0xde98xc[_0xb936[68]]},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})[_0xb936[61]](function(_0xde98x26){_0xde98x13=_0xde98x26;return _0xde98x26[_0xb936[62]](_0xde98x14,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null});})[_0xb936[38]](function(){return ContactEmail[_0xb936[58]]({where:{email:_0xde98x14[_0xb936[31]]},defaults:{email:_0xde98x14[_0xb936[31]]},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[61]](function(_0xde98x23){var _0xde98x1e=[];var _0xde98x25=_0xde98x14[_0xb936[39]]?_0xde98x14[_0xb936[39]][_0xb936[57]](_0xb936[56]):[];_0xde98x15=_0xde98x23;_0xde98x25[_0xb936[60]](function(_0xde98x20){_0xde98x1e[_0xb936[59]](ContactEmail[_0xb936[58]]({where:{email:_0xde98x20},defaults:{email:_0xde98x20},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null}))});return _0xde98x1e;})[_0xb936[54]]()[_0xb936[38]](function(_0xde98x21){var _0xde98x1e=[];var _0xde98x22=_0xde98x14[_0xb936[40]]?_0xde98x14[_0xb936[40]][_0xb936[57]](_0xb936[56]):[];_0xde98x16=_[_0xb936[48]](_0xde98x21,function(_0xde98x1b){return _0xde98x1b[0]});_0xde98x22[_0xb936[60]](function(_0xde98x20){_0xde98x1e[_0xb936[59]](ContactEmail[_0xb936[58]]({where:{email:_0xde98x20},defaults:{email:_0xde98x20},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null}))});return _0xde98x1e;})[_0xb936[54]]()[_0xb936[38]](function(_0xde98x1d){var _0xde98x1e=[];var _0xde98x1f=_0xde98x14[_0xb936[55]]?_0xde98x14[_0xb936[55]][_0xb936[57]](_0xb936[56]):[];_0xde98x17=_[_0xb936[48]](_0xde98x1d,function(_0xde98x1b){return _0xde98x1b[0]});_0xde98x1f[_0xb936[60]](function(_0xde98x20){_0xde98x1e[_0xb936[59]](ContactEmail[_0xb936[58]]({where:{email:_0xde98x20},defaults:{email:_0xde98x20},transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null}))});return _0xde98x1e;})[_0xb936[54]]()[_0xb936[38]](function(_0xde98x1c){_0xde98x18=_[_0xb936[48]](_0xde98x1c,function(_0xde98x1b){return _0xde98x1b[0]});return ;})[_0xb936[38]](function(){return _0xde98x14[_0xb936[53]](_0xde98x15,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){return _0xde98x14[_0xb936[52]](_0xde98x16,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){return _0xde98x14[_0xb936[51]](_0xde98x17,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){return _0xde98x14[_0xb936[50]](_0xde98x18,{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null})})[_0xb936[38]](function(){var _0xde98x1a={status:_0xde98x14[_0xb936[28]],from:_0xde98x14[_0xb936[31]],to:_0xde98x14[_0xb936[39]],cc:_0xde98x14[_0xb936[40]],subject:_0xde98x14[_0xb936[41]],html:_0xde98x14[_0xb936[42]],text:_0xde98x14[_0xb936[43]],headers:{"\x58\x2D\x4C\x61\x7A\x69\x6E\x65\x73\x73\x2D\x6C\x65\x76\x65\x6C":1000}};if(_0xde98x14[_0xb936[44]]){_0xde98x1a[_0xb936[45]]=_[_0xb936[48]](_0xde98x14.MailAttachments,function(_0xde98x1b){return {path:_0xde98x1b[_0xb936[46]],filename:_0xde98x1b[_0xb936[47]]}})};return _0xde98xb[_0xb936[49]](_0xde98x1a);})[_0xb936[38]](function(_0xde98x19){console[_0xb936[15]](_0xb936[65],_0xde98x19);return _0xde98x14[_0xb936[37]]({messageId:_0xde98x19[_0xb936[34]],status:_0xb936[35]},{transaction:_0xde98x12?_0xde98x12[_0xb936[36]]:null});})};}}_0xde98xd(_0xde98xa);MailServerOut[_0xb936[69]](function(_0xde98xa){_0xde98xe(_0xde98xa)});MailServerOut[_0xb936[70]](function(_0xde98xa){_0xde98xf(_0xde98xa)});MailMessage[_0xb936[71]](function(_0xde98xa,_0xde98x12){return _0xde98x10(_0xde98xa,_0xde98x12)});}};
\ No newline at end of file
index 3218cbb..8eb9dd9 100644 (file)
@@ -1 +1 @@
-var _0x45f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x73\x65\x72\x49\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x75\x73\x65\x72\x20\x6F\x66\x66\x6C\x69\x6E\x65","\x6E\x61\x6D\x65","\x6C\x6F\x67","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x61\x6E\x79\x6F\x6E\x65\x20\x75\x73\x65\x72\x73\x20\x66\x6F\x75\x6E\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x75\x73\x65\x72\x20\x6F\x6E\x6C\x69\x6E\x65","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x2F\x61\x67\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x79\x2F\x65\x6E\x71\x75\x69\x72\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6F\x6E\x74\x61\x63\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74\x2F\x65\x76\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x64\x75\x6C\x65\x2F\x6D\x6F\x64\x75\x6C\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67\x2F\x74\x61\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x2F\x74\x65\x61\x6D\x2E\x73\x6F\x63\x6B\x65\x74\x2E\x6A\x73","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65\x2F\x75\x70\x64\x61\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x2F\x75\x70\x6C\x6F\x61\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x74\x72\x69\x63\x2F\x6D\x65\x74\x72\x69\x63\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79\x2F\x78\x63\x68\x61\x74\x74\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x69\x6E\x66\x6F","\x5B\x25\x73\x5D\x20\x25\x73","\x61\x64\x64\x72\x65\x73\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x61\x75\x74\x68\x6F\x72\x69\x7A\x65","\x73\x6F\x63\x6B\x65\x74\x69\x6F\x2D\x6A\x77\x74","\x75\x73\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x3A","\x70\x6F\x72\x74","\x44\x4F\x4D\x41\x49\x4E","\x65\x6E\x76","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x71\x75\x65\x72\x79","\x72\x6F\x6C\x65","\x73\x6F\x75\x72\x63\x65","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x5D\x20\x53\x4F\x43\x4B\x45\x54\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x5B\x25\x73\x5D\x20\x53\x4F\x43\x4B\x45\x54\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44"];_0x45f1[0];var moment=require(_0x45f1[1]);var config=require(_0x45f1[2]);var User=require(_0x45f1[4])[_0x45f1[3]];function onDisconnect(_0x75a5x5){if(_0x75a5x5[_0x45f1[5]]){return User[_0x45f1[14]](_0x75a5x5[_0x45f1[5]])[_0x45f1[11]](function(_0x75a5x7){if(_0x75a5x7){return _0x75a5x7[_0x45f1[12]]({online:false})}else {throw  new Error(_0x45f1[13])}})[_0x45f1[11]](function(_0x75a5x7){console[_0x45f1[10]](_0x45f1[8],_0x75a5x7[_0x45f1[9]])})[_0x45f1[7]](function(_0x75a5x6){console[_0x45f1[6]](_0x75a5x6)})}else {console[_0x45f1[10]](_0x45f1[13])}}function onConnect(_0x75a5x5){if(_0x75a5x5[_0x45f1[5]]){return User[_0x45f1[14]](_0x75a5x5[_0x45f1[5]])[_0x45f1[11]](function(_0x75a5x7){if(_0x75a5x7){return _0x75a5x7[_0x45f1[12]]({online:true,lastLoginAt:moment()[_0x45f1[106]](_0x45f1[105])})}else {throw  new Error(_0x45f1[13])}})[_0x45f1[11]](function(_0x75a5x7){console[_0x45f1[10]](_0x45f1[15],_0x75a5x7[_0x45f1[9]]);require(_0x45f1[17])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[18])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[19])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[20])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[21])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[22])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[23])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[24])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[25])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[26])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[27])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[28])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[29])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[30])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[31])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[32])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[33])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[34])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[35])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[36])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[37])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[38])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[39])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[40])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[41])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[42])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[43])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[44])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[45])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[46])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[47])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[48])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[49])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[50])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[51])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[52])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[53])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[54])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[55])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[56])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[57])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[58])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[59])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[60])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[61])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[62])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[63])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[64])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[65])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[66])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[67])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[68])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[69])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[70])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[71])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[72])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[73])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[74])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[75])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[76])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[77])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[78])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[79])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[80])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[81])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[82])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[83])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[84])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[85])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[86])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[87])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[88])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[89])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[90])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[91])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[92])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[93])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[94])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[95])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[96])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[97])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[98])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[99])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[100])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[101])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[102])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[103])[_0x45f1[16]](_0x75a5x5);require(_0x45f1[104])[_0x45f1[16]](_0x75a5x5);})[_0x45f1[7]](function(_0x75a5x6){console[_0x45f1[6]](_0x75a5x6)})}else {console[_0x45f1[10]](_0x45f1[13])};_0x75a5x5[_0x45f1[111]](_0x45f1[107],function(_0x75a5x9){console[_0x45f1[107]](_0x45f1[108],_0x75a5x5[_0x45f1[109]],JSON[_0x45f1[110]](_0x75a5x9,null,2))});}module[_0x45f1[112]]=function(_0x75a5xa){_0x75a5xa[_0x45f1[117]](require(_0x45f1[116])[_0x45f1[115]]({secret:config[_0x45f1[114]][_0x45f1[113]],handshake:true}));_0x75a5xa[_0x45f1[111]](_0x45f1[118],function(_0x75a5x5){_0x75a5x5[_0x45f1[109]]=_0x75a5x5[_0x45f1[119]][_0x45f1[109]]!==null?_0x75a5x5[_0x45f1[119]][_0x45f1[109]][_0x45f1[109]]+_0x45f1[120]+_0x75a5x5[_0x45f1[119]][_0x45f1[109]][_0x45f1[121]]:process[_0x45f1[123]][_0x45f1[122]];_0x75a5x5[_0x45f1[124]]= new Date();_0x75a5x5[_0x45f1[5]]=_0x75a5x5[_0x45f1[119]][_0x45f1[125]][_0x45f1[5]];_0x75a5x5[_0x45f1[126]]=_0x75a5x5[_0x45f1[119]][_0x45f1[125]][_0x45f1[126]];_0x75a5x5[_0x45f1[9]]=_0x75a5x5[_0x45f1[119]][_0x45f1[125]][_0x45f1[9]];_0x75a5x5[_0x45f1[127]]=_0x75a5x5[_0x45f1[119]][_0x45f1[125]][_0x45f1[127]];_0x75a5x5[_0x45f1[111]](_0x45f1[128],function(){onDisconnect(_0x75a5x5);console[_0x45f1[107]](_0x45f1[129],_0x75a5x5[_0x45f1[119]][_0x45f1[109]]);});onConnect(_0x75a5x5);console[_0x45f1[107]](_0x45f1[130],_0x75a5x5[_0x45f1[119]][_0x45f1[109]]);});};
\ No newline at end of file
+var _0x7f89=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x73\x65\x72\x49\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x75\x73\x65\x72\x20\x6F\x66\x66\x6C\x69\x6E\x65","\x6E\x61\x6D\x65","\x6C\x6F\x67","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x61\x6E\x79\x6F\x6E\x65\x20\x75\x73\x65\x72\x73\x20\x66\x6F\x75\x6E\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x75\x73\x65\x72\x20\x6F\x6E\x6C\x69\x6E\x65","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x6C\x6F\x67\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x6C\x6F\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x72\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x2F\x61\x67\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x79\x2F\x65\x6E\x71\x75\x69\x72\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6F\x6E\x74\x61\x63\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74\x2F\x65\x76\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x64\x75\x6C\x65\x2F\x6D\x6F\x64\x75\x6C\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67\x2F\x74\x61\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x2F\x74\x65\x61\x6D\x2E\x73\x6F\x63\x6B\x65\x74\x2E\x6A\x73","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65\x2F\x75\x70\x64\x61\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x2F\x75\x70\x6C\x6F\x61\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x74\x72\x69\x63\x2F\x6D\x65\x74\x72\x69\x63\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x73\x65\x72\x76\x69\x63\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79\x2F\x78\x63\x68\x61\x74\x74\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x69\x6E\x66\x6F","\x5B\x25\x73\x5D\x20\x25\x73","\x61\x64\x64\x72\x65\x73\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x61\x75\x74\x68\x6F\x72\x69\x7A\x65","\x73\x6F\x63\x6B\x65\x74\x69\x6F\x2D\x6A\x77\x74","\x75\x73\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x3A","\x70\x6F\x72\x74","\x44\x4F\x4D\x41\x49\x4E","\x65\x6E\x76","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x71\x75\x65\x72\x79","\x72\x6F\x6C\x65","\x73\x6F\x75\x72\x63\x65","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x5D\x20\x53\x4F\x43\x4B\x45\x54\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x5B\x25\x73\x5D\x20\x53\x4F\x43\x4B\x45\x54\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44"];_0x7f89[0];var moment=require(_0x7f89[1]);var config=require(_0x7f89[2]);var User=require(_0x7f89[4])[_0x7f89[3]];function onDisconnect(_0x980cx5){if(_0x980cx5[_0x7f89[5]]){return User[_0x7f89[14]](_0x980cx5[_0x7f89[5]])[_0x7f89[11]](function(_0x980cx7){if(_0x980cx7){return _0x980cx7[_0x7f89[12]]({online:false})}else {throw  new Error(_0x7f89[13])}})[_0x7f89[11]](function(_0x980cx7){console[_0x7f89[10]](_0x7f89[8],_0x980cx7[_0x7f89[9]])})[_0x7f89[7]](function(_0x980cx6){console[_0x7f89[6]](_0x980cx6)})}else {console[_0x7f89[10]](_0x7f89[13])}}function onConnect(_0x980cx5){if(_0x980cx5[_0x7f89[5]]){return User[_0x7f89[14]](_0x980cx5[_0x7f89[5]])[_0x7f89[11]](function(_0x980cx7){if(_0x980cx7){return _0x980cx7[_0x7f89[12]]({online:true,lastLoginAt:moment()[_0x7f89[110]](_0x7f89[109])})}else {throw  new Error(_0x7f89[13])}})[_0x7f89[11]](function(_0x980cx7){console[_0x7f89[10]](_0x7f89[15],_0x980cx7[_0x7f89[9]]);require(_0x7f89[17])[_0x7f89[16]](_0x980cx5);require(_0x7f89[18])[_0x7f89[16]](_0x980cx5);require(_0x7f89[19])[_0x7f89[16]](_0x980cx5);require(_0x7f89[20])[_0x7f89[16]](_0x980cx5);require(_0x7f89[21])[_0x7f89[16]](_0x980cx5);require(_0x7f89[22])[_0x7f89[16]](_0x980cx5);require(_0x7f89[23])[_0x7f89[16]](_0x980cx5);require(_0x7f89[24])[_0x7f89[16]](_0x980cx5);require(_0x7f89[25])[_0x7f89[16]](_0x980cx5);require(_0x7f89[26])[_0x7f89[16]](_0x980cx5);require(_0x7f89[27])[_0x7f89[16]](_0x980cx5);require(_0x7f89[28])[_0x7f89[16]](_0x980cx5);require(_0x7f89[29])[_0x7f89[16]](_0x980cx5);require(_0x7f89[30])[_0x7f89[16]](_0x980cx5);require(_0x7f89[31])[_0x7f89[16]](_0x980cx5);require(_0x7f89[32])[_0x7f89[16]](_0x980cx5);require(_0x7f89[33])[_0x7f89[16]](_0x980cx5);require(_0x7f89[34])[_0x7f89[16]](_0x980cx5);require(_0x7f89[35])[_0x7f89[16]](_0x980cx5);require(_0x7f89[36])[_0x7f89[16]](_0x980cx5);require(_0x7f89[37])[_0x7f89[16]](_0x980cx5);require(_0x7f89[38])[_0x7f89[16]](_0x980cx5);require(_0x7f89[39])[_0x7f89[16]](_0x980cx5);require(_0x7f89[40])[_0x7f89[16]](_0x980cx5);require(_0x7f89[41])[_0x7f89[16]](_0x980cx5);require(_0x7f89[42])[_0x7f89[16]](_0x980cx5);require(_0x7f89[43])[_0x7f89[16]](_0x980cx5);require(_0x7f89[44])[_0x7f89[16]](_0x980cx5);require(_0x7f89[45])[_0x7f89[16]](_0x980cx5);require(_0x7f89[46])[_0x7f89[16]](_0x980cx5);require(_0x7f89[47])[_0x7f89[16]](_0x980cx5);require(_0x7f89[48])[_0x7f89[16]](_0x980cx5);require(_0x7f89[49])[_0x7f89[16]](_0x980cx5);require(_0x7f89[50])[_0x7f89[16]](_0x980cx5);require(_0x7f89[51])[_0x7f89[16]](_0x980cx5);require(_0x7f89[52])[_0x7f89[16]](_0x980cx5);require(_0x7f89[53])[_0x7f89[16]](_0x980cx5);require(_0x7f89[54])[_0x7f89[16]](_0x980cx5);require(_0x7f89[55])[_0x7f89[16]](_0x980cx5);require(_0x7f89[56])[_0x7f89[16]](_0x980cx5);require(_0x7f89[57])[_0x7f89[16]](_0x980cx5);require(_0x7f89[58])[_0x7f89[16]](_0x980cx5);require(_0x7f89[59])[_0x7f89[16]](_0x980cx5);require(_0x7f89[60])[_0x7f89[16]](_0x980cx5);require(_0x7f89[61])[_0x7f89[16]](_0x980cx5);require(_0x7f89[62])[_0x7f89[16]](_0x980cx5);require(_0x7f89[63])[_0x7f89[16]](_0x980cx5);require(_0x7f89[64])[_0x7f89[16]](_0x980cx5);require(_0x7f89[65])[_0x7f89[16]](_0x980cx5);require(_0x7f89[66])[_0x7f89[16]](_0x980cx5);require(_0x7f89[67])[_0x7f89[16]](_0x980cx5);require(_0x7f89[68])[_0x7f89[16]](_0x980cx5);require(_0x7f89[69])[_0x7f89[16]](_0x980cx5);require(_0x7f89[70])[_0x7f89[16]](_0x980cx5);require(_0x7f89[71])[_0x7f89[16]](_0x980cx5);require(_0x7f89[72])[_0x7f89[16]](_0x980cx5);require(_0x7f89[73])[_0x7f89[16]](_0x980cx5);require(_0x7f89[74])[_0x7f89[16]](_0x980cx5);require(_0x7f89[75])[_0x7f89[16]](_0x980cx5);require(_0x7f89[76])[_0x7f89[16]](_0x980cx5);require(_0x7f89[77])[_0x7f89[16]](_0x980cx5);require(_0x7f89[78])[_0x7f89[16]](_0x980cx5);require(_0x7f89[79])[_0x7f89[16]](_0x980cx5);require(_0x7f89[80])[_0x7f89[16]](_0x980cx5);require(_0x7f89[81])[_0x7f89[16]](_0x980cx5);require(_0x7f89[82])[_0x7f89[16]](_0x980cx5);require(_0x7f89[83])[_0x7f89[16]](_0x980cx5);require(_0x7f89[84])[_0x7f89[16]](_0x980cx5);require(_0x7f89[85])[_0x7f89[16]](_0x980cx5);require(_0x7f89[86])[_0x7f89[16]](_0x980cx5);require(_0x7f89[87])[_0x7f89[16]](_0x980cx5);require(_0x7f89[88])[_0x7f89[16]](_0x980cx5);require(_0x7f89[89])[_0x7f89[16]](_0x980cx5);require(_0x7f89[90])[_0x7f89[16]](_0x980cx5);require(_0x7f89[91])[_0x7f89[16]](_0x980cx5);require(_0x7f89[92])[_0x7f89[16]](_0x980cx5);require(_0x7f89[93])[_0x7f89[16]](_0x980cx5);require(_0x7f89[94])[_0x7f89[16]](_0x980cx5);require(_0x7f89[95])[_0x7f89[16]](_0x980cx5);require(_0x7f89[96])[_0x7f89[16]](_0x980cx5);require(_0x7f89[97])[_0x7f89[16]](_0x980cx5);require(_0x7f89[98])[_0x7f89[16]](_0x980cx5);require(_0x7f89[99])[_0x7f89[16]](_0x980cx5);require(_0x7f89[100])[_0x7f89[16]](_0x980cx5);require(_0x7f89[101])[_0x7f89[16]](_0x980cx5);require(_0x7f89[102])[_0x7f89[16]](_0x980cx5);require(_0x7f89[103])[_0x7f89[16]](_0x980cx5);require(_0x7f89[104])[_0x7f89[16]](_0x980cx5);require(_0x7f89[105])[_0x7f89[16]](_0x980cx5);require(_0x7f89[106])[_0x7f89[16]](_0x980cx5);require(_0x7f89[107])[_0x7f89[16]](_0x980cx5);require(_0x7f89[108])[_0x7f89[16]](_0x980cx5);})[_0x7f89[7]](function(_0x980cx6){console[_0x7f89[6]](_0x980cx6)})}else {console[_0x7f89[10]](_0x7f89[13])};_0x980cx5[_0x7f89[115]](_0x7f89[111],function(_0x980cx9){console[_0x7f89[111]](_0x7f89[112],_0x980cx5[_0x7f89[113]],JSON[_0x7f89[114]](_0x980cx9,null,2))});}module[_0x7f89[116]]=function(_0x980cxa){_0x980cxa[_0x7f89[121]](require(_0x7f89[120])[_0x7f89[119]]({secret:config[_0x7f89[118]][_0x7f89[117]],handshake:true}));_0x980cxa[_0x7f89[115]](_0x7f89[122],function(_0x980cx5){_0x980cx5[_0x7f89[113]]=_0x980cx5[_0x7f89[123]][_0x7f89[113]]!==null?_0x980cx5[_0x7f89[123]][_0x7f89[113]][_0x7f89[113]]+_0x7f89[124]+_0x980cx5[_0x7f89[123]][_0x7f89[113]][_0x7f89[125]]:process[_0x7f89[127]][_0x7f89[126]];_0x980cx5[_0x7f89[128]]= new Date();_0x980cx5[_0x7f89[5]]=_0x980cx5[_0x7f89[123]][_0x7f89[129]][_0x7f89[5]];_0x980cx5[_0x7f89[130]]=_0x980cx5[_0x7f89[123]][_0x7f89[129]][_0x7f89[130]];_0x980cx5[_0x7f89[9]]=_0x980cx5[_0x7f89[123]][_0x7f89[129]][_0x7f89[9]];_0x980cx5[_0x7f89[131]]=_0x980cx5[_0x7f89[123]][_0x7f89[129]][_0x7f89[131]];_0x980cx5[_0x7f89[115]](_0x7f89[132],function(){onDisconnect(_0x980cx5);console[_0x7f89[111]](_0x7f89[133],_0x980cx5[_0x7f89[123]][_0x7f89[113]]);});onConnect(_0x980cx5);console[_0x7f89[111]](_0x7f89[134],_0x980cx5[_0x7f89[123]][_0x7f89[113]]);});};
\ No newline at end of file
index 61e92e3..70f587e 100644 (file)
@@ -1 +1 @@
-var _0x211b=["\x6C\x6F\x64\x61\x73\x68","\x6D\x75\x73\x74\x61\x63\x68\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x54\x72\x69\x67\x67\x65\x72\x20\x43\x68\x61\x74\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x4D\x6F\x74\x69\x6F\x6E\x20\x53\x65\x72\x76\x69\x63\x65\x20\x53\x4D\x54\x50\x20\x6E\x6F\x74\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64\x21","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x66\x6F\x72\x77\x61\x72\x64\x69\x6E\x67\x5F\x61\x64\x64\x72\x65\x73\x73","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x53\x45\x4E\x44\x49\x4E\x47","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x72\x65\x6E\x64\x65\x72","\x6F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E\x20\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x3A\x20","\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x66\x6F\x72\x77\x61\x72\x64\x69\x6E\x67","\x67\x65\x74\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x20\x63\x61\x6E\x27\x74\x20\x73\x65\x6E\x64\x20\x6F\x66\x66\x6C\x69\x6E\x65\x20\x6D\x65\x73\x73\x61\x67\x65\x73\x20\x76\x69\x61\x20\x6D\x61\x69\x6C","\x67\x65\x74\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x211b[0]);var Mustache=require(_0x211b[1]);var sequelize=require(_0x211b[3])[_0x211b[2]];var ChatEnquiry=require(_0x211b[3])[_0x211b[4]];var MailMessage=require(_0x211b[3])[_0x211b[5]];var MailServerOut=require(_0x211b[3])[_0x211b[6]];function Chat(){console[_0x211b[8]](_0x211b[7]);ChatEnquiry[_0x211b[27]](function(_0xe588x8,_0xe588x9){var _0xe588xa=_0xe588x8;var _0xe588xb;var _0xe588xc;var _0xe588xd;return _0xe588x8[_0x211b[26]]()[_0x211b[17]](function(_0xe588x10){_0xe588xb=_0xe588x10;_0xe588xa[_0x211b[22]]=_0xe588xb[_0x211b[20]];if(_0xe588xb&&_0xe588xb[_0x211b[23]]&&_0xe588xb[_0x211b[11]]){return _0xe588xb[_0x211b[24]]()}else {throw  new Error({message:_0x211b[25]})};})[_0x211b[17]](function(_0xe588xf){_0xe588xd=_0xe588xf;if(_0xe588xd){_0xe588xd[_0x211b[13]]=Mustache[_0x211b[18]](_0xe588xd[_0x211b[13]],_0xe588xa);_0xe588xd[_0x211b[12]]=Mustache[_0x211b[18]](_0xe588xd[_0x211b[12]],_0xe588xa);}else {throw  new Error({message:_0x211b[19]+_0xe588xb[_0x211b[20]]})};return MailServerOut[_0x211b[21]]({where:{service:true}});})[_0x211b[17]](function(_0xe588xe){_0xe588xc=_0xe588xe;if(!_0xe588xc){throw  new Error(_0x211b[9])};return MailMessage[_0x211b[16]]({from:_0xe588xc[_0x211b[10]],to:_0xe588xb[_0x211b[11]],subject:_0xe588xd[_0x211b[12]],html:_0xe588xd[_0x211b[13]],status:_0x211b[14]},{transaction:_0xe588x9?_0xe588x9[_0x211b[15]]:null});});});}module[_0x211b[28]]=Chat;
\ No newline at end of file
+var _0xef76=["\x6C\x6F\x64\x61\x73\x68","\x6D\x75\x73\x74\x61\x63\x68\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x54\x72\x69\x67\x67\x65\x72\x20\x43\x68\x61\x74\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x4D\x6F\x74\x69\x6F\x6E\x20\x53\x65\x72\x76\x69\x63\x65\x20\x53\x4D\x54\x50\x20\x6E\x6F\x74\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64\x21","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x66\x6F\x72\x77\x61\x72\x64\x69\x6E\x67\x5F\x61\x64\x64\x72\x65\x73\x73","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x53\x45\x4E\x44\x49\x4E\x47","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x72\x65\x6E\x64\x65\x72","\x6F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E\x20\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x3A\x20","\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x66\x6F\x72\x77\x61\x72\x64\x69\x6E\x67","\x67\x65\x74\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x20\x63\x61\x6E\x27\x74\x20\x73\x65\x6E\x64\x20\x6F\x66\x66\x6C\x69\x6E\x65\x20\x6D\x65\x73\x73\x61\x67\x65\x73\x20\x76\x69\x61\x20\x6D\x61\x69\x6C","\x67\x65\x74\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0xef76[0]);var Mustache=require(_0xef76[1]);var sequelize=require(_0xef76[3])[_0xef76[2]];var ChatEnquiry=require(_0xef76[3])[_0xef76[4]];var MailMessage=require(_0xef76[3])[_0xef76[5]];var MailServerOut=require(_0xef76[3])[_0xef76[6]];function Chat(){console[_0xef76[8]](_0xef76[7]);ChatEnquiry[_0xef76[27]](function(_0x8e22x8,_0x8e22x9){var _0x8e22xa=_0x8e22x8;var _0x8e22xb;var _0x8e22xc;var _0x8e22xd;return _0x8e22x8[_0xef76[26]]()[_0xef76[17]](function(_0x8e22x10){_0x8e22xb=_0x8e22x10;_0x8e22xa[_0xef76[22]]=_0x8e22xb[_0xef76[20]];if(_0x8e22xb&&_0x8e22xb[_0xef76[23]]&&_0x8e22xb[_0xef76[11]]){return _0x8e22xb[_0xef76[24]]()}else {throw  new Error({message:_0xef76[25]})};})[_0xef76[17]](function(_0x8e22xf){_0x8e22xd=_0x8e22xf;if(_0x8e22xd){_0x8e22xd[_0xef76[13]]=Mustache[_0xef76[18]](_0x8e22xd[_0xef76[13]],_0x8e22xa);_0x8e22xd[_0xef76[12]]=Mustache[_0xef76[18]](_0x8e22xd[_0xef76[12]],_0x8e22xa);}else {throw  new Error({message:_0xef76[19]+_0x8e22xb[_0xef76[20]]})};return MailServerOut[_0xef76[21]]({where:{service:true}});})[_0xef76[17]](function(_0x8e22xe){_0x8e22xc=_0x8e22xe;if(!_0x8e22xc){throw  new Error(_0xef76[9])};return MailMessage[_0xef76[16]]({from:_0x8e22xc[_0xef76[10]],to:_0x8e22xb[_0xef76[11]],subject:_0x8e22xd[_0xef76[12]],html:_0x8e22xd[_0xef76[13]],status:_0xef76[14]},{transaction:_0x8e22x9?_0x8e22x9[_0xef76[15]]:null});});});}module[_0xef76[28]]=Chat;
\ No newline at end of file
index b7e17aa..592d6be 100644 (file)
@@ -1 +1 @@
-var _0xea9f=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x43\x6D\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6D\x61\x6E\x61\x67\x65\x43\x6F\x6E\x74\x61\x63\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x50\x68\x6F\x6E\x65\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x76\x6F\x69\x63\x65","\x45\x6D\x61\x69\x6C\x73","\x66\x72\x6F\x6D","\x6D\x61\x69\x6C","\x43\x4D\x20\x74\x72\x69\x67\x67\x65\x72\x65\x64\x20\x62\x79\x20","\x20\x63\x68\x61\x6E\x6E\x65\x6C\x2C\x20\x66\x69\x6E\x64\x69\x6E\x67\x20\x63\x6F\x6E\x74\x61\x63\x74\x2E\x2E\x2E","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x46\x6F\x75\x6E\x64\x20\x63\x6F\x6E\x74\x61\x63\x74\x2C\x20\x6F\x70\x65\x6E\x5F\x63\x6F\x6E\x74\x61\x63\x74\x20\x72\x6F\x77\x20\x69\x6E\x20\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x20\x74\x61\x62\x6C\x65\x2E\x2E\x2E","\x65\x76\x65\x6E\x74","\x6F\x70\x65\x6E\x43\x6F\x6E\x74\x61\x63\x74\x54\x61\x62","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x6C\x75\x63\x6B","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6D\x61\x70","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x43\x6F\x6E\x74\x61\x63\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2C\x20\x6E\x65\x77\x5F\x63\x6F\x6E\x74\x61\x63\x74\x20\x74\x61\x62\x20\x72\x6F\x77\x20\x69\x6E\x20\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x20\x74\x61\x62\x6C\x65\x2E\x2E\x2E","\x6E\x65\x77\x43\x6F\x6E\x74\x61\x63\x74\x54\x61\x62","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0xea9f[0]);function Cm(){console[_0xea9f[2]](_0xea9f[1])}Cm[_0xea9f[4]][_0xea9f[3]]=function(_0x96a8x3,_0x96a8x4){manageContact(_0x96a8x3,_0x96a8x4)};function manageContact(_0x96a8x3,_0x96a8x4){var _0x96a8x6=require(_0xea9f[6])[_0xea9f[5]];var _0x96a8x7=require(_0xea9f[6])[_0xea9f[7]];var _0x96a8x8=require(_0xea9f[6])[_0xea9f[8]];var _0x96a8x9=require(_0xea9f[6])[_0xea9f[9]];delete _0x96a8x3[_0xea9f[10]];_0x96a8x3[_0xea9f[11]]=_0xea9f[12];var _0x96a8xa={};switch(_0x96a8x4){case _0xea9f[15]:_0x96a8xa={model:_0x96a8x7,as:_0xea9f[13],where:{phone:_0x96a8x3[_0xea9f[14]]}};break ;;case _0xea9f[18]:_0x96a8xa={model:_0x96a8x8,as:_0xea9f[16],where:{email:_0x96a8x3[_0xea9f[17]]}};break ;;default:;};console[_0xea9f[2]](_0xea9f[19]+_0x96a8x4+_0xea9f[20]);_0x96a8x6[_0xea9f[36]]({include:[_0x96a8xa]})[_0xea9f[35]](function(_0x96a8xc){if(_0x96a8xc[_0xea9f[22]]){console[_0xea9f[2]](_0xea9f[23]);_0x96a8x3[_0xea9f[24]]=_0xea9f[25];_0x96a8x3[_0xea9f[26]]=JSON[_0xea9f[31]](_[_0xea9f[30]](_[_0xea9f[28]](_0x96a8xc,_0xea9f[27]),function(_0x96a8xd){return {id:_0x96a8xd[_0xea9f[10]],name:_0x96a8xd[_0xea9f[29]]}}));}else {console[_0xea9f[2]](_0xea9f[32]);_0x96a8x3[_0xea9f[24]]=_0xea9f[33];};_0x96a8x9[_0xea9f[34]](_0x96a8x3)[_0xea9f[21]](function(_0x96a8xb){console[_0xea9f[2]](_0x96a8xb)});})[_0xea9f[21]](function(_0x96a8xb){console[_0xea9f[2]](_0x96a8xb)});}module[_0xea9f[37]]=Cm;
\ No newline at end of file
+var _0x1656=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x43\x6D\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6D\x61\x6E\x61\x67\x65\x43\x6F\x6E\x74\x61\x63\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x65\x76\x65\x6E\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x1656[0]);function Cm(){console[_0x1656[2]](_0x1656[1])}Cm[_0x1656[4]][_0x1656[3]]=function(_0x9b9fx3,_0x9b9fx4){manageContact(_0x9b9fx3,_0x9b9fx4)};function manageContact(_0x9b9fx3,_0x9b9fx4){var _0x9b9fx6=require(_0x1656[6])[_0x1656[5]];var _0x9b9fx7=require(_0x1656[6])[_0x1656[7]];var _0x9b9fx8=require(_0x1656[6])[_0x1656[8]];var _0x9b9fx9=require(_0x1656[6])[_0x1656[9]];delete _0x9b9fx3[_0x1656[10]];_0x9b9fx3[_0x1656[11]]=_0x1656[12];_0x9b9fx3[_0x1656[13]]=_0x9b9fx4;_0x9b9fx9[_0x1656[15]](_0x9b9fx3)[_0x1656[14]](function(_0x9b9fxa){console[_0x1656[2]](_0x9b9fxa)});}module[_0x1656[16]]=Cm;
\ No newline at end of file
index fbb9c9f..9ce4298 100644 (file)
@@ -1 +1 @@
-var _0x92e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x75\x74\x69\x6C","\x2E\x2F\x76\x6F\x69\x63\x65","\x2E\x2F\x6D\x61\x69\x6C","\x2E\x2F\x63\x68\x61\x74","\x2E\x2F\x63\x6D","\x2E\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x65\x78\x70\x6F\x72\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x67","\x76\x6F\x69\x63\x65","\x66\x69\x6C\x74\x65\x72","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x54\x72\x69\x67\x67\x65\x72\x73","\x41\x66\x74\x65\x72\x20\x61\x67\x65\x6E\x74\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x41\x63\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x41\x66\x74\x65\x72\x20\x61\x67\x65\x6E\x74\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x41\x63\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x6D\x61\x69\x6C","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x61\x63\x74\x69\x6F\x6E\x20\x22","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x22","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x61\x6E\x61\x67\x65\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72","\x64\x61\x74\x61","\x64\x61\x74\x61\x32","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x41\x66\x74\x65\x72\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x69\x64","\x72\x65\x6D\x6F\x76\x65","\x41\x66\x74\x65\x72\x20\x64\x65\x73\x74\x72\x6F\x79\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x69\x6E\x64\x65\x78\x4F\x66","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74"];_0x92e1[0];var _=require(_0x92e1[1]);var Util=require(_0x92e1[2]);var Voice=require(_0x92e1[3]);var Mail=require(_0x92e1[4]);var Chat=require(_0x92e1[5]);var Cm=require(_0x92e1[6]);var Integration=require(_0x92e1[7]);var Trigger=require(_0x92e1[9])[_0x92e1[8]];var ReportAgent=require(_0x92e1[9])[_0x92e1[10]];var MailMessage=require(_0x92e1[9])[_0x92e1[11]];module[_0x92e1[12]]=function(){var _0x9ce2xb= new Util();var _0x9ce2xc= new Voice();var _0x9ce2xd= new Chat();var _0x9ce2xe= new Mail();var _0x9ce2xf= new Cm();var _0x9ce2x10= new Integration();Trigger[_0x92e1[29]]()[_0x92e1[28]](function(_0x9ce2x12){synchTriggers(_0x9ce2x12);console[_0x92e1[17]](_0x92e1[15],_0x9ce2x12[_0x92e1[16]]);ReportAgent[_0x92e1[22]](function(_0x9ce2x13){var _0x9ce2x14=_0x9ce2xb[_0x92e1[20]](_0x9ce2x13,_[_0x92e1[19]](_0x9ce2x12,{channel:_0x92e1[18]}));console[_0x92e1[17]](_0x92e1[21],_0x9ce2x14[_0x92e1[16]]);execActions(_0x9ce2x14,_0x9ce2x13,_0x92e1[18],_0x9ce2xb,_0x9ce2xc,_0x9ce2xe,_0x9ce2xf,_0x9ce2x10);});ReportAgent[_0x92e1[24]](function(_0x9ce2x13){var _0x9ce2x14=_0x9ce2xb[_0x92e1[20]](_0x9ce2x13,_[_0x92e1[19]](_0x9ce2x12,{channel:_0x92e1[18]}));console[_0x92e1[17]](_0x92e1[23],_0x9ce2x14[_0x92e1[16]]);execActions(_0x9ce2x14,_0x9ce2x13,_0x92e1[18],_0x9ce2xb,_0x9ce2xc,_0x9ce2xe,_0x9ce2xf,_0x9ce2x10);});MailMessage[_0x92e1[22]](function(_0x9ce2x13){if(_0x9ce2x13[_0x92e1[25]]===_0x92e1[26]){var _0x9ce2x14=_0x9ce2xb[_0x92e1[20]](_0x9ce2x13,_[_0x92e1[19]](_0x9ce2x12,{channel:_0x92e1[27]}));execActions(_0x9ce2x14,_0x9ce2x13,_0x92e1[27],_0x9ce2xb,_0x9ce2xc,_0x9ce2xe,_0x9ce2xf,_0x9ce2x10);}});})[_0x92e1[14]](function(_0x9ce2x11){console[_0x92e1[13]](_0x9ce2x11)});};function execActions(_0x9ce2x14,_0x9ce2x13,_0x9ce2x16,_0x9ce2xb,_0x9ce2xc,_0x9ce2xe,_0x9ce2xf,_0x9ce2x10){_0x9ce2x14[_0x92e1[43]](function(_0x9ce2x17){console[_0x92e1[17]](_0x92e1[30]+_0x9ce2x17[_0x92e1[32]][_0x92e1[31]]+_0x92e1[33]);switch(_0x9ce2x17[_0x92e1[32]][_0x92e1[31]]){case _0x92e1[36]:_0x9ce2xf[_0x92e1[35]](_0x9ce2x13[_0x92e1[34]],_0x9ce2x16);break ;;case _0x92e1[40]:_0x9ce2xe[_0x92e1[39]](_0x9ce2x17[_0x92e1[37]],_0x9ce2x17[_0x92e1[38]]);break ;;case _0x92e1[42]:_0x9ce2x10[_0x92e1[41]](_0x9ce2x17,_0x9ce2x13,_0x9ce2x16);break ;;default:;};})}function synchTriggers(_0x9ce2x12){Trigger[_0x92e1[22]](function(_0x9ce2x13){updateCollection(_0x9ce2x12,_0x9ce2x13);console[_0x92e1[17]](_0x92e1[44],_0x9ce2x12[_0x92e1[16]]);});Trigger[_0x92e1[24]](function(_0x9ce2x13){updateCollection(_0x9ce2x12,_0x9ce2x13);console[_0x92e1[17]](_0x92e1[45],_0x9ce2x12[_0x92e1[16]]);});Trigger[_0x92e1[49]](function(_0x9ce2x13){_[_0x92e1[47]](_0x9ce2x12,{id:_0x9ce2x13[_0x92e1[46]]});console[_0x92e1[17]](_0x92e1[48],_0x9ce2x12[_0x92e1[16]]);});}function updateCollection(_0x9ce2x1a,_0x9ce2x13){var _0x9ce2x1b=_[_0x92e1[50]](_0x9ce2x1a,{id:_0x9ce2x13[_0x92e1[46]]});var _0x9ce2x1c=_0x9ce2x1a[_0x92e1[51]](_0x9ce2x1b);if(_0x9ce2x1b){_[_0x92e1[52]](_0x9ce2x1a[_0x9ce2x1c],_0x9ce2x13)}else {_0x9ce2x1a[_0x92e1[53]](_0x9ce2x13)};}
\ No newline at end of file
+var _0x4d84=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x75\x74\x69\x6C","\x2E\x2F\x76\x6F\x69\x63\x65","\x2E\x2F\x6D\x61\x69\x6C","\x2E\x2F\x63\x68\x61\x74","\x2E\x2F\x63\x6D","\x2E\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x65\x78\x70\x6F\x72\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x67","\x76\x6F\x69\x63\x65","\x66\x69\x6C\x74\x65\x72","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x54\x72\x69\x67\x67\x65\x72\x73","\x41\x66\x74\x65\x72\x20\x61\x67\x65\x6E\x74\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x41\x63\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x41\x66\x74\x65\x72\x20\x61\x67\x65\x6E\x74\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x41\x63\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x6D\x61\x69\x6C","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x61\x63\x74\x69\x6F\x6E\x20\x22","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x22","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x61\x6E\x61\x67\x65\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72","\x64\x61\x74\x61","\x64\x61\x74\x61\x32","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x41\x66\x74\x65\x72\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x69\x64","\x72\x65\x6D\x6F\x76\x65","\x41\x66\x74\x65\x72\x20\x64\x65\x73\x74\x72\x6F\x79\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x69\x6E\x64\x65\x78\x4F\x66","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74"];_0x4d84[0];var _=require(_0x4d84[1]);var Util=require(_0x4d84[2]);var Voice=require(_0x4d84[3]);var Mail=require(_0x4d84[4]);var Chat=require(_0x4d84[5]);var Cm=require(_0x4d84[6]);var Integration=require(_0x4d84[7]);var Trigger=require(_0x4d84[9])[_0x4d84[8]];var ReportAgent=require(_0x4d84[9])[_0x4d84[10]];var MailMessage=require(_0x4d84[9])[_0x4d84[11]];module[_0x4d84[12]]=function(_0xaa93xb){var _0xaa93xc= new Util();var _0xaa93xd= new Voice();var _0xaa93xe= new Chat();var _0xaa93xf= new Mail();var _0xaa93x10= new Cm();var _0xaa93x11= new Integration(_0xaa93xb);Trigger[_0x4d84[29]]()[_0x4d84[28]](function(_0xaa93x13){synchTriggers(_0xaa93x13);console[_0x4d84[17]](_0x4d84[15],_0xaa93x13[_0x4d84[16]]);ReportAgent[_0x4d84[22]](function(_0xaa93x14){var _0xaa93x15=_0xaa93xc[_0x4d84[20]](_0xaa93x14,_[_0x4d84[19]](_0xaa93x13,{channel:_0x4d84[18]}));console[_0x4d84[17]](_0x4d84[21],_0xaa93x15[_0x4d84[16]]);execActions(_0xaa93x15,_0xaa93x14,_0x4d84[18],_0xaa93xc,_0xaa93xd,_0xaa93xf,_0xaa93x10,_0xaa93x11);});ReportAgent[_0x4d84[24]](function(_0xaa93x14){var _0xaa93x15=_0xaa93xc[_0x4d84[20]](_0xaa93x14,_[_0x4d84[19]](_0xaa93x13,{channel:_0x4d84[18]}));console[_0x4d84[17]](_0x4d84[23],_0xaa93x15[_0x4d84[16]]);execActions(_0xaa93x15,_0xaa93x14,_0x4d84[18],_0xaa93xc,_0xaa93xd,_0xaa93xf,_0xaa93x10,_0xaa93x11);});MailMessage[_0x4d84[22]](function(_0xaa93x14){if(_0xaa93x14[_0x4d84[25]]===_0x4d84[26]){var _0xaa93x15=_0xaa93xc[_0x4d84[20]](_0xaa93x14,_[_0x4d84[19]](_0xaa93x13,{channel:_0x4d84[27]}));execActions(_0xaa93x15,_0xaa93x14,_0x4d84[27],_0xaa93xc,_0xaa93xd,_0xaa93xf,_0xaa93x10,_0xaa93x11);}});})[_0x4d84[14]](function(_0xaa93x12){console[_0x4d84[13]](_0xaa93x12)});};function execActions(_0xaa93x15,_0xaa93x14,_0xaa93x17,_0xaa93xc,_0xaa93xd,_0xaa93xf,_0xaa93x10,_0xaa93x11){_0xaa93x15[_0x4d84[43]](function(_0xaa93x18){console[_0x4d84[17]](_0x4d84[30]+_0xaa93x18[_0x4d84[32]][_0x4d84[31]]+_0x4d84[33]);switch(_0xaa93x18[_0x4d84[32]][_0x4d84[31]]){case _0x4d84[36]:_0xaa93x10[_0x4d84[35]](_0xaa93x14[_0x4d84[34]],_0xaa93x17);break ;;case _0x4d84[40]:_0xaa93xf[_0x4d84[39]](_0xaa93x18[_0x4d84[37]],_0xaa93x18[_0x4d84[38]]);break ;;case _0x4d84[42]:_0xaa93x11[_0x4d84[41]](_0xaa93x18,_0xaa93x14,_0xaa93x17);break ;;default:;};})}function synchTriggers(_0xaa93x13){Trigger[_0x4d84[22]](function(_0xaa93x14){updateCollection(_0xaa93x13,_0xaa93x14);console[_0x4d84[17]](_0x4d84[44],_0xaa93x13[_0x4d84[16]]);});Trigger[_0x4d84[24]](function(_0xaa93x14){updateCollection(_0xaa93x13,_0xaa93x14);console[_0x4d84[17]](_0x4d84[45],_0xaa93x13[_0x4d84[16]]);});Trigger[_0x4d84[49]](function(_0xaa93x14){_[_0x4d84[47]](_0xaa93x13,{id:_0xaa93x14[_0x4d84[46]]});console[_0x4d84[17]](_0x4d84[48],_0xaa93x13[_0x4d84[16]]);});}function updateCollection(_0xaa93x1b,_0xaa93x14){var _0xaa93x1c=_[_0x4d84[50]](_0xaa93x1b,{id:_0xaa93x14[_0x4d84[46]]});var _0xaa93x1d=_0xaa93x1b[_0x4d84[51]](_0xaa93x1c);if(_0xaa93x1c){_[_0x4d84[52]](_0xaa93x1b[_0xaa93x1d],_0xaa93x14)}else {_0xaa93x1b[_0x4d84[53]](_0xaa93x14)};}
\ No newline at end of file
index b7664bd..2f1d8ee 100644 (file)
@@ -1 +1 @@
-var _0x74d6=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x4D\x61\x69\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x69\x6E\x73\x74\x61\x6E\x63\x65\x73","\x2E\x2E\x2F\x73\x6D\x74\x70","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x73\x65\x6E\x64","\x73\x6D\x74\x70","\x74\x68\x65\x6E","\x53\x45\x4E\x44\x49\x4E\x47","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x74\x6F","\x63\x63","","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x63\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x74d6[0]);function Mail(){console[_0x74d6[2]](_0x74d6[1])}Mail[_0x74d6[4]][_0x74d6[3]]=function(_0x1b65x3){sendTemplate(_0x1b65x3)};function sendTemplate(_0x1b65x3,_0x1b65x5){var _0x1b65x6=require(_0x74d6[6])[_0x74d6[5]];var _0x1b65x7=require(_0x74d6[6])[_0x74d6[7]];var _0x1b65x8=require(_0x74d6[6])[_0x74d6[8]];var _0x1b65x9=require(_0x74d6[10])[_0x74d6[9]];_0x1b65x7[_0x74d6[25]](_0x1b65x3,{include:[{all:true}]})[_0x74d6[15]](function(_0x1b65xa){_0x1b65x8[_0x74d6[24]]({status:_0x74d6[16],subject:_0x1b65xa[_0x74d6[17]],from:_0x1b65xa[_0x74d6[18]],to:_0x1b65xa[_0x74d6[19]],cc:_0x1b65xa[_0x74d6[20]]||_0x74d6[21],html:_0x1b65xa[_0x74d6[22]]||null,text:_0x1b65xa[_0x74d6[23]]||null})[_0x74d6[15]](function(_0x1b65xc){var _0x1b65xd=_[_0x74d6[12]](_0x1b65x9,{user:_0x1b65x5});if(_0x1b65xd){_0x1b65xd[_0x74d6[14]][_0x74d6[13]](_0x1b65xc)};})[_0x74d6[11]](function(_0x1b65xb){console[_0x74d6[2]](_0x1b65xb)})});}module[_0x74d6[26]]=Mail;
\ No newline at end of file
+var _0x1a6e=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x4D\x61\x69\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x69\x6E\x73\x74\x61\x6E\x63\x65\x73","\x2E\x2E\x2F\x73\x6D\x74\x70","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x73\x65\x6E\x64","\x73\x6D\x74\x70","\x74\x68\x65\x6E","\x53\x45\x4E\x44\x49\x4E\x47","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x74\x6F","\x63\x63","","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x63\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x1a6e[0]);function Mail(){console[_0x1a6e[2]](_0x1a6e[1])}Mail[_0x1a6e[4]][_0x1a6e[3]]=function(_0x7024x3){sendTemplate(_0x7024x3)};function sendTemplate(_0x7024x3,_0x7024x5){var _0x7024x6=require(_0x1a6e[6])[_0x1a6e[5]];var _0x7024x7=require(_0x1a6e[6])[_0x1a6e[7]];var _0x7024x8=require(_0x1a6e[6])[_0x1a6e[8]];var _0x7024x9=require(_0x1a6e[10])[_0x1a6e[9]];_0x7024x7[_0x1a6e[25]](_0x7024x3,{include:[{all:true}]})[_0x1a6e[15]](function(_0x7024xa){_0x7024x8[_0x1a6e[24]]({status:_0x1a6e[16],subject:_0x7024xa[_0x1a6e[17]],from:_0x7024xa[_0x1a6e[18]],to:_0x7024xa[_0x1a6e[19]],cc:_0x7024xa[_0x1a6e[20]]||_0x1a6e[21],html:_0x7024xa[_0x1a6e[22]]||null,text:_0x7024xa[_0x1a6e[23]]||null})[_0x1a6e[15]](function(_0x7024xc){var _0x7024xd=_[_0x1a6e[12]](_0x7024x9,{user:_0x7024x5});if(_0x7024xd){_0x7024xd[_0x1a6e[14]][_0x1a6e[13]](_0x7024xc)};})[_0x1a6e[11]](function(_0x7024xb){console[_0x1a6e[2]](_0x7024xb)})});}module[_0x1a6e[26]]=Mail;
\ No newline at end of file
index a3abdf1..57c900c 100644 (file)
@@ -1 +1 @@
-var _0xe42d=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x55\x74\x69\x6C\x73\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x54\x72\x69\x67\x67\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x66\x72\x6F\x6D","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x3B","\x73\x70\x6C\x69\x74","\x63\x63","\x74\x6F","\x73\x74\x61\x74\x75\x73","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x6F\x70","\x62\x6F\x6F\x6C\x65\x61\x6E","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x70\x75\x73\x68","\x72\x65\x73\x75\x6C\x74\x73","\x66\x6F\x72\x45\x61\x63\x68","\x72\x75\x6C\x65\x73","\x73\x75\x62\x47\x72\x6F\x75\x70\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6C\x65\x6E\x67\x74\x68","\x41\x4E\x44","\x72\x65\x64\x75\x63\x65","\x63\x6F\x6E\x63\x61\x74","\x66\x69\x6E\x61\x6C\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x73","\x61\x63\x74\x69\x6F\x6E\x73","\x6A\x6F\x69\x6E","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x64\x61\x74\x61","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x3D","\x3C\x3E","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0xe42d[0]);function Util(){console[_0xe42d[2]](_0xe42d[1])}Util[_0xe42d[4]][_0xe42d[3]]=function(_0x22fdx3,_0x22fdx4){var _0x22fdx5=[];_0x22fdx3[_0xe42d[6]][_0xe42d[5]]=_0x22fdx3[_0xe42d[6]][_0xe42d[5]]?_0x22fdx3[_0xe42d[6]][_0xe42d[5]][_0xe42d[8]](_0xe42d[7]):[];_0x22fdx3[_0xe42d[6]][_0xe42d[9]]=_0x22fdx3[_0xe42d[6]][_0xe42d[9]]?_0x22fdx3[_0xe42d[6]][_0xe42d[9]][_0xe42d[8]](_0xe42d[7]):[];_0x22fdx3[_0xe42d[6]][_0xe42d[10]]=_0x22fdx3[_0xe42d[6]][_0xe42d[10]]?_0x22fdx3[_0xe42d[6]][_0xe42d[10]][_0xe42d[8]](_0xe42d[7]):[];_0x22fdx4[_0xe42d[20]](function(_0x22fdx6){if(_0x22fdx6[_0xe42d[11]]){var _0x22fdx7={op:null,results:[],subGroups:[]};var _0x22fdx8=JSON[_0xe42d[14]](_0x22fdx6[_0xe42d[13]])[_0xe42d[12]];_0x22fdx7[_0xe42d[15]]=_0x22fdx8[_0xe42d[16]];_0x22fdx8[_0xe42d[21]][_0xe42d[20]](function(_0x22fdx9){if(_0x22fdx9[_0xe42d[17]]){_0x22fdx7[_0xe42d[19]][_0xe42d[18]](checkCondition(_0x22fdx9,_0x22fdx3[_0xe42d[6]]))}else {if(_0x22fdx9[_0xe42d[12]]){var _0x22fdxa=[];_0x22fdx9[_0xe42d[12]][_0xe42d[21]][_0xe42d[20]](function(_0x22fdxb){_0x22fdxa[_0xe42d[18]](checkCondition(_0x22fdxb,_0x22fdx3[_0xe42d[6]]))});_0x22fdx7[_0xe42d[22]][_0xe42d[18]]({op:_0x22fdx9[_0xe42d[12]][_0xe42d[16]],results:_0x22fdxa});}}});console[_0xe42d[2]](JSON[_0xe42d[23]](_0x22fdx7));var _0x22fdxa=[],_0x22fdxc=[];_0x22fdx7[_0xe42d[22]][_0xe42d[20]](function(_0x22fdxd){_0x22fdxa[_0xe42d[18]](_[_0xe42d[26]](_0x22fdxd[_0xe42d[19]][_0xe42d[24]]?_0x22fdxd[_0xe42d[19]]:[true],function(_0x22fdxe,_0x22fdxf){if(_0x22fdxd[_0xe42d[15]]===_0xe42d[25]){return _0x22fdxe&&_0x22fdxf}else {return _0x22fdxe||_0x22fdxf}}))});_0x22fdxc=_0x22fdx7[_0xe42d[19]][_0xe42d[27]](_0x22fdxa);var _0x22fdx10=_[_0xe42d[26]](_0x22fdxc[_0xe42d[24]]?_0x22fdxc:[true],function(_0x22fdxe,_0x22fdxf){if(_0x22fdx7[_0xe42d[15]]===_0xe42d[25]){return _0x22fdxe&&_0x22fdxf}else {return _0x22fdxe||_0x22fdxf}});console[_0xe42d[2]](_0xe42d[28],_0x22fdx10);if(_0x22fdx10){var _0x22fdx11=JSON[_0xe42d[14]](_0x22fdx6[_0xe42d[29]])[_0xe42d[12]];_0x22fdx5=_0x22fdx5[_0xe42d[27]](_0x22fdx11[_0xe42d[21]]);};}});_0x22fdx3[_0xe42d[6]][_0xe42d[5]]=_0x22fdx3[_0xe42d[6]][_0xe42d[5]][_0xe42d[30]](_0xe42d[7]);_0x22fdx3[_0xe42d[6]][_0xe42d[9]]=_0x22fdx3[_0xe42d[6]][_0xe42d[9]][_0xe42d[30]](_0xe42d[7]);_0x22fdx3[_0xe42d[6]][_0xe42d[10]]=_0x22fdx3[_0xe42d[6]][_0xe42d[10]][_0xe42d[30]](_0xe42d[7]);return _0x22fdx5;};function checkCondition(_0x22fdx9,_0x22fdx3){var _0x22fdx13;switch(_0x22fdx9[_0xe42d[17]]){case _0xe42d[35]:_0x22fdx13=_[_0xe42d[34]](_0x22fdx3[_0x22fdx9[_0xe42d[32]][_0xe42d[31]]],_0x22fdx9[_0xe42d[33]]);break ;;case _0xe42d[36]:_0x22fdx13=!_[_0xe42d[34]](_0x22fdx3[_0x22fdx9[_0xe42d[32]][_0xe42d[31]]],_0x22fdx9[_0xe42d[33]]);break ;;default:;};return _0x22fdx13;}module[_0xe42d[37]]=Util;
\ No newline at end of file
+var _0xfb52=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x55\x74\x69\x6C\x73\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x54\x72\x69\x67\x67\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x66\x72\x6F\x6D","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x3B","\x73\x70\x6C\x69\x74","\x63\x63","\x74\x6F","\x73\x74\x61\x74\x75\x73","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x6F\x70","\x62\x6F\x6F\x6C\x65\x61\x6E","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x70\x75\x73\x68","\x72\x65\x73\x75\x6C\x74\x73","\x66\x6F\x72\x45\x61\x63\x68","\x72\x75\x6C\x65\x73","\x73\x75\x62\x47\x72\x6F\x75\x70\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6C\x65\x6E\x67\x74\x68","\x41\x4E\x44","\x72\x65\x64\x75\x63\x65","\x63\x6F\x6E\x63\x61\x74","\x66\x69\x6E\x61\x6C\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x73","\x61\x63\x74\x69\x6F\x6E\x73","\x6A\x6F\x69\x6E","\x76\x61\x6C\x75\x65","\x66\x69\x65\x6C\x64","\x64\x61\x74\x61","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x3D","\x3C\x3E","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0xfb52[0]);function Util(){console[_0xfb52[2]](_0xfb52[1])}Util[_0xfb52[4]][_0xfb52[3]]=function(_0x8aa4x3,_0x8aa4x4){var _0x8aa4x5=[];_0x8aa4x3[_0xfb52[6]][_0xfb52[5]]=_0x8aa4x3[_0xfb52[6]][_0xfb52[5]]?_0x8aa4x3[_0xfb52[6]][_0xfb52[5]][_0xfb52[8]](_0xfb52[7]):[];_0x8aa4x3[_0xfb52[6]][_0xfb52[9]]=_0x8aa4x3[_0xfb52[6]][_0xfb52[9]]?_0x8aa4x3[_0xfb52[6]][_0xfb52[9]][_0xfb52[8]](_0xfb52[7]):[];_0x8aa4x3[_0xfb52[6]][_0xfb52[10]]=_0x8aa4x3[_0xfb52[6]][_0xfb52[10]]?_0x8aa4x3[_0xfb52[6]][_0xfb52[10]][_0xfb52[8]](_0xfb52[7]):[];_0x8aa4x4[_0xfb52[20]](function(_0x8aa4x6){if(_0x8aa4x6[_0xfb52[11]]){var _0x8aa4x7={op:null,results:[],subGroups:[]};var _0x8aa4x8=JSON[_0xfb52[14]](_0x8aa4x6[_0xfb52[13]])[_0xfb52[12]];_0x8aa4x7[_0xfb52[15]]=_0x8aa4x8[_0xfb52[16]];_0x8aa4x8[_0xfb52[21]][_0xfb52[20]](function(_0x8aa4x9){if(_0x8aa4x9[_0xfb52[17]]){_0x8aa4x7[_0xfb52[19]][_0xfb52[18]](checkCondition(_0x8aa4x9,_0x8aa4x3[_0xfb52[6]]))}else {if(_0x8aa4x9[_0xfb52[12]]){var _0x8aa4xa=[];_0x8aa4x9[_0xfb52[12]][_0xfb52[21]][_0xfb52[20]](function(_0x8aa4xb){_0x8aa4xa[_0xfb52[18]](checkCondition(_0x8aa4xb,_0x8aa4x3[_0xfb52[6]]))});_0x8aa4x7[_0xfb52[22]][_0xfb52[18]]({op:_0x8aa4x9[_0xfb52[12]][_0xfb52[16]],results:_0x8aa4xa});}}});console[_0xfb52[2]](JSON[_0xfb52[23]](_0x8aa4x7));var _0x8aa4xa=[],_0x8aa4xc=[];_0x8aa4x7[_0xfb52[22]][_0xfb52[20]](function(_0x8aa4xd){_0x8aa4xa[_0xfb52[18]](_[_0xfb52[26]](_0x8aa4xd[_0xfb52[19]][_0xfb52[24]]?_0x8aa4xd[_0xfb52[19]]:[true],function(_0x8aa4xe,_0x8aa4xf){if(_0x8aa4xd[_0xfb52[15]]===_0xfb52[25]){return _0x8aa4xe&&_0x8aa4xf}else {return _0x8aa4xe||_0x8aa4xf}}))});_0x8aa4xc=_0x8aa4x7[_0xfb52[19]][_0xfb52[27]](_0x8aa4xa);var _0x8aa4x10=_[_0xfb52[26]](_0x8aa4xc[_0xfb52[24]]?_0x8aa4xc:[true],function(_0x8aa4xe,_0x8aa4xf){if(_0x8aa4x7[_0xfb52[15]]===_0xfb52[25]){return _0x8aa4xe&&_0x8aa4xf}else {return _0x8aa4xe||_0x8aa4xf}});console[_0xfb52[2]](_0xfb52[28],_0x8aa4x10);if(_0x8aa4x10){var _0x8aa4x11=JSON[_0xfb52[14]](_0x8aa4x6[_0xfb52[29]])[_0xfb52[12]];_0x8aa4x5=_0x8aa4x5[_0xfb52[27]](_0x8aa4x11[_0xfb52[21]]);};}});_0x8aa4x3[_0xfb52[6]][_0xfb52[5]]=_0x8aa4x3[_0xfb52[6]][_0xfb52[5]][_0xfb52[30]](_0xfb52[7]);_0x8aa4x3[_0xfb52[6]][_0xfb52[9]]=_0x8aa4x3[_0xfb52[6]][_0xfb52[9]][_0xfb52[30]](_0xfb52[7]);_0x8aa4x3[_0xfb52[6]][_0xfb52[10]]=_0x8aa4x3[_0xfb52[6]][_0xfb52[10]][_0xfb52[30]](_0xfb52[7]);return _0x8aa4x5;};function checkCondition(_0x8aa4x9,_0x8aa4x3){var _0x8aa4x13;switch(_0x8aa4x9[_0xfb52[17]]){case _0xfb52[35]:_0x8aa4x13=_[_0xfb52[34]](_0x8aa4x3[_0x8aa4x9[_0xfb52[32]][_0xfb52[31]]],_0x8aa4x9[_0xfb52[33]]);break ;;case _0xfb52[36]:_0x8aa4x13=!_[_0xfb52[34]](_0x8aa4x3[_0x8aa4x9[_0xfb52[32]][_0xfb52[31]]],_0x8aa4x9[_0xfb52[33]]);break ;;default:;};return _0x8aa4x13;}module[_0xfb52[37]]=Util;
\ No newline at end of file
index f5bf2d6..b04f252 100644 (file)
@@ -1 +1 @@
-var _0x7d4d=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x56\x6F\x69\x63\x65\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x7d4d[0]);function Voice(){console[_0x7d4d[2]](_0x7d4d[1])}module[_0x7d4d[3]]=Voice;
\ No newline at end of file
+var _0xb629=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x56\x6F\x69\x63\x65\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0xb629[0]);function Voice(){console[_0xb629[2]](_0xb629[1])}module[_0xb629[3]]=Voice;
\ No newline at end of file
index 42470bc..5ebdba2 100644 (file)
@@ -1 +1 @@
-var _0x4a0f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x45\x58\x54\x45\x52\x4E\x41\x4C\x20\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E","\x6C\x6F\x67"];_0x4a0f[0];module[_0x4a0f[1]]=function(_0xcdf5x1,_0xcdf5x2){console[_0x4a0f[3]](_0x4a0f[2])};
\ No newline at end of file
+var _0xc8a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x45\x58\x54\x45\x52\x4E\x41\x4C\x20\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E","\x6C\x6F\x67"];_0xc8a8[0];module[_0xc8a8[1]]=function(_0x15d2x1,_0x15d2x2){console[_0xc8a8[3]](_0xc8a8[2])};
\ No newline at end of file
index a2000d1..e4bc9c9 100644 (file)
@@ -1 +1 @@
-var _0xed5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x65\x73\x74\x41\x74\x74\x72","\x53\x54\x52\x49\x4E\x47","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E"];_0xed5d[0];module[_0xed5d[1]]={up:function(_0x3f79x1,_0x3f79x2){return _0x3f79x1[_0xed5d[5]](_0xed5d[2],_0xed5d[3],{type:_0x3f79x2[_0xed5d[4]]})},down:function(_0x3f79x1,_0x3f79x2){return _0x3f79x1[_0xed5d[6]](_0xed5d[2],_0xed5d[3])}};
\ No newline at end of file
+var _0xf4ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x65\x73\x74\x41\x74\x74\x72","\x53\x54\x52\x49\x4E\x47","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E"];_0xf4ae[0];module[_0xf4ae[1]]={up:function(_0xe4d6x1,_0xe4d6x2){return _0xe4d6x1[_0xf4ae[5]](_0xf4ae[2],_0xf4ae[3],{type:_0xe4d6x2[_0xf4ae[4]]})},down:function(_0xe4d6x1,_0xe4d6x2){return _0xe4d6x1[_0xf4ae[6]](_0xf4ae[2],_0xf4ae[3])}};
\ No newline at end of file
index 0b36423..802f63a 100644 (file)
@@ -1 +1 @@
-var _0xbf22=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x41\x73\x74\x65\x72\x69\x73\x6B\x4D\x61\x6E\x61\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x61\x73\x74\x65\x72\x69\x73\x6B\x5F\x6D\x61\x6E\x61\x67\x65\x72","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xbf22[0]);module[_0xbf22[1]]=function(_0xa092x2,_0xa092x3){var _0xa092x4=_0xa092x2[_0xbf22[6]](_0xbf22[2],{address:_0xa092x3[_0xbf22[3]],port:_0xa092x3[_0xbf22[4]],username:_0xa092x3[_0xbf22[3]],password:_0xa092x3[_0xbf22[3]]},{tableName:_0xbf22[5]});return _0xa092x4;};
\ No newline at end of file
+var _0xe7e5=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x41\x73\x74\x65\x72\x69\x73\x6B\x4D\x61\x6E\x61\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x61\x73\x74\x65\x72\x69\x73\x6B\x5F\x6D\x61\x6E\x61\x67\x65\x72","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xe7e5[0]);module[_0xe7e5[1]]=function(_0xd880x2,_0xd880x3){var _0xd880x4=_0xd880x2[_0xe7e5[6]](_0xe7e5[2],{address:_0xd880x3[_0xe7e5[3]],port:_0xd880x3[_0xe7e5[4]],username:_0xd880x3[_0xe7e5[3]],password:_0xd880x3[_0xe7e5[3]]},{tableName:_0xe7e5[5]});return _0xd880x4;};
\ No newline at end of file
index f3654de..538ac52 100644 (file)
@@ -1 +1 @@
-var _0xe2bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6D\x69","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x61\x73\x74\x65\x72\x69\x73\x6B\x5F\x6D\x61\x6E\x61\x67\x65\x72\x5F\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xe2bc[0];module[_0xe2bc[1]]=function(_0xbe6fx1,_0xbe6fx2){var _0xbe6fx3=_0xbe6fx1[_0xe2bc[7]](_0xe2bc[2],{actionid:_0xbe6fx2[_0xe2bc[3]],action:_0xbe6fx2[_0xe2bc[3]],response:_0xbe6fx2[_0xe2bc[3]],message:_0xbe6fx2[_0xe2bc[3]],data:_0xbe6fx2[_0xe2bc[4]]},{tableName:_0xe2bc[5],associate:function(_0xbe6fx4){_0xbe6fx3[_0xe2bc[6]](_0xbe6fx4.User)}});return _0xbe6fx3;};
\ No newline at end of file
+var _0xb427=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6D\x69","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x61\x73\x74\x65\x72\x69\x73\x6B\x5F\x6D\x61\x6E\x61\x67\x65\x72\x5F\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xb427[0];module[_0xb427[1]]=function(_0x30b0x1,_0x30b0x2){var _0x30b0x3=_0x30b0x1[_0xb427[7]](_0xb427[2],{actionid:_0x30b0x2[_0xb427[3]],action:_0x30b0x2[_0xb427[3]],response:_0x30b0x2[_0xb427[3]],message:_0x30b0x2[_0xb427[3]],data:_0x30b0x2[_0xb427[4]]},{tableName:_0xb427[5],associate:function(_0x30b0x4){_0x30b0x3[_0xb427[6]](_0x30b0x4.User)}});return _0x30b0x3;};
\ No newline at end of file
index 1feef05..e783c92 100644 (file)
@@ -1 +1 @@
-var _0xdabf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x53\x54\x52\x49\x4E\x47","\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xdabf[0];module[_0xdabf[1]]=function(_0x9ff0x1,_0x9ff0x2){var _0x9ff0x3=_0x9ff0x1[_0xdabf[5]](_0xdabf[2],{status:{type:_0x9ff0x2[_0xdabf[3]]}},{tableName:_0xdabf[4]});return _0x9ff0x3;};
\ No newline at end of file
+var _0x1f77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x53\x54\x52\x49\x4E\x47","\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x1f77[0];module[_0x1f77[1]]=function(_0x42dfx1,_0x42dfx2){var _0x42dfx3=_0x42dfx1[_0x1f77[5]](_0x1f77[2],{status:{type:_0x42dfx2[_0x1f77[3]]}},{tableName:_0x1f77[4]});return _0x42dfx3;};
\ No newline at end of file
index 4e7f975..7300929 100644 (file)
@@ -1 +1 @@
-var _0x4067=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x50\x72\x6F\x63\x65\x73\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x5F\x70\x72\x6F\x63\x65\x73\x73\x65\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x4067[0];module[_0x4067[1]]=function(_0x8dfex1,_0x8dfex2){var _0x8dfex3=_0x8dfex1[_0x4067[9]](_0x4067[2],{name:{type:_0x8dfex2[_0x4067[3]],unique:true},description:{type:_0x8dfex2[_0x4067[3]]},context:{type:_0x8dfex2[_0x4067[3]]},extension:{type:_0x8dfex2[_0x4067[3]]},priority:{type:_0x8dfex2[_0x4067[4]]},callerid:{type:_0x8dfex2[_0x4067[3]]},waittime:{type:_0x8dfex2[_0x4067[4]]},maxretry:{type:_0x8dfex2[_0x4067[4]]},retrytime:{type:_0x8dfex2[_0x4067[4]]},prefix:{type:_0x8dfex2[_0x4067[3]]},maxcall:{type:_0x8dfex2[_0x4067[4]]},enable:{type:_0x8dfex2[_0x4067[5]],defaultValue:true}},{tableName:_0x4067[6],associate:function(_0x8dfex4){_0x8dfex3[_0x4067[8]](_0x8dfex4.Contact,{through:_0x8dfex4[_0x4067[7]]})}});return _0x8dfex3;};
\ No newline at end of file
+var _0x4c2c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x50\x72\x6F\x63\x65\x73\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x5F\x70\x72\x6F\x63\x65\x73\x73\x65\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x4c2c[0];module[_0x4c2c[1]]=function(_0xdedex1,_0xdedex2){var _0xdedex3=_0xdedex1[_0x4c2c[9]](_0x4c2c[2],{name:{type:_0xdedex2[_0x4c2c[3]],unique:true},description:{type:_0xdedex2[_0x4c2c[3]]},context:{type:_0xdedex2[_0x4c2c[3]]},extension:{type:_0xdedex2[_0x4c2c[3]]},priority:{type:_0xdedex2[_0x4c2c[4]]},callerid:{type:_0xdedex2[_0x4c2c[3]]},waittime:{type:_0xdedex2[_0x4c2c[4]]},maxretry:{type:_0xdedex2[_0x4c2c[4]]},retrytime:{type:_0xdedex2[_0x4c2c[4]]},prefix:{type:_0xdedex2[_0x4c2c[3]]},maxcall:{type:_0xdedex2[_0x4c2c[4]]},enable:{type:_0xdedex2[_0x4c2c[5]],defaultValue:true}},{tableName:_0x4c2c[6],associate:function(_0xdedex4){_0xdedex3[_0x4c2c[8]](_0xdedex4.Contact,{through:_0xdedex4[_0x4c2c[7]]})}});return _0xdedex3;};
\ No newline at end of file
index 104e1e4..5856cf8 100644 (file)
@@ -1 +1 @@
-var _0x8383=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x8383[0]);module[_0x8383[1]]=function(_0x3d01x2,_0x3d01x3){var _0x3d01x4=_0x3d01x2[_0x8383[7]](_0x8383[2],{name:_0x3d01x3[_0x8383[3]],channel:_0x3d01x3[_0x8383[3]],description:_0x3d01x3[_0x8383[3]],conditions:_0x3d01x3[_0x8383[4]],actions:_0x3d01x3[_0x8383[4]],status:{type:_0x3d01x3[_0x8383[5]],defaultValue:false}},{tableName:_0x8383[6]});return _0x3d01x4;};
\ No newline at end of file
+var _0x3184=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x3184[0]);module[_0x3184[1]]=function(_0x77a2x2,_0x77a2x3){var _0x77a2x4=_0x77a2x2[_0x3184[7]](_0x3184[2],{name:_0x77a2x3[_0x3184[3]],channel:_0x77a2x3[_0x3184[3]],description:_0x77a2x3[_0x3184[3]],conditions:_0x77a2x3[_0x3184[4]],actions:_0x77a2x3[_0x3184[4]],status:{type:_0x77a2x3[_0x3184[5]],defaultValue:false}},{tableName:_0x3184[6]});return _0x77a2x4;};
\ No newline at end of file
index 940adf2..049c79c 100644 (file)
@@ -1 +1 @@
-var _0x1965=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x63\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x1965[0]);module[_0x1965[1]]=function(_0xd212x2,_0xd212x3){var _0xd212x4=_0xd212x2[_0x1965[7]](_0x1965[2],{condition:{type:_0xd212x3[_0x1965[3]]},attribute:{type:_0xd212x3[_0x1965[3]]}},{tableName:_0x1965[4],associate:function(_0xd212x5){_0xd212x4[_0x1965[6]](_0xd212x5.MailBusinessAutomation,{onDelete:_0x1965[5]});_0xd212x4[_0x1965[6]](_0xd212x5.FaxBusinessAutomation,{onDelete:_0x1965[5]});}});return _0xd212x4;};
\ No newline at end of file
+var _0x6c91=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x63\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x6c91[0]);module[_0x6c91[1]]=function(_0x9be6x2,_0x9be6x3){var _0x9be6x4=_0x9be6x2[_0x6c91[7]](_0x6c91[2],{condition:{type:_0x9be6x3[_0x6c91[3]]},attribute:{type:_0x9be6x3[_0x6c91[3]]}},{tableName:_0x6c91[4],associate:function(_0x9be6x5){_0x9be6x4[_0x6c91[6]](_0x9be6x5.MailBusinessAutomation,{onDelete:_0x6c91[5]});_0x9be6x4[_0x6c91[6]](_0x9be6x5.FaxBusinessAutomation,{onDelete:_0x6c91[5]});}});return _0x9be6x4;};
\ No newline at end of file
index 16eb4f5..5447b5c 100644 (file)
@@ -1 +1 @@
-var _0xcd7e=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x42\x75\x73\x69\x6E\x65\x73\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6F\x72","\x61\x6E\x64","\x53\x54\x52\x49\x4E\x47","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xcd7e[0]);module[_0xcd7e[1]]=function(_0x6ea5x2,_0x6ea5x3){var _0x6ea5x4=_0x6ea5x2[_0xcd7e[9]](_0xcd7e[2],{type:{type:_0x6ea5x3.ENUM(_0xcd7e[3],_0xcd7e[4])},condition:{type:_0x6ea5x3[_0xcd7e[5]]},operator:{type:_0x6ea5x3[_0xcd7e[5]]},attribute:{type:_0x6ea5x3[_0xcd7e[5]]}},{tableName:_0xcd7e[6],associate:function(_0x6ea5x5){_0x6ea5x4[_0xcd7e[8]](_0x6ea5x5.MailBusinessAutomation,{onDelete:_0xcd7e[7]});_0x6ea5x4[_0xcd7e[8]](_0x6ea5x5.FaxBusinessAutomation,{onDelete:_0xcd7e[7]});}});return _0x6ea5x4;};
\ No newline at end of file
+var _0x9508=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x42\x75\x73\x69\x6E\x65\x73\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6F\x72","\x61\x6E\x64","\x53\x54\x52\x49\x4E\x47","\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x9508[0]);module[_0x9508[1]]=function(_0xf919x2,_0xf919x3){var _0xf919x4=_0xf919x2[_0x9508[9]](_0x9508[2],{type:{type:_0xf919x3.ENUM(_0x9508[3],_0x9508[4])},condition:{type:_0xf919x3[_0x9508[5]]},operator:{type:_0xf919x3[_0x9508[5]]},attribute:{type:_0xf919x3[_0x9508[5]]}},{tableName:_0x9508[6],associate:function(_0xf919x5){_0xf919x4[_0x9508[8]](_0xf919x5.MailBusinessAutomation,{onDelete:_0x9508[7]});_0xf919x4[_0x9508[8]](_0xf919x5.FaxBusinessAutomation,{onDelete:_0x9508[7]});}});return _0xf919x4;};
\ No newline at end of file
index 977015b..91e1c05 100644 (file)
@@ -1 +1 @@
-var _0x98f0=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x6E\x6E\x65\x6C","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x75\x73\x65\x64","\x64\x6F\x6E\x65","\x66\x69\x6E\x64","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x98f0[0]]=function(_0x7ab2x1,_0x7ab2x2){var _0x7ab2x3=_0x7ab2x1[_0x98f0[9]](_0x98f0[1],{name:{type:_0x7ab2x2[_0x98f0[2]],validate:{isUnique:function(_0x7ab2x4,_0x7ab2x5){_0x7ab2x3[_0x98f0[5]]({where:{name:_0x7ab2x4}})[_0x98f0[4]](function(_0x7ab2x6,_0x7ab2x7){if(_0x7ab2x6){_0x7ab2x5(_0x7ab2x6)};if(_0x7ab2x7){_0x7ab2x5({message:_0x98f0[3]})};_0x7ab2x5();})}}},title:_0x7ab2x2[_0x98f0[2]],link:_0x7ab2x2[_0x98f0[2]],icon:_0x7ab2x2[_0x98f0[2]],position:_0x7ab2x2[_0x98f0[2]]},{tableName:_0x98f0[6],associate:function(_0x7ab2x8){_0x7ab2x3[_0x98f0[8]](_0x7ab2x8.User,{through:_0x98f0[7]})}});return _0x7ab2x3;};
\ No newline at end of file
+var _0x262b=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x6E\x6E\x65\x6C","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x75\x73\x65\x64","\x64\x6F\x6E\x65","\x66\x69\x6E\x64","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x262b[0]]=function(_0xda59x1,_0xda59x2){var _0xda59x3=_0xda59x1[_0x262b[9]](_0x262b[1],{name:{type:_0xda59x2[_0x262b[2]],validate:{isUnique:function(_0xda59x4,_0xda59x5){_0xda59x3[_0x262b[5]]({where:{name:_0xda59x4}})[_0x262b[4]](function(_0xda59x6,_0xda59x7){if(_0xda59x6){_0xda59x5(_0xda59x6)};if(_0xda59x7){_0xda59x5({message:_0x262b[3]})};_0xda59x5();})}}},title:_0xda59x2[_0x262b[2]],link:_0xda59x2[_0x262b[2]],icon:_0xda59x2[_0x262b[2]],position:_0xda59x2[_0x262b[2]]},{tableName:_0x262b[6],associate:function(_0xda59x8){_0xda59x3[_0x262b[8]](_0xda59x8.User,{through:_0x262b[7]})}});return _0xda59x3;};
\ No newline at end of file
index 3d700ef..994d33c 100644 (file)
@@ -1 +1 @@
-var _0x3699=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x3699[0];module[_0x3699[1]]=function(_0x94e1x1,_0x94e1x2){var _0x94e1x3=_0x94e1x1[_0x3699[9]](_0x3699[2],{app:{type:_0x94e1x2.ENUM(_0x3699[3],_0x3699[4])},priority:{type:_0x94e1x2[_0x3699[5]]},timeout:{type:_0x94e1x2[_0x3699[5]]},interval:{type:_0x94e1x2[_0x3699[6]]}},{tableName:_0x3699[7],associate:function(_0x94e1x4){_0x94e1x3[_0x3699[8]](_0x94e1x4.ChatWebsite);_0x94e1x3[_0x3699[8]](_0x94e1x4.Interval);_0x94e1x3[_0x3699[8]](_0x94e1x4.ChatQueue);_0x94e1x3[_0x3699[8]](_0x94e1x4.User);}});return _0x94e1x3;};
\ No newline at end of file
+var _0x5c57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x5c57[0];module[_0x5c57[1]]=function(_0x4f07x1,_0x4f07x2){var _0x4f07x3=_0x4f07x1[_0x5c57[9]](_0x5c57[2],{app:{type:_0x4f07x2.ENUM(_0x5c57[3],_0x5c57[4])},priority:{type:_0x4f07x2[_0x5c57[5]]},timeout:{type:_0x4f07x2[_0x5c57[5]]},interval:{type:_0x4f07x2[_0x5c57[6]]}},{tableName:_0x5c57[7],associate:function(_0x4f07x4){_0x4f07x3[_0x5c57[8]](_0x4f07x4.ChatWebsite);_0x4f07x3[_0x5c57[8]](_0x4f07x4.Interval);_0x4f07x3[_0x5c57[8]](_0x4f07x4.ChatQueue);_0x4f07x3[_0x5c57[8]](_0x4f07x4.User);}});return _0x4f07x3;};
\ No newline at end of file
index 14ed255..154d4c3 100644 (file)
@@ -1 +1 @@
-var _0xaa1d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xaa1d[0];module[_0xaa1d[1]]=function(_0xff29x1,_0xff29x2){var _0xff29x3=_0xff29x1[_0xaa1d[8]](_0xaa1d[2],{username:_0xff29x2[_0xaa1d[3]],email:_0xff29x2[_0xaa1d[3]],text:_0xff29x2[_0xaa1d[4]],read:{type:_0xff29x2[_0xaa1d[5]],defaultValue:false}},{tableName:_0xaa1d[6],associate:function(_0xff29x4){_0xff29x3[_0xaa1d[7]](_0xff29x4.ChatWebsite);_0xff29x3[_0xaa1d[7]](_0xff29x4.ChatVisitor);}});return _0xff29x3;};
\ No newline at end of file
+var _0x7fc8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x7fc8[0];module[_0x7fc8[1]]=function(_0xa74fx1,_0xa74fx2){var _0xa74fx3=_0xa74fx1[_0x7fc8[8]](_0x7fc8[2],{username:_0xa74fx2[_0x7fc8[3]],email:_0xa74fx2[_0x7fc8[3]],text:_0xa74fx2[_0x7fc8[4]],read:{type:_0xa74fx2[_0x7fc8[5]],defaultValue:false}},{tableName:_0x7fc8[6],associate:function(_0xa74fx4){_0xa74fx3[_0x7fc8[7]](_0xa74fx4.ChatWebsite);_0xa74fx3[_0x7fc8[7]](_0xa74fx4.ChatVisitor);}});return _0xa74fx3;};
\ No newline at end of file
index 26753bc..36c752e 100644 (file)
@@ -1 +1 @@
-var _0xee8d=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x54\x45\x58\x54","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xee8d[0]);module[_0xee8d[1]]=function(_0xd928x2,_0xd928x3){var _0xd928x4=_0xd928x2[_0xee8d[6]](_0xee8d[2],{body:{type:_0xd928x3[_0xee8d[3]],notNull:true,notEmpty:true}},{tableName:_0xee8d[4],associate:function(_0xd928x5){_0xd928x4[_0xee8d[5]](_0xd928x5.ChatRoom);_0xd928x4[_0xee8d[5]](_0xd928x5.ChatVisitor);_0xd928x4[_0xee8d[5]](_0xd928x5.User);}});return _0xd928x4;};
\ No newline at end of file
+var _0xdda6=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x54\x45\x58\x54","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xdda6[0]);module[_0xdda6[1]]=function(_0x98e9x2,_0x98e9x3){var _0x98e9x4=_0x98e9x2[_0xdda6[6]](_0xdda6[2],{body:{type:_0x98e9x3[_0xdda6[3]],notNull:true,notEmpty:true}},{tableName:_0xdda6[4],associate:function(_0x98e9x5){_0x98e9x4[_0xdda6[5]](_0x98e9x5.ChatRoom);_0x98e9x4[_0xdda6[5]](_0x98e9x5.ChatVisitor);_0x98e9x4[_0xdda6[5]](_0x98e9x5.User);}});return _0x98e9x4;};
\ No newline at end of file
index 7a99f1f..04a2289 100644 (file)
@@ -1 +1 @@
-var _0x74de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x74de[0];module[_0x74de[1]]=function(_0xe277x1,_0xe277x2){var _0xe277x3=_0xe277x1[_0x74de[10]](_0x74de[2],{name:{type:_0xe277x2[_0x74de[3]],unique:true},description:{type:_0xe277x2[_0x74de[3]]},timeout:{type:_0xe277x2[_0x74de[4]]},strategy:{type:_0xe277x2.ENUM(_0x74de[5],_0x74de[6])}},{tableName:_0x74de[7],associate:function(_0xe277x4){_0xe277x3[_0x74de[9]](_0xe277x4.User,{through:_0xe277x4[_0x74de[8]]})}});return _0xe277x3;};
\ No newline at end of file
+var _0xfc5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xfc5a[0];module[_0xfc5a[1]]=function(_0x85c0x1,_0x85c0x2){var _0x85c0x3=_0x85c0x1[_0xfc5a[10]](_0xfc5a[2],{name:{type:_0x85c0x2[_0xfc5a[3]],unique:true},description:{type:_0x85c0x2[_0xfc5a[3]]},timeout:{type:_0x85c0x2[_0xfc5a[4]]},strategy:{type:_0x85c0x2.ENUM(_0xfc5a[5],_0xfc5a[6])}},{tableName:_0xfc5a[7],associate:function(_0x85c0x4){_0x85c0x3[_0xfc5a[9]](_0x85c0x4.User,{through:_0x85c0x4[_0xfc5a[8]]})}});return _0x85c0x3;};
\ No newline at end of file
index c97f5fe..a0f2a37 100644 (file)
@@ -1 +1 @@
-var _0x9bf2=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x70\x65\x6E\x64\x69\x6E\x67","\x6F\x70\x65\x6E","\x63\x6C\x6F\x73\x65","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x9bf2[0]);module[_0x9bf2[1]]=function(_0x1b18x2,_0x1b18x3){var _0x1b18x4=_0x1b18x2[_0x9bf2[14]](_0x9bf2[2],{type:_0x1b18x3.ENUM(_0x9bf2[3],_0x9bf2[4]),name:_0x1b18x3[_0x9bf2[5]],token:{type:_0x1b18x3[_0x9bf2[5]],unique:true},status:{type:_0x1b18x3.ENUM(_0x9bf2[6],_0x9bf2[7],_0x9bf2[8]),defaultValue:_0x9bf2[6]}},{tableName:_0x9bf2[9],associate:function(_0x1b18x5){_0x1b18x4[_0x9bf2[10]](_0x1b18x5.ChatMessage);_0x1b18x4[_0x9bf2[11]](_0x1b18x5.ChatVisitor);_0x1b18x4[_0x9bf2[11]](_0x1b18x5.ChatWebsite);_0x1b18x4[_0x9bf2[13]](_0x1b18x5.User,{through:_0x1b18x5[_0x9bf2[12]]});}});return _0x1b18x4;};
\ No newline at end of file
+var _0x8f7c=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x70\x65\x6E\x64\x69\x6E\x67","\x6F\x70\x65\x6E","\x63\x6C\x6F\x73\x65","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x8f7c[0]);module[_0x8f7c[1]]=function(_0xc73dx2,_0xc73dx3){var _0xc73dx4=_0xc73dx2[_0x8f7c[14]](_0x8f7c[2],{type:_0xc73dx3.ENUM(_0x8f7c[3],_0x8f7c[4]),name:_0xc73dx3[_0x8f7c[5]],token:{type:_0xc73dx3[_0x8f7c[5]],unique:true},status:{type:_0xc73dx3.ENUM(_0x8f7c[6],_0x8f7c[7],_0x8f7c[8]),defaultValue:_0x8f7c[6]}},{tableName:_0x8f7c[9],associate:function(_0xc73dx5){_0xc73dx4[_0x8f7c[10]](_0xc73dx5.ChatMessage);_0xc73dx4[_0x8f7c[11]](_0xc73dx5.ChatVisitor);_0xc73dx4[_0x8f7c[11]](_0xc73dx5.ChatWebsite);_0xc73dx4[_0x8f7c[13]](_0xc73dx5.User,{through:_0xc73dx5[_0x8f7c[12]]});}});return _0xc73dx4;};
\ No newline at end of file
index 28ca3d0..e3d9e14 100644 (file)
@@ -1 +1 @@
-var _0xe6d7=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x53\x54\x52\x49\x4E\x47","\x77\x65\x62\x63\x68\x61\x74","\x65\x6E\x71\x75\x69\x72\x79","\x70\x65\x6E\x64\x69\x6E\x67","\x75\x6E\x73\x65\x72\x76\x65\x64","\x73\x65\x72\x76\x65\x64","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xe6d7[0]);module[_0xe6d7[1]]=function(_0xf00fx2,_0xf00fx3){var _0xf00fx4=_0xf00fx2[_0xe6d7[12]](_0xe6d7[2],{fullname:_0xf00fx3[_0xe6d7[3]],email:_0xf00fx3[_0xe6d7[3]],remote_address:_0xf00fx3[_0xe6d7[3]],user_agent:_0xf00fx3[_0xe6d7[3]],visitor_language:_0xf00fx3[_0xe6d7[3]],referer:_0xf00fx3[_0xe6d7[3]],browser:_0xf00fx3[_0xe6d7[3]],engine:_0xf00fx3[_0xe6d7[3]],os:_0xf00fx3[_0xe6d7[3]],device:_0xf00fx3[_0xe6d7[3]],country:_0xf00fx3[_0xe6d7[3]],region:_0xf00fx3[_0xe6d7[3]],city:_0xf00fx3[_0xe6d7[3]],latitude:_0xf00fx3[_0xe6d7[3]],longitude:_0xf00fx3[_0xe6d7[3]],origin:_0xf00fx3.ENUM(_0xe6d7[4],_0xe6d7[5]),status:{type:_0xf00fx3.ENUM(_0xe6d7[6],_0xe6d7[7],_0xe6d7[8]),defaultValue:_0xe6d7[6]}},{tableName:_0xe6d7[9],associate:function(_0xf00fx5){_0xf00fx4[_0xe6d7[10]](_0xf00fx5.ChatMessage);_0xf00fx4[_0xe6d7[10]](_0xf00fx5.ChatRoom);_0xf00fx4[_0xe6d7[11]](_0xf00fx5.ChatWebsite);}});return _0xf00fx4;};
\ No newline at end of file
+var _0x4d69=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x53\x54\x52\x49\x4E\x47","\x77\x65\x62\x63\x68\x61\x74","\x65\x6E\x71\x75\x69\x72\x79","\x70\x65\x6E\x64\x69\x6E\x67","\x75\x6E\x73\x65\x72\x76\x65\x64","\x73\x65\x72\x76\x65\x64","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x4d69[0]);module[_0x4d69[1]]=function(_0xf1a5x2,_0xf1a5x3){var _0xf1a5x4=_0xf1a5x2[_0x4d69[12]](_0x4d69[2],{fullname:_0xf1a5x3[_0x4d69[3]],email:_0xf1a5x3[_0x4d69[3]],remote_address:_0xf1a5x3[_0x4d69[3]],user_agent:_0xf1a5x3[_0x4d69[3]],visitor_language:_0xf1a5x3[_0x4d69[3]],referer:_0xf1a5x3[_0x4d69[3]],browser:_0xf1a5x3[_0x4d69[3]],engine:_0xf1a5x3[_0x4d69[3]],os:_0xf1a5x3[_0x4d69[3]],device:_0xf1a5x3[_0x4d69[3]],country:_0xf1a5x3[_0x4d69[3]],region:_0xf1a5x3[_0x4d69[3]],city:_0xf1a5x3[_0x4d69[3]],latitude:_0xf1a5x3[_0x4d69[3]],longitude:_0xf1a5x3[_0x4d69[3]],origin:_0xf1a5x3.ENUM(_0x4d69[4],_0x4d69[5]),status:{type:_0xf1a5x3.ENUM(_0x4d69[6],_0x4d69[7],_0x4d69[8]),defaultValue:_0x4d69[6]}},{tableName:_0x4d69[9],associate:function(_0xf1a5x5){_0xf1a5x4[_0x4d69[10]](_0xf1a5x5.ChatMessage);_0xf1a5x4[_0x4d69[10]](_0xf1a5x5.ChatRoom);_0xf1a5x4[_0x4d69[11]](_0xf1a5x5.ChatWebsite);}});return _0xf1a5x4;};
\ No newline at end of file
index a2015ed..badce3a 100644 (file)
@@ -1 +1 @@
-var _0x79b7=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x53\x54\x52\x49\x4E\x47","\x23\x30\x30\x30\x30\x38\x30","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x2D\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x79b7[0]);module[_0x79b7[1]]=function(_0x6959x2,_0x6959x3){var _0x6959x4=_0x6959x2[_0x79b7[21]](_0x79b7[2],{name:_0x6959x3[_0x79b7[3]],address:{type:_0x6959x3[_0x79b7[3]],unique:true},description:_0x6959x3[_0x79b7[3]],color:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[4]},color_focus:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[4]},color_button:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[4]},remote:_0x6959x3[_0x79b7[3]],animation:{type:_0x6959x3[_0x79b7[5]],defaultValue:true},header_shape:{type:_0x6959x3.ENUM(_0x79b7[6],_0x79b7[7]),defaultValue:_0x79b7[6]},header_online:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[8]},online_message:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[9]},username_placeholder:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[10]},email_placeholder:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[11]},start_chat_button:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[12]},header_offline:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[13]},offline_message:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[14]},enquiry_message_placeholder:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[15]},enquiry_button:{type:_0x6959x3[_0x79b7[3]],defaultValue:_0x79b7[16]},download_transcript:{type:_0x6959x3[_0x79b7[5]],defaultValue:true},enquiry_forwarding:{type:_0x6959x3[_0x79b7[5]],defaultValue:false},enquiry_forwarding_address:{type:_0x6959x3[_0x79b7[3]]}},{tableName:_0x79b7[17],associate:function(_0x6959x5){_0x6959x4[_0x79b7[19]](_0x6959x5.MailTemplate,{as:_0x79b7[18]});_0x6959x4[_0x79b7[20]](_0x6959x5.ChatRoom);_0x6959x4[_0x79b7[20]](_0x6959x5.ChatApplication);}});return _0x6959x4;};
\ No newline at end of file
+var _0x53c2=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x53\x54\x52\x49\x4E\x47","\x23\x30\x30\x30\x30\x38\x30","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x2D\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x53c2[0]);module[_0x53c2[1]]=function(_0xe9bfx2,_0xe9bfx3){var _0xe9bfx4=_0xe9bfx2[_0x53c2[21]](_0x53c2[2],{name:_0xe9bfx3[_0x53c2[3]],address:{type:_0xe9bfx3[_0x53c2[3]],unique:true},description:_0xe9bfx3[_0x53c2[3]],color:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[4]},color_focus:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[4]},color_button:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[4]},remote:_0xe9bfx3[_0x53c2[3]],animation:{type:_0xe9bfx3[_0x53c2[5]],defaultValue:true},header_shape:{type:_0xe9bfx3.ENUM(_0x53c2[6],_0x53c2[7]),defaultValue:_0x53c2[6]},header_online:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[8]},online_message:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[9]},username_placeholder:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[10]},email_placeholder:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[11]},start_chat_button:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[12]},header_offline:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[13]},offline_message:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[14]},enquiry_message_placeholder:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[15]},enquiry_button:{type:_0xe9bfx3[_0x53c2[3]],defaultValue:_0x53c2[16]},download_transcript:{type:_0xe9bfx3[_0x53c2[5]],defaultValue:true},enquiry_forwarding:{type:_0xe9bfx3[_0x53c2[5]],defaultValue:false},enquiry_forwarding_address:{type:_0xe9bfx3[_0x53c2[3]]}},{tableName:_0x53c2[17],associate:function(_0xe9bfx5){_0xe9bfx4[_0x53c2[19]](_0xe9bfx5.MailTemplate,{as:_0x53c2[18]});_0xe9bfx4[_0x53c2[20]](_0xe9bfx5.ChatRoom);_0xe9bfx4[_0x53c2[20]](_0xe9bfx5.ChatApplication);}});return _0xe9bfx4;};
\ No newline at end of file
index f6e980f..9e96c97 100644 (file)
@@ -1 +1 @@
-var _0x8ad0=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6D\x70\x61\x6E\x79","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x8ad0[0]]=function(_0x61bax1,_0x61bax2){var _0x61bax3=_0x61bax1[_0x8ad0[6]](_0x8ad0[1],{name:{type:_0x61bax2[_0x8ad0[2]],unique:true},street:_0x61bax2[_0x8ad0[2]],postalCode:_0x61bax2[_0x8ad0[2]],city:_0x61bax2[_0x8ad0[2]],country:_0x61bax2[_0x8ad0[2]],sStreet:_0x61bax2[_0x8ad0[2]],sPostalCode:_0x61bax2[_0x8ad0[2]],sCity:_0x61bax2[_0x8ad0[2]],sCountry:_0x61bax2[_0x8ad0[2]]},{tableName:_0x8ad0[3],associate:function(_0x61bax4){_0x61bax3[_0x8ad0[5]](_0x61bax4.Contact,{as:_0x8ad0[4]})}});return _0x61bax3;};
\ No newline at end of file
+var _0x9dd0=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6D\x70\x61\x6E\x79","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x9dd0[0]]=function(_0xae44x1,_0xae44x2){var _0xae44x3=_0xae44x1[_0x9dd0[6]](_0x9dd0[1],{name:{type:_0xae44x2[_0x9dd0[2]],unique:true},street:_0xae44x2[_0x9dd0[2]],postalCode:_0xae44x2[_0x9dd0[2]],city:_0xae44x2[_0x9dd0[2]],country:_0xae44x2[_0x9dd0[2]],sStreet:_0xae44x2[_0x9dd0[2]],sPostalCode:_0xae44x2[_0x9dd0[2]],sCity:_0xae44x2[_0x9dd0[2]],sCountry:_0xae44x2[_0x9dd0[2]]},{tableName:_0x9dd0[3],associate:function(_0xae44x4){_0xae44x3[_0x9dd0[5]](_0xae44x4.Contact,{as:_0x9dd0[4]})}});return _0xae44x3;};
\ No newline at end of file
index d9b38da..a772032 100644 (file)
@@ -1 +1 @@
-var _0x8f32=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x70\x68\x6F\x6E\x65\x73","\x50\x68\x6F\x6E\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x65\x6D\x61\x69\x6C\x73","\x45\x6D\x61\x69\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];module[_0x8f32[0]]=function(_0x9b1cx1,_0x9b1cx2){var _0x9b1cx3=_0x9b1cx1[_0x8f32[12]](_0x8f32[1],{fullname:{type:_0x9b1cx2[_0x8f32[2]],validate:{notEmpty:true}},tags:_0x9b1cx2[_0x8f32[2]],street:_0x9b1cx2[_0x8f32[2]],postalCode:_0x9b1cx2[_0x8f32[2]],city:_0x9b1cx2[_0x8f32[2]],country:_0x9b1cx2[_0x8f32[2]],dateOfBirth:_0x9b1cx2[_0x8f32[2]],description:_0x9b1cx2[_0x8f32[2]]},{tableName:_0x8f32[3],associate:function(_0x9b1cx4){_0x9b1cx3[_0x8f32[6]](_0x9b1cx4.ContactPhone,{through:_0x8f32[4],as:_0x8f32[5]});_0x9b1cx3[_0x8f32[6]](_0x9b1cx4.ContactEmail,{through:_0x8f32[7],as:_0x8f32[8]});_0x9b1cx3[_0x8f32[6]](_0x9b1cx4.CustomField,{through:_0x9b1cx4[_0x8f32[9]],as:_0x8f32[10]});_0x9b1cx3[_0x8f32[11]](_0x9b1cx4.Company);_0x9b1cx3[_0x8f32[11]](_0x9b1cx4.User);}});return _0x9b1cx3;};
\ No newline at end of file
+var _0x48e0=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x70\x68\x6F\x6E\x65\x73","\x50\x68\x6F\x6E\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x65\x6D\x61\x69\x6C\x73","\x45\x6D\x61\x69\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];module[_0x48e0[0]]=function(_0x6b8cx1,_0x6b8cx2){var _0x6b8cx3=_0x6b8cx1[_0x48e0[12]](_0x48e0[1],{fullname:{type:_0x6b8cx2[_0x48e0[2]],validate:{notEmpty:true}},tags:_0x6b8cx2[_0x48e0[2]],street:_0x6b8cx2[_0x48e0[2]],postalCode:_0x6b8cx2[_0x48e0[2]],city:_0x6b8cx2[_0x48e0[2]],country:_0x6b8cx2[_0x48e0[2]],dateOfBirth:_0x6b8cx2[_0x48e0[2]],description:_0x6b8cx2[_0x48e0[2]]},{tableName:_0x48e0[3],associate:function(_0x6b8cx4){_0x6b8cx3[_0x48e0[6]](_0x6b8cx4.ContactPhone,{through:_0x48e0[4],as:_0x48e0[5]});_0x6b8cx3[_0x48e0[6]](_0x6b8cx4.ContactEmail,{through:_0x48e0[7],as:_0x48e0[8]});_0x6b8cx3[_0x48e0[6]](_0x6b8cx4.CustomField,{through:_0x6b8cx4[_0x48e0[9]],as:_0x48e0[10]});_0x6b8cx3[_0x48e0[11]](_0x6b8cx4.Company);_0x6b8cx3[_0x48e0[11]](_0x6b8cx4.User);_0x6b8cx3[_0x48e0[11]](_0x6b8cx4.Service);}});return _0x6b8cx3;};
\ No newline at end of file
index b819d5f..61b6634 100644 (file)
@@ -1 +1 @@
-var _0x15bd=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x65\x6D\x61\x69\x6C\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x65\x6D\x61\x69\x6C\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x72\x6F\x6D","\x68\x61\x73\x4D\x61\x6E\x79","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x74\x6F","\x64\x65\x66\x69\x6E\x65"];module[_0x15bd[0]]=function(_0x4d40x1,_0x4d40x2){var _0x4d40x3=_0x4d40x1[_0x15bd[11]](_0x15bd[1],{email:{type:_0x4d40x2[_0x15bd[2]],primaryKey:true}},{tableName:_0x15bd[3],associate:function(_0x4d40x4){_0x4d40x3[_0x15bd[5]](_0x4d40x4.Contact,{through:_0x15bd[4]});_0x4d40x3[_0x15bd[8]](_0x4d40x4.ReportMailSession,{as:_0x15bd[6],foreignKey:_0x15bd[7],constraints:false});_0x4d40x3[_0x15bd[8]](_0x4d40x4.ReportMailSession,{as:_0x15bd[9],foreignKey:_0x15bd[10],constraints:false});}});return _0x4d40x3;};
\ No newline at end of file
+var _0xdf94=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x65\x6D\x61\x69\x6C\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x65\x6D\x61\x69\x6C\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x72\x6F\x6D","\x68\x61\x73\x4D\x61\x6E\x79","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x74\x6F","\x64\x65\x66\x69\x6E\x65"];module[_0xdf94[0]]=function(_0x5b9bx1,_0x5b9bx2){var _0x5b9bx3=_0x5b9bx1[_0xdf94[11]](_0xdf94[1],{email:{type:_0x5b9bx2[_0xdf94[2]],primaryKey:true}},{tableName:_0xdf94[3],associate:function(_0x5b9bx4){_0x5b9bx3[_0xdf94[5]](_0x5b9bx4.Contact,{through:_0xdf94[4]});_0x5b9bx3[_0xdf94[8]](_0x5b9bx4.ReportMailSession,{as:_0xdf94[6],foreignKey:_0xdf94[7],constraints:false});_0x5b9bx3[_0xdf94[8]](_0x5b9bx4.ReportMailSession,{as:_0xdf94[9],foreignKey:_0xdf94[10],constraints:false});}});return _0x5b9bx3;};
\ No newline at end of file
index e119dbe..5375405 100644 (file)
@@ -1 +1 @@
-var _0x651a=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x651a[0]);module[_0x651a[1]]=function(_0xb75fx2,_0xb75fx3){var _0xb75fx4=_0xb75fx2[_0x651a[5]](_0x651a[2],{value:_0xb75fx3[_0x651a[3]]},{tableName:_0x651a[4]});return _0xb75fx4;};
\ No newline at end of file
+var _0x44ab=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x44ab[0]);module[_0x44ab[1]]=function(_0x5a04x2,_0x5a04x3){var _0x5a04x4=_0x5a04x2[_0x44ab[5]](_0x44ab[2],{value:_0x5a04x3[_0x44ab[3]]},{tableName:_0x44ab[4]});return _0x5a04x4;};
\ No newline at end of file
index c94b900..b72be58 100644 (file)
@@ -1 +1 @@
-var _0x2f72=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x70\x68\x6F\x6E\x65\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x70\x68\x6F\x6E\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];module[_0x2f72[0]]=function(_0x3f08x1,_0x3f08x2){var _0x3f08x3=_0x3f08x1[_0x2f72[11]](_0x2f72[1],{phone:{type:_0x3f08x2[_0x2f72[2]],primaryKey:true}},{tableName:_0x2f72[3],associate:function(_0x3f08x4){_0x3f08x3[_0x2f72[5]](_0x3f08x4.Contact,{through:_0x2f72[4]});_0x3f08x3[_0x2f72[8]](_0x3f08x4.ReportCall,{as:_0x2f72[6],foreignKey:_0x2f72[7],constraints:false});_0x3f08x3[_0x2f72[8]](_0x3f08x4.ReportCall,{as:_0x2f72[9],foreignKey:_0x2f72[10],constraints:false});}});return _0x3f08x3;};
\ No newline at end of file
+var _0x20de=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x70\x68\x6F\x6E\x65\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x70\x68\x6F\x6E\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];module[_0x20de[0]]=function(_0x9079x1,_0x9079x2){var _0x9079x3=_0x9079x1[_0x20de[11]](_0x20de[1],{phone:{type:_0x9079x2[_0x20de[2]],primaryKey:true}},{tableName:_0x20de[3],associate:function(_0x9079x4){_0x9079x3[_0x20de[5]](_0x9079x4.Contact,{through:_0x20de[4]});_0x9079x3[_0x20de[8]](_0x9079x4.ReportCall,{as:_0x20de[6],foreignKey:_0x20de[7],constraints:false});_0x9079x3[_0x20de[8]](_0x9079x4.ReportCall,{as:_0x20de[9],foreignKey:_0x20de[10],constraints:false});}});return _0x9079x3;};
\ No newline at end of file
index 5534d81..a2e0c49 100644 (file)
@@ -1 +1 @@
-var _0xaebf=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xaebf[0]]=function(_0x2a66x1,_0x2a66x2){var _0x2a66x3=_0x2a66x1[_0xaebf[7]](_0xaebf[1],{name:{type:_0x2a66x2[_0xaebf[2]],unique:true},type:_0x2a66x2[_0xaebf[2]],active:{type:_0x2a66x2[_0xaebf[3]],defaultValue:true},values:_0x2a66x2[_0xaebf[2]]},{tableName:_0xaebf[4],associate:function(_0x2a66x4){_0x2a66x3[_0xaebf[6]](_0x2a66x4.Contact,{through:_0x2a66x4[_0xaebf[5]]})}});return _0x2a66x3;};
\ No newline at end of file
+var _0x30ee=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x30ee[0]]=function(_0x5c00x1,_0x5c00x2){var _0x5c00x3=_0x5c00x1[_0x30ee[7]](_0x30ee[1],{name:{type:_0x5c00x2[_0x30ee[2]],unique:true},type:_0x5c00x2[_0x30ee[2]],active:{type:_0x5c00x2[_0x30ee[3]],defaultValue:true},values:_0x5c00x2[_0x30ee[2]]},{tableName:_0x30ee[4],associate:function(_0x5c00x4){_0x5c00x3[_0x30ee[6]](_0x5c00x4.Contact,{through:_0x5c00x4[_0x30ee[5]]})}});return _0x5c00x3;};
\ No newline at end of file
index 8df8b57..7672024 100644 (file)
@@ -1 +1 @@
-var _0x3fa2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x46\x69\x65\x6C\x64\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x3fa2[0];module[_0x3fa2[1]]=function(_0x4e99x1,_0x4e99x2){var _0x4e99x3=_0x4e99x1[_0x3fa2[9]](_0x3fa2[2],{name:_0x4e99x2[_0x3fa2[3]],description:_0x4e99x2[_0x3fa2[3]],parent:_0x4e99x2[_0x3fa2[3]],table:_0x4e99x2[_0x3fa2[3]],conditions:_0x4e99x2[_0x3fa2[4]]},{tableName:_0x3fa2[5],associate:function(_0x4e99x4){_0x4e99x3[_0x3fa2[8]](_0x4e99x4.ReportField,{as:_0x3fa2[6],onDelete:_0x3fa2[7]})}});return _0x4e99x3;};
\ No newline at end of file
+var _0xc8b1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x46\x69\x65\x6C\x64\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xc8b1[0];module[_0xc8b1[1]]=function(_0xb419x1,_0xb419x2){var _0xb419x3=_0xb419x1[_0xc8b1[9]](_0xc8b1[2],{name:_0xb419x2[_0xc8b1[3]],description:_0xb419x2[_0xc8b1[3]],parent:_0xb419x2[_0xc8b1[3]],table:_0xb419x2[_0xc8b1[3]],conditions:_0xb419x2[_0xc8b1[4]]},{paranoid:true,tableName:_0xc8b1[5],associate:function(_0xb419x4){_0xb419x3[_0xc8b1[8]](_0xb419x4.ReportField,{as:_0xc8b1[6],onDelete:_0xc8b1[7]})}});return _0xb419x3;};
\ No newline at end of file
index f83db7c..56559b7 100644 (file)
@@ -1 +1 @@
-var _0x3b27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x34\x2D\x38","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x3b27[0];module[_0x3b27[1]]=function(_0xad0dx1,_0xad0dx2){var _0xad0dx3=_0xad0dx1[_0x3b27[8]](_0x3b27[2],{name:{type:_0xad0dx2[_0x3b27[3]],unique:true},description:{type:_0xad0dx2[_0x3b27[3]]},model:{type:_0xad0dx2[_0x3b27[4]]},collapsible:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true},editable:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true},maximizable:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true},structure:{type:_0xad0dx2.STRING(32),defaultValue:_0x3b27[6]},enableconfirmdelete:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true},defaultEntry:{type:_0xad0dx2[_0x3b27[5]],defaultValue:0},admin:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true},user:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true},agent:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true},visible:{type:_0xad0dx2[_0x3b27[5]],defaultValue:true}},{tableName:_0x3b27[7]});return _0xad0dx3;};
\ No newline at end of file
+var _0xf3ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x34\x2D\x38","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xf3ab[0];module[_0xf3ab[1]]=function(_0xbe0ex1,_0xbe0ex2){var _0xbe0ex3=_0xbe0ex1[_0xf3ab[8]](_0xf3ab[2],{name:{type:_0xbe0ex2[_0xf3ab[3]],unique:true},description:{type:_0xbe0ex2[_0xf3ab[3]]},model:{type:_0xbe0ex2[_0xf3ab[4]]},collapsible:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true},editable:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true},maximizable:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true},structure:{type:_0xbe0ex2.STRING(32),defaultValue:_0xf3ab[6]},enableconfirmdelete:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true},defaultEntry:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:0},admin:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true},user:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true},agent:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true},visible:{type:_0xbe0ex2[_0xf3ab[5]],defaultValue:true}},{tableName:_0xf3ab[7]});return _0xbe0ex3;};
\ No newline at end of file
index e485620..0ba5b65 100644 (file)
@@ -1 +1 @@
-var _0x6c5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x46\x69\x65\x6C\x64\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x6c5d[0];module[_0x6c5d[1]]=function(_0xe460x1,_0xe460x2){var _0xe460x3=_0xe460x1[_0x6c5d[9]](_0x6c5d[2],{name:_0xe460x2[_0x6c5d[3]],description:_0xe460x2[_0x6c5d[3]],parent:_0xe460x2[_0x6c5d[3]],table:_0xe460x2[_0x6c5d[3]],conditions:_0xe460x2[_0x6c5d[4]]},{tableName:_0x6c5d[5],associate:function(_0xe460x4){_0xe460x3[_0x6c5d[8]](_0xe460x4.ReportField,{as:_0x6c5d[6],onDelete:_0x6c5d[7]})}});return _0xe460x3;};
\ No newline at end of file
+var _0xe077=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x46\x69\x65\x6C\x64\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xe077[0];module[_0xe077[1]]=function(_0xa3e5x1,_0xa3e5x2){var _0xa3e5x3=_0xa3e5x1[_0xe077[9]](_0xe077[2],{name:_0xa3e5x2[_0xe077[3]],description:_0xa3e5x2[_0xe077[3]],parent:_0xa3e5x2[_0xe077[3]],table:_0xa3e5x2[_0xe077[3]],conditions:_0xa3e5x2[_0xe077[4]]},{tableName:_0xe077[5],associate:function(_0xa3e5x4){_0xa3e5x3[_0xe077[8]](_0xa3e5x4.ReportField,{as:_0xe077[6],onDelete:_0xe077[7]})}});return _0xa3e5x3;};
\ No newline at end of file
index e2d8147..4fca60e 100644 (file)
@@ -1 +1 @@
-var _0x4d21=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x62\x61\x73\x69\x63","\x6F\x61\x75\x74\x68","\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x4d21[0];module[_0x4d21[1]]=function(_0xb046x1,_0xb046x2){var _0xb046x3=_0xb046x1[_0x4d21[9]](_0x4d21[2],{name:_0xb046x2[_0x4d21[3]],description:_0xb046x2[_0x4d21[3]],username:{type:_0xb046x2[_0x4d21[3]],unique:true},remoteUri:{type:_0xb046x2[_0x4d21[3]],unique:true},authType:{type:_0xb046x2.ENUM(_0x4d21[4],_0x4d21[5]),defaultValue:_0x4d21[4]},password:_0xb046x2[_0x4d21[3]],consumerKey:_0xb046x2[_0x4d21[3]],consumerSecret:_0xb046x2[_0x4d21[3]],token:_0xb046x2[_0x4d21[3]],tokenSecret:_0xb046x2[_0x4d21[3]]},{tableName:_0x4d21[6],associate:function(_0xb046x4){_0xb046x3[_0x4d21[8]](_0xb046x4.DeskConfiguration,{foreignKey:_0x4d21[7]})}});return _0xb046x3;};
\ No newline at end of file
+var _0x14d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x62\x61\x73\x69\x63","\x6F\x61\x75\x74\x68","\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x14d9[0];module[_0x14d9[1]]=function(_0x6ea8x1,_0x6ea8x2){var _0x6ea8x3=_0x6ea8x1[_0x14d9[9]](_0x14d9[2],{name:_0x6ea8x2[_0x14d9[3]],description:_0x6ea8x2[_0x14d9[3]],username:{type:_0x6ea8x2[_0x14d9[3]],unique:true},remoteUri:{type:_0x6ea8x2[_0x14d9[3]],unique:true},authType:{type:_0x6ea8x2.ENUM(_0x14d9[4],_0x14d9[5]),defaultValue:_0x14d9[4]},password:_0x6ea8x2[_0x14d9[3]],consumerKey:_0x6ea8x2[_0x14d9[3]],consumerSecret:_0x6ea8x2[_0x14d9[3]],token:_0x6ea8x2[_0x14d9[3]],tokenSecret:_0x6ea8x2[_0x14d9[3]]},{tableName:_0x14d9[6],associate:function(_0x6ea8x4){_0x6ea8x3[_0x14d9[8]](_0x6ea8x4.DeskConfiguration,{foreignKey:_0x14d9[7]})}});return _0x6ea8x3;};
\ No newline at end of file
index 69f726d..efcfb17 100644 (file)
@@ -1 +1 @@
-var _0xcf57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0xcf57[0];module[_0xcf57[1]]=function(_0xc39fx1,_0xc39fx2){return _0xc39fx1[_0xcf57[14]](_0xcf57[2],{name:_0xc39fx2[_0xcf57[3]],description:_0xc39fx2[_0xcf57[3]]},{tableName:_0xcf57[4],associate:function(_0xc39fx3){_0xc39fx3[_0xcf57[2]][_0xcf57[6]](_0xc39fx3.DeskAccount,{foreignKey:_0xcf57[5]});_0xc39fx3[_0xcf57[2]][_0xcf57[9]](_0xc39fx3.DeskField,{as:_0xcf57[7],foreignKey:_0xcf57[8]});_0xc39fx3[_0xcf57[2]][_0xcf57[9]](_0xc39fx3.DeskField,{as:_0xcf57[10],foreignKey:_0xcf57[11]});_0xc39fx3[_0xcf57[2]][_0xcf57[9]](_0xc39fx3.DeskField,{as:_0xcf57[12],foreignKey:_0xcf57[13]});}})};
\ No newline at end of file
+var _0x2562=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0x2562[0];module[_0x2562[1]]=function(_0xbc98x1,_0xbc98x2){return _0xbc98x1[_0x2562[14]](_0x2562[2],{name:_0xbc98x2[_0x2562[3]],description:_0xbc98x2[_0x2562[3]]},{tableName:_0x2562[4],associate:function(_0xbc98x3){_0xbc98x3[_0x2562[2]][_0x2562[6]](_0xbc98x3.DeskAccount,{foreignKey:_0x2562[5]});_0xbc98x3[_0x2562[2]][_0x2562[9]](_0xbc98x3.DeskField,{as:_0x2562[7],foreignKey:_0x2562[8]});_0xbc98x3[_0x2562[2]][_0x2562[9]](_0xbc98x3.DeskField,{as:_0x2562[10],foreignKey:_0x2562[11]});_0xbc98x3[_0x2562[2]][_0x2562[9]](_0xbc98x3.DeskField,{as:_0x2562[12],foreignKey:_0x2562[13]});}})};
\ No newline at end of file
index 3fcb94f..9530e5c 100644 (file)
@@ -1 +1 @@
-var _0x52cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x52cb[0];module[_0x52cb[1]]=function(_0x4bf3x1,_0x4bf3x2){return _0x4bf3x1[_0x52cb[10]](_0x52cb[2],{type:{type:_0x4bf3x2.ENUM(_0x52cb[3],_0x52cb[4],_0x52cb[5]),defaultValue:_0x52cb[3]},content:_0x4bf3x2[_0x52cb[6]],key:_0x4bf3x2[_0x52cb[6]],keyType:{type:_0x4bf3x2.ENUM(_0x52cb[3],_0x52cb[4])},keyContent:_0x4bf3x2[_0x52cb[6]],idField:_0x4bf3x2[_0x52cb[6]],customField:{type:_0x4bf3x2[_0x52cb[7]],defaultValue:true}},{tableName:_0x52cb[8],associate:function(_0x4bf3x3){_0x4bf3x3[_0x52cb[2]][_0x52cb[9]](_0x4bf3x3.Variable)}})};
\ No newline at end of file
+var _0x550c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x550c[0];module[_0x550c[1]]=function(_0xeb1dx1,_0xeb1dx2){return _0xeb1dx1[_0x550c[10]](_0x550c[2],{type:{type:_0xeb1dx2.ENUM(_0x550c[3],_0x550c[4],_0x550c[5]),defaultValue:_0x550c[3]},content:_0xeb1dx2[_0x550c[6]],key:_0xeb1dx2[_0x550c[6]],keyType:{type:_0xeb1dx2.ENUM(_0x550c[3],_0x550c[4])},keyContent:_0xeb1dx2[_0x550c[6]],idField:_0xeb1dx2[_0x550c[6]],customField:{type:_0xeb1dx2[_0x550c[7]],defaultValue:true}},{tableName:_0x550c[8],associate:function(_0xeb1dx3){_0xeb1dx3[_0x550c[2]][_0x550c[9]](_0xeb1dx3.Variable)}})};
\ No newline at end of file
index 0d4dff8..8b38770 100644 (file)
@@ -1 +1 @@
-var _0xda64=["\x65\x78\x70\x6F\x72\x74\x73","\x45\x76\x65\x6E\x74","\x49\x4E\x43\x4F\x4D\x49\x4E\x47","\x4F\x55\x54\x47\x4F\x49\x4E\x47","\x41\x54\x54\x45\x4D\x50\x54","\x41\x53\x53\x49\x47\x4E\x45\x44","\x55\x4E\x41\x53\x53\x49\x47\x4E\x45\x44","\x4D\x41\x49\x4C","\x43\x48\x41\x54","\x46\x41\x58","\x56\x4F\x49\x43\x45","\x49\x4E\x54\x45\x47\x45\x52","\x65\x76\x65\x6E\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];module[_0xda64[0]]=function(_0xaeafx1,_0xaeafx2){var _0xaeafx3=_0xaeafx1[_0xda64[14]](_0xda64[1],{name:{type:_0xaeafx2.ENUM(_0xda64[2],_0xda64[3],_0xda64[4],_0xda64[5],_0xda64[6])},channel:{type:_0xaeafx2.ENUM(_0xda64[7],_0xda64[8],_0xda64[9],_0xda64[10])},timeout:{type:_0xaeafx2[_0xda64[11]]},holdtime:{type:_0xaeafx2[_0xda64[11]]}},{tableName:_0xda64[12],associate:function(_0xaeafx4){_0xaeafx3[_0xda64[13]](_0xaeafx4.User);_0xaeafx3[_0xda64[13]](_0xaeafx4.MailRoom);_0xaeafx3[_0xda64[13]](_0xaeafx4.MailMessage);_0xaeafx3[_0xda64[13]](_0xaeafx4.MailQueue);_0xaeafx3[_0xda64[13]](_0xaeafx4.MailAccount);_0xaeafx3[_0xda64[13]](_0xaeafx4.MailApplication);_0xaeafx3[_0xda64[13]](_0xaeafx4.FaxRoom);_0xaeafx3[_0xda64[13]](_0xaeafx4.FaxQueue);_0xaeafx3[_0xda64[13]](_0xaeafx4.FaxAccount);_0xaeafx3[_0xda64[13]](_0xaeafx4.FaxApplication);_0xaeafx3[_0xda64[13]](_0xaeafx4.ChatRoom);_0xaeafx3[_0xda64[13]](_0xaeafx4.ChatQueue);_0xaeafx3[_0xda64[13]](_0xaeafx4.ChatWebsite);_0xaeafx3[_0xda64[13]](_0xaeafx4.ChatApplication);}});return _0xaeafx3;};
\ No newline at end of file
+var _0xa69c=["\x65\x78\x70\x6F\x72\x74\x73","\x45\x76\x65\x6E\x74","\x49\x4E\x43\x4F\x4D\x49\x4E\x47","\x4F\x55\x54\x47\x4F\x49\x4E\x47","\x41\x54\x54\x45\x4D\x50\x54","\x41\x53\x53\x49\x47\x4E\x45\x44","\x55\x4E\x41\x53\x53\x49\x47\x4E\x45\x44","\x4D\x41\x49\x4C","\x43\x48\x41\x54","\x46\x41\x58","\x56\x4F\x49\x43\x45","\x49\x4E\x54\x45\x47\x45\x52","\x65\x76\x65\x6E\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];module[_0xa69c[0]]=function(_0xedc0x1,_0xedc0x2){var _0xedc0x3=_0xedc0x1[_0xa69c[14]](_0xa69c[1],{name:{type:_0xedc0x2.ENUM(_0xa69c[2],_0xa69c[3],_0xa69c[4],_0xa69c[5],_0xa69c[6])},channel:{type:_0xedc0x2.ENUM(_0xa69c[7],_0xa69c[8],_0xa69c[9],_0xa69c[10])},timeout:{type:_0xedc0x2[_0xa69c[11]]},holdtime:{type:_0xedc0x2[_0xa69c[11]]}},{tableName:_0xa69c[12],associate:function(_0xedc0x4){_0xedc0x3[_0xa69c[13]](_0xedc0x4.User);_0xedc0x3[_0xa69c[13]](_0xedc0x4.MailRoom);_0xedc0x3[_0xa69c[13]](_0xedc0x4.MailMessage);_0xedc0x3[_0xa69c[13]](_0xedc0x4.MailQueue);_0xedc0x3[_0xa69c[13]](_0xedc0x4.MailAccount);_0xedc0x3[_0xa69c[13]](_0xedc0x4.MailApplication);_0xedc0x3[_0xa69c[13]](_0xedc0x4.FaxRoom);_0xedc0x3[_0xa69c[13]](_0xedc0x4.FaxQueue);_0xedc0x3[_0xa69c[13]](_0xedc0x4.FaxAccount);_0xedc0x3[_0xa69c[13]](_0xedc0x4.FaxApplication);_0xedc0x3[_0xa69c[13]](_0xedc0x4.ChatRoom);_0xedc0x3[_0xa69c[13]](_0xedc0x4.ChatQueue);_0xedc0x3[_0xa69c[13]](_0xedc0x4.ChatWebsite);_0xedc0x3[_0xa69c[13]](_0xedc0x4.ChatApplication);}});return _0xedc0x3;};
\ No newline at end of file
index d766b00..6e5fb04 100644 (file)
@@ -1 +1 @@
-var _0x1091=["\x65\x78\x70\x6F\x72\x74\x73","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x4C\x6F\x61\x64\x69\x6E\x67","\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x1091[0]]=function(_0x5fb9x1,_0x5fb9x2){var _0x5fb9x3=_0x5fb9x1[_0x1091[6]](_0x1091[1],{name:_0x5fb9x2[_0x1091[2]],output:_0x5fb9x2[_0x1091[2]],savename:_0x5fb9x2[_0x1091[2]],startDate:_0x5fb9x2[_0x1091[3]],endDate:_0x5fb9x2[_0x1091[3]],status:{type:_0x5fb9x2[_0x1091[2]],defaultValue:_0x1091[4]}},{tableName:_0x1091[5]});return _0x5fb9x3;};
\ No newline at end of file
+var _0x288a=["\x65\x78\x70\x6F\x72\x74\x73","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x4C\x6F\x61\x64\x69\x6E\x67","\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x288a[0]]=function(_0xe905x1,_0xe905x2){var _0xe905x3=_0xe905x1[_0x288a[6]](_0x288a[1],{name:_0xe905x2[_0x288a[2]],output:_0xe905x2[_0x288a[2]],savename:_0xe905x2[_0x288a[2]],startDate:_0xe905x2[_0x288a[3]],endDate:_0xe905x2[_0x288a[3]],status:{type:_0xe905x2[_0x288a[2]],defaultValue:_0x288a[4]}},{tableName:_0x288a[5]});return _0xe905x3;};
\ No newline at end of file
index 7531402..15d93f8 100644 (file)
@@ -1 +1 @@
-var _0x56a4=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x39\x36\x30\x30","\x31\x34\x34\x30\x30","\x33\x33\x36\x30\x30","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x56a4[0]);module[_0x56a4[1]]=function(_0x6104x2,_0x6104x3){var _0x6104x4=_0x6104x2[_0x56a4[11]](_0x56a4[2],{description:_0x6104x3[_0x56a4[3]],name:_0x6104x3[_0x56a4[3]],phone:{type:_0x6104x3[_0x56a4[3]],unique:true},ecm:{type:_0x6104x3[_0x56a4[4]],defaultValue:false},faxheader:_0x6104x3[_0x56a4[3]],localid:_0x6104x3[_0x56a4[3]],maxrate:{type:_0x6104x3.ENUM(_0x56a4[5],_0x56a4[6],_0x56a4[7]),defaultValue:_0x56a4[7]},minrate:{type:_0x6104x3.ENUM(_0x56a4[5],_0x56a4[6],_0x56a4[7]),defaultValue:_0x56a4[5]}},{tableName:_0x56a4[8],associate:function(_0x6104x5){_0x6104x4[_0x56a4[9]](_0x6104x5.Trunk);_0x6104x4[_0x56a4[10]](_0x6104x5.FaxRoom);_0x6104x4[_0x56a4[10]](_0x6104x5.FaxApplication);}});return _0x6104x4;};
\ No newline at end of file
+var _0xb0b6=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x39\x36\x30\x30","\x31\x34\x34\x30\x30","\x33\x33\x36\x30\x30","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xb0b6[0]);module[_0xb0b6[1]]=function(_0xbb6cx2,_0xbb6cx3){var _0xbb6cx4=_0xbb6cx2[_0xb0b6[11]](_0xb0b6[2],{description:_0xbb6cx3[_0xb0b6[3]],name:_0xbb6cx3[_0xb0b6[3]],phone:{type:_0xbb6cx3[_0xb0b6[3]],unique:true},ecm:{type:_0xbb6cx3[_0xb0b6[4]],defaultValue:false},faxheader:_0xbb6cx3[_0xb0b6[3]],localid:_0xbb6cx3[_0xb0b6[3]],maxrate:{type:_0xbb6cx3.ENUM(_0xb0b6[5],_0xb0b6[6],_0xb0b6[7]),defaultValue:_0xb0b6[7]},minrate:{type:_0xbb6cx3.ENUM(_0xb0b6[5],_0xb0b6[6],_0xb0b6[7]),defaultValue:_0xb0b6[5]}},{tableName:_0xb0b6[8],associate:function(_0xbb6cx5){_0xbb6cx4[_0xb0b6[9]](_0xbb6cx5.Trunk);_0xbb6cx4[_0xb0b6[10]](_0xbb6cx5.FaxRoom);_0xbb6cx4[_0xb0b6[10]](_0xbb6cx5.FaxApplication);}});return _0xbb6cx4;};
\ No newline at end of file
index 73bb077..469b9c6 100644 (file)
@@ -1 +1 @@
-var _0xfa22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x2A\x7C\x2A\x7C\x2A\x7C\x2A","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xfa22[0];module[_0xfa22[1]]=function(_0xb4bfx1,_0xb4bfx2){var _0xb4bfx3=_0xb4bfx1[_0xfa22[10]](_0xfa22[2],{app:{type:_0xb4bfx2.ENUM(_0xfa22[3],_0xfa22[4])},appdata:{type:_0xb4bfx2[_0xfa22[5]]},priority:{type:_0xb4bfx2[_0xfa22[5]]},timeout:{type:_0xb4bfx2[_0xfa22[5]]},interval:{type:_0xb4bfx2[_0xfa22[6]],defaultValue:_0xfa22[7]}},{tableName:_0xfa22[8],associate:function(_0xb4bfx4){_0xb4bfx3[_0xfa22[9]](_0xb4bfx4.FaxAccount);_0xb4bfx3[_0xfa22[9]](_0xb4bfx4.FaxQueue);_0xb4bfx3[_0xfa22[9]](_0xb4bfx4.User);}});return _0xb4bfx3;};
\ No newline at end of file
+var _0x31fa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x2A\x7C\x2A\x7C\x2A\x7C\x2A","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x31fa[0];module[_0x31fa[1]]=function(_0xc7edx1,_0xc7edx2){var _0xc7edx3=_0xc7edx1[_0x31fa[10]](_0x31fa[2],{app:{type:_0xc7edx2.ENUM(_0x31fa[3],_0x31fa[4])},appdata:{type:_0xc7edx2[_0x31fa[5]]},priority:{type:_0xc7edx2[_0x31fa[5]]},timeout:{type:_0xc7edx2[_0x31fa[5]]},interval:{type:_0xc7edx2[_0x31fa[6]],defaultValue:_0x31fa[7]}},{tableName:_0x31fa[8],associate:function(_0xc7edx4){_0xc7edx3[_0x31fa[9]](_0xc7edx4.FaxAccount);_0xc7edx3[_0x31fa[9]](_0xc7edx4.FaxQueue);_0xc7edx3[_0x31fa[9]](_0xc7edx4.User);}});return _0xc7edx3;};
\ No newline at end of file
index dd98e7b..8565615 100644 (file)
@@ -1 +1 @@
-var _0x4dae=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x4dae[0]);module[_0x4dae[1]]=function(_0xe6d1x2,_0xe6d1x3){var _0xe6d1x4=_0xe6d1x2[_0x4dae[8]](_0x4dae[2],{name:{type:_0xe6d1x3[_0x4dae[3]]},description:{type:_0xe6d1x3[_0x4dae[3]]},status:{type:_0xe6d1x3[_0x4dae[4]],defaultValue:false},jobId:{type:_0xe6d1x3[_0x4dae[5]]}},{tableName:_0x4dae[6],associate:function(_0xe6d1x5){_0xe6d1x4[_0x4dae[7]](_0xe6d1x5.BusinessAction);_0xe6d1x4[_0x4dae[7]](_0xe6d1x5.BusinessCondition);}});return _0xe6d1x4;};
\ No newline at end of file
+var _0x7dd7=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x7dd7[0]);module[_0x7dd7[1]]=function(_0x1eb3x2,_0x1eb3x3){var _0x1eb3x4=_0x1eb3x2[_0x7dd7[8]](_0x7dd7[2],{name:{type:_0x1eb3x3[_0x7dd7[3]]},description:{type:_0x1eb3x3[_0x7dd7[3]]},status:{type:_0x1eb3x3[_0x7dd7[4]],defaultValue:false},jobId:{type:_0x1eb3x3[_0x7dd7[5]]}},{tableName:_0x7dd7[6],associate:function(_0x1eb3x5){_0x1eb3x4[_0x7dd7[7]](_0x1eb3x5.BusinessAction);_0x1eb3x4[_0x7dd7[7]](_0x1eb3x5.BusinessCondition);}});return _0x1eb3x4;};
\ No newline at end of file
index 1f82509..781cbb2 100644 (file)
@@ -1 +1 @@
-var _0x9400=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x52\x45\x43\x45\x49\x56\x45\x44","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x46\x41\x49\x4C\x45\x44","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x46\x72\x6F\x6D","\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x9400[0]);module[_0x9400[1]]=function(_0x77b6x2,_0x77b6x3){var _0x77b6x4=_0x77b6x2[_0x9400[16]](_0x9400[2],{actionid:_0x77b6x3[_0x9400[3]],channel:_0x77b6x3[_0x9400[3]],channelstate:_0x77b6x3[_0x9400[4]],channelstatedesc:_0x77b6x3[_0x9400[3]],calleridnum:_0x77b6x3[_0x9400[3]],calleridname:_0x77b6x3[_0x9400[3]],connectedlinenum:_0x77b6x3[_0x9400[3]],connectedlinename:_0x77b6x3[_0x9400[3]],status:{type:_0x77b6x3.ENUM(_0x9400[5],_0x9400[6],_0x9400[7],_0x9400[8],_0x9400[9]),allowNull:true},read:{type:_0x77b6x3[_0x9400[10]],defaultValue:false},favorite:{type:_0x77b6x3[_0x9400[10]],defaultValue:false},language:_0x77b6x3[_0x9400[3]],accountcode:_0x77b6x3[_0x9400[3]],context:_0x77b6x3[_0x9400[3]],exten:_0x77b6x3[_0x9400[3]],priority:_0x77b6x3[_0x9400[4]],uniqueid:_0x77b6x3[_0x9400[3]],localstationid:_0x77b6x3[_0x9400[3]],remotestationid:_0x77b6x3[_0x9400[3]],pagestransferred:_0x77b6x3[_0x9400[4]],resolution:_0x77b6x3[_0x9400[3]],transferrate:_0x77b6x3[_0x9400[3]],filename:_0x77b6x3[_0x9400[3]],filenamePDF:_0x77b6x3[_0x9400[3]],operation:_0x77b6x3[_0x9400[3]],uuid:_0x77b6x3[_0x9400[3]],laststatus:_0x77b6x3[_0x9400[3]],error:_0x77b6x3[_0x9400[3]],body:_0x77b6x3[_0x9400[11]]},{tableName:_0x9400[12],associate:function(_0x77b6x5){_0x77b6x4[_0x9400[13]](_0x77b6x5.FaxRoom);_0x77b6x4[_0x9400[13]](_0x77b6x5.Contact,{as:_0x9400[14]});_0x77b6x4[_0x9400[13]](_0x77b6x5.Contact,{as:_0x9400[15]});}});return _0x77b6x4;};
\ No newline at end of file
+var _0x68d6=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x52\x45\x43\x45\x49\x56\x45\x44","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x46\x41\x49\x4C\x45\x44","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x46\x72\x6F\x6D","\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x68d6[0]);module[_0x68d6[1]]=function(_0x4804x2,_0x4804x3){var _0x4804x4=_0x4804x2[_0x68d6[16]](_0x68d6[2],{actionid:_0x4804x3[_0x68d6[3]],channel:_0x4804x3[_0x68d6[3]],channelstate:_0x4804x3[_0x68d6[4]],channelstatedesc:_0x4804x3[_0x68d6[3]],calleridnum:_0x4804x3[_0x68d6[3]],calleridname:_0x4804x3[_0x68d6[3]],connectedlinenum:_0x4804x3[_0x68d6[3]],connectedlinename:_0x4804x3[_0x68d6[3]],status:{type:_0x4804x3.ENUM(_0x68d6[5],_0x68d6[6],_0x68d6[7],_0x68d6[8],_0x68d6[9]),allowNull:true},read:{type:_0x4804x3[_0x68d6[10]],defaultValue:false},favorite:{type:_0x4804x3[_0x68d6[10]],defaultValue:false},language:_0x4804x3[_0x68d6[3]],accountcode:_0x4804x3[_0x68d6[3]],context:_0x4804x3[_0x68d6[3]],exten:_0x4804x3[_0x68d6[3]],priority:_0x4804x3[_0x68d6[4]],uniqueid:_0x4804x3[_0x68d6[3]],localstationid:_0x4804x3[_0x68d6[3]],remotestationid:_0x4804x3[_0x68d6[3]],pagestransferred:_0x4804x3[_0x68d6[4]],resolution:_0x4804x3[_0x68d6[3]],transferrate:_0x4804x3[_0x68d6[3]],filename:_0x4804x3[_0x68d6[3]],filenamePDF:_0x4804x3[_0x68d6[3]],operation:_0x4804x3[_0x68d6[3]],uuid:_0x4804x3[_0x68d6[3]],laststatus:_0x4804x3[_0x68d6[3]],error:_0x4804x3[_0x68d6[3]],body:_0x4804x3[_0x68d6[11]]},{tableName:_0x68d6[12],associate:function(_0x4804x5){_0x4804x4[_0x68d6[13]](_0x4804x5.FaxRoom);_0x4804x4[_0x68d6[13]](_0x4804x5.Contact,{as:_0x68d6[14]});_0x4804x4[_0x68d6[13]](_0x4804x5.Contact,{as:_0x68d6[15]});}});return _0x4804x4;};
\ No newline at end of file
index 6a647aa..0807710 100644 (file)
@@ -1 +1 @@
-var _0x9c5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x9c5d[0];module[_0x9c5d[1]]=function(_0x40d6x1,_0x40d6x2){var _0x40d6x3=_0x40d6x1[_0x9c5d[10]](_0x9c5d[2],{name:{type:_0x40d6x2[_0x9c5d[3]],unique:true},description:{type:_0x40d6x2[_0x9c5d[3]]},timeout:{type:_0x40d6x2[_0x9c5d[4]]},strategy:{type:_0x40d6x2.ENUM(_0x9c5d[5],_0x9c5d[6])}},{tableName:_0x9c5d[7],associate:function(_0x40d6x4){_0x40d6x3[_0x9c5d[9]](_0x40d6x4.User,{hooks:true,through:_0x40d6x4[_0x9c5d[8]]})}});return _0x40d6x3;};
\ No newline at end of file
+var _0xa177=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xa177[0];module[_0xa177[1]]=function(_0x666dx1,_0x666dx2){var _0x666dx3=_0x666dx1[_0xa177[10]](_0xa177[2],{name:{type:_0x666dx2[_0xa177[3]],unique:true},description:{type:_0x666dx2[_0xa177[3]]},timeout:{type:_0x666dx2[_0xa177[4]]},strategy:{type:_0x666dx2.ENUM(_0xa177[5],_0xa177[6])}},{tableName:_0xa177[7],associate:function(_0x666dx4){_0x666dx3[_0xa177[9]](_0x666dx4.User,{hooks:true,through:_0x666dx4[_0xa177[8]]})}});return _0x666dx3;};
\ No newline at end of file
index 0d217cb..58cee7a 100644 (file)
@@ -1 +1 @@
-var _0x6501=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x54\x52\x49\x4E\x47","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x53\x4F\x4C\x56\x45\x44","\x43\x4C\x4F\x53\x45\x44","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x6501[0]);module[_0x6501[1]]=function(_0xfd21x2,_0xfd21x3){var _0xfd21x4=_0xfd21x2[_0x6501[12]](_0x6501[2],{roomId:_0xfd21x3[_0x6501[3]],from:_0xfd21x3[_0x6501[3]],status:_0xfd21x3.ENUM(_0x6501[4],_0x6501[5],_0x6501[6],_0x6501[7],_0x6501[8])},{tableName:_0x6501[9],associate:function(_0xfd21x5){_0xfd21x4[_0x6501[10]](_0xfd21x5.FaxMessage);_0xfd21x4[_0x6501[11]](_0xfd21x5.FaxAccount);_0xfd21x4[_0x6501[11]](_0xfd21x5.User);}});return _0xfd21x4;};
\ No newline at end of file
+var _0x87bd=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x54\x52\x49\x4E\x47","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x53\x4F\x4C\x56\x45\x44","\x43\x4C\x4F\x53\x45\x44","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x87bd[0]);module[_0x87bd[1]]=function(_0xbb48x2,_0xbb48x3){var _0xbb48x4=_0xbb48x2[_0x87bd[12]](_0x87bd[2],{roomId:_0xbb48x3[_0x87bd[3]],from:_0xbb48x3[_0x87bd[3]],status:_0xbb48x3.ENUM(_0x87bd[4],_0x87bd[5],_0x87bd[6],_0x87bd[7],_0x87bd[8])},{tableName:_0x87bd[9],associate:function(_0xbb48x5){_0xbb48x4[_0x87bd[10]](_0xbb48x5.FaxMessage);_0xbb48x4[_0x87bd[11]](_0xbb48x5.FaxAccount);_0xbb48x4[_0x87bd[11]](_0xbb48x5.User);}});return _0xbb48x4;};
\ No newline at end of file
index 6fae119..264e220 100644 (file)
@@ -1 +1 @@
-var _0x3b94=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x3b94[0];module[_0x3b94[1]]=function(_0xe7e4x1,_0xe7e4x2){return _0xe7e4x1[_0x3b94[7]](_0x3b94[2],{name:_0xe7e4x2[_0x3b94[3]],description:_0xe7e4x2[_0x3b94[3]],username:{type:_0xe7e4x2[_0x3b94[3]],unique:true},remoteUri:{type:_0xe7e4x2[_0x3b94[3]],unique:true},apiKey:_0xe7e4x2[_0x3b94[3]]},{tableName:_0x3b94[4],associate:function(_0xe7e4x3){_0xe7e4x3[_0x3b94[2]][_0x3b94[6]](_0xe7e4x3.FreshdeskConfiguration,{foreignKey:_0x3b94[5]})}})};
\ No newline at end of file
+var _0x355e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x355e[0];module[_0x355e[1]]=function(_0x6a4bx1,_0x6a4bx2){return _0x6a4bx1[_0x355e[7]](_0x355e[2],{name:_0x6a4bx2[_0x355e[3]],description:_0x6a4bx2[_0x355e[3]],username:{type:_0x6a4bx2[_0x355e[3]],unique:true},remoteUri:{type:_0x6a4bx2[_0x355e[3]],unique:true},apiKey:_0x6a4bx2[_0x355e[3]]},{tableName:_0x355e[4],associate:function(_0x6a4bx3){_0x6a4bx3[_0x355e[2]][_0x355e[6]](_0x6a4bx3.FreshdeskConfiguration,{foreignKey:_0x355e[5]})}})};
\ No newline at end of file
index 2c6cf17..7513607 100644 (file)
@@ -1 +1 @@
-var _0x51ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0x51ce[0];module[_0x51ce[1]]=function(_0x1527x1,_0x1527x2){return _0x1527x1[_0x51ce[14]](_0x51ce[2],{name:_0x1527x2[_0x51ce[3]],description:_0x1527x2[_0x51ce[3]]},{tableName:_0x51ce[4],associate:function(_0x1527x3){_0x1527x3[_0x51ce[2]][_0x51ce[6]](_0x1527x3.FreshdeskAccount,{foreignKey:_0x51ce[5]});_0x1527x3[_0x51ce[2]][_0x51ce[9]](_0x1527x3.FreshdeskField,{as:_0x51ce[7],foreignKey:_0x51ce[8]});_0x1527x3[_0x51ce[2]][_0x51ce[9]](_0x1527x3.FreshdeskField,{as:_0x51ce[10],foreignKey:_0x51ce[11]});_0x1527x3[_0x51ce[2]][_0x51ce[9]](_0x1527x3.FreshdeskField,{as:_0x51ce[12],foreignKey:_0x51ce[13]});}})};
\ No newline at end of file
+var _0xfef5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0xfef5[0];module[_0xfef5[1]]=function(_0x2cebx1,_0x2cebx2){return _0x2cebx1[_0xfef5[14]](_0xfef5[2],{name:_0x2cebx2[_0xfef5[3]],description:_0x2cebx2[_0xfef5[3]]},{tableName:_0xfef5[4],associate:function(_0x2cebx3){_0x2cebx3[_0xfef5[2]][_0xfef5[6]](_0x2cebx3.FreshdeskAccount,{foreignKey:_0xfef5[5]});_0x2cebx3[_0xfef5[2]][_0xfef5[9]](_0x2cebx3.FreshdeskField,{as:_0xfef5[7],foreignKey:_0xfef5[8]});_0x2cebx3[_0xfef5[2]][_0xfef5[9]](_0x2cebx3.FreshdeskField,{as:_0xfef5[10],foreignKey:_0xfef5[11]});_0x2cebx3[_0xfef5[2]][_0xfef5[9]](_0x2cebx3.FreshdeskField,{as:_0xfef5[12],foreignKey:_0xfef5[13]});}})};
\ No newline at end of file
index fd27293..df47203 100644 (file)
@@ -1 +1 @@
-var _0x5a5c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x5a5c[0];module[_0x5a5c[1]]=function(_0xf994x1,_0xf994x2){return _0xf994x1[_0x5a5c[10]](_0x5a5c[2],{type:{type:_0xf994x2.ENUM(_0x5a5c[3],_0x5a5c[4],_0x5a5c[5]),defaultValue:_0x5a5c[3]},content:_0xf994x2[_0x5a5c[6]],key:_0xf994x2[_0x5a5c[6]],keyType:{type:_0xf994x2.ENUM(_0x5a5c[3],_0x5a5c[4])},keyContent:_0xf994x2[_0x5a5c[6]],idField:_0xf994x2[_0x5a5c[6]],customField:{type:_0xf994x2[_0x5a5c[7]],defaultValue:true}},{tableName:_0x5a5c[8],associate:function(_0xf994x3){_0xf994x3[_0x5a5c[2]][_0x5a5c[9]](_0xf994x3.Variable)}})};
\ No newline at end of file
+var _0x6741=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x6741[0];module[_0x6741[1]]=function(_0xbd1dx1,_0xbd1dx2){return _0xbd1dx1[_0x6741[10]](_0x6741[2],{type:{type:_0xbd1dx2.ENUM(_0x6741[3],_0x6741[4],_0x6741[5]),defaultValue:_0x6741[3]},content:_0xbd1dx2[_0x6741[6]],key:_0xbd1dx2[_0x6741[6]],keyType:{type:_0xbd1dx2.ENUM(_0x6741[3],_0x6741[4])},keyContent:_0xbd1dx2[_0x6741[6]],idField:_0xbd1dx2[_0x6741[6]],customField:{type:_0xbd1dx2[_0x6741[7]],defaultValue:true}},{tableName:_0x6741[8],associate:function(_0xbd1dx3){_0xbd1dx3[_0x6741[2]][_0x6741[9]](_0xbd1dx3.Variable)}})};
\ No newline at end of file
index 7c6bce9..10b5d9b 100644 (file)
@@ -1 +1 @@
-var _0xd423=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0xd423[0]]=function(_0x9fd7x1,_0x9fd7x2){var _0x9fd7x3=_0x9fd7x1[_0xd423[7]](_0xd423[1],{uniqueid:_0x9fd7x2[_0xd423[2]],calleridnum:_0x9fd7x2[_0xd423[2]],calleridname:_0x9fd7x2[_0xd423[2]],queue:_0x9fd7x2[_0xd423[2]],interface:_0x9fd7x2[_0xd423[2]],membername:_0x9fd7x2[_0xd423[2]],agentcalledAt:_0x9fd7x2[_0xd423[3]],agentconnectAt:_0x9fd7x2[_0xd423[3]],holdtime:_0x9fd7x2[_0xd423[4]],agentcomplete:{type:_0x9fd7x2[_0xd423[5]],defaultValue:false},agentcompleteAt:_0x9fd7x2[_0xd423[3]],talktime:_0x9fd7x2[_0xd423[4]],agentacw:{type:_0x9fd7x2[_0xd423[5]],defaultValue:false},acwtime:_0x9fd7x2[_0xd423[4]],reason:_0x9fd7x2[_0xd423[2]],agentringnoanswer:{type:_0x9fd7x2[_0xd423[5]],defaultValue:false},agentringnoanswerAt:_0x9fd7x2[_0xd423[3]],agentdump:{type:_0x9fd7x2[_0xd423[5]],defaultValue:false},agentdumpAt:_0x9fd7x2[_0xd423[3]],channel:_0x9fd7x2[_0xd423[2]],channelstate:_0x9fd7x2[_0xd423[4]],channelstatedesc:_0x9fd7x2[_0xd423[2]],connectedlinenum:_0x9fd7x2[_0xd423[2]],connectedlinename:_0x9fd7x2[_0xd423[2]],language:_0x9fd7x2[_0xd423[2]],accountcode:_0x9fd7x2[_0xd423[2]],context:_0x9fd7x2[_0xd423[2]],exten:_0x9fd7x2[_0xd423[2]],priority:_0x9fd7x2[_0xd423[2]],destchannel:_0x9fd7x2[_0xd423[2]],destchannelstate:_0x9fd7x2[_0xd423[4]],destchannelstatedesc:_0x9fd7x2[_0xd423[2]],destcalleridnum:_0x9fd7x2[_0xd423[2]],destcalleridname:_0x9fd7x2[_0xd423[2]],destconnectedlinenum:_0x9fd7x2[_0xd423[2]],destconnectedlinename:_0x9fd7x2[_0xd423[2]],destlanguage:_0x9fd7x2[_0xd423[2]],destaccountcode:_0x9fd7x2[_0xd423[2]],destcontext:_0x9fd7x2[_0xd423[2]],destexten:_0x9fd7x2[_0xd423[2]],destpriority:_0x9fd7x2[_0xd423[2]],destuniqueid:_0x9fd7x2[_0xd423[2]]},{tableName:_0xd423[6]});_0x9fd7x3[_0xd423[9]](_0xd423[8]);return _0x9fd7x3;};
\ No newline at end of file
+var _0xad04=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0xad04[0]]=function(_0x7cb3x1,_0x7cb3x2){var _0x7cb3x3=_0x7cb3x1[_0xad04[7]](_0xad04[1],{uniqueid:_0x7cb3x2[_0xad04[2]],calleridnum:_0x7cb3x2[_0xad04[2]],calleridname:_0x7cb3x2[_0xad04[2]],queue:_0x7cb3x2[_0xad04[2]],interface:_0x7cb3x2[_0xad04[2]],membername:_0x7cb3x2[_0xad04[2]],agentcalledAt:_0x7cb3x2[_0xad04[3]],agentconnectAt:_0x7cb3x2[_0xad04[3]],holdtime:_0x7cb3x2[_0xad04[4]],agentcomplete:{type:_0x7cb3x2[_0xad04[5]],defaultValue:false},agentcompleteAt:_0x7cb3x2[_0xad04[3]],talktime:_0x7cb3x2[_0xad04[4]],agentacw:{type:_0x7cb3x2[_0xad04[5]],defaultValue:false},acwtime:_0x7cb3x2[_0xad04[4]],reason:_0x7cb3x2[_0xad04[2]],agentringnoanswer:{type:_0x7cb3x2[_0xad04[5]],defaultValue:false},agentringnoanswerAt:_0x7cb3x2[_0xad04[3]],agentdump:{type:_0x7cb3x2[_0xad04[5]],defaultValue:false},agentdumpAt:_0x7cb3x2[_0xad04[3]],channel:_0x7cb3x2[_0xad04[2]],channelstate:_0x7cb3x2[_0xad04[4]],channelstatedesc:_0x7cb3x2[_0xad04[2]],connectedlinenum:_0x7cb3x2[_0xad04[2]],connectedlinename:_0x7cb3x2[_0xad04[2]],language:_0x7cb3x2[_0xad04[2]],accountcode:_0x7cb3x2[_0xad04[2]],context:_0x7cb3x2[_0xad04[2]],exten:_0x7cb3x2[_0xad04[2]],priority:_0x7cb3x2[_0xad04[2]],destchannel:_0x7cb3x2[_0xad04[2]],destchannelstate:_0x7cb3x2[_0xad04[4]],destchannelstatedesc:_0x7cb3x2[_0xad04[2]],destcalleridnum:_0x7cb3x2[_0xad04[2]],destcalleridname:_0x7cb3x2[_0xad04[2]],destconnectedlinenum:_0x7cb3x2[_0xad04[2]],destconnectedlinename:_0x7cb3x2[_0xad04[2]],destlanguage:_0x7cb3x2[_0xad04[2]],destaccountcode:_0x7cb3x2[_0xad04[2]],destcontext:_0x7cb3x2[_0xad04[2]],destexten:_0x7cb3x2[_0xad04[2]],destpriority:_0x7cb3x2[_0xad04[2]],destuniqueid:_0x7cb3x2[_0xad04[2]]},{tableName:_0xad04[6]});_0x7cb3x3[_0xad04[9]](_0xad04[8]);return _0x7cb3x3;};
\ No newline at end of file
index 44fd9af..098cd45 100644 (file)
@@ -1 +1 @@
-var _0x255e=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5F\x68\x69\x73\x74\x6F\x72\x79","\x48\x69\x73\x74\x6F\x72\x79\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x48\x69\x73\x74\x6F\x72\x79\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x255e[0]]=function(_0x88b0x1,_0x88b0x2){var _0x88b0x3=_0x88b0x1[_0x255e[13]](_0x255e[1],{accountcode:_0x88b0x2[_0x255e[2]],source:_0x88b0x2[_0x255e[2]],destination:_0x88b0x2[_0x255e[2]],destinationcontext:_0x88b0x2[_0x255e[2]],callerid:_0x88b0x2[_0x255e[2]],channel:_0x88b0x2[_0x255e[2]],destinationchannel:_0x88b0x2[_0x255e[2]],lastapplication:_0x88b0x2[_0x255e[2]],lastdata:_0x88b0x2[_0x255e[2]],starttime:_0x88b0x2[_0x255e[3]],answertime:{type:_0x88b0x2[_0x255e[3]],set:function(_0x88b0x4){if(_0x88b0x4!==_0x255e[4]){this[_0x255e[6]](_0x255e[5],_0x88b0x4)}else {this[_0x255e[6]](_0x255e[5],null)}}},endtime:_0x88b0x2[_0x255e[3]],duration:_0x88b0x2[_0x255e[7]],billableseconds:_0x88b0x2[_0x255e[7]],disposition:_0x88b0x2[_0x255e[2]],amaflags:_0x88b0x2[_0x255e[2]],uniqueid:{type:_0x88b0x2[_0x255e[2]],primaryKey:true},userfield:_0x88b0x2[_0x255e[2]]},{tableName:_0x255e[8],associate:function(_0x88b0x5){_0x88b0x3[_0x255e[11]](_0x88b0x5.ReportQueueHistory,{as:_0x255e[9],foreignKey:_0x255e[10],constraints:false});_0x88b0x3[_0x255e[11]](_0x88b0x5.ReportAgentHistory,{as:_0x255e[12],foreignKey:_0x255e[10],constraints:false});}});_0x88b0x3[_0x255e[15]](_0x255e[14]);return _0x88b0x3;};
\ No newline at end of file
+var _0x8849=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5F\x68\x69\x73\x74\x6F\x72\x79","\x48\x69\x73\x74\x6F\x72\x79\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x48\x69\x73\x74\x6F\x72\x79\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x8849[0]]=function(_0x463fx1,_0x463fx2){var _0x463fx3=_0x463fx1[_0x8849[13]](_0x8849[1],{accountcode:_0x463fx2[_0x8849[2]],source:_0x463fx2[_0x8849[2]],destination:_0x463fx2[_0x8849[2]],destinationcontext:_0x463fx2[_0x8849[2]],callerid:_0x463fx2[_0x8849[2]],channel:_0x463fx2[_0x8849[2]],destinationchannel:_0x463fx2[_0x8849[2]],lastapplication:_0x463fx2[_0x8849[2]],lastdata:_0x463fx2[_0x8849[2]],starttime:_0x463fx2[_0x8849[3]],answertime:{type:_0x463fx2[_0x8849[3]],set:function(_0x463fx4){if(_0x463fx4!==_0x8849[4]){this[_0x8849[6]](_0x8849[5],_0x463fx4)}else {this[_0x8849[6]](_0x8849[5],null)}}},endtime:_0x463fx2[_0x8849[3]],duration:_0x463fx2[_0x8849[7]],billableseconds:_0x463fx2[_0x8849[7]],disposition:_0x463fx2[_0x8849[2]],amaflags:_0x463fx2[_0x8849[2]],uniqueid:{type:_0x463fx2[_0x8849[2]],primaryKey:true},userfield:_0x463fx2[_0x8849[2]]},{tableName:_0x8849[8],associate:function(_0x463fx5){_0x463fx3[_0x8849[11]](_0x463fx5.ReportQueueHistory,{as:_0x8849[9],foreignKey:_0x8849[10],constraints:false});_0x463fx3[_0x8849[11]](_0x463fx5.ReportAgentHistory,{as:_0x8849[12],foreignKey:_0x8849[10],constraints:false});}});_0x463fx3[_0x8849[15]](_0x8849[14]);return _0x463fx3;};
\ No newline at end of file
index b854ea0..82c4826 100644 (file)
@@ -1 +1 @@
-var _0x7aeb=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x7aeb[0]]=function(_0xdab4x1,_0xdab4x2){var _0xdab4x3=_0xdab4x1[_0x7aeb[5]](_0x7aeb[1],{channel:_0xdab4x2[_0x7aeb[2]],channelstate:_0xdab4x2[_0x7aeb[3]],channelstatedesc:_0xdab4x2[_0x7aeb[2]],calleridnum:_0xdab4x2[_0x7aeb[2]],calleridname:_0xdab4x2[_0x7aeb[2]],connectedlinenum:_0xdab4x2[_0x7aeb[2]],connectedlinename:_0xdab4x2[_0x7aeb[2]],language:_0xdab4x2[_0x7aeb[2]],accountcode:_0xdab4x2[_0x7aeb[2]],context:_0xdab4x2[_0x7aeb[2]],exten:_0xdab4x2[_0x7aeb[2]],priority:_0xdab4x2[_0x7aeb[3]],uniqueid:_0xdab4x2[_0x7aeb[2]],destchannel:_0xdab4x2[_0x7aeb[2]],destchannelstate:_0xdab4x2[_0x7aeb[3]],destchannelstatedesc:_0xdab4x2[_0x7aeb[2]],destcalleridnum:_0xdab4x2[_0x7aeb[2]],destcalleridname:_0xdab4x2[_0x7aeb[2]],destconnectedlinenum:_0xdab4x2[_0x7aeb[2]],destconnectedlinename:_0xdab4x2[_0x7aeb[2]],destlanguage:_0xdab4x2[_0x7aeb[2]],destaccountcode:_0xdab4x2[_0x7aeb[2]],destcontext:_0xdab4x2[_0x7aeb[2]],destexten:_0xdab4x2[_0x7aeb[2]],destpriority:_0xdab4x2[_0x7aeb[3]],destuniqueid:_0xdab4x2[_0x7aeb[2]],dialstring:_0xdab4x2[_0x7aeb[2]],dialstatus:_0xdab4x2[_0x7aeb[2]]},{tableName:_0x7aeb[4]});_0xdab4x3[_0x7aeb[7]](_0x7aeb[6]);return _0xdab4x3;};
\ No newline at end of file
+var _0x2568=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x2568[0]]=function(_0xcac2x1,_0xcac2x2){var _0xcac2x3=_0xcac2x1[_0x2568[5]](_0x2568[1],{channel:_0xcac2x2[_0x2568[2]],channelstate:_0xcac2x2[_0x2568[3]],channelstatedesc:_0xcac2x2[_0x2568[2]],calleridnum:_0xcac2x2[_0x2568[2]],calleridname:_0xcac2x2[_0x2568[2]],connectedlinenum:_0xcac2x2[_0x2568[2]],connectedlinename:_0xcac2x2[_0x2568[2]],language:_0xcac2x2[_0x2568[2]],accountcode:_0xcac2x2[_0x2568[2]],context:_0xcac2x2[_0x2568[2]],exten:_0xcac2x2[_0x2568[2]],priority:_0xcac2x2[_0x2568[3]],uniqueid:_0xcac2x2[_0x2568[2]],destchannel:_0xcac2x2[_0x2568[2]],destchannelstate:_0xcac2x2[_0x2568[3]],destchannelstatedesc:_0xcac2x2[_0x2568[2]],destcalleridnum:_0xcac2x2[_0x2568[2]],destcalleridname:_0xcac2x2[_0x2568[2]],destconnectedlinenum:_0xcac2x2[_0x2568[2]],destconnectedlinename:_0xcac2x2[_0x2568[2]],destlanguage:_0xcac2x2[_0x2568[2]],destaccountcode:_0xcac2x2[_0x2568[2]],destcontext:_0xcac2x2[_0x2568[2]],destexten:_0xcac2x2[_0x2568[2]],destpriority:_0xcac2x2[_0x2568[3]],destuniqueid:_0xcac2x2[_0x2568[2]],dialstring:_0xcac2x2[_0x2568[2]],dialstatus:_0xcac2x2[_0x2568[2]]},{tableName:_0x2568[4]});_0xcac2x3[_0x2568[7]](_0x2568[6]);return _0xcac2x3;};
\ No newline at end of file
index a500ea4..a5f5474 100644 (file)
@@ -1 +1 @@
-var _0xcfc1=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0xcfc1[0]]=function(_0x8014x1,_0x8014x2){var _0x8014x3=_0x8014x1[_0xcfc1[12]](_0xcfc1[1],{integration:_0x8014x2[_0xcfc1[2]],event:_0x8014x2[_0xcfc1[2]],contacts:_0x8014x2[_0xcfc1[2]],uniqueid:_0x8014x2[_0xcfc1[2]],calleridnum:_0x8014x2[_0xcfc1[2]],calleridname:_0x8014x2[_0xcfc1[2]],queue:_0x8014x2[_0xcfc1[2]],interface:_0x8014x2[_0xcfc1[2]],membername:_0x8014x2[_0xcfc1[2]],agentcalledAt:_0x8014x2[_0xcfc1[3]],agentconnectAt:_0x8014x2[_0xcfc1[3]],holdtime:_0x8014x2[_0xcfc1[4]],agentcomplete:{type:_0x8014x2[_0xcfc1[5]],defaultValue:false},agentcompleteAt:_0x8014x2[_0xcfc1[3]],talktime:_0x8014x2[_0xcfc1[4]],agentacw:{type:_0x8014x2[_0xcfc1[5]],defaultValue:false},acwtime:_0x8014x2[_0xcfc1[4]],reason:_0x8014x2[_0xcfc1[2]],agentringnoanswer:{type:_0x8014x2[_0xcfc1[5]],defaultValue:false},agentringnoanswerAt:_0x8014x2[_0xcfc1[3]],agentdump:{type:_0x8014x2[_0xcfc1[5]],defaultValue:false},agentdumpAt:_0x8014x2[_0xcfc1[3]],lastevent:_0x8014x2[_0xcfc1[2]],channel:_0x8014x2[_0xcfc1[2]],channelstate:_0x8014x2[_0xcfc1[4]],channelstatedesc:_0x8014x2[_0xcfc1[2]],connectedlinenum:_0x8014x2[_0xcfc1[2]],connectedlinename:_0x8014x2[_0xcfc1[2]],language:_0x8014x2[_0xcfc1[2]],accountcode:_0x8014x2[_0xcfc1[2]],context:_0x8014x2[_0xcfc1[2]],exten:_0x8014x2[_0xcfc1[2]],priority:_0x8014x2[_0xcfc1[2]],destchannel:_0x8014x2[_0xcfc1[2]],destchannelstate:_0x8014x2[_0xcfc1[4]],destchannelstatedesc:_0x8014x2[_0xcfc1[2]],destcalleridnum:_0x8014x2[_0xcfc1[2]],destcalleridname:_0x8014x2[_0xcfc1[2]],destconnectedlinenum:_0x8014x2[_0xcfc1[2]],destconnectedlinename:_0x8014x2[_0xcfc1[2]],destlanguage:_0x8014x2[_0xcfc1[2]],destaccountcode:_0x8014x2[_0xcfc1[2]],destcontext:_0x8014x2[_0xcfc1[2]],destexten:_0x8014x2[_0xcfc1[2]],destpriority:_0x8014x2[_0xcfc1[2]],destuniqueid:_0x8014x2[_0xcfc1[2]],messageId:_0x8014x2[_0xcfc1[2]],inReplyTo:_0x8014x2[_0xcfc1[2]],subject:_0x8014x2[_0xcfc1[2]],from:_0x8014x2[_0xcfc1[2]],to:_0x8014x2[_0xcfc1[2]],cc:_0x8014x2[_0xcfc1[2]],attachment:_0x8014x2[_0xcfc1[6]],html:_0x8014x2[_0xcfc1[6]],text:_0x8014x2[_0xcfc1[6]],status:{type:_0x8014x2.ENUM(_0xcfc1[7],_0xcfc1[8],_0xcfc1[9],_0xcfc1[10])}},{tableName:_0xcfc1[11]});_0x8014x3[_0xcfc1[14]](_0xcfc1[13]);return _0x8014x3;};
\ No newline at end of file
+var _0xf39e=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0xf39e[0]]=function(_0x5b9bx1,_0x5b9bx2){var _0x5b9bx3=_0x5b9bx1[_0xf39e[12]](_0xf39e[1],{integration:_0x5b9bx2[_0xf39e[2]],event:_0x5b9bx2[_0xf39e[2]],contacts:_0x5b9bx2[_0xf39e[2]],uniqueid:_0x5b9bx2[_0xf39e[2]],calleridnum:_0x5b9bx2[_0xf39e[2]],calleridname:_0x5b9bx2[_0xf39e[2]],queue:_0x5b9bx2[_0xf39e[2]],interface:_0x5b9bx2[_0xf39e[2]],membername:_0x5b9bx2[_0xf39e[2]],agentcalledAt:_0x5b9bx2[_0xf39e[3]],agentconnectAt:_0x5b9bx2[_0xf39e[3]],holdtime:_0x5b9bx2[_0xf39e[4]],agentcomplete:{type:_0x5b9bx2[_0xf39e[5]],defaultValue:false},agentcompleteAt:_0x5b9bx2[_0xf39e[3]],talktime:_0x5b9bx2[_0xf39e[4]],agentacw:{type:_0x5b9bx2[_0xf39e[5]],defaultValue:false},acwtime:_0x5b9bx2[_0xf39e[4]],reason:_0x5b9bx2[_0xf39e[2]],agentringnoanswer:{type:_0x5b9bx2[_0xf39e[5]],defaultValue:false},agentringnoanswerAt:_0x5b9bx2[_0xf39e[3]],agentdump:{type:_0x5b9bx2[_0xf39e[5]],defaultValue:false},agentdumpAt:_0x5b9bx2[_0xf39e[3]],lastevent:_0x5b9bx2[_0xf39e[2]],channel:_0x5b9bx2[_0xf39e[2]],channelstate:_0x5b9bx2[_0xf39e[4]],channelstatedesc:_0x5b9bx2[_0xf39e[2]],connectedlinenum:_0x5b9bx2[_0xf39e[2]],connectedlinename:_0x5b9bx2[_0xf39e[2]],language:_0x5b9bx2[_0xf39e[2]],accountcode:_0x5b9bx2[_0xf39e[2]],context:_0x5b9bx2[_0xf39e[2]],exten:_0x5b9bx2[_0xf39e[2]],priority:_0x5b9bx2[_0xf39e[2]],destchannel:_0x5b9bx2[_0xf39e[2]],destchannelstate:_0x5b9bx2[_0xf39e[4]],destchannelstatedesc:_0x5b9bx2[_0xf39e[2]],destcalleridnum:_0x5b9bx2[_0xf39e[2]],destcalleridname:_0x5b9bx2[_0xf39e[2]],destconnectedlinenum:_0x5b9bx2[_0xf39e[2]],destconnectedlinename:_0x5b9bx2[_0xf39e[2]],destlanguage:_0x5b9bx2[_0xf39e[2]],destaccountcode:_0x5b9bx2[_0xf39e[2]],destcontext:_0x5b9bx2[_0xf39e[2]],destexten:_0x5b9bx2[_0xf39e[2]],destpriority:_0x5b9bx2[_0xf39e[2]],destuniqueid:_0x5b9bx2[_0xf39e[2]],messageId:_0x5b9bx2[_0xf39e[2]],inReplyTo:_0x5b9bx2[_0xf39e[2]],subject:_0x5b9bx2[_0xf39e[2]],from:_0x5b9bx2[_0xf39e[2]],to:_0x5b9bx2[_0xf39e[2]],cc:_0x5b9bx2[_0xf39e[2]],attachment:_0x5b9bx2[_0xf39e[6]],html:_0x5b9bx2[_0xf39e[6]],text:_0x5b9bx2[_0xf39e[6]],status:{type:_0x5b9bx2.ENUM(_0xf39e[7],_0xf39e[8],_0xf39e[9],_0xf39e[10])}},{tableName:_0xf39e[11]});_0x5b9bx3[_0xf39e[14]](_0xf39e[13]);return _0x5b9bx3;};
\ No newline at end of file
index 5ee9713..d853c9b 100644 (file)
@@ -1 +1 @@
-var _0x6a6d=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];var moment=require(_0x6a6d[0]);module[_0x6a6d[1]]=function(_0xbf51x2,_0xbf51x3){var _0xbf51x4=_0xbf51x2[_0x6a6d[8]](_0x6a6d[2],{uniqueid:{type:_0xbf51x3[_0x6a6d[3]]},subject:_0xbf51x3[_0x6a6d[4]],from:_0xbf51x3[_0x6a6d[4]],cc:_0xbf51x3[_0x6a6d[4]],attachment:_0xbf51x3[_0x6a6d[5]],accountname:_0xbf51x3[_0x6a6d[4]],accountaddress:_0xbf51x3[_0x6a6d[4]],fullname:_0xbf51x3[_0x6a6d[4]],membername:_0xbf51x3[_0x6a6d[4]],mailqueuename:_0xbf51x3[_0x6a6d[4]],mailjoinAt:_0xbf51x3[_0x6a6d[6]],mailleaveAt:_0xbf51x3[_0x6a6d[6]],mailunmanagedAt:_0xbf51x3[_0x6a6d[6]]},{tableName:_0x6a6d[7]});_0xbf51x4[_0x6a6d[10]](_0x6a6d[9]);return _0xbf51x4;};
\ No newline at end of file
+var _0xe4cf=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];var moment=require(_0xe4cf[0]);module[_0xe4cf[1]]=function(_0x499ax2,_0x499ax3){var _0x499ax4=_0x499ax2[_0xe4cf[8]](_0xe4cf[2],{uniqueid:{type:_0x499ax3[_0xe4cf[3]]},subject:_0x499ax3[_0xe4cf[4]],from:_0x499ax3[_0xe4cf[4]],to:_0x499ax3[_0xe4cf[4]],cc:_0x499ax3[_0xe4cf[4]],attachment:_0x499ax3[_0xe4cf[5]],accountname:_0x499ax3[_0xe4cf[4]],accountaddress:_0x499ax3[_0xe4cf[4]],fullname:_0x499ax3[_0xe4cf[4]],membername:_0x499ax3[_0xe4cf[4]],mailqueuename:_0x499ax3[_0xe4cf[4]],mailjoinAt:_0x499ax3[_0xe4cf[6]],mailleaveAt:_0x499ax3[_0xe4cf[6]],mailunmanagedAt:_0x499ax3[_0xe4cf[6]]},{tableName:_0xe4cf[7]});_0x499ax4[_0xe4cf[10]](_0xe4cf[9]);return _0x499ax4;};
\ No newline at end of file
index af33769..b772710 100644 (file)
@@ -1 +1 @@
-var _0x7541=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x7541[0]]=function(_0xd39dx1,_0xd39dx2){var _0xd39dx3=_0xd39dx1[_0x7541[6]](_0x7541[1],{stateinterface:_0xd39dx2[_0x7541[2]],queue:_0xd39dx2[_0x7541[2]],membername:_0xd39dx2[_0x7541[2]],interface:_0xd39dx2[_0x7541[2]],state:_0xd39dx2[_0x7541[3]],statedesc:_0xd39dx2[_0x7541[2]],enterdate:_0xd39dx2[_0x7541[4]],exitdate:_0xd39dx2[_0x7541[4]],reason:_0xd39dx2[_0x7541[2]]},{tableName:_0x7541[5]});_0xd39dx3[_0x7541[8]](_0x7541[7]);return _0xd39dx3;};
\ No newline at end of file
+var _0x2bf8=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x2bf8[0]]=function(_0x1434x1,_0x1434x2){var _0x1434x3=_0x1434x1[_0x2bf8[6]](_0x2bf8[1],{stateinterface:_0x1434x2[_0x2bf8[2]],queue:_0x1434x2[_0x2bf8[2]],membername:_0x1434x2[_0x2bf8[2]],interface:_0x1434x2[_0x2bf8[2]],state:_0x1434x2[_0x2bf8[3]],statedesc:_0x1434x2[_0x2bf8[2]],enterdate:_0x1434x2[_0x2bf8[4]],exitdate:_0x1434x2[_0x2bf8[4]],reason:_0x1434x2[_0x2bf8[2]]},{tableName:_0x2bf8[5]});_0x1434x3[_0x2bf8[8]](_0x2bf8[7]);return _0x1434x3;};
\ No newline at end of file
index ac99523..4a2b1b8 100644 (file)
@@ -1 +1 @@
-var _0x5599=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x5599[0]]=function(_0xde93x1,_0xde93x2){var _0xde93x3=_0xde93x1[_0x5599[7]](_0x5599[1],{uniqueid:_0xde93x2[_0x5599[2]],calleridnum:_0xde93x2[_0x5599[2]],calleridname:_0xde93x2[_0x5599[2]],queue:_0xde93x2[_0x5599[2]],queuecallerjoinAt:_0xde93x2[_0x5599[3]],queuecallerleaveAt:_0xde93x2[_0x5599[3]],position:_0xde93x2[_0x5599[4]],count:_0xde93x2[_0x5599[4]],queuecallerabandon:{type:_0xde93x2[_0x5599[5]],defaultValue:false},queuecallerabandonAt:_0xde93x2[_0x5599[3]],queuecallercompleteAt:_0xde93x2[_0x5599[3]],originalposition:_0xde93x2[_0x5599[4]],channel:_0xde93x2[_0x5599[2]],channelstate:_0xde93x2[_0x5599[4]],channelstatedesc:_0xde93x2[_0x5599[2]],connectedlinenum:_0xde93x2[_0x5599[2]],connectedlinename:_0xde93x2[_0x5599[2]],language:_0xde93x2[_0x5599[2]],accountcode:_0xde93x2[_0x5599[2]],context:_0xde93x2[_0x5599[2]],exten:_0xde93x2[_0x5599[2]],priority:_0xde93x2[_0x5599[2]]},{tableName:_0x5599[6]});_0xde93x3[_0x5599[9]](_0x5599[8]);return _0xde93x3;};
\ No newline at end of file
+var _0x7489=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x7489[0]]=function(_0x7316x1,_0x7316x2){var _0x7316x3=_0x7316x1[_0x7489[7]](_0x7489[1],{uniqueid:_0x7316x2[_0x7489[2]],calleridnum:_0x7316x2[_0x7489[2]],calleridname:_0x7316x2[_0x7489[2]],queue:_0x7316x2[_0x7489[2]],queuecallerjoinAt:_0x7316x2[_0x7489[3]],queuecallerleaveAt:_0x7316x2[_0x7489[3]],position:_0x7316x2[_0x7489[4]],count:_0x7316x2[_0x7489[4]],queuecallerabandon:{type:_0x7316x2[_0x7489[5]],defaultValue:false},queuecallerabandonAt:_0x7316x2[_0x7489[3]],queuecallercompleteAt:_0x7316x2[_0x7489[3]],originalposition:_0x7316x2[_0x7489[4]],channel:_0x7316x2[_0x7489[2]],channelstate:_0x7316x2[_0x7489[4]],channelstatedesc:_0x7316x2[_0x7489[2]],connectedlinenum:_0x7316x2[_0x7489[2]],connectedlinename:_0x7316x2[_0x7489[2]],language:_0x7316x2[_0x7489[2]],accountcode:_0x7316x2[_0x7489[2]],context:_0x7316x2[_0x7489[2]],exten:_0x7316x2[_0x7489[2]],priority:_0x7316x2[_0x7489[2]]},{tableName:_0x7489[6]});_0x7316x3[_0x7489[9]](_0x7489[8]);return _0x7316x3;};
\ No newline at end of file
index dcc2407..c832273 100644 (file)
@@ -1 +1 @@
-var _0x505e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x63\x6F\x6E\x66\x69\x67","\x50\x72\x6F\x6D\x69\x73\x65","\x64\x61\x74\x61\x62\x61\x73\x65","\x64\x62","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x68\x6F\x73\x74","\x6D\x79\x73\x71\x6C","\x5A","\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x69\x6D\x70\x6F\x72\x74","\x6E\x61\x6D\x65","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x46\x69\x6C\x65","\x6C\x73\x74\x61\x74\x53\x79\x6E\x63","\x2E","\x69\x6E\x64\x65\x78\x4F\x66","\x2E\x73\x70\x65\x63\x2E","\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x66\x69\x6C\x74\x65\x72","\x72\x65\x61\x64\x64\x69\x72\x53\x79\x6E\x63","\x61\x73\x73\x6F\x63\x69\x61\x74\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79\x73","\x68\x69\x73\x74\x6F\x72\x79","\x64\x62\x5F\x68\x69\x73\x74\x6F\x72\x79","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x72\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x74\x6F","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x505e[0];var fs=require(_0x505e[1]);var path=require(_0x505e[2]);var config=require(_0x505e[3]);var Sequelize=require(_0x505e[4]);var moment=require(_0x505e[5]);Sequelize[_0x505e[7]][_0x505e[6]]({warnings:{wForgottenReturn:false}});var sequelize= new Sequelize(config[_0x505e[9]][_0x505e[8]],config[_0x505e[9]][_0x505e[10]],config[_0x505e[9]][_0x505e[11]],{host:config[_0x505e[9]][_0x505e[12]],dialect:_0x505e[13],timezone:moment()[_0x505e[15]](_0x505e[14]),logging:false});var db={};fs[_0x505e[27]](__dirname)[_0x505e[26]](function(_0x7d9ex8){return (fs[_0x505e[21]](path[_0x505e[16]](__dirname,_0x7d9ex8))[_0x505e[20]]())&&(_0x7d9ex8[_0x505e[23]](_0x505e[22])!==0)&&(_0x7d9ex8[_0x505e[23]](_0x505e[24])=== -1)&&(_0x7d9ex8!==_0x505e[25])})[_0x505e[19]](function(_0x7d9ex8){var _0x7d9ex9=sequelize[_0x505e[17]](path[_0x505e[16]](__dirname,_0x7d9ex8));db[_0x7d9ex9[_0x505e[18]]]=_0x7d9ex9;});Object[_0x505e[31]](db)[_0x505e[19]](function(_0x7d9exa){if(db[_0x7d9exa][_0x505e[30]][_0x505e[29]](_0x505e[28])){db[_0x7d9exa][_0x505e[30]][_0x505e[28]](db)}});db[_0x505e[32]]={};var sequelize_history= new Sequelize(config[_0x505e[33]][_0x505e[8]],config[_0x505e[33]][_0x505e[10]],config[_0x505e[33]][_0x505e[11]],{host:config[_0x505e[33]][_0x505e[12]],dialect:_0x505e[13],timezone:moment()[_0x505e[15]](_0x505e[14]),logging:false});fs[_0x505e[27]](path[_0x505e[16]](__dirname,_0x505e[32]))[_0x505e[26]](function(_0x7d9ex8){return (fs[_0x505e[21]](path[_0x505e[16]](__dirname,_0x505e[32],_0x7d9ex8))[_0x505e[20]]())&&(_0x7d9ex8[_0x505e[23]](_0x505e[22])!==0)&&(_0x7d9ex8[_0x505e[23]](_0x505e[24])=== -1)&&(_0x7d9ex8!==_0x505e[25])})[_0x505e[19]](function(_0x7d9ex8){var _0x7d9ex9=sequelize_history[_0x505e[17]](path[_0x505e[16]](__dirname,_0x505e[32],_0x7d9ex8));db[_0x505e[32]][_0x7d9ex9[_0x505e[18]]]=_0x7d9ex9;});Object[_0x505e[31]](db[_0x505e[32]])[_0x505e[19]](function(_0x7d9exa){if(db[_0x505e[32]][_0x7d9exa][_0x505e[30]][_0x505e[29]](_0x505e[28])){db[_0x505e[32]][_0x7d9exa][_0x505e[30]][_0x505e[28]](db[_0x505e[32]])}});db[_0x505e[37]][_0x505e[36]](db[_0x505e[32]].ReportCallHistory,{as:_0x505e[34],foreignKey:_0x505e[35],constraints:false});db[_0x505e[37]][_0x505e[36]](db[_0x505e[32]].ReportCallHistory,{as:_0x505e[38],foreignKey:_0x505e[39],constraints:false});db[_0x505e[42]][_0x505e[36]](db[_0x505e[32]].ReportMailSessionHistory,{as:_0x505e[40],foreignKey:_0x505e[41],constraints:false});db[_0x505e[42]][_0x505e[36]](db[_0x505e[32]].ReportMailSessionHistory,{as:_0x505e[43],foreignKey:_0x505e[44],constraints:false});db[_0x505e[4]]=sequelize;db[_0x505e[45]]=sequelize_history;db[_0x505e[46]]=Sequelize;module[_0x505e[47]]=db;
\ No newline at end of file
+var _0x7dcc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x63\x6F\x6E\x66\x69\x67","\x50\x72\x6F\x6D\x69\x73\x65","\x64\x61\x74\x61\x62\x61\x73\x65","\x64\x62","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x68\x6F\x73\x74","\x6D\x79\x73\x71\x6C","\x5A","\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x69\x6D\x70\x6F\x72\x74","\x6E\x61\x6D\x65","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x46\x69\x6C\x65","\x6C\x73\x74\x61\x74\x53\x79\x6E\x63","\x2E","\x69\x6E\x64\x65\x78\x4F\x66","\x2E\x73\x70\x65\x63\x2E","\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x66\x69\x6C\x74\x65\x72","\x72\x65\x61\x64\x64\x69\x72\x53\x79\x6E\x63","\x61\x73\x73\x6F\x63\x69\x61\x74\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79\x73","\x68\x69\x73\x74\x6F\x72\x79","\x64\x62\x5F\x68\x69\x73\x74\x6F\x72\x79","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x72\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x74\x6F","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7dcc[0];var fs=require(_0x7dcc[1]);var path=require(_0x7dcc[2]);var config=require(_0x7dcc[3]);var Sequelize=require(_0x7dcc[4]);var moment=require(_0x7dcc[5]);Sequelize[_0x7dcc[7]][_0x7dcc[6]]({warnings:{wForgottenReturn:false}});var sequelize= new Sequelize(config[_0x7dcc[9]][_0x7dcc[8]],config[_0x7dcc[9]][_0x7dcc[10]],config[_0x7dcc[9]][_0x7dcc[11]],{host:config[_0x7dcc[9]][_0x7dcc[12]],dialect:_0x7dcc[13],timezone:moment()[_0x7dcc[15]](_0x7dcc[14]),logging:false});var db={};fs[_0x7dcc[27]](__dirname)[_0x7dcc[26]](function(_0x52abx8){return (fs[_0x7dcc[21]](path[_0x7dcc[16]](__dirname,_0x52abx8))[_0x7dcc[20]]())&&(_0x52abx8[_0x7dcc[23]](_0x7dcc[22])!==0)&&(_0x52abx8[_0x7dcc[23]](_0x7dcc[24])=== -1)&&(_0x52abx8!==_0x7dcc[25])})[_0x7dcc[19]](function(_0x52abx8){var _0x52abx9=sequelize[_0x7dcc[17]](path[_0x7dcc[16]](__dirname,_0x52abx8));db[_0x52abx9[_0x7dcc[18]]]=_0x52abx9;});Object[_0x7dcc[31]](db)[_0x7dcc[19]](function(_0x52abxa){if(db[_0x52abxa][_0x7dcc[30]][_0x7dcc[29]](_0x7dcc[28])){db[_0x52abxa][_0x7dcc[30]][_0x7dcc[28]](db)}});db[_0x7dcc[32]]={};var sequelize_history= new Sequelize(config[_0x7dcc[33]][_0x7dcc[8]],config[_0x7dcc[33]][_0x7dcc[10]],config[_0x7dcc[33]][_0x7dcc[11]],{host:config[_0x7dcc[33]][_0x7dcc[12]],dialect:_0x7dcc[13],timezone:moment()[_0x7dcc[15]](_0x7dcc[14]),logging:false});fs[_0x7dcc[27]](path[_0x7dcc[16]](__dirname,_0x7dcc[32]))[_0x7dcc[26]](function(_0x52abx8){return (fs[_0x7dcc[21]](path[_0x7dcc[16]](__dirname,_0x7dcc[32],_0x52abx8))[_0x7dcc[20]]())&&(_0x52abx8[_0x7dcc[23]](_0x7dcc[22])!==0)&&(_0x52abx8[_0x7dcc[23]](_0x7dcc[24])=== -1)&&(_0x52abx8!==_0x7dcc[25])})[_0x7dcc[19]](function(_0x52abx8){var _0x52abx9=sequelize_history[_0x7dcc[17]](path[_0x7dcc[16]](__dirname,_0x7dcc[32],_0x52abx8));db[_0x7dcc[32]][_0x52abx9[_0x7dcc[18]]]=_0x52abx9;});Object[_0x7dcc[31]](db[_0x7dcc[32]])[_0x7dcc[19]](function(_0x52abxa){if(db[_0x7dcc[32]][_0x52abxa][_0x7dcc[30]][_0x7dcc[29]](_0x7dcc[28])){db[_0x7dcc[32]][_0x52abxa][_0x7dcc[30]][_0x7dcc[28]](db[_0x7dcc[32]])}});db[_0x7dcc[37]][_0x7dcc[36]](db[_0x7dcc[32]].ReportCallHistory,{as:_0x7dcc[34],foreignKey:_0x7dcc[35],constraints:false});db[_0x7dcc[37]][_0x7dcc[36]](db[_0x7dcc[32]].ReportCallHistory,{as:_0x7dcc[38],foreignKey:_0x7dcc[39],constraints:false});db[_0x7dcc[42]][_0x7dcc[36]](db[_0x7dcc[32]].ReportMailSessionHistory,{as:_0x7dcc[40],foreignKey:_0x7dcc[41],constraints:false});db[_0x7dcc[42]][_0x7dcc[36]](db[_0x7dcc[32]].ReportMailSessionHistory,{as:_0x7dcc[43],foreignKey:_0x7dcc[44],constraints:false});db[_0x7dcc[4]]=sequelize;db[_0x7dcc[45]]=sequelize_history;db[_0x7dcc[46]]=Sequelize;module[_0x7dcc[47]]=db;
\ No newline at end of file
index 6e19241..cf13caf 100644 (file)
@@ -1 +1 @@
-var _0x832b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x5F\x6E\x61\x6D\x65\x5F\x61\x6E\x64\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x70\x70\x2E\x6A\x73","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x832b[0];module[_0x832b[1]]=function(_0x9cbdx1,_0x9cbdx2){var _0x9cbdx3=_0x9cbdx1[_0x832b[9]](_0x832b[2],{name:{type:_0x9cbdx2[_0x832b[3]],allowNull:false,unique:_0x832b[4],validate:{notEmpty:true}},version:{type:_0x9cbdx2[_0x832b[3]],allowNull:false,unique:_0x832b[4],validate:{notEmpty:true}},main:{type:_0x9cbdx2[_0x832b[3]],defaultValue:_0x832b[5]},filename:{type:_0x9cbdx2[_0x832b[3]]},path:{type:_0x9cbdx2[_0x832b[3]]},type:{type:_0x9cbdx2[_0x832b[3]]},size:{type:_0x9cbdx2[_0x832b[6]]},active:{type:_0x9cbdx2[_0x832b[7]],defaultValue:false},author:_0x9cbdx2[_0x832b[3]],logo:_0x9cbdx2[_0x832b[3]],state:{type:_0x9cbdx2[_0x832b[3]],unique:true},description:_0x9cbdx2[_0x832b[3]]},{tableName:_0x832b[8]});return _0x9cbdx3;};
\ No newline at end of file
+var _0x6028=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x5F\x6E\x61\x6D\x65\x5F\x61\x6E\x64\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x70\x70\x2E\x6A\x73","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x6028[0];module[_0x6028[1]]=function(_0x1cffx1,_0x1cffx2){var _0x1cffx3=_0x1cffx1[_0x6028[9]](_0x6028[2],{name:{type:_0x1cffx2[_0x6028[3]],allowNull:false,unique:_0x6028[4],validate:{notEmpty:true}},version:{type:_0x1cffx2[_0x6028[3]],allowNull:false,unique:_0x6028[4],validate:{notEmpty:true}},main:{type:_0x1cffx2[_0x6028[3]],defaultValue:_0x6028[5]},filename:{type:_0x1cffx2[_0x6028[3]]},path:{type:_0x1cffx2[_0x6028[3]]},type:{type:_0x1cffx2[_0x6028[3]]},size:{type:_0x1cffx2[_0x6028[6]]},active:{type:_0x1cffx2[_0x6028[7]],defaultValue:false},author:_0x1cffx2[_0x6028[3]],logo:_0x1cffx2[_0x6028[3]],state:{type:_0x1cffx2[_0x6028[3]],unique:true},description:_0x1cffx2[_0x6028[3]]},{tableName:_0x6028[8]});return _0x1cffx3;};
\ No newline at end of file
index 1d38733..7e74cd0 100644 (file)
@@ -1 +1 @@
-var _0x1c21=["\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65","\x25\x73\x3F\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73\x3A\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73","\x53\x65\x74","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D\x25\x73","\x44\x69\x61\x6C","\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73","\x4E\x6F\x4F\x70","\x44\x69\x61\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x41\x6E\x73\x77\x65\x72","","\x51\x75\x65\x75\x65","\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73","\x51\x75\x65\x75\x65\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x50\x6C\x61\x79\x62\x61\x63\x6B","\x25\x73\x2C\x25\x73","\x50\x6C\x61\x79\x62\x61\x63\x6B\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x41\x47\x49","\x61\x67\x69\x3A\x2F\x2F\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73","\x41\x47\x49\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x47\x6F\x74\x6F","\x25\x73\x2C\x25\x73\x2C\x25\x64","\x47\x6F\x74\x6F\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x48\x61\x6E\x67\x75\x70","\x25\x73","\x48\x61\x6E\x67\x75\x70\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x25\x73\x3D\x25\x73","\x53\x65\x74\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x63\x75\x73\x74\x6F\x6D","\x43\x75\x73\x74\x6F\x6D\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x69\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x3F","\x73\x70\x6C\x69\x74","\x61\x70\x70\x64\x61\x74\x61","\x25\x73\x3F\x25\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x66\x6F\x72\x6D\x61\x74","\x73\x61\x76\x65","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x6E\x6F\x74\x20\x79\x65\x74\x20\x64\x65\x6C\x65\x74\x65\x64","\x62\x65\x66\x6F\x72\x65\x44\x65\x73\x74\x72\x6F\x79","\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x63\x72\x65\x61\x74\x65\x64","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x64\x65\x66\x69\x6E\x65","\x46\x69\x6E\x64\x69\x6E\x67\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x61\x70\x70\x73\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x66\x6F\x75\x6E\x64","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x6C\x75\x63\x6B","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x75\x6E\x69\x71","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x20\x62\x65\x66\x6F\x72\x65\x20\x64\x65\x73\x74\x72\x6F\x79\x2E\x2E","\x44\x65\x73\x74\x72\x6F\x79\x69\x6E\x67\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x72\x6F\x77\x73\x2E\x2E\x2E","\x44\x65\x73\x74\x72\x6F\x79\x65\x64\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x66\x69\x6C\x74\x65\x72","\x46\x69\x6E\x64\x69\x6E\x67\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x46\x6F\x75\x6E\x64\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2C\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x72\x6F\x77\x73\x2E\x2E\x2E","\x43\x72\x65\x61\x74\x69\x6E\x67\x20\x61\x70\x70\x2E\x2E","\x61\x70\x70","\x63\x6C\x6F\x6E\x65\x44\x65\x65\x70","\x63\x75\x73\x74\x6F\x6D\x41\x70\x70","\x50\x52\x49\x4F\x52\x49\x54\x59","\x25\x73\x25\x73\x25\x73","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x73\x70\x6C\x69\x63\x65","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65\x46\x72\x6F\x6D\x41\x72\x72\x61\x79","\x3F\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73\x3A\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73","\x69\x64","\x75\x6E\x73\x68\x69\x66\x74","\x72\x65\x74\x75\x72\x6E\x65\x64\x20\x70\x72\x69\x6F\x72\x69\x74\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x54\x48\x45\x20\x45\x4E\x44","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x49\x44","\x72\x65\x6D\x6F\x76\x65","\x74\x79\x70\x65","\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x70\x70\x47\x72\x6F\x75\x70","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x74\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x49\x64","\x63\x75\x74\x64\x69\x67\x69\x74\x73","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x70\x70\x5F\x6F\x70\x74\x69\x6F\x6E\x73","\x74\x69\x6D\x65\x6F\x75\x74","\x75\x72\x6C","\x2C","\x72\x65\x70\x6C\x61\x63\x65","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x44\x69\x61\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x61\x75\x64\x69\x6F\x66\x69\x6C\x65","\x71\x75\x65\x75\x65","\x70\x72\x6F\x6A\x65\x63\x74","\x61\x6C\x74\x5F\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x6C\x74\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x61\x6C\x74\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x63\x61\x75\x73\x65\x63\x6F\x64\x65","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x6D\x61\x69\x6C\x62\x6F\x78"];var util=require(_0x1c21[0]);var _=require(_0x1c21[1]);var Applications={Dial:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[4],appdata:_0x1c21[5]},{app:_0x1c21[6],appdata:_0x1c21[7],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[9]}],Queue:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[10],appdata:_0x1c21[11]},{app:_0x1c21[12],appdata:_0x1c21[13],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[14]}],Playback:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[15],appdata:_0x1c21[16],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[17]}],AGI:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[18],appdata:_0x1c21[19],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[20]}],Goto:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[21],appdata:_0x1c21[22],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[23]}],Hangup:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[24],appdata:_0x1c21[25],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[26]}],Set:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[4],appdata:_0x1c21[27],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[28]}],custom:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[29],appdata:_0x1c21[25],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[30]}],Voicemail:[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[31],appdata:_0x1c21[25],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[32]}]};module[_0x1c21[33]]=function(_0xe68dx4,_0xe68dx5){var _0xe68dx6=_0xe68dx4[_0x1c21[62]](_0x1c21[34],{name:{type:_0xe68dx5[_0x1c21[35]],unique:_0x1c21[36]},interval:{type:_0xe68dx5[_0x1c21[35]],allowNull:true},IntervalId:{type:_0xe68dx5.INTEGER(11),unique:_0x1c21[36]}},{tableName:_0x1c21[37],associate:function(_0xe68dx7){_0xe68dx6[_0x1c21[40]](_0xe68dx7.Interval,{as:_0x1c21[38],onDelete:_0x1c21[39]});_0xe68dx6[_0x1c21[40]](_0xe68dx7.VoiceExtension,{as:_0x1c21[41]});_0xe68dx6[_0x1c21[40]](_0xe68dx7.MailApplication,{as:_0x1c21[42]});_0xe68dx6[_0x1c21[40]](_0xe68dx7.MailApplication,{as:_0x1c21[43]});_0xe68dx6[_0x1c21[57]](function(_0xe68dx8){if(_0xe68dx8[_0x1c21[44]]!==null){_0xe68dx8[_0x1c21[56]]()[_0x1c21[55]](function(_0xe68dxa){var _0xe68dxb;var _0xe68dxc;_0xe68dxa[_0x1c21[54]](function(_0xe68dxd){_0xe68dxc=_0xe68dxd[_0x1c21[49]][_0x1c21[48]](_0x1c21[47]);_0xe68dxd[_0x1c21[49]]=util[_0x1c21[52]](_0x1c21[50],_0xe68dx8[_0x1c21[51]],_0xe68dxc[1]);_0xe68dxd[_0x1c21[51]]=_0xe68dx8[_0x1c21[51]];_0xe68dxd[_0x1c21[53]]()[_0x1c21[46]](function(_0xe68dx9){console[_0x1c21[45]](_0xe68dx9)});});})[_0x1c21[46]](function(_0xe68dx9){console[_0x1c21[45]](_0xe68dx9)})}});_0xe68dx6[_0x1c21[59]](function(_0xe68dx8){console[_0x1c21[45]](_0x1c21[58]);if(_0xe68dx8[_0x1c21[44]]!==null){_0xe68dxe(_0xe68dx8,_0xe68dx7)};});_0xe68dx6[_0x1c21[61]](function(_0xe68dx8){console[_0x1c21[45]](_0x1c21[60]);if(_0xe68dx8[_0x1c21[44]]!==null){_0xe68dxe(_0xe68dx8,_0xe68dx7,true)};});}});function _0xe68dxe(_0xe68dxf,_0xe68dx7,_0xe68dx10){console[_0x1c21[45]](_0x1c21[63]);_0xe68dx7[_0x1c21[92]][_0x1c21[94]]({where:{IntervalId:_0xe68dxf[_0x1c21[44]]}})[_0x1c21[55]](function(_0xe68dx11){if(_0xe68dx11&&_0xe68dx11[_0x1c21[64]]>0){console[_0x1c21[45]](_0x1c21[65]);var _0xe68dx12=_[_0x1c21[69]](_[_0x1c21[67]](_[_0x1c21[67]](_0xe68dx11,_0x1c21[66]),_0x1c21[68]),true);_0xe68dx7[_0x1c21[92]][_0x1c21[94]]({where:{VoiceExtensionId:_0xe68dx12,isApp:true}})[_0x1c21[55]](function(_0xe68dxa){console[_0x1c21[45]](_0x1c21[70]);return _0xe68dx4[_0x1c21[96]](function(_0xe68dx13){console[_0x1c21[45]](_0x1c21[71]);return _0xe68dx7[_0x1c21[92]][_0x1c21[95]]({where:{VoiceExtensionId:_0xe68dx12}},{transaction:_0xe68dx13})[_0x1c21[55]](function(){console[_0x1c21[45]](_0x1c21[72]);_0xe68dxa=_[_0x1c21[67]](_0xe68dxa,_0x1c21[66]);var _0xe68dx14=_[_0x1c21[73]](_[_0x1c21[67]](_0xe68dxa,_0x1c21[44]),function(_0xe68dx15){return _0xe68dx15!==null});console[_0x1c21[45]](_0x1c21[74]);_0xe68dx6[_0x1c21[94]]({where:{IntervalId:_0xe68dx14,id:{$ne:_0xe68dx10?null:_0xe68dxf[_0x1c21[88]]}}})[_0x1c21[55]](function(_0xe68dx16){console[_0x1c21[45]](_0x1c21[75]);var _0xe68dx17;_0xe68dx12[_0x1c21[54]](function(_0xe68dx18){_0xe68dx17=_[_0x1c21[73]](_0xe68dxa,function(_0xe68dx15){return _0xe68dx15[_0x1c21[68]]==_0xe68dx18});var _0xe68dx19=2;var _0xe68dx8;_0xe68dx17[_0x1c21[54]](function(_0xe68dx1a){console[_0x1c21[45]](_0x1c21[76]);var _0xe68dx1b=_[_0x1c21[78]](Applications[_0xe68dx1a[_0x1c21[77]]]);if(!_0xe68dx1b||_0xe68dx1a[_0x1c21[79]]){_0xe68dx1b=[{app:_0x1c21[2],appdata:_0x1c21[3]},{app:_0x1c21[29],appdata:_0x1c21[25],isApp:true},{app:_0x1c21[8],appdata:_0x1c21[30]}]};console[_0x1c21[45]](_0x1c21[80]);console[_0x1c21[45]](_0xe68dx19);var _0xe68dx1c=util[_0x1c21[52]](_0x1c21[81],_0xe68dx1a[_0x1c21[82]],_0xe68dx1a[_0x1c21[83]],_0xe68dx19);_0xe68dx1a[_0x1c21[51]]=_0xe68dx1a[_0x1c21[51]]||_0x1c21[84];var _0xe68dx1d=_[_0x1c21[73]](_0xe68dx16,function(_0xe68dx15){return (_0xe68dx15[_0x1c21[44]]==_0xe68dx1a[_0x1c21[44]])});if(_0xe68dx1d&&_0xe68dx1d[_0x1c21[64]]>0){_0xe68dx1b[_0x1c21[85]](0,1);_0xe68dx1d[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx1b[_0x1c21[89]]({app:_0x1c21[86],appdata:_0xe68dx15[_0x1c21[51]]+_0x1c21[87],IntervalId:_0xe68dx15[_0x1c21[88]],isInterval:true,interval:_0xe68dx15[_0x1c21[51]]})});};_0xe68dx19=appCreate(_0xe68dx1b,_0xe68dx1a,_0xe68dx1c,_0xe68dx1d||[],_0xe68dx19);console[_0x1c21[45]](_0x1c21[90]);console[_0x1c21[45]](_0xe68dx19);_0xe68dx7[_0x1c21[92]][_0x1c21[91]](_0xe68dx1b);});});console[_0x1c21[45]](_0x1c21[93]);});});})[_0x1c21[46]](function(_0xe68dx9){console[_0x1c21[45]](_0xe68dx9)});})[_0x1c21[46]](function(_0xe68dx9){console[_0x1c21[45]](_0xe68dx9)});}})[_0x1c21[46]](function(_0xe68dx9){console[_0x1c21[45]](_0xe68dx9)});}return _0xe68dx6;};function appCreate(_0xe68dx1b,_0xe68dxd,_0xe68dx1c,_0xe68dx16,_0xe68dx19){var _0xe68dx20=_0xe68dx16[_0x1c21[64]];if(_0xe68dxd[_0x1c21[79]]){_0xe68dxd[_0x1c21[77]]=_0x1c21[29]};switch(_0xe68dxd[_0x1c21[77]]){case _0x1c21[6]:if(!_0xe68dxd[_0x1c21[97]]){_[_0x1c21[98]](_0xe68dx1b,{app:_0x1c21[4]})};_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[6]:if(_0xe68dxd[_0x1c21[99]]===_0x1c21[102]){_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[103]]=_0xe68dxd[_0x1c21[103]];_0xe68dx15[_0x1c21[104]]=_0xe68dxd[_0x1c21[104]];_0xe68dx15[_0x1c21[105]]=_0xe68dxd[_0x1c21[105]]||0;_0xe68dx15[_0x1c21[97]]=_0xe68dxd[_0x1c21[97]]||null;}else {_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[106]]=_0xe68dxd[_0x1c21[106]];_0xe68dx15[_0x1c21[107]]=_0xe68dxd[_0x1c21[107]]||_0x1c21[11];_0xe68dx15[_0x1c21[108]]=_0xe68dxd[_0x1c21[108]]||_0x1c21[11];_0xe68dx15[_0x1c21[109]]=_0xe68dxd[_0x1c21[109]]||_0x1c21[11];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[106]],_0xe68dx15[_0x1c21[108]],_0xe68dx15[_0x1c21[107]]?_0xe68dx15[_0x1c21[107]][_0x1c21[111]](_0x1c21[110],_0x1c21[11]):_0x1c21[11],_0xe68dx15[_0x1c21[109]]);};break ;;case _0x1c21[4]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[97]]);break ;;case _0x1c21[8]:if(_0xe68dxd[_0x1c21[99]]===_0x1c21[102]){_0xe68dx15[_0x1c21[49]]=_0x1c21[112]};break ;;default:;};});break ;;case _0x1c21[12]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[12]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[107]]=_0xe68dxd[_0x1c21[107]]||_0x1c21[11];_0xe68dx15[_0x1c21[113]]=_0xe68dxd[_0x1c21[113]]||_0x1c21[11];_0xe68dx15[_0x1c21[114]]=_0xe68dxd[_0x1c21[114]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[106]]=_0xe68dxd[_0x1c21[106]];_0xe68dx15[_0x1c21[107]]=_0xe68dxd[_0x1c21[107]];_0xe68dx15[_0x1c21[108]]=_0xe68dxd[_0x1c21[108]]||_0x1c21[11];_0xe68dx15[_0x1c21[109]]=_0xe68dxd[_0x1c21[109]]||_0x1c21[11];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[114]],_0xe68dx15[_0x1c21[107]]?_0xe68dx15[_0x1c21[107]][_0x1c21[111]](_0x1c21[110],_0x1c21[11]):_0x1c21[11],_0xe68dx15[_0x1c21[109]],_0xe68dx15[_0x1c21[113]],_0xe68dx15[_0x1c21[108]]);break ;;default:;};});break ;;case _0x1c21[15]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[15]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[113]]=_0xe68dxd[_0x1c21[113]]||_0x1c21[11];_0xe68dx15[_0x1c21[107]]=_0xe68dxd[_0x1c21[107]]||_0x1c21[11];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[113]],_0xe68dx15[_0x1c21[107]]?_0xe68dx15[_0x1c21[107]][_0x1c21[111]](_0x1c21[110],_0x1c21[11]):_0x1c21[11]);break ;;default:;};});break ;;case _0x1c21[18]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[18]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[115]]=_0xe68dxd[_0x1c21[115]];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[115]]);break ;;default:;};});break ;;case _0x1c21[21]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[21]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[116]]=_0xe68dxd[_0x1c21[116]];_0xe68dx15[_0x1c21[117]]=_0xe68dxd[_0x1c21[117]];_0xe68dx15[_0x1c21[118]]=_0xe68dxd[_0x1c21[118]];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[118]],_0xe68dx15[_0x1c21[117]],_0xe68dx15[_0x1c21[116]]);break ;;default:;};});break ;;case _0x1c21[24]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[24]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[119]]=_0xe68dxd[_0x1c21[119]];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[119]]);break ;;default:;};});break ;;case _0x1c21[4]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[4]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[120]]=_0xe68dxd[_0x1c21[120]];_0xe68dx15[_0x1c21[121]]=_0xe68dxd[_0x1c21[121]];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[120]],_0xe68dx15[_0x1c21[121]]);break ;;default:;};});break ;;case _0x1c21[29]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[29]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[77]]=_0xe68dx15[_0x1c21[79]]=_0xe68dxd[_0x1c21[79]];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[49]]);break ;;default:;};});break ;;case _0x1c21[31]:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[31]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[122]]=_0xe68dxd[_0x1c21[122]];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[122]]);break ;;default:;};});break ;;default:_0xe68dx1b[_0x1c21[54]](function(_0xe68dx15,_0xe68dx1e){_0xe68dx15[_0x1c21[83]]=_0xe68dxd[_0x1c21[83]];_0xe68dx15[_0x1c21[99]]=_0xe68dxd[_0x1c21[99]];_0xe68dx15[_0x1c21[82]]=_0xe68dxd[_0x1c21[82]];_0xe68dx15[_0x1c21[68]]=_0xe68dxd[_0x1c21[68]];_0xe68dx15[_0x1c21[100]]=_0xe68dx19?_0xe68dx19++:_0xe68dxd[_0x1c21[100]]++;_0xe68dx15[_0x1c21[101]]=_0xe68dx1c;switch(_0xe68dx15[_0x1c21[77]]){case _0x1c21[2]:_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[44]]?_0x1c21[84]:_0xe68dxd[_0x1c21[51]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+1,_0xe68dx15[_0x1c21[82]],(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[86]:_0xe68dx15[_0x1c21[77]]=_0x1c21[2];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dx15[_0x1c21[82]],_0xe68dx15[_0x1c21[100]]+_0xe68dx20-_0xe68dx1e,_0xe68dx15[_0x1c21[82]],(_0xe68dx1e+1)<_0xe68dx20?(_0xe68dx15[_0x1c21[100]]+1):(_0xe68dx15[_0x1c21[100]]+2));break ;;case _0x1c21[29]:_0xe68dx15[_0x1c21[44]]=_0xe68dxd[_0x1c21[44]];_0xe68dx15[_0x1c21[51]]=_0xe68dxd[_0x1c21[51]];_0xe68dx15[_0x1c21[77]]=_0xe68dx15[_0x1c21[79]]=_0xe68dxd[_0x1c21[79]];_0xe68dx15[_0x1c21[49]]=util[_0x1c21[52]](_0xe68dx15[_0x1c21[49]],_0xe68dxd[_0x1c21[49]]);break ;;default:;};});;};if(_0xe68dx19){return _0xe68dx19};}
\ No newline at end of file
+var _0xe5ff=["\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65","\x25\x73\x3F\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73\x3A\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73","\x53\x65\x74","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D\x25\x73","\x44\x69\x61\x6C","\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73","\x4E\x6F\x4F\x70","\x44\x69\x61\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x41\x6E\x73\x77\x65\x72","","\x51\x75\x65\x75\x65","\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73\x2C\x25\x73","\x51\x75\x65\x75\x65\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x50\x6C\x61\x79\x62\x61\x63\x6B","\x25\x73\x2C\x25\x73","\x50\x6C\x61\x79\x62\x61\x63\x6B\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x41\x47\x49","\x61\x67\x69\x3A\x2F\x2F\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73","\x41\x47\x49\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x47\x6F\x74\x6F","\x25\x73\x2C\x25\x73\x2C\x25\x64","\x47\x6F\x74\x6F\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x48\x61\x6E\x67\x75\x70","\x25\x73","\x48\x61\x6E\x67\x75\x70\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x25\x73\x3D\x25\x73","\x53\x65\x74\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x63\x75\x73\x74\x6F\x6D","\x43\x75\x73\x74\x6F\x6D\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x69\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x3F","\x73\x70\x6C\x69\x74","\x61\x70\x70\x64\x61\x74\x61","\x25\x73\x3F\x25\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x66\x6F\x72\x6D\x61\x74","\x73\x61\x76\x65","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x6E\x6F\x74\x20\x79\x65\x74\x20\x64\x65\x6C\x65\x74\x65\x64","\x62\x65\x66\x6F\x72\x65\x44\x65\x73\x74\x72\x6F\x79","\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x63\x72\x65\x61\x74\x65\x64","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x64\x65\x66\x69\x6E\x65","\x46\x69\x6E\x64\x69\x6E\x67\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x61\x70\x70\x73\x2E\x2E","\x6C\x65\x6E\x67\x74\x68","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x66\x6F\x75\x6E\x64","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x6C\x75\x63\x6B","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x75\x6E\x69\x71","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x20\x62\x65\x66\x6F\x72\x65\x20\x64\x65\x73\x74\x72\x6F\x79\x2E\x2E","\x44\x65\x73\x74\x72\x6F\x79\x69\x6E\x67\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x72\x6F\x77\x73\x2E\x2E\x2E","\x44\x65\x73\x74\x72\x6F\x79\x65\x64\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x66\x69\x6C\x74\x65\x72","\x46\x69\x6E\x64\x69\x6E\x67\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x46\x6F\x75\x6E\x64\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2C\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x72\x6F\x77\x73\x2E\x2E\x2E","\x43\x72\x65\x61\x74\x69\x6E\x67\x20\x61\x70\x70\x2E\x2E","\x61\x70\x70","\x63\x6C\x6F\x6E\x65\x44\x65\x65\x70","\x63\x75\x73\x74\x6F\x6D\x41\x70\x70","\x50\x52\x49\x4F\x52\x49\x54\x59","\x25\x73\x25\x73\x25\x73","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x73\x70\x6C\x69\x63\x65","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65\x46\x72\x6F\x6D\x41\x72\x72\x61\x79","\x3F\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73\x3A\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73","\x69\x64","\x75\x6E\x73\x68\x69\x66\x74","\x72\x65\x74\x75\x72\x6E\x65\x64\x20\x70\x72\x69\x6F\x72\x69\x74\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x54\x48\x45\x20\x45\x4E\x44","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x49\x44","\x72\x65\x6D\x6F\x76\x65","\x74\x79\x70\x65","\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x70\x70\x47\x72\x6F\x75\x70","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x74\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x49\x64","\x63\x75\x74\x64\x69\x67\x69\x74\x73","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x70\x70\x5F\x6F\x70\x74\x69\x6F\x6E\x73","\x74\x69\x6D\x65\x6F\x75\x74","\x75\x72\x6C","\x2C","\x72\x65\x70\x6C\x61\x63\x65","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x44\x69\x61\x6C\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x61\x75\x64\x69\x6F\x66\x69\x6C\x65","\x71\x75\x65\x75\x65","\x70\x72\x6F\x6A\x65\x63\x74","\x61\x6C\x74\x5F\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x6C\x74\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x61\x6C\x74\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x63\x61\x75\x73\x65\x63\x6F\x64\x65","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x6D\x61\x69\x6C\x62\x6F\x78"];var util=require(_0xe5ff[0]);var _=require(_0xe5ff[1]);var Applications={Dial:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[4],appdata:_0xe5ff[5]},{app:_0xe5ff[6],appdata:_0xe5ff[7],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[9]}],Queue:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[10],appdata:_0xe5ff[11]},{app:_0xe5ff[12],appdata:_0xe5ff[13],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[14]}],Playback:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[15],appdata:_0xe5ff[16],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[17]}],AGI:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[18],appdata:_0xe5ff[19],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[20]}],Goto:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[21],appdata:_0xe5ff[22],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[23]}],Hangup:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[24],appdata:_0xe5ff[25],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[26]}],Set:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[4],appdata:_0xe5ff[27],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[28]}],custom:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[29],appdata:_0xe5ff[25],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[30]}],Voicemail:[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[31],appdata:_0xe5ff[25],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[32]}]};module[_0xe5ff[33]]=function(_0x1b65x4,_0x1b65x5){var _0x1b65x6=_0x1b65x4[_0xe5ff[62]](_0xe5ff[34],{name:{type:_0x1b65x5[_0xe5ff[35]],unique:_0xe5ff[36]},interval:{type:_0x1b65x5[_0xe5ff[35]],allowNull:true},IntervalId:{type:_0x1b65x5.INTEGER(11),unique:_0xe5ff[36]}},{tableName:_0xe5ff[37],associate:function(_0x1b65x7){_0x1b65x6[_0xe5ff[40]](_0x1b65x7.Interval,{as:_0xe5ff[38],onDelete:_0xe5ff[39]});_0x1b65x6[_0xe5ff[40]](_0x1b65x7.VoiceExtension,{as:_0xe5ff[41]});_0x1b65x6[_0xe5ff[40]](_0x1b65x7.MailApplication,{as:_0xe5ff[42]});_0x1b65x6[_0xe5ff[40]](_0x1b65x7.MailApplication,{as:_0xe5ff[43]});_0x1b65x6[_0xe5ff[57]](function(_0x1b65x8){if(_0x1b65x8[_0xe5ff[44]]!==null){_0x1b65x8[_0xe5ff[56]]()[_0xe5ff[55]](function(_0x1b65xa){var _0x1b65xb;var _0x1b65xc;_0x1b65xa[_0xe5ff[54]](function(_0x1b65xd){_0x1b65xc=_0x1b65xd[_0xe5ff[49]][_0xe5ff[48]](_0xe5ff[47]);_0x1b65xd[_0xe5ff[49]]=util[_0xe5ff[52]](_0xe5ff[50],_0x1b65x8[_0xe5ff[51]],_0x1b65xc[1]);_0x1b65xd[_0xe5ff[51]]=_0x1b65x8[_0xe5ff[51]];_0x1b65xd[_0xe5ff[53]]()[_0xe5ff[46]](function(_0x1b65x9){console[_0xe5ff[45]](_0x1b65x9)});});})[_0xe5ff[46]](function(_0x1b65x9){console[_0xe5ff[45]](_0x1b65x9)})}});_0x1b65x6[_0xe5ff[59]](function(_0x1b65x8){console[_0xe5ff[45]](_0xe5ff[58]);if(_0x1b65x8[_0xe5ff[44]]!==null){_0x1b65xe(_0x1b65x8,_0x1b65x7)};});_0x1b65x6[_0xe5ff[61]](function(_0x1b65x8){console[_0xe5ff[45]](_0xe5ff[60]);if(_0x1b65x8[_0xe5ff[44]]!==null){_0x1b65xe(_0x1b65x8,_0x1b65x7,true)};});}});function _0x1b65xe(_0x1b65xf,_0x1b65x7,_0x1b65x10){console[_0xe5ff[45]](_0xe5ff[63]);_0x1b65x7[_0xe5ff[92]][_0xe5ff[94]]({where:{IntervalId:_0x1b65xf[_0xe5ff[44]]}})[_0xe5ff[55]](function(_0x1b65x11){if(_0x1b65x11&&_0x1b65x11[_0xe5ff[64]]>0){console[_0xe5ff[45]](_0xe5ff[65]);var _0x1b65x12=_[_0xe5ff[69]](_[_0xe5ff[67]](_[_0xe5ff[67]](_0x1b65x11,_0xe5ff[66]),_0xe5ff[68]),true);_0x1b65x7[_0xe5ff[92]][_0xe5ff[94]]({where:{VoiceExtensionId:_0x1b65x12,isApp:true}})[_0xe5ff[55]](function(_0x1b65xa){console[_0xe5ff[45]](_0xe5ff[70]);return _0x1b65x4[_0xe5ff[96]](function(_0x1b65x13){console[_0xe5ff[45]](_0xe5ff[71]);return _0x1b65x7[_0xe5ff[92]][_0xe5ff[95]]({where:{VoiceExtensionId:_0x1b65x12}},{transaction:_0x1b65x13})[_0xe5ff[55]](function(){console[_0xe5ff[45]](_0xe5ff[72]);_0x1b65xa=_[_0xe5ff[67]](_0x1b65xa,_0xe5ff[66]);var _0x1b65x14=_[_0xe5ff[73]](_[_0xe5ff[67]](_0x1b65xa,_0xe5ff[44]),function(_0x1b65x15){return _0x1b65x15!==null});console[_0xe5ff[45]](_0xe5ff[74]);_0x1b65x6[_0xe5ff[94]]({where:{IntervalId:_0x1b65x14,id:{$ne:_0x1b65x10?null:_0x1b65xf[_0xe5ff[88]]}}})[_0xe5ff[55]](function(_0x1b65x16){console[_0xe5ff[45]](_0xe5ff[75]);var _0x1b65x17;_0x1b65x12[_0xe5ff[54]](function(_0x1b65x18){_0x1b65x17=_[_0xe5ff[73]](_0x1b65xa,function(_0x1b65x15){return _0x1b65x15[_0xe5ff[68]]==_0x1b65x18});var _0x1b65x19=2;var _0x1b65x8;_0x1b65x17[_0xe5ff[54]](function(_0x1b65x1a){console[_0xe5ff[45]](_0xe5ff[76]);var _0x1b65x1b=_[_0xe5ff[78]](Applications[_0x1b65x1a[_0xe5ff[77]]]);if(!_0x1b65x1b||_0x1b65x1a[_0xe5ff[79]]){_0x1b65x1b=[{app:_0xe5ff[2],appdata:_0xe5ff[3]},{app:_0xe5ff[29],appdata:_0xe5ff[25],isApp:true},{app:_0xe5ff[8],appdata:_0xe5ff[30]}]};console[_0xe5ff[45]](_0xe5ff[80]);console[_0xe5ff[45]](_0x1b65x19);var _0x1b65x1c=util[_0xe5ff[52]](_0xe5ff[81],_0x1b65x1a[_0xe5ff[82]],_0x1b65x1a[_0xe5ff[83]],_0x1b65x19);_0x1b65x1a[_0xe5ff[51]]=_0x1b65x1a[_0xe5ff[51]]||_0xe5ff[84];var _0x1b65x1d=_[_0xe5ff[73]](_0x1b65x16,function(_0x1b65x15){return (_0x1b65x15[_0xe5ff[44]]==_0x1b65x1a[_0xe5ff[44]])});if(_0x1b65x1d&&_0x1b65x1d[_0xe5ff[64]]>0){_0x1b65x1b[_0xe5ff[85]](0,1);_0x1b65x1d[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x1b[_0xe5ff[89]]({app:_0xe5ff[86],appdata:_0x1b65x15[_0xe5ff[51]]+_0xe5ff[87],IntervalId:_0x1b65x15[_0xe5ff[88]],isInterval:true,interval:_0x1b65x15[_0xe5ff[51]]})});};_0x1b65x19=appCreate(_0x1b65x1b,_0x1b65x1a,_0x1b65x1c,_0x1b65x1d||[],_0x1b65x19);console[_0xe5ff[45]](_0xe5ff[90]);console[_0xe5ff[45]](_0x1b65x19);_0x1b65x7[_0xe5ff[92]][_0xe5ff[91]](_0x1b65x1b);});});console[_0xe5ff[45]](_0xe5ff[93]);});});})[_0xe5ff[46]](function(_0x1b65x9){console[_0xe5ff[45]](_0x1b65x9)});})[_0xe5ff[46]](function(_0x1b65x9){console[_0xe5ff[45]](_0x1b65x9)});}})[_0xe5ff[46]](function(_0x1b65x9){console[_0xe5ff[45]](_0x1b65x9)});}return _0x1b65x6;};function appCreate(_0x1b65x1b,_0x1b65xd,_0x1b65x1c,_0x1b65x16,_0x1b65x19){var _0x1b65x20=_0x1b65x16[_0xe5ff[64]];if(_0x1b65xd[_0xe5ff[79]]){_0x1b65xd[_0xe5ff[77]]=_0xe5ff[29]};switch(_0x1b65xd[_0xe5ff[77]]){case _0xe5ff[6]:if(!_0x1b65xd[_0xe5ff[97]]){_[_0xe5ff[98]](_0x1b65x1b,{app:_0xe5ff[4]})};_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[6]:if(_0x1b65xd[_0xe5ff[99]]===_0xe5ff[102]){_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[103]]=_0x1b65xd[_0xe5ff[103]];_0x1b65x15[_0xe5ff[104]]=_0x1b65xd[_0xe5ff[104]];_0x1b65x15[_0xe5ff[105]]=_0x1b65xd[_0xe5ff[105]]||0;_0x1b65x15[_0xe5ff[97]]=_0x1b65xd[_0xe5ff[97]]||null;}else {_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[106]]=_0x1b65xd[_0xe5ff[106]];_0x1b65x15[_0xe5ff[107]]=_0x1b65xd[_0xe5ff[107]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[108]]=_0x1b65xd[_0xe5ff[108]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[109]]=_0x1b65xd[_0xe5ff[109]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[106]],_0x1b65x15[_0xe5ff[108]],_0x1b65x15[_0xe5ff[107]]?_0x1b65x15[_0xe5ff[107]][_0xe5ff[111]](_0xe5ff[110],_0xe5ff[11]):_0xe5ff[11],_0x1b65x15[_0xe5ff[109]]);};break ;;case _0xe5ff[4]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[97]]);break ;;case _0xe5ff[8]:if(_0x1b65xd[_0xe5ff[99]]===_0xe5ff[102]){_0x1b65x15[_0xe5ff[49]]=_0xe5ff[112]};break ;;default:;};});break ;;case _0xe5ff[12]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[12]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[107]]=_0x1b65xd[_0xe5ff[107]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[113]]=_0x1b65xd[_0xe5ff[113]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[114]]=_0x1b65xd[_0xe5ff[114]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[106]]=_0x1b65xd[_0xe5ff[106]];_0x1b65x15[_0xe5ff[107]]=_0x1b65xd[_0xe5ff[107]];_0x1b65x15[_0xe5ff[108]]=_0x1b65xd[_0xe5ff[108]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[109]]=_0x1b65xd[_0xe5ff[109]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[114]],_0x1b65x15[_0xe5ff[107]]?_0x1b65x15[_0xe5ff[107]][_0xe5ff[111]](_0xe5ff[110],_0xe5ff[11]):_0xe5ff[11],_0x1b65x15[_0xe5ff[109]],_0x1b65x15[_0xe5ff[113]],_0x1b65x15[_0xe5ff[108]]);break ;;default:;};});break ;;case _0xe5ff[15]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[15]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[113]]=_0x1b65xd[_0xe5ff[113]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[107]]=_0x1b65xd[_0xe5ff[107]]||_0xe5ff[11];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[113]],_0x1b65x15[_0xe5ff[107]]?_0x1b65x15[_0xe5ff[107]][_0xe5ff[111]](_0xe5ff[110],_0xe5ff[11]):_0xe5ff[11]);break ;;default:;};});break ;;case _0xe5ff[18]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[18]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[115]]=_0x1b65xd[_0xe5ff[115]];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[115]]);break ;;default:;};});break ;;case _0xe5ff[21]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[21]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[116]]=_0x1b65xd[_0xe5ff[116]];_0x1b65x15[_0xe5ff[117]]=_0x1b65xd[_0xe5ff[117]];_0x1b65x15[_0xe5ff[118]]=_0x1b65xd[_0xe5ff[118]];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[118]],_0x1b65x15[_0xe5ff[117]],_0x1b65x15[_0xe5ff[116]]);break ;;default:;};});break ;;case _0xe5ff[24]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[24]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[119]]=_0x1b65xd[_0xe5ff[119]];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[119]]);break ;;default:;};});break ;;case _0xe5ff[4]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[4]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[120]]=_0x1b65xd[_0xe5ff[120]];_0x1b65x15[_0xe5ff[121]]=_0x1b65xd[_0xe5ff[121]];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[120]],_0x1b65x15[_0xe5ff[121]]);break ;;default:;};});break ;;case _0xe5ff[29]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[29]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[77]]=_0x1b65x15[_0xe5ff[79]]=_0x1b65xd[_0xe5ff[79]];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[49]]);break ;;default:;};});break ;;case _0xe5ff[31]:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[31]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[122]]=_0x1b65xd[_0xe5ff[122]];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[122]]);break ;;default:;};});break ;;default:_0x1b65x1b[_0xe5ff[54]](function(_0x1b65x15,_0x1b65x1e){_0x1b65x15[_0xe5ff[83]]=_0x1b65xd[_0xe5ff[83]];_0x1b65x15[_0xe5ff[99]]=_0x1b65xd[_0xe5ff[99]];_0x1b65x15[_0xe5ff[82]]=_0x1b65xd[_0xe5ff[82]];_0x1b65x15[_0xe5ff[68]]=_0x1b65xd[_0xe5ff[68]];_0x1b65x15[_0xe5ff[100]]=_0x1b65x19?_0x1b65x19++:_0x1b65xd[_0xe5ff[100]]++;_0x1b65x15[_0xe5ff[101]]=_0x1b65x1c;switch(_0x1b65x15[_0xe5ff[77]]){case _0xe5ff[2]:_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[44]]?_0xe5ff[84]:_0x1b65xd[_0xe5ff[51]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+1,_0x1b65x15[_0xe5ff[82]],(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[86]:_0x1b65x15[_0xe5ff[77]]=_0xe5ff[2];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65x15[_0xe5ff[82]],_0x1b65x15[_0xe5ff[100]]+_0x1b65x20-_0x1b65x1e,_0x1b65x15[_0xe5ff[82]],(_0x1b65x1e+1)<_0x1b65x20?(_0x1b65x15[_0xe5ff[100]]+1):(_0x1b65x15[_0xe5ff[100]]+2));break ;;case _0xe5ff[29]:_0x1b65x15[_0xe5ff[44]]=_0x1b65xd[_0xe5ff[44]];_0x1b65x15[_0xe5ff[51]]=_0x1b65xd[_0xe5ff[51]];_0x1b65x15[_0xe5ff[77]]=_0x1b65x15[_0xe5ff[79]]=_0x1b65xd[_0xe5ff[79]];_0x1b65x15[_0xe5ff[49]]=util[_0xe5ff[52]](_0x1b65x15[_0xe5ff[49]],_0x1b65xd[_0xe5ff[49]]);break ;;default:;};});;};if(_0x1b65x19){return _0x1b65x19};}
\ No newline at end of file
index 60c93e2..884c65e 100644 (file)
@@ -1 +1 @@
-var _0x3b16=["\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x4C\x6F\x67","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x6C\x6F\x67\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x3b16[0]]=function(_0xfc5bx1,_0xfc5bx2){var _0xfc5bx3=_0xfc5bx1[_0x3b16[5]](_0x3b16[1],{title:_0xfc5bx2[_0x3b16[2]],answer:_0xfc5bx2[_0x3b16[2]],note:_0xfc5bx2[_0x3b16[2]],date:_0xfc5bx2[_0x3b16[3]]},{tableName:_0x3b16[4],associate:function(_0xfc5bx4){}});return _0xfc5bx3;};
\ No newline at end of file
+var _0xe197=["\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x4C\x6F\x67","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x6C\x6F\x67\x73","\x64\x65\x66\x69\x6E\x65"];module[_0xe197[0]]=function(_0x6692x1,_0x6692x2){var _0x6692x3=_0x6692x1[_0xe197[5]](_0xe197[1],{title:_0x6692x2[_0xe197[2]],answer:_0x6692x2[_0xe197[2]],note:_0x6692x2[_0xe197[2]],date:_0x6692x2[_0xe197[3]]},{tableName:_0xe197[4],associate:function(_0x6692x4){}});return _0x6692x3;};
\ No newline at end of file
index 5393ef5..cb7dace 100644 (file)
@@ -1 +1 @@
-var _0x8db1=["\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x8db1[0]]=function(_0x5866x1,_0x5866x2){var _0x5866x3=_0x5866x1[_0x8db1[6]](_0x8db1[1],{name:_0x5866x2[_0x8db1[2]],description:_0x5866x2[_0x8db1[2]],draft:_0x5866x2[_0x8db1[3]],production:_0x5866x2[_0x8db1[3]]},{tableName:_0x8db1[4],associate:function(_0x5866x4){_0x5866x3[_0x8db1[5]](_0x5866x4.JscriptyReport);_0x5866x3[_0x8db1[5]](_0x5866x4.JscriptyLog);}});return _0x5866x3;};
\ No newline at end of file
+var _0xa20f=["\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xa20f[0]]=function(_0xf8a6x1,_0xf8a6x2){var _0xf8a6x3=_0xf8a6x1[_0xa20f[6]](_0xa20f[1],{name:_0xf8a6x2[_0xa20f[2]],description:_0xf8a6x2[_0xa20f[2]],draft:_0xf8a6x2[_0xa20f[3]],production:_0xf8a6x2[_0xa20f[3]]},{tableName:_0xa20f[4],associate:function(_0xf8a6x4){_0xf8a6x3[_0xa20f[5]](_0xf8a6x4.JscriptyReport);_0xf8a6x3[_0xa20f[5]](_0xf8a6x4.JscriptyLog);}});return _0xf8a6x3;};
\ No newline at end of file
index 3b13ecb..2fac58a 100644 (file)
@@ -1 +1 @@
-var _0x7a6f=["\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x7a6f[0]]=function(_0xe1b7x1,_0xe1b7x2){var _0xe1b7x3=_0xe1b7x1[_0x7a6f[5]](_0x7a6f[1],{title:_0xe1b7x2[_0x7a6f[2]],answer:_0xe1b7x2[_0x7a6f[2]],note:_0xe1b7x2[_0x7a6f[2]],date:_0xe1b7x2[_0x7a6f[3]]},{tableName:_0x7a6f[4],associate:function(_0xe1b7x4){}});return _0xe1b7x3;};
\ No newline at end of file
+var _0x3e5e=["\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x3e5e[0]]=function(_0xc69ex1,_0xc69ex2){var _0xc69ex3=_0xc69ex1[_0x3e5e[5]](_0x3e5e[1],{title:_0xc69ex2[_0x3e5e[2]],answer:_0xc69ex2[_0x3e5e[2]],note:_0xc69ex2[_0x3e5e[2]],date:_0xc69ex2[_0x3e5e[3]]},{tableName:_0x3e5e[4],associate:function(_0xc69ex4){}});return _0xc69ex3;};
\ No newline at end of file
index 3deb979..057be5b 100644 (file)
@@ -1 +1 @@
-var _0xb3fb=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4F\x6E\x65","\x64\x65\x66\x69\x6E\x65"];module[_0xb3fb[0]]=function(_0x7289x1,_0x7289x2){var _0x7289x3=_0x7289x1[_0xb3fb[7]](_0xb3fb[1],{description:_0x7289x2[_0xb3fb[2]],name:{type:_0x7289x2[_0xb3fb[2]],unique:true},address:_0x7289x2[_0xb3fb[2]]},{tableName:_0xb3fb[3],associate:function(_0x7289x4){_0x7289x3[_0xb3fb[4]](_0x7289x4.MailRoom);_0x7289x3[_0xb3fb[4]](_0x7289x4.MailTemplate);_0x7289x3[_0xb3fb[4]](_0x7289x4.MailApplication);_0x7289x3[_0xb3fb[6]](_0x7289x4.MailServerIn,{onDelete:_0xb3fb[5],hooks:true});_0x7289x3[_0xb3fb[6]](_0x7289x4.MailServerOut,{onDelete:_0xb3fb[5],hooks:true});}});return _0x7289x3;};
\ No newline at end of file
+var _0x913d=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4F\x6E\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x913d[0]]=function(_0x2fa5x1,_0x2fa5x2){var _0x2fa5x3=_0x2fa5x1[_0x913d[7]](_0x913d[1],{description:_0x2fa5x2[_0x913d[2]],name:{type:_0x2fa5x2[_0x913d[2]],unique:true},address:_0x2fa5x2[_0x913d[2]]},{tableName:_0x913d[3],associate:function(_0x2fa5x4){_0x2fa5x3[_0x913d[4]](_0x2fa5x4.MailRoom);_0x2fa5x3[_0x913d[4]](_0x2fa5x4.MailTemplate);_0x2fa5x3[_0x913d[4]](_0x2fa5x4.MailApplication);_0x2fa5x3[_0x913d[6]](_0x2fa5x4.MailServerIn,{onDelete:_0x913d[5],hooks:true});_0x2fa5x3[_0x913d[6]](_0x2fa5x4.MailServerOut,{onDelete:_0x913d[5],hooks:true});}});return _0x2fa5x3;};
\ No newline at end of file
index 0aa9715..ea95018 100644 (file)
@@ -1 +1 @@
-var _0xa3a3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xa3a3[0];module[_0xa3a3[1]]=function(_0x211cx1,_0x211cx2){var _0x211cx3=_0x211cx1[_0xa3a3[9]](_0xa3a3[2],{app:{type:_0x211cx2.ENUM(_0xa3a3[3],_0xa3a3[4])},priority:{type:_0x211cx2[_0xa3a3[5]]},timeout:{type:_0x211cx2[_0xa3a3[5]]},interval:{type:_0x211cx2[_0xa3a3[6]]}},{tableName:_0xa3a3[7],associate:function(_0x211cx4){_0x211cx3[_0xa3a3[8]](_0x211cx4.MailAccount);_0x211cx3[_0xa3a3[8]](_0x211cx4.Interval);_0x211cx3[_0xa3a3[8]](_0x211cx4.MailQueue);_0x211cx3[_0xa3a3[8]](_0x211cx4.User);}});return _0x211cx3;};
\ No newline at end of file
+var _0x2238=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x2238[0];module[_0x2238[1]]=function(_0xbb70x1,_0xbb70x2){var _0xbb70x3=_0xbb70x1[_0x2238[9]](_0x2238[2],{app:{type:_0xbb70x2.ENUM(_0x2238[3],_0x2238[4])},priority:{type:_0xbb70x2[_0x2238[5]]},timeout:{type:_0xbb70x2[_0x2238[5]]},interval:{type:_0xbb70x2[_0x2238[6]]}},{tableName:_0x2238[7],associate:function(_0xbb70x4){_0xbb70x3[_0x2238[8]](_0xbb70x4.MailAccount);_0xbb70x3[_0x2238[8]](_0xbb70x4.Interval);_0xbb70x3[_0x2238[8]](_0xbb70x4.MailQueue);_0xbb70x3[_0x2238[8]](_0xbb70x4.User);}});return _0xbb70x3;};
\ No newline at end of file
index 28e7759..f99d01b 100644 (file)
@@ -1 +1 @@
-var _0xc8dc=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xc8dc[0]);module[_0xc8dc[1]]=function(_0xc6c0x2,_0xc6c0x3){var _0xc6c0x4=_0xc6c0x2[_0xc8dc[6]](_0xc8dc[2],{domain:_0xc6c0x3[_0xc8dc[3]],size:_0xc6c0x3[_0xc8dc[4]],path:_0xc6c0x3[_0xc8dc[3]],name:_0xc6c0x3[_0xc8dc[3]],basename:_0xc6c0x3[_0xc8dc[3]],type:_0xc6c0x3[_0xc8dc[3]]},{tableName:_0xc8dc[5]});return _0xc6c0x4;};
\ No newline at end of file
+var _0xba15=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xba15[0]);module[_0xba15[1]]=function(_0x1db3x2,_0x1db3x3){var _0x1db3x4=_0x1db3x2[_0xba15[6]](_0xba15[2],{domain:_0x1db3x3[_0xba15[3]],size:_0x1db3x3[_0xba15[4]],path:_0x1db3x3[_0xba15[3]],name:_0x1db3x3[_0xba15[3]],basename:_0x1db3x3[_0xba15[3]],type:_0x1db3x3[_0xba15[3]]},{tableName:_0xba15[5]});return _0x1db3x4;};
\ No newline at end of file
index 8d23f64..f77af60 100644 (file)
@@ -1 +1 @@
-var _0x9308=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x6D\x61\x69\x6C\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x9308[0]);module[_0x9308[1]]=function(_0xcca9x2,_0xcca9x3){var _0xcca9x4=_0xcca9x2[_0x9308[7]](_0x9308[2],{name:_0xcca9x3[_0x9308[3]],description:_0xcca9x3[_0x9308[3]],conditions:_0xcca9x3[_0x9308[4]],actions:_0xcca9x3[_0x9308[4]],status:{type:_0xcca9x3[_0x9308[5]],defaultValue:false}},{tableName:_0x9308[6]});return _0xcca9x4;};
\ No newline at end of file
+var _0xf541=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x6D\x61\x69\x6C\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xf541[0]);module[_0xf541[1]]=function(_0xe030x2,_0xe030x3){var _0xe030x4=_0xe030x2[_0xf541[7]](_0xf541[2],{name:_0xe030x3[_0xf541[3]],description:_0xe030x3[_0xf541[3]],conditions:_0xe030x3[_0xf541[4]],actions:_0xe030x3[_0xf541[4]],status:{type:_0xe030x3[_0xf541[5]],defaultValue:false}},{tableName:_0xf541[6]});return _0xe030x4;};
\ No newline at end of file
index 5ecc7ab..8adb8d5 100644 (file)
@@ -1 +1 @@
-var _0xe4e6=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xe4e6[0]);module[_0xe4e6[1]]=function(_0x8aa9x2,_0x8aa9x3){var _0x8aa9x4=_0x8aa9x2[_0xe4e6[8]](_0xe4e6[2],{name:{type:_0x8aa9x3[_0xe4e6[3]]},description:{type:_0x8aa9x3[_0xe4e6[3]]},status:{type:_0x8aa9x3[_0xe4e6[4]],defaultValue:false},jobId:{type:_0x8aa9x3[_0xe4e6[5]]}},{tableName:_0xe4e6[6],associate:function(_0x8aa9x5){_0x8aa9x4[_0xe4e6[7]](_0x8aa9x5.BusinessAction);_0x8aa9x4[_0xe4e6[7]](_0x8aa9x5.BusinessCondition);}});return _0x8aa9x4;};
\ No newline at end of file
+var _0xa8b9=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x42\x75\x73\x69\x6E\x65\x73\x73\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xa8b9[0]);module[_0xa8b9[1]]=function(_0x12abx2,_0x12abx3){var _0x12abx4=_0x12abx2[_0xa8b9[8]](_0xa8b9[2],{name:{type:_0x12abx3[_0xa8b9[3]]},description:{type:_0x12abx3[_0xa8b9[3]]},status:{type:_0x12abx3[_0xa8b9[4]],defaultValue:false},jobId:{type:_0x12abx3[_0xa8b9[5]]}},{tableName:_0xa8b9[6],associate:function(_0x12abx5){_0x12abx4[_0xa8b9[7]](_0x12abx5.BusinessAction);_0x12abx4[_0xa8b9[7]](_0x12abx5.BusinessCondition);}});return _0x12abx4;};
\ No newline at end of file
index 7553966..0ed946e 100644 (file)
@@ -1 +1 @@
-var _0x9e03=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x46\x72\x6F\x6D","\x54\x6F","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x74\x6F","\x63\x61\x73\x63\x61\x64\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x43\x63","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x63\x63","\x42\x63\x63","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x62\x63\x63","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x9e03[0]);module[_0x9e03[1]]=function(_0x8aa0x2,_0x8aa0x3){var _0x8aa0x4=_0x8aa0x2[_0x9e03[21]](_0x9e03[2],{messageId:_0x8aa0x3[_0x9e03[3]],inReplyTo:_0x8aa0x3[_0x9e03[3]],subject:_0x8aa0x3[_0x9e03[3]],from:_0x8aa0x3[_0x9e03[3]],to:_0x8aa0x3[_0x9e03[3]],cc:_0x8aa0x3[_0x9e03[3]],bcc:_0x8aa0x3[_0x9e03[3]],attachment:_0x8aa0x3[_0x9e03[4]],html:_0x8aa0x3[_0x9e03[4]],text:_0x8aa0x3[_0x9e03[4]],reason:_0x8aa0x3[_0x9e03[4]],status:{type:_0x8aa0x3.ENUM(_0x9e03[5],_0x9e03[6],_0x9e03[7],_0x9e03[8])}},{tableName:_0x9e03[9],associate:function(_0x8aa0x5){_0x8aa0x4[_0x9e03[10]](_0x8aa0x5.MailRoom);_0x8aa0x4[_0x9e03[10]](_0x8aa0x5.ContactEmail,{as:_0x9e03[11]});_0x8aa0x4[_0x9e03[15]](_0x8aa0x5.ContactEmail,{as:_0x9e03[12],through:_0x9e03[13],onDelete:_0x9e03[14]});_0x8aa0x4[_0x9e03[15]](_0x8aa0x5.ContactEmail,{as:_0x9e03[16],through:_0x9e03[17],onDelete:_0x9e03[14]});_0x8aa0x4[_0x9e03[15]](_0x8aa0x5.ContactEmail,{as:_0x9e03[18],through:_0x9e03[19],onDelete:_0x9e03[14]});_0x8aa0x4[_0x9e03[20]](_0x8aa0x5.MailAttachment);}});return _0x8aa0x4;};
\ No newline at end of file
+var _0x67eb=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x46\x72\x6F\x6D","\x54\x6F","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x74\x6F","\x63\x61\x73\x63\x61\x64\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x43\x63","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x63\x63","\x42\x63\x63","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x62\x63\x63","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x67eb[0]);module[_0x67eb[1]]=function(_0x8e64x2,_0x8e64x3){var _0x8e64x4=_0x8e64x2[_0x67eb[21]](_0x67eb[2],{messageId:_0x8e64x3[_0x67eb[3]],inReplyTo:_0x8e64x3[_0x67eb[3]],subject:_0x8e64x3[_0x67eb[3]],from:_0x8e64x3[_0x67eb[3]],to:_0x8e64x3[_0x67eb[3]],cc:_0x8e64x3[_0x67eb[3]],bcc:_0x8e64x3[_0x67eb[3]],attachment:_0x8e64x3[_0x67eb[4]],html:_0x8e64x3[_0x67eb[4]],text:_0x8e64x3[_0x67eb[4]],reason:_0x8e64x3[_0x67eb[4]],status:{type:_0x8e64x3.ENUM(_0x67eb[5],_0x67eb[6],_0x67eb[7],_0x67eb[8])}},{tableName:_0x67eb[9],associate:function(_0x8e64x5){_0x8e64x4[_0x67eb[10]](_0x8e64x5.MailRoom);_0x8e64x4[_0x67eb[10]](_0x8e64x5.ContactEmail,{as:_0x67eb[11]});_0x8e64x4[_0x67eb[15]](_0x8e64x5.ContactEmail,{as:_0x67eb[12],through:_0x67eb[13],onDelete:_0x67eb[14]});_0x8e64x4[_0x67eb[15]](_0x8e64x5.ContactEmail,{as:_0x67eb[16],through:_0x67eb[17],onDelete:_0x67eb[14]});_0x8e64x4[_0x67eb[15]](_0x8e64x5.ContactEmail,{as:_0x67eb[18],through:_0x67eb[19],onDelete:_0x67eb[14]});_0x8e64x4[_0x67eb[20]](_0x8e64x5.MailAttachment);}});return _0x8e64x4;};
\ No newline at end of file
index 55eb357..8ae68cd 100644 (file)
@@ -1 +1 @@
-var _0xba9d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xba9d[0];module[_0xba9d[1]]=function(_0x1c56x1,_0x1c56x2){var _0x1c56x3=_0x1c56x1[_0xba9d[10]](_0xba9d[2],{name:{type:_0x1c56x2[_0xba9d[3]],unique:true},description:{type:_0x1c56x2[_0xba9d[3]]},timeout:{type:_0x1c56x2[_0xba9d[4]]},strategy:{type:_0x1c56x2.ENUM(_0xba9d[5],_0xba9d[6])}},{tableName:_0xba9d[7],associate:function(_0x1c56x4){_0x1c56x3[_0xba9d[9]](_0x1c56x4.User,{through:_0x1c56x4[_0xba9d[8]]})}});return _0x1c56x3;};
\ No newline at end of file
+var _0x3f06=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x3f06[0];module[_0x3f06[1]]=function(_0x28d6x1,_0x28d6x2){var _0x28d6x3=_0x28d6x1[_0x3f06[10]](_0x3f06[2],{name:{type:_0x28d6x2[_0x3f06[3]],unique:true},description:{type:_0x28d6x2[_0x3f06[3]]},timeout:{type:_0x28d6x2[_0x3f06[4]]},strategy:{type:_0x28d6x2.ENUM(_0x3f06[5],_0x3f06[6])}},{tableName:_0x3f06[7],associate:function(_0x28d6x4){_0x28d6x3[_0x3f06[9]](_0x28d6x4.User,{through:_0x28d6x4[_0x3f06[8]]})}});return _0x28d6x3;};
\ No newline at end of file
index f135c58..ad0c571 100644 (file)
@@ -1 +1 @@
-var _0xf7b6=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x4E\x45\x57","\x4F\x50\x45\x4E","\x43\x4C\x4F\x53\x45\x44","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xf7b6[0]]=function(_0xe007x1,_0xe007x2){var _0xe007x3=_0xe007x1[_0xf7b6[12]](_0xf7b6[1],{subject:_0xe007x2[_0xf7b6[2]],from:_0xe007x2[_0xf7b6[2]],attachment:{type:_0xe007x2[_0xf7b6[3]],defaultValue:false},status:{type:_0xe007x2.ENUM(_0xf7b6[4],_0xf7b6[5],_0xf7b6[6]),defaultValue:_0xf7b6[4]}},{tableName:_0xf7b6[7],associate:function(_0xe007x4){_0xe007x3[_0xf7b6[8]](_0xe007x4.MailMessage);_0xe007x3[_0xf7b6[9]](_0xe007x4.MailAccount);_0xe007x3[_0xf7b6[11]](_0xe007x4.User,{through:_0xf7b6[10]});}});return _0xe007x3;};
\ No newline at end of file
+var _0xf8a2=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x4E\x45\x57","\x4F\x50\x45\x4E","\x43\x4C\x4F\x53\x45\x44","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xf8a2[0]]=function(_0x96c1x1,_0x96c1x2){var _0x96c1x3=_0x96c1x1[_0xf8a2[12]](_0xf8a2[1],{subject:_0x96c1x2[_0xf8a2[2]],from:_0x96c1x2[_0xf8a2[2]],attachment:{type:_0x96c1x2[_0xf8a2[3]],defaultValue:false},status:{type:_0x96c1x2.ENUM(_0xf8a2[4],_0xf8a2[5],_0xf8a2[6]),defaultValue:_0xf8a2[4]}},{tableName:_0xf8a2[7],associate:function(_0x96c1x4){_0x96c1x3[_0xf8a2[8]](_0x96c1x4.MailMessage);_0x96c1x3[_0xf8a2[9]](_0x96c1x4.MailAccount);_0x96c1x3[_0xf8a2[11]](_0x96c1x4.User,{through:_0xf8a2[10]});}});return _0x96c1x3;};
\ No newline at end of file
index c237e83..9eda48d 100644 (file)
@@ -1 +1 @@
-var _0xa02b=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x53\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x41\x53\x53\x49\x47\x4E\x45\x44","\x52\x45\x50\x4C\x49\x45\x44","\x41\x52\x43\x48\x49\x56\x45\x44","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x5F\x73\x74\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];module[_0xa02b[0]]=function(_0xaeb5x1,_0xaeb5x2){var _0xaeb5x3=_0xaeb5x1[_0xa02b[7]](_0xa02b[1],{status:_0xaeb5x2.ENUM(_0xa02b[2],_0xa02b[3],_0xa02b[4],_0xa02b[5])},{tableName:_0xa02b[6]});return _0xaeb5x3;};
\ No newline at end of file
+var _0x368e=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x53\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x41\x53\x53\x49\x47\x4E\x45\x44","\x52\x45\x50\x4C\x49\x45\x44","\x41\x52\x43\x48\x49\x56\x45\x44","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x5F\x73\x74\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x368e[0]]=function(_0x66f2x1,_0x66f2x2){var _0x66f2x3=_0x66f2x1[_0x368e[7]](_0x368e[1],{status:_0x66f2x2.ENUM(_0x368e[2],_0x368e[3],_0x368e[4],_0x368e[5])},{tableName:_0x368e[6]});return _0x66f2x3;};
\ No newline at end of file
index 902255f..a388048 100644 (file)
@@ -1 +1 @@
-var _0x6c97=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x50\x4F\x50\x33","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x69\x6E","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x6c97[0]);module[_0x6c97[1]]=function(_0x1945x2,_0x1945x3){var _0x1945x4=_0x1945x2[_0x6c97[14]](_0x6c97[2],{description:_0x1945x3[_0x6c97[3]],host:_0x1945x3[_0x6c97[3]],username:_0x1945x3[_0x6c97[3]],password:_0x1945x3[_0x6c97[3]],port:_0x1945x3[_0x6c97[4]],mailbox:_0x1945x3[_0x6c97[3]],ssl:{type:_0x1945x3[_0x6c97[5]],defaultValue:false},delete:{type:_0x1945x3[_0x6c97[5]],defaultValue:false},filter:{type:_0x1945x3.ENUM(_0x6c97[6]),defaultValue:_0x6c97[6]},protocol:{type:_0x1945x3.ENUM(_0x6c97[7],_0x6c97[8]),defaultValue:_0x6c97[7]},state:{type:_0x1945x3.ENUM(_0x6c97[9],_0x6c97[10],_0x6c97[11],_0x6c97[12]),defaultValue:_0x6c97[12]}},{tableName:_0x6c97[13]});return _0x1945x4;};
\ No newline at end of file
+var _0x60fc=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x50\x4F\x50\x33","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x69\x6E","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x60fc[0]);module[_0x60fc[1]]=function(_0x4ba9x2,_0x4ba9x3){var _0x4ba9x4=_0x4ba9x2[_0x60fc[14]](_0x60fc[2],{description:_0x4ba9x3[_0x60fc[3]],host:_0x4ba9x3[_0x60fc[3]],username:_0x4ba9x3[_0x60fc[3]],password:_0x4ba9x3[_0x60fc[3]],port:_0x4ba9x3[_0x60fc[4]],mailbox:_0x4ba9x3[_0x60fc[3]],ssl:{type:_0x4ba9x3[_0x60fc[5]],defaultValue:false},delete:{type:_0x4ba9x3[_0x60fc[5]],defaultValue:false},filter:{type:_0x4ba9x3.ENUM(_0x60fc[6]),defaultValue:_0x60fc[6]},protocol:{type:_0x4ba9x3.ENUM(_0x60fc[7],_0x60fc[8]),defaultValue:_0x60fc[7]},state:{type:_0x4ba9x3.ENUM(_0x60fc[9],_0x60fc[10],_0x60fc[11],_0x60fc[12]),defaultValue:_0x60fc[12]}},{tableName:_0x60fc[13]});return _0x4ba9x4;};
\ No newline at end of file
index 5b58057..c07b380 100644 (file)
@@ -1 +1 @@
-var _0xf1ed=["\x63\x72\x79\x70\x74\x6F","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72\x2D\x73\x6D\x74\x70\x2D\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x6F\x75\x74","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xf1ed[0]);var smtpTransport=require(_0xf1ed[1]);var nodemailer=require(_0xf1ed[2]);module[_0xf1ed[3]]=function(_0x9180x4,_0x9180x5){var _0x9180x6=_0x9180x4[_0xf1ed[13]](_0xf1ed[4],{description:_0x9180x5[_0xf1ed[5]],host:_0x9180x5[_0xf1ed[5]],username:_0x9180x5[_0xf1ed[5]],password:_0x9180x5[_0xf1ed[5]],port:_0x9180x5[_0xf1ed[6]],ssl:{type:_0x9180x5[_0xf1ed[7]],defaultValue:false},service:{type:_0x9180x5[_0xf1ed[7]],defaultValue:false},state:{type:_0x9180x5.ENUM(_0xf1ed[8],_0xf1ed[9],_0xf1ed[10],_0xf1ed[11]),defaultValue:_0xf1ed[11]}},{tableName:_0xf1ed[12]});return _0x9180x6;};
\ No newline at end of file
+var _0xf45e=["\x63\x72\x79\x70\x74\x6F","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72\x2D\x73\x6D\x74\x70\x2D\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x6F\x75\x74","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xf45e[0]);var smtpTransport=require(_0xf45e[1]);var nodemailer=require(_0xf45e[2]);module[_0xf45e[3]]=function(_0x1b1dx4,_0x1b1dx5){var _0x1b1dx6=_0x1b1dx4[_0xf45e[13]](_0xf45e[4],{description:_0x1b1dx5[_0xf45e[5]],host:_0x1b1dx5[_0xf45e[5]],username:_0x1b1dx5[_0xf45e[5]],password:_0x1b1dx5[_0xf45e[5]],port:_0x1b1dx5[_0xf45e[6]],ssl:{type:_0x1b1dx5[_0xf45e[7]],defaultValue:false},service:{type:_0x1b1dx5[_0xf45e[7]],defaultValue:false},state:{type:_0x1b1dx5.ENUM(_0xf45e[8],_0xf45e[9],_0xf45e[10],_0xf45e[11]),defaultValue:_0xf45e[11]}},{tableName:_0xf45e[12]});return _0x1b1dx6;};
\ No newline at end of file
index af2d12d..f5aefe7 100644 (file)
@@ -1 +1 @@
-var _0x6bbc=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x6bbc[0]);module[_0x6bbc[1]]=function(_0xae65x2,_0xae65x3){var _0xae65x4=_0xae65x2[_0x6bbc[6]](_0x6bbc[2],{name:_0xae65x3[_0x6bbc[3]],description:_0xae65x3[_0x6bbc[3]],subject:_0xae65x3[_0x6bbc[3]],from:_0xae65x3[_0x6bbc[3]],to:_0xae65x3[_0x6bbc[3]],cc:_0xae65x3[_0x6bbc[3]],attachment:_0xae65x3[_0x6bbc[4]],html:_0xae65x3[_0x6bbc[4]],text:_0xae65x3[_0x6bbc[4]]},{tableName:_0x6bbc[5]});return _0xae65x4;};
\ No newline at end of file
+var _0xfa0f=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xfa0f[0]);module[_0xfa0f[1]]=function(_0xb8b7x2,_0xb8b7x3){var _0xb8b7x4=_0xb8b7x2[_0xfa0f[6]](_0xfa0f[2],{name:_0xb8b7x3[_0xfa0f[3]],description:_0xb8b7x3[_0xfa0f[3]],subject:_0xb8b7x3[_0xfa0f[3]],from:_0xb8b7x3[_0xfa0f[3]],to:_0xb8b7x3[_0xfa0f[3]],cc:_0xb8b7x3[_0xfa0f[3]],attachment:_0xb8b7x3[_0xfa0f[4]],html:_0xb8b7x3[_0xfa0f[4]],text:_0xb8b7x3[_0xfa0f[4]]},{tableName:_0xfa0f[5]});return _0xb8b7x4;};
\ No newline at end of file
index cff1a76..f73178a 100644 (file)
@@ -1 +1 @@
-var _0x8dff=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x54\x72\x69\x67\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x6D\x61\x69\x6C\x5F\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x8dff[0]);module[_0x8dff[1]]=function(_0xef6ex2,_0xef6ex3){var _0xef6ex4=_0xef6ex2[_0x8dff[7]](_0x8dff[2],{name:_0xef6ex3[_0x8dff[3]],description:_0xef6ex3[_0x8dff[3]],conditions:_0xef6ex3[_0x8dff[4]],actions:_0xef6ex3[_0x8dff[4]],status:{type:_0xef6ex3[_0x8dff[5]],defaultValue:false}},{tableName:_0x8dff[6]});return _0xef6ex4;};
\ No newline at end of file
+var _0x2b7c=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x54\x72\x69\x67\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x6D\x61\x69\x6C\x5F\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x2b7c[0]);module[_0x2b7c[1]]=function(_0x4a5cx2,_0x4a5cx3){var _0x4a5cx4=_0x4a5cx2[_0x2b7c[7]](_0x2b7c[2],{name:_0x4a5cx3[_0x2b7c[3]],description:_0x4a5cx3[_0x2b7c[3]],conditions:_0x4a5cx3[_0x2b7c[4]],actions:_0x4a5cx3[_0x2b7c[4]],status:{type:_0x4a5cx3[_0x2b7c[5]],defaultValue:false}},{tableName:_0x2b7c[6]});return _0x4a5cx4;};
\ No newline at end of file
index 4b12bbc..b6aa5b7 100644 (file)
@@ -1 +1 @@
-var _0x640d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x65\x74\x72\x69\x63","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6D\x65\x74\x72\x69\x63\x73","\x64\x65\x66\x69\x6E\x65"];_0x640d[0];module[_0x640d[1]]=function(_0xc3a7x1,_0xc3a7x2){var _0xc3a7x3=_0xc3a7x1[_0x640d[6]](_0x640d[2],{name:{type:_0xc3a7x2[_0x640d[3]],unique:true,validate:{notEmpty:true}},table:_0xc3a7x2[_0x640d[3]],metric:_0xc3a7x2[_0x640d[4]],description:_0xc3a7x2[_0x640d[3]]},{tableName:_0x640d[5]});return _0xc3a7x3;};
\ No newline at end of file
+var _0xebff=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x65\x74\x72\x69\x63","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6D\x65\x74\x72\x69\x63\x73","\x64\x65\x66\x69\x6E\x65"];_0xebff[0];module[_0xebff[1]]=function(_0xb1d3x1,_0xb1d3x2){var _0xb1d3x3=_0xb1d3x1[_0xebff[6]](_0xebff[2],{name:{type:_0xb1d3x2[_0xebff[3]],unique:true,validate:{notEmpty:true}},table:_0xb1d3x2[_0xebff[3]],metric:_0xb1d3x2[_0xebff[4]],description:_0xb1d3x2[_0xebff[3]]},{tableName:_0xebff[5]});return _0xb1d3x3;};
\ No newline at end of file
index 65291f8..69ebe9d 100644 (file)
@@ -1 +1 @@
-var _0x63bc=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x6F\x64\x75\x6C\x65","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x64\x75\x6C\x65\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x6F\x64\x75\x6C\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x63bc[0]]=function(_0x65ddx1,_0x65ddx2){var _0x65ddx3=_0x65ddx1[_0x63bc[6]](_0x63bc[1],{name:{type:_0x65ddx2[_0x63bc[2]],unique:true,allowNull:false,validate:{notEmpty:true}},title:_0x65ddx2[_0x63bc[2]]},{tableName:_0x63bc[3],associate:function(_0x65ddx4){_0x65ddx3[_0x63bc[5]](_0x65ddx4.User,{through:_0x63bc[4]})}});return _0x65ddx3;};
\ No newline at end of file
+var _0x27ac=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x6F\x64\x75\x6C\x65","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x64\x75\x6C\x65\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x6F\x64\x75\x6C\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x27ac[0]]=function(_0xa935x1,_0xa935x2){var _0xa935x3=_0xa935x1[_0x27ac[6]](_0x27ac[1],{name:{type:_0xa935x2[_0x27ac[2]],unique:true,allowNull:false,validate:{notEmpty:true}},title:_0xa935x2[_0x27ac[2]]},{tableName:_0x27ac[3],associate:function(_0xa935x4){_0xa935x3[_0x27ac[5]](_0xa935x4.User,{through:_0x27ac[4]})}});return _0xa935x3;};
\ No newline at end of file
index 9124702..7a9aed4 100644 (file)
@@ -1 +1 @@
-var _0xb56c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x45\x4E\x55\x4D","\x68\x61\x6E\x67\x75\x70","\x69\x6E\x63\x6F\x6D\x69\x6E\x67","\x61\x63\x74\x69\x76\x65","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x41\x64\x6D\x69\x6E","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x55\x73\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0xb56c[0];module[_0xb56c[1]]=function(_0x8655x1,_0x8655x2){var _0x8655x3=_0x8655x1[_0xb56c[12]](_0xb56c[2],{action:{type:_0x8655x2[_0xb56c[3]],values:[_0xb56c[4]],allowNull:false},state:{type:_0x8655x2[_0xb56c[3]],values:[_0xb56c[5],_0xb56c[6]]},phone:{type:_0x8655x2[_0xb56c[7]]}},{tableName:_0xb56c[8],associate:function(_0x8655x4){_0x8655x3[_0xb56c[10]](_0x8655x4.User,{as:_0xb56c[9]});_0x8655x3[_0xb56c[10]](_0x8655x4.User,{as:_0xb56c[11]});}});return _0x8655x3;};
\ No newline at end of file
+var _0xeded=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x45\x4E\x55\x4D","\x68\x61\x6E\x67\x75\x70","\x69\x6E\x63\x6F\x6D\x69\x6E\x67","\x61\x63\x74\x69\x76\x65","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x41\x64\x6D\x69\x6E","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x55\x73\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0xeded[0];module[_0xeded[1]]=function(_0xbda3x1,_0xbda3x2){var _0xbda3x3=_0xbda3x1[_0xeded[12]](_0xeded[2],{action:{type:_0xbda3x2[_0xeded[3]],values:[_0xeded[4]],allowNull:false},state:{type:_0xbda3x2[_0xeded[3]],values:[_0xeded[5],_0xeded[6]]},phone:{type:_0xbda3x2[_0xeded[7]]}},{tableName:_0xeded[8],associate:function(_0xbda3x4){_0xbda3x3[_0xeded[10]](_0xbda3x4.User,{as:_0xeded[9]});_0xbda3x3[_0xeded[10]](_0xbda3x4.User,{as:_0xeded[11]});}});return _0xbda3x3;};
\ No newline at end of file
index b77a0da..1a250b7 100644 (file)
@@ -1 +1 @@
-var _0x3403=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];module[_0x3403[0]]=function(_0x414bx1,_0x414bx2){var _0x414bx3=_0x414bx1[_0x3403[9]](_0x3403[1],{uniqueid:_0x414bx2[_0x3403[2]],calleridnum:_0x414bx2[_0x3403[2]],calleridname:_0x414bx2[_0x3403[2]],queue:_0x414bx2[_0x3403[2]],interface:_0x414bx2[_0x3403[2]],membername:_0x414bx2[_0x3403[2]],agentcalledAt:_0x414bx2[_0x3403[3]],agentconnectAt:_0x414bx2[_0x3403[3]],holdtime:_0x414bx2[_0x3403[4]],agentcomplete:{type:_0x414bx2[_0x3403[5]],defaultValue:false},agentcompleteAt:_0x414bx2[_0x3403[3]],talktime:_0x414bx2[_0x3403[4]],agentacw:{type:_0x414bx2[_0x3403[5]],defaultValue:false},acwtime:_0x414bx2[_0x3403[4]],reason:_0x414bx2[_0x3403[2]],agentringnoanswer:{type:_0x414bx2[_0x3403[5]],defaultValue:false},agentringnoanswerAt:_0x414bx2[_0x3403[3]],agentdump:{type:_0x414bx2[_0x3403[5]],defaultValue:false},agentdumpAt:_0x414bx2[_0x3403[3]],lastevent:_0x414bx2[_0x3403[2]],channel:_0x414bx2[_0x3403[2]],channelstate:_0x414bx2[_0x3403[4]],channelstatedesc:_0x414bx2[_0x3403[2]],connectedlinenum:_0x414bx2[_0x3403[2]],connectedlinename:_0x414bx2[_0x3403[2]],language:_0x414bx2[_0x3403[2]],accountcode:_0x414bx2[_0x3403[2]],context:_0x414bx2[_0x3403[2]],exten:_0x414bx2[_0x3403[2]],priority:_0x414bx2[_0x3403[2]],destchannel:_0x414bx2[_0x3403[2]],destchannelstate:_0x414bx2[_0x3403[4]],destchannelstatedesc:_0x414bx2[_0x3403[2]],destcalleridnum:_0x414bx2[_0x3403[2]],destcalleridname:_0x414bx2[_0x3403[2]],destconnectedlinenum:_0x414bx2[_0x3403[2]],destconnectedlinename:_0x414bx2[_0x3403[2]],destlanguage:_0x414bx2[_0x3403[2]],destaccountcode:_0x414bx2[_0x3403[2]],destcontext:_0x414bx2[_0x3403[2]],destexten:_0x414bx2[_0x3403[2]],destpriority:_0x414bx2[_0x3403[2]],destuniqueid:_0x414bx2[_0x3403[2]]},{tableName:_0x3403[6],indexes:[{fields:[_0x3403[7],_0x3403[8]]}]});return _0x414bx3;};
\ No newline at end of file
+var _0x27b0=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];module[_0x27b0[0]]=function(_0xaadbx1,_0xaadbx2){var _0xaadbx3=_0xaadbx1[_0x27b0[9]](_0x27b0[1],{uniqueid:_0xaadbx2[_0x27b0[2]],calleridnum:_0xaadbx2[_0x27b0[2]],calleridname:_0xaadbx2[_0x27b0[2]],queue:_0xaadbx2[_0x27b0[2]],interface:_0xaadbx2[_0x27b0[2]],membername:_0xaadbx2[_0x27b0[2]],agentcalledAt:_0xaadbx2[_0x27b0[3]],agentconnectAt:_0xaadbx2[_0x27b0[3]],holdtime:_0xaadbx2[_0x27b0[4]],agentcomplete:{type:_0xaadbx2[_0x27b0[5]],defaultValue:false},agentcompleteAt:_0xaadbx2[_0x27b0[3]],talktime:_0xaadbx2[_0x27b0[4]],agentacw:{type:_0xaadbx2[_0x27b0[5]],defaultValue:false},acwtime:_0xaadbx2[_0x27b0[4]],reason:_0xaadbx2[_0x27b0[2]],agentringnoanswer:{type:_0xaadbx2[_0x27b0[5]],defaultValue:false},agentringnoanswerAt:_0xaadbx2[_0x27b0[3]],agentdump:{type:_0xaadbx2[_0x27b0[5]],defaultValue:false},agentdumpAt:_0xaadbx2[_0x27b0[3]],lastevent:_0xaadbx2[_0x27b0[2]],channel:_0xaadbx2[_0x27b0[2]],channelstate:_0xaadbx2[_0x27b0[4]],channelstatedesc:_0xaadbx2[_0x27b0[2]],connectedlinenum:_0xaadbx2[_0x27b0[2]],connectedlinename:_0xaadbx2[_0x27b0[2]],language:_0xaadbx2[_0x27b0[2]],accountcode:_0xaadbx2[_0x27b0[2]],context:_0xaadbx2[_0x27b0[2]],exten:_0xaadbx2[_0x27b0[2]],priority:_0xaadbx2[_0x27b0[2]],destchannel:_0xaadbx2[_0x27b0[2]],destchannelstate:_0xaadbx2[_0x27b0[4]],destchannelstatedesc:_0xaadbx2[_0x27b0[2]],destcalleridnum:_0xaadbx2[_0x27b0[2]],destcalleridname:_0xaadbx2[_0x27b0[2]],destconnectedlinenum:_0xaadbx2[_0x27b0[2]],destconnectedlinename:_0xaadbx2[_0x27b0[2]],destlanguage:_0xaadbx2[_0x27b0[2]],destaccountcode:_0xaadbx2[_0x27b0[2]],destcontext:_0xaadbx2[_0x27b0[2]],destexten:_0xaadbx2[_0x27b0[2]],destpriority:_0xaadbx2[_0x27b0[2]],destuniqueid:_0xaadbx2[_0x27b0[2]]},{tableName:_0x27b0[6],indexes:[{fields:[_0x27b0[7],_0x27b0[8]]}]});return _0xaadbx3;};
\ No newline at end of file
index 500e048..f75a32b 100644 (file)
@@ -1 +1 @@
-var _0x9a0f=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x9a0f[0]]=function(_0x32b9x1,_0x32b9x2){var _0x32b9x3=_0x32b9x1[_0x9a0f[13]](_0x9a0f[1],{accountcode:_0x32b9x2[_0x9a0f[2]],source:_0x32b9x2[_0x9a0f[2]],destination:_0x32b9x2[_0x9a0f[2]],destinationcontext:_0x32b9x2[_0x9a0f[2]],callerid:_0x32b9x2[_0x9a0f[2]],channel:_0x32b9x2[_0x9a0f[2]],destinationchannel:_0x32b9x2[_0x9a0f[2]],lastapplication:_0x32b9x2[_0x9a0f[2]],lastdata:_0x32b9x2[_0x9a0f[2]],starttime:_0x32b9x2[_0x9a0f[3]],answertime:{type:_0x32b9x2[_0x9a0f[3]],set:function(_0x32b9x4){if(_0x32b9x4!==_0x9a0f[4]){this[_0x9a0f[6]](_0x9a0f[5],_0x32b9x4)}else {this[_0x9a0f[6]](_0x9a0f[5],null)}}},endtime:_0x32b9x2[_0x9a0f[3]],duration:_0x32b9x2[_0x9a0f[7]],billableseconds:_0x32b9x2[_0x9a0f[7]],disposition:_0x32b9x2[_0x9a0f[2]],amaflags:_0x32b9x2[_0x9a0f[2]],uniqueid:{type:_0x32b9x2[_0x9a0f[2]],primaryKey:true},userfield:_0x32b9x2[_0x9a0f[2]]},{tableName:_0x9a0f[8],associate:function(_0x32b9x5){_0x32b9x3[_0x9a0f[11]](_0x32b9x5.ReportQueue,{as:_0x9a0f[9],foreignKey:_0x9a0f[10],constraints:false});_0x32b9x3[_0x9a0f[11]](_0x32b9x5.ReportAgent,{as:_0x9a0f[12],foreignKey:_0x9a0f[10],constraints:false});}});return _0x32b9x3;};
\ No newline at end of file
+var _0x9755=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x9755[0]]=function(_0x4850x1,_0x4850x2){var _0x4850x3=_0x4850x1[_0x9755[13]](_0x9755[1],{accountcode:_0x4850x2[_0x9755[2]],source:_0x4850x2[_0x9755[2]],destination:_0x4850x2[_0x9755[2]],destinationcontext:_0x4850x2[_0x9755[2]],callerid:_0x4850x2[_0x9755[2]],channel:_0x4850x2[_0x9755[2]],destinationchannel:_0x4850x2[_0x9755[2]],lastapplication:_0x4850x2[_0x9755[2]],lastdata:_0x4850x2[_0x9755[2]],starttime:_0x4850x2[_0x9755[3]],answertime:{type:_0x4850x2[_0x9755[3]],set:function(_0x4850x4){if(_0x4850x4!==_0x9755[4]){this[_0x9755[6]](_0x9755[5],_0x4850x4)}else {this[_0x9755[6]](_0x9755[5],null)}}},endtime:_0x4850x2[_0x9755[3]],duration:_0x4850x2[_0x9755[7]],billableseconds:_0x4850x2[_0x9755[7]],disposition:_0x4850x2[_0x9755[2]],amaflags:_0x4850x2[_0x9755[2]],uniqueid:{type:_0x4850x2[_0x9755[2]],primaryKey:true},userfield:_0x4850x2[_0x9755[2]]},{tableName:_0x9755[8],associate:function(_0x4850x5){_0x4850x3[_0x9755[11]](_0x4850x5.ReportQueue,{as:_0x9755[9],foreignKey:_0x9755[10],constraints:false});_0x4850x3[_0x9755[11]](_0x4850x5.ReportAgent,{as:_0x9755[12],foreignKey:_0x9755[10],constraints:false});}});return _0x4850x3;};
\ No newline at end of file
index b933cde..a6d477d 100644 (file)
@@ -1 +1 @@
-var _0x4e9d=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x61\x73\x6F\x6E","\x61\x67\x65\x6E\x74","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x4e9d[0]);module[_0x4e9d[1]]=function(_0x67dbx2,_0x67dbx3){var _0x67dbx4=_0x67dbx2[_0x4e9d[17]](_0x4e9d[2],{uniqueid:_0x67dbx3[_0x4e9d[3]],sorting:_0x67dbx3[_0x4e9d[3]],timeslot:_0x67dbx3[_0x4e9d[3]],visitorname:_0x67dbx3[_0x4e9d[4]],visitoremail:_0x67dbx3[_0x4e9d[4]],websitename:_0x67dbx3[_0x4e9d[4]],websiteaddress:_0x67dbx3[_0x4e9d[4]],websiteid:_0x67dbx3[_0x4e9d[3]],application:_0x67dbx3[_0x4e9d[4]],fullname:_0x67dbx3[_0x4e9d[4]],membername:_0x67dbx3[_0x4e9d[4]],agentid:_0x67dbx3[_0x4e9d[3]],chatqueuename:_0x67dbx3[_0x4e9d[4]],lastevent:_0x67dbx3[_0x4e9d[4]],agentcalledAt:_0x67dbx3[_0x4e9d[5]],chatroomid:_0x67dbx3[_0x4e9d[3]],connectId:{type:_0x67dbx3[_0x4e9d[3]],unique:true},agentconnectedAt:_0x67dbx3[_0x4e9d[5]],connect:{type:_0x67dbx3[_0x4e9d[6]],defaultValue:false,set:function(_0x67dbx5){this[_0x4e9d[9]](_0x4e9d[7],this[_0x4e9d[8]]);this[_0x4e9d[9]](_0x4e9d[10],moment()[_0x4e9d[12]](_0x4e9d[11]));this[_0x4e9d[9]](_0x4e9d[13],_0x4e9d[14]);this[_0x4e9d[9]](_0x4e9d[15],_0x4e9d[14]);}},agentringnoanswerAt:_0x67dbx3[_0x4e9d[5]],reason:_0x67dbx3[_0x4e9d[4]]},{tableName:_0x4e9d[16]});return _0x67dbx4;};
\ No newline at end of file
+var _0x3543=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x61\x73\x6F\x6E","\x61\x67\x65\x6E\x74","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x3543[0]);module[_0x3543[1]]=function(_0xc681x2,_0xc681x3){var _0xc681x4=_0xc681x2[_0x3543[17]](_0x3543[2],{uniqueid:_0xc681x3[_0x3543[3]],sorting:_0xc681x3[_0x3543[3]],timeslot:_0xc681x3[_0x3543[3]],visitorname:_0xc681x3[_0x3543[4]],visitoremail:_0xc681x3[_0x3543[4]],websitename:_0xc681x3[_0x3543[4]],websiteaddress:_0xc681x3[_0x3543[4]],websiteid:_0xc681x3[_0x3543[3]],application:_0xc681x3[_0x3543[4]],fullname:_0xc681x3[_0x3543[4]],membername:_0xc681x3[_0x3543[4]],agentid:_0xc681x3[_0x3543[3]],chatqueuename:_0xc681x3[_0x3543[4]],lastevent:_0xc681x3[_0x3543[4]],agentcalledAt:_0xc681x3[_0x3543[5]],chatroomid:_0xc681x3[_0x3543[3]],connectId:{type:_0xc681x3[_0x3543[3]],unique:true},agentconnectedAt:_0xc681x3[_0x3543[5]],connect:{type:_0xc681x3[_0x3543[6]],defaultValue:false,set:function(_0xc681x5){this[_0x3543[9]](_0x3543[7],this[_0x3543[8]]);this[_0x3543[9]](_0x3543[10],moment()[_0x3543[12]](_0x3543[11]));this[_0x3543[9]](_0x3543[13],_0x3543[14]);this[_0x3543[9]](_0x3543[15],_0x3543[14]);}},agentringnoanswerAt:_0xc681x3[_0x3543[5]],reason:_0xc681x3[_0x3543[4]]},{tableName:_0x3543[16]});return _0xc681x4;};
\ No newline at end of file
index 1c0ff1b..99ce4cb 100644 (file)
@@ -1 +1 @@
-var _0xb0c9=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0xb0c9[0]);module[_0xb0c9[1]]=function(_0xe843x2,_0xe843x3){var _0xe843x4=_0xe843x2[_0xb0c9[7]](_0xb0c9[2],{uniqueid:{type:_0xe843x3[_0xb0c9[3]],unique:true},visitorname:_0xe843x3[_0xb0c9[4]],visitoremail:_0xe843x3[_0xb0c9[4]],websitename:_0xe843x3[_0xb0c9[4]],websiteaddress:_0xe843x3[_0xb0c9[4]],websiteid:_0xe843x3[_0xb0c9[3]],fullname:_0xe843x3[_0xb0c9[4]],membername:_0xe843x3[_0xb0c9[4]],agentid:_0xe843x3[_0xb0c9[3]],chatqueuename:_0xe843x3[_0xb0c9[4]],chatroomid:_0xe843x3[_0xb0c9[3]],chatjoinAt:_0xe843x3[_0xb0c9[5]],chatleaveAt:_0xe843x3[_0xb0c9[5]],chatunmanagedAt:_0xe843x3[_0xb0c9[5]]},{tableName:_0xb0c9[6]});return _0xe843x4;};
\ No newline at end of file
+var _0x70f4=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x70f4[0]);module[_0x70f4[1]]=function(_0x2470x2,_0x2470x3){var _0x2470x4=_0x2470x2[_0x70f4[7]](_0x70f4[2],{uniqueid:{type:_0x2470x3[_0x70f4[3]],unique:true},visitorname:_0x2470x3[_0x70f4[4]],visitoremail:_0x2470x3[_0x70f4[4]],websitename:_0x2470x3[_0x70f4[4]],websiteaddress:_0x2470x3[_0x70f4[4]],websiteid:_0x2470x3[_0x70f4[3]],fullname:_0x2470x3[_0x70f4[4]],membername:_0x2470x3[_0x70f4[4]],agentid:_0x2470x3[_0x70f4[3]],chatqueuename:_0x2470x3[_0x70f4[4]],chatroomid:_0x2470x3[_0x70f4[3]],chatjoinAt:_0x2470x3[_0x70f4[5]],chatleaveAt:_0x2470x3[_0x70f4[5]],chatunmanagedAt:_0x2470x3[_0x70f4[5]]},{tableName:_0x70f4[6]});return _0x2470x4;};
\ No newline at end of file
index 38f6779..41201ec 100644 (file)
@@ -1 +1 @@
-var _0xf3a2=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];module[_0xf3a2[0]]=function(_0xf473x1,_0xf473x2){var _0xf473x3=_0xf473x1[_0xf3a2[6]](_0xf3a2[1],{channel:_0xf473x2[_0xf3a2[2]],channelstate:_0xf473x2[_0xf3a2[3]],channelstatedesc:_0xf473x2[_0xf3a2[2]],calleridnum:_0xf473x2[_0xf3a2[2]],calleridname:_0xf473x2[_0xf3a2[2]],connectedlinenum:_0xf473x2[_0xf3a2[2]],connectedlinename:_0xf473x2[_0xf3a2[2]],language:_0xf473x2[_0xf3a2[2]],accountcode:_0xf473x2[_0xf3a2[2]],context:_0xf473x2[_0xf3a2[2]],exten:_0xf473x2[_0xf3a2[2]],priority:_0xf473x2[_0xf3a2[3]],uniqueid:_0xf473x2[_0xf3a2[2]],destchannel:_0xf473x2[_0xf3a2[2]],destchannelstate:_0xf473x2[_0xf3a2[3]],destchannelstatedesc:_0xf473x2[_0xf3a2[2]],destcalleridnum:_0xf473x2[_0xf3a2[2]],destcalleridname:_0xf473x2[_0xf3a2[2]],destconnectedlinenum:_0xf473x2[_0xf3a2[2]],destconnectedlinename:_0xf473x2[_0xf3a2[2]],destlanguage:_0xf473x2[_0xf3a2[2]],destaccountcode:_0xf473x2[_0xf3a2[2]],destcontext:_0xf473x2[_0xf3a2[2]],destexten:_0xf473x2[_0xf3a2[2]],destpriority:_0xf473x2[_0xf3a2[3]],destuniqueid:_0xf473x2[_0xf3a2[2]],dialstring:_0xf473x2[_0xf3a2[2]],dialstatus:_0xf473x2[_0xf3a2[2]]},{tableName:_0xf3a2[4],indexes:[{fields:[_0xf3a2[5]]}]});return _0xf473x3;};
\ No newline at end of file
+var _0x524f=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x44\x69\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];module[_0x524f[0]]=function(_0x7f99x1,_0x7f99x2){var _0x7f99x3=_0x7f99x1[_0x524f[6]](_0x524f[1],{channel:_0x7f99x2[_0x524f[2]],channelstate:_0x7f99x2[_0x524f[3]],channelstatedesc:_0x7f99x2[_0x524f[2]],calleridnum:_0x7f99x2[_0x524f[2]],calleridname:_0x7f99x2[_0x524f[2]],connectedlinenum:_0x7f99x2[_0x524f[2]],connectedlinename:_0x7f99x2[_0x524f[2]],language:_0x7f99x2[_0x524f[2]],accountcode:_0x7f99x2[_0x524f[2]],context:_0x7f99x2[_0x524f[2]],exten:_0x7f99x2[_0x524f[2]],priority:_0x7f99x2[_0x524f[3]],uniqueid:_0x7f99x2[_0x524f[2]],destchannel:_0x7f99x2[_0x524f[2]],destchannelstate:_0x7f99x2[_0x524f[3]],destchannelstatedesc:_0x7f99x2[_0x524f[2]],destcalleridnum:_0x7f99x2[_0x524f[2]],destcalleridname:_0x7f99x2[_0x524f[2]],destconnectedlinenum:_0x7f99x2[_0x524f[2]],destconnectedlinename:_0x7f99x2[_0x524f[2]],destlanguage:_0x7f99x2[_0x524f[2]],destaccountcode:_0x7f99x2[_0x524f[2]],destcontext:_0x7f99x2[_0x524f[2]],destexten:_0x7f99x2[_0x524f[2]],destpriority:_0x7f99x2[_0x524f[3]],destuniqueid:_0x7f99x2[_0x524f[2]],dialstring:_0x7f99x2[_0x524f[2]],dialstatus:_0x7f99x2[_0x524f[2]]},{tableName:_0x524f[4],indexes:[{fields:[_0x524f[5]]}]});return _0x7f99x3;};
\ No newline at end of file
index 68fe8e7..f273405 100644 (file)
@@ -1 +1 @@
-var _0x4333=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x4333[0];module[_0x4333[1]]=function(_0x8ee3x1,_0x8ee3x2){var _0x8ee3x3=_0x8ee3x1[_0x4333[6]](_0x4333[2],{field:_0x8ee3x2[_0x4333[3]],alias:_0x8ee3x2[_0x4333[3]],function:_0x8ee3x2[_0x4333[3]],groupBy:_0x8ee3x2[_0x4333[4]],orderBy:_0x8ee3x2[_0x4333[3]]},{tableName:_0x4333[5]});return _0x8ee3x3;};
\ No newline at end of file
+var _0x7e7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x7e7d[0];module[_0x7e7d[1]]=function(_0xf06fx1,_0xf06fx2){var _0xf06fx3=_0xf06fx1[_0x7e7d[6]](_0x7e7d[2],{field:_0xf06fx2[_0x7e7d[3]],alias:_0xf06fx2[_0x7e7d[3]],function:_0xf06fx2[_0x7e7d[3]],groupBy:_0xf06fx2[_0x7e7d[4]],orderBy:_0xf06fx2[_0x7e7d[3]]},{tableName:_0x7e7d[5]});return _0xf06fx3;};
\ No newline at end of file
index 3be895b..26bbc86 100644 (file)
@@ -1 +1 @@
-var _0x8366=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];module[_0x8366[0]]=function(_0xe3c2x1,_0xe3c2x2){var _0xe3c2x3=_0xe3c2x1[_0x8366[12]](_0x8366[1],{integration:_0xe3c2x2[_0x8366[2]],event:_0xe3c2x2[_0x8366[2]],contacts:_0xe3c2x2[_0x8366[2]],uniqueid:_0xe3c2x2[_0x8366[2]],calleridnum:_0xe3c2x2[_0x8366[2]],calleridname:_0xe3c2x2[_0x8366[2]],queue:_0xe3c2x2[_0x8366[2]],interface:_0xe3c2x2[_0x8366[2]],membername:_0xe3c2x2[_0x8366[2]],agentcalledAt:_0xe3c2x2[_0x8366[3]],agentconnectAt:_0xe3c2x2[_0x8366[3]],holdtime:_0xe3c2x2[_0x8366[4]],agentcomplete:{type:_0xe3c2x2[_0x8366[5]],defaultValue:false},agentcompleteAt:_0xe3c2x2[_0x8366[3]],talktime:_0xe3c2x2[_0x8366[4]],agentacw:{type:_0xe3c2x2[_0x8366[5]],defaultValue:false},acwtime:_0xe3c2x2[_0x8366[4]],reason:_0xe3c2x2[_0x8366[2]],agentringnoanswer:{type:_0xe3c2x2[_0x8366[5]],defaultValue:false},agentringnoanswerAt:_0xe3c2x2[_0x8366[3]],agentdump:{type:_0xe3c2x2[_0x8366[5]],defaultValue:false},agentdumpAt:_0xe3c2x2[_0x8366[3]],lastevent:_0xe3c2x2[_0x8366[2]],channel:_0xe3c2x2[_0x8366[2]],channelstate:_0xe3c2x2[_0x8366[4]],channelstatedesc:_0xe3c2x2[_0x8366[2]],connectedlinenum:_0xe3c2x2[_0x8366[2]],connectedlinename:_0xe3c2x2[_0x8366[2]],language:_0xe3c2x2[_0x8366[2]],accountcode:_0xe3c2x2[_0x8366[2]],context:_0xe3c2x2[_0x8366[2]],exten:_0xe3c2x2[_0x8366[2]],priority:_0xe3c2x2[_0x8366[2]],destchannel:_0xe3c2x2[_0x8366[2]],destchannelstate:_0xe3c2x2[_0x8366[4]],destchannelstatedesc:_0xe3c2x2[_0x8366[2]],destcalleridnum:_0xe3c2x2[_0x8366[2]],destcalleridname:_0xe3c2x2[_0x8366[2]],destconnectedlinenum:_0xe3c2x2[_0x8366[2]],destconnectedlinename:_0xe3c2x2[_0x8366[2]],destlanguage:_0xe3c2x2[_0x8366[2]],destaccountcode:_0xe3c2x2[_0x8366[2]],destcontext:_0xe3c2x2[_0x8366[2]],destexten:_0xe3c2x2[_0x8366[2]],destpriority:_0xe3c2x2[_0x8366[2]],destuniqueid:_0xe3c2x2[_0x8366[2]],messageId:_0xe3c2x2[_0x8366[2]],inReplyTo:_0xe3c2x2[_0x8366[2]],subject:_0xe3c2x2[_0x8366[2]],from:_0xe3c2x2[_0x8366[2]],to:_0xe3c2x2[_0x8366[2]],cc:_0xe3c2x2[_0x8366[2]],attachment:_0xe3c2x2[_0x8366[6]],html:_0xe3c2x2[_0x8366[6]],text:_0xe3c2x2[_0x8366[6]],status:{type:_0xe3c2x2.ENUM(_0x8366[7],_0x8366[8],_0x8366[9],_0x8366[10])}},{tableName:_0x8366[11]});return _0xe3c2x3;};
\ No newline at end of file
+var _0x8c97=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];module[_0x8c97[0]]=function(_0x2890x1,_0x2890x2){var _0x2890x3=_0x2890x1[_0x8c97[12]](_0x8c97[1],{integration:_0x2890x2[_0x8c97[2]],eventChannel:_0x2890x2[_0x8c97[2]],contacts:_0x2890x2[_0x8c97[2]],uniqueid:_0x2890x2[_0x8c97[2]],calleridnum:_0x2890x2[_0x8c97[2]],calleridname:_0x2890x2[_0x8c97[2]],queue:_0x2890x2[_0x8c97[2]],interface:_0x2890x2[_0x8c97[2]],membername:_0x2890x2[_0x8c97[2]],agentcalledAt:_0x2890x2[_0x8c97[3]],agentconnectAt:_0x2890x2[_0x8c97[3]],holdtime:_0x2890x2[_0x8c97[4]],agentcomplete:{type:_0x2890x2[_0x8c97[5]],defaultValue:false},agentcompleteAt:_0x2890x2[_0x8c97[3]],talktime:_0x2890x2[_0x8c97[4]],agentacw:{type:_0x2890x2[_0x8c97[5]],defaultValue:false},acwtime:_0x2890x2[_0x8c97[4]],reason:_0x2890x2[_0x8c97[2]],agentringnoanswer:{type:_0x2890x2[_0x8c97[5]],defaultValue:false},agentringnoanswerAt:_0x2890x2[_0x8c97[3]],agentdump:{type:_0x2890x2[_0x8c97[5]],defaultValue:false},agentdumpAt:_0x2890x2[_0x8c97[3]],lastevent:_0x2890x2[_0x8c97[2]],channel:_0x2890x2[_0x8c97[2]],channelstate:_0x2890x2[_0x8c97[4]],channelstatedesc:_0x2890x2[_0x8c97[2]],connectedlinenum:_0x2890x2[_0x8c97[2]],connectedlinename:_0x2890x2[_0x8c97[2]],language:_0x2890x2[_0x8c97[2]],accountcode:_0x2890x2[_0x8c97[2]],context:_0x2890x2[_0x8c97[2]],exten:_0x2890x2[_0x8c97[2]],priority:_0x2890x2[_0x8c97[2]],destchannel:_0x2890x2[_0x8c97[2]],destchannelstate:_0x2890x2[_0x8c97[4]],destchannelstatedesc:_0x2890x2[_0x8c97[2]],destcalleridnum:_0x2890x2[_0x8c97[2]],destcalleridname:_0x2890x2[_0x8c97[2]],destconnectedlinenum:_0x2890x2[_0x8c97[2]],destconnectedlinename:_0x2890x2[_0x8c97[2]],destlanguage:_0x2890x2[_0x8c97[2]],destaccountcode:_0x2890x2[_0x8c97[2]],destcontext:_0x2890x2[_0x8c97[2]],destexten:_0x2890x2[_0x8c97[2]],destpriority:_0x2890x2[_0x8c97[2]],destuniqueid:_0x2890x2[_0x8c97[2]],messageId:_0x2890x2[_0x8c97[2]],inReplyTo:_0x2890x2[_0x8c97[2]],subject:_0x2890x2[_0x8c97[2]],from:_0x2890x2[_0x8c97[2]],to:_0x2890x2[_0x8c97[2]],cc:_0x2890x2[_0x8c97[2]],attachment:_0x2890x2[_0x8c97[6]],html:_0x2890x2[_0x8c97[6]],text:_0x2890x2[_0x8c97[6]],status:{type:_0x2890x2.ENUM(_0x8c97[7],_0x8c97[8],_0x8c97[9],_0x8c97[10])}},{tableName:_0x8c97[11]});return _0x2890x3;};
\ No newline at end of file
index 3581246..c7694d3 100644 (file)
@@ -1 +1 @@
-var _0x212f=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x61\x73\x6F\x6E","\x61\x67\x65\x6E\x74","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x212f[0]);module[_0x212f[1]]=function(_0x4090x2,_0x4090x3){var _0x4090x4=_0x4090x2[_0x212f[17]](_0x212f[2],{uniqueid:_0x4090x3[_0x212f[3]],sorting:_0x4090x3[_0x212f[3]],timeslot:_0x4090x3[_0x212f[3]],subject:_0x4090x3[_0x212f[4]],from:_0x4090x3[_0x212f[4]],cc:_0x4090x3[_0x212f[4]],attachment:_0x4090x3[_0x212f[5]],accountname:_0x4090x3[_0x212f[4]],accountaddress:_0x4090x3[_0x212f[4]],application:_0x4090x3[_0x212f[4]],fullname:_0x4090x3[_0x212f[4]],membername:_0x4090x3[_0x212f[4]],agentid:_0x4090x3[_0x212f[3]],mailqueuename:_0x4090x3[_0x212f[4]],mailroomid:_0x4090x3[_0x212f[3]],lastevent:_0x4090x3[_0x212f[4]],agentcalledAt:_0x4090x3[_0x212f[6]],connectId:{type:_0x4090x3[_0x212f[3]],unique:true},agentconnectedAt:_0x4090x3[_0x212f[6]],connect:{type:_0x4090x3[_0x212f[5]],defaultValue:false,set:function(_0x4090x5){this[_0x212f[9]](_0x212f[7],this[_0x212f[8]]);this[_0x212f[9]](_0x212f[10],moment()[_0x212f[12]](_0x212f[11]));this[_0x212f[9]](_0x212f[13],_0x212f[14]);this[_0x212f[9]](_0x212f[15],_0x212f[14]);}},agentringnoanswerAt:_0x4090x3[_0x212f[6]],reason:_0x4090x3[_0x212f[4]]},{tableName:_0x212f[16]});return _0x4090x4;};
\ No newline at end of file
+var _0x41dd=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x61\x73\x6F\x6E","\x61\x67\x65\x6E\x74","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x41dd[0]);module[_0x41dd[1]]=function(_0x4e8cx2,_0x4e8cx3){var _0x4e8cx4=_0x4e8cx2[_0x41dd[17]](_0x41dd[2],{uniqueid:_0x4e8cx3[_0x41dd[3]],sorting:_0x4e8cx3[_0x41dd[3]],timeslot:_0x4e8cx3[_0x41dd[3]],subject:_0x4e8cx3[_0x41dd[4]],from:_0x4e8cx3[_0x41dd[4]],cc:_0x4e8cx3[_0x41dd[4]],attachment:_0x4e8cx3[_0x41dd[5]],accountname:_0x4e8cx3[_0x41dd[4]],accountaddress:_0x4e8cx3[_0x41dd[4]],application:_0x4e8cx3[_0x41dd[4]],fullname:_0x4e8cx3[_0x41dd[4]],membername:_0x4e8cx3[_0x41dd[4]],agentid:_0x4e8cx3[_0x41dd[3]],mailqueuename:_0x4e8cx3[_0x41dd[4]],mailroomid:_0x4e8cx3[_0x41dd[3]],lastevent:_0x4e8cx3[_0x41dd[4]],agentcalledAt:_0x4e8cx3[_0x41dd[6]],connectId:{type:_0x4e8cx3[_0x41dd[3]],unique:true},agentconnectedAt:_0x4e8cx3[_0x41dd[6]],connect:{type:_0x4e8cx3[_0x41dd[5]],defaultValue:false,set:function(_0x4e8cx5){this[_0x41dd[9]](_0x41dd[7],this[_0x41dd[8]]);this[_0x41dd[9]](_0x41dd[10],moment()[_0x41dd[12]](_0x41dd[11]));this[_0x41dd[9]](_0x41dd[13],_0x41dd[14]);this[_0x41dd[9]](_0x41dd[15],_0x41dd[14]);}},agentringnoanswerAt:_0x4e8cx3[_0x41dd[6]],reason:_0x4e8cx3[_0x41dd[4]]},{tableName:_0x41dd[16]});return _0x4e8cx4;};
\ No newline at end of file
index d394f3c..aa5ffba 100644 (file)
@@ -1 +1 @@
-var _0x7bda=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x7bda[0]);module[_0x7bda[1]]=function(_0x2e7fx2,_0x2e7fx3){var _0x2e7fx4=_0x2e7fx2[_0x7bda[8]](_0x7bda[2],{uniqueid:{type:_0x2e7fx3[_0x7bda[3]]},subject:_0x2e7fx3[_0x7bda[4]],from:_0x2e7fx3[_0x7bda[4]],cc:_0x2e7fx3[_0x7bda[4]],attachment:_0x2e7fx3[_0x7bda[5]],accountname:_0x2e7fx3[_0x7bda[4]],accountaddress:_0x2e7fx3[_0x7bda[4]],fullname:_0x2e7fx3[_0x7bda[4]],membername:_0x2e7fx3[_0x7bda[4]],mailqueuename:_0x2e7fx3[_0x7bda[4]],mailjoinAt:_0x2e7fx3[_0x7bda[6]],mailleaveAt:_0x2e7fx3[_0x7bda[6]],mailunmanagedAt:_0x2e7fx3[_0x7bda[6]]},{tableName:_0x7bda[7]});return _0x2e7fx4;};
\ No newline at end of file
+var _0xb4df=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0xb4df[0]);module[_0xb4df[1]]=function(_0x1364x2,_0x1364x3){var _0x1364x4=_0x1364x2[_0xb4df[8]](_0xb4df[2],{uniqueid:{type:_0x1364x3[_0xb4df[3]]},subject:_0x1364x3[_0xb4df[4]],from:_0x1364x3[_0xb4df[4]],cc:_0x1364x3[_0xb4df[4]],attachment:_0x1364x3[_0xb4df[5]],accountname:_0x1364x3[_0xb4df[4]],accountaddress:_0x1364x3[_0xb4df[4]],fullname:_0x1364x3[_0xb4df[4]],membername:_0x1364x3[_0xb4df[4]],mailqueuename:_0x1364x3[_0xb4df[4]],mailjoinAt:_0x1364x3[_0xb4df[6]],mailleaveAt:_0x1364x3[_0xb4df[6]],mailunmanagedAt:_0x1364x3[_0xb4df[6]]},{tableName:_0xb4df[7]});return _0x1364x4;};
\ No newline at end of file
index 99a024a..0a1f366 100644 (file)
@@ -1 +1 @@
-var _0xfbb3=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x74\x61\x74\x65","\x65\x6E\x74\x65\x72\x64\x61\x74\x65","\x65\x78\x69\x74\x64\x61\x74\x65","\x64\x65\x66\x69\x6E\x65"];module[_0xfbb3[0]]=function(_0x69fax1,_0x69fax2){var _0x69fax3=_0x69fax1[_0xfbb3[11]](_0xfbb3[1],{stateinterface:_0x69fax2[_0xfbb3[2]],queue:_0x69fax2[_0xfbb3[2]],membername:_0x69fax2[_0xfbb3[2]],interface:_0x69fax2[_0xfbb3[2]],state:_0x69fax2[_0xfbb3[3]],statedesc:_0x69fax2[_0xfbb3[2]],enterdate:_0x69fax2[_0xfbb3[4]],exitdate:_0x69fax2[_0xfbb3[4]],reason:_0x69fax2[_0xfbb3[2]]},{tableName:_0xfbb3[5],indexes:[{fields:[_0xfbb3[6],_0xfbb3[7],_0xfbb3[8],_0xfbb3[9],_0xfbb3[10]]}]});return _0x69fax3;};
\ No newline at end of file
+var _0x2d96=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x74\x61\x74\x65","\x65\x6E\x74\x65\x72\x64\x61\x74\x65","\x65\x78\x69\x74\x64\x61\x74\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x2d96[0]]=function(_0xcc9ax1,_0xcc9ax2){var _0xcc9ax3=_0xcc9ax1[_0x2d96[11]](_0x2d96[1],{stateinterface:_0xcc9ax2[_0x2d96[2]],queue:_0xcc9ax2[_0x2d96[2]],membername:_0xcc9ax2[_0x2d96[2]],interface:_0xcc9ax2[_0x2d96[2]],state:_0xcc9ax2[_0x2d96[3]],statedesc:_0xcc9ax2[_0x2d96[2]],enterdate:_0xcc9ax2[_0x2d96[4]],exitdate:_0xcc9ax2[_0x2d96[4]],reason:_0xcc9ax2[_0x2d96[2]]},{tableName:_0x2d96[5],indexes:[{fields:[_0x2d96[6],_0x2d96[7],_0x2d96[8],_0x2d96[9],_0x2d96[10]]}]});return _0xcc9ax3;};
\ No newline at end of file
index 3d56ab5..649a772 100644 (file)
@@ -1 +1 @@
-var _0x98d1=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];module[_0x98d1[0]]=function(_0x5c71x1,_0x5c71x2){var _0x5c71x3=_0x5c71x1[_0x98d1[8]](_0x98d1[1],{uniqueid:_0x5c71x2[_0x98d1[2]],calleridnum:_0x5c71x2[_0x98d1[2]],calleridname:_0x5c71x2[_0x98d1[2]],queue:_0x5c71x2[_0x98d1[2]],queuecallerjoinAt:_0x5c71x2[_0x98d1[3]],queuecallerleaveAt:_0x5c71x2[_0x98d1[3]],position:_0x5c71x2[_0x98d1[4]],count:_0x5c71x2[_0x98d1[4]],queuecallerabandon:{type:_0x5c71x2[_0x98d1[5]],defaultValue:false},queuecallerabandonAt:_0x5c71x2[_0x98d1[3]],queuecallercompleteAt:_0x5c71x2[_0x98d1[3]],originalposition:_0x5c71x2[_0x98d1[4]],channel:_0x5c71x2[_0x98d1[2]],channelstate:_0x5c71x2[_0x98d1[4]],channelstatedesc:_0x5c71x2[_0x98d1[2]],connectedlinenum:_0x5c71x2[_0x98d1[2]],connectedlinename:_0x5c71x2[_0x98d1[2]],language:_0x5c71x2[_0x98d1[2]],accountcode:_0x5c71x2[_0x98d1[2]],context:_0x5c71x2[_0x98d1[2]],exten:_0x5c71x2[_0x98d1[2]],priority:_0x5c71x2[_0x98d1[2]]},{tableName:_0x98d1[6],indexes:[{fields:[_0x98d1[7]]}]});return _0x5c71x3;};
\ No newline at end of file
+var _0x80a1=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];module[_0x80a1[0]]=function(_0x9f3cx1,_0x9f3cx2){var _0x9f3cx3=_0x9f3cx1[_0x80a1[8]](_0x80a1[1],{uniqueid:_0x9f3cx2[_0x80a1[2]],calleridnum:_0x9f3cx2[_0x80a1[2]],calleridname:_0x9f3cx2[_0x80a1[2]],queue:_0x9f3cx2[_0x80a1[2]],queuecallerjoinAt:_0x9f3cx2[_0x80a1[3]],queuecallerleaveAt:_0x9f3cx2[_0x80a1[3]],position:_0x9f3cx2[_0x80a1[4]],count:_0x9f3cx2[_0x80a1[4]],queuecallerabandon:{type:_0x9f3cx2[_0x80a1[5]],defaultValue:false},queuecallerabandonAt:_0x9f3cx2[_0x80a1[3]],queuecallercompleteAt:_0x9f3cx2[_0x80a1[3]],originalposition:_0x9f3cx2[_0x80a1[4]],channel:_0x9f3cx2[_0x80a1[2]],channelstate:_0x9f3cx2[_0x80a1[4]],channelstatedesc:_0x9f3cx2[_0x80a1[2]],connectedlinenum:_0x9f3cx2[_0x80a1[2]],connectedlinename:_0x9f3cx2[_0x80a1[2]],language:_0x9f3cx2[_0x80a1[2]],accountcode:_0x9f3cx2[_0x80a1[2]],context:_0x9f3cx2[_0x80a1[2]],exten:_0x9f3cx2[_0x80a1[2]],priority:_0x9f3cx2[_0x80a1[2]]},{tableName:_0x80a1[6],indexes:[{fields:[_0x80a1[7]]}]});return _0x9f3cx3;};
\ No newline at end of file
index cc69906..01be324 100644 (file)
@@ -1 +1 @@
-var _0x2ee8=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x2ee8[0]]=function(_0x79abx1,_0x79abx2){var _0x79abx3=_0x79abx1[_0x2ee8[5]](_0x2ee8[1],{network:{type:_0x79abx2[_0x2ee8[2]]},network_script:{type:_0x79abx2[_0x2ee8[2]]},request:{type:_0x79abx2[_0x2ee8[2]]},channel:{type:_0x79abx2[_0x2ee8[2]]},language:{type:_0x79abx2[_0x2ee8[2]]},type:{type:_0x79abx2[_0x2ee8[2]]},uniqueid:{type:_0x79abx2[_0x2ee8[2]]},version:{type:_0x79abx2[_0x2ee8[2]]},callerid:{type:_0x79abx2[_0x2ee8[2]]},calleridname:{type:_0x79abx2[_0x2ee8[2]]},callingpres:{type:_0x79abx2[_0x2ee8[2]]},callingani2:{type:_0x79abx2[_0x2ee8[2]]},callington:{type:_0x79abx2[_0x2ee8[2]]},callingtns:{type:_0x79abx2[_0x2ee8[2]]},dnid:{type:_0x79abx2[_0x2ee8[2]]},rdnis:{type:_0x79abx2[_0x2ee8[2]]},context:{type:_0x79abx2[_0x2ee8[2]]},extension:{type:_0x79abx2[_0x2ee8[2]]},priority:{type:_0x79abx2[_0x2ee8[2]]},enhanced:{type:_0x79abx2[_0x2ee8[2]]},accountcode:{type:_0x79abx2[_0x2ee8[2]]},threadid:{type:_0x79abx2[_0x2ee8[2]]},project_name:{type:_0x79abx2[_0x2ee8[2]]},joinAt:{type:_0x79abx2[_0x2ee8[3]]},leaveAt:{type:_0x79abx2[_0x2ee8[3]],unique:true}},{tableName:_0x2ee8[4]});return _0x79abx3;};
\ No newline at end of file
+var _0xc4ce=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x64\x65\x66\x69\x6E\x65"];module[_0xc4ce[0]]=function(_0x2f0fx1,_0x2f0fx2){var _0x2f0fx3=_0x2f0fx1[_0xc4ce[5]](_0xc4ce[1],{network:{type:_0x2f0fx2[_0xc4ce[2]]},network_script:{type:_0x2f0fx2[_0xc4ce[2]]},request:{type:_0x2f0fx2[_0xc4ce[2]]},channel:{type:_0x2f0fx2[_0xc4ce[2]]},language:{type:_0x2f0fx2[_0xc4ce[2]]},type:{type:_0x2f0fx2[_0xc4ce[2]]},uniqueid:{type:_0x2f0fx2[_0xc4ce[2]]},version:{type:_0x2f0fx2[_0xc4ce[2]]},callerid:{type:_0x2f0fx2[_0xc4ce[2]]},calleridname:{type:_0x2f0fx2[_0xc4ce[2]]},callingpres:{type:_0x2f0fx2[_0xc4ce[2]]},callingani2:{type:_0x2f0fx2[_0xc4ce[2]]},callington:{type:_0x2f0fx2[_0xc4ce[2]]},callingtns:{type:_0x2f0fx2[_0xc4ce[2]]},dnid:{type:_0x2f0fx2[_0xc4ce[2]]},rdnis:{type:_0x2f0fx2[_0xc4ce[2]]},context:{type:_0x2f0fx2[_0xc4ce[2]]},extension:{type:_0x2f0fx2[_0xc4ce[2]]},priority:{type:_0x2f0fx2[_0xc4ce[2]]},enhanced:{type:_0x2f0fx2[_0xc4ce[2]]},accountcode:{type:_0x2f0fx2[_0xc4ce[2]]},threadid:{type:_0x2f0fx2[_0xc4ce[2]]},project_name:{type:_0x2f0fx2[_0xc4ce[2]]},joinAt:{type:_0x2f0fx2[_0xc4ce[3]]},leaveAt:{type:_0x2f0fx2[_0xc4ce[3]],unique:true}},{tableName:_0xc4ce[4]});return _0x2f0fx3;};
\ No newline at end of file
index d42ee82..23512ad 100644 (file)
@@ -1 +1 @@
-var _0x8a2b=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x8a2b[0]]=function(_0x12c2x1,_0x12c2x2){var _0x12c2x3=_0x12c2x1[_0x8a2b[4]](_0x8a2b[1],{uniqueid:{type:_0x12c2x2[_0x8a2b[2]]},node:{type:_0x12c2x2[_0x8a2b[2]]},application:{type:_0x12c2x2[_0x8a2b[2]]},data:{type:_0x12c2x2[_0x8a2b[2]]}},{tableName:_0x8a2b[3]});return _0x12c2x3;};
\ No newline at end of file
+var _0x91d9=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x91d9[0]]=function(_0x36e4x1,_0x36e4x2){var _0x36e4x3=_0x36e4x1[_0x91d9[4]](_0x91d9[1],{uniqueid:{type:_0x36e4x2[_0x91d9[2]]},node:{type:_0x36e4x2[_0x91d9[2]]},application:{type:_0x36e4x2[_0x91d9[2]]},data:{type:_0x36e4x2[_0x91d9[2]]}},{tableName:_0x91d9[3]});return _0x36e4x3;};
\ No newline at end of file
index fafb3a0..c44fc31 100644 (file)
@@ -1 +1 @@
-var _0xb2b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x54\x45\x58\x54","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xb2b7[0];module[_0xb2b7[1]]=function(_0x6e3ex1,_0x6e3ex2){var _0x6e3ex3=_0x6e3ex1[_0xb2b7[5]](_0xb2b7[2],{tree:_0x6e3ex2[_0xb2b7[3]]},{tableName:_0xb2b7[4]});return _0x6e3ex3;};
\ No newline at end of file
+var _0xbc22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x54\x45\x58\x54","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xbc22[0];module[_0xbc22[1]]=function(_0xc42dx1,_0xc42dx2){var _0xc42dx3=_0xc42dx1[_0xbc22[5]](_0xbc22[2],{tree:_0xc42dx2[_0xbc22[3]]},{tableName:_0xbc22[4]});return _0xc42dx3;};
\ No newline at end of file
index 9c9b4ed..a8ef946 100644 (file)
@@ -1 +1 @@
-var _0x87b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x87b7[0];module[_0x87b7[1]]=function(_0x8be7x1,_0x8be7x2){return _0x8be7x1[_0x87b7[7]](_0x87b7[2],{name:_0x8be7x2[_0x87b7[3]],description:_0x8be7x2[_0x87b7[3]],username:{type:_0x8be7x2[_0x87b7[3]],unique:true},remoteUri:_0x8be7x2[_0x87b7[3]],password:_0x8be7x2[_0x87b7[3]],clientId:_0x8be7x2[_0x87b7[3]],clientSecret:_0x8be7x2[_0x87b7[3]],securityToken:_0x8be7x2[_0x87b7[3]]},{tableName:_0x87b7[4],associate:function(_0x8be7x3){_0x8be7x3[_0x87b7[2]][_0x87b7[6]](_0x8be7x3.SalesforceConfiguration,{foreignKey:_0x87b7[5]})}})};
\ No newline at end of file
+var _0xebac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xebac[0];module[_0xebac[1]]=function(_0x5aa4x1,_0x5aa4x2){return _0x5aa4x1[_0xebac[7]](_0xebac[2],{name:_0x5aa4x2[_0xebac[3]],description:_0x5aa4x2[_0xebac[3]],username:{type:_0x5aa4x2[_0xebac[3]],unique:true},remoteUri:_0x5aa4x2[_0xebac[3]],password:_0x5aa4x2[_0xebac[3]],clientId:_0x5aa4x2[_0xebac[3]],clientSecret:_0x5aa4x2[_0xebac[3]],securityToken:_0x5aa4x2[_0xebac[3]]},{tableName:_0xebac[4],associate:function(_0x5aa4x3){_0x5aa4x3[_0xebac[2]][_0xebac[6]](_0x5aa4x3.SalesforceConfiguration,{foreignKey:_0xebac[5]})}})};
\ No newline at end of file
index 91a42e7..d450bbc 100644 (file)
@@ -1 +1 @@
-var _0xc261=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0xc261[0];module[_0xc261[1]]=function(_0xd26dx1,_0xd26dx2){return _0xd26dx1[_0xc261[14]](_0xc261[2],{name:_0xd26dx2[_0xc261[3]],description:_0xd26dx2[_0xc261[3]]},{tableName:_0xc261[4],associate:function(_0xd26dx3){_0xd26dx3[_0xc261[2]][_0xc261[6]](_0xd26dx3.SalesforceAccount,{foreignKey:_0xc261[5]});_0xd26dx3[_0xc261[2]][_0xc261[9]](_0xd26dx3.SalesforceField,{as:_0xc261[7],foreignKey:_0xc261[8]});_0xd26dx3[_0xc261[2]][_0xc261[9]](_0xd26dx3.SalesforceField,{as:_0xc261[10],foreignKey:_0xc261[11]});_0xd26dx3[_0xc261[2]][_0xc261[9]](_0xd26dx3.SalesforceField,{as:_0xc261[12],foreignKey:_0xc261[13]});}})};
\ No newline at end of file
+var _0xf204=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0xf204[0];module[_0xf204[1]]=function(_0x5d7cx1,_0x5d7cx2){return _0x5d7cx1[_0xf204[14]](_0xf204[2],{name:_0x5d7cx2[_0xf204[3]],description:_0x5d7cx2[_0xf204[3]]},{tableName:_0xf204[4],associate:function(_0x5d7cx3){_0x5d7cx3[_0xf204[2]][_0xf204[6]](_0x5d7cx3.SalesforceAccount,{foreignKey:_0xf204[5]});_0x5d7cx3[_0xf204[2]][_0xf204[9]](_0x5d7cx3.SalesforceField,{as:_0xf204[7],foreignKey:_0xf204[8]});_0x5d7cx3[_0xf204[2]][_0xf204[9]](_0x5d7cx3.SalesforceField,{as:_0xf204[10],foreignKey:_0xf204[11]});_0x5d7cx3[_0xf204[2]][_0xf204[9]](_0x5d7cx3.SalesforceField,{as:_0xf204[12],foreignKey:_0xf204[13]});}})};
\ No newline at end of file
index 54eb658..8847ac7 100644 (file)
@@ -1 +1 @@
-var _0x9fa3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x9fa3[0];module[_0x9fa3[1]]=function(_0x20a4x1,_0x20a4x2){return _0x20a4x1[_0x9fa3[9]](_0x9fa3[2],{type:{type:_0x20a4x2.ENUM(_0x9fa3[3],_0x9fa3[4],_0x9fa3[5]),defaultValue:_0x9fa3[3]},content:_0x20a4x2[_0x9fa3[6]],key:_0x20a4x2[_0x9fa3[6]],keyType:{type:_0x20a4x2.ENUM(_0x9fa3[3],_0x9fa3[4])},keyContent:_0x20a4x2[_0x9fa3[6]],idField:_0x20a4x2[_0x9fa3[6]]},{tableName:_0x9fa3[7],associate:function(_0x20a4x3){_0x20a4x3[_0x9fa3[2]][_0x9fa3[8]](_0x20a4x3.Variable)}})};
\ No newline at end of file
+var _0x30cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x30cf[0];module[_0x30cf[1]]=function(_0xbb0ex1,_0xbb0ex2){return _0xbb0ex1[_0x30cf[9]](_0x30cf[2],{type:{type:_0xbb0ex2.ENUM(_0x30cf[3],_0x30cf[4],_0x30cf[5]),defaultValue:_0x30cf[3]},content:_0xbb0ex2[_0x30cf[6]],key:_0xbb0ex2[_0x30cf[6]],keyType:{type:_0xbb0ex2.ENUM(_0x30cf[3],_0x30cf[4])},keyContent:_0xbb0ex2[_0x30cf[6]],idField:_0xbb0ex2[_0x30cf[6]]},{tableName:_0x30cf[7],associate:function(_0xbb0ex3){_0xbb0ex3[_0x30cf[2]][_0x30cf[8]](_0xbb0ex3.Variable)}})};
\ No newline at end of file
diff --git a/server/models/service.js b/server/models/service.js
new file mode 100644 (file)
index 0000000..d5b6b25
--- /dev/null
@@ -0,0 +1 @@
+var _0x4085=["\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x72\x76\x69\x63\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x65\x72\x76\x69\x63\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x73\x65\x72\x76\x69\x63\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x61\x73\x63\x61\x64\x65","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x4085[0]]=function(_0xf0d0x1,_0xf0d0x2){var _0xf0d0x3=_0xf0d0x1[_0x4085[15]](_0x4085[1],{name:{type:_0xf0d0x2[_0x4085[2]],unique:true},description:{type:_0xf0d0x2[_0x4085[2]],allowNull:true},defaultEntry:{type:_0xf0d0x2[_0x4085[3]],defaultValue:false}},{tableName:_0x4085[4],associate:function(_0xf0d0x4){_0xf0d0x3[_0x4085[7]](_0xf0d0x4.User,{through:_0xf0d0x4[_0x4085[5]],foreignKey:_0x4085[6]});_0xf0d0x3[_0x4085[9]](_0xf0d0x4.CustomField,{as:_0x4085[8],required:false});_0xf0d0x3[_0x4085[9]](_0xf0d0x4.Contact,{as:_0x4085[10],onDelete:_0x4085[11]});_0xf0d0x3[_0x4085[14]](_0x4085[12],{include:[{model:_0xf0d0x4[_0x4085[13]],as:_0x4085[8]}]});}});return _0xf0d0x3;};
\ No newline at end of file
index 8f2d836..febc67a 100644 (file)
@@ -1 +1 @@
-var _0x6aab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67\x73","\x54\x45\x58\x54","\x73\x65\x74\x74\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x6aab[0];module[_0x6aab[1]]=function(_0x4b2cx1,_0x4b2cx2){var _0x4b2cx3=_0x4b2cx1[_0x6aab[5]](_0x6aab[2],{license:_0x4b2cx2[_0x6aab[3]],min_internal:{type:_0x4b2cx2.INTEGER(11),unique:true,defaultValue:1000},agi_port:{type:_0x4b2cx2.INTEGER(11),defaultValue:4573},automation_timeout:{type:_0x4b2cx2.INTEGER(11),defaultValue:3600}},{tableName:_0x6aab[4]});return _0x4b2cx3;};
\ No newline at end of file
+var _0xf43d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67\x73","\x54\x45\x58\x54","\x73\x65\x74\x74\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0xf43d[0];module[_0xf43d[1]]=function(_0xb82dx1,_0xb82dx2){var _0xb82dx3=_0xb82dx1[_0xf43d[5]](_0xf43d[2],{license:_0xb82dx2[_0xf43d[3]],min_internal:{type:_0xb82dx2.INTEGER(11),unique:true,defaultValue:1000},agi_port:{type:_0xb82dx2.INTEGER(11),defaultValue:4573},automation_timeout:{type:_0xb82dx2.INTEGER(11),defaultValue:3600}},{tableName:_0xf43d[4]});return _0xb82dx3;};
\ No newline at end of file
index c142aef..172c494 100644 (file)
@@ -1 +1 @@
-var _0xa199=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x53\x54\x52\x49\x4E\x47","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x64\x65\x66\x69\x6E\x65"];_0xa199[0];module[_0xa199[1]]=function(_0x3f84x1,_0x3f84x2){var _0x3f84x3=_0x3f84x1[_0xa199[5]](_0xa199[2],{name:{type:_0x3f84x2[_0xa199[3]],unique:true,validate:{notEmpty:true}},dsn:{type:_0x3f84x2[_0xa199[3]]},description:_0x3f84x2[_0xa199[3]]},{tableName:_0xa199[4]});return _0x3f84x3;};
\ No newline at end of file
+var _0xcfe2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x53\x54\x52\x49\x4E\x47","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x64\x65\x66\x69\x6E\x65"];_0xcfe2[0];module[_0xcfe2[1]]=function(_0x4a8bx1,_0x4a8bx2){var _0x4a8bx3=_0x4a8bx1[_0xcfe2[5]](_0xcfe2[2],{name:{type:_0x4a8bx2[_0xcfe2[3]],unique:true,validate:{notEmpty:true}},dsn:{type:_0x4a8bx2[_0xcfe2[3]]},description:_0x4a8bx2[_0xcfe2[3]]},{tableName:_0xcfe2[4]});return _0x4a8bx3;};
\ No newline at end of file
index 65a6108..85e2a35 100644 (file)
@@ -1 +1 @@
-var _0xfb23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6C\x6F\x6E\x67","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xfb23[0];module[_0xfb23[1]]=function(_0xace3x1,_0xace3x2){var _0xace3x3=_0xace3x1[_0xfb23[7]](_0xfb23[2],{name:{type:_0xace3x2[_0xfb23[3]],unique:true,validate:{notEmpty:true}},description:_0xace3x2[_0xfb23[3]],preproduction:{type:_0xace3x2[_0xfb23[4]],length:_0xfb23[5]},production:{type:_0xace3x2[_0xfb23[4]],length:_0xfb23[5]}},{tableName:_0xfb23[6]});return _0xace3x3;};
\ No newline at end of file
+var _0xa6c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6C\x6F\x6E\x67","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xa6c5[0];module[_0xa6c5[1]]=function(_0xeff7x1,_0xeff7x2){var _0xeff7x3=_0xeff7x1[_0xa6c5[7]](_0xa6c5[2],{name:{type:_0xeff7x2[_0xa6c5[3]],unique:true,validate:{notEmpty:true}},description:_0xeff7x2[_0xa6c5[3]],preproduction:{type:_0xeff7x2[_0xa6c5[4]],length:_0xa6c5[5]},production:{type:_0xeff7x2[_0xa6c5[4]],length:_0xa6c5[5]}},{tableName:_0xa6c5[6]});return _0xeff7x3;};
\ No newline at end of file
index 371c9fc..fc428b2 100644 (file)
@@ -1 +1 @@
-var _0xc8c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xc8c1[0];module[_0xc8c1[1]]=function(_0x903fx1,_0x903fx2){return _0x903fx1[_0xc8c1[7]](_0xc8c1[2],{name:_0x903fx2[_0xc8c1[3]],description:_0x903fx2[_0xc8c1[3]],username:{type:_0x903fx2[_0xc8c1[3]]},remoteUri:_0x903fx2[_0xc8c1[3]],password:_0x903fx2[_0xc8c1[3]]},{tableName:_0xc8c1[4],associate:function(_0x903fx3){_0x903fx3[_0xc8c1[2]][_0xc8c1[6]](_0x903fx3.SugarcrmConfiguration,{foreignKey:_0xc8c1[5]})}})};
\ No newline at end of file
+var _0x9aac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x9aac[0];module[_0x9aac[1]]=function(_0x5543x1,_0x5543x2){return _0x5543x1[_0x9aac[7]](_0x9aac[2],{name:_0x5543x2[_0x9aac[3]],description:_0x5543x2[_0x9aac[3]],username:{type:_0x5543x2[_0x9aac[3]]},remoteUri:_0x5543x2[_0x9aac[3]],password:_0x5543x2[_0x9aac[3]]},{tableName:_0x9aac[4],associate:function(_0x5543x3){_0x5543x3[_0x9aac[2]][_0x9aac[6]](_0x5543x3.SugarcrmConfiguration,{foreignKey:_0x9aac[5]})}})};
\ No newline at end of file
index ca5e7ee..f1807e0 100644 (file)
@@ -1 +1 @@
-var _0x13f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0x13f1[0];module[_0x13f1[1]]=function(_0x3a1ax1,_0x3a1ax2){return _0x3a1ax1[_0x13f1[14]](_0x13f1[2],{name:_0x3a1ax2[_0x13f1[3]],description:_0x3a1ax2[_0x13f1[3]]},{tableName:_0x13f1[4],associate:function(_0x3a1ax3){_0x3a1ax3[_0x13f1[2]][_0x13f1[6]](_0x3a1ax3.SugarcrmAccount,{foreignKey:_0x13f1[5]});_0x3a1ax3[_0x13f1[2]][_0x13f1[9]](_0x3a1ax3.SugarcrmField,{as:_0x13f1[7],foreignKey:_0x13f1[8]});_0x3a1ax3[_0x13f1[2]][_0x13f1[9]](_0x3a1ax3.SugarcrmField,{as:_0x13f1[10],foreignKey:_0x13f1[11]});_0x3a1ax3[_0x13f1[2]][_0x13f1[9]](_0x3a1ax3.SugarcrmField,{as:_0x13f1[12],foreignKey:_0x13f1[13]});}})};
\ No newline at end of file
+var _0xa1a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0xa1a0[0];module[_0xa1a0[1]]=function(_0x671ex1,_0x671ex2){return _0x671ex1[_0xa1a0[14]](_0xa1a0[2],{name:_0x671ex2[_0xa1a0[3]],description:_0x671ex2[_0xa1a0[3]]},{tableName:_0xa1a0[4],associate:function(_0x671ex3){_0x671ex3[_0xa1a0[2]][_0xa1a0[6]](_0x671ex3.SugarcrmAccount,{foreignKey:_0xa1a0[5]});_0x671ex3[_0xa1a0[2]][_0xa1a0[9]](_0x671ex3.SugarcrmField,{as:_0xa1a0[7],foreignKey:_0xa1a0[8]});_0x671ex3[_0xa1a0[2]][_0xa1a0[9]](_0x671ex3.SugarcrmField,{as:_0xa1a0[10],foreignKey:_0xa1a0[11]});_0x671ex3[_0xa1a0[2]][_0xa1a0[9]](_0x671ex3.SugarcrmField,{as:_0xa1a0[12],foreignKey:_0xa1a0[13]});}})};
\ No newline at end of file
index 34062da..9ba65b2 100644 (file)
@@ -1 +1 @@
-var _0x2844=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x2844[0];module[_0x2844[1]]=function(_0x5f48x1,_0x5f48x2){return _0x5f48x1[_0x2844[9]](_0x2844[2],{type:{type:_0x5f48x2.ENUM(_0x2844[3],_0x2844[4],_0x2844[5]),defaultValue:_0x2844[3]},content:_0x5f48x2[_0x2844[6]],key:_0x5f48x2[_0x2844[6]],keyType:{type:_0x5f48x2.ENUM(_0x2844[3],_0x2844[4])},keyContent:_0x5f48x2[_0x2844[6]],idField:_0x5f48x2[_0x2844[6]]},{tableName:_0x2844[7],associate:function(_0x5f48x3){_0x5f48x3[_0x2844[2]][_0x2844[8]](_0x5f48x3.Variable)}})};
\ No newline at end of file
+var _0xcd22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xcd22[0];module[_0xcd22[1]]=function(_0x59aex1,_0x59aex2){return _0x59aex1[_0xcd22[9]](_0xcd22[2],{type:{type:_0x59aex2.ENUM(_0xcd22[3],_0xcd22[4],_0xcd22[5]),defaultValue:_0xcd22[3]},content:_0x59aex2[_0xcd22[6]],key:_0x59aex2[_0xcd22[6]],keyType:{type:_0x59aex2.ENUM(_0xcd22[3],_0xcd22[4])},keyContent:_0x59aex2[_0xcd22[6]],idField:_0x59aex2[_0xcd22[6]]},{tableName:_0xcd22[7],associate:function(_0x59aex3){_0x59aex3[_0xcd22[2]][_0xcd22[8]](_0x59aex3.Variable)}})};
\ No newline at end of file
index 38cd86f..7a7b0d3 100644 (file)
@@ -1 +1 @@
-var _0x2f4d=["\x65\x78\x70\x6F\x72\x74\x73","\x54\x61\x67","\x53\x54\x52\x49\x4E\x47","\x74\x61\x67\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x2f4d[0]]=function(_0x5ea8x1,_0x5ea8x2){var _0x5ea8x3=_0x5ea8x1[_0x2f4d[4]](_0x2f4d[1],{name:{type:_0x5ea8x2[_0x2f4d[2]],unique:true}},{tableName:_0x2f4d[3]});return _0x5ea8x3;};
\ No newline at end of file
+var _0xf3bc=["\x65\x78\x70\x6F\x72\x74\x73","\x54\x61\x67","\x53\x54\x52\x49\x4E\x47","\x74\x61\x67\x73","\x64\x65\x66\x69\x6E\x65"];module[_0xf3bc[0]]=function(_0xbbfbx1,_0xbbfbx2){var _0xbbfbx3=_0xbbfbx1[_0xf3bc[4]](_0xf3bc[1],{name:{type:_0xbbfbx2[_0xf3bc[2]],unique:true}},{tableName:_0xf3bc[3]});return _0xbbfbx3;};
\ No newline at end of file
index c766634..74c8207 100644 (file)
@@ -1 +1 @@
-var _0x5c22=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x61\x6D","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x65\x61\x6D\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x5c22[0]);module[_0x5c22[1]]=function(_0x14ddx2,_0x14ddx3){var _0x14ddx4=_0x14ddx2[_0x5c22[8]](_0x5c22[2],{name:{type:_0x14ddx3[_0x5c22[3]],allowNull:false,unique:true},description:{type:_0x14ddx3[_0x5c22[3]]},defaultEntry:{type:_0x14ddx3[_0x5c22[4]],defaultValue:0}},{tableName:_0x5c22[5],associate:function(_0x14ddx5){_0x14ddx4[_0x5c22[7]](_0x14ddx5.User,{through:_0x14ddx5[_0x5c22[6]]})}});return _0x14ddx4;};
\ No newline at end of file
+var _0x403c=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x61\x6D","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x65\x61\x6D\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x403c[0]);module[_0x403c[1]]=function(_0xaddcx2,_0xaddcx3){var _0xaddcx4=_0xaddcx2[_0x403c[8]](_0x403c[2],{name:{type:_0xaddcx3[_0x403c[3]],allowNull:false,unique:true},description:{type:_0xaddcx3[_0x403c[3]]},defaultEntry:{type:_0xaddcx3[_0x403c[4]],defaultValue:0}},{tableName:_0x403c[5],associate:function(_0xaddcx5){_0xaddcx4[_0x403c[7]](_0xaddcx5.User,{through:_0xaddcx5[_0x403c[6]]})}});return _0xaddcx4;};
\ No newline at end of file
index 478bd1f..b339063 100644 (file)
@@ -1 +1 @@
-var _0x9df2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x73\x61\x6C\x74","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x6D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x73\x65\x72\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x64\x65\x66\x69\x6E\x65"];_0x9df2[0];var crypto=require(_0x9df2[1]);var md5=require(_0x9df2[2]);var _=require(_0x9df2[3]);module[_0x9df2[4]]=function(_0x3095x4,_0x3095x5){var _0x3095x6=_0x3095x4[_0x9df2[60]](_0x9df2[5],{name:{type:_0x3095x5[_0x9df2[6]],unique:true,validate:{notEmpty:true},set:function(_0x3095x7){this[_0x9df2[8]](_0x9df2[7],_0x3095x7);this[_0x9df2[8]](_0x9df2[9],_0x3095x7);}},password:{type:_0x3095x5[_0x9df2[6]],allowNull:false,validate:{notEmpty:true},set:function(_0x3095x8){this[_0x9df2[10]]=this[_0x9df2[11]]();this[_0x9df2[8]](_0x9df2[12],this[_0x9df2[13]](_0x3095x8));this[_0x9df2[8]](_0x9df2[14],this[_0x9df2[16]](this[_0x9df2[7]]+_0x9df2[15]+_0x3095x8));}},internal:{type:_0x3095x5.INTEGER(11),unique:true,set:function(_0x3095x9){this[_0x9df2[8]](_0x9df2[17],_0x3095x9);this[_0x9df2[8]](_0x9df2[18],_0x3095x9);}},ipaddr:{type:_0x3095x5[_0x9df2[6]],allowNull:true},port:{type:_0x3095x5.INTEGER(5),allowNull:true},regseconds:{type:_0x3095x5.INTEGER(11),allowNull:true},defaultuser:{type:_0x3095x5[_0x9df2[6]],allowNull:true},fullcontact:{type:_0x3095x5[_0x9df2[6]],allowNull:true},regserver:{type:_0x3095x5[_0x9df2[6]],allowNull:true},useragent:{type:_0x3095x5[_0x9df2[6]],allowNull:true},lastms:{type:_0x3095x5.INTEGER(11),allowNull:true},host:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[19]},type:{type:_0x3095x5.ENUM(_0x9df2[20],_0x9df2[21],_0x9df2[22]),allowNull:true,defaultValue:_0x9df2[20]},context:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[23]},permit:{type:_0x3095x5[_0x9df2[6]],allowNull:true},deny:{type:_0x3095x5[_0x9df2[6]],allowNull:true},secret:{type:_0x3095x5[_0x9df2[6]],allowNull:true},md5secret:{type:_0x3095x5[_0x9df2[6]],allowNull:true},remotesecret:{type:_0x3095x5[_0x9df2[6]],allowNull:true},transport:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[24]},dtmfmode:{type:_0x3095x5.ENUM(_0x9df2[25],_0x9df2[26],_0x9df2[27],_0x9df2[28],_0x9df2[29]),allowNull:true,defaultValue:_0x9df2[25]},directmedia:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31],_0x9df2[32],_0x9df2[33]),allowNull:true,defaultValue:_0x9df2[31]},nat:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[34]},callgroup:{type:_0x3095x5[_0x9df2[6]],allowNull:true},pickupgroup:{type:_0x3095x5[_0x9df2[6]],allowNull:true},language:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[35]},disallow:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[36]},allow:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[37]},insecure:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[38]},trustrpid:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true,defaultValue:_0x9df2[31]},progressinband:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31],_0x9df2[39]),allowNull:true},promiscredir:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},useclientcode:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},accountcode:{type:_0x3095x5.INTEGER(11),allowNull:true},setvar:{type:_0x3095x5[_0x9df2[6]],allowNull:true},callerid:{type:_0x3095x5[_0x9df2[6]],allowNull:true,defaultValue:_0x9df2[40]},amaflags:{type:_0x3095x5[_0x9df2[6]],allowNull:true},callcounter:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true,defaultValue:_0x9df2[30]},busylevel:{type:_0x3095x5.INTEGER(11),allowNull:true},allowoverlap:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},allowsubscribe:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},videosupport:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},maxcallbitrate:{type:_0x3095x5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},mailbox:{type:_0x3095x5[_0x9df2[6]],allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x74\x69\x6D\x65\x72\x73":{type:_0x3095x5.ENUM(_0x9df2[41],_0x9df2[42],_0x9df2[43]),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x65\x78\x70\x69\x72\x65\x73":{type:_0x3095x5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x6D\x69\x6E\x73\x65":{type:_0x3095x5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x72\x65\x66\x72\x65\x73\x68\x65\x72":{type:_0x3095x5.ENUM(_0x9df2[44],_0x9df2[45]),allowNull:true},t38pt_usertpsource:{type:_0x3095x5[_0x9df2[6]],allowNull:true},regexten:{type:_0x3095x5[_0x9df2[6]],allowNull:true},fromdomain:{type:_0x3095x5[_0x9df2[6]],allowNull:true},fromuser:{type:_0x3095x5[_0x9df2[6]],allowNull:true},qualify:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true,defaultValue:_0x9df2[30]},defaultip:{type:_0x3095x5[_0x9df2[6]],allowNull:true},rtptimeout:{type:_0x3095x5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0x3095x5.INTEGER(11),allowNull:true},sendrpid:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true,defaultValue:_0x9df2[31]},outboundproxy:{type:_0x3095x5[_0x9df2[6]],allowNull:true},callbackextension:{type:_0x3095x5[_0x9df2[6]],allowNull:true},timert1:{type:_0x3095x5.INTEGER(11),allowNull:true},timerb:{type:_0x3095x5.INTEGER(11),allowNull:true},qualifyfreq:{type:_0x3095x5.INTEGER(11),allowNull:true},constantssrc:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},contactpermit:{type:_0x3095x5[_0x9df2[6]],allowNull:true},contactdeny:{type:_0x3095x5[_0x9df2[6]],allowNull:true},usereqphone:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true,defaultValue:_0x9df2[31]},textsupport:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},faxdetect:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},buggymwi:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},auth:{type:_0x3095x5[_0x9df2[6]],allowNull:true},fullname:{type:_0x3095x5[_0x9df2[6]],allowNull:true},trunkname:{type:_0x3095x5[_0x9df2[6]],allowNull:true},cid_number:{type:_0x3095x5[_0x9df2[6]],allowNull:true},callingpres:{type:_0x3095x5.ENUM(_0x9df2[46],_0x9df2[47],_0x9df2[48],_0x9df2[49],_0x9df2[50],_0x9df2[51],_0x9df2[52],_0x9df2[53]),allowNull:true},mohinterpret:{type:_0x3095x5[_0x9df2[6]],allowNull:true},mohsuggest:{type:_0x3095x5[_0x9df2[6]],allowNull:true},parkinglot:{type:_0x3095x5[_0x9df2[6]],allowNull:true},hasvoicemail:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},subscribemwi:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},vmexten:{type:_0x3095x5[_0x9df2[6]],allowNull:true},description:{type:_0x3095x5[_0x9df2[6]],allowNull:true},autoframing:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},limitonpeers:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true,defaultValue:_0x9df2[30]},rtpkeepalive:{type:_0x3095x5.INTEGER(11),allowNull:true},"\x63\x61\x6C\x6C\x2D\x6C\x69\x6D\x69\x74":{type:_0x3095x5.INTEGER(11),allowNull:true,defaultValue:null},g726nonstandard:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},ignoresdpversion:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},allowtransfer:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},dynamic:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true},encryption:{type:_0x3095x5.ENUM(_0x9df2[30],_0x9df2[31]),allowNull:true,defaultValue:_0x9df2[31]},registry:{type:_0x3095x5[_0x9df2[6]],allowNull:true}},{tableName:_0x9df2[54],defaultScope:{where:{role:_0x9df2[55]}},instanceMethods:{authenticate:function(_0x3095xa){return this[_0x9df2[13]](_0x3095xa)===this[_0x9df2[12]]},makeSalt:function(){return crypto[_0x9df2[57]](16).toString(_0x9df2[56])},encryptPassword:function(_0x3095x8){if(!_0x3095x8||!this[_0x9df2[10]]){return _0x9df2[58]};var _0x3095xb= new Buffer(this[_0x9df2[10]],_0x9df2[56]);return crypto[_0x9df2[59]](_0x3095x8,_0x3095xb,10000,64).toString(_0x9df2[56]);},md5Password:function(_0x3095x8){if(!_0x3095x8){return _0x9df2[58]};return md5(_0x3095x8);}},associate:function(_0x3095xc){}});return _0x3095x6;};
\ No newline at end of file
+var _0xd18d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x73\x61\x6C\x74","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x6D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x73\x65\x72\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x64\x65\x66\x69\x6E\x65"];_0xd18d[0];var crypto=require(_0xd18d[1]);var md5=require(_0xd18d[2]);var _=require(_0xd18d[3]);module[_0xd18d[4]]=function(_0x4a8dx4,_0x4a8dx5){var _0x4a8dx6=_0x4a8dx4[_0xd18d[60]](_0xd18d[5],{name:{type:_0x4a8dx5[_0xd18d[6]],unique:true,validate:{notEmpty:true},set:function(_0x4a8dx7){this[_0xd18d[8]](_0xd18d[7],_0x4a8dx7);this[_0xd18d[8]](_0xd18d[9],_0x4a8dx7);}},password:{type:_0x4a8dx5[_0xd18d[6]],allowNull:false,validate:{notEmpty:true},set:function(_0x4a8dx8){this[_0xd18d[10]]=this[_0xd18d[11]]();this[_0xd18d[8]](_0xd18d[12],this[_0xd18d[13]](_0x4a8dx8));this[_0xd18d[8]](_0xd18d[14],this[_0xd18d[16]](this[_0xd18d[7]]+_0xd18d[15]+_0x4a8dx8));}},internal:{type:_0x4a8dx5.INTEGER(11),unique:true,set:function(_0x4a8dx9){this[_0xd18d[8]](_0xd18d[17],_0x4a8dx9);this[_0xd18d[8]](_0xd18d[18],_0x4a8dx9);}},ipaddr:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},port:{type:_0x4a8dx5.INTEGER(5),allowNull:true},regseconds:{type:_0x4a8dx5.INTEGER(11),allowNull:true},defaultuser:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},fullcontact:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},regserver:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},useragent:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},lastms:{type:_0x4a8dx5.INTEGER(11),allowNull:true},host:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[19]},type:{type:_0x4a8dx5.ENUM(_0xd18d[20],_0xd18d[21],_0xd18d[22]),allowNull:true,defaultValue:_0xd18d[20]},context:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[23]},permit:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},deny:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},secret:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},md5secret:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},remotesecret:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},transport:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[24]},dtmfmode:{type:_0x4a8dx5.ENUM(_0xd18d[25],_0xd18d[26],_0xd18d[27],_0xd18d[28],_0xd18d[29]),allowNull:true,defaultValue:_0xd18d[25]},directmedia:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31],_0xd18d[32],_0xd18d[33]),allowNull:true,defaultValue:_0xd18d[31]},nat:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[34]},callgroup:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},pickupgroup:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},language:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[35]},disallow:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[36]},allow:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[37]},insecure:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[38]},trustrpid:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true,defaultValue:_0xd18d[31]},progressinband:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31],_0xd18d[39]),allowNull:true},promiscredir:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},useclientcode:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},accountcode:{type:_0x4a8dx5.INTEGER(11),allowNull:true},setvar:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},callerid:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true,defaultValue:_0xd18d[40]},amaflags:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},callcounter:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true,defaultValue:_0xd18d[30]},busylevel:{type:_0x4a8dx5.INTEGER(11),allowNull:true},allowoverlap:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},allowsubscribe:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},videosupport:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},maxcallbitrate:{type:_0x4a8dx5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},mailbox:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x74\x69\x6D\x65\x72\x73":{type:_0x4a8dx5.ENUM(_0xd18d[41],_0xd18d[42],_0xd18d[43]),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x65\x78\x70\x69\x72\x65\x73":{type:_0x4a8dx5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x6D\x69\x6E\x73\x65":{type:_0x4a8dx5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x72\x65\x66\x72\x65\x73\x68\x65\x72":{type:_0x4a8dx5.ENUM(_0xd18d[44],_0xd18d[45]),allowNull:true},t38pt_usertpsource:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},regexten:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},fromdomain:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},fromuser:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},qualify:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true,defaultValue:_0xd18d[30]},defaultip:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},rtptimeout:{type:_0x4a8dx5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0x4a8dx5.INTEGER(11),allowNull:true},sendrpid:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true,defaultValue:_0xd18d[31]},outboundproxy:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},callbackextension:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},timert1:{type:_0x4a8dx5.INTEGER(11),allowNull:true},timerb:{type:_0x4a8dx5.INTEGER(11),allowNull:true},qualifyfreq:{type:_0x4a8dx5.INTEGER(11),allowNull:true},constantssrc:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},contactpermit:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},contactdeny:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},usereqphone:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true,defaultValue:_0xd18d[31]},textsupport:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},faxdetect:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},buggymwi:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},auth:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},fullname:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},trunkname:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},cid_number:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},callingpres:{type:_0x4a8dx5.ENUM(_0xd18d[46],_0xd18d[47],_0xd18d[48],_0xd18d[49],_0xd18d[50],_0xd18d[51],_0xd18d[52],_0xd18d[53]),allowNull:true},mohinterpret:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},mohsuggest:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},parkinglot:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},hasvoicemail:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},subscribemwi:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},vmexten:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},description:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true},autoframing:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},limitonpeers:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true,defaultValue:_0xd18d[30]},rtpkeepalive:{type:_0x4a8dx5.INTEGER(11),allowNull:true},"\x63\x61\x6C\x6C\x2D\x6C\x69\x6D\x69\x74":{type:_0x4a8dx5.INTEGER(11),allowNull:true,defaultValue:null},g726nonstandard:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},ignoresdpversion:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},allowtransfer:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},dynamic:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true},encryption:{type:_0x4a8dx5.ENUM(_0xd18d[30],_0xd18d[31]),allowNull:true,defaultValue:_0xd18d[31]},registry:{type:_0x4a8dx5[_0xd18d[6]],allowNull:true}},{tableName:_0xd18d[54],defaultScope:{where:{role:_0xd18d[55]}},instanceMethods:{authenticate:function(_0x4a8dxa){return this[_0xd18d[13]](_0x4a8dxa)===this[_0xd18d[12]]},makeSalt:function(){return crypto[_0xd18d[57]](16).toString(_0xd18d[56])},encryptPassword:function(_0x4a8dx8){if(!_0x4a8dx8||!this[_0xd18d[10]]){return _0xd18d[58]};var _0x4a8dxb= new Buffer(this[_0xd18d[10]],_0xd18d[56]);return crypto[_0xd18d[59]](_0x4a8dx8,_0x4a8dxb,10000,64).toString(_0xd18d[56]);},md5Password:function(_0x4a8dx8){if(!_0x4a8dx8){return _0xd18d[58]};return md5(_0x4a8dx8);}},associate:function(_0x4a8dxc){}});return _0x4a8dx6;};
\ No newline at end of file
index 063bc71..00a5d47 100644 (file)
@@ -1 +1 @@
-var _0xc2db=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x69\x67\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xc2db[0]);module[_0xc2db[1]]=function(_0xbc00x2,_0xbc00x3){var _0xbc00x4=_0xbc00x2[_0xc2db[7]](_0xc2db[2],{name:_0xbc00x3[_0xc2db[3]],channel:_0xbc00x3[_0xc2db[3]],description:_0xbc00x3[_0xc2db[3]],conditions:_0xbc00x3[_0xc2db[4]],actions:_0xbc00x3[_0xc2db[4]],status:{type:_0xbc00x3[_0xc2db[5]],defaultValue:false}},{tableName:_0xc2db[6]});return _0xbc00x4;};
\ No newline at end of file
+var _0x9ec4=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x69\x67\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x9ec4[0]);module[_0x9ec4[1]]=function(_0x1f6fx2,_0x1f6fx3){var _0x1f6fx4=_0x1f6fx2[_0x9ec4[7]](_0x9ec4[2],{name:_0x1f6fx3[_0x9ec4[3]],channel:_0x1f6fx3[_0x9ec4[3]],description:_0x1f6fx3[_0x9ec4[3]],conditions:_0x1f6fx3[_0x9ec4[4]],actions:_0x1f6fx3[_0x9ec4[4]],status:{type:_0x1f6fx3[_0x9ec4[5]],defaultValue:false}},{tableName:_0x9ec4[6]});return _0x1f6fx4;};
\ No newline at end of file
index 7a00375..83b117a 100644 (file)
@@ -1 +1 @@
-var _0xb4b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x75\x6E\x6B","\x53\x54\x52\x49\x4E\x47","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x74\x72\x75\x6E\x6B\x73","\x54\x72\x75\x6E\x6B\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xb4b3[0];var crypto=require(_0xb4b3[1]);var md5=require(_0xb4b3[2]);var _=require(_0xb4b3[3]);module[_0xb4b3[4]]=function(_0x31fdx4,_0x31fdx5){var _0x31fdx6=_0x31fdx4[_0xb4b3[39]](_0xb4b3[5],{name:{type:_0x31fdx5[_0xb4b3[6]],unique:true,validate:{notEmpty:true}},port:{type:_0x31fdx5.INTEGER(5),allowNull:true},defaultuser:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},host:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[7]},type:{type:_0x31fdx5.ENUM(_0xb4b3[8],_0xb4b3[9],_0xb4b3[10]),allowNull:true,defaultValue:_0xb4b3[8]},context:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[11]},permit:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},deny:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},secret:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},transport:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[12]},dtmfmode:{type:_0x31fdx5.ENUM(_0xb4b3[13],_0xb4b3[14],_0xb4b3[15],_0xb4b3[16],_0xb4b3[17]),allowNull:true,defaultValue:_0xb4b3[13]},directmedia:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19],_0xb4b3[20],_0xb4b3[21]),allowNull:true,defaultValue:_0xb4b3[19]},nat:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[22]},language:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[23]},disallow:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},allow:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[24]},insecure:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[25]},trustrpid:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true,defaultValue:_0xb4b3[19]},progressinband:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19],_0xb4b3[26]),allowNull:true},promiscredir:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},useclientcode:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},accountcode:{type:_0x31fdx5.INTEGER(11),allowNull:true},setvar:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},otherFields:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},callerid:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true,defaultValue:_0xb4b3[27]},amaflags:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},callcounter:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true,defaultValue:_0xb4b3[18]},busylevel:{type:_0x31fdx5.INTEGER(11),allowNull:true},allowoverlap:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},allowsubscribe:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},maxcallbitrate:{type:_0x31fdx5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},t38pt_usertpsource:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},regexten:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},fromdomain:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},fromuser:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},qualify:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true,defaultValue:_0xb4b3[18]},defaultip:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},rtptimeout:{type:_0x31fdx5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0x31fdx5.INTEGER(11),allowNull:true},sendrpid:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true,defaultValue:_0xb4b3[19]},outboundproxy:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},callbackextension:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},qualifyfreq:{type:_0x31fdx5.INTEGER(11),allowNull:true},constantssrc:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},contactpermit:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},contactdeny:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},usereqphone:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true,defaultValue:_0xb4b3[19]},textsupport:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},faxdetect:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},buggymwi:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},auth:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},fullname:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},trunkname:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},cid_number:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},callingpres:{type:_0x31fdx5.ENUM(_0xb4b3[28],_0xb4b3[29],_0xb4b3[30],_0xb4b3[31],_0xb4b3[32],_0xb4b3[33],_0xb4b3[34],_0xb4b3[35]),allowNull:true},mohinterpret:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},mohsuggest:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},subscribemwi:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},vmexten:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},description:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true},autoframing:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},limitonpeers:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true,defaultValue:_0xb4b3[18]},rtpkeepalive:{type:_0x31fdx5.INTEGER(11),allowNull:true},"\x63\x61\x6C\x6C\x2D\x6C\x69\x6D\x69\x74":{type:_0x31fdx5.INTEGER(11),allowNull:true,defaultValue:null},g726nonstandard:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},ignoresdpversion:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},allowtransfer:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},dynamic:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true},encryption:{type:_0x31fdx5.ENUM(_0xb4b3[18],_0xb4b3[19]),allowNull:true,defaultValue:_0xb4b3[19]},registry:{type:_0x31fdx5[_0xb4b3[6]],allowNull:true}},{tableName:_0xb4b3[36],getterMethods:{},associate:function(_0x31fdx7){_0x31fdx6[_0xb4b3[38]](_0x31fdx7.VoiceExtension,{foreignKey:_0xb4b3[37]})}});return _0x31fdx6;};
\ No newline at end of file
+var _0xa621=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x75\x6E\x6B","\x53\x54\x52\x49\x4E\x47","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x74\x72\x75\x6E\x6B\x73","\x54\x72\x75\x6E\x6B\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xa621[0];var crypto=require(_0xa621[1]);var md5=require(_0xa621[2]);var _=require(_0xa621[3]);module[_0xa621[4]]=function(_0x161ax4,_0x161ax5){var _0x161ax6=_0x161ax4[_0xa621[39]](_0xa621[5],{name:{type:_0x161ax5[_0xa621[6]],unique:true,validate:{notEmpty:true}},port:{type:_0x161ax5.INTEGER(5),allowNull:true},defaultuser:{type:_0x161ax5[_0xa621[6]],allowNull:true},host:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[7]},type:{type:_0x161ax5.ENUM(_0xa621[8],_0xa621[9],_0xa621[10]),allowNull:true,defaultValue:_0xa621[8]},context:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[11]},permit:{type:_0x161ax5[_0xa621[6]],allowNull:true},deny:{type:_0x161ax5[_0xa621[6]],allowNull:true},secret:{type:_0x161ax5[_0xa621[6]],allowNull:true},transport:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[12]},dtmfmode:{type:_0x161ax5.ENUM(_0xa621[13],_0xa621[14],_0xa621[15],_0xa621[16],_0xa621[17]),allowNull:true,defaultValue:_0xa621[13]},directmedia:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19],_0xa621[20],_0xa621[21]),allowNull:true,defaultValue:_0xa621[19]},nat:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[22]},language:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[23]},disallow:{type:_0x161ax5[_0xa621[6]],allowNull:true},allow:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[24]},insecure:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[25]},trustrpid:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true,defaultValue:_0xa621[19]},progressinband:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19],_0xa621[26]),allowNull:true},promiscredir:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},useclientcode:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},accountcode:{type:_0x161ax5.INTEGER(11),allowNull:true},setvar:{type:_0x161ax5[_0xa621[6]],allowNull:true},otherFields:{type:_0x161ax5[_0xa621[6]],allowNull:true},callerid:{type:_0x161ax5[_0xa621[6]],allowNull:true,defaultValue:_0xa621[27]},amaflags:{type:_0x161ax5[_0xa621[6]],allowNull:true},callcounter:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true,defaultValue:_0xa621[18]},busylevel:{type:_0x161ax5.INTEGER(11),allowNull:true},allowoverlap:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},allowsubscribe:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},maxcallbitrate:{type:_0x161ax5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},t38pt_usertpsource:{type:_0x161ax5[_0xa621[6]],allowNull:true},regexten:{type:_0x161ax5[_0xa621[6]],allowNull:true},fromdomain:{type:_0x161ax5[_0xa621[6]],allowNull:true},fromuser:{type:_0x161ax5[_0xa621[6]],allowNull:true},qualify:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true,defaultValue:_0xa621[18]},defaultip:{type:_0x161ax5[_0xa621[6]],allowNull:true},rtptimeout:{type:_0x161ax5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0x161ax5.INTEGER(11),allowNull:true},sendrpid:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true,defaultValue:_0xa621[19]},outboundproxy:{type:_0x161ax5[_0xa621[6]],allowNull:true},callbackextension:{type:_0x161ax5[_0xa621[6]],allowNull:true},qualifyfreq:{type:_0x161ax5.INTEGER(11),allowNull:true},constantssrc:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},contactpermit:{type:_0x161ax5[_0xa621[6]],allowNull:true},contactdeny:{type:_0x161ax5[_0xa621[6]],allowNull:true},usereqphone:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true,defaultValue:_0xa621[19]},textsupport:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},faxdetect:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},buggymwi:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},auth:{type:_0x161ax5[_0xa621[6]],allowNull:true},fullname:{type:_0x161ax5[_0xa621[6]],allowNull:true},trunkname:{type:_0x161ax5[_0xa621[6]],allowNull:true},cid_number:{type:_0x161ax5[_0xa621[6]],allowNull:true},callingpres:{type:_0x161ax5.ENUM(_0xa621[28],_0xa621[29],_0xa621[30],_0xa621[31],_0xa621[32],_0xa621[33],_0xa621[34],_0xa621[35]),allowNull:true},mohinterpret:{type:_0x161ax5[_0xa621[6]],allowNull:true},mohsuggest:{type:_0x161ax5[_0xa621[6]],allowNull:true},subscribemwi:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},vmexten:{type:_0x161ax5[_0xa621[6]],allowNull:true},description:{type:_0x161ax5[_0xa621[6]],allowNull:true},autoframing:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},limitonpeers:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true,defaultValue:_0xa621[18]},rtpkeepalive:{type:_0x161ax5.INTEGER(11),allowNull:true},"\x63\x61\x6C\x6C\x2D\x6C\x69\x6D\x69\x74":{type:_0x161ax5.INTEGER(11),allowNull:true,defaultValue:null},g726nonstandard:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},ignoresdpversion:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},allowtransfer:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},dynamic:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true},encryption:{type:_0x161ax5.ENUM(_0xa621[18],_0xa621[19]),allowNull:true,defaultValue:_0xa621[19]},registry:{type:_0x161ax5[_0xa621[6]],allowNull:true}},{tableName:_0xa621[36],getterMethods:{},associate:function(_0x161ax7){_0x161ax6[_0xa621[38]](_0x161ax7.VoiceExtension,{foreignKey:_0xa621[37]})}});return _0x161ax6;};
\ No newline at end of file
index 5a1276e..4fc85f8 100644 (file)
@@ -1 +1 @@
-var _0xdb09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x55\x70\x64\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x75\x70\x64\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xdb09[0];module[_0xdb09[1]]=function(_0x50cbx1,_0x50cbx2){var _0x50cbx3=_0x50cbx1[_0xdb09[5]](_0xdb09[2],{name:_0x50cbx2[_0xdb09[3]],description:_0x50cbx2[_0xdb09[3]]},{tableName:_0xdb09[4]});return _0x50cbx3;};
\ No newline at end of file
+var _0x62e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x55\x70\x64\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x75\x70\x64\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x62e7[0];module[_0x62e7[1]]=function(_0xad94x1,_0xad94x2){var _0xad94x3=_0xad94x1[_0x62e7[5]](_0x62e7[2],{name:_0xad94x2[_0x62e7[3]],description:_0xad94x2[_0x62e7[3]]},{tableName:_0x62e7[4]});return _0xad94x3;};
\ No newline at end of file
index c9de49f..3950104 100644 (file)
@@ -1 +1 @@
-var _0xf7ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x55\x70\x6C\x6F\x61\x64","\x53\x54\x52\x49\x4E\x47","","\x54\x68\x65\x20\x6E\x61\x6D\x65\x20\x63\x61\x6E\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79\x21","\x46\x4C\x4F\x41\x54","\x42\x49\x47\x49\x4E\x54","\x49\x4E\x54\x45\x47\x45\x52","\x75\x70\x6C\x6F\x61\x64","\x64\x65\x66\x69\x6E\x65"];_0xf7ac[0];module[_0xf7ac[1]]=function(_0xedf1x1,_0xedf1x2){var _0xedf1x3=_0xedf1x1[_0xf7ac[10]](_0xf7ac[2],{name:_0xedf1x2[_0xf7ac[3]],save_name:_0xedf1x2[_0xf7ac[3]],display_name:{type:_0xedf1x2[_0xf7ac[3]],allowNull:false,defaultValue:_0xf7ac[4],validate:{notEmpty:{msg:_0xf7ac[5]}}},description:_0xedf1x2[_0xf7ac[3]],original_path:_0xedf1x2[_0xf7ac[3]],original_format:_0xedf1x2[_0xf7ac[3]],original_duration:_0xedf1x2[_0xf7ac[6]],original_sampleCount:_0xedf1x2[_0xf7ac[7]],original_channelCount:_0xedf1x2[_0xf7ac[8]],original_bitRate:_0xedf1x2[_0xf7ac[7]],original_sampleRate:_0xedf1x2[_0xf7ac[8]],converted_path:_0xedf1x2[_0xf7ac[3]],converted_format:_0xedf1x2[_0xf7ac[3]],converted_duration:_0xedf1x2[_0xf7ac[6]],converted_sampleCount:_0xedf1x2[_0xf7ac[7]],converted_channelCount:_0xedf1x2[_0xf7ac[8]],converted_bitRate:_0xedf1x2[_0xf7ac[7]],converted_sampleRate:_0xedf1x2[_0xf7ac[8]]},{tableName:_0xf7ac[9]});return _0xedf1x3;};
\ No newline at end of file
+var _0x7771=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x55\x70\x6C\x6F\x61\x64","\x53\x54\x52\x49\x4E\x47","","\x54\x68\x65\x20\x6E\x61\x6D\x65\x20\x63\x61\x6E\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79\x21","\x46\x4C\x4F\x41\x54","\x42\x49\x47\x49\x4E\x54","\x49\x4E\x54\x45\x47\x45\x52","\x75\x70\x6C\x6F\x61\x64","\x64\x65\x66\x69\x6E\x65"];_0x7771[0];module[_0x7771[1]]=function(_0xd042x1,_0xd042x2){var _0xd042x3=_0xd042x1[_0x7771[10]](_0x7771[2],{name:_0xd042x2[_0x7771[3]],save_name:_0xd042x2[_0x7771[3]],display_name:{type:_0xd042x2[_0x7771[3]],allowNull:false,defaultValue:_0x7771[4],validate:{notEmpty:{msg:_0x7771[5]}}},description:_0xd042x2[_0x7771[3]],original_path:_0xd042x2[_0x7771[3]],original_format:_0xd042x2[_0x7771[3]],original_duration:_0xd042x2[_0x7771[6]],original_sampleCount:_0xd042x2[_0x7771[7]],original_channelCount:_0xd042x2[_0x7771[8]],original_bitRate:_0xd042x2[_0x7771[7]],original_sampleRate:_0xd042x2[_0x7771[8]],converted_path:_0xd042x2[_0x7771[3]],converted_format:_0xd042x2[_0x7771[3]],converted_duration:_0xd042x2[_0x7771[6]],converted_sampleCount:_0xd042x2[_0x7771[7]],converted_channelCount:_0xd042x2[_0x7771[8]],converted_bitRate:_0xd042x2[_0x7771[7]],converted_sampleRate:_0xd042x2[_0x7771[8]]},{tableName:_0x7771[9]});return _0xd042x3;};
\ No newline at end of file
index 3da8563..66aad9b 100644 (file)
@@ -1 +1 @@
-var _0xdd2a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x65\x6D\x61\x69\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x73\x61\x6C\x74","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x6D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x6C\x6F\x63\x61\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x73\x65\x72\x73","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x68\x61\x73\x4D\x61\x6E\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x6F\x64\x75\x6C\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x69\x64","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];_0xdd2a[0];var crypto=require(_0xdd2a[1]);var md5=require(_0xdd2a[2]);var _=require(_0xdd2a[3]);module[_0xdd2a[4]]=function(_0x77fcx4,_0x77fcx5){var _0x77fcx6=_0x77fcx4[_0xdd2a[84]](_0xdd2a[5],{name:{type:_0x77fcx5[_0xdd2a[6]],unique:true,validate:{notEmpty:true},set:function(_0x77fcx7){this[_0xdd2a[8]](_0xdd2a[7],_0x77fcx7);this[_0xdd2a[8]](_0xdd2a[9],_0x77fcx7);}},email:{type:_0x77fcx5[_0xdd2a[6]],unique:true,set:function(_0x77fcx8){if(_0x77fcx8){this[_0xdd2a[8]](_0xdd2a[10],_0x77fcx8[_0xdd2a[11]]())}},defaultValue:null},role:{type:_0x77fcx5.ENUM(_0xdd2a[12],_0xdd2a[13],_0xdd2a[14],_0xdd2a[15])},password:{type:_0x77fcx5[_0xdd2a[6]],allowNull:false,validate:{notEmpty:true},set:function(_0x77fcx9){this[_0xdd2a[16]]=this[_0xdd2a[17]]();this[_0xdd2a[8]](_0xdd2a[18],this[_0xdd2a[19]](_0x77fcx9));this[_0xdd2a[8]](_0xdd2a[20],this[_0xdd2a[22]](this[_0xdd2a[7]]+_0xdd2a[21]+_0x77fcx9));}},provider:{type:_0x77fcx5[_0xdd2a[6]],defaultValue:_0xdd2a[23]},internal:{type:_0x77fcx5.INTEGER(11),unique:true,set:function(_0x77fcxa){this[_0xdd2a[8]](_0xdd2a[24],_0x77fcxa);this[_0xdd2a[8]](_0xdd2a[25],_0x77fcxa);}},salt:{type:_0x77fcx5[_0xdd2a[6]]},phone:{type:_0x77fcx5[_0xdd2a[6]]},mobile:{type:_0x77fcx5[_0xdd2a[6]]},address:{type:_0x77fcx5[_0xdd2a[6]]},zipcode:{type:_0x77fcx5[_0xdd2a[6]]},userpic:{type:_0x77fcx5[_0xdd2a[6]]},city:{type:_0x77fcx5[_0xdd2a[6]]},country:{type:_0x77fcx5[_0xdd2a[6]]},facebookUserId:{type:_0x77fcx5[_0xdd2a[26]]},twitterUserId:{type:_0x77fcx5[_0xdd2a[26]]},twitterKey:{type:_0x77fcx5[_0xdd2a[6]]},twitterSecret:{type:_0x77fcx5[_0xdd2a[6]]},github:{type:_0x77fcx5[_0xdd2a[6]]},openId:{type:_0x77fcx5[_0xdd2a[6]]},online:{type:_0x77fcx5[_0xdd2a[27]],defaultValue:false},lastLoginAt:{type:_0x77fcx5[_0xdd2a[28]]},ipaddr:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},port:{type:_0x77fcx5.INTEGER(5),allowNull:true},regseconds:{type:_0x77fcx5.INTEGER(11),allowNull:true},defaultuser:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},fullcontact:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},regserver:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},useragent:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},lastms:{type:_0x77fcx5.INTEGER(11),allowNull:true},host:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[29]},type:{type:_0x77fcx5.ENUM(_0xdd2a[30],_0xdd2a[13],_0xdd2a[31]),allowNull:true,defaultValue:_0xdd2a[30]},context:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[32]},permit:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},deny:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},secret:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},md5secret:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},remotesecret:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},transport:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[33]},dtmfmode:{type:_0x77fcx5.ENUM(_0xdd2a[34],_0xdd2a[35],_0xdd2a[36],_0xdd2a[37],_0xdd2a[38]),allowNull:true,defaultValue:_0xdd2a[34]},directmedia:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40],_0xdd2a[41],_0xdd2a[42]),allowNull:true,defaultValue:_0xdd2a[40]},nat:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[43]},callgroup:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},pickupgroup:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},language:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[44]},disallow:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[45]},allow:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[46]},insecure:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[47]},trustrpid:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true,defaultValue:_0xdd2a[40]},progressinband:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40],_0xdd2a[48]),allowNull:true},promiscredir:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},useclientcode:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},accountcode:{type:_0x77fcx5.INTEGER(11),allowNull:true},setvar:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},callerid:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true,defaultValue:_0xdd2a[49]},amaflags:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},callcounter:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true,defaultValue:_0xdd2a[39]},busylevel:{type:_0x77fcx5.INTEGER(11),allowNull:true},allowoverlap:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},allowsubscribe:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},videosupport:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},maxcallbitrate:{type:_0x77fcx5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},mailbox:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x74\x69\x6D\x65\x72\x73":{type:_0x77fcx5.ENUM(_0xdd2a[50],_0xdd2a[51],_0xdd2a[52]),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x65\x78\x70\x69\x72\x65\x73":{type:_0x77fcx5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x6D\x69\x6E\x73\x65":{type:_0x77fcx5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x72\x65\x66\x72\x65\x73\x68\x65\x72":{type:_0x77fcx5.ENUM(_0xdd2a[53],_0xdd2a[54]),allowNull:true},t38pt_usertpsource:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},regexten:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},fromdomain:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},fromuser:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},qualify:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true,defaultValue:_0xdd2a[39]},defaultip:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},rtptimeout:{type:_0x77fcx5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0x77fcx5.INTEGER(11),allowNull:true},sendrpid:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true,defaultValue:_0xdd2a[40]},outboundproxy:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},callbackextension:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},timert1:{type:_0x77fcx5.INTEGER(11),allowNull:true},timerb:{type:_0x77fcx5.INTEGER(11),allowNull:true},qualifyfreq:{type:_0x77fcx5.INTEGER(11),allowNull:true},constantssrc:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},contactpermit:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},contactdeny:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},usereqphone:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true,defaultValue:_0xdd2a[40]},textsupport:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},faxdetect:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},buggymwi:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},auth:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},fullname:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},trunkname:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},cid_number:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},callingpres:{type:_0x77fcx5.ENUM(_0xdd2a[55],_0xdd2a[56],_0xdd2a[57],_0xdd2a[58],_0xdd2a[59],_0xdd2a[60],_0xdd2a[61],_0xdd2a[62]),allowNull:true},mohinterpret:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},mohsuggest:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},parkinglot:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},hasvoicemail:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},subscribemwi:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},vmexten:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},description:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true},autoframing:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},limitonpeers:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true,defaultValue:_0xdd2a[39]},rtpkeepalive:{type:_0x77fcx5.INTEGER(11),allowNull:true},"\x63\x61\x6C\x6C\x2D\x6C\x69\x6D\x69\x74":{type:_0x77fcx5.INTEGER(11),allowNull:true,defaultValue:null},g726nonstandard:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},ignoresdpversion:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},allowtransfer:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},dynamic:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true},encryption:{type:_0x77fcx5.ENUM(_0xdd2a[39],_0xdd2a[40]),allowNull:true,defaultValue:_0xdd2a[40]},registry:{type:_0x77fcx5[_0xdd2a[6]],allowNull:true}},{tableName:_0xdd2a[63],instanceMethods:{authenticate:function(_0x77fcxb){return this[_0xdd2a[19]](_0x77fcxb)===this[_0xdd2a[18]]},makeSalt:function(){return crypto[_0xdd2a[65]](16).toString(_0xdd2a[64])},encryptPassword:function(_0x77fcx9){if(!_0x77fcx9||!this[_0xdd2a[16]]){return _0xdd2a[66]};var _0x77fcxc= new Buffer(this[_0xdd2a[16]],_0xdd2a[64]);return crypto[_0xdd2a[67]](_0x77fcx9,_0x77fcxc,10000,64).toString(_0xdd2a[64]);},md5Password:function(_0x77fcx9){if(!_0x77fcx9){return _0xdd2a[66]};return md5(_0x77fcx9);}},associate:function(_0x77fcxd){_0x77fcx6[_0xdd2a[68]](_0x77fcxd.ChatMessage);_0x77fcx6[_0xdd2a[68]](_0x77fcxd.Contact);_0x77fcx6[_0xdd2a[70]](_0x77fcxd.Module,{through:_0xdd2a[69]});_0x77fcx6[_0xdd2a[70]](_0x77fcxd.Channel,{through:_0xdd2a[71]});_0x77fcx6[_0xdd2a[70]](_0x77fcxd.MailRoom,{through:_0xdd2a[72]});_0x77fcx6[_0xdd2a[70]](_0x77fcxd.Team,{through:_0x77fcxd[_0xdd2a[73]]});_0x77fcx6[_0xdd2a[70]](_0x77fcxd.ChatRoom,{through:_0x77fcxd[_0xdd2a[74]]});_0x77fcx6[_0xdd2a[70]](_0x77fcxd.MailQueue,{through:_0x77fcxd[_0xdd2a[75]]});_0x77fcx6[_0xdd2a[70]](_0x77fcxd.ChatQueue,{through:_0x77fcxd[_0xdd2a[76]]});_0x77fcx6[_0xdd2a[70]](_0x77fcxd.VoiceQueue,{through:_0x77fcxd[_0xdd2a[77]]});_0x77fcx6[_0xdd2a[68]](_0x77fcxd.VoiceExtension,{foreignKey:_0xdd2a[78],as:_0xdd2a[79],onDelete:_0xdd2a[80]});_0x77fcx6[_0xdd2a[81]](_0xdd2a[13],{where:{role:{$in:[_0xdd2a[12],_0xdd2a[13]]}}});_0x77fcx6[_0xdd2a[81]](_0xdd2a[14],{where:{role:_0xdd2a[14]},attributes:[_0xdd2a[82],_0xdd2a[7],_0xdd2a[10],_0xdd2a[24],_0xdd2a[83]]});}});return _0x77fcx6;};
\ No newline at end of file
+var _0x97a7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x65\x6D\x61\x69\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x73\x61\x6C\x74","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x6D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x6C\x6F\x63\x61\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x73\x65\x72\x73","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x68\x61\x73\x4D\x61\x6E\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x6F\x64\x75\x6C\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x55\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x69\x64","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];_0x97a7[0];var crypto=require(_0x97a7[1]);var md5=require(_0x97a7[2]);var _=require(_0x97a7[3]);module[_0x97a7[4]]=function(_0x92cfx4,_0x92cfx5){var _0x92cfx6=_0x92cfx4[_0x97a7[85]](_0x97a7[5],{name:{type:_0x92cfx5[_0x97a7[6]],unique:true,validate:{notEmpty:true},set:function(_0x92cfx7){this[_0x97a7[8]](_0x97a7[7],_0x92cfx7);this[_0x97a7[8]](_0x97a7[9],_0x92cfx7);}},email:{type:_0x92cfx5[_0x97a7[6]],unique:true,set:function(_0x92cfx8){if(_0x92cfx8){this[_0x97a7[8]](_0x97a7[10],_0x92cfx8[_0x97a7[11]]())}},defaultValue:null},role:{type:_0x92cfx5.ENUM(_0x97a7[12],_0x97a7[13],_0x97a7[14],_0x97a7[15])},password:{type:_0x92cfx5[_0x97a7[6]],allowNull:false,validate:{notEmpty:true},set:function(_0x92cfx9){this[_0x97a7[16]]=this[_0x97a7[17]]();this[_0x97a7[8]](_0x97a7[18],this[_0x97a7[19]](_0x92cfx9));this[_0x97a7[8]](_0x97a7[20],this[_0x97a7[22]](this[_0x97a7[7]]+_0x97a7[21]+_0x92cfx9));}},provider:{type:_0x92cfx5[_0x97a7[6]],defaultValue:_0x97a7[23]},internal:{type:_0x92cfx5.INTEGER(11),unique:true,set:function(_0x92cfxa){this[_0x97a7[8]](_0x97a7[24],_0x92cfxa);this[_0x97a7[8]](_0x97a7[25],_0x92cfxa);}},salt:{type:_0x92cfx5[_0x97a7[6]]},phone:{type:_0x92cfx5[_0x97a7[6]]},mobile:{type:_0x92cfx5[_0x97a7[6]]},address:{type:_0x92cfx5[_0x97a7[6]]},zipcode:{type:_0x92cfx5[_0x97a7[6]]},userpic:{type:_0x92cfx5[_0x97a7[6]]},city:{type:_0x92cfx5[_0x97a7[6]]},country:{type:_0x92cfx5[_0x97a7[6]]},facebookUserId:{type:_0x92cfx5[_0x97a7[26]]},twitterUserId:{type:_0x92cfx5[_0x97a7[26]]},twitterKey:{type:_0x92cfx5[_0x97a7[6]]},twitterSecret:{type:_0x92cfx5[_0x97a7[6]]},github:{type:_0x92cfx5[_0x97a7[6]]},openId:{type:_0x92cfx5[_0x97a7[6]]},online:{type:_0x92cfx5[_0x97a7[27]],defaultValue:false},lastLoginAt:{type:_0x92cfx5[_0x97a7[28]]},ipaddr:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},port:{type:_0x92cfx5.INTEGER(5),allowNull:true},regseconds:{type:_0x92cfx5.INTEGER(11),allowNull:true},defaultuser:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},fullcontact:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},regserver:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},useragent:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},lastms:{type:_0x92cfx5.INTEGER(11),allowNull:true},host:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[29]},type:{type:_0x92cfx5.ENUM(_0x97a7[30],_0x97a7[13],_0x97a7[31]),allowNull:true,defaultValue:_0x97a7[30]},context:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[32]},permit:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},deny:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},secret:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},md5secret:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},remotesecret:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},transport:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[33]},dtmfmode:{type:_0x92cfx5.ENUM(_0x97a7[34],_0x97a7[35],_0x97a7[36],_0x97a7[37],_0x97a7[38]),allowNull:true,defaultValue:_0x97a7[34]},directmedia:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40],_0x97a7[41],_0x97a7[42]),allowNull:true,defaultValue:_0x97a7[40]},nat:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[43]},callgroup:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},pickupgroup:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},language:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[44]},disallow:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[45]},allow:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[46]},insecure:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[47]},trustrpid:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true,defaultValue:_0x97a7[40]},progressinband:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40],_0x97a7[48]),allowNull:true},promiscredir:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},useclientcode:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},accountcode:{type:_0x92cfx5.INTEGER(11),allowNull:true},setvar:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},callerid:{type:_0x92cfx5[_0x97a7[6]],allowNull:true,defaultValue:_0x97a7[49]},amaflags:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},callcounter:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true,defaultValue:_0x97a7[39]},busylevel:{type:_0x92cfx5.INTEGER(11),allowNull:true},allowoverlap:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},allowsubscribe:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},videosupport:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},maxcallbitrate:{type:_0x92cfx5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},mailbox:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x74\x69\x6D\x65\x72\x73":{type:_0x92cfx5.ENUM(_0x97a7[50],_0x97a7[51],_0x97a7[52]),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x65\x78\x70\x69\x72\x65\x73":{type:_0x92cfx5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x6D\x69\x6E\x73\x65":{type:_0x92cfx5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x72\x65\x66\x72\x65\x73\x68\x65\x72":{type:_0x92cfx5.ENUM(_0x97a7[53],_0x97a7[54]),allowNull:true},t38pt_usertpsource:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},regexten:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},fromdomain:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},fromuser:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},qualify:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true,defaultValue:_0x97a7[39]},defaultip:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},rtptimeout:{type:_0x92cfx5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0x92cfx5.INTEGER(11),allowNull:true},sendrpid:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true,defaultValue:_0x97a7[40]},outboundproxy:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},callbackextension:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},timert1:{type:_0x92cfx5.INTEGER(11),allowNull:true},timerb:{type:_0x92cfx5.INTEGER(11),allowNull:true},qualifyfreq:{type:_0x92cfx5.INTEGER(11),allowNull:true},constantssrc:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},contactpermit:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},contactdeny:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},usereqphone:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true,defaultValue:_0x97a7[40]},textsupport:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},faxdetect:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},buggymwi:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},auth:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},fullname:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},trunkname:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},cid_number:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},callingpres:{type:_0x92cfx5.ENUM(_0x97a7[55],_0x97a7[56],_0x97a7[57],_0x97a7[58],_0x97a7[59],_0x97a7[60],_0x97a7[61],_0x97a7[62]),allowNull:true},mohinterpret:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},mohsuggest:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},parkinglot:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},hasvoicemail:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},subscribemwi:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},vmexten:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},description:{type:_0x92cfx5[_0x97a7[6]],allowNull:true},autoframing:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},limitonpeers:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true,defaultValue:_0x97a7[39]},rtpkeepalive:{type:_0x92cfx5.INTEGER(11),allowNull:true},"\x63\x61\x6C\x6C\x2D\x6C\x69\x6D\x69\x74":{type:_0x92cfx5.INTEGER(11),allowNull:true,defaultValue:null},g726nonstandard:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},ignoresdpversion:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},allowtransfer:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},dynamic:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true},encryption:{type:_0x92cfx5.ENUM(_0x97a7[39],_0x97a7[40]),allowNull:true,defaultValue:_0x97a7[40]},registry:{type:_0x92cfx5[_0x97a7[6]],allowNull:true}},{tableName:_0x97a7[63],instanceMethods:{authenticate:function(_0x92cfxb){return this[_0x97a7[19]](_0x92cfxb)===this[_0x97a7[18]]},makeSalt:function(){return crypto[_0x97a7[65]](16).toString(_0x97a7[64])},encryptPassword:function(_0x92cfx9){if(!_0x92cfx9||!this[_0x97a7[16]]){return _0x97a7[66]};var _0x92cfxc= new Buffer(this[_0x97a7[16]],_0x97a7[64]);return crypto[_0x97a7[67]](_0x92cfx9,_0x92cfxc,10000,64).toString(_0x97a7[64]);},md5Password:function(_0x92cfx9){if(!_0x92cfx9){return _0x97a7[66]};return md5(_0x92cfx9);}},associate:function(_0x92cfxd){_0x92cfx6[_0x97a7[68]](_0x92cfxd.ChatMessage);_0x92cfx6[_0x97a7[68]](_0x92cfxd.Contact);_0x92cfx6[_0x97a7[70]](_0x92cfxd.Module,{through:_0x97a7[69]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.Channel,{through:_0x97a7[71]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.MailRoom,{through:_0x97a7[72]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.Team,{through:_0x92cfxd[_0x97a7[73]]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.ChatRoom,{through:_0x92cfxd[_0x97a7[74]]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.MailQueue,{through:_0x92cfxd[_0x97a7[75]]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.ChatQueue,{through:_0x92cfxd[_0x97a7[76]]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.VoiceQueue,{through:_0x92cfxd[_0x97a7[77]]});_0x92cfx6[_0x97a7[70]](_0x92cfxd.Service,{through:_0x92cfxd[_0x97a7[78]]});_0x92cfx6[_0x97a7[68]](_0x92cfxd.VoiceExtension,{foreignKey:_0x97a7[79],as:_0x97a7[80],onDelete:_0x97a7[81]});_0x92cfx6[_0x97a7[82]](_0x97a7[13],{where:{role:{$in:[_0x97a7[12],_0x97a7[13]]}}});_0x92cfx6[_0x97a7[82]](_0x97a7[14],{where:{role:_0x97a7[14]},attributes:[_0x97a7[83],_0x97a7[7],_0x97a7[10],_0x97a7[24],_0x97a7[84]]});}});return _0x92cfx6;};
\ No newline at end of file
index f1a654a..f8ba47c 100644 (file)
@@ -1 +1 @@
-var _0x1392=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x1392[0]);module[_0x1392[1]]=function(_0x1de6x2,_0x1de6x3){var _0x1de6x4=_0x1de6x2[_0x1392[4]](_0x1392[2],{},{tableName:_0x1392[3]});return _0x1de6x4;};
\ No newline at end of file
+var _0x6fb6=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x6fb6[0]);module[_0x6fb6[1]]=function(_0x993bx2,_0x993bx3){var _0x993bx4=_0x993bx2[_0x6fb6[4]](_0x6fb6[2],{},{tableName:_0x6fb6[3]});return _0x993bx4;};
\ No newline at end of file
index 479e76a..f455a9f 100644 (file)
@@ -1 +1 @@
-var _0xb3ea=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xb3ea[0]);module[_0xb3ea[1]]=function(_0xd544x2,_0xd544x3){var _0xd544x4=_0xd544x2[_0xb3ea[6]](_0xb3ea[2],{LastMessageRead:{type:_0xd544x3[_0xb3ea[3]],defaultValue:0},Hide:{type:_0xd544x3[_0xb3ea[4]],defaultValue:false}},{tableName:_0xb3ea[5]});return _0xd544x4;};
\ No newline at end of file
+var _0x7f2e=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x7f2e[0]);module[_0x7f2e[1]]=function(_0x2be6x2,_0x2be6x3){var _0x2be6x4=_0x2be6x2[_0x7f2e[6]](_0x7f2e[2],{LastMessageRead:{type:_0x2be6x3[_0x7f2e[3]],defaultValue:0},Hide:{type:_0x2be6x3[_0x7f2e[4]],defaultValue:false}},{tableName:_0x7f2e[5]});return _0x2be6x4;};
\ No newline at end of file
index 181bfbd..dd6f8cc 100644 (file)
@@ -1 +1 @@
-var _0xa145=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xa145[0]);module[_0xa145[1]]=function(_0x3a2ex2,_0x3a2ex3){var _0x3a2ex4=_0x3a2ex2[_0xa145[4]](_0xa145[2],{},{tableName:_0xa145[3]});return _0x3a2ex4;};
\ No newline at end of file
+var _0x114b=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x114b[0]);module[_0x114b[1]]=function(_0x2f71x2,_0x2f71x3){var _0x2f71x4=_0x2f71x2[_0x114b[4]](_0x114b[2],{},{tableName:_0x114b[3]});return _0x2f71x4;};
\ No newline at end of file
index 10bcac0..7f86407 100644 (file)
@@ -1 +1 @@
-var _0xb4d3=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xb4d3[0]);module[_0xb4d3[1]]=function(_0xb98cx2,_0xb98cx3){var _0xb98cx4=_0xb98cx2[_0xb4d3[4]](_0xb4d3[2],{},{tableName:_0xb4d3[3]});return _0xb98cx4;};
\ No newline at end of file
+var _0x309f=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x309f[0]);module[_0x309f[1]]=function(_0x3978x2,_0x3978x3){var _0x3978x4=_0x3978x2[_0x309f[4]](_0x309f[2],{},{tableName:_0x309f[3]});return _0x3978x4;};
\ No newline at end of file
diff --git a/server/models/user_has_service.js b/server/models/user_has_service.js
new file mode 100644 (file)
index 0000000..cb6a414
--- /dev/null
@@ -0,0 +1 @@
+var _0xbddd=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x73","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xbddd[0]);module[_0xbddd[1]]=function(_0xb237x2,_0xb237x3){var _0xb237x4=_0xb237x2[_0xbddd[6]](_0xbddd[2],{membername:{type:_0xb237x3[_0xbddd[3]]}},{tableName:_0xbddd[4],indexes:[{name:_0xbddd[5],fields:[_0xbddd[5]]}]});return _0xb237x4;};
\ No newline at end of file
index c71e8d4..eaab737 100644 (file)
@@ -1 +1 @@
-var _0x2aa4=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x2aa4[0]);module[_0x2aa4[1]]=function(_0x1b18x2,_0x1b18x3){var _0x1b18x4=_0x1b18x2[_0x2aa4[4]](_0x2aa4[2],{},{tableName:_0x2aa4[3]});return _0x1b18x4;};
\ No newline at end of file
+var _0xc401=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xc401[0]);module[_0xc401[1]]=function(_0x4a99x2,_0x4a99x3){var _0x4a99x4=_0x4a99x2[_0xc401[4]](_0xc401[2],{},{tableName:_0xc401[3]});return _0x4a99x4;};
\ No newline at end of file
index c01c9cc..fd11461 100644 (file)
@@ -1 +1 @@
-var _0x204b=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x30","\x6C\x61\x73\x74\x63\x61\x6C\x6C","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x46\x52\x4F\x4D\x5F\x55\x4E\x49\x58\x54\x49\x4D\x45","\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x69\x3A\x25\x73","\x66\x6E","\x73\x74\x61\x74\x75\x73","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x4E\x4F\x54\x5F\x49\x4E\x55\x53\x45","\x31","\x49\x4E\x55\x53\x45","\x32","\x42\x55\x53\x59","\x33","\x49\x4E\x56\x41\x4C\x49\x44","\x34","\x55\x4E\x41\x56\x41\x49\x4C\x41\x42\x4C\x45","\x35","\x52\x49\x4E\x47\x49\x4E\x47","\x36","\x52\x49\x4E\x47\x49\x4E\x55\x53\x45","\x37","\x4F\x4E\x48\x4F\x4C\x44","\x38","\x73\x74\x61\x74\x75\x73\x64\x65\x73\x63","\x73\x74\x61\x74\x75\x73\x41\x74","\x4E\x4F\x57","\x70\x61\x75\x73\x65\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x204b[0]);module[_0x204b[1]]=function(_0xc23ax2,_0xc23ax3){var _0xc23ax4=_0xc23ax2[_0x204b[37]](_0x204b[2],{logged:{type:_0xc23ax3[_0x204b[3]],defaultValue:false},loggedAt:{type:_0xc23ax3[_0x204b[4]]},ringinuse:{type:_0xc23ax3[_0x204b[3]]},penalty:{type:_0xc23ax3[_0x204b[5]]},stateinterface:{type:_0xc23ax3[_0x204b[6]]},queue:{type:_0xc23ax3[_0x204b[6]]},membername:{type:_0xc23ax3[_0x204b[6]]},interface:{type:_0xc23ax3[_0x204b[6]]},membership:{type:_0xc23ax3[_0x204b[6]]},callstaken:{type:_0xc23ax3[_0x204b[5]]},lastcall:{type:_0xc23ax3[_0x204b[4]],set:function(_0xc23ax5){if(_0xc23ax5===_0x204b[7]){this[_0x204b[9]](_0x204b[8],null)}else {this[_0x204b[9]](_0x204b[8],_0xc23ax2[_0x204b[12]](_0x204b[10],_0xc23ax5,_0x204b[11]))}}},status:{type:_0xc23ax3[_0x204b[5]],set:function(_0xc23ax6){this[_0x204b[9]](_0x204b[13],_0xc23ax6);var _0xc23ax7=_0x204b[14];switch(_0xc23ax6){case _0x204b[7]:_0xc23ax7=_0x204b[14];break ;;case _0x204b[16]:_0xc23ax7=_0x204b[15];break ;;case _0x204b[18]:_0xc23ax7=_0x204b[17];break ;;case _0x204b[20]:_0xc23ax7=_0x204b[19];break ;;case _0x204b[22]:_0xc23ax7=_0x204b[21];break ;;case _0x204b[24]:_0xc23ax7=_0x204b[23];break ;;case _0x204b[26]:_0xc23ax7=_0x204b[25];break ;;case _0x204b[28]:_0xc23ax7=_0x204b[27];break ;;case _0x204b[30]:_0xc23ax7=_0x204b[29];break ;;};this[_0x204b[9]](_0x204b[31],_0xc23ax7);this[_0x204b[9]](_0x204b[32],_0xc23ax2[_0x204b[12]](_0x204b[33]));}},statusdesc:{type:_0xc23ax3[_0x204b[6]]},statusAt:{type:_0xc23ax3[_0x204b[4]]},paused:{type:_0xc23ax3[_0x204b[3]],defaultValue:false,set:function(_0xc23ax8){this[_0x204b[9]](_0x204b[34],parseInt(_0xc23ax8,10)?true:false)}},pausedAt:{type:_0xc23ax3[_0x204b[4]]},reason:{type:_0xc23ax3[_0x204b[6]]}},{tableName:_0x204b[35],indexes:[{name:_0x204b[36],fields:[_0x204b[36]]}]});return _0xc23ax4;};
\ No newline at end of file
+var _0x8ec7=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x30","\x6C\x61\x73\x74\x63\x61\x6C\x6C","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x46\x52\x4F\x4D\x5F\x55\x4E\x49\x58\x54\x49\x4D\x45","\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x69\x3A\x25\x73","\x66\x6E","\x73\x74\x61\x74\x75\x73","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x4E\x4F\x54\x5F\x49\x4E\x55\x53\x45","\x31","\x49\x4E\x55\x53\x45","\x32","\x42\x55\x53\x59","\x33","\x49\x4E\x56\x41\x4C\x49\x44","\x34","\x55\x4E\x41\x56\x41\x49\x4C\x41\x42\x4C\x45","\x35","\x52\x49\x4E\x47\x49\x4E\x47","\x36","\x52\x49\x4E\x47\x49\x4E\x55\x53\x45","\x37","\x4F\x4E\x48\x4F\x4C\x44","\x38","\x73\x74\x61\x74\x75\x73\x64\x65\x73\x63","\x73\x74\x61\x74\x75\x73\x41\x74","\x4E\x4F\x57","\x70\x61\x75\x73\x65\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x8ec7[0]);module[_0x8ec7[1]]=function(_0x48d6x2,_0x48d6x3){var _0x48d6x4=_0x48d6x2[_0x8ec7[37]](_0x8ec7[2],{logged:{type:_0x48d6x3[_0x8ec7[3]],defaultValue:false},loggedAt:{type:_0x48d6x3[_0x8ec7[4]]},ringinuse:{type:_0x48d6x3[_0x8ec7[3]]},penalty:{type:_0x48d6x3[_0x8ec7[5]]},stateinterface:{type:_0x48d6x3[_0x8ec7[6]]},queue:{type:_0x48d6x3[_0x8ec7[6]]},membername:{type:_0x48d6x3[_0x8ec7[6]]},interface:{type:_0x48d6x3[_0x8ec7[6]]},membership:{type:_0x48d6x3[_0x8ec7[6]]},callstaken:{type:_0x48d6x3[_0x8ec7[5]]},lastcall:{type:_0x48d6x3[_0x8ec7[4]],set:function(_0x48d6x5){if(_0x48d6x5===_0x8ec7[7]){this[_0x8ec7[9]](_0x8ec7[8],null)}else {this[_0x8ec7[9]](_0x8ec7[8],_0x48d6x2[_0x8ec7[12]](_0x8ec7[10],_0x48d6x5,_0x8ec7[11]))}}},status:{type:_0x48d6x3[_0x8ec7[5]],set:function(_0x48d6x6){this[_0x8ec7[9]](_0x8ec7[13],_0x48d6x6);var _0x48d6x7=_0x8ec7[14];switch(_0x48d6x6){case _0x8ec7[7]:_0x48d6x7=_0x8ec7[14];break ;;case _0x8ec7[16]:_0x48d6x7=_0x8ec7[15];break ;;case _0x8ec7[18]:_0x48d6x7=_0x8ec7[17];break ;;case _0x8ec7[20]:_0x48d6x7=_0x8ec7[19];break ;;case _0x8ec7[22]:_0x48d6x7=_0x8ec7[21];break ;;case _0x8ec7[24]:_0x48d6x7=_0x8ec7[23];break ;;case _0x8ec7[26]:_0x48d6x7=_0x8ec7[25];break ;;case _0x8ec7[28]:_0x48d6x7=_0x8ec7[27];break ;;case _0x8ec7[30]:_0x48d6x7=_0x8ec7[29];break ;;};this[_0x8ec7[9]](_0x8ec7[31],_0x48d6x7);this[_0x8ec7[9]](_0x8ec7[32],_0x48d6x2[_0x8ec7[12]](_0x8ec7[33]));}},statusdesc:{type:_0x48d6x3[_0x8ec7[6]]},statusAt:{type:_0x48d6x3[_0x8ec7[4]]},paused:{type:_0x48d6x3[_0x8ec7[3]],defaultValue:false,set:function(_0x48d6x8){this[_0x8ec7[9]](_0x8ec7[34],parseInt(_0x48d6x8,10)?true:false)}},pausedAt:{type:_0x48d6x3[_0x8ec7[4]]},reason:{type:_0x48d6x3[_0x8ec7[6]]}},{tableName:_0x8ec7[35],indexes:[{name:_0x8ec7[36],fields:[_0x8ec7[36]]}]});return _0x48d6x4;};
\ No newline at end of file
index f969e0c..eece8c7 100644 (file)
@@ -1 +1 @@
-var _0xd544=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x54\x52\x49\x4E\x47","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xd544[0];module[_0xd544[1]]=function(_0x83adx1,_0x83adx2){var _0x83adx3=_0x83adx1[_0xd544[6]](_0xd544[2],{name:{type:_0x83adx2[_0xd544[3]],unique:true,validate:{notEmpty:true}},description:_0x83adx2[_0xd544[3]]},{tableName:_0xd544[4],associate:function(_0x83adx4){_0x83adx3[_0xd544[5]](_0x83adx4.ZendeskField);_0x83adx3[_0xd544[5]](_0x83adx4.DeskField);_0x83adx3[_0xd544[5]](_0x83adx4.SalesforceField);_0x83adx3[_0xd544[5]](_0x83adx4.FreshdeskField);_0x83adx3[_0xd544[5]](_0x83adx4.SugarcrmField);}});return _0x83adx3;};
\ No newline at end of file
+var _0x57f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x54\x52\x49\x4E\x47","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x57f6[0];module[_0x57f6[1]]=function(_0x4006x1,_0x4006x2){var _0x4006x3=_0x4006x1[_0x57f6[6]](_0x57f6[2],{name:{type:_0x4006x2[_0x57f6[3]],unique:true,validate:{notEmpty:true}},description:_0x4006x2[_0x57f6[3]]},{tableName:_0x57f6[4],associate:function(_0x4006x4){_0x4006x3[_0x57f6[5]](_0x4006x4.ZendeskField);_0x4006x3[_0x57f6[5]](_0x4006x4.DeskField);_0x4006x3[_0x57f6[5]](_0x4006x4.SalesforceField);_0x4006x3[_0x57f6[5]](_0x4006x4.FreshdeskField);_0x4006x3[_0x57f6[5]](_0x4006x4.SugarcrmField);}});return _0x4006x3;};
\ No newline at end of file
index 49e9459..cc23c0f 100644 (file)
@@ -1 +1 @@
-var _0x22d8=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x22d8[0]]=function(_0x200cx1,_0x200cx2){var _0x200cx3=_0x200cx1[_0x22d8[5]](_0x22d8[1],{name:{type:_0x200cx2[_0x22d8[2]],unique:true},description:{type:_0x200cx2[_0x22d8[2]],allowNull:true},defaultEntry:{type:_0x200cx2[_0x22d8[3]],defaultValue:0}},{tableName:_0x22d8[4]});return _0x200cx3;};
\ No newline at end of file
+var _0x8079=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x8079[0]]=function(_0x8d66x1,_0x8d66x2){var _0x8d66x3=_0x8d66x1[_0x8079[5]](_0x8079[1],{name:{type:_0x8d66x2[_0x8079[2]],unique:true},description:{type:_0x8d66x2[_0x8079[2]],allowNull:true},defaultEntry:{type:_0x8d66x2[_0x8079[3]],defaultValue:0}},{tableName:_0x8079[4]});return _0x8d66x3;};
\ No newline at end of file
index fdc3e42..34c4802 100644 (file)
@@ -1 +1 @@
-var _0x2f1e=["\x75\x74\x69\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x6F\x73\x69\x74\x65\x49\x6E\x64\x65\x78","\x4E\x6F\x4F\x70","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x42\x4F\x4F\x4C\x45\x41\x4E","","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x74\x72\x75\x6E\x6B","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x61\x70\x70\x64\x61\x74\x61","\x53\x49\x50\x2F\x24\x7B\x45\x58\x54\x45\x4E\x3A\x25\x64\x7D\x40\x25\x73","\x63\x75\x74\x64\x69\x67\x69\x74\x73","\x66\x6F\x72\x6D\x61\x74","\x73\x61\x76\x65","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x54\x72\x75\x6E\x6B\x49\x64","\x77\x68\x65\x72\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x55\x70\x64\x61\x74\x65","\x62\x65\x66\x6F\x72\x65\x42\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x65\x66\x69\x6E\x65"];var util=require(_0x2f1e[0]);module[_0x2f1e[1]]=function(_0x464fx2,_0x464fx3){var _0x464fx4=_0x464fx2[_0x2f1e[33]](_0x2f1e[2],{context:{type:_0x464fx3[_0x2f1e[3]],allowNull:false,unique:_0x2f1e[4]},exten:{type:_0x464fx3[_0x2f1e[3]],allowNull:false,unique:_0x2f1e[4]},priority:{type:_0x464fx3.INTEGER(11),allowNull:false,defaultValue:1,unique:_0x2f1e[4]},app:{type:_0x464fx3[_0x2f1e[3]],allowNull:false,defaultValue:_0x2f1e[5]},appdata:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},type:{type:_0x464fx3.ENUM(_0x2f1e[6],_0x2f1e[7],_0x2f1e[8],_0x2f1e[9],_0x2f1e[10]),allowNull:false},description:{type:_0x464fx3[_0x2f1e[3]]},interval:{type:_0x464fx3[_0x2f1e[3]]},isApp:{type:_0x464fx3[_0x2f1e[11]],defaultValue:false},appGroup:{type:_0x464fx3[_0x2f1e[3]]},interface:{type:_0x464fx3[_0x2f1e[3]]},app_options:{type:_0x464fx3[_0x2f1e[3]],defaultValue:_0x2f1e[12],allowNull:true},url:{type:_0x464fx3[_0x2f1e[3]],defaultValue:_0x2f1e[12],allowNull:true},timeout:{type:_0x464fx3[_0x2f1e[3]],defaultValue:_0x2f1e[12],allowNull:true},queue:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},audiofile:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},project:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},alt_extension:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},alt_priority:{type:_0x464fx3.INTEGER(11),allowNull:true},alt_context:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},causecode:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},variable:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},value:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},customApp:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},mailbox:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},trunk:{type:_0x464fx3[_0x2f1e[3]],allowNull:true},cutdigits:{type:_0x464fx3.INTEGER(11),allowNull:true},isInterval:{type:_0x464fx3[_0x2f1e[11]],defaultValue:false},callerID:{type:_0x464fx3[_0x2f1e[3]],allowNull:true}},{tableName:_0x2f1e[13],associate:function(_0x464fx5){_0x464fx4[_0x2f1e[16]](_0x464fx5.VoiceExtension,{as:_0x2f1e[14],onDelete:_0x2f1e[15]});_0x464fx4[_0x2f1e[31]](function(_0x464fx6){if(_0x464fx6[_0x2f1e[18]][_0x2f1e[17]]){_0x464fx4[_0x2f1e[30]]({where:{TrunkId:_0x464fx6[_0x2f1e[29]][_0x2f1e[28]]}})[_0x2f1e[27]](function(_0x464fx8){_0x464fx8[_0x2f1e[26]](function(_0x464fx9){_0x464fx9[_0x2f1e[21]]=util[_0x2f1e[24]](_0x2f1e[22],_0x464fx9[_0x2f1e[23]],_0x464fx9[_0x2f1e[17]]);_0x464fx9[_0x2f1e[25]]();})})[_0x2f1e[20]](function(_0x464fx7){console[_0x2f1e[19]](_0x464fx7)})}});_0x464fx4[_0x2f1e[32]](function(_0x464fx8){_0x464fx8[_0x2f1e[26]](function(_0x464fx9){if(_0x464fx9[_0x2f1e[17]]){_0x464fx9[_0x2f1e[21]]=util[_0x2f1e[24]](_0x2f1e[22],_0x464fx9[_0x2f1e[23]],_0x464fx9[_0x2f1e[17]])}})});}});return _0x464fx4;};
\ No newline at end of file
+var _0x1651=["\x75\x74\x69\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x6F\x73\x69\x74\x65\x49\x6E\x64\x65\x78","\x4E\x6F\x4F\x70","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x42\x4F\x4F\x4C\x45\x41\x4E","","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x74\x72\x75\x6E\x6B","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x61\x70\x70\x64\x61\x74\x61","\x53\x49\x50\x2F\x24\x7B\x45\x58\x54\x45\x4E\x3A\x25\x64\x7D\x40\x25\x73","\x63\x75\x74\x64\x69\x67\x69\x74\x73","\x66\x6F\x72\x6D\x61\x74","\x73\x61\x76\x65","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x54\x72\x75\x6E\x6B\x49\x64","\x77\x68\x65\x72\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x55\x70\x64\x61\x74\x65","\x62\x65\x66\x6F\x72\x65\x42\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x65\x66\x69\x6E\x65"];var util=require(_0x1651[0]);module[_0x1651[1]]=function(_0xfc9bx2,_0xfc9bx3){var _0xfc9bx4=_0xfc9bx2[_0x1651[33]](_0x1651[2],{context:{type:_0xfc9bx3[_0x1651[3]],allowNull:false,unique:_0x1651[4]},exten:{type:_0xfc9bx3[_0x1651[3]],allowNull:false,unique:_0x1651[4]},priority:{type:_0xfc9bx3.INTEGER(11),allowNull:false,defaultValue:1,unique:_0x1651[4]},app:{type:_0xfc9bx3[_0x1651[3]],allowNull:false,defaultValue:_0x1651[5]},appdata:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},type:{type:_0xfc9bx3.ENUM(_0x1651[6],_0x1651[7],_0x1651[8],_0x1651[9],_0x1651[10]),allowNull:false},description:{type:_0xfc9bx3[_0x1651[3]]},interval:{type:_0xfc9bx3[_0x1651[3]]},isApp:{type:_0xfc9bx3[_0x1651[11]],defaultValue:false},appGroup:{type:_0xfc9bx3[_0x1651[3]]},interface:{type:_0xfc9bx3[_0x1651[3]]},app_options:{type:_0xfc9bx3[_0x1651[3]],defaultValue:_0x1651[12],allowNull:true},url:{type:_0xfc9bx3[_0x1651[3]],defaultValue:_0x1651[12],allowNull:true},timeout:{type:_0xfc9bx3[_0x1651[3]],defaultValue:_0x1651[12],allowNull:true},queue:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},audiofile:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},project:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},alt_extension:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},alt_priority:{type:_0xfc9bx3.INTEGER(11),allowNull:true},alt_context:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},causecode:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},variable:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},value:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},customApp:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},mailbox:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},trunk:{type:_0xfc9bx3[_0x1651[3]],allowNull:true},cutdigits:{type:_0xfc9bx3.INTEGER(11),allowNull:true},isInterval:{type:_0xfc9bx3[_0x1651[11]],defaultValue:false},callerID:{type:_0xfc9bx3[_0x1651[3]],allowNull:true}},{tableName:_0x1651[13],associate:function(_0xfc9bx5){_0xfc9bx4[_0x1651[16]](_0xfc9bx5.VoiceExtension,{as:_0x1651[14],onDelete:_0x1651[15]});_0xfc9bx4[_0x1651[31]](function(_0xfc9bx6){if(_0xfc9bx6[_0x1651[18]][_0x1651[17]]){_0xfc9bx4[_0x1651[30]]({where:{TrunkId:_0xfc9bx6[_0x1651[29]][_0x1651[28]]}})[_0x1651[27]](function(_0xfc9bx8){_0xfc9bx8[_0x1651[26]](function(_0xfc9bx9){_0xfc9bx9[_0x1651[21]]=util[_0x1651[24]](_0x1651[22],_0xfc9bx9[_0x1651[23]],_0xfc9bx9[_0x1651[17]]);_0xfc9bx9[_0x1651[25]]();})})[_0x1651[20]](function(_0xfc9bx7){console[_0x1651[19]](_0xfc9bx7)})}});_0xfc9bx4[_0x1651[32]](function(_0xfc9bx8){_0xfc9bx8[_0x1651[26]](function(_0xfc9bx9){if(_0xfc9bx9[_0x1651[17]]){_0xfc9bx9[_0x1651[21]]=util[_0x1651[24]](_0x1651[22],_0xfc9bx9[_0x1651[23]],_0xfc9bx9[_0x1651[17]])}})});}});return _0xfc9bx4;};
\ No newline at end of file
index 0137d05..5918e14 100644 (file)
@@ -1 +1 @@
-var _0xc034=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x63\x75\x73\x74\x6F\x6D","\x66\x69\x6C\x65\x73","\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33","\x6D\x70\x33","\x77\x61\x76","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x64\x65\x66\x69\x6E\x65","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73\x20\x6E\x61\x6D\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x6E\x74\x72\x79","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x64\x65\x6C\x65\x74\x65\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73","\x62\x65\x66\x6F\x72\x65\x44\x65\x6C\x65\x74\x65"];module[_0xc034[0]]=function(_0x4e2bx1,_0x4e2bx2){var _0x4e2bx3=_0x4e2bx1[_0xc034[13]](_0xc034[1],{name:{type:_0x4e2bx2[_0xc034[2]],allowNull:false,unique:true},mode:{type:_0x4e2bx2.ENUM(_0xc034[3],_0xc034[4],_0xc034[5],_0xc034[6],_0xc034[7],_0xc034[8]),allowNull:true,defaultValue:_0xc034[4]},directory:{type:_0x4e2bx2[_0xc034[2]],allowNull:true},application:{type:_0x4e2bx2[_0xc034[2]],allowNull:true},digit:{type:_0x4e2bx2[_0xc034[2]],allowNull:true},sort:{type:_0x4e2bx2[_0xc034[2]],allowNull:true},format:{type:_0x4e2bx2[_0xc034[2]],allowNull:true,defaultValue:_0xc034[9]},stamp:{type:_0xc034[10]},defaultEntry:{type:_0x4e2bx2[_0xc034[11]],defaultValue:0}},{tableName:_0xc034[12]});_0x4e2bx3[_0xc034[19]](function(_0x4e2bx4){if(_0x4e2bx4[_0xc034[15]](_0xc034[14])){throw  new Error(_0xc034[16])};if(_0x4e2bx4[_0xc034[17]]){throw  new Error(_0xc034[18])};});_0x4e2bx3[_0xc034[21]](function(_0x4e2bx4){if(_0x4e2bx4[_0xc034[17]]){throw  new Error(_0xc034[20])}});return _0x4e2bx3;};
\ No newline at end of file
+var _0x632c=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x63\x75\x73\x74\x6F\x6D","\x66\x69\x6C\x65\x73","\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33","\x6D\x70\x33","\x77\x61\x76","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x64\x65\x66\x69\x6E\x65","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73\x20\x6E\x61\x6D\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x6E\x74\x72\x79","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x64\x65\x6C\x65\x74\x65\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73","\x62\x65\x66\x6F\x72\x65\x44\x65\x6C\x65\x74\x65"];module[_0x632c[0]]=function(_0x5bdex1,_0x5bdex2){var _0x5bdex3=_0x5bdex1[_0x632c[13]](_0x632c[1],{name:{type:_0x5bdex2[_0x632c[2]],allowNull:false,unique:true},mode:{type:_0x5bdex2.ENUM(_0x632c[3],_0x632c[4],_0x632c[5],_0x632c[6],_0x632c[7],_0x632c[8]),allowNull:true,defaultValue:_0x632c[4]},directory:{type:_0x5bdex2[_0x632c[2]],allowNull:true},application:{type:_0x5bdex2[_0x632c[2]],allowNull:true},digit:{type:_0x5bdex2[_0x632c[2]],allowNull:true},sort:{type:_0x5bdex2[_0x632c[2]],allowNull:true},format:{type:_0x5bdex2[_0x632c[2]],allowNull:true,defaultValue:_0x632c[9]},stamp:{type:_0x632c[10]},defaultEntry:{type:_0x5bdex2[_0x632c[11]],defaultValue:0}},{tableName:_0x632c[12]});_0x5bdex3[_0x632c[19]](function(_0x5bdex4){if(_0x5bdex4[_0x632c[15]](_0x632c[14])){throw  new Error(_0x632c[16])};if(_0x5bdex4[_0x632c[17]]){throw  new Error(_0x632c[18])};});_0x5bdex3[_0x632c[21]](function(_0x5bdex4){if(_0x5bdex4[_0x632c[17]]){throw  new Error(_0x632c[20])}});return _0x5bdex3;};
\ No newline at end of file
index d28c970..b50b5a8 100644 (file)
@@ -1 +1 @@
-var _0xca7d=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x64\x65\x66\x61\x75\x6C\x74","","\x79\x65\x73","\x6E\x6F","\x76\x61\x72\x73","\x61\x6C\x6C","\x72\x69\x6E\x67\x61\x6C\x6C","\x6C\x65\x61\x73\x74\x72\x65\x63\x65\x6E\x74","\x66\x65\x77\x65\x73\x74\x63\x61\x6C\x6C\x73","\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6C\x69\x6E\x65\x61\x72","\x77\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6F\x72\x64\x65\x72\x65\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x71\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x71\x75\x65\x75\x65\x20\x6E\x61\x6D\x65","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65"];module[_0xca7d[0]]=function(_0x16aax1,_0x16aax2){var _0x16aax3=_0x16aax1[_0xca7d[21]](_0xca7d[1],{name:{type:_0x16aax2[_0xca7d[2]],primaryKey:true,unique:true},musiconhold:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[3]},announce:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[4]},context:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},timeout:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},ringinuse:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defaultValue:_0xca7d[6]},setinterfacevar:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defaultValue:_0xca7d[5]},setqueuevar:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defaultValue:_0xca7d[5]},setqueueentryvar:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defautValue:_0xca7d[5]},eventwhencalled:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6],_0xca7d[7]),allowNull:true,defautValue:_0xca7d[5]},eventmemberstatus:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defautValue:_0xca7d[5]},monitor_format:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[4]},membermacro:{type:_0x16aax2[_0xca7d[2]],allowNull:true},description:{type:_0x16aax2[_0xca7d[2]],allowNull:true},membergosub:{type:_0x16aax2[_0xca7d[2]],allowNull:true},queue_youarenext:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_thereare:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_callswaiting:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_quantity1:{type:_0x16aax2[_0xca7d[2]],allowNull:true},queue_quantity2:{type:_0x16aax2[_0xca7d[2]],allowNull:true},queue_holdtime:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_minutes:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_seconds:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_minute:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_thankyou:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:null},queue_callerannounce:{type:_0x16aax2[_0xca7d[2]],allowNull:true},queue_reporthold:{type:_0x16aax2[_0xca7d[2]],allowNull:true},announce_frequency:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},announce_to_first_user:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true},min_announce_frequency:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},announce_round_seconds:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},announce_holdtime:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[6]},announce_position:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[6]},announce_position_limit:{type:_0x16aax2.INTEGER(11),allowNull:true},periodic_announce:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[4]},periodic_announce_frequency:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},relative_periodic_announce:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defaultValue:_0xca7d[5]},random_periodic_announce:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defaultValue:_0xca7d[6]},retry:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},wrapuptime:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},penaltymemberslimit:{type:_0x16aax2.INTEGER(11),allowNull:true},autofill:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true},monitor_type:{type:_0x16aax2[_0xca7d[2]],allowNull:true},autopause:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6],_0xca7d[8]),allowNull:true,defaultValue:_0xca7d[6]},autopausedelay:{type:_0x16aax2.INTEGER(11),allowNull:true},autopausebusy:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true},autopauseunavail:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true},maxlen:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},servicelevel:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},strategy:{type:_0x16aax2.ENUM(_0xca7d[9],_0xca7d[10],_0xca7d[11],_0xca7d[12],_0xca7d[13],_0xca7d[14],_0xca7d[15],_0xca7d[16]),allowNull:true},joinempty:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[5]},leavewhenempty:{type:_0x16aax2[_0xca7d[2]],allowNull:true,defaultValue:_0xca7d[6]},reportholdtime:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defaultValue:_0xca7d[6]},memberdelay:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},weight:{type:_0x16aax2.INTEGER(11),allowNull:true,defaultValue:0},timeoutrestart:{type:_0x16aax2.ENUM(_0xca7d[5],_0xca7d[6]),allowNull:true,defaultValue:_0xca7d[6]},defaultrule:{type:_0x16aax2[_0xca7d[2]],allowNull:true},timeoutpriority:{type:_0x16aax2[_0xca7d[2]],allowNull:true}},{tableName:_0xca7d[17],associate:function(_0x16aax4){_0x16aax3[_0xca7d[20]](_0x16aax4.User,{through:_0x16aax4[_0xca7d[18]],foreignKey:_0xca7d[19]})}});_0x16aax3[_0xca7d[25]](function(_0x16aax5){if(_0x16aax5[_0xca7d[23]](_0xca7d[22])){throw  new Error(_0xca7d[24])}});return _0x16aax3;};
\ No newline at end of file
+var _0xa222=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x64\x65\x66\x61\x75\x6C\x74","","\x79\x65\x73","\x6E\x6F","\x76\x61\x72\x73","\x61\x6C\x6C","\x72\x69\x6E\x67\x61\x6C\x6C","\x6C\x65\x61\x73\x74\x72\x65\x63\x65\x6E\x74","\x66\x65\x77\x65\x73\x74\x63\x61\x6C\x6C\x73","\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6C\x69\x6E\x65\x61\x72","\x77\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6F\x72\x64\x65\x72\x65\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x71\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x71\x75\x65\x75\x65\x20\x6E\x61\x6D\x65","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65"];module[_0xa222[0]]=function(_0x62d4x1,_0x62d4x2){var _0x62d4x3=_0x62d4x1[_0xa222[21]](_0xa222[1],{name:{type:_0x62d4x2[_0xa222[2]],primaryKey:true,unique:true},musiconhold:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[3]},announce:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[4]},context:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},timeout:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},ringinuse:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defaultValue:_0xa222[6]},setinterfacevar:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defaultValue:_0xa222[5]},setqueuevar:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defaultValue:_0xa222[5]},setqueueentryvar:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defautValue:_0xa222[5]},eventwhencalled:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6],_0xa222[7]),allowNull:true,defautValue:_0xa222[5]},eventmemberstatus:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defautValue:_0xa222[5]},monitor_format:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[4]},membermacro:{type:_0x62d4x2[_0xa222[2]],allowNull:true},description:{type:_0x62d4x2[_0xa222[2]],allowNull:true},membergosub:{type:_0x62d4x2[_0xa222[2]],allowNull:true},queue_youarenext:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_thereare:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_callswaiting:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_quantity1:{type:_0x62d4x2[_0xa222[2]],allowNull:true},queue_quantity2:{type:_0x62d4x2[_0xa222[2]],allowNull:true},queue_holdtime:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_minutes:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_seconds:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_minute:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_thankyou:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:null},queue_callerannounce:{type:_0x62d4x2[_0xa222[2]],allowNull:true},queue_reporthold:{type:_0x62d4x2[_0xa222[2]],allowNull:true},announce_frequency:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},announce_to_first_user:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true},min_announce_frequency:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},announce_round_seconds:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},announce_holdtime:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[6]},announce_position:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[6]},announce_position_limit:{type:_0x62d4x2.INTEGER(11),allowNull:true},periodic_announce:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[4]},periodic_announce_frequency:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},relative_periodic_announce:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defaultValue:_0xa222[5]},random_periodic_announce:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defaultValue:_0xa222[6]},retry:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},wrapuptime:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},penaltymemberslimit:{type:_0x62d4x2.INTEGER(11),allowNull:true},autofill:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true},monitor_type:{type:_0x62d4x2[_0xa222[2]],allowNull:true},autopause:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6],_0xa222[8]),allowNull:true,defaultValue:_0xa222[6]},autopausedelay:{type:_0x62d4x2.INTEGER(11),allowNull:true},autopausebusy:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true},autopauseunavail:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true},maxlen:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},servicelevel:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},strategy:{type:_0x62d4x2.ENUM(_0xa222[9],_0xa222[10],_0xa222[11],_0xa222[12],_0xa222[13],_0xa222[14],_0xa222[15],_0xa222[16]),allowNull:true},joinempty:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[5]},leavewhenempty:{type:_0x62d4x2[_0xa222[2]],allowNull:true,defaultValue:_0xa222[6]},reportholdtime:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defaultValue:_0xa222[6]},memberdelay:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},weight:{type:_0x62d4x2.INTEGER(11),allowNull:true,defaultValue:0},timeoutrestart:{type:_0x62d4x2.ENUM(_0xa222[5],_0xa222[6]),allowNull:true,defaultValue:_0xa222[6]},defaultrule:{type:_0x62d4x2[_0xa222[2]],allowNull:true},timeoutpriority:{type:_0x62d4x2[_0xa222[2]],allowNull:true}},{tableName:_0xa222[17],associate:function(_0x62d4x4){_0x62d4x3[_0xa222[20]](_0x62d4x4.User,{through:_0x62d4x4[_0xa222[18]],foreignKey:_0xa222[19]})}});_0x62d4x3[_0xa222[25]](function(_0x62d4x5){if(_0x62d4x5[_0xa222[23]](_0xa222[22])){throw  new Error(_0xa222[24])}});return _0x62d4x3;};
\ No newline at end of file
index 3226340..a18efb7 100644 (file)
@@ -1 +1 @@
-var _0xcff2=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x65\x73\x74\x5F\x6D\x61\x69\x6C\x62\x6F\x78","","\x63\x65\x6E\x74\x72\x61\x6C","\x79\x65\x73","\x6E\x6F","\x54\x49\x4E\x59\x49\x4E\x54\x28\x34\x29","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x66\x69\x6E\x65"];module[_0xcff2[0]]=function(_0x1db9x1,_0x1db9x2){var _0x1db9x3=_0x1db9x1[_0xcff2[15]](_0xcff2[1],{uniqueid:{type:_0x1db9x2.INTEGER(4),primaryKey:true,allowNull:false,autoIncrement:true},customer_id:{type:_0x1db9x2[_0xcff2[2]]},context:{type:_0x1db9x2[_0xcff2[2]],defaultValue:_0xcff2[3],unique:_0xcff2[4]},mailbox:{type:_0x1db9x2[_0xcff2[2]],defaultValue:_0xcff2[5],allowNull:false,unique:_0xcff2[4]},password:{type:_0x1db9x2[_0xcff2[2]]},fullname:{type:_0x1db9x2[_0xcff2[2]]},email:{type:_0x1db9x2[_0xcff2[2]]},pager:{type:_0x1db9x2[_0xcff2[2]]},tz:{type:_0x1db9x2[_0xcff2[2]],defaultValue:_0xcff2[6]},attach:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[7],allowNull:false},saycid:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[7],allowNull:false},dialout:{type:_0x1db9x2[_0xcff2[2]]},callback:{type:_0x1db9x2[_0xcff2[2]]},review:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},operator:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},envelope:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},sayduration:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},saydurationm:{type:_0xcff2[9],defaultValue:1,allowNull:false},sendvoicemail:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},"\x64\x65\x6C\x65\x74\x65":{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},nextaftercmd:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[7],allowNull:false},forcename:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},forcegreetings:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[8],allowNull:false},hidefromdir:{type:_0x1db9x2.ENUM(_0xcff2[7],_0xcff2[8]),defaultValue:_0xcff2[7],allowNull:false},stamp:{type:_0xcff2[10]},emailsubject:{type:_0x1db9x2[_0xcff2[2]]},emailbody:{type:_0x1db9x2[_0xcff2[2]]},name:{type:_0x1db9x2[_0xcff2[2]]},maxsecs:{type:_0x1db9x2.INTEGER(255),defaultValue:180,allowNull:false},maxmsg:{type:_0x1db9x2.INTEGER(255),defaultValue:100,allowNull:false}},{tableName:_0xcff2[11],indexes:[{name:_0xcff2[12],fields:[_0xcff2[13],_0xcff2[14]]}]});return _0x1db9x3;};
\ No newline at end of file
+var _0xb051=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x65\x73\x74\x5F\x6D\x61\x69\x6C\x62\x6F\x78","","\x63\x65\x6E\x74\x72\x61\x6C","\x79\x65\x73","\x6E\x6F","\x54\x49\x4E\x59\x49\x4E\x54\x28\x34\x29","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x66\x69\x6E\x65"];module[_0xb051[0]]=function(_0x8a09x1,_0x8a09x2){var _0x8a09x3=_0x8a09x1[_0xb051[15]](_0xb051[1],{uniqueid:{type:_0x8a09x2.INTEGER(4),primaryKey:true,allowNull:false,autoIncrement:true},customer_id:{type:_0x8a09x2[_0xb051[2]]},context:{type:_0x8a09x2[_0xb051[2]],defaultValue:_0xb051[3],unique:_0xb051[4]},mailbox:{type:_0x8a09x2[_0xb051[2]],defaultValue:_0xb051[5],allowNull:false,unique:_0xb051[4]},password:{type:_0x8a09x2[_0xb051[2]]},fullname:{type:_0x8a09x2[_0xb051[2]]},email:{type:_0x8a09x2[_0xb051[2]]},pager:{type:_0x8a09x2[_0xb051[2]]},tz:{type:_0x8a09x2[_0xb051[2]],defaultValue:_0xb051[6]},attach:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[7],allowNull:false},saycid:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[7],allowNull:false},dialout:{type:_0x8a09x2[_0xb051[2]]},callback:{type:_0x8a09x2[_0xb051[2]]},review:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},operator:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},envelope:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},sayduration:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},saydurationm:{type:_0xb051[9],defaultValue:1,allowNull:false},sendvoicemail:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},"\x64\x65\x6C\x65\x74\x65":{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},nextaftercmd:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[7],allowNull:false},forcename:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},forcegreetings:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[8],allowNull:false},hidefromdir:{type:_0x8a09x2.ENUM(_0xb051[7],_0xb051[8]),defaultValue:_0xb051[7],allowNull:false},stamp:{type:_0xb051[10]},emailsubject:{type:_0x8a09x2[_0xb051[2]]},emailbody:{type:_0x8a09x2[_0xb051[2]]},name:{type:_0x8a09x2[_0xb051[2]]},maxsecs:{type:_0x8a09x2.INTEGER(255),defaultValue:180,allowNull:false},maxmsg:{type:_0x8a09x2.INTEGER(255),defaultValue:100,allowNull:false}},{tableName:_0xb051[11],indexes:[{name:_0xb051[12],fields:[_0xb051[13],_0xb051[14]]}]});return _0x8a09x3;};
\ No newline at end of file
index d2c95d0..204cef2 100644 (file)
@@ -1 +1 @@
-var _0x457f=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x53\x54\x52\x49\x4E\x47","","\x6C\x6F\x6E\x67","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x69\x72","\x64\x65\x66\x69\x6E\x65"];module[_0x457f[0]]=function(_0xa673x1,_0xa673x2){var _0xa673x3=_0xa673x1[_0x457f[8]](_0x457f[1],{msgnum:{type:_0xa673x2.INTEGER(11),defaultValue:0,allowNull:false},dir:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},context:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},macrocontext:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},callerid:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},origtime:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},duration:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},mailboxuser:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},mailboxcontext:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},recording:{type:_0xa673x2.BLOB(_0x457f[4]),defaultValue:null},flag:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},msg_id:{type:_0xa673x2[_0x457f[2]],defaultValue:_0x457f[3]},stamp:{type:_0x457f[5],allowNull:false}},{tableName:_0x457f[6],indexes:[{name:_0x457f[7],fields:[_0x457f[7]]}]});return _0xa673x3;};
\ No newline at end of file
+var _0x751c=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x53\x54\x52\x49\x4E\x47","","\x6C\x6F\x6E\x67","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x69\x72","\x64\x65\x66\x69\x6E\x65"];module[_0x751c[0]]=function(_0x4d0cx1,_0x4d0cx2){var _0x4d0cx3=_0x4d0cx1[_0x751c[8]](_0x751c[1],{msgnum:{type:_0x4d0cx2.INTEGER(11),defaultValue:0,allowNull:false},dir:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},context:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},macrocontext:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},callerid:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},origtime:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},duration:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},mailboxuser:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},mailboxcontext:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},recording:{type:_0x4d0cx2.BLOB(_0x751c[4]),defaultValue:null},flag:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},msg_id:{type:_0x4d0cx2[_0x751c[2]],defaultValue:_0x751c[3]},stamp:{type:_0x751c[5],allowNull:false}},{tableName:_0x751c[6],indexes:[{name:_0x751c[7],fields:[_0x751c[7]]}]});return _0x4d0cx3;};
\ No newline at end of file
index 5c59129..2dd25a1 100644 (file)
@@ -1 +1 @@
-var _0x6a7c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x6a7c[0];module[_0x6a7c[1]]=function(_0xa600x1,_0xa600x2){var _0xa600x3=_0xa600x1[_0x6a7c[9]](_0x6a7c[2],{name:_0xa600x2[_0x6a7c[3]],description:_0xa600x2[_0x6a7c[3]],username:{type:_0xa600x2[_0x6a7c[3]],unique:true},password:_0xa600x2[_0x6a7c[3]],token:_0xa600x2[_0x6a7c[3]],remoteUri:{type:_0xa600x2[_0x6a7c[3]],unique:true},authType:{type:_0xa600x2.ENUM(_0x6a7c[4],_0x6a7c[5]),defaultValue:_0x6a7c[4]}},{tableName:_0x6a7c[6],associate:function(_0xa600x4){_0xa600x3[_0x6a7c[8]](_0xa600x4.ZendeskConfiguration,{foreignKey:_0x6a7c[7]})}});return _0xa600x3;};
\ No newline at end of file
+var _0x2eb9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x2eb9[0];module[_0x2eb9[1]]=function(_0xfaf2x1,_0xfaf2x2){var _0xfaf2x3=_0xfaf2x1[_0x2eb9[9]](_0x2eb9[2],{name:_0xfaf2x2[_0x2eb9[3]],description:_0xfaf2x2[_0x2eb9[3]],username:{type:_0xfaf2x2[_0x2eb9[3]],unique:true},password:_0xfaf2x2[_0x2eb9[3]],token:_0xfaf2x2[_0x2eb9[3]],remoteUri:{type:_0xfaf2x2[_0x2eb9[3]],unique:true},authType:{type:_0xfaf2x2.ENUM(_0x2eb9[4],_0x2eb9[5]),defaultValue:_0x2eb9[4]}},{tableName:_0x2eb9[6],associate:function(_0xfaf2x4){_0xfaf2x3[_0x2eb9[8]](_0xfaf2x4.ZendeskConfiguration,{foreignKey:_0x2eb9[7]})}});return _0xfaf2x3;};
\ No newline at end of file
index 55e868e..3be9a5a 100644 (file)
@@ -1 +1 @@
-var _0x3f7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0x3f7a[0];module[_0x3f7a[1]]=function(_0x5c0ex1,_0x5c0ex2){var _0x5c0ex3=_0x5c0ex1[_0x3f7a[14]](_0x3f7a[2],{name:_0x5c0ex2[_0x3f7a[3]],description:_0x5c0ex2[_0x3f7a[3]]},{tableName:_0x3f7a[4],associate:function(_0x5c0ex4){_0x5c0ex3[_0x3f7a[6]](_0x5c0ex4.ZendeskAccount,{foreignKey:_0x3f7a[5]});_0x5c0ex3[_0x3f7a[9]](_0x5c0ex4.ZendeskField,{as:_0x3f7a[7],foreignKey:_0x3f7a[8]});_0x5c0ex3[_0x3f7a[9]](_0x5c0ex4.ZendeskField,{as:_0x3f7a[10],foreignKey:_0x3f7a[11]});_0x5c0ex3[_0x3f7a[9]](_0x5c0ex4.ZendeskField,{as:_0x3f7a[12],foreignKey:_0x3f7a[13]});}});return _0x5c0ex3;};
\ No newline at end of file
+var _0xb07f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0xb07f[0];module[_0xb07f[1]]=function(_0xe33ax1,_0xe33ax2){var _0xe33ax3=_0xe33ax1[_0xb07f[14]](_0xb07f[2],{name:_0xe33ax2[_0xb07f[3]],description:_0xe33ax2[_0xb07f[3]]},{tableName:_0xb07f[4],associate:function(_0xe33ax4){_0xe33ax3[_0xb07f[6]](_0xe33ax4.ZendeskAccount,{foreignKey:_0xb07f[5]});_0xe33ax3[_0xb07f[9]](_0xe33ax4.ZendeskField,{as:_0xb07f[7],foreignKey:_0xb07f[8]});_0xe33ax3[_0xb07f[9]](_0xe33ax4.ZendeskField,{as:_0xb07f[10],foreignKey:_0xb07f[11]});_0xe33ax3[_0xb07f[9]](_0xe33ax4.ZendeskField,{as:_0xb07f[12],foreignKey:_0xb07f[13]});}});return _0xe33ax3;};
\ No newline at end of file
index f30de28..4826c9b 100644 (file)
@@ -1 +1 @@
-var _0x4538=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x4538[0];module[_0x4538[1]]=function(_0x104bx1,_0x104bx2){var _0x104bx3=_0x104bx1[_0x4538[11]](_0x4538[2],{type:{type:_0x104bx2.ENUM(_0x4538[3],_0x4538[4],_0x4538[5]),defaultValue:_0x4538[3]},content:_0x104bx2[_0x4538[6]],key:_0x104bx2[_0x4538[6]],keyType:{type:_0x104bx2.ENUM(_0x4538[3],_0x4538[4])},keyContent:_0x104bx2[_0x4538[6]],idField:_0x104bx2[_0x4538[7]],nameField:_0x104bx2[_0x4538[6]],customField:{type:_0x104bx2[_0x4538[8]],defaultValue:true}},{tableName:_0x4538[9],associate:function(_0x104bx4){_0x104bx3[_0x4538[10]](_0x104bx4.Variable)}});return _0x104bx3;};
\ No newline at end of file
+var _0x6df6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x6df6[0];module[_0x6df6[1]]=function(_0x2592x1,_0x2592x2){var _0x2592x3=_0x2592x1[_0x6df6[12]](_0x6df6[2],{type:{type:_0x2592x2.ENUM(_0x6df6[3],_0x6df6[4],_0x6df6[5],_0x6df6[6]),defaultValue:_0x6df6[3]},content:_0x2592x2[_0x6df6[7]],key:_0x2592x2[_0x6df6[7]],keyType:{type:_0x2592x2.ENUM(_0x6df6[3],_0x6df6[4],_0x6df6[5])},keyContent:_0x2592x2[_0x6df6[7]],idField:_0x2592x2[_0x6df6[8]],nameField:_0x2592x2[_0x6df6[7]],customField:{type:_0x2592x2[_0x6df6[9]],defaultValue:true},variableName:_0x2592x2[_0x6df6[7]]},{tableName:_0x6df6[10],associate:function(_0x2592x4){_0x2592x3[_0x6df6[11]](_0x2592x4.Variable)}});return _0x2592x3;};
\ No newline at end of file
index 35c5828..376fc30 100644 (file)
@@ -1 +1 @@
-var _0x219b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x72\x72\x6F\x72\x73","\x70\x61\x74\x68","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x65\x6E\x76","\x67\x65\x74","\x2F\x61\x70\x69\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x75\x73\x65","\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x63\x75\x73\x74\x6F\x6D","\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x74\x72\x65\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x74\x72\x69\x63","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64","\x2E\x2F\x61\x70\x69\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x61\x67\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6D\x70\x61\x6E\x79","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x79","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x69\x6E","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x6F\x75\x74","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79","\x2E\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79","\x2F\x61\x75\x74\x68","\x2E\x2F\x61\x75\x74\x68","\x2F\x3A\x75\x72\x6C\x28\x61\x70\x69\x7C\x61\x75\x74\x68\x7C\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x70\x70\x7C\x62\x6F\x77\x65\x72\x5F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x73\x73\x65\x74\x73\x29\x2F\x2A","\x72\x6F\x75\x74\x65","\x2F\x2A","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x75\x62\x6C\x69\x63","\x6A\x6F\x69\x6E","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6C\x69\x65\x6E\x74","\x69\x6E\x64\x65\x78\x2E\x68\x74\x6D\x6C","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x61\x6C\x6C"];_0x219b[0];var config=require(_0x219b[1]);var errors=require(_0x219b[2]);var path=require(_0x219b[3]);var moment=require(_0x219b[4]);module[_0x219b[5]]=function(_0xd8f9x5){var _0xd8f9x6=_0xd8f9x5[_0x219b[7]](_0x219b[6]);_0xd8f9x5[_0x219b[10]](_0x219b[8],require(_0x219b[9]));_0xd8f9x5[_0x219b[10]](_0x219b[11],require(_0x219b[12]));_0xd8f9x5[_0x219b[10]](_0x219b[13],require(_0x219b[14]));_0xd8f9x5[_0x219b[10]](_0x219b[15],require(_0x219b[16]));_0xd8f9x5[_0x219b[10]](_0x219b[17],require(_0x219b[18]));_0xd8f9x5[_0x219b[10]](_0x219b[19],require(_0x219b[20]));_0xd8f9x5[_0x219b[10]](_0x219b[21],require(_0x219b[22]));_0xd8f9x5[_0x219b[10]](_0x219b[23],require(_0x219b[24]));_0xd8f9x5[_0x219b[10]](_0x219b[25],require(_0x219b[26]));_0xd8f9x5[_0x219b[10]](_0x219b[27],require(_0x219b[28]));_0xd8f9x5[_0x219b[10]](_0x219b[29],require(_0x219b[30]));_0xd8f9x5[_0x219b[10]](_0x219b[31],require(_0x219b[32]));_0xd8f9x5[_0x219b[10]](_0x219b[33],require(_0x219b[34]));_0xd8f9x5[_0x219b[10]](_0x219b[35],require(_0x219b[36]));_0xd8f9x5[_0x219b[10]](_0x219b[37],require(_0x219b[38]));_0xd8f9x5[_0x219b[10]](_0x219b[39],require(_0x219b[40]));_0xd8f9x5[_0x219b[10]](_0x219b[41],require(_0x219b[42]));_0xd8f9x5[_0x219b[10]](_0x219b[43],require(_0x219b[44]));_0xd8f9x5[_0x219b[10]](_0x219b[45],require(_0x219b[46]));_0xd8f9x5[_0x219b[10]](_0x219b[47],require(_0x219b[48]));_0xd8f9x5[_0x219b[10]](_0x219b[49],require(_0x219b[50]));_0xd8f9x5[_0x219b[10]](_0x219b[51],require(_0x219b[52]));_0xd8f9x5[_0x219b[10]](_0x219b[53],require(_0x219b[54]));_0xd8f9x5[_0x219b[10]](_0x219b[55],require(_0x219b[56]));_0xd8f9x5[_0x219b[10]](_0x219b[57],require(_0x219b[58]));_0xd8f9x5[_0x219b[10]](_0x219b[59],require(_0x219b[60]));_0xd8f9x5[_0x219b[10]](_0x219b[61],require(_0x219b[62]));_0xd8f9x5[_0x219b[10]](_0x219b[63],require(_0x219b[64]));_0xd8f9x5[_0x219b[10]](_0x219b[65],require(_0x219b[66]));_0xd8f9x5[_0x219b[10]](_0x219b[67],require(_0x219b[68]));_0xd8f9x5[_0x219b[10]](_0x219b[69],require(_0x219b[70]));_0xd8f9x5[_0x219b[10]](_0x219b[71],require(_0x219b[72]));_0xd8f9x5[_0x219b[10]](_0x219b[73],require(_0x219b[74]));_0xd8f9x5[_0x219b[10]](_0x219b[75],require(_0x219b[76]));_0xd8f9x5[_0x219b[10]](_0x219b[77],require(_0x219b[78]));_0xd8f9x5[_0x219b[10]](_0x219b[79],require(_0x219b[80]));_0xd8f9x5[_0x219b[10]](_0x219b[81],require(_0x219b[82]));_0xd8f9x5[_0x219b[10]](_0x219b[83],require(_0x219b[84]));_0xd8f9x5[_0x219b[10]](_0x219b[85],require(_0x219b[86]));_0xd8f9x5[_0x219b[10]](_0x219b[87],require(_0x219b[88]));_0xd8f9x5[_0x219b[10]](_0x219b[89],require(_0x219b[90]));_0xd8f9x5[_0x219b[10]](_0x219b[91],require(_0x219b[92]));_0xd8f9x5[_0x219b[10]](_0x219b[93],require(_0x219b[94]));_0xd8f9x5[_0x219b[10]](_0x219b[95],require(_0x219b[96]));_0xd8f9x5[_0x219b[10]](_0x219b[97],require(_0x219b[98]));_0xd8f9x5[_0x219b[10]](_0x219b[99],require(_0x219b[100]));_0xd8f9x5[_0x219b[10]](_0x219b[101],require(_0x219b[102]));_0xd8f9x5[_0x219b[10]](_0x219b[103],require(_0x219b[104]));_0xd8f9x5[_0x219b[10]](_0x219b[105],require(_0x219b[106]));_0xd8f9x5[_0x219b[10]](_0x219b[107],require(_0x219b[108]));_0xd8f9x5[_0x219b[10]](_0x219b[109],require(_0x219b[110]));_0xd8f9x5[_0x219b[10]](_0x219b[111],require(_0x219b[112]));_0xd8f9x5[_0x219b[10]](_0x219b[113],require(_0x219b[114]));_0xd8f9x5[_0x219b[10]](_0x219b[115],require(_0x219b[114]));_0xd8f9x5[_0x219b[10]](_0x219b[116],require(_0x219b[117]));_0xd8f9x5[_0x219b[10]](_0x219b[118],require(_0x219b[119]));_0xd8f9x5[_0x219b[10]](_0x219b[120],require(_0x219b[121]));_0xd8f9x5[_0x219b[10]](_0x219b[122],require(_0x219b[123]));_0xd8f9x5[_0x219b[10]](_0x219b[124],require(_0x219b[125]));_0xd8f9x5[_0x219b[10]](_0x219b[126],require(_0x219b[127]));_0xd8f9x5[_0x219b[10]](_0x219b[128],require(_0x219b[129]));_0xd8f9x5[_0x219b[10]](_0x219b[130],require(_0x219b[131]));_0xd8f9x5[_0x219b[10]](_0x219b[132],require(_0x219b[133]));_0xd8f9x5[_0x219b[10]](_0x219b[134],require(_0x219b[135]));_0xd8f9x5[_0x219b[10]](_0x219b[136],require(_0x219b[137]));_0xd8f9x5[_0x219b[10]](_0x219b[138],require(_0x219b[139]));_0xd8f9x5[_0x219b[10]](_0x219b[140],require(_0x219b[141]));_0xd8f9x5[_0x219b[10]](_0x219b[142],require(_0x219b[143]));_0xd8f9x5[_0x219b[10]](_0x219b[144],require(_0x219b[145]));_0xd8f9x5[_0x219b[10]](_0x219b[146],require(_0x219b[147]));_0xd8f9x5[_0x219b[10]](_0x219b[148],require(_0x219b[149]));_0xd8f9x5[_0x219b[10]](_0x219b[150],require(_0x219b[151]));_0xd8f9x5[_0x219b[10]](_0x219b[152],require(_0x219b[153]));_0xd8f9x5[_0x219b[10]](_0x219b[154],require(_0x219b[155]));_0xd8f9x5[_0x219b[10]](_0x219b[156],require(_0x219b[157]));_0xd8f9x5[_0x219b[10]](_0x219b[158],require(_0x219b[159]));_0xd8f9x5[_0x219b[10]](_0x219b[160],require(_0x219b[161]));_0xd8f9x5[_0x219b[10]](_0x219b[142],require(_0x219b[143]));_0xd8f9x5[_0x219b[10]](_0x219b[162],require(_0x219b[163]));_0xd8f9x5[_0x219b[10]](_0x219b[164],require(_0x219b[165]));_0xd8f9x5[_0x219b[10]](_0x219b[166],require(_0x219b[167]));_0xd8f9x5[_0x219b[10]](_0x219b[168],require(_0x219b[169]));_0xd8f9x5[_0x219b[10]](_0x219b[170],require(_0x219b[171]));_0xd8f9x5[_0x219b[10]](_0x219b[172],require(_0x219b[173]));_0xd8f9x5[_0x219b[10]](_0x219b[174],require(_0x219b[175]));_0xd8f9x5[_0x219b[10]](_0x219b[176],require(_0x219b[177]));_0xd8f9x5[_0x219b[10]](_0x219b[178],require(_0x219b[179]));_0xd8f9x5[_0x219b[10]](_0x219b[180],require(_0x219b[181]));_0xd8f9x5[_0x219b[10]](_0x219b[182],require(_0x219b[183]));_0xd8f9x5[_0x219b[10]](_0x219b[184],require(_0x219b[185]));_0xd8f9x5[_0x219b[10]](_0x219b[186],require(_0x219b[187]));_0xd8f9x5[_0x219b[10]](_0x219b[188],require(_0x219b[189]));_0xd8f9x5[_0x219b[10]](_0x219b[190],require(_0x219b[191]));_0xd8f9x5[_0x219b[193]](_0x219b[192])[_0x219b[7]](errors[404]);_0xd8f9x5[_0x219b[204]](_0x219b[194],function(_0xd8f9x7,_0xd8f9x8,_0xd8f9x9){var _0xd8f9xa={};if(_0x219b[195]===_0xd8f9x6){_0xd8f9xa[_0x219b[196]]=path[_0x219b[198]](config[_0x219b[196]],_0x219b[197])};if(_0x219b[199]===_0xd8f9x6||_0x219b[200]===_0xd8f9x6){_0xd8f9xa[_0x219b[196]]=path[_0x219b[198]](config[_0x219b[196]],_0x219b[201])};_0xd8f9x8[_0x219b[203]](_0x219b[202],_0xd8f9xa);});};
\ No newline at end of file
+var _0x84b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x72\x72\x6F\x72\x73","\x70\x61\x74\x68","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x65\x6E\x76","\x67\x65\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x6C\x6F\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x6C\x6F\x67","\x75\x73\x65","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x63\x75\x73\x74\x6F\x6D","\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x74\x72\x65\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x74\x72\x69\x63","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64","\x2E\x2F\x61\x70\x69\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x61\x67\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6D\x70\x61\x6E\x79","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x73\x65\x72\x76\x69\x63\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x72\x76\x69\x63\x65","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x62\x75\x73\x69\x6E\x65\x73\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x65\x76\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x79","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x69\x6E","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x6F\x75\x74","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x70\x6C\x6F\x61\x64","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79","\x2E\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79","\x2F\x61\x75\x74\x68","\x2E\x2F\x61\x75\x74\x68","\x2F\x3A\x75\x72\x6C\x28\x61\x70\x69\x7C\x61\x75\x74\x68\x7C\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x70\x70\x7C\x62\x6F\x77\x65\x72\x5F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x73\x73\x65\x74\x73\x29\x2F\x2A","\x72\x6F\x75\x74\x65","\x2F\x2A","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x75\x62\x6C\x69\x63","\x6A\x6F\x69\x6E","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6C\x69\x65\x6E\x74","\x69\x6E\x64\x65\x78\x2E\x68\x74\x6D\x6C","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x61\x6C\x6C"];_0x84b5[0];var config=require(_0x84b5[1]);var errors=require(_0x84b5[2]);var path=require(_0x84b5[3]);var moment=require(_0x84b5[4]);module[_0x84b5[5]]=function(_0x6341x5){var _0x6341x6=_0x6341x5[_0x84b5[7]](_0x84b5[6]);_0x6341x5[_0x84b5[10]](_0x84b5[8],require(_0x84b5[9]));_0x6341x5[_0x84b5[10]](_0x84b5[11],require(_0x84b5[12]));_0x6341x5[_0x84b5[10]](_0x84b5[13],require(_0x84b5[14]));_0x6341x5[_0x84b5[10]](_0x84b5[15],require(_0x84b5[16]));_0x6341x5[_0x84b5[10]](_0x84b5[17],require(_0x84b5[18]));_0x6341x5[_0x84b5[10]](_0x84b5[19],require(_0x84b5[20]));_0x6341x5[_0x84b5[10]](_0x84b5[21],require(_0x84b5[22]));_0x6341x5[_0x84b5[10]](_0x84b5[23],require(_0x84b5[24]));_0x6341x5[_0x84b5[10]](_0x84b5[25],require(_0x84b5[26]));_0x6341x5[_0x84b5[10]](_0x84b5[27],require(_0x84b5[28]));_0x6341x5[_0x84b5[10]](_0x84b5[29],require(_0x84b5[30]));_0x6341x5[_0x84b5[10]](_0x84b5[31],require(_0x84b5[32]));_0x6341x5[_0x84b5[10]](_0x84b5[33],require(_0x84b5[34]));_0x6341x5[_0x84b5[10]](_0x84b5[35],require(_0x84b5[36]));_0x6341x5[_0x84b5[10]](_0x84b5[37],require(_0x84b5[38]));_0x6341x5[_0x84b5[10]](_0x84b5[39],require(_0x84b5[40]));_0x6341x5[_0x84b5[10]](_0x84b5[41],require(_0x84b5[42]));_0x6341x5[_0x84b5[10]](_0x84b5[43],require(_0x84b5[44]));_0x6341x5[_0x84b5[10]](_0x84b5[45],require(_0x84b5[46]));_0x6341x5[_0x84b5[10]](_0x84b5[47],require(_0x84b5[48]));_0x6341x5[_0x84b5[10]](_0x84b5[49],require(_0x84b5[50]));_0x6341x5[_0x84b5[10]](_0x84b5[51],require(_0x84b5[52]));_0x6341x5[_0x84b5[10]](_0x84b5[53],require(_0x84b5[54]));_0x6341x5[_0x84b5[10]](_0x84b5[55],require(_0x84b5[56]));_0x6341x5[_0x84b5[10]](_0x84b5[57],require(_0x84b5[58]));_0x6341x5[_0x84b5[10]](_0x84b5[59],require(_0x84b5[60]));_0x6341x5[_0x84b5[10]](_0x84b5[61],require(_0x84b5[62]));_0x6341x5[_0x84b5[10]](_0x84b5[63],require(_0x84b5[64]));_0x6341x5[_0x84b5[10]](_0x84b5[65],require(_0x84b5[66]));_0x6341x5[_0x84b5[10]](_0x84b5[67],require(_0x84b5[68]));_0x6341x5[_0x84b5[10]](_0x84b5[69],require(_0x84b5[70]));_0x6341x5[_0x84b5[10]](_0x84b5[71],require(_0x84b5[72]));_0x6341x5[_0x84b5[10]](_0x84b5[73],require(_0x84b5[74]));_0x6341x5[_0x84b5[10]](_0x84b5[75],require(_0x84b5[76]));_0x6341x5[_0x84b5[10]](_0x84b5[77],require(_0x84b5[78]));_0x6341x5[_0x84b5[10]](_0x84b5[79],require(_0x84b5[80]));_0x6341x5[_0x84b5[10]](_0x84b5[81],require(_0x84b5[82]));_0x6341x5[_0x84b5[10]](_0x84b5[83],require(_0x84b5[84]));_0x6341x5[_0x84b5[10]](_0x84b5[85],require(_0x84b5[86]));_0x6341x5[_0x84b5[10]](_0x84b5[87],require(_0x84b5[88]));_0x6341x5[_0x84b5[10]](_0x84b5[89],require(_0x84b5[90]));_0x6341x5[_0x84b5[10]](_0x84b5[91],require(_0x84b5[92]));_0x6341x5[_0x84b5[10]](_0x84b5[93],require(_0x84b5[94]));_0x6341x5[_0x84b5[10]](_0x84b5[95],require(_0x84b5[96]));_0x6341x5[_0x84b5[10]](_0x84b5[97],require(_0x84b5[98]));_0x6341x5[_0x84b5[10]](_0x84b5[99],require(_0x84b5[100]));_0x6341x5[_0x84b5[10]](_0x84b5[101],require(_0x84b5[102]));_0x6341x5[_0x84b5[10]](_0x84b5[103],require(_0x84b5[104]));_0x6341x5[_0x84b5[10]](_0x84b5[105],require(_0x84b5[106]));_0x6341x5[_0x84b5[10]](_0x84b5[107],require(_0x84b5[108]));_0x6341x5[_0x84b5[10]](_0x84b5[109],require(_0x84b5[110]));_0x6341x5[_0x84b5[10]](_0x84b5[111],require(_0x84b5[112]));_0x6341x5[_0x84b5[10]](_0x84b5[113],require(_0x84b5[114]));_0x6341x5[_0x84b5[10]](_0x84b5[115],require(_0x84b5[116]));_0x6341x5[_0x84b5[10]](_0x84b5[117],require(_0x84b5[118]));_0x6341x5[_0x84b5[10]](_0x84b5[119],require(_0x84b5[120]));_0x6341x5[_0x84b5[10]](_0x84b5[121],require(_0x84b5[122]));_0x6341x5[_0x84b5[10]](_0x84b5[123],require(_0x84b5[124]));_0x6341x5[_0x84b5[10]](_0x84b5[125],require(_0x84b5[126]));_0x6341x5[_0x84b5[10]](_0x84b5[127],require(_0x84b5[128]));_0x6341x5[_0x84b5[10]](_0x84b5[129],require(_0x84b5[130]));_0x6341x5[_0x84b5[10]](_0x84b5[131],require(_0x84b5[132]));_0x6341x5[_0x84b5[10]](_0x84b5[133],require(_0x84b5[134]));_0x6341x5[_0x84b5[10]](_0x84b5[135],require(_0x84b5[136]));_0x6341x5[_0x84b5[10]](_0x84b5[137],require(_0x84b5[138]));_0x6341x5[_0x84b5[10]](_0x84b5[139],require(_0x84b5[140]));_0x6341x5[_0x84b5[10]](_0x84b5[141],require(_0x84b5[142]));_0x6341x5[_0x84b5[10]](_0x84b5[143],require(_0x84b5[144]));_0x6341x5[_0x84b5[10]](_0x84b5[145],require(_0x84b5[146]));_0x6341x5[_0x84b5[10]](_0x84b5[147],require(_0x84b5[148]));_0x6341x5[_0x84b5[10]](_0x84b5[149],require(_0x84b5[150]));_0x6341x5[_0x84b5[10]](_0x84b5[151],require(_0x84b5[152]));_0x6341x5[_0x84b5[10]](_0x84b5[153],require(_0x84b5[154]));_0x6341x5[_0x84b5[10]](_0x84b5[155],require(_0x84b5[156]));_0x6341x5[_0x84b5[10]](_0x84b5[157],require(_0x84b5[158]));_0x6341x5[_0x84b5[10]](_0x84b5[159],require(_0x84b5[160]));_0x6341x5[_0x84b5[10]](_0x84b5[161],require(_0x84b5[162]));_0x6341x5[_0x84b5[10]](_0x84b5[163],require(_0x84b5[164]));_0x6341x5[_0x84b5[10]](_0x84b5[165],require(_0x84b5[166]));_0x6341x5[_0x84b5[10]](_0x84b5[167],require(_0x84b5[168]));_0x6341x5[_0x84b5[10]](_0x84b5[149],require(_0x84b5[150]));_0x6341x5[_0x84b5[10]](_0x84b5[169],require(_0x84b5[170]));_0x6341x5[_0x84b5[10]](_0x84b5[171],require(_0x84b5[172]));_0x6341x5[_0x84b5[10]](_0x84b5[173],require(_0x84b5[174]));_0x6341x5[_0x84b5[10]](_0x84b5[175],require(_0x84b5[176]));_0x6341x5[_0x84b5[10]](_0x84b5[177],require(_0x84b5[178]));_0x6341x5[_0x84b5[10]](_0x84b5[179],require(_0x84b5[180]));_0x6341x5[_0x84b5[10]](_0x84b5[181],require(_0x84b5[182]));_0x6341x5[_0x84b5[10]](_0x84b5[183],require(_0x84b5[184]));_0x6341x5[_0x84b5[10]](_0x84b5[185],require(_0x84b5[186]));_0x6341x5[_0x84b5[10]](_0x84b5[187],require(_0x84b5[188]));_0x6341x5[_0x84b5[10]](_0x84b5[189],require(_0x84b5[190]));_0x6341x5[_0x84b5[10]](_0x84b5[191],require(_0x84b5[192]));_0x6341x5[_0x84b5[10]](_0x84b5[193],require(_0x84b5[194]));_0x6341x5[_0x84b5[10]](_0x84b5[195],require(_0x84b5[196]));_0x6341x5[_0x84b5[10]](_0x84b5[197],require(_0x84b5[198]));_0x6341x5[_0x84b5[200]](_0x84b5[199])[_0x84b5[7]](errors[404]);_0x6341x5[_0x84b5[211]](_0x84b5[201],function(_0x6341x7,_0x6341x8,_0x6341x9){var _0x6341xa={};if(_0x84b5[202]===_0x6341x6){_0x6341xa[_0x84b5[203]]=path[_0x84b5[205]](config[_0x84b5[203]],_0x84b5[204])};if(_0x84b5[206]===_0x6341x6||_0x84b5[207]===_0x6341x6){_0x6341xa[_0x84b5[203]]=path[_0x84b5[205]](config[_0x84b5[203]],_0x84b5[208])};_0x6341x8[_0x84b5[210]](_0x84b5[209],_0x6341xa);});};
\ No newline at end of file
index 335ac10..233708e 100644 (file)
@@ -1 +1 @@
-var _0x7140=["\x74\x6F\x2D\x63\x73\x76","\x70\x64\x66\x6D\x61\x6B\x65","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x73","\x6D\x6F\x6D\x65\x6E\x74","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x6F\x6F\x74","\x63\x6C\x69\x65\x6E\x74","\x61\x73\x73\x65\x74\x73","\x66\x6F\x6E\x74\x73","\x52\x6F\x62\x6F\x74\x6F\x2D\x52\x65\x67\x75\x6C\x61\x72\x2E\x74\x74\x66","\x6A\x6F\x69\x6E","\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x2E\x74\x74\x66","\x52\x6F\x62\x6F\x74\x6F\x2D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x65\x78\x74\x72\x61\x63\x74\x50\x44\x46","\x70\x64\x66","\x65\x78\x74\x72\x61\x63\x74\x43\x53\x56","\x63\x73\x76","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6C\x6F\x67","\x71\x75\x65\x72\x79\x20\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x65\x6D\x70\x74\x79","\x71\x75\x65\x72\x79\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x71\x75\x65\x72\x79","\x72\x65\x70\x6F\x72\x74\x5F","\x2E\x70\x64\x66","\x61\x6C\x69\x61\x73","\x74\x61\x62\x6C\x65\x48\x65\x61\x64\x65\x72","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x66\x6F\x72\x4F\x77\x6E","\x6E\x61\x6D\x65","\x68\x65\x61\x64\x65\x72","\x20\x2D\x20","\x74\x61\x62\x6C\x65\x45\x78\x61\x6D\x70\x6C\x65","\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x50\x64\x66\x4B\x69\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x65\x72\x72\x6F\x72","\x70\x64\x66\x20\x77\x72\x69\x74\x65\x20\x65\x72\x72\x6F\x72","\x6F\x6E","\x66\x69\x6E\x69\x73\x68","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x70\x69\x70\x65","\x65\x6E\x64","\x70\x64\x66\x20\x63\x72\x65\x61\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x2E\x63\x73\x76","\x63\x73\x76\x20\x77\x72\x69\x74\x65\x20\x65\x72\x72\x6F\x72","\x77\x72\x69\x74\x65\x46\x69\x6C\x65","\x63\x73\x76\x20\x63\x72\x65\x61\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x2D\x2D\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6E\x67\x20\x72\x65\x70\x6F\x72\x74\x20\x77\x69\x74\x68\x20\x65\x72\x72\x6F\x72\x20\x3A\x20","\x2D\x2D\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6E\x67\x20\x72\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65","","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x66\x69\x65\x6C\x64","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43","\x25\x73\x28\x25\x73\x29","\x25\x73\x20\x41\x53\x20\x27\x25\x73\x27","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x25\x73\x20\x25\x73","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x20","\x2C","\x20\x46\x52\x4F\x4D\x20","\x74\x61\x62\x6C\x65","\x28\x29","\x20\x57\x48\x45\x52\x45\x20","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3E\x3D\x20\x27","\x27","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3C\x3D\x20\x27","\x20\x47\x52\x4F\x55\x50\x20\x42\x59\x20","\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20","\x28","\x72\x75\x6C\x65\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x27","\x4C\x49\x4B\x45","\x25","\x76\x61\x6C\x75\x65","\x29"];var csv=require(_0x7140[0]);var pdfMake=require(_0x7140[1]);var _=require(_0x7140[2]);var util=require(_0x7140[3]);var ExtractedReport=require(_0x7140[5])[_0x7140[4]];var sequelize=require(_0x7140[5])[_0x7140[6]];var fs=require(_0x7140[7]);var moment=require(_0x7140[8]);var sr=require(_0x7140[9]);var path=require(_0x7140[10]);var config=require(_0x7140[11]);var fonts={Roboto:{normal:path[_0x7140[17]](config[_0x7140[12]],_0x7140[13],_0x7140[14],_0x7140[15],_0x7140[16]),bold:path[_0x7140[17]](config[_0x7140[12]],_0x7140[13],_0x7140[14],_0x7140[15],_0x7140[18]),italics:path[_0x7140[17]](config[_0x7140[12]],_0x7140[13],_0x7140[14],_0x7140[15],_0x7140[19]),bolditalics:path[_0x7140[17]](config[_0x7140[12]],_0x7140[13],_0x7140[14],_0x7140[15],_0x7140[19])}};exports[_0x7140[20]]=function(_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10){general(_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10,_0x7140[21])};exports[_0x7140[22]]=function(_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10){general(_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10,_0x7140[23])};function general(_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10,_0xfeabx12){extract(_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10,_0xfeabx12)}function extract(_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10,_0xfeabx12){var _0xfeabx14=buildReport(_0xfeabxd[_0x7140[24]],_0xfeabxe,_0xfeabxf);sequelize[_0x7140[34]](_0xfeabx14,{type:sequelize[_0x7140[33]][_0x7140[32]]})[_0x7140[31]](function(_0xfeabx16){if(_0xfeabx16){if(_0xfeabx16[_0x7140[28]]){switch(_0xfeabx12){case _0x7140[21]:createPdf(_0xfeabx16,_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10);break ;;case _0x7140[23]:createCsv(_0xfeabx16,_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10);break ;;default:createCsv(_0xfeabx16,_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx10);;}}else {updateExtracted(_0xfeabx10,null,_0x7140[29])}}else {updateExtracted(_0xfeabx10,null,_0x7140[30])}})[_0x7140[27]](function(_0xfeabx15){console[_0x7140[25]](_0xfeabx15);updateExtracted(_0xfeabx10,null,_0x7140[26]);});}function createPdf(_0xfeabx16,_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx18){var _0xfeabx19=sr({length:20,prefix:_0x7140[35],suffix:_0x7140[36]});var _0xfeabx1a=[];_[_0x7140[40]](_0xfeabxd.Fields,function(_0xfeabx1b){_0xfeabx1a[_0x7140[39]]({text:_0xfeabx1b[_0x7140[37]],style:_0x7140[38]})});var _0xfeabx1c=[_0xfeabx1a];_[_0x7140[40]](_0xfeabx16,function(_0xfeabx1b){var _0xfeabx1d=[];_[_0x7140[43]](_0xfeabx1b,function(_0xfeabx1e,_0xfeabx1f){_0xfeabx1d[_0x7140[39]](_0xfeabx1e instanceof Date?moment(_0xfeabx1e)[_0x7140[42]](_0x7140[41]).toString():_0xfeabx1e)});_0xfeabx1c[_0x7140[39]](_0xfeabx1d);});var _0xfeabx20={content:[{text:_0xfeabxd[_0x7140[44]],style:_0x7140[45]},moment(_0xfeabxe)[_0x7140[42]](_0x7140[41]).toString()+_0x7140[46]+moment(_0xfeabxf)[_0x7140[42]](_0x7140[41]).toString(),{style:_0x7140[47],table:{headerRows:1,body:_0xfeabx1c}}],styles:{header:{fontSize:18,bold:true,margin:[0,0,0,10]},subheader:{fontSize:16,bold:true,margin:[0,10,0,5]},tableExample:{margin:[0,5,0,15]},tableHeader:{bold:true,fontSize:13,color:_0x7140[48]}}};var _0xfeabx21= new pdfMake(fonts);var _0xfeabx22=_0xfeabx21[_0x7140[49]](_0xfeabx20);if(_0xfeabx22){var _0xfeabx23=fs[_0x7140[51]](__dirname+_0x7140[50]+_0xfeabx19);_0xfeabx23[_0x7140[54]](_0x7140[52],function(){updateExtracted(_0xfeabx18,null,_0x7140[53])});_0xfeabx23[_0x7140[54]](_0x7140[55],function(){updateExtracted(_0xfeabx18,_0xfeabx19,_0x7140[56])});_0xfeabx22[_0x7140[57]](_0xfeabx23);_0xfeabx22[_0x7140[58]]();}else {updateExtracted(_0xfeabx18,null,_0x7140[59])};}function createCsv(_0xfeabx16,_0xfeabxd,_0xfeabxe,_0xfeabxf,_0xfeabx18){var _0xfeabx19=sr({length:20,prefix:_0x7140[35],suffix:_0x7140[60]});var _0xfeabx25=csv(_0xfeabx16);if(_0xfeabx25){fs[_0x7140[62]](__dirname+_0x7140[50]+_0xfeabx19,_0xfeabx25,function(_0xfeabx15){if(_0xfeabx15){updateExtracted(_0xfeabx18,null,_0x7140[61])}else {updateExtracted(_0xfeabx18,_0xfeabx19,_0x7140[56])}})}else {updateExtracted(_0xfeabx18,null,_0x7140[63])};}function updateExtracted(_0xfeabx18,_0xfeabx19,_0xfeabx27){ExtractedReport[_0x7140[66]]({status:_0xfeabx27,savename:_0xfeabx19},{where:{id:_0xfeabx18}})[_0x7140[31]](function(){console[_0x7140[25]](_0x7140[65])})[_0x7140[27]](function(_0xfeabx15){console[_0x7140[25]](_0x7140[64]+_0xfeabx15)})}function buildReport(_0xfeabxd,_0xfeabxe,_0xfeabxf){var _0xfeabx29=[],_0xfeabx2a=[],_0xfeabx2b=[];_[_0x7140[40]](_0xfeabxd.Fields,function(_0xfeabx1b){var _0xfeabx2c=_0x7140[67];if(_0xfeabx1b[_0x7140[68]]){switch(_0xfeabx1b[_0x7140[68]]){case _0x7140[71]:_0xfeabx2c=util[_0x7140[42]](_0x7140[69],_0xfeabx1b[_0x7140[70]]);break ;;case _0x7140[73]:_0xfeabx2c=util[_0x7140[42]](_0x7140[72],_0xfeabx1b[_0x7140[70]],_0xfeabx1b[_0x7140[70]]);break ;;case _0x7140[75]:_0xfeabx2c=util[_0x7140[42]](_0x7140[74],_0xfeabx1b[_0x7140[70]],_0xfeabx1b[_0x7140[70]]);break ;;default:_0xfeabx2c=util[_0x7140[42]](_0x7140[76],_0xfeabx1b[_0x7140[68]],_0xfeabx1b[_0x7140[70]]);;}}else {_0xfeabx2c=_0xfeabx1b[_0x7140[70]]};_0xfeabx29[_0x7140[39]](util[_0x7140[42]](_0x7140[77],_0xfeabx2c,_0xfeabx1b[_0x7140[37]]));if(_0xfeabx1b[_0x7140[78]]){_0xfeabx2a[_0x7140[39]](_0xfeabx1b[_0x7140[70]])};if(_0xfeabx1b[_0x7140[79]]){_0xfeabx2b[_0x7140[39]](util[_0x7140[42]](_0x7140[80],_0xfeabx1b[_0x7140[70]],_0xfeabx1b[_0x7140[79]]))};});var _0xfeabx2d=getConditions(JSON[_0x7140[83]](_0xfeabxd[_0x7140[82]])[_0x7140[81]]);var _0xfeabx2e=_0x7140[32];_0xfeabx2e+=_0x7140[84]+_0xfeabx29[_0x7140[17]](_0x7140[85]);_0xfeabx2e+=_0x7140[86]+_0xfeabxd[_0x7140[87]];_0xfeabx2e+=_0xfeabx2d!==_0x7140[88]?_0x7140[89]+_0xfeabx2d:_0x7140[67];_0xfeabx2e+=_0x7140[90]+_0xfeabxe+_0x7140[91];_0xfeabx2e+=_0x7140[92]+_0xfeabxf+_0x7140[91];_0xfeabx2e+=_0xfeabx2a[_0x7140[28]]?_0x7140[93]+_0xfeabx2a[_0x7140[17]](_0x7140[85]):_0x7140[67];_0xfeabx2e+=_0xfeabx2b[_0x7140[28]]?_0x7140[94]+_0xfeabx2b[_0x7140[17]](_0x7140[85]):_0x7140[67];return _0xfeabx2e;}function getConditions(_0xfeabx30){if(!_0xfeabx30){return _0x7140[67]};for(var _0xfeabx31=_0x7140[95],_0xfeabx32=0;_0xfeabx32<_0xfeabx30[_0x7140[96]][_0x7140[28]];_0xfeabx32++){_0xfeabx32>0&&(_0xfeabx31+=_0x7140[84]+_0xfeabx30[_0x7140[97]]+_0x7140[84]);_0xfeabx31+=_0xfeabx30[_0x7140[96]][_0xfeabx32][_0x7140[81]]?getConditions(_0xfeabx30[_0x7140[96]][_0xfeabx32][_0x7140[81]]):_0xfeabx30[_0x7140[96]][_0xfeabx32][_0x7140[70]]+_0x7140[84]+_0xfeabx30[_0x7140[96]][_0xfeabx32][_0x7140[98]]+_0x7140[99]+(_0xfeabx30[_0x7140[96]][_0xfeabx32][_0x7140[98]]===_0x7140[100]?_0x7140[101]+_0xfeabx30[_0x7140[96]][_0xfeabx32][_0x7140[102]]+_0x7140[101]:_0xfeabx30[_0x7140[96]][_0xfeabx32][_0x7140[102]])+_0x7140[91];};return _0xfeabx31+_0x7140[103];}
\ No newline at end of file
+var _0x2cf6=["\x74\x6F\x2D\x63\x73\x76","\x70\x64\x66\x6D\x61\x6B\x65","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x73","\x6D\x6F\x6D\x65\x6E\x74","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x6F\x6F\x74","\x63\x6C\x69\x65\x6E\x74","\x61\x73\x73\x65\x74\x73","\x66\x6F\x6E\x74\x73","\x52\x6F\x62\x6F\x74\x6F\x2D\x52\x65\x67\x75\x6C\x61\x72\x2E\x74\x74\x66","\x6A\x6F\x69\x6E","\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x2E\x74\x74\x66","\x52\x6F\x62\x6F\x74\x6F\x2D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x65\x78\x74\x72\x61\x63\x74\x50\x44\x46","\x70\x64\x66","\x65\x78\x74\x72\x61\x63\x74\x43\x53\x56","\x63\x73\x76","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6C\x6F\x67","\x71\x75\x65\x72\x79\x20\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x65\x6D\x70\x74\x79","\x71\x75\x65\x72\x79\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x71\x75\x65\x72\x79","\x72\x65\x70\x6F\x72\x74\x5F","\x2E\x70\x64\x66","\x61\x6C\x69\x61\x73","\x74\x61\x62\x6C\x65\x48\x65\x61\x64\x65\x72","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x66\x6F\x72\x4F\x77\x6E","\x6E\x61\x6D\x65","\x68\x65\x61\x64\x65\x72","\x20\x2D\x20","\x74\x61\x62\x6C\x65\x45\x78\x61\x6D\x70\x6C\x65","\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x50\x64\x66\x4B\x69\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x65\x72\x72\x6F\x72","\x70\x64\x66\x20\x77\x72\x69\x74\x65\x20\x65\x72\x72\x6F\x72","\x6F\x6E","\x66\x69\x6E\x69\x73\x68","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x70\x69\x70\x65","\x65\x6E\x64","\x70\x64\x66\x20\x63\x72\x65\x61\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x2E\x63\x73\x76","\x63\x73\x76\x20\x77\x72\x69\x74\x65\x20\x65\x72\x72\x6F\x72","\x77\x72\x69\x74\x65\x46\x69\x6C\x65","\x63\x73\x76\x20\x63\x72\x65\x61\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x2D\x2D\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6E\x67\x20\x72\x65\x70\x6F\x72\x74\x20\x77\x69\x74\x68\x20\x65\x72\x72\x6F\x72\x20\x3A\x20","\x2D\x2D\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6E\x67\x20\x72\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65","","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x66\x69\x65\x6C\x64","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43","\x25\x73\x28\x25\x73\x29","\x25\x73\x20\x41\x53\x20\x27\x25\x73\x27","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x25\x73\x20\x25\x73","\x67\x72\x6F\x75\x70","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x20","\x2C","\x20\x46\x52\x4F\x4D\x20","\x74\x61\x62\x6C\x65","\x28\x29","\x20\x57\x48\x45\x52\x45\x20","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3E\x3D\x20\x27","\x27","\x20\x41\x4E\x44\x20\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3C\x3D\x20\x27","\x20\x47\x52\x4F\x55\x50\x20\x42\x59\x20","\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20","\x28","\x72\x75\x6C\x65\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x27","\x4C\x49\x4B\x45","\x25","\x76\x61\x6C\x75\x65","\x29"];var csv=require(_0x2cf6[0]);var pdfMake=require(_0x2cf6[1]);var _=require(_0x2cf6[2]);var util=require(_0x2cf6[3]);var ExtractedReport=require(_0x2cf6[5])[_0x2cf6[4]];var sequelize=require(_0x2cf6[5])[_0x2cf6[6]];var fs=require(_0x2cf6[7]);var moment=require(_0x2cf6[8]);var sr=require(_0x2cf6[9]);var path=require(_0x2cf6[10]);var config=require(_0x2cf6[11]);var fonts={Roboto:{normal:path[_0x2cf6[17]](config[_0x2cf6[12]],_0x2cf6[13],_0x2cf6[14],_0x2cf6[15],_0x2cf6[16]),bold:path[_0x2cf6[17]](config[_0x2cf6[12]],_0x2cf6[13],_0x2cf6[14],_0x2cf6[15],_0x2cf6[18]),italics:path[_0x2cf6[17]](config[_0x2cf6[12]],_0x2cf6[13],_0x2cf6[14],_0x2cf6[15],_0x2cf6[19]),bolditalics:path[_0x2cf6[17]](config[_0x2cf6[12]],_0x2cf6[13],_0x2cf6[14],_0x2cf6[15],_0x2cf6[19])}};exports[_0x2cf6[20]]=function(_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10){general(_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10,_0x2cf6[21])};exports[_0x2cf6[22]]=function(_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10){general(_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10,_0x2cf6[23])};function general(_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10,_0x1c85x12){extract(_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10,_0x1c85x12)}function extract(_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10,_0x1c85x12){var _0x1c85x14=buildReport(_0x1c85xd[_0x2cf6[24]],_0x1c85xe,_0x1c85xf);sequelize[_0x2cf6[34]](_0x1c85x14,{type:sequelize[_0x2cf6[33]][_0x2cf6[32]]})[_0x2cf6[31]](function(_0x1c85x16){if(_0x1c85x16){if(_0x1c85x16[_0x2cf6[28]]){switch(_0x1c85x12){case _0x2cf6[21]:createPdf(_0x1c85x16,_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10);break ;;case _0x2cf6[23]:createCsv(_0x1c85x16,_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10);break ;;default:createCsv(_0x1c85x16,_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x10);;}}else {updateExtracted(_0x1c85x10,null,_0x2cf6[29])}}else {updateExtracted(_0x1c85x10,null,_0x2cf6[30])}})[_0x2cf6[27]](function(_0x1c85x15){console[_0x2cf6[25]](_0x1c85x15);updateExtracted(_0x1c85x10,null,_0x2cf6[26]);});}function createPdf(_0x1c85x16,_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x18){var _0x1c85x19=sr({length:20,prefix:_0x2cf6[35],suffix:_0x2cf6[36]});var _0x1c85x1a=[];_[_0x2cf6[40]](_0x1c85xd.Fields,function(_0x1c85x1b){_0x1c85x1a[_0x2cf6[39]]({text:_0x1c85x1b[_0x2cf6[37]],style:_0x2cf6[38]})});var _0x1c85x1c=[_0x1c85x1a];_[_0x2cf6[40]](_0x1c85x16,function(_0x1c85x1b){var _0x1c85x1d=[];_[_0x2cf6[43]](_0x1c85x1b,function(_0x1c85x1e,_0x1c85x1f){_0x1c85x1d[_0x2cf6[39]](_0x1c85x1e instanceof Date?moment(_0x1c85x1e)[_0x2cf6[42]](_0x2cf6[41]).toString():_0x1c85x1e)});_0x1c85x1c[_0x2cf6[39]](_0x1c85x1d);});var _0x1c85x20={content:[{text:_0x1c85xd[_0x2cf6[44]],style:_0x2cf6[45]},moment(_0x1c85xe)[_0x2cf6[42]](_0x2cf6[41]).toString()+_0x2cf6[46]+moment(_0x1c85xf)[_0x2cf6[42]](_0x2cf6[41]).toString(),{style:_0x2cf6[47],table:{headerRows:1,body:_0x1c85x1c}}],styles:{header:{fontSize:18,bold:true,margin:[0,0,0,10]},subheader:{fontSize:16,bold:true,margin:[0,10,0,5]},tableExample:{margin:[0,5,0,15]},tableHeader:{bold:true,fontSize:13,color:_0x2cf6[48]}}};var _0x1c85x21= new pdfMake(fonts);var _0x1c85x22=_0x1c85x21[_0x2cf6[49]](_0x1c85x20);if(_0x1c85x22){var _0x1c85x23=fs[_0x2cf6[51]](__dirname+_0x2cf6[50]+_0x1c85x19);_0x1c85x23[_0x2cf6[54]](_0x2cf6[52],function(){updateExtracted(_0x1c85x18,null,_0x2cf6[53])});_0x1c85x23[_0x2cf6[54]](_0x2cf6[55],function(){updateExtracted(_0x1c85x18,_0x1c85x19,_0x2cf6[56])});_0x1c85x22[_0x2cf6[57]](_0x1c85x23);_0x1c85x22[_0x2cf6[58]]();}else {updateExtracted(_0x1c85x18,null,_0x2cf6[59])};}function createCsv(_0x1c85x16,_0x1c85xd,_0x1c85xe,_0x1c85xf,_0x1c85x18){var _0x1c85x19=sr({length:20,prefix:_0x2cf6[35],suffix:_0x2cf6[60]});var _0x1c85x25=csv(_0x1c85x16);if(_0x1c85x25){fs[_0x2cf6[62]](__dirname+_0x2cf6[50]+_0x1c85x19,_0x1c85x25,function(_0x1c85x15){if(_0x1c85x15){updateExtracted(_0x1c85x18,null,_0x2cf6[61])}else {updateExtracted(_0x1c85x18,_0x1c85x19,_0x2cf6[56])}})}else {updateExtracted(_0x1c85x18,null,_0x2cf6[63])};}function updateExtracted(_0x1c85x18,_0x1c85x19,_0x1c85x27){ExtractedReport[_0x2cf6[66]]({status:_0x1c85x27,savename:_0x1c85x19},{where:{id:_0x1c85x18}})[_0x2cf6[31]](function(){console[_0x2cf6[25]](_0x2cf6[65])})[_0x2cf6[27]](function(_0x1c85x15){console[_0x2cf6[25]](_0x2cf6[64]+_0x1c85x15)})}function buildReport(_0x1c85xd,_0x1c85xe,_0x1c85xf){var _0x1c85x29=[],_0x1c85x2a=[],_0x1c85x2b=[];_[_0x2cf6[40]](_0x1c85xd.Fields,function(_0x1c85x1b){var _0x1c85x2c=_0x2cf6[67];if(_0x1c85x1b[_0x2cf6[68]]){switch(_0x1c85x1b[_0x2cf6[68]]){case _0x2cf6[71]:_0x1c85x2c=util[_0x2cf6[42]](_0x2cf6[69],_0x1c85x1b[_0x2cf6[70]]);break ;;case _0x2cf6[73]:_0x1c85x2c=util[_0x2cf6[42]](_0x2cf6[72],_0x1c85x1b[_0x2cf6[70]],_0x1c85x1b[_0x2cf6[70]]);break ;;case _0x2cf6[75]:_0x1c85x2c=util[_0x2cf6[42]](_0x2cf6[74],_0x1c85x1b[_0x2cf6[70]],_0x1c85x1b[_0x2cf6[70]]);break ;;default:_0x1c85x2c=util[_0x2cf6[42]](_0x2cf6[76],_0x1c85x1b[_0x2cf6[68]],_0x1c85x1b[_0x2cf6[70]]);;}}else {_0x1c85x2c=_0x1c85x1b[_0x2cf6[70]]};_0x1c85x29[_0x2cf6[39]](util[_0x2cf6[42]](_0x2cf6[77],_0x1c85x2c,_0x1c85x1b[_0x2cf6[37]]));if(_0x1c85x1b[_0x2cf6[78]]){_0x1c85x2a[_0x2cf6[39]](_0x1c85x1b[_0x2cf6[70]])};if(_0x1c85x1b[_0x2cf6[79]]){_0x1c85x2b[_0x2cf6[39]](util[_0x2cf6[42]](_0x2cf6[80],_0x1c85x1b[_0x2cf6[70]],_0x1c85x1b[_0x2cf6[79]]))};});var _0x1c85x2d=getConditions(JSON[_0x2cf6[83]](_0x1c85xd[_0x2cf6[82]])[_0x2cf6[81]]);var _0x1c85x2e=_0x2cf6[32];_0x1c85x2e+=_0x2cf6[84]+_0x1c85x29[_0x2cf6[17]](_0x2cf6[85]);_0x1c85x2e+=_0x2cf6[86]+_0x1c85xd[_0x2cf6[87]];_0x1c85x2e+=_0x1c85x2d!==_0x2cf6[88]?_0x2cf6[89]+_0x1c85x2d:_0x2cf6[67];_0x1c85x2e+=_0x2cf6[90]+_0x1c85xe+_0x2cf6[91];_0x1c85x2e+=_0x2cf6[92]+_0x1c85xf+_0x2cf6[91];_0x1c85x2e+=_0x1c85x2a[_0x2cf6[28]]?_0x2cf6[93]+_0x1c85x2a[_0x2cf6[17]](_0x2cf6[85]):_0x2cf6[67];_0x1c85x2e+=_0x1c85x2b[_0x2cf6[28]]?_0x2cf6[94]+_0x1c85x2b[_0x2cf6[17]](_0x2cf6[85]):_0x2cf6[67];return _0x1c85x2e;}function getConditions(_0x1c85x30){if(!_0x1c85x30){return _0x2cf6[67]};for(var _0x1c85x31=_0x2cf6[95],_0x1c85x32=0;_0x1c85x32<_0x1c85x30[_0x2cf6[96]][_0x2cf6[28]];_0x1c85x32++){_0x1c85x32>0&&(_0x1c85x31+=_0x2cf6[84]+_0x1c85x30[_0x2cf6[97]]+_0x2cf6[84]);_0x1c85x31+=_0x1c85x30[_0x2cf6[96]][_0x1c85x32][_0x2cf6[81]]?getConditions(_0x1c85x30[_0x2cf6[96]][_0x1c85x32][_0x2cf6[81]]):_0x1c85x30[_0x2cf6[96]][_0x1c85x32][_0x2cf6[70]]+_0x2cf6[84]+_0x1c85x30[_0x2cf6[96]][_0x1c85x32][_0x2cf6[98]]+_0x2cf6[99]+(_0x1c85x30[_0x2cf6[96]][_0x1c85x32][_0x2cf6[98]]===_0x2cf6[100]?_0x2cf6[101]+_0x1c85x30[_0x2cf6[96]][_0x1c85x32][_0x2cf6[102]]+_0x2cf6[101]:_0x1c85x30[_0x2cf6[96]][_0x1c85x32][_0x2cf6[102]])+_0x2cf6[91];};return _0x1c85x31+_0x2cf6[103];}
\ No newline at end of file